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,222 +0,0 @@
1
- import hotkeys from "hotkeys-js";
2
- import { getContext, untrack } from "svelte";
3
- import { RUNE_LAB_CONTEXT } from "./context";
4
- import { DEV } from "esm-env";
5
- /**
6
- * Built-in layout shortcuts
7
- */
8
- export const LAYOUT_SHORTCUTS = {
9
- TOGGLE_NAV: {
10
- id: "rl:layout:toggle-nav",
11
- keys: "ctrl+\\",
12
- label: "Toggle Navigation Panel",
13
- category: "Layout",
14
- scope: "global",
15
- },
16
- TOGGLE_DETAIL: {
17
- id: "rl:layout:toggle-detail",
18
- keys: "ctrl+shift+\\",
19
- label: "Toggle Detail Panel",
20
- category: "Layout",
21
- scope: "global",
22
- },
23
- OPEN_SHORTCUTS: {
24
- id: "rl:shortcuts:open",
25
- keys: "ctrl+/",
26
- label: "Show Shortcut Palette",
27
- category: "Help",
28
- scope: "global",
29
- },
30
- NAV_NEXT: {
31
- id: "rl:nav:next-item",
32
- keys: "alt+down",
33
- label: "Next navigation item",
34
- category: "Navigation",
35
- scope: "panel:navigation",
36
- },
37
- NAV_PREV: {
38
- id: "rl:nav:prev-item",
39
- keys: "alt+up",
40
- label: "Previous navigation item",
41
- category: "Navigation",
42
- scope: "panel:navigation",
43
- },
44
- NAV_EXPAND: {
45
- id: "rl:nav:expand-section",
46
- keys: "alt+right",
47
- label: "Expand section",
48
- category: "Navigation",
49
- scope: "panel:navigation",
50
- },
51
- NAV_COLLAPSE: {
52
- id: "rl:nav:collapse-section",
53
- keys: "alt+left",
54
- label: "Collapse section",
55
- category: "Navigation",
56
- scope: "panel:navigation",
57
- },
58
- };
59
- export class ShortcutStore {
60
- /** All registered shortcuts */
61
- entries = $state([]);
62
- /** Whether the shortcut palette is currently visible */
63
- showPalette = $state(false);
64
- /** Subset of shortcuts that should be displayed in the palette */
65
- active = $derived(this.entries.filter((e) => e.enabled !== false && !e.hidden));
66
- /** Grouped entries for display (scope -> category -> entries) */
67
- byScopeAndCategory = $derived.by(() => {
68
- const groups = {};
69
- for (const entry of this.active) {
70
- const scope = entry.scope;
71
- const category = entry.category;
72
- if (!groups[scope])
73
- groups[scope] = {};
74
- if (!groups[scope][category])
75
- groups[scope][category] = [];
76
- groups[scope][category].push(entry);
77
- }
78
- return groups;
79
- });
80
- /** Scopes sorted by importance (global first, then layout, then alphabetical) */
81
- sortedScopes = $derived.by(() => {
82
- return Object.keys(this.byScopeAndCategory).sort((a, b) => {
83
- if (a === "global")
84
- return -1;
85
- if (b === "global")
86
- return 1;
87
- if (a === "layout")
88
- return -1;
89
- if (b === "layout")
90
- return 1;
91
- return a.localeCompare(b);
92
- });
93
- });
94
- /**
95
- * Register a new shortcut
96
- */
97
- register(entry) {
98
- untrack(() => {
99
- const existingIndex = this.entries.findIndex((e) => e.id === entry.id);
100
- if (existingIndex !== -1) {
101
- if (DEV) {
102
- console.warn(`[ShortcutStore] Overwriting shortcut ID "${entry.id}"`, {
103
- old: this.entries[existingIndex],
104
- new: entry,
105
- });
106
- }
107
- this.entries[existingIndex] = { enabled: true, ...entry };
108
- return;
109
- }
110
- // Check for collisions (keys + scope)
111
- const collision = this.entries.find((e) => e.keys === entry.keys && e.scope === entry.scope);
112
- if (collision && DEV) {
113
- console.warn(`[ShortcutStore] Collision detected for keys "${entry.keys}" in scope "${entry.scope}". ` +
114
- `ID "${entry.id}" will displace "${collision.id}".`);
115
- }
116
- this.entries.push({ enabled: true, ...entry });
117
- });
118
- }
119
- /**
120
- * Unregister a shortcut by ID
121
- */
122
- unregister(id) {
123
- untrack(() => {
124
- this.entries = this.entries.filter((e) => e.id !== id);
125
- });
126
- }
127
- /**
128
- * Enable a shortcut
129
- */
130
- enable(id) {
131
- untrack(() => {
132
- const entry = this.entries.find((e) => e.id === id);
133
- if (entry)
134
- entry.enabled = true;
135
- });
136
- }
137
- /**
138
- * Disable a shortcut
139
- */
140
- disable(id) {
141
- untrack(() => {
142
- const entry = this.entries.find((e) => e.id === id);
143
- if (entry)
144
- entry.enabled = false;
145
- });
146
- }
147
- /**
148
- * Find conflicts for a given key combo and scope
149
- */
150
- findConflicts(keys, scope) {
151
- return untrack(() => this.entries.filter((e) => e.keys === keys && e.scope === scope));
152
- }
153
- }
154
- /**
155
- * Svelte Action to listen for shortcuts registered in shortcutStore.
156
- * Applied to the root element of the layout.
157
- */
158
- export function shortcutListener(node, shortcutStore) {
159
- // Use $effect to reactively sync shortcuts
160
- const cleanup = $effect.root(() => {
161
- $effect(() => {
162
- // Unbind everything first to ensure clean state
163
- hotkeys.unbind();
164
- // We read entries here, so this effect re-runs when entries change.
165
- // That's exactly what we want.
166
- for (const entry of shortcutStore.entries) {
167
- if (entry.enabled === false)
168
- continue;
169
- hotkeys(entry.keys, "all", (event, handler) => {
170
- // Scoping logic: check if the event target is within the required scope
171
- if (entry.scope === "global") {
172
- // Hotkeys.js already filters inputs by default
173
- entry.handler(event);
174
- }
175
- else if (entry.scope === "layout") {
176
- if (node.contains(event.target)) {
177
- entry.handler(event);
178
- }
179
- }
180
- else if (entry.scope.startsWith("panel:")) {
181
- const panelId = entry.scope.replace("panel:", "");
182
- const panel = node.querySelector(`[data-rl-panel="${panelId}"]`);
183
- if (panel && panel.contains(event.target)) {
184
- entry.handler(event);
185
- }
186
- }
187
- });
188
- }
189
- });
190
- // Helper to sync hotkeys-js scope with focus
191
- const handleFocusIn = (e) => {
192
- const target = e.target;
193
- const panel = target.closest("[data-rl-panel]");
194
- if (panel) {
195
- const scope = `panel:${panel.getAttribute("data-rl-panel")}`;
196
- hotkeys.setScope(scope);
197
- }
198
- else if (node.contains(target)) {
199
- hotkeys.setScope("layout");
200
- }
201
- else {
202
- hotkeys.setScope("global");
203
- }
204
- };
205
- window.addEventListener("focusin", handleFocusIn);
206
- return () => {
207
- window.removeEventListener("focusin", handleFocusIn);
208
- };
209
- });
210
- return {
211
- destroy() {
212
- cleanup();
213
- hotkeys.unbind();
214
- },
215
- };
216
- }
217
- export function createShortcutStore() {
218
- return new ShortcutStore();
219
- }
220
- export function getShortcutStore() {
221
- return getContext(RUNE_LAB_CONTEXT.shortcut);
222
- }
@@ -1,22 +0,0 @@
1
- import { type ConfigStore } from "./createConfigStore.svelte";
2
- export interface Theme {
3
- name: string;
4
- icon: string;
5
- }
6
- import type { PersistenceDriver } from "rune-lab/core";
7
- export interface ThemeStoreOptions {
8
- driver?: PersistenceDriver | (() => PersistenceDriver | undefined);
9
- /** Additional custom themes to append to the built-in DaisyUI set */
10
- customThemes?: Theme[];
11
- /** Fallback theme if no persisted value exists (after system preference check) */
12
- defaultTheme?: string;
13
- }
14
- export declare function createThemeStore(driverOrOptions?: PersistenceDriver | (() => PersistenceDriver | undefined) | ThemeStoreOptions): {
15
- current: string;
16
- available: Theme[];
17
- set(id: string): void;
18
- get(id: string): Theme | undefined;
19
- getProp<K extends keyof Theme>(prop: K, id?: string | undefined): Theme[K] | undefined;
20
- addItems(newItems: Theme[]): void;
21
- };
22
- export declare function getThemeStore(): ConfigStore<Theme>;
@@ -1,92 +0,0 @@
1
- // client/packages/ui/src/state/theme-config.svelte.ts
2
- import { createConfigStore, } from "./createConfigStore.svelte";
3
- import { getContext } from "svelte";
4
- import { RUNE_LAB_CONTEXT } from "./context";
5
- // Icon map for known themes - unknown ones fall back to 🎨
6
- const THEME_ICONS = {
7
- light: "🌞",
8
- dark: "🌙",
9
- cupcake: "🧁",
10
- bumblebee: "🐝",
11
- emerald: "💚",
12
- corporate: "🏢",
13
- synthwave: "🌆",
14
- retro: "📺",
15
- cyberpunk: "🤖",
16
- valentine: "💝",
17
- halloween: "🎃",
18
- garden: "🌷",
19
- forest: "🌲",
20
- aqua: "💧",
21
- lofi: "🎵",
22
- pastel: "🎨",
23
- fantasy: "🔮",
24
- wireframe: "📝",
25
- black: "⚫",
26
- luxury: "👑",
27
- dracula: "🧛",
28
- cmyk: "🖨️",
29
- autumn: "🍂",
30
- business: "💼",
31
- acid: "🧪",
32
- lemonade: "🍋",
33
- night: "🌃",
34
- coffee: "☕",
35
- winter: "❄️",
36
- dim: "🔅",
37
- nord: "🧊",
38
- sunset: "🌅",
39
- caramellatte: "🍮",
40
- abyss: "🌌",
41
- silk: "🎀",
42
- };
43
- // Derived from daisyUI directly — stays in sync automatically
44
- const THEMES = themeOrder.map((name) => ({
45
- name,
46
- icon: THEME_ICONS[name] ?? "🎨",
47
- }));
48
- import themeOrder from "daisyui/functions/themeOrder.js";
49
- import { BROWSER } from "esm-env";
50
- export function createThemeStore(driverOrOptions) {
51
- // Normalize overloaded argument
52
- const opts = driverOrOptions && typeof driverOrOptions === "object" &&
53
- "driver" in driverOrOptions
54
- ? driverOrOptions
55
- : {
56
- driver: driverOrOptions,
57
- };
58
- const resolvedDriver = typeof opts.driver === "function"
59
- ? opts.driver()
60
- : opts.driver;
61
- const store = createConfigStore({
62
- items: THEMES,
63
- storageKey: "theme",
64
- displayName: "Theme",
65
- idKey: "name",
66
- icon: "🎨",
67
- driver: resolvedDriver,
68
- });
69
- // Append custom themes if provided
70
- if (opts.customThemes?.length) {
71
- store.addItems(opts.customThemes);
72
- }
73
- // System preference detection — only if no persisted value was loaded
74
- if (!resolvedDriver?.get("theme") && BROWSER) {
75
- const prefersDark = window.matchMedia("(prefers-color-scheme: dark)").matches;
76
- const systemDefault = prefersDark ? "dark" : "light";
77
- const chosen = opts.defaultTheme ?? systemDefault;
78
- if (store.get(chosen)) {
79
- store.set(chosen);
80
- }
81
- }
82
- else if (!resolvedDriver?.get("theme") && opts.defaultTheme) {
83
- // SSR / non-browser: use defaultTheme if provided
84
- if (store.get(opts.defaultTheme)) {
85
- store.set(opts.defaultTheme);
86
- }
87
- }
88
- return store;
89
- }
90
- export function getThemeStore() {
91
- return getContext(RUNE_LAB_CONTEXT.theme);
92
- }
@@ -1,29 +0,0 @@
1
- import type { ToastStore, ToastType } from "./toast.svelte";
2
- /**
3
- * Notifies the global toast system.
4
- * If called before the ToastStore is initialized (e.g., in a module-level store),
5
- * it queues the toast and flushes it once wired.
6
- *
7
- * @clientOnly — Not safe for use in SSR contexts. Module-level state persists across requests.
8
- */
9
- export declare function notify(message: string, type?: ToastType, duration?: number): void;
10
- /**
11
- * Wires the global `notify` function to an active ToastStore instance.
12
- * Automatically flushes any queued toasts.
13
- */
14
- export declare function wire(store: ToastStore): void;
15
- /**
16
- * Escape hatch for module-level stores to send toasts without Svelte context.
17
- *
18
- * @example
19
- * ```ts
20
- * import { createToastBridge } from "rune-lab";
21
- * const { notify } = createToastBridge();
22
- *
23
- * notify("Logged in successfully", "success");
24
- * ```
25
- */
26
- export declare const createToastBridge: () => {
27
- notify: typeof notify;
28
- wire: typeof wire;
29
- };
@@ -1,43 +0,0 @@
1
- const queue = [];
2
- let activeStore = null;
3
- /**
4
- * Notifies the global toast system.
5
- * If called before the ToastStore is initialized (e.g., in a module-level store),
6
- * it queues the toast and flushes it once wired.
7
- *
8
- * @clientOnly — Not safe for use in SSR contexts. Module-level state persists across requests.
9
- */
10
- export function notify(message, type = "info", duration) {
11
- if (typeof window === "undefined")
12
- return; // No-op on server
13
- if (activeStore) {
14
- activeStore.send(message, type, duration ?? 3000);
15
- }
16
- else {
17
- queue.push({ message, type, duration });
18
- }
19
- }
20
- /**
21
- * Wires the global `notify` function to an active ToastStore instance.
22
- * Automatically flushes any queued toasts.
23
- */
24
- export function wire(store) {
25
- activeStore = store;
26
- while (queue.length > 0) {
27
- const next = queue.shift();
28
- if (next)
29
- store.send(next.message, next.type, next.duration ?? 3000);
30
- }
31
- }
32
- /**
33
- * Escape hatch for module-level stores to send toasts without Svelte context.
34
- *
35
- * @example
36
- * ```ts
37
- * import { createToastBridge } from "rune-lab";
38
- * const { notify } = createToastBridge();
39
- *
40
- * notify("Logged in successfully", "success");
41
- * ```
42
- */
43
- export const createToastBridge = () => ({ notify, wire });
@@ -1,27 +0,0 @@
1
- /**
2
- * Toast notification store
3
- */
4
- export type ToastType = "info" | "success" | "warning" | "error";
5
- export interface Toast {
6
- id: string;
7
- message: string;
8
- type: ToastType;
9
- duration?: number;
10
- }
11
- export declare class ToastStore {
12
- toasts: Toast[];
13
- /**
14
- * Add a new toast
15
- */
16
- send(message: string, type?: ToastType, duration?: number): void;
17
- /**
18
- * Remove a toast by id
19
- */
20
- dismiss(id: string): void;
21
- success(msg: string): void;
22
- error(msg: string): void;
23
- warn(msg: string): void;
24
- info(msg: string): void;
25
- }
26
- export declare function createToastStore(): ToastStore;
27
- export declare function getToastStore(): ToastStore;
@@ -1,43 +0,0 @@
1
- import { getContext } from "svelte";
2
- import { RUNE_LAB_CONTEXT } from "./context";
3
- export class ToastStore {
4
- toasts = $state([]);
5
- /**
6
- * Add a new toast
7
- */
8
- send(message, type = "info", duration = 3000) {
9
- const id = crypto.randomUUID();
10
- const toast = { id, message, type, duration };
11
- this.toasts.push(toast);
12
- if (duration > 0) {
13
- setTimeout(() => {
14
- this.dismiss(id);
15
- }, duration);
16
- }
17
- }
18
- /**
19
- * Remove a toast by id
20
- */
21
- dismiss(id) {
22
- this.toasts = this.toasts.filter((t) => t.id !== id);
23
- }
24
- // Helper methods
25
- success(msg) {
26
- this.send(msg, "success");
27
- }
28
- error(msg) {
29
- this.send(msg, "error");
30
- }
31
- warn(msg) {
32
- this.send(msg, "warning");
33
- }
34
- info(msg) {
35
- this.send(msg, "info");
36
- }
37
- }
38
- export function createToastStore() {
39
- return new ToastStore();
40
- }
41
- export function getToastStore() {
42
- return getContext(RUNE_LAB_CONTEXT.toast);
43
- }
@@ -1,7 +0,0 @@
1
- /**
2
- * Svelte action to teleport a DOM element to a different target (e.g. body)
3
- */
4
- export declare function portal(node: HTMLElement, target?: string | HTMLElement): {
5
- update: (newTarget: string | HTMLElement) => void;
6
- destroy(): void;
7
- };
@@ -1,32 +0,0 @@
1
- import { DEV } from "esm-env";
2
- /**
3
- * Svelte action to teleport a DOM element to a different target (e.g. body)
4
- */
5
- export function portal(node, target = "body") {
6
- let targetNode;
7
- let isTeleported = false;
8
- function update(newTarget) {
9
- if (typeof newTarget === "string") {
10
- targetNode = document.querySelector(newTarget);
11
- if (!targetNode && DEV) {
12
- console.warn(`portal target selector "${newTarget}" not found in document.`);
13
- }
14
- }
15
- else {
16
- targetNode = newTarget;
17
- }
18
- if (targetNode) {
19
- targetNode.appendChild(node);
20
- isTeleported = true;
21
- }
22
- }
23
- update(target);
24
- return {
25
- update,
26
- destroy() {
27
- if (isTeleported && node.parentNode) {
28
- node.parentNode.removeChild(node);
29
- }
30
- },
31
- };
32
- }
@@ -1,162 +0,0 @@
1
- <script lang="ts">
2
- import { getApiStore } from "rune-lab/state";
3
- import { getToastStore } from "rune-lab/state";
4
-
5
- const apiStore = getApiStore();
6
- const toastStore = getToastStore();
7
-
8
- let copied = $state(false);
9
- let isVisible = $state(true);
10
-
11
- function copyToClipboard() {
12
- navigator.clipboard.writeText(apiStore.URL);
13
- copied = true;
14
- toastStore.success("API URL copied to clipboard!");
15
- setTimeout(() => (copied = false), 2000);
16
- }
17
-
18
- function handleKeyDown(event: KeyboardEvent) {
19
- if (event.key === "Enter" || event.key === " ") {
20
- copyToClipboard();
21
- }
22
- }
23
-
24
- const containerClass = $derived(`
25
- fixed bottom-4 left-4 z-50
26
- flex items-center space-x-2
27
- transition-all duration-300 transform
28
- ${isVisible ? "translate-y-0 opacity-100" : "translate-y-16 opacity-0"}
29
- `);
30
- </script>
31
-
32
- <div class={containerClass}>
33
- <div
34
- class="flex items-center space-x-2 backdrop-blur-sm bg-base-300/80 rounded-xl p-1 shadow-lg border border-base-content/10"
35
- >
36
- <!-- API Status Indicator -->
37
- {#if apiStore.IS_CONNECTED}
38
- <div class="tooltip tooltip-right" data-tip="Connected">
39
- <div
40
- aria-label="success"
41
- class="status status-success status-md"
42
- ></div>
43
- </div>
44
- {:else if apiStore.IS_LOADING}
45
- <div class="tooltip tooltip-right" data-tip="Connecting...">
46
- <div class="inline-grid *:[grid-area:1/1]">
47
- <div class="status status-warning animate-ping"></div>
48
- <div class="status status-warning"></div>
49
- </div>
50
- </div>
51
- {:else}
52
- <div class="tooltip tooltip-right" data-tip="Disconnected">
53
- <div class="status status-error animate-bounce"></div>
54
- </div>
55
- {/if}
56
-
57
- <!-- API Docs / Reload -->
58
- {#if apiStore.connectionState === "connected"}
59
- <button
60
- class="btn btn-circle btn-xs btn-primary"
61
- onclick={() => window.open(`${apiStore.URL}/docs`, "_blank")}
62
- aria-label="Go to API Documentation"
63
- >
64
- <svg
65
- xmlns="http://www.w3.org/2000/svg"
66
- width="14"
67
- height="14"
68
- viewBox="0 0 24 24"
69
- fill="none"
70
- stroke="currentColor"
71
- stroke-width="2"
72
- stroke-linecap="round"
73
- stroke-linejoin="round"
74
- ><path
75
- d="M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H20v20H6.5a2.5 2.5 0 0 1-0-5H20"
76
- /></svg
77
- >
78
- </button>
79
- {:else}
80
- <button
81
- class="btn btn-circle btn-xs btn-error"
82
- onclick={() => apiStore.reconnect()}
83
- aria-label="Reconnect to API"
84
- disabled={apiStore.connectionState === "connecting"}
85
- >
86
- <svg
87
- xmlns="http://www.w3.org/2000/svg"
88
- width="14"
89
- height="14"
90
- viewBox="0 0 24 24"
91
- fill="none"
92
- stroke="currentColor"
93
- stroke-width="2"
94
- stroke-linecap="round"
95
- stroke-linejoin="round"
96
- class={apiStore.connectionState === "connecting"
97
- ? "animate-spin"
98
- : ""}
99
- ><path
100
- d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8"
101
- /><path d="M21 3v5h-5" /><path
102
- d="M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16"
103
- /><path d="M3 21v-5h5" /></svg
104
- >
105
- </button>
106
- {/if}
107
-
108
- <button
109
- class="group flex items-center space-x-2 px-3 py-1 rounded-lg hover:bg-base-200 transition-colors duration-200"
110
- onclick={copyToClipboard}
111
- onkeydown={handleKeyDown}
112
- aria-label="Copy API URL"
113
- >
114
- <span class="text-xs font-mono"
115
- >{apiStore.URL.replace(
116
- /^https?:\/\//,
117
- "",
118
- )}/{apiStore.VERSION}</span
119
- >
120
- {#if copied}
121
- <svg
122
- xmlns="http://www.w3.org/2000/svg"
123
- width="14"
124
- height="14"
125
- viewBox="0 0 24 24"
126
- fill="none"
127
- stroke="currentColor"
128
- stroke-width="2"
129
- stroke-linecap="round"
130
- stroke-linejoin="round"
131
- class="text-success"
132
- ><circle cx="12" cy="12" r="10" /><path
133
- d="m9 12 2 2 4-4"
134
- /></svg
135
- >
136
- {:else}
137
- <svg
138
- xmlns="http://www.w3.org/2000/svg"
139
- width="14"
140
- height="14"
141
- viewBox="0 0 24 24"
142
- fill="none"
143
- stroke="currentColor"
144
- stroke-width="2"
145
- stroke-linecap="round"
146
- stroke-linejoin="round"
147
- class="opacity-50 group-hover:opacity-100 transition-all duration-200"
148
- ><rect
149
- width="14"
150
- height="14"
151
- x="8"
152
- y="8"
153
- rx="2"
154
- ry="2"
155
- /><path
156
- d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"
157
- /></svg
158
- >
159
- {/if}
160
- </button>
161
- </div>
162
- </div>
@@ -1,3 +0,0 @@
1
- declare const ApiMonitor: import("svelte").Component<Record<string, never>, {}, "">;
2
- type ApiMonitor = ReturnType<typeof ApiMonitor>;
3
- export default ApiMonitor;