@dumiflex/wp-kit 0.8.0 → 0.10.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/CHANGELOG.md +24 -0
- package/package.json +1 -1
- package/src/Chip.vue +42 -1
- package/src/Combobox.vue +9 -0
- package/src/ImageGrid.vue +32 -5
- package/src/RadioGroup.vue +26 -6
- package/src/WpSwitch.vue +3 -1
- package/src/tokens.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.10.0](https://github.com/DumiFlex/wp-kit/compare/v0.9.0...v0.10.0) (2026-11-03)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* Combobox mono, for variable names and ids ([e9ddc4f](https://github.com/DumiFlex/wp-kit/commit/e9ddc4f7a5c78e1a2f2adfe8d69046f771d95840))
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* Chip carries its own base styles, so it is styled on the ComfyUI canvas ([5d81a79](https://github.com/DumiFlex/wp-kit/commit/5d81a791010a9a72c5491dfc08cc1ed44af1b25f))
|
|
14
|
+
|
|
15
|
+
## [0.9.0](https://github.com/DumiFlex/wp-kit/compare/v0.8.0...v0.9.0) (2026-11-03)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### Features
|
|
19
|
+
|
|
20
|
+
* named colour swatches with a swatch slot, and a natural-shape ImageGrid ([4184232](https://github.com/DumiFlex/wp-kit/commit/4184232477b87557298c10c1b7d9310664f6c0a2))
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
### Bug Fixes
|
|
24
|
+
|
|
25
|
+
* draw the switch track in one piece at canvas zooms ([#84](https://github.com/DumiFlex/wp-kit/issues/84)) ([9d38d0d](https://github.com/DumiFlex/wp-kit/commit/9d38d0d71dc2a855f72de8925cd774eb05b35d10))
|
|
26
|
+
|
|
3
27
|
## [0.8.0](https://github.com/DumiFlex/wp-kit/compare/v0.7.1...v0.8.0) (2026-11-03)
|
|
4
28
|
|
|
5
29
|
|
package/package.json
CHANGED
package/src/Chip.vue
CHANGED
|
@@ -129,6 +129,47 @@ function onRemove(e: MouseEvent) {
|
|
|
129
129
|
</template>
|
|
130
130
|
|
|
131
131
|
<style scoped>
|
|
132
|
+
/* The base pill, its tones, dot and ✕ live here too, not only in the page
|
|
133
|
+
theme (theme/tokens.css), so a Chip on the ComfyUI canvas, which never
|
|
134
|
+
loads that sheet, is styled the same. Shared tokens only. */
|
|
135
|
+
.wp-chip {
|
|
136
|
+
display: inline-flex; align-items: center; gap: 4px;
|
|
137
|
+
padding: 1px 7px;
|
|
138
|
+
border: 1px solid var(--wp-border);
|
|
139
|
+
border-radius: var(--wp-radius-cap, 999px);
|
|
140
|
+
background: var(--wp-bg-3);
|
|
141
|
+
color: var(--wp-text-muted);
|
|
142
|
+
font-family: var(--wp-font-sans);
|
|
143
|
+
font-size: 10.5px;
|
|
144
|
+
font-weight: 500;
|
|
145
|
+
white-space: nowrap;
|
|
146
|
+
}
|
|
147
|
+
.wp-chip--accent {
|
|
148
|
+
color: var(--wp-accent-text-strong);
|
|
149
|
+
background: color-mix(in oklab, var(--wp-accent-500) 16%, transparent);
|
|
150
|
+
border-color: color-mix(in oklab, var(--wp-accent-500) 38%, transparent);
|
|
151
|
+
}
|
|
152
|
+
.wp-chip--success { color: var(--wp-success); background: color-mix(in oklab, var(--wp-success) 14%, transparent); border-color: color-mix(in oklab, var(--wp-success) 36%, transparent); }
|
|
153
|
+
.wp-chip--warn { color: var(--wp-warn); background: color-mix(in oklab, var(--wp-warn) 14%, transparent); border-color: color-mix(in oklab, var(--wp-warn) 36%, transparent); }
|
|
154
|
+
.wp-chip--danger { color: var(--wp-danger); background: color-mix(in oklab, var(--wp-danger) 14%, transparent); border-color: color-mix(in oklab, var(--wp-danger) 36%, transparent); }
|
|
155
|
+
.wp-chip--info { color: var(--wp-info); background: color-mix(in oklab, var(--wp-info) 14%, transparent); border-color: color-mix(in oklab, var(--wp-info) 36%, transparent); }
|
|
156
|
+
.wp-chip__dot { width: 7px; height: 7px; border-radius: var(--wp-radius-cap, 999px); background: currentColor; }
|
|
157
|
+
.wp-chip__close {
|
|
158
|
+
position: relative; display: inline-grid; place-items: center;
|
|
159
|
+
width: 12px; height: 12px; margin: 0 -2px 0 1px; padding: 0;
|
|
160
|
+
border: none; border-radius: 0; background: none;
|
|
161
|
+
color: inherit; opacity: 0.65; cursor: pointer; line-height: 0;
|
|
162
|
+
transition: opacity var(--wp-motion-quick) ease;
|
|
163
|
+
}
|
|
164
|
+
.wp-chip__close::after { content: ""; position: absolute; inset: -4px; }
|
|
165
|
+
.wp-chip__close:hover { opacity: 1; }
|
|
166
|
+
.wp-chip__close:focus-visible { outline: 2px solid var(--wp-accent-500); outline-offset: 1px; border-radius: min(2px, var(--wp-radius-cap, 999px)); opacity: 1; }
|
|
167
|
+
.wp-chip--color { font-weight: 500; }
|
|
168
|
+
/* A bordered pill on the canvas: a radius a hair under half its height, so
|
|
169
|
+
Firefox draws it in one piece at ComfyUI's zooms (0.64, 0.8). */
|
|
170
|
+
.wp-chip--xs { border-radius: min(9px, var(--wp-radius-cap, 999px)); }
|
|
171
|
+
.wp-chip--sm { border-radius: min(calc(var(--wp-control-h-sm) / 2 - 1px), var(--wp-radius-cap, 999px)); }
|
|
172
|
+
.wp-chip--md { border-radius: min(calc(var(--wp-control-h-md) / 2 - 1px), var(--wp-radius-cap, 999px)); }
|
|
132
173
|
/* xs is the base `.wp-chip` in theme/tokens.css, held at 20px here: its
|
|
133
174
|
content height was 19.2px, which put every icon half a pixel off. */
|
|
134
175
|
.wp-chip--xs { box-sizing: border-box; height: 20px; }
|
|
@@ -207,7 +248,7 @@ function onRemove(e: MouseEvent) {
|
|
|
207
248
|
}
|
|
208
249
|
.wp-chip__stat-n {
|
|
209
250
|
font-size: var(--wp-text-xl);
|
|
210
|
-
font-weight:
|
|
251
|
+
font-weight: 600;
|
|
211
252
|
font-variant-numeric: tabular-nums;
|
|
212
253
|
line-height: 1.2;
|
|
213
254
|
}
|
package/src/Combobox.vue
CHANGED
|
@@ -10,6 +10,8 @@
|
|
|
10
10
|
* <Combobox v-model="model" :options="models" aria-label="Model" />
|
|
11
11
|
* <Combobox v-model="cats" multiple :options="categories" aria-label="Categories" />
|
|
12
12
|
*
|
|
13
|
+
* `mono` sets the box and the options in the mono font (variable names, ids).
|
|
14
|
+
*
|
|
13
15
|
* APG "combobox with list autocomplete": focus stays in the text field and
|
|
14
16
|
* the lit option is named by aria-activedescendant.
|
|
15
17
|
*/
|
|
@@ -33,6 +35,8 @@ const props = withDefaults(defineProps<{
|
|
|
33
35
|
emptyText?: string | undefined;
|
|
34
36
|
/** How many options the list shows at once (it scrolls past that). */
|
|
35
37
|
limit?: number | undefined;
|
|
38
|
+
/** The box and the options in the mono font (variable names, ids). */
|
|
39
|
+
mono?: boolean | undefined;
|
|
36
40
|
}>(), {
|
|
37
41
|
multiple: false, placeholder: "Choose…", size: "md", ariaLabel: "Choose",
|
|
38
42
|
clearable: false, emptyText: "No matches", limit: 50,
|
|
@@ -186,6 +190,7 @@ function setOpen(v: boolean): void {
|
|
|
186
190
|
:data-multiple="multiple || undefined"
|
|
187
191
|
:data-disabled="disabled || undefined"
|
|
188
192
|
:data-invalid="invalid || undefined"
|
|
193
|
+
:data-mono="mono || undefined"
|
|
189
194
|
@click="inputEl?.focus(); wanted = true"
|
|
190
195
|
>
|
|
191
196
|
<template v-if="multiple">
|
|
@@ -238,6 +243,7 @@ function setOpen(v: boolean): void {
|
|
|
238
243
|
role="listbox"
|
|
239
244
|
:aria-label="`${ariaLabel} choices`"
|
|
240
245
|
:aria-multiselectable="multiple || undefined"
|
|
246
|
+
:data-mono="mono || undefined"
|
|
241
247
|
>
|
|
242
248
|
<!-- Options are lit with aria-activedescendant; the text field keeps focus and the keys. -->
|
|
243
249
|
<!-- eslint-disable-next-line vuejs-accessibility/click-events-have-key-events, vuejs-accessibility/interactive-supports-focus -->
|
|
@@ -324,4 +330,7 @@ function setOpen(v: boolean): void {
|
|
|
324
330
|
@media (prefers-reduced-motion: reduce) {
|
|
325
331
|
.wp-combo { transition: none; }
|
|
326
332
|
}
|
|
333
|
+
/* mono: names and ids read in the mono font, in the box and the list. */
|
|
334
|
+
.wp-combo[data-mono] .wp-combo__field, .wp-combo[data-mono] .wp-combo__chip-text,
|
|
335
|
+
.wp-combo__list[data-mono] .wp-combo__opt-text { font-family: var(--wp-font-mono); }
|
|
327
336
|
</style>
|
package/src/ImageGrid.vue
CHANGED
|
@@ -11,9 +11,15 @@
|
|
|
11
11
|
* Tiles are buttons in reading order (one Tab stop each). A tile with no
|
|
12
12
|
* `src` yet (a frame still rendering) draws a Skeleton and can't be opened;
|
|
13
13
|
* the Lightbox steps only through the images that are there.
|
|
14
|
+
*
|
|
15
|
+
* `aspect="auto"` keeps each picture's own shape, `columns` fixes the column
|
|
16
|
+
* count and `hint` puts a magnifier on a tile under the pointer, so one
|
|
17
|
+
* screenshot that opens full size is `<ImageGrid :images="[shot]" aspect="auto"
|
|
18
|
+
* :columns="1" hint />`. A picture that fails to load emits `error`.
|
|
14
19
|
*/
|
|
15
20
|
import { computed, ref } from "vue";
|
|
16
21
|
import Lightbox from "./Lightbox.vue";
|
|
22
|
+
import Icon from "./Icon.vue";
|
|
17
23
|
import Skeleton from "./Skeleton.vue";
|
|
18
24
|
import Checkbox from "./Checkbox.vue";
|
|
19
25
|
|
|
@@ -23,8 +29,12 @@ const props = withDefaults(defineProps<{
|
|
|
23
29
|
images: GridImage[];
|
|
24
30
|
/** Smallest tile width in px. */
|
|
25
31
|
minSize?: number | undefined;
|
|
26
|
-
/** Width / height of a tile. */
|
|
27
|
-
aspect?: number | undefined;
|
|
32
|
+
/** Width / height of a tile; `"auto"` keeps each picture's own shape (no crop). */
|
|
33
|
+
aspect?: number | "auto" | undefined;
|
|
34
|
+
/** A fixed number of columns instead of as many as fit `minSize` (1 = one picture full width). */
|
|
35
|
+
columns?: number | undefined;
|
|
36
|
+
/** A magnifier in the corner of each tile on hover and focus. */
|
|
37
|
+
hint?: boolean | undefined;
|
|
28
38
|
gap?: "sm" | "md" | undefined;
|
|
29
39
|
selectable?: boolean | undefined;
|
|
30
40
|
selected?: string[] | undefined;
|
|
@@ -36,6 +46,8 @@ const props = withDefaults(defineProps<{
|
|
|
36
46
|
const emit = defineEmits<{
|
|
37
47
|
(e: "update:selected", v: string[]): void;
|
|
38
48
|
(e: "open", index: number): void;
|
|
49
|
+
/** A picture failed to load. */
|
|
50
|
+
(e: "error", index: number): void;
|
|
39
51
|
}>();
|
|
40
52
|
|
|
41
53
|
const open = ref(false);
|
|
@@ -63,7 +75,12 @@ function toggle(id: string, on: boolean): void {
|
|
|
63
75
|
class="wp-image-grid__list"
|
|
64
76
|
:data-gap="gap"
|
|
65
77
|
:aria-label="ariaLabel"
|
|
66
|
-
:
|
|
78
|
+
:data-aspect="aspect === 'auto' ? 'auto' : undefined"
|
|
79
|
+
:style="{
|
|
80
|
+
'--_min': `${minSize}px`,
|
|
81
|
+
'--_aspect': String(aspect),
|
|
82
|
+
...(columns ? { gridTemplateColumns: `repeat(${columns}, minmax(0, 1fr))` } : {}),
|
|
83
|
+
}"
|
|
67
84
|
>
|
|
68
85
|
<li
|
|
69
86
|
v-for="(img, i) in images"
|
|
@@ -79,7 +96,8 @@ function toggle(id: string, on: boolean): void {
|
|
|
79
96
|
:data-loading="!img.src || undefined"
|
|
80
97
|
@click="show(i)"
|
|
81
98
|
>
|
|
82
|
-
<img v-if="img.thumb || img.src" class="wp-image-grid__img" :src="img.thumb || img.src" alt="" loading="lazy">
|
|
99
|
+
<img v-if="img.thumb || img.src" class="wp-image-grid__img" :src="img.thumb || img.src" alt="" loading="lazy" @error="emit('error', i)">
|
|
100
|
+
<span v-if="hint && img.src" class="wp-image-grid__hint" aria-hidden="true"><Icon name="search-plus" :size="12" /></span>
|
|
83
101
|
<Skeleton v-else class="wp-image-grid__empty" shape="block" width="100%" height="100%" />
|
|
84
102
|
</button>
|
|
85
103
|
<Checkbox
|
|
@@ -114,6 +132,15 @@ function toggle(id: string, on: boolean): void {
|
|
|
114
132
|
.wp-image-grid__open:focus-visible { outline: none; border-color: var(--wp-border-focus); box-shadow: var(--wp-focus-ring); }
|
|
115
133
|
.wp-image-grid__tile[data-selected] .wp-image-grid__open { border-color: var(--wp-accent); box-shadow: 0 0 0 2px var(--wp-accent-glow); }
|
|
116
134
|
.wp-image-grid__img { display: block; width: 100%; height: 100%; object-fit: cover; }
|
|
135
|
+
.wp-image-grid__list[data-aspect="auto"] .wp-image-grid__open { position: relative; aspect-ratio: auto; }
|
|
136
|
+
.wp-image-grid__list[data-aspect="auto"] .wp-image-grid__img { height: auto; }
|
|
137
|
+
.wp-image-grid__open { position: relative; }
|
|
138
|
+
.wp-image-grid__hint {
|
|
139
|
+
position: absolute; top: 8px; right: 8px; display: grid; place-items: center; width: 24px; height: 24px;
|
|
140
|
+
border-radius: min(6px, var(--wp-radius-cap, 999px)); background: var(--wp-scrim); color: var(--wp-on-media);
|
|
141
|
+
opacity: 0; transition: opacity var(--wp-motion-hover);
|
|
142
|
+
}
|
|
143
|
+
.wp-image-grid__open:hover .wp-image-grid__hint, .wp-image-grid__open:focus-visible .wp-image-grid__hint { opacity: 1; }
|
|
117
144
|
.wp-image-grid__open[data-loading] { cursor: progress; }
|
|
118
145
|
.wp-image-grid__empty { width: 100%; height: 100%; }
|
|
119
146
|
.wp-image-grid__check { position: absolute; top: 6px; left: 6px; }
|
|
@@ -122,6 +149,6 @@ function toggle(id: string, on: boolean): void {
|
|
|
122
149
|
text-overflow: ellipsis; white-space: nowrap;
|
|
123
150
|
}
|
|
124
151
|
@media (prefers-reduced-motion: reduce) {
|
|
125
|
-
.wp-image-grid__open { transition: none; }
|
|
152
|
+
.wp-image-grid__open, .wp-image-grid__hint { transition: none; }
|
|
126
153
|
}
|
|
127
154
|
</style>
|
package/src/RadioGroup.vue
CHANGED
|
@@ -18,7 +18,9 @@
|
|
|
18
18
|
*
|
|
19
19
|
* `variant="swatch"` draws each option as a round colour swatch (its
|
|
20
20
|
* `color`), in a row, with the label as its name and tooltip: an accent or
|
|
21
|
-
* frame colour picked from a few.
|
|
21
|
+
* frame colour picked from a few. `named` writes each label under its
|
|
22
|
+
* swatch, and the `swatch` slot draws a swatch itself (a split "theme's own"
|
|
23
|
+
* circle, a rainbow for "custom"; the slot gets `{ option, checked }`).
|
|
22
24
|
*/
|
|
23
25
|
import { nextTick, ref } from "vue";
|
|
24
26
|
|
|
@@ -45,9 +47,14 @@ const props = withDefaults(defineProps<{
|
|
|
45
47
|
testPrefix?: string | undefined;
|
|
46
48
|
/** `swatch`: round colour swatches in a row, named by their label. */
|
|
47
49
|
variant?: "default" | "swatch" | undefined;
|
|
50
|
+
/** With `variant="swatch"`: show each label under its swatch. */
|
|
51
|
+
named?: boolean | undefined;
|
|
48
52
|
}>(), { orientation: "vertical", size: "md", ariaLabel: undefined, testPrefix: undefined, variant: "default" });
|
|
49
53
|
|
|
50
|
-
defineSlots<{
|
|
54
|
+
defineSlots<{
|
|
55
|
+
label?: (p: { option: RadioOption<T> }) => unknown;
|
|
56
|
+
swatch?: (p: { option: RadioOption<T>; checked: boolean }) => unknown;
|
|
57
|
+
}>();
|
|
51
58
|
|
|
52
59
|
const emit = defineEmits<{ (e: "update:modelValue", v: T): void }>();
|
|
53
60
|
const rootEl = ref<HTMLElement | null>(null);
|
|
@@ -93,6 +100,7 @@ function onKeydown(ev: KeyboardEvent, at: T): void {
|
|
|
93
100
|
:data-size="size"
|
|
94
101
|
:data-cards="cards || undefined"
|
|
95
102
|
:data-variant="variant"
|
|
103
|
+
:data-named="variant === 'swatch' && named ? '' : undefined"
|
|
96
104
|
>
|
|
97
105
|
<!-- Each radio has a tabindex (roving: only the checked one is a Tab stop). -->
|
|
98
106
|
<!-- eslint-disable-next-line vuejs-accessibility/interactive-supports-focus -->
|
|
@@ -106,18 +114,19 @@ function onKeydown(ev: KeyboardEvent, at: T): void {
|
|
|
106
114
|
:tabindex="!disabled && o.value === tabStop() ? 0 : -1"
|
|
107
115
|
:data-checked="modelValue === o.value || undefined"
|
|
108
116
|
:data-test="testPrefix ? `${testPrefix}-${o.value}` : undefined"
|
|
109
|
-
:aria-label="variant === 'swatch' ? o.label : undefined"
|
|
110
|
-
:title="variant === 'swatch' ? o.label : undefined"
|
|
117
|
+
:aria-label="variant === 'swatch' && !named ? o.label : undefined"
|
|
118
|
+
:title="variant === 'swatch' && !named ? o.label : undefined"
|
|
111
119
|
@click="!o.disabled && pick(o.value)"
|
|
112
120
|
@keydown="onKeydown($event, o.value)"
|
|
113
121
|
>
|
|
114
122
|
<span
|
|
115
123
|
v-if="variant === 'swatch'"
|
|
116
124
|
class="wp-radio-group__swatch"
|
|
117
|
-
:style="{ background: o.color }"
|
|
125
|
+
:style="$slots.swatch ? undefined : { background: o.color }"
|
|
118
126
|
aria-hidden="true"
|
|
119
|
-
|
|
127
|
+
><slot name="swatch" :option="o" :checked="modelValue === o.value" /></span>
|
|
120
128
|
<span v-else class="wp-radio-group__dot" aria-hidden="true" />
|
|
129
|
+
<span v-if="variant === 'swatch' && named" class="wp-radio-group__name">{{ o.label }}</span>
|
|
121
130
|
<span v-if="variant !== 'swatch'" class="wp-radio-group__text">
|
|
122
131
|
<span class="wp-radio-group__label"><slot name="label" :option="o">{{ o.label }}</slot></span>
|
|
123
132
|
<span v-if="o.hint" class="wp-radio-group__hint">{{ o.hint }}</span>
|
|
@@ -169,6 +178,17 @@ function onKeydown(ev: KeyboardEvent, at: T): void {
|
|
|
169
178
|
box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--wp-text) 18%, transparent);
|
|
170
179
|
}
|
|
171
180
|
.wp-radio-group[data-size="sm"] .wp-radio-group__swatch { width: 16px; height: 16px; }
|
|
181
|
+
/* Named swatches: the label under each, the ring drawn round the swatch only. */
|
|
182
|
+
.wp-radio-group[data-named] .wp-radio-group__opt {
|
|
183
|
+
flex-direction: column; align-items: center; gap: var(--wp-space-2); min-width: 52px;
|
|
184
|
+
padding: var(--wp-space-2); border-radius: var(--wp-radius-sm);
|
|
185
|
+
}
|
|
186
|
+
.wp-radio-group[data-named] .wp-radio-group__swatch { width: 28px; height: 28px; overflow: hidden; }
|
|
187
|
+
.wp-radio-group__name { color: var(--wp-text-muted); font-size: var(--wp-text-xs); line-height: 1.2; text-align: center; }
|
|
188
|
+
.wp-radio-group[data-named] .wp-radio-group__opt[data-checked] .wp-radio-group__name { color: var(--wp-text); }
|
|
189
|
+
.wp-radio-group[data-variant="swatch"][data-named] .wp-radio-group__opt[data-checked] { box-shadow: none; }
|
|
190
|
+
.wp-radio-group[data-named] .wp-radio-group__opt[data-checked] .wp-radio-group__swatch { box-shadow: 0 0 0 2px var(--wp-bg-1), 0 0 0 4px var(--wp-accent); }
|
|
191
|
+
.wp-radio-group[data-variant="swatch"][data-named] .wp-radio-group__opt:focus-visible { box-shadow: 0 0 0 2px var(--wp-border-focus); }
|
|
172
192
|
.wp-radio-group[data-variant="swatch"] .wp-radio-group__opt[data-checked] { box-shadow: 0 0 0 2px var(--wp-accent); }
|
|
173
193
|
.wp-radio-group[data-variant="swatch"] .wp-radio-group__opt:focus-visible { box-shadow: 0 0 0 2px var(--wp-border-focus); }
|
|
174
194
|
.wp-radio-group[data-variant="swatch"] .wp-radio-group__opt[data-checked]:focus-visible { box-shadow: 0 0 0 2px var(--wp-accent), 0 0 0 4px var(--wp-border-focus); }
|
package/src/WpSwitch.vue
CHANGED
|
@@ -92,7 +92,9 @@ function flip(): void {
|
|
|
92
92
|
height: var(--switch-h);
|
|
93
93
|
box-sizing: border-box;
|
|
94
94
|
border: 1px solid var(--wp-border-strong);
|
|
95
|
-
|
|
95
|
+
/* A hair under half the height, not 999px: on the ComfyUI canvas Firefox
|
|
96
|
+
draws a bordered full pill in pieces that seam at zooms like 0.64 / 0.8. */
|
|
97
|
+
border-radius: min(calc(var(--switch-h) / 2 - 1px), var(--wp-radius-cap, 999px));
|
|
96
98
|
background: var(--wp-bg-3);
|
|
97
99
|
transition: background var(--wp-motion-quick), border-color var(--wp-motion-quick);
|
|
98
100
|
}
|
package/src/tokens.ts
CHANGED
|
@@ -57,7 +57,7 @@ export const LOCAL_TOKENS = ["--wp-hsv-hue", "--wp-lm-o", "--wp-select-line-h",
|
|
|
57
57
|
/** Pieces that need a page with src/theme/ loaded (not the canvas). */
|
|
58
58
|
export const PAGE_PIECES = [
|
|
59
59
|
"axis-color.ts", "kind-colour.ts", "matrix-axis.ts", "BundleMeta.vue", "ConstraintMatrixPreview.vue", "PostCard.vue", "TokenizedValue.vue",
|
|
60
|
-
"Card.vue", "
|
|
60
|
+
"Card.vue", "ChoiceCards.vue",
|
|
61
61
|
"DataTable.vue", "Drawer.vue", "EmptyState.vue", "Field.vue", "Icon.vue", "Input.vue",
|
|
62
62
|
"ListFilter.vue", "RelativeDate.vue", "Select.vue", "Textarea.vue", "ToastHost.vue",
|
|
63
63
|
// The payload previews and post loading shapes (community post pages).
|