aeon-ui-engine 1.0.3 → 1.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 (349) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/CONSUMER.md +39 -42
  3. package/README.md +47 -16
  4. package/package.json +9 -2
  5. package/packages/cli/README.md +17 -0
  6. package/packages/cli/dist/bin.d.ts +1 -0
  7. package/packages/cli/dist/bin.js +35 -0
  8. package/packages/cli/dist/chunk-IW5NT2Z2.js +103 -0
  9. package/packages/cli/dist/index.d.ts +10 -0
  10. package/packages/cli/dist/index.js +6 -0
  11. package/packages/cli/node_modules/.bin/esbuild +21 -0
  12. package/packages/cli/node_modules/.bin/jiti +21 -0
  13. package/packages/cli/node_modules/.bin/tsc +21 -0
  14. package/packages/cli/node_modules/.bin/tsserver +21 -0
  15. package/packages/cli/node_modules/.bin/tsup +21 -0
  16. package/packages/cli/node_modules/.bin/tsup-node +21 -0
  17. package/packages/cli/node_modules/.bin/tsx +21 -0
  18. package/packages/cli/node_modules/.bin/vite +21 -0
  19. package/packages/cli/node_modules/.bin/vitest +21 -0
  20. package/packages/cli/package.json +50 -0
  21. package/packages/cli/src/bin.ts +34 -0
  22. package/packages/cli/src/index.ts +1 -0
  23. package/packages/cli/src/init.ts +107 -0
  24. package/packages/cli/tsconfig.json +10 -0
  25. package/packages/core/README.md +7 -1
  26. package/packages/core/dist/index.d.ts +174 -6
  27. package/packages/core/dist/index.js +259 -2
  28. package/packages/core/node_modules/.bin/esbuild +4 -4
  29. package/packages/core/node_modules/.bin/vite +4 -4
  30. package/packages/core/node_modules/.bin/vitest +2 -2
  31. package/packages/core/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
  32. package/packages/core/package.json +17 -5
  33. package/packages/core/src/anatomy.ts +196 -5
  34. package/packages/core/src/machine.test.ts +62 -1
  35. package/packages/core/src/machine.ts +93 -0
  36. package/packages/core/src/theme.ts +105 -0
  37. package/packages/panda/aeon.css +7 -0
  38. package/packages/panda/package.json +1 -1
  39. package/packages/panda/panda.config.ts +58 -1
  40. package/packages/panda/src/recipes/app-shell.ts +137 -0
  41. package/packages/panda/src/recipes/avatar.ts +131 -0
  42. package/packages/panda/src/recipes/bar.ts +206 -0
  43. package/packages/panda/src/recipes/button-group.ts +12 -4
  44. package/packages/panda/src/recipes/button.ts +1 -0
  45. package/packages/panda/src/recipes/combobox.ts +2 -1
  46. package/packages/panda/src/recipes/composer.ts +81 -0
  47. package/packages/panda/src/recipes/content.ts +104 -0
  48. package/packages/panda/src/recipes/conversation.ts +106 -0
  49. package/packages/panda/src/recipes/entry.ts +217 -0
  50. package/packages/panda/src/recipes/field.ts +12 -2
  51. package/packages/panda/src/recipes/floating.ts +26 -13
  52. package/packages/panda/src/recipes/identity.ts +73 -0
  53. package/packages/panda/src/recipes/index.ts +15 -0
  54. package/packages/panda/src/recipes/list-row.ts +109 -0
  55. package/packages/panda/src/recipes/metric-strip.ts +80 -0
  56. package/packages/panda/src/recipes/nav.ts +155 -0
  57. package/packages/panda/src/recipes/panel.ts +156 -0
  58. package/packages/panda/src/recipes/pin-input.ts +3 -2
  59. package/packages/panda/src/recipes/profile-header.ts +120 -0
  60. package/packages/panda/src/recipes/select.ts +2 -1
  61. package/packages/panda/src/recipes/slider.ts +6 -4
  62. package/packages/panda/src/recipes/theme-switcher.ts +110 -0
  63. package/packages/panda/src/recipes/thread.ts +88 -0
  64. package/packages/panda/src/theme/catalog-types.ts +2 -0
  65. package/packages/panda/src/theme/catalog.ts +23 -0
  66. package/packages/panda/src/theme/chrome.css +2 -1
  67. package/packages/panda/src/theme/global-theme-css.ts +9 -0
  68. package/packages/panda/src/theme/omarchy.themes.ts +607 -0
  69. package/packages/panda/src/theme/palette.ts +3 -0
  70. package/packages/panda/src/theme/scrollbars.css +58 -21
  71. package/packages/panda/src/theme/themes.config.ts +39 -1
  72. package/packages/panda/styled-system/css/conditions.mjs +1 -1
  73. package/packages/panda/styled-system/css/css.mjs +1 -1
  74. package/packages/panda/styled-system/css/sva.mjs +9 -4
  75. package/packages/panda/styled-system/helpers.mjs +11 -22
  76. package/packages/panda/styled-system/jsx/create-style-context.d.ts +54 -0
  77. package/packages/panda/styled-system/jsx/create-style-context.mjs +121 -0
  78. package/packages/panda/styled-system/jsx/factory.mjs +14 -5
  79. package/packages/panda/styled-system/jsx/index.d.ts +1 -0
  80. package/packages/panda/styled-system/jsx/index.mjs +1 -0
  81. package/packages/panda/styled-system/jsx/is-valid-prop.mjs +2 -2
  82. package/packages/panda/styled-system/patterns/aspect-ratio.d.ts +0 -1
  83. package/packages/panda/styled-system/patterns/bleed.d.ts +0 -1
  84. package/packages/panda/styled-system/patterns/box.d.ts +0 -1
  85. package/packages/panda/styled-system/patterns/center.d.ts +0 -1
  86. package/packages/panda/styled-system/patterns/circle.d.ts +0 -1
  87. package/packages/panda/styled-system/patterns/container.d.ts +0 -1
  88. package/packages/panda/styled-system/patterns/cq.d.ts +0 -1
  89. package/packages/panda/styled-system/patterns/divider.d.ts +0 -1
  90. package/packages/panda/styled-system/patterns/flex.d.ts +0 -1
  91. package/packages/panda/styled-system/patterns/float.d.ts +0 -1
  92. package/packages/panda/styled-system/patterns/grid-item.d.ts +0 -1
  93. package/packages/panda/styled-system/patterns/grid.d.ts +0 -1
  94. package/packages/panda/styled-system/patterns/grid.mjs +1 -1
  95. package/packages/panda/styled-system/patterns/hstack.d.ts +0 -1
  96. package/packages/panda/styled-system/patterns/hstack.mjs +1 -1
  97. package/packages/panda/styled-system/patterns/link-overlay.d.ts +0 -1
  98. package/packages/panda/styled-system/patterns/spacer.d.ts +0 -1
  99. package/packages/panda/styled-system/patterns/spacer.mjs +6 -2
  100. package/packages/panda/styled-system/patterns/square.d.ts +0 -1
  101. package/packages/panda/styled-system/patterns/stack.d.ts +0 -1
  102. package/packages/panda/styled-system/patterns/stack.mjs +1 -1
  103. package/packages/panda/styled-system/patterns/visually-hidden.d.ts +0 -1
  104. package/packages/panda/styled-system/patterns/vstack.d.ts +0 -1
  105. package/packages/panda/styled-system/patterns/vstack.mjs +1 -1
  106. package/packages/panda/styled-system/patterns/wrap.d.ts +0 -1
  107. package/packages/panda/styled-system/patterns/wrap.mjs +1 -1
  108. package/packages/panda/styled-system/recipes/aeon-accordion.d.ts +4 -3
  109. package/packages/panda/styled-system/recipes/aeon-accordion.mjs +1 -0
  110. package/packages/panda/styled-system/recipes/aeon-app-shell.d.ts +34 -0
  111. package/packages/panda/styled-system/recipes/aeon-app-shell.mjs +70 -0
  112. package/packages/panda/styled-system/recipes/aeon-async.d.ts +4 -3
  113. package/packages/panda/styled-system/recipes/aeon-async.mjs +1 -0
  114. package/packages/panda/styled-system/recipes/aeon-avatar.d.ts +36 -0
  115. package/packages/panda/styled-system/recipes/aeon-avatar.mjs +57 -0
  116. package/packages/panda/styled-system/recipes/aeon-badge.d.ts +3 -0
  117. package/packages/panda/styled-system/recipes/aeon-bar.d.ts +40 -0
  118. package/packages/panda/styled-system/recipes/aeon-bar.mjs +77 -0
  119. package/packages/panda/styled-system/recipes/aeon-button-group.d.ts +3 -2
  120. package/packages/panda/styled-system/recipes/aeon-button.d.ts +3 -2
  121. package/packages/panda/styled-system/recipes/aeon-checkbox.d.ts +4 -1
  122. package/packages/panda/styled-system/recipes/aeon-checkbox.mjs +1 -0
  123. package/packages/panda/styled-system/recipes/aeon-combobox.d.ts +4 -3
  124. package/packages/panda/styled-system/recipes/aeon-combobox.mjs +1 -0
  125. package/packages/panda/styled-system/recipes/aeon-composer.d.ts +31 -0
  126. package/packages/panda/styled-system/recipes/aeon-composer.mjs +45 -0
  127. package/packages/panda/styled-system/recipes/aeon-content.d.ts +34 -0
  128. package/packages/panda/styled-system/recipes/aeon-content.mjs +70 -0
  129. package/packages/panda/styled-system/recipes/aeon-conversation.d.ts +31 -0
  130. package/packages/panda/styled-system/recipes/aeon-conversation.mjs +61 -0
  131. package/packages/panda/styled-system/recipes/aeon-dialog.d.ts +4 -1
  132. package/packages/panda/styled-system/recipes/aeon-dialog.mjs +1 -0
  133. package/packages/panda/styled-system/recipes/aeon-entry.d.ts +38 -0
  134. package/packages/panda/styled-system/recipes/aeon-entry.mjs +100 -0
  135. package/packages/panda/styled-system/recipes/aeon-field.d.ts +4 -3
  136. package/packages/panda/styled-system/recipes/aeon-field.mjs +1 -0
  137. package/packages/panda/styled-system/recipes/aeon-identity.d.ts +36 -0
  138. package/packages/panda/styled-system/recipes/aeon-identity.mjs +63 -0
  139. package/packages/panda/styled-system/recipes/aeon-list-row.d.ts +33 -0
  140. package/packages/panda/styled-system/recipes/aeon-list-row.mjs +49 -0
  141. package/packages/panda/styled-system/recipes/aeon-menu.d.ts +4 -1
  142. package/packages/panda/styled-system/recipes/aeon-menu.mjs +1 -0
  143. package/packages/panda/styled-system/recipes/aeon-metric-strip.d.ts +36 -0
  144. package/packages/panda/styled-system/recipes/aeon-metric-strip.mjs +54 -0
  145. package/packages/panda/styled-system/recipes/aeon-nav.d.ts +38 -0
  146. package/packages/panda/styled-system/recipes/aeon-nav.mjs +69 -0
  147. package/packages/panda/styled-system/recipes/aeon-panel.d.ts +34 -0
  148. package/packages/panda/styled-system/recipes/aeon-panel.mjs +58 -0
  149. package/packages/panda/styled-system/recipes/aeon-pin-input.d.ts +4 -1
  150. package/packages/panda/styled-system/recipes/aeon-pin-input.mjs +1 -0
  151. package/packages/panda/styled-system/recipes/aeon-popover.d.ts +4 -1
  152. package/packages/panda/styled-system/recipes/aeon-popover.mjs +1 -0
  153. package/packages/panda/styled-system/recipes/aeon-profile-header.d.ts +36 -0
  154. package/packages/panda/styled-system/recipes/aeon-profile-header.mjs +62 -0
  155. package/packages/panda/styled-system/recipes/aeon-progress.d.ts +4 -1
  156. package/packages/panda/styled-system/recipes/aeon-progress.mjs +1 -0
  157. package/packages/panda/styled-system/recipes/aeon-radio-group.d.ts +4 -1
  158. package/packages/panda/styled-system/recipes/aeon-radio-group.mjs +1 -0
  159. package/packages/panda/styled-system/recipes/aeon-scroll.d.ts +4 -3
  160. package/packages/panda/styled-system/recipes/aeon-scroll.mjs +1 -0
  161. package/packages/panda/styled-system/recipes/aeon-select.d.ts +4 -3
  162. package/packages/panda/styled-system/recipes/aeon-select.mjs +1 -0
  163. package/packages/panda/styled-system/recipes/aeon-separator.d.ts +4 -1
  164. package/packages/panda/styled-system/recipes/aeon-separator.mjs +1 -0
  165. package/packages/panda/styled-system/recipes/aeon-slider.d.ts +4 -1
  166. package/packages/panda/styled-system/recipes/aeon-slider.mjs +1 -0
  167. package/packages/panda/styled-system/recipes/aeon-switch.d.ts +4 -1
  168. package/packages/panda/styled-system/recipes/aeon-switch.mjs +1 -0
  169. package/packages/panda/styled-system/recipes/aeon-tabs.d.ts +4 -1
  170. package/packages/panda/styled-system/recipes/aeon-tabs.mjs +1 -0
  171. package/packages/panda/styled-system/recipes/aeon-theme-switcher.d.ts +34 -0
  172. package/packages/panda/styled-system/recipes/aeon-theme-switcher.mjs +59 -0
  173. package/packages/panda/styled-system/recipes/aeon-thread.d.ts +31 -0
  174. package/packages/panda/styled-system/recipes/aeon-thread.mjs +53 -0
  175. package/packages/panda/styled-system/recipes/aeon-toast.d.ts +4 -1
  176. package/packages/panda/styled-system/recipes/aeon-toast.mjs +1 -0
  177. package/packages/panda/styled-system/recipes/aeon-tooltip.d.ts +4 -1
  178. package/packages/panda/styled-system/recipes/aeon-tooltip.mjs +1 -0
  179. package/packages/panda/styled-system/recipes/index.d.ts +16 -1
  180. package/packages/panda/styled-system/recipes/index.mjs +16 -1
  181. package/packages/panda/styled-system/styles.css +2317 -450
  182. package/packages/panda/styled-system/tokens/index.mjs +43 -7
  183. package/packages/panda/styled-system/tokens/tokens.d.ts +5 -5
  184. package/packages/panda/styled-system/types/composition.d.ts +86 -23
  185. package/packages/panda/styled-system/types/conditions.d.ts +34 -10
  186. package/packages/panda/styled-system/types/csstype.d.ts +6405 -5133
  187. package/packages/panda/styled-system/types/jsx.d.ts +27 -10
  188. package/packages/panda/styled-system/types/pattern.d.ts +4 -4
  189. package/packages/panda/styled-system/types/prop-type.d.ts +11 -1
  190. package/packages/panda/styled-system/types/style-props.d.ts +2763 -2165
  191. package/packages/panda/styled-system/types/system-types.d.ts +38 -80
  192. package/packages/panda/theme-runtime.css +945 -0
  193. package/packages/primitives/dist/chunk-R25CUHNF.js +46 -0
  194. package/packages/primitives/dist/chunk-RO2DMFN5.js +89 -0
  195. package/packages/primitives/dist/chunk-V5D7LS4J.js +61 -0
  196. package/packages/primitives/dist/chunk-YBPNI2LI.js +70 -0
  197. package/packages/primitives/dist/index.d.ts +4 -0
  198. package/packages/primitives/dist/index.js +30 -8
  199. package/packages/primitives/dist/machines/app-shell.d.ts +57 -0
  200. package/packages/primitives/dist/machines/app-shell.js +8 -0
  201. package/packages/primitives/dist/machines/async.d.ts +4 -4
  202. package/packages/primitives/dist/machines/content-region.d.ts +72 -0
  203. package/packages/primitives/dist/machines/content-region.js +8 -0
  204. package/packages/primitives/dist/machines/panel.d.ts +50 -0
  205. package/packages/primitives/dist/machines/panel.js +6 -0
  206. package/packages/primitives/dist/machines/sticky-bar.d.ts +62 -0
  207. package/packages/primitives/dist/machines/sticky-bar.js +8 -0
  208. package/packages/primitives/node_modules/.bin/esbuild +21 -0
  209. package/packages/primitives/node_modules/.bin/vite +21 -0
  210. package/packages/primitives/node_modules/.bin/vitest +2 -2
  211. package/packages/primitives/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
  212. package/packages/primitives/package.json +15 -5
  213. package/packages/primitives/scripts/xstate-introspect.mjs +35 -0
  214. package/packages/primitives/src/index.ts +4 -0
  215. package/packages/primitives/src/machines/app-shell.ts +63 -0
  216. package/packages/primitives/src/machines/content-region.ts +107 -0
  217. package/packages/primitives/src/machines/panel.ts +71 -0
  218. package/packages/primitives/src/machines/sticky-bar.ts +89 -0
  219. package/packages/react/dist/index.d.ts +403 -16
  220. package/packages/react/dist/index.js +1505 -227
  221. package/packages/react/node_modules/.bin/esbuild +21 -0
  222. package/packages/react/node_modules/.bin/vite +21 -0
  223. package/packages/react/node_modules/.bin/vitest +2 -2
  224. package/packages/react/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
  225. package/packages/react/package.json +18 -7
  226. package/packages/react/src/app-shell/index.tsx +154 -0
  227. package/packages/react/src/async/index.tsx +6 -1
  228. package/packages/react/src/async/map-content-state.ts +18 -0
  229. package/packages/react/src/avatar/index.tsx +19 -0
  230. package/packages/react/src/bar/index.tsx +101 -0
  231. package/packages/react/src/button/index.tsx +4 -2
  232. package/packages/react/src/composer/index.tsx +75 -0
  233. package/packages/react/src/content/index.tsx +149 -0
  234. package/packages/react/src/conversation/index.tsx +78 -0
  235. package/packages/react/src/entry/index.tsx +85 -0
  236. package/packages/react/src/field/index.tsx +31 -18
  237. package/packages/react/src/identity/index.tsx +110 -0
  238. package/packages/react/src/index.ts +15 -0
  239. package/packages/react/src/list-row/index.tsx +80 -0
  240. package/packages/react/src/metric-strip/index.tsx +88 -0
  241. package/packages/react/src/nav/index.tsx +155 -0
  242. package/packages/react/src/panel/index.tsx +267 -0
  243. package/packages/react/src/profile-header/index.tsx +91 -0
  244. package/packages/react/src/radio-group/index.tsx +19 -7
  245. package/packages/react/src/slider/index.tsx +3 -1
  246. package/packages/react/src/sticky-bar/index.tsx +135 -0
  247. package/packages/react/src/switch/index.tsx +7 -1
  248. package/packages/react/src/theme-switcher/index.tsx +227 -0
  249. package/packages/react/src/thread/index.tsx +95 -0
  250. package/packages/react/src/toast/primitives.tsx +2 -2
  251. package/packages/react/src/tooltip/tooltip.test.tsx +9 -1
  252. package/packages/react/tsconfig.json +2 -1
  253. package/packages/schemas/README.md +52 -0
  254. package/packages/schemas/dist/index.d.ts +287 -0
  255. package/packages/schemas/dist/index.js +701 -0
  256. package/packages/schemas/json/accordion.json +132 -0
  257. package/packages/schemas/json/async.json +161 -0
  258. package/packages/schemas/json/button.json +170 -0
  259. package/packages/schemas/json/catalog.json +2299 -0
  260. package/packages/schemas/json/checkbox.json +136 -0
  261. package/packages/schemas/json/combobox.json +130 -0
  262. package/packages/schemas/json/dialog.json +154 -0
  263. package/packages/schemas/json/field.json +171 -0
  264. package/packages/schemas/json/menu.json +138 -0
  265. package/packages/schemas/json/popover.json +133 -0
  266. package/packages/schemas/json/progress.json +137 -0
  267. package/packages/schemas/json/scroll.json +129 -0
  268. package/packages/schemas/json/select.json +140 -0
  269. package/packages/schemas/json/switch.json +136 -0
  270. package/packages/schemas/json/tabs.json +135 -0
  271. package/packages/schemas/json/toast.json +141 -0
  272. package/packages/schemas/json/tooltip.json +123 -0
  273. package/packages/schemas/node_modules/.bin/esbuild +21 -0
  274. package/packages/schemas/node_modules/.bin/jiti +21 -0
  275. package/packages/schemas/node_modules/.bin/tsc +21 -0
  276. package/packages/schemas/node_modules/.bin/tsserver +21 -0
  277. package/packages/schemas/node_modules/.bin/tsup +21 -0
  278. package/packages/schemas/node_modules/.bin/tsup-node +21 -0
  279. package/packages/schemas/node_modules/.bin/tsx +21 -0
  280. package/packages/schemas/node_modules/.bin/vite +21 -0
  281. package/packages/schemas/node_modules/.bin/vitest +21 -0
  282. package/packages/schemas/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
  283. package/packages/schemas/package.json +56 -0
  284. package/packages/schemas/prompts/cursorrules.md +64 -0
  285. package/packages/schemas/prompts/statecharts.md +31 -0
  286. package/packages/schemas/prompts/system.md +30 -0
  287. package/packages/schemas/registry/catalog.json +54 -0
  288. package/packages/schemas/registry/components/accordion.json +132 -0
  289. package/packages/schemas/registry/components/async.json +161 -0
  290. package/packages/schemas/registry/components/button.json +170 -0
  291. package/packages/schemas/registry/components/checkbox.json +136 -0
  292. package/packages/schemas/registry/components/combobox.json +130 -0
  293. package/packages/schemas/registry/components/dialog.json +154 -0
  294. package/packages/schemas/registry/components/field.json +171 -0
  295. package/packages/schemas/registry/components/menu.json +138 -0
  296. package/packages/schemas/registry/components/popover.json +133 -0
  297. package/packages/schemas/registry/components/progress.json +137 -0
  298. package/packages/schemas/registry/components/scroll.json +129 -0
  299. package/packages/schemas/registry/components/select.json +140 -0
  300. package/packages/schemas/registry/components/switch.json +136 -0
  301. package/packages/schemas/registry/components/tabs.json +135 -0
  302. package/packages/schemas/registry/components/toast.json +141 -0
  303. package/packages/schemas/registry/components/tooltip.json +123 -0
  304. package/packages/schemas/registry/machines/async.json +219 -0
  305. package/packages/schemas/registry/machines/buttonLifecycle.json +224 -0
  306. package/packages/schemas/registry/machines/dialog.json +143 -0
  307. package/packages/schemas/registry/machines/field.json +275 -0
  308. package/packages/schemas/scripts/emit.ts +61 -0
  309. package/packages/schemas/src/aeon-to-schema.test.ts +70 -0
  310. package/packages/schemas/src/aeon-to-schema.ts +206 -0
  311. package/packages/schemas/src/agent-bridge.ts +82 -0
  312. package/packages/schemas/src/components.ts +307 -0
  313. package/packages/schemas/src/index.test.ts +25 -0
  314. package/packages/schemas/src/index.ts +25 -0
  315. package/packages/schemas/src/prompts.ts +121 -0
  316. package/packages/schemas/src/registry.ts +73 -0
  317. package/packages/schemas/src/schema-builder.ts +87 -0
  318. package/packages/schemas/tsconfig.json +9 -0
  319. package/packages/solid/package.json +2 -2
  320. package/packages/svelte/node_modules/.bin/esbuild +21 -0
  321. package/packages/svelte/node_modules/.bin/vite +4 -4
  322. package/packages/svelte/package.json +15 -5
  323. package/packages/ui/README.md +19 -6
  324. package/packages/ui/dist/index.d.ts +254 -9
  325. package/packages/ui/dist/index.js +690 -139
  326. package/packages/ui/src/app-shell.tsx +44 -0
  327. package/packages/ui/src/async.tsx +2 -1
  328. package/packages/ui/src/avatar.tsx +35 -0
  329. package/packages/ui/src/bar.tsx +34 -0
  330. package/packages/ui/src/composer.tsx +27 -0
  331. package/packages/ui/src/content.tsx +43 -0
  332. package/packages/ui/src/conversation.tsx +43 -0
  333. package/packages/ui/src/entry.tsx +76 -0
  334. package/packages/ui/src/field.tsx +5 -0
  335. package/packages/ui/src/identity.tsx +35 -0
  336. package/packages/ui/src/index.ts +16 -0
  337. package/packages/ui/src/list-row.tsx +30 -0
  338. package/packages/ui/src/metric-strip.tsx +29 -0
  339. package/packages/ui/src/nav.tsx +46 -0
  340. package/packages/ui/src/panel.tsx +39 -0
  341. package/packages/ui/src/profile-header.tsx +35 -0
  342. package/packages/ui/src/sticky-bar.tsx +42 -0
  343. package/packages/ui/src/switch.tsx +17 -4
  344. package/packages/ui/src/theme-switcher.tsx +41 -0
  345. package/packages/ui/src/thread.tsx +35 -0
  346. package/packages/vue/package.json +3 -3
  347. package/scripts/vite-aliases.mjs +57 -3
  348. package/scripts/xstate-introspect.mjs +68 -0
  349. package/packages/react/src/async/legacy-region.tsx +0 -38
@@ -1,12 +1,13 @@
1
1
  import * as react from 'react';
2
- import { ButtonHTMLAttributes, ReactNode, HTMLAttributes, InputHTMLAttributes, LabelHTMLAttributes, TextareaHTMLAttributes, RefObject, ImgHTMLAttributes } from 'react';
2
+ import { ButtonHTMLAttributes, ReactNode, HTMLAttributes, InputHTMLAttributes, LabelHTMLAttributes, TextareaHTMLAttributes, RefObject, ImgHTMLAttributes, FormHTMLAttributes } from 'react';
3
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
4
  import * as xstate from 'xstate';
5
5
  import { AnyStateMachine } from 'xstate';
6
- import { AsyncContext } from '@aeon-ui/primitives';
6
+ import { AsyncContext, ContentRegionState, StickyBarState } from '@aeon-ui/primitives';
7
7
  export { createAsyncMachine, fieldMachine } from '@aeon-ui/primitives';
8
8
  import { useMachine } from '@xstate/react';
9
- import { ResponsiveLayoutSpec, LayoutMode, LayoutCompositionSpec } from '@aeon-ui/core';
9
+ import { fieldFace, AeonColorMode, ResponsiveLayoutSpec, LayoutMode, LayoutCompositionSpec } from '@aeon-ui/core';
10
+ export { AeonColorMode as AeonMode } from '@aeon-ui/core';
10
11
 
11
12
  /** Action button lifecycle — see STATES.md and `buttonLifecycleMachine`. */
12
13
  type ButtonStatus = 'idle' | 'pending' | 'success' | 'failure' | 'disabled';
@@ -247,10 +248,10 @@ declare const defaultMachine: xstate.StateMachine<AsyncContext<unknown>, {
247
248
  type: "RESOLVE";
248
249
  data: unknown;
249
250
  }, {}, never, {
250
- type: "clear";
251
+ type: "resolve";
251
252
  params: xstate.NonReducibleUnknown;
252
253
  } | {
253
- type: "resolve";
254
+ type: "clear";
254
255
  params: xstate.NonReducibleUnknown;
255
256
  } | {
256
257
  type: "markStale";
@@ -286,17 +287,14 @@ interface AsyncProviderProps {
286
287
  }
287
288
  declare function AsyncProvider({ children, machine }: AsyncProviderProps): react_jsx_runtime.JSX.Element;
288
289
 
289
- interface AsyncRegionProps<T = unknown> {
290
- children?: ReactNode | ((state: {
291
- status: string;
292
- data: T | null;
293
- error: string | null;
294
- }) => ReactNode);
295
- className?: string;
296
- }
297
- /** @deprecated Prefer `<Async.Root>` with Track, Readout, and Actions. */
298
- declare function AsyncRegion<T = unknown>({ children, className }: AsyncRegionProps<T>): react_jsx_runtime.JSX.Element;
290
+ /** Map async machine leaf → Content face (product UI — not Track). */
291
+ declare function asyncStatusToContentState(status: string): ContentRegionState;
299
292
 
293
+ /**
294
+ * Async — fetch lifecycle driver (`createAsyncMachine`).
295
+ * Product UI: project status with Content slots via `asyncStatusToContentState`.
296
+ * `Track` is a totality/debug rail — not Instant default (see docs/PRIMITIVE_COVERAGE.md).
297
+ */
300
298
  declare const Async: {
301
299
  Root: react.ForwardRefExoticComponent<AsyncRootProps & react.RefAttributes<HTMLDivElement>>;
302
300
  Provider: typeof AsyncProvider;
@@ -306,7 +304,13 @@ declare const Async: {
306
304
  };
307
305
 
308
306
  interface FieldContextValue {
307
+ /** Primary visual face — idle | dirty | invalid | pending (same hierarchy as Button). */
308
+ face: ReturnType<typeof fieldFace>;
309
+ /** @deprecated Use `face` — kept as an alias for older callers. */
309
310
  stateAttr: string;
311
+ interaction: string;
312
+ validation: string;
313
+ submission: string;
310
314
  send: ReturnType<typeof useAeonMachine<typeof fieldMachine>>[1];
311
315
  invalid: boolean;
312
316
  pending: boolean;
@@ -327,6 +331,7 @@ declare const Field: {
327
331
  Root: react.ForwardRefExoticComponent<FieldRootProps & react.RefAttributes<HTMLDivElement>>;
328
332
  Label: react.ForwardRefExoticComponent<LabelHTMLAttributes<HTMLLabelElement> & react.RefAttributes<HTMLLabelElement>>;
329
333
  Control: react.ForwardRefExoticComponent<FieldControlProps & react.RefAttributes<HTMLInputElement>>;
334
+ Input: react.ForwardRefExoticComponent<FieldControlProps & react.RefAttributes<HTMLInputElement>>;
330
335
  Textarea: react.ForwardRefExoticComponent<FieldTextareaProps & react.RefAttributes<HTMLTextAreaElement>>;
331
336
  Message: react.ForwardRefExoticComponent<react.HTMLAttributes<HTMLParagraphElement> & react.RefAttributes<HTMLParagraphElement>>;
332
337
  Hint: react.ForwardRefExoticComponent<react.HTMLAttributes<HTMLParagraphElement> & react.RefAttributes<HTMLParagraphElement>>;
@@ -545,15 +550,397 @@ declare const Toast: {
545
550
  Show: typeof Show;
546
551
  };
547
552
 
553
+ interface ThemeSwitcherRootProps extends HTMLAttributes<HTMLDivElement> {
554
+ /** Initial theme — overridden by localStorage / system preference. */
555
+ defaultTheme?: string;
556
+ /** Initial mode — overridden by localStorage / system preference. */
557
+ defaultMode?: AeonColorMode;
558
+ /** Called when theme or mode changes. */
559
+ onThemeChange?: (themeId: string, mode: AeonColorMode) => void;
560
+ }
561
+ interface ThemeSwitcherModesProps extends HTMLAttributes<HTMLDivElement> {
562
+ }
563
+ interface ThemeSwitcherModeBtnProps extends HTMLAttributes<HTMLButtonElement> {
564
+ mode: AeonColorMode;
565
+ active: boolean;
566
+ }
567
+ interface ThemeSwitcherThemeSelectProps extends HTMLAttributes<HTMLDivElement> {
568
+ }
569
+ /**
570
+ * ThemeSwitcher — headless compound component for theme + mode control.
571
+ *
572
+ * Uses `initAeonTheme()` on mount to read localStorage / system preference.
573
+ * All state changes call `applyAeonTheme()` to update `<html>` dataset attrs.
574
+ *
575
+ * @example
576
+ * <ThemeSwitcher.Root>
577
+ * <ThemeSwitcher.Modes>
578
+ * <ThemeSwitcher.ModeBtn mode="light" active={mode === 'light'} />
579
+ * <ThemeSwitcher.ModeBtn mode="dark" active={mode === 'dark'} />
580
+ * </ThemeSwitcher.Modes>
581
+ * <ThemeSwitcher.ThemeSelect>
582
+ * <ThemeSwitcher.ThemeTrigger />
583
+ * </ThemeSwitcher.ThemeSelect>
584
+ * </ThemeSwitcher.Root>
585
+ */
586
+ declare const ThemeSwitcher: {
587
+ Root: react.ForwardRefExoticComponent<ThemeSwitcherRootProps & react.RefAttributes<HTMLDivElement>>;
588
+ Modes: react.ForwardRefExoticComponent<ThemeSwitcherModesProps & react.RefAttributes<HTMLDivElement>>;
589
+ ModeBtn: react.ForwardRefExoticComponent<ThemeSwitcherModeBtnProps & react.RefAttributes<HTMLButtonElement>>;
590
+ ThemeSelect: react.ForwardRefExoticComponent<ThemeSwitcherThemeSelectProps & react.RefAttributes<HTMLDivElement>>;
591
+ ThemeTrigger: react.ForwardRefExoticComponent<HTMLAttributes<HTMLButtonElement> & react.RefAttributes<HTMLButtonElement>>;
592
+ };
593
+
548
594
  type AvatarStatus = 'idle' | 'loading' | 'loaded' | 'error';
549
595
  interface AvatarRootProps extends HTMLAttributes<HTMLSpanElement> {
550
596
  children?: ReactNode;
551
597
  className?: string;
552
598
  }
599
+ type PresenceState = 'idle' | 'active' | 'away' | 'busy' | 'offline';
553
600
  declare const Avatar: {
554
601
  Root: react.ForwardRefExoticComponent<AvatarRootProps & react.RefAttributes<HTMLSpanElement>>;
555
602
  Image: react.ForwardRefExoticComponent<ImgHTMLAttributes<HTMLImageElement> & react.RefAttributes<HTMLImageElement>>;
556
603
  Fallback: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
604
+ Badge: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & {
605
+ presence?: PresenceState;
606
+ } & react.RefAttributes<HTMLSpanElement>>;
607
+ };
608
+
609
+ interface IdentityRootProps extends HTMLAttributes<HTMLElement> {
610
+ as?: 'div' | 'a' | 'button';
611
+ size?: 'sm' | 'md' | 'lg';
612
+ children?: ReactNode;
613
+ }
614
+ declare const Identity: {
615
+ Root: react.ForwardRefExoticComponent<IdentityRootProps & react.RefAttributes<HTMLElement>>;
616
+ Avatar: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
617
+ Title: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
618
+ Subtitle: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
619
+ Meta: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
620
+ Trailing: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
621
+ };
622
+
623
+ interface MetricStripRootProps extends HTMLAttributes<HTMLElement> {
624
+ /** cluster = ultra-dense chips; loose = columnar stats */
625
+ density?: 'cluster' | 'loose';
626
+ children?: ReactNode;
627
+ }
628
+ declare const MetricStrip: {
629
+ Root: react.ForwardRefExoticComponent<MetricStripRootProps & react.RefAttributes<HTMLElement>>;
630
+ Chip: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
631
+ Value: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
632
+ Label: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
633
+ };
634
+
635
+ interface ListRowRootProps extends ButtonHTMLAttributes<HTMLButtonElement> {
636
+ as?: 'button' | 'div' | 'a';
637
+ children?: ReactNode;
638
+ }
639
+ declare const ListRow: {
640
+ Root: react.ForwardRefExoticComponent<ListRowRootProps & react.RefAttributes<HTMLElement>>;
641
+ Leading: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
642
+ Label: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
643
+ Description: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
644
+ Trailing: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
645
+ };
646
+
647
+ /** Card face — idle resting · selected highlight · muted de-emphasized. */
648
+ type EntryState = 'idle' | 'selected' | 'muted';
649
+ interface EntryListProps extends HTMLAttributes<HTMLDivElement> {
650
+ children?: ReactNode;
651
+ }
652
+ interface EntryRootProps extends HTMLAttributes<HTMLElement> {
653
+ as?: 'article' | 'div' | 'li' | 'section';
654
+ state?: EntryState;
655
+ children?: ReactNode;
656
+ }
657
+ declare const Entry: {
658
+ List: react.ForwardRefExoticComponent<EntryListProps & react.RefAttributes<HTMLDivElement>>;
659
+ Root: react.ForwardRefExoticComponent<EntryRootProps & react.RefAttributes<HTMLElement>>;
660
+ Header: react.ForwardRefExoticComponent<HTMLAttributes<HTMLElement> & {
661
+ as?: "span" | "div" | "footer" | "header" | "p";
662
+ } & react.RefAttributes<HTMLElement>>;
663
+ Leading: react.ForwardRefExoticComponent<HTMLAttributes<HTMLElement> & {
664
+ as?: "span" | "div" | "footer" | "header" | "p";
665
+ } & react.RefAttributes<HTMLElement>>;
666
+ Heading: react.ForwardRefExoticComponent<HTMLAttributes<HTMLElement> & {
667
+ as?: "span" | "div" | "footer" | "header" | "p";
668
+ } & react.RefAttributes<HTMLElement>>;
669
+ Title: react.ForwardRefExoticComponent<HTMLAttributes<HTMLElement> & {
670
+ as?: "span" | "div" | "footer" | "header" | "p";
671
+ } & react.RefAttributes<HTMLElement>>;
672
+ Subtitle: react.ForwardRefExoticComponent<HTMLAttributes<HTMLElement> & {
673
+ as?: "span" | "div" | "footer" | "header" | "p";
674
+ } & react.RefAttributes<HTMLElement>>;
675
+ Meta: react.ForwardRefExoticComponent<HTMLAttributes<HTMLElement> & {
676
+ as?: "span" | "div" | "footer" | "header" | "p";
677
+ } & react.RefAttributes<HTMLElement>>;
678
+ Media: react.ForwardRefExoticComponent<HTMLAttributes<HTMLElement> & {
679
+ as?: "span" | "div" | "footer" | "header" | "p";
680
+ } & react.RefAttributes<HTMLElement>>;
681
+ Body: react.ForwardRefExoticComponent<HTMLAttributes<HTMLElement> & {
682
+ as?: "span" | "div" | "footer" | "header" | "p";
683
+ } & react.RefAttributes<HTMLElement>>;
684
+ Values: react.ForwardRefExoticComponent<HTMLAttributes<HTMLElement> & {
685
+ as?: "span" | "div" | "footer" | "header" | "p";
686
+ } & react.RefAttributes<HTMLElement>>;
687
+ Value: react.ForwardRefExoticComponent<HTMLAttributes<HTMLElement> & {
688
+ as?: "span" | "div" | "footer" | "header" | "p";
689
+ } & react.RefAttributes<HTMLElement>>;
690
+ Actions: react.ForwardRefExoticComponent<HTMLAttributes<HTMLElement> & {
691
+ as?: "span" | "div" | "footer" | "header" | "p";
692
+ } & react.RefAttributes<HTMLElement>>;
693
+ Footer: react.ForwardRefExoticComponent<HTMLAttributes<HTMLElement> & {
694
+ as?: "span" | "div" | "footer" | "header" | "p";
695
+ } & react.RefAttributes<HTMLElement>>;
696
+ };
697
+
698
+ type ConversationItemState = 'idle' | 'unread' | 'selected';
699
+ interface ConversationRootProps extends HTMLAttributes<HTMLElement> {
700
+ children?: ReactNode;
701
+ }
702
+ interface ConversationItemProps extends ButtonHTMLAttributes<HTMLButtonElement> {
703
+ state?: ConversationItemState;
704
+ as?: 'button' | 'div' | 'a';
705
+ }
706
+ declare const Conversation: {
707
+ Root: react.ForwardRefExoticComponent<ConversationRootProps & react.RefAttributes<HTMLElement>>;
708
+ Item: react.ForwardRefExoticComponent<ConversationItemProps & react.RefAttributes<HTMLElement>>;
709
+ Leading: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
710
+ Body: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
711
+ Title: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
712
+ Preview: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
713
+ Meta: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
714
+ Badge: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
715
+ };
716
+
717
+ type ThreadMessageState = 'mine' | 'theirs' | 'pending' | 'failed';
718
+ interface ThreadRootProps extends HTMLAttributes<HTMLElement> {
719
+ children?: ReactNode;
720
+ }
721
+ interface ThreadItemProps extends HTMLAttributes<HTMLDivElement> {
722
+ state?: ThreadMessageState | `${ThreadMessageState} ${string}`;
723
+ }
724
+ declare const Thread: {
725
+ Root: react.ForwardRefExoticComponent<ThreadRootProps & react.RefAttributes<HTMLElement>>;
726
+ List: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
727
+ Item: react.ForwardRefExoticComponent<ThreadItemProps & react.RefAttributes<HTMLDivElement>>;
728
+ Bubble: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
729
+ Meta: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
730
+ Day: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
731
+ };
732
+
733
+ type ComposerState = 'idle' | 'sending' | 'disabled' | 'error';
734
+ interface ComposerRootProps extends FormHTMLAttributes<HTMLFormElement> {
735
+ state?: ComposerState;
736
+ children?: ReactNode;
737
+ }
738
+ declare const Composer: {
739
+ Root: react.ForwardRefExoticComponent<ComposerRootProps & react.RefAttributes<HTMLFormElement>>;
740
+ Input: react.ForwardRefExoticComponent<TextareaHTMLAttributes<HTMLTextAreaElement> & react.RefAttributes<HTMLTextAreaElement>>;
741
+ Actions: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
742
+ Send: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
743
+ };
744
+
745
+ interface ProfileHeaderRootProps extends HTMLAttributes<HTMLElement> {
746
+ children?: ReactNode;
747
+ }
748
+ declare const ProfileHeader: {
749
+ Root: react.ForwardRefExoticComponent<ProfileHeaderRootProps & react.RefAttributes<HTMLElement>>;
750
+ Media: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
751
+ Identity: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
752
+ Metrics: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
753
+ Actions: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
754
+ Body: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
755
+ };
756
+
757
+ interface BarRootProps extends HTMLAttributes<HTMLDivElement> {
758
+ /** HTML element to render — defaults to `'header'`. */
759
+ as?: 'header' | 'nav' | 'footer' | 'div';
760
+ /** Flex gap between zones. */
761
+ gap?: string;
762
+ }
763
+ interface ZoneProps extends HTMLAttributes<HTMLDivElement> {
764
+ /** Which zone — controls flex behavior. */
765
+ zone: Zone;
766
+ }
767
+ type Zone = 'leading' | 'center' | 'trailing';
768
+ declare const Zone: react.ForwardRefExoticComponent<ZoneProps & react.RefAttributes<HTMLDivElement>>;
769
+ /**
770
+ * Bar — horizontal layout primitive for toolbars, headers, footers.
771
+ *
772
+ * Guarantees no overlap by enforcing a three-zone flex contract:
773
+ * - **Leading** — `flex: 0 1 auto`, shrinks before overflowing.
774
+ * - **Center** — `flex: 1 1 0`, absorbs available space, truncates.
775
+ * - **Trailing** — `flex: 0 1 auto`, shrinks before overflowing.
776
+ *
777
+ * The root is always `display: flex; flex-wrap: nowrap` with
778
+ * `overflow: hidden` so children can never escape the bar boundary.
779
+ * Responsive collapse is handled by the Panda recipe (min-widths, wrap
780
+ * at breakpoints) — never by ad-hoc CSS.
781
+ */
782
+ declare const Bar: {
783
+ Root: react.ForwardRefExoticComponent<BarRootProps & react.RefAttributes<HTMLDivElement>>;
784
+ Leading: react.ForwardRefExoticComponent<Omit<ZoneProps, "zone"> & react.RefAttributes<HTMLDivElement>>;
785
+ Center: react.ForwardRefExoticComponent<Omit<ZoneProps, "zone"> & react.RefAttributes<HTMLDivElement>>;
786
+ Trailing: react.ForwardRefExoticComponent<Omit<ZoneProps, "zone"> & react.RefAttributes<HTMLDivElement>>;
787
+ };
788
+
789
+ interface PanelGroupProps extends HTMLAttributes<HTMLDivElement> {
790
+ orientation?: 'horizontal' | 'vertical';
791
+ children?: ReactNode;
792
+ }
793
+ interface PanelRootProps extends HTMLAttributes<HTMLDivElement> {
794
+ /** Accessible name; also the collapsed vertical rail text. */
795
+ label: string;
796
+ /** Start expanded (default true). */
797
+ defaultExpanded?: boolean;
798
+ /** Controlled expanded state. */
799
+ expanded?: boolean;
800
+ /** Whether the panel can collapse (default true). */
801
+ collapsible?: boolean;
802
+ onExpandedChange?: (expanded: boolean) => void;
803
+ children?: ReactNode;
804
+ }
805
+ interface PanelTriggerProps extends ButtonHTMLAttributes<HTMLButtonElement> {
806
+ }
807
+ interface PanelLabelProps extends HTMLAttributes<HTMLSpanElement> {
808
+ /** Override root label text. */
809
+ children?: ReactNode;
810
+ }
811
+ interface PanelContentProps extends HTMLAttributes<HTMLDivElement> {
812
+ /** Prefer Scroll.Root inside for overflow regions. */
813
+ children?: ReactNode;
814
+ }
815
+ declare const Panel: {
816
+ Group: react.ForwardRefExoticComponent<PanelGroupProps & react.RefAttributes<HTMLDivElement>>;
817
+ Root: react.ForwardRefExoticComponent<PanelRootProps & react.RefAttributes<HTMLDivElement>>;
818
+ Trigger: react.ForwardRefExoticComponent<PanelTriggerProps & react.RefAttributes<HTMLButtonElement>>;
819
+ Label: react.ForwardRefExoticComponent<PanelLabelProps & react.RefAttributes<HTMLSpanElement>>;
820
+ Content: react.ForwardRefExoticComponent<PanelContentProps & react.RefAttributes<HTMLDivElement>>;
821
+ };
822
+
823
+ type AppShellChrome = 'idle' | 'overlayOpen';
824
+ interface AppShellContextValue {
825
+ chrome: AppShellChrome;
826
+ dockVisible: boolean;
827
+ overlayOpen: boolean;
828
+ send: ReturnType<typeof useAeonMachine<typeof appShellMachine>>[1];
829
+ }
830
+ declare function useAppShellContext(): AppShellContextValue;
831
+ interface AppShellRootProps extends HTMLAttributes<HTMLDivElement> {
832
+ /** Initial dock visibility when uncontrolled. */
833
+ defaultDockVisible?: boolean;
834
+ /** Controlled dock visibility — syncs into the shell machine. */
835
+ dockVisible?: boolean;
836
+ children?: ReactNode;
837
+ }
838
+ /**
839
+ * AppShell — application chrome frame.
840
+ * Machine: idle | overlayOpen (+ dockVisible context).
841
+ * UI = f(snapshot): content dims / scrim when overlayOpen; dock hides when dockVisible=false.
842
+ */
843
+ declare const AppShell: {
844
+ Root: react.ForwardRefExoticComponent<AppShellRootProps & react.RefAttributes<HTMLDivElement>>;
845
+ Header: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & {
846
+ as?: "main" | "div" | "aside" | "footer" | "header";
847
+ } & react.RefAttributes<HTMLDivElement>>;
848
+ Subheader: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & {
849
+ as?: "main" | "div" | "aside" | "footer" | "header";
850
+ } & react.RefAttributes<HTMLDivElement>>;
851
+ Content: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & {
852
+ as?: "main" | "div" | "aside" | "footer" | "header";
853
+ } & react.RefAttributes<HTMLDivElement>>;
854
+ Aside: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & {
855
+ as?: "main" | "div" | "aside" | "footer" | "header";
856
+ } & react.RefAttributes<HTMLDivElement>>;
857
+ Footer: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & {
858
+ as?: "main" | "div" | "aside" | "footer" | "header";
859
+ } & react.RefAttributes<HTMLDivElement>>;
860
+ Dock: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
861
+ Scrim: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
862
+ };
863
+
864
+ interface ContentContextValue {
865
+ state: ContentRegionState;
866
+ error: string | null;
867
+ send: ReturnType<typeof useAeonMachine<typeof contentRegionMachine>>[1];
868
+ }
869
+ declare function useContentContext(): ContentContextValue;
870
+ interface ContentRootProps extends HTMLAttributes<HTMLDivElement> {
871
+ /**
872
+ * Controlled face — projects parent/app machine onto Content slots
873
+ * (same pattern as Button `status`). When set, slot visibility uses this
874
+ * value instead of the internal contentRegionMachine leaf.
875
+ */
876
+ state?: ContentRegionState;
877
+ children?: ReactNode;
878
+ }
879
+ /**
880
+ * Content — status-slotted region. Machine totality maps 1:1 onto parts.
881
+ * States: idle | pending | empty | error | ready | loadingMore | success
882
+ * Drive via contentRegionMachine events, or project with Root `state` prop.
883
+ */
884
+ declare const Content: {
885
+ Root: react.ForwardRefExoticComponent<ContentRootProps & react.RefAttributes<HTMLDivElement>>;
886
+ Toolbar: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
887
+ Body: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
888
+ Pending: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
889
+ Empty: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
890
+ Error: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
891
+ Success: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
892
+ Sentinel: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
893
+ };
894
+
895
+ interface NavRootProps extends HTMLAttributes<HTMLElement> {
896
+ defaultValue?: string;
897
+ value?: string;
898
+ onValueChange?: (value: string) => void;
899
+ as?: 'nav' | 'div';
900
+ orientation?: 'horizontal' | 'vertical';
901
+ children?: ReactNode;
902
+ }
903
+ interface NavItemProps extends ButtonHTMLAttributes<HTMLButtonElement> {
904
+ value: string;
905
+ }
906
+ /**
907
+ * Nav — navigational collection (top links, bottom tabs, side rail).
908
+ * Selection: tabsMachine. Item states: inactive | active | disabled.
909
+ */
910
+ declare const Nav: {
911
+ Root: react.ForwardRefExoticComponent<NavRootProps & react.RefAttributes<HTMLElement>>;
912
+ Item: react.ForwardRefExoticComponent<NavItemProps & react.RefAttributes<HTMLButtonElement>>;
913
+ Indicator: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
914
+ Label: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
915
+ Icon: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
916
+ Badge: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
917
+ };
918
+
919
+ interface StickyBarContextValue {
920
+ state: StickyBarState;
921
+ offsetPx: number;
922
+ send: ReturnType<typeof useAeonMachine<typeof stickyBarMachine>>[1];
923
+ }
924
+ declare function useStickyBarContext(): StickyBarContextValue;
925
+ interface StickyBarRootProps extends HTMLAttributes<HTMLElement> {
926
+ as?: 'header' | 'nav' | 'footer' | 'div';
927
+ /** Placement — top | bottom | inline (CSS contract). */
928
+ placement?: 'top' | 'bottom' | 'inline';
929
+ /** Initial machine state. */
930
+ defaultState?: StickyBarState;
931
+ children?: ReactNode;
932
+ }
933
+ /**
934
+ * StickyBar — sticky/fixed chrome band with machine totality.
935
+ * States: floating | docked | collapsed | hidden
936
+ * Zones reuse bar anatomy (leading / center / trailing / seam).
937
+ */
938
+ declare const StickyBar: {
939
+ Root: react.ForwardRefExoticComponent<StickyBarRootProps & react.RefAttributes<HTMLElement>>;
940
+ Leading: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
941
+ Center: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
942
+ Trailing: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
943
+ Seam: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
557
944
  };
558
945
 
559
946
  declare function useLayoutMode(spec: ResponsiveLayoutSpec): {
@@ -561,4 +948,4 @@ declare function useLayoutMode(spec: ResponsiveLayoutSpec): {
561
948
  composition: LayoutCompositionSpec;
562
949
  };
563
950
 
564
- export { Accordion, type AccordionItemContentProps, type AccordionItemProps, type AccordionItemTriggerProps, type AccordionRootProps, Async, AsyncActions, AsyncProvider, AsyncReadout, AsyncRegion, AsyncRoot, AsyncTrack, Avatar, type AvatarRootProps, type AvatarStatus, Button, type ButtonRootProps, type ButtonStatus, Checkbox, type CheckboxRootProps, Combobox, type ComboboxItemProps, type ComboboxRootProps, Dialog, type DialogPortalProps, type DialogRootProps, Field, type FieldControlProps, type FieldRootProps, type FieldTextareaProps, Menu, type MenuItemProps, type MenuPositionerProps, type MenuRootProps, PinInput, type PinInputInputProps, type PinInputRootProps, Popover, type PopoverPositionerProps, type PopoverRootProps, Progress, type ProgressRootProps, RadioGroup, type RadioGroupItemProps, type RadioGroupRootProps, Scroll, type ScrollRootProps, type ScrollViewportProps, Select, type SelectContentProps, type SelectItemProps, type SelectPositionerProps, type SelectRootProps, Separator, type SeparatorRootProps, Slider, type SliderRootProps, Switch, type SwitchRootProps, Tabs, type TabsContentProps, type TabsRootProps, type TabsTriggerProps, Toast, ToastItem, type ToastPlacement, type ToastProviderProps, type ToastPublishOptions, type ToastRecord, type ToastRootProps, type ToastStore, type ToastViewportProps, Tooltip, type TooltipPositionerProps, type TooltipRootProps, useAeonMachine, useAsyncContext, useFieldContext, useLayoutMode, useScrollContext, useScrollState, useToast, useToastStore };
951
+ export { Accordion, type AccordionItemContentProps, type AccordionItemProps, type AccordionItemTriggerProps, type AccordionRootProps, AppShell, type AppShellRootProps, Async, AsyncActions, AsyncProvider, AsyncReadout, AsyncRoot, AsyncTrack, Avatar, type AvatarRootProps, type AvatarStatus, Bar, type BarRootProps, Button, type ButtonRootProps, type ButtonStatus, Checkbox, type CheckboxRootProps, Combobox, type ComboboxItemProps, type ComboboxRootProps, Composer, type ComposerRootProps, type ComposerState, Content, type ContentRootProps, Conversation, type ConversationItemProps, type ConversationItemState, type ConversationRootProps, Dialog, type DialogPortalProps, type DialogRootProps, Entry, type EntryListProps, type EntryRootProps, type EntryState, Field, type FieldControlProps, type FieldRootProps, type FieldTextareaProps, Identity, type IdentityRootProps, ListRow, type ListRowRootProps, Menu, type MenuItemProps, type MenuPositionerProps, type MenuRootProps, MetricStrip, type MetricStripRootProps, Nav, type NavItemProps, type NavRootProps, Panel, type PanelContentProps, type PanelGroupProps, type PanelLabelProps, type PanelRootProps, type PanelTriggerProps, PinInput, type PinInputInputProps, type PinInputRootProps, Popover, type PopoverPositionerProps, type PopoverRootProps, type PresenceState, ProfileHeader, type ProfileHeaderRootProps, Progress, type ProgressRootProps, RadioGroup, type RadioGroupItemProps, type RadioGroupRootProps, Scroll, type ScrollRootProps, type ScrollViewportProps, Select, type SelectContentProps, type SelectItemProps, type SelectPositionerProps, type SelectRootProps, Separator, type SeparatorRootProps, Slider, type SliderRootProps, StickyBar, type StickyBarRootProps, Switch, type SwitchRootProps, Tabs, type TabsContentProps, type TabsRootProps, type TabsTriggerProps, ThemeSwitcher, type ThemeSwitcherModeBtnProps, type ThemeSwitcherModesProps, type ThemeSwitcherRootProps, type ThemeSwitcherThemeSelectProps, Thread, type ThreadItemProps, type ThreadMessageState, type ThreadRootProps, Toast, ToastItem, type ToastPlacement, type ToastProviderProps, type ToastPublishOptions, type ToastRecord, type ToastRootProps, type ToastStore, type ToastViewportProps, Tooltip, type TooltipPositionerProps, type TooltipRootProps, asyncStatusToContentState, useAeonMachine, useAppShellContext, useAsyncContext, useContentContext, useFieldContext, useLayoutMode, useScrollContext, useScrollState, useStickyBarContext, useToast, useToastStore };