@almadar/shell-web 0.0.0-stage → 1.0.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 (266) hide show
  1. package/bundling.d.mts +18 -0
  2. package/bundling.mjs +28 -0
  3. package/dist/ArbitraryClassCompiler-CO_iASBn.d.ts +195 -0
  4. package/dist/AvlGlyph-EPJKFEO3.js +6 -0
  5. package/dist/AvlStateMachine-RKZIKNGC.js +9 -0
  6. package/dist/AvlTransitionDetail-63SD6GZF.js +11 -0
  7. package/dist/AvlTransitionExplainer-ZBTLOM3T.js +12 -0
  8. package/dist/BehaviorView-YS5G4GNB.js +11 -0
  9. package/dist/Canvas3DHost-BkZQB5l2.d.ts +552 -0
  10. package/dist/EventBusProvider-BFFHfN4O.d.ts +296 -0
  11. package/dist/FileTree-BCFnBEuQ.d.ts +254 -0
  12. package/dist/FlowCanvas-3JRMNJLV.css +1756 -0
  13. package/dist/FlowCanvas-AUMTWMNG.js +26 -0
  14. package/dist/GameAudioProvider-ceM_n0ey.d.ts +90 -0
  15. package/dist/KaTeX_AMS-Regular-CYEKBG2K.woff +0 -0
  16. package/dist/KaTeX_AMS-Regular-JKX5W2C4.ttf +0 -0
  17. package/dist/KaTeX_AMS-Regular-U6PRYMIZ.woff2 +0 -0
  18. package/dist/KaTeX_Caligraphic-Bold-5QL5CMTE.woff2 +0 -0
  19. package/dist/KaTeX_Caligraphic-Bold-WZ3QSGD3.woff +0 -0
  20. package/dist/KaTeX_Caligraphic-Bold-ZTS3R3HK.ttf +0 -0
  21. package/dist/KaTeX_Caligraphic-Regular-3LKEU76G.woff +0 -0
  22. package/dist/KaTeX_Caligraphic-Regular-A7XRTZ5Q.ttf +0 -0
  23. package/dist/KaTeX_Caligraphic-Regular-KX5MEWCF.woff2 +0 -0
  24. package/dist/KaTeX_Fraktur-Bold-2QVFK6NQ.woff2 +0 -0
  25. package/dist/KaTeX_Fraktur-Bold-T4SWXBMT.woff +0 -0
  26. package/dist/KaTeX_Fraktur-Bold-WGHVTYOR.ttf +0 -0
  27. package/dist/KaTeX_Fraktur-Regular-2PEIFJSJ.woff2 +0 -0
  28. package/dist/KaTeX_Fraktur-Regular-5U4OPH2X.ttf +0 -0
  29. package/dist/KaTeX_Fraktur-Regular-PQMHCIK6.woff +0 -0
  30. package/dist/KaTeX_Main-Bold-2GA4IZIN.woff +0 -0
  31. package/dist/KaTeX_Main-Bold-W5FBVCZM.ttf +0 -0
  32. package/dist/KaTeX_Main-Bold-YP5VVQRP.woff2 +0 -0
  33. package/dist/KaTeX_Main-BoldItalic-4P4C7HJH.woff +0 -0
  34. package/dist/KaTeX_Main-BoldItalic-N4V3DX7S.woff2 +0 -0
  35. package/dist/KaTeX_Main-BoldItalic-ODMLBJJQ.ttf +0 -0
  36. package/dist/KaTeX_Main-Italic-I43T2HSR.ttf +0 -0
  37. package/dist/KaTeX_Main-Italic-RELBIK7M.woff2 +0 -0
  38. package/dist/KaTeX_Main-Italic-SASNQFN2.woff +0 -0
  39. package/dist/KaTeX_Main-Regular-ARRPAO67.woff2 +0 -0
  40. package/dist/KaTeX_Main-Regular-P5I74A2A.woff +0 -0
  41. package/dist/KaTeX_Main-Regular-W74P5G27.ttf +0 -0
  42. package/dist/KaTeX_Math-BoldItalic-6EBV3DK5.woff +0 -0
  43. package/dist/KaTeX_Math-BoldItalic-K4WTGH3J.woff2 +0 -0
  44. package/dist/KaTeX_Math-BoldItalic-VB447A4D.ttf +0 -0
  45. package/dist/KaTeX_Math-Italic-6KGCHLFN.woff2 +0 -0
  46. package/dist/KaTeX_Math-Italic-KKK3USB2.woff +0 -0
  47. package/dist/KaTeX_Math-Italic-SON4MRCA.ttf +0 -0
  48. package/dist/KaTeX_SansSerif-Bold-RRNVJFFW.woff2 +0 -0
  49. package/dist/KaTeX_SansSerif-Bold-STQ6RXC7.ttf +0 -0
  50. package/dist/KaTeX_SansSerif-Bold-X5M5EMOD.woff +0 -0
  51. package/dist/KaTeX_SansSerif-Italic-HMPFTM52.woff2 +0 -0
  52. package/dist/KaTeX_SansSerif-Italic-PSN4QKYX.woff +0 -0
  53. package/dist/KaTeX_SansSerif-Italic-WTBAZBGY.ttf +0 -0
  54. package/dist/KaTeX_SansSerif-Regular-2TL3USAE.ttf +0 -0
  55. package/dist/KaTeX_SansSerif-Regular-OQCII6EP.woff +0 -0
  56. package/dist/KaTeX_SansSerif-Regular-XIQ62X4E.woff2 +0 -0
  57. package/dist/KaTeX_Script-Regular-72OLXYNA.ttf +0 -0
  58. package/dist/KaTeX_Script-Regular-A5IFOEBS.woff +0 -0
  59. package/dist/KaTeX_Script-Regular-APUWIHLP.woff2 +0 -0
  60. package/dist/KaTeX_Size1-Regular-4HRHTS65.woff +0 -0
  61. package/dist/KaTeX_Size1-Regular-5LRUTBFT.woff2 +0 -0
  62. package/dist/KaTeX_Size1-Regular-7K6AASVL.ttf +0 -0
  63. package/dist/KaTeX_Size2-Regular-222HN3GT.ttf +0 -0
  64. package/dist/KaTeX_Size2-Regular-K5ZHAIS6.woff +0 -0
  65. package/dist/KaTeX_Size2-Regular-LELKET5D.woff2 +0 -0
  66. package/dist/KaTeX_Size3-Regular-TLFPAHDE.woff +0 -0
  67. package/dist/KaTeX_Size3-Regular-UFCO6WCA.ttf +0 -0
  68. package/dist/KaTeX_Size3-Regular-WQRQ47UD.woff2 +0 -0
  69. package/dist/KaTeX_Size4-Regular-7PGNVPQK.ttf +0 -0
  70. package/dist/KaTeX_Size4-Regular-CDMV7U5C.woff2 +0 -0
  71. package/dist/KaTeX_Size4-Regular-PKMWZHNC.woff +0 -0
  72. package/dist/KaTeX_Typewriter-Regular-3F5K6SQ6.ttf +0 -0
  73. package/dist/KaTeX_Typewriter-Regular-MJMFSK64.woff +0 -0
  74. package/dist/KaTeX_Typewriter-Regular-VBYJ4NRC.woff2 +0 -0
  75. package/dist/KernelEngineContext-CcxGYtlr.d.ts +33 -0
  76. package/dist/LayersPanel-M2LHWUFF.js +6 -0
  77. package/dist/ModuleCard-QHDGK5XK.js +7 -0
  78. package/dist/OrbInspector-MHLJ6OEE.css +1756 -0
  79. package/dist/OrbInspector-QCPEPUPH.js +26 -0
  80. package/dist/Select-B-iDdnvE.d.ts +185 -0
  81. package/dist/ServerBridge-Bqsj-lOU.d.ts +124 -0
  82. package/dist/ThemeContext-DJmO59xd.d.ts +147 -0
  83. package/dist/UISlotContext-Dl_ewwCI.d.ts +79 -0
  84. package/dist/UISlotRenderer-C7WWOK43.js +26 -0
  85. package/dist/UISlotRenderer-KVFO6J7R.css +1756 -0
  86. package/dist/auth/browser/index.d.ts +2 -0
  87. package/dist/auth/browser/index.js +2 -0
  88. package/dist/auth/react/index.d.ts +56 -0
  89. package/dist/auth/react/index.js +157 -0
  90. package/dist/avl/index.css +1756 -0
  91. package/dist/avl/index.d.ts +2248 -0
  92. package/dist/avl/index.js +2693 -0
  93. package/dist/avl-3d-context-BycmO6tG.d.ts +201 -0
  94. package/dist/avl-schema-parser-CtJxJ9KU.d.ts +132 -0
  95. package/dist/avl-zoom-state-CKMVuBFg.d.ts +17 -0
  96. package/dist/chunk-3BBUBJFF.js +339 -0
  97. package/dist/chunk-3S54FWRC.js +131 -0
  98. package/dist/chunk-3VZ36ZKO.js +775 -0
  99. package/dist/chunk-4T3P43NS.js +1133 -0
  100. package/dist/chunk-4YXBKHHM.js +11488 -0
  101. package/dist/chunk-57DC34LY.js +525 -0
  102. package/dist/chunk-5QTYQTPS.js +15 -0
  103. package/dist/chunk-A2LR6VQQ.js +349 -0
  104. package/dist/chunk-AB3X7QTE.js +505 -0
  105. package/dist/chunk-AE7VCQB6.js +561 -0
  106. package/dist/chunk-AGXD77SL.js +98 -0
  107. package/dist/chunk-AU7O65OX.js +66 -0
  108. package/dist/chunk-CPLN6NBQ.js +701 -0
  109. package/dist/chunk-DZBQA2OW.js +176 -0
  110. package/dist/chunk-E6KA4J6N.js +227 -0
  111. package/dist/chunk-EOWMARUB.js +16 -0
  112. package/dist/chunk-G7DCAZ22.js +19 -0
  113. package/dist/chunk-GFXCPUMX.js +1334 -0
  114. package/dist/chunk-HH5KSMH5.js +311 -0
  115. package/dist/chunk-ILQXJ2AR.js +280 -0
  116. package/dist/chunk-ILZ7ORX7.js +432 -0
  117. package/dist/chunk-K4MOPSEL.js +674 -0
  118. package/dist/chunk-LHP2TK7O.js +47587 -0
  119. package/dist/chunk-P4ZFUQFF.js +93 -0
  120. package/dist/chunk-PCR37T3U.js +296 -0
  121. package/dist/chunk-PRXQGGCO.js +580 -0
  122. package/dist/chunk-REXYVBUO.js +191 -0
  123. package/dist/chunk-ROICKAU7.js +24 -0
  124. package/dist/chunk-SP5CDJ6K.js +338 -0
  125. package/dist/chunk-TUPZWTRE.js +1051 -0
  126. package/dist/chunk-TXAUOLWZ.js +490 -0
  127. package/dist/chunk-TZZBINQY.js +82 -0
  128. package/dist/chunk-UTDC2NEA.js +14 -0
  129. package/dist/chunk-UU57VNS2.js +1053 -0
  130. package/dist/chunk-UXLE3IPR.js +421 -0
  131. package/dist/chunk-VO2TTLS5.js +94 -0
  132. package/dist/chunk-X3DMMX27.js +11 -0
  133. package/dist/chunk-YHMRX6YA.js +455 -0
  134. package/dist/components/index.css +1756 -0
  135. package/dist/components/index.d.ts +11299 -0
  136. package/dist/components/index.js +1110 -0
  137. package/dist/context/index.d.ts +8 -0
  138. package/dist/context/index.js +8 -0
  139. package/dist/core.d.ts +2599 -0
  140. package/dist/core.js +3 -0
  141. package/dist/design-classes/index.cjs +431 -0
  142. package/dist/design-classes/index.d.cts +165 -0
  143. package/dist/design-classes/index.d.ts +165 -0
  144. package/dist/design-classes/index.js +399 -0
  145. package/dist/emojiItems-QGSNAABW.js +20 -0
  146. package/dist/fx-CmQjnHmT.d.ts +371 -0
  147. package/dist/hooks/index.d.ts +971 -0
  148. package/dist/hooks/index.js +8 -0
  149. package/dist/index.d.ts +408 -0
  150. package/dist/index.js +178 -0
  151. package/dist/katexPlugin-FA7NX4PE.css +1161 -0
  152. package/dist/katexPlugin-NCDKOOQY.js +2 -0
  153. package/dist/kernel-client-TZKGHJRY.js +516 -0
  154. package/dist/kernel-wire-wNdAPfhJ.d.ts +88 -0
  155. package/dist/lib/index.d.ts +602 -0
  156. package/dist/lib/index.js +1289 -0
  157. package/dist/paintDispatch-CuJLsr9Y.d.ts +688 -0
  158. package/dist/parseLessonSegments-GpCeMrb2.d.ts +334 -0
  159. package/dist/perf-CKiBKbkw.d.ts +22 -0
  160. package/dist/perf-Dr28-AgT.d.ts +57 -0
  161. package/dist/prism-X5YWKXO5.js +136 -0
  162. package/dist/providers/index.css +1756 -0
  163. package/dist/providers/index.d.ts +355 -0
  164. package/dist/providers/index.js +29 -0
  165. package/dist/renderer/index.d.ts +465 -0
  166. package/dist/renderer/index.js +4 -0
  167. package/dist/runtime/index.css +1756 -0
  168. package/dist/runtime/index.d.ts +239 -0
  169. package/dist/runtime/index.js +28 -0
  170. package/dist/slot-host-CPzrxLo9.d.ts +48 -0
  171. package/dist/ssr/index.cjs +9739 -0
  172. package/dist/ssr/index.d.cts +464 -0
  173. package/dist/ssr/index.d.ts +464 -0
  174. package/dist/ssr/index.js +9703 -0
  175. package/dist/storage/browser/index.d.ts +1 -0
  176. package/dist/storage/browser/index.js +2 -0
  177. package/dist/test-support.d.ts +42 -0
  178. package/dist/test-support.js +181 -0
  179. package/dist/themeTokens-CRd8AEDF.d.ts +125 -0
  180. package/dist/three/index.css +503 -0
  181. package/dist/three/index.d.ts +1185 -0
  182. package/dist/three/index.js +3908 -0
  183. package/dist/useUISlots-CiobNFGb.d.ts +211 -0
  184. package/dist/verification-C5pTeMJv.d.ts +66 -0
  185. package/dist/verificationRegistry-CVrcxG1s.d.ts +122 -0
  186. package/dist/wrapCallbackForEvent-B9QLbhxX.d.ts +19 -0
  187. package/index.css +199 -0
  188. package/package.json +273 -3
  189. package/src/core/lib/band-shapes.json +7 -0
  190. package/src/core/locales/ar.json +1276 -0
  191. package/src/core/locales/en.json +1276 -0
  192. package/src/core/locales/index.ts +54 -0
  193. package/src/core/locales/sl.json +1276 -0
  194. package/src/core/tokens/native-tokens.json +369 -0
  195. package/tailwind-compile.cjs +29 -0
  196. package/tailwind-preset.cjs +1020 -0
  197. package/themes/_base.css +451 -0
  198. package/themes/_contract.md +307 -0
  199. package/themes/_fonts-kenney.css +11 -0
  200. package/themes/_fonts.css +12 -0
  201. package/themes/_foundation.css +105 -0
  202. package/themes/_head.css +22 -0
  203. package/themes/_presets.css +67 -0
  204. package/themes/almadar-heritage.css +455 -0
  205. package/themes/almadar-website.css +269 -0
  206. package/themes/almadar.css +269 -0
  207. package/themes/aqua.css +455 -0
  208. package/themes/arabesque.css +459 -0
  209. package/themes/art-deco.css +457 -0
  210. package/themes/art-nouveau.css +459 -0
  211. package/themes/atelier.css +463 -0
  212. package/themes/bauhaus.css +461 -0
  213. package/themes/bloomberg-dense.css +463 -0
  214. package/themes/blueprint.css +457 -0
  215. package/themes/clay.css +449 -0
  216. package/themes/comic.css +453 -0
  217. package/themes/constructivist.css +457 -0
  218. package/themes/corporate.css +449 -0
  219. package/themes/cyberpunk.css +453 -0
  220. package/themes/frutiger-aero.css +458 -0
  221. package/themes/game-adventure.css +201 -0
  222. package/themes/game-rpg.css +203 -0
  223. package/themes/game-sci-fi.css +201 -0
  224. package/themes/game-ui-pack.css +200 -0
  225. package/themes/gazette.css +449 -0
  226. package/themes/glass.css +457 -0
  227. package/themes/gothic.css +453 -0
  228. package/themes/index.css +21 -0
  229. package/themes/ink-wash.css +459 -0
  230. package/themes/kawaii.css +459 -0
  231. package/themes/kflow.css +310 -0
  232. package/themes/kiosk.css +449 -0
  233. package/themes/linear-clean.css +463 -0
  234. package/themes/luxury.css +451 -0
  235. package/themes/mac-classic.css +455 -0
  236. package/themes/material.css +463 -0
  237. package/themes/memphis.css +453 -0
  238. package/themes/mid-century.css +455 -0
  239. package/themes/minimalist.css +449 -0
  240. package/themes/mudcloth.css +459 -0
  241. package/themes/nata.css +310 -0
  242. package/themes/neon.css +453 -0
  243. package/themes/neumorphic.css +451 -0
  244. package/themes/newsprint.css +455 -0
  245. package/themes/notion-editorial.css +463 -0
  246. package/themes/orb.css +465 -0
  247. package/themes/pixel.css +449 -0
  248. package/themes/prism.css +309 -0
  249. package/themes/rawi.css +310 -0
  250. package/themes/retro.css +452 -0
  251. package/themes/risograph.css +463 -0
  252. package/themes/scandi.css +469 -0
  253. package/themes/sketch.css +455 -0
  254. package/themes/solarpunk.css +469 -0
  255. package/themes/steampunk.css +451 -0
  256. package/themes/swiss.css +455 -0
  257. package/themes/terminal.css +466 -0
  258. package/themes/trait-wars.css +487 -0
  259. package/themes/ukiyo-e.css +459 -0
  260. package/themes/vaporwave.css +455 -0
  261. package/themes/victorian.css +453 -0
  262. package/themes/wabi-sabi.css +459 -0
  263. package/themes/win95.css +455 -0
  264. package/themes/wireframe.css +439 -0
  265. package/themes/zine.css +455 -0
  266. package/README.md +0 -3
package/bundling.d.mts ADDED
@@ -0,0 +1,18 @@
1
+ /** What `keepDynamicImportsLazy` reads of Rollup's module graph. */
2
+ export interface BundlingModuleInfo {
3
+ isEntry: boolean;
4
+ /** Static importers only (Rollup lists dynamic ones separately). */
5
+ importers: readonly string[];
6
+ }
7
+
8
+ export interface BundlingChunkMeta {
9
+ getModuleInfo(id: string): BundlingModuleInfo | null;
10
+ }
11
+
12
+ /**
13
+ * Wraps an app's `manualChunks` rule: a module goes to the named chunk only when an entry reaches
14
+ * it through static imports, so @almadar/ui's lazily imported families stay lazy.
15
+ */
16
+ export declare function keepDynamicImportsLazy(
17
+ assign: (id: string) => string | null | undefined,
18
+ ): (id: string, meta: BundlingChunkMeta) => string | null | undefined;
package/bundling.mjs ADDED
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Build-time helper for apps bundling @almadar/ui. The ui loads heavy families lazily (mermaid
3
+ * and what it pulls, leaflet, …) through dynamic import(); an app's catch-all `manualChunks`
4
+ * would move them into its eagerly loaded vendor chunk. Wrap it: a module goes to the named
5
+ * chunk only when an entry reaches it through static imports.
6
+ */
7
+ export function keepDynamicImportsLazy(assign) {
8
+ const memo = new WeakMap();
9
+ return (id, meta) => {
10
+ const name = assign(id);
11
+ if (!name) return name;
12
+ let known = memo.get(meta.getModuleInfo);
13
+ if (!known) {
14
+ known = new Map();
15
+ memo.set(meta.getModuleInfo, known);
16
+ }
17
+ return staticallyReachable(id, meta.getModuleInfo, known) ? name : undefined;
18
+ };
19
+ }
20
+
21
+ function staticallyReachable(id, getModuleInfo, known) {
22
+ if (known.has(id)) return known.get(id);
23
+ known.set(id, false); // in progress: a cycle does not reach an entry by itself
24
+ const info = getModuleInfo(id);
25
+ const reachable = info === null || info.isEntry || info.importers.some((importer) => staticallyReachable(importer, getModuleInfo, known));
26
+ known.set(id, reachable);
27
+ return reachable;
28
+ }
@@ -0,0 +1,195 @@
1
+ import * as React from 'react';
2
+ import React__default, { ReactNode, ReactElement } from 'react';
3
+ import { ThemeRef, UserContext as UserContext$1, FieldValue, OrbitalSchema } from '@almadar/core';
4
+ import './EventBusProvider-BFFHfN4O.js';
5
+ import { T as ThemeProviderProps } from './ThemeContext-DJmO59xd.js';
6
+
7
+ /**
8
+ * OrbitalThemeProvider — runtime application of `OrbitalDefinition.theme`.
9
+ *
10
+ * Wraps an orbital's rendered subtree in a surface `Box` that sets the
11
+ * CSS variables derived from `theme.tokens` (and `variants.dark` when the
12
+ * resolved color mode is dark). Inline custom-property declarations on the
13
+ * wrapper override any `[data-theme]` selector rule for the same variable
14
+ * within the subtree, while letting unset variables cascade from the parent.
15
+ *
16
+ * Mapping is delegated to `themeTokensToCssVars`, which mirrors the Rust
17
+ * compiler's `generate_tokens_css`. Compile-time and runtime produce the
18
+ * same CSS variable map for the same `ThemeDefinition` input, so a Studio
19
+ * Design System edit and an `orbital compile` of the same schema render
20
+ * identically.
21
+ *
22
+ * A registry theme key (e.g. `"gazette-light"`) scopes that preset to the
23
+ * subtree through `data-theme` on a wrapper that paints the theme's
24
+ * background, so an orbital renders in its declared theme even inside a host
25
+ * document running another one (playground picker, runtime-verify catalog).
26
+ *
27
+ * No-op when:
28
+ * - `theme` is `undefined` (orbital declares no theme — parent cascades)
29
+ * - `theme` is the legacy `"Alias.theme"` import form that didn't get inlined upstream
30
+ *
31
+ * @example
32
+ * ```tsx
33
+ * <OrbitalThemeProvider theme={orbital.theme}>
34
+ * <UISlotRenderer />
35
+ * </OrbitalThemeProvider>
36
+ * ```
37
+ */
38
+
39
+ interface OrbitalThemeProviderProps {
40
+ /** The `OrbitalDefinition.theme` value (inline definition or string ref). */
41
+ theme?: ThemeRef;
42
+ /**
43
+ * A host's explicit theme pick (registry key, e.g. the playground picker).
44
+ * Replaces `theme` here, in every nested orbital scope, and on every
45
+ * `data-theme` a component declares inside (see `ThemeScope.override`).
46
+ */
47
+ override?: string;
48
+ children: ReactNode;
49
+ }
50
+ declare function OrbitalThemeProvider({ theme: declared, override, children }: OrbitalThemeProviderProps): ReactElement;
51
+ declare namespace OrbitalThemeProvider {
52
+ var displayName: string;
53
+ }
54
+
55
+ /**
56
+ * @deprecated Use ThemeProvider from ThemeContext instead
57
+ */
58
+ declare const DesignThemeProvider: React.FC<ThemeProviderProps>;
59
+ /**
60
+ * @deprecated Use useTheme from ThemeContext instead
61
+ *
62
+ * This wrapper provides backward compatibility with the old API.
63
+ */
64
+ declare function useDesignTheme(): {
65
+ designTheme: string;
66
+ setDesignTheme: (theme: string) => void;
67
+ availableThemes: string[];
68
+ };
69
+
70
+ declare const CurrentPagePathContext: React__default.Context<string | undefined>;
71
+ interface CurrentPagePathProviderProps {
72
+ value: string | undefined;
73
+ children: React__default.ReactNode;
74
+ }
75
+ declare const CurrentPagePathProvider: React__default.FC<CurrentPagePathProviderProps>;
76
+ declare const useCurrentPagePath: () => string | undefined;
77
+
78
+ /**
79
+ * UserContext
80
+ *
81
+ * React context for providing user data throughout the application.
82
+ * Enables @user bindings in S-expressions for role-based UI and permissions.
83
+ *
84
+ * Usage:
85
+ * ```tsx
86
+ * // In App.tsx or layout
87
+ * <UserProvider user={{ id: '123', role: 'admin', permissions: ['read', 'write'] }}>
88
+ * <App />
89
+ * </UserProvider>
90
+ *
91
+ * // In components - access via hook
92
+ * const { user, hasRole, hasPermission } = useUser();
93
+ * if (hasRole('admin')) { ... }
94
+ * if (hasPermission('delete')) { ... }
95
+ * ```
96
+ *
97
+ * @packageDocumentation
98
+ */
99
+
100
+ /**
101
+ * User data for `@user` bindings — the canonical `UserContext` from
102
+ * `@almadar/core`, kept under this name for existing consumers. Declaring the
103
+ * shape locally let it drift from the type both execution paths resolve against.
104
+ */
105
+ type UserData = UserContext$1;
106
+ /**
107
+ * User context value.
108
+ */
109
+ interface UserContextValue {
110
+ /** Current user data (null if not logged in) */
111
+ user: UserData | null;
112
+ /** Check if user is logged in */
113
+ isLoggedIn: boolean;
114
+ /** Check if user has a specific role */
115
+ hasRole: (role: string) => boolean;
116
+ /** Check if user has a specific permission */
117
+ hasPermission: (permission: string) => boolean;
118
+ /** Check if user has any of the specified roles */
119
+ hasAnyRole: (roles: string[]) => boolean;
120
+ /** Check if user has all of the specified permissions */
121
+ hasAllPermissions: (permissions: string[]) => boolean;
122
+ /** Get a user field by path (for @user.field bindings) */
123
+ getUserField: (path: string) => FieldValue | undefined;
124
+ }
125
+ declare const UserContext: React__default.Context<UserContextValue | null>;
126
+ interface UserProviderProps {
127
+ /** User data (null if not logged in) */
128
+ user?: UserData | null;
129
+ /** Children to render */
130
+ children: React__default.ReactNode;
131
+ }
132
+ /**
133
+ * Provider component that provides user context to the application.
134
+ *
135
+ * Provides RBAC helpers and field access for @user bindings.
136
+ */
137
+ declare function UserProvider({ user, children, }: UserProviderProps): React__default.ReactElement;
138
+ /**
139
+ * Hook to access the user context.
140
+ *
141
+ * Returns default values if used outside of UserProvider (for resilience).
142
+ *
143
+ * @example
144
+ * ```tsx
145
+ * function AdminPanel() {
146
+ * const { user, hasRole, hasPermission } = useUser();
147
+ *
148
+ * if (!hasRole('admin') && !hasPermission('admin:access')) {
149
+ * return <AccessDenied />;
150
+ * }
151
+ *
152
+ * return <div>Welcome, {user?.name}</div>;
153
+ * }
154
+ * ```
155
+ */
156
+ declare function useUser(): UserContextValue;
157
+ /**
158
+ * Hook to check if user has a specific role.
159
+ * Convenience wrapper around useUser().hasRole().
160
+ */
161
+ declare function useHasRole(role: string): boolean;
162
+ /**
163
+ * Hook to check if user has a specific permission.
164
+ * Convenience wrapper around useUser().hasPermission().
165
+ */
166
+ declare function useHasPermission(permission: string): boolean;
167
+ /**
168
+ * Hook to get user data for @user bindings in S-expressions.
169
+ * Returns the user data object compatible with EvaluationContext.user
170
+ */
171
+ declare function useUserForEvaluation(): UserData | undefined;
172
+
173
+ /**
174
+ * Arbitrary-value Tailwind classes (`w-[243px]`) in a schema exist only as
175
+ * data, so build-time Tailwind never compiled them. A host that renders
176
+ * schemas at runtime provides a compiler (e.g. the builder's server running
177
+ * Tailwind with this package's preset — `@almadar/ui/tailwind-compile`);
178
+ * `useArbitraryClassStyles(schema)` compiles each class once and appends its
179
+ * CSS to one shared `<style>`. Without a provider it does nothing.
180
+ */
181
+
182
+ declare const ARBITRARY_CLASS_STYLE_ID = "almadar-arbitrary-classes";
183
+ /** Compiles Tailwind classes to CSS. */
184
+ type ArbitraryClassCompiler = (classes: string[]) => Promise<string>;
185
+ interface ArbitraryClassCompilerProviderProps {
186
+ compile: ArbitraryClassCompiler;
187
+ children: React__default.ReactNode;
188
+ }
189
+ declare function ArbitraryClassCompilerProvider({ compile, children }: ArbitraryClassCompilerProviderProps): React__default.ReactElement;
190
+ /** Forget what was compiled and drop the stylesheet (tests; a fresh document). */
191
+ declare function resetArbitraryClassStyles(): void;
192
+ declare function useArbitraryClassStyles(schema: OrbitalSchema | null | undefined): void;
193
+
194
+ export { ARBITRARY_CLASS_STYLE_ID as A, CurrentPagePathContext as C, DesignThemeProvider as D, OrbitalThemeProvider as O, UserContext as U, ArbitraryClassCompilerProvider as b, CurrentPagePathProvider as d, UserProvider as i, useCurrentPagePath as k, useDesignTheme as l, useHasPermission as m, useHasRole as n, useUser as o, useUserForEvaluation as p, resetArbitraryClassStyles as r, useArbitraryClassStyles as u };
195
+ export type { ArbitraryClassCompiler as a, ArbitraryClassCompilerProviderProps as c, CurrentPagePathProviderProps as e, OrbitalThemeProviderProps as f, UserContextValue as g, UserData as h, UserProviderProps as j };
@@ -0,0 +1,6 @@
1
+ export { AVL_GLYPH_KINDS, AvlGlyph } from './chunk-CPLN6NBQ.js';
2
+ import './chunk-HH5KSMH5.js';
3
+ import './chunk-DZBQA2OW.js';
4
+ import './chunk-UXLE3IPR.js';
5
+ import './chunk-4YXBKHHM.js';
6
+ import './chunk-G7DCAZ22.js';
@@ -0,0 +1,9 @@
1
+ export { AvlStateMachine, BODY_CHAR, MARGIN, MAX_SCALE, MIN_SCALE, MONO_CHAR, PILL_H, metricsFor, pillWidth } from './chunk-SP5CDJ6K.js';
2
+ import './chunk-TXAUOLWZ.js';
3
+ import './chunk-AB3X7QTE.js';
4
+ import './chunk-DZBQA2OW.js';
5
+ import './chunk-TZZBINQY.js';
6
+ import './chunk-PCR37T3U.js';
7
+ import './chunk-UXLE3IPR.js';
8
+ import './chunk-4YXBKHHM.js';
9
+ import './chunk-G7DCAZ22.js';
@@ -0,0 +1,11 @@
1
+ export { AvlTransitionDetail } from './chunk-K4MOPSEL.js';
2
+ import './chunk-ILQXJ2AR.js';
3
+ import './chunk-REXYVBUO.js';
4
+ import './chunk-AGXD77SL.js';
5
+ import './chunk-TXAUOLWZ.js';
6
+ import './chunk-AB3X7QTE.js';
7
+ import './chunk-DZBQA2OW.js';
8
+ import './chunk-PCR37T3U.js';
9
+ import './chunk-UXLE3IPR.js';
10
+ import './chunk-4YXBKHHM.js';
11
+ import './chunk-G7DCAZ22.js';
@@ -0,0 +1,12 @@
1
+ export { AvlTransitionExplainer } from './chunk-X3DMMX27.js';
2
+ import './chunk-K4MOPSEL.js';
3
+ import './chunk-ILQXJ2AR.js';
4
+ import './chunk-REXYVBUO.js';
5
+ import './chunk-AGXD77SL.js';
6
+ import './chunk-TXAUOLWZ.js';
7
+ import './chunk-AB3X7QTE.js';
8
+ import './chunk-DZBQA2OW.js';
9
+ import './chunk-PCR37T3U.js';
10
+ import './chunk-UXLE3IPR.js';
11
+ import './chunk-4YXBKHHM.js';
12
+ import './chunk-G7DCAZ22.js';
@@ -0,0 +1,11 @@
1
+ export { BehaviorView } from './chunk-ROICKAU7.js';
2
+ import './chunk-SP5CDJ6K.js';
3
+ import './chunk-AGXD77SL.js';
4
+ import './chunk-TXAUOLWZ.js';
5
+ import './chunk-AB3X7QTE.js';
6
+ import './chunk-DZBQA2OW.js';
7
+ import './chunk-TZZBINQY.js';
8
+ import './chunk-PCR37T3U.js';
9
+ import './chunk-UXLE3IPR.js';
10
+ import './chunk-4YXBKHHM.js';
11
+ import './chunk-G7DCAZ22.js';