From f265bb913e686cde9f37e313a57ed0d904175aa8 Mon Sep 17 00:00:00 2001 From: MoonLyss Date: Thu, 5 Sep 2024 23:49:12 +0200 Subject: [PATCH] Add path generator --- bun.lockb | Bin 198915 -> 200444 bytes package.json | 11 +- src/lib/actions/focus.ts | 12 ++ src/lib/actions/index.ts | 1 + src/lib/actions/keyboard.ts | 43 +++++ src/lib/components/PathGenerator.svelte | 212 ++++++++++++++++++++++++ src/lib/components/index.ts | 3 +- src/routes/path-generator/+page.svelte | 19 +++ 8 files changed, 295 insertions(+), 6 deletions(-) create mode 100644 src/lib/actions/focus.ts create mode 100644 src/lib/components/PathGenerator.svelte create mode 100644 src/routes/path-generator/+page.svelte diff --git a/bun.lockb b/bun.lockb index 1785cd2cec6131dc67e50a5addbfc8f461023e5b..6c437947a7595257fc18bbc54e7a7cc8690d17ac 100755 GIT binary patch delta 38234 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 Wm73|y-_3?wsu!9OO0O?8R{tNW7+l8y delta 37410 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 = (node, active = true) => { + if (!active) return; + setTimeout(() => node.focus()); + + return { + update(a) { + if (a) node.focus(); + }, + } +} \ No newline at end of file diff --git a/src/lib/actions/index.ts b/src/lib/actions/index.ts index 6cbc5a2..90a36c5 100644 --- a/src/lib/actions/index.ts +++ b/src/lib/actions/index.ts @@ -19,6 +19,7 @@ export * from './resizable'; export * from './box-selection' export * from '@neodrag/svelte'; export * from './document'; +export * from './focus'; let handleFocusLeaveRefCount = 0; let handleFocusLeaveCallbacks: ((isKeyboard: boolean) => void)[] = []; function handleKeydown(e: KeyboardEvent) { diff --git a/src/lib/actions/keyboard.ts b/src/lib/actions/keyboard.ts index 828a756..0eba412 100644 --- a/src/lib/actions/keyboard.ts +++ b/src/lib/actions/keyboard.ts @@ -42,3 +42,46 @@ export const keyboardNavigation: Action = (node) => { } }; }; + + +type KeysHandler = (e: KeyboardEvent) => void; +type SupportedKeys = 'escape' | 'enter' | 'up' | 'left' | 'down' | 'right' | 'backspace'; +type KeysParams = {[key in SupportedKeys]?: KeysHandler}; +export const keys: Action = (node, params: KeysParams = {}) => { + function kbListener(e: KeyboardEvent) { + switch (e.key) { + case 'ArrowUp': + params.up?.(e); + break; + case 'ArrowLeft': + params.left?.(e); + break; + case 'ArrowDown': + params.down?.(e); + break; + case 'ArrowRight': + params.right?.(e); + break; + case 'Enter': + params.enter?.(e); + break; + case 'Escape': + params.escape?.(e); + break; + case 'Backspace': + params.backspace?.(e); + break + } + } + + node.addEventListener('keydown', kbListener); + + return { + destroy() { + node.removeEventListener('keydown', kbListener); + }, + update(newParams = {}) { + params = newParams; + }, + } +} diff --git a/src/lib/components/PathGenerator.svelte b/src/lib/components/PathGenerator.svelte new file mode 100644 index 0000000..18be520 --- /dev/null +++ b/src/lib/components/PathGenerator.svelte @@ -0,0 +1,212 @@ + + +{#if creatingPart || debug} +

+ {#if optionsForCreatedPart.length === 0} + No folders here. A new one will be created. + {:else} +
    + {#each optionsForCreatedPart as part (part)} + {@const isFocused = part === focusedOption} +
  • + +
  • + {/each} +
+ {/if} +
+{/if} + + diff --git a/src/lib/components/index.ts b/src/lib/components/index.ts index cea385f..189d0eb 100644 --- a/src/lib/components/index.ts +++ b/src/lib/components/index.ts @@ -1 +1,2 @@ -export {default as MatchHighlighter} from './MatchHighlighter.svelte'; \ No newline at end of file +export {default as MatchHighlighter} from './MatchHighlighter.svelte'; +export {default as PathGenerator} from './PathGenerator.svelte'; \ No newline at end of file diff --git a/src/routes/path-generator/+page.svelte b/src/routes/path-generator/+page.svelte new file mode 100644 index 0000000..9c84790 --- /dev/null +++ b/src/routes/path-generator/+page.svelte @@ -0,0 +1,19 @@ + + + Path + + +

Result

+

{path.join('/')}