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,635 @@
1
+ // src/philosophy.ts
2
+ var AEON_PRINCIPLE = "State is defined first. UI represents the totality of that definition.";
3
+ var UI_IS_FUNCTION_OF_STATE = "UI = f(state)";
4
+
5
+ // src/anatomy.ts
6
+ function anatomy(scope, parts) {
7
+ return Object.fromEntries(parts.map((p) => [p, p]));
8
+ }
9
+ var buttonAnatomy = anatomy("button", [
10
+ "root",
11
+ "group",
12
+ "label",
13
+ "icon"
14
+ ]);
15
+ var switchAnatomy = anatomy("switch", [
16
+ "root",
17
+ "control",
18
+ "thumb",
19
+ "label",
20
+ "hiddenInput"
21
+ ]);
22
+ var checkboxAnatomy = anatomy("checkbox", [
23
+ "root",
24
+ "control",
25
+ "indicator",
26
+ "label",
27
+ "hiddenInput"
28
+ ]);
29
+ var dialogAnatomy = anatomy("dialog", [
30
+ "root",
31
+ "trigger",
32
+ "portal",
33
+ "backdrop",
34
+ "positioner",
35
+ "content",
36
+ "title",
37
+ "description",
38
+ "closeTrigger"
39
+ ]);
40
+ var tabsAnatomy = anatomy("tabs", [
41
+ "root",
42
+ "list",
43
+ "trigger",
44
+ "content",
45
+ "indicator"
46
+ ]);
47
+ var accordionAnatomy = anatomy("accordion", [
48
+ "root",
49
+ "item",
50
+ "itemTrigger",
51
+ "itemContent",
52
+ "itemIndicator"
53
+ ]);
54
+ var asyncAnatomy = anatomy("async", [
55
+ "root",
56
+ "track",
57
+ "segment",
58
+ "readout",
59
+ "readoutRail",
60
+ "readoutBody",
61
+ "actions"
62
+ ]);
63
+ var fieldAnatomy = anatomy("field", [
64
+ "root",
65
+ "label",
66
+ "control",
67
+ "textarea",
68
+ "message",
69
+ "hint"
70
+ ]);
71
+ var scrollAnatomy = anatomy("scroll", ["root", "viewport", "content"]);
72
+ var playSurfaceAnatomy = anatomy("play", ["root", "mat", "region", "entity"]);
73
+ var selectAnatomy = anatomy("select", [
74
+ "root",
75
+ "trigger",
76
+ "value",
77
+ "icon",
78
+ "positioner",
79
+ "content",
80
+ "item"
81
+ ]);
82
+ var comboboxAnatomy = anatomy("combobox", [
83
+ "root",
84
+ "input",
85
+ "icon",
86
+ "content",
87
+ "item",
88
+ "empty"
89
+ ]);
90
+ var popoverAnatomy = anatomy("popover", [
91
+ "root",
92
+ "trigger",
93
+ "positioner",
94
+ "content",
95
+ "arrow",
96
+ "closeTrigger"
97
+ ]);
98
+ var menuAnatomy = anatomy("menu", [
99
+ "root",
100
+ "trigger",
101
+ "positioner",
102
+ "content",
103
+ "item",
104
+ "separator"
105
+ ]);
106
+ var tooltipAnatomy = anatomy("tooltip", [
107
+ "root",
108
+ "trigger",
109
+ "positioner",
110
+ "content",
111
+ "arrow"
112
+ ]);
113
+ var toastAnatomy = anatomy("toast", [
114
+ "viewport",
115
+ "root",
116
+ "title",
117
+ "description",
118
+ "closeTrigger"
119
+ ]);
120
+ var avatarAnatomy = anatomy("avatar", ["root", "image", "fallback", "badge"]);
121
+ var identityAnatomy = anatomy("identity", [
122
+ "root",
123
+ "avatar",
124
+ "title",
125
+ "subtitle",
126
+ "meta",
127
+ "trailing"
128
+ ]);
129
+ var profileHeaderAnatomy = anatomy("profileHeader", [
130
+ "root",
131
+ "media",
132
+ "identity",
133
+ "metrics",
134
+ "actions",
135
+ "body"
136
+ ]);
137
+ var entryAnatomy = anatomy("entry", [
138
+ "list",
139
+ "root",
140
+ "header",
141
+ "leading",
142
+ "heading",
143
+ "title",
144
+ "subtitle",
145
+ "meta",
146
+ "media",
147
+ "body",
148
+ "values",
149
+ "value",
150
+ "actions",
151
+ "footer"
152
+ ]);
153
+ var metricStripAnatomy = anatomy("metricStrip", [
154
+ "root",
155
+ "chip",
156
+ "value",
157
+ "label"
158
+ ]);
159
+ var listRowAnatomy = anatomy("listRow", [
160
+ "root",
161
+ "leading",
162
+ "label",
163
+ "description",
164
+ "trailing"
165
+ ]);
166
+ var conversationAnatomy = anatomy("conversation", [
167
+ "root",
168
+ "item",
169
+ "leading",
170
+ "body",
171
+ "title",
172
+ "preview",
173
+ "meta",
174
+ "badge"
175
+ ]);
176
+ var threadAnatomy = anatomy("thread", [
177
+ "root",
178
+ "list",
179
+ "item",
180
+ "bubble",
181
+ "meta",
182
+ "day"
183
+ ]);
184
+ var composerAnatomy = anatomy("composer", [
185
+ "root",
186
+ "input",
187
+ "actions",
188
+ "send"
189
+ ]);
190
+ var separatorAnatomy = anatomy("separator", ["root"]);
191
+ var progressAnatomy = anatomy("progress", ["root", "track", "range", "label"]);
192
+ var radioGroupAnatomy = anatomy("radioGroup", [
193
+ "root",
194
+ "item",
195
+ "itemControl",
196
+ "itemIndicator",
197
+ "itemLabel"
198
+ ]);
199
+ var sliderAnatomy = anatomy("slider", [
200
+ "root",
201
+ "track",
202
+ "range",
203
+ "thumb",
204
+ "valueText"
205
+ ]);
206
+ var pinInputAnatomy = anatomy("pinInput", ["root", "input"]);
207
+ var barAnatomy = anatomy("bar", [
208
+ "root",
209
+ "leading",
210
+ "center",
211
+ "trailing",
212
+ "seam"
213
+ ]);
214
+ var panelAnatomy = anatomy("panel", [
215
+ "group",
216
+ "root",
217
+ "trigger",
218
+ "label",
219
+ "content"
220
+ ]);
221
+ var appShellAnatomy = anatomy("appShell", [
222
+ "root",
223
+ "header",
224
+ "subheader",
225
+ "content",
226
+ "aside",
227
+ "footer",
228
+ "dock",
229
+ "scrim"
230
+ ]);
231
+ var contentAnatomy = anatomy("content", [
232
+ "root",
233
+ "toolbar",
234
+ "body",
235
+ "pending",
236
+ "empty",
237
+ "error",
238
+ "success",
239
+ "sentinel"
240
+ ]);
241
+ var navAnatomy = anatomy("nav", [
242
+ "root",
243
+ "item",
244
+ "indicator",
245
+ "label",
246
+ "icon",
247
+ "badge"
248
+ ]);
249
+ var themeSwitcherAnatomy = anatomy("themeSwitcher", [
250
+ "root",
251
+ "modes",
252
+ "modeBtn",
253
+ "themeSelect",
254
+ "themeTrigger"
255
+ ]);
256
+
257
+ // src/attrs.ts
258
+ function stateFields(options) {
259
+ const states = options?.state ? Array.isArray(options.state) ? options.state.join(" ") : options.state : void 0;
260
+ return {
261
+ ...states ? { "data-aeon-state": states } : {},
262
+ ...options?.disabled ? { "data-disabled": "" } : {},
263
+ ...options?.focus ? { "data-focus": "" } : {},
264
+ ...options?.highlighted ? { "data-highlighted": "" } : {}
265
+ };
266
+ }
267
+ function scopeAttrs(scope, part = "root", options) {
268
+ return {
269
+ "data-aeon-scope": scope,
270
+ "data-aeon-part": part,
271
+ ...stateFields(options)
272
+ };
273
+ }
274
+ function partOnlyAttrs(part, options) {
275
+ return {
276
+ "data-aeon-part": part,
277
+ ...stateFields(options)
278
+ };
279
+ }
280
+ function partAttrs(scope, part, options) {
281
+ return scopeAttrs(scope, part, options);
282
+ }
283
+
284
+ // src/machine.ts
285
+ import { setup } from "xstate";
286
+ function stateToAttr(value) {
287
+ if (value == null || typeof value === "string") return String(value ?? "");
288
+ return Object.entries(value).map(([k, v]) => `${k}:${stateToAttr(v)}`).join(" ");
289
+ }
290
+ function fieldFace(value) {
291
+ if (value == null || typeof value !== "object") return "idle";
292
+ const v = value;
293
+ if (v.submission === "pending") return "pending";
294
+ if (v.validation === "invalid") return "invalid";
295
+ if (v.interaction === "dirty") return "dirty";
296
+ return "idle";
297
+ }
298
+ function fieldRegions(value) {
299
+ if (value == null || typeof value !== "object") {
300
+ return { interaction: "pristine", validation: "valid", submission: "idle" };
301
+ }
302
+ const v = value;
303
+ return {
304
+ interaction: typeof v.interaction === "string" ? v.interaction : "pristine",
305
+ validation: typeof v.validation === "string" ? v.validation : "valid",
306
+ submission: typeof v.submission === "string" ? v.submission : "idle"
307
+ };
308
+ }
309
+ function getRegionValue(value, region) {
310
+ if (value == null) return void 0;
311
+ if (typeof value === "string") return value === region ? value : void 0;
312
+ if (typeof value === "object") {
313
+ return value[region];
314
+ }
315
+ return void 0;
316
+ }
317
+ function regionPath(value, region) {
318
+ const path = [];
319
+ let cur = getRegionValue(value, region);
320
+ while (cur != null) {
321
+ if (typeof cur === "string") {
322
+ path.push(cur);
323
+ break;
324
+ }
325
+ if (typeof cur !== "object") break;
326
+ const entries = Object.entries(cur);
327
+ if (entries.length === 0) break;
328
+ if (entries.length > 1) {
329
+ path.push(entries.map(([k]) => k).sort().join("+"));
330
+ break;
331
+ }
332
+ const [key, next] = entries[0];
333
+ path.push(key);
334
+ cur = next;
335
+ }
336
+ return path;
337
+ }
338
+ function regionLeaf(value, region) {
339
+ const path = regionPath(value, region);
340
+ return path[path.length - 1];
341
+ }
342
+ function regionMatches(value, region, match) {
343
+ const path = regionPath(value, region);
344
+ if (path.length === 0) return false;
345
+ if (typeof match === "string") {
346
+ return path.includes(match) || path[path.length - 1] === match;
347
+ }
348
+ if (match.length === 0) return false;
349
+ if (match.length <= path.length) {
350
+ return match.every((part, i) => path[i] === part);
351
+ }
352
+ return false;
353
+ }
354
+
355
+ // src/scroll.ts
356
+ var EPS = 1;
357
+ function canScrollY(el) {
358
+ return el.scrollHeight > el.clientHeight + EPS;
359
+ }
360
+ function canScrollX(el) {
361
+ return el.scrollWidth > el.clientWidth + EPS;
362
+ }
363
+ function getScrollSnapshot(el) {
364
+ const scrollY = canScrollY(el);
365
+ const scrollX = canScrollX(el);
366
+ let overflow = "none";
367
+ if (scrollY && scrollX) overflow = "both";
368
+ else if (scrollY) overflow = "y";
369
+ else if (scrollX) overflow = "x";
370
+ const atStartY = !scrollY || el.scrollTop <= EPS;
371
+ const atEndY = !scrollY || el.scrollTop + el.clientHeight >= el.scrollHeight - EPS;
372
+ const betweenY = scrollY && !atStartY && !atEndY;
373
+ const atStartX = !scrollX || el.scrollLeft <= EPS;
374
+ const atEndX = !scrollX || el.scrollLeft + el.clientWidth >= el.scrollWidth - EPS;
375
+ const betweenX = scrollX && !atStartX && !atEndX;
376
+ const parts = [];
377
+ if (overflow === "none") parts.push("idle");
378
+ else parts.push(`overflow-${overflow}`);
379
+ if (scrollY) {
380
+ if (atStartY && atEndY) parts.push("at-start-y", "at-end-y");
381
+ else if (atStartY) parts.push("at-start-y");
382
+ else if (atEndY) parts.push("at-end-y");
383
+ else parts.push("between-y");
384
+ }
385
+ if (scrollX) {
386
+ if (atStartX && atEndX) parts.push("at-start-x", "at-end-x");
387
+ else if (atStartX) parts.push("at-start-x");
388
+ else if (atEndX) parts.push("at-end-x");
389
+ else parts.push("between-x");
390
+ }
391
+ return {
392
+ overflow,
393
+ stateAttr: parts.join(" "),
394
+ atStartY,
395
+ atEndY,
396
+ betweenY,
397
+ atStartX,
398
+ atEndX,
399
+ betweenX
400
+ };
401
+ }
402
+
403
+ // src/layout.ts
404
+ var NORM_PLANE = {
405
+ bottomLeft: "bottom-left",
406
+ topLeft: "top-left"
407
+ };
408
+ var DEFAULT_COMPACT_MQ = "(max-width: 39.99rem)";
409
+ function clampNorm(point, bounds) {
410
+ return {
411
+ x: Math.min(bounds.xMax, Math.max(bounds.xMin, point.x)),
412
+ y: Math.min(bounds.yMax, Math.max(bounds.yMin, point.y))
413
+ };
414
+ }
415
+ function normFromClient(rect, clientX, clientY, options) {
416
+ const origin = options?.origin ?? NORM_PLANE.bottomLeft;
417
+ const w = rect.width || 1;
418
+ const h = rect.height || 1;
419
+ const x = (clientX - rect.left) / w * 100;
420
+ const yFromTop = (clientY - rect.top) / h;
421
+ const y = origin === NORM_PLANE.bottomLeft ? (1 - yFromTop) * 100 : yFromTop * 100;
422
+ const raw = { x, y };
423
+ return options?.bounds ? clampNorm(raw, options.bounds) : raw;
424
+ }
425
+ function clientFromNorm(rect, point, options) {
426
+ const origin = options?.origin ?? NORM_PLANE.bottomLeft;
427
+ const w = rect.width || 1;
428
+ const h = rect.height || 1;
429
+ const clientX = rect.left + point.x / 100 * w;
430
+ const yFromTop = origin === NORM_PLANE.bottomLeft ? 1 - point.y / 100 : point.y / 100;
431
+ const clientY = rect.top + yFromTop * h;
432
+ return { clientX, clientY };
433
+ }
434
+ function measureElement(el) {
435
+ if (!el || !("getBoundingClientRect" in el)) return null;
436
+ const rect = el.getBoundingClientRect();
437
+ return rect.width > 0 && rect.height > 0 ? rect : null;
438
+ }
439
+ function resolveRegionRect(primary, fallback) {
440
+ if (primary && primary.width > 0 && primary.height > 0) return primary;
441
+ if (fallback && fallback.width > 0 && fallback.height > 0) return fallback;
442
+ return null;
443
+ }
444
+ function matchLayoutMode(spec, mq = getCompactMq(spec)) {
445
+ return mq.matches ? "compact" : "wide";
446
+ }
447
+ function getCompactMq(spec) {
448
+ const query = spec.compactMq ?? DEFAULT_COMPACT_MQ;
449
+ if (typeof window === "undefined" || !window.matchMedia) {
450
+ return { matches: false };
451
+ }
452
+ return window.matchMedia(query);
453
+ }
454
+ function layoutCompositionForMode(spec, mode) {
455
+ return spec.modes[mode];
456
+ }
457
+ function regionBoundsForMode(spec, mode, regionId) {
458
+ return spec.modes[mode].bounds?.[regionId];
459
+ }
460
+ function layoutModeAttrs(mode, composition) {
461
+ return {
462
+ "data-aeon-layout-mode": mode,
463
+ "data-aeon-layout-composition": composition
464
+ };
465
+ }
466
+ function insetNormCluster(point, bounds, inset = {}) {
467
+ const padX = inset.x ?? 0;
468
+ const padY = inset.y ?? 0;
469
+ const halfX = (bounds.xMax - bounds.xMin) / 2;
470
+ const halfY = (bounds.yMax - bounds.yMin) / 2;
471
+ const capX = Math.min(padX, halfX - 0.5);
472
+ const capY = Math.min(padY, halfY - 0.5);
473
+ return {
474
+ x: Math.min(bounds.xMax - capX, Math.max(bounds.xMin + capX, point.x)),
475
+ y: Math.min(bounds.yMax - capY, Math.max(bounds.yMin + capY, point.y))
476
+ };
477
+ }
478
+
479
+ // src/theme.ts
480
+ var AEON_THEME_TRANSITION_CLASS = "aeon-theme-transition";
481
+ function isAeonColorMode(value) {
482
+ return value === "light" || value === "dark";
483
+ }
484
+ function resolveAeonColorMode(theme, systemPrefersDark = false) {
485
+ if (theme === "dark") return "dark";
486
+ if (theme === "light") return "light";
487
+ return systemPrefersDark ? "dark" : "light";
488
+ }
489
+ function syncAeonColorMode(root, mode, options) {
490
+ const themeId = options?.themeId ?? root.dataset.aeonTheme ?? "default";
491
+ root.dataset.aeonTheme = themeId;
492
+ root.dataset.aeonMode = mode;
493
+ root.style.colorScheme = mode;
494
+ if (options?.enableTransitionClass !== false) {
495
+ root.classList.add(AEON_THEME_TRANSITION_CLASS);
496
+ }
497
+ }
498
+ function runAeonThemeTransition(apply) {
499
+ if (typeof document === "undefined") {
500
+ apply();
501
+ return;
502
+ }
503
+ const start = document.startViewTransition;
504
+ if (typeof start === "function") {
505
+ start.call(document, apply);
506
+ return;
507
+ }
508
+ apply();
509
+ }
510
+ var STORAGE_THEME = "aeon-theme";
511
+ var STORAGE_MODE = "aeon-mode";
512
+ var DEFAULT_THEME_ID = "default";
513
+ var DEFAULT_MODE = "dark";
514
+ function registerAeonThemes(themes) {
515
+ const map = Object.fromEntries(themes.map((t) => [t.id, t]));
516
+ const ids = themes.map((t) => t.id);
517
+ return { themes, map, ids };
518
+ }
519
+ function isAeonThemeId(value) {
520
+ return value !== void 0;
521
+ }
522
+ function isAeonMode(value) {
523
+ return value === "light" || value === "dark";
524
+ }
525
+ function applyAeonTheme(themeId, mode, themeMap) {
526
+ const root = document.documentElement;
527
+ root.dataset.aeonTheme = themeId;
528
+ root.dataset.aeonMode = mode;
529
+ root.style.colorScheme = mode;
530
+ if (themeMap && themeMap[themeId]) {
531
+ const meta = document.querySelector('meta[name="theme-color"]');
532
+ if (meta) {
533
+ meta.setAttribute("content", themeMap[themeId][mode].bg);
534
+ }
535
+ }
536
+ try {
537
+ localStorage.setItem(STORAGE_THEME, themeId);
538
+ localStorage.setItem(STORAGE_MODE, mode);
539
+ } catch {
540
+ }
541
+ }
542
+ function initAeonTheme(themeMap) {
543
+ let themeId = DEFAULT_THEME_ID;
544
+ let mode = DEFAULT_MODE;
545
+ try {
546
+ const storedTheme = localStorage.getItem(STORAGE_THEME);
547
+ const storedMode = localStorage.getItem(STORAGE_MODE);
548
+ if (storedTheme) themeId = storedTheme;
549
+ if (storedMode && isAeonMode(storedMode)) {
550
+ mode = storedMode;
551
+ } else if (!storedMode && window.matchMedia("(prefers-color-scheme: light)").matches) {
552
+ mode = "light";
553
+ }
554
+ } catch {
555
+ if (window.matchMedia("(prefers-color-scheme: light)").matches) mode = "light";
556
+ }
557
+ applyAeonTheme(themeId, mode, themeMap);
558
+ return { themeId, mode };
559
+ }
560
+ export {
561
+ AEON_PRINCIPLE,
562
+ AEON_THEME_TRANSITION_CLASS,
563
+ DEFAULT_COMPACT_MQ,
564
+ NORM_PLANE,
565
+ UI_IS_FUNCTION_OF_STATE,
566
+ accordionAnatomy,
567
+ anatomy,
568
+ appShellAnatomy,
569
+ applyAeonTheme,
570
+ asyncAnatomy,
571
+ avatarAnatomy,
572
+ barAnatomy,
573
+ buttonAnatomy,
574
+ checkboxAnatomy,
575
+ clampNorm,
576
+ clientFromNorm,
577
+ comboboxAnatomy,
578
+ composerAnatomy,
579
+ contentAnatomy,
580
+ conversationAnatomy,
581
+ setup as createAeonMachine,
582
+ dialogAnatomy,
583
+ entryAnatomy,
584
+ fieldAnatomy,
585
+ fieldFace,
586
+ fieldRegions,
587
+ getCompactMq,
588
+ getRegionValue,
589
+ getScrollSnapshot,
590
+ identityAnatomy,
591
+ initAeonTheme,
592
+ insetNormCluster,
593
+ isAeonColorMode,
594
+ isAeonMode,
595
+ isAeonThemeId,
596
+ layoutCompositionForMode,
597
+ layoutModeAttrs,
598
+ listRowAnatomy,
599
+ matchLayoutMode,
600
+ measureElement,
601
+ menuAnatomy,
602
+ metricStripAnatomy,
603
+ navAnatomy,
604
+ normFromClient,
605
+ panelAnatomy,
606
+ partAttrs,
607
+ partOnlyAttrs,
608
+ pinInputAnatomy,
609
+ playSurfaceAnatomy,
610
+ popoverAnatomy,
611
+ profileHeaderAnatomy,
612
+ progressAnatomy,
613
+ radioGroupAnatomy,
614
+ regionBoundsForMode,
615
+ regionLeaf,
616
+ regionMatches,
617
+ regionPath,
618
+ registerAeonThemes,
619
+ resolveAeonColorMode,
620
+ resolveRegionRect,
621
+ runAeonThemeTransition,
622
+ scopeAttrs,
623
+ scrollAnatomy,
624
+ selectAnatomy,
625
+ separatorAnatomy,
626
+ sliderAnatomy,
627
+ stateToAttr,
628
+ switchAnatomy,
629
+ syncAeonColorMode,
630
+ tabsAnatomy,
631
+ themeSwitcherAnatomy,
632
+ threadAnatomy,
633
+ toastAnatomy,
634
+ tooltipAnatomy
635
+ };
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/Users/brandoncryderman/AeonUI/node_modules/.pnpm/esbuild@0.28.0/node_modules/esbuild/bin/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/esbuild@0.28.0/node_modules/esbuild/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/esbuild@0.28.0/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/Users/brandoncryderman/AeonUI/node_modules/.pnpm/esbuild@0.28.0/node_modules/esbuild/bin/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/esbuild@0.28.0/node_modules/esbuild/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/esbuild@0.28.0/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../../../../node_modules/.pnpm/esbuild@0.28.0/node_modules/esbuild/bin/esbuild" "$@"
19
+ else
20
+ exec node "$basedir/../../../../node_modules/.pnpm/esbuild@0.28.0/node_modules/esbuild/bin/esbuild" "$@"
21
+ fi
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/Users/brandoncryderman/AeonUI/node_modules/.pnpm/jiti@2.7.0/node_modules/jiti/lib/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/jiti@2.7.0/node_modules/jiti/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/jiti@2.7.0/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/Users/brandoncryderman/AeonUI/node_modules/.pnpm/jiti@2.7.0/node_modules/jiti/lib/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/jiti@2.7.0/node_modules/jiti/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/jiti@2.7.0/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../../../../node_modules/.pnpm/jiti@2.7.0/node_modules/jiti/lib/jiti-cli.mjs" "$@"
19
+ else
20
+ exec node "$basedir/../../../../node_modules/.pnpm/jiti@2.7.0/node_modules/jiti/lib/jiti-cli.mjs" "$@"
21
+ fi
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/Users/brandoncryderman/AeonUI/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/bin/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/typescript@5.9.3/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/Users/brandoncryderman/AeonUI/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/bin/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/typescript@5.9.3/node_modules:/Users/brandoncryderman/AeonUI/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../typescript/bin/tsc" "$@"
19
+ else
20
+ exec node "$basedir/../typescript/bin/tsc" "$@"
21
+ fi