@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.
- package/CHANGELOG.md +71 -3
- package/MIGRATION.md +1229 -16
- package/README.md +25 -30
- package/USAGE.md +30 -4
- package/bin/audit-template-children.mjs +556 -0
- package/components/accordion/accordion-item.a2ui.json +4 -0
- package/components/accordion/accordion-item.yaml +2 -0
- package/components/accordion/accordion.a2ui.json +4 -0
- package/components/accordion/accordion.yaml +2 -0
- package/components/action-list/action-item.a2ui.json +29 -2
- package/components/action-list/action-item.yaml +46 -3
- package/components/action-list/action-list.a2ui.json +6 -1
- package/components/action-list/action-list.class.js +114 -11
- package/components/action-list/action-list.css +43 -3
- package/components/action-list/action-list.d.ts +6 -2
- package/components/action-list/action-list.yaml +5 -0
- package/components/adia-mark/adia-mark.a2ui.json +1 -0
- package/components/adia-wordmark/adia-wordmark.a2ui.json +1 -0
- package/components/agent-artifact/agent-artifact.a2ui.json +1 -0
- package/components/agent-feedback-bar/agent-feedback-bar.a2ui.json +6 -5
- package/components/agent-feedback-bar/agent-feedback-bar.yaml +6 -2
- package/components/agent-questions/agent-questions.a2ui.json +1 -0
- package/components/agent-reasoning/agent-reasoning.a2ui.json +6 -5
- package/components/agent-reasoning/agent-reasoning.yaml +6 -2
- package/components/agent-suggestions/agent-suggestions.a2ui.json +11 -2
- package/components/agent-suggestions/agent-suggestions.class.js +2 -1
- package/components/agent-suggestions/agent-suggestions.d.ts +4 -4
- package/components/agent-suggestions/agent-suggestions.yaml +4 -2
- package/components/agent-trace/agent-trace.a2ui.json +6 -5
- package/components/agent-trace/agent-trace.yaml +6 -2
- package/components/alert/alert.a2ui.json +1 -0
- package/components/alert/alert.css +1 -1
- package/components/anchor-bar/anchor-bar.a2ui.json +1 -0
- package/components/aside/aside.a2ui.json +1 -0
- package/components/avatar/avatar-group.a2ui.json +7 -1
- package/components/avatar/avatar-group.yaml +1 -0
- package/components/avatar/avatar.a2ui.json +12 -11
- package/components/avatar/avatar.d.ts +1 -1
- package/components/avatar/avatar.yaml +4 -4
- package/components/badge/badge.a2ui.json +1 -0
- package/components/block/block.a2ui.json +1 -0
- package/components/blockquote/blockquote.a2ui.json +1 -0
- package/components/breadcrumb/breadcrumb.a2ui.json +1 -0
- package/components/button/button.a2ui.json +1 -3
- package/components/button/button.yaml +1 -3
- package/components/calendar-grid/calendar-grid.a2ui.json +1 -0
- package/components/calendar-grid/calendar-grid.class.js +2 -1
- package/components/calendar-picker/calendar-picker.a2ui.json +143 -24
- package/components/calendar-picker/calendar-picker.class.js +490 -197
- package/components/calendar-picker/calendar-picker.css +120 -171
- package/components/calendar-picker/calendar-picker.yaml +225 -47
- package/components/canvas/canvas.a2ui.json +6 -5
- package/components/canvas/canvas.d.ts +37 -0
- package/components/canvas/canvas.js +72 -3
- package/components/canvas/canvas.yaml +6 -2
- package/components/card/card.a2ui.json +25 -2
- package/components/card/card.class.js +3 -0
- package/components/card/card.css +31 -1
- package/components/card/card.d.ts +2 -2
- package/components/card/card.examples.md +3 -3
- package/components/card/card.yaml +28 -4
- package/components/chart/chart.a2ui.json +27 -7
- package/components/chart/chart.class.js +64 -22
- package/components/chart/chart.css +6 -4
- package/components/chart/chart.d.ts +10 -4
- package/components/chart/chart.yaml +40 -6
- package/components/chart-legend/chart-legend.a2ui.json +7 -1
- package/components/chart-legend/chart-legend.class.js +59 -6
- package/components/chart-legend/chart-legend.css +5 -2
- package/components/chart-legend/chart-legend.d.ts +3 -1
- package/components/chart-legend/chart-legend.yaml +15 -1
- package/components/chat-thread/chat-input.a2ui.json +1 -0
- package/components/chat-thread/chat-thread.a2ui.json +10 -9
- package/components/chat-thread/chat-thread.yaml +13 -20
- package/components/check/check.a2ui.json +10 -9
- package/components/check/check.yaml +4 -4
- package/components/code/code.a2ui.json +1 -0
- package/components/col/col.a2ui.json +1 -0
- package/components/color-area/color-area.a2ui.json +148 -0
- package/components/color-area/color-area.class.js +657 -0
- package/components/color-area/color-area.css +188 -0
- package/components/color-area/color-area.d.ts +66 -0
- package/components/color-area/color-area.examples.md +19 -0
- package/components/color-area/color-area.js +17 -0
- package/components/color-area/color-area.yaml +183 -0
- package/components/color-input/color-input.a2ui.json +6 -5
- package/components/color-input/color-input.class.js +9 -6
- package/components/color-input/color-input.css +1 -1
- package/components/color-input/color-input.js +2 -2
- package/components/color-input/color-input.yaml +14 -12
- package/components/color-picker/color-picker.a2ui.json +16 -12
- package/components/color-picker/color-picker.class.js +24 -633
- package/components/color-picker/color-picker.css +14 -182
- package/components/color-picker/color-picker.yaml +41 -41
- package/components/combobox/combobox.a2ui.json +3 -2
- package/components/combobox/combobox.yaml +2 -2
- package/components/command/command.a2ui.json +12 -10
- package/components/command/command.class.js +3 -2
- package/components/command/command.yaml +17 -4
- package/components/context-menu/context-menu.a2ui.json +1 -0
- package/components/date-range-picker/date-range-picker.a2ui.json +2 -1
- package/components/date-range-picker/date-range-picker.yaml +1 -1
- package/components/datetime-picker/datetime-picker.a2ui.json +15 -108
- package/components/datetime-picker/datetime-picker.class.js +37 -690
- package/components/datetime-picker/datetime-picker.css +11 -183
- package/components/datetime-picker/datetime-picker.d.ts +4 -5
- package/components/datetime-picker/datetime-picker.yaml +44 -135
- package/components/demo-toggle/demo-toggle.a2ui.json +1 -0
- package/components/demo-toggle/demo-toggle.css +1 -1
- package/components/description-list/description-list.a2ui.json +2 -1
- package/components/description-list/description-list.css +1 -1
- package/components/description-list/description-list.d.ts +1 -1
- package/components/description-list/description-list.yaml +1 -1
- package/components/display-field/display-field.a2ui.json +1 -0
- package/components/divider/divider.a2ui.json +1 -0
- package/components/drawer/drawer.a2ui.json +1 -3
- package/components/drawer/drawer.css +1 -1
- package/components/drawer/drawer.yaml +0 -2
- package/components/drilldown/drilldown.a2ui.json +22 -20
- package/components/drilldown/drilldown.class.js +4 -3
- package/components/drilldown/drilldown.css +6 -6
- package/components/drilldown/drilldown.yaml +40 -9
- package/components/embed/embed.a2ui.json +6 -5
- package/components/embed/embed.yaml +2 -2
- package/components/empty-state/empty-state.a2ui.json +1 -0
- package/components/feed/feed-item.a2ui.json +25 -5
- package/components/feed/feed-item.yaml +28 -7
- package/components/feed/feed.a2ui.json +9 -2
- package/components/feed/feed.class.js +19 -12
- package/components/feed/feed.css +8 -8
- package/components/feed/feed.yaml +14 -1
- package/components/field/field.a2ui.json +2 -1
- package/components/field/field.class.js +4 -1
- package/components/field/field.examples.md +1 -1
- package/components/field/field.yaml +1 -1
- package/components/fields/fields.a2ui.json +1 -0
- package/components/fields/fields.examples.md +1 -1
- package/components/footer/footer.a2ui.json +1 -0
- package/components/frame/frame.a2ui.json +1 -0
- package/components/grid/grid.a2ui.json +1 -0
- package/components/header/header.a2ui.json +3 -2
- package/components/header/header.yaml +3 -3
- package/components/heatmap/heatmap.a2ui.json +2 -1
- package/components/heatmap/heatmap.class.js +1 -1
- package/components/heatmap/heatmap.css +4 -4
- package/components/heatmap/heatmap.yaml +1 -1
- package/components/icon/icon.a2ui.json +1 -0
- package/components/image/image.a2ui.json +28 -14
- package/components/image/image.class.js +38 -23
- package/components/image/image.css +18 -8
- package/components/image/image.d.ts +2 -2
- package/components/image/image.examples.md +3 -3
- package/components/image/image.yaml +23 -7
- package/components/index.js +1 -0
- package/components/inline-edit/inline-edit.a2ui.json +1 -0
- package/components/inline-message/inline-message.a2ui.json +3 -1
- package/components/inline-message/inline-message.class.js +3 -1
- package/components/inline-message/inline-message.d.ts +2 -2
- package/components/inline-message/inline-message.yaml +2 -1
- package/components/input/input.a2ui.json +66 -16
- package/components/input/input.class.js +64 -7
- package/components/input/input.css +14 -14
- package/components/input/input.d.ts +9 -4
- package/components/input/input.yaml +83 -10
- package/components/inspector/inspector.a2ui.json +1 -0
- package/components/integration-card/integration-card.a2ui.json +1 -0
- package/components/integration-card/integration-card.examples.md +2 -1
- package/components/kbd/kbd.a2ui.json +1 -0
- package/components/link/link.a2ui.json +2 -1
- package/components/link/link.yaml +1 -1
- package/components/list/list-item.a2ui.json +9 -0
- package/components/list/list-item.yaml +12 -0
- package/components/list/list.a2ui.json +9 -3
- package/components/list/list.class.js +14 -1
- package/components/list/list.css +12 -1
- package/components/list/list.d.ts +7 -5
- package/components/list/list.yaml +16 -6
- package/components/list-window/list-window.a2ui.json +1 -0
- package/components/list-window/list-window.class.js +2 -1
- package/components/loading-overlay/loading-overlay.a2ui.json +1 -0
- package/components/mark/mark.a2ui.json +2 -1
- package/components/mark/mark.yaml +1 -1
- package/components/menu/menu-divider.a2ui.json +1 -0
- package/components/menu/menu-item.a2ui.json +11 -4
- package/components/menu/menu-item.yaml +30 -3
- package/components/menu/menu-label.a2ui.json +1 -0
- package/components/menu/menu.a2ui.json +3 -2
- package/components/menu/menu.class.js +36 -8
- package/components/menu/menu.d.ts +5 -3
- package/components/menu/menu.yaml +3 -3
- package/components/modal/modal.a2ui.json +1 -0
- package/components/nav/nav.a2ui.json +1 -0
- package/components/nav/nav.class.js +14 -3
- package/components/nav-group/nav-group.a2ui.json +1 -0
- package/components/nav-group/nav-group.class.js +3 -1
- package/components/nav-item/nav-item.a2ui.json +1 -0
- package/components/noodles/noodles.a2ui.json +1 -0
- package/components/noodles/noodles.class.js +5 -1
- package/components/number-format/number-format.a2ui.json +1 -0
- package/components/option-card/option-card.a2ui.json +1 -0
- package/components/otp-input/otp-input.a2ui.json +3 -2
- package/components/otp-input/otp-input.yaml +9 -2
- package/components/page/page.a2ui.json +13 -0
- package/components/page/page.d.ts +1 -1
- package/components/page/page.yaml +1 -0
- package/components/pagination/pagination.a2ui.json +1 -0
- package/components/pagination/pagination.class.js +3 -2
- package/components/pane/pane.a2ui.json +17 -1
- package/components/pane/pane.class.js +35 -6
- package/components/pane/pane.css +17 -12
- package/components/pane/pane.d.ts +10 -7
- package/components/pane/pane.yaml +18 -1
- package/components/password-strength/password-strength.a2ui.json +1 -0
- package/components/pipeline-status/pipeline-status.a2ui.json +1 -0
- package/components/popover/popover.a2ui.json +7 -6
- package/components/popover/popover.class.js +2 -2
- package/components/popover/popover.d.ts +2 -2
- package/components/popover/popover.yaml +4 -4
- package/components/preview/preview.a2ui.json +1 -0
- package/components/preview/preview.class.js +5 -1
- package/components/progress/progress.a2ui.json +47 -24
- package/components/progress/progress.class.js +66 -11
- package/components/progress/progress.css +44 -26
- package/components/progress/progress.d.ts +7 -5
- package/components/progress/progress.examples.md +2 -2
- package/components/progress/progress.yaml +235 -53
- package/components/progress-row/progress-row.a2ui.json +16 -12
- package/components/progress-row/progress-row.d.ts +2 -2
- package/components/progress-row/progress-row.examples.md +2 -14
- package/components/progress-row/progress-row.yaml +28 -36
- package/components/qr-code/qr-code.a2ui.json +3 -2
- package/components/qr-code/qr-code.class.js +4 -4
- package/components/qr-code/qr-code.css +1 -1
- package/components/qr-code/qr-code.yaml +5 -3
- package/components/radio/radio.a2ui.json +8 -7
- package/components/radio/radio.class.js +8 -0
- package/components/radio/radio.yaml +3 -3
- package/components/radio-group/radio-group.a2ui.json +5 -3
- package/components/radio-group/radio-group.class.js +11 -0
- package/components/radio-group/radio-group.yaml +7 -1
- package/components/range/range.a2ui.json +6 -0
- package/components/range/range.class.js +2 -2
- package/components/range/range.css +2 -2
- package/components/range/range.yaml +3 -0
- package/components/rating/rating.a2ui.json +1 -0
- package/components/relative-time/relative-time.a2ui.json +1 -0
- package/components/richtext/richtext.a2ui.json +2 -1
- package/components/richtext/richtext.yaml +1 -1
- package/components/row/row.a2ui.json +1 -0
- package/components/search/search.a2ui.json +1 -0
- package/components/search/search.class.js +4 -1
- package/components/section/section.a2ui.json +1 -0
- package/components/segment/segment.a2ui.json +21 -10
- package/components/segment/segment.css +15 -0
- package/components/segment/segment.d.ts +2 -1
- package/components/segment/segment.yaml +20 -13
- package/components/segmented/segmented.a2ui.json +36 -7
- package/components/segmented/segmented.class.js +113 -22
- package/components/segmented/segmented.css +3 -0
- package/components/segmented/segmented.d.ts +3 -1
- package/components/segmented/segmented.yaml +80 -8
- package/components/select/select.a2ui.json +18 -13
- package/components/select/select.class.js +61 -37
- package/components/select/select.css +15 -13
- package/components/select/select.yaml +18 -7
- package/components/skeleton/skeleton.a2ui.json +8 -7
- package/components/skeleton/skeleton.class.js +8 -7
- package/components/skeleton/skeleton.css +21 -6
- package/components/skeleton/skeleton.d.ts +2 -2
- package/components/skeleton/skeleton.examples.md +2 -2
- package/components/skeleton/skeleton.yaml +3 -2
- package/components/skip-nav/skip-nav.a2ui.json +1 -0
- package/components/slider/slider.a2ui.json +6 -0
- package/components/slider/slider.class.js +20 -3
- package/components/slider/slider.css +2 -2
- package/components/slider/slider.yaml +3 -0
- package/components/spinner/spinner.a2ui.json +1 -0
- package/components/stack/stack.a2ui.json +1 -0
- package/components/stat/stat.a2ui.json +1 -0
- package/components/stat/stat.js +2 -2
- package/components/step-progress/step-progress.a2ui.json +1 -0
- package/components/step-progress/step-progress.yaml +1 -1
- package/components/stepper/stepper-item.a2ui.json +7 -3
- package/components/stepper/stepper-item.yaml +15 -5
- package/components/stepper/stepper.a2ui.json +5 -1
- package/components/stepper/stepper.class.js +31 -16
- package/components/stepper/stepper.d.ts +1 -1
- package/components/stepper/stepper.yaml +4 -2
- package/components/stream/stream.a2ui.json +1 -0
- package/components/swatch/swatch.a2ui.json +1 -0
- package/components/swatch/swatch.yaml +1 -1
- package/components/swiper/swiper.a2ui.json +1 -0
- package/components/swiper/swiper.class.js +5 -1
- package/components/switch/switch.a2ui.json +12 -11
- package/components/switch/switch.css +1 -1
- package/components/switch/switch.yaml +6 -6
- package/components/table/table.a2ui.json +1 -0
- package/components/table/table.class.js +14 -12
- package/components/table/table.css +11 -9
- package/components/table-toolbar/table-toolbar.a2ui.json +1 -0
- package/components/table-toolbar/table-toolbar.class.js +53 -22
- package/components/table-toolbar/table-toolbar.css +1 -1
- package/components/tabs/tab.a2ui.json +9 -0
- package/components/tabs/tab.js +4 -0
- package/components/tabs/tab.yaml +15 -0
- package/components/tabs/tabs.a2ui.json +9 -4
- package/components/tabs/tabs.class.js +13 -1
- package/components/tabs/tabs.css +8 -0
- package/components/tabs/tabs.d.ts +2 -0
- package/components/tabs/tabs.yaml +9 -2
- package/components/tag/tag.a2ui.json +1 -0
- package/components/tags-input/tags-input.a2ui.json +22 -17
- package/components/tags-input/tags-input.class.js +13 -11
- package/components/tags-input/tags-input.css +10 -6
- package/components/tags-input/tags-input.d.ts +16 -7
- package/components/tags-input/tags-input.examples.md +2 -2
- package/components/tags-input/tags-input.yaml +25 -8
- package/components/text/text.a2ui.json +6 -5
- package/components/text/text.css +10 -5
- package/components/text/text.d.ts +2 -2
- package/components/text/text.yaml +9 -4
- package/components/textarea/textarea.a2ui.json +2 -1
- package/components/textarea/textarea.yaml +1 -1
- package/components/theme-provider/theme-provider.a2ui.json +2 -1
- package/components/theme-provider/theme-provider.d.ts +5 -3
- package/components/theme-provider/theme-provider.yaml +5 -3
- package/components/time-picker/time-picker.a2ui.json +1 -0
- package/components/time-picker/time-picker.class.js +4 -2
- package/components/timeline/timeline-item.a2ui.json +26 -3
- package/components/timeline/timeline-item.yaml +22 -7
- package/components/timeline/timeline.a2ui.json +4 -0
- package/components/timeline/timeline.class.js +29 -18
- package/components/timeline/timeline.d.ts +3 -3
- package/components/timeline/timeline.yaml +2 -0
- package/components/toast/toast.a2ui.json +10 -3
- package/components/toast/toast.yaml +20 -13
- package/components/toc/toc.a2ui.json +1 -0
- package/components/toggle-group/toggle-group.a2ui.json +7 -3
- package/components/toggle-group/toggle-group.class.js +40 -1
- package/components/toggle-group/toggle-group.css +6 -1
- package/components/toggle-group/toggle-group.d.ts +2 -2
- package/components/toggle-group/toggle-group.yaml +21 -12
- package/components/toggle-group/toggle-option.a2ui.json +7 -3
- package/components/toggle-group/toggle-option.yaml +13 -7
- package/components/toggle-scheme/toggle-scheme.a2ui.json +2 -1
- package/components/toggle-scheme/toggle-scheme.yaml +1 -1
- package/components/toolbar/toolbar-group.a2ui.json +1 -0
- package/components/toolbar/toolbar.a2ui.json +1 -0
- package/components/toolbar/toolbar.class.js +3 -0
- package/components/tooltip/tooltip.a2ui.json +1 -0
- package/components/tour/tour-step.a2ui.json +4 -0
- package/components/tour/tour-step.yaml +2 -0
- package/components/tour/tour.a2ui.json +4 -0
- package/components/tour/tour.yaml +2 -0
- package/components/tree/tree-item.a2ui.json +5 -0
- package/components/tree/tree-item.yaml +3 -0
- package/components/tree/tree.a2ui.json +4 -0
- package/components/tree/tree.class.js +2 -1
- package/components/tree/tree.yaml +2 -0
- package/components/upload/upload.a2ui.json +8 -1
- package/components/upload/upload.class.js +35 -5
- package/components/upload/upload.css +28 -0
- package/components/upload/upload.d.ts +16 -0
- package/components/upload/upload.yaml +27 -7
- package/components/visually-hidden/visually-hidden.a2ui.json +1 -0
- package/core/dom.d.ts +11 -0
- package/core/dom.js +34 -0
- package/core/form.js +7 -0
- package/core/icons.js +5 -0
- package/core/index.d.ts +1 -0
- package/core/index.js +1 -0
- package/core/responsive.js +16 -4
- package/core/template.js +2 -1
- package/custom-elements.json +710 -587
- package/dist/host.min.css +1 -1
- package/dist/host.sheet.js +1 -1
- package/dist/theme-provider.min.js +5 -5
- package/dist/web-components.min.css +1 -1
- package/dist/web-components.min.js +92 -105
- package/dist/web-components.sheet.js +1 -1
- package/index.d.ts +12 -1
- package/package.json +4 -2
- package/patterns/admin-shell/admin-shell.examples.html +2 -2
- package/patterns/conversion-funnel/conversion-funnel.examples.html +15 -15
- package/patterns/form-system/form-system.examples.html +1 -1
- package/patterns/inline-dialog/inline-dialog.examples.html +2 -2
- package/patterns/inline-dialog/inline-dialog.html +4 -0
- package/patterns/timezone-selector/timezone-selector.examples.html +1 -1
- package/patterns/timezone-selector/timezone-selector.html +2 -2
- package/styles/api/text.css +7 -0
- package/styles/components.css +1 -0
- package/traits/_catalog.json +129 -41
- package/traits/anchor-positioning/anchor-positioning.js +1 -0
- package/traits/announcer/announcer.js +1 -0
- package/traits/arrow-grid-nav/arrow-grid-nav.js +1 -0
- package/traits/attention-pulse/attention-pulse.js +1 -0
- package/traits/count-up/count-up.js +1 -0
- package/traits/define.js +78 -0
- package/traits/focus-restore/focus-restore.js +2 -1
- package/traits/haptic-feedback/haptic-feedback.js +1 -0
- package/traits/input-mask/input-mask.js +1 -0
- package/traits/intersection-observer/intersection-observer.js +1 -0
- package/traits/layout-animation/layout-animation.js +1 -0
- package/traits/noise-texture/noise-texture.js +1 -0
- package/traits/resize-observer/resize-observer.js +1 -0
- package/traits/scroll-progress/scroll-progress.js +1 -0
- package/traits/snap-to-grid/snap-to-grid.js +1 -0
- package/traits/sound-feedback/sound-feedback.js +1 -0
- package/traits/spring-animate/spring-animate.js +1 -0
- package/traits/validation/validation.js +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,13 +1,81 @@
|
|
|
1
1
|
# Changelog — @adia-ai/web-components
|
|
2
2
|
|
|
3
|
+
## [0.8.42] — 2026-08-17
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
- **ADR-0063 `0.8.42` compat shims (gh#1562 wave, PR #1569).** Dual-read/alias shims easing the planned 0.9.0 renames: chart `no-*` boolean axes, `chart-legend-ui[interactive]`, `pane-ui[edge]`, the `color-area-ui` alias, and `menu-item-ui[description]`. Old names keep working this cut; the breaking removals ride 0.9.0 per the migration guide.
|
|
7
|
+
- **Rename-wave W1 compat shims (gh#1560, PR #1565).** `data-sidebar-resize` / `data-layout-grid` are dual-read alongside the legacy `data-resize` / `data-grid` stamps.
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
- **Rename-wave W2 (gh#1561, PR #1567).** In-repo consumers, demos, and docs migrate to the new `data-sidebar-resize` / `data-layout-grid` names; the W1 shims keep external consumers working.
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
- **`table-toolbar`** falls back to the column key when a column label is whitespace-only, and hides the title cluster when it has nothing to show (PR #1573, gh#1571 family).
|
|
14
|
+
|
|
15
|
+
### Maintenance
|
|
16
|
+
- ADR-0069 Class-R derived artifacts re-derived on main by the new `derived-resync` job (PR #1568).
|
|
17
|
+
- Demo-attribute sweep touched `traits/view-transition`'s examples (one dead attribute dropped, gh#1576 family, PR #1584) — no trait API change.
|
|
18
|
+
- **`components/` touched in this release window** (62 file(s), e.g. `chart-legend/chart-legend.a2ui.json`) — carried by the entries above.
|
|
19
|
+
- **`core/` touched in this release window** (1 file(s), e.g. `core/icons.js`) — carried by the entries above.
|
|
20
|
+
- **`dist/` bundles rebuilt** in this cut's window (4 file(s)) — regenerated from the source changes described above, not independent edits.
|
|
21
|
+
- **`patterns/` touched in this release window** (2 file(s), e.g. `admin-shell/admin-shell.examples.html`) — carried by the entries above.
|
|
22
|
+
- **`styles/` touched in this release window** (1 file(s), e.g. `styles/components.css`) — carried by the entries above.
|
|
23
|
+
|
|
24
|
+
## [0.8.41] — 2026-08-17
|
|
25
|
+
|
|
26
|
+
### Added
|
|
27
|
+
- **`segmented-ui` gains a `multiple: Boolean` axis (gh#1369, gh#1363 C1).** Under `[multiple]`, `value` is a comma-separated set (the same encoding `select-ui[multiple]` and the deprecated `toggle-group-ui` already use), the sliding indicator is suppressed in favor of a per-segment selected background, and Space/Enter toggles the focused segment instead of arrow-move selecting it. `components/segmented/segmented.yaml`. Successor surface for the deprecated `toggle-group-ui`/`toggle-option-ui` pair (§Deprecated below). See the migration guide's [§ Shipped in `0.8.41` — `segmented-ui` gains `[multiple]`](../../.claude/docs/MIGRATION%20GUIDE.md).
|
|
28
|
+
- **`progress-ui` gains `label` + `meta` props (gh#1373, gh#1363 C4).** A non-empty `label` activates the identical labeled-row layout `progress-row-ui` used to own (a new Sanctioned Mode Attribute per the component-token-contract) — `components/progress/progress.yaml`. Fixes the catalog exemplar that already put `label` on a `Progress` node, which made generation copying it fail validation. `progress-row-ui` is deprecated below.
|
|
29
|
+
- **`calendar-picker-ui` gains a `precision` axis (`date` | `minute` | `second`, default `date` — unchanged for existing consumers) plus `step`/`hour-cycle`/`locale` props and `input`/`open`/`close`/`invalid` events (gh#1372, gh#1363 C3c/C3d).** Absorbs datetime mode from the now-deprecated `datetime-picker-ui`; the day grid also composes the `calendar-grid-ui` substrate instead of an inlined day grid (gh#1371, C3a). `components/calendar-picker/`.
|
|
30
|
+
- **`upload-ui` — public `.open()` method + compact trigger mode (gh#1493).** `open()` raises the OS file picker programmatically; `[compact]` renders the trigger-only affordance for toolbar/inline placements. `components/upload/upload.yaml`.
|
|
31
|
+
- **`audit-template-child-conflict` ships as a package bin (gh#1446).** The adopt-or-stamp template/child conflict auditor is now runnable by downstream consumers against their own markup, not just in-repo.
|
|
32
|
+
- **`core/dom.js` — `isNode(v)` / `isElement(v)`**, re-exported from the core barrel.
|
|
33
|
+
- **SSR admissibility gate — `scripts/dev/ssr-linkedom-smoke.mjs` + `test/ssr-linkedom-smoke.test.js`.** `linkedom` is now a root devDependency; the script installs exactly the six globals `custom-elements-ssr/server-shim.js` installs, imports every `components/*/*.js` entry and constructs + connects every registered tag the way `CustomElementRender` does. 124/124 import, every tag renders; a new browser-only-API-at-import/connect regression fails the unit suite instead of a consumer's build.
|
|
34
|
+
|
|
35
|
+
### Changed
|
|
36
|
+
- **BREAKING, no deprecation aliases — global-attribute-shadowing collision sweep, primitive side (gh#1335; the ADR-0053/0054 decision-4 ledger).** `header-ui[padding]` → `[padded]`; `menu-ui`/`popover-ui[gap]` → `[offset]`; `skeleton-ui`/`image-ui[radius]` → `[corner-radius]`; `text-ui[weight]` value `regular` → `normal`; `text-ui[text-align]` converges onto the global physical vocabulary (`start`/`end` → `left`/`right`; `justify` newly supported by the global grammar); `tags-input-ui[transform]` → `[normalize]`. `button-ui`/`toggle-scheme-ui`/`text-ui[color]` are §11-ratified exemptions (ADR-0044/ADR-0064 — they play the color FAMILY axis), and `qr-code-ui[color]` + `icon-ui[weight]` were subsequently ratified as §11 exemptions by ADR-0070 (gh#1500), closing the ledger at 17/17 with no further code change. Composite-side renames shipped in `@adia-ai/web-modules`. See the migration guide's [§ Shipped in `0.8.41` — global-attribute-shadowing collision sweep](../../.claude/docs/MIGRATION%20GUIDE.md).
|
|
37
|
+
- **BREAKING, no deprecation alias — primitive-tier `data-*` state converges to bare attributes (gh#1332, residual round).** `feed-item-ui[data-open]`/`[data-closing]`/`[data-queued]` → `[open]`/`[closing]`/`[queued]`; `slider-ui`/`range-ui[data-dragging]` → `[dragging]`; `pane-ui[data-resizing]` → `[resizing]`; `chart-ui[data-has-data]` → `[has-data]`; `select-ui`'s private `[data-multi-chips]` mirror is dropped outright — its CSS now keys off the compound `[multiple]:not([summary-label])`, both already-declared reflected props. Any CSS/script targeting the old `data-*` forms moves to the bare attributes.
|
|
38
|
+
- **BREAKING, no deprecation alias — `image-ui` declares `loaded`/`error` states as bare attributes (gh#1464, gh#1332 final residue).** The undeclared `[data-loaded]`/`[data-error]` host stamps are now declared `states:` in `components/image/image.yaml` with bare `attribute:` mappings (matching `qr-code-ui`'s converged `error`). The unrelated `[data-overlay]` skeleton-proximity marker (gh#1362) is untouched, and the `data-msg-*` validation-message config family is dispositioned exempt by design (component-side config read by `core/form.js`, not host-reflected state).
|
|
39
|
+
- **BREAKING, no deprecation alias (zero known consumer sites) — `action-item-ui` converges onto `menu-item-ui`'s row contract (gh#1374, gh#1363 C5).** Gains a `subtitle` prop + `text`/`subtitle`/`trailing` slot overrides; the unnamed default slot previously used for trailing content (kbd shortcut, badge, caret) is retired — external consumers slotting trailing children add `slot="trailing"`. The container-level "fold action-list into `list-ui`" question was decided NO; only this row-level convergence ships.
|
|
40
|
+
- **BREAKING for raw A2UI documents only — `chat-thread-ui`'s catalog identity renames `ChatThread` → `UIChatThread` (gh#1427).** The primitive's yaml `component:` collided with the chat web-module's own `ChatThread` at the catalog-build key; `registry.js` maps `UIChatThread` → the unchanged `chat-thread-ui` tag. Generated/hand-authored a2ui trees meaning the standalone primitive update the `component:` name; DOM/JS API and tag are unaffected.
|
|
41
|
+
- **`tab-ui` + `list-item-ui` gain a declared, reflected `[selected]` prop (ADR-0056, gh#1379, gh#1363 B7) — additive.** `tabs-ui` stamps `selected` on the active tab alongside its existing internal wiring; under `list-ui[selectable]` the selection style keys off `[selected]` instead of `[aria-selected="true"]`. `radio-ui[checked]` audited and left as-is (native form-control convention).
|
|
42
|
+
- **yaml/catalog contract sweep — the authoring SoT now distinguishes template-owned anatomy from consumer-fillable slots (ADR-0067, gh#1447).** yaml gains a `parts:` key for anatomy the component always stamps itself; the remaining 143 ambiguous `slots:` entries were classified source-verified (gh#1454 sweep). Related catalog-truth fixes ride along: slot keys renamed to source-stamped names across six components (gh#1461 — button drops phantom `leading`, calendar-picker `calendar` → `popover`, drawer drops `backdrop`, image `img` → `image` + `skeleton`, otp-input `field` → `digit`); enum-shaped props gain their missing `enum` blocks (gh#1363 B6); number/string props with `null` defaults emit nullable schemas (gh#1329); the category vocabulary is ratified and yaml-declared (gh#1363 B9); six primitive yamls stop teaching the invalid `surface` prop (#1387); `toast-ui` is the taught default for transient notices with a real-prop canonical example (gh#1363 C6, gh#1491).
|
|
43
|
+
- **`check-ui` / `radio-ui` / `switch-ui` yaml + a2ui `slots` descriptions now state that `box`/`dot`/`track`/`thumb`/`label`/`hint` are template-OWNED anatomy parts set via `label=`/`hint=` — not light-DOM insertion points (gh#1435).** No behavior change: a foreign `<span slot="label">` child was never a supported form (it is replaced on any late upgrade, SSR or CSR alike). Clarifies the contract a downstream SSR audit and the gen-ui catalog read; the schema-level owned-vs-fillable distinction is gh#1447.
|
|
44
|
+
|
|
45
|
+
### Deprecated
|
|
46
|
+
- **`progress-row-ui` — absorbed into `progress-ui` (gh#1373, gh#1363 C4).** Keeps working unchanged (still composes `progress-ui`) but ships `status: deprecated` and is no longer taught to the A2UI catalog. Migrate `<progress-row-ui label value meta>` → `<progress-ui label value meta>` (mechanical tag rename); its old `variant` color prop has no successor — recolor via `--progress-fill`.
|
|
47
|
+
- **`toggle-group-ui` / `toggle-option-ui` — superseded by `segmented-ui[multiple]` (gh#1369, gh#1363 C1).** Both ship `status: deprecated` + a one-time `console.warn`; behavior unchanged. Migrate `<toggle-group-ui value>` + `<toggle-option-ui>` → `<segmented-ui multiple value>` + `<segment-ui>` (identical value encoding; `text`/`icon`/`disabled` map directly).
|
|
48
|
+
- **`datetime-picker-ui` — absorbed into `calendar-picker-ui` (gh#1372, gh#1363 C3c).** Now a thin `calendar-picker-ui` subclass defaulting `precision="minute"`; keeps working unchanged. Migrate to `<calendar-picker-ui precision="minute">`.
|
|
49
|
+
|
|
50
|
+
### Removed
|
|
51
|
+
- **BREAKING, no deprecation alias — `progress-ui[variant]` (gh#1370, gh#1363 C2).** Progress is bar-only; `spinner-ui` owns circular loading indicators (`arc` is the nearest visual match to the old `variant="spinner"` render; `variant="bar"` → drop the attribute). Un-forks the two-circular-answers catalog defect. See the migration guide's [§ Shipped in `0.8.41` — `progress-ui` retires `variant`](../../.claude/docs/MIGRATION%20GUIDE.md).
|
|
52
|
+
- **BREAKING, no deprecation alias — `input-ui[type]` trims to implemented types (gh#1381, gh#1363 B10).** Drops `search`/`date`/`datetime-local`/`time`/`month`/`week`/`color` — none ever rendered a native affordance (all fell back to a plain contenteditable surface). The set is now exactly `text`/`email`/`password`/`number`/`tel`/`url`; route `search` → `search-ui`, `date`/`month`/`week` → `calendar-picker-ui`, `datetime-local` → `calendar-picker-ui precision="minute"`, `time` → `time-picker-ui`, `color` → `color-input-ui`.
|
|
53
|
+
- **BREAKING, no deprecation alias — `calendar-picker-ui`'s own `label` prop/slot and the `--datetime-picker-*` token family (gh#1372).** Wrap in `<field-ui label>` like every sibling picker (label was calendar-picker's own outlier); datetime styling flows through the shared `--calendar-picker-*` tokens.
|
|
54
|
+
|
|
55
|
+
### Fixed
|
|
56
|
+
- **`card-ui[padding]` implemented (gh#1416).** The prop was fully documented in `components/card/card.yaml` (named scale + numeric rung, `--card-padding` override) but never declared in `card.class.js` nor styled in `card.css` — `<card-ui padding="lg">` did nothing. Now follows `block-ui`'s established `[padding]` contract (`none/xs/sm/md/lg/xl` + numeric rungs → the parametric `--a-padding-*` tokens).
|
|
57
|
+
- **`select-ui` — trigger text reconciles with `[data-empty]` on every write (ADIA2-8927).** The empty-placeholder state could disagree with the rendered trigger text after programmatic value writes.
|
|
58
|
+
- **`image-ui` — `skeleton-ui` `@scope` proximity no longer clips the image out of view (gh#1362).**
|
|
59
|
+
- **`datetime-picker-ui` — static `requiredIcons` restated on the alias class (gh#1503).** The gh#1372 subclass fold dropped the static, so icon preloading for the deprecated alias tag silently stopped.
|
|
60
|
+
- **`stepper-ui` / `timeline-ui` — adopt-or-stamp guard for consumer-authored slot content (gh#1462).** Consumer-provided `[slot]` children are adopted instead of being duplicated by the template stamp.
|
|
61
|
+
- **SSR — `core/responsive.js` no longer calls `window.matchMedia` at module import behind a `typeof window` guard (gh#1430).** linkedom (custom-elements-ssr) defines `window` but neither `matchMedia` nor a numeric `innerWidth`, so `block`/`col`/`grid`/`row`/`text`/`demo-toggle` could not be imported server-side at all, and the breakpoint fallback would have been `'xs'` (mobile layout) rather than the intended `'lg'`. Both sites now feature-detect. `swiper-ui`'s `play()` (`[autoplay]` at connect) guards `matchMedia` the same way.
|
|
62
|
+
- **SSR — bare `instanceof Node/Element/HTMLElement` replaced by structural guards (gh#1436).** Under custom-elements-ssr only `HTMLElement` is a global, so `core/template.js`'s `applyValue` (any template interpolating a node), `table-ui`/`list-window-ui` renderer results and a dozen event-target checks threw `ReferenceError`. New `core/dom.js` exports `isNode()` / `isElement()` (`nodeType`-based; also accept other-realm nodes) — 15 sites swept.
|
|
63
|
+
- **SSR — connect-time `requestAnimationFrame` / `MutationObserver` / `getBoundingClientRect` guarded** in `feed-item-ui`/`toast-ui`, `noodles-ui`, `preview-ui`, `toolbar-ui` (rAF: emit settled state / skip the layout measurement), `nav-group-ui`, `stepper-ui` (MutationObserver — the gh#285 sweep missed these two) and `nav-ui` (`getBoundingClientRect` is absent, not zero, on linkedom). Found by the new render sweep above.
|
|
64
|
+
|
|
65
|
+
### Maintenance
|
|
66
|
+
- **`dist/` bundles rebuilt** in this cut's window (6 file(s)) — regenerated from the source changes described above, not independent edits.
|
|
67
|
+
- **`patterns/` touched in this release window** (5 file(s), e.g. `conversion-funnel/conversion-funnel.examples.html`) — carried by the entries above.
|
|
68
|
+
- **`styles/` touched in this release window** (1 file(s), e.g. `api/text.css`) — carried by the entries above.
|
|
69
|
+
- **`traits/` touched in this release window** (21 file(s), e.g. `traits/_api-table.js`) — carried by the entries above.
|
|
70
|
+
|
|
3
71
|
## [0.8.40] — 2026-08-15
|
|
4
72
|
|
|
5
73
|
### Changed
|
|
6
|
-
- **BREAKING (ships in 0.8.40, no deprecation alias): `toggle-group-ui` drops the legacy `data-selected` parallel stamp on `toggle-option-ui` children, per [ADR-0056](../../docs/adr/adr-0056-selection-item-selected-convention.md) (gh#1303).** The additive half of ADR-0056 (`0.8.39`) shipped `toggle-option-ui`'s declared, reflected `selected` prop alongside the pre-existing `data-selected` stamp, scoped that way pending operator sign-off on when the breaking removal would ride. That removal now lands: `toggle-group.class.js`'s render pass no longer sets/clears `data-selected`; `selected` (already the only prop `toggle-group.css` styled) is the sole current-state surface, matching `segment-ui`'s convention. The `DEPRECATED` markers in `toggle-option.yaml`/`toggle-group.yaml` are removed along with the attribute they described. `toggle-group.test.js`'s named deprecation case (`'DEPRECATED — still stamps data-selected in parallel'`) flips to assert the stamp is gone. See the migration guide's [§ Upcoming — `toggle-option-ui` drops the legacy `data-selected` stamp](../../.claude/docs/MIGRATION%20GUIDE.md#upcoming--toggle-option-ui-drops-the-legacy-data-selected-stamp-0840-adr-0056).
|
|
74
|
+
- **BREAKING (ships in 0.8.40, no deprecation alias): `toggle-group-ui` drops the legacy `data-selected` parallel stamp on `toggle-option-ui` children, per [ADR-0056](../../docs/ops/adr/adr-0056-selection-item-selected-convention.md) (gh#1303).** The additive half of ADR-0056 (`0.8.39`) shipped `toggle-option-ui`'s declared, reflected `selected` prop alongside the pre-existing `data-selected` stamp, scoped that way pending operator sign-off on when the breaking removal would ride. That removal now lands: `toggle-group.class.js`'s render pass no longer sets/clears `data-selected`; `selected` (already the only prop `toggle-group.css` styled) is the sole current-state surface, matching `segment-ui`'s convention. The `DEPRECATED` markers in `toggle-option.yaml`/`toggle-group.yaml` are removed along with the attribute they described. `toggle-group.test.js`'s named deprecation case (`'DEPRECATED — still stamps data-selected in parallel'`) flips to assert the stamp is gone. See the migration guide's [§ Upcoming — `toggle-option-ui` drops the legacy `data-selected` stamp](../../.claude/docs/MIGRATION%20GUIDE.md#upcoming--toggle-option-ui-drops-the-legacy-data-selected-stamp-0840-adr-0056).
|
|
7
75
|
- **`table-ui[density]` converges onto the global attribute grammar (ADR-0054, gh#1300).** The component-local `compact | standard | comfortable` enum is removed (`table.yaml`, the reflected `density` prop + `getState()`/`setState()` persistence in `table.class.js`, the `:scope[density="…"]` CSS overrides in `table.css`) — `[density]` on `table-ui` is now the ordinary ambient global attribute (`compact | spacious`, unset = the middle), which `--table-py`/`--table-px` already read via `--a-space-*` (no CSS change needed beyond removing the now-redundant local override). **Breaking, no deprecation alias:** `density="compact"` is unchanged, `density="standard"` becomes the absent attribute, `density="comfortable"` becomes `density="spacious"`. Rides the ratified **0.8.40** breaking wave.
|
|
8
76
|
- **`chart-ui[radius]` renamed to `chart-ui[corner-radius]` (ADR-0054, gh#1300).** Same `Number` type, same `default: null` (falls back to `--a-radius`), same behavior — the collision was with the global preset-enum `[radius]` (`sharp`/`rounded`/`round`), which a numeric px value can't share a name with. **Breaking, no deprecation alias**, rides the ratified **0.8.40** breaking wave.
|
|
9
|
-
- **BREAKING (ships in 0.8.40): `qr-code-ui`'s reflected `[margin]` attribute is renamed `[quiet-zone]` (property `quietZone`), per [ADR-0053](../../docs/adr/adr-0053-no-shadowing-global-attributes.md) (gh#1299).** `qr-code-ui[margin]` silently collided with the framework's global `[margin]` Scale attribute — both accepted the identical `margin="4"` syntax but resolved to unrelated meanings (QR quiet zone in grid cells vs. global box-model spacing) with no error surfaced. Same type/default/reflection; only the name changes. No deprecation alias — `margin` on `qr-code-ui` now means the global Scale attribute. See the migration guide's [§ Upcoming — qr-code-ui quiet-zone rename](../../.claude/docs/MIGRATION%20GUIDE.md#upcoming--qr-code-ui-quiet-zone-rename-adr-0053).
|
|
10
|
-
- **BREAKING (ships in 0.8.40): the legacy `--a-leading-*` line-height token family is retired; `--a-font-leading-*` is the single canonical leading scale, per [ADR-0052](../../docs/adr/adr-0052-leading-scale-consolidation.md) (gh#1298).** Two leading families coexisted in `styles/type/scale.css` with the same step names resolving to different values (`--a-leading-snug` = `1.3` vs. `--a-font-leading-snug` = `1.2`) — no obviously-correct token choice, which is why 55 component files had reached for a bare numeric literal instead. `--a-font-leading-*` gains a `none: 1` step to close its only gap; the 4 in-repo `--a-leading-*` consumers (`button`, `chat-thread`, `inline-message`, `segment`) are migrated by value-nearest judgment (no name-preserving aliases: `snug`→`normal`, `normal`→`relaxed`). The same sweep tokenized every other hardcoded typography literal in `components/*/*.css`: bare numeric `line-height` (56 files; `1.3`/`1.4` → `--a-font-leading-normal`, escape-valve `--a-font-leading-relaxed` for multi-line body copy), `em`-literal `letter-spacing` (12 files; `0.05em` → `--a-font-tracking-wide`), numeric `font-weight` (7 files, on-scale). New `npm run check:typography-tokens` gate (mirrors the brand-chrome/foundation-layer audit gates) fails on any of the three literal classes reappearing. See the migration guide's [§ Upcoming — leading-scale consolidation](../../.claude/docs/MIGRATION%20GUIDE.md#upcoming--leading-scale-consolidation-adr-0052).
|
|
77
|
+
- **BREAKING (ships in 0.8.40): `qr-code-ui`'s reflected `[margin]` attribute is renamed `[quiet-zone]` (property `quietZone`), per [ADR-0053](../../docs/ops/adr/adr-0053-no-shadowing-global-attributes.md) (gh#1299).** `qr-code-ui[margin]` silently collided with the framework's global `[margin]` Scale attribute — both accepted the identical `margin="4"` syntax but resolved to unrelated meanings (QR quiet zone in grid cells vs. global box-model spacing) with no error surfaced. Same type/default/reflection; only the name changes. No deprecation alias — `margin` on `qr-code-ui` now means the global Scale attribute. See the migration guide's [§ Upcoming — qr-code-ui quiet-zone rename](../../.claude/docs/MIGRATION%20GUIDE.md#upcoming--qr-code-ui-quiet-zone-rename-adr-0053).
|
|
78
|
+
- **BREAKING (ships in 0.8.40): the legacy `--a-leading-*` line-height token family is retired; `--a-font-leading-*` is the single canonical leading scale, per [ADR-0052](../../docs/ops/adr/adr-0052-leading-scale-consolidation.md) (gh#1298).** Two leading families coexisted in `styles/type/scale.css` with the same step names resolving to different values (`--a-leading-snug` = `1.3` vs. `--a-font-leading-snug` = `1.2`) — no obviously-correct token choice, which is why 55 component files had reached for a bare numeric literal instead. `--a-font-leading-*` gains a `none: 1` step to close its only gap; the 4 in-repo `--a-leading-*` consumers (`button`, `chat-thread`, `inline-message`, `segment`) are migrated by value-nearest judgment (no name-preserving aliases: `snug`→`normal`, `normal`→`relaxed`). The same sweep tokenized every other hardcoded typography literal in `components/*/*.css`: bare numeric `line-height` (56 files; `1.3`/`1.4` → `--a-font-leading-normal`, escape-valve `--a-font-leading-relaxed` for multi-line body copy), `em`-literal `letter-spacing` (12 files; `0.05em` → `--a-font-tracking-wide`), numeric `font-weight` (7 files, on-scale). New `npm run check:typography-tokens` gate (mirrors the brand-chrome/foundation-layer audit gates) fails on any of the three literal classes reappearing. See the migration guide's [§ Upcoming — leading-scale consolidation](../../.claude/docs/MIGRATION%20GUIDE.md#upcoming--leading-scale-consolidation-adr-0052).
|
|
11
79
|
|
|
12
80
|
### Maintenance
|
|
13
81
|
- **`dist/` bundles rebuilt** in this cut's window (6 file(s)) — regenerated from the source changes described above, not independent edits.
|