rune-lab 0.1.1 → 0.2.0

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 (290) hide show
  1. package/dist/core/index.d.ts +3 -0
  2. package/dist/core/index.d.ts.map +1 -0
  3. package/dist/core/index.js +2 -0
  4. package/dist/{internal → core/internal}/message-resolver.d.ts +1 -0
  5. package/dist/core/internal/message-resolver.d.ts.map +1 -0
  6. package/dist/{persistence → core/persistence}/types.d.ts +1 -0
  7. package/dist/core/persistence/types.d.ts.map +1 -0
  8. package/dist/index.d.ts +2 -30
  9. package/dist/index.js +2 -40
  10. package/dist/state/api.svelte.js +3 -2
  11. package/dist/state/app.svelte.js +3 -2
  12. package/dist/state/commands.svelte.js +2 -2
  13. package/dist/{composables → state/composables}/usePersistence.d.ts +1 -1
  14. package/dist/{composables → state/composables}/useRuneLab.d.ts +1 -1
  15. package/dist/{composables → state/composables}/useRuneLab.js +1 -1
  16. package/dist/state/createConfigStore.svelte.d.ts +1 -1
  17. package/dist/state/createConfigStore.svelte.js +3 -3
  18. package/dist/state/currency.svelte.d.ts +1 -1
  19. package/dist/state/currency.svelte.js +1 -1
  20. package/dist/state/daisyui.d.ts +4 -0
  21. package/dist/state/index.d.ts +5 -0
  22. package/dist/state/index.js +9 -2
  23. package/dist/state/language.svelte.d.ts +2 -1
  24. package/dist/state/language.svelte.js +6 -18
  25. package/dist/state/layout.svelte.d.ts +1 -1
  26. package/dist/state/layout.svelte.js +1 -1
  27. package/dist/{persistence → state/persistence}/drivers.d.ts +1 -1
  28. package/dist/{persistence → state/persistence}/drivers.js +1 -1
  29. package/dist/state/shortcuts.svelte.js +4 -3
  30. package/dist/state/theme.svelte.d.ts +1 -1
  31. package/dist/state/theme.svelte.js +2 -2
  32. package/dist/state/toast.svelte.js +1 -1
  33. package/dist/{actions → ui/actions}/portal.js +2 -1
  34. package/dist/{components → ui/components}/ApiMonitor.svelte +2 -2
  35. package/dist/{components → ui/components}/Icon.svelte +3 -2
  36. package/dist/{components → ui/components}/RuneProvider.svelte +31 -12
  37. package/dist/{components → ui/components}/RuneProvider.svelte.d.ts +5 -2
  38. package/dist/{components → ui/components}/Toaster.svelte +1 -1
  39. package/dist/{features → ui/features}/command-palette/CommandPalette.svelte +3 -3
  40. package/dist/ui/features/config/AppSettingSelector.svelte +177 -0
  41. package/dist/{features → ui/features}/config/AppSettingSelector.svelte.d.ts +1 -1
  42. package/dist/{features → ui/features}/config/CurrencySelector.svelte +15 -10
  43. package/dist/{features → ui/features}/config/LanguageSelector.svelte +17 -13
  44. package/dist/{features → ui/features}/config/ThemeSelector.svelte +16 -11
  45. package/dist/{features → ui/features}/shortcuts/ShortcutPalette.svelte +3 -3
  46. package/dist/ui/index.d.ts +21 -0
  47. package/dist/ui/index.js +31 -0
  48. package/dist/{features/layout/smart → ui/layout}/ConnectedNavigationPanel.svelte +2 -5
  49. package/dist/{features/layout/smart → ui/layout}/ConnectedNavigationPanel.svelte.d.ts +1 -1
  50. package/dist/{features/layout/smart → ui/layout}/ConnectedWorkspaceStrip.svelte +2 -5
  51. package/dist/{features/layout/smart → ui/layout}/ConnectedWorkspaceStrip.svelte.d.ts +1 -1
  52. package/dist/{layout → ui/layout}/NavigationPanel.svelte +1 -1
  53. package/dist/{layout → ui/layout}/NavigationPanel.svelte.d.ts +1 -1
  54. package/dist/{layout → ui/layout}/WorkspaceLayout.svelte +2 -2
  55. package/dist/{layout → ui/layout}/WorkspaceStrip.svelte +1 -1
  56. package/dist/{layout → ui/layout}/WorkspaceStrip.svelte.d.ts +1 -1
  57. package/dist/{layout → ui/layout}/index.d.ts +2 -2
  58. package/dist/{layout → ui/layout}/index.js +1 -1
  59. package/dist/{paraglide → ui/paraglide}/README.md +3 -2
  60. package/dist/{paraglide → ui/paraglide}/runtime.d.ts +17 -2
  61. package/dist/{paraglide → ui/paraglide}/runtime.js +45 -0
  62. package/package.json +41 -44
  63. package/dist/features/config/AppSettingSelector.svelte +0 -124
  64. package/dist/features/detail-panels/DashboardPanel.svelte +0 -171
  65. package/dist/features/detail-panels/DashboardPanel.svelte.d.ts +0 -3
  66. package/dist/features/detail-panels/ShortcutsPanel.svelte +0 -233
  67. package/dist/features/detail-panels/ShortcutsPanel.svelte.d.ts +0 -3
  68. package/dist/features/detail-panels/ShowcasePanel.svelte +0 -114
  69. package/dist/features/detail-panels/ShowcasePanel.svelte.d.ts +0 -3
  70. package/dist/features/detail-panels/showcase-components.d.ts +0 -6
  71. package/dist/features/detail-panels/showcase-components.js +0 -65
  72. package/dist/paraglide/messages/_index.d.ts +0 -83
  73. package/dist/paraglide/messages/_index.js +0 -84
  74. package/dist/paraglide/messages/abyss.d.ts +0 -16
  75. package/dist/paraglide/messages/abyss.js +0 -84
  76. package/dist/paraglide/messages/acid.d.ts +0 -16
  77. package/dist/paraglide/messages/acid.js +0 -84
  78. package/dist/paraglide/messages/active_toasts.d.ts +0 -16
  79. package/dist/paraglide/messages/active_toasts.js +0 -84
  80. package/dist/paraglide/messages/aed3.d.ts +0 -17
  81. package/dist/paraglide/messages/aed3.js +0 -85
  82. package/dist/paraglide/messages/all_currencies.d.ts +0 -16
  83. package/dist/paraglide/messages/all_currencies.js +0 -84
  84. package/dist/paraglide/messages/all_languages.d.ts +0 -16
  85. package/dist/paraglide/messages/all_languages.js +0 -84
  86. package/dist/paraglide/messages/all_themes.d.ts +0 -16
  87. package/dist/paraglide/messages/all_themes.js +0 -84
  88. package/dist/paraglide/messages/api_status.d.ts +0 -16
  89. package/dist/paraglide/messages/api_status.js +0 -84
  90. package/dist/paraglide/messages/app_info.d.ts +0 -16
  91. package/dist/paraglide/messages/app_info.js +0 -84
  92. package/dist/paraglide/messages/appearance.d.ts +0 -16
  93. package/dist/paraglide/messages/appearance.js +0 -84
  94. package/dist/paraglide/messages/aqua.d.ts +0 -16
  95. package/dist/paraglide/messages/aqua.js +0 -84
  96. package/dist/paraglide/messages/ar.d.ts +0 -16
  97. package/dist/paraglide/messages/ar.js +0 -84
  98. package/dist/paraglide/messages/autumn.d.ts +0 -16
  99. package/dist/paraglide/messages/autumn.js +0 -84
  100. package/dist/paraglide/messages/black.d.ts +0 -16
  101. package/dist/paraglide/messages/black.js +0 -84
  102. package/dist/paraglide/messages/bumblebee.d.ts +0 -16
  103. package/dist/paraglide/messages/bumblebee.js +0 -84
  104. package/dist/paraglide/messages/business.d.ts +0 -16
  105. package/dist/paraglide/messages/business.js +0 -84
  106. package/dist/paraglide/messages/caramellatte.d.ts +0 -16
  107. package/dist/paraglide/messages/caramellatte.js +0 -84
  108. package/dist/paraglide/messages/cmyk.d.ts +0 -16
  109. package/dist/paraglide/messages/cmyk.js +0 -84
  110. package/dist/paraglide/messages/cny3.d.ts +0 -17
  111. package/dist/paraglide/messages/cny3.js +0 -85
  112. package/dist/paraglide/messages/coffee.d.ts +0 -16
  113. package/dist/paraglide/messages/coffee.js +0 -84
  114. package/dist/paraglide/messages/commands_label.d.ts +0 -16
  115. package/dist/paraglide/messages/commands_label.js +0 -84
  116. package/dist/paraglide/messages/corporate.d.ts +0 -16
  117. package/dist/paraglide/messages/corporate.js +0 -84
  118. package/dist/paraglide/messages/cupcake.d.ts +0 -16
  119. package/dist/paraglide/messages/cupcake.js +0 -84
  120. package/dist/paraglide/messages/currency.d.ts +0 -16
  121. package/dist/paraglide/messages/currency.js +0 -84
  122. package/dist/paraglide/messages/current_currency.d.ts +0 -16
  123. package/dist/paraglide/messages/current_currency.js +0 -84
  124. package/dist/paraglide/messages/current_language.d.ts +0 -16
  125. package/dist/paraglide/messages/current_language.js +0 -84
  126. package/dist/paraglide/messages/current_theme.d.ts +0 -16
  127. package/dist/paraglide/messages/current_theme.js +0 -84
  128. package/dist/paraglide/messages/currently_in_queue.d.ts +0 -16
  129. package/dist/paraglide/messages/currently_in_queue.js +0 -84
  130. package/dist/paraglide/messages/cyberpunk.d.ts +0 -16
  131. package/dist/paraglide/messages/cyberpunk.js +0 -84
  132. package/dist/paraglide/messages/dark.d.ts +0 -16
  133. package/dist/paraglide/messages/dark.js +0 -84
  134. package/dist/paraglide/messages/de.d.ts +0 -16
  135. package/dist/paraglide/messages/de.js +0 -84
  136. package/dist/paraglide/messages/dim.d.ts +0 -16
  137. package/dist/paraglide/messages/dim.js +0 -84
  138. package/dist/paraglide/messages/dracula.d.ts +0 -16
  139. package/dist/paraglide/messages/dracula.js +0 -84
  140. package/dist/paraglide/messages/emerald.d.ts +0 -16
  141. package/dist/paraglide/messages/emerald.js +0 -84
  142. package/dist/paraglide/messages/en.d.ts +0 -16
  143. package/dist/paraglide/messages/en.js +0 -84
  144. package/dist/paraglide/messages/es.d.ts +0 -16
  145. package/dist/paraglide/messages/es.js +0 -84
  146. package/dist/paraglide/messages/eur3.d.ts +0 -17
  147. package/dist/paraglide/messages/eur3.js +0 -85
  148. package/dist/paraglide/messages/extended_controls.d.ts +0 -16
  149. package/dist/paraglide/messages/extended_controls.js +0 -84
  150. package/dist/paraglide/messages/fantasy.d.ts +0 -16
  151. package/dist/paraglide/messages/fantasy.js +0 -84
  152. package/dist/paraglide/messages/forest.d.ts +0 -16
  153. package/dist/paraglide/messages/forest.js +0 -84
  154. package/dist/paraglide/messages/fr.d.ts +0 -16
  155. package/dist/paraglide/messages/fr.js +0 -84
  156. package/dist/paraglide/messages/garden.d.ts +0 -16
  157. package/dist/paraglide/messages/garden.js +0 -84
  158. package/dist/paraglide/messages/halloween.d.ts +0 -16
  159. package/dist/paraglide/messages/halloween.js +0 -84
  160. package/dist/paraglide/messages/hello_world.d.ts +0 -18
  161. package/dist/paraglide/messages/hello_world.js +0 -84
  162. package/dist/paraglide/messages/hi.d.ts +0 -16
  163. package/dist/paraglide/messages/hi.js +0 -84
  164. package/dist/paraglide/messages/it.d.ts +0 -16
  165. package/dist/paraglide/messages/it.js +0 -84
  166. package/dist/paraglide/messages/ja.d.ts +0 -16
  167. package/dist/paraglide/messages/ja.js +0 -84
  168. package/dist/paraglide/messages/jpy3.d.ts +0 -17
  169. package/dist/paraglide/messages/jpy3.js +0 -85
  170. package/dist/paraglide/messages/ko.d.ts +0 -16
  171. package/dist/paraglide/messages/ko.js +0 -84
  172. package/dist/paraglide/messages/krw3.d.ts +0 -17
  173. package/dist/paraglide/messages/krw3.js +0 -85
  174. package/dist/paraglide/messages/languages.d.ts +0 -16
  175. package/dist/paraglide/messages/languages.js +0 -84
  176. package/dist/paraglide/messages/lemonade.d.ts +0 -16
  177. package/dist/paraglide/messages/lemonade.js +0 -84
  178. package/dist/paraglide/messages/light.d.ts +0 -16
  179. package/dist/paraglide/messages/light.js +0 -84
  180. package/dist/paraglide/messages/live_store_dashboard.d.ts +0 -16
  181. package/dist/paraglide/messages/live_store_dashboard.js +0 -84
  182. package/dist/paraglide/messages/localization.d.ts +0 -16
  183. package/dist/paraglide/messages/localization.js +0 -84
  184. package/dist/paraglide/messages/lofi.d.ts +0 -16
  185. package/dist/paraglide/messages/lofi.js +0 -84
  186. package/dist/paraglide/messages/luxury.d.ts +0 -16
  187. package/dist/paraglide/messages/luxury.js +0 -84
  188. package/dist/paraglide/messages/mxn3.d.ts +0 -17
  189. package/dist/paraglide/messages/mxn3.js +0 -85
  190. package/dist/paraglide/messages/name_label.d.ts +0 -16
  191. package/dist/paraglide/messages/name_label.js +0 -84
  192. package/dist/paraglide/messages/night.d.ts +0 -16
  193. package/dist/paraglide/messages/night.js +0 -84
  194. package/dist/paraglide/messages/nord.d.ts +0 -16
  195. package/dist/paraglide/messages/nord.js +0 -84
  196. package/dist/paraglide/messages/pastel.d.ts +0 -16
  197. package/dist/paraglide/messages/pastel.js +0 -84
  198. package/dist/paraglide/messages/pt.d.ts +0 -16
  199. package/dist/paraglide/messages/pt.js +0 -84
  200. package/dist/paraglide/messages/real_time_monitor_desc.d.ts +0 -16
  201. package/dist/paraglide/messages/real_time_monitor_desc.js +0 -84
  202. package/dist/paraglide/messages/registered_in_registry.d.ts +0 -16
  203. package/dist/paraglide/messages/registered_in_registry.js +0 -84
  204. package/dist/paraglide/messages/retro.d.ts +0 -16
  205. package/dist/paraglide/messages/retro.js +0 -84
  206. package/dist/paraglide/messages/ru.d.ts +0 -16
  207. package/dist/paraglide/messages/ru.js +0 -84
  208. package/dist/paraglide/messages/silk.d.ts +0 -16
  209. package/dist/paraglide/messages/silk.js +0 -84
  210. package/dist/paraglide/messages/state_label.d.ts +0 -16
  211. package/dist/paraglide/messages/state_label.js +0 -84
  212. package/dist/paraglide/messages/sunset.d.ts +0 -16
  213. package/dist/paraglide/messages/sunset.js +0 -84
  214. package/dist/paraglide/messages/synthwave.d.ts +0 -16
  215. package/dist/paraglide/messages/synthwave.js +0 -84
  216. package/dist/paraglide/messages/system.d.ts +0 -16
  217. package/dist/paraglide/messages/system.js +0 -84
  218. package/dist/paraglide/messages/theme.d.ts +0 -16
  219. package/dist/paraglide/messages/theme.js +0 -84
  220. package/dist/paraglide/messages/themes.d.ts +0 -16
  221. package/dist/paraglide/messages/themes.js +0 -84
  222. package/dist/paraglide/messages/url_label.d.ts +0 -16
  223. package/dist/paraglide/messages/url_label.js +0 -84
  224. package/dist/paraglide/messages/usd3.d.ts +0 -17
  225. package/dist/paraglide/messages/usd3.js +0 -85
  226. package/dist/paraglide/messages/valentine.d.ts +0 -16
  227. package/dist/paraglide/messages/valentine.js +0 -84
  228. package/dist/paraglide/messages/version_label.d.ts +0 -16
  229. package/dist/paraglide/messages/version_label.js +0 -84
  230. package/dist/paraglide/messages/vi.d.ts +0 -16
  231. package/dist/paraglide/messages/vi.js +0 -84
  232. package/dist/paraglide/messages/winter.d.ts +0 -16
  233. package/dist/paraglide/messages/winter.js +0 -84
  234. package/dist/paraglide/messages/wireframe.d.ts +0 -16
  235. package/dist/paraglide/messages/wireframe.js +0 -84
  236. package/dist/paraglide/messages/zh.d.ts +0 -16
  237. package/dist/paraglide/messages/zh.js +0 -84
  238. package/dist/server/index.d.ts +0 -15
  239. package/dist/server/index.js +0 -20
  240. package/dist/showcase/AppStateInspector.svelte +0 -184
  241. package/dist/showcase/AppStateInspector.svelte.d.ts +0 -3
  242. package/dist/showcase/Showcase.svelte +0 -115
  243. package/dist/showcase/Showcase.svelte.d.ts +0 -18
  244. package/dist/showcase/ShowcaseCard.svelte +0 -18
  245. package/dist/showcase/ShowcaseCard.svelte.d.ts +0 -9
  246. package/dist/showcase/StoreDetailCard.svelte +0 -68
  247. package/dist/showcase/StoreDetailCard.svelte.d.ts +0 -19
  248. package/dist/showcase/shared.d.ts +0 -7
  249. package/dist/showcase/shared.js +0 -34
  250. package/dist/showcase/state.svelte.d.ts +0 -3
  251. package/dist/showcase/state.svelte.js +0 -3
  252. package/dist/showcase/tabs/Actions.svelte +0 -150
  253. package/dist/showcase/tabs/Actions.svelte.d.ts +0 -18
  254. package/dist/showcase/tabs/DataInput.svelte +0 -164
  255. package/dist/showcase/tabs/DataInput.svelte.d.ts +0 -3
  256. package/dist/showcase/tabs/Display.svelte +0 -159
  257. package/dist/showcase/tabs/Display.svelte.d.ts +0 -18
  258. package/dist/showcase/tabs/Feedback.svelte +0 -180
  259. package/dist/showcase/tabs/Feedback.svelte.d.ts +0 -3
  260. package/dist/showcase/tabs/Navigation.svelte +0 -170
  261. package/dist/showcase/tabs/Navigation.svelte.d.ts +0 -18
  262. package/dist/showcase/tabs/Visual.svelte +0 -133
  263. package/dist/showcase/tabs/Visual.svelte.d.ts +0 -18
  264. /package/dist/{internal → core/internal}/message-resolver.js +0 -0
  265. /package/dist/{persistence → core/persistence}/types.js +0 -0
  266. /package/dist/{composables → state/composables}/usePersistence.js +0 -0
  267. /package/dist/{config.d.ts → state/config.d.ts} +0 -0
  268. /package/dist/{config.js → state/config.js} +0 -0
  269. /package/dist/{context.d.ts → state/context.d.ts} +0 -0
  270. /package/dist/{context.js → state/context.js} +0 -0
  271. /package/dist/{actions → ui/actions}/portal.d.ts +0 -0
  272. /package/dist/{components → ui/components}/ApiMonitor.svelte.d.ts +0 -0
  273. /package/dist/{components → ui/components}/Icon.svelte.d.ts +0 -0
  274. /package/dist/{components → ui/components}/Toaster.svelte.d.ts +0 -0
  275. /package/dist/{features → ui/features}/command-palette/CommandPalette.svelte.d.ts +0 -0
  276. /package/dist/{features → ui/features}/config/CurrencySelector.svelte.d.ts +0 -0
  277. /package/dist/{features → ui/features}/config/LanguageSelector.svelte.d.ts +0 -0
  278. /package/dist/{features → ui/features}/config/ThemeSelector.svelte.d.ts +0 -0
  279. /package/dist/{features → ui/features}/shortcuts/ShortcutPalette.svelte.d.ts +0 -0
  280. /package/dist/{layout → ui/layout}/ContentArea.svelte +0 -0
  281. /package/dist/{layout → ui/layout}/ContentArea.svelte.d.ts +0 -0
  282. /package/dist/{layout → ui/layout}/DetailPanel.svelte +0 -0
  283. /package/dist/{layout → ui/layout}/DetailPanel.svelte.d.ts +0 -0
  284. /package/dist/{layout → ui/layout}/WorkspaceLayout.svelte.d.ts +0 -0
  285. /package/dist/{paraglide → ui/paraglide}/messages.d.ts +0 -0
  286. /package/dist/{paraglide → ui/paraglide}/messages.js +0 -0
  287. /package/dist/{paraglide → ui/paraglide}/registry.d.ts +0 -0
  288. /package/dist/{paraglide → ui/paraglide}/registry.js +0 -0
  289. /package/dist/{paraglide → ui/paraglide}/server.d.ts +0 -0
  290. /package/dist/{paraglide → ui/paraglide}/server.js +0 -0
@@ -0,0 +1,3 @@
1
+ export * from "./internal/message-resolver";
2
+ export * from "./persistence/types";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sdk/core/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAE5C,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./internal/message-resolver";
2
+ export * from "./persistence/types";
@@ -39,3 +39,4 @@ export declare function hasMessage(messages: MessageBundle, key: string): boolea
39
39
  */
40
40
  export declare function batchResolveMessages<T>(messages: MessageBundle, options: T[], config: MessageResolverConfig<T>): Record<string, string>;
41
41
  export {};
42
+ //# sourceMappingURL=message-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-resolver.d.ts","sourceRoot":"","sources":["../../../src/sdk/core/src/internal/message-resolver.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AAEH,KAAK,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,CAAC;AAEhE,UAAU,qBAAqB,CAAC,CAAC;IAC/B;;;OAGG;IACH,YAAY,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,MAAM,CAAC;IAEpC;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;CAC1C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EACrC,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC,IAExB,QAAQ,CAAC,KAAG,MAAM,CAmB3B;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAExE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EACpC,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,CAAC,EAAE,EACZ,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAC/B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQxB"}
@@ -15,3 +15,4 @@ export interface PersistenceDriver {
15
15
  */
16
16
  remove(key: string): void;
17
17
  }
18
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
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"}
package/dist/index.d.ts CHANGED
@@ -1,30 +1,2 @@
1
- export { createConfigStore } from "./state/createConfigStore.svelte";
2
- export { createMessageResolver } from "./internal/message-resolver";
3
- export { RUNE_LAB_CONTEXT } from "./context";
4
- export type { PersistenceDriver } from "./persistence/types";
5
- export { cookieDriver, inMemoryDriver, localStorageDriver, sessionStorageDriver, } from "./persistence/drivers";
6
- export { type RuneLabContext, useRuneLab } from "./composables/useRuneLab.js";
7
- export { usePersistence } from "./composables/usePersistence.js";
8
- export { portal } from "./actions/portal";
9
- export { default as RuneProvider } from "./components/RuneProvider.svelte";
10
- export { default as Icon } from "./components/Icon.svelte";
11
- export { default as Toaster } from "./components/Toaster.svelte";
12
- export { default as ApiMonitor } from "./components/ApiMonitor.svelte";
13
- export { default as CommandPalette } from "./features/command-palette/CommandPalette.svelte";
14
- export { default as ShortcutPalette } from "./features/shortcuts/ShortcutPalette.svelte";
15
- export { default as WorkspaceLayout, type WorkspaceLayoutProps, } from "./layout/WorkspaceLayout.svelte";
16
- export { default as WorkspaceStrip } from "./layout/WorkspaceStrip.svelte";
17
- export { default as NavigationPanel } from "./layout/NavigationPanel.svelte";
18
- export { default as ContentArea } from "./layout/ContentArea.svelte";
19
- export { default as DetailPanel } from "./layout/DetailPanel.svelte";
20
- export { default as ConnectedNavigationPanel } from "./features/layout/smart/ConnectedNavigationPanel.svelte";
21
- export { default as ConnectedWorkspaceStrip } from "./features/layout/smart/ConnectedWorkspaceStrip.svelte";
22
- export { default as AppSettingSelector } from "./features/config/AppSettingSelector.svelte";
23
- export { default as ThemeSelector } from "./features/config/ThemeSelector.svelte";
24
- export { default as LanguageSelector } from "./features/config/LanguageSelector.svelte";
25
- export { default as CurrencySelector } from "./features/config/CurrencySelector.svelte";
26
- export { createApiStore, createAppStore, createCommandStore, createCurrencyStore, createLanguageStore, createLayoutStore, createShortcutStore, createThemeStore, createToastBridge, createToastStore, getApiStore, getAppStore, getCommandStore, getCurrencyStore, getLanguageStore, getLayoutStore, getShortcutStore, getThemeStore, getToastStore, notify, } from "./state/index";
27
- export { default as AppStateInspector } from "./showcase/AppStateInspector.svelte";
28
- export type { AppData, Command, ConfigStore, Currency, Language, NavigationItem, NavigationSection, ShortcutEntry, Theme, WorkspaceItem, } from "./state/index";
29
- export type { ConnectionState } from "./state/api.svelte";
30
- export * as sdkMessages from "./paraglide/messages.js";
1
+ export * from "./ui/index.js";
2
+ export { cookieDriver, localStorageDriver, sessionStorageDriver } from "./state/index.js";
package/dist/index.js CHANGED
@@ -1,40 +1,2 @@
1
- // src/lib/index.ts
2
- // Public surface of rune-lab.
3
- // ── Devtools utilities ────────────────────────────────────────────────────────
4
- export { createConfigStore } from "./state/createConfigStore.svelte";
5
- export { createMessageResolver } from "./internal/message-resolver";
6
- export { RUNE_LAB_CONTEXT } from "./context";
7
- export { cookieDriver, inMemoryDriver, localStorageDriver, sessionStorageDriver, } from "./persistence/drivers";
8
- // ── Composables ───────────────────────────────────────────────────────────────
9
- export { useRuneLab } from "./composables/useRuneLab.js";
10
- export { usePersistence } from "./composables/usePersistence.js";
11
- // ── Actions ───────────────────────────────────────────────────────────────────
12
- export { portal } from "./actions/portal";
13
- // ── UI Components ─────────────────────────────────────────────────────────────
14
- // Core primitives
15
- export { default as RuneProvider } from "./components/RuneProvider.svelte";
16
- export { default as Icon } from "./components/Icon.svelte";
17
- // Core overlays
18
- export { default as Toaster } from "./components/Toaster.svelte";
19
- export { default as ApiMonitor } from "./components/ApiMonitor.svelte";
20
- export { default as CommandPalette } from "./features/command-palette/CommandPalette.svelte";
21
- export { default as ShortcutPalette } from "./features/shortcuts/ShortcutPalette.svelte";
22
- // Layout - Dumb Primitives
23
- export { default as WorkspaceLayout, } from "./layout/WorkspaceLayout.svelte";
24
- export { default as WorkspaceStrip } from "./layout/WorkspaceStrip.svelte";
25
- export { default as NavigationPanel } from "./layout/NavigationPanel.svelte";
26
- export { default as ContentArea } from "./layout/ContentArea.svelte";
27
- export { default as DetailPanel } from "./layout/DetailPanel.svelte";
28
- // Layout - Smart Connected Components
29
- export { default as ConnectedNavigationPanel } from "./features/layout/smart/ConnectedNavigationPanel.svelte";
30
- export { default as ConnectedWorkspaceStrip } from "./features/layout/smart/ConnectedWorkspaceStrip.svelte";
31
- // Setting selectors
32
- export { default as AppSettingSelector } from "./features/config/AppSettingSelector.svelte";
33
- export { default as ThemeSelector } from "./features/config/ThemeSelector.svelte";
34
- export { default as LanguageSelector } from "./features/config/LanguageSelector.svelte";
35
- export { default as CurrencySelector } from "./features/config/CurrencySelector.svelte";
36
- // ── Stores ────────────────────────────────────────────────────────────────────
37
- export { createApiStore, createAppStore, createCommandStore, createCurrencyStore, createLanguageStore, createLayoutStore, createShortcutStore, createThemeStore, createToastBridge, createToastStore, getApiStore, getAppStore, getCommandStore, getCurrencyStore, getLanguageStore, getLayoutStore, getShortcutStore, getThemeStore, getToastStore, notify, } from "./state/index";
38
- export { default as AppStateInspector } from "./showcase/AppStateInspector.svelte";
39
- // ── Paraglide compiled messages ───────────────────────────────────────────────
40
- export * as sdkMessages from "./paraglide/messages.js";
1
+ export * from "./ui/index.js";
2
+ export { cookieDriver, localStorageDriver, sessionStorageDriver } from "./state/index.js";
@@ -1,5 +1,6 @@
1
1
  import { getContext } from "svelte";
2
- import { RUNE_LAB_CONTEXT } from "../context";
2
+ import { RUNE_LAB_CONTEXT } from "./context";
3
+ import { DEV } from 'esm-env';
3
4
  export class ApiStore {
4
5
  // State
5
6
  url = $state("http://localhost:8000");
@@ -34,7 +35,7 @@ export class ApiStore {
34
35
  }
35
36
  else {
36
37
  // Simulate connection if no health check provided
37
- if (import.meta.env.DEV) {
38
+ if (DEV) {
38
39
  console.warn("[rune-lab] ApiStore: No healthCheck provided to init(). Using simulated connection delay.");
39
40
  }
40
41
  await new Promise((resolve) => setTimeout(resolve, 1500));
@@ -1,6 +1,7 @@
1
1
  // src/lib/stores/app-config.svelte.ts
2
2
  import { getContext } from "svelte";
3
- import { RUNE_LAB_CONTEXT } from "../context";
3
+ import { RUNE_LAB_CONTEXT } from "./context";
4
+ import { DEV } from 'esm-env';
4
5
  /**
5
6
  * App Store
6
7
  * Manages application metadata and identity
@@ -21,7 +22,7 @@ export class AppStore {
21
22
  */
22
23
  init(data) {
23
24
  if (this.#initialized) {
24
- if (import.meta.env?.DEV) {
25
+ if (DEV) {
25
26
  console.warn("AppStore.init() called multiple times. Ignoring subsequent calls.", "Overwritten properties would have been:", data);
26
27
  }
27
28
  return;
@@ -1,5 +1,5 @@
1
- import { getContext, untrack } from "svelte";
2
- import { RUNE_LAB_CONTEXT } from "../context";
1
+ import { getContext } from "svelte";
2
+ import { RUNE_LAB_CONTEXT } from "./context";
3
3
  export class CommandStore {
4
4
  // Dependency Injection
5
5
  #services;
@@ -1,2 +1,2 @@
1
- import type { PersistenceDriver } from "../persistence/types";
1
+ import type { PersistenceDriver } from "@internal/core";
2
2
  export declare function usePersistence(): PersistenceDriver | undefined;
@@ -1,4 +1,4 @@
1
- import { getApiStore, getAppStore, getCommandStore, getCurrencyStore, getLanguageStore, getLayoutStore, getShortcutStore, getThemeStore, getToastStore } from "../state/index";
1
+ import { getApiStore, getAppStore, getCommandStore, getCurrencyStore, getLanguageStore, getLayoutStore, getShortcutStore, getThemeStore, getToastStore } from "../index";
2
2
  export interface RuneLabContext {
3
3
  app: ReturnType<typeof getAppStore>;
4
4
  api: ReturnType<typeof getApiStore>;
@@ -1,5 +1,5 @@
1
1
  // src/lib/composables/useRuneLab.ts
2
- import { getApiStore, getAppStore, getCommandStore, getCurrencyStore, getLanguageStore, getLayoutStore, getShortcutStore, getThemeStore, getToastStore, } from "../state/index";
2
+ import { getApiStore, getAppStore, getCommandStore, getCurrencyStore, getLanguageStore, getLayoutStore, getShortcutStore, getThemeStore, getToastStore, } from "../index";
3
3
  /**
4
4
  * Retrieves all Rune Lab stores from the Svelte context tree.
5
5
  * Must be called during component initialization (in the `<script>` block).
@@ -1,4 +1,4 @@
1
- import { type PersistenceDriver } from "../persistence/types";
1
+ import { type PersistenceDriver } from "@internal/core";
2
2
  export type ConfigStore<T extends ConfigItem> = {
3
3
  current: T[keyof T];
4
4
  available: T[];
@@ -1,6 +1,6 @@
1
1
  // client/sdk/devtools/src/patterns/createConfigStore.svelte.ts
2
- import {} from "../persistence/types";
3
- import { createInMemoryDriver } from "../persistence/drivers";
2
+ import { createInMemoryDriver } from "./persistence/drivers";
3
+ import { DEV } from 'esm-env';
4
4
  /**
5
5
  * Creates a reactive configuration store with persistence
6
6
  */
@@ -15,7 +15,7 @@ export function createConfigStore(options) {
15
15
  if (saved && this.get(saved)) {
16
16
  this.current = saved;
17
17
  }
18
- if (import.meta.env?.DEV) {
18
+ if (DEV) {
19
19
  console.log(`${icon} ${displayName} configured:`, {
20
20
  current: this.current,
21
21
  });
@@ -8,7 +8,7 @@ export interface Currency {
8
8
  symbol: string;
9
9
  decimals: number;
10
10
  }
11
- import type { PersistenceDriver } from "../persistence/types";
11
+ import type { PersistenceDriver } from "@internal/core";
12
12
  export declare function createCurrencyStore(driver?: PersistenceDriver | (() => PersistenceDriver | undefined)): {
13
13
  current: string | number;
14
14
  available: Currency[];
@@ -1,6 +1,6 @@
1
1
  import { createConfigStore, } from "./createConfigStore.svelte";
2
2
  import { getContext } from "svelte";
3
- import { RUNE_LAB_CONTEXT } from "../context";
3
+ import { RUNE_LAB_CONTEXT } from "./context";
4
4
  const CURRENCIES = [
5
5
  { code: "USD", symbol: "$", decimals: 2 },
6
6
  { code: "EUR", symbol: "€", decimals: 2 },
@@ -0,0 +1,4 @@
1
+ declare module "daisyui/functions/themeOrder.js" {
2
+ const themeOrder: string[];
3
+ export default themeOrder;
4
+ }
@@ -1,3 +1,8 @@
1
+ export { RUNE_LAB_CONTEXT } from "./context";
2
+ export { useRuneLab } from "./composables/useRuneLab";
3
+ export type { RuneLabContext } from "./composables/useRuneLab";
4
+ export { usePersistence } from "./composables/usePersistence";
5
+ export { cookieDriver, createInMemoryDriver, inMemoryDriver, localStorageDriver, sessionStorageDriver, } from "./persistence/drivers";
1
6
  export { type AppData, AppStore, createAppStore, getAppStore, } from "./app.svelte";
2
7
  export { createLayoutStore, getLayoutStore, LayoutStore, type NavigationItem, type NavigationSection, type WorkspaceItem, } from "./layout.svelte";
3
8
  export { ApiStore, type ConnectionState, createApiStore, getApiStore, } from "./api.svelte";
@@ -1,5 +1,12 @@
1
- // src/lib/state/index.ts
2
- // Unified public barrel for all application-level state.
1
+ // sdk/state/src/index.ts
2
+ // Unified public barrel for @internal/state
3
+ // ── Context ───────────────────────────────────────────────────────────────────
4
+ export { RUNE_LAB_CONTEXT } from "./context";
5
+ // ── Composables ───────────────────────────────────────────────────────────────
6
+ export { useRuneLab } from "./composables/useRuneLab";
7
+ export { usePersistence } from "./composables/usePersistence";
8
+ // ── Persistence Drivers ───────────────────────────────────────────────────────
9
+ export { cookieDriver, createInMemoryDriver, inMemoryDriver, localStorageDriver, sessionStorageDriver, } from "./persistence/drivers";
3
10
  // Stores
4
11
  export { AppStore, createAppStore, getAppStore, } from "./app.svelte";
5
12
  export { createLayoutStore, getLayoutStore, LayoutStore, } from "./layout.svelte";
@@ -47,10 +47,11 @@ export declare const LANGUAGES: readonly [{
47
47
  readonly code: "vi";
48
48
  readonly flag: "🇻🇳";
49
49
  }];
50
- import type { PersistenceDriver } from "../persistence/types";
50
+ import type { PersistenceDriver } from "@internal/core";
51
51
  export interface LanguageStoreOptions {
52
52
  driver?: PersistenceDriver | (() => PersistenceDriver | undefined);
53
53
  onLocaleChange?: (code: string) => void;
54
+ locales?: readonly string[];
54
55
  }
55
56
  export declare function createLanguageStore(options?: LanguageStoreOptions): {
56
57
  current: string | undefined;
@@ -1,8 +1,7 @@
1
- // client/sdk/state/src/config/language.svelte.ts
1
+ // sdk/state/src/language.svelte.ts
2
2
  import { createConfigStore, } from "./createConfigStore.svelte";
3
- import { setLocale } from "../paraglide/runtime.js";
4
3
  import { getContext } from "svelte";
5
- import { RUNE_LAB_CONTEXT } from "../context";
4
+ import { RUNE_LAB_CONTEXT } from "./context";
6
5
  export const LANGUAGES = [
7
6
  // --- INDOEUROPEAS (Rama Romance / Latín) ---
8
7
  { code: "es", flag: "🇲🇽" },
@@ -27,28 +26,17 @@ export function createLanguageStore(options) {
27
26
  const driver = typeof options?.driver === "function"
28
27
  ? options.driver()
29
28
  : options?.driver;
29
+ const items = options?.locales
30
+ ? LANGUAGES.filter((l) => options.locales.includes(l.code))
31
+ : LANGUAGES;
30
32
  const store = createConfigStore({
31
- items: LANGUAGES,
33
+ items,
32
34
  storageKey: "language",
33
35
  displayName: "Language",
34
36
  idKey: "code",
35
37
  icon: "🌍",
36
38
  driver,
37
39
  });
38
- // Sync Paraglide locale with languageStore
39
- if (typeof window !== "undefined") {
40
- $effect.root(() => {
41
- $effect(() => {
42
- const currentCode = store.current;
43
- if (options?.onLocaleChange) {
44
- options.onLocaleChange(currentCode);
45
- }
46
- else {
47
- setLocale(currentCode);
48
- }
49
- });
50
- });
51
- }
52
40
  return store;
53
41
  }
54
42
  export function getLanguageStore() {
@@ -1,4 +1,4 @@
1
- import type { PersistenceDriver } from "../persistence/types";
1
+ import type { PersistenceDriver } from "@internal/core";
2
2
  export interface WorkspaceItem {
3
3
  id: string;
4
4
  icon: string;
@@ -1,6 +1,6 @@
1
1
  // src/lib/state/layout.svelte.ts
2
2
  import { getContext } from "svelte";
3
- import { RUNE_LAB_CONTEXT } from "../context";
3
+ import { RUNE_LAB_CONTEXT } from "./context";
4
4
  export class LayoutStore {
5
5
  workspaces = $state([]);
6
6
  activeWorkspaceId = $state(null);
@@ -1,4 +1,4 @@
1
- import type { PersistenceDriver } from "./types";
1
+ import type { PersistenceDriver } from "@internal/core";
2
2
  export declare function createInMemoryDriver(): PersistenceDriver;
3
3
  export declare const inMemoryDriver: PersistenceDriver;
4
4
  export declare const localStorageDriver: PersistenceDriver;
@@ -1,4 +1,4 @@
1
- import { browser } from "$app/environment";
1
+ import { BROWSER as browser } from "esm-env";
2
2
  export function createInMemoryDriver() {
3
3
  const store = new Map();
4
4
  return {
@@ -1,6 +1,7 @@
1
1
  import hotkeys from "hotkeys-js";
2
2
  import { getContext, untrack } from "svelte";
3
- import { RUNE_LAB_CONTEXT } from "../context";
3
+ import { RUNE_LAB_CONTEXT } from "./context";
4
+ import { DEV } from 'esm-env';
4
5
  /**
5
6
  * Built-in layout shortcuts
6
7
  */
@@ -97,7 +98,7 @@ export class ShortcutStore {
97
98
  untrack(() => {
98
99
  const existingIndex = this.entries.findIndex((e) => e.id === entry.id);
99
100
  if (existingIndex !== -1) {
100
- if (import.meta.env?.DEV) {
101
+ if (DEV) {
101
102
  console.warn(`[ShortcutStore] Overwriting shortcut ID "${entry.id}"`, {
102
103
  old: this.entries[existingIndex],
103
104
  new: entry,
@@ -108,7 +109,7 @@ export class ShortcutStore {
108
109
  }
109
110
  // Check for collisions (keys + scope)
110
111
  const collision = this.entries.find((e) => e.keys === entry.keys && e.scope === entry.scope);
111
- if (collision && import.meta.env?.DEV) {
112
+ if (collision && DEV) {
112
113
  console.warn(`[ShortcutStore] Collision detected for keys "${entry.keys}" in scope "${entry.scope}". ` +
113
114
  `ID "${entry.id}" will displace "${collision.id}".`);
114
115
  }
@@ -3,7 +3,7 @@ export interface Theme {
3
3
  name: string;
4
4
  icon: string;
5
5
  }
6
- import type { PersistenceDriver } from "../persistence/types";
6
+ import type { PersistenceDriver } from "@internal/core";
7
7
  export declare function createThemeStore(driver?: PersistenceDriver | (() => PersistenceDriver | undefined)): {
8
8
  current: string;
9
9
  available: Theme[];
@@ -1,8 +1,7 @@
1
1
  // client/packages/ui/src/state/theme-config.svelte.ts
2
2
  import { createConfigStore, } from "./createConfigStore.svelte";
3
3
  import { getContext } from "svelte";
4
- import { RUNE_LAB_CONTEXT } from "../context";
5
- import themeOrder from "daisyui/functions/themeOrder.js"; // has its own .d.ts
4
+ import { RUNE_LAB_CONTEXT } from "./context";
6
5
  // Icon map for known themes - unknown ones fall back to 🎨
7
6
  const THEME_ICONS = {
8
7
  light: "🌞",
@@ -46,6 +45,7 @@ const THEMES = themeOrder.map((name) => ({
46
45
  name,
47
46
  icon: THEME_ICONS[name] ?? "🎨",
48
47
  }));
48
+ import themeOrder from "daisyui/functions/themeOrder.js";
49
49
  export function createThemeStore(driver) {
50
50
  return createConfigStore({
51
51
  items: THEMES,
@@ -1,5 +1,5 @@
1
1
  import { getContext } from "svelte";
2
- import { RUNE_LAB_CONTEXT } from "../context";
2
+ import { RUNE_LAB_CONTEXT } from "./context";
3
3
  export class ToastStore {
4
4
  toasts = $state([]);
5
5
  /**
@@ -1,3 +1,4 @@
1
+ import { DEV } from 'esm-env';
1
2
  /**
2
3
  * Svelte action to teleport a DOM element to a different target (e.g. body)
3
4
  */
@@ -7,7 +8,7 @@ export function portal(node, target = "body") {
7
8
  function update(newTarget) {
8
9
  if (typeof newTarget === "string") {
9
10
  targetNode = document.querySelector(newTarget);
10
- if (!targetNode && import.meta.env?.DEV) {
11
+ if (!targetNode && DEV) {
11
12
  console.warn(`portal target selector "${newTarget}" not found in document.`);
12
13
  }
13
14
  }
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">
2
- import { getApiStore } from "../state/api.svelte";
3
- import { getToastStore } from "../state/toast.svelte";
2
+ import { getApiStore } from "@internal/state";
3
+ import { getToastStore } from "@internal/state";
4
4
 
5
5
  const apiStore = getApiStore();
6
6
  const toastStore = getToastStore();
@@ -1,5 +1,6 @@
1
1
  <script lang="ts">
2
- import { getAppStore } from "../state/app.svelte";
2
+ import { getAppStore } from "@internal/state";
3
+ import { DEV } from "esm-env";
3
4
 
4
5
  /**
5
6
  * Simple Icon component for Rune Lab
@@ -63,7 +64,7 @@
63
64
  if (appStore?.customIcons?.[name]) return appStore.customIcons[name];
64
65
  if (paths[name]) return paths[name];
65
66
 
66
- if (import.meta.env?.DEV) {
67
+ if (DEV) {
67
68
  console.warn(`[Icon] Unknown icon name: "${name}"`);
68
69
  }
69
70
  return paths.unknown;
@@ -10,13 +10,12 @@
10
10
  createLanguageStore,
11
11
  createCurrencyStore,
12
12
  createShortcutStore,
13
- } from "../state/index";
14
- import { wire } from "../state/toast-bridge";
15
- import { Toaster, CommandPalette, ShortcutPalette } from "../index";
16
-
17
- import type { PersistenceDriver } from "../persistence/types";
18
- import { RUNE_LAB_CONTEXT } from "../context";
19
- import type { AppData } from "../state/app.svelte";
13
+ } from "@internal/state";
14
+ import type { PersistenceDriver } from "@internal/core";
15
+ import { localStorageDriver } from "@internal/state";
16
+ import { RUNE_LAB_CONTEXT } from "@internal/state";
17
+ import type { AppData } from "@internal/state";
18
+ import { CommandPalette, ShortcutPalette, Toaster } from "@internal/ui";
20
19
 
21
20
  export interface RuneLabConfig {
22
21
  persistence?: PersistenceDriver;
@@ -26,6 +25,9 @@
26
25
  favicon?: string;
27
26
  manageHead?: boolean;
28
27
  dictionary?: Record<string, any>;
28
+ locales?: readonly string[];
29
+ onLanguageChange?: (code: string) => void;
30
+ onThemeChange?: (name: string) => void;
29
31
  }
30
32
 
31
33
  let { children, config = {} } = $props<{
@@ -38,15 +40,17 @@
38
40
  const apiStore = createApiStore();
39
41
  const toastStore = createToastStore();
40
42
 
41
- // Wire global toast bridge
42
- wire(toastStore);
43
-
44
43
  // Capture the initial persistence prop to avoid Svelte 5 reactive capture warnings
45
- const initialPersistence = untrack(() => config.persistence);
44
+ // Default to localStorageDriver to ensure UI selectors persist across browser page reloads
45
+ const initialPersistence = untrack(
46
+ () => config.persistence ?? localStorageDriver,
47
+ );
48
+ const initialLocales = untrack(() => config.locales);
46
49
 
47
50
  const themeStore = createThemeStore(initialPersistence);
48
51
  const languageStore = createLanguageStore({
49
52
  driver: initialPersistence,
53
+ locales: initialLocales,
50
54
  });
51
55
  const currencyStore = createCurrencyStore(initialPersistence);
52
56
  const shortcutStore = createShortcutStore();
@@ -85,7 +89,22 @@
85
89
  });
86
90
 
87
91
  $effect(() => {
88
- if (config.apiUrl) apiStore.init(config.apiUrl, "v1", config.apiHealthCheck);
92
+ if (config.apiUrl)
93
+ apiStore.init(config.apiUrl, "v1", config.apiHealthCheck);
94
+ });
95
+
96
+ $effect(() => {
97
+ const code = languageStore.current as string;
98
+ if (config.onLanguageChange) {
99
+ config.onLanguageChange(code);
100
+ }
101
+ });
102
+
103
+ $effect(() => {
104
+ const name = themeStore.current as string;
105
+ if (config.onThemeChange) {
106
+ config.onThemeChange(name);
107
+ }
89
108
  });
90
109
 
91
110
  onMount(() => {
@@ -1,6 +1,6 @@
1
1
  import { type Snippet } from "svelte";
2
- import type { PersistenceDriver } from "../persistence/types";
3
- import type { AppData } from "../state/app.svelte";
2
+ import type { PersistenceDriver } from "@internal/core";
3
+ import type { AppData } from "@internal/state";
4
4
  export interface RuneLabConfig {
5
5
  persistence?: PersistenceDriver;
6
6
  app?: Partial<AppData>;
@@ -9,6 +9,9 @@ export interface RuneLabConfig {
9
9
  favicon?: string;
10
10
  manageHead?: boolean;
11
11
  dictionary?: Record<string, any>;
12
+ locales?: readonly string[];
13
+ onLanguageChange?: (code: string) => void;
14
+ onThemeChange?: (name: string) => void;
12
15
  }
13
16
  type $$ComponentProps = {
14
17
  children: Snippet;
@@ -1,5 +1,5 @@
1
1
  <script lang="ts">
2
- import { getToastStore } from "../state/toast.svelte";
2
+ import { getToastStore } from "@internal/state";
3
3
  import { portal } from "../actions/portal";
4
4
  import { flip } from "svelte/animate";
5
5
  import { fade, fly } from "svelte/transition";
@@ -1,9 +1,9 @@
1
1
  <!-- src/client/sdk/ui/src/features/config/CommandPalette.svelte -->
2
2
  <script lang="ts">
3
3
  import { onMount, tick } from "svelte";
4
- import { getCommandStore, type Command } from "../../state/commands.svelte";
5
- import { getShortcutStore } from "../../state/shortcuts.svelte";
6
- import { Icon } from "../../index";
4
+ import { getCommandStore, type Command } from "@internal/state";
5
+ import { getShortcutStore } from "@internal/state";
6
+ import { Icon } from "@internal/ui";
7
7
 
8
8
  let { shortcutKey = "shift+k" } = $props<{ shortcutKey?: string }>();
9
9