@womp/kookie-ui 0.25.2 → 0.26.0
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/components.css +215 -527
- package/dist/cjs/components/_internal/base-checkbox.props.d.ts +0 -6
- package/dist/cjs/components/_internal/base-checkbox.props.d.ts.map +1 -1
- package/dist/cjs/components/_internal/base-checkbox.props.js +1 -1
- package/dist/cjs/components/_internal/base-checkbox.props.js.map +3 -3
- package/dist/cjs/components/_internal/base-radio.props.d.ts +0 -6
- package/dist/cjs/components/_internal/base-radio.props.d.ts.map +1 -1
- package/dist/cjs/components/_internal/base-radio.props.js +1 -1
- package/dist/cjs/components/_internal/base-radio.props.js.map +3 -3
- package/dist/cjs/components/checkbox-group.d.ts.map +1 -1
- package/dist/cjs/components/checkbox-group.js +1 -1
- package/dist/cjs/components/checkbox-group.js.map +3 -3
- package/dist/cjs/components/checkbox-group.props.d.ts +0 -6
- package/dist/cjs/components/checkbox-group.props.d.ts.map +1 -1
- package/dist/cjs/components/checkbox-group.props.js +1 -1
- package/dist/cjs/components/checkbox-group.props.js.map +3 -3
- package/dist/cjs/components/checkbox.js +1 -1
- package/dist/cjs/components/checkbox.js.map +3 -3
- package/dist/cjs/components/checkbox.props.js +1 -1
- package/dist/cjs/components/checkbox.props.js.map +3 -3
- package/dist/cjs/components/index.js +2 -2
- package/dist/cjs/components/index.js.map +4 -4
- package/dist/cjs/components/radio-group.d.ts.map +1 -1
- package/dist/cjs/components/radio-group.js +1 -1
- package/dist/cjs/components/radio-group.js.map +4 -4
- package/dist/cjs/components/radio-group.props.d.ts +0 -6
- package/dist/cjs/components/radio-group.props.d.ts.map +1 -1
- package/dist/cjs/components/radio-group.props.js +1 -1
- package/dist/cjs/components/radio-group.props.js.map +4 -4
- package/dist/cjs/components/radio.js +1 -1
- package/dist/cjs/components/radio.js.map +3 -3
- package/dist/cjs/components/radio.props.js +1 -1
- package/dist/cjs/components/radio.props.js.map +3 -3
- package/dist/cjs/components/slider.js +1 -1
- package/dist/cjs/components/slider.js.map +3 -3
- package/dist/cjs/components/slider.props.d.ts +0 -6
- package/dist/cjs/components/slider.props.d.ts.map +1 -1
- package/dist/cjs/components/slider.props.js +1 -1
- package/dist/cjs/components/slider.props.js.map +3 -3
- package/dist/cjs/components/switch.js +1 -1
- package/dist/cjs/components/switch.js.map +3 -3
- package/dist/cjs/components/switch.props.d.ts +0 -6
- package/dist/cjs/components/switch.props.d.ts.map +1 -1
- package/dist/cjs/components/switch.props.js +1 -1
- package/dist/cjs/components/switch.props.js.map +3 -3
- package/dist/cjs/index.js +4 -4
- package/dist/cjs/index.js.map +4 -4
- package/dist/esm/chunk-37GC4A2O.js +3 -0
- package/dist/esm/chunk-37GC4A2O.js.map +7 -0
- package/dist/esm/chunk-4S5L25RO.js +3 -0
- package/dist/esm/chunk-4S5L25RO.js.map +7 -0
- package/dist/esm/chunk-6BB2A6VU.js +3 -0
- package/dist/esm/chunk-6BB2A6VU.js.map +7 -0
- package/dist/esm/chunk-CBWERXF4.js +3 -0
- package/dist/esm/chunk-CBWERXF4.js.map +7 -0
- package/dist/esm/{chunk-XPVRXQSW.js → chunk-FCKJD2PW.js} +2 -2
- package/dist/esm/chunk-HV7USGHD.js +3 -0
- package/dist/esm/chunk-HV7USGHD.js.map +7 -0
- package/dist/esm/chunk-IE5ACUZS.js +3 -0
- package/dist/esm/{chunk-ZDSY6CJL.js → chunk-JS23YQ4M.js} +2 -2
- package/dist/esm/chunk-M3NI3D6R.js +3 -0
- package/dist/esm/chunk-M3NI3D6R.js.map +7 -0
- package/dist/esm/{chunk-PZZJH2LR.js → chunk-NZCAGHCL.js} +2 -2
- package/dist/esm/chunk-R7THBMND.js +3 -0
- package/dist/esm/chunk-R7THBMND.js.map +7 -0
- package/dist/esm/{chunk-3CY6H4TE.js → chunk-YDBFIJHB.js} +2 -2
- package/dist/esm/components/_internal/base-checkbox.props.d.ts +0 -6
- package/dist/esm/components/_internal/base-checkbox.props.d.ts.map +1 -1
- package/dist/esm/components/_internal/base-checkbox.props.js +1 -1
- package/dist/esm/components/_internal/base-radio.props.d.ts +0 -6
- package/dist/esm/components/_internal/base-radio.props.d.ts.map +1 -1
- package/dist/esm/components/_internal/base-radio.props.js +1 -1
- package/dist/esm/components/checkbox-group.d.ts.map +1 -1
- package/dist/esm/components/checkbox-group.js +1 -1
- package/dist/esm/components/checkbox-group.props.d.ts +0 -6
- package/dist/esm/components/checkbox-group.props.d.ts.map +1 -1
- package/dist/esm/components/checkbox-group.props.js +1 -1
- package/dist/esm/components/checkbox.js +1 -1
- package/dist/esm/components/checkbox.props.js +1 -1
- package/dist/esm/components/index.js +1 -1
- package/dist/esm/components/radio-group.d.ts.map +1 -1
- package/dist/esm/components/radio-group.js +1 -1
- package/dist/esm/components/radio-group.props.d.ts +0 -6
- package/dist/esm/components/radio-group.props.d.ts.map +1 -1
- package/dist/esm/components/radio-group.props.js +1 -1
- package/dist/esm/components/radio.js +1 -1
- package/dist/esm/components/radio.props.js +1 -1
- package/dist/esm/components/slider.js +1 -1
- package/dist/esm/components/slider.props.d.ts +0 -6
- package/dist/esm/components/slider.props.d.ts.map +1 -1
- package/dist/esm/components/slider.props.js +1 -1
- package/dist/esm/components/switch.js +1 -1
- package/dist/esm/components/switch.props.d.ts +0 -6
- package/dist/esm/components/switch.props.d.ts.map +1 -1
- package/dist/esm/components/switch.props.js +1 -1
- package/dist/esm/index.js +1 -1
- package/package.json +1 -1
- package/src/components/_internal/base-button.css +11 -5
- package/src/components/_internal/base-card.css +2 -2
- package/src/components/_internal/base-checkbox.css +39 -199
- package/src/components/_internal/base-checkbox.props.ts +0 -3
- package/src/components/_internal/base-dialog.css +1 -1
- package/src/components/_internal/base-menu.css +3 -2
- package/src/components/_internal/base-radio.css +38 -173
- package/src/components/_internal/base-radio.props.ts +0 -3
- package/src/components/accordion.css +2 -2
- package/src/components/avatar.css +2 -2
- package/src/components/chatbar.css +3 -4
- package/src/components/checkbox-group.css +1 -1
- package/src/components/checkbox-group.tsx +0 -2
- package/src/components/checkbox.css +1 -1
- package/src/components/chip.css +1 -1
- package/src/components/popover.css +1 -1
- package/src/components/radio-group.props.tsx +0 -5
- package/src/components/radio-group.tsx +0 -2
- package/src/components/segmented-control.css +4 -1
- package/src/components/select.css +14 -31
- package/src/components/shell.css +16 -16
- package/src/components/sidebar.css +10 -0
- package/src/components/slider.css +9 -40
- package/src/components/slider.props.tsx +0 -3
- package/src/components/switch.css +11 -52
- package/src/components/switch.props.tsx +0 -3
- package/src/components/text-area.css +16 -31
- package/src/components/text-field.css +16 -32
- package/src/components/toolbar.css +1 -1
- package/src/styles/tokens/color.css +31 -2
- package/src/styles/tokens/shadow.css +50 -122
- package/styles.css +260 -561
- package/tokens/base.css +45 -34
- package/tokens.css +45 -34
- package/dist/esm/chunk-2Z2I27ZS.js +0 -3
- package/dist/esm/chunk-2Z2I27ZS.js.map +0 -7
- package/dist/esm/chunk-AZHSPPBV.js +0 -3
- package/dist/esm/chunk-AZHSPPBV.js.map +0 -7
- package/dist/esm/chunk-BMKUGZ4I.js +0 -3
- package/dist/esm/chunk-FFJE25TJ.js +0 -3
- package/dist/esm/chunk-FFJE25TJ.js.map +0 -7
- package/dist/esm/chunk-FM3GBCX5.js +0 -3
- package/dist/esm/chunk-FM3GBCX5.js.map +0 -7
- package/dist/esm/chunk-N5H7C3PZ.js +0 -3
- package/dist/esm/chunk-N5H7C3PZ.js.map +0 -7
- package/dist/esm/chunk-RB5VHWAW.js +0 -3
- package/dist/esm/chunk-RB5VHWAW.js.map +0 -7
- package/dist/esm/chunk-ZFDHZEWN.js +0 -3
- package/dist/esm/chunk-ZFDHZEWN.js.map +0 -7
- /package/dist/esm/{chunk-XPVRXQSW.js.map → chunk-FCKJD2PW.js.map} +0 -0
- /package/dist/esm/{chunk-BMKUGZ4I.js.map → chunk-IE5ACUZS.js.map} +0 -0
- /package/dist/esm/{chunk-ZDSY6CJL.js.map → chunk-JS23YQ4M.js.map} +0 -0
- /package/dist/esm/{chunk-PZZJH2LR.js.map → chunk-NZCAGHCL.js.map} +0 -0
- /package/dist/esm/{chunk-3CY6H4TE.js.map → chunk-YDBFIJHB.js.map} +0 -0
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
|
|
31
31
|
:where(.kui-AccordionRoot:where(.kui-variant-raised)) {
|
|
32
32
|
background-color: var(--color-surface);
|
|
33
|
-
box-shadow: var(--
|
|
33
|
+
box-shadow: var(--surface-chrome);
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
:where(.kui-AccordionRoot:where(.kui-variant-soft)) {
|
|
@@ -158,7 +158,7 @@
|
|
|
158
158
|
@media (hover: hover) {
|
|
159
159
|
:where(.kui-AccordionRoot:where(.kui-variant-raised):hover) {
|
|
160
160
|
background-color: var(--accent-2);
|
|
161
|
-
box-shadow: var(--
|
|
161
|
+
box-shadow: var(--surface-chrome);
|
|
162
162
|
}
|
|
163
163
|
}
|
|
164
164
|
|
|
@@ -389,7 +389,7 @@
|
|
|
389
389
|
top: 0;
|
|
390
390
|
color: var(--accent-ink);
|
|
391
391
|
background-color: var(--color-surface);
|
|
392
|
-
box-shadow: var(--
|
|
392
|
+
box-shadow: var(--control-chrome);
|
|
393
393
|
}
|
|
394
394
|
|
|
395
395
|
&:where([data-disabled]) :where(.kui-AvatarFallback) {
|
|
@@ -405,7 +405,7 @@
|
|
|
405
405
|
@media (hover: hover) {
|
|
406
406
|
&:where(:hover:not(:disabled, [data-disabled])) {
|
|
407
407
|
background-color: var(--neutral-2);
|
|
408
|
-
box-shadow: var(--
|
|
408
|
+
box-shadow: var(--control-chrome);
|
|
409
409
|
|
|
410
410
|
& :where(.kui-AvatarFallback) {
|
|
411
411
|
background-color: inherit;
|
|
@@ -387,26 +387,25 @@
|
|
|
387
387
|
* *
|
|
388
388
|
***************************************************************************************************/
|
|
389
389
|
|
|
390
|
-
/* Raised variant
|
|
390
|
+
/* Raised variant: a surface, as v2's composer is. It casts the surface role. */
|
|
391
391
|
.kui-ChatbarBox:where(.kui-variant-raised) {
|
|
392
392
|
--text-area-border-width: 0px;
|
|
393
393
|
--v-selection-color: var(--focus-a5);
|
|
394
394
|
--v-focus-color: var(--focus-8);
|
|
395
395
|
|
|
396
396
|
background-color: var(--color-surface);
|
|
397
|
-
box-shadow: var(--
|
|
397
|
+
box-shadow: var(--surface-chrome);
|
|
398
398
|
|
|
399
399
|
/* Hover effects */
|
|
400
400
|
@media (hover: hover) {
|
|
401
401
|
&:where(:hover:not(:focus-within)):where(:not(.kui-ChatbarRoot:is([data-disabled], [data-readonly]) *)) {
|
|
402
402
|
background-color: var(--accent-2);
|
|
403
|
-
box-shadow: var(--shadow-3);
|
|
404
403
|
}
|
|
405
404
|
}
|
|
406
405
|
|
|
407
406
|
/* Focus state - accent ring */
|
|
408
407
|
&:where(:focus-within) {
|
|
409
|
-
box-shadow: var(--
|
|
408
|
+
box-shadow: var(--surface-chrome), 0 0 0 2px var(--v-focus-color, var(--focus-8));
|
|
410
409
|
}
|
|
411
410
|
}
|
|
412
411
|
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
width: fit-content;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
/* The disabled cursor and colours live in the base mark
|
|
15
|
+
/* The disabled cursor and colours live in the base mark. */
|
|
16
16
|
.kui-CheckboxGroupItemCheckbox {
|
|
17
17
|
&:where(:focus-visible)::before {
|
|
18
18
|
outline: var(--focus-ring-width, 2px) solid var(--focus-8);
|
|
@@ -41,7 +41,6 @@ const CheckboxGroupRoot = React.forwardRef<CheckboxGroupRootElement, CheckboxGro
|
|
|
41
41
|
{
|
|
42
42
|
color = checkboxGroupRootPropDefs.color.default,
|
|
43
43
|
size: sizeProp,
|
|
44
|
-
variant = checkboxGroupRootPropDefs.variant.default,
|
|
45
44
|
...props
|
|
46
45
|
}: ScopedProps<CheckboxGroupRootProps>,
|
|
47
46
|
forwardedRef,
|
|
@@ -54,7 +53,6 @@ const CheckboxGroupRoot = React.forwardRef<CheckboxGroupRootElement, CheckboxGro
|
|
|
54
53
|
scope={__scopeCheckboxGroup}
|
|
55
54
|
color={color}
|
|
56
55
|
size={size}
|
|
57
|
-
variant={variant}
|
|
58
56
|
>
|
|
59
57
|
<CheckboxGroupPrimitive.Root
|
|
60
58
|
{...checkboxGroupScope}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
@import './_internal/base-checkbox.css';
|
|
2
2
|
|
|
3
|
-
/* The disabled cursor and colours live in the base mark
|
|
3
|
+
/* The disabled cursor and colours live in the base mark. */
|
|
4
4
|
.kui-CheckboxRoot {
|
|
5
5
|
&:where(:focus-visible)::before {
|
|
6
6
|
outline: var(--focus-ring-width, 2px) solid var(--focus-8);
|
package/src/components/chip.css
CHANGED
|
@@ -150,7 +150,7 @@
|
|
|
150
150
|
position: relative;
|
|
151
151
|
top: var(--raised-elevation-offset);
|
|
152
152
|
color: var(--accent-ink);
|
|
153
|
-
box-shadow: var(--
|
|
153
|
+
box-shadow: var(--control-chrome);
|
|
154
154
|
|
|
155
155
|
--raised-surface: var(--color-surface);
|
|
156
156
|
background-color: var(--raised-surface);
|
|
@@ -1,21 +1,16 @@
|
|
|
1
|
-
import { baseRadioPropDefs } from './_internal/base-radio.props.js';
|
|
2
1
|
import { asChildPropDef } from '../props/as-child.prop.js';
|
|
3
2
|
import { colorPropDef } from '../props/color.prop.js';
|
|
4
3
|
|
|
5
4
|
import type { PropDef } from '../props/prop-def.js';
|
|
6
5
|
|
|
7
6
|
const sizes = ['1', '2', '3', '4'] as const;
|
|
8
|
-
// The same list as Radio: a group offers exactly what its items can draw.
|
|
9
|
-
const variants = baseRadioPropDefs.variant.values;
|
|
10
7
|
|
|
11
8
|
const radioGroupRootPropDefs = {
|
|
12
9
|
...asChildPropDef,
|
|
13
10
|
size: { type: 'enum', className: 'kui-r-size', values: sizes, default: '2', responsive: true },
|
|
14
|
-
variant: { type: 'enum', className: 'kui-variant', values: variants, default: 'raised' },
|
|
15
11
|
...colorPropDef,
|
|
16
12
|
} satisfies {
|
|
17
13
|
size: PropDef<(typeof sizes)[number]>;
|
|
18
|
-
variant: PropDef<(typeof variants)[number]>;
|
|
19
14
|
};
|
|
20
15
|
|
|
21
16
|
export { radioGroupRootPropDefs };
|
|
@@ -39,7 +39,6 @@ const RadioGroupRoot = React.forwardRef<RadioGroupRootElement, RadioGroupRootPro
|
|
|
39
39
|
{
|
|
40
40
|
color = radioGroupRootPropDefs.color.default,
|
|
41
41
|
size: sizeProp,
|
|
42
|
-
variant = radioGroupRootPropDefs.variant.default,
|
|
43
42
|
...props
|
|
44
43
|
}: ScopedProps<RadioGroupRootProps>,
|
|
45
44
|
forwardedRef
|
|
@@ -52,7 +51,6 @@ const RadioGroupRoot = React.forwardRef<RadioGroupRootElement, RadioGroupRootPro
|
|
|
52
51
|
scope={__scopeRadioGroup}
|
|
53
52
|
color={color}
|
|
54
53
|
size={size}
|
|
55
|
-
variant={variant}
|
|
56
54
|
>
|
|
57
55
|
<RadioGroupPrimitive.Root
|
|
58
56
|
{...radioGroupScope}
|
|
@@ -171,7 +171,7 @@
|
|
|
171
171
|
position: absolute;
|
|
172
172
|
border-radius: max(calc(var(--border-width-standard) * 0.5), calc(var(--segmented-control-border-radius) - var(--border-width-standard)));
|
|
173
173
|
background-color: var(--segmented-control-indicator-background-color);
|
|
174
|
-
box-shadow: var(--
|
|
174
|
+
box-shadow: var(--control-chrome);
|
|
175
175
|
content: '';
|
|
176
176
|
}
|
|
177
177
|
|
|
@@ -472,7 +472,10 @@
|
|
|
472
472
|
.kui-SegmentedControlIndicator::before {
|
|
473
473
|
background-color: Highlight;
|
|
474
474
|
}
|
|
475
|
+
/* The browser paints a Canvas backplate behind forced text, which covered the chosen label
|
|
476
|
+
* with a white box. The chosen segment opts out and paints its own system pair. */
|
|
475
477
|
.kui-SegmentedControlItem:where([data-state='on']) {
|
|
478
|
+
forced-color-adjust: none;
|
|
476
479
|
color: HighlightText;
|
|
477
480
|
}
|
|
478
481
|
.kui-SegmentedControlRoot:where([data-disabled]),
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
overflow: hidden;
|
|
54
54
|
z-index: 200; /* Above dialogs (100) so select inside dialogs/sheets work */
|
|
55
55
|
background-color: var(--color-surface);
|
|
56
|
-
box-shadow: var(--
|
|
56
|
+
box-shadow: var(--floating-chrome);
|
|
57
57
|
|
|
58
58
|
&:where([data-side]) {
|
|
59
59
|
min-width: var(--radix-select-trigger-width);
|
|
@@ -194,14 +194,13 @@
|
|
|
194
194
|
* *
|
|
195
195
|
***************************************************************************************************/
|
|
196
196
|
|
|
197
|
-
/* raised */
|
|
197
|
+
/* raised: the default. A field, as in v2: a flat soft fill with a faint edge, no shadow. */
|
|
198
198
|
|
|
199
199
|
.kui-SelectTrigger:where(.kui-variant-raised) {
|
|
200
200
|
position: relative;
|
|
201
|
-
top: var(--raised-elevation-offset);
|
|
202
201
|
color: var(--accent-ink);
|
|
203
|
-
background-color: var(--
|
|
204
|
-
box-shadow: var(--
|
|
202
|
+
background-color: var(--field-fill);
|
|
203
|
+
box-shadow: var(--control-chrome);
|
|
205
204
|
|
|
206
205
|
&:where(:focus-visible) {
|
|
207
206
|
outline: 2px solid var(--focus-8);
|
|
@@ -210,26 +209,21 @@
|
|
|
210
209
|
|
|
211
210
|
@media (hover: hover) {
|
|
212
211
|
&:where(:hover:not(:disabled)) {
|
|
213
|
-
background-color: var(--
|
|
214
|
-
box-shadow: var(--shadow-2);
|
|
212
|
+
background-color: var(--field-fill-hover);
|
|
215
213
|
}
|
|
216
214
|
}
|
|
217
215
|
|
|
218
|
-
&:where([data-state='open'])
|
|
219
|
-
background-color: var(--accent-3);
|
|
220
|
-
}
|
|
221
|
-
|
|
216
|
+
&:where([data-state='open']),
|
|
222
217
|
&:where(:active:not([data-state='open'], [data-disabled])) {
|
|
223
|
-
background-color: var(--
|
|
218
|
+
background-color: var(--neutral-5);
|
|
224
219
|
}
|
|
225
220
|
|
|
226
221
|
&:where(:disabled) {
|
|
227
222
|
color: var(--neutral-a8);
|
|
228
|
-
background-color: var(--
|
|
229
|
-
box-shadow:
|
|
223
|
+
background-color: var(--field-fill-disabled);
|
|
224
|
+
box-shadow: inset 0 0 0 1px var(--field-edge-disabled);
|
|
230
225
|
outline: none;
|
|
231
226
|
cursor: default;
|
|
232
|
-
top: 0;
|
|
233
227
|
}
|
|
234
228
|
|
|
235
229
|
&:where([data-placeholder]) {
|
|
@@ -423,27 +417,16 @@
|
|
|
423
417
|
* Only the border and the focus ring move; the fill stays the variant's.
|
|
424
418
|
*/
|
|
425
419
|
.kui-SelectTrigger:where([aria-invalid='true']) {
|
|
426
|
-
|
|
427
|
-
box-shadow: inset 0 0 0 1px var(--red-6);
|
|
420
|
+
box-shadow: inset 0 0 0 1px var(--red-6);
|
|
428
421
|
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
box-shadow: inset 0 0 0 1px var(--red-7);
|
|
432
|
-
}
|
|
433
|
-
}
|
|
434
|
-
&:where([data-state='open'], :active) {
|
|
422
|
+
@media (hover: hover) {
|
|
423
|
+
&:where(:hover:not(:disabled)) {
|
|
435
424
|
box-shadow: inset 0 0 0 1px var(--red-7);
|
|
436
425
|
}
|
|
437
426
|
}
|
|
438
427
|
|
|
439
|
-
&:where(
|
|
440
|
-
box-shadow:
|
|
441
|
-
|
|
442
|
-
@media (hover: hover) {
|
|
443
|
-
&:where(:hover:not(:disabled)) {
|
|
444
|
-
box-shadow: var(--shadow-2), inset 0 0 0 1px var(--red-7);
|
|
445
|
-
}
|
|
446
|
-
}
|
|
428
|
+
&:where([data-state='open'], :active) {
|
|
429
|
+
box-shadow: inset 0 0 0 1px var(--red-7);
|
|
447
430
|
}
|
|
448
431
|
|
|
449
432
|
&:where(:focus-visible) {
|
package/src/components/shell.css
CHANGED
|
@@ -465,7 +465,7 @@
|
|
|
465
465
|
--kui-shell-row: 1 / -1;
|
|
466
466
|
--kui-shell-col: 1 / -1;
|
|
467
467
|
--kui-shell-surface: var(--color-surface);
|
|
468
|
-
--kui-shell-shadow: var(--
|
|
468
|
+
--kui-shell-shadow: var(--dialog-chrome);
|
|
469
469
|
--kui-shell-edge: 1px;
|
|
470
470
|
--kui-shell-cap: calc(100% - var(--space-9) - var(--kui-shell-start, 0px));
|
|
471
471
|
--kui-shell-offset: var(--shell-rail-offset, 0px);
|
|
@@ -479,7 +479,7 @@
|
|
|
479
479
|
--kui-shell-row: 2 / 3;
|
|
480
480
|
--kui-shell-col: 1 / -1;
|
|
481
481
|
--kui-shell-surface: var(--color-surface);
|
|
482
|
-
--kui-shell-shadow: var(--
|
|
482
|
+
--kui-shell-shadow: var(--surface-chrome);
|
|
483
483
|
--kui-shell-edge: 1px;
|
|
484
484
|
--kui-shell-cap: initial;
|
|
485
485
|
--kui-shell-offset: var(--shell-rail-offset, 0px);
|
|
@@ -512,7 +512,7 @@
|
|
|
512
512
|
--kui-shell-row: 1 / -1;
|
|
513
513
|
--kui-shell-col: 1 / -1;
|
|
514
514
|
--kui-shell-surface: var(--color-surface);
|
|
515
|
-
--kui-shell-shadow: var(--
|
|
515
|
+
--kui-shell-shadow: var(--dialog-chrome);
|
|
516
516
|
--kui-shell-edge: 1px;
|
|
517
517
|
--kui-shell-cap: calc(100% - var(--space-9) - var(--kui-shell-start, 0px));
|
|
518
518
|
--kui-shell-offset: var(--shell-rail-offset, 0px);
|
|
@@ -526,7 +526,7 @@
|
|
|
526
526
|
--kui-shell-row: 2 / 3;
|
|
527
527
|
--kui-shell-col: 1 / -1;
|
|
528
528
|
--kui-shell-surface: var(--color-surface);
|
|
529
|
-
--kui-shell-shadow: var(--
|
|
529
|
+
--kui-shell-shadow: var(--surface-chrome);
|
|
530
530
|
--kui-shell-edge: 1px;
|
|
531
531
|
--kui-shell-cap: initial;
|
|
532
532
|
--kui-shell-offset: var(--shell-rail-offset, 0px);
|
|
@@ -567,7 +567,7 @@
|
|
|
567
567
|
--kui-shell-row: 1 / -1;
|
|
568
568
|
--kui-shell-col: 1 / -1;
|
|
569
569
|
--kui-shell-surface: var(--color-surface);
|
|
570
|
-
--kui-shell-shadow: var(--
|
|
570
|
+
--kui-shell-shadow: var(--dialog-chrome);
|
|
571
571
|
--kui-shell-edge: 1px;
|
|
572
572
|
--kui-shell-cap: calc(100% - var(--space-9) - var(--kui-shell-start, 0px));
|
|
573
573
|
--kui-shell-offset: var(--shell-rail-offset, 0px);
|
|
@@ -581,7 +581,7 @@
|
|
|
581
581
|
--kui-shell-row: 2 / 3;
|
|
582
582
|
--kui-shell-col: 1 / -1;
|
|
583
583
|
--kui-shell-surface: var(--color-surface);
|
|
584
|
-
--kui-shell-shadow: var(--
|
|
584
|
+
--kui-shell-shadow: var(--surface-chrome);
|
|
585
585
|
--kui-shell-edge: 1px;
|
|
586
586
|
--kui-shell-cap: initial;
|
|
587
587
|
--kui-shell-offset: var(--shell-rail-offset, 0px);
|
|
@@ -623,7 +623,7 @@
|
|
|
623
623
|
--kui-shell-row: 1 / -1;
|
|
624
624
|
--kui-shell-col: 1 / -1;
|
|
625
625
|
--kui-shell-surface: var(--color-surface);
|
|
626
|
-
--kui-shell-shadow: var(--
|
|
626
|
+
--kui-shell-shadow: var(--dialog-chrome);
|
|
627
627
|
--kui-shell-edge: 1px;
|
|
628
628
|
--kui-shell-cap: calc(100% - var(--space-9) - var(--kui-shell-start, 0px));
|
|
629
629
|
--kui-shell-offset: var(--shell-rail-offset, 0px);
|
|
@@ -637,7 +637,7 @@
|
|
|
637
637
|
--kui-shell-row: 2 / 3;
|
|
638
638
|
--kui-shell-col: 1 / -1;
|
|
639
639
|
--kui-shell-surface: var(--color-surface);
|
|
640
|
-
--kui-shell-shadow: var(--
|
|
640
|
+
--kui-shell-shadow: var(--surface-chrome);
|
|
641
641
|
--kui-shell-edge: 1px;
|
|
642
642
|
--kui-shell-cap: initial;
|
|
643
643
|
--kui-shell-offset: var(--shell-rail-offset, 0px);
|
|
@@ -679,7 +679,7 @@
|
|
|
679
679
|
--kui-shell-row: 1 / -1;
|
|
680
680
|
--kui-shell-col: 1 / -1;
|
|
681
681
|
--kui-shell-surface: var(--color-surface);
|
|
682
|
-
--kui-shell-shadow: var(--
|
|
682
|
+
--kui-shell-shadow: var(--dialog-chrome);
|
|
683
683
|
--kui-shell-edge: 1px;
|
|
684
684
|
--kui-shell-cap: calc(100% - var(--space-9) - var(--kui-shell-start, 0px));
|
|
685
685
|
--kui-shell-offset: var(--shell-rail-offset, 0px);
|
|
@@ -693,7 +693,7 @@
|
|
|
693
693
|
--kui-shell-row: 2 / 3;
|
|
694
694
|
--kui-shell-col: 1 / -1;
|
|
695
695
|
--kui-shell-surface: var(--color-surface);
|
|
696
|
-
--kui-shell-shadow: var(--
|
|
696
|
+
--kui-shell-shadow: var(--surface-chrome);
|
|
697
697
|
--kui-shell-edge: 1px;
|
|
698
698
|
--kui-shell-cap: initial;
|
|
699
699
|
--kui-shell-offset: var(--shell-rail-offset, 0px);
|
|
@@ -735,7 +735,7 @@
|
|
|
735
735
|
--kui-shell-row: 1 / -1;
|
|
736
736
|
--kui-shell-col: 1 / -1;
|
|
737
737
|
--kui-shell-surface: var(--color-surface);
|
|
738
|
-
--kui-shell-shadow: var(--
|
|
738
|
+
--kui-shell-shadow: var(--dialog-chrome);
|
|
739
739
|
--kui-shell-edge: 1px;
|
|
740
740
|
--kui-shell-cap: calc(100% - var(--space-9) - var(--kui-shell-start, 0px));
|
|
741
741
|
--kui-shell-offset: var(--shell-rail-offset, 0px);
|
|
@@ -749,7 +749,7 @@
|
|
|
749
749
|
--kui-shell-row: 2 / 3;
|
|
750
750
|
--kui-shell-col: 1 / -1;
|
|
751
751
|
--kui-shell-surface: var(--color-surface);
|
|
752
|
-
--kui-shell-shadow: var(--
|
|
752
|
+
--kui-shell-shadow: var(--surface-chrome);
|
|
753
753
|
--kui-shell-edge: 1px;
|
|
754
754
|
--kui-shell-cap: initial;
|
|
755
755
|
--kui-shell-offset: var(--shell-rail-offset, 0px);
|
|
@@ -791,7 +791,7 @@
|
|
|
791
791
|
--kui-shell-row: 1 / -1;
|
|
792
792
|
--kui-shell-col: 1 / -1;
|
|
793
793
|
--kui-shell-surface: var(--color-surface);
|
|
794
|
-
--kui-shell-shadow: var(--
|
|
794
|
+
--kui-shell-shadow: var(--dialog-chrome);
|
|
795
795
|
--kui-shell-edge: 1px;
|
|
796
796
|
--kui-shell-cap: calc(100% - var(--space-9) - var(--kui-shell-start, 0px));
|
|
797
797
|
--kui-shell-offset: var(--shell-rail-offset, 0px);
|
|
@@ -805,7 +805,7 @@
|
|
|
805
805
|
--kui-shell-row: 2 / 3;
|
|
806
806
|
--kui-shell-col: 1 / -1;
|
|
807
807
|
--kui-shell-surface: var(--color-surface);
|
|
808
|
-
--kui-shell-shadow: var(--
|
|
808
|
+
--kui-shell-shadow: var(--surface-chrome);
|
|
809
809
|
--kui-shell-edge: 1px;
|
|
810
810
|
--kui-shell-cap: initial;
|
|
811
811
|
--kui-shell-offset: var(--shell-rail-offset, 0px);
|
|
@@ -839,7 +839,7 @@
|
|
|
839
839
|
--kui-shell-row: 2 / 3;
|
|
840
840
|
--kui-shell-col: 1 / -1;
|
|
841
841
|
--kui-shell-surface: var(--color-surface);
|
|
842
|
-
--kui-shell-shadow: var(--
|
|
842
|
+
--kui-shell-shadow: var(--surface-chrome);
|
|
843
843
|
--kui-shell-edge: 1px;
|
|
844
844
|
--kui-shell-offset: var(--shell-rail-offset, 0px);
|
|
845
845
|
--kui-shell-handle: none;
|
|
@@ -897,7 +897,7 @@
|
|
|
897
897
|
margin: var(--shell-inset-gap);
|
|
898
898
|
border-radius: var(--radius-surface-1);
|
|
899
899
|
background: var(--color-page);
|
|
900
|
-
box-shadow: var(--
|
|
900
|
+
box-shadow: var(--surface-chrome);
|
|
901
901
|
}
|
|
902
902
|
|
|
903
903
|
/*
|
|
@@ -964,3 +964,13 @@
|
|
|
964
964
|
color: var(--accent-solid-contrast);
|
|
965
965
|
}
|
|
966
966
|
}
|
|
967
|
+
|
|
968
|
+
/* High contrast drops background colours, so the current row lost its only mark. It takes the
|
|
969
|
+
* system highlight pair instead, as a chosen segment does. */
|
|
970
|
+
@media (forced-colors: active) {
|
|
971
|
+
.kui-SidebarMenuButton:where([data-active]) {
|
|
972
|
+
forced-color-adjust: none;
|
|
973
|
+
background-color: Highlight;
|
|
974
|
+
color: HighlightText;
|
|
975
|
+
}
|
|
976
|
+
}
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
inset: calc(var(--slider-thumb-inset-factor) * var(--slider-thumb-overshoot-base, var(--slider-track-size)) * -1);
|
|
82
82
|
background-color: var(--accent-solid-thumb);
|
|
83
83
|
border-radius: var(--slider-thumb-radius);
|
|
84
|
-
box-shadow: var(--slider-thumb-box-shadow, var(--
|
|
84
|
+
box-shadow: var(--slider-thumb-box-shadow, var(--grip-chrome));
|
|
85
85
|
cursor: pointer;
|
|
86
86
|
}
|
|
87
87
|
|
|
@@ -142,54 +142,23 @@
|
|
|
142
142
|
|
|
143
143
|
/***************************************************************************************************
|
|
144
144
|
* *
|
|
145
|
-
*
|
|
145
|
+
* THE LOOK *
|
|
146
146
|
* *
|
|
147
147
|
***************************************************************************************************/
|
|
148
148
|
|
|
149
|
-
/*
|
|
149
|
+
/* One look, as in v2. The track is the switch's well, a soft fill with no edge; the range is the
|
|
150
|
+
* accent solid; the thumb is the switch's grip. */
|
|
150
151
|
|
|
151
|
-
.kui-
|
|
152
|
-
|
|
153
|
-
background-color: var(--neutral-2);
|
|
154
|
-
box-shadow: inset 0 0 0 1px var(--neutral-6);
|
|
155
|
-
|
|
156
|
-
&:where([data-disabled]) {
|
|
157
|
-
box-shadow: inset 0 0 0 1px var(--neutral-5);
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
& :where(.kui-SliderRange) {
|
|
162
|
-
background-color: var(--accent-solid);
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
/* soft */
|
|
167
|
-
|
|
168
|
-
.kui-SliderRoot:where(.kui-variant-soft) {
|
|
169
|
-
& :where(.kui-SliderTrack) {
|
|
170
|
-
background-color: var(--neutral-3);
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
& :where(.kui-SliderRange) {
|
|
174
|
-
background-color: var(--accent-solid);
|
|
175
|
-
}
|
|
152
|
+
.kui-SliderTrack {
|
|
153
|
+
background-color: var(--color-track);
|
|
176
154
|
}
|
|
177
155
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
.kui-SliderRoot:where(.kui-variant-outline) {
|
|
181
|
-
& :where(.kui-SliderTrack) {
|
|
182
|
-
/* Base state: no background, just border */
|
|
183
|
-
box-shadow: inset 0 0 0 1px var(--neutral-6);
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
& :where(.kui-SliderRange) {
|
|
187
|
-
background-color: var(--accent-solid);
|
|
188
|
-
}
|
|
156
|
+
.kui-SliderRange {
|
|
157
|
+
background-color: var(--accent-solid);
|
|
189
158
|
}
|
|
190
159
|
|
|
191
160
|
/* all disabled Sliders: a colour remap, never opacity, and a default cursor.
|
|
192
|
-
* These come after
|
|
161
|
+
* These come after the look at the same specificity, so they win by order. */
|
|
193
162
|
|
|
194
163
|
[data-disabled] {
|
|
195
164
|
.kui-SliderRoot:where(&) {
|
|
@@ -4,18 +4,15 @@ import { radiusPropDef } from '../props/radius.prop.js';
|
|
|
4
4
|
import type { PropDef } from '../props/prop-def.js';
|
|
5
5
|
|
|
6
6
|
const sizes = ['1', '2', '3', '4'] as const;
|
|
7
|
-
const variants = ['surface', 'soft', 'outline'] as const;
|
|
8
7
|
|
|
9
8
|
const sliderPropDefs = {
|
|
10
9
|
size: { type: 'enum', className: 'kui-r-size', values: sizes, default: '2', responsive: true },
|
|
11
|
-
variant: { type: 'enum', className: 'kui-variant', values: variants, default: 'surface' },
|
|
12
10
|
showTickLabels: { type: 'boolean' },
|
|
13
11
|
snapToTicks: { type: 'boolean' },
|
|
14
12
|
...colorPropDef,
|
|
15
13
|
...radiusPropDef,
|
|
16
14
|
} satisfies {
|
|
17
15
|
size: PropDef<(typeof sizes)[number]>;
|
|
18
|
-
variant: PropDef<(typeof variants)[number]>;
|
|
19
16
|
showTickLabels: PropDef<boolean>;
|
|
20
17
|
snapToTicks: PropDef<boolean>;
|
|
21
18
|
};
|
|
@@ -30,13 +30,14 @@
|
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
.kui-SwitchThumb {
|
|
33
|
-
|
|
33
|
+
/* The grip: the surface colour, near-white in dark. */
|
|
34
|
+
background-color: var(--color-thumb);
|
|
34
35
|
position: absolute;
|
|
35
36
|
inset-inline-start: var(--switch-thumb-inset);
|
|
36
37
|
width: var(--switch-thumb-size);
|
|
37
38
|
height: var(--switch-thumb-size);
|
|
38
39
|
border-radius: 9999px;
|
|
39
|
-
box-shadow: var(--
|
|
40
|
+
box-shadow: var(--grip-chrome);
|
|
40
41
|
|
|
41
42
|
&:where([data-state='checked']) {
|
|
42
43
|
background-color: var(--accent-solid-thumb);
|
|
@@ -82,75 +83,33 @@
|
|
|
82
83
|
|
|
83
84
|
/***************************************************************************************************
|
|
84
85
|
* *
|
|
85
|
-
*
|
|
86
|
+
* THE LOOK *
|
|
86
87
|
* *
|
|
87
88
|
***************************************************************************************************/
|
|
88
89
|
|
|
89
|
-
/*
|
|
90
|
+
/* One look, as in v2. Off, the track is a well: a soft fill with no edge. On, it is the accent
|
|
91
|
+
* solid. Hover is one step darker, press two. Disabled switches take neither. */
|
|
90
92
|
|
|
91
|
-
.kui-SwitchRoot
|
|
93
|
+
.kui-SwitchRoot {
|
|
92
94
|
&::before {
|
|
93
|
-
background-color: var(--
|
|
94
|
-
box-shadow: inset 0 0 0 1px var(--neutral-6);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
&:where([data-state='checked'])::before {
|
|
98
|
-
background-color: var(--accent-solid);
|
|
95
|
+
background-color: var(--color-track);
|
|
99
96
|
box-shadow: none;
|
|
100
97
|
}
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
/* soft */
|
|
104
|
-
|
|
105
|
-
.kui-SwitchRoot:where(.kui-variant-soft) {
|
|
106
|
-
&::before {
|
|
107
|
-
background-color: var(--neutral-3);
|
|
108
|
-
}
|
|
109
98
|
|
|
110
99
|
&:where([data-state='checked'])::before {
|
|
111
100
|
background-color: var(--accent-solid);
|
|
112
101
|
}
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
/* outline */
|
|
116
|
-
|
|
117
|
-
.kui-SwitchRoot:where(.kui-variant-outline) {
|
|
118
|
-
&::before {
|
|
119
|
-
/* Base state: no background, just border */
|
|
120
|
-
box-shadow: inset 0 0 0 1px var(--neutral-6);
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
&:where([data-state='checked'])::before {
|
|
124
|
-
background-color: var(--accent-solid);
|
|
125
|
-
box-shadow: none;
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
/* Hover is one step up the variant's own ramp, press two. Disabled switches take neither. */
|
|
130
|
-
|
|
131
|
-
.kui-SwitchRoot {
|
|
132
|
-
--switch-off-hover: var(--neutral-a2);
|
|
133
|
-
--switch-off-active: var(--neutral-a3);
|
|
134
|
-
|
|
135
|
-
&:where(.kui-variant-surface) {
|
|
136
|
-
--switch-off-hover: var(--neutral-3);
|
|
137
|
-
--switch-off-active: var(--neutral-4);
|
|
138
|
-
}
|
|
139
|
-
&:where(.kui-variant-soft) {
|
|
140
|
-
--switch-off-hover: var(--neutral-4);
|
|
141
|
-
--switch-off-active: var(--neutral-5);
|
|
142
|
-
}
|
|
143
102
|
|
|
144
103
|
@media (hover: hover) {
|
|
145
104
|
&:where(:hover:not([data-disabled]))::before {
|
|
146
|
-
background-color: var(--
|
|
105
|
+
background-color: var(--color-track-hover);
|
|
147
106
|
}
|
|
148
107
|
&:where(:hover:not([data-disabled]):is([data-state='checked']))::before {
|
|
149
108
|
background-color: var(--accent-solid-hover);
|
|
150
109
|
}
|
|
151
110
|
}
|
|
152
111
|
&:where(:active:not([data-disabled]))::before {
|
|
153
|
-
background-color: var(--
|
|
112
|
+
background-color: var(--color-track-active);
|
|
154
113
|
}
|
|
155
114
|
&:where(:active:not([data-disabled]):is([data-state='checked']))::before {
|
|
156
115
|
background-color: var(--accent-solid-active);
|
|
@@ -158,7 +117,7 @@
|
|
|
158
117
|
}
|
|
159
118
|
|
|
160
119
|
/* all disabled Switches: a colour remap, never opacity, and a default cursor.
|
|
161
|
-
* These come after
|
|
120
|
+
* These come after the look at the same specificity, so they win by order. */
|
|
162
121
|
|
|
163
122
|
[data-disabled] {
|
|
164
123
|
.kui-SwitchRoot:where(&) {
|
|
@@ -3,15 +3,12 @@ import { colorPropDef } from '../props/color.prop.js';
|
|
|
3
3
|
import type { PropDef } from '../props/prop-def.js';
|
|
4
4
|
|
|
5
5
|
const sizes = ['1', '2', '3', '4'] as const;
|
|
6
|
-
const variants = ['surface', 'soft', 'outline'] as const;
|
|
7
6
|
|
|
8
7
|
const switchPropDefs = {
|
|
9
8
|
size: { type: 'enum', className: 'kui-r-size', values: sizes, default: '2', responsive: true },
|
|
10
|
-
variant: { type: 'enum', className: 'kui-variant', values: variants, default: 'surface' },
|
|
11
9
|
...colorPropDef,
|
|
12
10
|
} satisfies {
|
|
13
11
|
size: PropDef<(typeof sizes)[number]>;
|
|
14
|
-
variant: PropDef<(typeof variants)[number]>;
|
|
15
12
|
};
|
|
16
13
|
|
|
17
14
|
export { switchPropDefs };
|