@almadar/shell-web 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (274) hide show
  1. package/bundling.d.mts +18 -0
  2. package/bundling.mjs +28 -0
  3. package/dist/ArbitraryClassCompiler-Mzabq-UB.d.ts +100 -0
  4. package/dist/AvlGlyph-JKJOAH23.js +6 -0
  5. package/dist/AvlStateMachine-PI4YGREK.js +8 -0
  6. package/dist/AvlTransitionDetail-ZH7V24UG.js +12 -0
  7. package/dist/AvlTransitionExplainer-ZSRT7L6Y.js +13 -0
  8. package/dist/BehaviorValueFrame-6RUJXT4A.js +29 -0
  9. package/dist/BehaviorValueFrame-SSEMEBTG.css +1756 -0
  10. package/dist/BehaviorView-RFEE5J6E.js +10 -0
  11. package/dist/Canvas3DHost-_Y-5uLM_.d.ts +552 -0
  12. package/dist/EventBusProvider-CVwjkV_2.d.ts +284 -0
  13. package/dist/FileTree-BCFnBEuQ.d.ts +254 -0
  14. package/dist/FlowCanvas-3JRMNJLV.css +1756 -0
  15. package/dist/FlowCanvas-STDC4OWK.js +27 -0
  16. package/dist/GameAudioProvider-Cm9BnvmP.d.ts +93 -0
  17. package/dist/KaTeX_AMS-Regular-CYEKBG2K.woff +0 -0
  18. package/dist/KaTeX_AMS-Regular-JKX5W2C4.ttf +0 -0
  19. package/dist/KaTeX_AMS-Regular-U6PRYMIZ.woff2 +0 -0
  20. package/dist/KaTeX_Caligraphic-Bold-5QL5CMTE.woff2 +0 -0
  21. package/dist/KaTeX_Caligraphic-Bold-WZ3QSGD3.woff +0 -0
  22. package/dist/KaTeX_Caligraphic-Bold-ZTS3R3HK.ttf +0 -0
  23. package/dist/KaTeX_Caligraphic-Regular-3LKEU76G.woff +0 -0
  24. package/dist/KaTeX_Caligraphic-Regular-A7XRTZ5Q.ttf +0 -0
  25. package/dist/KaTeX_Caligraphic-Regular-KX5MEWCF.woff2 +0 -0
  26. package/dist/KaTeX_Fraktur-Bold-2QVFK6NQ.woff2 +0 -0
  27. package/dist/KaTeX_Fraktur-Bold-T4SWXBMT.woff +0 -0
  28. package/dist/KaTeX_Fraktur-Bold-WGHVTYOR.ttf +0 -0
  29. package/dist/KaTeX_Fraktur-Regular-2PEIFJSJ.woff2 +0 -0
  30. package/dist/KaTeX_Fraktur-Regular-5U4OPH2X.ttf +0 -0
  31. package/dist/KaTeX_Fraktur-Regular-PQMHCIK6.woff +0 -0
  32. package/dist/KaTeX_Main-Bold-2GA4IZIN.woff +0 -0
  33. package/dist/KaTeX_Main-Bold-W5FBVCZM.ttf +0 -0
  34. package/dist/KaTeX_Main-Bold-YP5VVQRP.woff2 +0 -0
  35. package/dist/KaTeX_Main-BoldItalic-4P4C7HJH.woff +0 -0
  36. package/dist/KaTeX_Main-BoldItalic-N4V3DX7S.woff2 +0 -0
  37. package/dist/KaTeX_Main-BoldItalic-ODMLBJJQ.ttf +0 -0
  38. package/dist/KaTeX_Main-Italic-I43T2HSR.ttf +0 -0
  39. package/dist/KaTeX_Main-Italic-RELBIK7M.woff2 +0 -0
  40. package/dist/KaTeX_Main-Italic-SASNQFN2.woff +0 -0
  41. package/dist/KaTeX_Main-Regular-ARRPAO67.woff2 +0 -0
  42. package/dist/KaTeX_Main-Regular-P5I74A2A.woff +0 -0
  43. package/dist/KaTeX_Main-Regular-W74P5G27.ttf +0 -0
  44. package/dist/KaTeX_Math-BoldItalic-6EBV3DK5.woff +0 -0
  45. package/dist/KaTeX_Math-BoldItalic-K4WTGH3J.woff2 +0 -0
  46. package/dist/KaTeX_Math-BoldItalic-VB447A4D.ttf +0 -0
  47. package/dist/KaTeX_Math-Italic-6KGCHLFN.woff2 +0 -0
  48. package/dist/KaTeX_Math-Italic-KKK3USB2.woff +0 -0
  49. package/dist/KaTeX_Math-Italic-SON4MRCA.ttf +0 -0
  50. package/dist/KaTeX_SansSerif-Bold-RRNVJFFW.woff2 +0 -0
  51. package/dist/KaTeX_SansSerif-Bold-STQ6RXC7.ttf +0 -0
  52. package/dist/KaTeX_SansSerif-Bold-X5M5EMOD.woff +0 -0
  53. package/dist/KaTeX_SansSerif-Italic-HMPFTM52.woff2 +0 -0
  54. package/dist/KaTeX_SansSerif-Italic-PSN4QKYX.woff +0 -0
  55. package/dist/KaTeX_SansSerif-Italic-WTBAZBGY.ttf +0 -0
  56. package/dist/KaTeX_SansSerif-Regular-2TL3USAE.ttf +0 -0
  57. package/dist/KaTeX_SansSerif-Regular-OQCII6EP.woff +0 -0
  58. package/dist/KaTeX_SansSerif-Regular-XIQ62X4E.woff2 +0 -0
  59. package/dist/KaTeX_Script-Regular-72OLXYNA.ttf +0 -0
  60. package/dist/KaTeX_Script-Regular-A5IFOEBS.woff +0 -0
  61. package/dist/KaTeX_Script-Regular-APUWIHLP.woff2 +0 -0
  62. package/dist/KaTeX_Size1-Regular-4HRHTS65.woff +0 -0
  63. package/dist/KaTeX_Size1-Regular-5LRUTBFT.woff2 +0 -0
  64. package/dist/KaTeX_Size1-Regular-7K6AASVL.ttf +0 -0
  65. package/dist/KaTeX_Size2-Regular-222HN3GT.ttf +0 -0
  66. package/dist/KaTeX_Size2-Regular-K5ZHAIS6.woff +0 -0
  67. package/dist/KaTeX_Size2-Regular-LELKET5D.woff2 +0 -0
  68. package/dist/KaTeX_Size3-Regular-TLFPAHDE.woff +0 -0
  69. package/dist/KaTeX_Size3-Regular-UFCO6WCA.ttf +0 -0
  70. package/dist/KaTeX_Size3-Regular-WQRQ47UD.woff2 +0 -0
  71. package/dist/KaTeX_Size4-Regular-7PGNVPQK.ttf +0 -0
  72. package/dist/KaTeX_Size4-Regular-CDMV7U5C.woff2 +0 -0
  73. package/dist/KaTeX_Size4-Regular-PKMWZHNC.woff +0 -0
  74. package/dist/KaTeX_Typewriter-Regular-3F5K6SQ6.ttf +0 -0
  75. package/dist/KaTeX_Typewriter-Regular-MJMFSK64.woff +0 -0
  76. package/dist/KaTeX_Typewriter-Regular-VBYJ4NRC.woff2 +0 -0
  77. package/dist/KernelEngineContext-BOCQoFwk.d.ts +43 -0
  78. package/dist/LayersPanel-BBQ54IVG.js +7 -0
  79. package/dist/ModuleCard-3TT2X7IW.js +7 -0
  80. package/dist/OrbInspector-K6T6O7GI.js +27 -0
  81. package/dist/OrbInspector-MHLJ6OEE.css +1756 -0
  82. package/dist/Select-mDZIwNqN.d.ts +199 -0
  83. package/dist/ServerBridge-Cm1On51b.d.ts +233 -0
  84. package/dist/ThemeContext-DJmO59xd.d.ts +147 -0
  85. package/dist/TraitValueFrame-2PJGLLVI.js +28 -0
  86. package/dist/TraitValueFrame-4G3KOUBR.css +1756 -0
  87. package/dist/UISlotContext-Dl_ewwCI.d.ts +79 -0
  88. package/dist/UISlotRenderer-JKFSX24W.js +27 -0
  89. package/dist/UISlotRenderer-KVFO6J7R.css +1756 -0
  90. package/dist/UserContext-DqWeZkUZ.d.ts +100 -0
  91. package/dist/auth/browser/index.d.ts +2 -0
  92. package/dist/auth/browser/index.js +1 -0
  93. package/dist/auth/react/index.d.ts +49 -0
  94. package/dist/auth/react/index.js +119 -0
  95. package/dist/avl/index.css +1756 -0
  96. package/dist/avl/index.d.ts +2238 -0
  97. package/dist/avl/index.js +2693 -0
  98. package/dist/avl-3d-context-BIRKWpaL.d.ts +204 -0
  99. package/dist/avl-schema-parser-CtJxJ9KU.d.ts +132 -0
  100. package/dist/avl-zoom-state-CKMVuBFg.d.ts +17 -0
  101. package/dist/chunk-2PY54Z44.js +227 -0
  102. package/dist/chunk-2QOH2HWM.js +95 -0
  103. package/dist/chunk-3BBUBJFF.js +339 -0
  104. package/dist/chunk-42FY4RYA.js +191 -0
  105. package/dist/chunk-5QTYQTPS.js +15 -0
  106. package/dist/chunk-6P3MWXYE.js +440 -0
  107. package/dist/chunk-73SRAB4P.js +1053 -0
  108. package/dist/chunk-A2LR6VQQ.js +349 -0
  109. package/dist/chunk-AILY3XPS.js +562 -0
  110. package/dist/chunk-B4BU77LT.js +432 -0
  111. package/dist/chunk-DFNZUYX4.js +378 -0
  112. package/dist/chunk-DJ433ET5.js +1327 -0
  113. package/dist/chunk-DLZF4PVE.js +24 -0
  114. package/dist/chunk-DYEKAA4L.js +787 -0
  115. package/dist/chunk-DZ42OJQC.js +176 -0
  116. package/dist/chunk-EOWMARUB.js +16 -0
  117. package/dist/chunk-EQAMU2ZC.js +14 -0
  118. package/dist/chunk-FAJDTHWC.js +98 -0
  119. package/dist/chunk-FIW6WN23.js +508 -0
  120. package/dist/chunk-FP3WIKTC.js +303 -0
  121. package/dist/chunk-G7DCAZ22.js +19 -0
  122. package/dist/chunk-GAR5TQ5B.js +199 -0
  123. package/dist/chunk-GKIFONTE.js +131 -0
  124. package/dist/chunk-GYTPOFVC.js +47155 -0
  125. package/dist/chunk-KVQS4GXU.js +328 -0
  126. package/dist/chunk-L2DEKY4J.js +97 -0
  127. package/dist/chunk-L677XGY3.js +701 -0
  128. package/dist/chunk-MBQAMMSE.js +11877 -0
  129. package/dist/chunk-P4LNHAFI.js +1051 -0
  130. package/dist/chunk-P4ZFUQFF.js +93 -0
  131. package/dist/chunk-PC7K4SK7.js +1384 -0
  132. package/dist/chunk-R5O5AUPI.js +573 -0
  133. package/dist/chunk-SGM3FASH.js +672 -0
  134. package/dist/chunk-SJGJJKBY.js +502 -0
  135. package/dist/chunk-TESBIVUA.js +11 -0
  136. package/dist/chunk-TZZBINQY.js +82 -0
  137. package/dist/chunk-U6QRZASX.js +280 -0
  138. package/dist/chunk-VFF5OO47.js +319 -0
  139. package/dist/chunk-YDNJLLG6.js +516 -0
  140. package/dist/chunk-YHMRX6YA.js +455 -0
  141. package/dist/chunk-ZO6MXAS3.js +69 -0
  142. package/dist/components/index.css +1756 -0
  143. package/dist/components/index.d.ts +11093 -0
  144. package/dist/components/index.js +1110 -0
  145. package/dist/context/index.d.ts +9 -0
  146. package/dist/context/index.js +7 -0
  147. package/dist/core.d.ts +2523 -0
  148. package/dist/core.js +2 -0
  149. package/dist/design-classes/index.cjs +429 -0
  150. package/dist/design-classes/index.d.cts +165 -0
  151. package/dist/design-classes/index.d.ts +165 -0
  152. package/dist/design-classes/index.js +397 -0
  153. package/dist/emojiItems-QGSNAABW.js +20 -0
  154. package/dist/fx-CmQjnHmT.d.ts +371 -0
  155. package/dist/hooks/index.d.ts +936 -0
  156. package/dist/hooks/index.js +7 -0
  157. package/dist/index.d.ts +486 -0
  158. package/dist/index.js +38 -0
  159. package/dist/katexPlugin-FA7NX4PE.css +1161 -0
  160. package/dist/katexPlugin-NCDKOOQY.js +2 -0
  161. package/dist/kernel-client-ZH4PSMCN.js +367 -0
  162. package/dist/kernel-wire-B4S8pnP3.d.ts +65 -0
  163. package/dist/lib/index.d.ts +602 -0
  164. package/dist/lib/index.js +1288 -0
  165. package/dist/paintDispatch-ChW5mVuK.d.ts +698 -0
  166. package/dist/parseLessonSegments-GpCeMrb2.d.ts +334 -0
  167. package/dist/perf-CKiBKbkw.d.ts +22 -0
  168. package/dist/perf-Dr28-AgT.d.ts +57 -0
  169. package/dist/prism-AIWGN2X5.js +134 -0
  170. package/dist/providers/index.css +1756 -0
  171. package/dist/providers/index.d.ts +340 -0
  172. package/dist/providers/index.js +30 -0
  173. package/dist/renderer/index.d.ts +467 -0
  174. package/dist/renderer/index.js +3 -0
  175. package/dist/runtime/index.css +1756 -0
  176. package/dist/runtime/index.d.ts +440 -0
  177. package/dist/runtime/index.js +31 -0
  178. package/dist/slot-host-CPzrxLo9.d.ts +48 -0
  179. package/dist/ssr/index.cjs +7631 -0
  180. package/dist/ssr/index.d.cts +487 -0
  181. package/dist/ssr/index.d.ts +487 -0
  182. package/dist/ssr/index.js +7599 -0
  183. package/dist/storage/browser/index.d.ts +1 -0
  184. package/dist/storage/browser/index.js +1 -0
  185. package/dist/test-support.d.ts +35 -0
  186. package/dist/test-support.js +114 -0
  187. package/dist/themeTokens-CRd8AEDF.d.ts +125 -0
  188. package/dist/three/index.css +503 -0
  189. package/dist/three/index.d.ts +1185 -0
  190. package/dist/three/index.js +3896 -0
  191. package/dist/useKeyboardRouter-Dsq553Ur.d.ts +42 -0
  192. package/dist/useUISlots-CiobNFGb.d.ts +211 -0
  193. package/dist/verification-C5pTeMJv.d.ts +66 -0
  194. package/dist/verificationRegistry-CabxhfTv.d.ts +122 -0
  195. package/dist/wrapCallbackForEvent-B9QLbhxX.d.ts +19 -0
  196. package/index.css +199 -0
  197. package/package.json +269 -3
  198. package/src/core/locales/ar.json +1263 -0
  199. package/src/core/locales/en.json +1263 -0
  200. package/src/core/locales/index.ts +54 -0
  201. package/src/core/locales/sl.json +1263 -0
  202. package/src/core/tokens/native-tokens.json +369 -0
  203. package/tailwind-compile.cjs +29 -0
  204. package/tailwind-preset.cjs +991 -0
  205. package/themes/_base.css +451 -0
  206. package/themes/_contract.md +307 -0
  207. package/themes/_fonts-kenney.css +11 -0
  208. package/themes/_fonts.css +12 -0
  209. package/themes/_foundation.css +105 -0
  210. package/themes/_head.css +22 -0
  211. package/themes/_presets.css +67 -0
  212. package/themes/almadar-heritage.css +455 -0
  213. package/themes/almadar-website.css +269 -0
  214. package/themes/almadar.css +269 -0
  215. package/themes/aqua.css +455 -0
  216. package/themes/arabesque.css +459 -0
  217. package/themes/art-deco.css +457 -0
  218. package/themes/art-nouveau.css +459 -0
  219. package/themes/atelier.css +463 -0
  220. package/themes/bauhaus.css +461 -0
  221. package/themes/bloomberg-dense.css +463 -0
  222. package/themes/blueprint.css +457 -0
  223. package/themes/clay.css +449 -0
  224. package/themes/comic.css +453 -0
  225. package/themes/constructivist.css +457 -0
  226. package/themes/corporate.css +449 -0
  227. package/themes/cyberpunk.css +453 -0
  228. package/themes/frutiger-aero.css +458 -0
  229. package/themes/game-adventure.css +201 -0
  230. package/themes/game-rpg.css +203 -0
  231. package/themes/game-sci-fi.css +201 -0
  232. package/themes/game-ui-pack.css +200 -0
  233. package/themes/gazette.css +449 -0
  234. package/themes/glass.css +457 -0
  235. package/themes/gothic.css +453 -0
  236. package/themes/index.css +21 -0
  237. package/themes/ink-wash.css +459 -0
  238. package/themes/kawaii.css +459 -0
  239. package/themes/kflow.css +310 -0
  240. package/themes/kiosk.css +449 -0
  241. package/themes/linear-clean.css +463 -0
  242. package/themes/luxury.css +451 -0
  243. package/themes/mac-classic.css +455 -0
  244. package/themes/material.css +463 -0
  245. package/themes/memphis.css +453 -0
  246. package/themes/mid-century.css +455 -0
  247. package/themes/minimalist.css +449 -0
  248. package/themes/mudcloth.css +459 -0
  249. package/themes/nata.css +310 -0
  250. package/themes/neon.css +453 -0
  251. package/themes/neumorphic.css +451 -0
  252. package/themes/newsprint.css +455 -0
  253. package/themes/notion-editorial.css +463 -0
  254. package/themes/orb.css +465 -0
  255. package/themes/pixel.css +449 -0
  256. package/themes/prism.css +309 -0
  257. package/themes/rawi.css +310 -0
  258. package/themes/retro.css +452 -0
  259. package/themes/risograph.css +463 -0
  260. package/themes/scandi.css +469 -0
  261. package/themes/sketch.css +455 -0
  262. package/themes/solarpunk.css +469 -0
  263. package/themes/steampunk.css +451 -0
  264. package/themes/swiss.css +455 -0
  265. package/themes/terminal.css +466 -0
  266. package/themes/trait-wars.css +487 -0
  267. package/themes/ukiyo-e.css +459 -0
  268. package/themes/vaporwave.css +455 -0
  269. package/themes/victorian.css +453 -0
  270. package/themes/wabi-sabi.css +459 -0
  271. package/themes/win95.css +455 -0
  272. package/themes/wireframe.css +439 -0
  273. package/themes/zine.css +455 -0
  274. package/README.md +0 -3
@@ -0,0 +1,199 @@
1
+ import React__default from 'react';
2
+ import { A11yProps, Asset, EventKey, EventPayload, EventEmit } from '@almadar/core';
3
+ import { I as IconInput } from './fx-CmQjnHmT.js';
4
+
5
+ type ButtonVariant = "primary" | "secondary" | "ghost" | "danger" | "success" | "warning" | "default" | "link";
6
+ type ButtonSize = "sm" | "md" | "lg";
7
+ /** @accessibleName label */
8
+ interface ButtonProps extends Omit<React__default.ButtonHTMLAttributes<HTMLButtonElement>, keyof A11yProps | 'onClick'>, A11yProps {
9
+ /** Additional CSS classes applied to the root element. */
10
+ className?: string;
11
+ variant?: ButtonVariant;
12
+ size?: ButtonSize;
13
+ isLoading?: boolean;
14
+ /** Left icon: a Lucide component or a canonical icon name string (e.g. "plus", "trash"). */
15
+ leftIcon?: IconInput;
16
+ /** Right icon: a Lucide component or a canonical icon name string. */
17
+ rightIcon?: IconInput;
18
+ /** Alias for leftIcon */
19
+ icon?: IconInput;
20
+ /** Alias for rightIcon */
21
+ iconRight?: IconInput;
22
+ /** Asset image rendered as the leading icon; takes precedence over icon/leftIcon when provided. */
23
+ iconAsset?: Asset;
24
+ /** Declarative event name — emits UI:{action} via eventBus on click */
25
+ action?: EventKey;
26
+ /** Payload to include with the action event
27
+ * @payloadFor action
28
+ */
29
+ actionPayload?: EventPayload;
30
+ /**
31
+ * Button label text (alternative to children for schema-driven rendering)
32
+ * @example Button
33
+ */
34
+ label?: string;
35
+ /** Disable the button (greys out, blocks click events) */
36
+ disabled?: boolean;
37
+ /** Makes the button a link: `#anchor` scrolls, an absolute URL loads, a path navigates in-app */
38
+ href?: string;
39
+ /**
40
+ * Runs on activation, on the button or, with `href`, on the link; calling
41
+ * `preventDefault()` there keeps a link from following its `href`.
42
+ */
43
+ onClick?: (event: React__default.MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => void;
44
+ /** Test identifier for automated tests */
45
+ 'data-testid'?: string;
46
+ }
47
+ declare const Button: React__default.ForwardRefExoticComponent<ButtonProps & React__default.RefAttributes<HTMLButtonElement>>;
48
+
49
+ interface SelectOption$1 {
50
+ value: string;
51
+ label: string;
52
+ }
53
+ /** @accessibleName label */
54
+ interface InputProps extends Omit<React__default.InputHTMLAttributes<HTMLInputElement>, "onChange" | Exclude<keyof A11yProps, "role" | "dir">>, Omit<A11yProps, "role" | "dir"> {
55
+ /** Additional CSS classes applied to the root element. */
56
+ className?: string;
57
+ /** Placeholder text */
58
+ placeholder?: string;
59
+ /** Current value */
60
+ value?: string | number;
61
+ /** Whether input is disabled */
62
+ disabled?: boolean;
63
+ /** Declarative event name for trait dispatch.
64
+ * @payloadTypeWhen value inputType=number->number
65
+ */
66
+ action?: EventEmit<{
67
+ value: string | number;
68
+ }>;
69
+ /**
70
+ * Input type — selects the field's data mode. Use 'password' for masked
71
+ * credentials / secret / passphrase entry (there is no separate password
72
+ * pattern); 'email', 'tel', 'url', 'number', 'search', 'date', and 'time'
73
+ * for their respective values; and 'select' / 'textarea' for choice and
74
+ * multi-line entry in addition to the standard single-line types.
75
+ */
76
+ inputType?: "text" | "email" | "password" | "number" | "tel" | "url" | "search" | "date" | "datetime-local" | "time" | "checkbox" | "select" | "textarea";
77
+ label?: string;
78
+ helperText?: string;
79
+ error?: string;
80
+ leftIcon?: IconInput;
81
+ rightIcon?: IconInput;
82
+ /** Lucide icon component or canonical kebab-case icon name string for left side */
83
+ icon?: IconInput;
84
+ /** Show clear button when input has value */
85
+ clearable?: boolean;
86
+ /** Callback or declarative event key when clear button is clicked */
87
+ onClear?: (() => void) | EventKey;
88
+ /** Options for select type */
89
+ options?: SelectOption$1[];
90
+ /** Rows for textarea type */
91
+ rows?: number;
92
+ /** onChange handler or declarative event key for trait dispatch */
93
+ onChange?: React__default.ChangeEventHandler<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement> | EventEmit<{
94
+ value: string;
95
+ } | {
96
+ checked: boolean;
97
+ }>;
98
+ }
99
+ declare const Input: React__default.ForwardRefExoticComponent<InputProps & React__default.RefAttributes<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>>;
100
+
101
+ /**
102
+ * PatternTile Atom
103
+ *
104
+ * Mathematically correct Islamic geometric pattern tiles using the
105
+ * Polygons-in-Contact (PIC) method (Hankin 1925, formalized by Kaplan 2005).
106
+ *
107
+ * Construction: A regular polygon tiling is overlaid with star motifs.
108
+ * Each motif touches the enclosing polygon at EDGE MIDPOINTS only.
109
+ * Two rays emanate from each midpoint into the polygon at a specific
110
+ * CONTACT ANGLE (theta). Where rays from adjacent midpoints intersect,
111
+ * they form the star points. Gap tiles (squares, triangles) between
112
+ * polygons receive inferred geometry by extending boundary rays inward.
113
+ *
114
+ * Variants:
115
+ * star8 — 8-fold star-and-cross on 4.8.8 tiling (theta = 67.5 deg)
116
+ * star6 — 6-fold star on hexagonal tiling (theta = 60 deg)
117
+ * khatam — 8-fold rosette with interlocking kites (theta = 72 deg)
118
+ * star10 — 10-fold girih on decagonal tiling (theta = 72 deg)
119
+ * star12 — 12-fold on dodecagonal tiling (theta = 75 deg)
120
+ *
121
+ * All tiles use stroke only (no fill), rendering as transparent overlays.
122
+ */
123
+
124
+ type PatternVariant = 'star8' | 'star6' | 'khatam' | 'star10' | 'star12' | 'rosette-double' | 'rosette-filled' | 'seigaiha' | 'greek-key' | 'celtic-knot' | 'kolam' | 'arch' | 'arabesque-vine' | 'arabesque-net';
125
+ interface PatternTileProps extends A11yProps {
126
+ /** Which geometric pattern to render */
127
+ variant?: PatternVariant;
128
+ /** Tile unit size in SVG units */
129
+ size?: number;
130
+ /** Stroke color (CSS variable or hex) */
131
+ color?: string;
132
+ /** Line thickness */
133
+ strokeWidth?: number;
134
+ className?: string;
135
+ }
136
+ declare const PatternTile: React__default.FC<PatternTileProps>;
137
+ /** Returns the tile dimensions for a given variant and size */
138
+ declare function getTileDimensions(variant: PatternVariant, size: number): {
139
+ width: number;
140
+ height: number;
141
+ };
142
+
143
+ interface SelectOption {
144
+ value: string;
145
+ label: string;
146
+ disabled?: boolean;
147
+ /** Leading content rendered in rich mode only (native mode ignores this). */
148
+ icon?: React__default.ReactNode;
149
+ /** Secondary line of text rendered below label in rich mode only. */
150
+ secondaryLabel?: string;
151
+ /** dir attribute applied to the option row in rich mode only. */
152
+ dir?: string;
153
+ }
154
+ interface SelectOptionGroup {
155
+ label: string;
156
+ options: SelectOption[];
157
+ }
158
+ /** @accessibleName label */
159
+ interface SelectProps extends Omit<React__default.SelectHTMLAttributes<HTMLSelectElement>, "children" | "onChange" | "multiple" | keyof A11yProps>, A11yProps {
160
+ /** Additional CSS classes applied to the root element. */
161
+ className?: string;
162
+ /** Visible label naming the control. */
163
+ label?: string;
164
+ /** Select options (flat list) */
165
+ options?: SelectOption[];
166
+ /** Grouped options — rendered as <optgroup> in native mode, sections in rich mode. */
167
+ groups?: SelectOptionGroup[];
168
+ /** Placeholder text */
169
+ placeholder?: string;
170
+ /** Current value (string for single, string[] for multiple) */
171
+ value?: string | string[];
172
+ /** Declarative event name for trait dispatch — emits `{ value }` on selection commit (same gestures as `onChange`). */
173
+ action?: EventEmit<{
174
+ value: string | string[];
175
+ }>;
176
+ /** Error message */
177
+ error?: string;
178
+ /** Allow selecting multiple values — activates the rich dropdown. */
179
+ multiple?: boolean;
180
+ /** Show a search input inside the dropdown — activates the rich dropdown. */
181
+ searchable?: boolean;
182
+ /** Show a clear button when a value is selected. */
183
+ clearable?: boolean;
184
+ /** onChange handler (native ChangeEvent) or declarative event key for trait dispatch */
185
+ onChange?: React__default.ChangeEventHandler<HTMLSelectElement> | EventEmit<{
186
+ value: string | string[];
187
+ }>;
188
+ /** Value-based change: a React callback (internal use) OR a declarative event
189
+ * key that emits `{ value }` on the bus (render-ui / lolo authoring). Mirrors
190
+ * the `onChange` handler|event convention so it's an event-emitting prop, not a
191
+ * bare callback. */
192
+ onValueChange?: ((value: string | string[]) => void) | EventEmit<{
193
+ value: string | string[];
194
+ }>;
195
+ }
196
+ declare const Select: React__default.ForwardRefExoticComponent<SelectProps & React__default.RefAttributes<HTMLSelectElement>>;
197
+
198
+ export { Button as B, Input as I, PatternTile as P, Select as S, getTileDimensions as j };
199
+ export type { ButtonProps as a, ButtonSize as b, ButtonVariant as c, InputProps as d, PatternTileProps as e, PatternVariant as f, SelectOption as g, SelectOptionGroup as h, SelectProps as i };
@@ -0,0 +1,233 @@
1
+ import * as React from 'react';
2
+ import React__default, { ReactNode } from 'react';
3
+ import { EntityRow, TraitConfig, SkeletonNode, ResolvedEntity, EventPayload, ResolvedTrait, ResolvedTraitBinding, OrbitalSchema } from '@almadar/core';
4
+ import { EventTransport, AccessTokenProvider } from '@almadar/shell-runtime/client/EventTransport';
5
+ import './verification-C5pTeMJv.js';
6
+
7
+ /**
8
+ * Read + subscribe surface over the live trait binding stores. Snapshots
9
+ * are cached objects — a new reference only when the trait's entity
10
+ * actually changed (the `useSyncExternalStore` contract).
11
+ */
12
+ interface EntityBindingSource {
13
+ /** Current entity snapshot for a trait (shared-entity traits read the shared store). */
14
+ getEntitySnapshot: (traitName: string) => EntityRow;
15
+ /** Merged render-time config (declared defaults < resolved < call-site). */
16
+ getConfig: (traitName: string) => TraitConfig | undefined;
17
+ /** Current state-machine state — evaluation context for `@state` in marked expressions. */
18
+ getState: (traitName: string) => string;
19
+ /** Subscribe to entity commits for a trait. Returns unsubscribe. */
20
+ subscribe: (traitName: string, callback: () => void) => () => void;
21
+ }
22
+ declare const EntityBindingContext: React.Context<EntityBindingSource | null>;
23
+ /**
24
+ * Bridge one trait's live bindings into React. With no provider (compiled
25
+ * shell, static renders) or no owning trait, returns empty bindings and
26
+ * never re-renders — markers resolve to the same `undefined` they would
27
+ * have resolved to at flush time against an empty entity.
28
+ */
29
+ declare function useEntityBindingSnapshot(traitName: string | undefined): {
30
+ entity: EntityRow;
31
+ config: TraitConfig | undefined;
32
+ state: string;
33
+ };
34
+
35
+ interface AwaitingSkeletonSource {
36
+ /** The predicted skeleton for a top-level slot, from a non-embedded awaiting render. */
37
+ forSlot: (slot: string) => SkeletonNode | undefined;
38
+ /** The predicted skeleton for an embedded trait's frame. */
39
+ forTrait: (traitName: string) => SkeletonNode | undefined;
40
+ subscribe: (callback: () => void) => () => void;
41
+ getVersion: () => number;
42
+ }
43
+ declare const AwaitingSkeletonContext: React.Context<AwaitingSkeletonSource | null>;
44
+ declare function useAwaitingSkeleton(target: {
45
+ slot: string;
46
+ } | {
47
+ trait: string;
48
+ }): SkeletonNode | undefined;
49
+
50
+ /**
51
+ * EntitySchemaContext
52
+ *
53
+ * Minimal context providing entity schema definitions (field metadata).
54
+ * This is NOT a data store — actual entity rows flow through the state
55
+ * machine's `@payload.data` binding on the emitting trait's fetch-success
56
+ * transition and land on the rendering component's `entity` prop.
57
+ *
58
+ * Replaces EntityStore's schema functionality without the mock data generation.
59
+ *
60
+ * @packageDocumentation
61
+ */
62
+
63
+ interface EntitySchemaContextValue {
64
+ /** Entity definitions (schema metadata only) */
65
+ entities: Map<string, ResolvedEntity>;
66
+ /**
67
+ * Per-trait linkedEntity name. `ResolvedTrait` itself doesn't carry
68
+ * linkedEntity (it lives on `ResolvedTraitBinding` at the page-binding
69
+ * level), so OrbPreview pre-projects every page's trait bindings into
70
+ * a flat `traitName → entityName` map for the slot renderer.
71
+ *
72
+ * Used by SlotContentRenderer to resolve `entityDef` via
73
+ * `traitLinkedEntities.get(sourceTrait) → entities.get(...)` when the
74
+ * rendered pattern's `entity:` prop is a resolved value (V2 path)
75
+ * rather than a string entity-name. Without this lookup, form-section
76
+ * can't enrich its fields with entity field metadata (values enum,
77
+ * etc.) and an enum field renders as a plain text input. Closes VR3.
78
+ */
79
+ traitLinkedEntities: ReadonlyMap<string, string>;
80
+ /**
81
+ * Per-trait owning-orbital name. Same shape as `traitLinkedEntities`,
82
+ * built from `schema.orbitals[].traits[]`. UISlotRenderer uses this
83
+ * to wrap each slot's rendered subtree in `TraitScopeProvider` so
84
+ * descendant pure components (Button, etc.) emit qualified
85
+ * `UI:Orbital.Trait.EVENT` keys via the scoped useEventBus.
86
+ */
87
+ orbitalsByTrait: ReadonlyMap<string, string>;
88
+ }
89
+ interface EntitySchemaProviderProps {
90
+ /** Entity definitions from resolved schema */
91
+ entities: ResolvedEntity[];
92
+ /**
93
+ * Per-trait linkedEntity name, projected from every page's
94
+ * ResolvedTraitBinding. Optional for back-compat; when omitted,
95
+ * SlotContentRenderer's enrichment path can only follow the
96
+ * legacy V1 string-entity-name lookup.
97
+ */
98
+ traitLinkedEntities?: ReadonlyMap<string, string>;
99
+ /**
100
+ * Per-trait owning-orbital name. Required for the runtime path's
101
+ * trait-scoped event qualification (Button etc. emit qualified keys
102
+ * via TraitScopeProvider). Optional for back-compat with consumers
103
+ * that don't yet thread the orbital map through.
104
+ */
105
+ orbitalsByTrait?: ReadonlyMap<string, string>;
106
+ /** Children */
107
+ children: React__default.ReactNode;
108
+ }
109
+ /**
110
+ * Provides entity schema definitions to the component tree.
111
+ *
112
+ * This is a lightweight provider that only holds schema metadata (field definitions).
113
+ * Actual entity rows arrive via `@payload.data` on the rendering trait's
114
+ * success transition — they do NOT live in this context.
115
+ */
116
+ declare function EntitySchemaProvider({ entities, traitLinkedEntities, orbitalsByTrait, children, }: EntitySchemaProviderProps): React__default.ReactElement;
117
+ /**
118
+ * Access entity schema definitions.
119
+ * Use this for field metadata (form building, filter enrichment).
120
+ * Actual entity rows flow via `@payload.data` on the state machine's
121
+ * success transition — never read them from a context.
122
+ */
123
+ declare function useEntitySchema(): EntitySchemaContextValue;
124
+ /**
125
+ * Safe version of useEntitySchema that returns null when no provider is present.
126
+ * Used by UISlotRenderer which may render outside an EntitySchemaProvider (compiled mode).
127
+ */
128
+ declare function useEntitySchemaOptional(): EntitySchemaContextValue | null;
129
+
130
+ /**
131
+ * TraitProvider Component
132
+ *
133
+ * Provides trait state machines to child components via React context.
134
+ *
135
+ * @packageDocumentation
136
+ */
137
+
138
+ interface TraitInstance {
139
+ /** Trait name */
140
+ name: string;
141
+ /** Current state */
142
+ currentState: string;
143
+ /** Available events (can be triggered) */
144
+ availableEvents: string[];
145
+ /** Dispatch an event to the state machine */
146
+ dispatch: (eventKey: string, payload?: EventPayload) => void;
147
+ /** Check if an event can be dispatched */
148
+ canDispatch: (eventKey: string) => boolean;
149
+ /** Get the full trait definition */
150
+ trait: ResolvedTrait;
151
+ }
152
+ interface TraitContextValue {
153
+ /** All trait instances on this page */
154
+ traits: Map<string, TraitInstance>;
155
+ /** Get a trait instance by name */
156
+ getTrait: (name: string) => TraitInstance | undefined;
157
+ /** Dispatch an event to a specific trait */
158
+ dispatchToTrait: (traitName: string, eventKey: string, payload?: EventPayload) => void;
159
+ /** Check if an event can be dispatched to a trait */
160
+ canDispatch: (traitName: string, eventKey: string) => boolean;
161
+ }
162
+ declare const TraitContext: React__default.Context<TraitContextValue | null>;
163
+ interface TraitProviderProps {
164
+ /** Trait bindings for this page */
165
+ traits: ResolvedTraitBinding[];
166
+ /** Entity map for context */
167
+ entities: Map<string, ResolvedEntity>;
168
+ /** Children to render */
169
+ children: React__default.ReactNode;
170
+ }
171
+ declare function TraitProvider({ traits: traitBindings, children, }: TraitProviderProps): React__default.ReactElement;
172
+ /**
173
+ * Access the trait context from within the TraitProvider.
174
+ */
175
+ declare function useTraitContext(): TraitContextValue;
176
+ /**
177
+ * Access a specific trait instance.
178
+ */
179
+ declare function useTrait(traitName: string): TraitInstance | undefined;
180
+
181
+ interface ServerBridgeContextValue {
182
+ connected: boolean;
183
+ /**
184
+ * From the transport's `register()` result
185
+ * (`EventTransportRegisterResult.carriesCircuitState`, `@almadar/runtime`):
186
+ * `true` = the stateless topology (a posted leg must carry
187
+ * `traits`/`entityByTrait`), `false` = the server (or an in-process
188
+ * evaluator) holds circuit state itself.
189
+ */
190
+ carriesCircuitState: boolean;
191
+ /** `register()` has resolved, so `carriesCircuitState` is the transport's
192
+ * real topology rather than the pre-register guess. */
193
+ topologyKnown: boolean;
194
+ /** The ONE transport this bridge manages the register/unregister
195
+ * lifecycle for — `useCircuitKernel` dispatches through it directly. */
196
+ transport: EventTransport;
197
+ }
198
+ /**
199
+ * @deprecated Alias for `@almadar/runtime`'s `EventTransport` (plan P5) —
200
+ * kept only because in-package consumers (`OrbPreview.tsx`,
201
+ * `OrbitalPluginHost.tsx`) still import the name.
202
+ * Import `EventTransport` directly in new code.
203
+ */
204
+ type ServerBridgeTransport = EventTransport;
205
+
206
+ /**
207
+ * Access the server bridge. Returns a no-op stub when outside the provider —
208
+ * `useCircuitKernel` treats an absent/no-op transport as offline (plan G7).
209
+ */
210
+ declare function useServerBridge(): ServerBridgeContextValue;
211
+ interface ServerBridgeProviderProps {
212
+ schema: OrbitalSchema;
213
+ /** HTTP server URL (canonical playground-runtime / apps/builder-server). */
214
+ serverUrl?: string;
215
+ /**
216
+ * Custom `EventTransport` (plan P5, `@almadar/runtime`). Use this for
217
+ * in-process execution (e.g. an in-process test harness invokes
218
+ * `OrbitalServerRuntime.processOrbitalEvent` directly via
219
+ * `createInProcessTransport`). Mutually exclusive with `serverUrl`.
220
+ */
221
+ transport?: EventTransport;
222
+ /**
223
+ * Bearer token for the HTTP transport (`Authorization` on every fetch, and on the
224
+ * request that mints the SSE stream's single-use ticket, since EventSource cannot set headers).
225
+ * Ignored with a custom `transport`.
226
+ */
227
+ getAccessToken?: AccessTokenProvider;
228
+ children: ReactNode;
229
+ }
230
+ declare function ServerBridgeProvider({ schema, serverUrl, transport: customTransport, getAccessToken, children, }: ServerBridgeProviderProps): React.JSX.Element;
231
+
232
+ export { TraitContext as T, EntitySchemaProvider as b, ServerBridgeProvider as e, TraitProvider as h, useEntitySchemaOptional as j, useServerBridge as k, useTrait as l, useTraitContext as m, AwaitingSkeletonContext as n, EntityBindingContext as o, useAwaitingSkeleton as q, useEntityBindingSnapshot as r, useEntitySchema as u };
233
+ export type { AwaitingSkeletonSource as A, EntityBindingSource as E, ServerBridgeTransport as S, EntitySchemaContextValue as a, EntitySchemaProviderProps as c, ServerBridgeContextValue as d, TraitContextValue as f, TraitInstance as g, TraitProviderProps as i, ServerBridgeProviderProps as p };
@@ -0,0 +1,147 @@
1
+ import React__default from 'react';
2
+
3
+ /**
4
+ * Unified ThemeContext - Single provider for theme and color mode
5
+ *
6
+ * Combines design theme selection (glass, wireframe, etc.) with
7
+ * color mode (light/dark) into a single, simple system.
8
+ *
9
+ * Uses a single data attribute: data-theme="glass-light" or data-theme="glass-dark"
10
+ *
11
+ * @packageDocumentation
12
+ */
13
+
14
+ /** Color mode preference */
15
+ type ColorMode = "light" | "dark" | "system";
16
+ /** Resolved color mode (what's actually applied) */
17
+ type ResolvedMode = "light" | "dark";
18
+ /** Theme definition */
19
+ interface UIThemeDefinition {
20
+ /** Theme identifier (e.g., "glass", "wireframe") */
21
+ name: string;
22
+ /** Display name for UI (e.g., "Ocean Blue") */
23
+ displayName?: string;
24
+ /** Whether this theme has light mode styles */
25
+ hasLightMode?: boolean;
26
+ /** Whether this theme has dark mode styles */
27
+ hasDarkMode?: boolean;
28
+ }
29
+
30
+ /** Theme context value */
31
+ interface ThemeContextValue {
32
+ /** Current theme name */
33
+ theme: string;
34
+ /** Current color mode setting (may be 'system') */
35
+ mode: ColorMode;
36
+ /** Resolved color mode (always 'light' or 'dark') */
37
+ resolvedMode: ResolvedMode;
38
+ /** Set the theme */
39
+ setTheme: (theme: string) => void;
40
+ /** Set the color mode */
41
+ setMode: (mode: ColorMode) => void;
42
+ /** Toggle between light and dark modes */
43
+ toggleMode: () => void;
44
+ /** Available themes */
45
+ availableThemes: UIThemeDefinition[];
46
+ /** The full theme string applied to data-theme (e.g., "glass-light") */
47
+ appliedTheme: string;
48
+ }
49
+ /**
50
+ * The theme in effect at a point of the React tree: what `data-theme`, mode
51
+ * class and inline token variables a subtree renders under. Portaled UI reads
52
+ * it so a modal takes the theme of the place it opened from.
53
+ */
54
+ interface ThemeScope {
55
+ theme?: string;
56
+ mode?: ResolvedMode;
57
+ vars?: Readonly<Record<string, string>>;
58
+ /**
59
+ * A host's explicit theme pick (e.g. the playground picker): every
60
+ * `data-theme` a component declares inside this scope renders this key
61
+ * instead. Set only by `OrbitalThemeProvider`'s `override`.
62
+ */
63
+ override?: string;
64
+ }
65
+ declare const ThemeScopeContext: React__default.Context<ThemeScope>;
66
+ declare function useThemeScope(): ThemeScope;
67
+ /**
68
+ * The mode a registry `data-theme` key was built with: `<name>-light` /
69
+ * `<name>-dark` of a declared theme that has that mode (the same construction
70
+ * as `appliedTheme`). Undefined for any key no declared theme builds.
71
+ */
72
+ declare function registryKeyMode(key: string, themes: readonly UIThemeDefinition[]): ResolvedMode | undefined;
73
+ /** The declared theme and mode a registry key was built from, or undefined. */
74
+ declare function registryKeyTheme(key: string, themes: readonly UIThemeDefinition[]): {
75
+ theme: UIThemeDefinition;
76
+ mode: ResolvedMode;
77
+ } | undefined;
78
+ /**
79
+ * A declared registry key as it renders: the key names a theme and its starting
80
+ * mode, and the viewer's mode wins when the theme has it. A key no declared
81
+ * theme builds passes through with no mode.
82
+ */
83
+ declare function keyInViewerMode(key: string, themes: readonly UIThemeDefinition[], viewerMode: ResolvedMode): {
84
+ key: string;
85
+ mode?: ResolvedMode;
86
+ };
87
+ declare function themeHasMode(theme: UIThemeDefinition, mode: ResolvedMode): boolean;
88
+ /** The color mode in effect at this point of the tree: a pinned orbital theme's, else the document's. */
89
+ declare function useScopedMode(): ResolvedMode;
90
+ interface ThemeProviderProps {
91
+ children: React__default.ReactNode;
92
+ /** Available themes (will be merged with built-in themes) */
93
+ themes?: readonly UIThemeDefinition[] | UIThemeDefinition[];
94
+ /** Default theme name */
95
+ defaultTheme?: string;
96
+ /** Default color mode */
97
+ defaultMode?: ColorMode;
98
+ /** Optional target element ref — when provided, theme attributes are applied to this element instead of document.documentElement */
99
+ targetRef?: React__default.RefObject<HTMLElement>;
100
+ }
101
+ /**
102
+ * Unified ThemeProvider component
103
+ *
104
+ * @example
105
+ * ```tsx
106
+ * // Basic usage with built-in themes
107
+ * <ThemeProvider defaultTheme="wireframe" defaultMode="light">
108
+ * <App />
109
+ * </ThemeProvider>
110
+ *
111
+ * // With custom themes from orbital schema
112
+ * import { THEMES } from './generated/theme-manifest';
113
+ * <ThemeProvider themes={THEMES} defaultTheme="glass" defaultMode="system">
114
+ * <App />
115
+ * </ThemeProvider>
116
+ * ```
117
+ */
118
+ declare const ThemeProvider: React__default.FC<ThemeProviderProps>;
119
+ /**
120
+ * Hook for accessing theme context
121
+ *
122
+ * @returns Theme context value
123
+ *
124
+ * @example
125
+ * ```tsx
126
+ * const { theme, resolvedMode, toggleMode, setTheme } = useTheme();
127
+ *
128
+ * // Toggle dark mode
129
+ * <button onClick={toggleMode}>
130
+ * {resolvedMode === 'dark' ? 'Light' : 'Dark'}
131
+ * </button>
132
+ *
133
+ * // Change theme
134
+ * <select value={theme} onChange={(e) => setTheme(e.target.value)}>
135
+ * {availableThemes.map(t => (
136
+ * <option key={t.name} value={t.name}>{t.displayName || t.name}</option>
137
+ * ))}
138
+ * </select>
139
+ * ```
140
+ */
141
+ declare function useTheme(): ThemeContextValue;
142
+ type Theme = ColorMode;
143
+ type ResolvedTheme = ResolvedMode;
144
+ type DesignTheme = UIThemeDefinition;
145
+
146
+ export { ThemeProvider as c, ThemeScopeContext as e, registryKeyTheme as f, useTheme as g, useThemeScope as h, keyInViewerMode as k, registryKeyMode as r, themeHasMode as t, useScopedMode as u };
147
+ export type { ColorMode as C, DesignTheme as D, ResolvedMode as R, ThemeProviderProps as T, UIThemeDefinition as U, ResolvedTheme as a, Theme as b, ThemeScope as d };
@@ -0,0 +1,28 @@
1
+ export { MountedInit, TraitValueFrame, TraitValueMountContext, TraitValueMountProvider, TraitValueFrame_default as default } from './chunk-FIW6WN23.js';
2
+ import './chunk-GYTPOFVC.js';
3
+ import './chunk-YDNJLLG6.js';
4
+ import './chunk-KVQS4GXU.js';
5
+ import './chunk-L677XGY3.js';
6
+ import './chunk-FP3WIKTC.js';
7
+ import './chunk-42FY4RYA.js';
8
+ import './chunk-FAJDTHWC.js';
9
+ import './chunk-GAR5TQ5B.js';
10
+ import './chunk-SJGJJKBY.js';
11
+ import './chunk-DZ42OJQC.js';
12
+ import './chunk-P4LNHAFI.js';
13
+ import './chunk-TZZBINQY.js';
14
+ import './chunk-PC7K4SK7.js';
15
+ import './chunk-VFF5OO47.js';
16
+ import './chunk-DFNZUYX4.js';
17
+ import './chunk-B4BU77LT.js';
18
+ import './chunk-6P3MWXYE.js';
19
+ import './chunk-DYEKAA4L.js';
20
+ import './chunk-R5O5AUPI.js';
21
+ import './chunk-L2DEKY4J.js';
22
+ import './chunk-AILY3XPS.js';
23
+ import './chunk-3BBUBJFF.js';
24
+ import './chunk-YHMRX6YA.js';
25
+ import './chunk-MBQAMMSE.js';
26
+ import './chunk-A2LR6VQQ.js';
27
+ import './chunk-P4ZFUQFF.js';
28
+ import './chunk-G7DCAZ22.js';