rune-lab 0.3.1 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.gitignore +12 -0
- package/README.md +4 -4
- package/deno.json +50 -0
- package/justfile +5 -0
- package/package.json +3 -80
- package/scripts/build_pkg.ts +51 -0
- package/scripts/ci.just +26 -0
- package/scripts/deploy.just +21 -0
- package/scripts/dev.just +4 -0
- package/scripts/inject.just +72 -0
- package/src/RuneProvider.svelte +105 -0
- package/src/i18n/message-resolver.test.ts +103 -0
- package/src/i18n/message-resolver.ts +89 -0
- package/src/i18n/project.inlang/settings.json +26 -0
- package/src/i18n/translations/ar.json +89 -0
- package/src/i18n/translations/de.json +89 -0
- package/src/i18n/translations/en.json +89 -0
- package/src/i18n/translations/es.json +89 -0
- package/src/i18n/translations/fr.json +89 -0
- package/src/i18n/translations/hi.json +89 -0
- package/src/i18n/translations/it.json +89 -0
- package/src/i18n/translations/ja.json +89 -0
- package/src/i18n/translations/ko.json +89 -0
- package/src/i18n/translations/pt.json +89 -0
- package/src/i18n/translations/ru.json +89 -0
- package/src/i18n/translations/vi.json +89 -0
- package/src/i18n/translations/zh.json +89 -0
- package/src/kernel/deno.json +5 -0
- package/src/kernel/src/actions/portal.ts +41 -0
- package/src/kernel/src/actions/shortcut-listener.ts +50 -0
- package/src/kernel/src/context/app.svelte.ts +98 -0
- package/src/kernel/src/context/context.ts +31 -0
- package/src/kernel/src/context/stores.svelte.ts +96 -0
- package/src/kernel/src/context/types.ts +110 -0
- package/src/kernel/src/context/useRuneLab.ts +38 -0
- package/src/kernel/src/mod.ts +13 -0
- package/src/kernel/src/persistence/createConfigStore.svelte.ts +120 -0
- package/src/kernel/src/persistence/drivers.test.ts +95 -0
- package/src/kernel/src/persistence/drivers.ts +77 -0
- package/src/kernel/src/persistence/provider.test.ts +58 -0
- package/src/kernel/src/persistence/provider.ts +58 -0
- package/src/kernel/src/persistence/types.ts +19 -0
- package/src/kernel/src/persistence/usePersistence.ts +9 -0
- package/src/kernel/src/registry/mod.ts +221 -0
- package/src/kernel/src/registry/registry.test.ts +162 -0
- package/src/kernel/src/tokens/props.ts +94 -0
- package/src/mod.ts +10 -0
- package/src/runes/layout/deno.json +5 -0
- package/src/runes/layout/src/APP_CONFIGURATIONS.ts +56 -0
- package/{dist/ui/features/config → src/runes/layout/src}/AppSettingSelector.svelte +1 -1
- package/{dist/ui/layout → src/runes/layout/src}/ConnectedNavigationPanel.svelte +7 -8
- package/{dist/ui/layout → src/runes/layout/src}/ConnectedWorkspaceStrip.svelte +5 -3
- package/src/runes/layout/src/Icon.svelte +7 -0
- package/src/runes/layout/src/LanguageSelector.svelte +45 -0
- package/{dist/ui/layout → src/runes/layout/src}/NavigationPanel.svelte +1 -4
- package/src/runes/layout/src/ResourceSelector.svelte +90 -0
- package/src/runes/layout/src/ThemeSelector.svelte +50 -0
- package/{dist/ui/layout → src/runes/layout/src}/WorkspaceLayout.svelte +13 -3
- package/{dist/ui/layout → src/runes/layout/src}/WorkspaceStrip.svelte +1 -1
- package/src/runes/layout/src/connection-factory.ts +95 -0
- package/src/runes/layout/src/language.svelte.ts +44 -0
- package/src/runes/layout/src/mod.ts +71 -0
- package/src/runes/layout/src/store.svelte.ts +142 -0
- package/src/runes/layout/src/theme.svelte.ts +73 -0
- package/src/runes/layout/src/types.ts +11 -0
- package/src/runes/palettes/deno.json +8 -0
- package/{dist/ui/features/command-palette → src/runes/palettes/src/commands}/CommandPalette.svelte +4 -4
- package/src/runes/palettes/src/commands/mod.ts +2 -0
- package/src/runes/palettes/src/commands/store.svelte.ts +80 -0
- package/src/runes/palettes/src/mod.ts +51 -0
- package/{dist/ui/components → src/runes/palettes/src/notifications}/Toaster.svelte +1 -2
- package/src/runes/palettes/src/notifications/bridge.ts +56 -0
- package/src/runes/palettes/src/notifications/mod.ts +4 -0
- package/src/runes/palettes/src/notifications/store.svelte.ts +58 -0
- package/{dist/ui/features → src/runes/palettes/src}/shortcuts/ShortcutPalette.svelte +4 -4
- package/src/runes/palettes/src/shortcuts/mod.ts +4 -0
- package/src/runes/palettes/src/shortcuts/store.svelte.ts +85 -0
- package/src/runes/palettes/src/shortcuts/types.ts +4 -0
- package/src/runes/palettes/src/shortcuts/useShortcuts.ts +85 -0
- package/src/runes/plugins/money/deno.json +8 -0
- package/src/runes/plugins/money/src/CurrencySelector.svelte +41 -0
- package/src/runes/plugins/money/src/MoneyDisplay.svelte +142 -0
- package/src/runes/plugins/money/src/MoneyInput.svelte +208 -0
- package/src/runes/plugins/money/src/currency.svelte.ts +95 -0
- package/src/runes/plugins/money/src/currency.test.ts +40 -0
- package/src/runes/plugins/money/src/exchange-rate.svelte.ts +176 -0
- package/src/runes/plugins/money/src/exchange-rate.test.ts +95 -0
- package/src/runes/plugins/money/src/mod.ts +79 -0
- package/src/runes/plugins/money/src/money-primitive.test.ts +217 -0
- package/src/runes/plugins/money/src/money-primitive.ts +220 -0
- package/src/runes/plugins/money/src/money.test.ts +183 -0
- package/src/runes/plugins/money/src/money.ts +382 -0
- package/src/runes/plugins/money/src/strategies.test.ts +143 -0
- package/src/runes/plugins/money/src/strategies.ts +95 -0
- package/src/runes/plugins/money/src/types.ts +27 -0
- package/src/runes/plugins/money/src/useMoney.ts +261 -0
- package/src/runes/plugins/money/src/useMoneyFilter.ts +132 -0
- package/tsconfig.json +41 -0
- package/vite.config.ts +44 -0
- package/dist/core/index.d.ts +0 -4
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js +0 -3
- package/dist/core/internal/message-resolver.d.ts +0 -42
- package/dist/core/internal/message-resolver.d.ts.map +0 -1
- package/dist/core/internal/message-resolver.js +0 -47
- package/dist/core/money/index.d.ts +0 -2
- package/dist/core/money/index.d.ts.map +0 -1
- package/dist/core/money/index.js +0 -2
- package/dist/core/money/money.d.ts +0 -57
- package/dist/core/money/money.d.ts.map +0 -1
- package/dist/core/money/money.js +0 -132
- package/dist/core/persistence/types.d.ts +0 -18
- package/dist/core/persistence/types.d.ts.map +0 -1
- package/dist/core/persistence/types.js +0 -2
- package/dist/index.d.ts +0 -5
- package/dist/index.js +0 -5
- package/dist/state/api.svelte.d.ts +0 -26
- package/dist/state/api.svelte.js +0 -65
- package/dist/state/app.svelte.d.ts +0 -48
- package/dist/state/app.svelte.js +0 -82
- package/dist/state/auth/index.d.ts +0 -2
- package/dist/state/auth/index.js +0 -2
- package/dist/state/auth/session.svelte.d.ts +0 -40
- package/dist/state/auth/session.svelte.js +0 -57
- package/dist/state/auth/types.d.ts +0 -30
- package/dist/state/auth/types.js +0 -3
- package/dist/state/cart.svelte.d.ts +0 -64
- package/dist/state/cart.svelte.js +0 -122
- package/dist/state/commands.svelte.d.ts +0 -46
- package/dist/state/commands.svelte.js +0 -62
- package/dist/state/composables/useMoney.d.ts +0 -15
- package/dist/state/composables/useMoney.js +0 -62
- package/dist/state/composables/usePersistence.d.ts +0 -2
- package/dist/state/composables/usePersistence.js +0 -5
- package/dist/state/composables/useRuneLab.d.ts +0 -19
- package/dist/state/composables/useRuneLab.js +0 -30
- package/dist/state/context.d.ts +0 -14
- package/dist/state/context.js +0 -15
- package/dist/state/createConfigStore.svelte.d.ts +0 -55
- package/dist/state/createConfigStore.svelte.js +0 -61
- package/dist/state/currency.svelte.d.ts +0 -28
- package/dist/state/currency.svelte.js +0 -80
- package/dist/state/daisyui.d.ts +0 -4
- package/dist/state/index.d.ts +0 -19
- package/dist/state/index.js +0 -25
- package/dist/state/language.svelte.d.ts +0 -64
- package/dist/state/language.svelte.js +0 -44
- package/dist/state/layout.svelte.d.ts +0 -49
- package/dist/state/layout.svelte.js +0 -108
- package/dist/state/persistence/drivers.d.ts +0 -12
- package/dist/state/persistence/drivers.js +0 -73
- package/dist/state/shortcuts.svelte.d.ts +0 -121
- package/dist/state/shortcuts.svelte.js +0 -222
- package/dist/state/theme.svelte.d.ts +0 -22
- package/dist/state/theme.svelte.js +0 -92
- package/dist/state/toast-bridge.d.ts +0 -29
- package/dist/state/toast-bridge.js +0 -43
- package/dist/state/toast.svelte.d.ts +0 -27
- package/dist/state/toast.svelte.js +0 -43
- package/dist/ui/actions/portal.d.ts +0 -7
- package/dist/ui/actions/portal.js +0 -32
- package/dist/ui/components/ApiMonitor.svelte +0 -162
- package/dist/ui/components/ApiMonitor.svelte.d.ts +0 -3
- package/dist/ui/components/Icon.svelte +0 -108
- package/dist/ui/components/Icon.svelte.d.ts +0 -14
- package/dist/ui/components/Kyntharil.svelte +0 -48
- package/dist/ui/components/Kyntharil.svelte.d.ts +0 -6
- package/dist/ui/components/RuneProvider.svelte +0 -198
- package/dist/ui/components/RuneProvider.svelte.d.ts +0 -42
- package/dist/ui/components/Toaster.svelte.d.ts +0 -18
- package/dist/ui/components/money/MoneyDisplay.svelte +0 -69
- package/dist/ui/components/money/MoneyDisplay.svelte.d.ts +0 -21
- package/dist/ui/components/money/MoneyDisplay.svelte.test.d.ts +0 -1
- package/dist/ui/components/money/MoneyDisplay.svelte.test.js +0 -74
- package/dist/ui/components/money/MoneyInput.svelte +0 -131
- package/dist/ui/components/money/MoneyInput.svelte.d.ts +0 -25
- package/dist/ui/components/money/index.d.ts +0 -2
- package/dist/ui/components/money/index.js +0 -3
- package/dist/ui/components/user/UserAvatar.svelte +0 -66
- package/dist/ui/components/user/UserAvatar.svelte.d.ts +0 -13
- package/dist/ui/components/user/UserProfile.svelte +0 -79
- package/dist/ui/components/user/UserProfile.svelte.d.ts +0 -17
- package/dist/ui/components/user/index.d.ts +0 -2
- package/dist/ui/components/user/index.js +0 -3
- package/dist/ui/features/command-palette/CommandPalette.svelte.d.ts +0 -6
- package/dist/ui/features/config/AppSettingSelector.svelte.d.ts +0 -13
- package/dist/ui/features/config/CurrencySelector.svelte +0 -67
- package/dist/ui/features/config/CurrencySelector.svelte.d.ts +0 -8
- package/dist/ui/features/config/LanguageSelector.svelte +0 -66
- package/dist/ui/features/config/LanguageSelector.svelte.d.ts +0 -8
- package/dist/ui/features/config/ThemeSelector.svelte +0 -73
- package/dist/ui/features/config/ThemeSelector.svelte.d.ts +0 -8
- package/dist/ui/features/notifications/NotificationBell.svelte.d.ts +0 -11
- package/dist/ui/features/notifications/index.d.ts +0 -1
- package/dist/ui/features/notifications/index.js +0 -2
- package/dist/ui/features/shortcuts/ShortcutPalette.svelte.d.ts +0 -6
- package/dist/ui/index.d.ts +0 -26
- package/dist/ui/index.js +0 -41
- package/dist/ui/layout/ConnectedNavigationPanel.svelte.d.ts +0 -10
- package/dist/ui/layout/ConnectedWorkspaceStrip.svelte.d.ts +0 -9
- package/dist/ui/layout/ContentArea.svelte.d.ts +0 -8
- package/dist/ui/layout/DetailPanel.svelte.d.ts +0 -7
- package/dist/ui/layout/NavigationPanel.svelte.d.ts +0 -14
- package/dist/ui/layout/WorkspaceLayout.svelte.d.ts +0 -25
- package/dist/ui/layout/WorkspaceStrip.svelte.d.ts +0 -11
- package/dist/ui/layout/index.d.ts +0 -7
- package/dist/ui/layout/index.js +0 -7
- package/dist/ui/paraglide/README.md +0 -94
- package/dist/ui/paraglide/messages/_index.d.ts +0 -87
- package/dist/ui/paraglide/messages/_index.js +0 -88
- package/dist/ui/paraglide/messages/abyss.d.ts +0 -16
- package/dist/ui/paraglide/messages/abyss.js +0 -84
- package/dist/ui/paraglide/messages/acid.d.ts +0 -16
- package/dist/ui/paraglide/messages/acid.js +0 -84
- package/dist/ui/paraglide/messages/active_toasts.d.ts +0 -16
- package/dist/ui/paraglide/messages/active_toasts.js +0 -84
- package/dist/ui/paraglide/messages/aed3.d.ts +0 -17
- package/dist/ui/paraglide/messages/aed3.js +0 -85
- package/dist/ui/paraglide/messages/all_currencies.d.ts +0 -16
- package/dist/ui/paraglide/messages/all_currencies.js +0 -84
- package/dist/ui/paraglide/messages/all_languages.d.ts +0 -16
- package/dist/ui/paraglide/messages/all_languages.js +0 -84
- package/dist/ui/paraglide/messages/all_themes.d.ts +0 -16
- package/dist/ui/paraglide/messages/all_themes.js +0 -84
- package/dist/ui/paraglide/messages/api_status.d.ts +0 -16
- package/dist/ui/paraglide/messages/api_status.js +0 -84
- package/dist/ui/paraglide/messages/app_info.d.ts +0 -16
- package/dist/ui/paraglide/messages/app_info.js +0 -84
- package/dist/ui/paraglide/messages/appearance.d.ts +0 -16
- package/dist/ui/paraglide/messages/appearance.js +0 -84
- package/dist/ui/paraglide/messages/aqua.d.ts +0 -16
- package/dist/ui/paraglide/messages/aqua.js +0 -84
- package/dist/ui/paraglide/messages/ar.d.ts +0 -16
- package/dist/ui/paraglide/messages/ar.js +0 -84
- package/dist/ui/paraglide/messages/autumn.d.ts +0 -16
- package/dist/ui/paraglide/messages/autumn.js +0 -84
- package/dist/ui/paraglide/messages/black.d.ts +0 -16
- package/dist/ui/paraglide/messages/black.js +0 -84
- package/dist/ui/paraglide/messages/brl3.d.ts +0 -17
- package/dist/ui/paraglide/messages/brl3.js +0 -85
- package/dist/ui/paraglide/messages/bumblebee.d.ts +0 -16
- package/dist/ui/paraglide/messages/bumblebee.js +0 -84
- package/dist/ui/paraglide/messages/business.d.ts +0 -16
- package/dist/ui/paraglide/messages/business.js +0 -84
- package/dist/ui/paraglide/messages/cad3.d.ts +0 -17
- package/dist/ui/paraglide/messages/cad3.js +0 -85
- package/dist/ui/paraglide/messages/caramellatte.d.ts +0 -16
- package/dist/ui/paraglide/messages/caramellatte.js +0 -84
- package/dist/ui/paraglide/messages/cmyk.d.ts +0 -16
- package/dist/ui/paraglide/messages/cmyk.js +0 -84
- package/dist/ui/paraglide/messages/cny3.d.ts +0 -17
- package/dist/ui/paraglide/messages/cny3.js +0 -85
- package/dist/ui/paraglide/messages/coffee.d.ts +0 -16
- package/dist/ui/paraglide/messages/coffee.js +0 -84
- package/dist/ui/paraglide/messages/commands_label.d.ts +0 -16
- package/dist/ui/paraglide/messages/commands_label.js +0 -84
- package/dist/ui/paraglide/messages/corporate.d.ts +0 -16
- package/dist/ui/paraglide/messages/corporate.js +0 -84
- package/dist/ui/paraglide/messages/cupcake.d.ts +0 -16
- package/dist/ui/paraglide/messages/cupcake.js +0 -84
- package/dist/ui/paraglide/messages/currency.d.ts +0 -16
- package/dist/ui/paraglide/messages/currency.js +0 -84
- package/dist/ui/paraglide/messages/current_currency.d.ts +0 -16
- package/dist/ui/paraglide/messages/current_currency.js +0 -84
- package/dist/ui/paraglide/messages/current_language.d.ts +0 -16
- package/dist/ui/paraglide/messages/current_language.js +0 -84
- package/dist/ui/paraglide/messages/current_theme.d.ts +0 -16
- package/dist/ui/paraglide/messages/current_theme.js +0 -84
- package/dist/ui/paraglide/messages/currently_in_queue.d.ts +0 -16
- package/dist/ui/paraglide/messages/currently_in_queue.js +0 -84
- package/dist/ui/paraglide/messages/cyberpunk.d.ts +0 -16
- package/dist/ui/paraglide/messages/cyberpunk.js +0 -84
- package/dist/ui/paraglide/messages/dark.d.ts +0 -16
- package/dist/ui/paraglide/messages/dark.js +0 -84
- package/dist/ui/paraglide/messages/de.d.ts +0 -16
- package/dist/ui/paraglide/messages/de.js +0 -84
- package/dist/ui/paraglide/messages/dim.d.ts +0 -16
- package/dist/ui/paraglide/messages/dim.js +0 -84
- package/dist/ui/paraglide/messages/dracula.d.ts +0 -16
- package/dist/ui/paraglide/messages/dracula.js +0 -84
- package/dist/ui/paraglide/messages/emerald.d.ts +0 -16
- package/dist/ui/paraglide/messages/emerald.js +0 -84
- package/dist/ui/paraglide/messages/en.d.ts +0 -16
- package/dist/ui/paraglide/messages/en.js +0 -84
- package/dist/ui/paraglide/messages/es.d.ts +0 -16
- package/dist/ui/paraglide/messages/es.js +0 -84
- package/dist/ui/paraglide/messages/eur3.d.ts +0 -17
- package/dist/ui/paraglide/messages/eur3.js +0 -85
- package/dist/ui/paraglide/messages/extended_controls.d.ts +0 -16
- package/dist/ui/paraglide/messages/extended_controls.js +0 -84
- package/dist/ui/paraglide/messages/fantasy.d.ts +0 -16
- package/dist/ui/paraglide/messages/fantasy.js +0 -84
- package/dist/ui/paraglide/messages/forest.d.ts +0 -16
- package/dist/ui/paraglide/messages/forest.js +0 -84
- package/dist/ui/paraglide/messages/fr.d.ts +0 -16
- package/dist/ui/paraglide/messages/fr.js +0 -84
- package/dist/ui/paraglide/messages/garden.d.ts +0 -16
- package/dist/ui/paraglide/messages/garden.js +0 -84
- package/dist/ui/paraglide/messages/gbp3.d.ts +0 -17
- package/dist/ui/paraglide/messages/gbp3.js +0 -85
- package/dist/ui/paraglide/messages/halloween.d.ts +0 -16
- package/dist/ui/paraglide/messages/halloween.js +0 -84
- package/dist/ui/paraglide/messages/hello_world.d.ts +0 -18
- package/dist/ui/paraglide/messages/hello_world.js +0 -84
- package/dist/ui/paraglide/messages/hi.d.ts +0 -16
- package/dist/ui/paraglide/messages/hi.js +0 -84
- package/dist/ui/paraglide/messages/inr3.d.ts +0 -17
- package/dist/ui/paraglide/messages/inr3.js +0 -85
- package/dist/ui/paraglide/messages/it.d.ts +0 -16
- package/dist/ui/paraglide/messages/it.js +0 -84
- package/dist/ui/paraglide/messages/ja.d.ts +0 -16
- package/dist/ui/paraglide/messages/ja.js +0 -84
- package/dist/ui/paraglide/messages/jpy3.d.ts +0 -17
- package/dist/ui/paraglide/messages/jpy3.js +0 -85
- package/dist/ui/paraglide/messages/ko.d.ts +0 -16
- package/dist/ui/paraglide/messages/ko.js +0 -84
- package/dist/ui/paraglide/messages/krw3.d.ts +0 -17
- package/dist/ui/paraglide/messages/krw3.js +0 -85
- package/dist/ui/paraglide/messages/languages.d.ts +0 -16
- package/dist/ui/paraglide/messages/languages.js +0 -84
- package/dist/ui/paraglide/messages/lemonade.d.ts +0 -16
- package/dist/ui/paraglide/messages/lemonade.js +0 -84
- package/dist/ui/paraglide/messages/light.d.ts +0 -16
- package/dist/ui/paraglide/messages/light.js +0 -84
- package/dist/ui/paraglide/messages/live_store_dashboard.d.ts +0 -16
- package/dist/ui/paraglide/messages/live_store_dashboard.js +0 -84
- package/dist/ui/paraglide/messages/localization.d.ts +0 -16
- package/dist/ui/paraglide/messages/localization.js +0 -84
- package/dist/ui/paraglide/messages/lofi.d.ts +0 -16
- package/dist/ui/paraglide/messages/lofi.js +0 -84
- package/dist/ui/paraglide/messages/luxury.d.ts +0 -16
- package/dist/ui/paraglide/messages/luxury.js +0 -84
- package/dist/ui/paraglide/messages/mxn3.d.ts +0 -17
- package/dist/ui/paraglide/messages/mxn3.js +0 -85
- package/dist/ui/paraglide/messages/name_label.d.ts +0 -16
- package/dist/ui/paraglide/messages/name_label.js +0 -84
- package/dist/ui/paraglide/messages/night.d.ts +0 -16
- package/dist/ui/paraglide/messages/night.js +0 -84
- package/dist/ui/paraglide/messages/nord.d.ts +0 -16
- package/dist/ui/paraglide/messages/nord.js +0 -84
- package/dist/ui/paraglide/messages/pastel.d.ts +0 -16
- package/dist/ui/paraglide/messages/pastel.js +0 -84
- package/dist/ui/paraglide/messages/pt.d.ts +0 -16
- package/dist/ui/paraglide/messages/pt.js +0 -84
- package/dist/ui/paraglide/messages/real_time_monitor_desc.d.ts +0 -16
- package/dist/ui/paraglide/messages/real_time_monitor_desc.js +0 -84
- package/dist/ui/paraglide/messages/registered_in_registry.d.ts +0 -16
- package/dist/ui/paraglide/messages/registered_in_registry.js +0 -84
- package/dist/ui/paraglide/messages/retro.d.ts +0 -16
- package/dist/ui/paraglide/messages/retro.js +0 -84
- package/dist/ui/paraglide/messages/ru.d.ts +0 -16
- package/dist/ui/paraglide/messages/ru.js +0 -84
- package/dist/ui/paraglide/messages/silk.d.ts +0 -16
- package/dist/ui/paraglide/messages/silk.js +0 -84
- package/dist/ui/paraglide/messages/state_label.d.ts +0 -16
- package/dist/ui/paraglide/messages/state_label.js +0 -84
- package/dist/ui/paraglide/messages/sunset.d.ts +0 -16
- package/dist/ui/paraglide/messages/sunset.js +0 -84
- package/dist/ui/paraglide/messages/synthwave.d.ts +0 -16
- package/dist/ui/paraglide/messages/synthwave.js +0 -84
- package/dist/ui/paraglide/messages/system.d.ts +0 -16
- package/dist/ui/paraglide/messages/system.js +0 -84
- package/dist/ui/paraglide/messages/theme.d.ts +0 -16
- package/dist/ui/paraglide/messages/theme.js +0 -84
- package/dist/ui/paraglide/messages/themes.d.ts +0 -16
- package/dist/ui/paraglide/messages/themes.js +0 -84
- package/dist/ui/paraglide/messages/url_label.d.ts +0 -16
- package/dist/ui/paraglide/messages/url_label.js +0 -84
- package/dist/ui/paraglide/messages/usd3.d.ts +0 -17
- package/dist/ui/paraglide/messages/usd3.js +0 -85
- package/dist/ui/paraglide/messages/valentine.d.ts +0 -16
- package/dist/ui/paraglide/messages/valentine.js +0 -84
- package/dist/ui/paraglide/messages/version_label.d.ts +0 -16
- package/dist/ui/paraglide/messages/version_label.js +0 -84
- package/dist/ui/paraglide/messages/vi.d.ts +0 -16
- package/dist/ui/paraglide/messages/vi.js +0 -84
- package/dist/ui/paraglide/messages/winter.d.ts +0 -16
- package/dist/ui/paraglide/messages/winter.js +0 -84
- package/dist/ui/paraglide/messages/wireframe.d.ts +0 -16
- package/dist/ui/paraglide/messages/wireframe.js +0 -84
- package/dist/ui/paraglide/messages/zh.d.ts +0 -16
- package/dist/ui/paraglide/messages/zh.js +0 -84
- package/dist/ui/paraglide/messages.d.ts +0 -2
- package/dist/ui/paraglide/messages.js +0 -4
- package/dist/ui/paraglide/registry.d.ts +0 -21
- package/dist/ui/paraglide/registry.js +0 -31
- package/dist/ui/paraglide/runtime.d.ts +0 -749
- package/dist/ui/paraglide/runtime.js +0 -1777
- package/dist/ui/paraglide/server.d.ts +0 -103
- package/dist/ui/paraglide/server.js +0 -248
- package/dist/ui/primitives/DatePicker.svelte +0 -257
- package/dist/ui/primitives/DatePicker.svelte.d.ts +0 -17
- package/dist/ui/primitives/index.d.ts +0 -1
- package/dist/ui/primitives/index.js +0 -3
- /package/{dist/ui/layout → src/runes/layout/src}/ContentArea.svelte +0 -0
- /package/{dist/ui/layout → src/runes/layout/src}/DetailPanel.svelte +0 -0
- /package/{dist/ui/features → src/runes/palettes/src}/notifications/NotificationBell.svelte +0 -0
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { createConfigStore, } from "./createConfigStore.svelte";
|
|
2
|
-
import { getContext } from "svelte";
|
|
3
|
-
import { RUNE_LAB_CONTEXT } from "./context";
|
|
4
|
-
import { registerCurrency } from "rune-lab/core";
|
|
5
|
-
/**
|
|
6
|
-
* Helper to build a minimal Dinero definition from Currency metadata.
|
|
7
|
-
* Assumes base 10 (standard decimal) for auto-registration.
|
|
8
|
-
*/
|
|
9
|
-
function buildDineroDef(meta) {
|
|
10
|
-
return {
|
|
11
|
-
code: meta.code,
|
|
12
|
-
base: 10,
|
|
13
|
-
exponent: meta.decimals,
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
const CURRENCIES = [
|
|
17
|
-
{ code: "USD", symbol: "$", decimals: 2 },
|
|
18
|
-
{ code: "EUR", symbol: "€", decimals: 2 },
|
|
19
|
-
{ code: "GBP", symbol: "£", decimals: 2 },
|
|
20
|
-
{ code: "MXN", symbol: "$", decimals: 2 },
|
|
21
|
-
{ code: "CAD", symbol: "C$", decimals: 2 },
|
|
22
|
-
{ code: "BRL", symbol: "R$", decimals: 2 },
|
|
23
|
-
{ code: "INR", symbol: "₹", decimals: 2 },
|
|
24
|
-
{ code: "CNY", symbol: "¥", decimals: 2 },
|
|
25
|
-
{ code: "JPY", symbol: "¥", decimals: 0 },
|
|
26
|
-
{ code: "KRW", symbol: "₩", decimals: 0 },
|
|
27
|
-
{ code: "AED", symbol: "د.إ", decimals: 2 },
|
|
28
|
-
];
|
|
29
|
-
export function createCurrencyStore(driverOrOptions) {
|
|
30
|
-
// Normalize overloaded argument
|
|
31
|
-
const opts = driverOrOptions && typeof driverOrOptions === "object" &&
|
|
32
|
-
"driver" in driverOrOptions
|
|
33
|
-
? driverOrOptions
|
|
34
|
-
: {
|
|
35
|
-
driver: driverOrOptions,
|
|
36
|
-
};
|
|
37
|
-
const resolvedDriver = typeof opts.driver === "function"
|
|
38
|
-
? opts.driver()
|
|
39
|
-
: opts.driver;
|
|
40
|
-
const store = createConfigStore({
|
|
41
|
-
items: CURRENCIES,
|
|
42
|
-
storageKey: "currency",
|
|
43
|
-
displayName: "Currency",
|
|
44
|
-
idKey: "code",
|
|
45
|
-
icon: "💰",
|
|
46
|
-
driver: resolvedDriver,
|
|
47
|
-
});
|
|
48
|
-
/**
|
|
49
|
-
* Extension: Atomic currency registration.
|
|
50
|
-
* Updates both the Dinero registry (core) and the reactive store (UI).
|
|
51
|
-
*
|
|
52
|
-
* @remarks Custom currencies with non-decimal base systems must use
|
|
53
|
-
* registerCurrency() from @internal/core explicitly before addItems().
|
|
54
|
-
*/
|
|
55
|
-
function addCurrency(meta, dineroDef) {
|
|
56
|
-
const def = dineroDef || buildDineroDef(meta);
|
|
57
|
-
registerCurrency(meta.code, def);
|
|
58
|
-
store.addItems([meta]);
|
|
59
|
-
}
|
|
60
|
-
// Append and auto-register custom currencies if provided
|
|
61
|
-
if (opts.customCurrencies?.length) {
|
|
62
|
-
for (const c of opts.customCurrencies) {
|
|
63
|
-
registerCurrency(c.code, buildDineroDef(c));
|
|
64
|
-
}
|
|
65
|
-
store.addItems(opts.customCurrencies);
|
|
66
|
-
}
|
|
67
|
-
// Set default currency if provided and no persisted value found
|
|
68
|
-
if (!resolvedDriver?.get("currency") && opts.defaultCurrency) {
|
|
69
|
-
if (store.get(opts.defaultCurrency)) {
|
|
70
|
-
store.set(opts.defaultCurrency);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
return {
|
|
74
|
-
...store,
|
|
75
|
-
addCurrency,
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
export function getCurrencyStore() {
|
|
79
|
-
return getContext(RUNE_LAB_CONTEXT.currency);
|
|
80
|
-
}
|
package/dist/state/daisyui.d.ts
DELETED
package/dist/state/index.d.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
export { RUNE_LAB_CONTEXT } from "./context";
|
|
2
|
-
export { useRuneLab } from "./composables/useRuneLab";
|
|
3
|
-
export type { RuneLabContext } from "./composables/useRuneLab";
|
|
4
|
-
export { usePersistence } from "./composables/usePersistence";
|
|
5
|
-
export { useMoney } from "./composables/useMoney";
|
|
6
|
-
export { cookieDriver, createCookieDriver, createInMemoryDriver, inMemoryDriver, localStorageDriver, sessionStorageDriver, } from "./persistence/drivers";
|
|
7
|
-
export { type AppData, AppStore, createAppStore, getAppStore, } from "./app.svelte";
|
|
8
|
-
export { createLayoutStore, getLayoutStore, LayoutStore, type NavigationItem, type NavigationSection, type WorkspaceItem, } from "./layout.svelte";
|
|
9
|
-
export { ApiStore, type ConnectionState, createApiStore, getApiStore, } from "./api.svelte";
|
|
10
|
-
export { createLanguageStore, getLanguageStore, type Language, } from "./language.svelte";
|
|
11
|
-
export { createCurrencyStore, type Currency, type CurrencyStore, type CurrencyStoreOptions, getCurrencyStore, } from "./currency.svelte";
|
|
12
|
-
export { createToastStore, getToastStore, ToastStore } from "./toast.svelte";
|
|
13
|
-
export { type Command, CommandStore, createCommandStore, getCommandStore, } from "./commands.svelte";
|
|
14
|
-
export { createShortcutStore, getShortcutStore, LAYOUT_SHORTCUTS, type ShortcutEntry, shortcutListener, type ShortcutMeta, ShortcutStore, } from "./shortcuts.svelte";
|
|
15
|
-
export { createThemeStore, getThemeStore, type Theme, type ThemeStoreOptions, } from "./theme.svelte";
|
|
16
|
-
export { type ConfigItem, type ConfigStore, type ConfigStoreOptions, createConfigStore, } from "./createConfigStore.svelte";
|
|
17
|
-
export { createToastBridge, notify } from "./toast-bridge";
|
|
18
|
-
export { type CartEntry, type CartStore, type CartStoreConfig, createCartStore, getCartStore, } from "./cart.svelte";
|
|
19
|
-
export { type AuthConfig, createSessionStore, getSessionStore, type Session, SessionStore, type User, } from "./auth/index";
|
package/dist/state/index.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
// sdk/state/src/index.ts
|
|
2
|
-
// Unified public barrel for @internal/state
|
|
3
|
-
// ── Context ───────────────────────────────────────────────────────────────────
|
|
4
|
-
export { RUNE_LAB_CONTEXT } from "./context";
|
|
5
|
-
// ── Composables ───────────────────────────────────────────────────────────────
|
|
6
|
-
export { useRuneLab } from "./composables/useRuneLab";
|
|
7
|
-
export { usePersistence } from "./composables/usePersistence";
|
|
8
|
-
export { useMoney } from "./composables/useMoney";
|
|
9
|
-
// ── Persistence Drivers ───────────────────────────────────────────────────────
|
|
10
|
-
export { cookieDriver, createCookieDriver, createInMemoryDriver, inMemoryDriver, localStorageDriver, sessionStorageDriver, } from "./persistence/drivers";
|
|
11
|
-
// Stores
|
|
12
|
-
export { AppStore, createAppStore, getAppStore, } from "./app.svelte";
|
|
13
|
-
export { createLayoutStore, getLayoutStore, LayoutStore, } from "./layout.svelte";
|
|
14
|
-
export { ApiStore, createApiStore, getApiStore, } from "./api.svelte";
|
|
15
|
-
export { createLanguageStore, getLanguageStore, } from "./language.svelte";
|
|
16
|
-
export { createCurrencyStore, getCurrencyStore, } from "./currency.svelte";
|
|
17
|
-
export { createToastStore, getToastStore, ToastStore } from "./toast.svelte";
|
|
18
|
-
export { CommandStore, createCommandStore, getCommandStore, } from "./commands.svelte";
|
|
19
|
-
export { createShortcutStore, getShortcutStore, LAYOUT_SHORTCUTS, shortcutListener, ShortcutStore, } from "./shortcuts.svelte";
|
|
20
|
-
export { createThemeStore, getThemeStore, } from "./theme.svelte";
|
|
21
|
-
export { createConfigStore, } from "./createConfigStore.svelte";
|
|
22
|
-
export { createToastBridge, notify } from "./toast-bridge";
|
|
23
|
-
export { createCartStore, getCartStore, } from "./cart.svelte";
|
|
24
|
-
// ── Auth ──────────────────────────────────────────────────────────────────────
|
|
25
|
-
export { createSessionStore, getSessionStore, SessionStore, } from "./auth/index";
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { type ConfigStore } from "./createConfigStore.svelte";
|
|
2
|
-
/**
|
|
3
|
-
* Language configuration
|
|
4
|
-
* Represents a supported language in the application
|
|
5
|
-
*/
|
|
6
|
-
export interface Language {
|
|
7
|
-
code: string;
|
|
8
|
-
flag?: string;
|
|
9
|
-
}
|
|
10
|
-
export declare const LANGUAGES: readonly [{
|
|
11
|
-
readonly code: "es";
|
|
12
|
-
readonly flag: "🇲🇽";
|
|
13
|
-
}, {
|
|
14
|
-
readonly code: "fr";
|
|
15
|
-
readonly flag: "🇫🇷";
|
|
16
|
-
}, {
|
|
17
|
-
readonly code: "it";
|
|
18
|
-
readonly flag: "🇮🇹";
|
|
19
|
-
}, {
|
|
20
|
-
readonly code: "pt";
|
|
21
|
-
readonly flag: "🇧🇷";
|
|
22
|
-
}, {
|
|
23
|
-
readonly code: "en";
|
|
24
|
-
readonly flag: "🇺🇸";
|
|
25
|
-
}, {
|
|
26
|
-
readonly code: "de";
|
|
27
|
-
readonly flag: "🇩🇪";
|
|
28
|
-
}, {
|
|
29
|
-
readonly code: "ru";
|
|
30
|
-
readonly flag: "🇷🇺";
|
|
31
|
-
}, {
|
|
32
|
-
readonly code: "hi";
|
|
33
|
-
readonly flag: "🇮🇳";
|
|
34
|
-
}, {
|
|
35
|
-
readonly code: "ar";
|
|
36
|
-
readonly flag: "🇸🇦";
|
|
37
|
-
}, {
|
|
38
|
-
readonly code: "zh";
|
|
39
|
-
readonly flag: "🇨🇳";
|
|
40
|
-
}, {
|
|
41
|
-
readonly code: "ja";
|
|
42
|
-
readonly flag: "🇯🇵";
|
|
43
|
-
}, {
|
|
44
|
-
readonly code: "ko";
|
|
45
|
-
readonly flag: "🇰🇷";
|
|
46
|
-
}, {
|
|
47
|
-
readonly code: "vi";
|
|
48
|
-
readonly flag: "🇻🇳";
|
|
49
|
-
}];
|
|
50
|
-
import type { PersistenceDriver } from "rune-lab/core";
|
|
51
|
-
export interface LanguageStoreOptions {
|
|
52
|
-
driver?: PersistenceDriver | (() => PersistenceDriver | undefined);
|
|
53
|
-
onLocaleChange?: (code: string) => void;
|
|
54
|
-
locales?: readonly string[];
|
|
55
|
-
}
|
|
56
|
-
export declare function createLanguageStore(options?: LanguageStoreOptions): {
|
|
57
|
-
current: string | undefined;
|
|
58
|
-
available: Language[];
|
|
59
|
-
set(id: string | undefined): void;
|
|
60
|
-
get(id: string | undefined): Language | undefined;
|
|
61
|
-
getProp<K extends keyof Language>(prop: K, id?: string | undefined): Language[K] | undefined;
|
|
62
|
-
addItems(newItems: Language[]): void;
|
|
63
|
-
};
|
|
64
|
-
export declare function getLanguageStore(): ConfigStore<Language>;
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
// sdk/state/src/language.svelte.ts
|
|
2
|
-
import { createConfigStore, } from "./createConfigStore.svelte";
|
|
3
|
-
import { getContext } from "svelte";
|
|
4
|
-
import { RUNE_LAB_CONTEXT } from "./context";
|
|
5
|
-
export const LANGUAGES = [
|
|
6
|
-
// --- INDOEUROPEAS (Rama Romance / Latín) ---
|
|
7
|
-
{ code: "es", flag: "🇲🇽" },
|
|
8
|
-
{ code: "fr", flag: "🇫🇷" },
|
|
9
|
-
{ code: "it", flag: "🇮🇹" },
|
|
10
|
-
{ code: "pt", flag: "🇧🇷" },
|
|
11
|
-
// --- INDOEUROPEAS (Rama Germánica) ---
|
|
12
|
-
{ code: "en", flag: "🇺🇸" },
|
|
13
|
-
{ code: "de", flag: "🇩🇪" },
|
|
14
|
-
// --- INDOEUROPEAS (Otras Ramas) ---
|
|
15
|
-
{ code: "ru", flag: "🇷🇺" },
|
|
16
|
-
{ code: "hi", flag: "🇮🇳" },
|
|
17
|
-
// --- AFROASIÁTICAS ---
|
|
18
|
-
{ code: "ar", flag: "🇸🇦" },
|
|
19
|
-
// --- FAMILIAS ASIÁTICAS INDEPENDIENTES ---
|
|
20
|
-
{ code: "zh", flag: "🇨🇳" },
|
|
21
|
-
{ code: "ja", flag: "🇯🇵" },
|
|
22
|
-
{ code: "ko", flag: "🇰🇷" },
|
|
23
|
-
{ code: "vi", flag: "🇻🇳" },
|
|
24
|
-
];
|
|
25
|
-
export function createLanguageStore(options) {
|
|
26
|
-
const driver = typeof options?.driver === "function"
|
|
27
|
-
? options.driver()
|
|
28
|
-
: options?.driver;
|
|
29
|
-
const items = options?.locales
|
|
30
|
-
? LANGUAGES.filter((l) => options.locales.includes(l.code))
|
|
31
|
-
: LANGUAGES;
|
|
32
|
-
const store = createConfigStore({
|
|
33
|
-
items,
|
|
34
|
-
storageKey: "language",
|
|
35
|
-
displayName: "Language",
|
|
36
|
-
idKey: "code",
|
|
37
|
-
icon: "🌍",
|
|
38
|
-
driver,
|
|
39
|
-
});
|
|
40
|
-
return store;
|
|
41
|
-
}
|
|
42
|
-
export function getLanguageStore() {
|
|
43
|
-
return getContext(RUNE_LAB_CONTEXT.language);
|
|
44
|
-
}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import type { PersistenceDriver } from "rune-lab/core";
|
|
2
|
-
export interface WorkspaceItem {
|
|
3
|
-
id: string;
|
|
4
|
-
icon: string;
|
|
5
|
-
label: string;
|
|
6
|
-
badge?: string | number;
|
|
7
|
-
href?: string;
|
|
8
|
-
onClick?: () => void;
|
|
9
|
-
}
|
|
10
|
-
export interface NavigationItem {
|
|
11
|
-
id: string;
|
|
12
|
-
label: string;
|
|
13
|
-
icon?: string;
|
|
14
|
-
href?: string;
|
|
15
|
-
badge?: string | number;
|
|
16
|
-
isActive?: boolean;
|
|
17
|
-
onClick?: () => void;
|
|
18
|
-
children?: NavigationItem[];
|
|
19
|
-
}
|
|
20
|
-
export interface NavigationSection {
|
|
21
|
-
id: string;
|
|
22
|
-
title: string;
|
|
23
|
-
items: NavigationItem[];
|
|
24
|
-
}
|
|
25
|
-
export declare class LayoutStore {
|
|
26
|
-
#private;
|
|
27
|
-
workspaces: WorkspaceItem[];
|
|
28
|
-
activeWorkspaceId: string | null;
|
|
29
|
-
activeNavItemId: string | null;
|
|
30
|
-
navOpen: boolean;
|
|
31
|
-
detailOpen: boolean;
|
|
32
|
-
collapsedSections: Set<string>;
|
|
33
|
-
constructor(driver?: PersistenceDriver | (() => PersistenceDriver | undefined));
|
|
34
|
-
init(options?: {
|
|
35
|
-
namespace?: string;
|
|
36
|
-
driver?: PersistenceDriver;
|
|
37
|
-
}): void;
|
|
38
|
-
setWorkspaces(items: WorkspaceItem[]): void;
|
|
39
|
-
activateWorkspace(id: string): void;
|
|
40
|
-
activateWorkspaceByIndex(index: number): void;
|
|
41
|
-
navigate(id: string): void;
|
|
42
|
-
toggleNav(): void;
|
|
43
|
-
toggleDetail(): void;
|
|
44
|
-
toggleSection(id: string): void;
|
|
45
|
-
collapseSection(id: string): void;
|
|
46
|
-
expandSection(id: string): void;
|
|
47
|
-
}
|
|
48
|
-
export declare function createLayoutStore(driver?: PersistenceDriver | (() => PersistenceDriver | undefined)): LayoutStore;
|
|
49
|
-
export declare function getLayoutStore(): LayoutStore;
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
// src/lib/state/layout.svelte.ts
|
|
2
|
-
import { getContext } from "svelte";
|
|
3
|
-
import { RUNE_LAB_CONTEXT } from "./context";
|
|
4
|
-
export class LayoutStore {
|
|
5
|
-
workspaces = $state([]);
|
|
6
|
-
activeWorkspaceId = $state(null);
|
|
7
|
-
activeNavItemId = $state(null);
|
|
8
|
-
navOpen = $state(true);
|
|
9
|
-
detailOpen = $state(false);
|
|
10
|
-
collapsedSections = $state(new Set());
|
|
11
|
-
#storageNamespace = "default";
|
|
12
|
-
#initialized = false;
|
|
13
|
-
#driver;
|
|
14
|
-
constructor(driver) {
|
|
15
|
-
// We import locally here or at top-level. We can just fallback to window if undefined,
|
|
16
|
-
// but better to expect it via inject. The app supplies it in createLayoutStore.
|
|
17
|
-
this.#driver = (typeof driver === "function" ? driver() : driver);
|
|
18
|
-
}
|
|
19
|
-
init(options) {
|
|
20
|
-
if (this.#initialized)
|
|
21
|
-
return;
|
|
22
|
-
if (options?.namespace)
|
|
23
|
-
this.#storageNamespace = options.namespace;
|
|
24
|
-
if (options?.driver)
|
|
25
|
-
this.#driver = options.driver;
|
|
26
|
-
// If no driver was injected and no window (SSR), we just do nothing
|
|
27
|
-
if (!this.#driver && typeof window !== "undefined") {
|
|
28
|
-
this.#driver = {
|
|
29
|
-
get: (key) => localStorage.getItem(key),
|
|
30
|
-
set: (key, val) => localStorage.setItem(key, val),
|
|
31
|
-
remove: (key) => localStorage.removeItem(key),
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
if (this.#driver) {
|
|
35
|
-
const savedWorkspace = this.#driver.get(`rl:layout:${this.#storageNamespace}:workspace`);
|
|
36
|
-
if (savedWorkspace)
|
|
37
|
-
this.activeWorkspaceId = savedWorkspace;
|
|
38
|
-
const savedSections = this.#driver.get(`rl:layout:${this.#storageNamespace}:sections`);
|
|
39
|
-
if (savedSections) {
|
|
40
|
-
try {
|
|
41
|
-
this.collapsedSections = new Set(JSON.parse(savedSections));
|
|
42
|
-
}
|
|
43
|
-
catch (e) {
|
|
44
|
-
console.error("Failed to parse collapsed sections", e);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
this.#initialized = true;
|
|
49
|
-
// Set up persistence effects
|
|
50
|
-
if (this.#driver) {
|
|
51
|
-
$effect.root(() => {
|
|
52
|
-
$effect(() => {
|
|
53
|
-
if (this.activeWorkspaceId) {
|
|
54
|
-
this.#driver?.set(`rl:layout:${this.#storageNamespace}:workspace`, this.activeWorkspaceId);
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
$effect(() => {
|
|
58
|
-
this.#driver?.set(`rl:layout:${this.#storageNamespace}:sections`, JSON.stringify([...this.collapsedSections]));
|
|
59
|
-
});
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
setWorkspaces(items) {
|
|
64
|
-
this.workspaces = items;
|
|
65
|
-
if (items.length > 0 && !this.activeWorkspaceId) {
|
|
66
|
-
this.activeWorkspaceId = items[0].id;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
activateWorkspace(id) {
|
|
70
|
-
this.activeWorkspaceId = id;
|
|
71
|
-
}
|
|
72
|
-
activateWorkspaceByIndex(index) {
|
|
73
|
-
const ws = this.workspaces[index];
|
|
74
|
-
if (ws) {
|
|
75
|
-
this.activateWorkspace(ws.id);
|
|
76
|
-
ws.onClick?.();
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
navigate(id) {
|
|
80
|
-
this.activeNavItemId = id;
|
|
81
|
-
}
|
|
82
|
-
toggleNav() {
|
|
83
|
-
this.navOpen = !this.navOpen;
|
|
84
|
-
}
|
|
85
|
-
toggleDetail() {
|
|
86
|
-
this.detailOpen = !this.detailOpen;
|
|
87
|
-
}
|
|
88
|
-
toggleSection(id) {
|
|
89
|
-
if (this.collapsedSections.has(id)) {
|
|
90
|
-
this.collapsedSections.delete(id);
|
|
91
|
-
}
|
|
92
|
-
else {
|
|
93
|
-
this.collapsedSections.add(id);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
collapseSection(id) {
|
|
97
|
-
this.collapsedSections.add(id);
|
|
98
|
-
}
|
|
99
|
-
expandSection(id) {
|
|
100
|
-
this.collapsedSections.delete(id);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
export function createLayoutStore(driver) {
|
|
104
|
-
return new LayoutStore(driver);
|
|
105
|
-
}
|
|
106
|
-
export function getLayoutStore() {
|
|
107
|
-
return getContext(RUNE_LAB_CONTEXT.layout);
|
|
108
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { PersistenceDriver } from "rune-lab/core";
|
|
2
|
-
export declare function createInMemoryDriver(): PersistenceDriver;
|
|
3
|
-
export declare const inMemoryDriver: PersistenceDriver;
|
|
4
|
-
export declare const localStorageDriver: PersistenceDriver;
|
|
5
|
-
export declare const sessionStorageDriver: PersistenceDriver;
|
|
6
|
-
export declare const createCookieDriver: (options?: {
|
|
7
|
-
path?: string;
|
|
8
|
-
maxAge?: number;
|
|
9
|
-
sameSite?: "Lax" | "Strict" | "None";
|
|
10
|
-
}) => PersistenceDriver;
|
|
11
|
-
/** Default cookie driver singleton (path='/') */
|
|
12
|
-
export declare const cookieDriver: PersistenceDriver;
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { BROWSER as browser } from "esm-env";
|
|
2
|
-
export function createInMemoryDriver() {
|
|
3
|
-
const store = new Map();
|
|
4
|
-
return {
|
|
5
|
-
get: (key) => store.get(key) ?? null,
|
|
6
|
-
set: (key, value) => store.set(key, value),
|
|
7
|
-
remove: (key) => store.delete(key),
|
|
8
|
-
};
|
|
9
|
-
}
|
|
10
|
-
export const inMemoryDriver = createInMemoryDriver();
|
|
11
|
-
export const localStorageDriver = {
|
|
12
|
-
get: (key) => {
|
|
13
|
-
if (!browser)
|
|
14
|
-
return null;
|
|
15
|
-
return window.localStorage.getItem(key);
|
|
16
|
-
},
|
|
17
|
-
set: (key, value) => {
|
|
18
|
-
if (!browser)
|
|
19
|
-
return;
|
|
20
|
-
window.localStorage.setItem(key, value);
|
|
21
|
-
},
|
|
22
|
-
remove: (key) => {
|
|
23
|
-
if (!browser)
|
|
24
|
-
return;
|
|
25
|
-
window.localStorage.removeItem(key);
|
|
26
|
-
},
|
|
27
|
-
};
|
|
28
|
-
export const sessionStorageDriver = {
|
|
29
|
-
get: (key) => {
|
|
30
|
-
if (!browser)
|
|
31
|
-
return null;
|
|
32
|
-
return window.sessionStorage.getItem(key);
|
|
33
|
-
},
|
|
34
|
-
set: (key, value) => {
|
|
35
|
-
if (!browser)
|
|
36
|
-
return;
|
|
37
|
-
window.sessionStorage.setItem(key, value);
|
|
38
|
-
},
|
|
39
|
-
remove: (key) => {
|
|
40
|
-
if (!browser)
|
|
41
|
-
return;
|
|
42
|
-
window.sessionStorage.removeItem(key);
|
|
43
|
-
},
|
|
44
|
-
};
|
|
45
|
-
export const createCookieDriver = (options = {}) => ({
|
|
46
|
-
get: (key) => {
|
|
47
|
-
if (!browser)
|
|
48
|
-
return null;
|
|
49
|
-
const match = document.cookie.match(new RegExp(`(^| )${key}=([^;]+)`));
|
|
50
|
-
return match ? decodeURIComponent(match[2]) : null;
|
|
51
|
-
},
|
|
52
|
-
set: (key, value) => {
|
|
53
|
-
if (!browser)
|
|
54
|
-
return;
|
|
55
|
-
let cookie = `${key}=${encodeURIComponent(value)}`;
|
|
56
|
-
if (options.path)
|
|
57
|
-
cookie += `; path=${options.path}`;
|
|
58
|
-
if (options.maxAge)
|
|
59
|
-
cookie += `; max-age=${options.maxAge}`;
|
|
60
|
-
if (options.sameSite)
|
|
61
|
-
cookie += `; samesite=${options.sameSite}`;
|
|
62
|
-
document.cookie = cookie;
|
|
63
|
-
},
|
|
64
|
-
remove: (key) => {
|
|
65
|
-
if (!browser)
|
|
66
|
-
return;
|
|
67
|
-
document.cookie = `${key}=; max-age=0; path=${options.path || "/"}`;
|
|
68
|
-
},
|
|
69
|
-
});
|
|
70
|
-
/** Default cookie driver singleton (path='/') */
|
|
71
|
-
export const cookieDriver = createCookieDriver({
|
|
72
|
-
path: "/",
|
|
73
|
-
});
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Metadata for a keyboard shortcut
|
|
3
|
-
*/
|
|
4
|
-
export interface ShortcutMeta {
|
|
5
|
-
/** Unique dot-namespaced identifier (e.g. "rl:layout:toggle-nav") */
|
|
6
|
-
id: string;
|
|
7
|
-
/** Hotkeys.js-compatible key string (e.g. "ctrl+\\", "alt+down") */
|
|
8
|
-
keys: string;
|
|
9
|
-
/** Human-readable description shown in the Shortcut Palette */
|
|
10
|
-
label: string;
|
|
11
|
-
/** Display group within a scope (e.g. "Layout", "Navigation") */
|
|
12
|
-
category: string;
|
|
13
|
-
/** When the shortcut is eligible to fire */
|
|
14
|
-
scope: "global" | "layout" | `panel:${string}`;
|
|
15
|
-
/** Whether the shortcut is currently active in the execution engine */
|
|
16
|
-
enabled?: boolean;
|
|
17
|
-
/** Whether to hide the shortcut from the Shortcut Palette */
|
|
18
|
-
hidden?: boolean;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Descriptor for a keyboard shortcut with handler
|
|
22
|
-
*/
|
|
23
|
-
export interface ShortcutEntry extends ShortcutMeta {
|
|
24
|
-
/** The function to execute when the shortcut is triggered */
|
|
25
|
-
handler: (event: KeyboardEvent) => void;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Built-in layout shortcuts
|
|
29
|
-
*/
|
|
30
|
-
export declare const LAYOUT_SHORTCUTS: {
|
|
31
|
-
readonly TOGGLE_NAV: {
|
|
32
|
-
readonly id: "rl:layout:toggle-nav";
|
|
33
|
-
readonly keys: "ctrl+\\";
|
|
34
|
-
readonly label: "Toggle Navigation Panel";
|
|
35
|
-
readonly category: "Layout";
|
|
36
|
-
readonly scope: "global";
|
|
37
|
-
};
|
|
38
|
-
readonly TOGGLE_DETAIL: {
|
|
39
|
-
readonly id: "rl:layout:toggle-detail";
|
|
40
|
-
readonly keys: "ctrl+shift+\\";
|
|
41
|
-
readonly label: "Toggle Detail Panel";
|
|
42
|
-
readonly category: "Layout";
|
|
43
|
-
readonly scope: "global";
|
|
44
|
-
};
|
|
45
|
-
readonly OPEN_SHORTCUTS: {
|
|
46
|
-
readonly id: "rl:shortcuts:open";
|
|
47
|
-
readonly keys: "ctrl+/";
|
|
48
|
-
readonly label: "Show Shortcut Palette";
|
|
49
|
-
readonly category: "Help";
|
|
50
|
-
readonly scope: "global";
|
|
51
|
-
};
|
|
52
|
-
readonly NAV_NEXT: {
|
|
53
|
-
readonly id: "rl:nav:next-item";
|
|
54
|
-
readonly keys: "alt+down";
|
|
55
|
-
readonly label: "Next navigation item";
|
|
56
|
-
readonly category: "Navigation";
|
|
57
|
-
readonly scope: "panel:navigation";
|
|
58
|
-
};
|
|
59
|
-
readonly NAV_PREV: {
|
|
60
|
-
readonly id: "rl:nav:prev-item";
|
|
61
|
-
readonly keys: "alt+up";
|
|
62
|
-
readonly label: "Previous navigation item";
|
|
63
|
-
readonly category: "Navigation";
|
|
64
|
-
readonly scope: "panel:navigation";
|
|
65
|
-
};
|
|
66
|
-
readonly NAV_EXPAND: {
|
|
67
|
-
readonly id: "rl:nav:expand-section";
|
|
68
|
-
readonly keys: "alt+right";
|
|
69
|
-
readonly label: "Expand section";
|
|
70
|
-
readonly category: "Navigation";
|
|
71
|
-
readonly scope: "panel:navigation";
|
|
72
|
-
};
|
|
73
|
-
readonly NAV_COLLAPSE: {
|
|
74
|
-
readonly id: "rl:nav:collapse-section";
|
|
75
|
-
readonly keys: "alt+left";
|
|
76
|
-
readonly label: "Collapse section";
|
|
77
|
-
readonly category: "Navigation";
|
|
78
|
-
readonly scope: "panel:navigation";
|
|
79
|
-
};
|
|
80
|
-
};
|
|
81
|
-
export declare class ShortcutStore {
|
|
82
|
-
/** All registered shortcuts */
|
|
83
|
-
entries: ShortcutEntry[];
|
|
84
|
-
/** Whether the shortcut palette is currently visible */
|
|
85
|
-
showPalette: boolean;
|
|
86
|
-
/** Subset of shortcuts that should be displayed in the palette */
|
|
87
|
-
active: ShortcutEntry[];
|
|
88
|
-
/** Grouped entries for display (scope -> category -> entries) */
|
|
89
|
-
byScopeAndCategory: Record<string, Record<string, ShortcutEntry[]>>;
|
|
90
|
-
/** Scopes sorted by importance (global first, then layout, then alphabetical) */
|
|
91
|
-
sortedScopes: string[];
|
|
92
|
-
/**
|
|
93
|
-
* Register a new shortcut
|
|
94
|
-
*/
|
|
95
|
-
register(entry: ShortcutEntry): void;
|
|
96
|
-
/**
|
|
97
|
-
* Unregister a shortcut by ID
|
|
98
|
-
*/
|
|
99
|
-
unregister(id: string): void;
|
|
100
|
-
/**
|
|
101
|
-
* Enable a shortcut
|
|
102
|
-
*/
|
|
103
|
-
enable(id: string): void;
|
|
104
|
-
/**
|
|
105
|
-
* Disable a shortcut
|
|
106
|
-
*/
|
|
107
|
-
disable(id: string): void;
|
|
108
|
-
/**
|
|
109
|
-
* Find conflicts for a given key combo and scope
|
|
110
|
-
*/
|
|
111
|
-
findConflicts(keys: string, scope: string): ShortcutEntry[];
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* Svelte Action to listen for shortcuts registered in shortcutStore.
|
|
115
|
-
* Applied to the root element of the layout.
|
|
116
|
-
*/
|
|
117
|
-
export declare function shortcutListener(node: HTMLElement, shortcutStore: ShortcutStore): {
|
|
118
|
-
destroy(): void;
|
|
119
|
-
};
|
|
120
|
-
export declare function createShortcutStore(): ShortcutStore;
|
|
121
|
-
export declare function getShortcutStore(): ShortcutStore;
|