rune-lab 0.3.1 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (397) hide show
  1. package/.gitignore +12 -0
  2. package/README.md +4 -4
  3. package/deno.json +50 -0
  4. package/justfile +5 -0
  5. package/package.json +3 -80
  6. package/scripts/build_pkg.ts +51 -0
  7. package/scripts/ci.just +26 -0
  8. package/scripts/deploy.just +21 -0
  9. package/scripts/dev.just +4 -0
  10. package/scripts/inject.just +72 -0
  11. package/src/RuneProvider.svelte +105 -0
  12. package/src/i18n/message-resolver.test.ts +103 -0
  13. package/src/i18n/message-resolver.ts +89 -0
  14. package/src/i18n/project.inlang/settings.json +26 -0
  15. package/src/i18n/translations/ar.json +89 -0
  16. package/src/i18n/translations/de.json +89 -0
  17. package/src/i18n/translations/en.json +89 -0
  18. package/src/i18n/translations/es.json +89 -0
  19. package/src/i18n/translations/fr.json +89 -0
  20. package/src/i18n/translations/hi.json +89 -0
  21. package/src/i18n/translations/it.json +89 -0
  22. package/src/i18n/translations/ja.json +89 -0
  23. package/src/i18n/translations/ko.json +89 -0
  24. package/src/i18n/translations/pt.json +89 -0
  25. package/src/i18n/translations/ru.json +89 -0
  26. package/src/i18n/translations/vi.json +89 -0
  27. package/src/i18n/translations/zh.json +89 -0
  28. package/src/kernel/deno.json +5 -0
  29. package/src/kernel/src/actions/portal.ts +41 -0
  30. package/src/kernel/src/actions/shortcut-listener.ts +50 -0
  31. package/src/kernel/src/context/app.svelte.ts +98 -0
  32. package/src/kernel/src/context/context.ts +31 -0
  33. package/src/kernel/src/context/stores.svelte.ts +96 -0
  34. package/src/kernel/src/context/types.ts +110 -0
  35. package/src/kernel/src/context/useRuneLab.ts +38 -0
  36. package/src/kernel/src/mod.ts +13 -0
  37. package/src/kernel/src/persistence/createConfigStore.svelte.ts +120 -0
  38. package/src/kernel/src/persistence/drivers.test.ts +95 -0
  39. package/src/kernel/src/persistence/drivers.ts +77 -0
  40. package/src/kernel/src/persistence/provider.test.ts +58 -0
  41. package/src/kernel/src/persistence/provider.ts +58 -0
  42. package/src/kernel/src/persistence/types.ts +19 -0
  43. package/src/kernel/src/persistence/usePersistence.ts +9 -0
  44. package/src/kernel/src/registry/mod.ts +221 -0
  45. package/src/kernel/src/registry/registry.test.ts +162 -0
  46. package/src/kernel/src/tokens/props.ts +94 -0
  47. package/src/mod.ts +10 -0
  48. package/src/runes/layout/deno.json +5 -0
  49. package/src/runes/layout/src/APP_CONFIGURATIONS.ts +56 -0
  50. package/{dist/ui/features/config → src/runes/layout/src}/AppSettingSelector.svelte +1 -1
  51. package/{dist/ui/layout → src/runes/layout/src}/ConnectedNavigationPanel.svelte +7 -8
  52. package/{dist/ui/layout → src/runes/layout/src}/ConnectedWorkspaceStrip.svelte +5 -3
  53. package/src/runes/layout/src/Icon.svelte +7 -0
  54. package/src/runes/layout/src/LanguageSelector.svelte +45 -0
  55. package/{dist/ui/layout → src/runes/layout/src}/NavigationPanel.svelte +1 -4
  56. package/src/runes/layout/src/ResourceSelector.svelte +90 -0
  57. package/src/runes/layout/src/ThemeSelector.svelte +50 -0
  58. package/{dist/ui/layout → src/runes/layout/src}/WorkspaceLayout.svelte +13 -3
  59. package/{dist/ui/layout → src/runes/layout/src}/WorkspaceStrip.svelte +1 -1
  60. package/src/runes/layout/src/connection-factory.ts +95 -0
  61. package/src/runes/layout/src/language.svelte.ts +44 -0
  62. package/src/runes/layout/src/mod.ts +71 -0
  63. package/src/runes/layout/src/store.svelte.ts +142 -0
  64. package/src/runes/layout/src/theme.svelte.ts +73 -0
  65. package/src/runes/layout/src/types.ts +11 -0
  66. package/src/runes/palettes/deno.json +8 -0
  67. package/{dist/ui/features/command-palette → src/runes/palettes/src/commands}/CommandPalette.svelte +4 -4
  68. package/src/runes/palettes/src/commands/mod.ts +2 -0
  69. package/src/runes/palettes/src/commands/store.svelte.ts +80 -0
  70. package/src/runes/palettes/src/mod.ts +51 -0
  71. package/{dist/ui/components → src/runes/palettes/src/notifications}/Toaster.svelte +1 -2
  72. package/src/runes/palettes/src/notifications/bridge.ts +56 -0
  73. package/src/runes/palettes/src/notifications/mod.ts +4 -0
  74. package/src/runes/palettes/src/notifications/store.svelte.ts +58 -0
  75. package/{dist/ui/features → src/runes/palettes/src}/shortcuts/ShortcutPalette.svelte +4 -4
  76. package/src/runes/palettes/src/shortcuts/mod.ts +4 -0
  77. package/src/runes/palettes/src/shortcuts/store.svelte.ts +85 -0
  78. package/src/runes/palettes/src/shortcuts/types.ts +4 -0
  79. package/src/runes/palettes/src/shortcuts/useShortcuts.ts +85 -0
  80. package/src/runes/plugins/money/deno.json +8 -0
  81. package/src/runes/plugins/money/src/CurrencySelector.svelte +41 -0
  82. package/src/runes/plugins/money/src/MoneyDisplay.svelte +142 -0
  83. package/src/runes/plugins/money/src/MoneyInput.svelte +208 -0
  84. package/src/runes/plugins/money/src/currency.svelte.ts +95 -0
  85. package/src/runes/plugins/money/src/currency.test.ts +40 -0
  86. package/src/runes/plugins/money/src/exchange-rate.svelte.ts +176 -0
  87. package/src/runes/plugins/money/src/exchange-rate.test.ts +95 -0
  88. package/src/runes/plugins/money/src/mod.ts +79 -0
  89. package/src/runes/plugins/money/src/money-primitive.test.ts +217 -0
  90. package/src/runes/plugins/money/src/money-primitive.ts +220 -0
  91. package/src/runes/plugins/money/src/money.test.ts +183 -0
  92. package/src/runes/plugins/money/src/money.ts +382 -0
  93. package/src/runes/plugins/money/src/strategies.test.ts +143 -0
  94. package/src/runes/plugins/money/src/strategies.ts +95 -0
  95. package/src/runes/plugins/money/src/types.ts +27 -0
  96. package/src/runes/plugins/money/src/useMoney.ts +261 -0
  97. package/src/runes/plugins/money/src/useMoneyFilter.ts +132 -0
  98. package/tsconfig.json +41 -0
  99. package/vite.config.ts +44 -0
  100. package/dist/core/index.d.ts +0 -4
  101. package/dist/core/index.d.ts.map +0 -1
  102. package/dist/core/index.js +0 -3
  103. package/dist/core/internal/message-resolver.d.ts +0 -42
  104. package/dist/core/internal/message-resolver.d.ts.map +0 -1
  105. package/dist/core/internal/message-resolver.js +0 -47
  106. package/dist/core/money/index.d.ts +0 -2
  107. package/dist/core/money/index.d.ts.map +0 -1
  108. package/dist/core/money/index.js +0 -2
  109. package/dist/core/money/money.d.ts +0 -57
  110. package/dist/core/money/money.d.ts.map +0 -1
  111. package/dist/core/money/money.js +0 -132
  112. package/dist/core/persistence/types.d.ts +0 -18
  113. package/dist/core/persistence/types.d.ts.map +0 -1
  114. package/dist/core/persistence/types.js +0 -2
  115. package/dist/index.d.ts +0 -5
  116. package/dist/index.js +0 -5
  117. package/dist/state/api.svelte.d.ts +0 -26
  118. package/dist/state/api.svelte.js +0 -65
  119. package/dist/state/app.svelte.d.ts +0 -48
  120. package/dist/state/app.svelte.js +0 -82
  121. package/dist/state/auth/index.d.ts +0 -2
  122. package/dist/state/auth/index.js +0 -2
  123. package/dist/state/auth/session.svelte.d.ts +0 -40
  124. package/dist/state/auth/session.svelte.js +0 -57
  125. package/dist/state/auth/types.d.ts +0 -30
  126. package/dist/state/auth/types.js +0 -3
  127. package/dist/state/cart.svelte.d.ts +0 -64
  128. package/dist/state/cart.svelte.js +0 -122
  129. package/dist/state/commands.svelte.d.ts +0 -46
  130. package/dist/state/commands.svelte.js +0 -62
  131. package/dist/state/composables/useMoney.d.ts +0 -15
  132. package/dist/state/composables/useMoney.js +0 -62
  133. package/dist/state/composables/usePersistence.d.ts +0 -2
  134. package/dist/state/composables/usePersistence.js +0 -5
  135. package/dist/state/composables/useRuneLab.d.ts +0 -19
  136. package/dist/state/composables/useRuneLab.js +0 -30
  137. package/dist/state/context.d.ts +0 -14
  138. package/dist/state/context.js +0 -15
  139. package/dist/state/createConfigStore.svelte.d.ts +0 -55
  140. package/dist/state/createConfigStore.svelte.js +0 -61
  141. package/dist/state/currency.svelte.d.ts +0 -28
  142. package/dist/state/currency.svelte.js +0 -80
  143. package/dist/state/daisyui.d.ts +0 -4
  144. package/dist/state/index.d.ts +0 -19
  145. package/dist/state/index.js +0 -25
  146. package/dist/state/language.svelte.d.ts +0 -64
  147. package/dist/state/language.svelte.js +0 -44
  148. package/dist/state/layout.svelte.d.ts +0 -49
  149. package/dist/state/layout.svelte.js +0 -108
  150. package/dist/state/persistence/drivers.d.ts +0 -12
  151. package/dist/state/persistence/drivers.js +0 -73
  152. package/dist/state/shortcuts.svelte.d.ts +0 -121
  153. package/dist/state/shortcuts.svelte.js +0 -222
  154. package/dist/state/theme.svelte.d.ts +0 -22
  155. package/dist/state/theme.svelte.js +0 -92
  156. package/dist/state/toast-bridge.d.ts +0 -29
  157. package/dist/state/toast-bridge.js +0 -43
  158. package/dist/state/toast.svelte.d.ts +0 -27
  159. package/dist/state/toast.svelte.js +0 -43
  160. package/dist/ui/actions/portal.d.ts +0 -7
  161. package/dist/ui/actions/portal.js +0 -32
  162. package/dist/ui/components/ApiMonitor.svelte +0 -162
  163. package/dist/ui/components/ApiMonitor.svelte.d.ts +0 -3
  164. package/dist/ui/components/Icon.svelte +0 -108
  165. package/dist/ui/components/Icon.svelte.d.ts +0 -14
  166. package/dist/ui/components/Kyntharil.svelte +0 -48
  167. package/dist/ui/components/Kyntharil.svelte.d.ts +0 -6
  168. package/dist/ui/components/RuneProvider.svelte +0 -198
  169. package/dist/ui/components/RuneProvider.svelte.d.ts +0 -42
  170. package/dist/ui/components/Toaster.svelte.d.ts +0 -18
  171. package/dist/ui/components/money/MoneyDisplay.svelte +0 -69
  172. package/dist/ui/components/money/MoneyDisplay.svelte.d.ts +0 -21
  173. package/dist/ui/components/money/MoneyDisplay.svelte.test.d.ts +0 -1
  174. package/dist/ui/components/money/MoneyDisplay.svelte.test.js +0 -74
  175. package/dist/ui/components/money/MoneyInput.svelte +0 -131
  176. package/dist/ui/components/money/MoneyInput.svelte.d.ts +0 -25
  177. package/dist/ui/components/money/index.d.ts +0 -2
  178. package/dist/ui/components/money/index.js +0 -3
  179. package/dist/ui/components/user/UserAvatar.svelte +0 -66
  180. package/dist/ui/components/user/UserAvatar.svelte.d.ts +0 -13
  181. package/dist/ui/components/user/UserProfile.svelte +0 -79
  182. package/dist/ui/components/user/UserProfile.svelte.d.ts +0 -17
  183. package/dist/ui/components/user/index.d.ts +0 -2
  184. package/dist/ui/components/user/index.js +0 -3
  185. package/dist/ui/features/command-palette/CommandPalette.svelte.d.ts +0 -6
  186. package/dist/ui/features/config/AppSettingSelector.svelte.d.ts +0 -13
  187. package/dist/ui/features/config/CurrencySelector.svelte +0 -67
  188. package/dist/ui/features/config/CurrencySelector.svelte.d.ts +0 -8
  189. package/dist/ui/features/config/LanguageSelector.svelte +0 -66
  190. package/dist/ui/features/config/LanguageSelector.svelte.d.ts +0 -8
  191. package/dist/ui/features/config/ThemeSelector.svelte +0 -73
  192. package/dist/ui/features/config/ThemeSelector.svelte.d.ts +0 -8
  193. package/dist/ui/features/notifications/NotificationBell.svelte.d.ts +0 -11
  194. package/dist/ui/features/notifications/index.d.ts +0 -1
  195. package/dist/ui/features/notifications/index.js +0 -2
  196. package/dist/ui/features/shortcuts/ShortcutPalette.svelte.d.ts +0 -6
  197. package/dist/ui/index.d.ts +0 -26
  198. package/dist/ui/index.js +0 -41
  199. package/dist/ui/layout/ConnectedNavigationPanel.svelte.d.ts +0 -10
  200. package/dist/ui/layout/ConnectedWorkspaceStrip.svelte.d.ts +0 -9
  201. package/dist/ui/layout/ContentArea.svelte.d.ts +0 -8
  202. package/dist/ui/layout/DetailPanel.svelte.d.ts +0 -7
  203. package/dist/ui/layout/NavigationPanel.svelte.d.ts +0 -14
  204. package/dist/ui/layout/WorkspaceLayout.svelte.d.ts +0 -25
  205. package/dist/ui/layout/WorkspaceStrip.svelte.d.ts +0 -11
  206. package/dist/ui/layout/index.d.ts +0 -7
  207. package/dist/ui/layout/index.js +0 -7
  208. package/dist/ui/paraglide/README.md +0 -94
  209. package/dist/ui/paraglide/messages/_index.d.ts +0 -87
  210. package/dist/ui/paraglide/messages/_index.js +0 -88
  211. package/dist/ui/paraglide/messages/abyss.d.ts +0 -16
  212. package/dist/ui/paraglide/messages/abyss.js +0 -84
  213. package/dist/ui/paraglide/messages/acid.d.ts +0 -16
  214. package/dist/ui/paraglide/messages/acid.js +0 -84
  215. package/dist/ui/paraglide/messages/active_toasts.d.ts +0 -16
  216. package/dist/ui/paraglide/messages/active_toasts.js +0 -84
  217. package/dist/ui/paraglide/messages/aed3.d.ts +0 -17
  218. package/dist/ui/paraglide/messages/aed3.js +0 -85
  219. package/dist/ui/paraglide/messages/all_currencies.d.ts +0 -16
  220. package/dist/ui/paraglide/messages/all_currencies.js +0 -84
  221. package/dist/ui/paraglide/messages/all_languages.d.ts +0 -16
  222. package/dist/ui/paraglide/messages/all_languages.js +0 -84
  223. package/dist/ui/paraglide/messages/all_themes.d.ts +0 -16
  224. package/dist/ui/paraglide/messages/all_themes.js +0 -84
  225. package/dist/ui/paraglide/messages/api_status.d.ts +0 -16
  226. package/dist/ui/paraglide/messages/api_status.js +0 -84
  227. package/dist/ui/paraglide/messages/app_info.d.ts +0 -16
  228. package/dist/ui/paraglide/messages/app_info.js +0 -84
  229. package/dist/ui/paraglide/messages/appearance.d.ts +0 -16
  230. package/dist/ui/paraglide/messages/appearance.js +0 -84
  231. package/dist/ui/paraglide/messages/aqua.d.ts +0 -16
  232. package/dist/ui/paraglide/messages/aqua.js +0 -84
  233. package/dist/ui/paraglide/messages/ar.d.ts +0 -16
  234. package/dist/ui/paraglide/messages/ar.js +0 -84
  235. package/dist/ui/paraglide/messages/autumn.d.ts +0 -16
  236. package/dist/ui/paraglide/messages/autumn.js +0 -84
  237. package/dist/ui/paraglide/messages/black.d.ts +0 -16
  238. package/dist/ui/paraglide/messages/black.js +0 -84
  239. package/dist/ui/paraglide/messages/brl3.d.ts +0 -17
  240. package/dist/ui/paraglide/messages/brl3.js +0 -85
  241. package/dist/ui/paraglide/messages/bumblebee.d.ts +0 -16
  242. package/dist/ui/paraglide/messages/bumblebee.js +0 -84
  243. package/dist/ui/paraglide/messages/business.d.ts +0 -16
  244. package/dist/ui/paraglide/messages/business.js +0 -84
  245. package/dist/ui/paraglide/messages/cad3.d.ts +0 -17
  246. package/dist/ui/paraglide/messages/cad3.js +0 -85
  247. package/dist/ui/paraglide/messages/caramellatte.d.ts +0 -16
  248. package/dist/ui/paraglide/messages/caramellatte.js +0 -84
  249. package/dist/ui/paraglide/messages/cmyk.d.ts +0 -16
  250. package/dist/ui/paraglide/messages/cmyk.js +0 -84
  251. package/dist/ui/paraglide/messages/cny3.d.ts +0 -17
  252. package/dist/ui/paraglide/messages/cny3.js +0 -85
  253. package/dist/ui/paraglide/messages/coffee.d.ts +0 -16
  254. package/dist/ui/paraglide/messages/coffee.js +0 -84
  255. package/dist/ui/paraglide/messages/commands_label.d.ts +0 -16
  256. package/dist/ui/paraglide/messages/commands_label.js +0 -84
  257. package/dist/ui/paraglide/messages/corporate.d.ts +0 -16
  258. package/dist/ui/paraglide/messages/corporate.js +0 -84
  259. package/dist/ui/paraglide/messages/cupcake.d.ts +0 -16
  260. package/dist/ui/paraglide/messages/cupcake.js +0 -84
  261. package/dist/ui/paraglide/messages/currency.d.ts +0 -16
  262. package/dist/ui/paraglide/messages/currency.js +0 -84
  263. package/dist/ui/paraglide/messages/current_currency.d.ts +0 -16
  264. package/dist/ui/paraglide/messages/current_currency.js +0 -84
  265. package/dist/ui/paraglide/messages/current_language.d.ts +0 -16
  266. package/dist/ui/paraglide/messages/current_language.js +0 -84
  267. package/dist/ui/paraglide/messages/current_theme.d.ts +0 -16
  268. package/dist/ui/paraglide/messages/current_theme.js +0 -84
  269. package/dist/ui/paraglide/messages/currently_in_queue.d.ts +0 -16
  270. package/dist/ui/paraglide/messages/currently_in_queue.js +0 -84
  271. package/dist/ui/paraglide/messages/cyberpunk.d.ts +0 -16
  272. package/dist/ui/paraglide/messages/cyberpunk.js +0 -84
  273. package/dist/ui/paraglide/messages/dark.d.ts +0 -16
  274. package/dist/ui/paraglide/messages/dark.js +0 -84
  275. package/dist/ui/paraglide/messages/de.d.ts +0 -16
  276. package/dist/ui/paraglide/messages/de.js +0 -84
  277. package/dist/ui/paraglide/messages/dim.d.ts +0 -16
  278. package/dist/ui/paraglide/messages/dim.js +0 -84
  279. package/dist/ui/paraglide/messages/dracula.d.ts +0 -16
  280. package/dist/ui/paraglide/messages/dracula.js +0 -84
  281. package/dist/ui/paraglide/messages/emerald.d.ts +0 -16
  282. package/dist/ui/paraglide/messages/emerald.js +0 -84
  283. package/dist/ui/paraglide/messages/en.d.ts +0 -16
  284. package/dist/ui/paraglide/messages/en.js +0 -84
  285. package/dist/ui/paraglide/messages/es.d.ts +0 -16
  286. package/dist/ui/paraglide/messages/es.js +0 -84
  287. package/dist/ui/paraglide/messages/eur3.d.ts +0 -17
  288. package/dist/ui/paraglide/messages/eur3.js +0 -85
  289. package/dist/ui/paraglide/messages/extended_controls.d.ts +0 -16
  290. package/dist/ui/paraglide/messages/extended_controls.js +0 -84
  291. package/dist/ui/paraglide/messages/fantasy.d.ts +0 -16
  292. package/dist/ui/paraglide/messages/fantasy.js +0 -84
  293. package/dist/ui/paraglide/messages/forest.d.ts +0 -16
  294. package/dist/ui/paraglide/messages/forest.js +0 -84
  295. package/dist/ui/paraglide/messages/fr.d.ts +0 -16
  296. package/dist/ui/paraglide/messages/fr.js +0 -84
  297. package/dist/ui/paraglide/messages/garden.d.ts +0 -16
  298. package/dist/ui/paraglide/messages/garden.js +0 -84
  299. package/dist/ui/paraglide/messages/gbp3.d.ts +0 -17
  300. package/dist/ui/paraglide/messages/gbp3.js +0 -85
  301. package/dist/ui/paraglide/messages/halloween.d.ts +0 -16
  302. package/dist/ui/paraglide/messages/halloween.js +0 -84
  303. package/dist/ui/paraglide/messages/hello_world.d.ts +0 -18
  304. package/dist/ui/paraglide/messages/hello_world.js +0 -84
  305. package/dist/ui/paraglide/messages/hi.d.ts +0 -16
  306. package/dist/ui/paraglide/messages/hi.js +0 -84
  307. package/dist/ui/paraglide/messages/inr3.d.ts +0 -17
  308. package/dist/ui/paraglide/messages/inr3.js +0 -85
  309. package/dist/ui/paraglide/messages/it.d.ts +0 -16
  310. package/dist/ui/paraglide/messages/it.js +0 -84
  311. package/dist/ui/paraglide/messages/ja.d.ts +0 -16
  312. package/dist/ui/paraglide/messages/ja.js +0 -84
  313. package/dist/ui/paraglide/messages/jpy3.d.ts +0 -17
  314. package/dist/ui/paraglide/messages/jpy3.js +0 -85
  315. package/dist/ui/paraglide/messages/ko.d.ts +0 -16
  316. package/dist/ui/paraglide/messages/ko.js +0 -84
  317. package/dist/ui/paraglide/messages/krw3.d.ts +0 -17
  318. package/dist/ui/paraglide/messages/krw3.js +0 -85
  319. package/dist/ui/paraglide/messages/languages.d.ts +0 -16
  320. package/dist/ui/paraglide/messages/languages.js +0 -84
  321. package/dist/ui/paraglide/messages/lemonade.d.ts +0 -16
  322. package/dist/ui/paraglide/messages/lemonade.js +0 -84
  323. package/dist/ui/paraglide/messages/light.d.ts +0 -16
  324. package/dist/ui/paraglide/messages/light.js +0 -84
  325. package/dist/ui/paraglide/messages/live_store_dashboard.d.ts +0 -16
  326. package/dist/ui/paraglide/messages/live_store_dashboard.js +0 -84
  327. package/dist/ui/paraglide/messages/localization.d.ts +0 -16
  328. package/dist/ui/paraglide/messages/localization.js +0 -84
  329. package/dist/ui/paraglide/messages/lofi.d.ts +0 -16
  330. package/dist/ui/paraglide/messages/lofi.js +0 -84
  331. package/dist/ui/paraglide/messages/luxury.d.ts +0 -16
  332. package/dist/ui/paraglide/messages/luxury.js +0 -84
  333. package/dist/ui/paraglide/messages/mxn3.d.ts +0 -17
  334. package/dist/ui/paraglide/messages/mxn3.js +0 -85
  335. package/dist/ui/paraglide/messages/name_label.d.ts +0 -16
  336. package/dist/ui/paraglide/messages/name_label.js +0 -84
  337. package/dist/ui/paraglide/messages/night.d.ts +0 -16
  338. package/dist/ui/paraglide/messages/night.js +0 -84
  339. package/dist/ui/paraglide/messages/nord.d.ts +0 -16
  340. package/dist/ui/paraglide/messages/nord.js +0 -84
  341. package/dist/ui/paraglide/messages/pastel.d.ts +0 -16
  342. package/dist/ui/paraglide/messages/pastel.js +0 -84
  343. package/dist/ui/paraglide/messages/pt.d.ts +0 -16
  344. package/dist/ui/paraglide/messages/pt.js +0 -84
  345. package/dist/ui/paraglide/messages/real_time_monitor_desc.d.ts +0 -16
  346. package/dist/ui/paraglide/messages/real_time_monitor_desc.js +0 -84
  347. package/dist/ui/paraglide/messages/registered_in_registry.d.ts +0 -16
  348. package/dist/ui/paraglide/messages/registered_in_registry.js +0 -84
  349. package/dist/ui/paraglide/messages/retro.d.ts +0 -16
  350. package/dist/ui/paraglide/messages/retro.js +0 -84
  351. package/dist/ui/paraglide/messages/ru.d.ts +0 -16
  352. package/dist/ui/paraglide/messages/ru.js +0 -84
  353. package/dist/ui/paraglide/messages/silk.d.ts +0 -16
  354. package/dist/ui/paraglide/messages/silk.js +0 -84
  355. package/dist/ui/paraglide/messages/state_label.d.ts +0 -16
  356. package/dist/ui/paraglide/messages/state_label.js +0 -84
  357. package/dist/ui/paraglide/messages/sunset.d.ts +0 -16
  358. package/dist/ui/paraglide/messages/sunset.js +0 -84
  359. package/dist/ui/paraglide/messages/synthwave.d.ts +0 -16
  360. package/dist/ui/paraglide/messages/synthwave.js +0 -84
  361. package/dist/ui/paraglide/messages/system.d.ts +0 -16
  362. package/dist/ui/paraglide/messages/system.js +0 -84
  363. package/dist/ui/paraglide/messages/theme.d.ts +0 -16
  364. package/dist/ui/paraglide/messages/theme.js +0 -84
  365. package/dist/ui/paraglide/messages/themes.d.ts +0 -16
  366. package/dist/ui/paraglide/messages/themes.js +0 -84
  367. package/dist/ui/paraglide/messages/url_label.d.ts +0 -16
  368. package/dist/ui/paraglide/messages/url_label.js +0 -84
  369. package/dist/ui/paraglide/messages/usd3.d.ts +0 -17
  370. package/dist/ui/paraglide/messages/usd3.js +0 -85
  371. package/dist/ui/paraglide/messages/valentine.d.ts +0 -16
  372. package/dist/ui/paraglide/messages/valentine.js +0 -84
  373. package/dist/ui/paraglide/messages/version_label.d.ts +0 -16
  374. package/dist/ui/paraglide/messages/version_label.js +0 -84
  375. package/dist/ui/paraglide/messages/vi.d.ts +0 -16
  376. package/dist/ui/paraglide/messages/vi.js +0 -84
  377. package/dist/ui/paraglide/messages/winter.d.ts +0 -16
  378. package/dist/ui/paraglide/messages/winter.js +0 -84
  379. package/dist/ui/paraglide/messages/wireframe.d.ts +0 -16
  380. package/dist/ui/paraglide/messages/wireframe.js +0 -84
  381. package/dist/ui/paraglide/messages/zh.d.ts +0 -16
  382. package/dist/ui/paraglide/messages/zh.js +0 -84
  383. package/dist/ui/paraglide/messages.d.ts +0 -2
  384. package/dist/ui/paraglide/messages.js +0 -4
  385. package/dist/ui/paraglide/registry.d.ts +0 -21
  386. package/dist/ui/paraglide/registry.js +0 -31
  387. package/dist/ui/paraglide/runtime.d.ts +0 -749
  388. package/dist/ui/paraglide/runtime.js +0 -1777
  389. package/dist/ui/paraglide/server.d.ts +0 -103
  390. package/dist/ui/paraglide/server.js +0 -248
  391. package/dist/ui/primitives/DatePicker.svelte +0 -257
  392. package/dist/ui/primitives/DatePicker.svelte.d.ts +0 -17
  393. package/dist/ui/primitives/index.d.ts +0 -1
  394. package/dist/ui/primitives/index.js +0 -3
  395. /package/{dist/ui/layout → src/runes/layout/src}/ContentArea.svelte +0 -0
  396. /package/{dist/ui/layout → src/runes/layout/src}/DetailPanel.svelte +0 -0
  397. /package/{dist/ui/features → src/runes/palettes/src}/notifications/NotificationBell.svelte +0 -0
@@ -1,749 +0,0 @@
1
- /**
2
- * Returns the strategy to use for a specific URL.
3
- *
4
- * If no route strategy matches (or the matching rule is `exclude: true`),
5
- * the global strategy is returned.
6
- *
7
- * @param {string | URL} url
8
- * @returns {typeof strategy}
9
- */
10
- export function getStrategyForUrl(url: string | URL): typeof strategy;
11
- /**
12
- * Returns whether the given URL is excluded from middleware i18n processing.
13
- *
14
- * @param {string | URL} url
15
- * @returns {boolean}
16
- */
17
- export function isExcludedByRouteStrategy(url: string | URL): boolean;
18
- /**
19
- * Sets the server side async local storage.
20
- *
21
- * The function is needed because the `runtime.js` file
22
- * must define the `serverAsyncLocalStorage` variable to
23
- * avoid a circular import between `runtime.js` and
24
- * `server.js` files.
25
- *
26
- * @param {ParaglideAsyncLocalStorage | undefined} value
27
- */
28
- export function overwriteServerAsyncLocalStorage(value: ParaglideAsyncLocalStorage | undefined): void;
29
- /**
30
- * Resolve locale for a given URL using route-aware strategies.
31
- *
32
- * @param {string | URL} url
33
- * @returns {Locale}
34
- */
35
- export function getLocaleForUrl(url: string | URL): Locale;
36
- /**
37
- * Get writing direction for a locale.
38
- *
39
- * Uses `Intl.Locale` text info when available and falls back to a
40
- * language-based RTL check for runtimes without `getTextInfo()`.
41
- *
42
- * @example
43
- * getTextDirection(); // "ltr" or "rtl" for current locale
44
- * getTextDirection("ar"); // "rtl"
45
- * getTextDirection("en"); // "ltr"
46
- *
47
- * @param {string} [locale] - Target locale. If not provided, uses `getLocale()`
48
- * @returns {"ltr" | "rtl"}
49
- */
50
- export function getTextDirection(locale?: string): "ltr" | "rtl";
51
- /**
52
- * Check if something is an available locale.
53
- *
54
- * @example
55
- * if (isLocale(params.locale)) {
56
- * setLocale(params.locale);
57
- * } else {
58
- * setLocale('en');
59
- * }
60
- *
61
- * @param {any} locale
62
- * @returns {locale is Locale}
63
- */
64
- export function isLocale(locale: any): locale is Locale;
65
- /**
66
- * Asserts that the input is a locale.
67
- *
68
- * @param {any} input - The input to check.
69
- * @returns {Locale} The input if it is a locale.
70
- * @throws {Error} If the input is not a locale.
71
- */
72
- export function assertIsLocale(input: any): Locale;
73
- /**
74
- * Extracts a cookie from the document.
75
- *
76
- * Will return undefined if the document is not available or if the cookie is not set.
77
- * The `document` object is not available in server-side rendering, so this function should not be called in that context.
78
- *
79
- * @returns {string | undefined}
80
- */
81
- export function extractLocaleFromCookie(): string | undefined;
82
- export function extractLocaleFromHeader(request: Request): Locale;
83
- export function extractLocaleFromNavigator(): Locale | undefined;
84
- /**
85
- * Extracts the locale from a given URL using native URLPattern.
86
- *
87
- * @param {URL|string} url - The full URL from which to extract the locale.
88
- * @returns {Locale|undefined} The extracted locale, or undefined if no locale is found.
89
- */
90
- export function extractLocaleFromUrl(url: URL | string): Locale | undefined;
91
- /**
92
- * Lower-level URL localization function, primarily used in server contexts.
93
- *
94
- * This function is designed for server-side usage where you need precise control
95
- * over URL localization, such as in middleware or request handlers. It works with
96
- * URL objects and always returns absolute URLs.
97
- *
98
- * For client-side UI components, use `localizeHref()` instead, which provides
99
- * a more convenient API with relative paths and automatic locale detection.
100
- *
101
- * @see https://inlang.com/m/gerre34r/library-inlang-paraglideJs/i18n-routing
102
- *
103
- * @example
104
- * ```typescript
105
- * // Server middleware example
106
- * app.use((req, res, next) => {
107
- * const url = new URL(req.url, `${req.protocol}://${req.headers.host}`);
108
- * const localized = localizeUrl(url, { locale: "de" });
109
- *
110
- * if (localized.href !== url.href) {
111
- * return res.redirect(localized.href);
112
- * }
113
- * next();
114
- * });
115
- * ```
116
- *
117
- * @example
118
- * ```typescript
119
- * // Using with URL patterns
120
- * const url = new URL("https://example.com/about");
121
- * localizeUrl(url, { locale: "de" });
122
- * // => URL("https://example.com/de/about")
123
- *
124
- * // Using with domain-based localization
125
- * const url = new URL("https://example.com/store");
126
- * localizeUrl(url, { locale: "de" });
127
- * // => URL("https://de.example.com/store")
128
- * ```
129
- *
130
- * @param {string | URL} url - The URL to localize. If string, must be absolute.
131
- * @param {Object} [options] - Options for localization
132
- * @param {string} [options.locale] - Target locale. If not provided, uses getLocale()
133
- * @returns {URL} The localized URL, always absolute
134
- */
135
- export function localizeUrl(url: string | URL, options?: {
136
- locale?: string | undefined;
137
- }): URL;
138
- /**
139
- * Low-level URL de-localization function, primarily used in server contexts.
140
- *
141
- * This function is designed for server-side usage where you need precise control
142
- * over URL de-localization, such as in middleware or request handlers. It works with
143
- * URL objects and always returns absolute URLs.
144
- *
145
- * For client-side UI components, use `deLocalizeHref()` instead, which provides
146
- * a more convenient API with relative paths.
147
- *
148
- * @see https://inlang.com/m/gerre34r/library-inlang-paraglideJs/i18n-routing
149
- *
150
- * @example
151
- * ```typescript
152
- * // Server middleware example
153
- * app.use((req, res, next) => {
154
- * const url = new URL(req.url, `${req.protocol}://${req.headers.host}`);
155
- * const baseUrl = deLocalizeUrl(url);
156
- *
157
- * // Store the base URL for later use
158
- * req.baseUrl = baseUrl;
159
- * next();
160
- * });
161
- * ```
162
- *
163
- * @example
164
- * ```typescript
165
- * // Using with URL patterns
166
- * const url = new URL("https://example.com/de/about");
167
- * deLocalizeUrl(url); // => URL("https://example.com/about")
168
- *
169
- * // Using with domain-based localization
170
- * const url = new URL("https://de.example.com/store");
171
- * deLocalizeUrl(url); // => URL("https://example.com/store")
172
- * ```
173
- *
174
- * @param {string | URL} url - The URL to de-localize. If string, must be absolute.
175
- * @returns {URL} The de-localized URL, always absolute
176
- */
177
- export function deLocalizeUrl(url: string | URL): URL;
178
- export function aggregateGroups(match: any): Record<string, string | null | undefined>;
179
- /**
180
- * @typedef {object} ShouldRedirectServerInput
181
- * @property {Request} request
182
- * @property {string | URL} [url]
183
- * @property {ReturnType<typeof assertIsLocale>} [locale]
184
- *
185
- * @typedef {object} ShouldRedirectClientInput
186
- * @property {undefined} [request]
187
- * @property {string | URL} [url]
188
- * @property {ReturnType<typeof assertIsLocale>} [locale]
189
- *
190
- * @typedef {ShouldRedirectServerInput | ShouldRedirectClientInput} ShouldRedirectInput
191
- *
192
- * @typedef {object} ShouldRedirectResult
193
- * @property {boolean} shouldRedirect - Indicates whether the consumer should perform a redirect.
194
- * @property {ReturnType<typeof assertIsLocale>} locale - Locale resolved using the configured strategies.
195
- * @property {URL | undefined} redirectUrl - Destination URL when a redirect is required.
196
- */
197
- /**
198
- * Determines whether a redirect is required to align the current URL with the active locale.
199
- *
200
- * This helper mirrors the logic that powers `paraglideMiddleware`, but works in both server
201
- * and client environments. It evaluates the configured strategies in order, computes the
202
- * canonical localized URL, and reports when the current URL does not match.
203
- *
204
- * When called in the browser without arguments, the current `window.location.href` is used.
205
- *
206
- * @see https://inlang.com/m/gerre34r/library-inlang-paraglideJs/i18n-routing#client-side-redirects
207
- *
208
- * @example
209
- * // Client side usage (e.g. TanStack Router beforeLoad hook)
210
- * async function beforeLoad({ location }) {
211
- * const decision = await shouldRedirect({ url: location.href });
212
- *
213
- * if (decision.shouldRedirect) {
214
- * throw redirect({ to: decision.redirectUrl.href });
215
- * }
216
- * }
217
- *
218
- * @example
219
- * // Server side usage with a Request
220
- * export async function handle(request) {
221
- * const decision = await shouldRedirect({ request });
222
- *
223
- * if (decision.shouldRedirect) {
224
- * return Response.redirect(decision.redirectUrl, 307);
225
- * }
226
- *
227
- * return render(request, decision.locale);
228
- * }
229
- *
230
- * @param {ShouldRedirectInput} [input]
231
- * @returns {Promise<ShouldRedirectResult>}
232
- */
233
- export function shouldRedirect(input?: ShouldRedirectInput): Promise<ShouldRedirectResult>;
234
- /**
235
- * High-level URL localization function optimized for client-side UI usage.
236
- *
237
- * This is a convenience wrapper around `localizeUrl()` that provides features
238
- * needed in UI:
239
- *
240
- * - Accepts relative paths (e.g., "/about")
241
- * - Returns relative paths when possible
242
- * - Automatically detects current locale if not specified
243
- * - Handles string input/output instead of URL objects
244
- *
245
- * @see https://inlang.com/m/gerre34r/library-inlang-paraglideJs/i18n-routing
246
- *
247
- * @example
248
- * ```typescript
249
- * // In a React/Vue/Svelte component
250
- * const NavLink = ({ href }) => {
251
- * // Automatically uses current locale, keeps path relative
252
- * return <a href={localizeHref(href)}>...</a>;
253
- * };
254
- *
255
- * // Examples:
256
- * localizeHref("/about")
257
- * // => "/de/about" (if current locale is "de")
258
- * localizeHref("/store", { locale: "fr" })
259
- * // => "/fr/store" (explicit locale)
260
- *
261
- * // Cross-origin links remain absolute
262
- * localizeHref("https://other-site.com/about")
263
- * // => "https://other-site.com/de/about"
264
- * ```
265
- *
266
- * For server-side URL localization (e.g., in middleware), use `localizeUrl()`
267
- * which provides more precise control over URL handling.
268
- *
269
- * @param {string} href - The href to localize (can be relative or absolute)
270
- * @param {Object} [options] - Options for localization
271
- * @param {string} [options.locale] - Target locale. If not provided, uses `getLocale()`
272
- * @returns {string} The localized href, relative if input was relative
273
- */
274
- export function localizeHref(href: string, options?: {
275
- locale?: string | undefined;
276
- }): string;
277
- /**
278
- * High-level URL de-localization function optimized for client-side UI usage.
279
- *
280
- * This is a convenience wrapper around `deLocalizeUrl()` that provides features
281
- * needed in the UI:
282
- *
283
- * - Accepts relative paths (e.g., "/de/about")
284
- * - Returns relative paths when possible
285
- * - Handles string input/output instead of URL objects
286
- *
287
- * @see https://inlang.com/m/gerre34r/library-inlang-paraglideJs/i18n-routing
288
- *
289
- * @example
290
- * ```typescript
291
- * // In a React/Vue/Svelte component
292
- * const LocaleSwitcher = ({ href }) => {
293
- * // Remove locale prefix before switching
294
- * const baseHref = deLocalizeHref(href);
295
- * return locales.map(locale =>
296
- * <a href={localizeHref(baseHref, { locale })}>
297
- * Switch to {locale}
298
- * </a>
299
- * );
300
- * };
301
- *
302
- * // Examples:
303
- * deLocalizeHref("/de/about") // => "/about"
304
- * deLocalizeHref("/fr/store") // => "/store"
305
- *
306
- * // Cross-origin links remain absolute
307
- * deLocalizeHref("https://example.com/de/about")
308
- * // => "https://example.com/about"
309
- * ```
310
- *
311
- * For server-side URL de-localization (e.g., in middleware), use `deLocalizeUrl()`
312
- * which provides more precise control over URL handling.
313
- *
314
- * @param {string} href - The href to de-localize (can be relative or absolute)
315
- * @returns {string} The de-localized href, relative if input was relative
316
- */
317
- export function deLocalizeHref(href: string): string;
318
- /**
319
- * @param {string} safeModuleId
320
- * @param {Locale} locale
321
- */
322
- export function trackMessageCall(safeModuleId: string, locale: Locale): void;
323
- /**
324
- * Generates localized URL variants for all provided URLs based on your configured locales and URL patterns.
325
- *
326
- * This function is essential for Static Site Generation (SSG) where you need to tell your framework
327
- * which pages to pre-render at build time. It's also useful for generating sitemaps and
328
- * `<link rel="alternate" hreflang>` tags for SEO.
329
- *
330
- * The function respects your `urlPatterns` configuration - if you have translated pathnames
331
- * (e.g., `/about` → `/ueber-uns` for German), it will generate the correct localized paths.
332
- *
333
- * @see https://inlang.com/m/gerre34r/library-inlang-paraglideJs/static-site-generation
334
- *
335
- * @example
336
- * // Basic usage - generate all locale variants for a list of paths
337
- * const localizedUrls = generateStaticLocalizedUrls([
338
- * "/",
339
- * "/about",
340
- * "/blog/post-1",
341
- * ]);
342
- * // Returns URL objects for each locale:
343
- * // ["/en/", "/de/", "/en/about", "/de/about", "/en/blog/post-1", "/de/blog/post-1"]
344
- *
345
- * @example
346
- * // Use with framework SSG APIs
347
- * // SvelteKit
348
- * export function entries() {
349
- * const paths = ["/", "/about", "/contact"];
350
- * return generateStaticLocalizedUrls(paths).map(url => ({
351
- * locale: extractLocaleFromUrl(url)
352
- * }));
353
- * }
354
- *
355
- * @example
356
- * // Sitemap generation
357
- * const allPages = ["/", "/about", "/blog"];
358
- * const sitemapUrls = generateStaticLocalizedUrls(allPages);
359
- *
360
- * @param {(string | URL)[]} urls - List of canonical URLs or paths to generate localized versions for.
361
- * Can be absolute URLs (`https://example.com/about`) or paths (`/about`).
362
- * Paths are resolved against `http://localhost` internally.
363
- * @returns {URL[]} Array of URL objects representing all localized variants.
364
- * The order follows each input URL with all its locale variants before moving to the next URL.
365
- */
366
- export function generateStaticLocalizedUrls(urls: (string | URL)[]): URL[];
367
- /**
368
- * Checks if the given strategy is a custom strategy.
369
- *
370
- * @param {any} strategy The name of the custom strategy to validate.
371
- * Must be a string that starts with "custom-" followed by alphanumeric characters, hyphens, or underscores.
372
- * @returns {boolean} Returns true if it is a custom strategy, false otherwise.
373
- */
374
- export function isCustomStrategy(strategy: any): boolean;
375
- /**
376
- * Defines a custom strategy that is executed on the server.
377
- *
378
- * @see https://inlang.com/m/gerre34r/library-inlang-paraglideJs/strategy#write-your-own-strategy
379
- *
380
- * @param {any} strategy The name of the custom strategy to define. Must follow the pattern custom-name with alphanumeric characters, hyphens, or underscores.
381
- * @param {CustomServerStrategyHandler} handler The handler for the custom strategy, which should implement
382
- * the method getLocale.
383
- * @returns {void}
384
- */
385
- export function defineCustomServerStrategy(strategy: any, handler: CustomServerStrategyHandler): void;
386
- /**
387
- * Defines a custom strategy that is executed on the client.
388
- *
389
- * @see https://inlang.com/m/gerre34r/library-inlang-paraglideJs/strategy#write-your-own-strategy
390
- *
391
- * @param {any} strategy The name of the custom strategy to define. Must follow the pattern custom-name with alphanumeric characters, hyphens, or underscores.
392
- * @param {CustomClientStrategyHandler} handler The handler for the custom strategy, which should implement the
393
- * methods getLocale and setLocale.
394
- * @returns {void}
395
- */
396
- export function defineCustomClientStrategy(strategy: any, handler: CustomClientStrategyHandler): void;
397
- /**
398
- * The project's base locale.
399
- *
400
- * @example
401
- * if (locale === baseLocale) {
402
- * // do something
403
- * }
404
- */
405
- export const baseLocale: "en";
406
- /**
407
- * The project's locales that have been specified in the settings.
408
- *
409
- * @example
410
- * if (locales.includes(userSelectedLocale) === false) {
411
- * throw new Error('Locale is not available');
412
- * }
413
- */
414
- export const locales: readonly ["es", "fr", "it", "pt", "en", "de", "ru", "hi", "ar", "zh", "ja", "ko", "vi"];
415
- /** @type {string} */
416
- export const cookieName: string;
417
- /** @type {number} */
418
- export const cookieMaxAge: number;
419
- /** @type {string} */
420
- export const cookieDomain: string;
421
- /** @type {string} */
422
- export const localStorageKey: string;
423
- /**
424
- * @type {Array<"cookie" | "baseLocale" | "globalVariable" | "url" | "preferredLanguage" | "localStorage" | `custom-${string}`>}
425
- */
426
- export const strategy: Array<"cookie" | "baseLocale" | "globalVariable" | "url" | "preferredLanguage" | "localStorage" | `custom-${string}`>;
427
- /**
428
- * Route-level strategy overrides.
429
- *
430
- * `match` uses URLPattern syntax.
431
- *
432
- * @type {Array<{
433
- * match: string;
434
- * strategy?: Array<"cookie" | "baseLocale" | "globalVariable" | "url" | "preferredLanguage" | "localStorage" | `custom-${string}`>;
435
- * exclude?: boolean;
436
- * }>}
437
- */
438
- export const routeStrategies: Array<{
439
- match: string;
440
- strategy?: Array<"cookie" | "baseLocale" | "globalVariable" | "url" | "preferredLanguage" | "localStorage" | `custom-${string}`>;
441
- exclude?: boolean;
442
- }>;
443
- /**
444
- * The used URL patterns.
445
- *
446
- * @type {Array<{ pattern: string, localized: Array<[Locale, string]> }> }
447
- */
448
- export const urlPatterns: Array<{
449
- pattern: string;
450
- localized: Array<[Locale, string]>;
451
- }>;
452
- /**
453
- * @typedef {{
454
- * getStore(): {
455
- * locale?: Locale,
456
- * origin?: string,
457
- * messageCalls?: Set<string>
458
- * } | undefined,
459
- * run: (store: { locale?: Locale, origin?: string, messageCalls?: Set<string>},
460
- * cb: any) => any
461
- * }} ParaglideAsyncLocalStorage
462
- */
463
- /**
464
- * Server side async local storage that is set by `serverMiddleware()`.
465
- *
466
- * The variable is used to retrieve the locale and origin in a server-side
467
- * rendering context without effecting other requests.
468
- *
469
- * @type {ParaglideAsyncLocalStorage | undefined}
470
- */
471
- export let serverAsyncLocalStorage: ParaglideAsyncLocalStorage | undefined;
472
- export const disableAsyncLocalStorage: false;
473
- export const experimentalMiddlewareLocaleSplitting: false;
474
- export const isServer: boolean;
475
- /** @type {Locale | undefined} */
476
- export const experimentalStaticLocale: Locale | undefined;
477
- /**
478
- * Get the current locale.
479
- *
480
- * The locale is resolved using your configured strategies (URL, cookie, localStorage, etc.)
481
- * in the order they are defined. In SSR contexts, the locale is retrieved from AsyncLocalStorage
482
- * which is set by the `paraglideMiddleware()`.
483
- *
484
- * @see https://inlang.com/m/gerre34r/library-inlang-paraglideJs/strategy - Configure locale detection strategies
485
- *
486
- * @example
487
- * if (getLocale() === 'de') {
488
- * console.log('Germany 🇩🇪');
489
- * } else if (getLocale() === 'nl') {
490
- * console.log('Netherlands 🇳🇱');
491
- * }
492
- *
493
- * @type {() => Locale}
494
- */
495
- export let getLocale: () => Locale;
496
- /**
497
- * Overwrite the `getLocale()` function.
498
- *
499
- * Use this function to overwrite how the locale is resolved. This is useful
500
- * for custom locale resolution or advanced use cases like SSG with concurrent rendering.
501
- *
502
- * @see https://inlang.com/m/gerre34r/library-inlang-paraglideJs/strategy
503
- *
504
- * @example
505
- * overwriteGetLocale(() => {
506
- * return Cookies.get('locale') ?? baseLocale
507
- * });
508
- *
509
- * @type {(fn: () => Locale) => void}
510
- */
511
- export const overwriteGetLocale: (fn: () => Locale) => void;
512
- /**
513
- * @typedef {(newLocale: Locale, options?: { reload?: boolean }) => void | Promise<void>} SetLocaleFn
514
- */
515
- /**
516
- * Set the locale.
517
- *
518
- * Updates the locale using your configured strategies (cookie, localStorage, URL, etc.).
519
- * By default, this reloads the page on the client to reflect the new locale. Reloading
520
- * can be disabled by passing `reload: false` as an option, but you'll need to ensure
521
- * the UI updates to reflect the new locale.
522
- *
523
- * If any custom strategy's `setLocale` function is async, then this function
524
- * will become async as well.
525
- *
526
- * @see https://inlang.com/m/gerre34r/library-inlang-paraglideJs/strategy
527
- *
528
- * @example
529
- * setLocale('en');
530
- *
531
- * @example
532
- * setLocale('en', { reload: false });
533
- *
534
- * @type {SetLocaleFn}
535
- */
536
- export let setLocale: SetLocaleFn;
537
- export function overwriteSetLocale(fn: SetLocaleFn): void;
538
- /**
539
- * The origin of the current URL.
540
- *
541
- * Defaults to "http://y.com" in non-browser environments. If this
542
- * behavior is not desired, the implementation can be overwritten
543
- * by `overwriteGetUrlOrigin()`.
544
- *
545
- * @type {() => string}
546
- */
547
- export let getUrlOrigin: () => string;
548
- /**
549
- * Overwrite the getUrlOrigin function.
550
- *
551
- * Use this function in server environments to
552
- * define how the URL origin is resolved.
553
- *
554
- * @type {(fn: () => string) => void}
555
- */
556
- export let overwriteGetUrlOrigin: (fn: () => string) => void;
557
- /**
558
- * Extracts a locale from a request.
559
- *
560
- * Use the function on the server to extract the locale
561
- * from a request.
562
- *
563
- * The function goes through the strategies in the order
564
- * they are defined. If a strategy returns an invalid locale,
565
- * it will fall back to the next strategy.
566
- *
567
- * Note: Custom server strategies are not supported in this synchronous version.
568
- * Use `extractLocaleFromRequestAsync` if you need custom server strategies with async getLocale methods.
569
- *
570
- * @example
571
- * const locale = extractLocaleFromRequest(request);
572
- *
573
- * @type {(request: Request) => Locale}
574
- */
575
- export const extractLocaleFromRequest: (request: Request) => Locale;
576
- export function extractLocaleFromRequestWithStrategies(request: Request, strategies: typeof strategy): Locale;
577
- /**
578
- * Asynchronously extracts a locale from a request.
579
- *
580
- * This function supports async custom server strategies, unlike the synchronous
581
- * `extractLocaleFromRequest`. Use this function when you have custom server strategies
582
- * that need to perform asynchronous operations (like database calls) in their getLocale method.
583
- *
584
- * The function first processes any custom server strategies asynchronously, then falls back
585
- * to the synchronous `extractLocaleFromRequest` for all other strategies.
586
- *
587
- * @see {@link https://github.com/opral/inlang-paraglide-js/issues/527#issuecomment-2978151022}
588
- *
589
- * @example
590
- * // Basic usage
591
- * const locale = await extractLocaleFromRequestAsync(request);
592
- *
593
- * @example
594
- * // With custom async server strategy
595
- * defineCustomServerStrategy("custom-database", {
596
- * getLocale: async (request) => {
597
- * const userId = extractUserIdFromRequest(request);
598
- * return await getUserLocaleFromDatabase(userId);
599
- * }
600
- * });
601
- *
602
- * const locale = await extractLocaleFromRequestAsync(request);
603
- *
604
- * @type {(request: Request) => Promise<Locale>}
605
- */
606
- export const extractLocaleFromRequestAsync: (request: Request) => Promise<Locale>;
607
- /**
608
- * @typedef {"cookie" | "baseLocale" | "globalVariable" | "url" | "preferredLanguage" | "localStorage"} BuiltInStrategy
609
- */
610
- /**
611
- * @typedef {`custom_${string}`} CustomStrategy
612
- */
613
- /**
614
- * @typedef {BuiltInStrategy | CustomStrategy} Strategy
615
- */
616
- /**
617
- * @typedef {Array<Strategy>} Strategies
618
- */
619
- /**
620
- * @typedef {{ getLocale: (request?: Request) => Promise<string | undefined> | (string | undefined) }} CustomServerStrategyHandler
621
- */
622
- /**
623
- * @typedef {{ getLocale: () => Promise<string|undefined> | (string | undefined), setLocale: (locale: string) => Promise<void> | void }} CustomClientStrategyHandler
624
- */
625
- /** @type {Map<string, CustomServerStrategyHandler>} */
626
- export const customServerStrategies: Map<string, CustomServerStrategyHandler>;
627
- /** @type {Map<string, CustomClientStrategyHandler>} */
628
- export const customClientStrategies: Map<string, CustomClientStrategyHandler>;
629
- export type ShouldRedirectServerInput = {
630
- request: Request;
631
- url?: string | URL | undefined;
632
- locale?: "es" | "fr" | "it" | "pt" | "en" | "de" | "ru" | "hi" | "ar" | "zh" | "ja" | "ko" | "vi" | undefined;
633
- };
634
- export type ShouldRedirectClientInput = {
635
- request?: undefined;
636
- url?: string | URL | undefined;
637
- locale?: "es" | "fr" | "it" | "pt" | "en" | "de" | "ru" | "hi" | "ar" | "zh" | "ja" | "ko" | "vi" | undefined;
638
- };
639
- export type ShouldRedirectInput = ShouldRedirectServerInput | ShouldRedirectClientInput;
640
- export type ShouldRedirectResult = {
641
- /**
642
- * - Indicates whether the consumer should perform a redirect.
643
- */
644
- shouldRedirect: boolean;
645
- /**
646
- * - Locale resolved using the configured strategies.
647
- */
648
- locale: ReturnType<typeof assertIsLocale>;
649
- /**
650
- * - Destination URL when a redirect is required.
651
- */
652
- redirectUrl: URL | undefined;
653
- };
654
- export type ParaglideAsyncLocalStorage = {
655
- getStore(): {
656
- locale?: Locale;
657
- origin?: string;
658
- messageCalls?: Set<string>;
659
- } | undefined;
660
- run: (store: {
661
- locale?: Locale;
662
- origin?: string;
663
- messageCalls?: Set<string>;
664
- }, cb: any) => any;
665
- };
666
- export type SetLocaleFn = (newLocale: Locale, options?: {
667
- reload?: boolean;
668
- }) => void | Promise<void>;
669
- export type BuiltInStrategy = "cookie" | "baseLocale" | "globalVariable" | "url" | "preferredLanguage" | "localStorage";
670
- export type CustomStrategy = `custom_${string}`;
671
- export type Strategy = BuiltInStrategy | CustomStrategy;
672
- export type Strategies = Array<Strategy>;
673
- export type CustomServerStrategyHandler = {
674
- getLocale: (request?: Request) => Promise<string | undefined> | (string | undefined);
675
- };
676
- export type CustomClientStrategyHandler = {
677
- getLocale: () => Promise<string | undefined> | (string | undefined);
678
- setLocale: (locale: string) => Promise<void> | void;
679
- };
680
- /**
681
- * A locale that is available in the project.
682
- */
683
- export type Locale = (typeof locales)[number];
684
- /**
685
- * A branded type representing a localized string.
686
- *
687
- * Message functions return this type instead of `string`, enabling TypeScript
688
- * to distinguish translated strings from regular strings at compile time.
689
- * This allows you to enforce that only properly localized content is used
690
- * in your UI components.
691
- *
692
- * Since `LocalizedString` is a branded subtype of `string`, it remains fully
693
- * backward compatible—you can pass it anywhere a `string` is expected.
694
- */
695
- export type LocalizedString = string & {
696
- readonly __brand: "LocalizedString";
697
- };
698
- /**
699
- * Record of markup options for a tag instance.
700
- */
701
- export type MessageMarkupOptions = Record<string, unknown>;
702
- /**
703
- * Record of markup attributes for a tag instance.
704
- */
705
- export type MessageMarkupAttributes = Record<string, string | true>;
706
- /**
707
- * Type-level schema for a single markup tag.
708
- */
709
- export type MessageMarkupTag = {
710
- options: MessageMarkupOptions;
711
- attributes: MessageMarkupAttributes;
712
- children: boolean;
713
- };
714
- /**
715
- * Type-level schema for all markup tags in a message.
716
- */
717
- export type MessageMarkupSchema = Record<string, MessageMarkupTag>;
718
- /**
719
- * Type-only metadata attached to compiled message functions.
720
- */
721
- export type MessageMetadata<Inputs, Options, Markup extends MessageMarkupSchema> = {
722
- readonly __paraglide?: {
723
- inputs: Inputs;
724
- options: Options;
725
- markup: Markup;
726
- };
727
- };
728
- /**
729
- * A compiled, framework-neutral message part.
730
- */
731
- export type MessagePart = {
732
- type: "text";
733
- value: string;
734
- } | {
735
- type: "markup-start";
736
- name: string;
737
- options: MessageMarkupOptions;
738
- attributes: MessageMarkupAttributes;
739
- } | {
740
- type: "markup-end";
741
- name: string;
742
- options: MessageMarkupOptions;
743
- attributes: MessageMarkupAttributes;
744
- } | {
745
- type: "markup-standalone";
746
- name: string;
747
- options: MessageMarkupOptions;
748
- attributes: MessageMarkupAttributes;
749
- };