From 4701412ef22368cafa3c10b5056e7551edb66f2b Mon Sep 17 00:00:00 2001 From: neon <18559658+neonsolstice@users.noreply.github.com> Date: Thu, 1 Oct 2026 02:46:15 +0000 Subject: [PATCH] feat(settings): redesign file naming as a two-column workbench The three-column layout left the editor 270px wide at 1280 and broke resolved paths mid-word. Draw the pattern one folder per line, preview it against long-name books, and list only what missing metadata changes. Add resolvePlaceholders to the shared resolver to report fallbacks. --- .../features/settings/FileNamingSettings.vue | 227 +++++++------ .../__tests__/FileNamingSettings.spec.ts | 234 +++++++++----- .../components/FileNamingSaveBar.vue | 4 +- .../components/LevelChangeList.vue | 105 ++++++ .../components/NamingResultPanel.vue | 240 ++++++++------ .../components/NamingRuleEditor.vue | 269 ++++++++++++---- .../file-naming/components/NamingRuleRail.vue | 159 +++++----- .../components/PathTreePreview.vue | 35 -- .../file-naming/components/PatternInput.vue | 299 ++++++++++++++++-- .../components/PatternInsertBar.vue | 188 +++++++++++ .../components/PatternRecipeMenu.vue | 103 ++++++ .../components/PatternRecipeStrip.vue | 87 ----- .../components/PatternTokenPalette.vue | 136 -------- .../components/ResolvedPathTree.vue | 133 ++++++++ .../components/__tests__/PatternInput.spec.ts | 131 ++++++++ .../__tests__/useFileNamingRules.spec.ts | 17 - .../composables/useFileNamingRules.ts | 9 - .../lib/__tests__/pattern-levels.spec.ts | 122 +++++++ .../lib/__tests__/pattern-resolution.spec.ts | 123 +++++++ .../lib/__tests__/pattern-tokens.spec.ts | 36 +++ .../file-naming/lib/pattern-levels.ts | 147 +++++++++ .../file-naming/lib/pattern-preview.ts | 10 +- .../file-naming/lib/pattern-resolution.ts | 144 +++++++++ .../file-naming/lib/pattern-tokens.ts | 66 ++++ .../settings/file-naming/lib/preview-books.ts | 126 ++++++++ client/src/i18n/formatters.spec.ts | 20 +- client/src/i18n/formatters.ts | 22 +- client/src/locales/en.json | 53 +++- packages/types/src/pattern-resolver.ts | 28 +- .../modules/upload/pattern-resolver.test.ts | 29 ++ 30 files changed, 2544 insertions(+), 758 deletions(-) create mode 100644 client/src/features/settings/file-naming/components/LevelChangeList.vue delete mode 100644 client/src/features/settings/file-naming/components/PathTreePreview.vue create mode 100644 client/src/features/settings/file-naming/components/PatternInsertBar.vue create mode 100644 client/src/features/settings/file-naming/components/PatternRecipeMenu.vue delete mode 100644 client/src/features/settings/file-naming/components/PatternRecipeStrip.vue delete mode 100644 client/src/features/settings/file-naming/components/PatternTokenPalette.vue create mode 100644 client/src/features/settings/file-naming/components/ResolvedPathTree.vue create mode 100644 client/src/features/settings/file-naming/components/__tests__/PatternInput.spec.ts create mode 100644 client/src/features/settings/file-naming/lib/__tests__/pattern-levels.spec.ts create mode 100644 client/src/features/settings/file-naming/lib/__tests__/pattern-resolution.spec.ts create mode 100644 client/src/features/settings/file-naming/lib/__tests__/pattern-tokens.spec.ts create mode 100644 client/src/features/settings/file-naming/lib/pattern-levels.ts create mode 100644 client/src/features/settings/file-naming/lib/pattern-resolution.ts create mode 100644 client/src/features/settings/file-naming/lib/pattern-tokens.ts create mode 100644 client/src/features/settings/file-naming/lib/preview-books.ts diff --git a/client/src/features/settings/FileNamingSettings.vue b/client/src/features/settings/FileNamingSettings.vue index e1d274229..6d2dfd662 100644 --- a/client/src/features/settings/FileNamingSettings.vue +++ b/client/src/features/settings/FileNamingSettings.vue @@ -1,27 +1,38 @@