@adia-ai/web-components 0.4.7 → 0.4.9

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 (236) hide show
  1. package/README.md +39 -0
  2. package/USAGE.md +255 -2
  3. package/components/accordion/accordion.a2ui.json +3 -0
  4. package/components/accordion/accordion.d.ts +12 -2
  5. package/components/accordion/accordion.yaml +4 -0
  6. package/components/action-list/action-list.a2ui.json +18 -1
  7. package/components/action-list/action-list.d.ts +21 -2
  8. package/components/action-list/action-list.yaml +14 -0
  9. package/components/agent-artifact/agent-artifact.a2ui.json +11 -1
  10. package/components/agent-artifact/agent-artifact.d.ts +17 -2
  11. package/components/agent-artifact/agent-artifact.yaml +9 -0
  12. package/components/agent-feedback-bar/agent-feedback-bar.a2ui.json +10 -1
  13. package/components/agent-feedback-bar/agent-feedback-bar.d.ts +19 -2
  14. package/components/agent-feedback-bar/agent-feedback-bar.yaml +8 -0
  15. package/components/agent-questions/agent-questions.a2ui.json +14 -1
  16. package/components/agent-questions/agent-questions.d.ts +19 -2
  17. package/components/agent-questions/agent-questions.yaml +11 -0
  18. package/components/agent-reasoning/agent-reasoning.a2ui.json +29 -3
  19. package/components/agent-reasoning/agent-reasoning.d.ts +33 -2
  20. package/components/agent-reasoning/agent-reasoning.yaml +20 -0
  21. package/components/agent-suggestions/agent-suggestions.a2ui.json +18 -1
  22. package/components/agent-suggestions/agent-suggestions.d.ts +21 -2
  23. package/components/agent-suggestions/agent-suggestions.yaml +14 -0
  24. package/components/agent-trace/agent-trace.a2ui.json +8 -1
  25. package/components/agent-trace/agent-trace.d.ts +17 -2
  26. package/components/agent-trace/agent-trace.yaml +4 -0
  27. package/components/alert/alert.a2ui.json +1 -0
  28. package/components/alert/alert.d.ts +12 -2
  29. package/components/aside/aside.a2ui.json +1 -0
  30. package/components/avatar/avatar.a2ui.json +3 -0
  31. package/components/avatar/avatar.d.ts +3 -2
  32. package/components/avatar/avatar.yaml +4 -0
  33. package/components/badge/badge.a2ui.json +3 -0
  34. package/components/badge/badge.d.ts +3 -2
  35. package/components/badge/badge.yaml +4 -0
  36. package/components/block/block.a2ui.json +1 -0
  37. package/components/block/block.d.ts +3 -2
  38. package/components/breadcrumb/breadcrumb.a2ui.json +5 -0
  39. package/components/breadcrumb/breadcrumb.d.ts +3 -2
  40. package/components/breadcrumb/breadcrumb.yaml +6 -0
  41. package/components/button/button.a2ui.json +3 -0
  42. package/components/button/button.d.ts +12 -2
  43. package/components/button/button.yaml +5 -0
  44. package/components/calendar-picker/calendar-picker.a2ui.json +1 -0
  45. package/components/canvas/canvas.a2ui.json +1 -0
  46. package/components/canvas/canvas.d.ts +18 -2
  47. package/components/canvas/canvas.yaml +12 -0
  48. package/components/card/card.a2ui.json +1 -0
  49. package/components/card/card.d.ts +12 -2
  50. package/components/chart/chart.a2ui.json +4 -0
  51. package/components/chart/chart.d.ts +18 -2
  52. package/components/chart/chart.yaml +5 -0
  53. package/components/chart-legend/chart-legend.a2ui.json +19 -1
  54. package/components/chart-legend/chart-legend.d.ts +21 -2
  55. package/components/chart-legend/chart-legend.yaml +15 -0
  56. package/components/chat-thread/chat-thread.a2ui.json +12 -1
  57. package/components/chat-thread/chat-thread.d.ts +19 -2
  58. package/components/chat-thread/chat-thread.yaml +7 -0
  59. package/components/check/check.a2ui.json +1 -0
  60. package/components/code/code.a2ui.json +37 -7
  61. package/components/code/code.d.ts +30 -0
  62. package/components/code/code.yaml +29 -6
  63. package/components/col/col.a2ui.json +1 -0
  64. package/components/col/col.d.ts +3 -2
  65. package/components/color-picker/class.js +59 -1
  66. package/components/color-picker/color-picker.a2ui.json +37 -0
  67. package/components/color-picker/color-picker.d.ts +70 -8
  68. package/components/color-picker/color-picker.yaml +53 -0
  69. package/components/command/command.a2ui.json +12 -1
  70. package/components/command/command.d.ts +21 -2
  71. package/components/command/command.yaml +7 -0
  72. package/components/demo-toggle/demo-toggle.a2ui.json +8 -1
  73. package/components/demo-toggle/demo-toggle.d.ts +17 -2
  74. package/components/demo-toggle/demo-toggle.yaml +4 -0
  75. package/components/description-list/description-list.a2ui.json +1 -0
  76. package/components/description-list/description-list.d.ts +3 -2
  77. package/components/divider/divider.a2ui.json +1 -0
  78. package/components/divider/divider.d.ts +3 -2
  79. package/components/drawer/drawer.a2ui.json +1 -0
  80. package/components/drawer/drawer.d.ts +12 -2
  81. package/components/embed/embed.a2ui.json +1 -0
  82. package/components/embed/embed.d.ts +3 -2
  83. package/components/empty-state/empty-state.a2ui.json +3 -0
  84. package/components/empty-state/empty-state.d.ts +3 -2
  85. package/components/empty-state/empty-state.yaml +4 -0
  86. package/components/feed/feed.a2ui.json +9 -1
  87. package/components/feed/feed.d.ts +12 -2
  88. package/components/feed/feed.yaml +8 -1
  89. package/components/field/field.a2ui.json +1 -0
  90. package/components/field/field.d.ts +3 -2
  91. package/components/fields/fields.a2ui.json +1 -0
  92. package/components/fields/fields.d.ts +3 -2
  93. package/components/footer/footer.a2ui.json +1 -0
  94. package/components/grid/grid.a2ui.json +1 -0
  95. package/components/grid/grid.d.ts +3 -2
  96. package/components/header/header.a2ui.json +1 -0
  97. package/components/heatmap/heatmap.a2ui.json +12 -2
  98. package/components/heatmap/heatmap.d.ts +20 -2
  99. package/components/heatmap/heatmap.yaml +17 -2
  100. package/components/icon/icon.a2ui.json +1 -0
  101. package/components/icon/icon.d.ts +3 -2
  102. package/components/image/image.a2ui.json +3 -0
  103. package/components/image/image.d.ts +3 -2
  104. package/components/image/image.yaml +4 -0
  105. package/components/index.js +8 -0
  106. package/components/input/input.a2ui.json +4 -0
  107. package/components/input/input.yaml +6 -0
  108. package/components/inspector/inspector.a2ui.json +5 -0
  109. package/components/inspector/inspector.d.ts +3 -2
  110. package/components/inspector/inspector.yaml +6 -0
  111. package/components/kbd/kbd.a2ui.json +1 -0
  112. package/components/kbd/kbd.d.ts +3 -2
  113. package/components/link/link.a2ui.json +12 -1
  114. package/components/link/link.d.ts +19 -2
  115. package/components/link/link.yaml +7 -0
  116. package/components/list/list.a2ui.json +14 -1
  117. package/components/list/list.d.ts +19 -2
  118. package/components/list/list.yaml +11 -0
  119. package/components/menu/menu.a2ui.json +14 -1
  120. package/components/menu/menu.d.ts +19 -2
  121. package/components/menu/menu.yaml +11 -0
  122. package/components/modal/modal.a2ui.json +1 -0
  123. package/components/modal/modal.d.ts +12 -2
  124. package/components/nav/nav.a2ui.json +16 -1
  125. package/components/nav/nav.d.ts +21 -2
  126. package/components/nav/nav.yaml +10 -0
  127. package/components/nav-group/nav-group.a2ui.json +12 -1
  128. package/components/nav-group/nav-group.d.ts +19 -2
  129. package/components/nav-group/nav-group.yaml +7 -0
  130. package/components/nav-item/nav-item.a2ui.json +16 -1
  131. package/components/nav-item/nav-item.d.ts +21 -2
  132. package/components/nav-item/nav-item.yaml +10 -0
  133. package/components/noodles/noodles.a2ui.json +47 -2
  134. package/components/noodles/noodles.d.ts +42 -2
  135. package/components/noodles/noodles.yaml +32 -0
  136. package/components/option-card/option-card.a2ui.json +3 -0
  137. package/components/option-card/option-card.yaml +4 -0
  138. package/components/otp-input/otp-input.a2ui.json +15 -2
  139. package/components/otp-input/otp-input.d.ts +11 -0
  140. package/components/otp-input/otp-input.yaml +10 -2
  141. package/components/page/page.a2ui.json +1 -0
  142. package/components/page/page.d.ts +3 -2
  143. package/components/pagination/pagination.a2ui.json +8 -1
  144. package/components/pagination/pagination.d.ts +17 -2
  145. package/components/pagination/pagination.yaml +4 -0
  146. package/components/pane/pane.a2ui.json +8 -1
  147. package/components/pane/pane.d.ts +12 -2
  148. package/components/pane/pane.yaml +7 -1
  149. package/components/pipeline-status/pipeline-status.a2ui.json +1 -0
  150. package/components/pipeline-status/pipeline-status.d.ts +3 -2
  151. package/components/popover/popover.a2ui.json +1 -0
  152. package/components/popover/popover.d.ts +3 -2
  153. package/components/progress/progress.a2ui.json +1 -0
  154. package/components/progress/progress.d.ts +3 -2
  155. package/components/progress-row/progress-row.a2ui.json +3 -0
  156. package/components/progress-row/progress-row.d.ts +3 -2
  157. package/components/progress-row/progress-row.yaml +4 -0
  158. package/components/radio/radio.a2ui.json +1 -0
  159. package/components/range/range.a2ui.json +1 -0
  160. package/components/rating/rating.a2ui.json +1 -0
  161. package/components/richtext/richtext.a2ui.json +1 -0
  162. package/components/richtext/richtext.d.ts +3 -2
  163. package/components/row/row.a2ui.json +1 -0
  164. package/components/row/row.d.ts +12 -2
  165. package/components/search/search.a2ui.json +1 -0
  166. package/components/section/section.a2ui.json +1 -0
  167. package/components/segment/segment.a2ui.json +3 -0
  168. package/components/segment/segment.d.ts +3 -2
  169. package/components/segment/segment.yaml +4 -0
  170. package/components/segmented/segmented.a2ui.json +1 -0
  171. package/components/select/select.a2ui.json +3 -0
  172. package/components/select/select.yaml +4 -0
  173. package/components/skeleton/skeleton.a2ui.json +1 -0
  174. package/components/skeleton/skeleton.d.ts +3 -2
  175. package/components/slider/slider.a2ui.json +1 -0
  176. package/components/stack/stack.a2ui.json +1 -0
  177. package/components/stack/stack.d.ts +3 -2
  178. package/components/stat/stat.a2ui.json +1 -0
  179. package/components/step-progress/step-progress.a2ui.json +1 -0
  180. package/components/step-progress/step-progress.d.ts +3 -2
  181. package/components/stepper/stepper.a2ui.json +3 -0
  182. package/components/stepper/stepper.d.ts +3 -2
  183. package/components/stepper/stepper.yaml +4 -0
  184. package/components/stream/stream.a2ui.json +8 -1
  185. package/components/stream/stream.d.ts +21 -2
  186. package/components/stream/stream.yaml +4 -0
  187. package/components/swatch/class.js +362 -15
  188. package/components/swatch/swatch.a2ui.json +69 -1
  189. package/components/swatch/swatch.css +150 -0
  190. package/components/swatch/swatch.d.ts +46 -2
  191. package/components/swatch/swatch.yaml +67 -1
  192. package/components/swiper/swiper.a2ui.json +21 -2
  193. package/components/swiper/swiper.d.ts +28 -2
  194. package/components/swiper/swiper.yaml +15 -0
  195. package/components/switch/switch.a2ui.json +1 -0
  196. package/components/table/table.a2ui.json +87 -5
  197. package/components/table/table.d.ts +73 -2
  198. package/components/table/table.yaml +62 -2
  199. package/components/table-toolbar/table-toolbar.a2ui.json +12 -0
  200. package/components/table-toolbar/table-toolbar.d.ts +18 -2
  201. package/components/table-toolbar/table-toolbar.yaml +13 -0
  202. package/components/tabs/tabs.a2ui.json +10 -1
  203. package/components/tabs/tabs.d.ts +17 -2
  204. package/components/tabs/tabs.yaml +8 -0
  205. package/components/tag/tag.a2ui.json +12 -1
  206. package/components/tag/tag.d.ts +19 -2
  207. package/components/tag/tag.yaml +7 -0
  208. package/components/text/text.a2ui.json +1 -0
  209. package/components/text/text.d.ts +3 -2
  210. package/components/textarea/textarea.a2ui.json +1 -0
  211. package/components/timeline/timeline.a2ui.json +14 -1
  212. package/components/timeline/timeline.d.ts +17 -2
  213. package/components/timeline/timeline.yaml +11 -1
  214. package/components/toast/toast.a2ui.json +1 -0
  215. package/components/toast/toast.d.ts +12 -2
  216. package/components/toggle-group/toggle-group.a2ui.json +8 -1
  217. package/components/toggle-group/toggle-group.d.ts +17 -2
  218. package/components/toggle-group/toggle-group.yaml +4 -0
  219. package/components/toggle-scheme/toggle-scheme.a2ui.json +14 -1
  220. package/components/toggle-scheme/toggle-scheme.d.ts +19 -2
  221. package/components/toggle-scheme/toggle-scheme.yaml +11 -0
  222. package/components/toolbar/toolbar.a2ui.json +3 -0
  223. package/components/toolbar/toolbar.d.ts +3 -2
  224. package/components/toolbar/toolbar.yaml +4 -0
  225. package/components/tooltip/tooltip.a2ui.json +1 -0
  226. package/components/tooltip/tooltip.d.ts +3 -2
  227. package/components/tree/tree.a2ui.json +18 -1
  228. package/components/tree/tree.d.ts +21 -2
  229. package/components/tree/tree.yaml +14 -0
  230. package/components/upload/upload.a2ui.json +1 -0
  231. package/core/icons-phosphor.js +93 -0
  232. package/core/icons.js +92 -90
  233. package/core/index.js +5 -0
  234. package/index.d.ts +87 -79
  235. package/index.js +7 -0
  236. package/package.json +3 -2
@@ -13,12 +13,22 @@ when [collapsible] (default true).
13
13
  *
14
14
  * Type declarations generated by scripts/build/dts-codegen.mjs from
15
15
  * the component's `.a2ui.json` sidecar. Edit the source `.yaml`,
16
- * run `npm run components`, then `npm run codegen:dts` to regenerate;
17
- * or hand-author this file fully if rich event types are needed.
16
+ * run `npm run build:components`, then `npm run codegen:dts` to
17
+ * regenerate; or hand-author this file fully if rich event types are
18
+ * needed beyond what the yaml `events:` block can express.
18
19
  */
19
20
 
20
21
  import { UIElement } from '../../core/element.js';
21
22
 
23
+ export interface NavGroupGroupToggleEventDetail {
24
+ /** Whether the group is now open. */
25
+ open: boolean;
26
+ /** Group label text. */
27
+ text: string;
28
+ }
29
+
30
+ export type NavGroupGroupToggleEvent = CustomEvent<NavGroupGroupToggleEventDetail>;
31
+
22
32
  export class UINavGroup extends UIElement {
23
33
  /** Optional trailing badge (count, label). */
24
34
  badge: string;
@@ -32,4 +42,11 @@ export class UINavGroup extends UIElement {
32
42
  text: string;
33
43
  /** Visual treatment. Default ('') renders as a primary-rail group (icon row, caret, collapsible). 'section' renders the header as a static kicker label with always-visible children. When the parent <nav-ui> carries variant="section", this group inherits it via CSS cascade unless an explicit variant is set on the group. */
34
44
  variant: '' | 'section';
45
+
46
+ addEventListener<K extends keyof HTMLElementEventMap>(
47
+ type: K,
48
+ listener: (this: UINavGroup, ev: HTMLElementEventMap[K]) => unknown,
49
+ options?: boolean | AddEventListenerOptions,
50
+ ): void;
51
+ addEventListener(type: 'group-toggle', listener: (ev: NavGroupGroupToggleEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
35
52
  }
@@ -44,6 +44,13 @@ props:
44
44
  events:
45
45
  group-toggle:
46
46
  description: "Fired when the header toggles via click/keyboard. Detail: { text, open }."
47
+ detail:
48
+ text:
49
+ type: string
50
+ description: Group label text.
51
+ open:
52
+ type: boolean
53
+ description: Whether the group is now open.
47
54
 
48
55
  slots:
49
56
  default:
@@ -63,9 +63,24 @@
63
63
  "x-adiaui": {
64
64
  "anti_patterns": [],
65
65
  "category": "layout",
66
+ "composes": [],
66
67
  "events": {
67
68
  "nav-select": {
68
- "description": "Bubbles when the item is activated. Detail: { item, text, value }."
69
+ "description": "Bubbles when the item is activated. Detail: { item, text, value }.",
70
+ "detail": {
71
+ "item": {
72
+ "description": "The nav-item element itself.",
73
+ "type": "object"
74
+ },
75
+ "text": {
76
+ "description": "Item text content.",
77
+ "type": "string"
78
+ },
79
+ "value": {
80
+ "description": "Item value attribute.",
81
+ "type": "string"
82
+ }
83
+ }
69
84
  }
70
85
  },
71
86
  "examples": [],
@@ -13,12 +13,24 @@ bubbles a `nav-select` event.
13
13
  *
14
14
  * Type declarations generated by scripts/build/dts-codegen.mjs from
15
15
  * the component's `.a2ui.json` sidecar. Edit the source `.yaml`,
16
- * run `npm run components`, then `npm run codegen:dts` to regenerate;
17
- * or hand-author this file fully if rich event types are needed.
16
+ * run `npm run build:components`, then `npm run codegen:dts` to
17
+ * regenerate; or hand-author this file fully if rich event types are
18
+ * needed beyond what the yaml `events:` block can express.
18
19
  */
19
20
 
20
21
  import { UIElement } from '../../core/element.js';
21
22
 
23
+ export interface NavItemNavSelectEventDetail {
24
+ /** The nav-item element itself. */
25
+ item: Record<string, unknown>;
26
+ /** Item text content. */
27
+ text: string;
28
+ /** Item value attribute. */
29
+ value: string;
30
+ }
31
+
32
+ export type NavItemNavSelectEvent = CustomEvent<NavItemNavSelectEventDetail>;
33
+
22
34
  export class UINavItem extends UIElement {
23
35
  /** Optional trailing badge. */
24
36
  badge: string;
@@ -34,4 +46,11 @@ export class UINavItem extends UIElement {
34
46
  value: string;
35
47
  /** Visual treatment. Default ('') renders as a primary-rail item (reserved icon space, in-icon selected accent). 'section' renders flat — no icon space when absent, left-edge accent bar for selected. When the parent <nav-ui> carries variant="section", this item inherits it via CSS cascade unless an explicit variant is set. */
36
48
  variant: '' | 'section';
49
+
50
+ addEventListener<K extends keyof HTMLElementEventMap>(
51
+ type: K,
52
+ listener: (this: UINavItem, ev: HTMLElementEventMap[K]) => unknown,
53
+ options?: boolean | AddEventListenerOptions,
54
+ ): void;
55
+ addEventListener(type: 'nav-select', listener: (ev: NavItemNavSelectEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
37
56
  }
@@ -48,6 +48,16 @@ props:
48
48
  events:
49
49
  nav-select:
50
50
  description: "Bubbles when the item is activated. Detail: { item, text, value }."
51
+ detail:
52
+ item:
53
+ type: object
54
+ description: The nav-item element itself.
55
+ text:
56
+ type: string
57
+ description: Item text content.
58
+ value:
59
+ type: string
60
+ description: Item value attribute.
51
61
 
52
62
  slots:
53
63
  default:
@@ -89,12 +89,57 @@
89
89
  "x-adiaui": {
90
90
  "anti_patterns": [],
91
91
  "category": "agent",
92
+ "composes": [],
92
93
  "events": {
93
94
  "noodle-connect": {
94
- "description": "Fired when a connection is created. detail: { id, from, to, fromPort, toPort }"
95
+ "description": "Fired when a connection is created. detail: { id, from, to, fromPort, toPort }",
96
+ "detail": {
97
+ "from": {
98
+ "description": "Source node ID.",
99
+ "type": "string"
100
+ },
101
+ "fromPort": {
102
+ "description": "Source port identifier.",
103
+ "type": "string"
104
+ },
105
+ "id": {
106
+ "description": "Connection ID.",
107
+ "type": "string"
108
+ },
109
+ "to": {
110
+ "description": "Target node ID.",
111
+ "type": "string"
112
+ },
113
+ "toPort": {
114
+ "description": "Target port identifier.",
115
+ "type": "string"
116
+ }
117
+ }
95
118
  },
96
119
  "noodle-disconnect": {
97
- "description": "Fired when a connection is removed. detail: { id, from, to, fromPort, toPort }"
120
+ "description": "Fired when a connection is removed. detail: { id, from, to, fromPort, toPort }",
121
+ "detail": {
122
+ "from": {
123
+ "description": "Source node ID.",
124
+ "type": "string"
125
+ },
126
+ "fromPort": {
127
+ "description": "Source port identifier.",
128
+ "type": "string"
129
+ },
130
+ "id": {
131
+ "description": "Connection ID.",
132
+ "type": "string"
133
+ },
134
+ "to": {
135
+ "description": "Target node ID.",
136
+ "type": "string"
137
+ },
138
+ "toPort": {
139
+ "description": "Target port identifier.",
140
+ "type": "string"
141
+ }
142
+ }
98
143
  },
99
144
  "noodle-drag": {
100
145
  "description": "Fired during drag-to-connect. detail: { from, fromPort, x, y, reconnect }"
@@ -5,12 +5,43 @@
5
5
  *
6
6
  * Type declarations generated by scripts/build/dts-codegen.mjs from
7
7
  * the component's `.a2ui.json` sidecar. Edit the source `.yaml`,
8
- * run `npm run components`, then `npm run codegen:dts` to regenerate;
9
- * or hand-author this file fully if rich event types are needed.
8
+ * run `npm run build:components`, then `npm run codegen:dts` to
9
+ * regenerate; or hand-author this file fully if rich event types are
10
+ * needed beyond what the yaml `events:` block can express.
10
11
  */
11
12
 
12
13
  import { UIElement } from '../../core/element.js';
13
14
 
15
+ export interface NoodlesNoodleConnectEventDetail {
16
+ /** Source node ID. */
17
+ from: string;
18
+ /** Source port identifier. */
19
+ fromPort: string;
20
+ /** Connection ID. */
21
+ id: string;
22
+ /** Target node ID. */
23
+ to: string;
24
+ /** Target port identifier. */
25
+ toPort: string;
26
+ }
27
+
28
+ export type NoodlesNoodleConnectEvent = CustomEvent<NoodlesNoodleConnectEventDetail>;
29
+ export interface NoodlesNoodleDisconnectEventDetail {
30
+ /** Source node ID. */
31
+ from: string;
32
+ /** Source port identifier. */
33
+ fromPort: string;
34
+ /** Connection ID. */
35
+ id: string;
36
+ /** Target node ID. */
37
+ to: string;
38
+ /** Target port identifier. */
39
+ toPort: string;
40
+ }
41
+
42
+ export type NoodlesNoodleDisconnectEvent = CustomEvent<NoodlesNoodleDisconnectEventDetail>;
43
+ export type NoodlesNoodleDragEvent = CustomEvent<unknown>;
44
+
14
45
  export class UINoodles extends UIElement {
15
46
  /** Flowing dash animation on noodles */
16
47
  animated: boolean;
@@ -30,4 +61,13 @@ export class UINoodles extends UIElement {
30
61
  strokeWidth: number;
31
62
  /** Bezier control point distance (0-1). Higher = wider curves */
32
63
  tension: number;
64
+
65
+ addEventListener<K extends keyof HTMLElementEventMap>(
66
+ type: K,
67
+ listener: (this: UINoodles, ev: HTMLElementEventMap[K]) => unknown,
68
+ options?: boolean | AddEventListenerOptions,
69
+ ): void;
70
+ addEventListener(type: 'noodle-connect', listener: (ev: NoodlesNoodleConnectEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
71
+ addEventListener(type: 'noodle-disconnect', listener: (ev: NoodlesNoodleDisconnectEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
72
+ addEventListener(type: 'noodle-drag', listener: (ev: NoodlesNoodleDragEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
33
73
  }
@@ -68,8 +68,40 @@ props:
68
68
  events:
69
69
  noodle-connect:
70
70
  description: "Fired when a connection is created. detail: { id, from, to, fromPort, toPort }"
71
+ detail:
72
+ id:
73
+ type: string
74
+ description: Connection ID.
75
+ from:
76
+ type: string
77
+ description: Source node ID.
78
+ to:
79
+ type: string
80
+ description: Target node ID.
81
+ fromPort:
82
+ type: string
83
+ description: Source port identifier.
84
+ toPort:
85
+ type: string
86
+ description: Target port identifier.
71
87
  noodle-disconnect:
72
88
  description: "Fired when a connection is removed. detail: { id, from, to, fromPort, toPort }"
89
+ detail:
90
+ id:
91
+ type: string
92
+ description: Connection ID.
93
+ from:
94
+ type: string
95
+ description: Source node ID.
96
+ to:
97
+ type: string
98
+ description: Target node ID.
99
+ fromPort:
100
+ type: string
101
+ description: Source port identifier.
102
+ toPort:
103
+ type: string
104
+ description: Target port identifier.
73
105
  noodle-drag:
74
106
  description: "Fired during drag-to-connect. detail: { from, fromPort, x, y, reconnect }"
75
107
  slots: {}
@@ -73,6 +73,9 @@
73
73
  "x-adiaui": {
74
74
  "anti_patterns": [],
75
75
  "category": "input",
76
+ "composes": [
77
+ "icon-ui"
78
+ ],
76
79
  "events": {
77
80
  "change": {
78
81
  "description": "Fired when this card becomes selected (bubbles)."
@@ -12,6 +12,10 @@ description: >-
12
12
  radiogroup. The whole card is the click target; a CSS-rendered radio
13
13
  circle in the top-left signals state. Form-associated, so `name=value`
14
14
  submits with the parent form when checked.
15
+ # Per ADR-0027 — primitives that programmatically create other primitives
16
+ # do NOT auto-import them. Consumer (or demo shell) must explicitly import.
17
+ composes:
18
+ - icon-ui
15
19
  props:
16
20
  name:
17
21
  description: Form control name. Siblings sharing a name form a radiogroup.
@@ -44,12 +44,25 @@
44
44
  "x-adiaui": {
45
45
  "anti_patterns": [],
46
46
  "category": "input",
47
+ "composes": [],
47
48
  "events": {
48
49
  "complete": {
49
- "description": "Fired when all digits are filled. Detail contains { code }."
50
+ "description": "Fired exactly once when the user fills the last digit slot. detail.value is the combined string.",
51
+ "detail": {
52
+ "value": {
53
+ "description": "Combined digits (e.g. \"123456\").",
54
+ "type": "string"
55
+ }
56
+ }
50
57
  },
51
58
  "input": {
52
- "description": "Fired on every digit change"
59
+ "description": "Fired on every digit change. detail.value is the current combined string.",
60
+ "detail": {
61
+ "value": {
62
+ "description": "Combined digits at the moment of the change.",
63
+ "type": "string"
64
+ }
65
+ }
53
66
  }
54
67
  },
55
68
  "examples": [
@@ -12,6 +12,16 @@ export interface OtpInputEventDetail {
12
12
  }
13
13
  export type OtpInputEvent = CustomEvent<OtpInputEventDetail>;
14
14
 
15
+ /**
16
+ * Detail payload for the `complete` event — fired exactly once when the
17
+ * user fills the last digit slot. `value` is the full combined string at
18
+ * the moment of completion.
19
+ */
20
+ export interface OtpInputCompleteEventDetail {
21
+ value: string;
22
+ }
23
+ export type OtpInputCompleteEvent = CustomEvent<OtpInputCompleteEventDetail>;
24
+
15
25
  export class UIOtpInput extends UIFormElement {
16
26
  /** Number of digit slots. */
17
27
  length: number;
@@ -22,4 +32,5 @@ export class UIOtpInput extends UIFormElement {
22
32
  options?: boolean | AddEventListenerOptions,
23
33
  ): void;
24
34
  addEventListener(type: 'input', listener: (ev: OtpInputEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
35
+ addEventListener(type: 'complete', listener: (ev: OtpInputCompleteEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
25
36
  }
@@ -25,9 +25,17 @@ props:
25
25
  default: ''
26
26
  events:
27
27
  complete:
28
- description: Fired when all digits are filled. Detail contains { code }.
28
+ description: Fired exactly once when the user fills the last digit slot. detail.value is the combined string.
29
+ detail:
30
+ value:
31
+ type: string
32
+ description: Combined digits (e.g. "123456").
29
33
  input:
30
- description: Fired on every digit change
34
+ description: Fired on every digit change. detail.value is the current combined string.
35
+ detail:
36
+ value:
37
+ type: string
38
+ description: Combined digits at the moment of the change.
31
39
  slots:
32
40
  field:
33
41
  description: Container for the digit input boxes and optional separator
@@ -51,6 +51,7 @@
51
51
  "x-adiaui": {
52
52
  "anti_patterns": [],
53
53
  "category": "container",
54
+ "composes": [],
54
55
  "events": {},
55
56
  "examples": [
56
57
  {
@@ -11,8 +11,9 @@ primitives (`<header-ui>`, `<section-ui>`, `<footer-ui>`); the page's
11
11
  *
12
12
  * Type declarations generated by scripts/build/dts-codegen.mjs from
13
13
  * the component's `.a2ui.json` sidecar. Edit the source `.yaml`,
14
- * run `npm run components`, then `npm run codegen:dts` to regenerate;
15
- * or hand-author this file fully if rich event types are needed.
14
+ * run `npm run build:components`, then `npm run codegen:dts` to
15
+ * regenerate; or hand-author this file fully if rich event types are
16
+ * needed beyond what the yaml `events:` block can express.
16
17
  */
17
18
 
18
19
  import { UIElement } from '../../core/element.js';
@@ -44,9 +44,16 @@
44
44
  "x-adiaui": {
45
45
  "anti_patterns": [],
46
46
  "category": "navigation",
47
+ "composes": [],
47
48
  "events": {
48
49
  "page-change": {
49
- "description": "Fired when a page button is clicked. detail contains { page }."
50
+ "description": "Fired when a page button is clicked. detail contains { page }.",
51
+ "detail": {
52
+ "page": {
53
+ "description": "New page number.",
54
+ "type": "number"
55
+ }
56
+ }
50
57
  }
51
58
  },
52
59
  "examples": [
@@ -5,12 +5,20 @@
5
5
  *
6
6
  * Type declarations generated by scripts/build/dts-codegen.mjs from
7
7
  * the component's `.a2ui.json` sidecar. Edit the source `.yaml`,
8
- * run `npm run components`, then `npm run codegen:dts` to regenerate;
9
- * or hand-author this file fully if rich event types are needed.
8
+ * run `npm run build:components`, then `npm run codegen:dts` to
9
+ * regenerate; or hand-author this file fully if rich event types are
10
+ * needed beyond what the yaml `events:` block can express.
10
11
  */
11
12
 
12
13
  import { UIElement } from '../../core/element.js';
13
14
 
15
+ export interface PaginationPageChangeEventDetail {
16
+ /** New page number. */
17
+ page: number;
18
+ }
19
+
20
+ export type PaginationPageChangeEvent = CustomEvent<PaginationPageChangeEventDetail>;
21
+
14
22
  export class UIPagination extends UIElement {
15
23
  /** Current active page number. */
16
24
  page: number;
@@ -20,4 +28,11 @@ export class UIPagination extends UIElement {
20
28
  total: number;
21
29
  /** Visual variant */
22
30
  variant: string;
31
+
32
+ addEventListener<K extends keyof HTMLElementEventMap>(
33
+ type: K,
34
+ listener: (this: UIPagination, ev: HTMLElementEventMap[K]) => unknown,
35
+ options?: boolean | AddEventListenerOptions,
36
+ ): void;
37
+ addEventListener(type: 'page-change', listener: (ev: PaginationPageChangeEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
23
38
  }
@@ -27,6 +27,10 @@ props:
27
27
  events:
28
28
  page-change:
29
29
  description: Fired when a page button is clicked. detail contains { page }.
30
+ detail:
31
+ page:
32
+ type: number
33
+ description: New page number.
30
34
  slots: {}
31
35
  states:
32
36
  - name: idle
@@ -54,7 +54,14 @@
54
54
  "x-adiaui": {
55
55
  "anti_patterns": [],
56
56
  "category": "layout",
57
- "events": {},
57
+ "composes": [
58
+ "icon-ui"
59
+ ],
60
+ "events": {
61
+ "toggle": {
62
+ "description": "Fired when the pane's collapsed state flips (via button press, keyboard, or programmatic toggle()). Bubbles."
63
+ }
64
+ },
58
65
  "examples": [
59
66
  {
60
67
  "description": "Split pane with TextArea for editing markdown on the left and a preview card on the right.",
@@ -5,12 +5,15 @@
5
5
  *
6
6
  * Type declarations generated by scripts/build/dts-codegen.mjs from
7
7
  * the component's `.a2ui.json` sidecar. Edit the source `.yaml`,
8
- * run `npm run components`, then `npm run codegen:dts` to regenerate;
9
- * or hand-author this file fully if rich event types are needed.
8
+ * run `npm run build:components`, then `npm run codegen:dts` to
9
+ * regenerate; or hand-author this file fully if rich event types are
10
+ * needed beyond what the yaml `events:` block can express.
10
11
  */
11
12
 
12
13
  import { UIElement } from '../../core/element.js';
13
14
 
15
+ export type PaneToggleEvent = CustomEvent<unknown>;
16
+
14
17
  export class UIPane extends UIElement {
15
18
  /** Component property: collapsed. */
16
19
  collapsed: boolean;
@@ -28,4 +31,11 @@ Unset keeps the pane-intrinsic chrome (full border, right-edge
28
31
  grabber when resizable).
29
32
  */
30
33
  side: '' | 'leading' | 'trailing';
34
+
35
+ addEventListener<K extends keyof HTMLElementEventMap>(
36
+ type: K,
37
+ listener: (this: UIPane, ev: HTMLElementEventMap[K]) => unknown,
38
+ options?: boolean | AddEventListenerOptions,
39
+ ): void;
40
+ addEventListener(type: 'toggle', listener: (ev: PaneToggleEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
31
41
  }
@@ -5,6 +5,10 @@ component: Pane
5
5
  category: layout
6
6
  version: 1
7
7
  description: Collapsible, resizable panel.
8
+ # Per ADR-0027 — primitives that programmatically create other primitives
9
+ # do NOT auto-import them. Consumer (or demo shell) must explicitly import.
10
+ composes:
11
+ - icon-ui
8
12
  props:
9
13
  collapsed:
10
14
  description: 'Component property: collapsed.'
@@ -45,7 +49,9 @@ props:
45
49
  - leading
46
50
  - trailing
47
51
  reflect: true
48
- events: {}
52
+ events:
53
+ toggle:
54
+ description: Fired when the pane's collapsed state flips (via button press, keyboard, or programmatic toggle()). Bubbles.
49
55
  slots:
50
56
  header:
51
57
  description: Auto-created header element with label text and toggle arrow
@@ -39,6 +39,7 @@
39
39
  "x-adiaui": {
40
40
  "anti_patterns": [],
41
41
  "category": "agent",
42
+ "composes": [],
42
43
  "events": {},
43
44
  "examples": [
44
45
  {
@@ -5,8 +5,9 @@
5
5
  *
6
6
  * Type declarations generated by scripts/build/dts-codegen.mjs from
7
7
  * the component's `.a2ui.json` sidecar. Edit the source `.yaml`,
8
- * run `npm run components`, then `npm run codegen:dts` to regenerate;
9
- * or hand-author this file fully if rich event types are needed.
8
+ * run `npm run build:components`, then `npm run codegen:dts` to
9
+ * regenerate; or hand-author this file fully if rich event types are
10
+ * needed beyond what the yaml `events:` block can express.
10
11
  */
11
12
 
12
13
  import { UIElement } from '../../core/element.js';
@@ -59,6 +59,7 @@
59
59
  "x-adiaui": {
60
60
  "anti_patterns": [],
61
61
  "category": "container",
62
+ "composes": [],
62
63
  "events": {},
63
64
  "examples": [
64
65
  {
@@ -5,8 +5,9 @@
5
5
  *
6
6
  * Type declarations generated by scripts/build/dts-codegen.mjs from
7
7
  * the component's `.a2ui.json` sidecar. Edit the source `.yaml`,
8
- * run `npm run components`, then `npm run codegen:dts` to regenerate;
9
- * or hand-author this file fully if rich event types are needed.
8
+ * run `npm run build:components`, then `npm run codegen:dts` to
9
+ * regenerate; or hand-author this file fully if rich event types are
10
+ * needed beyond what the yaml `events:` block can express.
10
11
  */
11
12
 
12
13
  import { UIElement } from '../../core/element.js';
@@ -43,6 +43,7 @@
43
43
  "x-adiaui": {
44
44
  "anti_patterns": [],
45
45
  "category": "display",
46
+ "composes": [],
46
47
  "events": {},
47
48
  "examples": [
48
49
  {
@@ -5,8 +5,9 @@
5
5
  *
6
6
  * Type declarations generated by scripts/build/dts-codegen.mjs from
7
7
  * the component's `.a2ui.json` sidecar. Edit the source `.yaml`,
8
- * run `npm run components`, then `npm run codegen:dts` to regenerate;
9
- * or hand-author this file fully if rich event types are needed.
8
+ * run `npm run build:components`, then `npm run codegen:dts` to
9
+ * regenerate; or hand-author this file fully if rich event types are
10
+ * needed beyond what the yaml `events:` block can express.
10
11
  */
11
12
 
12
13
  import { UIElement } from '../../core/element.js';
@@ -52,6 +52,9 @@
52
52
  "x-adiaui": {
53
53
  "anti_patterns": [],
54
54
  "category": "data",
55
+ "composes": [
56
+ "progress-ui"
57
+ ],
55
58
  "events": {},
56
59
  "examples": [
57
60
  {
@@ -5,8 +5,9 @@
5
5
  *
6
6
  * Type declarations generated by scripts/build/dts-codegen.mjs from
7
7
  * the component's `.a2ui.json` sidecar. Edit the source `.yaml`,
8
- * run `npm run components`, then `npm run codegen:dts` to regenerate;
9
- * or hand-author this file fully if rich event types are needed.
8
+ * run `npm run build:components`, then `npm run codegen:dts` to
9
+ * regenerate; or hand-author this file fully if rich event types are
10
+ * needed beyond what the yaml `events:` block can express.
10
11
  */
11
12
 
12
13
  import { UIElement } from '../../core/element.js';
@@ -8,6 +8,10 @@ category: data
8
8
  version: 1
9
9
  description: Inline labeled progress row with label, progress bar, and meta text. Used for storage
10
10
  quotas, capacity breakdowns, usage indicators.
11
+ # Per ADR-0027 — primitives that programmatically create other primitives
12
+ # do NOT auto-import them. Consumer (or demo shell) must explicitly import.
13
+ composes:
14
+ - progress-ui
11
15
  props:
12
16
  label:
13
17
  description: Left-hand label text