@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
|
@@ -1,182 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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:
|
|
6
|
+
status: deprecated
|
|
7
7
|
component: ColorPicker
|
|
8
8
|
category: input
|
|
9
|
-
version:
|
|
9
|
+
version: 2
|
|
10
10
|
description: >-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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: '
|
|
111
|
-
reason: '
|
|
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
|
-
|
|
115
|
-
|
|
116
|
-
|
|
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-
|
|
119
|
-
description:
|
|
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\": \"
|
|
142
|
-
"why": "Only 2 options. Combobox is overkill — use
|
|
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
|
|
300
|
+
Only 2 options. Combobox is overkill — use Segmented or Radio.
|
|
301
301
|
fix: |
|
|
302
|
-
{"component": "
|
|
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, '&').replace(/</g, '<').replace(/>/g, '>');
|
|
@@ -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
|
|
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
|
|
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:
|
|
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:
|
|
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:
|
|
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.
|
|
@@ -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-
|
|
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-
|
|
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.
|