@cueplusplus/ui 0.23.0 → 0.24.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 +23 -0
- package/dist/forms/_chassis.d.ts +15 -5
- package/dist/forms/_chassis.js +15 -5
- package/dist/primitives/chip.d.ts +1 -1
- package/dist/styles.css +2 -0
- package/dist/system/_focus-ring-field.js +14 -2
- package/manifest/components/autocomplete.json +1 -0
- package/manifest/components/color-field.json +1 -0
- package/manifest/components/color-picker.json +1 -0
- package/manifest/components/combobox.json +1 -0
- package/manifest/components/composer.json +1 -0
- package/manifest/components/date-field.json +1 -0
- package/manifest/components/date-picker.json +1 -0
- package/manifest/components/date-range-picker.json +1 -0
- package/manifest/components/env-var-input.json +1 -0
- package/manifest/components/input-group.json +1 -0
- package/manifest/components/input.json +1 -0
- package/manifest/components/multi-select.json +1 -0
- package/manifest/components/musical-time-input.json +1 -0
- package/manifest/components/number-field.json +1 -0
- package/manifest/components/otp-field.json +1 -0
- package/manifest/components/password-input.json +1 -0
- package/manifest/components/scrub-input.json +1 -0
- package/manifest/components/search-input.json +1 -0
- package/manifest/components/select.json +1 -0
- package/manifest/components/tags-input.json +1 -0
- package/manifest/components/textarea.json +1 -0
- package/manifest/components/time-field.json +1 -0
- package/manifest/manifest.json +24 -24
- package/manifest/tokens.json +2 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
# @cueplusplus/ui
|
|
2
2
|
|
|
3
|
+
## 0.24.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 082ef7c: **A focused field's ring is faint now, and you set how faint.** A text field shows its focus ring
|
|
8
|
+
on a mouse click as well as on Tab, so a full-strength `--cue-focus` ring (pure white on the
|
|
9
|
+
default theme) lit up every clicked field like a box. Every recessed field (inputs, textareas,
|
|
10
|
+
selects, comboboxes, the date, colour and number fields, grouped fields) now draws
|
|
11
|
+
`--cue-focus` mixed to **15%**, and its border still lifts to `border-strong` on focus.
|
|
12
|
+
|
|
13
|
+
- **`--cue-style-field-focus-mix`** sets the share, from `0%` (no ring, only the border lift) to
|
|
14
|
+
`100%` (the full ring). Name it in a style set, or on any element:
|
|
15
|
+
`style={{ "--cue-style-field-focus-mix": "40%" }}`.
|
|
16
|
+
- **Inside `data-field-edge="contrast"`** the ring is back at 100%, beside the 3:1 edge.
|
|
17
|
+
- **An invalid field** keeps its danger border, and its ring turns red at the same share.
|
|
18
|
+
- Buttons, tabs, links and every other control keep their full ring, which only shows to a
|
|
19
|
+
keyboard.
|
|
20
|
+
|
|
21
|
+
### Patch Changes
|
|
22
|
+
|
|
23
|
+
- Updated dependencies [082ef7c]
|
|
24
|
+
- @cueplusplus/tokens@0.24.0
|
|
25
|
+
|
|
3
26
|
## 0.23.0
|
|
4
27
|
|
|
5
28
|
### Minor Changes
|
package/dist/forms/_chassis.d.ts
CHANGED
|
@@ -35,6 +35,15 @@ import { FormControlSize } from "./_chassis-size.js";
|
|
|
35
35
|
* as it does on Tab. Only the non-typing controls that ride this chassis — the
|
|
36
36
|
* `Select` trigger, the date triggers — actually distinguish the two.
|
|
37
37
|
*
|
|
38
|
+
* **And quiet means faint** (the owner's call, 2026-10-09). At full strength a
|
|
39
|
+
* white `--cue-focus` ring around every clicked field read as a glaring box, so
|
|
40
|
+
* the ring is `--cue-focus` mixed with transparent to
|
|
41
|
+
* `--cue-style-field-focus-mix`: 15% unless a style set, `:root` or any subtree
|
|
42
|
+
* names another share (`_focus-ring-field.ts`). The rim's lift to
|
|
43
|
+
* `border-strong` carries the rest of the signal. The 3:1 paragraphs below
|
|
44
|
+
* hold for the `--cue-focus` role itself, and so for the ring at 100%, which
|
|
45
|
+
* is what `data-field-edge="contrast"` restores for a reader who needs it.
|
|
46
|
+
*
|
|
38
47
|
* `--cue-focus`, not `--cue-accent`. Every theme ships both roles, and keeping
|
|
39
48
|
* them separable is what WCAG 1.4.11 needs: one role whose job is "read at 3:1
|
|
40
49
|
* against the surface behind the ring", independent of the role whose job is
|
|
@@ -77,9 +86,10 @@ import { FormControlSize } from "./_chassis-size.js";
|
|
|
77
86
|
* while focused. Pushing the ring off the rim would mean either floating it on
|
|
78
87
|
* a gap (WCAG 2.4.13 then wants 3px, and the halo is back) or insetting it
|
|
79
88
|
* further (which buries it deeper). So the ring takes the danger colour instead
|
|
80
|
-
* —
|
|
81
|
-
* and Radix both reached: the border stays danger, the ring
|
|
82
|
-
* and red communicates invalid whichever of the two is
|
|
89
|
+
* — `--cue-danger` at the same faint share as the focus ring — which is the
|
|
90
|
+
* ruling shadcn and Radix both reached: the border stays danger, the ring
|
|
91
|
+
* communicates focus, and red communicates invalid whichever of the two is
|
|
92
|
+
* painting. At the faint share the danger rim shows through the ring.
|
|
83
93
|
*
|
|
84
94
|
* The compound modifier outranks the plain one on specificity — an attribute
|
|
85
95
|
* selector and a pseudo-class against one pseudo-class — so its position in
|
|
@@ -118,7 +128,7 @@ import { FormControlSize } from "./_chassis-size.js";
|
|
|
118
128
|
* own `shadow-` utility replaces it through `twMerge`, as it would have
|
|
119
129
|
* replaced nothing before.
|
|
120
130
|
*/
|
|
121
|
-
declare const controlSurface = "w-full field-ground rounded-[var(--cue-style-field-radius,calc(var(--cue-style-control-radius,var(--cue-radius-control))*var(--cue-radius-scale)))] border-transparent border-(length:--cue-paint-stroke-width) bg-[linear-gradient(var(--cue-style-field-fill,var(--cue-sunken)),var(--cue-style-field-fill,var(--cue-sunken))),linear-gradient(var(--cue-paint-stroke-angle),var(--cue-paint-stroke-from,var(--cue-border)),var(--cue-paint-stroke-to,var(--cue-border)))] bg-origin-border [background-clip:padding-box,border-box] shadow-[shadow:0_calc(2px*var(--cue-paint-shadow-scale))_calc(4px*var(--cue-paint-shadow-scale))_var(--cue-paint-rest-shade,transparent)] font-[family-name:var(--cue-style-input-face,var(--cue-font-mono))] font-[number:var(--cue-style-body-weight,inherit)] text-fg placeholder:text-fg-subtle outline-none hover:border-[color:var(--cue-style-field-hover-edge,transparent)] focus:border-[color:var(--cue-style-focus-edge,var(--cue-border-strong))] focus-visible:outline-solid focus-visible:outline-[length:var(--cue-style-focus-width,var(--cue-focus-ring))] focus-visible:outline-(--cue-focus) focus-visible:outline-offset-[var(--cue-style-field-focus-offset,-1px)] disabled:opacity-[var(--cue-style-disabled-opacity,0.4)] data-[disabled]:opacity-[var(--cue-style-disabled-opacity,0.4)] disabled:bg-[linear-gradient(var(--cue-style-disabled-fill,var(--cue-style-field-fill,var(--cue-sunken))),var(--cue-style-disabled-fill,var(--cue-style-field-fill,var(--cue-sunken)))),linear-gradient(var(--cue-paint-stroke-angle),var(--cue-paint-stroke-from,var(--cue-border)),var(--cue-paint-stroke-to,var(--cue-border)))] data-[disabled]:bg-[linear-gradient(var(--cue-style-disabled-fill,var(--cue-style-field-fill,var(--cue-sunken))),var(--cue-style-disabled-fill,var(--cue-style-field-fill,var(--cue-sunken)))),linear-gradient(var(--cue-paint-stroke-angle),var(--cue-paint-stroke-from,var(--cue-border)),var(--cue-paint-stroke-to,var(--cue-border)))] data-[invalid]:border-danger data-[invalid]:focus-visible:outline-danger";
|
|
131
|
+
declare const controlSurface = "w-full field-ground rounded-[var(--cue-style-field-radius,calc(var(--cue-style-control-radius,var(--cue-radius-control))*var(--cue-radius-scale)))] border-transparent border-(length:--cue-paint-stroke-width) bg-[linear-gradient(var(--cue-style-field-fill,var(--cue-sunken)),var(--cue-style-field-fill,var(--cue-sunken))),linear-gradient(var(--cue-paint-stroke-angle),var(--cue-paint-stroke-from,var(--cue-border)),var(--cue-paint-stroke-to,var(--cue-border)))] bg-origin-border [background-clip:padding-box,border-box] shadow-[shadow:0_calc(2px*var(--cue-paint-shadow-scale))_calc(4px*var(--cue-paint-shadow-scale))_var(--cue-paint-rest-shade,transparent)] font-[family-name:var(--cue-style-input-face,var(--cue-font-mono))] font-[number:var(--cue-style-body-weight,inherit)] text-fg placeholder:text-fg-subtle outline-none hover:border-[color:var(--cue-style-field-hover-edge,transparent)] focus:border-[color:var(--cue-style-focus-edge,var(--cue-border-strong))] focus-visible:outline-solid focus-visible:outline-[length:var(--cue-style-focus-width,var(--cue-focus-ring))] focus-visible:outline-[color:color-mix(in_oklab,var(--cue-focus)_var(--cue-style-field-focus-mix,15%),transparent)] focus-visible:outline-offset-[var(--cue-style-field-focus-offset,-1px)] disabled:opacity-[var(--cue-style-disabled-opacity,0.4)] data-[disabled]:opacity-[var(--cue-style-disabled-opacity,0.4)] disabled:bg-[linear-gradient(var(--cue-style-disabled-fill,var(--cue-style-field-fill,var(--cue-sunken))),var(--cue-style-disabled-fill,var(--cue-style-field-fill,var(--cue-sunken)))),linear-gradient(var(--cue-paint-stroke-angle),var(--cue-paint-stroke-from,var(--cue-border)),var(--cue-paint-stroke-to,var(--cue-border)))] data-[disabled]:bg-[linear-gradient(var(--cue-style-disabled-fill,var(--cue-style-field-fill,var(--cue-sunken))),var(--cue-style-disabled-fill,var(--cue-style-field-fill,var(--cue-sunken)))),linear-gradient(var(--cue-paint-stroke-angle),var(--cue-paint-stroke-from,var(--cue-border)),var(--cue-paint-stroke-to,var(--cue-border)))] data-[invalid]:border-danger data-[invalid]:focus-visible:outline-[color:color-mix(in_oklab,var(--cue-danger)_var(--cue-style-field-focus-mix,15%),transparent)]";
|
|
122
132
|
/**
|
|
123
133
|
* The full recessed-control recipe, one variant per rung of the control ladder.
|
|
124
134
|
*
|
|
@@ -188,6 +198,6 @@ declare const bareControlClasses = "min-w-0 flex-1 border-0 bg-transparent p-0 f
|
|
|
188
198
|
* pass's browser run caught it (`form-focus.spec.ts`, a grouped field). The
|
|
189
199
|
* wrapper never takes focus itself, so `:has(:focus)` is the same test.
|
|
190
200
|
*/
|
|
191
|
-
declare const controlGroupFocusClasses = "has-focus:border-border-strong has-focus-visible:outline-solid has-focus-visible:outline-[length:var(--cue-style-focus-width,var(--cue-focus-ring))] has-focus-visible:outline-(--cue-focus) has-focus-visible:outline-offset-[var(--cue-style-field-focus-offset,-1px)] data-[invalid]:has-focus-visible:outline-danger";
|
|
201
|
+
declare const controlGroupFocusClasses = "has-focus:border-border-strong has-focus-visible:outline-solid has-focus-visible:outline-[length:var(--cue-style-focus-width,var(--cue-focus-ring))] has-focus-visible:outline-[color:color-mix(in_oklab,var(--cue-focus)_var(--cue-style-field-focus-mix,15%),transparent)] has-focus-visible:outline-offset-[var(--cue-style-field-focus-offset,-1px)] data-[invalid]:has-focus-visible:outline-[color:color-mix(in_oklab,var(--cue-danger)_var(--cue-style-field-focus-mix,15%),transparent)]";
|
|
192
202
|
//#endregion
|
|
193
203
|
export { ControlVariantProps, type FormControlSize, bareControlClasses, controlClasses, controlGroupFocusClasses, controlSurface, controlVariants };
|
package/dist/forms/_chassis.js
CHANGED
|
@@ -42,6 +42,15 @@ import { INPUT_FACE } from "../system/_style-input-face.js";
|
|
|
42
42
|
* as it does on Tab. Only the non-typing controls that ride this chassis — the
|
|
43
43
|
* `Select` trigger, the date triggers — actually distinguish the two.
|
|
44
44
|
*
|
|
45
|
+
* **And quiet means faint** (the owner's call, 2026-10-09). At full strength a
|
|
46
|
+
* white `--cue-focus` ring around every clicked field read as a glaring box, so
|
|
47
|
+
* the ring is `--cue-focus` mixed with transparent to
|
|
48
|
+
* `--cue-style-field-focus-mix`: 15% unless a style set, `:root` or any subtree
|
|
49
|
+
* names another share (`_focus-ring-field.ts`). The rim's lift to
|
|
50
|
+
* `border-strong` carries the rest of the signal. The 3:1 paragraphs below
|
|
51
|
+
* hold for the `--cue-focus` role itself, and so for the ring at 100%, which
|
|
52
|
+
* is what `data-field-edge="contrast"` restores for a reader who needs it.
|
|
53
|
+
*
|
|
45
54
|
* `--cue-focus`, not `--cue-accent`. Every theme ships both roles, and keeping
|
|
46
55
|
* them separable is what WCAG 1.4.11 needs: one role whose job is "read at 3:1
|
|
47
56
|
* against the surface behind the ring", independent of the role whose job is
|
|
@@ -84,9 +93,10 @@ import { INPUT_FACE } from "../system/_style-input-face.js";
|
|
|
84
93
|
* while focused. Pushing the ring off the rim would mean either floating it on
|
|
85
94
|
* a gap (WCAG 2.4.13 then wants 3px, and the halo is back) or insetting it
|
|
86
95
|
* further (which buries it deeper). So the ring takes the danger colour instead
|
|
87
|
-
* —
|
|
88
|
-
* and Radix both reached: the border stays danger, the ring
|
|
89
|
-
* and red communicates invalid whichever of the two is
|
|
96
|
+
* — `--cue-danger` at the same faint share as the focus ring — which is the
|
|
97
|
+
* ruling shadcn and Radix both reached: the border stays danger, the ring
|
|
98
|
+
* communicates focus, and red communicates invalid whichever of the two is
|
|
99
|
+
* painting. At the faint share the danger rim shows through the ring.
|
|
90
100
|
*
|
|
91
101
|
* The compound modifier outranks the plain one on specificity — an attribute
|
|
92
102
|
* selector and a pseudo-class against one pseudo-class — so its position in
|
|
@@ -125,7 +135,7 @@ import { INPUT_FACE } from "../system/_style-input-face.js";
|
|
|
125
135
|
* own `shadow-` utility replaces it through `twMerge`, as it would have
|
|
126
136
|
* replaced nothing before.
|
|
127
137
|
*/
|
|
128
|
-
const controlSurface = `w-full field-ground ${FIELD_RADIUS} ${STROKE_SUNKEN} ${REST_SHADE_CLASS} ${INPUT_FACE} ${BODY_WEIGHT} text-fg placeholder:text-fg-subtle outline-none ${FIELD_HOVER_EDGE} focus:border-[color:var(--cue-style-focus-edge,var(--cue-border-strong))] ${FOCUS_RING_FIELD} ${DISABLED_OPACITY} ${DATA_DISABLED_OPACITY} ${FIELD_DISABLED_FILL} ${INVALID_EDGE} data-[invalid]:focus-visible:outline-danger`;
|
|
138
|
+
const controlSurface = `w-full field-ground ${FIELD_RADIUS} ${STROKE_SUNKEN} ${REST_SHADE_CLASS} ${INPUT_FACE} ${BODY_WEIGHT} text-fg placeholder:text-fg-subtle outline-none ${FIELD_HOVER_EDGE} focus:border-[color:var(--cue-style-focus-edge,var(--cue-border-strong))] ${FOCUS_RING_FIELD} ${DISABLED_OPACITY} ${DATA_DISABLED_OPACITY} ${FIELD_DISABLED_FILL} ${INVALID_EDGE} data-[invalid]:focus-visible:outline-[color:color-mix(in_oklab,var(--cue-danger)_var(--cue-style-field-focus-mix,15%),transparent)]`;
|
|
129
139
|
/**
|
|
130
140
|
* The full recessed-control recipe, one variant per rung of the control ladder.
|
|
131
141
|
*
|
|
@@ -198,6 +208,6 @@ const bareControlClasses = `min-w-0 flex-1 border-0 bg-transparent p-0 ${INPUT_F
|
|
|
198
208
|
* pass's browser run caught it (`form-focus.spec.ts`, a grouped field). The
|
|
199
209
|
* wrapper never takes focus itself, so `:has(:focus)` is the same test.
|
|
200
210
|
*/
|
|
201
|
-
const controlGroupFocusClasses = `has-focus:border-border-strong ${FOCUS_RING_GROUP_FIELD} data-[invalid]:has-focus-visible:outline-danger`;
|
|
211
|
+
const controlGroupFocusClasses = `has-focus:border-border-strong ${FOCUS_RING_GROUP_FIELD} data-[invalid]:has-focus-visible:outline-[color:color-mix(in_oklab,var(--cue-danger)_var(--cue-style-field-focus-mix,15%),transparent)]`;
|
|
202
212
|
//#endregion
|
|
203
213
|
export { bareControlClasses, controlClasses, controlGroupFocusClasses, controlSurface, controlVariants };
|
|
@@ -2,7 +2,7 @@ import { ClassProp, VariantProps } from "../lib/cva.js";
|
|
|
2
2
|
import * as React from "react";
|
|
3
3
|
//#region src/primitives/chip.d.ts
|
|
4
4
|
declare const chipVariants: (props?: ({
|
|
5
|
-
tone?: "danger" | "info" | "warn" | "
|
|
5
|
+
tone?: "danger" | "info" | "warn" | "accent" | "ok" | "busy" | "neutral" | null | undefined;
|
|
6
6
|
variant?: "outline" | "tinted" | "tag" | null | undefined;
|
|
7
7
|
interactive?: boolean | null | undefined;
|
|
8
8
|
} & ClassProp) | undefined) => string;
|
package/dist/styles.css
CHANGED
|
@@ -200,5 +200,7 @@
|
|
|
200
200
|
:where([data-field-edge="contrast"]) & {
|
|
201
201
|
--cue-paint-stroke-from: var(--cue-field-edge, var(--cue-border));
|
|
202
202
|
--cue-paint-stroke-to: var(--cue-field-edge, var(--cue-border));
|
|
203
|
+
/* The full focus ring too: a field's is faint by default (`_focus-ring-field.ts`). */
|
|
204
|
+
--cue-style-field-focus-mix: 100%;
|
|
203
205
|
}
|
|
204
206
|
}
|
|
@@ -11,19 +11,31 @@
|
|
|
11
11
|
* would move with the buttons). `FOCUS_RING_INSET` keeps its fixed offset
|
|
12
12
|
* for its ten other consumers.
|
|
13
13
|
*
|
|
14
|
+
* **Faint, and configurable.** A text field matches `:focus-visible` on a
|
|
15
|
+
* mouse click as well as on Tab, so its ring is the one every click lights up.
|
|
16
|
+
* Drawn at full strength (a white `--cue-focus` on the default theme) it read
|
|
17
|
+
* as a glaring box, so a field paints `--cue-focus` mixed with transparent to
|
|
18
|
+
* `--cue-style-field-focus-mix`: 15% unless a style set, `:root` or any
|
|
19
|
+
* subtree names another share (0% hides it, 100% is the full ring). The
|
|
20
|
+
* border's lift to `border-strong` on `:focus` carries the rest of the signal.
|
|
21
|
+
* Inside `data-field-edge="contrast"` (`styles.css`) the share is 100%, so the
|
|
22
|
+
* reader who opted into the 3:1 edge gets the full ring back. Every other
|
|
23
|
+
* control's keyboard ring (`_focus-ring.ts`) is unchanged: it only ever shows
|
|
24
|
+
* to a keyboard.
|
|
25
|
+
*
|
|
14
26
|
* Its own module, not a constant in `_focus-ring.ts`: docgen attributes a
|
|
15
27
|
* token to a component by the file its class string lives in, and every
|
|
16
28
|
* focusable component imports that module.
|
|
17
29
|
*
|
|
18
30
|
* @internal Not part of the public API.
|
|
19
31
|
*/
|
|
20
|
-
const FOCUS_RING_FIELD = "focus-visible:outline-solid focus-visible:outline-[length:var(--cue-style-focus-width,var(--cue-focus-ring))] focus-visible:outline-(--cue-focus) focus-visible:outline-offset-[var(--cue-style-field-focus-offset,-1px)]";
|
|
32
|
+
const FOCUS_RING_FIELD = "focus-visible:outline-solid focus-visible:outline-[length:var(--cue-style-focus-width,var(--cue-focus-ring))] focus-visible:outline-[color:color-mix(in_oklab,var(--cue-focus)_var(--cue-style-field-focus-mix,15%),transparent)] focus-visible:outline-offset-[var(--cue-style-field-focus-offset,-1px)]";
|
|
21
33
|
/**
|
|
22
34
|
* `FOCUS_RING_GROUP_INSET` with {@link FOCUS_RING_FIELD}'s offset: the
|
|
23
35
|
* grouped field's ring reads `style-field-focus-offset` as the field it wraps
|
|
24
36
|
* does (plan V.2, T25), so a grouped field and a plain one keep one focus
|
|
25
37
|
* geometry under every Look.
|
|
26
38
|
*/
|
|
27
|
-
const FOCUS_RING_GROUP_FIELD = "has-focus-visible:outline-solid has-focus-visible:outline-[length:var(--cue-style-focus-width,var(--cue-focus-ring))] has-focus-visible:outline-(--cue-focus) has-focus-visible:outline-offset-[var(--cue-style-field-focus-offset,-1px)]";
|
|
39
|
+
const FOCUS_RING_GROUP_FIELD = "has-focus-visible:outline-solid has-focus-visible:outline-[length:var(--cue-style-focus-width,var(--cue-focus-ring))] has-focus-visible:outline-[color:color-mix(in_oklab,var(--cue-focus)_var(--cue-style-field-focus-mix,15%),transparent)] has-focus-visible:outline-offset-[var(--cue-style-field-focus-offset,-1px)]";
|
|
28
40
|
//#endregion
|
|
29
41
|
export { FOCUS_RING_FIELD, FOCUS_RING_GROUP_FIELD };
|
package/manifest/manifest.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 2,
|
|
3
3
|
"library": "@cueplusplus/ui",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.24.0",
|
|
5
5
|
"generatedAt": "1970-01-01T00:00:00.000Z",
|
|
6
6
|
"themes": [
|
|
7
7
|
"command",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
],
|
|
39
39
|
"tokens": {
|
|
40
40
|
"path": "./tokens.json",
|
|
41
|
-
"sha256": "
|
|
41
|
+
"sha256": "fcc11015750652ab6e7332b9d8c39aa3f540f27c01b482ae21980314dc46f03b"
|
|
42
42
|
},
|
|
43
43
|
"systemApis": [
|
|
44
44
|
{
|
|
@@ -513,7 +513,7 @@
|
|
|
513
513
|
"mdUrl": "/docs/components/composer.md",
|
|
514
514
|
"jsonUrl": "/r/components/composer.json",
|
|
515
515
|
"path": "./components/composer.json",
|
|
516
|
-
"sha256": "
|
|
516
|
+
"sha256": "0a38f9056c6e8f86155523c0eef9d2b13fda464408d2d8c31f256d0da2ace286"
|
|
517
517
|
},
|
|
518
518
|
{
|
|
519
519
|
"name": "DelegationCard",
|
|
@@ -942,7 +942,7 @@
|
|
|
942
942
|
"mdUrl": "/docs/components/color-field.md",
|
|
943
943
|
"jsonUrl": "/r/components/color-field.json",
|
|
944
944
|
"path": "./components/color-field.json",
|
|
945
|
-
"sha256": "
|
|
945
|
+
"sha256": "332c18b35ecd26dd61750c836d77720171f21b5b07d2cd482f86decee09ed904"
|
|
946
946
|
},
|
|
947
947
|
{
|
|
948
948
|
"name": "ColorPicker",
|
|
@@ -955,7 +955,7 @@
|
|
|
955
955
|
"mdUrl": "/docs/components/color-picker.md",
|
|
956
956
|
"jsonUrl": "/r/components/color-picker.json",
|
|
957
957
|
"path": "./components/color-picker.json",
|
|
958
|
-
"sha256": "
|
|
958
|
+
"sha256": "463bb50929967eb20af06eeb62be4be2159aafe7a9b56d65a8294e94acb78488"
|
|
959
959
|
},
|
|
960
960
|
{
|
|
961
961
|
"name": "ColorSlider",
|
|
@@ -1085,7 +1085,7 @@
|
|
|
1085
1085
|
"mdUrl": "/docs/components/date-field.md",
|
|
1086
1086
|
"jsonUrl": "/r/components/date-field.json",
|
|
1087
1087
|
"path": "./components/date-field.json",
|
|
1088
|
-
"sha256": "
|
|
1088
|
+
"sha256": "ef8a3561b6b52874549af7f0c8764d8cd5fed032bc6003015f815dc8cf5eb875"
|
|
1089
1089
|
},
|
|
1090
1090
|
{
|
|
1091
1091
|
"name": "DatePicker",
|
|
@@ -1098,7 +1098,7 @@
|
|
|
1098
1098
|
"mdUrl": "/docs/components/date-picker.md",
|
|
1099
1099
|
"jsonUrl": "/r/components/date-picker.json",
|
|
1100
1100
|
"path": "./components/date-picker.json",
|
|
1101
|
-
"sha256": "
|
|
1101
|
+
"sha256": "ca298c4fc5727fc056c6bd141c38180a62eef89f187bc66ac352a551fd939185"
|
|
1102
1102
|
},
|
|
1103
1103
|
{
|
|
1104
1104
|
"name": "DateRangePicker",
|
|
@@ -1111,7 +1111,7 @@
|
|
|
1111
1111
|
"mdUrl": "/docs/components/date-range-picker.md",
|
|
1112
1112
|
"jsonUrl": "/r/components/date-range-picker.json",
|
|
1113
1113
|
"path": "./components/date-range-picker.json",
|
|
1114
|
-
"sha256": "
|
|
1114
|
+
"sha256": "f2f28b405e414f21c4ebfec5b63faad8312928d4cd4283c34ccc1cd2794da0b6"
|
|
1115
1115
|
},
|
|
1116
1116
|
{
|
|
1117
1117
|
"name": "TimeField",
|
|
@@ -1124,7 +1124,7 @@
|
|
|
1124
1124
|
"mdUrl": "/docs/components/time-field.md",
|
|
1125
1125
|
"jsonUrl": "/r/components/time-field.json",
|
|
1126
1126
|
"path": "./components/time-field.json",
|
|
1127
|
-
"sha256": "
|
|
1127
|
+
"sha256": "8c8d3a4401f5fd67527f31e3879af7c160e76f9e5b31ef97fa1d8477ed811ae1"
|
|
1128
1128
|
},
|
|
1129
1129
|
{
|
|
1130
1130
|
"name": "ChannelMatrix",
|
|
@@ -3282,7 +3282,7 @@
|
|
|
3282
3282
|
"mdUrl": "/docs/components/autocomplete.md",
|
|
3283
3283
|
"jsonUrl": "/r/components/autocomplete.json",
|
|
3284
3284
|
"path": "./components/autocomplete.json",
|
|
3285
|
-
"sha256": "
|
|
3285
|
+
"sha256": "63b82d5524485aed7078bce24063780c5ec2e1c44ef9cb4b2a0a5108f603dcad"
|
|
3286
3286
|
},
|
|
3287
3287
|
{
|
|
3288
3288
|
"name": "ButtonGroup",
|
|
@@ -3334,7 +3334,7 @@
|
|
|
3334
3334
|
"mdUrl": "/docs/components/combobox.md",
|
|
3335
3335
|
"jsonUrl": "/r/components/combobox.json",
|
|
3336
3336
|
"path": "./components/combobox.json",
|
|
3337
|
-
"sha256": "
|
|
3337
|
+
"sha256": "6dc53875746a523c995608a40ee60f2cbdf64ee4cfdbaa07fe6e2697541a2994"
|
|
3338
3338
|
},
|
|
3339
3339
|
{
|
|
3340
3340
|
"name": "EnvVarInput",
|
|
@@ -3347,7 +3347,7 @@
|
|
|
3347
3347
|
"mdUrl": "/docs/components/env-var-input.md",
|
|
3348
3348
|
"jsonUrl": "/r/components/env-var-input.json",
|
|
3349
3349
|
"path": "./components/env-var-input.json",
|
|
3350
|
-
"sha256": "
|
|
3350
|
+
"sha256": "8edb3111172ec68ee6d00266283324388e7ee1593b4350da279731da5294bb3d"
|
|
3351
3351
|
},
|
|
3352
3352
|
{
|
|
3353
3353
|
"name": "Field",
|
|
@@ -3425,7 +3425,7 @@
|
|
|
3425
3425
|
"mdUrl": "/docs/components/input.md",
|
|
3426
3426
|
"jsonUrl": "/r/components/input.json",
|
|
3427
3427
|
"path": "./components/input.json",
|
|
3428
|
-
"sha256": "
|
|
3428
|
+
"sha256": "f4cf68a0db39a9f27fc91b97bac4cc980f0bfc952356ec2d092d72c2fb3a1850"
|
|
3429
3429
|
},
|
|
3430
3430
|
{
|
|
3431
3431
|
"name": "InputGroup",
|
|
@@ -3438,7 +3438,7 @@
|
|
|
3438
3438
|
"mdUrl": "/docs/components/input-group.md",
|
|
3439
3439
|
"jsonUrl": "/r/components/input-group.json",
|
|
3440
3440
|
"path": "./components/input-group.json",
|
|
3441
|
-
"sha256": "
|
|
3441
|
+
"sha256": "91692a5e17deb76468fb4b55f15073338aebf398b6fadf4824a3f9c19f54aa07"
|
|
3442
3442
|
},
|
|
3443
3443
|
{
|
|
3444
3444
|
"name": "MultiSelect",
|
|
@@ -3451,7 +3451,7 @@
|
|
|
3451
3451
|
"mdUrl": "/docs/components/multi-select.md",
|
|
3452
3452
|
"jsonUrl": "/r/components/multi-select.json",
|
|
3453
3453
|
"path": "./components/multi-select.json",
|
|
3454
|
-
"sha256": "
|
|
3454
|
+
"sha256": "fa820d7bdc9e0fb6ece919483678b695210ccda4f7aae1465ab70bb1933e08f9"
|
|
3455
3455
|
},
|
|
3456
3456
|
{
|
|
3457
3457
|
"name": "NumberField",
|
|
@@ -3464,7 +3464,7 @@
|
|
|
3464
3464
|
"mdUrl": "/docs/components/number-field.md",
|
|
3465
3465
|
"jsonUrl": "/r/components/number-field.json",
|
|
3466
3466
|
"path": "./components/number-field.json",
|
|
3467
|
-
"sha256": "
|
|
3467
|
+
"sha256": "3843121dd89ba6e2c45856b21ed8b7f5dd8b50f604f27a69929fb696f0addd04"
|
|
3468
3468
|
},
|
|
3469
3469
|
{
|
|
3470
3470
|
"name": "OTPField",
|
|
@@ -3477,7 +3477,7 @@
|
|
|
3477
3477
|
"mdUrl": "/docs/components/otp-field.md",
|
|
3478
3478
|
"jsonUrl": "/r/components/otp-field.json",
|
|
3479
3479
|
"path": "./components/otp-field.json",
|
|
3480
|
-
"sha256": "
|
|
3480
|
+
"sha256": "bf75cbad335d0a98a6ac1067c0f1c6167dc4d53652fdfd97e7956ec78436d033"
|
|
3481
3481
|
},
|
|
3482
3482
|
{
|
|
3483
3483
|
"name": "PasswordInput",
|
|
@@ -3490,7 +3490,7 @@
|
|
|
3490
3490
|
"mdUrl": "/docs/components/password-input.md",
|
|
3491
3491
|
"jsonUrl": "/r/components/password-input.json",
|
|
3492
3492
|
"path": "./components/password-input.json",
|
|
3493
|
-
"sha256": "
|
|
3493
|
+
"sha256": "bbac6a2d08045cb67a044affa7fee2967cad98811c2b87c27b299ba365c6fd99"
|
|
3494
3494
|
},
|
|
3495
3495
|
{
|
|
3496
3496
|
"name": "Radio",
|
|
@@ -3542,7 +3542,7 @@
|
|
|
3542
3542
|
"mdUrl": "/docs/components/scrub-input.md",
|
|
3543
3543
|
"jsonUrl": "/r/components/scrub-input.json",
|
|
3544
3544
|
"path": "./components/scrub-input.json",
|
|
3545
|
-
"sha256": "
|
|
3545
|
+
"sha256": "affa46b6a0c56eddcc82429b74afd12d53a9daf0d3354bf9e9f9c849ed9e3ce9"
|
|
3546
3546
|
},
|
|
3547
3547
|
{
|
|
3548
3548
|
"name": "SearchInput",
|
|
@@ -3555,7 +3555,7 @@
|
|
|
3555
3555
|
"mdUrl": "/docs/components/search-input.md",
|
|
3556
3556
|
"jsonUrl": "/r/components/search-input.json",
|
|
3557
3557
|
"path": "./components/search-input.json",
|
|
3558
|
-
"sha256": "
|
|
3558
|
+
"sha256": "163dbb2109f0ac8899cdc48502a872b8bc61d44ec20da8e9389f2de24087ab68"
|
|
3559
3559
|
},
|
|
3560
3560
|
{
|
|
3561
3561
|
"name": "Select",
|
|
@@ -3568,7 +3568,7 @@
|
|
|
3568
3568
|
"mdUrl": "/docs/components/select.md",
|
|
3569
3569
|
"jsonUrl": "/r/components/select.json",
|
|
3570
3570
|
"path": "./components/select.json",
|
|
3571
|
-
"sha256": "
|
|
3571
|
+
"sha256": "70586217a040a98ffe8368a4353bbca655d3247317aa6750940b4ead6438115a"
|
|
3572
3572
|
},
|
|
3573
3573
|
{
|
|
3574
3574
|
"name": "Slider",
|
|
@@ -3607,7 +3607,7 @@
|
|
|
3607
3607
|
"mdUrl": "/docs/components/tags-input.md",
|
|
3608
3608
|
"jsonUrl": "/r/components/tags-input.json",
|
|
3609
3609
|
"path": "./components/tags-input.json",
|
|
3610
|
-
"sha256": "
|
|
3610
|
+
"sha256": "76e4486f2413f6547777dc660f641a531cf77e2ea16f01de58632f54d2d02cf7"
|
|
3611
3611
|
},
|
|
3612
3612
|
{
|
|
3613
3613
|
"name": "Textarea",
|
|
@@ -3620,7 +3620,7 @@
|
|
|
3620
3620
|
"mdUrl": "/docs/components/textarea.md",
|
|
3621
3621
|
"jsonUrl": "/r/components/textarea.json",
|
|
3622
3622
|
"path": "./components/textarea.json",
|
|
3623
|
-
"sha256": "
|
|
3623
|
+
"sha256": "0612d1b26adf377909e7cfe66bbf85c3af117737d8c4908907174556afbe9b1c"
|
|
3624
3624
|
},
|
|
3625
3625
|
{
|
|
3626
3626
|
"name": "Toggle",
|
|
@@ -4361,7 +4361,7 @@
|
|
|
4361
4361
|
"mdUrl": "/docs/components/musical-time-input.md",
|
|
4362
4362
|
"jsonUrl": "/r/components/musical-time-input.json",
|
|
4363
4363
|
"path": "./components/musical-time-input.json",
|
|
4364
|
-
"sha256": "
|
|
4364
|
+
"sha256": "2fb56643ffb77614b8b2e08257ea9f1f8b6f29cf4288509f34ac15d1a79c3941"
|
|
4365
4365
|
},
|
|
4366
4366
|
{
|
|
4367
4367
|
"name": "PianoKeyboard",
|
package/manifest/tokens.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 2,
|
|
3
3
|
"library": "@cueplusplus/tokens",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.24.0",
|
|
5
5
|
"themes": [
|
|
6
6
|
{
|
|
7
7
|
"name": "command",
|
|
@@ -463,6 +463,7 @@
|
|
|
463
463
|
"--cue-style-eyebrow-size",
|
|
464
464
|
"--cue-style-eyebrow-weight",
|
|
465
465
|
"--cue-style-field-fill",
|
|
466
|
+
"--cue-style-field-focus-mix",
|
|
466
467
|
"--cue-style-field-focus-offset",
|
|
467
468
|
"--cue-style-field-gap",
|
|
468
469
|
"--cue-style-field-hover-edge",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cueplusplus/ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.24.0",
|
|
4
4
|
"description": "CUE++ design system components: Tailwind v4 styled wrappers over Base UI, driven by @cueplusplus/tokens.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -146,7 +146,7 @@
|
|
|
146
146
|
"culori": "^4.0.2",
|
|
147
147
|
"tailwind-merge": "^3.6.0",
|
|
148
148
|
"@cueplusplus/theme-base": "^1.4.0",
|
|
149
|
-
"@cueplusplus/tokens": "0.
|
|
149
|
+
"@cueplusplus/tokens": "0.24.0"
|
|
150
150
|
},
|
|
151
151
|
"peerDependencies": {
|
|
152
152
|
"@assistant-ui/react": "^0.15.16",
|