diff --git a/changelog.md b/changelog.md index c9ce991..ab95406 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,16 @@ # Changelog +## 2025-12-31 - 3.17.0 - feat(editor) +add file explorer toolbar, empty-space context menu, editor auto-save, save-all, and keyboard save shortcuts + +- Added filetree toolbar with New File / New Folder actions and toolbar styling +- Added right-click context menu for empty filetree space to create files/folders +- Implemented editor menu button with context menu (Auto Save toggle, Save, Save All) +- Added auto-save toggle with 2s interval and cleanup on disconnect +- Implemented Save and Save All APIs that persist files and update IntelliSense manager +- Added keyboard shortcuts: Cmd/Ctrl+S to save active file and Cmd/Ctrl+Shift+S to save all +- Made tabs scrollable with a tabs container and added an editor menu button + ## 2025-12-30 - 3.16.0 - feat(editor) improve TypeScript IntelliSense and module resolution for Monaco editor diff --git a/ts_web/00_commitinfo_data.ts b/ts_web/00_commitinfo_data.ts index 03ed3d9..d11cbe6 100644 --- a/ts_web/00_commitinfo_data.ts +++ b/ts_web/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@design.estate/dees-catalog', - version: '3.16.0', + version: '3.17.0', description: 'A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript.' } diff --git a/ts_web/elements/00group-editor/dees-editor-filetree/dees-editor-filetree.ts b/ts_web/elements/00group-editor/dees-editor-filetree/dees-editor-filetree.ts index f7c3c51..23eeb54 100644 --- a/ts_web/elements/00group-editor/dees-editor-filetree/dees-editor-filetree.ts +++ b/ts_web/elements/00group-editor/dees-editor-filetree/dees-editor-filetree.ts @@ -203,6 +203,48 @@ export class DeesEditorFiletree extends DeesElement { color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 60%)')}; font-style: italic; } + + .filetree-toolbar { + display: flex; + align-items: center; + justify-content: space-between; + height: 36px; + padding: 0 12px; + border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 15%)')}; + background: ${cssManager.bdTheme('hsl(0 0% 96%)', 'hsl(0 0% 8%)')}; + position: sticky; + top: 0; + z-index: 1; + } + + .toolbar-title { + font-size: 11px; + font-weight: 600; + text-transform: uppercase; + letter-spacing: 0.5px; + color: ${cssManager.bdTheme('hsl(0 0% 40%)', 'hsl(0 0% 60%)')}; + } + + .toolbar-actions { + display: flex; + gap: 4px; + } + + .toolbar-button { + padding: 4px; + border-radius: 4px; + cursor: pointer; + opacity: 0.7; + transition: opacity 0.15s, background 0.15s; + display: flex; + align-items: center; + justify-content: center; + } + + .toolbar-button:hover { + opacity: 1; + background: ${cssManager.bdTheme('hsl(0 0% 0% / 0.08)', 'hsl(0 0% 100% / 0.1)')}; + } `, ]; @@ -231,18 +273,25 @@ export class DeesEditorFiletree extends DeesElement { `; } - if (this.treeData.length === 0) { - return html` -