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.
Files changed (397) hide show
  1. package/.gitignore +12 -0
  2. package/README.md +4 -4
  3. package/deno.json +50 -0
  4. package/justfile +5 -0
  5. package/package.json +3 -80
  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/src/kernel/src/persistence/provider.ts +58 -0
  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 +7 -8
  52. package/{dist/ui/layout → src/runes/layout/src}/ConnectedWorkspaceStrip.svelte +5 -3
  53. package/src/runes/layout/src/Icon.svelte +7 -0
  54. package/src/runes/layout/src/LanguageSelector.svelte +45 -0
  55. package/{dist/ui/layout → src/runes/layout/src}/NavigationPanel.svelte +1 -4
  56. package/src/runes/layout/src/ResourceSelector.svelte +90 -0
  57. package/src/runes/layout/src/ThemeSelector.svelte +50 -0
  58. package/{dist/ui/layout → src/runes/layout/src}/WorkspaceLayout.svelte +13 -3
  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/src/runes/plugins/money/src/CurrencySelector.svelte +41 -0
  82. package/src/runes/plugins/money/src/MoneyDisplay.svelte +142 -0
  83. package/src/runes/plugins/money/src/MoneyInput.svelte +208 -0
  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/src/runes/plugins/money/src/strategies.ts +95 -0
  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/index.d.ts +0 -4
  101. package/dist/core/index.d.ts.map +0 -1
  102. package/dist/core/index.js +0 -3
  103. package/dist/core/internal/message-resolver.d.ts +0 -42
  104. package/dist/core/internal/message-resolver.d.ts.map +0 -1
  105. package/dist/core/internal/message-resolver.js +0 -47
  106. package/dist/core/money/index.d.ts +0 -2
  107. package/dist/core/money/index.d.ts.map +0 -1
  108. package/dist/core/money/index.js +0 -2
  109. package/dist/core/money/money.d.ts +0 -57
  110. package/dist/core/money/money.d.ts.map +0 -1
  111. package/dist/core/money/money.js +0 -132
  112. package/dist/core/persistence/types.d.ts +0 -18
  113. package/dist/core/persistence/types.d.ts.map +0 -1
  114. package/dist/core/persistence/types.js +0 -2
  115. package/dist/index.d.ts +0 -5
  116. package/dist/index.js +0 -5
  117. package/dist/state/api.svelte.d.ts +0 -26
  118. package/dist/state/api.svelte.js +0 -65
  119. package/dist/state/app.svelte.d.ts +0 -48
  120. package/dist/state/app.svelte.js +0 -82
  121. package/dist/state/auth/index.d.ts +0 -2
  122. package/dist/state/auth/index.js +0 -2
  123. package/dist/state/auth/session.svelte.d.ts +0 -40
  124. package/dist/state/auth/session.svelte.js +0 -57
  125. package/dist/state/auth/types.d.ts +0 -30
  126. package/dist/state/auth/types.js +0 -3
  127. package/dist/state/cart.svelte.d.ts +0 -64
  128. package/dist/state/cart.svelte.js +0 -122
  129. package/dist/state/commands.svelte.d.ts +0 -46
  130. package/dist/state/commands.svelte.js +0 -62
  131. package/dist/state/composables/useMoney.d.ts +0 -15
  132. package/dist/state/composables/useMoney.js +0 -62
  133. package/dist/state/composables/usePersistence.d.ts +0 -2
  134. package/dist/state/composables/usePersistence.js +0 -5
  135. package/dist/state/composables/useRuneLab.d.ts +0 -19
  136. package/dist/state/composables/useRuneLab.js +0 -30
  137. package/dist/state/context.d.ts +0 -14
  138. package/dist/state/context.js +0 -15
  139. package/dist/state/createConfigStore.svelte.d.ts +0 -55
  140. package/dist/state/createConfigStore.svelte.js +0 -61
  141. package/dist/state/currency.svelte.d.ts +0 -28
  142. package/dist/state/currency.svelte.js +0 -80
  143. package/dist/state/daisyui.d.ts +0 -4
  144. package/dist/state/index.d.ts +0 -19
  145. package/dist/state/index.js +0 -25
  146. package/dist/state/language.svelte.d.ts +0 -64
  147. package/dist/state/language.svelte.js +0 -44
  148. package/dist/state/layout.svelte.d.ts +0 -49
  149. package/dist/state/layout.svelte.js +0 -108
  150. package/dist/state/persistence/drivers.d.ts +0 -12
  151. package/dist/state/persistence/drivers.js +0 -73
  152. package/dist/state/shortcuts.svelte.d.ts +0 -121
  153. package/dist/state/shortcuts.svelte.js +0 -222
  154. package/dist/state/theme.svelte.d.ts +0 -22
  155. package/dist/state/theme.svelte.js +0 -92
  156. package/dist/state/toast-bridge.d.ts +0 -29
  157. package/dist/state/toast-bridge.js +0 -43
  158. package/dist/state/toast.svelte.d.ts +0 -27
  159. package/dist/state/toast.svelte.js +0 -43
  160. package/dist/ui/actions/portal.d.ts +0 -7
  161. package/dist/ui/actions/portal.js +0 -32
  162. package/dist/ui/components/ApiMonitor.svelte +0 -162
  163. package/dist/ui/components/ApiMonitor.svelte.d.ts +0 -3
  164. package/dist/ui/components/Icon.svelte +0 -108
  165. package/dist/ui/components/Icon.svelte.d.ts +0 -14
  166. package/dist/ui/components/Kyntharil.svelte +0 -48
  167. package/dist/ui/components/Kyntharil.svelte.d.ts +0 -6
  168. package/dist/ui/components/RuneProvider.svelte +0 -198
  169. package/dist/ui/components/RuneProvider.svelte.d.ts +0 -42
  170. package/dist/ui/components/Toaster.svelte.d.ts +0 -18
  171. package/dist/ui/components/money/MoneyDisplay.svelte +0 -69
  172. package/dist/ui/components/money/MoneyDisplay.svelte.d.ts +0 -21
  173. package/dist/ui/components/money/MoneyDisplay.svelte.test.d.ts +0 -1
  174. package/dist/ui/components/money/MoneyDisplay.svelte.test.js +0 -74
  175. package/dist/ui/components/money/MoneyInput.svelte +0 -131
  176. package/dist/ui/components/money/MoneyInput.svelte.d.ts +0 -25
  177. package/dist/ui/components/money/index.d.ts +0 -2
  178. package/dist/ui/components/money/index.js +0 -3
  179. package/dist/ui/components/user/UserAvatar.svelte +0 -66
  180. package/dist/ui/components/user/UserAvatar.svelte.d.ts +0 -13
  181. package/dist/ui/components/user/UserProfile.svelte +0 -79
  182. package/dist/ui/components/user/UserProfile.svelte.d.ts +0 -17
  183. package/dist/ui/components/user/index.d.ts +0 -2
  184. package/dist/ui/components/user/index.js +0 -3
  185. package/dist/ui/features/command-palette/CommandPalette.svelte.d.ts +0 -6
  186. package/dist/ui/features/config/AppSettingSelector.svelte.d.ts +0 -13
  187. package/dist/ui/features/config/CurrencySelector.svelte +0 -67
  188. package/dist/ui/features/config/CurrencySelector.svelte.d.ts +0 -8
  189. package/dist/ui/features/config/LanguageSelector.svelte +0 -66
  190. package/dist/ui/features/config/LanguageSelector.svelte.d.ts +0 -8
  191. package/dist/ui/features/config/ThemeSelector.svelte +0 -73
  192. package/dist/ui/features/config/ThemeSelector.svelte.d.ts +0 -8
  193. package/dist/ui/features/notifications/NotificationBell.svelte.d.ts +0 -11
  194. package/dist/ui/features/notifications/index.d.ts +0 -1
  195. package/dist/ui/features/notifications/index.js +0 -2
  196. package/dist/ui/features/shortcuts/ShortcutPalette.svelte.d.ts +0 -6
  197. package/dist/ui/index.d.ts +0 -26
  198. package/dist/ui/index.js +0 -41
  199. package/dist/ui/layout/ConnectedNavigationPanel.svelte.d.ts +0 -10
  200. package/dist/ui/layout/ConnectedWorkspaceStrip.svelte.d.ts +0 -9
  201. package/dist/ui/layout/ContentArea.svelte.d.ts +0 -8
  202. package/dist/ui/layout/DetailPanel.svelte.d.ts +0 -7
  203. package/dist/ui/layout/NavigationPanel.svelte.d.ts +0 -14
  204. package/dist/ui/layout/WorkspaceLayout.svelte.d.ts +0 -25
  205. package/dist/ui/layout/WorkspaceStrip.svelte.d.ts +0 -11
  206. package/dist/ui/layout/index.d.ts +0 -7
  207. package/dist/ui/layout/index.js +0 -7
  208. package/dist/ui/paraglide/README.md +0 -94
  209. package/dist/ui/paraglide/messages/_index.d.ts +0 -87
  210. package/dist/ui/paraglide/messages/_index.js +0 -88
  211. package/dist/ui/paraglide/messages/abyss.d.ts +0 -16
  212. package/dist/ui/paraglide/messages/abyss.js +0 -84
  213. package/dist/ui/paraglide/messages/acid.d.ts +0 -16
  214. package/dist/ui/paraglide/messages/acid.js +0 -84
  215. package/dist/ui/paraglide/messages/active_toasts.d.ts +0 -16
  216. package/dist/ui/paraglide/messages/active_toasts.js +0 -84
  217. package/dist/ui/paraglide/messages/aed3.d.ts +0 -17
  218. package/dist/ui/paraglide/messages/aed3.js +0 -85
  219. package/dist/ui/paraglide/messages/all_currencies.d.ts +0 -16
  220. package/dist/ui/paraglide/messages/all_currencies.js +0 -84
  221. package/dist/ui/paraglide/messages/all_languages.d.ts +0 -16
  222. package/dist/ui/paraglide/messages/all_languages.js +0 -84
  223. package/dist/ui/paraglide/messages/all_themes.d.ts +0 -16
  224. package/dist/ui/paraglide/messages/all_themes.js +0 -84
  225. package/dist/ui/paraglide/messages/api_status.d.ts +0 -16
  226. package/dist/ui/paraglide/messages/api_status.js +0 -84
  227. package/dist/ui/paraglide/messages/app_info.d.ts +0 -16
  228. package/dist/ui/paraglide/messages/app_info.js +0 -84
  229. package/dist/ui/paraglide/messages/appearance.d.ts +0 -16
  230. package/dist/ui/paraglide/messages/appearance.js +0 -84
  231. package/dist/ui/paraglide/messages/aqua.d.ts +0 -16
  232. package/dist/ui/paraglide/messages/aqua.js +0 -84
  233. package/dist/ui/paraglide/messages/ar.d.ts +0 -16
  234. package/dist/ui/paraglide/messages/ar.js +0 -84
  235. package/dist/ui/paraglide/messages/autumn.d.ts +0 -16
  236. package/dist/ui/paraglide/messages/autumn.js +0 -84
  237. package/dist/ui/paraglide/messages/black.d.ts +0 -16
  238. package/dist/ui/paraglide/messages/black.js +0 -84
  239. package/dist/ui/paraglide/messages/brl3.d.ts +0 -17
  240. package/dist/ui/paraglide/messages/brl3.js +0 -85
  241. package/dist/ui/paraglide/messages/bumblebee.d.ts +0 -16
  242. package/dist/ui/paraglide/messages/bumblebee.js +0 -84
  243. package/dist/ui/paraglide/messages/business.d.ts +0 -16
  244. package/dist/ui/paraglide/messages/business.js +0 -84
  245. package/dist/ui/paraglide/messages/cad3.d.ts +0 -17
  246. package/dist/ui/paraglide/messages/cad3.js +0 -85
  247. package/dist/ui/paraglide/messages/caramellatte.d.ts +0 -16
  248. package/dist/ui/paraglide/messages/caramellatte.js +0 -84
  249. package/dist/ui/paraglide/messages/cmyk.d.ts +0 -16
  250. package/dist/ui/paraglide/messages/cmyk.js +0 -84
  251. package/dist/ui/paraglide/messages/cny3.d.ts +0 -17
  252. package/dist/ui/paraglide/messages/cny3.js +0 -85
  253. package/dist/ui/paraglide/messages/coffee.d.ts +0 -16
  254. package/dist/ui/paraglide/messages/coffee.js +0 -84
  255. package/dist/ui/paraglide/messages/commands_label.d.ts +0 -16
  256. package/dist/ui/paraglide/messages/commands_label.js +0 -84
  257. package/dist/ui/paraglide/messages/corporate.d.ts +0 -16
  258. package/dist/ui/paraglide/messages/corporate.js +0 -84
  259. package/dist/ui/paraglide/messages/cupcake.d.ts +0 -16
  260. package/dist/ui/paraglide/messages/cupcake.js +0 -84
  261. package/dist/ui/paraglide/messages/currency.d.ts +0 -16
  262. package/dist/ui/paraglide/messages/currency.js +0 -84
  263. package/dist/ui/paraglide/messages/current_currency.d.ts +0 -16
  264. package/dist/ui/paraglide/messages/current_currency.js +0 -84
  265. package/dist/ui/paraglide/messages/current_language.d.ts +0 -16
  266. package/dist/ui/paraglide/messages/current_language.js +0 -84
  267. package/dist/ui/paraglide/messages/current_theme.d.ts +0 -16
  268. package/dist/ui/paraglide/messages/current_theme.js +0 -84
  269. package/dist/ui/paraglide/messages/currently_in_queue.d.ts +0 -16
  270. package/dist/ui/paraglide/messages/currently_in_queue.js +0 -84
  271. package/dist/ui/paraglide/messages/cyberpunk.d.ts +0 -16
  272. package/dist/ui/paraglide/messages/cyberpunk.js +0 -84
  273. package/dist/ui/paraglide/messages/dark.d.ts +0 -16
  274. package/dist/ui/paraglide/messages/dark.js +0 -84
  275. package/dist/ui/paraglide/messages/de.d.ts +0 -16
  276. package/dist/ui/paraglide/messages/de.js +0 -84
  277. package/dist/ui/paraglide/messages/dim.d.ts +0 -16
  278. package/dist/ui/paraglide/messages/dim.js +0 -84
  279. package/dist/ui/paraglide/messages/dracula.d.ts +0 -16
  280. package/dist/ui/paraglide/messages/dracula.js +0 -84
  281. package/dist/ui/paraglide/messages/emerald.d.ts +0 -16
  282. package/dist/ui/paraglide/messages/emerald.js +0 -84
  283. package/dist/ui/paraglide/messages/en.d.ts +0 -16
  284. package/dist/ui/paraglide/messages/en.js +0 -84
  285. package/dist/ui/paraglide/messages/es.d.ts +0 -16
  286. package/dist/ui/paraglide/messages/es.js +0 -84
  287. package/dist/ui/paraglide/messages/eur3.d.ts +0 -17
  288. package/dist/ui/paraglide/messages/eur3.js +0 -85
  289. package/dist/ui/paraglide/messages/extended_controls.d.ts +0 -16
  290. package/dist/ui/paraglide/messages/extended_controls.js +0 -84
  291. package/dist/ui/paraglide/messages/fantasy.d.ts +0 -16
  292. package/dist/ui/paraglide/messages/fantasy.js +0 -84
  293. package/dist/ui/paraglide/messages/forest.d.ts +0 -16
  294. package/dist/ui/paraglide/messages/forest.js +0 -84
  295. package/dist/ui/paraglide/messages/fr.d.ts +0 -16
  296. package/dist/ui/paraglide/messages/fr.js +0 -84
  297. package/dist/ui/paraglide/messages/garden.d.ts +0 -16
  298. package/dist/ui/paraglide/messages/garden.js +0 -84
  299. package/dist/ui/paraglide/messages/gbp3.d.ts +0 -17
  300. package/dist/ui/paraglide/messages/gbp3.js +0 -85
  301. package/dist/ui/paraglide/messages/halloween.d.ts +0 -16
  302. package/dist/ui/paraglide/messages/halloween.js +0 -84
  303. package/dist/ui/paraglide/messages/hello_world.d.ts +0 -18
  304. package/dist/ui/paraglide/messages/hello_world.js +0 -84
  305. package/dist/ui/paraglide/messages/hi.d.ts +0 -16
  306. package/dist/ui/paraglide/messages/hi.js +0 -84
  307. package/dist/ui/paraglide/messages/inr3.d.ts +0 -17
  308. package/dist/ui/paraglide/messages/inr3.js +0 -85
  309. package/dist/ui/paraglide/messages/it.d.ts +0 -16
  310. package/dist/ui/paraglide/messages/it.js +0 -84
  311. package/dist/ui/paraglide/messages/ja.d.ts +0 -16
  312. package/dist/ui/paraglide/messages/ja.js +0 -84
  313. package/dist/ui/paraglide/messages/jpy3.d.ts +0 -17
  314. package/dist/ui/paraglide/messages/jpy3.js +0 -85
  315. package/dist/ui/paraglide/messages/ko.d.ts +0 -16
  316. package/dist/ui/paraglide/messages/ko.js +0 -84
  317. package/dist/ui/paraglide/messages/krw3.d.ts +0 -17
  318. package/dist/ui/paraglide/messages/krw3.js +0 -85
  319. package/dist/ui/paraglide/messages/languages.d.ts +0 -16
  320. package/dist/ui/paraglide/messages/languages.js +0 -84
  321. package/dist/ui/paraglide/messages/lemonade.d.ts +0 -16
  322. package/dist/ui/paraglide/messages/lemonade.js +0 -84
  323. package/dist/ui/paraglide/messages/light.d.ts +0 -16
  324. package/dist/ui/paraglide/messages/light.js +0 -84
  325. package/dist/ui/paraglide/messages/live_store_dashboard.d.ts +0 -16
  326. package/dist/ui/paraglide/messages/live_store_dashboard.js +0 -84
  327. package/dist/ui/paraglide/messages/localization.d.ts +0 -16
  328. package/dist/ui/paraglide/messages/localization.js +0 -84
  329. package/dist/ui/paraglide/messages/lofi.d.ts +0 -16
  330. package/dist/ui/paraglide/messages/lofi.js +0 -84
  331. package/dist/ui/paraglide/messages/luxury.d.ts +0 -16
  332. package/dist/ui/paraglide/messages/luxury.js +0 -84
  333. package/dist/ui/paraglide/messages/mxn3.d.ts +0 -17
  334. package/dist/ui/paraglide/messages/mxn3.js +0 -85
  335. package/dist/ui/paraglide/messages/name_label.d.ts +0 -16
  336. package/dist/ui/paraglide/messages/name_label.js +0 -84
  337. package/dist/ui/paraglide/messages/night.d.ts +0 -16
  338. package/dist/ui/paraglide/messages/night.js +0 -84
  339. package/dist/ui/paraglide/messages/nord.d.ts +0 -16
  340. package/dist/ui/paraglide/messages/nord.js +0 -84
  341. package/dist/ui/paraglide/messages/pastel.d.ts +0 -16
  342. package/dist/ui/paraglide/messages/pastel.js +0 -84
  343. package/dist/ui/paraglide/messages/pt.d.ts +0 -16
  344. package/dist/ui/paraglide/messages/pt.js +0 -84
  345. package/dist/ui/paraglide/messages/real_time_monitor_desc.d.ts +0 -16
  346. package/dist/ui/paraglide/messages/real_time_monitor_desc.js +0 -84
  347. package/dist/ui/paraglide/messages/registered_in_registry.d.ts +0 -16
  348. package/dist/ui/paraglide/messages/registered_in_registry.js +0 -84
  349. package/dist/ui/paraglide/messages/retro.d.ts +0 -16
  350. package/dist/ui/paraglide/messages/retro.js +0 -84
  351. package/dist/ui/paraglide/messages/ru.d.ts +0 -16
  352. package/dist/ui/paraglide/messages/ru.js +0 -84
  353. package/dist/ui/paraglide/messages/silk.d.ts +0 -16
  354. package/dist/ui/paraglide/messages/silk.js +0 -84
  355. package/dist/ui/paraglide/messages/state_label.d.ts +0 -16
  356. package/dist/ui/paraglide/messages/state_label.js +0 -84
  357. package/dist/ui/paraglide/messages/sunset.d.ts +0 -16
  358. package/dist/ui/paraglide/messages/sunset.js +0 -84
  359. package/dist/ui/paraglide/messages/synthwave.d.ts +0 -16
  360. package/dist/ui/paraglide/messages/synthwave.js +0 -84
  361. package/dist/ui/paraglide/messages/system.d.ts +0 -16
  362. package/dist/ui/paraglide/messages/system.js +0 -84
  363. package/dist/ui/paraglide/messages/theme.d.ts +0 -16
  364. package/dist/ui/paraglide/messages/theme.js +0 -84
  365. package/dist/ui/paraglide/messages/themes.d.ts +0 -16
  366. package/dist/ui/paraglide/messages/themes.js +0 -84
  367. package/dist/ui/paraglide/messages/url_label.d.ts +0 -16
  368. package/dist/ui/paraglide/messages/url_label.js +0 -84
  369. package/dist/ui/paraglide/messages/usd3.d.ts +0 -17
  370. package/dist/ui/paraglide/messages/usd3.js +0 -85
  371. package/dist/ui/paraglide/messages/valentine.d.ts +0 -16
  372. package/dist/ui/paraglide/messages/valentine.js +0 -84
  373. package/dist/ui/paraglide/messages/version_label.d.ts +0 -16
  374. package/dist/ui/paraglide/messages/version_label.js +0 -84
  375. package/dist/ui/paraglide/messages/vi.d.ts +0 -16
  376. package/dist/ui/paraglide/messages/vi.js +0 -84
  377. package/dist/ui/paraglide/messages/winter.d.ts +0 -16
  378. package/dist/ui/paraglide/messages/winter.js +0 -84
  379. package/dist/ui/paraglide/messages/wireframe.d.ts +0 -16
  380. package/dist/ui/paraglide/messages/wireframe.js +0 -84
  381. package/dist/ui/paraglide/messages/zh.d.ts +0 -16
  382. package/dist/ui/paraglide/messages/zh.js +0 -84
  383. package/dist/ui/paraglide/messages.d.ts +0 -2
  384. package/dist/ui/paraglide/messages.js +0 -4
  385. package/dist/ui/paraglide/registry.d.ts +0 -21
  386. package/dist/ui/paraglide/registry.js +0 -31
  387. package/dist/ui/paraglide/runtime.d.ts +0 -749
  388. package/dist/ui/paraglide/runtime.js +0 -1777
  389. package/dist/ui/paraglide/server.d.ts +0 -103
  390. package/dist/ui/paraglide/server.js +0 -248
  391. package/dist/ui/primitives/DatePicker.svelte +0 -257
  392. package/dist/ui/primitives/DatePicker.svelte.d.ts +0 -17
  393. package/dist/ui/primitives/index.d.ts +0 -1
  394. package/dist/ui/primitives/index.js +0 -3
  395. /package/{dist/ui/layout → src/runes/layout/src}/ContentArea.svelte +0 -0
  396. /package/{dist/ui/layout → src/runes/layout/src}/DetailPanel.svelte +0 -0
  397. /package/{dist/ui/features → src/runes/palettes/src}/notifications/NotificationBell.svelte +0 -0
@@ -1,47 +0,0 @@
1
- // sdk/devtools/src/patterns/message-resolver.ts
2
- import { DEV } from "esm-env";
3
- /**
4
- * Creates a message resolver function for dynamic i18n lookups
5
- *
6
- * @example
7
- * ```typescript
8
- * const getCurrencyLabel = createMessageResolver<Currency>(m, {
9
- * keyExtractor: (currency) => currency.code
10
- * });
11
- *
12
- * getCurrencyLabel({ code: "EUR", symbol: "€" }); // "Euro"
13
- * ```
14
- */
15
- export function createMessageResolver(messages, config) {
16
- return (option) => {
17
- const key = config.keyExtractor(option);
18
- const transformedKey = config.keyTransformer
19
- ? config.keyTransformer(key)
20
- : key;
21
- const messageFn = messages[transformedKey];
22
- if (!messageFn || typeof messageFn !== "function") {
23
- if (DEV) {
24
- console.warn(`[MessageResolver] Missing translation for key: "${transformedKey}"`);
25
- }
26
- return key; // Fallback to key
27
- }
28
- return messageFn();
29
- };
30
- }
31
- /**
32
- * Type guard to check if a message key exists
33
- */
34
- export function hasMessage(messages, key) {
35
- return key in messages && typeof messages[key] === "function";
36
- }
37
- /**
38
- * Batch resolver for multiple options at once
39
- */
40
- export function batchResolveMessages(messages, options, config) {
41
- const resolver = createMessageResolver(messages, config);
42
- return options.reduce((acc, option) => {
43
- const key = config.keyExtractor(option);
44
- acc[key] = resolver(option);
45
- return acc;
46
- }, {});
47
- }
@@ -1,2 +0,0 @@
1
- export { addMoney, createMoney, CURRENCY_MAP, type Dinero, type DineroCurrency, formatAmount, formatMoney, type ISO4217Code, multiplyMoney, registerCurrency, safeAmount, subtractMoney, toMinorUnit, } from "./money";
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sdk/core/src/money/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,KAAK,MAAM,EACX,KAAK,cAAc,EACnB,YAAY,EACZ,WAAW,EACX,KAAK,WAAW,EAChB,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,WAAW,GACZ,MAAM,SAAS,CAAC"}
@@ -1,2 +0,0 @@
1
- // sdk/core/src/money/index.ts
2
- export { addMoney, createMoney, CURRENCY_MAP, formatAmount, formatMoney, multiplyMoney, registerCurrency, safeAmount, subtractMoney, toMinorUnit, } from "./money";
@@ -1,57 +0,0 @@
1
- import { type Dinero, type DineroCurrency } from "dinero.js";
2
- /**
3
- * Map of ISO 4217 currency codes to Dinero currency objects
4
- */
5
- export declare const CURRENCY_MAP: Record<string, DineroCurrency<number>>;
6
- /**
7
- * Derived type of all built-in ISO 4217 currency codes.
8
- * Enables IDE autocomplete while allowing any string for dynamic currencies.
9
- */
10
- export type ISO4217Code = keyof typeof CURRENCY_MAP;
11
- /**
12
- * Register a new currency in CURRENCY_MAP atomically.
13
- * Ensures the core registry and any store-level registries stay in sync.
14
- */
15
- export declare function registerCurrency(code: string, currency: DineroCurrency<number>): void;
16
- /**
17
- * Normalizes an unknown input into a valid integer for Dinero.js.
18
- * Exported so consumers can apply the same defensive coercion.
19
- */
20
- export declare function safeAmount(amount: unknown): number;
21
- /**
22
- * Converts a major-unit amount (e.g., pesos) to a minor-unit integer (e.g., centavos).
23
- * Uses the currency's exponent from CURRENCY_MAP.
24
- */
25
- export declare function toMinorUnit(amount: unknown, currencyCode: ISO4217Code | string): number;
26
- /**
27
- * Create a Dinero monetary value from an amount.
28
- * @param amount - Amount (normalized internally via safeAmount)
29
- * @param currencyCode - ISO 4217 currency code (e.g., "USD")
30
- */
31
- export declare function createMoney(amount: unknown, currencyCode: ISO4217Code | string): Dinero<number>;
32
- /**
33
- * Format a Dinero value as a locale-aware string
34
- * @param money - Dinero monetary value
35
- * @param locale - BCP 47 locale string (e.g., "en-US", "es-MX")
36
- * @param currencyCode - ISO 4217 code for Intl.NumberFormat (e.g., "USD")
37
- */
38
- export declare function formatMoney(money: Dinero<number>, locale?: string, currencyCode?: string): string;
39
- /**
40
- * Format a raw amount as a locale-aware currency string.
41
- * Convenience wrapper around createMoney + formatMoney.
42
- */
43
- export declare function formatAmount(amount: unknown, currencyCode: ISO4217Code | string, locale?: string): string;
44
- /**
45
- * Add two monetary values (must be same currency)
46
- */
47
- export declare function addMoney(a: Dinero<number>, b: Dinero<number>): Dinero<number>;
48
- /**
49
- * Subtract two monetary values (must be same currency)
50
- */
51
- export declare function subtractMoney(a: Dinero<number>, b: Dinero<number>): Dinero<number>;
52
- /**
53
- * Multiply a monetary value by a factor
54
- */
55
- export declare function multiplyMoney(money: Dinero<number>, factor: number): Dinero<number>;
56
- export type { Dinero, DineroCurrency };
57
- //# sourceMappingURL=money.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"money.d.ts","sourceRoot":"","sources":["../../../src/sdk/core/src/money/money.ts"],"names":[],"mappings":"AAIA,OAAO,EAML,KAAK,MAAM,EAEX,KAAK,cAAc,EAYpB,MAAM,WAAW,CAAC;AAEnB;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,CAY/D,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,YAAY,CAAC;AAEpD;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,cAAc,CAAC,MAAM,CAAC,GAC/B,IAAI,CAEN;AA2BD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAElD;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,OAAO,EACf,YAAY,EAAE,WAAW,GAAG,MAAM,GACjC,MAAM,CAUR;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,OAAO,EACf,YAAY,EAAE,WAAW,GAAG,MAAM,GACjC,MAAM,CAAC,MAAM,CAAC,CAQhB;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EACrB,MAAM,GAAE,MAAgB,EACxB,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,CAeR;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,OAAO,EACf,YAAY,EAAE,WAAW,GAAG,MAAM,EAClC,MAAM,GAAE,MAAgB,GACvB,MAAM,CAGR;AAED;;GAEG;AACH,wBAAgB,QAAQ,CACtB,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EACjB,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAChB,MAAM,CAAC,MAAM,CAAC,CAEhB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EACjB,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAChB,MAAM,CAAC,MAAM,CAAC,CAEhB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EACrB,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,MAAM,CAAC,CAEhB;AAGD,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC"}
@@ -1,132 +0,0 @@
1
- // sdk/core/src/money/money.ts
2
- // Framework-agnostic money utilities using Dinero.js v2
3
- // Consumers should never import Dinero directly — these helpers encapsulate it.
4
- import { add as dineroAdd, AED, BRL, CAD, CNY, dinero, EUR, GBP, INR, JPY, KRW, multiply as dineroMultiply, MXN, subtract as dineroSubtract, toDecimal,
5
- // ISO 4217 currency definitions
6
- USD, } from "dinero.js";
7
- /**
8
- * Map of ISO 4217 currency codes to Dinero currency objects
9
- */
10
- export const CURRENCY_MAP = {
11
- USD,
12
- EUR,
13
- MXN,
14
- JPY,
15
- KRW,
16
- CNY,
17
- AED,
18
- GBP,
19
- CAD,
20
- BRL,
21
- INR,
22
- };
23
- /**
24
- * Register a new currency in CURRENCY_MAP atomically.
25
- * Ensures the core registry and any store-level registries stay in sync.
26
- */
27
- export function registerCurrency(code, currency) {
28
- CURRENCY_MAP[code] = currency;
29
- }
30
- /**
31
- * Normalizes an unknown input into a valid finite number.
32
- * Handles null, undefined, bigints, and SurrealDB Decimal objects via toString().
33
- */
34
- function toNumber(amount) {
35
- if (amount === null || amount === undefined)
36
- return 0;
37
- if (typeof amount === "number")
38
- return Number.isFinite(amount) ? amount : 0;
39
- if (typeof amount === "bigint")
40
- return Number(amount);
41
- // Handle SurrealDB Decimal (which has a toString method) or other objects
42
- if (typeof amount === "object") {
43
- try {
44
- // SurrealDB Decimal.toString() returns a numeric string
45
- const str = String(amount);
46
- const parsed = parseFloat(str);
47
- return Number.isFinite(parsed) ? parsed : 0;
48
- }
49
- catch {
50
- return 0;
51
- }
52
- }
53
- const coerced = Number(amount);
54
- return Number.isFinite(coerced) ? coerced : 0;
55
- }
56
- /**
57
- * Normalizes an unknown input into a valid integer for Dinero.js.
58
- * Exported so consumers can apply the same defensive coercion.
59
- */
60
- export function safeAmount(amount) {
61
- return Math.round(toNumber(amount));
62
- }
63
- /**
64
- * Converts a major-unit amount (e.g., pesos) to a minor-unit integer (e.g., centavos).
65
- * Uses the currency's exponent from CURRENCY_MAP.
66
- */
67
- export function toMinorUnit(amount, currencyCode) {
68
- const currency = CURRENCY_MAP[currencyCode];
69
- if (!currency) {
70
- throw new Error(`Unknown currency code: ${currencyCode}. Register it first via registerCurrency().`);
71
- }
72
- const base = Array.isArray(currency.base) ? currency.base[0] : currency.base;
73
- const factor = Math.pow(Number(base), Number(currency.exponent));
74
- return Math.round(toNumber(amount) * factor);
75
- }
76
- /**
77
- * Create a Dinero monetary value from an amount.
78
- * @param amount - Amount (normalized internally via safeAmount)
79
- * @param currencyCode - ISO 4217 currency code (e.g., "USD")
80
- */
81
- export function createMoney(amount, currencyCode) {
82
- const currency = CURRENCY_MAP[currencyCode];
83
- if (!currency) {
84
- throw new Error(`Unknown currency code: ${currencyCode}. Register it first via registerCurrency().`);
85
- }
86
- return dinero({ amount: safeAmount(amount), currency });
87
- }
88
- /**
89
- * Format a Dinero value as a locale-aware string
90
- * @param money - Dinero monetary value
91
- * @param locale - BCP 47 locale string (e.g., "en-US", "es-MX")
92
- * @param currencyCode - ISO 4217 code for Intl.NumberFormat (e.g., "USD")
93
- */
94
- export function formatMoney(money, locale = "en-US", currencyCode) {
95
- return toDecimal(money, ({ value, currency }) => {
96
- const code = currencyCode ??
97
- Object.entries(CURRENCY_MAP).find(([, c]) => c.code === currency.code)?.[0] ??
98
- currency.code;
99
- return new Intl.NumberFormat(locale, {
100
- style: "currency",
101
- currency: code,
102
- minimumFractionDigits: currency.exponent,
103
- maximumFractionDigits: currency.exponent,
104
- }).format(Number(value));
105
- });
106
- }
107
- /**
108
- * Format a raw amount as a locale-aware currency string.
109
- * Convenience wrapper around createMoney + formatMoney.
110
- */
111
- export function formatAmount(amount, currencyCode, locale = "en-US") {
112
- const money = createMoney(amount, currencyCode);
113
- return formatMoney(money, locale, currencyCode);
114
- }
115
- /**
116
- * Add two monetary values (must be same currency)
117
- */
118
- export function addMoney(a, b) {
119
- return dineroAdd(a, b);
120
- }
121
- /**
122
- * Subtract two monetary values (must be same currency)
123
- */
124
- export function subtractMoney(a, b) {
125
- return dineroSubtract(a, b);
126
- }
127
- /**
128
- * Multiply a monetary value by a factor
129
- */
130
- export function multiplyMoney(money, factor) {
131
- return dineroMultiply(money, factor);
132
- }
@@ -1,18 +0,0 @@
1
- /**
2
- * Synchronous persistence driver interface for Svelte stores
3
- */
4
- export interface PersistenceDriver {
5
- /**
6
- * Get a value by key. Should return null if not found.
7
- */
8
- get(key: string): string | null;
9
- /**
10
- * Set a value by key.
11
- */
12
- set(key: string, value: string): void;
13
- /**
14
- * Remove a value by key.
15
- */
16
- remove(key: string): void;
17
- }
18
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/sdk/core/src/persistence/types.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAChC;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B"}
@@ -1,2 +0,0 @@
1
- // src/lib/persistence/types.ts
2
- export {};
package/dist/index.d.ts DELETED
@@ -1,5 +0,0 @@
1
- export * from "rune-lab/core";
2
- export * from "rune-lab/state";
3
- export * from "rune-lab/ui";
4
-
5
- export declare const version: () => string;
package/dist/index.js DELETED
@@ -1,5 +0,0 @@
1
- export * from "rune-lab/core";
2
- export * from "rune-lab/state";
3
- export * from "rune-lab/ui";
4
-
5
- export const version = () => "0.3.0";
@@ -1,26 +0,0 @@
1
- /**
2
- * API connection state and configuration
3
- */
4
- export type ConnectionState = "connected" | "connecting" | "disconnected";
5
- export declare class ApiStore {
6
- #private;
7
- url: string;
8
- version: string;
9
- connectionState: ConnectionState;
10
- isConnected: boolean;
11
- isLoading: boolean;
12
- get URL(): string;
13
- get VERSION(): string;
14
- get IS_CONNECTED(): boolean;
15
- get IS_LOADING(): boolean;
16
- /**
17
- * Reconnect to the API
18
- */
19
- reconnect(): Promise<void>;
20
- /**
21
- * Initialize API settings
22
- */
23
- init(url: string, version?: string, healthCheck?: () => Promise<boolean>): void;
24
- }
25
- export declare function createApiStore(): ApiStore;
26
- export declare function getApiStore(): ApiStore;
@@ -1,65 +0,0 @@
1
- import { getContext } from "svelte";
2
- import { RUNE_LAB_CONTEXT } from "./context";
3
- import { DEV } from "esm-env";
4
- export class ApiStore {
5
- // State
6
- url = $state("http://localhost:8000");
7
- version = $state("v1");
8
- connectionState = $state("disconnected");
9
- #healthCheck;
10
- // Derived
11
- isConnected = $derived(this.connectionState === "connected");
12
- isLoading = $derived(this.connectionState === "connecting");
13
- // Short aliases for compatibility with the user's snippet
14
- get URL() {
15
- return this.url;
16
- }
17
- get VERSION() {
18
- return this.version;
19
- }
20
- get IS_CONNECTED() {
21
- return this.isConnected;
22
- }
23
- get IS_LOADING() {
24
- return this.isLoading;
25
- }
26
- /**
27
- * Reconnect to the API
28
- */
29
- async reconnect() {
30
- this.connectionState = "connecting";
31
- try {
32
- if (this.#healthCheck) {
33
- const isHealthy = await this.#healthCheck();
34
- this.connectionState = isHealthy ? "connected" : "disconnected";
35
- }
36
- else {
37
- // Simulate connection if no health check provided
38
- if (DEV) {
39
- console.warn("[rune-lab] ApiStore: No healthCheck provided to init(). Using simulated connection delay.");
40
- }
41
- await new Promise((resolve) => setTimeout(resolve, 1500));
42
- this.connectionState = "connected";
43
- }
44
- }
45
- catch (e) {
46
- this.connectionState = "disconnected";
47
- }
48
- }
49
- /**
50
- * Initialize API settings
51
- */
52
- init(url, version = "v1", healthCheck) {
53
- this.url = url;
54
- this.version = version;
55
- if (healthCheck)
56
- this.#healthCheck = healthCheck;
57
- this.reconnect();
58
- }
59
- }
60
- export function createApiStore() {
61
- return new ApiStore();
62
- }
63
- export function getApiStore() {
64
- return getContext(RUNE_LAB_CONTEXT.api);
65
- }
@@ -1,48 +0,0 @@
1
- /**
2
- * Application metadata interface
3
- */
4
- export interface AppData {
5
- name: string;
6
- version: string;
7
- description: string;
8
- author: string;
9
- repository?: string;
10
- license?: string;
11
- homepage?: string;
12
- }
13
- /**
14
- * App Store
15
- * Manages application metadata and identity
16
- */
17
- export declare class AppStore {
18
- #private;
19
- name: string;
20
- version: string;
21
- description: string;
22
- author: string;
23
- repository: string;
24
- license: string;
25
- homepage: string;
26
- customIcons: Record<string, string>;
27
- /**
28
- * Initialize app store with metadata.
29
- *
30
- * @contract init() is idempotent. Call it once at app startup via RuneProvider.
31
- * Subsequent calls are silently ignored to maintain stability across SSR/CSR cycles.
32
- */
33
- init(data: Partial<AppData>): void;
34
- /**
35
- * @internal Test-only. Resets initialization guard.
36
- */
37
- __reset(): void;
38
- /**
39
- * Get full app information object
40
- */
41
- get info(): AppData;
42
- /**
43
- * Registers custom SVG icons to be available globally in the Icon component
44
- */
45
- registerIcons(icons: Record<string, string>): void;
46
- }
47
- export declare function createAppStore(): AppStore;
48
- export declare function getAppStore(): AppStore;
@@ -1,82 +0,0 @@
1
- // src/lib/stores/app-config.svelte.ts
2
- import { getContext } from "svelte";
3
- import { RUNE_LAB_CONTEXT } from "./context";
4
- import { DEV } from "esm-env";
5
- /**
6
- * App Store
7
- * Manages application metadata and identity
8
- */
9
- export class AppStore {
10
- // State
11
- name = $state("Rune Lab");
12
- version = $state("0.0.1");
13
- description = $state("Modern toolkit for Svelte 5 Runes");
14
- author = $state("Yrrrrrf");
15
- repository = $state("https://github.com/Yrrrrrf/rune-lab");
16
- license = $state("MIT");
17
- homepage = $state("https://jsr.io/@yrrrrrf/rune-lab");
18
- customIcons = $state({});
19
- #initialized = false;
20
- /**
21
- * Initialize app store with metadata.
22
- *
23
- * @contract init() is idempotent. Call it once at app startup via RuneProvider.
24
- * Subsequent calls are silently ignored to maintain stability across SSR/CSR cycles.
25
- */
26
- init(data) {
27
- if (this.#initialized) {
28
- if (DEV) {
29
- console.warn("AppStore.init() called multiple times. Ignoring subsequent calls.", "Overwritten properties would have been:", data);
30
- }
31
- return;
32
- }
33
- if (data.name)
34
- this.name = data.name;
35
- if (data.version)
36
- this.version = data.version;
37
- if (data.description)
38
- this.description = data.description;
39
- if (data.author)
40
- this.author = data.author;
41
- if (data.repository)
42
- this.repository = data.repository;
43
- if (data.license)
44
- this.license = data.license;
45
- if (data.homepage)
46
- this.homepage = data.homepage;
47
- this.#initialized = true;
48
- }
49
- /**
50
- * @internal Test-only. Resets initialization guard.
51
- */
52
- __reset() {
53
- this.#initialized = false;
54
- }
55
- /**
56
- * Get full app information object
57
- */
58
- get info() {
59
- return {
60
- name: this.name,
61
- version: this.version,
62
- description: this.description,
63
- author: this.author,
64
- repository: this.repository,
65
- license: this.license,
66
- homepage: this.homepage,
67
- };
68
- }
69
- /**
70
- * Registers custom SVG icons to be available globally in the Icon component
71
- */
72
- registerIcons(icons) {
73
- this.customIcons = { ...this.customIcons, ...icons };
74
- }
75
- }
76
- // Export singleton instance
77
- export function createAppStore() {
78
- return new AppStore();
79
- }
80
- export function getAppStore() {
81
- return getContext(RUNE_LAB_CONTEXT.app);
82
- }
@@ -1,2 +0,0 @@
1
- export type { AuthConfig, Session, User } from "./types";
2
- export { createSessionStore, getSessionStore, SessionStore, } from "./session.svelte";
@@ -1,2 +0,0 @@
1
- // sdk/state/src/auth/index.ts
2
- export { createSessionStore, getSessionStore, SessionStore, } from "./session.svelte";
@@ -1,40 +0,0 @@
1
- import type { Session, User } from "./types";
2
- /**
3
- * SessionStore — reactive authentication state.
4
- *
5
- * Once Better-Auth is fully integrated, this store will:
6
- * - Initialize from the Better-Auth client SDK
7
- * - Manage session lifecycle (login, logout, refresh)
8
- * - Expose the current user + session tokens
9
- * - Fire onSessionChange callbacks
10
- *
11
- * For now, it provides the interface contract that consuming apps
12
- * and other rune-lab components (UserAvatar, UserProfile) can code against.
13
- */
14
- export declare class SessionStore {
15
- /** Whether authentication has been checked (vs. loading) */
16
- isReady: boolean;
17
- /** Whether a user is currently authenticated */
18
- isAuthenticated: boolean;
19
- /** Current user (null when logged out) */
20
- user: User | null;
21
- /** Current session (null when logged out) */
22
- session: Session | null;
23
- /**
24
- * Initialize the session — placeholder for Better-Auth client setup
25
- */
26
- init(): Promise<void>;
27
- /**
28
- * Log in — placeholder
29
- */
30
- login(_credentials: {
31
- email: string;
32
- password: string;
33
- }): Promise<boolean>;
34
- /**
35
- * Log out — placeholder
36
- */
37
- logout(): Promise<void>;
38
- }
39
- export declare function createSessionStore(): SessionStore;
40
- export declare function getSessionStore(): SessionStore;
@@ -1,57 +0,0 @@
1
- // sdk/state/src/auth/session.svelte.ts
2
- // SessionStore — manages authentication state via Svelte 5 runes.
3
- // This is a SKELETON — full Better-Auth wiring is deferred to a dedicated spec.
4
- import { getContext } from "svelte";
5
- import { RUNE_LAB_CONTEXT } from "../context";
6
- /**
7
- * SessionStore — reactive authentication state.
8
- *
9
- * Once Better-Auth is fully integrated, this store will:
10
- * - Initialize from the Better-Auth client SDK
11
- * - Manage session lifecycle (login, logout, refresh)
12
- * - Expose the current user + session tokens
13
- * - Fire onSessionChange callbacks
14
- *
15
- * For now, it provides the interface contract that consuming apps
16
- * and other rune-lab components (UserAvatar, UserProfile) can code against.
17
- */
18
- export class SessionStore {
19
- /** Whether authentication has been checked (vs. loading) */
20
- isReady = $state(false);
21
- /** Whether a user is currently authenticated */
22
- isAuthenticated = $state(false);
23
- /** Current user (null when logged out) */
24
- user = $state(null);
25
- /** Current session (null when logged out) */
26
- session = $state(null);
27
- /**
28
- * Initialize the session — placeholder for Better-Auth client setup
29
- */
30
- async init() {
31
- // TODO: Wire Better-Auth client.getSession() here
32
- this.isReady = true;
33
- }
34
- /**
35
- * Log in — placeholder
36
- */
37
- async login(_credentials) {
38
- // TODO: Wire Better-Auth client.signIn.email() here
39
- console.warn("SessionStore.login() is a stub — implement Better-Auth integration");
40
- return false;
41
- }
42
- /**
43
- * Log out — placeholder
44
- */
45
- async logout() {
46
- // TODO: Wire Better-Auth client.signOut() here
47
- this.user = null;
48
- this.session = null;
49
- this.isAuthenticated = false;
50
- }
51
- }
52
- export function createSessionStore() {
53
- return new SessionStore();
54
- }
55
- export function getSessionStore() {
56
- return getContext(RUNE_LAB_CONTEXT.session);
57
- }
@@ -1,30 +0,0 @@
1
- /**
2
- * Minimal user representation for rune-lab's auth layer.
3
- * Consuming apps can extend this with domain-specific fields.
4
- */
5
- export interface User {
6
- id: string;
7
- name: string;
8
- email: string;
9
- avatar_url?: string;
10
- role?: string;
11
- }
12
- /**
13
- * Active session information
14
- */
15
- export interface Session {
16
- user: User;
17
- accessToken: string;
18
- expiresAt: Date;
19
- }
20
- /**
21
- * Auth configuration passed to RuneProvider
22
- */
23
- export interface AuthConfig {
24
- /** Better-Auth client instance */
25
- client?: any;
26
- /** Callback when session changes (login, logout, expiry) */
27
- onSessionChange?: (session: Session | null) => void;
28
- /** Routes that require authentication */
29
- protectedRoutes?: string[];
30
- }
@@ -1,3 +0,0 @@
1
- // sdk/state/src/auth/types.ts
2
- // Core auth types — framework-agnostic interfaces
3
- export {};