aeon-ui-engine 1.3.1 → 1.3.5
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 +36 -0
- package/package.json +1 -1
- package/packages/react/src/combobox/index.tsx +13 -8
- package/packages/react/src/tooltip/index.tsx +48 -22
- package/packages/schemas/dist/index.d.ts +69 -24
- package/packages/schemas/dist/index.js +447 -49
- package/packages/schemas/json/appNav.json +146 -0
- package/packages/schemas/json/appShell.json +151 -0
- package/packages/schemas/json/avatar.json +130 -0
- package/packages/schemas/json/bar.json +126 -0
- package/packages/schemas/json/catalog.json +3163 -15
- package/packages/schemas/json/combobox.json +19 -7
- package/packages/schemas/json/composer.json +125 -0
- package/packages/schemas/json/content.json +167 -0
- package/packages/schemas/json/conversation.json +166 -0
- package/packages/schemas/json/entry.json +182 -0
- package/packages/schemas/json/identity.json +147 -0
- package/packages/schemas/json/listRow.json +131 -0
- package/packages/schemas/json/metricStrip.json +132 -0
- package/packages/schemas/json/nav.json +136 -0
- package/packages/schemas/json/panel.json +143 -0
- package/packages/schemas/json/pinInput.json +112 -0
- package/packages/schemas/json/profileHeader.json +138 -0
- package/packages/schemas/json/prompt.json +155 -0
- package/packages/schemas/json/radioGroup.json +130 -0
- package/packages/schemas/json/separator.json +105 -0
- package/packages/schemas/json/slider.json +147 -0
- package/packages/schemas/json/statusBanner.json +149 -0
- package/packages/schemas/json/stickyBar.json +153 -0
- package/packages/schemas/json/thread.json +129 -0
- package/packages/schemas/json/tooltip.json +21 -7
- package/packages/schemas/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
- package/packages/schemas/prompts/cursorrules.md +6 -4
- package/packages/schemas/prompts/statecharts.md +23 -2
- package/packages/schemas/prompts/system.md +2 -2
- package/packages/schemas/registry/catalog.json +295 -4
- package/packages/schemas/registry/components/appNav.json +146 -0
- package/packages/schemas/registry/components/appShell.json +151 -0
- package/packages/schemas/registry/components/avatar.json +130 -0
- package/packages/schemas/registry/components/bar.json +126 -0
- package/packages/schemas/registry/components/combobox.json +19 -7
- package/packages/schemas/registry/components/composer.json +125 -0
- package/packages/schemas/registry/components/content.json +167 -0
- package/packages/schemas/registry/components/conversation.json +166 -0
- package/packages/schemas/registry/components/entry.json +182 -0
- package/packages/schemas/registry/components/identity.json +147 -0
- package/packages/schemas/registry/components/listRow.json +131 -0
- package/packages/schemas/registry/components/metricStrip.json +132 -0
- package/packages/schemas/registry/components/nav.json +136 -0
- package/packages/schemas/registry/components/panel.json +143 -0
- package/packages/schemas/registry/components/pinInput.json +112 -0
- package/packages/schemas/registry/components/profileHeader.json +138 -0
- package/packages/schemas/registry/components/prompt.json +155 -0
- package/packages/schemas/registry/components/radioGroup.json +130 -0
- package/packages/schemas/registry/components/separator.json +105 -0
- package/packages/schemas/registry/components/slider.json +147 -0
- package/packages/schemas/registry/components/statusBanner.json +149 -0
- package/packages/schemas/registry/components/stickyBar.json +153 -0
- package/packages/schemas/registry/components/thread.json +129 -0
- package/packages/schemas/registry/components/tooltip.json +21 -7
- package/packages/schemas/registry/machines/accordion.json +58 -0
- package/packages/schemas/registry/machines/appNav.json +108 -0
- package/packages/schemas/registry/machines/appShell.json +128 -0
- package/packages/schemas/registry/machines/contentRegion.json +314 -0
- package/packages/schemas/registry/machines/panel.json +131 -0
- package/packages/schemas/registry/machines/popover.json +143 -0
- package/packages/schemas/registry/machines/slider.json +151 -0
- package/packages/schemas/registry/machines/stickyBar.json +261 -0
- package/packages/schemas/registry/machines/tabs.json +58 -0
- package/packages/schemas/registry/machines/toast.json +89 -0
- package/packages/schemas/registry/machines/toggle.json +134 -0
- package/packages/schemas/scripts/emit.ts +23 -0
- package/packages/schemas/src/components.ts +429 -6
- package/packages/schemas/src/index.test.ts +83 -0
- package/packages/schemas/src/index.ts +1 -0
- package/packages/schemas/src/machine-id.ts +7 -0
- package/packages/schemas/src/prompts.ts +25 -4
- package/packages/schemas/src/registry.ts +28 -39
|
@@ -1,8 +1,14 @@
|
|
|
1
|
+
import { componentSchemas } from './components.js'
|
|
2
|
+
import { machineRegistryId } from './machine-id.js'
|
|
3
|
+
import type { JsonSchema } from './schema-builder.js'
|
|
4
|
+
|
|
1
5
|
/**
|
|
2
6
|
* Aeon UI agent registry — machine-legible component contracts for Generative UI.
|
|
3
7
|
* Fetch at runtime: GET https://aeon-ui.com/registry/catalog.json
|
|
4
8
|
* Per component: GET https://aeon-ui.com/registry/components/{id}.json
|
|
5
9
|
* Machines: GET https://aeon-ui.com/registry/machines/{id}.json
|
|
10
|
+
*
|
|
11
|
+
* Components are derived from `componentSchemas` — do not hand-maintain a parallel list.
|
|
6
12
|
*/
|
|
7
13
|
export type RegistryEntry = {
|
|
8
14
|
id: string
|
|
@@ -16,6 +22,24 @@ export type RegistryEntry = {
|
|
|
16
22
|
|
|
17
23
|
export const REGISTRY_BASE = 'https://aeon-ui.com/registry' as const
|
|
18
24
|
|
|
25
|
+
function entryFromSchema(id: string, schema: JsonSchema): RegistryEntry {
|
|
26
|
+
const x = schema['x-aeon'] as {
|
|
27
|
+
scope: string
|
|
28
|
+
machine: string | null
|
|
29
|
+
runtime: string
|
|
30
|
+
}
|
|
31
|
+
const mid = machineRegistryId(x.machine)
|
|
32
|
+
return {
|
|
33
|
+
id,
|
|
34
|
+
title: String(schema.title ?? id),
|
|
35
|
+
scope: x.scope,
|
|
36
|
+
schemaUrl: `${REGISTRY_BASE}/components/${id}.json`,
|
|
37
|
+
...(mid ? { machineUrl: `${REGISTRY_BASE}/machines/${mid}.json` } : {}),
|
|
38
|
+
runtime: x.runtime,
|
|
39
|
+
description: String(schema.description ?? ''),
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
19
43
|
export const registryCatalog = {
|
|
20
44
|
$id: `${REGISTRY_BASE}/catalog.json`,
|
|
21
45
|
version: '0.1.0',
|
|
@@ -27,47 +51,12 @@ export const registryCatalog = {
|
|
|
27
51
|
component: `${REGISTRY_BASE}/components/{id}.json`,
|
|
28
52
|
machine: `${REGISTRY_BASE}/machines/{id}.json`,
|
|
29
53
|
},
|
|
30
|
-
components: [
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
title: 'Button',
|
|
34
|
-
scope: 'button',
|
|
35
|
-
schemaUrl: `${REGISTRY_BASE}/components/button.json`,
|
|
36
|
-
machineUrl: `${REGISTRY_BASE}/machines/buttonLifecycle.json`,
|
|
37
|
-
runtime: 'status prop',
|
|
38
|
-
description: 'Action control with idle|pending|success|failure|disabled',
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
id: 'async',
|
|
42
|
-
title: 'Async',
|
|
43
|
-
scope: 'async',
|
|
44
|
-
schemaUrl: `${REGISTRY_BASE}/components/async.json`,
|
|
45
|
-
machineUrl: `${REGISTRY_BASE}/machines/async.json`,
|
|
46
|
-
runtime: 'useAeonMachine',
|
|
47
|
-
description: 'Fetch lifecycle region with full totality',
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
id: 'field',
|
|
51
|
-
title: 'Field',
|
|
52
|
-
scope: 'field',
|
|
53
|
-
schemaUrl: `${REGISTRY_BASE}/components/field.json`,
|
|
54
|
-
machineUrl: `${REGISTRY_BASE}/machines/field.json`,
|
|
55
|
-
runtime: 'useAeonMachine',
|
|
56
|
-
description: 'Parallel interaction × validation × submission',
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
id: 'dialog',
|
|
60
|
-
title: 'Dialog',
|
|
61
|
-
scope: 'dialog',
|
|
62
|
-
schemaUrl: `${REGISTRY_BASE}/components/dialog.json`,
|
|
63
|
-
machineUrl: `${REGISTRY_BASE}/machines/dialog.json`,
|
|
64
|
-
runtime: 'useAeonMachine',
|
|
65
|
-
description: 'Modal open/closed',
|
|
66
|
-
},
|
|
67
|
-
] satisfies RegistryEntry[],
|
|
54
|
+
components: Object.entries(componentSchemas).map(([id, schema]) =>
|
|
55
|
+
entryFromSchema(id, schema),
|
|
56
|
+
) satisfies RegistryEntry[],
|
|
68
57
|
client: {
|
|
69
58
|
fetchCatalog: `fetch('${REGISTRY_BASE}/catalog.json').then(r => r.json())`,
|
|
70
59
|
fetchComponent: `id => fetch(\`${REGISTRY_BASE}/components/\${id}.json\`).then(r => r.json())`,
|
|
71
60
|
fetchMachine: `id => fetch(\`${REGISTRY_BASE}/machines/\${id}.json\`).then(r => r.json())`,
|
|
72
61
|
},
|
|
73
|
-
}
|
|
62
|
+
}
|