rune-lab 0.4.0 → 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.
Files changed (433) hide show
  1. package/.gitignore +12 -0
  2. package/README.md +3 -3
  3. package/deno.json +50 -0
  4. package/justfile +5 -0
  5. package/package.json +2 -79
  6. package/scripts/build_pkg.ts +51 -0
  7. package/scripts/ci.just +26 -0
  8. package/scripts/deploy.just +21 -0
  9. package/scripts/dev.just +4 -0
  10. package/scripts/inject.just +72 -0
  11. package/src/RuneProvider.svelte +105 -0
  12. package/src/i18n/message-resolver.test.ts +103 -0
  13. package/src/i18n/message-resolver.ts +89 -0
  14. package/src/i18n/project.inlang/settings.json +26 -0
  15. package/src/i18n/translations/ar.json +89 -0
  16. package/src/i18n/translations/de.json +89 -0
  17. package/src/i18n/translations/en.json +89 -0
  18. package/src/i18n/translations/es.json +89 -0
  19. package/src/i18n/translations/fr.json +89 -0
  20. package/src/i18n/translations/hi.json +89 -0
  21. package/src/i18n/translations/it.json +89 -0
  22. package/src/i18n/translations/ja.json +89 -0
  23. package/src/i18n/translations/ko.json +89 -0
  24. package/src/i18n/translations/pt.json +89 -0
  25. package/src/i18n/translations/ru.json +89 -0
  26. package/src/i18n/translations/vi.json +89 -0
  27. package/src/i18n/translations/zh.json +89 -0
  28. package/src/kernel/deno.json +5 -0
  29. package/src/kernel/src/actions/portal.ts +41 -0
  30. package/src/kernel/src/actions/shortcut-listener.ts +50 -0
  31. package/src/kernel/src/context/app.svelte.ts +98 -0
  32. package/src/kernel/src/context/context.ts +31 -0
  33. package/src/kernel/src/context/stores.svelte.ts +96 -0
  34. package/src/kernel/src/context/types.ts +110 -0
  35. package/src/kernel/src/context/useRuneLab.ts +38 -0
  36. package/src/kernel/src/mod.ts +13 -0
  37. package/src/kernel/src/persistence/createConfigStore.svelte.ts +120 -0
  38. package/src/kernel/src/persistence/drivers.test.ts +95 -0
  39. package/src/kernel/src/persistence/drivers.ts +77 -0
  40. package/src/kernel/src/persistence/provider.test.ts +58 -0
  41. package/{dist/state/persistence/provider.js → src/kernel/src/persistence/provider.ts} +29 -14
  42. package/src/kernel/src/persistence/types.ts +19 -0
  43. package/src/kernel/src/persistence/usePersistence.ts +9 -0
  44. package/src/kernel/src/registry/mod.ts +221 -0
  45. package/src/kernel/src/registry/registry.test.ts +162 -0
  46. package/src/kernel/src/tokens/props.ts +94 -0
  47. package/src/mod.ts +10 -0
  48. package/src/runes/layout/deno.json +5 -0
  49. package/src/runes/layout/src/APP_CONFIGURATIONS.ts +56 -0
  50. package/{dist/ui/features/config → src/runes/layout/src}/AppSettingSelector.svelte +1 -1
  51. package/{dist/ui/layout → src/runes/layout/src}/ConnectedNavigationPanel.svelte +1 -1
  52. package/{dist/ui/layout → src/runes/layout/src}/ConnectedWorkspaceStrip.svelte +1 -1
  53. package/src/runes/layout/src/Icon.svelte +7 -0
  54. package/{dist/ui/features/config → src/runes/layout/src}/LanguageSelector.svelte +7 -5
  55. package/{dist/ui/layout → src/runes/layout/src}/NavigationPanel.svelte +1 -4
  56. package/{dist/ui/features/config → src/runes/layout/src}/ResourceSelector.svelte +3 -5
  57. package/{dist/ui/features/config → src/runes/layout/src}/ThemeSelector.svelte +2 -2
  58. package/{dist/ui/layout → src/runes/layout/src}/WorkspaceLayout.svelte +6 -4
  59. package/{dist/ui/layout → src/runes/layout/src}/WorkspaceStrip.svelte +1 -1
  60. package/src/runes/layout/src/connection-factory.ts +95 -0
  61. package/src/runes/layout/src/language.svelte.ts +44 -0
  62. package/src/runes/layout/src/mod.ts +71 -0
  63. package/src/runes/layout/src/store.svelte.ts +142 -0
  64. package/src/runes/layout/src/theme.svelte.ts +73 -0
  65. package/src/runes/layout/src/types.ts +11 -0
  66. package/src/runes/palettes/deno.json +8 -0
  67. package/{dist/ui/features/command-palette → src/runes/palettes/src/commands}/CommandPalette.svelte +4 -4
  68. package/src/runes/palettes/src/commands/mod.ts +2 -0
  69. package/src/runes/palettes/src/commands/store.svelte.ts +80 -0
  70. package/src/runes/palettes/src/mod.ts +51 -0
  71. package/{dist/ui/components → src/runes/palettes/src/notifications}/Toaster.svelte +1 -2
  72. package/src/runes/palettes/src/notifications/bridge.ts +56 -0
  73. package/src/runes/palettes/src/notifications/mod.ts +4 -0
  74. package/src/runes/palettes/src/notifications/store.svelte.ts +58 -0
  75. package/{dist/ui/features → src/runes/palettes/src}/shortcuts/ShortcutPalette.svelte +4 -4
  76. package/src/runes/palettes/src/shortcuts/mod.ts +4 -0
  77. package/src/runes/palettes/src/shortcuts/store.svelte.ts +85 -0
  78. package/src/runes/palettes/src/shortcuts/types.ts +4 -0
  79. package/src/runes/palettes/src/shortcuts/useShortcuts.ts +85 -0
  80. package/src/runes/plugins/money/deno.json +8 -0
  81. package/{dist/ui/features/config → src/runes/plugins/money/src}/CurrencySelector.svelte +2 -2
  82. package/{dist/ui/components/money → src/runes/plugins/money/src}/MoneyDisplay.svelte +2 -2
  83. package/{dist/ui/components/money → src/runes/plugins/money/src}/MoneyInput.svelte +4 -8
  84. package/src/runes/plugins/money/src/currency.svelte.ts +95 -0
  85. package/src/runes/plugins/money/src/currency.test.ts +40 -0
  86. package/src/runes/plugins/money/src/exchange-rate.svelte.ts +176 -0
  87. package/src/runes/plugins/money/src/exchange-rate.test.ts +95 -0
  88. package/src/runes/plugins/money/src/mod.ts +79 -0
  89. package/src/runes/plugins/money/src/money-primitive.test.ts +217 -0
  90. package/src/runes/plugins/money/src/money-primitive.ts +220 -0
  91. package/src/runes/plugins/money/src/money.test.ts +183 -0
  92. package/src/runes/plugins/money/src/money.ts +382 -0
  93. package/src/runes/plugins/money/src/strategies.test.ts +143 -0
  94. package/{dist/core/exchange-rate/strategies.js → src/runes/plugins/money/src/strategies.ts} +45 -22
  95. package/src/runes/plugins/money/src/types.ts +27 -0
  96. package/src/runes/plugins/money/src/useMoney.ts +261 -0
  97. package/src/runes/plugins/money/src/useMoneyFilter.ts +132 -0
  98. package/tsconfig.json +41 -0
  99. package/vite.config.ts +44 -0
  100. package/dist/core/design-tokens/props.d.ts +0 -52
  101. package/dist/core/design-tokens/props.d.ts.map +0 -1
  102. package/dist/core/design-tokens/props.js +0 -34
  103. package/dist/core/exchange-rate/strategies.d.ts +0 -52
  104. package/dist/core/exchange-rate/strategies.d.ts.map +0 -1
  105. package/dist/core/index.d.ts +0 -9
  106. package/dist/core/index.d.ts.map +0 -1
  107. package/dist/core/index.js +0 -8
  108. package/dist/core/internal/message-resolver.d.ts +0 -42
  109. package/dist/core/internal/message-resolver.d.ts.map +0 -1
  110. package/dist/core/internal/message-resolver.js +0 -47
  111. package/dist/core/layout/types.d.ts +0 -60
  112. package/dist/core/layout/types.d.ts.map +0 -1
  113. package/dist/core/layout/types.js +0 -4
  114. package/dist/core/money/index.d.ts +0 -2
  115. package/dist/core/money/index.d.ts.map +0 -1
  116. package/dist/core/money/index.js +0 -2
  117. package/dist/core/money/money-primitive.d.ts +0 -101
  118. package/dist/core/money/money-primitive.d.ts.map +0 -1
  119. package/dist/core/money/money-primitive.js +0 -161
  120. package/dist/core/money/money.d.ts +0 -129
  121. package/dist/core/money/money.d.ts.map +0 -1
  122. package/dist/core/money/money.js +0 -250
  123. package/dist/core/persistence/types.d.ts +0 -18
  124. package/dist/core/persistence/types.d.ts.map +0 -1
  125. package/dist/core/persistence/types.js +0 -2
  126. package/dist/core/shortcuts/types.d.ts +0 -60
  127. package/dist/core/shortcuts/types.d.ts.map +0 -1
  128. package/dist/core/shortcuts/types.js +0 -4
  129. package/dist/index.d.ts +0 -6
  130. package/dist/index.js +0 -7
  131. package/dist/state/api.svelte.d.ts +0 -26
  132. package/dist/state/api.svelte.js +0 -65
  133. package/dist/state/app.svelte.d.ts +0 -48
  134. package/dist/state/app.svelte.js +0 -82
  135. package/dist/state/auth/index.d.ts +0 -2
  136. package/dist/state/auth/index.js +0 -2
  137. package/dist/state/auth/session.svelte.d.ts +0 -40
  138. package/dist/state/auth/session.svelte.js +0 -59
  139. package/dist/state/auth/types.d.ts +0 -30
  140. package/dist/state/auth/types.js +0 -3
  141. package/dist/state/cart.svelte.d.ts +0 -64
  142. package/dist/state/cart.svelte.js +0 -122
  143. package/dist/state/commands.svelte.d.ts +0 -46
  144. package/dist/state/commands.svelte.js +0 -62
  145. package/dist/state/composables/useMoney.d.ts +0 -31
  146. package/dist/state/composables/useMoney.js +0 -126
  147. package/dist/state/composables/useMoneyFilter.d.ts +0 -20
  148. package/dist/state/composables/useMoneyFilter.js +0 -81
  149. package/dist/state/composables/usePersistence.d.ts +0 -2
  150. package/dist/state/composables/usePersistence.js +0 -5
  151. package/dist/state/composables/useRuneLab.d.ts +0 -19
  152. package/dist/state/composables/useRuneLab.js +0 -30
  153. package/dist/state/composables/useShortcuts.d.ts +0 -33
  154. package/dist/state/composables/useShortcuts.js +0 -75
  155. package/dist/state/context.d.ts +0 -15
  156. package/dist/state/context.js +0 -16
  157. package/dist/state/createConfigStore.svelte.d.ts +0 -28
  158. package/dist/state/createConfigStore.svelte.js +0 -72
  159. package/dist/state/currency.svelte.d.ts +0 -32
  160. package/dist/state/currency.svelte.js +0 -96
  161. package/dist/state/currency.test.d.ts +0 -1
  162. package/dist/state/currency.test.js +0 -35
  163. package/dist/state/exchange-rate.svelte.d.ts +0 -43
  164. package/dist/state/exchange-rate.svelte.js +0 -145
  165. package/dist/state/exchange-rate.test.d.ts +0 -1
  166. package/dist/state/exchange-rate.test.js +0 -75
  167. package/dist/state/index.d.ts +0 -26
  168. package/dist/state/index.js +0 -32
  169. package/dist/state/language.svelte.d.ts +0 -57
  170. package/dist/state/language.svelte.js +0 -43
  171. package/dist/state/layout.svelte.d.ts +0 -49
  172. package/dist/state/layout.svelte.js +0 -108
  173. package/dist/state/persistence/drivers.d.ts +0 -12
  174. package/dist/state/persistence/drivers.js +0 -75
  175. package/dist/state/persistence/drivers.test.d.ts +0 -1
  176. package/dist/state/persistence/drivers.test.js +0 -79
  177. package/dist/state/persistence/provider.d.ts +0 -23
  178. package/dist/state/persistence/provider.test.d.ts +0 -1
  179. package/dist/state/persistence/provider.test.js +0 -51
  180. package/dist/state/registry/index.d.ts +0 -44
  181. package/dist/state/registry/index.js +0 -58
  182. package/dist/state/registry/registry.test.d.ts +0 -1
  183. package/dist/state/registry/registry.test.js +0 -112
  184. package/dist/state/registry/types.d.ts +0 -20
  185. package/dist/state/registry/types.js +0 -3
  186. package/dist/state/shortcuts.svelte.d.ts +0 -121
  187. package/dist/state/shortcuts.svelte.js +0 -222
  188. package/dist/state/theme.svelte.d.ts +0 -15
  189. package/dist/state/theme.svelte.js +0 -92
  190. package/dist/state/toast-bridge.d.ts +0 -29
  191. package/dist/state/toast-bridge.js +0 -43
  192. package/dist/state/toast.svelte.d.ts +0 -27
  193. package/dist/state/toast.svelte.js +0 -43
  194. package/dist/ui/actions/portal.d.ts +0 -7
  195. package/dist/ui/actions/portal.js +0 -32
  196. package/dist/ui/components/ApiMonitor.svelte +0 -162
  197. package/dist/ui/components/ApiMonitor.svelte.d.ts +0 -3
  198. package/dist/ui/components/Icon.svelte +0 -108
  199. package/dist/ui/components/Icon.svelte.d.ts +0 -14
  200. package/dist/ui/components/Kyntharil.svelte +0 -48
  201. package/dist/ui/components/Kyntharil.svelte.d.ts +0 -6
  202. package/dist/ui/components/RuneProvider.svelte +0 -218
  203. package/dist/ui/components/RuneProvider.svelte.d.ts +0 -49
  204. package/dist/ui/components/Toaster.svelte.d.ts +0 -18
  205. package/dist/ui/components/money/MoneyDisplay.svelte.d.ts +0 -33
  206. package/dist/ui/components/money/MoneyDisplay.svelte.test.d.ts +0 -1
  207. package/dist/ui/components/money/MoneyDisplay.svelte.test.js +0 -117
  208. package/dist/ui/components/money/MoneyInput.svelte.d.ts +0 -34
  209. package/dist/ui/components/money/index.d.ts +0 -2
  210. package/dist/ui/components/money/index.js +0 -3
  211. package/dist/ui/components/user/UserAvatar.svelte +0 -66
  212. package/dist/ui/components/user/UserAvatar.svelte.d.ts +0 -13
  213. package/dist/ui/components/user/UserProfile.svelte +0 -79
  214. package/dist/ui/components/user/UserProfile.svelte.d.ts +0 -17
  215. package/dist/ui/components/user/index.d.ts +0 -2
  216. package/dist/ui/components/user/index.js +0 -3
  217. package/dist/ui/features/command-palette/CommandPalette.svelte.d.ts +0 -6
  218. package/dist/ui/features/config/APP_CONFIGURATIONS.d.ts +0 -29
  219. package/dist/ui/features/config/APP_CONFIGURATIONS.js +0 -38
  220. package/dist/ui/features/config/AppSettingSelector.svelte.d.ts +0 -13
  221. package/dist/ui/features/config/CurrencySelector.svelte.d.ts +0 -8
  222. package/dist/ui/features/config/LanguageSelector.svelte.d.ts +0 -8
  223. package/dist/ui/features/config/ResourceSelector.svelte.d.ts +0 -25
  224. package/dist/ui/features/config/ThemeSelector.svelte.d.ts +0 -8
  225. package/dist/ui/features/notifications/NotificationBell.svelte.d.ts +0 -11
  226. package/dist/ui/features/notifications/index.d.ts +0 -1
  227. package/dist/ui/features/notifications/index.js +0 -2
  228. package/dist/ui/features/shortcuts/ShortcutBinder.svelte +0 -17
  229. package/dist/ui/features/shortcuts/ShortcutBinder.svelte.d.ts +0 -7
  230. package/dist/ui/features/shortcuts/ShortcutPalette.svelte.d.ts +0 -6
  231. package/dist/ui/index.d.ts +0 -30
  232. package/dist/ui/index.js +0 -46
  233. package/dist/ui/layout/ConnectedNavigationPanel.svelte.d.ts +0 -10
  234. package/dist/ui/layout/ConnectedWorkspaceStrip.svelte.d.ts +0 -9
  235. package/dist/ui/layout/ContentArea.svelte.d.ts +0 -8
  236. package/dist/ui/layout/DetailPanel.svelte.d.ts +0 -7
  237. package/dist/ui/layout/NavigationPanel.svelte.d.ts +0 -14
  238. package/dist/ui/layout/WorkspaceLayout.svelte.d.ts +0 -32
  239. package/dist/ui/layout/WorkspaceStrip.svelte.d.ts +0 -11
  240. package/dist/ui/layout/connection-factory.d.ts +0 -50
  241. package/dist/ui/layout/connection-factory.js +0 -58
  242. package/dist/ui/layout/index.d.ts +0 -7
  243. package/dist/ui/layout/index.js +0 -7
  244. package/dist/ui/paraglide/README.md +0 -147
  245. package/dist/ui/paraglide/messages/_index.d.ts +0 -87
  246. package/dist/ui/paraglide/messages/_index.js +0 -88
  247. package/dist/ui/paraglide/messages/abyss.d.ts +0 -16
  248. package/dist/ui/paraglide/messages/abyss.js +0 -84
  249. package/dist/ui/paraglide/messages/acid.d.ts +0 -16
  250. package/dist/ui/paraglide/messages/acid.js +0 -84
  251. package/dist/ui/paraglide/messages/active_toasts.d.ts +0 -16
  252. package/dist/ui/paraglide/messages/active_toasts.js +0 -84
  253. package/dist/ui/paraglide/messages/aed3.d.ts +0 -17
  254. package/dist/ui/paraglide/messages/aed3.js +0 -85
  255. package/dist/ui/paraglide/messages/all_currencies.d.ts +0 -16
  256. package/dist/ui/paraglide/messages/all_currencies.js +0 -84
  257. package/dist/ui/paraglide/messages/all_languages.d.ts +0 -16
  258. package/dist/ui/paraglide/messages/all_languages.js +0 -84
  259. package/dist/ui/paraglide/messages/all_themes.d.ts +0 -16
  260. package/dist/ui/paraglide/messages/all_themes.js +0 -84
  261. package/dist/ui/paraglide/messages/api_status.d.ts +0 -16
  262. package/dist/ui/paraglide/messages/api_status.js +0 -84
  263. package/dist/ui/paraglide/messages/app_info.d.ts +0 -16
  264. package/dist/ui/paraglide/messages/app_info.js +0 -84
  265. package/dist/ui/paraglide/messages/appearance.d.ts +0 -16
  266. package/dist/ui/paraglide/messages/appearance.js +0 -84
  267. package/dist/ui/paraglide/messages/aqua.d.ts +0 -16
  268. package/dist/ui/paraglide/messages/aqua.js +0 -84
  269. package/dist/ui/paraglide/messages/ar.d.ts +0 -16
  270. package/dist/ui/paraglide/messages/ar.js +0 -84
  271. package/dist/ui/paraglide/messages/autumn.d.ts +0 -16
  272. package/dist/ui/paraglide/messages/autumn.js +0 -84
  273. package/dist/ui/paraglide/messages/black.d.ts +0 -16
  274. package/dist/ui/paraglide/messages/black.js +0 -84
  275. package/dist/ui/paraglide/messages/brl3.d.ts +0 -17
  276. package/dist/ui/paraglide/messages/brl3.js +0 -85
  277. package/dist/ui/paraglide/messages/bumblebee.d.ts +0 -16
  278. package/dist/ui/paraglide/messages/bumblebee.js +0 -84
  279. package/dist/ui/paraglide/messages/business.d.ts +0 -16
  280. package/dist/ui/paraglide/messages/business.js +0 -84
  281. package/dist/ui/paraglide/messages/cad3.d.ts +0 -17
  282. package/dist/ui/paraglide/messages/cad3.js +0 -85
  283. package/dist/ui/paraglide/messages/caramellatte.d.ts +0 -16
  284. package/dist/ui/paraglide/messages/caramellatte.js +0 -84
  285. package/dist/ui/paraglide/messages/cmyk.d.ts +0 -16
  286. package/dist/ui/paraglide/messages/cmyk.js +0 -84
  287. package/dist/ui/paraglide/messages/cny3.d.ts +0 -17
  288. package/dist/ui/paraglide/messages/cny3.js +0 -85
  289. package/dist/ui/paraglide/messages/coffee.d.ts +0 -16
  290. package/dist/ui/paraglide/messages/coffee.js +0 -84
  291. package/dist/ui/paraglide/messages/commands_label.d.ts +0 -16
  292. package/dist/ui/paraglide/messages/commands_label.js +0 -84
  293. package/dist/ui/paraglide/messages/corporate.d.ts +0 -16
  294. package/dist/ui/paraglide/messages/corporate.js +0 -84
  295. package/dist/ui/paraglide/messages/cupcake.d.ts +0 -16
  296. package/dist/ui/paraglide/messages/cupcake.js +0 -84
  297. package/dist/ui/paraglide/messages/currency.d.ts +0 -16
  298. package/dist/ui/paraglide/messages/currency.js +0 -84
  299. package/dist/ui/paraglide/messages/current_currency.d.ts +0 -16
  300. package/dist/ui/paraglide/messages/current_currency.js +0 -84
  301. package/dist/ui/paraglide/messages/current_language.d.ts +0 -16
  302. package/dist/ui/paraglide/messages/current_language.js +0 -84
  303. package/dist/ui/paraglide/messages/current_theme.d.ts +0 -16
  304. package/dist/ui/paraglide/messages/current_theme.js +0 -84
  305. package/dist/ui/paraglide/messages/currently_in_queue.d.ts +0 -16
  306. package/dist/ui/paraglide/messages/currently_in_queue.js +0 -84
  307. package/dist/ui/paraglide/messages/cyberpunk.d.ts +0 -16
  308. package/dist/ui/paraglide/messages/cyberpunk.js +0 -84
  309. package/dist/ui/paraglide/messages/dark.d.ts +0 -16
  310. package/dist/ui/paraglide/messages/dark.js +0 -84
  311. package/dist/ui/paraglide/messages/de.d.ts +0 -16
  312. package/dist/ui/paraglide/messages/de.js +0 -84
  313. package/dist/ui/paraglide/messages/dim.d.ts +0 -16
  314. package/dist/ui/paraglide/messages/dim.js +0 -84
  315. package/dist/ui/paraglide/messages/dracula.d.ts +0 -16
  316. package/dist/ui/paraglide/messages/dracula.js +0 -84
  317. package/dist/ui/paraglide/messages/emerald.d.ts +0 -16
  318. package/dist/ui/paraglide/messages/emerald.js +0 -84
  319. package/dist/ui/paraglide/messages/en.d.ts +0 -16
  320. package/dist/ui/paraglide/messages/en.js +0 -84
  321. package/dist/ui/paraglide/messages/es.d.ts +0 -16
  322. package/dist/ui/paraglide/messages/es.js +0 -84
  323. package/dist/ui/paraglide/messages/eur3.d.ts +0 -17
  324. package/dist/ui/paraglide/messages/eur3.js +0 -85
  325. package/dist/ui/paraglide/messages/extended_controls.d.ts +0 -16
  326. package/dist/ui/paraglide/messages/extended_controls.js +0 -84
  327. package/dist/ui/paraglide/messages/fantasy.d.ts +0 -16
  328. package/dist/ui/paraglide/messages/fantasy.js +0 -84
  329. package/dist/ui/paraglide/messages/forest.d.ts +0 -16
  330. package/dist/ui/paraglide/messages/forest.js +0 -84
  331. package/dist/ui/paraglide/messages/fr.d.ts +0 -16
  332. package/dist/ui/paraglide/messages/fr.js +0 -84
  333. package/dist/ui/paraglide/messages/garden.d.ts +0 -16
  334. package/dist/ui/paraglide/messages/garden.js +0 -84
  335. package/dist/ui/paraglide/messages/gbp3.d.ts +0 -17
  336. package/dist/ui/paraglide/messages/gbp3.js +0 -85
  337. package/dist/ui/paraglide/messages/halloween.d.ts +0 -16
  338. package/dist/ui/paraglide/messages/halloween.js +0 -84
  339. package/dist/ui/paraglide/messages/hello_world.d.ts +0 -18
  340. package/dist/ui/paraglide/messages/hello_world.js +0 -84
  341. package/dist/ui/paraglide/messages/hi.d.ts +0 -16
  342. package/dist/ui/paraglide/messages/hi.js +0 -84
  343. package/dist/ui/paraglide/messages/inr3.d.ts +0 -17
  344. package/dist/ui/paraglide/messages/inr3.js +0 -85
  345. package/dist/ui/paraglide/messages/it.d.ts +0 -16
  346. package/dist/ui/paraglide/messages/it.js +0 -84
  347. package/dist/ui/paraglide/messages/ja.d.ts +0 -16
  348. package/dist/ui/paraglide/messages/ja.js +0 -84
  349. package/dist/ui/paraglide/messages/jpy3.d.ts +0 -17
  350. package/dist/ui/paraglide/messages/jpy3.js +0 -85
  351. package/dist/ui/paraglide/messages/ko.d.ts +0 -16
  352. package/dist/ui/paraglide/messages/ko.js +0 -84
  353. package/dist/ui/paraglide/messages/krw3.d.ts +0 -17
  354. package/dist/ui/paraglide/messages/krw3.js +0 -85
  355. package/dist/ui/paraglide/messages/languages.d.ts +0 -16
  356. package/dist/ui/paraglide/messages/languages.js +0 -84
  357. package/dist/ui/paraglide/messages/lemonade.d.ts +0 -16
  358. package/dist/ui/paraglide/messages/lemonade.js +0 -84
  359. package/dist/ui/paraglide/messages/light.d.ts +0 -16
  360. package/dist/ui/paraglide/messages/light.js +0 -84
  361. package/dist/ui/paraglide/messages/live_store_dashboard.d.ts +0 -16
  362. package/dist/ui/paraglide/messages/live_store_dashboard.js +0 -84
  363. package/dist/ui/paraglide/messages/localization.d.ts +0 -16
  364. package/dist/ui/paraglide/messages/localization.js +0 -84
  365. package/dist/ui/paraglide/messages/lofi.d.ts +0 -16
  366. package/dist/ui/paraglide/messages/lofi.js +0 -84
  367. package/dist/ui/paraglide/messages/luxury.d.ts +0 -16
  368. package/dist/ui/paraglide/messages/luxury.js +0 -84
  369. package/dist/ui/paraglide/messages/mxn3.d.ts +0 -17
  370. package/dist/ui/paraglide/messages/mxn3.js +0 -85
  371. package/dist/ui/paraglide/messages/name_label.d.ts +0 -16
  372. package/dist/ui/paraglide/messages/name_label.js +0 -84
  373. package/dist/ui/paraglide/messages/night.d.ts +0 -16
  374. package/dist/ui/paraglide/messages/night.js +0 -84
  375. package/dist/ui/paraglide/messages/nord.d.ts +0 -16
  376. package/dist/ui/paraglide/messages/nord.js +0 -84
  377. package/dist/ui/paraglide/messages/pastel.d.ts +0 -16
  378. package/dist/ui/paraglide/messages/pastel.js +0 -84
  379. package/dist/ui/paraglide/messages/pt.d.ts +0 -16
  380. package/dist/ui/paraglide/messages/pt.js +0 -84
  381. package/dist/ui/paraglide/messages/real_time_monitor_desc.d.ts +0 -16
  382. package/dist/ui/paraglide/messages/real_time_monitor_desc.js +0 -84
  383. package/dist/ui/paraglide/messages/registered_in_registry.d.ts +0 -16
  384. package/dist/ui/paraglide/messages/registered_in_registry.js +0 -84
  385. package/dist/ui/paraglide/messages/retro.d.ts +0 -16
  386. package/dist/ui/paraglide/messages/retro.js +0 -84
  387. package/dist/ui/paraglide/messages/ru.d.ts +0 -16
  388. package/dist/ui/paraglide/messages/ru.js +0 -84
  389. package/dist/ui/paraglide/messages/silk.d.ts +0 -16
  390. package/dist/ui/paraglide/messages/silk.js +0 -84
  391. package/dist/ui/paraglide/messages/state_label.d.ts +0 -16
  392. package/dist/ui/paraglide/messages/state_label.js +0 -84
  393. package/dist/ui/paraglide/messages/sunset.d.ts +0 -16
  394. package/dist/ui/paraglide/messages/sunset.js +0 -84
  395. package/dist/ui/paraglide/messages/synthwave.d.ts +0 -16
  396. package/dist/ui/paraglide/messages/synthwave.js +0 -84
  397. package/dist/ui/paraglide/messages/system.d.ts +0 -16
  398. package/dist/ui/paraglide/messages/system.js +0 -84
  399. package/dist/ui/paraglide/messages/theme.d.ts +0 -16
  400. package/dist/ui/paraglide/messages/theme.js +0 -84
  401. package/dist/ui/paraglide/messages/themes.d.ts +0 -16
  402. package/dist/ui/paraglide/messages/themes.js +0 -84
  403. package/dist/ui/paraglide/messages/url_label.d.ts +0 -16
  404. package/dist/ui/paraglide/messages/url_label.js +0 -84
  405. package/dist/ui/paraglide/messages/usd3.d.ts +0 -17
  406. package/dist/ui/paraglide/messages/usd3.js +0 -85
  407. package/dist/ui/paraglide/messages/valentine.d.ts +0 -16
  408. package/dist/ui/paraglide/messages/valentine.js +0 -84
  409. package/dist/ui/paraglide/messages/version_label.d.ts +0 -16
  410. package/dist/ui/paraglide/messages/version_label.js +0 -84
  411. package/dist/ui/paraglide/messages/vi.d.ts +0 -16
  412. package/dist/ui/paraglide/messages/vi.js +0 -84
  413. package/dist/ui/paraglide/messages/winter.d.ts +0 -16
  414. package/dist/ui/paraglide/messages/winter.js +0 -84
  415. package/dist/ui/paraglide/messages/wireframe.d.ts +0 -16
  416. package/dist/ui/paraglide/messages/wireframe.js +0 -84
  417. package/dist/ui/paraglide/messages/zh.d.ts +0 -16
  418. package/dist/ui/paraglide/messages/zh.js +0 -84
  419. package/dist/ui/paraglide/messages.d.ts +0 -2
  420. package/dist/ui/paraglide/messages.js +0 -4
  421. package/dist/ui/paraglide/registry.d.ts +0 -21
  422. package/dist/ui/paraglide/registry.js +0 -31
  423. package/dist/ui/paraglide/runtime.d.ts +0 -730
  424. package/dist/ui/paraglide/runtime.js +0 -1812
  425. package/dist/ui/paraglide/server.d.ts +0 -92
  426. package/dist/ui/paraglide/server.js +0 -239
  427. package/dist/ui/primitives/DatePicker.svelte +0 -257
  428. package/dist/ui/primitives/DatePicker.svelte.d.ts +0 -17
  429. package/dist/ui/primitives/index.d.ts +0 -1
  430. package/dist/ui/primitives/index.js +0 -3
  431. /package/{dist/ui/layout → src/runes/layout/src}/ContentArea.svelte +0 -0
  432. /package/{dist/ui/layout → src/runes/layout/src}/DetailPanel.svelte +0 -0
  433. /package/{dist/ui/features → src/runes/palettes/src}/notifications/NotificationBell.svelte +0 -0
@@ -1,92 +0,0 @@
1
- // @ts-nocheck: legacy daisyui imports and complex ConfigStore typing
2
- // client/packages/ui/src/state/theme-config.svelte.ts
3
- import { createConfigStore, } from "./createConfigStore.svelte.ts";
4
- import { getContext } from "svelte";
5
- import { RUNE_LAB_CONTEXT } from "./context.ts";
6
- // Icon map for known themes - unknown ones fall back to 🎨
7
- const THEME_ICONS = {
8
- light: "🌞",
9
- dark: "🌙",
10
- cupcake: "🧁",
11
- bumblebee: "🐝",
12
- emerald: "💚",
13
- corporate: "🏢",
14
- synthwave: "🌆",
15
- retro: "📺",
16
- cyberpunk: "🤖",
17
- valentine: "💝",
18
- halloween: "🎃",
19
- garden: "🌷",
20
- forest: "🌲",
21
- aqua: "💧",
22
- lofi: "🎵",
23
- pastel: "🎨",
24
- fantasy: "🔮",
25
- wireframe: "📝",
26
- black: "⚫",
27
- luxury: "👑",
28
- dracula: "🧛",
29
- cmyk: "🖨️",
30
- autumn: "🍂",
31
- business: "💼",
32
- acid: "🧪",
33
- lemonade: "🍋",
34
- night: "🌃",
35
- coffee: "☕",
36
- winter: "❄️",
37
- dim: "🔅",
38
- nord: "🧊",
39
- sunset: "🌅",
40
- caramellatte: "🍮",
41
- abyss: "🌌",
42
- silk: "🎀",
43
- };
44
- import { resolveDriver } from "./persistence/provider.ts";
45
- import themeOrder from "daisyui/functions/themeOrder.js";
46
- import { BROWSER } from "esm-env";
47
- // Derived from daisyUI directly — stays in sync automatically
48
- const THEMES = themeOrder.map((name) => ({
49
- name,
50
- icon: THEME_ICONS[name] ?? "🎨",
51
- }));
52
- export function createThemeStore(driverOrOptions) {
53
- // Normalize overloaded argument
54
- const opts = driverOrOptions && typeof driverOrOptions === "object" &&
55
- "driver" in driverOrOptions
56
- ? driverOrOptions
57
- : {
58
- driver: driverOrOptions,
59
- };
60
- const resolvedDriver = resolveDriver(opts.driver);
61
- const store = createConfigStore({
62
- items: THEMES,
63
- storageKey: "theme",
64
- displayName: "Theme",
65
- idKey: "name",
66
- icon: "🎨",
67
- driver: resolvedDriver,
68
- });
69
- // Append custom themes if provided
70
- if (opts.customThemes?.length) {
71
- store.addItems(opts.customThemes);
72
- }
73
- // System preference detection — only if no persisted value was loaded
74
- if (!resolvedDriver?.get("theme") && BROWSER) {
75
- const prefersDark = globalThis.matchMedia("(prefers-color-scheme: dark)").matches;
76
- const systemDefault = prefersDark ? "dark" : "light";
77
- const chosen = opts.defaultTheme ?? systemDefault;
78
- if (store.get(chosen)) {
79
- store.set(chosen);
80
- }
81
- }
82
- else if (!resolvedDriver?.get("theme") && opts.defaultTheme) {
83
- // SSR / non-browser: use defaultTheme if provided
84
- if (store.get(opts.defaultTheme)) {
85
- store.set(opts.defaultTheme);
86
- }
87
- }
88
- return store;
89
- }
90
- export function getThemeStore() {
91
- return getContext(RUNE_LAB_CONTEXT.theme);
92
- }
@@ -1,29 +0,0 @@
1
- import type { ToastStore, ToastType } from "./toast.svelte.ts";
2
- /**
3
- * Notifies the global toast system.
4
- * If called before the ToastStore is initialized (e.g., in a module-level store),
5
- * it queues the toast and flushes it once wired.
6
- *
7
- * @clientOnly — Not safe for use in SSR contexts. Module-level state persists across requests.
8
- */
9
- export declare function notify(message: string, type?: ToastType, duration?: number): void;
10
- /**
11
- * Wires the global `notify` function to an active ToastStore instance.
12
- * Automatically flushes any queued toasts.
13
- */
14
- export declare function wire(store: ToastStore): void;
15
- /**
16
- * Escape hatch for module-level stores to send toasts without Svelte context.
17
- *
18
- * @example
19
- * ```ts
20
- * import { createToastBridge } from "rune-lab";
21
- * const { notify } = createToastBridge();
22
- *
23
- * notify("Logged in successfully", "success");
24
- * ```
25
- */
26
- export declare const createToastBridge: () => {
27
- notify: typeof notify;
28
- wire: typeof wire;
29
- };
@@ -1,43 +0,0 @@
1
- const queue = [];
2
- let activeStore = null;
3
- /**
4
- * Notifies the global toast system.
5
- * If called before the ToastStore is initialized (e.g., in a module-level store),
6
- * it queues the toast and flushes it once wired.
7
- *
8
- * @clientOnly — Not safe for use in SSR contexts. Module-level state persists across requests.
9
- */
10
- export function notify(message, type = "info", duration) {
11
- if (typeof window === "undefined")
12
- return; // No-op on server
13
- if (activeStore) {
14
- activeStore.send(message, type, duration ?? 3000);
15
- }
16
- else {
17
- queue.push({ message, type, duration });
18
- }
19
- }
20
- /**
21
- * Wires the global `notify` function to an active ToastStore instance.
22
- * Automatically flushes any queued toasts.
23
- */
24
- export function wire(store) {
25
- activeStore = store;
26
- while (queue.length > 0) {
27
- const next = queue.shift();
28
- if (next)
29
- store.send(next.message, next.type, next.duration ?? 3000);
30
- }
31
- }
32
- /**
33
- * Escape hatch for module-level stores to send toasts without Svelte context.
34
- *
35
- * @example
36
- * ```ts
37
- * import { createToastBridge } from "rune-lab";
38
- * const { notify } = createToastBridge();
39
- *
40
- * notify("Logged in successfully", "success");
41
- * ```
42
- */
43
- export const createToastBridge = () => ({ notify, wire });
@@ -1,27 +0,0 @@
1
- /**
2
- * Toast notification store
3
- */
4
- export type ToastType = "info" | "success" | "warning" | "error";
5
- export interface Toast {
6
- id: string;
7
- message: string;
8
- type: ToastType;
9
- duration?: number;
10
- }
11
- export declare class ToastStore {
12
- toasts: Toast[];
13
- /**
14
- * Add a new toast
15
- */
16
- send(message: string, type?: ToastType, duration?: number): void;
17
- /**
18
- * Remove a toast by id
19
- */
20
- dismiss(id: string): void;
21
- success(msg: string): void;
22
- error(msg: string): void;
23
- warn(msg: string): void;
24
- info(msg: string): void;
25
- }
26
- export declare function createToastStore(): ToastStore;
27
- export declare function getToastStore(): ToastStore;
@@ -1,43 +0,0 @@
1
- import { getContext } from "svelte";
2
- import { RUNE_LAB_CONTEXT } from "./context.ts";
3
- export class ToastStore {
4
- toasts = $state([]);
5
- /**
6
- * Add a new toast
7
- */
8
- send(message, type = "info", duration = 3000) {
9
- const id = crypto.randomUUID();
10
- const toast = { id, message, type, duration };
11
- this.toasts.push(toast);
12
- if (duration > 0) {
13
- setTimeout(() => {
14
- this.dismiss(id);
15
- }, duration);
16
- }
17
- }
18
- /**
19
- * Remove a toast by id
20
- */
21
- dismiss(id) {
22
- this.toasts = this.toasts.filter((t) => t.id !== id);
23
- }
24
- // Helper methods
25
- success(msg) {
26
- this.send(msg, "success");
27
- }
28
- error(msg) {
29
- this.send(msg, "error");
30
- }
31
- warn(msg) {
32
- this.send(msg, "warning");
33
- }
34
- info(msg) {
35
- this.send(msg, "info");
36
- }
37
- }
38
- export function createToastStore() {
39
- return new ToastStore();
40
- }
41
- export function getToastStore() {
42
- return getContext(RUNE_LAB_CONTEXT.toast);
43
- }
@@ -1,7 +0,0 @@
1
- /**
2
- * Svelte action to teleport a DOM element to a different target (e.g. body)
3
- */
4
- export declare function portal(node: HTMLElement, target?: string | HTMLElement): {
5
- update: (newTarget: string | HTMLElement) => void;
6
- destroy(): void;
7
- };
@@ -1,32 +0,0 @@
1
- import { DEV } from "esm-env";
2
- /**
3
- * Svelte action to teleport a DOM element to a different target (e.g. body)
4
- */
5
- export function portal(node, target = "body") {
6
- let targetNode;
7
- let isTeleported = false;
8
- function update(newTarget) {
9
- if (typeof newTarget === "string") {
10
- targetNode = document.querySelector(newTarget);
11
- if (!targetNode && DEV) {
12
- console.warn(`portal target selector "${newTarget}" not found in document.`);
13
- }
14
- }
15
- else {
16
- targetNode = newTarget;
17
- }
18
- if (targetNode) {
19
- targetNode.appendChild(node);
20
- isTeleported = true;
21
- }
22
- }
23
- update(target);
24
- return {
25
- update,
26
- destroy() {
27
- if (isTeleported && node.parentNode) {
28
- node.parentNode.removeChild(node);
29
- }
30
- },
31
- };
32
- }
@@ -1,162 +0,0 @@
1
- <script lang="ts">
2
- import { getApiStore } from "@internal/state";
3
- import { getToastStore } from "@internal/state";
4
-
5
- const apiStore = getApiStore();
6
- const toastStore = getToastStore();
7
-
8
- let copied = $state(false);
9
- let isVisible = $state(true);
10
-
11
- function copyToClipboard() {
12
- navigator.clipboard.writeText(apiStore.URL);
13
- copied = true;
14
- toastStore.success("API URL copied to clipboard!");
15
- setTimeout(() => (copied = false), 2000);
16
- }
17
-
18
- function handleKeyDown(event: KeyboardEvent) {
19
- if (event.key === "Enter" || event.key === " ") {
20
- copyToClipboard();
21
- }
22
- }
23
-
24
- const containerClass = $derived(`
25
- fixed bottom-4 left-4 z-50
26
- flex items-center space-x-2
27
- transition-all duration-300 transform
28
- ${isVisible ? "translate-y-0 opacity-100" : "translate-y-16 opacity-0"}
29
- `);
30
- </script>
31
-
32
- <div class={containerClass}>
33
- <div
34
- class="flex items-center space-x-2 backdrop-blur-sm bg-base-300/80 rounded-xl p-1 shadow-lg border border-base-content/10"
35
- >
36
- <!-- API Status Indicator -->
37
- {#if apiStore.IS_CONNECTED}
38
- <div class="tooltip tooltip-right" data-tip="Connected">
39
- <div
40
- aria-label="success"
41
- class="status status-success status-md"
42
- ></div>
43
- </div>
44
- {:else if apiStore.IS_LOADING}
45
- <div class="tooltip tooltip-right" data-tip="Connecting...">
46
- <div class="inline-grid *:[grid-area:1/1]">
47
- <div class="status status-warning animate-ping"></div>
48
- <div class="status status-warning"></div>
49
- </div>
50
- </div>
51
- {:else}
52
- <div class="tooltip tooltip-right" data-tip="Disconnected">
53
- <div class="status status-error animate-bounce"></div>
54
- </div>
55
- {/if}
56
-
57
- <!-- API Docs / Reload -->
58
- {#if apiStore.connectionState === "connected"}
59
- <button
60
- class="btn btn-circle btn-xs btn-primary"
61
- onclick={() => window.open(`${apiStore.URL}/docs`, "_blank")}
62
- aria-label="Go to API Documentation"
63
- >
64
- <svg
65
- xmlns="http://www.w3.org/2000/svg"
66
- width="14"
67
- height="14"
68
- viewBox="0 0 24 24"
69
- fill="none"
70
- stroke="currentColor"
71
- stroke-width="2"
72
- stroke-linecap="round"
73
- stroke-linejoin="round"
74
- ><path
75
- d="M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H20v20H6.5a2.5 2.5 0 0 1-0-5H20"
76
- /></svg
77
- >
78
- </button>
79
- {:else}
80
- <button
81
- class="btn btn-circle btn-xs btn-error"
82
- onclick={() => apiStore.reconnect()}
83
- aria-label="Reconnect to API"
84
- disabled={apiStore.connectionState === "connecting"}
85
- >
86
- <svg
87
- xmlns="http://www.w3.org/2000/svg"
88
- width="14"
89
- height="14"
90
- viewBox="0 0 24 24"
91
- fill="none"
92
- stroke="currentColor"
93
- stroke-width="2"
94
- stroke-linecap="round"
95
- stroke-linejoin="round"
96
- class={apiStore.connectionState === "connecting"
97
- ? "animate-spin"
98
- : ""}
99
- ><path
100
- d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8"
101
- /><path d="M21 3v5h-5" /><path
102
- d="M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16"
103
- /><path d="M3 21v-5h5" /></svg
104
- >
105
- </button>
106
- {/if}
107
-
108
- <button
109
- class="group flex items-center space-x-2 px-3 py-1 rounded-lg hover:bg-base-200 transition-colors duration-200"
110
- onclick={copyToClipboard}
111
- onkeydown={handleKeyDown}
112
- aria-label="Copy API URL"
113
- >
114
- <span class="text-xs font-mono"
115
- >{apiStore.URL.replace(
116
- /^https?:\/\//,
117
- "",
118
- )}/{apiStore.VERSION}</span
119
- >
120
- {#if copied}
121
- <svg
122
- xmlns="http://www.w3.org/2000/svg"
123
- width="14"
124
- height="14"
125
- viewBox="0 0 24 24"
126
- fill="none"
127
- stroke="currentColor"
128
- stroke-width="2"
129
- stroke-linecap="round"
130
- stroke-linejoin="round"
131
- class="text-success"
132
- ><circle cx="12" cy="12" r="10" /><path
133
- d="m9 12 2 2 4-4"
134
- /></svg
135
- >
136
- {:else}
137
- <svg
138
- xmlns="http://www.w3.org/2000/svg"
139
- width="14"
140
- height="14"
141
- viewBox="0 0 24 24"
142
- fill="none"
143
- stroke="currentColor"
144
- stroke-width="2"
145
- stroke-linecap="round"
146
- stroke-linejoin="round"
147
- class="opacity-50 group-hover:opacity-100 transition-all duration-200"
148
- ><rect
149
- width="14"
150
- height="14"
151
- x="8"
152
- y="8"
153
- rx="2"
154
- ry="2"
155
- /><path
156
- d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"
157
- /></svg
158
- >
159
- {/if}
160
- </button>
161
- </div>
162
- </div>
@@ -1,3 +0,0 @@
1
- declare const ApiMonitor: import("svelte").Component<Record<string, never>, {}, "">;
2
- type ApiMonitor = ReturnType<typeof ApiMonitor>;
3
- export default ApiMonitor;
@@ -1,108 +0,0 @@
1
- <script lang="ts">
2
- import { getAppStore } from "@internal/state";
3
- import { DEV } from "esm-env";
4
-
5
- /**
6
- * Simple Icon component for Rune Lab.
7
- * Centralizes SVG paths to reduce boilerplate.
8
- *
9
- * ⚠️ SECURITY: `customIcons` values (from `appStore.customIcons` or the `icons` prop)
10
- * are rendered as **unsanitized HTML** via `{@html}`. Only pass trusted SVG path strings.
11
- */
12
- let {
13
- name,
14
- size = "w-5 h-5",
15
- class: className = "",
16
- icons = {},
17
- provider = "svg",
18
- fill = 0,
19
- weight = 400,
20
- grade = 0,
21
- opsz = 24,
22
- } = $props<{
23
- name: string;
24
- size?: string;
25
- class?: string;
26
- icons?: Record<string, string>;
27
- provider?: "svg" | "material";
28
- fill?: 0 | 1;
29
- weight?: 100 | 200 | 300 | 400 | 500 | 600 | 700;
30
- grade?: -25 | 0 | 200;
31
- opsz?: 20 | 24 | 40 | 48;
32
- }>();
33
-
34
- let appStore: ReturnType<typeof getAppStore> | undefined;
35
- try {
36
- appStore = getAppStore();
37
- } catch {
38
- // Graceful fallback if Icon is used outside RuneProvider
39
- }
40
-
41
- const paths: Record<string, string> = {
42
- search:
43
- '<circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path>',
44
- "chevron-down": '<path d="m6 9 6 6 6-6" />',
45
- "chevron-right": '<path d="m9 18 6-6-6-6" />',
46
- info: '<circle cx="12" cy="12" r="10"/><path d="M12 16v-4"/><path d="M12 8h.01"/>',
47
- shortcut:
48
- '<rect width="18" height="11" x="3" y="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/>',
49
- close: '<path d="M18 6 6 18"/><path d="m6 6 12 12"/>',
50
- external:
51
- '<path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/><polyline points="15 3 21 3 21 9"/><line x1="10" y1="14" x2="21" y2="3"/>',
52
- plus: '<path d="M5 12h14"/><path d="M12 5v14"/>',
53
- minus: '<path d="M5 12h14"/>',
54
- check: '<path d="M20 6 9 17l-5-5"/>',
55
- trash:
56
- '<path d="M3 6h18"/><path d="M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"/><path d="M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2"/>',
57
- edit: '<path d="M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z"/><path d="m15 5 4 4"/>',
58
- grid: '<rect width="7" height="7" x="3" y="3" rx="1"/><rect width="7" height="7" x="14" y="3" rx="1"/><rect width="7" height="7" x="14" y="14" rx="1"/><rect width="7" height="7" x="3" y="14" rx="1"/>',
59
- list: '<line x1="8" x2="21" y1="6" y2="6"/><line x1="8" x2="21" y1="12" y2="12"/><line x1="8" x2="21" y1="18" y2="18"/><line x1="3" x2="3.01" y1="6" y2="6"/><line x1="3" x2="3.01" y1="12" y2="12"/><line x1="3" x2="3.01" y1="18" y2="18"/>',
60
- table:
61
- '<rect width="18" height="18" x="3" y="3" rx="2" ry="2"/><line x1="3" x2="21" y1="9" y2="9"/><line x1="3" x2="21" y1="15" y2="15"/><line x1="9" x2="9" y1="3" y2="21"/><line x1="15" x2="15" y1="3" y2="21"/>',
62
- "arrow-left": '<path d="m12 19-7-7 7-7"/><path d="M19 12H5"/>',
63
- "arrow-right": '<path d="M5 12h14"/><path d="m12 5 7 7-7 7"/>',
64
- menu: '<line x1="4" x2="20" y1="12" y2="12"/><line x1="4" x2="20" y1="6" y2="6"/><line x1="4" x2="20" y1="18" y2="18"/>',
65
- bell: '<path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"/><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"/>',
66
- user: '<path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/>',
67
- settings:
68
- '<path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"/><circle cx="12" cy="12" r="3"/>',
69
- logout:
70
- '<path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"/><polyline points="16 17 21 12 16 7"/><line x1="21" x2="9" y1="12" y2="12"/>',
71
- unknown:
72
- '<circle cx="12" cy="12" r="10"/><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"/><path d="M12 17h.01"/>',
73
- };
74
-
75
- const path = $derived.by(() => {
76
- if (icons[name]) return icons[name];
77
- if (appStore?.customIcons?.[name]) return appStore.customIcons[name];
78
- if (paths[name]) return paths[name];
79
-
80
- if (DEV) {
81
- console.warn(`[Icon] Unknown icon name: "${name}"`);
82
- }
83
- return paths.unknown;
84
- });
85
- </script>
86
-
87
- {#if provider === "material"}
88
- <span
89
- class="material-symbols-outlined {size} {className} select-none"
90
- style="font-variation-settings: 'FILL' {fill}, 'wght' {weight}, 'GRAD' {grade}, 'opsz' {opsz}; display: inline-flex; align-items: center; justify-content: center;"
91
- >
92
- {name}
93
- </span>
94
- {:else}
95
- <svg
96
- xmlns="http://www.w3.org/2000/svg"
97
- viewBox="0 0 24 24"
98
- fill="none"
99
- stroke="currentColor"
100
- stroke-width="2"
101
- stroke-linecap="round"
102
- stroke-linejoin="round"
103
- class="{size} {className}"
104
- >
105
- <!-- eslint-disable-next-line svelte/no-at-html-tags -->
106
- {@html path}
107
- </svg>
108
- {/if}
@@ -1,14 +0,0 @@
1
- type $$ComponentProps = {
2
- name: string;
3
- size?: string;
4
- class?: string;
5
- icons?: Record<string, string>;
6
- provider?: "svg" | "material";
7
- fill?: 0 | 1;
8
- weight?: 100 | 200 | 300 | 400 | 500 | 600 | 700;
9
- grade?: -25 | 0 | 200;
10
- opsz?: 20 | 24 | 40 | 48;
11
- };
12
- declare const Icon: import("svelte").Component<$$ComponentProps, {}, "">;
13
- type Icon = ReturnType<typeof Icon>;
14
- export default Icon;
@@ -1,48 +0,0 @@
1
- <script lang="ts">
2
- import { DEV } from "esm-env";
3
- import { portal } from "../actions/portal";
4
-
5
- /**
6
- * Kyntharil — Reactive Value Inspector
7
- * A dev-mode-only component that displays a floating panel of reactive values.
8
- */
9
- let { observe = {} } = $props<{
10
- observe?: Record<string, unknown>;
11
- }>();
12
- </script>
13
-
14
- {#if DEV}
15
- <div
16
- use:portal
17
- class="rl-kyntharil fixed bottom-4 right-4 z-[9999] max-w-sm max-h-[80vh] overflow-y-auto bg-base-300 border border-base-content/10 rounded-lg shadow-2xl p-4 font-mono text-xs select-none pointer-events-auto"
18
- >
19
- <div class="flex items-center justify-between mb-2 border-b border-base-content/10 pb-2">
20
- <span class="font-bold text-primary flex items-center gap-1">
21
- <span class="w-2 h-2 rounded-full bg-primary animate-pulse"></span>
22
- Kyntharil DevTools
23
- </span>
24
- <span class="opacity-50 text-[10px] uppercase tracking-wider">Reactive Observer</span>
25
- </div>
26
-
27
- <div class="space-y-2">
28
- {#each Object.entries(observe) as [label, value]}
29
- <div class="flex flex-col gap-0.5">
30
- <span class="text-base-content/50 text-[10px]">{label}</span>
31
- <pre class="bg-base-100 p-1.5 rounded overflow-x-auto text-success whitespace-pre-wrap break-all">{JSON.stringify(value, null, 2)}</pre>
32
- </div>
33
- {:else}
34
- <div class="text-base-content/30 italic text-center py-4">No values observed</div>
35
- {/each}
36
- </div>
37
- </div>
38
- {/if}
39
-
40
- <style>
41
- .rl-kyntharil::-webkit-scrollbar {
42
- width: 4px;
43
- }
44
- .rl-kyntharil::-webkit-scrollbar-thumb {
45
- background: rgba(0, 0, 0, 0.1);
46
- border-radius: 10px;
47
- }
48
- </style>
@@ -1,6 +0,0 @@
1
- type $$ComponentProps = {
2
- observe?: Record<string, unknown>;
3
- };
4
- declare const Kyntharil: import("svelte").Component<$$ComponentProps, {}, "">;
5
- type Kyntharil = ReturnType<typeof Kyntharil>;
6
- export default Kyntharil;