feat: Add nesting of tags in a tree

- levels are joined by forward slashes in the keywords
- behaviour is opt-in for now
- long paths are shortened if there is not enough display room

Closes #687.
This commit is contained in:
Mathy Vanvoorden
2026-07-29 17:18:38 +02:00
parent ce97a54aaa
commit ca0ba818b7
22 changed files with 1084 additions and 95 deletions
@@ -156,4 +156,19 @@ describe('settings-store keywords', () => {
expect(kw?.label).toBe('Scarlet');
});
});
describe('nestedTags', () => {
it('is off by default', () => {
useSettingsStore.getState().resetToDefaults();
expect(useSettingsStore.getState().nestedTags).toBe(false);
});
it('is included in exported settings', () => {
useSettingsStore.getState().updateSetting('nestedTags', true);
const exported = JSON.parse(useSettingsStore.getState().exportSettings()) as {
nestedTags?: boolean;
};
expect(exported.nestedTags).toBe(true);
});
});
});