@agent-ui-kit/components 0.0.3
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/dist/base-styles.css +8 -0
- package/dist/component-styles.css +147 -0
- package/dist/controls/_base/index.d.ts +3 -0
- package/dist/controls/_base/index.js +9 -0
- package/dist/controls/_base/indicator-element.d.ts +132 -0
- package/dist/controls/_base/indicator-element.js +158 -0
- package/dist/controls/_base/listbox-element.d.ts +70 -0
- package/dist/controls/_base/listbox-element.js +74 -0
- package/dist/controls/_base/range-element.d.ts +120 -0
- package/dist/controls/_base/range-element.js +158 -0
- package/dist/controls/_surface/container-box.css +301 -0
- package/dist/controls/_surface/container.css +156 -0
- package/dist/controls/_token-surface/token-surface.d.ts +35 -0
- package/dist/controls/_token-surface/token-surface.js +97 -0
- package/dist/controls/attachment/attachment-meta.d.ts +8 -0
- package/dist/controls/attachment/attachment-meta.js +84 -0
- package/dist/controls/attachment/attachment.css +91 -0
- package/dist/controls/attachment/attachment.d.ts +40 -0
- package/dist/controls/attachment/attachment.js +70 -0
- package/dist/controls/avatar/avatar-initials.d.ts +4 -0
- package/dist/controls/avatar/avatar-initials.js +30 -0
- package/dist/controls/avatar/avatar.css +87 -0
- package/dist/controls/avatar/avatar.d.ts +40 -0
- package/dist/controls/avatar/avatar.js +77 -0
- package/dist/controls/badge/badge.css +175 -0
- package/dist/controls/badge/badge.d.ts +36 -0
- package/dist/controls/badge/badge.js +71 -0
- package/dist/controls/bar-chart/bar-chart.css +110 -0
- package/dist/controls/bar-chart/bar-chart.d.ts +26 -0
- package/dist/controls/bar-chart/bar-chart.js +80 -0
- package/dist/controls/bar-chart/bar-math.d.ts +31 -0
- package/dist/controls/bar-chart/bar-math.js +106 -0
- package/dist/controls/button/button.css +263 -0
- package/dist/controls/button/button.d.ts +61 -0
- package/dist/controls/button/button.js +115 -0
- package/dist/controls/calendar/calendar.css +495 -0
- package/dist/controls/calendar/calendar.d.ts +161 -0
- package/dist/controls/calendar/calendar.js +1004 -0
- package/dist/controls/card/card-content.d.ts +24 -0
- package/dist/controls/card/card-content.js +133 -0
- package/dist/controls/card/card-footer.d.ts +3 -0
- package/dist/controls/card/card-footer.js +16 -0
- package/dist/controls/card/card-header.d.ts +3 -0
- package/dist/controls/card/card-header.js +18 -0
- package/dist/controls/card/card.css +445 -0
- package/dist/controls/card/card.d.ts +51 -0
- package/dist/controls/card/card.js +61 -0
- package/dist/controls/checkbox/checkbox.css +204 -0
- package/dist/controls/checkbox/checkbox.d.ts +114 -0
- package/dist/controls/checkbox/checkbox.js +130 -0
- package/dist/controls/code/code.css +72 -0
- package/dist/controls/code/code.d.ts +23 -0
- package/dist/controls/code/code.js +40 -0
- package/dist/controls/color-picker/color-picker.css +209 -0
- package/dist/controls/color-picker/color-picker.d.ts +84 -0
- package/dist/controls/color-picker/color-picker.js +545 -0
- package/dist/controls/color-picker/color.d.ts +40 -0
- package/dist/controls/color-picker/color.js +159 -0
- package/dist/controls/column/column.css +151 -0
- package/dist/controls/column/column.d.ts +107 -0
- package/dist/controls/column/column.js +57 -0
- package/dist/controls/combo-box/combo-box.css +397 -0
- package/dist/controls/combo-box/combo-box.d.ts +133 -0
- package/dist/controls/combo-box/combo-box.js +680 -0
- package/dist/controls/command-modal/command-modal.css +226 -0
- package/dist/controls/command-modal/command-modal.d.ts +42 -0
- package/dist/controls/command-modal/command-modal.js +315 -0
- package/dist/controls/disclosure/disclosure.css +162 -0
- package/dist/controls/disclosure/disclosure.d.ts +37 -0
- package/dist/controls/disclosure/disclosure.js +207 -0
- package/dist/controls/field/field.css +140 -0
- package/dist/controls/field/field.d.ts +27 -0
- package/dist/controls/field/field.js +228 -0
- package/dist/controls/form-provider/form-provider.css +40 -0
- package/dist/controls/form-provider/form-provider.d.ts +42 -0
- package/dist/controls/form-provider/form-provider.js +105 -0
- package/dist/controls/grid/grid.css +72 -0
- package/dist/controls/grid/grid.d.ts +60 -0
- package/dist/controls/grid/grid.js +56 -0
- package/dist/controls/icon/icon.css +37 -0
- package/dist/controls/icon/icon.d.ts +25 -0
- package/dist/controls/icon/icon.js +55 -0
- package/dist/controls/index.d.ts +57 -0
- package/dist/controls/index.js +136 -0
- package/dist/controls/ladder/ladder.css +89 -0
- package/dist/controls/ladder/ladder.d.ts +27 -0
- package/dist/controls/ladder/ladder.js +78 -0
- package/dist/controls/list/list.css +118 -0
- package/dist/controls/list/list.d.ts +84 -0
- package/dist/controls/list/list.js +48 -0
- package/dist/controls/menu/menu.css +195 -0
- package/dist/controls/menu/menu.d.ts +44 -0
- package/dist/controls/menu/menu.js +248 -0
- package/dist/controls/modal/modal.css +99 -0
- package/dist/controls/modal/modal.d.ts +61 -0
- package/dist/controls/modal/modal.js +155 -0
- package/dist/controls/popover/popover.css +83 -0
- package/dist/controls/popover/popover.d.ts +44 -0
- package/dist/controls/popover/popover.js +164 -0
- package/dist/controls/progress/progress.css +106 -0
- package/dist/controls/progress/progress.d.ts +28 -0
- package/dist/controls/progress/progress.js +80 -0
- package/dist/controls/radio/radio-group.css +84 -0
- package/dist/controls/radio/radio-group.d.ts +152 -0
- package/dist/controls/radio/radio-group.js +350 -0
- package/dist/controls/radio/radio.css +219 -0
- package/dist/controls/radio/radio.d.ts +19 -0
- package/dist/controls/radio/radio.js +75 -0
- package/dist/controls/ramp/ramp.css +75 -0
- package/dist/controls/ramp/ramp.d.ts +29 -0
- package/dist/controls/ramp/ramp.js +72 -0
- package/dist/controls/row/row.css +152 -0
- package/dist/controls/row/row.d.ts +95 -0
- package/dist/controls/row/row.js +45 -0
- package/dist/controls/segment/segment.css +66 -0
- package/dist/controls/segment/segment.d.ts +3 -0
- package/dist/controls/segment/segment.js +26 -0
- package/dist/controls/segmented-control/segmented-control.css +189 -0
- package/dist/controls/segmented-control/segmented-control.d.ts +20 -0
- package/dist/controls/segmented-control/segmented-control.js +64 -0
- package/dist/controls/select/select.css +467 -0
- package/dist/controls/select/select.d.ts +147 -0
- package/dist/controls/select/select.js +538 -0
- package/dist/controls/slider/slider.css +231 -0
- package/dist/controls/slider/slider.d.ts +111 -0
- package/dist/controls/slider/slider.js +60 -0
- package/dist/controls/slider-multi/slider-multi.css +197 -0
- package/dist/controls/slider-multi/slider-multi.d.ts +149 -0
- package/dist/controls/slider-multi/slider-multi.js +380 -0
- package/dist/controls/sparkline/sparkline-math.d.ts +23 -0
- package/dist/controls/sparkline/sparkline-math.js +79 -0
- package/dist/controls/sparkline/sparkline.css +61 -0
- package/dist/controls/sparkline/sparkline.d.ts +27 -0
- package/dist/controls/sparkline/sparkline.js +74 -0
- package/dist/controls/split/constrain.d.ts +44 -0
- package/dist/controls/split/constrain.js +126 -0
- package/dist/controls/split/split-pane.css +63 -0
- package/dist/controls/split/split-pane.d.ts +49 -0
- package/dist/controls/split/split-pane.js +42 -0
- package/dist/controls/split/split.css +127 -0
- package/dist/controls/split/split.d.ts +42 -0
- package/dist/controls/split/split.js +364 -0
- package/dist/controls/stat/stat-model.d.ts +22 -0
- package/dist/controls/stat/stat-model.js +69 -0
- package/dist/controls/stat/stat.css +101 -0
- package/dist/controls/stat/stat.d.ts +30 -0
- package/dist/controls/stat/stat.js +73 -0
- package/dist/controls/status-stream/status-stream.css +151 -0
- package/dist/controls/status-stream/status-stream.d.ts +108 -0
- package/dist/controls/status-stream/status-stream.js +417 -0
- package/dist/controls/swatch/swatch.css +66 -0
- package/dist/controls/swatch/swatch.d.ts +28 -0
- package/dist/controls/swatch/swatch.js +74 -0
- package/dist/controls/swiper/swiper-item.css +17 -0
- package/dist/controls/swiper/swiper-item.d.ts +31 -0
- package/dist/controls/swiper/swiper-item.js +47 -0
- package/dist/controls/swiper/swiper-label.css +10 -0
- package/dist/controls/swiper/swiper-label.d.ts +4 -0
- package/dist/controls/swiper/swiper-label.js +20 -0
- package/dist/controls/swiper/swiper-paddles.css +26 -0
- package/dist/controls/swiper/swiper-paddles.d.ts +10 -0
- package/dist/controls/swiper/swiper-paddles.js +62 -0
- package/dist/controls/swiper/swiper-pagination.css +60 -0
- package/dist/controls/swiper/swiper-pagination.d.ts +31 -0
- package/dist/controls/swiper/swiper-pagination.js +78 -0
- package/dist/controls/swiper/swiper.css +153 -0
- package/dist/controls/swiper/swiper.d.ts +158 -0
- package/dist/controls/swiper/swiper.js +659 -0
- package/dist/controls/switch/switch.css +194 -0
- package/dist/controls/switch/switch.d.ts +5 -0
- package/dist/controls/switch/switch.js +18 -0
- package/dist/controls/table/table-model.d.ts +43 -0
- package/dist/controls/table/table-model.js +124 -0
- package/dist/controls/table/table.css +90 -0
- package/dist/controls/table/table.d.ts +29 -0
- package/dist/controls/table/table.js +178 -0
- package/dist/controls/tabs/tab-panel.d.ts +10 -0
- package/dist/controls/tabs/tab-panel.js +89 -0
- package/dist/controls/tabs/tab.d.ts +26 -0
- package/dist/controls/tabs/tab.js +67 -0
- package/dist/controls/tabs/tabs.css +181 -0
- package/dist/controls/tabs/tabs.d.ts +61 -0
- package/dist/controls/tabs/tabs.js +176 -0
- package/dist/controls/text/href.d.ts +26 -0
- package/dist/controls/text/href.js +48 -0
- package/dist/controls/text/text.css +328 -0
- package/dist/controls/text/text.d.ts +85 -0
- package/dist/controls/text/text.js +273 -0
- package/dist/controls/text-field/text-field.css +498 -0
- package/dist/controls/text-field/text-field.d.ts +226 -0
- package/dist/controls/text-field/text-field.js +905 -0
- package/dist/controls/textarea/textarea.css +251 -0
- package/dist/controls/textarea/textarea.d.ts +136 -0
- package/dist/controls/textarea/textarea.js +312 -0
- package/dist/controls/theme-provider/theme-provider.css +48 -0
- package/dist/controls/theme-provider/theme-provider.d.ts +59 -0
- package/dist/controls/theme-provider/theme-provider.js +40 -0
- package/dist/controls/timeline/timeline.css +33 -0
- package/dist/controls/timeline/timeline.d.ts +39 -0
- package/dist/controls/timeline/timeline.js +52 -0
- package/dist/controls/timeline-item/timeline-item.css +495 -0
- package/dist/controls/timeline-item/timeline-item.d.ts +79 -0
- package/dist/controls/timeline-item/timeline-item.js +360 -0
- package/dist/controls/toast/toast-region.css +56 -0
- package/dist/controls/toast/toast-region.d.ts +20 -0
- package/dist/controls/toast/toast-region.js +113 -0
- package/dist/controls/toast/toast.css +96 -0
- package/dist/controls/toast/toast.d.ts +28 -0
- package/dist/controls/toast/toast.js +191 -0
- package/dist/controls/toolbar/toolbar.css +125 -0
- package/dist/controls/toolbar/toolbar.d.ts +108 -0
- package/dist/controls/toolbar/toolbar.js +68 -0
- package/dist/controls/tooltip/tooltip.css +80 -0
- package/dist/controls/tooltip/tooltip.d.ts +57 -0
- package/dist/controls/tooltip/tooltip.js +205 -0
- package/dist/descriptor/component-descriptor.d.ts +112 -0
- package/dist/descriptor/component-descriptor.js +492 -0
- package/dist/descriptor/index.d.ts +1 -0
- package/dist/descriptor/index.js +5 -0
- package/dist/dom/container.d.ts +45 -0
- package/dist/dom/container.js +60 -0
- package/dist/dom/element.d.ts +98 -0
- package/dist/dom/element.js +221 -0
- package/dist/dom/form.d.ts +240 -0
- package/dist/dom/form.js +399 -0
- package/dist/dom/index.d.ts +10 -0
- package/dist/dom/index.js +31 -0
- package/dist/dom/props.d.ts +56 -0
- package/dist/dom/props.js +231 -0
- package/dist/dom/repeat.d.ts +10 -0
- package/dist/dom/repeat.js +202 -0
- package/dist/dom/template.d.ts +161 -0
- package/dist/dom/template.js +634 -0
- package/dist/dom/watch.d.ts +11 -0
- package/dist/dom/watch.js +82 -0
- package/dist/foundation-styles.css +9 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +3 -0
- package/dist/reactive/graph.d.ts +65 -0
- package/dist/reactive/graph.js +310 -0
- package/dist/reactive/index.d.ts +3 -0
- package/dist/reactive/index.js +4 -0
- package/dist/reactive/scheduler.d.ts +13 -0
- package/dist/reactive/scheduler.js +49 -0
- package/dist/traits/area-drag.d.ts +12 -0
- package/dist/traits/area-drag.js +70 -0
- package/dist/traits/form-registry.d.ts +36 -0
- package/dist/traits/form-registry.js +108 -0
- package/dist/traits/index.d.ts +24 -0
- package/dist/traits/index.js +19 -0
- package/dist/traits/overlay.d.ts +50 -0
- package/dist/traits/overlay.js +277 -0
- package/dist/traits/pane-resize.d.ts +26 -0
- package/dist/traits/pane-resize.js +103 -0
- package/dist/traits/press-activation.d.ts +11 -0
- package/dist/traits/press-activation.js +55 -0
- package/dist/traits/roving-focus.d.ts +52 -0
- package/dist/traits/roving-focus.js +214 -0
- package/dist/traits/scroll-fade.d.ts +28 -0
- package/dist/traits/scroll-fade.js +120 -0
- package/dist/traits/selection-commit.d.ts +30 -0
- package/dist/traits/selection-commit.js +146 -0
- package/dist/traits/tabbable.d.ts +12 -0
- package/dist/traits/tabbable.js +59 -0
- package/dist/traits/track-user-invalid.d.ts +36 -0
- package/dist/traits/track-user-invalid.js +52 -0
- package/dist/traits/value-codec.d.ts +120 -0
- package/dist/traits/value-codec.js +497 -0
- package/dist/traits/value-drag.d.ts +18 -0
- package/dist/traits/value-drag.js +84 -0
- package/package.json +263 -0
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
/* color-picker.css — ui-color-picker, the OKLCH-internal 2-axis color-input control (color-picker.lld.md
|
|
2
|
+
* LLD-C7 · ADR-0123). Two clearly-sectioned blocks:
|
|
3
|
+
*
|
|
4
|
+
* [1] TOKEN BLOCK — `:where(ui-color-picker)` (specificity 0,0,0) DECLARES the `--ui-color-picker-*`
|
|
5
|
+
* chain: the pad's bespoke density-invariant block-size floor (the whole-shape law, SPEC-R8 — a
|
|
6
|
+
* picker that collapses to a line is the ui-slider DOT-bug's cousin), the shell gap (off the space
|
|
7
|
+
* scale), the pad border/radius (off --md-sys-color-outline-variant, so the pad never vanishes), and
|
|
8
|
+
* the thumb geometry. Size-class **pattern** (ADR-0123 cl.1): no new geometry ROW is invented — the
|
|
9
|
+
* channel rows are Indicator-class ui-sliders (self-sized under ADR-0038), the readout is a
|
|
10
|
+
* Control-height ui-text-field; only the pad's OWN block-size is bespoke here.
|
|
11
|
+
*
|
|
12
|
+
* [2] STYLES BLOCK — `@scope (ui-color-picker)` CONSUMES only `--ui-color-picker-*` (+ the shared
|
|
13
|
+
* focus-ring/space-scale tokens, the fleet-standard exception). The host is a flex COLUMN shell (pad →
|
|
14
|
+
* channels → readout), filling its container's inline-size by construction (a flex container is
|
|
15
|
+
* block-outside) — the CSS-less-consumer floor (ADR-0102 Lane A). The pad is `position:relative`
|
|
16
|
+
* (containing block for the canvas + thumb); the canvas fills the pad via `inset:0`; the thumb is a
|
|
17
|
+
* small circle positioned by `left`/`top` percentages the control sets on model change (JS geometry
|
|
18
|
+
* seam, the ui-slider `--value-pct` precedent generalized to two axes via inline style since a single
|
|
19
|
+
* custom property can't carry a pair). `[slot=presets]` (author content, a plain light-DOM sibling —
|
|
20
|
+
* no real Shadow `<slot>` exists in this light-DOM fleet; `slot` is a CSS/positioning discriminator,
|
|
21
|
+
* the text-field leading/trailing-adornment precedent) is ordered LAST via flex `order` and paints
|
|
22
|
+
* nothing when absent (no layout hole, SPEC-R4 AC3).
|
|
23
|
+
*
|
|
24
|
+
* Standalone stylesheet — linked via component-styles.css; never injected from color-picker.ts (behaviour-
|
|
25
|
+
* only `.ts`, no runtime style injection — plan §2).
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
/* ══════════════════════ [1] TOKEN BLOCK — :where(ui-color-picker) ══════════════════════════════ */
|
|
29
|
+
|
|
30
|
+
:where(ui-color-picker) {
|
|
31
|
+
/* Shell gap — off the space scale (the container-box.css / calendar-panel precedent). */
|
|
32
|
+
--ui-color-picker-gap: var(--space-sm, 0.5rem);
|
|
33
|
+
|
|
34
|
+
/* Pad geometry — a bespoke density-invariant floor (SPEC-R8: never collapse to a line). 10rem reads as
|
|
35
|
+
a comfortable, clearly-2D gesture surface at every density/scale tier (the ui-swatch box / ui-calendar
|
|
36
|
+
cell precedent: a bespoke token, not a §1 geometry-lookup row). */
|
|
37
|
+
--ui-color-picker-pad-block-size: 10rem;
|
|
38
|
+
--ui-color-picker-pad-radius: var(--md-sys-shape-corner-base, 0.375rem);
|
|
39
|
+
--ui-color-picker-pad-outline: var(--md-sys-color-neutral-outline-variant, #c4c4c4);
|
|
40
|
+
|
|
41
|
+
/* Thumb geometry — a small ringed circle, visible against any painted hue (a light ring + a dark ring
|
|
42
|
+
stacked, so the thumb reads on both light and dark pad colors — the swatch/calendar thumb-vs-any-
|
|
43
|
+
backdrop lesson, ADR-0094). */
|
|
44
|
+
--ui-color-picker-thumb-size: 1rem;
|
|
45
|
+
--ui-color-picker-thumb-ring: var(--md-sys-color-neutral-on-surface, #1c1c1e);
|
|
46
|
+
--ui-color-picker-thumb-ring-inner: var(--md-sys-color-neutral-surface-brightest, #fff);
|
|
47
|
+
--ui-color-picker-label-font: var(--md-sys-font-sm, 13px); /* TKT-0066 item 5 ruling: constants route through the own chain — the shared small-text size for channel labels, value readouts, and the format toggle */
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/* ══════════════════════ [2] STYLES BLOCK — @scope (ui-color-picker) ═══════════════════════════ */
|
|
51
|
+
|
|
52
|
+
@scope (ui-color-picker) {
|
|
53
|
+
/* Host: a flex COLUMN shell — fills its container's inline-size by construction (flex is block-outside),
|
|
54
|
+
the CSS-less-consumer floor (ADR-0102 Lane A). */
|
|
55
|
+
:scope {
|
|
56
|
+
display: flex;
|
|
57
|
+
flex-direction: column;
|
|
58
|
+
gap: var(--ui-color-picker-gap);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/* ── The pad ([data-part=pad]) — the 2-axis chroma×lightness area ────────────────────────────── */
|
|
62
|
+
:scope [data-part='pad'] {
|
|
63
|
+
order: 0;
|
|
64
|
+
position: relative;
|
|
65
|
+
display: block;
|
|
66
|
+
inline-size: 100%;
|
|
67
|
+
block-size: var(--ui-color-picker-pad-block-size);
|
|
68
|
+
border-radius: var(--ui-color-picker-pad-radius);
|
|
69
|
+
border: 1px solid var(--ui-color-picker-pad-outline);
|
|
70
|
+
overflow: hidden;
|
|
71
|
+
cursor: crosshair;
|
|
72
|
+
touch-action: none; /* give pointer events exclusively to the pad during drag — the ui-slider precedent */
|
|
73
|
+
-webkit-user-select: none;
|
|
74
|
+
user-select: none;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
:scope [data-part='pad']:focus-visible {
|
|
78
|
+
outline: var(--md-sys-state-focus-ring-width, 2px) solid var(--md-sys-color-focus-ring);
|
|
79
|
+
outline-offset: calc(-1 * var(--md-sys-state-focus-ring-width, 2px)); /* inset — the pad already has its own border */
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/* Disabled — pointer-inert; muted (the effectiveDisabled channel forwards `disabled` onto the composed
|
|
83
|
+
channel sliders + readout independently, see color-picker.ts). */
|
|
84
|
+
:scope[disabled] [data-part='pad'] {
|
|
85
|
+
pointer-events: none;
|
|
86
|
+
cursor: default;
|
|
87
|
+
opacity: 0.5;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/* The canvas fills the pad exactly — the per-pixel OKLCH→sRGB paint (LLD-C7). Decorative only: the pad
|
|
91
|
+
ITSELF carries the pointer/keyboard/ARIA surface, never the canvas. */
|
|
92
|
+
:scope [data-part='pad-canvas'] {
|
|
93
|
+
position: absolute;
|
|
94
|
+
inset: 0;
|
|
95
|
+
inline-size: 100%;
|
|
96
|
+
block-size: 100%;
|
|
97
|
+
display: block;
|
|
98
|
+
pointer-events: none;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/* The thumb — a small ringed circle, positioned by `left`/`top` percentages the control sets on every
|
|
102
|
+
model change (JS geometry seam — a pair of axes can't ride one CSS custom property the way the
|
|
103
|
+
1-D `--value-pct` slider precedent does). `transform: translate(-50%,-50%)` centres it on the point. */
|
|
104
|
+
:scope [data-part='pad-thumb'] {
|
|
105
|
+
position: absolute;
|
|
106
|
+
inline-size: var(--ui-color-picker-thumb-size);
|
|
107
|
+
block-size: var(--ui-color-picker-thumb-size);
|
|
108
|
+
border-radius: 50%;
|
|
109
|
+
transform: translate(-50%, -50%);
|
|
110
|
+
box-shadow:
|
|
111
|
+
0 0 0 2px var(--ui-color-picker-thumb-ring-inner),
|
|
112
|
+
0 0 0 3px var(--ui-color-picker-thumb-ring);
|
|
113
|
+
pointer-events: none;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/* ── Channels ([data-part=channels]) — hue always; chroma + lightness mirrored (SPEC-R6 spine) ──── */
|
|
117
|
+
:scope [data-part='channels'] {
|
|
118
|
+
order: 1;
|
|
119
|
+
display: flex;
|
|
120
|
+
flex-direction: column;
|
|
121
|
+
gap: var(--ui-color-picker-gap);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/* Each channel row: a fixed-width label, the composed ui-slider (flex:1), and a printed numeral
|
|
125
|
+
(ADR-0123 cl.8 non-color signifier — a plain ui-slider carries no visible text of its own). */
|
|
126
|
+
:scope [data-part='channel-row'] {
|
|
127
|
+
display: flex;
|
|
128
|
+
flex-direction: row;
|
|
129
|
+
align-items: center;
|
|
130
|
+
gap: var(--ui-color-picker-gap);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
:scope [data-part='channel-label'] {
|
|
134
|
+
inline-size: 4.5em;
|
|
135
|
+
flex-shrink: 0;
|
|
136
|
+
font-size: var(--ui-color-picker-label-font);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
:scope [data-part='channel-row'] ui-slider {
|
|
140
|
+
flex: 1;
|
|
141
|
+
min-inline-size: 0;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
:scope [data-part='channel-value'] {
|
|
145
|
+
inline-size: 3.5em;
|
|
146
|
+
flex-shrink: 0;
|
|
147
|
+
text-align: end;
|
|
148
|
+
font-size: var(--ui-color-picker-label-font);
|
|
149
|
+
font-variant-numeric: tabular-nums;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/* ── Readout ([data-part=readout]) — the editable ui-text-field + the composed ui-swatch preview ── */
|
|
153
|
+
:scope [data-part='readout'] {
|
|
154
|
+
order: 2;
|
|
155
|
+
display: flex;
|
|
156
|
+
flex-direction: row;
|
|
157
|
+
align-items: center;
|
|
158
|
+
gap: var(--ui-color-picker-gap);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
:scope [data-part='readout'] ui-text-field {
|
|
162
|
+
flex: 1;
|
|
163
|
+
min-inline-size: 0; /* the flex-child shrink-to-fit guard (the fleet's standard row-child pattern) */
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
:scope [data-part='eyedropper'] {
|
|
167
|
+
flex-shrink: 0;
|
|
168
|
+
background: transparent;
|
|
169
|
+
border: 1px solid var(--ui-color-picker-pad-outline);
|
|
170
|
+
border-radius: var(--ui-color-picker-pad-radius);
|
|
171
|
+
padding: 0.25rem 0.5rem;
|
|
172
|
+
font-size: var(--ui-color-picker-label-font);
|
|
173
|
+
cursor: pointer;
|
|
174
|
+
color: inherit;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
:scope [data-part='eyedropper']:focus-visible {
|
|
178
|
+
outline: var(--md-sys-state-focus-ring-width, 2px) solid var(--md-sys-color-focus-ring);
|
|
179
|
+
outline-offset: var(--md-sys-state-focus-ring-offset, 2px);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
/* ── Presets ([slot=presets]) — author-supplied content, ordered LAST; absent = no layout hole ──── */
|
|
183
|
+
:scope > [slot='presets'] {
|
|
184
|
+
order: 3;
|
|
185
|
+
display: flex;
|
|
186
|
+
flex-wrap: wrap;
|
|
187
|
+
gap: var(--ui-color-picker-gap);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
/* ── forced-colors (WHCM, SPEC-R8/cl.8) — the pad CANNOT paint a gradient under forced-colors; it
|
|
191
|
+
degrades to a Canvas field with a CanvasText-bordered thumb, never a fake system color. The channel
|
|
192
|
+
sliders + numeric readout remain the authoritative, operable input path (they are real controls that
|
|
193
|
+
survive WHCM unaided — the ADR-0118 "the printed value IS the content there" doctrine). ──────────── */
|
|
194
|
+
@media (forced-colors: active) {
|
|
195
|
+
:scope [data-part='pad'] {
|
|
196
|
+
background: Canvas;
|
|
197
|
+
border-color: CanvasText;
|
|
198
|
+
forced-color-adjust: none;
|
|
199
|
+
}
|
|
200
|
+
:scope [data-part='pad-canvas'] {
|
|
201
|
+
display: none; /* the gradient paint cannot honestly represent color under system-color flattening */
|
|
202
|
+
}
|
|
203
|
+
:scope [data-part='pad-thumb'] {
|
|
204
|
+
background: Canvas;
|
|
205
|
+
box-shadow: 0 0 0 2px CanvasText;
|
|
206
|
+
forced-color-adjust: none;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { UIFormElement, type ReactiveProps } from '../../dom/index.js';
|
|
2
|
+
import type { FormValue, ValidityResult, FieldLabelling } from '../../dom/index.js';
|
|
3
|
+
declare const props: {
|
|
4
|
+
value: {
|
|
5
|
+
reflect: true;
|
|
6
|
+
type: import("../../index.js").PropType<string>;
|
|
7
|
+
default: string;
|
|
8
|
+
attribute?: string | false;
|
|
9
|
+
};
|
|
10
|
+
format: {
|
|
11
|
+
reflect: true;
|
|
12
|
+
type: import("../../index.js").PropType<"hex" | "oklch">;
|
|
13
|
+
default: "hex" | "oklch";
|
|
14
|
+
attribute?: string | false;
|
|
15
|
+
};
|
|
16
|
+
name: {
|
|
17
|
+
reflect: true;
|
|
18
|
+
type: import("../../index.js").PropType<string>;
|
|
19
|
+
default: string;
|
|
20
|
+
attribute?: string | false;
|
|
21
|
+
};
|
|
22
|
+
disabled: {
|
|
23
|
+
reflect: true;
|
|
24
|
+
type: import("../../index.js").PropType<boolean>;
|
|
25
|
+
default: boolean;
|
|
26
|
+
attribute?: string | false;
|
|
27
|
+
};
|
|
28
|
+
required: {
|
|
29
|
+
reflect: true;
|
|
30
|
+
type: import("../../index.js").PropType<boolean>;
|
|
31
|
+
default: boolean;
|
|
32
|
+
attribute?: string | false;
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
export interface UIColorPickerElement extends ReactiveProps<typeof props> {
|
|
36
|
+
}
|
|
37
|
+
export declare class UIColorPickerElement extends UIFormElement {
|
|
38
|
+
#private;
|
|
39
|
+
static props: {
|
|
40
|
+
value: {
|
|
41
|
+
reflect: true;
|
|
42
|
+
type: import("../../index.js").PropType<string>;
|
|
43
|
+
default: string;
|
|
44
|
+
attribute?: string | false;
|
|
45
|
+
};
|
|
46
|
+
format: {
|
|
47
|
+
reflect: true;
|
|
48
|
+
type: import("../../index.js").PropType<"hex" | "oklch">;
|
|
49
|
+
default: "hex" | "oklch";
|
|
50
|
+
attribute?: string | false;
|
|
51
|
+
};
|
|
52
|
+
name: {
|
|
53
|
+
reflect: true;
|
|
54
|
+
type: import("../../index.js").PropType<string>;
|
|
55
|
+
default: string;
|
|
56
|
+
attribute?: string | false;
|
|
57
|
+
};
|
|
58
|
+
disabled: {
|
|
59
|
+
reflect: true;
|
|
60
|
+
type: import("../../index.js").PropType<boolean>;
|
|
61
|
+
default: boolean;
|
|
62
|
+
attribute?: string | false;
|
|
63
|
+
};
|
|
64
|
+
required: {
|
|
65
|
+
reflect: true;
|
|
66
|
+
type: import("../../index.js").PropType<boolean>;
|
|
67
|
+
default: boolean;
|
|
68
|
+
attribute?: string | false;
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
protected formValue(): FormValue;
|
|
72
|
+
protected formValidity(): ValidityResult;
|
|
73
|
+
protected formReset(): void;
|
|
74
|
+
protected formStateRestore(state: File | string | FormData | null): void;
|
|
75
|
+
protected formUserInvalid(): boolean;
|
|
76
|
+
/** The pad is the labelled part (the ui-calendar grid precedent — the host is the form element, the
|
|
77
|
+
* role/name ride the PART). Merges the field's label text into the pad's own fixed axis description
|
|
78
|
+
* (string concat — the pad has no stable self-describing id'd node to combine via aria-labelledby, unlike
|
|
79
|
+
* calendar's title span, so a text merge is the pragmatic mechanism here). */
|
|
80
|
+
protected applyFieldLabelling(refs: FieldLabelling | null): void;
|
|
81
|
+
protected connected(): void;
|
|
82
|
+
protected disconnected(): void;
|
|
83
|
+
}
|
|
84
|
+
export {};
|