aeon-ui-engine 1.3.0 → 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.
Files changed (80) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/package.json +7 -2
  3. package/packages/react/src/combobox/index.tsx +13 -8
  4. package/packages/react/src/tooltip/index.tsx +48 -22
  5. package/packages/schemas/dist/index.d.ts +69 -24
  6. package/packages/schemas/dist/index.js +447 -49
  7. package/packages/schemas/json/appNav.json +146 -0
  8. package/packages/schemas/json/appShell.json +151 -0
  9. package/packages/schemas/json/avatar.json +130 -0
  10. package/packages/schemas/json/bar.json +126 -0
  11. package/packages/schemas/json/catalog.json +3163 -15
  12. package/packages/schemas/json/combobox.json +19 -7
  13. package/packages/schemas/json/composer.json +125 -0
  14. package/packages/schemas/json/content.json +167 -0
  15. package/packages/schemas/json/conversation.json +166 -0
  16. package/packages/schemas/json/entry.json +182 -0
  17. package/packages/schemas/json/identity.json +147 -0
  18. package/packages/schemas/json/listRow.json +131 -0
  19. package/packages/schemas/json/metricStrip.json +132 -0
  20. package/packages/schemas/json/nav.json +136 -0
  21. package/packages/schemas/json/panel.json +143 -0
  22. package/packages/schemas/json/pinInput.json +112 -0
  23. package/packages/schemas/json/profileHeader.json +138 -0
  24. package/packages/schemas/json/prompt.json +155 -0
  25. package/packages/schemas/json/radioGroup.json +130 -0
  26. package/packages/schemas/json/separator.json +105 -0
  27. package/packages/schemas/json/slider.json +147 -0
  28. package/packages/schemas/json/statusBanner.json +149 -0
  29. package/packages/schemas/json/stickyBar.json +153 -0
  30. package/packages/schemas/json/thread.json +129 -0
  31. package/packages/schemas/json/tooltip.json +21 -7
  32. package/packages/schemas/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
  33. package/packages/schemas/prompts/cursorrules.md +6 -4
  34. package/packages/schemas/prompts/statecharts.md +23 -2
  35. package/packages/schemas/prompts/system.md +2 -2
  36. package/packages/schemas/registry/catalog.json +295 -4
  37. package/packages/schemas/registry/components/appNav.json +146 -0
  38. package/packages/schemas/registry/components/appShell.json +151 -0
  39. package/packages/schemas/registry/components/avatar.json +130 -0
  40. package/packages/schemas/registry/components/bar.json +126 -0
  41. package/packages/schemas/registry/components/combobox.json +19 -7
  42. package/packages/schemas/registry/components/composer.json +125 -0
  43. package/packages/schemas/registry/components/content.json +167 -0
  44. package/packages/schemas/registry/components/conversation.json +166 -0
  45. package/packages/schemas/registry/components/entry.json +182 -0
  46. package/packages/schemas/registry/components/identity.json +147 -0
  47. package/packages/schemas/registry/components/listRow.json +131 -0
  48. package/packages/schemas/registry/components/metricStrip.json +132 -0
  49. package/packages/schemas/registry/components/nav.json +136 -0
  50. package/packages/schemas/registry/components/panel.json +143 -0
  51. package/packages/schemas/registry/components/pinInput.json +112 -0
  52. package/packages/schemas/registry/components/profileHeader.json +138 -0
  53. package/packages/schemas/registry/components/prompt.json +155 -0
  54. package/packages/schemas/registry/components/radioGroup.json +130 -0
  55. package/packages/schemas/registry/components/separator.json +105 -0
  56. package/packages/schemas/registry/components/slider.json +147 -0
  57. package/packages/schemas/registry/components/statusBanner.json +149 -0
  58. package/packages/schemas/registry/components/stickyBar.json +153 -0
  59. package/packages/schemas/registry/components/thread.json +129 -0
  60. package/packages/schemas/registry/components/tooltip.json +21 -7
  61. package/packages/schemas/registry/machines/accordion.json +58 -0
  62. package/packages/schemas/registry/machines/appNav.json +108 -0
  63. package/packages/schemas/registry/machines/appShell.json +128 -0
  64. package/packages/schemas/registry/machines/contentRegion.json +314 -0
  65. package/packages/schemas/registry/machines/panel.json +131 -0
  66. package/packages/schemas/registry/machines/popover.json +143 -0
  67. package/packages/schemas/registry/machines/slider.json +151 -0
  68. package/packages/schemas/registry/machines/stickyBar.json +261 -0
  69. package/packages/schemas/registry/machines/tabs.json +58 -0
  70. package/packages/schemas/registry/machines/toast.json +89 -0
  71. package/packages/schemas/registry/machines/toggle.json +134 -0
  72. package/packages/schemas/scripts/emit.ts +23 -0
  73. package/packages/schemas/src/components.ts +429 -6
  74. package/packages/schemas/src/index.test.ts +83 -0
  75. package/packages/schemas/src/index.ts +1 -0
  76. package/packages/schemas/src/machine-id.ts +7 -0
  77. package/packages/schemas/src/prompts.ts +25 -4
  78. package/packages/schemas/src/registry.ts +28 -39
  79. package/scripts/bump-version.mjs +93 -0
  80. package/scripts/require-version-bump.mjs +70 -0
@@ -0,0 +1,132 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://aeon-ui.com/schemas/metricStrip.json",
4
+ "title": "MetricStrip",
5
+ "description": "Dense value|label chips — cluster or loose density. Generic stats only.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": [
9
+ "component",
10
+ "scope"
11
+ ],
12
+ "properties": {
13
+ "component": {
14
+ "const": "MetricStrip"
15
+ },
16
+ "scope": {
17
+ "const": "metricStrip"
18
+ },
19
+ "parts": {
20
+ "type": "array",
21
+ "description": "Anatomy part keys — map to data-aeon-part",
22
+ "items": {
23
+ "type": "string",
24
+ "enum": [
25
+ "root",
26
+ "chip",
27
+ "value",
28
+ "label"
29
+ ]
30
+ },
31
+ "uniqueItems": true
32
+ },
33
+ "states": {
34
+ "type": "array",
35
+ "description": "Allowed data-aeon-state values (stable states only)",
36
+ "items": {
37
+ "type": "string",
38
+ "enum": [
39
+ "idle"
40
+ ]
41
+ },
42
+ "uniqueItems": true
43
+ },
44
+ "props": {
45
+ "type": "object",
46
+ "additionalProperties": false,
47
+ "properties": {
48
+ "density": {
49
+ "type": "string",
50
+ "enum": [
51
+ "cluster",
52
+ "loose"
53
+ ]
54
+ }
55
+ }
56
+ },
57
+ "slots": {
58
+ "type": "object",
59
+ "description": "Named composition slots / compound parts",
60
+ "additionalProperties": {
61
+ "type": "string"
62
+ },
63
+ "properties": {
64
+ "Root": {
65
+ "const": "metricStrip.root",
66
+ "description": "metricStrip.root"
67
+ },
68
+ "Chip": {
69
+ "const": "metricStrip.chip",
70
+ "description": "metricStrip.chip"
71
+ },
72
+ "Value": {
73
+ "const": "metricStrip.value",
74
+ "description": "metricStrip.value"
75
+ },
76
+ "Label": {
77
+ "const": "metricStrip.label",
78
+ "description": "metricStrip.label"
79
+ }
80
+ }
81
+ },
82
+ "machine": {
83
+ "type": [
84
+ "string",
85
+ "null"
86
+ ],
87
+ "description": "XState machine export from @aeon-ui/primitives, or null if prop/React driven",
88
+ "const": null
89
+ },
90
+ "runtime": {
91
+ "type": "string",
92
+ "description": "How headless state is driven at runtime",
93
+ "const": "layout"
94
+ },
95
+ "events": {
96
+ "type": "array",
97
+ "items": {
98
+ "type": "string",
99
+ "enum": []
100
+ }
101
+ },
102
+ "examples": {
103
+ "type": "array",
104
+ "items": {
105
+ "type": "string"
106
+ },
107
+ "default": []
108
+ }
109
+ },
110
+ "x-aeon": {
111
+ "scope": "metricStrip",
112
+ "parts": [
113
+ "root",
114
+ "chip",
115
+ "value",
116
+ "label"
117
+ ],
118
+ "states": [
119
+ "idle"
120
+ ],
121
+ "machine": null,
122
+ "runtime": "layout",
123
+ "events": [],
124
+ "slots": {
125
+ "Root": "metricStrip.root",
126
+ "Chip": "metricStrip.chip",
127
+ "Value": "metricStrip.value",
128
+ "Label": "metricStrip.label"
129
+ },
130
+ "examples": []
131
+ }
132
+ }
@@ -0,0 +1,136 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://aeon-ui.com/schemas/nav.json",
4
+ "title": "Nav",
5
+ "description": "Navigational collection via tabsMachine; items project inactive | active | disabled.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": [
9
+ "component",
10
+ "scope"
11
+ ],
12
+ "properties": {
13
+ "component": {
14
+ "const": "Nav"
15
+ },
16
+ "scope": {
17
+ "const": "nav"
18
+ },
19
+ "parts": {
20
+ "type": "array",
21
+ "description": "Anatomy part keys — map to data-aeon-part",
22
+ "items": {
23
+ "type": "string",
24
+ "enum": [
25
+ "root",
26
+ "item",
27
+ "indicator",
28
+ "label",
29
+ "icon",
30
+ "badge"
31
+ ]
32
+ },
33
+ "uniqueItems": true
34
+ },
35
+ "states": {
36
+ "type": "array",
37
+ "description": "Allowed data-aeon-state values (stable states only)",
38
+ "items": {
39
+ "type": "string",
40
+ "enum": [
41
+ "inactive",
42
+ "active",
43
+ "disabled"
44
+ ]
45
+ },
46
+ "uniqueItems": true
47
+ },
48
+ "props": {
49
+ "type": "object",
50
+ "additionalProperties": false,
51
+ "properties": {}
52
+ },
53
+ "slots": {
54
+ "type": "object",
55
+ "description": "Named composition slots / compound parts",
56
+ "additionalProperties": {
57
+ "type": "string"
58
+ },
59
+ "properties": {
60
+ "Root": {
61
+ "const": "nav.root",
62
+ "description": "nav.root"
63
+ },
64
+ "Item": {
65
+ "const": "nav.item",
66
+ "description": "nav.item"
67
+ },
68
+ "Label": {
69
+ "const": "nav.label",
70
+ "description": "nav.label"
71
+ },
72
+ "Icon": {
73
+ "const": "nav.icon",
74
+ "description": "nav.icon"
75
+ }
76
+ }
77
+ },
78
+ "machine": {
79
+ "type": [
80
+ "string",
81
+ "null"
82
+ ],
83
+ "description": "XState machine export from @aeon-ui/primitives, or null if prop/React driven",
84
+ "const": "tabsMachine"
85
+ },
86
+ "runtime": {
87
+ "type": "string",
88
+ "description": "How headless state is driven at runtime",
89
+ "const": "useAeonMachine"
90
+ },
91
+ "events": {
92
+ "type": "array",
93
+ "items": {
94
+ "type": "string",
95
+ "enum": [
96
+ "SELECT"
97
+ ]
98
+ }
99
+ },
100
+ "examples": {
101
+ "type": "array",
102
+ "items": {
103
+ "type": "string"
104
+ },
105
+ "default": []
106
+ }
107
+ },
108
+ "x-aeon": {
109
+ "scope": "nav",
110
+ "parts": [
111
+ "root",
112
+ "item",
113
+ "indicator",
114
+ "label",
115
+ "icon",
116
+ "badge"
117
+ ],
118
+ "states": [
119
+ "inactive",
120
+ "active",
121
+ "disabled"
122
+ ],
123
+ "machine": "tabsMachine",
124
+ "runtime": "useAeonMachine",
125
+ "events": [
126
+ "SELECT"
127
+ ],
128
+ "slots": {
129
+ "Root": "nav.root",
130
+ "Item": "nav.item",
131
+ "Label": "nav.label",
132
+ "Icon": "nav.icon"
133
+ },
134
+ "examples": []
135
+ }
136
+ }
@@ -0,0 +1,143 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://aeon-ui.com/schemas/panel.json",
4
+ "title": "Panel",
5
+ "description": "Collapsible layout region via panelMachine — expanded | collapsed.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": [
9
+ "component",
10
+ "scope"
11
+ ],
12
+ "properties": {
13
+ "component": {
14
+ "const": "Panel"
15
+ },
16
+ "scope": {
17
+ "const": "panel"
18
+ },
19
+ "parts": {
20
+ "type": "array",
21
+ "description": "Anatomy part keys — map to data-aeon-part",
22
+ "items": {
23
+ "type": "string",
24
+ "enum": [
25
+ "group",
26
+ "root",
27
+ "trigger",
28
+ "label",
29
+ "content"
30
+ ]
31
+ },
32
+ "uniqueItems": true
33
+ },
34
+ "states": {
35
+ "type": "array",
36
+ "description": "Allowed data-aeon-state values (stable states only)",
37
+ "items": {
38
+ "type": "string",
39
+ "enum": [
40
+ "expanded",
41
+ "collapsed"
42
+ ]
43
+ },
44
+ "uniqueItems": true
45
+ },
46
+ "props": {
47
+ "type": "object",
48
+ "additionalProperties": false,
49
+ "properties": {}
50
+ },
51
+ "slots": {
52
+ "type": "object",
53
+ "description": "Named composition slots / compound parts",
54
+ "additionalProperties": {
55
+ "type": "string"
56
+ },
57
+ "properties": {
58
+ "Group": {
59
+ "const": "panel.group",
60
+ "description": "panel.group"
61
+ },
62
+ "Root": {
63
+ "const": "panel.root",
64
+ "description": "panel.root"
65
+ },
66
+ "Trigger": {
67
+ "const": "panel.trigger",
68
+ "description": "panel.trigger"
69
+ },
70
+ "Label": {
71
+ "const": "panel.label",
72
+ "description": "panel.label"
73
+ },
74
+ "Content": {
75
+ "const": "panel.content",
76
+ "description": "panel.content"
77
+ }
78
+ }
79
+ },
80
+ "machine": {
81
+ "type": [
82
+ "string",
83
+ "null"
84
+ ],
85
+ "description": "XState machine export from @aeon-ui/primitives, or null if prop/React driven",
86
+ "const": "panelMachine"
87
+ },
88
+ "runtime": {
89
+ "type": "string",
90
+ "description": "How headless state is driven at runtime",
91
+ "const": "useAeonMachine"
92
+ },
93
+ "events": {
94
+ "type": "array",
95
+ "items": {
96
+ "type": "string",
97
+ "enum": [
98
+ "EXPAND",
99
+ "COLLAPSE",
100
+ "TOGGLE",
101
+ "SET_EXPANDED"
102
+ ]
103
+ }
104
+ },
105
+ "examples": {
106
+ "type": "array",
107
+ "items": {
108
+ "type": "string"
109
+ },
110
+ "default": []
111
+ }
112
+ },
113
+ "x-aeon": {
114
+ "scope": "panel",
115
+ "parts": [
116
+ "group",
117
+ "root",
118
+ "trigger",
119
+ "label",
120
+ "content"
121
+ ],
122
+ "states": [
123
+ "expanded",
124
+ "collapsed"
125
+ ],
126
+ "machine": "panelMachine",
127
+ "runtime": "useAeonMachine",
128
+ "events": [
129
+ "EXPAND",
130
+ "COLLAPSE",
131
+ "TOGGLE",
132
+ "SET_EXPANDED"
133
+ ],
134
+ "slots": {
135
+ "Group": "panel.group",
136
+ "Root": "panel.root",
137
+ "Trigger": "panel.trigger",
138
+ "Label": "panel.label",
139
+ "Content": "panel.content"
140
+ },
141
+ "examples": []
142
+ }
143
+ }
@@ -0,0 +1,112 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://aeon-ui.com/schemas/pinInput.json",
4
+ "title": "PinInput",
5
+ "description": "OTP / PIN cells — React state for digit buffer; projects idle | complete on root.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": [
9
+ "component",
10
+ "scope"
11
+ ],
12
+ "properties": {
13
+ "component": {
14
+ "const": "PinInput"
15
+ },
16
+ "scope": {
17
+ "const": "pinInput"
18
+ },
19
+ "parts": {
20
+ "type": "array",
21
+ "description": "Anatomy part keys — map to data-aeon-part",
22
+ "items": {
23
+ "type": "string",
24
+ "enum": [
25
+ "root",
26
+ "input"
27
+ ]
28
+ },
29
+ "uniqueItems": true
30
+ },
31
+ "states": {
32
+ "type": "array",
33
+ "description": "Allowed data-aeon-state values (stable states only)",
34
+ "items": {
35
+ "type": "string",
36
+ "enum": [
37
+ "idle",
38
+ "complete"
39
+ ]
40
+ },
41
+ "uniqueItems": true
42
+ },
43
+ "props": {
44
+ "type": "object",
45
+ "additionalProperties": false,
46
+ "properties": {}
47
+ },
48
+ "slots": {
49
+ "type": "object",
50
+ "description": "Named composition slots / compound parts",
51
+ "additionalProperties": {
52
+ "type": "string"
53
+ },
54
+ "properties": {
55
+ "Root": {
56
+ "const": "pinInput.root",
57
+ "description": "pinInput.root"
58
+ },
59
+ "Input": {
60
+ "const": "pinInput.input",
61
+ "description": "pinInput.input"
62
+ }
63
+ }
64
+ },
65
+ "machine": {
66
+ "type": [
67
+ "string",
68
+ "null"
69
+ ],
70
+ "description": "XState machine export from @aeon-ui/primitives, or null if prop/React driven",
71
+ "const": null
72
+ },
73
+ "runtime": {
74
+ "type": "string",
75
+ "description": "How headless state is driven at runtime",
76
+ "const": "useState"
77
+ },
78
+ "events": {
79
+ "type": "array",
80
+ "items": {
81
+ "type": "string",
82
+ "enum": []
83
+ }
84
+ },
85
+ "examples": {
86
+ "type": "array",
87
+ "items": {
88
+ "type": "string"
89
+ },
90
+ "default": []
91
+ }
92
+ },
93
+ "x-aeon": {
94
+ "scope": "pinInput",
95
+ "parts": [
96
+ "root",
97
+ "input"
98
+ ],
99
+ "states": [
100
+ "idle",
101
+ "complete"
102
+ ],
103
+ "machine": null,
104
+ "runtime": "useState",
105
+ "events": [],
106
+ "slots": {
107
+ "Root": "pinInput.root",
108
+ "Input": "pinInput.input"
109
+ },
110
+ "examples": []
111
+ }
112
+ }
@@ -0,0 +1,138 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://aeon-ui.com/schemas/profileHeader.json",
4
+ "title": "ProfileHeader",
5
+ "description": "Dense account header — identity · metrics · actions. Universal people chrome.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": [
9
+ "component",
10
+ "scope"
11
+ ],
12
+ "properties": {
13
+ "component": {
14
+ "const": "ProfileHeader"
15
+ },
16
+ "scope": {
17
+ "const": "profileHeader"
18
+ },
19
+ "parts": {
20
+ "type": "array",
21
+ "description": "Anatomy part keys — map to data-aeon-part",
22
+ "items": {
23
+ "type": "string",
24
+ "enum": [
25
+ "root",
26
+ "media",
27
+ "identity",
28
+ "metrics",
29
+ "actions",
30
+ "body"
31
+ ]
32
+ },
33
+ "uniqueItems": true
34
+ },
35
+ "states": {
36
+ "type": "array",
37
+ "description": "Allowed data-aeon-state values (stable states only)",
38
+ "items": {
39
+ "type": "string",
40
+ "enum": [
41
+ "idle"
42
+ ]
43
+ },
44
+ "uniqueItems": true
45
+ },
46
+ "props": {
47
+ "type": "object",
48
+ "additionalProperties": false,
49
+ "properties": {}
50
+ },
51
+ "slots": {
52
+ "type": "object",
53
+ "description": "Named composition slots / compound parts",
54
+ "additionalProperties": {
55
+ "type": "string"
56
+ },
57
+ "properties": {
58
+ "Root": {
59
+ "const": "profileHeader.root",
60
+ "description": "profileHeader.root"
61
+ },
62
+ "Media": {
63
+ "const": "profileHeader.media",
64
+ "description": "profileHeader.media"
65
+ },
66
+ "Identity": {
67
+ "const": "profileHeader.identity",
68
+ "description": "profileHeader.identity"
69
+ },
70
+ "Metrics": {
71
+ "const": "profileHeader.metrics",
72
+ "description": "profileHeader.metrics"
73
+ },
74
+ "Actions": {
75
+ "const": "profileHeader.actions",
76
+ "description": "profileHeader.actions"
77
+ },
78
+ "Body": {
79
+ "const": "profileHeader.body",
80
+ "description": "profileHeader.body"
81
+ }
82
+ }
83
+ },
84
+ "machine": {
85
+ "type": [
86
+ "string",
87
+ "null"
88
+ ],
89
+ "description": "XState machine export from @aeon-ui/primitives, or null if prop/React driven",
90
+ "const": null
91
+ },
92
+ "runtime": {
93
+ "type": "string",
94
+ "description": "How headless state is driven at runtime",
95
+ "const": "layout"
96
+ },
97
+ "events": {
98
+ "type": "array",
99
+ "items": {
100
+ "type": "string",
101
+ "enum": []
102
+ }
103
+ },
104
+ "examples": {
105
+ "type": "array",
106
+ "items": {
107
+ "type": "string"
108
+ },
109
+ "default": []
110
+ }
111
+ },
112
+ "x-aeon": {
113
+ "scope": "profileHeader",
114
+ "parts": [
115
+ "root",
116
+ "media",
117
+ "identity",
118
+ "metrics",
119
+ "actions",
120
+ "body"
121
+ ],
122
+ "states": [
123
+ "idle"
124
+ ],
125
+ "machine": null,
126
+ "runtime": "layout",
127
+ "events": [],
128
+ "slots": {
129
+ "Root": "profileHeader.root",
130
+ "Media": "profileHeader.media",
131
+ "Identity": "profileHeader.identity",
132
+ "Metrics": "profileHeader.metrics",
133
+ "Actions": "profileHeader.actions",
134
+ "Body": "profileHeader.body"
135
+ },
136
+ "examples": []
137
+ }
138
+ }