@adia-ai/web-components 0.8.40 → 0.8.42

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 (410) hide show
  1. package/CHANGELOG.md +71 -3
  2. package/MIGRATION.md +1229 -16
  3. package/README.md +25 -30
  4. package/USAGE.md +30 -4
  5. package/bin/audit-template-children.mjs +556 -0
  6. package/components/accordion/accordion-item.a2ui.json +4 -0
  7. package/components/accordion/accordion-item.yaml +2 -0
  8. package/components/accordion/accordion.a2ui.json +4 -0
  9. package/components/accordion/accordion.yaml +2 -0
  10. package/components/action-list/action-item.a2ui.json +29 -2
  11. package/components/action-list/action-item.yaml +46 -3
  12. package/components/action-list/action-list.a2ui.json +6 -1
  13. package/components/action-list/action-list.class.js +114 -11
  14. package/components/action-list/action-list.css +43 -3
  15. package/components/action-list/action-list.d.ts +6 -2
  16. package/components/action-list/action-list.yaml +5 -0
  17. package/components/adia-mark/adia-mark.a2ui.json +1 -0
  18. package/components/adia-wordmark/adia-wordmark.a2ui.json +1 -0
  19. package/components/agent-artifact/agent-artifact.a2ui.json +1 -0
  20. package/components/agent-feedback-bar/agent-feedback-bar.a2ui.json +6 -5
  21. package/components/agent-feedback-bar/agent-feedback-bar.yaml +6 -2
  22. package/components/agent-questions/agent-questions.a2ui.json +1 -0
  23. package/components/agent-reasoning/agent-reasoning.a2ui.json +6 -5
  24. package/components/agent-reasoning/agent-reasoning.yaml +6 -2
  25. package/components/agent-suggestions/agent-suggestions.a2ui.json +11 -2
  26. package/components/agent-suggestions/agent-suggestions.class.js +2 -1
  27. package/components/agent-suggestions/agent-suggestions.d.ts +4 -4
  28. package/components/agent-suggestions/agent-suggestions.yaml +4 -2
  29. package/components/agent-trace/agent-trace.a2ui.json +6 -5
  30. package/components/agent-trace/agent-trace.yaml +6 -2
  31. package/components/alert/alert.a2ui.json +1 -0
  32. package/components/alert/alert.css +1 -1
  33. package/components/anchor-bar/anchor-bar.a2ui.json +1 -0
  34. package/components/aside/aside.a2ui.json +1 -0
  35. package/components/avatar/avatar-group.a2ui.json +7 -1
  36. package/components/avatar/avatar-group.yaml +1 -0
  37. package/components/avatar/avatar.a2ui.json +12 -11
  38. package/components/avatar/avatar.d.ts +1 -1
  39. package/components/avatar/avatar.yaml +4 -4
  40. package/components/badge/badge.a2ui.json +1 -0
  41. package/components/block/block.a2ui.json +1 -0
  42. package/components/blockquote/blockquote.a2ui.json +1 -0
  43. package/components/breadcrumb/breadcrumb.a2ui.json +1 -0
  44. package/components/button/button.a2ui.json +1 -3
  45. package/components/button/button.yaml +1 -3
  46. package/components/calendar-grid/calendar-grid.a2ui.json +1 -0
  47. package/components/calendar-grid/calendar-grid.class.js +2 -1
  48. package/components/calendar-picker/calendar-picker.a2ui.json +143 -24
  49. package/components/calendar-picker/calendar-picker.class.js +490 -197
  50. package/components/calendar-picker/calendar-picker.css +120 -171
  51. package/components/calendar-picker/calendar-picker.yaml +225 -47
  52. package/components/canvas/canvas.a2ui.json +6 -5
  53. package/components/canvas/canvas.d.ts +37 -0
  54. package/components/canvas/canvas.js +72 -3
  55. package/components/canvas/canvas.yaml +6 -2
  56. package/components/card/card.a2ui.json +25 -2
  57. package/components/card/card.class.js +3 -0
  58. package/components/card/card.css +31 -1
  59. package/components/card/card.d.ts +2 -2
  60. package/components/card/card.examples.md +3 -3
  61. package/components/card/card.yaml +28 -4
  62. package/components/chart/chart.a2ui.json +27 -7
  63. package/components/chart/chart.class.js +64 -22
  64. package/components/chart/chart.css +6 -4
  65. package/components/chart/chart.d.ts +10 -4
  66. package/components/chart/chart.yaml +40 -6
  67. package/components/chart-legend/chart-legend.a2ui.json +7 -1
  68. package/components/chart-legend/chart-legend.class.js +59 -6
  69. package/components/chart-legend/chart-legend.css +5 -2
  70. package/components/chart-legend/chart-legend.d.ts +3 -1
  71. package/components/chart-legend/chart-legend.yaml +15 -1
  72. package/components/chat-thread/chat-input.a2ui.json +1 -0
  73. package/components/chat-thread/chat-thread.a2ui.json +10 -9
  74. package/components/chat-thread/chat-thread.yaml +13 -20
  75. package/components/check/check.a2ui.json +10 -9
  76. package/components/check/check.yaml +4 -4
  77. package/components/code/code.a2ui.json +1 -0
  78. package/components/col/col.a2ui.json +1 -0
  79. package/components/color-area/color-area.a2ui.json +148 -0
  80. package/components/color-area/color-area.class.js +657 -0
  81. package/components/color-area/color-area.css +188 -0
  82. package/components/color-area/color-area.d.ts +66 -0
  83. package/components/color-area/color-area.examples.md +19 -0
  84. package/components/color-area/color-area.js +17 -0
  85. package/components/color-area/color-area.yaml +183 -0
  86. package/components/color-input/color-input.a2ui.json +6 -5
  87. package/components/color-input/color-input.class.js +9 -6
  88. package/components/color-input/color-input.css +1 -1
  89. package/components/color-input/color-input.js +2 -2
  90. package/components/color-input/color-input.yaml +14 -12
  91. package/components/color-picker/color-picker.a2ui.json +16 -12
  92. package/components/color-picker/color-picker.class.js +24 -633
  93. package/components/color-picker/color-picker.css +14 -182
  94. package/components/color-picker/color-picker.yaml +41 -41
  95. package/components/combobox/combobox.a2ui.json +3 -2
  96. package/components/combobox/combobox.yaml +2 -2
  97. package/components/command/command.a2ui.json +12 -10
  98. package/components/command/command.class.js +3 -2
  99. package/components/command/command.yaml +17 -4
  100. package/components/context-menu/context-menu.a2ui.json +1 -0
  101. package/components/date-range-picker/date-range-picker.a2ui.json +2 -1
  102. package/components/date-range-picker/date-range-picker.yaml +1 -1
  103. package/components/datetime-picker/datetime-picker.a2ui.json +15 -108
  104. package/components/datetime-picker/datetime-picker.class.js +37 -690
  105. package/components/datetime-picker/datetime-picker.css +11 -183
  106. package/components/datetime-picker/datetime-picker.d.ts +4 -5
  107. package/components/datetime-picker/datetime-picker.yaml +44 -135
  108. package/components/demo-toggle/demo-toggle.a2ui.json +1 -0
  109. package/components/demo-toggle/demo-toggle.css +1 -1
  110. package/components/description-list/description-list.a2ui.json +2 -1
  111. package/components/description-list/description-list.css +1 -1
  112. package/components/description-list/description-list.d.ts +1 -1
  113. package/components/description-list/description-list.yaml +1 -1
  114. package/components/display-field/display-field.a2ui.json +1 -0
  115. package/components/divider/divider.a2ui.json +1 -0
  116. package/components/drawer/drawer.a2ui.json +1 -3
  117. package/components/drawer/drawer.css +1 -1
  118. package/components/drawer/drawer.yaml +0 -2
  119. package/components/drilldown/drilldown.a2ui.json +22 -20
  120. package/components/drilldown/drilldown.class.js +4 -3
  121. package/components/drilldown/drilldown.css +6 -6
  122. package/components/drilldown/drilldown.yaml +40 -9
  123. package/components/embed/embed.a2ui.json +6 -5
  124. package/components/embed/embed.yaml +2 -2
  125. package/components/empty-state/empty-state.a2ui.json +1 -0
  126. package/components/feed/feed-item.a2ui.json +25 -5
  127. package/components/feed/feed-item.yaml +28 -7
  128. package/components/feed/feed.a2ui.json +9 -2
  129. package/components/feed/feed.class.js +19 -12
  130. package/components/feed/feed.css +8 -8
  131. package/components/feed/feed.yaml +14 -1
  132. package/components/field/field.a2ui.json +2 -1
  133. package/components/field/field.class.js +4 -1
  134. package/components/field/field.examples.md +1 -1
  135. package/components/field/field.yaml +1 -1
  136. package/components/fields/fields.a2ui.json +1 -0
  137. package/components/fields/fields.examples.md +1 -1
  138. package/components/footer/footer.a2ui.json +1 -0
  139. package/components/frame/frame.a2ui.json +1 -0
  140. package/components/grid/grid.a2ui.json +1 -0
  141. package/components/header/header.a2ui.json +3 -2
  142. package/components/header/header.yaml +3 -3
  143. package/components/heatmap/heatmap.a2ui.json +2 -1
  144. package/components/heatmap/heatmap.class.js +1 -1
  145. package/components/heatmap/heatmap.css +4 -4
  146. package/components/heatmap/heatmap.yaml +1 -1
  147. package/components/icon/icon.a2ui.json +1 -0
  148. package/components/image/image.a2ui.json +28 -14
  149. package/components/image/image.class.js +38 -23
  150. package/components/image/image.css +18 -8
  151. package/components/image/image.d.ts +2 -2
  152. package/components/image/image.examples.md +3 -3
  153. package/components/image/image.yaml +23 -7
  154. package/components/index.js +1 -0
  155. package/components/inline-edit/inline-edit.a2ui.json +1 -0
  156. package/components/inline-message/inline-message.a2ui.json +3 -1
  157. package/components/inline-message/inline-message.class.js +3 -1
  158. package/components/inline-message/inline-message.d.ts +2 -2
  159. package/components/inline-message/inline-message.yaml +2 -1
  160. package/components/input/input.a2ui.json +66 -16
  161. package/components/input/input.class.js +64 -7
  162. package/components/input/input.css +14 -14
  163. package/components/input/input.d.ts +9 -4
  164. package/components/input/input.yaml +83 -10
  165. package/components/inspector/inspector.a2ui.json +1 -0
  166. package/components/integration-card/integration-card.a2ui.json +1 -0
  167. package/components/integration-card/integration-card.examples.md +2 -1
  168. package/components/kbd/kbd.a2ui.json +1 -0
  169. package/components/link/link.a2ui.json +2 -1
  170. package/components/link/link.yaml +1 -1
  171. package/components/list/list-item.a2ui.json +9 -0
  172. package/components/list/list-item.yaml +12 -0
  173. package/components/list/list.a2ui.json +9 -3
  174. package/components/list/list.class.js +14 -1
  175. package/components/list/list.css +12 -1
  176. package/components/list/list.d.ts +7 -5
  177. package/components/list/list.yaml +16 -6
  178. package/components/list-window/list-window.a2ui.json +1 -0
  179. package/components/list-window/list-window.class.js +2 -1
  180. package/components/loading-overlay/loading-overlay.a2ui.json +1 -0
  181. package/components/mark/mark.a2ui.json +2 -1
  182. package/components/mark/mark.yaml +1 -1
  183. package/components/menu/menu-divider.a2ui.json +1 -0
  184. package/components/menu/menu-item.a2ui.json +11 -4
  185. package/components/menu/menu-item.yaml +30 -3
  186. package/components/menu/menu-label.a2ui.json +1 -0
  187. package/components/menu/menu.a2ui.json +3 -2
  188. package/components/menu/menu.class.js +36 -8
  189. package/components/menu/menu.d.ts +5 -3
  190. package/components/menu/menu.yaml +3 -3
  191. package/components/modal/modal.a2ui.json +1 -0
  192. package/components/nav/nav.a2ui.json +1 -0
  193. package/components/nav/nav.class.js +14 -3
  194. package/components/nav-group/nav-group.a2ui.json +1 -0
  195. package/components/nav-group/nav-group.class.js +3 -1
  196. package/components/nav-item/nav-item.a2ui.json +1 -0
  197. package/components/noodles/noodles.a2ui.json +1 -0
  198. package/components/noodles/noodles.class.js +5 -1
  199. package/components/number-format/number-format.a2ui.json +1 -0
  200. package/components/option-card/option-card.a2ui.json +1 -0
  201. package/components/otp-input/otp-input.a2ui.json +3 -2
  202. package/components/otp-input/otp-input.yaml +9 -2
  203. package/components/page/page.a2ui.json +13 -0
  204. package/components/page/page.d.ts +1 -1
  205. package/components/page/page.yaml +1 -0
  206. package/components/pagination/pagination.a2ui.json +1 -0
  207. package/components/pagination/pagination.class.js +3 -2
  208. package/components/pane/pane.a2ui.json +17 -1
  209. package/components/pane/pane.class.js +35 -6
  210. package/components/pane/pane.css +17 -12
  211. package/components/pane/pane.d.ts +10 -7
  212. package/components/pane/pane.yaml +18 -1
  213. package/components/password-strength/password-strength.a2ui.json +1 -0
  214. package/components/pipeline-status/pipeline-status.a2ui.json +1 -0
  215. package/components/popover/popover.a2ui.json +7 -6
  216. package/components/popover/popover.class.js +2 -2
  217. package/components/popover/popover.d.ts +2 -2
  218. package/components/popover/popover.yaml +4 -4
  219. package/components/preview/preview.a2ui.json +1 -0
  220. package/components/preview/preview.class.js +5 -1
  221. package/components/progress/progress.a2ui.json +47 -24
  222. package/components/progress/progress.class.js +66 -11
  223. package/components/progress/progress.css +44 -26
  224. package/components/progress/progress.d.ts +7 -5
  225. package/components/progress/progress.examples.md +2 -2
  226. package/components/progress/progress.yaml +235 -53
  227. package/components/progress-row/progress-row.a2ui.json +16 -12
  228. package/components/progress-row/progress-row.d.ts +2 -2
  229. package/components/progress-row/progress-row.examples.md +2 -14
  230. package/components/progress-row/progress-row.yaml +28 -36
  231. package/components/qr-code/qr-code.a2ui.json +3 -2
  232. package/components/qr-code/qr-code.class.js +4 -4
  233. package/components/qr-code/qr-code.css +1 -1
  234. package/components/qr-code/qr-code.yaml +5 -3
  235. package/components/radio/radio.a2ui.json +8 -7
  236. package/components/radio/radio.class.js +8 -0
  237. package/components/radio/radio.yaml +3 -3
  238. package/components/radio-group/radio-group.a2ui.json +5 -3
  239. package/components/radio-group/radio-group.class.js +11 -0
  240. package/components/radio-group/radio-group.yaml +7 -1
  241. package/components/range/range.a2ui.json +6 -0
  242. package/components/range/range.class.js +2 -2
  243. package/components/range/range.css +2 -2
  244. package/components/range/range.yaml +3 -0
  245. package/components/rating/rating.a2ui.json +1 -0
  246. package/components/relative-time/relative-time.a2ui.json +1 -0
  247. package/components/richtext/richtext.a2ui.json +2 -1
  248. package/components/richtext/richtext.yaml +1 -1
  249. package/components/row/row.a2ui.json +1 -0
  250. package/components/search/search.a2ui.json +1 -0
  251. package/components/search/search.class.js +4 -1
  252. package/components/section/section.a2ui.json +1 -0
  253. package/components/segment/segment.a2ui.json +21 -10
  254. package/components/segment/segment.css +15 -0
  255. package/components/segment/segment.d.ts +2 -1
  256. package/components/segment/segment.yaml +20 -13
  257. package/components/segmented/segmented.a2ui.json +36 -7
  258. package/components/segmented/segmented.class.js +113 -22
  259. package/components/segmented/segmented.css +3 -0
  260. package/components/segmented/segmented.d.ts +3 -1
  261. package/components/segmented/segmented.yaml +80 -8
  262. package/components/select/select.a2ui.json +18 -13
  263. package/components/select/select.class.js +61 -37
  264. package/components/select/select.css +15 -13
  265. package/components/select/select.yaml +18 -7
  266. package/components/skeleton/skeleton.a2ui.json +8 -7
  267. package/components/skeleton/skeleton.class.js +8 -7
  268. package/components/skeleton/skeleton.css +21 -6
  269. package/components/skeleton/skeleton.d.ts +2 -2
  270. package/components/skeleton/skeleton.examples.md +2 -2
  271. package/components/skeleton/skeleton.yaml +3 -2
  272. package/components/skip-nav/skip-nav.a2ui.json +1 -0
  273. package/components/slider/slider.a2ui.json +6 -0
  274. package/components/slider/slider.class.js +20 -3
  275. package/components/slider/slider.css +2 -2
  276. package/components/slider/slider.yaml +3 -0
  277. package/components/spinner/spinner.a2ui.json +1 -0
  278. package/components/stack/stack.a2ui.json +1 -0
  279. package/components/stat/stat.a2ui.json +1 -0
  280. package/components/stat/stat.js +2 -2
  281. package/components/step-progress/step-progress.a2ui.json +1 -0
  282. package/components/step-progress/step-progress.yaml +1 -1
  283. package/components/stepper/stepper-item.a2ui.json +7 -3
  284. package/components/stepper/stepper-item.yaml +15 -5
  285. package/components/stepper/stepper.a2ui.json +5 -1
  286. package/components/stepper/stepper.class.js +31 -16
  287. package/components/stepper/stepper.d.ts +1 -1
  288. package/components/stepper/stepper.yaml +4 -2
  289. package/components/stream/stream.a2ui.json +1 -0
  290. package/components/swatch/swatch.a2ui.json +1 -0
  291. package/components/swatch/swatch.yaml +1 -1
  292. package/components/swiper/swiper.a2ui.json +1 -0
  293. package/components/swiper/swiper.class.js +5 -1
  294. package/components/switch/switch.a2ui.json +12 -11
  295. package/components/switch/switch.css +1 -1
  296. package/components/switch/switch.yaml +6 -6
  297. package/components/table/table.a2ui.json +1 -0
  298. package/components/table/table.class.js +14 -12
  299. package/components/table/table.css +11 -9
  300. package/components/table-toolbar/table-toolbar.a2ui.json +1 -0
  301. package/components/table-toolbar/table-toolbar.class.js +53 -22
  302. package/components/table-toolbar/table-toolbar.css +1 -1
  303. package/components/tabs/tab.a2ui.json +9 -0
  304. package/components/tabs/tab.js +4 -0
  305. package/components/tabs/tab.yaml +15 -0
  306. package/components/tabs/tabs.a2ui.json +9 -4
  307. package/components/tabs/tabs.class.js +13 -1
  308. package/components/tabs/tabs.css +8 -0
  309. package/components/tabs/tabs.d.ts +2 -0
  310. package/components/tabs/tabs.yaml +9 -2
  311. package/components/tag/tag.a2ui.json +1 -0
  312. package/components/tags-input/tags-input.a2ui.json +22 -17
  313. package/components/tags-input/tags-input.class.js +13 -11
  314. package/components/tags-input/tags-input.css +10 -6
  315. package/components/tags-input/tags-input.d.ts +16 -7
  316. package/components/tags-input/tags-input.examples.md +2 -2
  317. package/components/tags-input/tags-input.yaml +25 -8
  318. package/components/text/text.a2ui.json +6 -5
  319. package/components/text/text.css +10 -5
  320. package/components/text/text.d.ts +2 -2
  321. package/components/text/text.yaml +9 -4
  322. package/components/textarea/textarea.a2ui.json +2 -1
  323. package/components/textarea/textarea.yaml +1 -1
  324. package/components/theme-provider/theme-provider.a2ui.json +2 -1
  325. package/components/theme-provider/theme-provider.d.ts +5 -3
  326. package/components/theme-provider/theme-provider.yaml +5 -3
  327. package/components/time-picker/time-picker.a2ui.json +1 -0
  328. package/components/time-picker/time-picker.class.js +4 -2
  329. package/components/timeline/timeline-item.a2ui.json +26 -3
  330. package/components/timeline/timeline-item.yaml +22 -7
  331. package/components/timeline/timeline.a2ui.json +4 -0
  332. package/components/timeline/timeline.class.js +29 -18
  333. package/components/timeline/timeline.d.ts +3 -3
  334. package/components/timeline/timeline.yaml +2 -0
  335. package/components/toast/toast.a2ui.json +10 -3
  336. package/components/toast/toast.yaml +20 -13
  337. package/components/toc/toc.a2ui.json +1 -0
  338. package/components/toggle-group/toggle-group.a2ui.json +7 -3
  339. package/components/toggle-group/toggle-group.class.js +40 -1
  340. package/components/toggle-group/toggle-group.css +6 -1
  341. package/components/toggle-group/toggle-group.d.ts +2 -2
  342. package/components/toggle-group/toggle-group.yaml +21 -12
  343. package/components/toggle-group/toggle-option.a2ui.json +7 -3
  344. package/components/toggle-group/toggle-option.yaml +13 -7
  345. package/components/toggle-scheme/toggle-scheme.a2ui.json +2 -1
  346. package/components/toggle-scheme/toggle-scheme.yaml +1 -1
  347. package/components/toolbar/toolbar-group.a2ui.json +1 -0
  348. package/components/toolbar/toolbar.a2ui.json +1 -0
  349. package/components/toolbar/toolbar.class.js +3 -0
  350. package/components/tooltip/tooltip.a2ui.json +1 -0
  351. package/components/tour/tour-step.a2ui.json +4 -0
  352. package/components/tour/tour-step.yaml +2 -0
  353. package/components/tour/tour.a2ui.json +4 -0
  354. package/components/tour/tour.yaml +2 -0
  355. package/components/tree/tree-item.a2ui.json +5 -0
  356. package/components/tree/tree-item.yaml +3 -0
  357. package/components/tree/tree.a2ui.json +4 -0
  358. package/components/tree/tree.class.js +2 -1
  359. package/components/tree/tree.yaml +2 -0
  360. package/components/upload/upload.a2ui.json +8 -1
  361. package/components/upload/upload.class.js +35 -5
  362. package/components/upload/upload.css +28 -0
  363. package/components/upload/upload.d.ts +16 -0
  364. package/components/upload/upload.yaml +27 -7
  365. package/components/visually-hidden/visually-hidden.a2ui.json +1 -0
  366. package/core/dom.d.ts +11 -0
  367. package/core/dom.js +34 -0
  368. package/core/form.js +7 -0
  369. package/core/icons.js +5 -0
  370. package/core/index.d.ts +1 -0
  371. package/core/index.js +1 -0
  372. package/core/responsive.js +16 -4
  373. package/core/template.js +2 -1
  374. package/custom-elements.json +710 -587
  375. package/dist/host.min.css +1 -1
  376. package/dist/host.sheet.js +1 -1
  377. package/dist/theme-provider.min.js +5 -5
  378. package/dist/web-components.min.css +1 -1
  379. package/dist/web-components.min.js +92 -105
  380. package/dist/web-components.sheet.js +1 -1
  381. package/index.d.ts +12 -1
  382. package/package.json +4 -2
  383. package/patterns/admin-shell/admin-shell.examples.html +2 -2
  384. package/patterns/conversion-funnel/conversion-funnel.examples.html +15 -15
  385. package/patterns/form-system/form-system.examples.html +1 -1
  386. package/patterns/inline-dialog/inline-dialog.examples.html +2 -2
  387. package/patterns/inline-dialog/inline-dialog.html +4 -0
  388. package/patterns/timezone-selector/timezone-selector.examples.html +1 -1
  389. package/patterns/timezone-selector/timezone-selector.html +2 -2
  390. package/styles/api/text.css +7 -0
  391. package/styles/components.css +1 -0
  392. package/traits/_catalog.json +129 -41
  393. package/traits/anchor-positioning/anchor-positioning.js +1 -0
  394. package/traits/announcer/announcer.js +1 -0
  395. package/traits/arrow-grid-nav/arrow-grid-nav.js +1 -0
  396. package/traits/attention-pulse/attention-pulse.js +1 -0
  397. package/traits/count-up/count-up.js +1 -0
  398. package/traits/define.js +78 -0
  399. package/traits/focus-restore/focus-restore.js +2 -1
  400. package/traits/haptic-feedback/haptic-feedback.js +1 -0
  401. package/traits/input-mask/input-mask.js +1 -0
  402. package/traits/intersection-observer/intersection-observer.js +1 -0
  403. package/traits/layout-animation/layout-animation.js +1 -0
  404. package/traits/noise-texture/noise-texture.js +1 -0
  405. package/traits/resize-observer/resize-observer.js +1 -0
  406. package/traits/scroll-progress/scroll-progress.js +1 -0
  407. package/traits/snap-to-grid/snap-to-grid.js +1 -0
  408. package/traits/sound-feedback/sound-feedback.js +1 -0
  409. package/traits/spring-animate/spring-animate.js +1 -0
  410. package/traits/validation/validation.js +1 -0
@@ -1,182 +1,14 @@
1
- @scope (color-picker-ui) {
2
- :where(:scope) {
3
- /* ── Tokens ── */
4
- --color-picker-gap: var(--a-space-2);
5
- --color-picker-area-height: 10rem;
6
- --color-picker-area-radius: var(--a-radius-md);
7
- --color-picker-track-height: 0.75rem;
8
- --color-picker-track-radius: var(--a-radius-full);
9
- --color-picker-thumb-size: 1.125rem;
10
- --color-picker-thumb-border: 2px solid var(--a-chrome-border);
11
- --color-picker-thumb-shadow: 0 0 0 1px var(--a-chrome-ring-subtle), 0 2px 4px var(--a-chrome-shadow-soft);
12
- --color-picker-font: var(--a-font-family-code);
13
- --color-picker-font-size: var(--a-ui-sm);
14
- --color-picker-fg: var(--md-sys-color-neutral-on-surface);
15
- --color-picker-label-fg: var(--a-fg-muted);
16
- --color-picker-border: var(--md-sys-color-neutral-outline-variant);
17
- --color-picker-output-bg: var(--a-bg-muted);
18
- --color-picker-output-radius: var(--a-radius-sm);
19
- --color-picker-fg-disabled: var(--a-ui-text-disabled);
20
-
21
- /* ── Spacing ── */
22
- --color-picker-gap-sm: var(--a-space-1);
23
- --color-picker-pad-sm: var(--a-space-2);
24
-
25
- /* ── Interactive ── */
26
- --color-picker-focus-color: var(--md-sys-color-primary);
27
- --color-picker-disabled-border: var(--md-sys-color-neutral-outline-variant);
28
-
29
- /* ── Transitions ── */
30
- --color-picker-duration: var(--a-duration-fast);
31
- --color-picker-easing: var(--a-easing);
32
- }
33
-
34
- :scope {
35
- box-sizing: border-box;
36
- display: flex;
37
- flex-direction: column;
38
- gap: var(--color-picker-gap);
39
- width: 100%;
40
- }
41
-
42
- /* ═══════ 2D Color Area ═══════ */
43
-
44
- [data-area] {
45
- position: relative;
46
- width: 100%;
47
- height: var(--color-picker-area-height);
48
- border-radius: var(--color-picker-area-radius);
49
- border: 1px solid var(--color-picker-border);
50
- overflow: hidden;
51
- cursor: crosshair;
52
- touch-action: none;
53
- }
54
-
55
- [data-area]:focus-visible {
56
- outline: 2px solid var(--color-picker-focus-color);
57
- outline-offset: 2px;
58
- }
59
-
60
- [data-area] canvas {
61
- image-rendering: auto;
62
- }
63
-
64
- [data-area-thumb] {
65
- position: absolute;
66
- width: var(--color-picker-thumb-size);
67
- height: var(--color-picker-thumb-size);
68
- border-radius: 50%;
69
- border: var(--color-picker-thumb-border);
70
- box-shadow: var(--color-picker-thumb-shadow);
71
- transform: translate(-50%, -50%);
72
- pointer-events: none;
73
- z-index: 1;
74
- }
75
-
76
- /* ═══════ Slider Rows (H / C / L) ═══════ */
77
-
78
- [data-sliders] {
79
- display: flex;
80
- flex-direction: column;
81
- gap: var(--color-picker-gap-sm);
82
- }
83
-
84
- /* ═══════ Hue Track ═══════ */
85
-
86
- [data-hue-track] {
87
- position: relative;
88
- width: 100%;
89
- height: var(--color-picker-track-height);
90
- border-radius: var(--color-picker-track-radius);
91
- cursor: pointer;
92
- touch-action: none;
93
- }
94
-
95
- [data-hue-track]:focus-visible {
96
- outline: 2px solid var(--color-picker-focus-color);
97
- outline-offset: 2px;
98
- }
99
-
100
- [data-hue-thumb] {
101
- position: absolute;
102
- top: 50%;
103
- width: var(--color-picker-thumb-size);
104
- height: var(--color-picker-thumb-size);
105
- border-radius: 50%;
106
- border: var(--color-picker-thumb-border);
107
- box-shadow: var(--color-picker-thumb-shadow);
108
- transform: translate(-50%, -50%);
109
- pointer-events: none;
110
- }
111
-
112
- /* ═══════ Output Values ═══════ */
113
-
114
- [data-output] {
115
- display: flex;
116
- flex-direction: column;
117
- gap: var(--color-picker-gap-sm);
118
- }
119
-
120
- [data-output-group] {
121
- display: flex;
122
- align-items: center;
123
- gap: var(--color-picker-gap-sm);
124
- padding: var(--color-picker-gap-sm) var(--color-picker-pad-sm);
125
- background: var(--color-picker-output-bg);
126
- border-radius: var(--color-picker-output-radius);
127
- }
128
-
129
- [data-output-value] {
130
- font-family: var(--color-picker-font);
131
- font-size: var(--color-picker-font-size);
132
- color: var(--color-picker-fg);
133
- user-select: all;
134
- -webkit-user-select: all;
135
- flex: 1;
136
- min-width: 0;
137
- overflow: hidden;
138
- text-overflow: ellipsis;
139
- white-space: nowrap;
140
- }
141
-
142
- /* Copy button */
143
- [data-copy] {
144
- flex-shrink: 0;
145
- display: flex;
146
- align-items: center;
147
- justify-content: center;
148
- background: none;
149
- border: none;
150
- padding: 0;
151
- cursor: pointer;
152
- color: var(--color-picker-label-fg);
153
- transition: color var(--color-picker-duration) var(--color-picker-easing);
154
- }
155
-
156
- [data-copy]:hover {
157
- color: var(--color-picker-fg);
158
- }
159
-
160
- [data-copy] icon-ui {
161
- --a-icon-size: var(--color-picker-font-size);
162
- }
163
-
164
- /* ═══════ Disabled ═══════ */
165
-
166
- :scope[disabled] {
167
- pointer-events: none;
168
- color: var(--color-picker-fg-disabled);
169
- }
170
- :scope[disabled] [data-area],
171
- :scope[disabled] [data-hue-track] {
172
- filter: grayscale(1);
173
- cursor: not-allowed;
174
- }
175
- :scope[disabled] slider-ui {
176
- --slider-fill-bg: var(--color-picker-disabled-border);
177
- --slider-thumb-bg: var(--color-picker-disabled-border);
178
- }
179
- :scope[disabled] [data-output-value] {
180
- color: var(--color-picker-fg-disabled);
181
- }
182
- }
1
+ /* `<color-picker-ui>` is DEPRECATED (ADR-0063, gh#1563) — a thin
2
+ * `UIColorArea` subclass (see color-picker.class.js), never its own
3
+ * independent implementation. Its visual contract lives entirely in
4
+ * ../color-area/color-area.css, whose `@scope (color-area-ui,
5
+ * color-picker-ui)` root and `:is(color-area-ui, color-picker-ui)`
6
+ * selectors already cover this tag — one styling source, not two files
7
+ * drifting apart (`@scope` matches by literal tag name, not JS prototype
8
+ * chain, so the alias tag has to be named in that scope root explicitly —
9
+ * same shape as calendar-picker.css's own `datetime-picker-ui` alias
10
+ * coverage). This file intentionally carries no rules of its own;
11
+ * `packages/web-components/styles/components.css` still imports it so the
12
+ * barrel's per-component import list stays complete and mechanical (no
13
+ * special-cased skip for a deprecated-but-still-shipping tag).
14
+ */
@@ -3,21 +3,38 @@
3
3
  $schema: ../../../../scripts/schemas/component.yaml.schema.json
4
4
  name: UIColorPicker
5
5
  tag: color-picker-ui
6
- status: stable
6
+ status: deprecated
7
7
  component: ColorPicker
8
8
  category: input
9
- version: 1
9
+ version: 2
10
10
  description: >-
11
- OKLCH-native color picker with 2D area and H/C/L sliders.
12
- Form-associated input emitting OKLCH color strings; canonical color
13
- authoring surface in the AdiaUI token system. Use for color input in
14
- design tools or theming UIs; for simple color swatches use <swatch-ui>
15
- or <color-input-ui> instead.
11
+ DEPRECATED (ADR-0063, gh#1563, gh#1377 B11) `-picker` is reserved for
12
+ the outer, trigger + popover, form-associated composite shape
13
+ (`calendar-picker-ui` / `date-range-picker-ui` / `datetime-picker-ui` /
14
+ `time-picker-ui`); `color-picker-ui` was the sole violator, playing
15
+ `calendar-grid-ui`'s inline-substrate role under a `-picker` name.
16
+ `<color-picker-ui>` is now a thin `UIColorArea` subclass (see
17
+ color-picker.class.js) rather than an independent implementation — every
18
+ prop/event/token is inherited unchanged from `<color-area-ui>`. Existing
19
+ markup keeps working, but new markup should reach for `<color-area-ui>`
20
+ directly. See `<color-area-ui>` for the full contract.
16
21
  # Per ADR-0027 — primitives that programmatically create other primitives
17
- # do NOT auto-import them. Consumer (or demo shell) must explicitly import.
22
+ # do NOT auto-import them. Consumer (or demo shell) must explicitly import
23
+ # the slider-ui module (same one <color-area-ui> itself needs — this alias
24
+ # inherits its render(), not just its class).
18
25
  composes:
19
26
  - slider-ui
20
27
  props:
28
+ # Every prop below is inherited VERBATIM from <color-area-ui> —
29
+ # documented here too (not just "see the base class") because a
30
+ # consumer scanning THIS tag's own catalog entry, or the a2ui pipeline
31
+ # generating THIS tag by name, needs the full contract without a second
32
+ # hop. audit-static-properties-vs-yaml.mjs's component-extends-component
33
+ # exemption (gh#1372/gh#1563) resolves this against <color-area-ui>'s
34
+ # own yaml, so re-declaring the inherited names here is documentation,
35
+ # not a second runtime contract. Nothing overrides a default here (the
36
+ # alias is byte-identical behavior; only the class/tag/component names
37
+ # differ), unlike datetime-picker-ui's own two overridden defaults.
21
38
  name:
22
39
  description: Form field name
23
40
  type: string
@@ -100,47 +117,29 @@ states:
100
117
  description: Non-interactive; dimmed.
101
118
  attribute: disabled
102
119
  traits: []
103
- tokens: {}
120
+ tokens: {} # No component-owned tokens — styling flows entirely through
121
+ # <color-area-ui>'s own --color-area-* custom properties.
104
122
  requiredIcons:
105
123
  - copy
106
124
  - check
107
125
  - warning
108
126
  a2ui:
109
127
  rules:
110
- - rule: 'OKLCH-native color picker with 2D color area + H/C/L sliders. Form-associated; emits OKLCH color strings.'
111
- reason: 'Canonical color-authoring surface.'
128
+ - rule: 'DEPRECATED prefer `{"component": "ColorArea"}` over `{"component": "ColorPicker"}`. Both render and behave identically; ColorPicker is a thin compatibility alias.'
129
+ reason: 'ADR-0063/gh#1377 B11 fold — steer new generation at the canonical primitive.'
112
130
  - rule: 'For simple color swatches (read-only display) use <swatch-ui>; for hex/rgb text input use <color-input-ui>.'
113
131
  reason: 'Surface boundary.'
114
- - rule: 'Output format defaults to oklch(); set format= to override (hex, rgb, hsl).'
115
- reason: 'Format knob.'
116
- anti_patterns: []
132
+ anti_patterns:
133
+ - wrong: |
134
+ {"component": "ColorPicker", "name": "brand"}
135
+ why: |
136
+ ColorPicker is deprecated (ADR-0063, gh#1563) — new generation should
137
+ reach for ColorArea instead.
138
+ fix: |
139
+ {"component": "ColorArea", "name": "brand"}
117
140
  examples:
118
- - name: color-picker-demo
119
- description: Color picker card with a color picker component for selecting colors with swatches.
120
- a2ui: >-
121
- [
122
- {
123
- "id": "root",
124
- "component": "Card",
125
- "children": [
126
- "sec"
127
- ]
128
- },
129
- {
130
- "id": "sec",
131
- "component": "Section",
132
- "children": [
133
- "cp"
134
- ]
135
- },
136
- {
137
- "id": "cp",
138
- "component": "ColorPicker",
139
- "value": "#6366f1"
140
- }
141
- ]
142
- - name: color-picker-panel
143
- description: Color picker with swatch selection in a card.
141
+ - name: color-picker-legacy
142
+ description: Deprecated tag prefer ColorArea's own "color-area-demo" example for NEW markup.
144
143
  a2ui: >-
145
144
  [
146
145
  {
@@ -169,7 +168,8 @@ keywords:
169
168
  - color
170
169
  - picker
171
170
  synonyms:
172
- color-picker: [color-canvas, color-surface, swatch-picker]
171
+ color-picker: [color-canvas, color-surface, swatch-picker, color-area]
173
172
  related:
173
+ - color-area
174
174
  - grid
175
175
  - button
@@ -138,8 +138,8 @@
138
138
  "wrong": "{\"component\": \"Combobox\", \"value\": \"xx\", \"options\": [{\"value\": \"us\", \"label\": \"United States\"}]}\n"
139
139
  },
140
140
  {
141
- "fix": "{\"component\": \"SegmentedControl\", \"options\": [{\"value\": \"a\", \"label\": \"A\"}, {\"value\": \"b\", \"label\": \"B\"}]}\n",
142
- "why": "Only 2 options. Combobox is overkill — use SegmentedControl or Radio.\n",
141
+ "fix": "{\"component\": \"Segmented\", \"children\": [{\"component\": \"Segment\", \"value\": \"a\", \"text\": \"A\"}, {\"component\": \"Segment\", \"value\": \"b\", \"text\": \"B\"}]}\n",
142
+ "why": "Only 2 options. Combobox is overkill — use Segmented or Radio.\n",
143
143
  "wrong": "{\"component\": \"Combobox\", \"options\": [{\"value\": \"a\", \"label\": \"A\"}, {\"value\": \"b\", \"label\": \"B\"}]}\n"
144
144
  },
145
145
  {
@@ -246,6 +246,7 @@
246
246
  "member-picker"
247
247
  ],
248
248
  "name": "UICombobox",
249
+ "parts": {},
249
250
  "related": [
250
251
  "select",
251
252
  "search",
@@ -297,9 +297,9 @@ anti_patterns:
297
297
  - wrong: |
298
298
  {"component": "Combobox", "options": [{"value": "a", "label": "A"}, {"value": "b", "label": "B"}]}
299
299
  why: |
300
- Only 2 options. Combobox is overkill — use SegmentedControl or Radio.
300
+ Only 2 options. Combobox is overkill — use Segmented or Radio.
301
301
  fix: |
302
- {"component": "SegmentedControl", "options": [{"value": "a", "label": "A"}, {"value": "b", "label": "B"}]}
302
+ {"component": "Segmented", "children": [{"component": "Segment", "value": "a", "text": "A"}, {"component": "Segment", "value": "b", "text": "B"}]}
303
303
  - wrong: |
304
304
  {"component": "Combobox", "multiple": true, "options": [...]}
305
305
  why: |
@@ -92,6 +92,17 @@
92
92
  "keybinding"
93
93
  ],
94
94
  "name": "UICommand",
95
+ "parts": {
96
+ "footer": {
97
+ "description": "Keyboard hint bar — template-owned anatomy part, not a light-DOM insertion point (gh#1454). render() unconditionally stamps a fixed `<footer>` with hard-coded kbd hints; no consumer override path exists in source."
98
+ },
99
+ "input": {
100
+ "description": "The auto-stamped search field — a contenteditable=\"plaintext-only\" span carrying role=\"combobox\" (per ADR-0025/ADR-0055; no native <input>). Internal only; not consumer-slottable — template-owned anatomy part, not a light-DOM insertion point (gh#1454)."
101
+ },
102
+ "list": {
103
+ "description": "Container for command items and groups — template-owned anatomy part, not a light-DOM insertion point (gh#1454). render() always populates it wholesale from `.options`/parsed `<option>` children; any pre-existing content is discarded, not adopted."
104
+ }
105
+ },
95
106
  "related": [
96
107
  "AdminCommand",
97
108
  "Menu",
@@ -100,16 +111,7 @@
100
111
  ],
101
112
  "slots": {
102
113
  "empty": {
103
- "description": "Empty state shown when no items match"
104
- },
105
- "footer": {
106
- "description": "Keyboard hint bar"
107
- },
108
- "input": {
109
- "description": "The auto-stamped search field — a contenteditable=\"plaintext-only\" span carrying role=\"combobox\" (per ADR-0025/ADR-0055; no native <input>). Internal only; not consumer-slottable."
110
- },
111
- "list": {
112
- "description": "Container for command items and groups"
114
+ "description": "Empty state shown when no items match. Consumer-supplied [slot=\"empty\"] content is captured before the internal shell renders and re-inserted — a genuine light-DOM insertion point."
113
115
  }
114
116
  },
115
117
  "states": [
@@ -13,6 +13,7 @@
13
13
 
14
14
  import { UIElement } from '../../core/element.js';
15
15
  import { logicalSlotted } from '../../core/logical-children.js';
16
+ import { isElement } from '../../core/dom.js';
16
17
 
17
18
  function escapeHTML(s) {
18
19
  return String(s).replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
@@ -69,14 +70,14 @@ export class UICommand extends UIElement {
69
70
  static #RECENTS_MAX = 3;
70
71
 
71
72
  #onListClick = (e) => {
72
- const el = e.target instanceof Element ? e.target.closest('[role="option"]:not([aria-disabled])') : null;
73
+ const el = isElement(e.target) ? e.target.closest('[role="option"]:not([aria-disabled])') : null;
73
74
  if (!el) return;
74
75
  const item = this.#itemByEl.get(el);
75
76
  if (item) this.#select(item);
76
77
  };
77
78
 
78
79
  #onListPointerOver = (e) => {
79
- const el = e.target instanceof Element ? e.target.closest('[role="option"]:not([aria-disabled])') : null;
80
+ const el = isElement(e.target) ? e.target.closest('[role="option"]:not([aria-disabled])') : null;
80
81
  if (!el) return;
81
82
  const idx = parseInt(el.dataset.idx);
82
83
  if (Number.isFinite(idx) && idx !== this.#activeIdx) this.#activate(idx);
@@ -64,16 +64,29 @@ events:
64
64
  description: Parent optgroup label (empty string when item has no group).
65
65
  slots:
66
66
  empty:
67
- description: Empty state shown when no items match
67
+ description: >-
68
+ Empty state shown when no items match. Consumer-supplied [slot="empty"]
69
+ content is captured before the internal shell renders and re-inserted —
70
+ a genuine light-DOM insertion point.
71
+ parts:
68
72
  footer:
69
- description: Keyboard hint bar
73
+ description: >-
74
+ Keyboard hint bar — template-owned anatomy part, not a light-DOM
75
+ insertion point (gh#1454). render() unconditionally stamps a fixed
76
+ `<footer>` with hard-coded kbd hints; no consumer override path exists
77
+ in source.
70
78
  input:
71
79
  description: >-
72
80
  The auto-stamped search field — a contenteditable="plaintext-only"
73
81
  span carrying role="combobox" (per ADR-0025/ADR-0055; no native
74
- <input>). Internal only; not consumer-slottable.
82
+ <input>). Internal only; not consumer-slottable — template-owned
83
+ anatomy part, not a light-DOM insertion point (gh#1454).
75
84
  list:
76
- description: Container for command items and groups
85
+ description: >-
86
+ Container for command items and groups — template-owned anatomy part,
87
+ not a light-DOM insertion point (gh#1454). render() always populates it
88
+ wholesale from `.options`/parsed `<option>` children; any pre-existing
89
+ content is discarded, not adopted.
77
90
  states:
78
91
  - name: idle
79
92
  description: Default, ready for interaction.
@@ -103,6 +103,7 @@
103
103
  "popup-menu"
104
104
  ],
105
105
  "name": "UIContextMenu",
106
+ "parts": {},
106
107
  "related": [
107
108
  "menu",
108
109
  "menu-item",
@@ -192,6 +192,7 @@
192
192
  "reporting-period"
193
193
  ],
194
194
  "name": "UIDateRangePicker",
195
+ "parts": {},
195
196
  "related": [
196
197
  "calendar-picker",
197
198
  "popover",
@@ -301,7 +302,7 @@
301
302
  "default": "var(--a-space-2)"
302
303
  },
303
304
  "--date-range-picker-selected-bg": {
304
- "description": "Selected day-cell background (cascaded into the inner calendar via --calendar-picker-day-bg-selected).",
305
+ "description": "Selected day-cell background (cascaded into the inner calendar via --calendar-grid-day-bg-selected).",
305
306
  "default": "var(--md-sys-color-primary)"
306
307
  },
307
308
  "--date-range-picker-selected-fg": {
@@ -181,7 +181,7 @@ tokens:
181
181
  description: Preset row background on hover.
182
182
  default: var(--a-bg-hover)
183
183
  --date-range-picker-selected-bg:
184
- description: Selected day-cell background (cascaded into the inner calendar via --calendar-picker-day-bg-selected).
184
+ description: Selected day-cell background (cascaded into the inner calendar via --calendar-grid-day-bg-selected).
185
185
  default: var(--md-sys-color-primary)
186
186
  --date-range-picker-selected-fg:
187
187
  description: Selected day-cell foreground.