aeon-ui-engine 1.0.3 → 1.2.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 (365) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/CONSUMER.md +82 -40
  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 +255 -7
  27. package/packages/core/dist/index.js +372 -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 +234 -5
  34. package/packages/core/src/brand-theme.ts +172 -0
  35. package/packages/core/src/index.ts +1 -0
  36. package/packages/core/src/machine.test.ts +62 -1
  37. package/packages/core/src/machine.ts +93 -0
  38. package/packages/core/src/theme.ts +105 -0
  39. package/packages/panda/aeon.css +8 -0
  40. package/packages/panda/package.json +1 -1
  41. package/packages/panda/panda.config.ts +58 -1
  42. package/packages/panda/src/recipes/app-shell.ts +137 -0
  43. package/packages/panda/src/recipes/avatar.ts +131 -0
  44. package/packages/panda/src/recipes/bar.ts +206 -0
  45. package/packages/panda/src/recipes/button-group.ts +12 -4
  46. package/packages/panda/src/recipes/button.ts +1 -0
  47. package/packages/panda/src/recipes/combobox.ts +2 -1
  48. package/packages/panda/src/recipes/composer.ts +81 -0
  49. package/packages/panda/src/recipes/content.ts +104 -0
  50. package/packages/panda/src/recipes/conversation.ts +106 -0
  51. package/packages/panda/src/recipes/entry.ts +217 -0
  52. package/packages/panda/src/recipes/field.ts +12 -2
  53. package/packages/panda/src/recipes/floating.ts +26 -13
  54. package/packages/panda/src/recipes/identity.ts +73 -0
  55. package/packages/panda/src/recipes/index.ts +15 -0
  56. package/packages/panda/src/recipes/list-row.ts +109 -0
  57. package/packages/panda/src/recipes/metric-strip.ts +80 -0
  58. package/packages/panda/src/recipes/nav.ts +155 -0
  59. package/packages/panda/src/recipes/panel.ts +156 -0
  60. package/packages/panda/src/recipes/pin-input.ts +3 -2
  61. package/packages/panda/src/recipes/profile-header.ts +120 -0
  62. package/packages/panda/src/recipes/select.ts +2 -1
  63. package/packages/panda/src/recipes/slider.ts +6 -4
  64. package/packages/panda/src/recipes/theme-switcher.ts +110 -0
  65. package/packages/panda/src/recipes/thread.ts +88 -0
  66. package/packages/panda/src/theme/catalog-types.ts +2 -0
  67. package/packages/panda/src/theme/catalog.ts +23 -0
  68. package/packages/panda/src/theme/chrome.css +2 -1
  69. package/packages/panda/src/theme/consumer-shell.css +129 -0
  70. package/packages/panda/src/theme/electron.css +30 -0
  71. package/packages/panda/src/theme/global-theme-css.ts +9 -0
  72. package/packages/panda/src/theme/omarchy.themes.ts +607 -0
  73. package/packages/panda/src/theme/palette.ts +3 -0
  74. package/packages/panda/src/theme/scrollbars.css +58 -21
  75. package/packages/panda/src/theme/themes.config.ts +39 -1
  76. package/packages/panda/styled-system/css/conditions.mjs +1 -1
  77. package/packages/panda/styled-system/css/css.mjs +1 -1
  78. package/packages/panda/styled-system/css/sva.mjs +9 -4
  79. package/packages/panda/styled-system/helpers.mjs +11 -22
  80. package/packages/panda/styled-system/jsx/create-style-context.d.ts +54 -0
  81. package/packages/panda/styled-system/jsx/create-style-context.mjs +121 -0
  82. package/packages/panda/styled-system/jsx/factory.mjs +14 -5
  83. package/packages/panda/styled-system/jsx/index.d.ts +1 -0
  84. package/packages/panda/styled-system/jsx/index.mjs +1 -0
  85. package/packages/panda/styled-system/jsx/is-valid-prop.mjs +2 -2
  86. package/packages/panda/styled-system/patterns/aspect-ratio.d.ts +0 -1
  87. package/packages/panda/styled-system/patterns/bleed.d.ts +0 -1
  88. package/packages/panda/styled-system/patterns/box.d.ts +0 -1
  89. package/packages/panda/styled-system/patterns/center.d.ts +0 -1
  90. package/packages/panda/styled-system/patterns/circle.d.ts +0 -1
  91. package/packages/panda/styled-system/patterns/container.d.ts +0 -1
  92. package/packages/panda/styled-system/patterns/cq.d.ts +0 -1
  93. package/packages/panda/styled-system/patterns/divider.d.ts +0 -1
  94. package/packages/panda/styled-system/patterns/flex.d.ts +0 -1
  95. package/packages/panda/styled-system/patterns/float.d.ts +0 -1
  96. package/packages/panda/styled-system/patterns/grid-item.d.ts +0 -1
  97. package/packages/panda/styled-system/patterns/grid.d.ts +0 -1
  98. package/packages/panda/styled-system/patterns/grid.mjs +1 -1
  99. package/packages/panda/styled-system/patterns/hstack.d.ts +0 -1
  100. package/packages/panda/styled-system/patterns/hstack.mjs +1 -1
  101. package/packages/panda/styled-system/patterns/link-overlay.d.ts +0 -1
  102. package/packages/panda/styled-system/patterns/spacer.d.ts +0 -1
  103. package/packages/panda/styled-system/patterns/spacer.mjs +6 -2
  104. package/packages/panda/styled-system/patterns/square.d.ts +0 -1
  105. package/packages/panda/styled-system/patterns/stack.d.ts +0 -1
  106. package/packages/panda/styled-system/patterns/stack.mjs +1 -1
  107. package/packages/panda/styled-system/patterns/visually-hidden.d.ts +0 -1
  108. package/packages/panda/styled-system/patterns/vstack.d.ts +0 -1
  109. package/packages/panda/styled-system/patterns/vstack.mjs +1 -1
  110. package/packages/panda/styled-system/patterns/wrap.d.ts +0 -1
  111. package/packages/panda/styled-system/patterns/wrap.mjs +1 -1
  112. package/packages/panda/styled-system/recipes/aeon-accordion.d.ts +4 -3
  113. package/packages/panda/styled-system/recipes/aeon-accordion.mjs +1 -0
  114. package/packages/panda/styled-system/recipes/aeon-app-shell.d.ts +34 -0
  115. package/packages/panda/styled-system/recipes/aeon-app-shell.mjs +70 -0
  116. package/packages/panda/styled-system/recipes/aeon-async.d.ts +4 -3
  117. package/packages/panda/styled-system/recipes/aeon-async.mjs +1 -0
  118. package/packages/panda/styled-system/recipes/aeon-avatar.d.ts +36 -0
  119. package/packages/panda/styled-system/recipes/aeon-avatar.mjs +57 -0
  120. package/packages/panda/styled-system/recipes/aeon-badge.d.ts +3 -0
  121. package/packages/panda/styled-system/recipes/aeon-bar.d.ts +40 -0
  122. package/packages/panda/styled-system/recipes/aeon-bar.mjs +77 -0
  123. package/packages/panda/styled-system/recipes/aeon-button-group.d.ts +3 -2
  124. package/packages/panda/styled-system/recipes/aeon-button.d.ts +3 -2
  125. package/packages/panda/styled-system/recipes/aeon-checkbox.d.ts +4 -1
  126. package/packages/panda/styled-system/recipes/aeon-checkbox.mjs +1 -0
  127. package/packages/panda/styled-system/recipes/aeon-combobox.d.ts +4 -3
  128. package/packages/panda/styled-system/recipes/aeon-combobox.mjs +1 -0
  129. package/packages/panda/styled-system/recipes/aeon-composer.d.ts +31 -0
  130. package/packages/panda/styled-system/recipes/aeon-composer.mjs +45 -0
  131. package/packages/panda/styled-system/recipes/aeon-content.d.ts +34 -0
  132. package/packages/panda/styled-system/recipes/aeon-content.mjs +70 -0
  133. package/packages/panda/styled-system/recipes/aeon-conversation.d.ts +31 -0
  134. package/packages/panda/styled-system/recipes/aeon-conversation.mjs +61 -0
  135. package/packages/panda/styled-system/recipes/aeon-dialog.d.ts +4 -1
  136. package/packages/panda/styled-system/recipes/aeon-dialog.mjs +1 -0
  137. package/packages/panda/styled-system/recipes/aeon-entry.d.ts +38 -0
  138. package/packages/panda/styled-system/recipes/aeon-entry.mjs +100 -0
  139. package/packages/panda/styled-system/recipes/aeon-field.d.ts +4 -3
  140. package/packages/panda/styled-system/recipes/aeon-field.mjs +1 -0
  141. package/packages/panda/styled-system/recipes/aeon-identity.d.ts +36 -0
  142. package/packages/panda/styled-system/recipes/aeon-identity.mjs +63 -0
  143. package/packages/panda/styled-system/recipes/aeon-list-row.d.ts +33 -0
  144. package/packages/panda/styled-system/recipes/aeon-list-row.mjs +49 -0
  145. package/packages/panda/styled-system/recipes/aeon-menu.d.ts +4 -1
  146. package/packages/panda/styled-system/recipes/aeon-menu.mjs +1 -0
  147. package/packages/panda/styled-system/recipes/aeon-metric-strip.d.ts +36 -0
  148. package/packages/panda/styled-system/recipes/aeon-metric-strip.mjs +54 -0
  149. package/packages/panda/styled-system/recipes/aeon-nav.d.ts +38 -0
  150. package/packages/panda/styled-system/recipes/aeon-nav.mjs +69 -0
  151. package/packages/panda/styled-system/recipes/aeon-panel.d.ts +34 -0
  152. package/packages/panda/styled-system/recipes/aeon-panel.mjs +58 -0
  153. package/packages/panda/styled-system/recipes/aeon-pin-input.d.ts +4 -1
  154. package/packages/panda/styled-system/recipes/aeon-pin-input.mjs +1 -0
  155. package/packages/panda/styled-system/recipes/aeon-popover.d.ts +4 -1
  156. package/packages/panda/styled-system/recipes/aeon-popover.mjs +1 -0
  157. package/packages/panda/styled-system/recipes/aeon-profile-header.d.ts +36 -0
  158. package/packages/panda/styled-system/recipes/aeon-profile-header.mjs +62 -0
  159. package/packages/panda/styled-system/recipes/aeon-progress.d.ts +4 -1
  160. package/packages/panda/styled-system/recipes/aeon-progress.mjs +1 -0
  161. package/packages/panda/styled-system/recipes/aeon-radio-group.d.ts +4 -1
  162. package/packages/panda/styled-system/recipes/aeon-radio-group.mjs +1 -0
  163. package/packages/panda/styled-system/recipes/aeon-scroll.d.ts +4 -3
  164. package/packages/panda/styled-system/recipes/aeon-scroll.mjs +1 -0
  165. package/packages/panda/styled-system/recipes/aeon-select.d.ts +4 -3
  166. package/packages/panda/styled-system/recipes/aeon-select.mjs +1 -0
  167. package/packages/panda/styled-system/recipes/aeon-separator.d.ts +4 -1
  168. package/packages/panda/styled-system/recipes/aeon-separator.mjs +1 -0
  169. package/packages/panda/styled-system/recipes/aeon-slider.d.ts +4 -1
  170. package/packages/panda/styled-system/recipes/aeon-slider.mjs +1 -0
  171. package/packages/panda/styled-system/recipes/aeon-switch.d.ts +4 -1
  172. package/packages/panda/styled-system/recipes/aeon-switch.mjs +1 -0
  173. package/packages/panda/styled-system/recipes/aeon-tabs.d.ts +4 -1
  174. package/packages/panda/styled-system/recipes/aeon-tabs.mjs +1 -0
  175. package/packages/panda/styled-system/recipes/aeon-theme-switcher.d.ts +34 -0
  176. package/packages/panda/styled-system/recipes/aeon-theme-switcher.mjs +59 -0
  177. package/packages/panda/styled-system/recipes/aeon-thread.d.ts +31 -0
  178. package/packages/panda/styled-system/recipes/aeon-thread.mjs +53 -0
  179. package/packages/panda/styled-system/recipes/aeon-toast.d.ts +4 -1
  180. package/packages/panda/styled-system/recipes/aeon-toast.mjs +1 -0
  181. package/packages/panda/styled-system/recipes/aeon-tooltip.d.ts +4 -1
  182. package/packages/panda/styled-system/recipes/aeon-tooltip.mjs +1 -0
  183. package/packages/panda/styled-system/recipes/index.d.ts +16 -1
  184. package/packages/panda/styled-system/recipes/index.mjs +16 -1
  185. package/packages/panda/styled-system/styles.css +2317 -450
  186. package/packages/panda/styled-system/tokens/index.mjs +43 -7
  187. package/packages/panda/styled-system/tokens/tokens.d.ts +5 -5
  188. package/packages/panda/styled-system/types/composition.d.ts +86 -23
  189. package/packages/panda/styled-system/types/conditions.d.ts +34 -10
  190. package/packages/panda/styled-system/types/csstype.d.ts +6405 -5133
  191. package/packages/panda/styled-system/types/jsx.d.ts +27 -10
  192. package/packages/panda/styled-system/types/pattern.d.ts +4 -4
  193. package/packages/panda/styled-system/types/prop-type.d.ts +11 -1
  194. package/packages/panda/styled-system/types/style-props.d.ts +2763 -2165
  195. package/packages/panda/styled-system/types/system-types.d.ts +38 -80
  196. package/packages/panda/theme-runtime.css +945 -0
  197. package/packages/primitives/dist/chunk-4NOKRUSG.js +81 -0
  198. package/packages/primitives/dist/chunk-R25CUHNF.js +46 -0
  199. package/packages/primitives/dist/chunk-RO2DMFN5.js +89 -0
  200. package/packages/primitives/dist/chunk-V5D7LS4J.js +61 -0
  201. package/packages/primitives/dist/chunk-YBPNI2LI.js +70 -0
  202. package/packages/primitives/dist/index.d.ts +5 -0
  203. package/packages/primitives/dist/index.js +46 -14
  204. package/packages/primitives/dist/machines/app-nav.d.ts +96 -0
  205. package/packages/primitives/dist/machines/app-nav.js +12 -0
  206. package/packages/primitives/dist/machines/app-shell.d.ts +57 -0
  207. package/packages/primitives/dist/machines/app-shell.js +8 -0
  208. package/packages/primitives/dist/machines/async.d.ts +4 -4
  209. package/packages/primitives/dist/machines/content-region.d.ts +72 -0
  210. package/packages/primitives/dist/machines/content-region.js +8 -0
  211. package/packages/primitives/dist/machines/panel.d.ts +50 -0
  212. package/packages/primitives/dist/machines/panel.js +6 -0
  213. package/packages/primitives/dist/machines/sticky-bar.d.ts +62 -0
  214. package/packages/primitives/dist/machines/sticky-bar.js +8 -0
  215. package/packages/primitives/node_modules/.bin/esbuild +21 -0
  216. package/packages/primitives/node_modules/.bin/vite +21 -0
  217. package/packages/primitives/node_modules/.bin/vitest +2 -2
  218. package/packages/primitives/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
  219. package/packages/primitives/package.json +15 -5
  220. package/packages/primitives/scripts/xstate-introspect.mjs +35 -0
  221. package/packages/primitives/src/__tests__/app-nav.test.ts +30 -0
  222. package/packages/primitives/src/index.ts +5 -0
  223. package/packages/primitives/src/machines/app-nav.ts +107 -0
  224. package/packages/primitives/src/machines/app-shell.ts +63 -0
  225. package/packages/primitives/src/machines/content-region.ts +107 -0
  226. package/packages/primitives/src/machines/panel.ts +71 -0
  227. package/packages/primitives/src/machines/sticky-bar.ts +89 -0
  228. package/packages/react/dist/index.d.ts +536 -17
  229. package/packages/react/dist/index.js +2163 -479
  230. package/packages/react/node_modules/.bin/esbuild +21 -0
  231. package/packages/react/node_modules/.bin/vite +21 -0
  232. package/packages/react/node_modules/.bin/vitest +2 -2
  233. package/packages/react/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
  234. package/packages/react/package.json +18 -7
  235. package/packages/react/src/app-nav/index.tsx +249 -0
  236. package/packages/react/src/app-shell/index.tsx +154 -0
  237. package/packages/react/src/async/index.tsx +6 -1
  238. package/packages/react/src/async/map-content-state.ts +18 -0
  239. package/packages/react/src/avatar/index.tsx +23 -1
  240. package/packages/react/src/bar/index.tsx +101 -0
  241. package/packages/react/src/button/index.tsx +4 -2
  242. package/packages/react/src/composer/index.tsx +75 -0
  243. package/packages/react/src/content/index.tsx +149 -0
  244. package/packages/react/src/conversation/index.tsx +78 -0
  245. package/packages/react/src/entry/index.tsx +85 -0
  246. package/packages/react/src/field/index.tsx +31 -18
  247. package/packages/react/src/hooks/use-fit-text.ts +59 -0
  248. package/packages/react/src/identity/index.tsx +110 -0
  249. package/packages/react/src/index.ts +19 -0
  250. package/packages/react/src/list-row/index.tsx +80 -0
  251. package/packages/react/src/metric-strip/index.tsx +88 -0
  252. package/packages/react/src/nav/index.tsx +155 -0
  253. package/packages/react/src/panel/index.tsx +267 -0
  254. package/packages/react/src/profile-header/index.tsx +91 -0
  255. package/packages/react/src/prompt/index.tsx +161 -0
  256. package/packages/react/src/radio-group/index.tsx +19 -7
  257. package/packages/react/src/slider/index.tsx +3 -1
  258. package/packages/react/src/status-banner/index.tsx +84 -0
  259. package/packages/react/src/sticky-bar/index.tsx +135 -0
  260. package/packages/react/src/switch/index.tsx +7 -1
  261. package/packages/react/src/theme-switcher/index.tsx +227 -0
  262. package/packages/react/src/thread/index.tsx +95 -0
  263. package/packages/react/src/toast/primitives.tsx +2 -2
  264. package/packages/react/src/tooltip/tooltip.test.tsx +9 -1
  265. package/packages/react/tsconfig.json +2 -1
  266. package/packages/schemas/README.md +52 -0
  267. package/packages/schemas/dist/index.d.ts +287 -0
  268. package/packages/schemas/dist/index.js +701 -0
  269. package/packages/schemas/json/accordion.json +132 -0
  270. package/packages/schemas/json/async.json +161 -0
  271. package/packages/schemas/json/button.json +170 -0
  272. package/packages/schemas/json/catalog.json +2299 -0
  273. package/packages/schemas/json/checkbox.json +136 -0
  274. package/packages/schemas/json/combobox.json +130 -0
  275. package/packages/schemas/json/dialog.json +154 -0
  276. package/packages/schemas/json/field.json +171 -0
  277. package/packages/schemas/json/menu.json +138 -0
  278. package/packages/schemas/json/popover.json +133 -0
  279. package/packages/schemas/json/progress.json +137 -0
  280. package/packages/schemas/json/scroll.json +129 -0
  281. package/packages/schemas/json/select.json +140 -0
  282. package/packages/schemas/json/switch.json +136 -0
  283. package/packages/schemas/json/tabs.json +135 -0
  284. package/packages/schemas/json/toast.json +141 -0
  285. package/packages/schemas/json/tooltip.json +123 -0
  286. package/packages/schemas/node_modules/.bin/esbuild +21 -0
  287. package/packages/schemas/node_modules/.bin/jiti +21 -0
  288. package/packages/schemas/node_modules/.bin/tsc +21 -0
  289. package/packages/schemas/node_modules/.bin/tsserver +21 -0
  290. package/packages/schemas/node_modules/.bin/tsup +21 -0
  291. package/packages/schemas/node_modules/.bin/tsup-node +21 -0
  292. package/packages/schemas/node_modules/.bin/tsx +21 -0
  293. package/packages/schemas/node_modules/.bin/vite +21 -0
  294. package/packages/schemas/node_modules/.bin/vitest +21 -0
  295. package/packages/schemas/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
  296. package/packages/schemas/package.json +56 -0
  297. package/packages/schemas/prompts/cursorrules.md +64 -0
  298. package/packages/schemas/prompts/statecharts.md +31 -0
  299. package/packages/schemas/prompts/system.md +30 -0
  300. package/packages/schemas/registry/catalog.json +54 -0
  301. package/packages/schemas/registry/components/accordion.json +132 -0
  302. package/packages/schemas/registry/components/async.json +161 -0
  303. package/packages/schemas/registry/components/button.json +170 -0
  304. package/packages/schemas/registry/components/checkbox.json +136 -0
  305. package/packages/schemas/registry/components/combobox.json +130 -0
  306. package/packages/schemas/registry/components/dialog.json +154 -0
  307. package/packages/schemas/registry/components/field.json +171 -0
  308. package/packages/schemas/registry/components/menu.json +138 -0
  309. package/packages/schemas/registry/components/popover.json +133 -0
  310. package/packages/schemas/registry/components/progress.json +137 -0
  311. package/packages/schemas/registry/components/scroll.json +129 -0
  312. package/packages/schemas/registry/components/select.json +140 -0
  313. package/packages/schemas/registry/components/switch.json +136 -0
  314. package/packages/schemas/registry/components/tabs.json +135 -0
  315. package/packages/schemas/registry/components/toast.json +141 -0
  316. package/packages/schemas/registry/components/tooltip.json +123 -0
  317. package/packages/schemas/registry/machines/async.json +219 -0
  318. package/packages/schemas/registry/machines/buttonLifecycle.json +224 -0
  319. package/packages/schemas/registry/machines/dialog.json +143 -0
  320. package/packages/schemas/registry/machines/field.json +275 -0
  321. package/packages/schemas/scripts/emit.ts +61 -0
  322. package/packages/schemas/src/aeon-to-schema.test.ts +70 -0
  323. package/packages/schemas/src/aeon-to-schema.ts +206 -0
  324. package/packages/schemas/src/agent-bridge.ts +82 -0
  325. package/packages/schemas/src/components.ts +307 -0
  326. package/packages/schemas/src/index.test.ts +25 -0
  327. package/packages/schemas/src/index.ts +25 -0
  328. package/packages/schemas/src/prompts.ts +121 -0
  329. package/packages/schemas/src/registry.ts +73 -0
  330. package/packages/schemas/src/schema-builder.ts +87 -0
  331. package/packages/schemas/tsconfig.json +9 -0
  332. package/packages/solid/package.json +2 -2
  333. package/packages/svelte/node_modules/.bin/esbuild +21 -0
  334. package/packages/svelte/node_modules/.bin/vite +4 -4
  335. package/packages/svelte/package.json +15 -5
  336. package/packages/ui/README.md +19 -6
  337. package/packages/ui/dist/index.d.ts +254 -9
  338. package/packages/ui/dist/index.js +690 -139
  339. package/packages/ui/src/app-nav.tsx +2 -0
  340. package/packages/ui/src/app-shell.tsx +44 -0
  341. package/packages/ui/src/async.tsx +2 -1
  342. package/packages/ui/src/avatar.tsx +35 -0
  343. package/packages/ui/src/bar.tsx +34 -0
  344. package/packages/ui/src/composer.tsx +27 -0
  345. package/packages/ui/src/content.tsx +43 -0
  346. package/packages/ui/src/conversation.tsx +43 -0
  347. package/packages/ui/src/entry.tsx +76 -0
  348. package/packages/ui/src/field.tsx +5 -0
  349. package/packages/ui/src/identity.tsx +35 -0
  350. package/packages/ui/src/index.ts +20 -0
  351. package/packages/ui/src/list-row.tsx +30 -0
  352. package/packages/ui/src/metric-strip.tsx +29 -0
  353. package/packages/ui/src/nav.tsx +46 -0
  354. package/packages/ui/src/panel.tsx +39 -0
  355. package/packages/ui/src/profile-header.tsx +35 -0
  356. package/packages/ui/src/prompt.tsx +29 -0
  357. package/packages/ui/src/status-banner.tsx +1 -0
  358. package/packages/ui/src/sticky-bar.tsx +42 -0
  359. package/packages/ui/src/switch.tsx +17 -4
  360. package/packages/ui/src/theme-switcher.tsx +41 -0
  361. package/packages/ui/src/thread.tsx +35 -0
  362. package/packages/vue/package.json +3 -3
  363. package/scripts/vite-aliases.mjs +65 -3
  364. package/scripts/xstate-introspect.mjs +68 -0
  365. 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';
7
- export { createAsyncMachine, fieldMachine } from '@aeon-ui/primitives';
6
+ import { AsyncContext, ContentRegionState, AppNavChild, StickyBarState } from '@aeon-ui/primitives';
7
+ export { AppNavChild, AppNavContext, 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';
@@ -80,6 +81,51 @@ declare const Dialog: {
80
81
  CloseTrigger: react.ForwardRefExoticComponent<ButtonHTMLAttributes<HTMLButtonElement> & react.RefAttributes<HTMLButtonElement>>;
81
82
  };
82
83
 
84
+ type PromptStatus = 'pending' | 'confirming' | 'dismissed' | 'confirmed';
85
+ interface PromptRootProps {
86
+ open?: boolean;
87
+ defaultOpen?: boolean;
88
+ onOpenChange?: (open: boolean) => void;
89
+ /** Projected onto data-aeon-state (default: pending when open). */
90
+ status?: PromptStatus;
91
+ children?: ReactNode;
92
+ className?: string;
93
+ }
94
+ declare const Prompt: {
95
+ Root: react.ForwardRefExoticComponent<PromptRootProps & react.RefAttributes<HTMLDivElement>>;
96
+ Trigger: react.ForwardRefExoticComponent<ButtonHTMLAttributes<HTMLButtonElement> & react.RefAttributes<HTMLButtonElement>>;
97
+ Portal: react.ForwardRefExoticComponent<DialogPortalProps & react.RefAttributes<HTMLDivElement>>;
98
+ Backdrop: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
99
+ Positioner: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
100
+ Content: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
101
+ Title: react.ForwardRefExoticComponent<HTMLAttributes<HTMLHeadingElement> & react.RefAttributes<HTMLHeadingElement>>;
102
+ Description: react.ForwardRefExoticComponent<HTMLAttributes<HTMLParagraphElement> & react.RefAttributes<HTMLParagraphElement>>;
103
+ CloseTrigger: react.ForwardRefExoticComponent<ButtonHTMLAttributes<HTMLButtonElement> & react.RefAttributes<HTMLButtonElement>>;
104
+ Eyebrow: react.ForwardRefExoticComponent<HTMLAttributes<HTMLParagraphElement> & react.RefAttributes<HTMLParagraphElement>>;
105
+ Meta: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDListElement> & react.RefAttributes<HTMLDListElement>>;
106
+ Amount: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
107
+ Actions: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
108
+ Primary: react.ForwardRefExoticComponent<ButtonHTMLAttributes<HTMLButtonElement> & react.RefAttributes<HTMLButtonElement>>;
109
+ Secondary: react.ForwardRefExoticComponent<ButtonHTMLAttributes<HTMLButtonElement> & react.RefAttributes<HTMLButtonElement>>;
110
+ };
111
+
112
+ type StatusBannerTone = 'info' | 'success' | 'warning' | 'danger';
113
+ interface StatusBannerRootProps extends HTMLAttributes<HTMLDivElement> {
114
+ tone?: StatusBannerTone;
115
+ /** Machine-ish status string projected to data-aeon-state (e.g. ready, downloading). */
116
+ status?: string;
117
+ children?: ReactNode;
118
+ }
119
+ /** Non-blocking top-of-app notice (updates, sync, offline). */
120
+ declare const StatusBanner: {
121
+ Root: react.ForwardRefExoticComponent<StatusBannerRootProps & react.RefAttributes<HTMLDivElement>>;
122
+ Copy: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
123
+ Title: react.ForwardRefExoticComponent<HTMLAttributes<HTMLElement> & react.RefAttributes<HTMLElement>>;
124
+ Body: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
125
+ Actions: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
126
+ Action: react.ForwardRefExoticComponent<ButtonHTMLAttributes<HTMLButtonElement> & react.RefAttributes<HTMLButtonElement>>;
127
+ };
128
+
83
129
  interface TabsRootProps {
84
130
  value?: string;
85
131
  defaultValue?: string;
@@ -247,10 +293,10 @@ declare const defaultMachine: xstate.StateMachine<AsyncContext<unknown>, {
247
293
  type: "RESOLVE";
248
294
  data: unknown;
249
295
  }, {}, never, {
250
- type: "clear";
296
+ type: "resolve";
251
297
  params: xstate.NonReducibleUnknown;
252
298
  } | {
253
- type: "resolve";
299
+ type: "clear";
254
300
  params: xstate.NonReducibleUnknown;
255
301
  } | {
256
302
  type: "markStale";
@@ -286,17 +332,14 @@ interface AsyncProviderProps {
286
332
  }
287
333
  declare function AsyncProvider({ children, machine }: AsyncProviderProps): react_jsx_runtime.JSX.Element;
288
334
 
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;
335
+ /** Map async machine leaf → Content face (product UI — not Track). */
336
+ declare function asyncStatusToContentState(status: string): ContentRegionState;
299
337
 
338
+ /**
339
+ * Async — fetch lifecycle driver (`createAsyncMachine`).
340
+ * Product UI: project status with Content slots via `asyncStatusToContentState`.
341
+ * `Track` is a totality/debug rail — not Instant default (see docs/PRIMITIVE_COVERAGE.md).
342
+ */
300
343
  declare const Async: {
301
344
  Root: react.ForwardRefExoticComponent<AsyncRootProps & react.RefAttributes<HTMLDivElement>>;
302
345
  Provider: typeof AsyncProvider;
@@ -306,7 +349,13 @@ declare const Async: {
306
349
  };
307
350
 
308
351
  interface FieldContextValue {
352
+ /** Primary visual face — idle | dirty | invalid | pending (same hierarchy as Button). */
353
+ face: ReturnType<typeof fieldFace>;
354
+ /** @deprecated Use `face` — kept as an alias for older callers. */
309
355
  stateAttr: string;
356
+ interaction: string;
357
+ validation: string;
358
+ submission: string;
310
359
  send: ReturnType<typeof useAeonMachine<typeof fieldMachine>>[1];
311
360
  invalid: boolean;
312
361
  pending: boolean;
@@ -327,6 +376,7 @@ declare const Field: {
327
376
  Root: react.ForwardRefExoticComponent<FieldRootProps & react.RefAttributes<HTMLDivElement>>;
328
377
  Label: react.ForwardRefExoticComponent<LabelHTMLAttributes<HTMLLabelElement> & react.RefAttributes<HTMLLabelElement>>;
329
378
  Control: react.ForwardRefExoticComponent<FieldControlProps & react.RefAttributes<HTMLInputElement>>;
379
+ Input: react.ForwardRefExoticComponent<FieldControlProps & react.RefAttributes<HTMLInputElement>>;
330
380
  Textarea: react.ForwardRefExoticComponent<FieldTextareaProps & react.RefAttributes<HTMLTextAreaElement>>;
331
381
  Message: react.ForwardRefExoticComponent<react.HTMLAttributes<HTMLParagraphElement> & react.RefAttributes<HTMLParagraphElement>>;
332
382
  Hint: react.ForwardRefExoticComponent<react.HTMLAttributes<HTMLParagraphElement> & react.RefAttributes<HTMLParagraphElement>>;
@@ -545,15 +595,472 @@ declare const Toast: {
545
595
  Show: typeof Show;
546
596
  };
547
597
 
598
+ interface ThemeSwitcherRootProps extends HTMLAttributes<HTMLDivElement> {
599
+ /** Initial theme — overridden by localStorage / system preference. */
600
+ defaultTheme?: string;
601
+ /** Initial mode — overridden by localStorage / system preference. */
602
+ defaultMode?: AeonColorMode;
603
+ /** Called when theme or mode changes. */
604
+ onThemeChange?: (themeId: string, mode: AeonColorMode) => void;
605
+ }
606
+ interface ThemeSwitcherModesProps extends HTMLAttributes<HTMLDivElement> {
607
+ }
608
+ interface ThemeSwitcherModeBtnProps extends HTMLAttributes<HTMLButtonElement> {
609
+ mode: AeonColorMode;
610
+ active: boolean;
611
+ }
612
+ interface ThemeSwitcherThemeSelectProps extends HTMLAttributes<HTMLDivElement> {
613
+ }
614
+ /**
615
+ * ThemeSwitcher — headless compound component for theme + mode control.
616
+ *
617
+ * Uses `initAeonTheme()` on mount to read localStorage / system preference.
618
+ * All state changes call `applyAeonTheme()` to update `<html>` dataset attrs.
619
+ *
620
+ * @example
621
+ * <ThemeSwitcher.Root>
622
+ * <ThemeSwitcher.Modes>
623
+ * <ThemeSwitcher.ModeBtn mode="light" active={mode === 'light'} />
624
+ * <ThemeSwitcher.ModeBtn mode="dark" active={mode === 'dark'} />
625
+ * </ThemeSwitcher.Modes>
626
+ * <ThemeSwitcher.ThemeSelect>
627
+ * <ThemeSwitcher.ThemeTrigger />
628
+ * </ThemeSwitcher.ThemeSelect>
629
+ * </ThemeSwitcher.Root>
630
+ */
631
+ declare const ThemeSwitcher: {
632
+ Root: react.ForwardRefExoticComponent<ThemeSwitcherRootProps & react.RefAttributes<HTMLDivElement>>;
633
+ Modes: react.ForwardRefExoticComponent<ThemeSwitcherModesProps & react.RefAttributes<HTMLDivElement>>;
634
+ ModeBtn: react.ForwardRefExoticComponent<ThemeSwitcherModeBtnProps & react.RefAttributes<HTMLButtonElement>>;
635
+ ThemeSelect: react.ForwardRefExoticComponent<ThemeSwitcherThemeSelectProps & react.RefAttributes<HTMLDivElement>>;
636
+ ThemeTrigger: react.ForwardRefExoticComponent<HTMLAttributes<HTMLButtonElement> & react.RefAttributes<HTMLButtonElement>>;
637
+ };
638
+
548
639
  type AvatarStatus = 'idle' | 'loading' | 'loaded' | 'error';
549
640
  interface AvatarRootProps extends HTMLAttributes<HTMLSpanElement> {
550
641
  children?: ReactNode;
551
642
  className?: string;
552
643
  }
644
+ type PresenceState = 'idle' | 'active' | 'away' | 'busy' | 'offline';
553
645
  declare const Avatar: {
554
646
  Root: react.ForwardRefExoticComponent<AvatarRootProps & react.RefAttributes<HTMLSpanElement>>;
555
647
  Image: react.ForwardRefExoticComponent<ImgHTMLAttributes<HTMLImageElement> & react.RefAttributes<HTMLImageElement>>;
556
648
  Fallback: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
649
+ Badge: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & {
650
+ presence?: PresenceState;
651
+ } & react.RefAttributes<HTMLSpanElement>>;
652
+ };
653
+
654
+ interface IdentityRootProps extends HTMLAttributes<HTMLElement> {
655
+ as?: 'div' | 'a' | 'button';
656
+ size?: 'sm' | 'md' | 'lg';
657
+ children?: ReactNode;
658
+ }
659
+ declare const Identity: {
660
+ Root: react.ForwardRefExoticComponent<IdentityRootProps & react.RefAttributes<HTMLElement>>;
661
+ Avatar: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
662
+ Title: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
663
+ Subtitle: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
664
+ Meta: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
665
+ Trailing: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
666
+ };
667
+
668
+ interface MetricStripRootProps extends HTMLAttributes<HTMLElement> {
669
+ /** cluster = ultra-dense chips; loose = columnar stats */
670
+ density?: 'cluster' | 'loose';
671
+ children?: ReactNode;
672
+ }
673
+ declare const MetricStrip: {
674
+ Root: react.ForwardRefExoticComponent<MetricStripRootProps & react.RefAttributes<HTMLElement>>;
675
+ Chip: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
676
+ Value: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
677
+ Label: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
678
+ };
679
+
680
+ interface ListRowRootProps extends ButtonHTMLAttributes<HTMLButtonElement> {
681
+ as?: 'button' | 'div' | 'a';
682
+ children?: ReactNode;
683
+ }
684
+ declare const ListRow: {
685
+ Root: react.ForwardRefExoticComponent<ListRowRootProps & react.RefAttributes<HTMLElement>>;
686
+ Leading: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
687
+ Label: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
688
+ Description: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
689
+ Trailing: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
690
+ };
691
+
692
+ /** Card face — idle resting · selected highlight · muted de-emphasized. */
693
+ type EntryState = 'idle' | 'selected' | 'muted';
694
+ interface EntryListProps extends HTMLAttributes<HTMLDivElement> {
695
+ children?: ReactNode;
696
+ }
697
+ interface EntryRootProps extends HTMLAttributes<HTMLElement> {
698
+ as?: 'article' | 'div' | 'li' | 'section';
699
+ state?: EntryState;
700
+ children?: ReactNode;
701
+ }
702
+ declare const Entry: {
703
+ List: react.ForwardRefExoticComponent<EntryListProps & react.RefAttributes<HTMLDivElement>>;
704
+ Root: react.ForwardRefExoticComponent<EntryRootProps & react.RefAttributes<HTMLElement>>;
705
+ Header: react.ForwardRefExoticComponent<HTMLAttributes<HTMLElement> & {
706
+ as?: "span" | "div" | "footer" | "header" | "p";
707
+ } & react.RefAttributes<HTMLElement>>;
708
+ Leading: react.ForwardRefExoticComponent<HTMLAttributes<HTMLElement> & {
709
+ as?: "span" | "div" | "footer" | "header" | "p";
710
+ } & react.RefAttributes<HTMLElement>>;
711
+ Heading: react.ForwardRefExoticComponent<HTMLAttributes<HTMLElement> & {
712
+ as?: "span" | "div" | "footer" | "header" | "p";
713
+ } & react.RefAttributes<HTMLElement>>;
714
+ Title: react.ForwardRefExoticComponent<HTMLAttributes<HTMLElement> & {
715
+ as?: "span" | "div" | "footer" | "header" | "p";
716
+ } & react.RefAttributes<HTMLElement>>;
717
+ Subtitle: react.ForwardRefExoticComponent<HTMLAttributes<HTMLElement> & {
718
+ as?: "span" | "div" | "footer" | "header" | "p";
719
+ } & react.RefAttributes<HTMLElement>>;
720
+ Meta: react.ForwardRefExoticComponent<HTMLAttributes<HTMLElement> & {
721
+ as?: "span" | "div" | "footer" | "header" | "p";
722
+ } & react.RefAttributes<HTMLElement>>;
723
+ Media: react.ForwardRefExoticComponent<HTMLAttributes<HTMLElement> & {
724
+ as?: "span" | "div" | "footer" | "header" | "p";
725
+ } & react.RefAttributes<HTMLElement>>;
726
+ Body: react.ForwardRefExoticComponent<HTMLAttributes<HTMLElement> & {
727
+ as?: "span" | "div" | "footer" | "header" | "p";
728
+ } & react.RefAttributes<HTMLElement>>;
729
+ Values: react.ForwardRefExoticComponent<HTMLAttributes<HTMLElement> & {
730
+ as?: "span" | "div" | "footer" | "header" | "p";
731
+ } & react.RefAttributes<HTMLElement>>;
732
+ Value: react.ForwardRefExoticComponent<HTMLAttributes<HTMLElement> & {
733
+ as?: "span" | "div" | "footer" | "header" | "p";
734
+ } & react.RefAttributes<HTMLElement>>;
735
+ Actions: react.ForwardRefExoticComponent<HTMLAttributes<HTMLElement> & {
736
+ as?: "span" | "div" | "footer" | "header" | "p";
737
+ } & react.RefAttributes<HTMLElement>>;
738
+ Footer: react.ForwardRefExoticComponent<HTMLAttributes<HTMLElement> & {
739
+ as?: "span" | "div" | "footer" | "header" | "p";
740
+ } & react.RefAttributes<HTMLElement>>;
741
+ };
742
+
743
+ type ConversationItemState = 'idle' | 'unread' | 'selected';
744
+ interface ConversationRootProps extends HTMLAttributes<HTMLElement> {
745
+ children?: ReactNode;
746
+ }
747
+ interface ConversationItemProps extends ButtonHTMLAttributes<HTMLButtonElement> {
748
+ state?: ConversationItemState;
749
+ as?: 'button' | 'div' | 'a';
750
+ }
751
+ declare const Conversation: {
752
+ Root: react.ForwardRefExoticComponent<ConversationRootProps & react.RefAttributes<HTMLElement>>;
753
+ Item: react.ForwardRefExoticComponent<ConversationItemProps & react.RefAttributes<HTMLElement>>;
754
+ Leading: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
755
+ Body: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
756
+ Title: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
757
+ Preview: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
758
+ Meta: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
759
+ Badge: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
760
+ };
761
+
762
+ type ThreadMessageState = 'mine' | 'theirs' | 'pending' | 'failed';
763
+ interface ThreadRootProps extends HTMLAttributes<HTMLElement> {
764
+ children?: ReactNode;
765
+ }
766
+ interface ThreadItemProps extends HTMLAttributes<HTMLDivElement> {
767
+ state?: ThreadMessageState | `${ThreadMessageState} ${string}`;
768
+ }
769
+ declare const Thread: {
770
+ Root: react.ForwardRefExoticComponent<ThreadRootProps & react.RefAttributes<HTMLElement>>;
771
+ List: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
772
+ Item: react.ForwardRefExoticComponent<ThreadItemProps & react.RefAttributes<HTMLDivElement>>;
773
+ Bubble: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
774
+ Meta: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
775
+ Day: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
776
+ };
777
+
778
+ type ComposerState = 'idle' | 'sending' | 'disabled' | 'error';
779
+ interface ComposerRootProps extends FormHTMLAttributes<HTMLFormElement> {
780
+ state?: ComposerState;
781
+ children?: ReactNode;
782
+ }
783
+ declare const Composer: {
784
+ Root: react.ForwardRefExoticComponent<ComposerRootProps & react.RefAttributes<HTMLFormElement>>;
785
+ Input: react.ForwardRefExoticComponent<TextareaHTMLAttributes<HTMLTextAreaElement> & react.RefAttributes<HTMLTextAreaElement>>;
786
+ Actions: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
787
+ Send: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
788
+ };
789
+
790
+ interface ProfileHeaderRootProps extends HTMLAttributes<HTMLElement> {
791
+ children?: ReactNode;
792
+ }
793
+ declare const ProfileHeader: {
794
+ Root: react.ForwardRefExoticComponent<ProfileHeaderRootProps & react.RefAttributes<HTMLElement>>;
795
+ Media: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
796
+ Identity: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
797
+ Metrics: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
798
+ Actions: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
799
+ Body: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
800
+ };
801
+
802
+ interface BarRootProps extends HTMLAttributes<HTMLDivElement> {
803
+ /** HTML element to render — defaults to `'header'`. */
804
+ as?: 'header' | 'nav' | 'footer' | 'div';
805
+ /** Flex gap between zones. */
806
+ gap?: string;
807
+ }
808
+ interface ZoneProps extends HTMLAttributes<HTMLDivElement> {
809
+ /** Which zone — controls flex behavior. */
810
+ zone: Zone;
811
+ }
812
+ type Zone = 'leading' | 'center' | 'trailing';
813
+ declare const Zone: react.ForwardRefExoticComponent<ZoneProps & react.RefAttributes<HTMLDivElement>>;
814
+ /**
815
+ * Bar — horizontal layout primitive for toolbars, headers, footers.
816
+ *
817
+ * Guarantees no overlap by enforcing a three-zone flex contract:
818
+ * - **Leading** — `flex: 0 1 auto`, shrinks before overflowing.
819
+ * - **Center** — `flex: 1 1 0`, absorbs available space, truncates.
820
+ * - **Trailing** — `flex: 0 1 auto`, shrinks before overflowing.
821
+ *
822
+ * The root is always `display: flex; flex-wrap: nowrap` with
823
+ * `overflow: hidden` so children can never escape the bar boundary.
824
+ * Responsive collapse is handled by the Panda recipe (min-widths, wrap
825
+ * at breakpoints) — never by ad-hoc CSS.
826
+ */
827
+ declare const Bar: {
828
+ Root: react.ForwardRefExoticComponent<BarRootProps & react.RefAttributes<HTMLDivElement>>;
829
+ Leading: react.ForwardRefExoticComponent<Omit<ZoneProps, "zone"> & react.RefAttributes<HTMLDivElement>>;
830
+ Center: react.ForwardRefExoticComponent<Omit<ZoneProps, "zone"> & react.RefAttributes<HTMLDivElement>>;
831
+ Trailing: react.ForwardRefExoticComponent<Omit<ZoneProps, "zone"> & react.RefAttributes<HTMLDivElement>>;
832
+ };
833
+
834
+ interface PanelGroupProps extends HTMLAttributes<HTMLDivElement> {
835
+ orientation?: 'horizontal' | 'vertical';
836
+ children?: ReactNode;
837
+ }
838
+ interface PanelRootProps extends HTMLAttributes<HTMLDivElement> {
839
+ /** Accessible name; also the collapsed vertical rail text. */
840
+ label: string;
841
+ /** Start expanded (default true). */
842
+ defaultExpanded?: boolean;
843
+ /** Controlled expanded state. */
844
+ expanded?: boolean;
845
+ /** Whether the panel can collapse (default true). */
846
+ collapsible?: boolean;
847
+ onExpandedChange?: (expanded: boolean) => void;
848
+ children?: ReactNode;
849
+ }
850
+ interface PanelTriggerProps extends ButtonHTMLAttributes<HTMLButtonElement> {
851
+ }
852
+ interface PanelLabelProps extends HTMLAttributes<HTMLSpanElement> {
853
+ /** Override root label text. */
854
+ children?: ReactNode;
855
+ }
856
+ interface PanelContentProps extends HTMLAttributes<HTMLDivElement> {
857
+ /** Prefer Scroll.Root inside for overflow regions. */
858
+ children?: ReactNode;
859
+ }
860
+ declare const Panel: {
861
+ Group: react.ForwardRefExoticComponent<PanelGroupProps & react.RefAttributes<HTMLDivElement>>;
862
+ Root: react.ForwardRefExoticComponent<PanelRootProps & react.RefAttributes<HTMLDivElement>>;
863
+ Trigger: react.ForwardRefExoticComponent<PanelTriggerProps & react.RefAttributes<HTMLButtonElement>>;
864
+ Label: react.ForwardRefExoticComponent<PanelLabelProps & react.RefAttributes<HTMLSpanElement>>;
865
+ Content: react.ForwardRefExoticComponent<PanelContentProps & react.RefAttributes<HTMLDivElement>>;
866
+ };
867
+
868
+ type AppShellChrome = 'idle' | 'overlayOpen';
869
+ interface AppShellContextValue {
870
+ chrome: AppShellChrome;
871
+ dockVisible: boolean;
872
+ overlayOpen: boolean;
873
+ send: ReturnType<typeof useAeonMachine<typeof appShellMachine>>[1];
874
+ }
875
+ declare function useAppShellContext(): AppShellContextValue;
876
+ interface AppShellRootProps extends HTMLAttributes<HTMLDivElement> {
877
+ /** Initial dock visibility when uncontrolled. */
878
+ defaultDockVisible?: boolean;
879
+ /** Controlled dock visibility — syncs into the shell machine. */
880
+ dockVisible?: boolean;
881
+ children?: ReactNode;
882
+ }
883
+ /**
884
+ * AppShell — application chrome frame.
885
+ * Machine: idle | overlayOpen (+ dockVisible context).
886
+ * UI = f(snapshot): content dims / scrim when overlayOpen; dock hides when dockVisible=false.
887
+ */
888
+ declare const AppShell: {
889
+ Root: react.ForwardRefExoticComponent<AppShellRootProps & react.RefAttributes<HTMLDivElement>>;
890
+ Header: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & {
891
+ as?: "main" | "div" | "aside" | "footer" | "header";
892
+ } & react.RefAttributes<HTMLDivElement>>;
893
+ Subheader: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & {
894
+ as?: "main" | "div" | "aside" | "footer" | "header";
895
+ } & react.RefAttributes<HTMLDivElement>>;
896
+ Content: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & {
897
+ as?: "main" | "div" | "aside" | "footer" | "header";
898
+ } & react.RefAttributes<HTMLDivElement>>;
899
+ Aside: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & {
900
+ as?: "main" | "div" | "aside" | "footer" | "header";
901
+ } & react.RefAttributes<HTMLDivElement>>;
902
+ Footer: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & {
903
+ as?: "main" | "div" | "aside" | "footer" | "header";
904
+ } & react.RefAttributes<HTMLDivElement>>;
905
+ Dock: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
906
+ Scrim: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
907
+ };
908
+
909
+ interface AppNavContextValue {
910
+ section: string;
911
+ stack: AppNavChild[];
912
+ child: AppNavChild | null;
913
+ stateAttr: string;
914
+ send: ReturnType<typeof useAeonMachine<typeof appNavMachine>>[1];
915
+ setSection: (section: string) => void;
916
+ push: (child: AppNavChild) => void;
917
+ replace: (child: AppNavChild) => void;
918
+ pop: () => void;
919
+ popTo: (id: string) => void;
920
+ clear: () => void;
921
+ }
922
+ declare function useAppNav(): AppNavContextValue;
923
+ /** Use the machine without the compound tree. */
924
+ declare function useAppNavMachine(input?: {
925
+ section?: string;
926
+ stack?: AppNavChild[];
927
+ }): {
928
+ section: string;
929
+ stack: AppNavChild[];
930
+ child: AppNavChild | null;
931
+ stateAttr: string;
932
+ send: (event: {
933
+ type: "SET_SECTION";
934
+ section: string;
935
+ } | {
936
+ type: "PUSH";
937
+ child: AppNavChild;
938
+ } | {
939
+ type: "REPLACE";
940
+ child: AppNavChild;
941
+ } | {
942
+ type: "POP";
943
+ } | {
944
+ type: "POP_TO";
945
+ id: string;
946
+ } | {
947
+ type: "CLEAR";
948
+ } | {
949
+ type: "RESET";
950
+ section: string;
951
+ }) => void;
952
+ setSection: (next: string) => void;
953
+ push: (next: AppNavChild) => void;
954
+ replace: (next: AppNavChild) => void;
955
+ pop: () => void;
956
+ popTo: (id: string) => void;
957
+ clear: () => void;
958
+ reset: (next: string) => void;
959
+ };
960
+ interface AppNavRootProps extends HTMLAttributes<HTMLDivElement> {
961
+ defaultSection?: string;
962
+ children?: ReactNode;
963
+ }
964
+ interface AppNavSectionProps extends ButtonHTMLAttributes<HTMLButtonElement> {
965
+ value: string;
966
+ }
967
+ interface AppNavBreadcrumbProps extends HTMLAttributes<HTMLElement> {
968
+ /** Labels for section + each stack entry (length = 1 + stack.length). */
969
+ labels?: string[];
970
+ }
971
+ /**
972
+ * AppNav — section rail + detail stack.
973
+ * Machine: SET_SECTION / PUSH / POP / CLEAR. UI = f(section, stack).
974
+ */
975
+ declare const AppNav: {
976
+ Root: react.ForwardRefExoticComponent<AppNavRootProps & react.RefAttributes<HTMLDivElement>>;
977
+ Rail: react.ForwardRefExoticComponent<HTMLAttributes<HTMLElement> & react.RefAttributes<HTMLElement>>;
978
+ Section: react.ForwardRefExoticComponent<AppNavSectionProps & react.RefAttributes<HTMLButtonElement>>;
979
+ Stage: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
980
+ Breadcrumb: react.ForwardRefExoticComponent<AppNavBreadcrumbProps & react.RefAttributes<HTMLElement>>;
981
+ Back: react.ForwardRefExoticComponent<ButtonHTMLAttributes<HTMLButtonElement> & react.RefAttributes<HTMLButtonElement>>;
982
+ };
983
+
984
+ interface ContentContextValue {
985
+ state: ContentRegionState;
986
+ error: string | null;
987
+ send: ReturnType<typeof useAeonMachine<typeof contentRegionMachine>>[1];
988
+ }
989
+ declare function useContentContext(): ContentContextValue;
990
+ interface ContentRootProps extends HTMLAttributes<HTMLDivElement> {
991
+ /**
992
+ * Controlled face — projects parent/app machine onto Content slots
993
+ * (same pattern as Button `status`). When set, slot visibility uses this
994
+ * value instead of the internal contentRegionMachine leaf.
995
+ */
996
+ state?: ContentRegionState;
997
+ children?: ReactNode;
998
+ }
999
+ /**
1000
+ * Content — status-slotted region. Machine totality maps 1:1 onto parts.
1001
+ * States: idle | pending | empty | error | ready | loadingMore | success
1002
+ * Drive via contentRegionMachine events, or project with Root `state` prop.
1003
+ */
1004
+ declare const Content: {
1005
+ Root: react.ForwardRefExoticComponent<ContentRootProps & react.RefAttributes<HTMLDivElement>>;
1006
+ Toolbar: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
1007
+ Body: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
1008
+ Pending: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
1009
+ Empty: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
1010
+ Error: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
1011
+ Success: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
1012
+ Sentinel: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
1013
+ };
1014
+
1015
+ interface NavRootProps extends HTMLAttributes<HTMLElement> {
1016
+ defaultValue?: string;
1017
+ value?: string;
1018
+ onValueChange?: (value: string) => void;
1019
+ as?: 'nav' | 'div';
1020
+ orientation?: 'horizontal' | 'vertical';
1021
+ children?: ReactNode;
1022
+ }
1023
+ interface NavItemProps extends ButtonHTMLAttributes<HTMLButtonElement> {
1024
+ value: string;
1025
+ }
1026
+ /**
1027
+ * Nav — navigational collection (top links, bottom tabs, side rail).
1028
+ * Selection: tabsMachine. Item states: inactive | active | disabled.
1029
+ */
1030
+ declare const Nav: {
1031
+ Root: react.ForwardRefExoticComponent<NavRootProps & react.RefAttributes<HTMLElement>>;
1032
+ Item: react.ForwardRefExoticComponent<NavItemProps & react.RefAttributes<HTMLButtonElement>>;
1033
+ Indicator: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
1034
+ Label: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
1035
+ Icon: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
1036
+ Badge: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & react.RefAttributes<HTMLSpanElement>>;
1037
+ };
1038
+
1039
+ interface StickyBarContextValue {
1040
+ state: StickyBarState;
1041
+ offsetPx: number;
1042
+ send: ReturnType<typeof useAeonMachine<typeof stickyBarMachine>>[1];
1043
+ }
1044
+ declare function useStickyBarContext(): StickyBarContextValue;
1045
+ interface StickyBarRootProps extends HTMLAttributes<HTMLElement> {
1046
+ as?: 'header' | 'nav' | 'footer' | 'div';
1047
+ /** Placement — top | bottom | inline (CSS contract). */
1048
+ placement?: 'top' | 'bottom' | 'inline';
1049
+ /** Initial machine state. */
1050
+ defaultState?: StickyBarState;
1051
+ children?: ReactNode;
1052
+ }
1053
+ /**
1054
+ * StickyBar — sticky/fixed chrome band with machine totality.
1055
+ * States: floating | docked | collapsed | hidden
1056
+ * Zones reuse bar anatomy (leading / center / trailing / seam).
1057
+ */
1058
+ declare const StickyBar: {
1059
+ Root: react.ForwardRefExoticComponent<StickyBarRootProps & react.RefAttributes<HTMLElement>>;
1060
+ Leading: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
1061
+ Center: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
1062
+ Trailing: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
1063
+ Seam: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
557
1064
  };
558
1065
 
559
1066
  declare function useLayoutMode(spec: ResponsiveLayoutSpec): {
@@ -561,4 +1068,16 @@ declare function useLayoutMode(spec: ResponsiveLayoutSpec): {
561
1068
  composition: LayoutCompositionSpec;
562
1069
  };
563
1070
 
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 };
1071
+ type FitTextOptions = {
1072
+ maxPx?: number;
1073
+ minPx?: number;
1074
+ /** Re-run when this value changes (e.g. display string). */
1075
+ watch?: unknown;
1076
+ };
1077
+ /**
1078
+ * Shrink font-size (then scale) so `contentRef` fits inside `slotRef`
1079
+ * without expanding parent layout. Universal for balance rows, titles, tickers.
1080
+ */
1081
+ declare function useFitText(slotRef: RefObject<HTMLElement | null>, contentRef: RefObject<HTMLElement | null>, opts?: FitTextOptions): void;
1082
+
1083
+ export { Accordion, type AccordionItemContentProps, type AccordionItemProps, type AccordionItemTriggerProps, type AccordionRootProps, AppNav, type AppNavBreadcrumbProps, type AppNavRootProps, type AppNavSectionProps, 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, Prompt, type PromptRootProps, type PromptStatus, 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, StatusBanner, type StatusBannerRootProps, type StatusBannerTone, 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, useAppNav, useAppNavMachine, useAppShellContext, useAsyncContext, useContentContext, useFieldContext, useFitText, useLayoutMode, useScrollContext, useScrollState, useStickyBarContext, useToast, useToastStore };