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.
- package/CHANGELOG.md +28 -0
- package/CONSUMER.md +83 -0
- package/INTEGRATION.md +2 -0
- package/README.md +56 -14
- package/package.json +24 -1
- package/packages/cli/README.md +17 -0
- package/packages/cli/dist/bin.d.ts +1 -0
- package/packages/cli/dist/bin.js +35 -0
- package/packages/cli/dist/chunk-IW5NT2Z2.js +103 -0
- package/packages/cli/dist/index.d.ts +10 -0
- package/packages/cli/dist/index.js +6 -0
- package/packages/cli/node_modules/.bin/esbuild +21 -0
- package/packages/cli/node_modules/.bin/jiti +21 -0
- package/packages/cli/node_modules/.bin/tsc +21 -0
- package/packages/cli/node_modules/.bin/tsserver +21 -0
- package/packages/cli/node_modules/.bin/tsup +21 -0
- package/packages/cli/node_modules/.bin/tsup-node +21 -0
- package/packages/cli/node_modules/.bin/tsx +21 -0
- package/packages/cli/node_modules/.bin/vite +21 -0
- package/packages/cli/node_modules/.bin/vitest +21 -0
- package/packages/cli/package.json +50 -0
- package/packages/cli/src/bin.ts +34 -0
- package/packages/cli/src/index.ts +1 -0
- package/packages/cli/src/init.ts +107 -0
- package/packages/cli/tsconfig.json +10 -0
- package/packages/core/README.md +7 -1
- package/packages/core/dist/index.d.ts +425 -0
- package/packages/core/dist/index.js +635 -0
- package/packages/core/node_modules/.bin/esbuild +21 -0
- package/packages/core/node_modules/.bin/jiti +21 -0
- package/packages/core/node_modules/.bin/tsc +21 -0
- package/packages/core/node_modules/.bin/tsserver +21 -0
- package/packages/core/node_modules/.bin/tsup +21 -0
- package/packages/core/node_modules/.bin/tsup-node +21 -0
- package/packages/core/node_modules/.bin/tsx +21 -0
- package/packages/core/node_modules/.bin/vite +21 -0
- package/packages/core/node_modules/.bin/vitest +21 -0
- package/packages/core/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
- package/packages/core/package.json +17 -5
- package/packages/core/src/anatomy.ts +196 -5
- package/packages/core/src/machine.test.ts +62 -1
- package/packages/core/src/machine.ts +93 -0
- package/packages/core/src/theme.ts +105 -0
- package/packages/geometry/dist/index.d.ts +50 -0
- package/packages/geometry/dist/index.js +88 -0
- package/packages/geometry/node_modules/.bin/esbuild +21 -0
- package/packages/geometry/node_modules/.bin/jiti +21 -0
- package/packages/geometry/node_modules/.bin/tsc +21 -0
- package/packages/geometry/node_modules/.bin/tsserver +21 -0
- package/packages/geometry/node_modules/.bin/tsup +21 -0
- package/packages/geometry/node_modules/.bin/tsup-node +21 -0
- package/packages/geometry/node_modules/.bin/tsx +21 -0
- package/packages/panda/aeon.css +7 -0
- package/packages/panda/package.json +1 -1
- package/packages/panda/panda.config.ts +58 -1
- package/packages/panda/src/recipes/app-shell.ts +137 -0
- package/packages/panda/src/recipes/avatar.ts +131 -0
- package/packages/panda/src/recipes/bar.ts +206 -0
- package/packages/panda/src/recipes/button-group.ts +12 -4
- package/packages/panda/src/recipes/button.ts +1 -0
- package/packages/panda/src/recipes/combobox.ts +2 -1
- package/packages/panda/src/recipes/composer.ts +81 -0
- package/packages/panda/src/recipes/content.ts +104 -0
- package/packages/panda/src/recipes/conversation.ts +106 -0
- package/packages/panda/src/recipes/entry.ts +217 -0
- package/packages/panda/src/recipes/field.ts +12 -2
- package/packages/panda/src/recipes/floating.ts +26 -13
- package/packages/panda/src/recipes/identity.ts +73 -0
- package/packages/panda/src/recipes/index.ts +15 -0
- package/packages/panda/src/recipes/list-row.ts +109 -0
- package/packages/panda/src/recipes/metric-strip.ts +80 -0
- package/packages/panda/src/recipes/nav.ts +155 -0
- package/packages/panda/src/recipes/panel.ts +156 -0
- package/packages/panda/src/recipes/pin-input.ts +3 -2
- package/packages/panda/src/recipes/profile-header.ts +120 -0
- package/packages/panda/src/recipes/select.ts +2 -1
- package/packages/panda/src/recipes/slider.ts +6 -4
- package/packages/panda/src/recipes/theme-switcher.ts +110 -0
- package/packages/panda/src/recipes/thread.ts +88 -0
- package/packages/panda/src/theme/catalog-types.ts +2 -0
- package/packages/panda/src/theme/catalog.ts +23 -0
- package/packages/panda/src/theme/chrome.css +2 -1
- package/packages/panda/src/theme/global-theme-css.ts +9 -0
- package/packages/panda/src/theme/omarchy.themes.ts +607 -0
- package/packages/panda/src/theme/palette.ts +3 -0
- package/packages/panda/src/theme/scrollbars.css +58 -21
- package/packages/panda/src/theme/themes.config.ts +39 -1
- package/packages/panda/styled-system/css/conditions.mjs +1 -1
- package/packages/panda/styled-system/css/css.mjs +1 -1
- package/packages/panda/styled-system/css/sva.mjs +9 -4
- package/packages/panda/styled-system/helpers.mjs +11 -22
- package/packages/panda/styled-system/jsx/create-style-context.d.ts +54 -0
- package/packages/panda/styled-system/jsx/create-style-context.mjs +121 -0
- package/packages/panda/styled-system/jsx/factory.mjs +14 -5
- package/packages/panda/styled-system/jsx/index.d.ts +1 -0
- package/packages/panda/styled-system/jsx/index.mjs +1 -0
- package/packages/panda/styled-system/jsx/is-valid-prop.mjs +2 -2
- package/packages/panda/styled-system/patterns/aspect-ratio.d.ts +0 -1
- package/packages/panda/styled-system/patterns/bleed.d.ts +0 -1
- package/packages/panda/styled-system/patterns/box.d.ts +0 -1
- package/packages/panda/styled-system/patterns/center.d.ts +0 -1
- package/packages/panda/styled-system/patterns/circle.d.ts +0 -1
- package/packages/panda/styled-system/patterns/container.d.ts +0 -1
- package/packages/panda/styled-system/patterns/cq.d.ts +0 -1
- package/packages/panda/styled-system/patterns/divider.d.ts +0 -1
- package/packages/panda/styled-system/patterns/flex.d.ts +0 -1
- package/packages/panda/styled-system/patterns/float.d.ts +0 -1
- package/packages/panda/styled-system/patterns/grid-item.d.ts +0 -1
- package/packages/panda/styled-system/patterns/grid.d.ts +0 -1
- package/packages/panda/styled-system/patterns/grid.mjs +1 -1
- package/packages/panda/styled-system/patterns/hstack.d.ts +0 -1
- package/packages/panda/styled-system/patterns/hstack.mjs +1 -1
- package/packages/panda/styled-system/patterns/link-overlay.d.ts +0 -1
- package/packages/panda/styled-system/patterns/spacer.d.ts +0 -1
- package/packages/panda/styled-system/patterns/spacer.mjs +6 -2
- package/packages/panda/styled-system/patterns/square.d.ts +0 -1
- package/packages/panda/styled-system/patterns/stack.d.ts +0 -1
- package/packages/panda/styled-system/patterns/stack.mjs +1 -1
- package/packages/panda/styled-system/patterns/visually-hidden.d.ts +0 -1
- package/packages/panda/styled-system/patterns/vstack.d.ts +0 -1
- package/packages/panda/styled-system/patterns/vstack.mjs +1 -1
- package/packages/panda/styled-system/patterns/wrap.d.ts +0 -1
- package/packages/panda/styled-system/patterns/wrap.mjs +1 -1
- package/packages/panda/styled-system/recipes/aeon-accordion.d.ts +4 -3
- package/packages/panda/styled-system/recipes/aeon-accordion.mjs +1 -0
- package/packages/panda/styled-system/recipes/aeon-app-shell.d.ts +34 -0
- package/packages/panda/styled-system/recipes/aeon-app-shell.mjs +70 -0
- package/packages/panda/styled-system/recipes/aeon-async.d.ts +4 -3
- package/packages/panda/styled-system/recipes/aeon-async.mjs +1 -0
- package/packages/panda/styled-system/recipes/aeon-avatar.d.ts +36 -0
- package/packages/panda/styled-system/recipes/aeon-avatar.mjs +57 -0
- package/packages/panda/styled-system/recipes/aeon-badge.d.ts +3 -0
- package/packages/panda/styled-system/recipes/aeon-bar.d.ts +40 -0
- package/packages/panda/styled-system/recipes/aeon-bar.mjs +77 -0
- package/packages/panda/styled-system/recipes/aeon-button-group.d.ts +3 -2
- package/packages/panda/styled-system/recipes/aeon-button.d.ts +3 -2
- package/packages/panda/styled-system/recipes/aeon-checkbox.d.ts +4 -1
- package/packages/panda/styled-system/recipes/aeon-checkbox.mjs +1 -0
- package/packages/panda/styled-system/recipes/aeon-combobox.d.ts +4 -3
- package/packages/panda/styled-system/recipes/aeon-combobox.mjs +1 -0
- package/packages/panda/styled-system/recipes/aeon-composer.d.ts +31 -0
- package/packages/panda/styled-system/recipes/aeon-composer.mjs +45 -0
- package/packages/panda/styled-system/recipes/aeon-content.d.ts +34 -0
- package/packages/panda/styled-system/recipes/aeon-content.mjs +70 -0
- package/packages/panda/styled-system/recipes/aeon-conversation.d.ts +31 -0
- package/packages/panda/styled-system/recipes/aeon-conversation.mjs +61 -0
- package/packages/panda/styled-system/recipes/aeon-dialog.d.ts +4 -1
- package/packages/panda/styled-system/recipes/aeon-dialog.mjs +1 -0
- package/packages/panda/styled-system/recipes/aeon-entry.d.ts +38 -0
- package/packages/panda/styled-system/recipes/aeon-entry.mjs +100 -0
- package/packages/panda/styled-system/recipes/aeon-field.d.ts +4 -3
- package/packages/panda/styled-system/recipes/aeon-field.mjs +1 -0
- package/packages/panda/styled-system/recipes/aeon-identity.d.ts +36 -0
- package/packages/panda/styled-system/recipes/aeon-identity.mjs +63 -0
- package/packages/panda/styled-system/recipes/aeon-list-row.d.ts +33 -0
- package/packages/panda/styled-system/recipes/aeon-list-row.mjs +49 -0
- package/packages/panda/styled-system/recipes/aeon-menu.d.ts +4 -1
- package/packages/panda/styled-system/recipes/aeon-menu.mjs +1 -0
- package/packages/panda/styled-system/recipes/aeon-metric-strip.d.ts +36 -0
- package/packages/panda/styled-system/recipes/aeon-metric-strip.mjs +54 -0
- package/packages/panda/styled-system/recipes/aeon-nav.d.ts +38 -0
- package/packages/panda/styled-system/recipes/aeon-nav.mjs +69 -0
- package/packages/panda/styled-system/recipes/aeon-panel.d.ts +34 -0
- package/packages/panda/styled-system/recipes/aeon-panel.mjs +58 -0
- package/packages/panda/styled-system/recipes/aeon-pin-input.d.ts +4 -1
- package/packages/panda/styled-system/recipes/aeon-pin-input.mjs +1 -0
- package/packages/panda/styled-system/recipes/aeon-popover.d.ts +4 -1
- package/packages/panda/styled-system/recipes/aeon-popover.mjs +1 -0
- package/packages/panda/styled-system/recipes/aeon-profile-header.d.ts +36 -0
- package/packages/panda/styled-system/recipes/aeon-profile-header.mjs +62 -0
- package/packages/panda/styled-system/recipes/aeon-progress.d.ts +4 -1
- package/packages/panda/styled-system/recipes/aeon-progress.mjs +1 -0
- package/packages/panda/styled-system/recipes/aeon-radio-group.d.ts +4 -1
- package/packages/panda/styled-system/recipes/aeon-radio-group.mjs +1 -0
- package/packages/panda/styled-system/recipes/aeon-scroll.d.ts +4 -3
- package/packages/panda/styled-system/recipes/aeon-scroll.mjs +1 -0
- package/packages/panda/styled-system/recipes/aeon-select.d.ts +4 -3
- package/packages/panda/styled-system/recipes/aeon-select.mjs +1 -0
- package/packages/panda/styled-system/recipes/aeon-separator.d.ts +4 -1
- package/packages/panda/styled-system/recipes/aeon-separator.mjs +1 -0
- package/packages/panda/styled-system/recipes/aeon-slider.d.ts +4 -1
- package/packages/panda/styled-system/recipes/aeon-slider.mjs +1 -0
- package/packages/panda/styled-system/recipes/aeon-switch.d.ts +4 -1
- package/packages/panda/styled-system/recipes/aeon-switch.mjs +1 -0
- package/packages/panda/styled-system/recipes/aeon-tabs.d.ts +4 -1
- package/packages/panda/styled-system/recipes/aeon-tabs.mjs +1 -0
- package/packages/panda/styled-system/recipes/aeon-theme-switcher.d.ts +34 -0
- package/packages/panda/styled-system/recipes/aeon-theme-switcher.mjs +59 -0
- package/packages/panda/styled-system/recipes/aeon-thread.d.ts +31 -0
- package/packages/panda/styled-system/recipes/aeon-thread.mjs +53 -0
- package/packages/panda/styled-system/recipes/aeon-toast.d.ts +4 -1
- package/packages/panda/styled-system/recipes/aeon-toast.mjs +1 -0
- package/packages/panda/styled-system/recipes/aeon-tooltip.d.ts +4 -1
- package/packages/panda/styled-system/recipes/aeon-tooltip.mjs +1 -0
- package/packages/panda/styled-system/recipes/index.d.ts +16 -1
- package/packages/panda/styled-system/recipes/index.mjs +16 -1
- package/packages/panda/styled-system/styles.css +2317 -450
- package/packages/panda/styled-system/tokens/index.mjs +43 -7
- package/packages/panda/styled-system/tokens/tokens.d.ts +5 -5
- package/packages/panda/styled-system/types/composition.d.ts +86 -23
- package/packages/panda/styled-system/types/conditions.d.ts +34 -10
- package/packages/panda/styled-system/types/csstype.d.ts +6405 -5133
- package/packages/panda/styled-system/types/jsx.d.ts +27 -10
- package/packages/panda/styled-system/types/pattern.d.ts +4 -4
- package/packages/panda/styled-system/types/prop-type.d.ts +11 -1
- package/packages/panda/styled-system/types/style-props.d.ts +2763 -2165
- package/packages/panda/styled-system/types/system-types.d.ts +38 -80
- package/packages/panda/theme-runtime.css +945 -0
- package/packages/primitives/dist/chunk-5S4DIRL4.js +42 -0
- package/packages/primitives/dist/chunk-H4KOEPYC.js +52 -0
- package/packages/primitives/dist/chunk-HONROWUG.js +41 -0
- package/packages/primitives/dist/chunk-J6JHKMVM.js +90 -0
- package/packages/primitives/dist/chunk-JBAG5E6W.js +46 -0
- package/packages/primitives/dist/chunk-LVNCD5F2.js +43 -0
- package/packages/primitives/dist/chunk-PB3LFHXU.js +72 -0
- package/packages/primitives/dist/chunk-R25CUHNF.js +46 -0
- package/packages/primitives/dist/chunk-RO2DMFN5.js +89 -0
- package/packages/primitives/dist/chunk-SZV6KGXN.js +49 -0
- package/packages/primitives/dist/chunk-V5D7LS4J.js +61 -0
- package/packages/primitives/dist/chunk-WVICCOQH.js +56 -0
- package/packages/primitives/dist/chunk-YBPNI2LI.js +70 -0
- package/packages/primitives/dist/chunk-ZMGRX64G.js +74 -0
- package/packages/primitives/dist/index.d.ts +15 -0
- package/packages/primitives/dist/index.js +82 -0
- package/packages/primitives/dist/machines/accordion.d.ts +34 -0
- package/packages/primitives/dist/machines/accordion.js +6 -0
- package/packages/primitives/dist/machines/app-shell.d.ts +57 -0
- package/packages/primitives/dist/machines/app-shell.js +8 -0
- package/packages/primitives/dist/machines/async.d.ts +111 -0
- package/packages/primitives/dist/machines/async.js +12 -0
- package/packages/primitives/dist/machines/button.d.ts +45 -0
- package/packages/primitives/dist/machines/button.js +8 -0
- package/packages/primitives/dist/machines/content-region.d.ts +72 -0
- package/packages/primitives/dist/machines/content-region.js +8 -0
- package/packages/primitives/dist/machines/dialog.d.ts +57 -0
- package/packages/primitives/dist/machines/dialog.js +6 -0
- package/packages/primitives/dist/machines/field.d.ts +72 -0
- package/packages/primitives/dist/machines/field.js +12 -0
- package/packages/primitives/dist/machines/panel.d.ts +50 -0
- package/packages/primitives/dist/machines/panel.js +6 -0
- package/packages/primitives/dist/machines/popover.d.ts +54 -0
- package/packages/primitives/dist/machines/popover.js +6 -0
- package/packages/primitives/dist/machines/slider.d.ts +71 -0
- package/packages/primitives/dist/machines/slider.js +10 -0
- package/packages/primitives/dist/machines/sticky-bar.d.ts +62 -0
- package/packages/primitives/dist/machines/sticky-bar.js +8 -0
- package/packages/primitives/dist/machines/tabs.d.ts +39 -0
- package/packages/primitives/dist/machines/tabs.js +6 -0
- package/packages/primitives/dist/machines/toast.d.ts +31 -0
- package/packages/primitives/dist/machines/toast.js +6 -0
- package/packages/primitives/dist/machines/toggle.d.ts +54 -0
- package/packages/primitives/dist/machines/toggle.js +6 -0
- package/packages/primitives/node_modules/.bin/esbuild +21 -0
- package/packages/primitives/node_modules/.bin/jiti +21 -0
- package/packages/primitives/node_modules/.bin/tsc +21 -0
- package/packages/primitives/node_modules/.bin/tsserver +21 -0
- package/packages/primitives/node_modules/.bin/tsup +21 -0
- package/packages/primitives/node_modules/.bin/tsup-node +21 -0
- package/packages/primitives/node_modules/.bin/tsx +21 -0
- package/packages/primitives/node_modules/.bin/vite +21 -0
- package/packages/primitives/node_modules/.bin/vitest +21 -0
- package/packages/primitives/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
- package/packages/primitives/package.json +15 -5
- package/packages/primitives/scripts/xstate-introspect.mjs +35 -0
- package/packages/primitives/src/index.ts +4 -0
- package/packages/primitives/src/machines/app-shell.ts +63 -0
- package/packages/primitives/src/machines/content-region.ts +107 -0
- package/packages/primitives/src/machines/panel.ts +71 -0
- package/packages/primitives/src/machines/sticky-bar.ts +89 -0
- package/packages/react/dist/index.d.ts +951 -0
- package/packages/react/dist/index.js +4739 -0
- package/packages/react/node_modules/.bin/esbuild +21 -0
- package/packages/react/node_modules/.bin/jiti +21 -0
- package/packages/react/node_modules/.bin/tsc +21 -0
- package/packages/react/node_modules/.bin/tsserver +21 -0
- package/packages/react/node_modules/.bin/tsup +21 -0
- package/packages/react/node_modules/.bin/tsup-node +21 -0
- package/packages/react/node_modules/.bin/tsx +21 -0
- package/packages/react/node_modules/.bin/vite +21 -0
- package/packages/react/node_modules/.bin/vitest +21 -0
- package/packages/react/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
- package/packages/react/package.json +18 -7
- package/packages/react/src/app-shell/index.tsx +154 -0
- package/packages/react/src/async/index.tsx +6 -1
- package/packages/react/src/async/map-content-state.ts +18 -0
- package/packages/react/src/avatar/index.tsx +19 -0
- package/packages/react/src/bar/index.tsx +101 -0
- package/packages/react/src/button/index.tsx +4 -2
- package/packages/react/src/composer/index.tsx +75 -0
- package/packages/react/src/content/index.tsx +149 -0
- package/packages/react/src/conversation/index.tsx +78 -0
- package/packages/react/src/entry/index.tsx +85 -0
- package/packages/react/src/field/index.tsx +31 -18
- package/packages/react/src/identity/index.tsx +110 -0
- package/packages/react/src/index.ts +15 -0
- package/packages/react/src/list-row/index.tsx +80 -0
- package/packages/react/src/metric-strip/index.tsx +88 -0
- package/packages/react/src/nav/index.tsx +155 -0
- package/packages/react/src/panel/index.tsx +267 -0
- package/packages/react/src/profile-header/index.tsx +91 -0
- package/packages/react/src/radio-group/index.tsx +19 -7
- package/packages/react/src/slider/index.tsx +3 -1
- package/packages/react/src/sticky-bar/index.tsx +135 -0
- package/packages/react/src/switch/index.tsx +7 -1
- package/packages/react/src/theme-switcher/index.tsx +227 -0
- package/packages/react/src/thread/index.tsx +95 -0
- package/packages/react/src/toast/primitives.tsx +2 -2
- package/packages/react/src/tooltip/tooltip.test.tsx +9 -1
- package/packages/react/tsconfig.json +2 -1
- package/packages/react-scene/dist/index.d.ts +121 -0
- package/packages/react-scene/dist/index.js +430 -0
- package/packages/react-scene/node_modules/.bin/jiti +21 -0
- package/packages/react-scene/node_modules/.bin/tsc +21 -0
- package/packages/react-scene/node_modules/.bin/tsserver +21 -0
- package/packages/react-scene/node_modules/.bin/tsup +21 -0
- package/packages/react-scene/node_modules/.bin/tsup-node +21 -0
- package/packages/react-scene/node_modules/.bin/tsx +21 -0
- package/packages/scene/dist/index.d.ts +46 -0
- package/packages/scene/dist/index.js +54 -0
- package/packages/scene/node_modules/.bin/jiti +21 -0
- package/packages/scene/node_modules/.bin/tsc +21 -0
- package/packages/scene/node_modules/.bin/tsserver +21 -0
- package/packages/scene/node_modules/.bin/tsup +21 -0
- package/packages/scene/node_modules/.bin/tsup-node +21 -0
- package/packages/scene/node_modules/.bin/tsx +21 -0
- package/packages/schemas/README.md +52 -0
- package/packages/schemas/dist/index.d.ts +287 -0
- package/packages/schemas/dist/index.js +701 -0
- package/packages/schemas/json/accordion.json +132 -0
- package/packages/schemas/json/async.json +161 -0
- package/packages/schemas/json/button.json +170 -0
- package/packages/schemas/json/catalog.json +2299 -0
- package/packages/schemas/json/checkbox.json +136 -0
- package/packages/schemas/json/combobox.json +130 -0
- package/packages/schemas/json/dialog.json +154 -0
- package/packages/schemas/json/field.json +171 -0
- package/packages/schemas/json/menu.json +138 -0
- package/packages/schemas/json/popover.json +133 -0
- package/packages/schemas/json/progress.json +137 -0
- package/packages/schemas/json/scroll.json +129 -0
- package/packages/schemas/json/select.json +140 -0
- package/packages/schemas/json/switch.json +136 -0
- package/packages/schemas/json/tabs.json +135 -0
- package/packages/schemas/json/toast.json +141 -0
- package/packages/schemas/json/tooltip.json +123 -0
- package/packages/schemas/node_modules/.bin/esbuild +21 -0
- package/packages/schemas/node_modules/.bin/jiti +21 -0
- package/packages/schemas/node_modules/.bin/tsc +21 -0
- package/packages/schemas/node_modules/.bin/tsserver +21 -0
- package/packages/schemas/node_modules/.bin/tsup +21 -0
- package/packages/schemas/node_modules/.bin/tsup-node +21 -0
- package/packages/schemas/node_modules/.bin/tsx +21 -0
- package/packages/schemas/node_modules/.bin/vite +21 -0
- package/packages/schemas/node_modules/.bin/vitest +21 -0
- package/packages/schemas/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
- package/packages/schemas/package.json +56 -0
- package/packages/schemas/prompts/cursorrules.md +64 -0
- package/packages/schemas/prompts/statecharts.md +31 -0
- package/packages/schemas/prompts/system.md +30 -0
- package/packages/schemas/registry/catalog.json +54 -0
- package/packages/schemas/registry/components/accordion.json +132 -0
- package/packages/schemas/registry/components/async.json +161 -0
- package/packages/schemas/registry/components/button.json +170 -0
- package/packages/schemas/registry/components/checkbox.json +136 -0
- package/packages/schemas/registry/components/combobox.json +130 -0
- package/packages/schemas/registry/components/dialog.json +154 -0
- package/packages/schemas/registry/components/field.json +171 -0
- package/packages/schemas/registry/components/menu.json +138 -0
- package/packages/schemas/registry/components/popover.json +133 -0
- package/packages/schemas/registry/components/progress.json +137 -0
- package/packages/schemas/registry/components/scroll.json +129 -0
- package/packages/schemas/registry/components/select.json +140 -0
- package/packages/schemas/registry/components/switch.json +136 -0
- package/packages/schemas/registry/components/tabs.json +135 -0
- package/packages/schemas/registry/components/toast.json +141 -0
- package/packages/schemas/registry/components/tooltip.json +123 -0
- package/packages/schemas/registry/machines/async.json +219 -0
- package/packages/schemas/registry/machines/buttonLifecycle.json +224 -0
- package/packages/schemas/registry/machines/dialog.json +143 -0
- package/packages/schemas/registry/machines/field.json +275 -0
- package/packages/schemas/scripts/emit.ts +61 -0
- package/packages/schemas/src/aeon-to-schema.test.ts +70 -0
- package/packages/schemas/src/aeon-to-schema.ts +206 -0
- package/packages/schemas/src/agent-bridge.ts +82 -0
- package/packages/schemas/src/components.ts +307 -0
- package/packages/schemas/src/index.test.ts +25 -0
- package/packages/schemas/src/index.ts +25 -0
- package/packages/schemas/src/prompts.ts +121 -0
- package/packages/schemas/src/registry.ts +73 -0
- package/packages/schemas/src/schema-builder.ts +87 -0
- package/packages/schemas/tsconfig.json +9 -0
- package/packages/signal/dist/index.d.ts +54 -0
- package/packages/signal/dist/index.js +169 -0
- package/packages/signal/node_modules/.bin/jiti +21 -0
- package/packages/signal/node_modules/.bin/tsc +21 -0
- package/packages/signal/node_modules/.bin/tsserver +21 -0
- package/packages/signal/node_modules/.bin/tsup +21 -0
- package/packages/signal/node_modules/.bin/tsup-node +21 -0
- package/packages/signal/node_modules/.bin/tsx +21 -0
- package/packages/site/dist/index.d.ts +31 -0
- package/packages/site/dist/index.js +62 -0
- package/packages/site/node_modules/.bin/jiti +21 -0
- package/packages/site/node_modules/.bin/tsc +21 -0
- package/packages/site/node_modules/.bin/tsserver +21 -0
- package/packages/site/node_modules/.bin/tsup +21 -0
- package/packages/site/node_modules/.bin/tsup-node +21 -0
- package/packages/site/node_modules/.bin/tsx +21 -0
- package/packages/solid/dist/index.d.ts +30 -0
- package/packages/solid/dist/index.js +174 -0
- package/packages/solid/node_modules/.bin/jiti +21 -0
- package/packages/solid/node_modules/.bin/tsc +21 -0
- package/packages/solid/node_modules/.bin/tsserver +21 -0
- package/packages/solid/node_modules/.bin/tsup +21 -0
- package/packages/solid/node_modules/.bin/tsup-node +21 -0
- package/packages/solid/node_modules/.bin/tsx +21 -0
- package/packages/solid/package.json +2 -2
- package/packages/surface/dist/index.d.ts +8 -0
- package/packages/surface/dist/index.js +14 -0
- package/packages/surface/node_modules/.bin/jiti +21 -0
- package/packages/surface/node_modules/.bin/tsc +21 -0
- package/packages/surface/node_modules/.bin/tsserver +21 -0
- package/packages/surface/node_modules/.bin/tsup +21 -0
- package/packages/surface/node_modules/.bin/tsup-node +21 -0
- package/packages/surface/node_modules/.bin/tsx +21 -0
- package/packages/svelte/dist/index.d.ts +12 -0
- package/packages/svelte/dist/index.js +15 -0
- package/packages/svelte/node_modules/.bin/acorn +21 -0
- package/packages/svelte/node_modules/.bin/esbuild +21 -0
- package/packages/svelte/node_modules/.bin/jiti +21 -0
- package/packages/svelte/node_modules/.bin/svelte-check +21 -0
- package/packages/svelte/node_modules/.bin/tsc +21 -0
- package/packages/svelte/node_modules/.bin/tsserver +21 -0
- package/packages/svelte/node_modules/.bin/tsup +21 -0
- package/packages/svelte/node_modules/.bin/tsup-node +21 -0
- package/packages/svelte/node_modules/.bin/tsx +21 -0
- package/packages/svelte/node_modules/.bin/vite +21 -0
- package/packages/svelte/package.json +15 -5
- package/packages/ui/README.md +19 -6
- package/packages/ui/dist/index.d.ts +445 -0
- package/packages/ui/dist/index.js +980 -0
- package/packages/ui/node_modules/.bin/jiti +21 -0
- package/packages/ui/node_modules/.bin/tsc +21 -0
- package/packages/ui/node_modules/.bin/tsserver +21 -0
- package/packages/ui/node_modules/.bin/tsup +21 -0
- package/packages/ui/node_modules/.bin/tsup-node +21 -0
- package/packages/ui/node_modules/.bin/tsx +21 -0
- package/packages/ui/src/app-shell.tsx +44 -0
- package/packages/ui/src/async.tsx +2 -1
- package/packages/ui/src/avatar.tsx +35 -0
- package/packages/ui/src/bar.tsx +34 -0
- package/packages/ui/src/composer.tsx +27 -0
- package/packages/ui/src/content.tsx +43 -0
- package/packages/ui/src/conversation.tsx +43 -0
- package/packages/ui/src/entry.tsx +76 -0
- package/packages/ui/src/field.tsx +5 -0
- package/packages/ui/src/identity.tsx +35 -0
- package/packages/ui/src/index.ts +16 -0
- package/packages/ui/src/list-row.tsx +30 -0
- package/packages/ui/src/metric-strip.tsx +29 -0
- package/packages/ui/src/nav.tsx +46 -0
- package/packages/ui/src/panel.tsx +39 -0
- package/packages/ui/src/profile-header.tsx +35 -0
- package/packages/ui/src/sticky-bar.tsx +42 -0
- package/packages/ui/src/switch.tsx +17 -4
- package/packages/ui/src/theme-switcher.tsx +41 -0
- package/packages/ui/src/thread.tsx +35 -0
- package/packages/vue/dist/index.d.ts +71 -0
- package/packages/vue/dist/index.js +193 -0
- package/packages/vue/node_modules/.bin/jiti +21 -0
- package/packages/vue/node_modules/.bin/tsc +21 -0
- package/packages/vue/node_modules/.bin/tsserver +21 -0
- package/packages/vue/node_modules/.bin/tsup +21 -0
- package/packages/vue/node_modules/.bin/tsup-node +21 -0
- package/packages/vue/node_modules/.bin/tsx +21 -0
- package/packages/vue/package.json +3 -3
- package/scripts/vite-aliases.mjs +179 -0
- package/scripts/xstate-introspect.mjs +68 -0
- package/.changeset/README.md +0 -23
- package/.changeset/combobox-and-changesets.md +0 -9
- package/.changeset/config.json +0 -31
- package/.changeset/framework-adapters.md +0 -12
- package/.changeset/scene-3d.md +0 -6
- package/.changeset/scene-plane.md +0 -8
- package/.changeset/site-og.md +0 -5
- package/.cursor/rules/aeon-ui.mdc +0 -22
- package/ACCESSIBILITY.md +0 -32
- package/AGENTS.md +0 -226
- package/COMPONENTS.md +0 -41
- package/FRAMEWORKS.md +0 -57
- package/PHILOSOPHY.md +0 -71
- package/PUBLISHING.md +0 -105
- package/SCENE.md +0 -113
- package/STATES.md +0 -243
- package/apps/demo/index.html +0 -31
- package/apps/demo/og.config.mjs +0 -20
- package/apps/demo/package.json +0 -41
- package/apps/demo/public/favicon.svg +0 -16
- package/apps/demo/public/og-aeon-ui-engine.png +0 -0
- package/apps/demo/public/og.svg +0 -35
- package/apps/demo/scripts/generate-og-png.mjs +0 -62
- package/apps/demo/src/App.tsx +0 -31
- package/apps/demo/src/aeonDiagrams.ts +0 -42
- package/apps/demo/src/app.css +0 -16
- package/apps/demo/src/components/ActionCluster.tsx +0 -20
- package/apps/demo/src/components/AsyncMachineDemo.tsx +0 -97
- package/apps/demo/src/components/ButtonLifecycleDemo.tsx +0 -63
- package/apps/demo/src/components/CodeExample.tsx +0 -7
- package/apps/demo/src/components/ComboboxDemo.tsx +0 -30
- package/apps/demo/src/components/DiagramsSection.tsx +0 -37
- package/apps/demo/src/components/FieldStateDemo.tsx +0 -51
- package/apps/demo/src/components/GridMesh.tsx +0 -8
- package/apps/demo/src/components/HeroInstall.tsx +0 -13
- package/apps/demo/src/components/LandingFaq.tsx +0 -29
- package/apps/demo/src/components/LandingFooter.tsx +0 -30
- package/apps/demo/src/components/LandingHeader.tsx +0 -62
- package/apps/demo/src/components/LandingHero.tsx +0 -55
- package/apps/demo/src/components/LayersSection.tsx +0 -47
- package/apps/demo/src/components/MermaidDiagram.tsx +0 -86
- package/apps/demo/src/components/PhilosophySection.tsx +0 -31
- package/apps/demo/src/components/PlaygroundBlock.tsx +0 -18
- package/apps/demo/src/components/PlaygroundControlsDemo.tsx +0 -63
- package/apps/demo/src/components/PlaygroundSection.tsx +0 -120
- package/apps/demo/src/components/ScrollRegionDemo.tsx +0 -74
- package/apps/demo/src/components/ThemeSwitcher.tsx +0 -79
- package/apps/demo/src/demo-layout.css +0 -293
- package/apps/demo/src/landing.css +0 -1143
- package/apps/demo/src/main.tsx +0 -14
- package/apps/demo/src/nav.ts +0 -9
- package/apps/demo/src/site.ts +0 -218
- package/apps/demo/tsconfig.json +0 -17
- package/apps/demo/vite-plugins/og-meta.ts +0 -30
- package/apps/demo/vite.config.ts +0 -69
- package/docs/API_PATTERNS.md +0 -234
- package/docs/ARCHITECTURE.md +0 -125
- package/docs/COMPONENT_CHECKLIST.md +0 -103
- package/docs/FILE_MAP.md +0 -122
- package/docs/GLOSSARY.md +0 -125
- package/docs/INDEX.md +0 -53
- package/docs/LAYOUT_COORDINATES.md +0 -178
- package/docs/MACHINES.md +0 -171
- package/docs/MIGRATION_FROM_ARK.md +0 -295
- package/docs/VITE_CONSUMER.md +0 -114
- package/packages/react/src/async/legacy-region.tsx +0 -38
- package/pnpm-workspace.yaml +0 -3
- package/vercel.json +0 -12
|
@@ -0,0 +1,425 @@
|
|
|
1
|
+
import { AnyStateMachine, ActorRefFrom, SnapshotFrom } from 'xstate';
|
|
2
|
+
export { setup as createAeonMachine } from 'xstate';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Aeon north star: behavior is defined as explicit state first; the interface must
|
|
6
|
+
* express the **totality** of that definition — every stable condition the model allows,
|
|
7
|
+
* and nothing the model does not allow.
|
|
8
|
+
*/
|
|
9
|
+
declare const AEON_PRINCIPLE: "State is defined first. UI represents the totality of that definition.";
|
|
10
|
+
/** Shorthand used in docs and APIs. */
|
|
11
|
+
declare const UI_IS_FUNCTION_OF_STATE: "UI = f(state)";
|
|
12
|
+
|
|
13
|
+
/** Part keys for compound components — scope + named parts for styling and docs. */
|
|
14
|
+
declare function anatomy<const T extends readonly string[]>(scope: string, parts: T): Record<T[number], T[number]> & {
|
|
15
|
+
scope: typeof scope;
|
|
16
|
+
};
|
|
17
|
+
declare const buttonAnatomy: Record<"root" | "group" | "label" | "icon", "root" | "group" | "label" | "icon"> & {
|
|
18
|
+
scope: string;
|
|
19
|
+
};
|
|
20
|
+
declare const switchAnatomy: Record<"root" | "label" | "control" | "thumb" | "hiddenInput", "root" | "label" | "control" | "thumb" | "hiddenInput"> & {
|
|
21
|
+
scope: string;
|
|
22
|
+
};
|
|
23
|
+
declare const checkboxAnatomy: Record<"root" | "label" | "control" | "hiddenInput" | "indicator", "root" | "label" | "control" | "hiddenInput" | "indicator"> & {
|
|
24
|
+
scope: string;
|
|
25
|
+
};
|
|
26
|
+
declare const dialogAnatomy: Record<"root" | "trigger" | "portal" | "backdrop" | "positioner" | "content" | "title" | "description" | "closeTrigger", "root" | "trigger" | "portal" | "backdrop" | "positioner" | "content" | "title" | "description" | "closeTrigger"> & {
|
|
27
|
+
scope: string;
|
|
28
|
+
};
|
|
29
|
+
declare const tabsAnatomy: Record<"root" | "indicator" | "trigger" | "content" | "list", "root" | "indicator" | "trigger" | "content" | "list"> & {
|
|
30
|
+
scope: string;
|
|
31
|
+
};
|
|
32
|
+
declare const accordionAnatomy: Record<"root" | "item" | "itemTrigger" | "itemContent" | "itemIndicator", "root" | "item" | "itemTrigger" | "itemContent" | "itemIndicator"> & {
|
|
33
|
+
scope: string;
|
|
34
|
+
};
|
|
35
|
+
/** Async data region — track shows every lifecycle state; readout + actions mirror snapshot. */
|
|
36
|
+
declare const asyncAnatomy: Record<"root" | "track" | "segment" | "readout" | "readoutRail" | "readoutBody" | "actions", "root" | "track" | "segment" | "readout" | "readoutRail" | "readoutBody" | "actions"> & {
|
|
37
|
+
scope: string;
|
|
38
|
+
};
|
|
39
|
+
/** Form field — orthogonal interaction × validation × submission (see STATES.md). */
|
|
40
|
+
declare const fieldAnatomy: Record<"root" | "label" | "control" | "textarea" | "message" | "hint", "root" | "label" | "control" | "textarea" | "message" | "hint"> & {
|
|
41
|
+
scope: string;
|
|
42
|
+
};
|
|
43
|
+
/** Scroll viewport — overflow axis + edge position on data-aeon-state. */
|
|
44
|
+
declare const scrollAnatomy: Record<"root" | "content" | "viewport", "root" | "content" | "viewport"> & {
|
|
45
|
+
scope: string;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Spatial play surface — universal mat + regions + entities (not a specific game).
|
|
49
|
+
* App logic names regions; entity labels come from compose `items`. See LAYOUT_COORDINATES.md.
|
|
50
|
+
*/
|
|
51
|
+
declare const playSurfaceAnatomy: Record<"root" | "mat" | "region" | "entity", "root" | "mat" | "region" | "entity"> & {
|
|
52
|
+
scope: string;
|
|
53
|
+
};
|
|
54
|
+
declare const selectAnatomy: Record<"root" | "icon" | "trigger" | "positioner" | "content" | "item" | "value", "root" | "icon" | "trigger" | "positioner" | "content" | "item" | "value"> & {
|
|
55
|
+
scope: string;
|
|
56
|
+
};
|
|
57
|
+
/** Typeahead listbox — extends select with filter input and empty state. */
|
|
58
|
+
declare const comboboxAnatomy: Record<"root" | "icon" | "content" | "item" | "input" | "empty", "root" | "icon" | "content" | "item" | "input" | "empty"> & {
|
|
59
|
+
scope: string;
|
|
60
|
+
};
|
|
61
|
+
declare const popoverAnatomy: Record<"root" | "trigger" | "positioner" | "content" | "closeTrigger" | "arrow", "root" | "trigger" | "positioner" | "content" | "closeTrigger" | "arrow"> & {
|
|
62
|
+
scope: string;
|
|
63
|
+
};
|
|
64
|
+
declare const menuAnatomy: Record<"root" | "trigger" | "positioner" | "content" | "item" | "separator", "root" | "trigger" | "positioner" | "content" | "item" | "separator"> & {
|
|
65
|
+
scope: string;
|
|
66
|
+
};
|
|
67
|
+
declare const tooltipAnatomy: Record<"root" | "trigger" | "positioner" | "content" | "arrow", "root" | "trigger" | "positioner" | "content" | "arrow"> & {
|
|
68
|
+
scope: string;
|
|
69
|
+
};
|
|
70
|
+
declare const toastAnatomy: Record<"root" | "title" | "description" | "closeTrigger" | "viewport", "root" | "title" | "description" | "closeTrigger" | "viewport"> & {
|
|
71
|
+
scope: string;
|
|
72
|
+
};
|
|
73
|
+
/** Profile image — loaded / loading / error on root `data-aeon-state`. Badge = presence / status corner. */
|
|
74
|
+
declare const avatarAnatomy: Record<"root" | "image" | "fallback" | "badge", "root" | "image" | "fallback" | "badge"> & {
|
|
75
|
+
scope: string;
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* Identity strip — avatar + primary/secondary text (items-market AvatarWithName).
|
|
79
|
+
* Presentational; compose into ProfileHeader / ListRow / AccountCluster.
|
|
80
|
+
*/
|
|
81
|
+
declare const identityAnatomy: Record<"root" | "title" | "avatar" | "subtitle" | "meta" | "trailing", "root" | "title" | "avatar" | "subtitle" | "meta" | "trailing"> & {
|
|
82
|
+
scope: string;
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* Profile header — dense account hero (not dating). Media optional; metrics + actions zones.
|
|
86
|
+
* Spatial: identity leading, metrics inline, actions trailing / bottom leading pair.
|
|
87
|
+
*/
|
|
88
|
+
declare const profileHeaderAnatomy: Record<"root" | "actions" | "identity" | "media" | "metrics" | "body", "root" | "actions" | "identity" | "media" | "metrics" | "body"> & {
|
|
89
|
+
scope: string;
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* Entry — compact multi-value content card (feed post, catalog listing, activity item).
|
|
93
|
+
* Universal layout only — not a social/marketplace niche.
|
|
94
|
+
* List stacks cards; Root is one card (idle | selected | muted).
|
|
95
|
+
* Zones: header (leading · heading · meta) · media · body · values · actions · footer.
|
|
96
|
+
*/
|
|
97
|
+
declare const entryAnatomy: Record<"values" | "root" | "title" | "list" | "actions" | "value" | "subtitle" | "meta" | "media" | "body" | "header" | "leading" | "heading" | "footer", "values" | "root" | "title" | "list" | "actions" | "value" | "subtitle" | "meta" | "media" | "body" | "header" | "leading" | "heading" | "footer"> & {
|
|
98
|
+
scope: string;
|
|
99
|
+
};
|
|
100
|
+
/**
|
|
101
|
+
* Metric strip — ultra-dense value/label chips (items-market im-stat cluster).
|
|
102
|
+
* Generic stats only — not wallet/currency product niches.
|
|
103
|
+
*/
|
|
104
|
+
declare const metricStripAnatomy: Record<"root" | "label" | "value" | "chip", "root" | "label" | "value" | "chip"> & {
|
|
105
|
+
scope: string;
|
|
106
|
+
};
|
|
107
|
+
/**
|
|
108
|
+
* List row — settings / account menu row (h-12 hit target, leading icon, trailing control).
|
|
109
|
+
*/
|
|
110
|
+
declare const listRowAnatomy: Record<"root" | "label" | "description" | "trailing" | "leading", "root" | "label" | "description" | "trailing" | "leading"> & {
|
|
111
|
+
scope: string;
|
|
112
|
+
};
|
|
113
|
+
/**
|
|
114
|
+
* Conversation — inbox / DM list row (universal messaging chrome, not dating).
|
|
115
|
+
* Leading avatar · title · preview · meta (time) · badge (unread).
|
|
116
|
+
* Item state: idle | unread | selected.
|
|
117
|
+
*/
|
|
118
|
+
declare const conversationAnatomy: Record<"root" | "title" | "item" | "badge" | "meta" | "body" | "leading" | "preview", "root" | "title" | "item" | "badge" | "meta" | "body" | "leading" | "preview"> & {
|
|
119
|
+
scope: string;
|
|
120
|
+
};
|
|
121
|
+
/**
|
|
122
|
+
* Thread — message stream. Items project mine | theirs | pending | failed.
|
|
123
|
+
*/
|
|
124
|
+
declare const threadAnatomy: Record<"root" | "list" | "item" | "meta" | "bubble" | "day", "root" | "list" | "item" | "meta" | "bubble" | "day"> & {
|
|
125
|
+
scope: string;
|
|
126
|
+
};
|
|
127
|
+
/**
|
|
128
|
+
* Composer — bottom compose chrome for threads (input + send).
|
|
129
|
+
* Root state: idle | sending | disabled | error.
|
|
130
|
+
*/
|
|
131
|
+
declare const composerAnatomy: Record<"root" | "actions" | "input" | "send", "root" | "actions" | "input" | "send"> & {
|
|
132
|
+
scope: string;
|
|
133
|
+
};
|
|
134
|
+
declare const separatorAnatomy: Record<"root", "root"> & {
|
|
135
|
+
scope: string;
|
|
136
|
+
};
|
|
137
|
+
/** Progress bar — idle / loading / complete on root `data-aeon-state`. */
|
|
138
|
+
declare const progressAnatomy: Record<"root" | "label" | "track" | "range", "root" | "label" | "track" | "range"> & {
|
|
139
|
+
scope: string;
|
|
140
|
+
};
|
|
141
|
+
declare const radioGroupAnatomy: Record<"root" | "item" | "itemIndicator" | "itemControl" | "itemLabel", "root" | "item" | "itemIndicator" | "itemControl" | "itemLabel"> & {
|
|
142
|
+
scope: string;
|
|
143
|
+
};
|
|
144
|
+
declare const sliderAnatomy: Record<"root" | "thumb" | "track" | "range" | "valueText", "root" | "thumb" | "track" | "range" | "valueText"> & {
|
|
145
|
+
scope: string;
|
|
146
|
+
};
|
|
147
|
+
declare const pinInputAnatomy: Record<"root" | "input", "root" | "input"> & {
|
|
148
|
+
scope: string;
|
|
149
|
+
};
|
|
150
|
+
/**
|
|
151
|
+
* Bar — horizontal layout primitive for toolbars, headers, footers.
|
|
152
|
+
* Enforces safe flex behavior: no overlap, responsive collapse via overflow.
|
|
153
|
+
* Parts: root (flex row), leading, center, trailing, optional seam (sticky stack join).
|
|
154
|
+
* Drive sticky lifecycle with stickyBarMachine → data-aeon-state on root.
|
|
155
|
+
*/
|
|
156
|
+
declare const barAnatomy: Record<"root" | "trailing" | "leading" | "center" | "seam", "root" | "trailing" | "leading" | "center" | "seam"> & {
|
|
157
|
+
scope: string;
|
|
158
|
+
};
|
|
159
|
+
/**
|
|
160
|
+
* Panel — collapsible layout region for split views.
|
|
161
|
+
* Group lays out siblings; Root is expanded|collapsed; Label rails vertically when collapsed.
|
|
162
|
+
*/
|
|
163
|
+
declare const panelAnatomy: Record<"root" | "group" | "label" | "trigger" | "content", "root" | "group" | "label" | "trigger" | "content"> & {
|
|
164
|
+
scope: string;
|
|
165
|
+
};
|
|
166
|
+
/**
|
|
167
|
+
* App shell — layered application chrome (items-market MainLayout pattern).
|
|
168
|
+
* header / subheader / content / aside / footer / dock / scrim under root.
|
|
169
|
+
*/
|
|
170
|
+
declare const appShellAnatomy: Record<"root" | "content" | "header" | "footer" | "subheader" | "aside" | "dock" | "scrim", "root" | "content" | "header" | "footer" | "subheader" | "aside" | "dock" | "scrim"> & {
|
|
171
|
+
scope: string;
|
|
172
|
+
};
|
|
173
|
+
/**
|
|
174
|
+
* Content region — status-slotted body. Every contentRegionMachine state has a part.
|
|
175
|
+
* Pair with Async for fetch; use slots for idle/pending/empty/error/ready/loadingMore/success.
|
|
176
|
+
*/
|
|
177
|
+
declare const contentAnatomy: Record<"root" | "empty" | "body" | "toolbar" | "pending" | "error" | "success" | "sentinel", "root" | "empty" | "body" | "toolbar" | "pending" | "error" | "success" | "sentinel"> & {
|
|
178
|
+
scope: string;
|
|
179
|
+
};
|
|
180
|
+
/**
|
|
181
|
+
* Nav — navigational collection (top links, bottom tabs, side rail).
|
|
182
|
+
* Selection reuses tabsMachine; items project inactive|active|disabled.
|
|
183
|
+
*/
|
|
184
|
+
declare const navAnatomy: Record<"root" | "label" | "icon" | "indicator" | "item" | "badge", "root" | "label" | "icon" | "indicator" | "item" | "badge"> & {
|
|
185
|
+
scope: string;
|
|
186
|
+
};
|
|
187
|
+
/**
|
|
188
|
+
* ThemeSwitcher — mode toggle (light/dark) + theme preset selector.
|
|
189
|
+
* Parts: root, modes (button group), modeBtn, themeSelect, themeTrigger.
|
|
190
|
+
*/
|
|
191
|
+
declare const themeSwitcherAnatomy: Record<"root" | "modes" | "modeBtn" | "themeSelect" | "themeTrigger", "root" | "modes" | "modeBtn" | "themeSelect" | "themeTrigger"> & {
|
|
192
|
+
scope: string;
|
|
193
|
+
};
|
|
194
|
+
|
|
195
|
+
type AttrOptions = {
|
|
196
|
+
state?: string | string[];
|
|
197
|
+
disabled?: boolean;
|
|
198
|
+
focus?: boolean;
|
|
199
|
+
highlighted?: boolean;
|
|
200
|
+
};
|
|
201
|
+
/** Scope + part on the component root (e.g. accordion root). */
|
|
202
|
+
declare function scopeAttrs(scope: string, part?: string, options?: AttrOptions): Record<string, unknown>;
|
|
203
|
+
/** Part only — use on children inside a scoped root. */
|
|
204
|
+
declare function partOnlyAttrs(part: string, options?: AttrOptions): Record<string, unknown>;
|
|
205
|
+
/** Build data-aeon-* attributes for styling unstyled parts. */
|
|
206
|
+
declare function partAttrs(scope: string, part: string, options?: AttrOptions): Record<string, unknown>;
|
|
207
|
+
|
|
208
|
+
type AeonSnapshot<M extends AnyStateMachine> = SnapshotFrom<M>;
|
|
209
|
+
type AeonActor<M extends AnyStateMachine> = ActorRefFrom<M>;
|
|
210
|
+
/** Flatten nested state value for data-aeon-state attribute. */
|
|
211
|
+
declare function stateToAttr(value: unknown): string;
|
|
212
|
+
/**
|
|
213
|
+
* Primary visual face for parallel field charts — same hierarchy as Button/Dialog:
|
|
214
|
+
* one leaf on `data-aeon-state`, not a region dump.
|
|
215
|
+
* Priority: pending > invalid > dirty > idle.
|
|
216
|
+
*/
|
|
217
|
+
type FieldFace = 'idle' | 'dirty' | 'invalid' | 'pending';
|
|
218
|
+
declare function fieldFace(value: unknown): FieldFace;
|
|
219
|
+
/** Orthogonal field regions for advanced CSS (`data-aeon-interaction`, etc.). */
|
|
220
|
+
declare function fieldRegions(value: unknown): {
|
|
221
|
+
interaction: string;
|
|
222
|
+
validation: string;
|
|
223
|
+
submission: string;
|
|
224
|
+
};
|
|
225
|
+
/** Read one region from a (possibly parallel) snapshot value. */
|
|
226
|
+
declare function getRegionValue(value: unknown, region: string): unknown;
|
|
227
|
+
/**
|
|
228
|
+
* Active path under a region — e.g. `{ deck: { ready: 'matched' } }` →
|
|
229
|
+
* `regionPath(v, 'deck')` → `['ready', 'matched']`.
|
|
230
|
+
*/
|
|
231
|
+
declare function regionPath(value: unknown, region: string): string[];
|
|
232
|
+
/** Deepest active key under a region (`['ready','matched']` → `'matched'`). */
|
|
233
|
+
declare function regionLeaf(value: unknown, region: string): string | undefined;
|
|
234
|
+
/** True when the region path equals or ends with the given leaf / path prefix. */
|
|
235
|
+
declare function regionMatches(value: unknown, region: string, match: string | readonly string[]): boolean;
|
|
236
|
+
|
|
237
|
+
/** Stable conditions the machine may occupy — mutually exclusive at a given depth. */
|
|
238
|
+
type AeonStateValue = string | {
|
|
239
|
+
[key: string]: AeonStateValue;
|
|
240
|
+
};
|
|
241
|
+
/** Events that may cause transitions. */
|
|
242
|
+
type AeonEvent = {
|
|
243
|
+
type: string;
|
|
244
|
+
} & Record<string, unknown>;
|
|
245
|
+
/**
|
|
246
|
+
* Machine context at a snapshot. Presentation is derived from this plus the active
|
|
247
|
+
* state value — never the other way around.
|
|
248
|
+
*/
|
|
249
|
+
type AeonContext<T extends Record<string, unknown> = Record<string, unknown>> = T;
|
|
250
|
+
/**
|
|
251
|
+
* Attribute contract for unstyled parts. `data-aeon-state` should enumerate the
|
|
252
|
+
* full stable condition (e.g. `open`, `checked`, `idle loading`) so styles and
|
|
253
|
+
* assistive tech reflect the complete machine definition, not a partial guess.
|
|
254
|
+
*/
|
|
255
|
+
interface AeonDataAttrs {
|
|
256
|
+
'data-aeon-scope': string;
|
|
257
|
+
'data-aeon-part': string;
|
|
258
|
+
'data-aeon-state'?: string;
|
|
259
|
+
'data-disabled'?: string;
|
|
260
|
+
'data-focus'?: string;
|
|
261
|
+
'data-highlighted'?: string;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
/** Scroll axis overflow detected on a viewport element. */
|
|
265
|
+
type ScrollOverflow = 'none' | 'x' | 'y' | 'both';
|
|
266
|
+
interface ScrollSnapshot {
|
|
267
|
+
overflow: ScrollOverflow;
|
|
268
|
+
/** Space-separated value for data-aeon-state on scroll viewports. */
|
|
269
|
+
stateAttr: string;
|
|
270
|
+
atStartY: boolean;
|
|
271
|
+
atEndY: boolean;
|
|
272
|
+
betweenY: boolean;
|
|
273
|
+
atStartX: boolean;
|
|
274
|
+
atEndX: boolean;
|
|
275
|
+
betweenX: boolean;
|
|
276
|
+
}
|
|
277
|
+
/** Derive overflow + edge states from a scrollable element. */
|
|
278
|
+
declare function getScrollSnapshot(el: HTMLElement): ScrollSnapshot;
|
|
279
|
+
|
|
280
|
+
/**
|
|
281
|
+
* Responsive play-surface layout — logical coordinate plane + composition modes.
|
|
282
|
+
*
|
|
283
|
+
* Behavior stays in statecharts; **where** the user points is expressed in normalized
|
|
284
|
+
* coordinates (0–100) inside a measured region, independent of CSS grid vs overlay.
|
|
285
|
+
*
|
|
286
|
+
* @see docs/LAYOUT_COORDINATES.md
|
|
287
|
+
*/
|
|
288
|
+
/** Point on the normalized plane (percent of region width/height). */
|
|
289
|
+
type NormPoint = {
|
|
290
|
+
readonly x: number;
|
|
291
|
+
readonly y: number;
|
|
292
|
+
};
|
|
293
|
+
/** Axis-aligned bounds on the normalized plane (inclusive). */
|
|
294
|
+
type NormRect = {
|
|
295
|
+
readonly xMin: number;
|
|
296
|
+
readonly xMax: number;
|
|
297
|
+
readonly yMin: number;
|
|
298
|
+
readonly yMax: number;
|
|
299
|
+
};
|
|
300
|
+
/** DOM mapping: y increases upward (throws, dice) vs downward (top-left UI). */
|
|
301
|
+
type NormOrigin = 'bottom-left' | 'top-left';
|
|
302
|
+
declare const NORM_PLANE: {
|
|
303
|
+
readonly bottomLeft: "bottom-left";
|
|
304
|
+
readonly topLeft: "top-left";
|
|
305
|
+
};
|
|
306
|
+
/** How regions are composed at a breakpoint — product maps to CSS grid / absolute. */
|
|
307
|
+
type LayoutComposition = 'split' | 'stack' | 'overlay';
|
|
308
|
+
interface RegionLayoutSlot {
|
|
309
|
+
/** Logical region id (matches anatomy part or app constant). */
|
|
310
|
+
readonly region: string;
|
|
311
|
+
/** Grid area name / slot id for CSS `grid-template-areas`. */
|
|
312
|
+
readonly slot: string;
|
|
313
|
+
readonly zIndex?: number;
|
|
314
|
+
}
|
|
315
|
+
interface LayoutCompositionSpec {
|
|
316
|
+
readonly id: string;
|
|
317
|
+
readonly composition: LayoutComposition;
|
|
318
|
+
readonly regions: readonly RegionLayoutSlot[];
|
|
319
|
+
/** Interaction bounds per region in **that region's** normalized plane. */
|
|
320
|
+
readonly bounds?: Readonly<Record<string, NormRect>>;
|
|
321
|
+
}
|
|
322
|
+
type LayoutMode = 'compact' | 'wide';
|
|
323
|
+
interface ResponsiveLayoutSpec {
|
|
324
|
+
readonly modes: {
|
|
325
|
+
readonly compact: LayoutCompositionSpec;
|
|
326
|
+
readonly wide: LayoutCompositionSpec;
|
|
327
|
+
};
|
|
328
|
+
/**
|
|
329
|
+
* Media query that selects `compact` when matched (default: phone portrait).
|
|
330
|
+
* When it does not match, mode is `wide`.
|
|
331
|
+
*/
|
|
332
|
+
readonly compactMq?: string;
|
|
333
|
+
}
|
|
334
|
+
declare const DEFAULT_COMPACT_MQ = "(max-width: 39.99rem)";
|
|
335
|
+
declare function clampNorm(point: NormPoint, bounds: NormRect): NormPoint;
|
|
336
|
+
declare function normFromClient(rect: DOMRectReadOnly, clientX: number, clientY: number, options?: {
|
|
337
|
+
origin?: NormOrigin;
|
|
338
|
+
bounds?: NormRect;
|
|
339
|
+
}): NormPoint;
|
|
340
|
+
declare function clientFromNorm(rect: DOMRectReadOnly, point: NormPoint, options?: {
|
|
341
|
+
origin?: NormOrigin;
|
|
342
|
+
}): {
|
|
343
|
+
clientX: number;
|
|
344
|
+
clientY: number;
|
|
345
|
+
};
|
|
346
|
+
/** Measure element; returns null if not connected. */
|
|
347
|
+
declare function measureElement(el: Element | null | undefined): DOMRect | null;
|
|
348
|
+
/** Prefer a dedicated region rect; fall back to mat when lane not mounted. */
|
|
349
|
+
declare function resolveRegionRect(primary: DOMRect | null | undefined, fallback: DOMRect | null | undefined): DOMRect | null;
|
|
350
|
+
declare function matchLayoutMode(spec: ResponsiveLayoutSpec, mq?: Pick<MediaQueryList, 'matches'>): LayoutMode;
|
|
351
|
+
declare function getCompactMq(spec: ResponsiveLayoutSpec): MediaQueryList;
|
|
352
|
+
declare function layoutCompositionForMode(spec: ResponsiveLayoutSpec, mode: LayoutMode): LayoutCompositionSpec;
|
|
353
|
+
declare function regionBoundsForMode(spec: ResponsiveLayoutSpec, mode: LayoutMode, regionId: string): NormRect | undefined;
|
|
354
|
+
/**
|
|
355
|
+
* Value for `data-aeon-layout-mode` on the mat root.
|
|
356
|
+
* Pair with `data-aeon-layout-composition` from the active spec.
|
|
357
|
+
*/
|
|
358
|
+
declare function layoutModeAttrs(mode: LayoutMode, composition: LayoutComposition): Record<string, string>;
|
|
359
|
+
/** Spread a norm point inside bounds (keeps cluster off edges). */
|
|
360
|
+
declare function insetNormCluster(point: NormPoint, bounds: NormRect, inset?: {
|
|
361
|
+
x?: number;
|
|
362
|
+
y?: number;
|
|
363
|
+
}): NormPoint;
|
|
364
|
+
|
|
365
|
+
type AeonColorMode = 'light' | 'dark';
|
|
366
|
+
/** Class applied to `<html>` to enable theme-transition.css */
|
|
367
|
+
declare const AEON_THEME_TRANSITION_CLASS = "aeon-theme-transition";
|
|
368
|
+
declare function isAeonColorMode(value: string): value is AeonColorMode;
|
|
369
|
+
/** Map next-themes / user prefs to Aeon `data-aeon-mode`. */
|
|
370
|
+
declare function resolveAeonColorMode(theme: string | undefined, systemPrefersDark?: boolean): AeonColorMode;
|
|
371
|
+
/**
|
|
372
|
+
* Keep `data-aeon-theme` / `data-aeon-mode` in sync with Tailwind `.dark` apps.
|
|
373
|
+
* Enables smooth transitions when paired with `@aeon-ui/core/theme-transition.css`.
|
|
374
|
+
*/
|
|
375
|
+
declare function syncAeonColorMode(root: HTMLElement, mode: AeonColorMode, options?: {
|
|
376
|
+
themeId?: string;
|
|
377
|
+
enableTransitionClass?: boolean;
|
|
378
|
+
}): void;
|
|
379
|
+
/** Cross-fade theme changes when View Transitions API is available. */
|
|
380
|
+
declare function runAeonThemeTransition(apply: () => void): void;
|
|
381
|
+
type AeonPalette = {
|
|
382
|
+
bg: string;
|
|
383
|
+
surface: string;
|
|
384
|
+
surfaceRaised: string;
|
|
385
|
+
border: string;
|
|
386
|
+
text: string;
|
|
387
|
+
muted: string;
|
|
388
|
+
accent: string;
|
|
389
|
+
accentDim: string;
|
|
390
|
+
danger: string;
|
|
391
|
+
dangerDim: string;
|
|
392
|
+
focusRing: string;
|
|
393
|
+
gridLine: string;
|
|
394
|
+
};
|
|
395
|
+
interface AeonThemeDefinition {
|
|
396
|
+
id: string;
|
|
397
|
+
label: string;
|
|
398
|
+
description: string;
|
|
399
|
+
light: AeonPalette;
|
|
400
|
+
dark: AeonPalette;
|
|
401
|
+
}
|
|
402
|
+
/**
|
|
403
|
+
* Register theme definitions. Call once at app init.
|
|
404
|
+
* Returns the registered themes array and lookup map.
|
|
405
|
+
*/
|
|
406
|
+
declare function registerAeonThemes(themes: AeonThemeDefinition[]): {
|
|
407
|
+
themes: AeonThemeDefinition[];
|
|
408
|
+
map: Record<string, AeonThemeDefinition>;
|
|
409
|
+
ids: string[];
|
|
410
|
+
};
|
|
411
|
+
declare function isAeonThemeId(value: string): boolean;
|
|
412
|
+
declare function isAeonMode(value: string): value is AeonColorMode;
|
|
413
|
+
/**
|
|
414
|
+
* Apply a theme + mode to `<html>`. Persists to localStorage.
|
|
415
|
+
*/
|
|
416
|
+
declare function applyAeonTheme(themeId: string, mode: AeonColorMode, themeMap?: Record<string, AeonThemeDefinition>): void;
|
|
417
|
+
/**
|
|
418
|
+
* Read saved prefs or system preference, apply to `<html>`, return current values.
|
|
419
|
+
*/
|
|
420
|
+
declare function initAeonTheme(themeMap?: Record<string, AeonThemeDefinition>): {
|
|
421
|
+
themeId: string;
|
|
422
|
+
mode: AeonColorMode;
|
|
423
|
+
};
|
|
424
|
+
|
|
425
|
+
export { AEON_PRINCIPLE, AEON_THEME_TRANSITION_CLASS, type AeonActor, type AeonColorMode, type AeonContext, type AeonDataAttrs, type AeonEvent, type AeonPalette, type AeonSnapshot, type AeonStateValue, type AeonThemeDefinition, DEFAULT_COMPACT_MQ, type FieldFace, type LayoutComposition, type LayoutCompositionSpec, type LayoutMode, NORM_PLANE, type NormOrigin, type NormPoint, type NormRect, type RegionLayoutSlot, type ResponsiveLayoutSpec, type ScrollOverflow, type ScrollSnapshot, UI_IS_FUNCTION_OF_STATE, accordionAnatomy, anatomy, appShellAnatomy, applyAeonTheme, asyncAnatomy, avatarAnatomy, barAnatomy, buttonAnatomy, checkboxAnatomy, clampNorm, clientFromNorm, comboboxAnatomy, composerAnatomy, contentAnatomy, conversationAnatomy, dialogAnatomy, entryAnatomy, fieldAnatomy, fieldFace, fieldRegions, getCompactMq, getRegionValue, getScrollSnapshot, identityAnatomy, initAeonTheme, insetNormCluster, isAeonColorMode, isAeonMode, isAeonThemeId, layoutCompositionForMode, layoutModeAttrs, listRowAnatomy, matchLayoutMode, measureElement, menuAnatomy, metricStripAnatomy, navAnatomy, normFromClient, panelAnatomy, partAttrs, partOnlyAttrs, pinInputAnatomy, playSurfaceAnatomy, popoverAnatomy, profileHeaderAnatomy, progressAnatomy, radioGroupAnatomy, regionBoundsForMode, regionLeaf, regionMatches, regionPath, registerAeonThemes, resolveAeonColorMode, resolveRegionRect, runAeonThemeTransition, scopeAttrs, scrollAnatomy, selectAnatomy, separatorAnatomy, sliderAnatomy, stateToAttr, switchAnatomy, syncAeonColorMode, tabsAnatomy, themeSwitcherAnatomy, threadAnatomy, toastAnatomy, tooltipAnatomy };
|