aeon-ui-engine 1.0.2 → 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 (545) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/CONSUMER.md +83 -0
  3. package/INTEGRATION.md +2 -0
  4. package/README.md +56 -14
  5. package/package.json +24 -1
  6. package/packages/cli/README.md +17 -0
  7. package/packages/cli/dist/bin.d.ts +1 -0
  8. package/packages/cli/dist/bin.js +35 -0
  9. package/packages/cli/dist/chunk-IW5NT2Z2.js +103 -0
  10. package/packages/cli/dist/index.d.ts +10 -0
  11. package/packages/cli/dist/index.js +6 -0
  12. package/packages/cli/node_modules/.bin/esbuild +21 -0
  13. package/packages/cli/node_modules/.bin/jiti +21 -0
  14. package/packages/cli/node_modules/.bin/tsc +21 -0
  15. package/packages/cli/node_modules/.bin/tsserver +21 -0
  16. package/packages/cli/node_modules/.bin/tsup +21 -0
  17. package/packages/cli/node_modules/.bin/tsup-node +21 -0
  18. package/packages/cli/node_modules/.bin/tsx +21 -0
  19. package/packages/cli/node_modules/.bin/vite +21 -0
  20. package/packages/cli/node_modules/.bin/vitest +21 -0
  21. package/packages/cli/package.json +50 -0
  22. package/packages/cli/src/bin.ts +34 -0
  23. package/packages/cli/src/index.ts +1 -0
  24. package/packages/cli/src/init.ts +107 -0
  25. package/packages/cli/tsconfig.json +10 -0
  26. package/packages/core/README.md +7 -1
  27. package/packages/core/dist/index.d.ts +425 -0
  28. package/packages/core/dist/index.js +635 -0
  29. package/packages/core/node_modules/.bin/esbuild +21 -0
  30. package/packages/core/node_modules/.bin/jiti +21 -0
  31. package/packages/core/node_modules/.bin/tsc +21 -0
  32. package/packages/core/node_modules/.bin/tsserver +21 -0
  33. package/packages/core/node_modules/.bin/tsup +21 -0
  34. package/packages/core/node_modules/.bin/tsup-node +21 -0
  35. package/packages/core/node_modules/.bin/tsx +21 -0
  36. package/packages/core/node_modules/.bin/vite +21 -0
  37. package/packages/core/node_modules/.bin/vitest +21 -0
  38. package/packages/core/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
  39. package/packages/core/package.json +17 -5
  40. package/packages/core/src/anatomy.ts +196 -5
  41. package/packages/core/src/machine.test.ts +62 -1
  42. package/packages/core/src/machine.ts +93 -0
  43. package/packages/core/src/theme.ts +105 -0
  44. package/packages/geometry/dist/index.d.ts +50 -0
  45. package/packages/geometry/dist/index.js +88 -0
  46. package/packages/geometry/node_modules/.bin/esbuild +21 -0
  47. package/packages/geometry/node_modules/.bin/jiti +21 -0
  48. package/packages/geometry/node_modules/.bin/tsc +21 -0
  49. package/packages/geometry/node_modules/.bin/tsserver +21 -0
  50. package/packages/geometry/node_modules/.bin/tsup +21 -0
  51. package/packages/geometry/node_modules/.bin/tsup-node +21 -0
  52. package/packages/geometry/node_modules/.bin/tsx +21 -0
  53. package/packages/panda/aeon.css +7 -0
  54. package/packages/panda/package.json +1 -1
  55. package/packages/panda/panda.config.ts +58 -1
  56. package/packages/panda/src/recipes/app-shell.ts +137 -0
  57. package/packages/panda/src/recipes/avatar.ts +131 -0
  58. package/packages/panda/src/recipes/bar.ts +206 -0
  59. package/packages/panda/src/recipes/button-group.ts +12 -4
  60. package/packages/panda/src/recipes/button.ts +1 -0
  61. package/packages/panda/src/recipes/combobox.ts +2 -1
  62. package/packages/panda/src/recipes/composer.ts +81 -0
  63. package/packages/panda/src/recipes/content.ts +104 -0
  64. package/packages/panda/src/recipes/conversation.ts +106 -0
  65. package/packages/panda/src/recipes/entry.ts +217 -0
  66. package/packages/panda/src/recipes/field.ts +12 -2
  67. package/packages/panda/src/recipes/floating.ts +26 -13
  68. package/packages/panda/src/recipes/identity.ts +73 -0
  69. package/packages/panda/src/recipes/index.ts +15 -0
  70. package/packages/panda/src/recipes/list-row.ts +109 -0
  71. package/packages/panda/src/recipes/metric-strip.ts +80 -0
  72. package/packages/panda/src/recipes/nav.ts +155 -0
  73. package/packages/panda/src/recipes/panel.ts +156 -0
  74. package/packages/panda/src/recipes/pin-input.ts +3 -2
  75. package/packages/panda/src/recipes/profile-header.ts +120 -0
  76. package/packages/panda/src/recipes/select.ts +2 -1
  77. package/packages/panda/src/recipes/slider.ts +6 -4
  78. package/packages/panda/src/recipes/theme-switcher.ts +110 -0
  79. package/packages/panda/src/recipes/thread.ts +88 -0
  80. package/packages/panda/src/theme/catalog-types.ts +2 -0
  81. package/packages/panda/src/theme/catalog.ts +23 -0
  82. package/packages/panda/src/theme/chrome.css +2 -1
  83. package/packages/panda/src/theme/global-theme-css.ts +9 -0
  84. package/packages/panda/src/theme/omarchy.themes.ts +607 -0
  85. package/packages/panda/src/theme/palette.ts +3 -0
  86. package/packages/panda/src/theme/scrollbars.css +58 -21
  87. package/packages/panda/src/theme/themes.config.ts +39 -1
  88. package/packages/panda/styled-system/css/conditions.mjs +1 -1
  89. package/packages/panda/styled-system/css/css.mjs +1 -1
  90. package/packages/panda/styled-system/css/sva.mjs +9 -4
  91. package/packages/panda/styled-system/helpers.mjs +11 -22
  92. package/packages/panda/styled-system/jsx/create-style-context.d.ts +54 -0
  93. package/packages/panda/styled-system/jsx/create-style-context.mjs +121 -0
  94. package/packages/panda/styled-system/jsx/factory.mjs +14 -5
  95. package/packages/panda/styled-system/jsx/index.d.ts +1 -0
  96. package/packages/panda/styled-system/jsx/index.mjs +1 -0
  97. package/packages/panda/styled-system/jsx/is-valid-prop.mjs +2 -2
  98. package/packages/panda/styled-system/patterns/aspect-ratio.d.ts +0 -1
  99. package/packages/panda/styled-system/patterns/bleed.d.ts +0 -1
  100. package/packages/panda/styled-system/patterns/box.d.ts +0 -1
  101. package/packages/panda/styled-system/patterns/center.d.ts +0 -1
  102. package/packages/panda/styled-system/patterns/circle.d.ts +0 -1
  103. package/packages/panda/styled-system/patterns/container.d.ts +0 -1
  104. package/packages/panda/styled-system/patterns/cq.d.ts +0 -1
  105. package/packages/panda/styled-system/patterns/divider.d.ts +0 -1
  106. package/packages/panda/styled-system/patterns/flex.d.ts +0 -1
  107. package/packages/panda/styled-system/patterns/float.d.ts +0 -1
  108. package/packages/panda/styled-system/patterns/grid-item.d.ts +0 -1
  109. package/packages/panda/styled-system/patterns/grid.d.ts +0 -1
  110. package/packages/panda/styled-system/patterns/grid.mjs +1 -1
  111. package/packages/panda/styled-system/patterns/hstack.d.ts +0 -1
  112. package/packages/panda/styled-system/patterns/hstack.mjs +1 -1
  113. package/packages/panda/styled-system/patterns/link-overlay.d.ts +0 -1
  114. package/packages/panda/styled-system/patterns/spacer.d.ts +0 -1
  115. package/packages/panda/styled-system/patterns/spacer.mjs +6 -2
  116. package/packages/panda/styled-system/patterns/square.d.ts +0 -1
  117. package/packages/panda/styled-system/patterns/stack.d.ts +0 -1
  118. package/packages/panda/styled-system/patterns/stack.mjs +1 -1
  119. package/packages/panda/styled-system/patterns/visually-hidden.d.ts +0 -1
  120. package/packages/panda/styled-system/patterns/vstack.d.ts +0 -1
  121. package/packages/panda/styled-system/patterns/vstack.mjs +1 -1
  122. package/packages/panda/styled-system/patterns/wrap.d.ts +0 -1
  123. package/packages/panda/styled-system/patterns/wrap.mjs +1 -1
  124. package/packages/panda/styled-system/recipes/aeon-accordion.d.ts +4 -3
  125. package/packages/panda/styled-system/recipes/aeon-accordion.mjs +1 -0
  126. package/packages/panda/styled-system/recipes/aeon-app-shell.d.ts +34 -0
  127. package/packages/panda/styled-system/recipes/aeon-app-shell.mjs +70 -0
  128. package/packages/panda/styled-system/recipes/aeon-async.d.ts +4 -3
  129. package/packages/panda/styled-system/recipes/aeon-async.mjs +1 -0
  130. package/packages/panda/styled-system/recipes/aeon-avatar.d.ts +36 -0
  131. package/packages/panda/styled-system/recipes/aeon-avatar.mjs +57 -0
  132. package/packages/panda/styled-system/recipes/aeon-badge.d.ts +3 -0
  133. package/packages/panda/styled-system/recipes/aeon-bar.d.ts +40 -0
  134. package/packages/panda/styled-system/recipes/aeon-bar.mjs +77 -0
  135. package/packages/panda/styled-system/recipes/aeon-button-group.d.ts +3 -2
  136. package/packages/panda/styled-system/recipes/aeon-button.d.ts +3 -2
  137. package/packages/panda/styled-system/recipes/aeon-checkbox.d.ts +4 -1
  138. package/packages/panda/styled-system/recipes/aeon-checkbox.mjs +1 -0
  139. package/packages/panda/styled-system/recipes/aeon-combobox.d.ts +4 -3
  140. package/packages/panda/styled-system/recipes/aeon-combobox.mjs +1 -0
  141. package/packages/panda/styled-system/recipes/aeon-composer.d.ts +31 -0
  142. package/packages/panda/styled-system/recipes/aeon-composer.mjs +45 -0
  143. package/packages/panda/styled-system/recipes/aeon-content.d.ts +34 -0
  144. package/packages/panda/styled-system/recipes/aeon-content.mjs +70 -0
  145. package/packages/panda/styled-system/recipes/aeon-conversation.d.ts +31 -0
  146. package/packages/panda/styled-system/recipes/aeon-conversation.mjs +61 -0
  147. package/packages/panda/styled-system/recipes/aeon-dialog.d.ts +4 -1
  148. package/packages/panda/styled-system/recipes/aeon-dialog.mjs +1 -0
  149. package/packages/panda/styled-system/recipes/aeon-entry.d.ts +38 -0
  150. package/packages/panda/styled-system/recipes/aeon-entry.mjs +100 -0
  151. package/packages/panda/styled-system/recipes/aeon-field.d.ts +4 -3
  152. package/packages/panda/styled-system/recipes/aeon-field.mjs +1 -0
  153. package/packages/panda/styled-system/recipes/aeon-identity.d.ts +36 -0
  154. package/packages/panda/styled-system/recipes/aeon-identity.mjs +63 -0
  155. package/packages/panda/styled-system/recipes/aeon-list-row.d.ts +33 -0
  156. package/packages/panda/styled-system/recipes/aeon-list-row.mjs +49 -0
  157. package/packages/panda/styled-system/recipes/aeon-menu.d.ts +4 -1
  158. package/packages/panda/styled-system/recipes/aeon-menu.mjs +1 -0
  159. package/packages/panda/styled-system/recipes/aeon-metric-strip.d.ts +36 -0
  160. package/packages/panda/styled-system/recipes/aeon-metric-strip.mjs +54 -0
  161. package/packages/panda/styled-system/recipes/aeon-nav.d.ts +38 -0
  162. package/packages/panda/styled-system/recipes/aeon-nav.mjs +69 -0
  163. package/packages/panda/styled-system/recipes/aeon-panel.d.ts +34 -0
  164. package/packages/panda/styled-system/recipes/aeon-panel.mjs +58 -0
  165. package/packages/panda/styled-system/recipes/aeon-pin-input.d.ts +4 -1
  166. package/packages/panda/styled-system/recipes/aeon-pin-input.mjs +1 -0
  167. package/packages/panda/styled-system/recipes/aeon-popover.d.ts +4 -1
  168. package/packages/panda/styled-system/recipes/aeon-popover.mjs +1 -0
  169. package/packages/panda/styled-system/recipes/aeon-profile-header.d.ts +36 -0
  170. package/packages/panda/styled-system/recipes/aeon-profile-header.mjs +62 -0
  171. package/packages/panda/styled-system/recipes/aeon-progress.d.ts +4 -1
  172. package/packages/panda/styled-system/recipes/aeon-progress.mjs +1 -0
  173. package/packages/panda/styled-system/recipes/aeon-radio-group.d.ts +4 -1
  174. package/packages/panda/styled-system/recipes/aeon-radio-group.mjs +1 -0
  175. package/packages/panda/styled-system/recipes/aeon-scroll.d.ts +4 -3
  176. package/packages/panda/styled-system/recipes/aeon-scroll.mjs +1 -0
  177. package/packages/panda/styled-system/recipes/aeon-select.d.ts +4 -3
  178. package/packages/panda/styled-system/recipes/aeon-select.mjs +1 -0
  179. package/packages/panda/styled-system/recipes/aeon-separator.d.ts +4 -1
  180. package/packages/panda/styled-system/recipes/aeon-separator.mjs +1 -0
  181. package/packages/panda/styled-system/recipes/aeon-slider.d.ts +4 -1
  182. package/packages/panda/styled-system/recipes/aeon-slider.mjs +1 -0
  183. package/packages/panda/styled-system/recipes/aeon-switch.d.ts +4 -1
  184. package/packages/panda/styled-system/recipes/aeon-switch.mjs +1 -0
  185. package/packages/panda/styled-system/recipes/aeon-tabs.d.ts +4 -1
  186. package/packages/panda/styled-system/recipes/aeon-tabs.mjs +1 -0
  187. package/packages/panda/styled-system/recipes/aeon-theme-switcher.d.ts +34 -0
  188. package/packages/panda/styled-system/recipes/aeon-theme-switcher.mjs +59 -0
  189. package/packages/panda/styled-system/recipes/aeon-thread.d.ts +31 -0
  190. package/packages/panda/styled-system/recipes/aeon-thread.mjs +53 -0
  191. package/packages/panda/styled-system/recipes/aeon-toast.d.ts +4 -1
  192. package/packages/panda/styled-system/recipes/aeon-toast.mjs +1 -0
  193. package/packages/panda/styled-system/recipes/aeon-tooltip.d.ts +4 -1
  194. package/packages/panda/styled-system/recipes/aeon-tooltip.mjs +1 -0
  195. package/packages/panda/styled-system/recipes/index.d.ts +16 -1
  196. package/packages/panda/styled-system/recipes/index.mjs +16 -1
  197. package/packages/panda/styled-system/styles.css +2317 -450
  198. package/packages/panda/styled-system/tokens/index.mjs +43 -7
  199. package/packages/panda/styled-system/tokens/tokens.d.ts +5 -5
  200. package/packages/panda/styled-system/types/composition.d.ts +86 -23
  201. package/packages/panda/styled-system/types/conditions.d.ts +34 -10
  202. package/packages/panda/styled-system/types/csstype.d.ts +6405 -5133
  203. package/packages/panda/styled-system/types/jsx.d.ts +27 -10
  204. package/packages/panda/styled-system/types/pattern.d.ts +4 -4
  205. package/packages/panda/styled-system/types/prop-type.d.ts +11 -1
  206. package/packages/panda/styled-system/types/style-props.d.ts +2763 -2165
  207. package/packages/panda/styled-system/types/system-types.d.ts +38 -80
  208. package/packages/panda/theme-runtime.css +945 -0
  209. package/packages/primitives/dist/chunk-5S4DIRL4.js +42 -0
  210. package/packages/primitives/dist/chunk-H4KOEPYC.js +52 -0
  211. package/packages/primitives/dist/chunk-HONROWUG.js +41 -0
  212. package/packages/primitives/dist/chunk-J6JHKMVM.js +90 -0
  213. package/packages/primitives/dist/chunk-JBAG5E6W.js +46 -0
  214. package/packages/primitives/dist/chunk-LVNCD5F2.js +43 -0
  215. package/packages/primitives/dist/chunk-PB3LFHXU.js +72 -0
  216. package/packages/primitives/dist/chunk-R25CUHNF.js +46 -0
  217. package/packages/primitives/dist/chunk-RO2DMFN5.js +89 -0
  218. package/packages/primitives/dist/chunk-SZV6KGXN.js +49 -0
  219. package/packages/primitives/dist/chunk-V5D7LS4J.js +61 -0
  220. package/packages/primitives/dist/chunk-WVICCOQH.js +56 -0
  221. package/packages/primitives/dist/chunk-YBPNI2LI.js +70 -0
  222. package/packages/primitives/dist/chunk-ZMGRX64G.js +74 -0
  223. package/packages/primitives/dist/index.d.ts +15 -0
  224. package/packages/primitives/dist/index.js +82 -0
  225. package/packages/primitives/dist/machines/accordion.d.ts +34 -0
  226. package/packages/primitives/dist/machines/accordion.js +6 -0
  227. package/packages/primitives/dist/machines/app-shell.d.ts +57 -0
  228. package/packages/primitives/dist/machines/app-shell.js +8 -0
  229. package/packages/primitives/dist/machines/async.d.ts +111 -0
  230. package/packages/primitives/dist/machines/async.js +12 -0
  231. package/packages/primitives/dist/machines/button.d.ts +45 -0
  232. package/packages/primitives/dist/machines/button.js +8 -0
  233. package/packages/primitives/dist/machines/content-region.d.ts +72 -0
  234. package/packages/primitives/dist/machines/content-region.js +8 -0
  235. package/packages/primitives/dist/machines/dialog.d.ts +57 -0
  236. package/packages/primitives/dist/machines/dialog.js +6 -0
  237. package/packages/primitives/dist/machines/field.d.ts +72 -0
  238. package/packages/primitives/dist/machines/field.js +12 -0
  239. package/packages/primitives/dist/machines/panel.d.ts +50 -0
  240. package/packages/primitives/dist/machines/panel.js +6 -0
  241. package/packages/primitives/dist/machines/popover.d.ts +54 -0
  242. package/packages/primitives/dist/machines/popover.js +6 -0
  243. package/packages/primitives/dist/machines/slider.d.ts +71 -0
  244. package/packages/primitives/dist/machines/slider.js +10 -0
  245. package/packages/primitives/dist/machines/sticky-bar.d.ts +62 -0
  246. package/packages/primitives/dist/machines/sticky-bar.js +8 -0
  247. package/packages/primitives/dist/machines/tabs.d.ts +39 -0
  248. package/packages/primitives/dist/machines/tabs.js +6 -0
  249. package/packages/primitives/dist/machines/toast.d.ts +31 -0
  250. package/packages/primitives/dist/machines/toast.js +6 -0
  251. package/packages/primitives/dist/machines/toggle.d.ts +54 -0
  252. package/packages/primitives/dist/machines/toggle.js +6 -0
  253. package/packages/primitives/node_modules/.bin/esbuild +21 -0
  254. package/packages/primitives/node_modules/.bin/jiti +21 -0
  255. package/packages/primitives/node_modules/.bin/tsc +21 -0
  256. package/packages/primitives/node_modules/.bin/tsserver +21 -0
  257. package/packages/primitives/node_modules/.bin/tsup +21 -0
  258. package/packages/primitives/node_modules/.bin/tsup-node +21 -0
  259. package/packages/primitives/node_modules/.bin/tsx +21 -0
  260. package/packages/primitives/node_modules/.bin/vite +21 -0
  261. package/packages/primitives/node_modules/.bin/vitest +21 -0
  262. package/packages/primitives/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
  263. package/packages/primitives/package.json +15 -5
  264. package/packages/primitives/scripts/xstate-introspect.mjs +35 -0
  265. package/packages/primitives/src/index.ts +4 -0
  266. package/packages/primitives/src/machines/app-shell.ts +63 -0
  267. package/packages/primitives/src/machines/content-region.ts +107 -0
  268. package/packages/primitives/src/machines/panel.ts +71 -0
  269. package/packages/primitives/src/machines/sticky-bar.ts +89 -0
  270. package/packages/react/dist/index.d.ts +951 -0
  271. package/packages/react/dist/index.js +4739 -0
  272. package/packages/react/node_modules/.bin/esbuild +21 -0
  273. package/packages/react/node_modules/.bin/jiti +21 -0
  274. package/packages/react/node_modules/.bin/tsc +21 -0
  275. package/packages/react/node_modules/.bin/tsserver +21 -0
  276. package/packages/react/node_modules/.bin/tsup +21 -0
  277. package/packages/react/node_modules/.bin/tsup-node +21 -0
  278. package/packages/react/node_modules/.bin/tsx +21 -0
  279. package/packages/react/node_modules/.bin/vite +21 -0
  280. package/packages/react/node_modules/.bin/vitest +21 -0
  281. package/packages/react/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
  282. package/packages/react/package.json +18 -7
  283. package/packages/react/src/app-shell/index.tsx +154 -0
  284. package/packages/react/src/async/index.tsx +6 -1
  285. package/packages/react/src/async/map-content-state.ts +18 -0
  286. package/packages/react/src/avatar/index.tsx +19 -0
  287. package/packages/react/src/bar/index.tsx +101 -0
  288. package/packages/react/src/button/index.tsx +4 -2
  289. package/packages/react/src/composer/index.tsx +75 -0
  290. package/packages/react/src/content/index.tsx +149 -0
  291. package/packages/react/src/conversation/index.tsx +78 -0
  292. package/packages/react/src/entry/index.tsx +85 -0
  293. package/packages/react/src/field/index.tsx +31 -18
  294. package/packages/react/src/identity/index.tsx +110 -0
  295. package/packages/react/src/index.ts +15 -0
  296. package/packages/react/src/list-row/index.tsx +80 -0
  297. package/packages/react/src/metric-strip/index.tsx +88 -0
  298. package/packages/react/src/nav/index.tsx +155 -0
  299. package/packages/react/src/panel/index.tsx +267 -0
  300. package/packages/react/src/profile-header/index.tsx +91 -0
  301. package/packages/react/src/radio-group/index.tsx +19 -7
  302. package/packages/react/src/slider/index.tsx +3 -1
  303. package/packages/react/src/sticky-bar/index.tsx +135 -0
  304. package/packages/react/src/switch/index.tsx +7 -1
  305. package/packages/react/src/theme-switcher/index.tsx +227 -0
  306. package/packages/react/src/thread/index.tsx +95 -0
  307. package/packages/react/src/toast/primitives.tsx +2 -2
  308. package/packages/react/src/tooltip/tooltip.test.tsx +9 -1
  309. package/packages/react/tsconfig.json +2 -1
  310. package/packages/react-scene/dist/index.d.ts +121 -0
  311. package/packages/react-scene/dist/index.js +430 -0
  312. package/packages/react-scene/node_modules/.bin/jiti +21 -0
  313. package/packages/react-scene/node_modules/.bin/tsc +21 -0
  314. package/packages/react-scene/node_modules/.bin/tsserver +21 -0
  315. package/packages/react-scene/node_modules/.bin/tsup +21 -0
  316. package/packages/react-scene/node_modules/.bin/tsup-node +21 -0
  317. package/packages/react-scene/node_modules/.bin/tsx +21 -0
  318. package/packages/scene/dist/index.d.ts +46 -0
  319. package/packages/scene/dist/index.js +54 -0
  320. package/packages/scene/node_modules/.bin/jiti +21 -0
  321. package/packages/scene/node_modules/.bin/tsc +21 -0
  322. package/packages/scene/node_modules/.bin/tsserver +21 -0
  323. package/packages/scene/node_modules/.bin/tsup +21 -0
  324. package/packages/scene/node_modules/.bin/tsup-node +21 -0
  325. package/packages/scene/node_modules/.bin/tsx +21 -0
  326. package/packages/schemas/README.md +52 -0
  327. package/packages/schemas/dist/index.d.ts +287 -0
  328. package/packages/schemas/dist/index.js +701 -0
  329. package/packages/schemas/json/accordion.json +132 -0
  330. package/packages/schemas/json/async.json +161 -0
  331. package/packages/schemas/json/button.json +170 -0
  332. package/packages/schemas/json/catalog.json +2299 -0
  333. package/packages/schemas/json/checkbox.json +136 -0
  334. package/packages/schemas/json/combobox.json +130 -0
  335. package/packages/schemas/json/dialog.json +154 -0
  336. package/packages/schemas/json/field.json +171 -0
  337. package/packages/schemas/json/menu.json +138 -0
  338. package/packages/schemas/json/popover.json +133 -0
  339. package/packages/schemas/json/progress.json +137 -0
  340. package/packages/schemas/json/scroll.json +129 -0
  341. package/packages/schemas/json/select.json +140 -0
  342. package/packages/schemas/json/switch.json +136 -0
  343. package/packages/schemas/json/tabs.json +135 -0
  344. package/packages/schemas/json/toast.json +141 -0
  345. package/packages/schemas/json/tooltip.json +123 -0
  346. package/packages/schemas/node_modules/.bin/esbuild +21 -0
  347. package/packages/schemas/node_modules/.bin/jiti +21 -0
  348. package/packages/schemas/node_modules/.bin/tsc +21 -0
  349. package/packages/schemas/node_modules/.bin/tsserver +21 -0
  350. package/packages/schemas/node_modules/.bin/tsup +21 -0
  351. package/packages/schemas/node_modules/.bin/tsup-node +21 -0
  352. package/packages/schemas/node_modules/.bin/tsx +21 -0
  353. package/packages/schemas/node_modules/.bin/vite +21 -0
  354. package/packages/schemas/node_modules/.bin/vitest +21 -0
  355. package/packages/schemas/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
  356. package/packages/schemas/package.json +56 -0
  357. package/packages/schemas/prompts/cursorrules.md +64 -0
  358. package/packages/schemas/prompts/statecharts.md +31 -0
  359. package/packages/schemas/prompts/system.md +30 -0
  360. package/packages/schemas/registry/catalog.json +54 -0
  361. package/packages/schemas/registry/components/accordion.json +132 -0
  362. package/packages/schemas/registry/components/async.json +161 -0
  363. package/packages/schemas/registry/components/button.json +170 -0
  364. package/packages/schemas/registry/components/checkbox.json +136 -0
  365. package/packages/schemas/registry/components/combobox.json +130 -0
  366. package/packages/schemas/registry/components/dialog.json +154 -0
  367. package/packages/schemas/registry/components/field.json +171 -0
  368. package/packages/schemas/registry/components/menu.json +138 -0
  369. package/packages/schemas/registry/components/popover.json +133 -0
  370. package/packages/schemas/registry/components/progress.json +137 -0
  371. package/packages/schemas/registry/components/scroll.json +129 -0
  372. package/packages/schemas/registry/components/select.json +140 -0
  373. package/packages/schemas/registry/components/switch.json +136 -0
  374. package/packages/schemas/registry/components/tabs.json +135 -0
  375. package/packages/schemas/registry/components/toast.json +141 -0
  376. package/packages/schemas/registry/components/tooltip.json +123 -0
  377. package/packages/schemas/registry/machines/async.json +219 -0
  378. package/packages/schemas/registry/machines/buttonLifecycle.json +224 -0
  379. package/packages/schemas/registry/machines/dialog.json +143 -0
  380. package/packages/schemas/registry/machines/field.json +275 -0
  381. package/packages/schemas/scripts/emit.ts +61 -0
  382. package/packages/schemas/src/aeon-to-schema.test.ts +70 -0
  383. package/packages/schemas/src/aeon-to-schema.ts +206 -0
  384. package/packages/schemas/src/agent-bridge.ts +82 -0
  385. package/packages/schemas/src/components.ts +307 -0
  386. package/packages/schemas/src/index.test.ts +25 -0
  387. package/packages/schemas/src/index.ts +25 -0
  388. package/packages/schemas/src/prompts.ts +121 -0
  389. package/packages/schemas/src/registry.ts +73 -0
  390. package/packages/schemas/src/schema-builder.ts +87 -0
  391. package/packages/schemas/tsconfig.json +9 -0
  392. package/packages/signal/dist/index.d.ts +54 -0
  393. package/packages/signal/dist/index.js +169 -0
  394. package/packages/signal/node_modules/.bin/jiti +21 -0
  395. package/packages/signal/node_modules/.bin/tsc +21 -0
  396. package/packages/signal/node_modules/.bin/tsserver +21 -0
  397. package/packages/signal/node_modules/.bin/tsup +21 -0
  398. package/packages/signal/node_modules/.bin/tsup-node +21 -0
  399. package/packages/signal/node_modules/.bin/tsx +21 -0
  400. package/packages/site/dist/index.d.ts +31 -0
  401. package/packages/site/dist/index.js +62 -0
  402. package/packages/site/node_modules/.bin/jiti +21 -0
  403. package/packages/site/node_modules/.bin/tsc +21 -0
  404. package/packages/site/node_modules/.bin/tsserver +21 -0
  405. package/packages/site/node_modules/.bin/tsup +21 -0
  406. package/packages/site/node_modules/.bin/tsup-node +21 -0
  407. package/packages/site/node_modules/.bin/tsx +21 -0
  408. package/packages/solid/dist/index.d.ts +30 -0
  409. package/packages/solid/dist/index.js +174 -0
  410. package/packages/solid/node_modules/.bin/jiti +21 -0
  411. package/packages/solid/node_modules/.bin/tsc +21 -0
  412. package/packages/solid/node_modules/.bin/tsserver +21 -0
  413. package/packages/solid/node_modules/.bin/tsup +21 -0
  414. package/packages/solid/node_modules/.bin/tsup-node +21 -0
  415. package/packages/solid/node_modules/.bin/tsx +21 -0
  416. package/packages/solid/package.json +2 -2
  417. package/packages/surface/dist/index.d.ts +8 -0
  418. package/packages/surface/dist/index.js +14 -0
  419. package/packages/surface/node_modules/.bin/jiti +21 -0
  420. package/packages/surface/node_modules/.bin/tsc +21 -0
  421. package/packages/surface/node_modules/.bin/tsserver +21 -0
  422. package/packages/surface/node_modules/.bin/tsup +21 -0
  423. package/packages/surface/node_modules/.bin/tsup-node +21 -0
  424. package/packages/surface/node_modules/.bin/tsx +21 -0
  425. package/packages/svelte/dist/index.d.ts +12 -0
  426. package/packages/svelte/dist/index.js +15 -0
  427. package/packages/svelte/node_modules/.bin/acorn +21 -0
  428. package/packages/svelte/node_modules/.bin/esbuild +21 -0
  429. package/packages/svelte/node_modules/.bin/jiti +21 -0
  430. package/packages/svelte/node_modules/.bin/svelte-check +21 -0
  431. package/packages/svelte/node_modules/.bin/tsc +21 -0
  432. package/packages/svelte/node_modules/.bin/tsserver +21 -0
  433. package/packages/svelte/node_modules/.bin/tsup +21 -0
  434. package/packages/svelte/node_modules/.bin/tsup-node +21 -0
  435. package/packages/svelte/node_modules/.bin/tsx +21 -0
  436. package/packages/svelte/node_modules/.bin/vite +21 -0
  437. package/packages/svelte/package.json +15 -5
  438. package/packages/ui/README.md +19 -6
  439. package/packages/ui/dist/index.d.ts +445 -0
  440. package/packages/ui/dist/index.js +980 -0
  441. package/packages/ui/node_modules/.bin/jiti +21 -0
  442. package/packages/ui/node_modules/.bin/tsc +21 -0
  443. package/packages/ui/node_modules/.bin/tsserver +21 -0
  444. package/packages/ui/node_modules/.bin/tsup +21 -0
  445. package/packages/ui/node_modules/.bin/tsup-node +21 -0
  446. package/packages/ui/node_modules/.bin/tsx +21 -0
  447. package/packages/ui/src/app-shell.tsx +44 -0
  448. package/packages/ui/src/async.tsx +2 -1
  449. package/packages/ui/src/avatar.tsx +35 -0
  450. package/packages/ui/src/bar.tsx +34 -0
  451. package/packages/ui/src/composer.tsx +27 -0
  452. package/packages/ui/src/content.tsx +43 -0
  453. package/packages/ui/src/conversation.tsx +43 -0
  454. package/packages/ui/src/entry.tsx +76 -0
  455. package/packages/ui/src/field.tsx +5 -0
  456. package/packages/ui/src/identity.tsx +35 -0
  457. package/packages/ui/src/index.ts +16 -0
  458. package/packages/ui/src/list-row.tsx +30 -0
  459. package/packages/ui/src/metric-strip.tsx +29 -0
  460. package/packages/ui/src/nav.tsx +46 -0
  461. package/packages/ui/src/panel.tsx +39 -0
  462. package/packages/ui/src/profile-header.tsx +35 -0
  463. package/packages/ui/src/sticky-bar.tsx +42 -0
  464. package/packages/ui/src/switch.tsx +17 -4
  465. package/packages/ui/src/theme-switcher.tsx +41 -0
  466. package/packages/ui/src/thread.tsx +35 -0
  467. package/packages/vue/dist/index.d.ts +71 -0
  468. package/packages/vue/dist/index.js +193 -0
  469. package/packages/vue/node_modules/.bin/jiti +21 -0
  470. package/packages/vue/node_modules/.bin/tsc +21 -0
  471. package/packages/vue/node_modules/.bin/tsserver +21 -0
  472. package/packages/vue/node_modules/.bin/tsup +21 -0
  473. package/packages/vue/node_modules/.bin/tsup-node +21 -0
  474. package/packages/vue/node_modules/.bin/tsx +21 -0
  475. package/packages/vue/package.json +3 -3
  476. package/scripts/vite-aliases.mjs +179 -0
  477. package/scripts/xstate-introspect.mjs +68 -0
  478. package/.changeset/README.md +0 -23
  479. package/.changeset/combobox-and-changesets.md +0 -9
  480. package/.changeset/config.json +0 -31
  481. package/.changeset/framework-adapters.md +0 -12
  482. package/.changeset/scene-3d.md +0 -6
  483. package/.changeset/scene-plane.md +0 -8
  484. package/.changeset/site-og.md +0 -5
  485. package/.cursor/rules/aeon-ui.mdc +0 -22
  486. package/ACCESSIBILITY.md +0 -32
  487. package/AGENTS.md +0 -226
  488. package/COMPONENTS.md +0 -41
  489. package/FRAMEWORKS.md +0 -57
  490. package/PHILOSOPHY.md +0 -71
  491. package/PUBLISHING.md +0 -105
  492. package/SCENE.md +0 -113
  493. package/STATES.md +0 -243
  494. package/apps/demo/index.html +0 -31
  495. package/apps/demo/og.config.mjs +0 -20
  496. package/apps/demo/package.json +0 -41
  497. package/apps/demo/public/favicon.svg +0 -16
  498. package/apps/demo/public/og-aeon-ui-engine.png +0 -0
  499. package/apps/demo/public/og.svg +0 -35
  500. package/apps/demo/scripts/generate-og-png.mjs +0 -62
  501. package/apps/demo/src/App.tsx +0 -31
  502. package/apps/demo/src/aeonDiagrams.ts +0 -42
  503. package/apps/demo/src/app.css +0 -16
  504. package/apps/demo/src/components/ActionCluster.tsx +0 -20
  505. package/apps/demo/src/components/AsyncMachineDemo.tsx +0 -97
  506. package/apps/demo/src/components/ButtonLifecycleDemo.tsx +0 -63
  507. package/apps/demo/src/components/CodeExample.tsx +0 -7
  508. package/apps/demo/src/components/ComboboxDemo.tsx +0 -30
  509. package/apps/demo/src/components/DiagramsSection.tsx +0 -37
  510. package/apps/demo/src/components/FieldStateDemo.tsx +0 -51
  511. package/apps/demo/src/components/GridMesh.tsx +0 -8
  512. package/apps/demo/src/components/HeroInstall.tsx +0 -13
  513. package/apps/demo/src/components/LandingFaq.tsx +0 -29
  514. package/apps/demo/src/components/LandingFooter.tsx +0 -30
  515. package/apps/demo/src/components/LandingHeader.tsx +0 -62
  516. package/apps/demo/src/components/LandingHero.tsx +0 -55
  517. package/apps/demo/src/components/LayersSection.tsx +0 -47
  518. package/apps/demo/src/components/MermaidDiagram.tsx +0 -86
  519. package/apps/demo/src/components/PhilosophySection.tsx +0 -31
  520. package/apps/demo/src/components/PlaygroundBlock.tsx +0 -18
  521. package/apps/demo/src/components/PlaygroundControlsDemo.tsx +0 -63
  522. package/apps/demo/src/components/PlaygroundSection.tsx +0 -120
  523. package/apps/demo/src/components/ScrollRegionDemo.tsx +0 -74
  524. package/apps/demo/src/components/ThemeSwitcher.tsx +0 -79
  525. package/apps/demo/src/demo-layout.css +0 -293
  526. package/apps/demo/src/landing.css +0 -1143
  527. package/apps/demo/src/main.tsx +0 -14
  528. package/apps/demo/src/nav.ts +0 -9
  529. package/apps/demo/src/site.ts +0 -218
  530. package/apps/demo/tsconfig.json +0 -17
  531. package/apps/demo/vite-plugins/og-meta.ts +0 -30
  532. package/apps/demo/vite.config.ts +0 -69
  533. package/docs/API_PATTERNS.md +0 -234
  534. package/docs/ARCHITECTURE.md +0 -125
  535. package/docs/COMPONENT_CHECKLIST.md +0 -103
  536. package/docs/FILE_MAP.md +0 -122
  537. package/docs/GLOSSARY.md +0 -125
  538. package/docs/INDEX.md +0 -53
  539. package/docs/LAYOUT_COORDINATES.md +0 -178
  540. package/docs/MACHINES.md +0 -171
  541. package/docs/MIGRATION_FROM_ARK.md +0 -295
  542. package/docs/VITE_CONSUMER.md +0 -114
  543. package/packages/react/src/async/legacy-region.tsx +0 -38
  544. package/pnpm-workspace.yaml +0 -3
  545. package/vercel.json +0 -12
@@ -0,0 +1,179 @@
1
+ /**
2
+ * Vite + TypeScript wiring for apps that install `aeon-ui-engine` from npm.
3
+ *
4
+ * @example
5
+ * // vite.config.ts — one call, done
6
+ * import { aeonUiVitePlugin } from 'aeon-ui-engine/vite'
7
+ *
8
+ * export default defineConfig({
9
+ * plugins: [react(), aeonUiVitePlugin()],
10
+ * })
11
+ *
12
+ * // tsconfig.json — spread the base config
13
+ * {
14
+ * "extends": "aeon-ui-engine/tsconfig",
15
+ * "compilerOptions": { "jsx": "react-jsx" }
16
+ * }
17
+ */
18
+ import { createRequire } from 'node:module'
19
+ import path from 'node:path'
20
+ import { fileURLToPath } from 'node:url'
21
+
22
+ const scriptDir = path.dirname(fileURLToPath(import.meta.url))
23
+
24
+ /** Absolute path to `aeon-ui-engine/packages` (npm install or monorepo checkout). */
25
+ export function resolveAeonPackagesRoot(opts = {}) {
26
+ if (opts.packagesRoot) return path.resolve(opts.packagesRoot)
27
+ if (process.env.AEON_UI_ROOT) {
28
+ return path.join(path.resolve(process.env.AEON_UI_ROOT), 'packages')
29
+ }
30
+ try {
31
+ const require = createRequire(import.meta.url)
32
+ const engineRoot = path.dirname(require.resolve('aeon-ui-engine/package.json'))
33
+ return path.join(engineRoot, 'packages')
34
+ } catch {
35
+ return path.resolve(scriptDir, '../packages')
36
+ }
37
+ }
38
+
39
+ /** Vite `resolve.alias` entries — `@aeon-ui/*` is not published separately. */
40
+ export function aeonUiViteAliases(opts = {}) {
41
+ const packages = resolveAeonPackagesRoot(opts)
42
+ const extra = opts.extraAliases ?? []
43
+
44
+ return [
45
+ ...extra,
46
+ {
47
+ find: 'aeon-ui-engine/aeon.css',
48
+ replacement: path.join(packages, 'panda/aeon.css'),
49
+ },
50
+ {
51
+ find: '@aeon-ui/panda/styles.css',
52
+ replacement: path.join(packages, 'panda/styled-system/styles.css'),
53
+ },
54
+ {
55
+ find: '@aeon-ui/panda/theme-runtime.css',
56
+ replacement: path.join(packages, 'panda/theme-runtime.css'),
57
+ },
58
+ {
59
+ find: '@aeon-ui/panda/scrollbars.css',
60
+ replacement: path.join(packages, 'panda/src/theme/scrollbars.css'),
61
+ },
62
+ {
63
+ find: '@aeon-ui/panda/chrome.css',
64
+ replacement: path.join(packages, 'panda/src/theme/chrome.css'),
65
+ },
66
+ {
67
+ find: '@aeon-ui/panda/styled-system/css',
68
+ replacement: path.join(packages, 'panda/styled-system/css/index.mjs'),
69
+ },
70
+ {
71
+ find: '@aeon-ui/panda/styled-system/recipes',
72
+ replacement: path.join(packages, 'panda/styled-system/recipes/index.mjs'),
73
+ },
74
+ {
75
+ find: '@aeon-ui/panda/themes',
76
+ replacement: path.join(packages, 'panda/src/theme/index.ts'),
77
+ },
78
+ {
79
+ find: '@aeon-ui/ui/styles.css',
80
+ replacement: path.join(packages, 'ui/src/styles.css'),
81
+ },
82
+ {
83
+ find: '@aeon-ui/surface/surface.css',
84
+ replacement: path.join(packages, 'surface/surface.css'),
85
+ },
86
+ {
87
+ find: '@aeon-ui/core/theme-transition.css',
88
+ replacement: path.join(packages, 'core/theme-transition.css'),
89
+ },
90
+ { find: '@aeon-ui/surface', replacement: path.join(packages, 'surface/src/index.ts') },
91
+ { find: '@aeon-ui/core', replacement: path.join(packages, 'core/src/index.ts') },
92
+ { find: '@aeon-ui/primitives', replacement: path.join(packages, 'primitives/src/index.ts') },
93
+ { find: '@aeon-ui/react', replacement: path.join(packages, 'react/src/index.ts') },
94
+ { find: '@aeon-ui/ui', replacement: path.join(packages, 'ui/src/index.ts') },
95
+ { find: '@aeon-ui/schemas', replacement: path.join(packages, 'schemas/src/index.ts') },
96
+ { find: '@aeon-ui/panda', replacement: path.join(packages, 'panda') },
97
+ ]
98
+ }
99
+
100
+ /** Recommended Vite `optimizeDeps` for Aeon + XState apps. */
101
+ export function aeonUiOptimizeDeps(opts = {}) {
102
+ const excludeWorkspace = opts.excludeWorkspace ?? true
103
+ return {
104
+ include: [
105
+ 'react',
106
+ 'react-dom',
107
+ '@xstate/react',
108
+ 'xstate',
109
+ ...(opts.include ?? []),
110
+ ],
111
+ exclude: excludeWorkspace
112
+ ? [
113
+ '@aeon-ui/core',
114
+ '@aeon-ui/primitives',
115
+ '@aeon-ui/react',
116
+ '@aeon-ui/ui',
117
+ '@aeon-ui/panda/styled-system/css',
118
+ '@aeon-ui/panda/styled-system/recipes',
119
+ ...(opts.exclude ?? []),
120
+ ]
121
+ : (opts.exclude ?? []),
122
+ }
123
+ }
124
+
125
+ /**
126
+ * `compilerOptions.paths` fragment for a consumer tsconfig.
127
+ * Paths are relative to the app tsconfig file location.
128
+ */
129
+ export function aeonUiTsconfigPaths(opts = {}) {
130
+ const prefix = opts.prefix ?? '../node_modules/aeon-ui-engine/packages'
131
+ return {
132
+ '@aeon-ui/core': [`${prefix}/core/src/index.ts`],
133
+ '@aeon-ui/primitives': [`${prefix}/primitives/src/index.ts`],
134
+ '@aeon-ui/react': [`${prefix}/react/src/index.ts`],
135
+ '@aeon-ui/ui': [`${prefix}/ui/src/index.ts`],
136
+ '@aeon-ui/surface': [`${prefix}/surface/src/index.ts`],
137
+ '@aeon-ui/panda/styled-system/css': [`${prefix}/panda/styled-system/css/index.d.ts`],
138
+ '@aeon-ui/panda/styled-system/recipes': [`${prefix}/panda/styled-system/recipes/index.d.ts`],
139
+ }
140
+ }
141
+
142
+ /**
143
+ * All-in-one Vite plugin — aliases + optimizeDeps in one call.
144
+ *
145
+ * @example
146
+ * import { aeonUiVitePlugin } from 'aeon-ui-engine/vite'
147
+ *
148
+ * export default defineConfig({
149
+ * plugins: [react(), aeonUiVitePlugin()],
150
+ * })
151
+ */
152
+ export function aeonUiVitePlugin(opts = {}) {
153
+ const alias = aeonUiViteAliases(opts)
154
+ const optimizeDeps = aeonUiOptimizeDeps(opts)
155
+
156
+ return {
157
+ name: 'aeon-ui',
158
+ enforce: 'pre',
159
+ config(userConfig) {
160
+ return {
161
+ resolve: {
162
+ alias: [...(userConfig.resolve?.alias ?? []), ...alias],
163
+ },
164
+ optimizeDeps: {
165
+ ...userConfig.optimizeDeps,
166
+ ...optimizeDeps,
167
+ include: [
168
+ ...(optimizeDeps.include ?? []),
169
+ ...(userConfig.optimizeDeps?.include ?? []),
170
+ ],
171
+ exclude: [
172
+ ...(optimizeDeps.exclude ?? []),
173
+ ...(userConfig.optimizeDeps?.exclude ?? []),
174
+ ],
175
+ },
176
+ }
177
+ },
178
+ }
179
+ }
@@ -0,0 +1,68 @@
1
+ import { asyncMachine } from '../packages/primitives/dist/index.js';
2
+ import { createActor, getStateNodes } from 'xstate';
3
+ import { getStateNodes as graphGetStateNodes } from 'xstate/graph';
4
+
5
+ const machine = asyncMachine;
6
+
7
+ console.log('=== machine keys ===');
8
+ console.log(Object.keys(machine).sort().join(', '));
9
+
10
+ console.log('\n=== machine.states keys ===');
11
+ console.log(Object.keys(machine.states));
12
+
13
+ const idle = machine.states.idle;
14
+ console.log('\n=== idle state node keys ===');
15
+ console.log(Object.keys(idle).sort().join(', '));
16
+
17
+ console.log('\n=== idle.events ===');
18
+ console.log(idle.events);
19
+
20
+ console.log('\n=== idle.config.on ===');
21
+ console.log(idle.config?.on ?? idle.config);
22
+
23
+ const actor = createActor(machine);
24
+ actor.start();
25
+ const snap = actor.getSnapshot();
26
+
27
+ console.log('\n=== snapshot.value ===');
28
+ console.log(snap.value);
29
+
30
+ console.log("\n=== snapshot.can({ type: 'FETCH' }) ===");
31
+ console.log(snap.can({ type: 'FETCH' }));
32
+
33
+ console.log('\n=== snapshot keys (sorted) ===');
34
+ console.log(Object.keys(snap).sort().join(', '));
35
+
36
+ if (typeof snap.getNextEvents === 'function') {
37
+ console.log('\n=== snap.getNextEvents() ===');
38
+ console.log(snap.getNextEvents());
39
+ }
40
+
41
+ // _nodes internal?
42
+ if (snap._nodes) {
43
+ console.log('\n=== snap._nodes ids ===');
44
+ console.log([...snap._nodes].map((n) => n.id));
45
+ }
46
+
47
+ const nodes = getStateNodes(machine.root, snap.value);
48
+ console.log('\n=== getStateNodes(root, value) ===');
49
+ console.log(nodes.map((n) => n.id));
50
+ console.log('active node .events:', nodes.map((n) => ({ id: n.id, events: n.events })));
51
+
52
+ const allNodes = graphGetStateNodes(machine);
53
+ console.log('\n=== graph.getStateNodes(machine) ===');
54
+ for (const n of allNodes) {
55
+ console.log({ id: n.id, events: n.events, on: n.config?.on ? Object.keys(n.config.on) : [] });
56
+ }
57
+
58
+ const eventTypes = ['FETCH', 'RESOLVE', 'REJECT', 'RESET', 'STALE', 'REFRESH'];
59
+ console.log('\n=== idle snapshot: can() per event ===');
60
+ for (const type of eventTypes) {
61
+ const ev =
62
+ type === 'RESOLVE'
63
+ ? { type, data: { x: 1 } }
64
+ : type === 'REJECT'
65
+ ? { type, error: 'e' }
66
+ : { type };
67
+ console.log(type, snap.can(ev));
68
+ }
@@ -1,23 +0,0 @@
1
- # Changesets
2
-
3
- This monorepo uses [Changesets](https://github.com/changesets/changesets) to version and publish `@aeon-ui/*` packages together.
4
-
5
- ## Add a changeset
6
-
7
- After a meaningful change:
8
-
9
- ```bash
10
- pnpm changeset
11
- ```
12
-
13
- Choose affected packages (usually all five public packages) and bump type (`patch` / `minor` / `major`).
14
-
15
- ## Release flow (maintainers)
16
-
17
- ```bash
18
- pnpm version-packages # apply changesets → bump versions + CHANGELOGs
19
- pnpm build
20
- pnpm release # publish to npm (requires npm login + scope access)
21
- ```
22
-
23
- See [PUBLISHING.md](../PUBLISHING.md) for manual publish order and first-time setup.
@@ -1,9 +0,0 @@
1
- ---
2
- "@aeon-ui/core": minor
3
- "@aeon-ui/primitives": minor
4
- "@aeon-ui/react": minor
5
- "@aeon-ui/panda": minor
6
- "@aeon-ui/ui": minor
7
- ---
8
-
9
- Add **Combobox** (typeahead listbox extending Select) and **Changesets** for fixed-version npm releases before 0.1.0.
@@ -1,31 +0,0 @@
1
- {
2
- "$schema": "https://unpkg.com/@changesets/config@3.1.1/schema.json",
3
- "changelog": "@changesets/cli/changelog",
4
- "commit": false,
5
- "fixed": [
6
- ["aeon-ui-engine"],
7
- [
8
- "@aeon-ui/core",
9
- "@aeon-ui/primitives",
10
- "@aeon-ui/react",
11
- "@aeon-ui/panda",
12
- "@aeon-ui/ui",
13
- "@aeon-ui/vue",
14
- "@aeon-ui/solid",
15
- "@aeon-ui/svelte"
16
- ],
17
- [
18
- "@aeon-ui/signal",
19
- "@aeon-ui/geometry",
20
- "@aeon-ui/surface",
21
- "@aeon-ui/scene",
22
- "@aeon-ui/react-scene",
23
- "@aeon-ui/site"
24
- ]
25
- ],
26
- "linked": [],
27
- "access": "public",
28
- "baseBranch": "main",
29
- "updateInternalDependencies": "patch",
30
- "ignore": ["@aeon-ui/demo"]
31
- }
@@ -1,12 +0,0 @@
1
- ---
2
- "@aeon-ui/core": minor
3
- "@aeon-ui/primitives": minor
4
- "@aeon-ui/react": minor
5
- "@aeon-ui/panda": minor
6
- "@aeon-ui/ui": minor
7
- "@aeon-ui/vue": minor
8
- "@aeon-ui/solid": minor
9
- "@aeon-ui/svelte": minor
10
- ---
11
-
12
- Add Vue, Solid, and Svelte adapter packages (`useAeonMachine` + reference Switch port). Document publish and framework roadmap.
@@ -1,6 +0,0 @@
1
- ---
2
- "@aeon-ui/scene": minor
3
- "@aeon-ui/react-scene": minor
4
- ---
5
-
6
- Add CSS 3D scene construction: `@aeon-ui/scene` transforms, `SceneStage` / `SceneLayer` / `ScenePlane` / `SceneSlot`, and demo alley preview.
@@ -1,8 +0,0 @@
1
- ---
2
- "@aeon-ui/signal": minor
3
- "@aeon-ui/geometry": minor
4
- "@aeon-ui/surface": minor
5
- "@aeon-ui/react-scene": minor
6
- ---
7
-
8
- Add optional Scene plane: signal, geometry, procedural surface materials (pavement, kraft, brick), react-scene bindings, and SCENE.md.
@@ -1,5 +0,0 @@
1
- ---
2
- "@aeon-ui/site": minor
3
- ---
4
-
5
- Add `@aeon-ui/site` Open Graph meta helpers for marketing apps and demos.
@@ -1,22 +0,0 @@
1
- ---
2
- description: Aeon UI conventions — read AGENTS.md before editing this repo
3
- alwaysApply: true
4
- ---
5
-
6
- # Aeon UI (agent rules)
7
-
8
- **Read [AGENTS.md](../../AGENTS.md) before any change.** Full map: [docs/INDEX.md](../../docs/INDEX.md).
9
-
10
- ## Must follow
11
-
12
- - **UI = f(state)** — project snapshots to `data-aeon-scope`, `data-aeon-part`, `data-aeon-state` via `partAttrs` from `@aeon-ui/core`.
13
- - **Machine truth:** [docs/MACHINES.md](../../docs/MACHINES.md) — Button uses `status` prop; Select/Menu/Popover share `popoverMachine`; Combobox/Tooltip use React state; Scroll uses `getScrollSnapshot`.
14
- - **New components:** [docs/COMPONENT_CHECKLIST.md](../../docs/COMPONENT_CHECKLIST.md) (all steps).
15
- - **Panda changes:** run `pnpm codegen` from repo root.
16
- - **Imports:** `.js` extension in TypeScript relative imports.
17
-
18
- ## Do not
19
-
20
- - Duplicate state in `useState` and XState for the same concern.
21
- - Fork duplicate open/closed machines (use `popoverMachine` / `dialogMachine`).
22
- - Hand-edit `packages/panda/styled-system/` (generated).
package/ACCESSIBILITY.md DELETED
@@ -1,32 +0,0 @@
1
- # Accessibility
2
-
3
- Aeon targets **WCAG-minded** behavior on headless parts. Styled layers must not remove semantics.
4
-
5
- ## Patterns in place
6
-
7
- | Component | Roles / ARIA |
8
- |-----------|----------------|
9
- | Dialog | `role="dialog"`, `aria-modal`, `aria-labelledby` / `aria-describedby`, Escape |
10
- | Avatar | `img` + `hidden` when loaded; fallback `hidden` when image shown; pass `alt` on `Avatar.Image` |
11
- | Menu | `aria-haspopup="menu"`, `role="menu"`, `role="menuitem"`, Escape, outside click |
12
- | Popover | `aria-expanded`, `role="dialog"` (non-modal) |
13
- | Tooltip | `aria-describedby`, `role="tooltip"` |
14
- | Toast | `role="status"`, `aria-live="polite"` |
15
- | Select | `aria-haspopup="listbox"`, `aria-expanded`, `aria-activedescendant`, arrow keys + Enter |
16
- | Dialog | focus trap + body scroll lock when open via `Dialog.Portal` |
17
- | Combobox | `role="combobox"`, `aria-autocomplete="list"`, `aria-activedescendant`, arrow keys + Enter |
18
- | Switch / Checkbox | native input + label association |
19
-
20
- ## Focus
21
-
22
- - `@aeon-ui/panda` `chrome.css`: focus rings on **keyboard** (`:focus-visible`) only.
23
- - Selected / pressed / open states use surface tint, not conflated with focus.
24
-
25
- ## Your checklist when adopting
26
-
27
- 1. Every `Dialog` includes `Title` (and `Description` when copy is long).
28
- 2. Menu items are `<button type="button">`, not `<div onClick>`.
29
- 3. Custom colors meet contrast on `data-aeon-state` variants you add.
30
- 4. Async regions expose status text in `Readout`, not color alone.
31
-
32
- Report gaps in GitHub issues with expected keyboard / screen reader steps.
package/AGENTS.md DELETED
@@ -1,226 +0,0 @@
1
- # Aeon UI — agent instructions
2
-
3
- **Audience:** Cursor, Copilot, Claude, or any coding agent working in this repo.
4
- **Goal:** Follow Aeon conventions without guessing. When in doubt, read the linked doc — do not invent patterns.
5
-
6
- ---
7
-
8
- ## North star (memorize this)
9
-
10
- **State is defined first. UI represents the totality of that definition.**
11
-
12
- - Behavior → XState snapshot (or explicit derived state like Scroll).
13
- - DOM → `data-aeon-scope`, `data-aeon-part`, `data-aeon-state` from `@aeon-ui/core`.
14
- - Style → Panda slot recipes keyed on those attributes.
15
- - **UI = f(snapshot)** — not f(ad hoc React flags).
16
-
17
- Source: [PHILOSOPHY.md](./PHILOSOPHY.md) · Code: `packages/core/src/philosophy.ts`
18
-
19
- ---
20
-
21
- ## Read order (first time in repo)
22
-
23
- | Order | File | Why |
24
- |-------|------|-----|
25
- | 1 | This file (`AGENTS.md`) | Rules, maps, workflows |
26
- | 2 | [docs/MACHINES.md](./docs/MACHINES.md) | **Which components use machines vs props** — avoid wrong wiring |
27
- | 3 | [STATES.md](./STATES.md) | Attribute contract, async/button/field/scroll |
28
- | 4 | [docs/ARCHITECTURE.md](./docs/ARCHITECTURE.md) | Packages, layers, build |
29
- | 5 | [docs/COMPONENT_CHECKLIST.md](./docs/COMPONENT_CHECKLIST.md) | Adding or changing a component |
30
- | 6 | [COMPONENTS.md](./COMPONENTS.md) | Shipped catalog |
31
- | 7 | [INTEGRATION.md](./INTEGRATION.md) | Headless / Panda / styled |
32
- | 8 | [FRAMEWORKS.md](./FRAMEWORKS.md) | Vue / Solid / Svelte porting |
33
- | — | [docs/LAYOUT_COORDINATES.md](./docs/LAYOUT_COORDINATES.md) | **Responsive play surfaces — norm coords + layout modes** |
34
- | — | [docs/API_PATTERNS.md](./docs/API_PATTERNS.md) | Copy-paste snippets |
35
-
36
- Scene plane (optional): [SCENE.md](./SCENE.md). Publishing: [PUBLISHING.md](./PUBLISHING.md). A11y: [ACCESSIBILITY.md](./ACCESSIBILITY.md).
37
-
38
- Full index: [docs/INDEX.md](./docs/INDEX.md).
39
-
40
- ---
41
-
42
- ## Non-negotiable rules
43
-
44
- 1. **Do not add `useState` for open/checked/lifecycle** on components that already have a machine in `@aeon-ui/primitives` unless you are intentionally replacing the headless layer (rare).
45
- 2. **Button `status` is a prop projection**, not the machine. `buttonLifecycleMachine` exists for demos and app logic via `useAeonMachine`; headless `Button.Root` sets `data-aeon-state` from the `status` prop. Wire chart → prop yourself when needed.
46
- 3. **Select** shares `popoverMachine` (do not fork another open/closed chart). **Combobox** and **Tooltip** still use React state — do not add duplicate floating-surface machines without [COMPONENT_CHECKLIST.md](./docs/COMPONENT_CHECKLIST.md).
47
- 4. **Scroll** uses `getScrollSnapshot()` from core — **no** XState machine.
48
- 5. **Every new scope** needs anatomy in `packages/core/src/anatomy.ts`, headless in `packages/react/src/<name>/`, recipe in `packages/panda/src/recipes/`, styled in `packages/ui/src/<name>.tsx`, demo in `apps/demo`.
49
- 6. **After any Panda recipe or token change**, run from repo root: `pnpm codegen` (then build if verifying).
50
- 7. **ESM**: TypeScript sources use **`.js` extensions** in relative imports (`import { x } from './foo.js'`).
51
- 8. **Panda package is private** — apps consume CSS via `@aeon-ui/ui` or direct `@aeon-ui/panda/styles.css` imports; do not publish `@aeon-ui/panda` as a separate product without maintainer intent.
52
- 9. **Totality**: If the machine lists N stable states, the demo must show all N (e.g. `Async.Track` segments).
53
- 10. **Do not style with ad hoc class names for state** in product code inside this repo — use `data-aeon-state` + recipes or documented `globalCss`.
54
-
55
- ---
56
-
57
- ## Decision tree: which package to edit?
58
-
59
- ```
60
- Changing behavior / transitions?
61
- └─> packages/primitives/src/machines/<topic>.ts
62
- └─> Update apps/demo/src/aeonDiagrams.ts if diagram exists
63
-
64
- Changing DOM contract / part names?
65
- └─> packages/core/src/anatomy.ts
66
- └─> packages/core/src/attrs.ts (partAttrs, stateToAttr)
67
-
68
- Changing React API / a11y / events?
69
- └─> packages/react/src/<component>/
70
-
71
- Changing default look?
72
- └─> packages/panda/src/recipes/<component>.ts
73
- └─> pnpm codegen
74
-
75
- Shipping styled export?
76
- └─> packages/ui/src/<component>.tsx
77
-
78
- Showing behavior to humans?
79
- └─> apps/demo/src/ (playground sections)
80
- ```
81
-
82
- ---
83
-
84
- ## Decision tree: which layer should the user import?
85
-
86
- ```
87
- Need full Aeon styling + themes?
88
- └─> @aeon-ui/ui (+ panda CSS imports — see INTEGRATION.md)
89
-
90
- Custom design system, same behavior?
91
- └─> @aeon-ui/react + CSS on [data-aeon-*]
92
-
93
- Own XState app machines?
94
- └─> useAeonMachine from @aeon-ui/react + primitives machines or app machines
95
-
96
- Only tokens/recipes?
97
- └─> @aeon-ui/panda/styled-system/recipes (workspace/private; codegen required)
98
- ```
99
-
100
- ---
101
-
102
- ## Repo map (high signal paths)
103
-
104
- | Path | Contents |
105
- |------|----------|
106
- | `packages/core/src/anatomy.ts` | All `*Anatomy` scopes and part keys |
107
- | `packages/core/src/attrs.ts` | `partAttrs`, `scopeAttrs`, `stateToAttr` |
108
- | `packages/primitives/src/machines/` | XState machines |
109
- | `packages/react/src/<component>/` | Headless compound components |
110
- | `packages/react/src/hooks/use-aeon-machine.ts` | `useAeonMachine` wrapper |
111
- | `packages/panda/panda.config.ts` | Recipe registration, `aeon*` conditions |
112
- | `packages/panda/src/recipes/` | Slot + plain recipes |
113
- | `packages/ui/src/*.tsx` | Styled wrappers (`aeon*` + `cn`) |
114
- | `apps/demo/src/` | Marketing + playgrounds |
115
- | `apps/demo/src/aeonDiagrams.ts` | Mermaid ↔ machines (keep in sync) |
116
-
117
- Detailed map: [docs/FILE_MAP.md](./docs/FILE_MAP.md).
118
-
119
- ---
120
-
121
- ## Naming conventions (copy exactly)
122
-
123
- | Artifact | Pattern | Example |
124
- |----------|---------|---------|
125
- | npm package | `@aeon-ui/<name>` | `@aeon-ui/react` |
126
- | Anatomy export | `{scope}Anatomy` | `asyncAnatomy` |
127
- | Scope string | lowercase family | `'async'`, `'button'` |
128
- | Machine export | `{name}Machine` or `create{Name}Machine` | `fieldMachine`, `createAsyncMachine` |
129
- | Panda recipe key | `aeon{Pascal}` | `aeonAsync`, `aeonButton` |
130
- | Recipe export | `{name}Recipe` | `asyncRegionRecipe` |
131
- | React folder | `packages/react/src/<component>/` | `async/`, `dialog/` |
132
- | Styled file | `packages/ui/src/<component>.tsx` | `button.tsx` |
133
- | Compound parts | `Root`, `Trigger`, `Content`, … | `Dialog.Root` |
134
- | Data attrs | `data-aeon-scope`, `data-aeon-part`, `data-aeon-state` | always via `partAttrs` |
135
-
136
- ---
137
-
138
- ## Common workflows
139
-
140
- ### Fix a styling bug on a component
141
-
142
- 1. Inspect DOM for `data-aeon-scope`, `data-aeon-part`, `data-aeon-state`.
143
- 2. Find slot recipe: `packages/panda/src/recipes/<component>.ts`.
144
- 3. Check conditions in `packages/panda/panda.config.ts` (`aeonOpen`, `aeonPending`, …).
145
- 4. `pnpm codegen` → verify in `apps/demo`.
146
-
147
- ### Add a new primitive component
148
-
149
- Follow **[docs/COMPONENT_CHECKLIST.md](./docs/COMPONENT_CHECKLIST.md)** — all 10 steps. Do not skip anatomy or demo rail.
150
-
151
- ### Port to Vue / Solid / Svelte
152
-
153
- Follow **[FRAMEWORKS.md](./FRAMEWORKS.md)** — copy React `partAttrs` usage; use `useAeonMachine` equivalent per adapter.
154
-
155
- ### Change async / field / button lifecycle
156
-
157
- 1. Machine in `packages/primitives/src/machines/`.
158
- 2. React projection in `packages/react/src/<async|field|button>/`.
159
- 3. Mermaid in `apps/demo/src/aeonDiagrams.ts`.
160
- 4. STATES.md section if user-facing contract changes.
161
-
162
- ---
163
-
164
- ## Machine vs implementation (cheat sheet)
165
-
166
- See full table and events in **[docs/MACHINES.md](./docs/MACHINES.md)**.
167
-
168
- | Component | Runtime driver |
169
- |-----------|----------------|
170
- | Dialog, Tabs, Accordion, Switch, Checkbox | `useAeonMachine` + primitives |
171
- | Async, Field | `useAeonMachine` + primitives |
172
- | Menu, Popover | `popoverMachine` |
173
- | Toast (item) | `toastMachine` |
174
- | Button | **`status` prop** (machine optional in app) |
175
- | Select, Combobox, Tooltip | **React `useState`** |
176
- | Scroll | **`getScrollSnapshot()`** |
177
-
178
- ---
179
-
180
- ## Build & verify
181
-
182
- ```bash
183
- pnpm install # from repo root
184
- pnpm codegen # after panda changes
185
- pnpm dev # demo app
186
- pnpm build # codegen + all packages
187
- pnpm typecheck # all packages
188
- ```
189
-
190
- Node ≥ 20. Package manager: **pnpm** (workspace: `packages/*`, `apps/*`).
191
-
192
- ---
193
-
194
- ## What not to do
195
-
196
- - Do not duplicate state in React and XState for the same concern.
197
- - Do not add Tailwind inside `@aeon-ui/ui` — Panda recipes only.
198
- - Do not export unstyled components from `@aeon-ui/ui`.
199
- - Do not change `data-aeon-*` names without updating panda conditions and STATES.md.
200
- - Do not assume COMPONENTS.md “Machine” column is accurate for Select/Combobox — see [docs/MACHINES.md](./docs/MACHINES.md).
201
-
202
- ---
203
-
204
- ## Package READMEs (API entry points)
205
-
206
- | Package | Doc |
207
- |---------|-----|
208
- | `@aeon-ui/core` | [packages/core/README.md](./packages/core/README.md) |
209
- | `@aeon-ui/primitives` | [packages/primitives/README.md](./packages/primitives/README.md) |
210
- | `@aeon-ui/react` | [packages/react/README.md](./packages/react/README.md) |
211
- | `@aeon-ui/panda` | [packages/panda/README.md](./packages/panda/README.md) |
212
- | `@aeon-ui/ui` | [packages/ui/README.md](./packages/ui/README.md) |
213
-
214
- ---
215
-
216
- ## Glossary
217
-
218
- [docs/GLOSSARY.md](./docs/GLOSSARY.md)
219
-
220
- ---
221
-
222
- ## Human docs (same truth)
223
-
224
- [README.md](./README.md) · [PHILOSOPHY.md](./PHILOSOPHY.md) · [STATES.md](./STATES.md) · [COMPONENTS.md](./COMPONENTS.md)
225
-
226
- When agents and human docs disagree, **source code wins** — then fix the doc in the same PR.
package/COMPONENTS.md DELETED
@@ -1,41 +0,0 @@
1
- # Component catalog
2
-
3
- Status key: **Headless** (`@aeon-ui/react`) · **Styled** (`@aeon-ui/ui`) · **State driver** (how runtime state is chosen)
4
-
5
- **Agents:** authoritative wiring table → [docs/MACHINES.md](./docs/MACHINES.md).
6
-
7
- | Component | Headless | Styled | State driver | Stable states / notes |
8
- |-----------|----------|--------|--------------|------------------------|
9
- | Button | ✓ | ✓ | **`status` prop** (machine optional in app) | idle, pending, success, failure, disabled |
10
- | Switch | ✓ | ✓ | `toggleMachine` | checked / unchecked |
11
- | Checkbox | ✓ | ✓ | `toggleMachine` | checked / unchecked |
12
- | Dialog | ✓ | ✓ | `dialogMachine` | open / closed |
13
- | Tabs | ✓ | ✓ | `tabsMachine` | per-tab selected |
14
- | Accordion | ✓ | ✓ | `accordionMachine` | per-item open / closed |
15
- | Select | ✓ | ✓ | `popoverMachine` | open / closed listbox; keyboard highlight in React |
16
- | Combobox | ✓ | ✓ | **React state** | open / closed + filter |
17
- | Async | ✓ | ✓ | `createAsyncMachine` | idle, loading, success, failure, empty + stale |
18
- | Field | ✓ | ✓ | `fieldMachine` (parallel) | interaction × validation × submission; `Control` + `Textarea` |
19
- | Scroll | ✓ | ✓ | **`getScrollSnapshot`** | overflow axis + edge position |
20
- | Menu | ✓ | ✓ | `popoverMachine` | open / closed |
21
- | Popover | ✓ | ✓ | `popoverMachine` | open / closed |
22
- | Tooltip | ✓ | ✓ | **React state** | open / closed; tap-to-toggle on touch |
23
- | Toast | ✓ | ✓ | `toastMachine` | hidden / visible |
24
- | Avatar | ✓ | — | **React state** | idle / loading / loaded / error |
25
- | Separator | ✓ | ✓ | **static** | horizontal / vertical orientation |
26
- | Progress | ✓ | ✓ | **props** | idle / loading / complete |
27
- | RadioGroup | ✓ | ✓ | `tabsMachine` | one selected item |
28
- | Slider | ✓ | ✓ | `sliderMachine` | idle / dragging + value |
29
- | PinInput | ✓ | ✓ | **React state** | idle / complete |
30
-
31
- ## Planned (not shipped)
32
-
33
- Number Input, Date Picker, Tree View, File Upload, Carousel, Toggle Group — tracked as the catalog grows; prefer explicit machines per component.
34
-
35
- ## Choosing a layer
36
-
37
- - **App logic & tests** → define or extend machines in `@aeon-ui/primitives`, or app-level XState.
38
- - **Custom design system** → `@aeon-ui/react` + your CSS targeting `data-aeon-*`.
39
- - **Ship fast with Aeon look** → `@aeon-ui/ui` + `@aeon-ui/panda` themes.
40
-
41
- See [INTEGRATION.md](./INTEGRATION.md) for styling without Panda.