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
@@ -0,0 +1,261 @@
1
+ // sdk/state/src/composables/useMoney.ts
2
+ // Context-aware money composable that reads CurrencyStore + LanguageStore
3
+
4
+ import { getContext } from "svelte";
5
+ import { RUNE_LAB_CONTEXT } from "@rune-lab/kernel";
6
+ import type { ConfigStore } from "@rune-lab/kernel";
7
+ import {
8
+ addMoney,
9
+ convertMoney,
10
+ createMoney,
11
+ formatMoney,
12
+ multiplyMoney,
13
+ subtractMoney,
14
+ toAdyenMoney,
15
+ toMinorUnit,
16
+ toMoneySnapshot,
17
+ toPaypalMoney,
18
+ toSquareMoney,
19
+ toStripeMoney,
20
+ } from "@rune-lab/money";
21
+ import type {
22
+ CurrencyStore,
23
+ Dinero,
24
+ ExchangeRateStore,
25
+ ISO4217Code,
26
+ } from "@rune-lab/money";
27
+
28
+ export interface UseMoneyReturn {
29
+ toDinero: (
30
+ amount: number | null | undefined,
31
+ currencyCode?: ISO4217Code | string,
32
+ unit?: "major" | "minor",
33
+ ) => Dinero<number>;
34
+ format: (
35
+ amount: number | null | undefined,
36
+ currencyCode?: ISO4217Code | string,
37
+ unit?: "major" | "minor",
38
+ localeOverride?: string,
39
+ ) => string;
40
+ add: (
41
+ a: number,
42
+ b: number,
43
+ currencyCode?: ISO4217Code | string,
44
+ unit?: "major" | "minor",
45
+ ) => Dinero<number>;
46
+ subtract: (
47
+ a: number,
48
+ b: number,
49
+ currencyCode?: ISO4217Code | string,
50
+ unit?: "major" | "minor",
51
+ ) => Dinero<number>;
52
+ convert: (
53
+ amount: number,
54
+ fromCode: string,
55
+ unit?: "major" | "minor",
56
+ ) => Dinero<number>;
57
+ formatConverted: (
58
+ amount: number,
59
+ fromCode: string,
60
+ unit?: "major" | "minor",
61
+ ) => string;
62
+ toPayload: (
63
+ amount: number,
64
+ currencyCode?: string,
65
+ target?: "stripe" | "paypal" | "adyen" | "square",
66
+ unit?: "major" | "minor",
67
+ ) =>
68
+ | { amount: number; currency: string }
69
+ | { value: string; currency_code: string }
70
+ | { value: number; currency: string }
71
+ | { amount: bigint; currency: string };
72
+ multiply: (
73
+ amount: number,
74
+ factor: number,
75
+ currencyCode?: ISO4217Code | string,
76
+ unit?: "major" | "minor",
77
+ ) => Dinero<number>;
78
+ }
79
+
80
+ /**
81
+ * Context-aware money composable.
82
+ * Reads CurrencyStore and LanguageStore from rune-lab context.
83
+ *
84
+ * Usage:
85
+ * const { format, toDinero, add, subtract, convert } = useMoney();
86
+ * const display = format(150.00, undefined, 'major'); // "$150.00"
87
+ */
88
+ export function useMoney(): UseMoneyReturn {
89
+ const currencyStore = getContext<CurrencyStore>(RUNE_LAB_CONTEXT.currency);
90
+ const languageStore = getContext<ConfigStore<unknown>>(
91
+ RUNE_LAB_CONTEXT.language,
92
+ );
93
+ const exchangeRateStore = getContext<ExchangeRateStore>(
94
+ RUNE_LAB_CONTEXT.exchangeRate,
95
+ );
96
+
97
+ /**
98
+ * Convert amount to a Dinero object using current currency
99
+ */
100
+ function toDinero(
101
+ amount: number | null | undefined,
102
+ currencyCode?: ISO4217Code | string,
103
+ unit: "major" | "minor" = "minor",
104
+ ): Dinero<number> {
105
+ const code = currencyCode ?? String(currencyStore.current);
106
+ const minorAmount =
107
+ unit === "major" && amount !== null && amount !== undefined
108
+ ? toMinorUnit(Number(amount), code)
109
+ : amount;
110
+ return createMoney(minorAmount, code);
111
+ }
112
+
113
+ /**
114
+ * Format an amount as a locale-aware currency string
115
+ */
116
+ function format(
117
+ amount: number | null | undefined,
118
+ currencyCode?: ISO4217Code | string,
119
+ unit: "major" | "minor" = "minor",
120
+ localeOverride?: string,
121
+ ): string {
122
+ if (
123
+ amount === null || amount === undefined ||
124
+ (typeof amount === "number" && isNaN(amount))
125
+ ) {
126
+ return "—";
127
+ }
128
+
129
+ const code = currencyCode ?? String(currencyStore.current);
130
+ const locale = localeOverride ?? (String(languageStore.current) || "en");
131
+
132
+ const minorAmount = unit === "major"
133
+ ? toMinorUnit(Number(amount), code)
134
+ : amount;
135
+
136
+ const money = createMoney(minorAmount, code);
137
+ return formatMoney(money, locale, code);
138
+ }
139
+
140
+ /**
141
+ * Converts an amount from fromCode to the current display currency.
142
+ */
143
+ function convert(
144
+ amount: number,
145
+ fromCode: string,
146
+ unit: "major" | "minor" = "minor",
147
+ ): Dinero<number> {
148
+ const minorAmount = unit === "major"
149
+ ? toMinorUnit(amount, fromCode)
150
+ : amount;
151
+ const currentCode = String(currencyStore.current);
152
+
153
+ if (!exchangeRateStore?.hasRates || fromCode === currentCode) {
154
+ return createMoney(minorAmount, fromCode);
155
+ }
156
+
157
+ const sourceMoney = createMoney(minorAmount, fromCode);
158
+ return convertMoney(sourceMoney, currentCode, exchangeRateStore.rates);
159
+ }
160
+
161
+ /**
162
+ * Convenience: converts and formats an amount in one go.
163
+ */
164
+ function formatConverted(
165
+ amount: number,
166
+ fromCode: string,
167
+ unit: "major" | "minor" = "minor",
168
+ ): string {
169
+ const money = convert(amount, fromCode, unit);
170
+ const locale = String(languageStore.current) || "en";
171
+ const currentCode = String(currencyStore.current);
172
+ const snapshot = toMoneySnapshot(money);
173
+
174
+ // If conversion didn't happen (no rates), format as original currency
175
+ const displayCode = exchangeRateStore?.hasRates
176
+ ? currentCode
177
+ : snapshot.currency;
178
+
179
+ return formatMoney(money, locale, displayCode);
180
+ }
181
+
182
+ /**
183
+ * Multiply an amount by a factor.
184
+ */
185
+ function multiply(
186
+ amount: number,
187
+ factor: number,
188
+ currencyCode?: ISO4217Code | string,
189
+ unit: "major" | "minor" = "minor",
190
+ ): Dinero<number> {
191
+ const money = toDinero(amount, currencyCode, unit);
192
+ return multiplyMoney(money, factor);
193
+ }
194
+
195
+ /**
196
+ * Format an amount for a specific payment provider payload.
197
+ */
198
+ function toPayload(
199
+ amount: number,
200
+ currencyCode?: string,
201
+ target: "stripe" | "paypal" | "adyen" | "square" = "stripe",
202
+ unit: "major" | "minor" = "minor",
203
+ ) {
204
+ const code = currencyCode ?? String(currencyStore.current);
205
+ const money = toDinero(amount, code, unit);
206
+
207
+ switch (target) {
208
+ case "stripe":
209
+ return toStripeMoney(money);
210
+ case "paypal":
211
+ return toPaypalMoney(money);
212
+ case "adyen":
213
+ return toAdyenMoney(money);
214
+ case "square":
215
+ return toSquareMoney(money);
216
+ default:
217
+ return toStripeMoney(money);
218
+ }
219
+ }
220
+
221
+ /**
222
+ * Add two amounts in the current currency
223
+ */
224
+ function add(
225
+ a: number,
226
+ b: number,
227
+ currencyCode?: ISO4217Code | string,
228
+ unit: "major" | "minor" = "minor",
229
+ ): Dinero<number> {
230
+ const code = currencyCode ?? String(currencyStore.current);
231
+ const aMoney = toDinero(a, code, unit);
232
+ const bMoney = toDinero(b, code, unit);
233
+ return addMoney(aMoney, bMoney);
234
+ }
235
+
236
+ /**
237
+ * Subtract two amounts in the current currency
238
+ */
239
+ function subtract(
240
+ a: number,
241
+ b: number,
242
+ currencyCode?: ISO4217Code | string,
243
+ unit: "major" | "minor" = "minor",
244
+ ): Dinero<number> {
245
+ const code = currencyCode ?? String(currencyStore.current);
246
+ const aMoney = toDinero(a, code, unit);
247
+ const bMoney = toDinero(b, code, unit);
248
+ return subtractMoney(aMoney, bMoney);
249
+ }
250
+
251
+ return {
252
+ toDinero,
253
+ format,
254
+ add,
255
+ subtract,
256
+ convert,
257
+ formatConverted,
258
+ toPayload,
259
+ multiply,
260
+ };
261
+ }
@@ -0,0 +1,132 @@
1
+ // sdk/state/src/composables/useMoneyFilter.ts
2
+
3
+ import { getContext, untrack } from "svelte";
4
+ import { RUNE_LAB_CONTEXT } from "@rune-lab/kernel";
5
+ import type { CurrencyStore } from "@rune-lab/money";
6
+ import { useMoney } from "./useMoney.ts";
7
+
8
+ export interface MoneyFilterOptions {
9
+ min?: number;
10
+ max?: number;
11
+ unit?: "major" | "minor";
12
+ autoConvertOnChange?: boolean;
13
+ }
14
+
15
+ export interface UseMoneyFilterReturn {
16
+ min: number;
17
+ max: number;
18
+ readonly displayMin: string;
19
+ readonly displayMax: string;
20
+ setMin: (value: number) => void;
21
+ setMax: (value: number) => void;
22
+ reset: () => void;
23
+ matches: (amount: number, entityCurrency: string) => boolean;
24
+ }
25
+
26
+ /**
27
+ * A reactive currency-aware filter composable.
28
+ * Handles min/max thresholds that auto-convert when the display currency changes.
29
+ */
30
+ export function useMoneyFilter(
31
+ options: MoneyFilterOptions = {},
32
+ ): UseMoneyFilterReturn {
33
+ const currencyStore = getContext<CurrencyStore>(RUNE_LAB_CONTEXT.currency);
34
+ const { format } = useMoney();
35
+
36
+ let min = $state(options.min ?? 0);
37
+ let max = $state(options.max ?? Infinity);
38
+ const unit = options.unit ?? "minor";
39
+ const autoConvertOnChange = options.autoConvertOnChange ?? true;
40
+
41
+ let lastCurrency = $state(String(currencyStore.current));
42
+
43
+ $effect(() => {
44
+ const currentCurrency = String(currencyStore.current);
45
+ const previousCurrency = untrack(() => lastCurrency);
46
+
47
+ if (autoConvertOnChange && currentCurrency !== previousCurrency) {
48
+ if (currencyStore.canConvert) {
49
+ if (min !== 0) {
50
+ min = currencyStore.convertAmount(
51
+ min,
52
+ previousCurrency,
53
+ currentCurrency,
54
+ );
55
+ }
56
+ if (max !== Infinity) {
57
+ max = currencyStore.convertAmount(
58
+ max,
59
+ previousCurrency,
60
+ currentCurrency,
61
+ );
62
+ }
63
+ } else {
64
+ // Reset if no rates available
65
+ min = 0;
66
+ max = Infinity;
67
+ }
68
+ untrack(() => {
69
+ lastCurrency = currentCurrency;
70
+ });
71
+ }
72
+ });
73
+
74
+ function setMin(value: number) {
75
+ min = value;
76
+ }
77
+
78
+ function setMax(value: number) {
79
+ max = value;
80
+ }
81
+
82
+ function reset() {
83
+ min = 0;
84
+ max = Infinity;
85
+ }
86
+
87
+ /**
88
+ * Checks if an amount (in its entity currency) matches the current filter.
89
+ */
90
+ function matches(amount: number, entityCurrency: string): boolean {
91
+ const currentCurrency = String(currencyStore.current);
92
+
93
+ // Convert entity amount to display currency for comparison
94
+ const convertedAmount = currencyStore.convertAmount(
95
+ amount,
96
+ entityCurrency,
97
+ currentCurrency,
98
+ );
99
+
100
+ return convertedAmount >= min && convertedAmount <= max;
101
+ }
102
+
103
+ const displayMin = $derived(format(min, undefined, unit));
104
+ const displayMax = $derived(
105
+ max === Infinity ? "∞" : format(max, undefined, unit),
106
+ );
107
+
108
+ return {
109
+ get min() {
110
+ return min;
111
+ },
112
+ set min(v) {
113
+ min = v;
114
+ },
115
+ get max() {
116
+ return max;
117
+ },
118
+ set max(v) {
119
+ max = v;
120
+ },
121
+ get displayMin() {
122
+ return displayMin;
123
+ },
124
+ get displayMax() {
125
+ return displayMax;
126
+ },
127
+ setMin,
128
+ setMax,
129
+ reset,
130
+ matches,
131
+ };
132
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,41 @@
1
+ {
2
+ "compilerOptions": {
3
+ "lib": [
4
+ "ESNext",
5
+ "DOM",
6
+ "DOM.Iterable",
7
+ "DOM.AsyncIterable"
8
+ ],
9
+ // Set modern JS target
10
+ "target": "ESNext",
11
+ "module": "ESNext",
12
+ // Resolution & Extensions
13
+ "moduleResolution": "bundler",
14
+ "allowImportingTsExtensions": true,
15
+ "noEmit": true,
16
+ "skipLibCheck": true,
17
+ "paths": {
18
+ "@rune-lab/kernel": [
19
+ "./src/kernel/src/mod.ts"
20
+ ],
21
+ "@rune-lab/layout": [
22
+ "./src/runes/layout/src/mod.ts"
23
+ ],
24
+ "@rune-lab/palettes": [
25
+ "./src/runes/palettes/src/mod.ts"
26
+ ],
27
+ "@rune-lab/money": [
28
+ "./src/runes/plugins/money/src/mod.ts"
29
+ ],
30
+ "@rune-lab/i18n/*": [
31
+ "./src/i18n/*"
32
+ ]
33
+ }
34
+ },
35
+ "exclude": [
36
+ "scripts/**",
37
+ "dist/**",
38
+ ".old/**",
39
+ "**/*.test.ts"
40
+ ]
41
+ }
package/vite.config.ts ADDED
@@ -0,0 +1,44 @@
1
+ // vite plus
2
+ import { defineConfig } from "vite-plus";
3
+ // customization
4
+ import tailwindcss from "@tailwindcss/vite";
5
+ import { paraglideVitePlugin } from "@inlang/paraglide-js";
6
+ // main framework
7
+ import { svelte } from "@sveltejs/vite-plugin-svelte";
8
+
9
+ export default defineConfig({
10
+ plugins: [
11
+ svelte(),
12
+ tailwindcss(),
13
+ paraglideVitePlugin({
14
+ project: "./src/i18n/project.inlang",
15
+ outdir: "./src/i18n/paraglide",
16
+ }),
17
+ ],
18
+ test: {
19
+ environment: "jsdom",
20
+ setupFiles: ["@testing-library/jest-dom/vitest"],
21
+ },
22
+ build: {
23
+ lib: {
24
+ entry: "./src/mod.ts",
25
+ formats: ["es"],
26
+ },
27
+ outDir: "dist",
28
+ rollupOptions: {
29
+ external: [
30
+ "svelte",
31
+ /^svelte\//,
32
+ "esm-env",
33
+ /^@sveltejs\//,
34
+ /^@inlang\//,
35
+ "hotkeys-js",
36
+ ],
37
+ output: {
38
+ preserveModules: true,
39
+ preserveModulesRoot: "src",
40
+ entryFileNames: "[name].ts",
41
+ },
42
+ },
43
+ },
44
+ });
@@ -1,52 +0,0 @@
1
- /** Standard size scale used across all components. */
2
- export type SizeToken = "xs" | "sm" | "md" | "lg" | "xl";
3
- /** Mixin interface for components that accept a size prop. */
4
- export interface WithSizing {
5
- /** Visual size variant. Defaults to "md" if omitted. */
6
- size?: SizeToken;
7
- }
8
- /**
9
- * Semantic variant tokens aligned with DaisyUI's theme system.
10
- * Kept as a union type for TypeScript inference; consumers can extend via
11
- * `string & {}` if they need custom variants.
12
- */
13
- export type VariantToken = "primary" | "secondary" | "accent" | "neutral" | "ghost" | "info" | "success" | "warning" | "error";
14
- /** Mixin interface for components that accept a variant prop. */
15
- export interface WithVariant {
16
- /** Semantic color variant. */
17
- variant?: VariantToken;
18
- }
19
- /** Mixin interface for components that accept a custom CSS class. */
20
- export interface WithClass {
21
- /** Additional CSS class string to merge with component classes. */
22
- class?: string;
23
- }
24
- /**
25
- * Convenience intersection of all design-token mixins.
26
- * Use when a component supports size, variant, and custom class.
27
- */
28
- export type WithDesignTokens = WithSizing & WithVariant & WithClass;
29
- /**
30
- * Maps a size token to a CSS class string using a component-specific map.
31
- * Returns the mapped class or an empty string for unknown tokens.
32
- *
33
- * @param size - The size token to resolve
34
- * @param classMap - Component-specific mapping of tokens to CSS classes
35
- * @param fallback - Fallback size if `size` is undefined (default: "md")
36
- *
37
- * @example
38
- * ```ts
39
- * const btnSizeMap = { xs: "btn-xs", sm: "btn-sm", md: "btn-md", lg: "btn-lg", xl: "btn-xl" };
40
- * resolveSize("lg", btnSizeMap); // "btn-lg"
41
- * resolveSize(undefined, btnSizeMap); // "btn-md"
42
- * ```
43
- */
44
- export declare function resolveSize(size: SizeToken | undefined, classMap: Partial<Record<SizeToken, string>>, fallback?: SizeToken): string;
45
- /**
46
- * Maps a variant token to a CSS class string using a component-specific map.
47
- *
48
- * @param variant - The variant token to resolve
49
- * @param classMap - Component-specific mapping of tokens to CSS classes
50
- */
51
- export declare function resolveVariant(variant: VariantToken | undefined, classMap: Partial<Record<VariantToken, string>>): string;
52
- //# sourceMappingURL=props.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"props.d.ts","sourceRoot":"","sources":["../../../src/sdk/core/src/design-tokens/props.ts"],"names":[],"mappings":"AAMA,sDAAsD;AACtD,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEzD,8DAA8D;AAC9D,MAAM,WAAW,UAAU;IACzB,wDAAwD;IACxD,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAID;;;;GAIG;AACH,MAAM,MAAM,YAAY,GACpB,SAAS,GACT,WAAW,GACX,QAAQ,GACR,SAAS,GACT,OAAO,GACP,MAAM,GACN,SAAS,GACT,SAAS,GACT,OAAO,CAAC;AAEZ,iEAAiE;AACjE,MAAM,WAAW,WAAW;IAC1B,8BAA8B;IAC9B,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAID,qEAAqE;AACrE,MAAM,WAAW,SAAS;IACxB,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAID;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC;AAIpE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,SAAS,GAAG,SAAS,EAC3B,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,EAC5C,QAAQ,GAAE,SAAgB,GACzB,MAAM,CAGR;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,YAAY,GAAG,SAAS,EACjC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,GAC9C,MAAM,CAGR"}
@@ -1,34 +0,0 @@
1
- // sdk/core/src/design-tokens/props.ts
2
- // Canonical shared prop interfaces for design tokens.
3
- // No CSS-framework-specific logic here — class maps live in sdk/ui.
4
- // ── Resolution Utilities ───────────────────────────────────────────────────────
5
- /**
6
- * Maps a size token to a CSS class string using a component-specific map.
7
- * Returns the mapped class or an empty string for unknown tokens.
8
- *
9
- * @param size - The size token to resolve
10
- * @param classMap - Component-specific mapping of tokens to CSS classes
11
- * @param fallback - Fallback size if `size` is undefined (default: "md")
12
- *
13
- * @example
14
- * ```ts
15
- * const btnSizeMap = { xs: "btn-xs", sm: "btn-sm", md: "btn-md", lg: "btn-lg", xl: "btn-xl" };
16
- * resolveSize("lg", btnSizeMap); // "btn-lg"
17
- * resolveSize(undefined, btnSizeMap); // "btn-md"
18
- * ```
19
- */
20
- export function resolveSize(size, classMap, fallback = "md") {
21
- const token = size ?? fallback;
22
- return classMap[token] ?? "";
23
- }
24
- /**
25
- * Maps a variant token to a CSS class string using a component-specific map.
26
- *
27
- * @param variant - The variant token to resolve
28
- * @param classMap - Component-specific mapping of tokens to CSS classes
29
- */
30
- export function resolveVariant(variant, classMap) {
31
- if (!variant)
32
- return "";
33
- return classMap[variant] ?? "";
34
- }
@@ -1,52 +0,0 @@
1
- import type { ScaledRate } from "../money/money.ts";
2
- /**
3
- * A pure function that converts a minor-unit amount using a rate.
4
- * All strategy functions must be deterministic and side-effect-free.
5
- */
6
- export type ConversionFn = (amount: number, ...rates: number[]) => number;
7
- /**
8
- * Resolves a ScaledRate or plain number into a float rate value.
9
- */
10
- export declare function resolveRate(rate: ScaledRate | number): number;
11
- /**
12
- * Direct conversion: base currency → target currency.
13
- * Multiplies the amount by the rate.
14
- *
15
- * @param amount - Minor-unit amount in the source currency
16
- * @param rate - Conversion rate (1 source = `rate` target)
17
- * @returns Minor-unit amount in the target currency
18
- */
19
- export declare function directConversion(amount: number, rate: number): number;
20
- /**
21
- * Inverse conversion: target currency → base currency.
22
- * Divides the amount by the rate.
23
- *
24
- * @param amount - Minor-unit amount in the source currency
25
- * @param rate - Conversion rate of source relative to base (1 base = `rate` source)
26
- * @returns Minor-unit amount in the base currency
27
- */
28
- export declare function inverseConversion(amount: number, rate: number): number;
29
- /**
30
- * Triangular conversion: source → base → target (cross-rate).
31
- * First divides by the source-to-base rate, then multiplies by the base-to-target rate.
32
- *
33
- * @param amount - Minor-unit amount in the source currency
34
- * @param rateSourceToBase - Rate of source relative to base (1 base = `rate` source)
35
- * @param rateBaseToTarget - Rate of base to target (1 base = `rate` target)
36
- * @returns Minor-unit amount in the target currency
37
- */
38
- export declare function triangularConversion(amount: number, rateSourceToBase: number, rateBaseToTarget: number): number;
39
- /**
40
- * Named map of conversion strategies.
41
- * Consumer code and the ExchangeRateStore can select a strategy by name.
42
- * Extensible: register additional strategies before store initialization.
43
- *
44
- * @example
45
- * ```ts
46
- * CONVERSION_STRATEGIES["crypto"] = (amount, rate) => {
47
- * // 18-decimal precision logic
48
- * };
49
- * ```
50
- */
51
- export declare const CONVERSION_STRATEGIES: Record<string, ConversionFn>;
52
- //# sourceMappingURL=strategies.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"strategies.d.ts","sourceRoot":"","sources":["../../../src/sdk/core/src/exchange-rate/strategies.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAIpD;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,KAAK,MAAM,CAAC;AAE1E;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAG7D;AAID;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAErE;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAKtE;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,MAAM,EACxB,gBAAgB,EAAE,MAAM,GACvB,MAAM,CAQR;AAID;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAM9D,CAAC"}
@@ -1,9 +0,0 @@
1
- export * from "./internal/message-resolver.ts";
2
- export * from "./persistence/types.ts";
3
- export * from "./money/index.ts";
4
- export { type MoneyJSON, MoneyPrimitive } from "./money/money-primitive.ts";
5
- export * from "./exchange-rate/strategies.ts";
6
- export * from "./design-tokens/props.ts";
7
- export * from "./layout/types.ts";
8
- export * from "./shortcuts/types.ts";
9
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sdk/core/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC;AAE/C,cAAc,wBAAwB,CAAC;AAEvC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,KAAK,SAAS,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5E,cAAc,+BAA+B,CAAC;AAE9C,cAAc,0BAA0B,CAAC;AAEzC,cAAc,mBAAmB,CAAC;AAElC,cAAc,sBAAsB,CAAC"}
@@ -1,8 +0,0 @@
1
- export * from "./internal/message-resolver.js";
2
- export * from "./persistence/types.js";
3
- export * from "./money/index.js";
4
- export { MoneyPrimitive } from "./money/money-primitive.js";
5
- export * from "./exchange-rate/strategies.js";
6
- export * from "./design-tokens/props.js";
7
- export * from "./layout/types.js";
8
- export * from "./shortcuts/types.js";
@@ -1,42 +0,0 @@
1
- /**
2
- * Dynamic i18n Message Resolver Pattern
3
- *
4
- * Enables dynamic message function calls for config selectors.
5
- * Creates a resolver that dynamically looks up and calls message functions.
6
- */
7
- type MessageBundle = Record<string, (...args: unknown[]) => string>;
8
- interface MessageResolverConfig<T> {
9
- /**
10
- * Function to extract the message key from an option
11
- * @example (currency) => currency.code // "USD"
12
- */
13
- keyExtractor: (option: T) => string;
14
- /**
15
- * Optional transformer for the key before message lookup
16
- * @example (key) => key.toLowerCase() // "USD" -> "usd"
17
- */
18
- keyTransformer?: (key: string) => string;
19
- }
20
- /**
21
- * Creates a message resolver function for dynamic i18n lookups
22
- *
23
- * @example
24
- * ```typescript
25
- * const getCurrencyLabel = createMessageResolver<Currency>(m, {
26
- * keyExtractor: (currency) => currency.code
27
- * });
28
- *
29
- * getCurrencyLabel({ code: "EUR", symbol: "€" }); // "Euro"
30
- * ```
31
- */
32
- export declare function createMessageResolver<T>(messages: MessageBundle, config: MessageResolverConfig<T>): (option: T) => string;
33
- /**
34
- * Type guard to check if a message key exists
35
- */
36
- export declare function hasMessage(messages: MessageBundle, key: string): boolean;
37
- /**
38
- * Batch resolver for multiple options at once
39
- */
40
- export declare function batchResolveMessages<T>(messages: MessageBundle, options: T[], config: MessageResolverConfig<T>): Record<string, string>;
41
- export {};
42
- //# sourceMappingURL=message-resolver.d.ts.map