@cueplusplus/ui 0.14.1 → 0.16.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 +415 -0
- package/README.md +26 -0
- package/dist/agent-runtime/tool-call-card.js +1 -1
- package/dist/chat/message-list.js +2 -1
- package/dist/chat/message.js +1 -1
- package/dist/chrome/_tabs-scroll.d.ts +17 -1
- package/dist/chrome/_tabs-scroll.js +20 -3
- package/dist/chrome/app-bar.js +2 -1
- package/dist/chrome/band.js +13 -5
- package/dist/chrome/eyebrow.js +1 -1
- package/dist/chrome/footer.js +1 -1
- package/dist/chrome/panel.js +2 -1
- package/dist/chrome/section-header.js +1 -1
- package/dist/color/color-field.d.ts +2 -1
- package/dist/color/color-picker.d.ts +2 -1
- package/dist/configurator/configurator.js +1 -1
- package/dist/configurator/export-dialog.js +1 -1
- package/dist/configurator/panel-sections.js +1 -1
- package/dist/configurator/token-editor.js +1 -1
- package/dist/date/calendar.js +2 -2
- package/dist/date/date-field.d.ts +2 -1
- package/dist/date/date-picker.d.ts +2 -1
- package/dist/date/date-range-picker.d.ts +2 -1
- package/dist/date/time-field.d.ts +2 -1
- package/dist/elements/context-usage.js +3 -3
- package/dist/elements/transcript-rules.js +1 -1
- package/dist/forms/_chassis-size.d.ts +22 -0
- package/dist/forms/_chassis.d.ts +3 -10
- package/dist/forms/_chassis.js +2 -1
- package/dist/forms/autocomplete.d.ts +2 -1
- package/dist/forms/combobox.d.ts +2 -1
- package/dist/forms/env-var-input.d.ts +2 -1
- package/dist/forms/field.js +1 -1
- package/dist/forms/index.d.ts +2 -1
- package/dist/forms/input-group.d.ts +2 -1
- package/dist/forms/input.d.ts +2 -1
- package/dist/forms/multi-select.d.ts +2 -1
- package/dist/forms/otp-field.d.ts +2 -1
- package/dist/forms/password-input.d.ts +2 -1
- package/dist/forms/scrub-input.d.ts +2 -1
- package/dist/forms/search-input.d.ts +2 -1
- package/dist/forms/select.d.ts +2 -1
- package/dist/forms/select.js +2 -1
- package/dist/forms/slider.js +1 -1
- package/dist/forms/tags-input.d.ts +2 -1
- package/dist/forms/toggle-group.d.ts +1 -1
- package/dist/forms/toggle.d.ts +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/instruments/code-block.js +1 -1
- package/dist/instruments/ledger.js +1 -1
- package/dist/instruments/log-viewer.js +2 -1
- package/dist/instruments/progress.js +1 -1
- package/dist/instruments/stat.js +1 -1
- package/dist/instruments/table.js +2 -2
- package/dist/instruments/terminal-frame.js +1 -1
- package/dist/layout/_ground.js +1 -1
- package/dist/layout/card.js +3 -1
- package/dist/layout/collapsible.js +1 -1
- package/dist/layout/description-list.js +1 -1
- package/dist/layout/preview.d.ts +13 -1
- package/dist/layout/preview.js +16 -9
- package/dist/layout/sidebar.js +1 -1
- package/dist/layout/stepper.js +1 -1
- package/dist/midi/musical-time-input.d.ts +2 -1
- package/dist/overlays/_surface.d.ts +2 -2
- package/dist/overlays/_surface.js +4 -2
- package/dist/overlays/command-palette.js +1 -1
- package/dist/overlays/toast.js +1 -1
- package/dist/primitives/button.js +2 -1
- package/dist/primitives/chip.d.ts +1 -1
- package/dist/primitives/chip.js +2 -2
- package/dist/system/_paint-elevation.js +9 -0
- package/dist/system/_paint-glass.js +46 -0
- package/dist/system/_paint-glow.js +32 -0
- package/dist/system/_paint-ground-pattern.js +30 -0
- package/dist/system/_paint-rim.js +41 -0
- package/dist/system/_paint-stroke-sunken.js +19 -0
- package/dist/system/_paint-stroke-surface-1.js +19 -0
- package/dist/system/_paint-stroke-surface-2.js +27 -0
- package/dist/system/_paint-texture.js +53 -0
- package/dist/system/density.d.ts +11 -2
- package/dist/system/density.js +29 -9
- package/dist/system/portal.js +8 -2
- package/dist/system/prepaint.d.ts +18 -1
- package/dist/system/prepaint.js +8 -2
- package/dist/system/theme-provider.d.ts +64 -38
- package/dist/system/theme-provider.js +70 -23
- package/dist/system/vocabulary.d.ts +1 -1
- package/dist/system/vocabulary.js +14 -2
- package/manifest/components/alert-dialog.json +13 -1
- package/manifest/components/app-bar.json +4 -0
- package/manifest/components/autocomplete.json +13 -1
- package/manifest/components/band.json +9 -2
- package/manifest/components/button.json +4 -0
- package/manifest/components/calendar.json +3 -1
- package/manifest/components/card.json +6 -0
- package/manifest/components/channel-matrix.json +13 -1
- package/manifest/components/chart-tooltip-content.json +13 -1
- package/manifest/components/chip.json +1 -0
- package/manifest/components/code-block.json +2 -1
- package/manifest/components/collapsible.json +2 -1
- package/manifest/components/color-field.json +4 -0
- package/manifest/components/color-picker.json +4 -0
- package/manifest/components/colors-section.json +2 -1
- package/manifest/components/combobox.json +13 -1
- package/manifest/components/command-palette.json +13 -1
- package/manifest/components/composer.json +4 -0
- package/manifest/components/context-menu.json +13 -1
- package/manifest/components/context-usage.json +1 -0
- package/manifest/components/date-field.json +4 -0
- package/manifest/components/date-picker.json +4 -0
- package/manifest/components/date-range-picker.json +4 -0
- package/manifest/components/density.json +19 -0
- package/manifest/components/description-list.json +2 -1
- package/manifest/components/dialog.json +13 -1
- package/manifest/components/disclosure.json +2 -1
- package/manifest/components/dmx-bar.json +13 -1
- package/manifest/components/dmx-strip.json +13 -1
- package/manifest/components/drawer.json +13 -1
- package/manifest/components/dropdown-menu.json +13 -1
- package/manifest/components/env-var-input.json +4 -0
- package/manifest/components/export-dialog.json +2 -1
- package/manifest/components/eyebrow.json +2 -1
- package/manifest/components/field-description.json +2 -1
- package/manifest/components/field-error.json +2 -1
- package/manifest/components/field-label.json +2 -1
- package/manifest/components/field.json +2 -1
- package/manifest/components/footer.json +1 -0
- package/manifest/components/frames.json +2 -1
- package/manifest/components/hover-card.json +13 -1
- package/manifest/components/input-group.json +4 -0
- package/manifest/components/input.json +4 -0
- package/manifest/components/ledger.json +2 -1
- package/manifest/components/log-viewer.json +7 -0
- package/manifest/components/menubar.json +13 -1
- package/manifest/components/message-list.json +7 -0
- package/manifest/components/message.json +2 -1
- package/manifest/components/multi-select.json +13 -1
- package/manifest/components/musical-time-input.json +4 -0
- package/manifest/components/navigation-menu.json +13 -1
- package/manifest/components/number-field.json +4 -0
- package/manifest/components/otp-field.json +4 -0
- package/manifest/components/panel-header.json +2 -0
- package/manifest/components/panel.json +2 -0
- package/manifest/components/password-input.json +4 -0
- package/manifest/components/popover.json +13 -1
- package/manifest/components/preset-section.json +2 -1
- package/manifest/components/preview.json +21 -1
- package/manifest/components/progress.json +2 -1
- package/manifest/components/scrollable-tabs-list.json +1 -0
- package/manifest/components/scrub-input.json +4 -0
- package/manifest/components/search-input.json +4 -0
- package/manifest/components/section-header.json +2 -1
- package/manifest/components/segmented-control.json +1 -0
- package/manifest/components/select.json +11 -0
- package/manifest/components/shape-section.json +2 -1
- package/manifest/components/sheet.json +13 -1
- package/manifest/components/sidebar.json +2 -1
- package/manifest/components/slider.json +2 -1
- package/manifest/components/stat.json +1 -0
- package/manifest/components/stepper.json +2 -1
- package/manifest/components/table-scroll-region.json +2 -1
- package/manifest/components/table.json +2 -1
- package/manifest/components/tabs.json +1 -0
- package/manifest/components/tags-input.json +13 -1
- package/manifest/components/terminal-frame.json +1 -0
- package/manifest/components/textarea.json +4 -0
- package/manifest/components/theme-configurator.json +13 -1
- package/manifest/components/theme-provider.json +20 -1
- package/manifest/components/time-boundary.json +2 -1
- package/manifest/components/time-field.json +4 -0
- package/manifest/components/toast.json +13 -0
- package/manifest/components/toggle-group.json +1 -19
- package/manifest/components/toggle.json +0 -6
- package/manifest/components/token-editor.json +2 -1
- package/manifest/components/tool-call-card.json +2 -1
- package/manifest/components/toolbar.json +1 -0
- package/manifest/components/tooltip.json +13 -1
- package/manifest/components/unread-divider.json +2 -1
- package/manifest/manifest.json +94 -94
- package/manifest/tokens.json +48 -2
- package/package.json +6 -6
|
@@ -35,7 +35,7 @@ const SectionHeader = React.forwardRef(function SectionHeader({ className, label
|
|
|
35
35
|
}) : null,
|
|
36
36
|
/* @__PURE__ */ jsx("span", {
|
|
37
37
|
"data-slot": "section-header-label",
|
|
38
|
-
className: "shrink-0 font-mono text-(length:--cue-text-label) tracking-
|
|
38
|
+
className: "shrink-0 font-mono text-(length:--cue-text-label) tracking-(--cue-tracking-caps) text-fg-muted uppercase",
|
|
39
39
|
children: label
|
|
40
40
|
}),
|
|
41
41
|
count === void 0 ? null : /* @__PURE__ */ jsx("span", {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { FormControlSize } from "../forms/_chassis.js";
|
|
1
|
+
import { FormControlSize } from "../forms/_chassis-size.js";
|
|
2
|
+
import "../forms/_chassis.js";
|
|
2
3
|
import * as React from "react";
|
|
3
4
|
import { ColorFieldProps, InputProps } from "react-aria-components";
|
|
4
5
|
//#region src/color/color-field.d.ts
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ColorFormat } from "./_convert.js";
|
|
2
|
-
import { FormControlSize } from "../forms/_chassis.js";
|
|
2
|
+
import { FormControlSize } from "../forms/_chassis-size.js";
|
|
3
|
+
import "../forms/_chassis.js";
|
|
3
4
|
import * as React from "react";
|
|
4
5
|
//#region src/color/color-picker.d.ts
|
|
5
6
|
interface ColorPickerProps {
|
|
@@ -221,7 +221,7 @@ function ThemeConfigurator({ position: positionProp, defaultPosition = "floating
|
|
|
221
221
|
}),
|
|
222
222
|
/* @__PURE__ */ jsx("span", {
|
|
223
223
|
id: titleId,
|
|
224
|
-
className: "flex-1 truncate font-mono text-(length:--cue-text-label) tracking-
|
|
224
|
+
className: "flex-1 truncate font-mono text-(length:--cue-text-label) tracking-(--cue-tracking-caps) text-fg-muted uppercase",
|
|
225
225
|
children: title
|
|
226
226
|
}),
|
|
227
227
|
moved === 0 ? null : /* @__PURE__ */ jsx(Chip, {
|
|
@@ -70,7 +70,7 @@ function ExportDialog({ open, onOpenChange, overrides, scope, defaultFormat = "c
|
|
|
70
70
|
/* @__PURE__ */ jsxs(Field, {
|
|
71
71
|
className: "gap-(--cue-space-1)",
|
|
72
72
|
children: [/* @__PURE__ */ jsx(FieldLabel, {
|
|
73
|
-
className: "font-mono text-(length:--cue-text-micro) tracking-
|
|
73
|
+
className: "font-mono text-(length:--cue-text-micro) tracking-(--cue-tracking-caps) uppercase",
|
|
74
74
|
children: "Theme name"
|
|
75
75
|
}), /* @__PURE__ */ jsx(Input, {
|
|
76
76
|
size: "sm",
|
|
@@ -133,7 +133,7 @@ function TextTokenField({ label, token, edits, placeholder }) {
|
|
|
133
133
|
return /* @__PURE__ */ jsxs(Field, {
|
|
134
134
|
className: "gap-(--cue-space-1)",
|
|
135
135
|
children: [/* @__PURE__ */ jsx(FieldLabel, {
|
|
136
|
-
className: "font-mono text-(length:--cue-text-micro) tracking-
|
|
136
|
+
className: "font-mono text-(length:--cue-text-micro) tracking-(--cue-tracking-caps) uppercase",
|
|
137
137
|
children: label
|
|
138
138
|
}), /* @__PURE__ */ jsx(Input, {
|
|
139
139
|
size: "sm",
|
|
@@ -133,7 +133,7 @@ function TokenEditor({ values, overridden, onTokenChange, onTokenReset, groups =
|
|
|
133
133
|
"data-slot": "configurator-token-group",
|
|
134
134
|
className: "flex flex-col gap-(--cue-space-2)",
|
|
135
135
|
children: [/* @__PURE__ */ jsx("span", {
|
|
136
|
-
className: "font-mono text-(length:--cue-text-micro) tracking-
|
|
136
|
+
className: "font-mono text-(length:--cue-text-micro) tracking-(--cue-tracking-caps) text-fg-subtle uppercase",
|
|
137
137
|
children: group.label
|
|
138
138
|
}), group.tokens.map((token) => {
|
|
139
139
|
const property = tokenProperty(token);
|
package/dist/date/calendar.js
CHANGED
|
@@ -23,14 +23,14 @@ const CALENDAR_CLASSES = {
|
|
|
23
23
|
months: "relative flex flex-wrap items-start gap-(--cue-space-5)",
|
|
24
24
|
month: "flex flex-col gap-(--cue-space-2)",
|
|
25
25
|
month_caption: "flex h-control-sm items-center justify-center",
|
|
26
|
-
caption_label: "font-mono text-(length:--cue-text-label) tracking-
|
|
26
|
+
caption_label: "font-mono text-(length:--cue-text-label) tracking-(--cue-tracking-caps) text-fg-subtle uppercase",
|
|
27
27
|
nav: "absolute inset-x-0 top-0 flex h-control-sm items-center justify-between",
|
|
28
28
|
button_previous: "flex size-control-sm cursor-pointer items-center justify-center rounded-(--radius-control) border-0 bg-transparent p-0 text-fg-subtle outline-none transition-colors duration-150 hover:text-fg focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-1 focus-visible:outline-accent disabled:pointer-events-none disabled:opacity-30 motion-reduce:transition-none",
|
|
29
29
|
button_next: "flex size-control-sm cursor-pointer items-center justify-center rounded-(--radius-control) border-0 bg-transparent p-0 text-fg-subtle outline-none transition-colors duration-150 hover:text-fg focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-1 focus-visible:outline-accent disabled:pointer-events-none disabled:opacity-30 motion-reduce:transition-none",
|
|
30
30
|
chevron: "size-icon-sm fill-current",
|
|
31
31
|
month_grid: "border-collapse border-spacing-0",
|
|
32
32
|
weekdays: "",
|
|
33
|
-
weekday: "size-control-sm p-0 text-center align-middle font-mono text-(length:--cue-text-micro) font-normal tracking-
|
|
33
|
+
weekday: "size-control-sm p-0 text-center align-middle font-mono text-(length:--cue-text-micro) font-normal tracking-(--cue-tracking-caps-tight) text-fg-subtle uppercase",
|
|
34
34
|
week: "",
|
|
35
35
|
day: "p-0 text-center align-middle",
|
|
36
36
|
day_button: "size-control-sm cursor-pointer rounded-(--radius-control) border-0 bg-transparent p-0 font-mono text-(length:--cue-text-ui) tabular-nums text-fg-muted outline-none transition-colors duration-150 hover:bg-surface-3 hover:text-fg focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-1 focus-visible:outline-accent disabled:pointer-events-none disabled:opacity-30 motion-reduce:transition-none",
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { FormControlSize } from "../forms/_chassis.js";
|
|
1
|
+
import { FormControlSize } from "../forms/_chassis-size.js";
|
|
2
|
+
import "../forms/_chassis.js";
|
|
2
3
|
import * as React from "react";
|
|
3
4
|
import { DateFieldProps, DateInputProps, DateValue } from "react-aria-components";
|
|
4
5
|
//#region src/date/date-field.d.ts
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { FormControlSize } from "../forms/_chassis.js";
|
|
1
|
+
import { FormControlSize } from "../forms/_chassis-size.js";
|
|
2
|
+
import "../forms/_chassis.js";
|
|
2
3
|
import { CalendarProps } from "./calendar.js";
|
|
3
4
|
import * as React from "react";
|
|
4
5
|
//#region src/date/date-picker.d.ts
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { FormControlSize } from "../forms/_chassis.js";
|
|
1
|
+
import { FormControlSize } from "../forms/_chassis-size.js";
|
|
2
|
+
import "../forms/_chassis.js";
|
|
2
3
|
import { CalendarProps } from "./calendar.js";
|
|
3
4
|
import * as React from "react";
|
|
4
5
|
import { DateRange } from "react-day-picker";
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { FormControlSize } from "../forms/_chassis.js";
|
|
1
|
+
import { FormControlSize } from "../forms/_chassis-size.js";
|
|
2
|
+
import "../forms/_chassis.js";
|
|
2
3
|
import * as React from "react";
|
|
3
4
|
import { DateInputProps, TimeFieldProps, TimeValue } from "react-aria-components";
|
|
4
5
|
//#region src/date/time-field.d.ts
|
|
@@ -136,17 +136,17 @@ const ContextUsage = React.forwardRef(function ContextUsage({ categories, limit,
|
|
|
136
136
|
children: [
|
|
137
137
|
/* @__PURE__ */ jsx("th", {
|
|
138
138
|
scope: "col",
|
|
139
|
-
className: "pb-1 text-start font-normal tracking-
|
|
139
|
+
className: "pb-1 text-start font-normal tracking-(--cue-tracking-label)",
|
|
140
140
|
children: copy.category
|
|
141
141
|
}),
|
|
142
142
|
/* @__PURE__ */ jsx("th", {
|
|
143
143
|
scope: "col",
|
|
144
|
-
className: "pb-1 text-end font-normal tracking-
|
|
144
|
+
className: "pb-1 text-end font-normal tracking-(--cue-tracking-label)",
|
|
145
145
|
children: copy.tokens
|
|
146
146
|
}),
|
|
147
147
|
/* @__PURE__ */ jsx("th", {
|
|
148
148
|
scope: "col",
|
|
149
|
-
className: "pb-1 text-end font-normal tracking-
|
|
149
|
+
className: "pb-1 text-end font-normal tracking-(--cue-tracking-label)",
|
|
150
150
|
children: copy.usage
|
|
151
151
|
})
|
|
152
152
|
]
|
|
@@ -86,7 +86,7 @@ const UnreadDivider = React.forwardRef(function UnreadDivider({ label = "New", c
|
|
|
86
86
|
className: "bg-accent/40 h-px flex-1"
|
|
87
87
|
}), /* @__PURE__ */ jsx("span", {
|
|
88
88
|
"aria-hidden": true,
|
|
89
|
-
className: cn(mono, "text-accent shrink-0 tracking-
|
|
89
|
+
className: cn(mono, "text-accent shrink-0 tracking-(--cue-tracking-caps) uppercase"),
|
|
90
90
|
children: label
|
|
91
91
|
})]
|
|
92
92
|
});
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
//#region src/forms/_chassis-size.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* The rung of the density control ladder a form control sits on.
|
|
4
|
+
*
|
|
5
|
+
* Named `FormControlSize` rather than `ControlSize` because
|
|
6
|
+
* `@cueplusplus/ui/system` already exports a `ControlSize` for
|
|
7
|
+
* `useControlHeight`, and the root barrel re-exports both.
|
|
8
|
+
*
|
|
9
|
+
* **Its own module, and the reason is the manifest.** `@repo/docgen`
|
|
10
|
+
* attributes a custom property to a component by the FILE its class string
|
|
11
|
+
* lives in, and it does not distinguish a type-only import from a value one.
|
|
12
|
+
* While this type lived in `_chassis.ts`, `Toggle` and `ToggleGroup` — which
|
|
13
|
+
* import nothing from there but the type and paint their own `toggleVariants`
|
|
14
|
+
* box — advertised `--cue-paint-stroke-*` in their published manifests. Found
|
|
15
|
+
* in review of the stroke slice; the manifest is a public contract, so a
|
|
16
|
+
* component claiming a token it never paints is wrong in the way that matters.
|
|
17
|
+
*
|
|
18
|
+
* Nothing but a type may join this file, for the same reason.
|
|
19
|
+
*/
|
|
20
|
+
type FormControlSize = "sm" | "md" | "lg";
|
|
21
|
+
//#endregion
|
|
22
|
+
export { FormControlSize };
|
package/dist/forms/_chassis.d.ts
CHANGED
|
@@ -1,13 +1,6 @@
|
|
|
1
1
|
import { ClassProp, VariantProps } from "../lib/cva.js";
|
|
2
|
+
import { FormControlSize } from "./_chassis-size.js";
|
|
2
3
|
//#region src/forms/_chassis.d.ts
|
|
3
|
-
/**
|
|
4
|
-
* The rung of the density control ladder a form control sits on.
|
|
5
|
-
*
|
|
6
|
-
* Named `FormControlSize` rather than `ControlSize` because
|
|
7
|
-
* `@cueplusplus/ui/system` already exports a `ControlSize` for
|
|
8
|
-
* `useControlHeight`, and the root barrel re-exports both.
|
|
9
|
-
*/
|
|
10
|
-
type FormControlSize = "sm" | "md" | "lg";
|
|
11
4
|
/**
|
|
12
5
|
* Everything the recessed control chassis paints except the box itself.
|
|
13
6
|
*
|
|
@@ -97,7 +90,7 @@ type FormControlSize = "sm" | "md" | "lg";
|
|
|
97
90
|
* `focus-visible:outline-solid` re-declares the outline style the sibling
|
|
98
91
|
* `outline-none` switched off — see the note on `buttonChassis`.
|
|
99
92
|
*/
|
|
100
|
-
declare const controlSurface = "w-full rounded-(--radius-control) border border-
|
|
93
|
+
declare const controlSurface = "w-full rounded-(--radius-control) border-transparent border-(length:--cue-paint-stroke-width) bg-[linear-gradient(var(--cue-sunken),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] font-mono text-fg placeholder:text-fg-subtle outline-none focus:border-border-strong focus-visible:outline-2 focus-visible:outline-solid focus-visible:-outline-offset-1 focus-visible:outline-(--cue-focus) disabled:opacity-40 data-[disabled]:opacity-40 data-[invalid]:border-danger data-[invalid]:focus-visible:outline-danger";
|
|
101
94
|
/**
|
|
102
95
|
* The full recessed-control recipe, one variant per rung of the control ladder.
|
|
103
96
|
*
|
|
@@ -161,4 +154,4 @@ declare const bareControlClasses = "min-w-0 flex-1 border-0 bg-transparent p-0 f
|
|
|
161
154
|
*/
|
|
162
155
|
declare const controlGroupFocusClasses = "focus-within:border-border-strong has-focus-visible:outline-2 has-focus-visible:outline-solid has-focus-visible:-outline-offset-1 has-focus-visible:outline-(--cue-focus) data-[invalid]:has-focus-visible:outline-danger";
|
|
163
156
|
//#endregion
|
|
164
|
-
export { ControlVariantProps, FormControlSize, bareControlClasses, controlClasses, controlGroupFocusClasses, controlSurface, controlVariants };
|
|
157
|
+
export { ControlVariantProps, type FormControlSize, bareControlClasses, controlClasses, controlGroupFocusClasses, controlSurface, controlVariants };
|
package/dist/forms/_chassis.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { cva } from "../lib/cva.js";
|
|
2
|
+
import { STROKE_SUNKEN } from "../system/_paint-stroke-sunken.js";
|
|
2
3
|
//#region src/forms/_chassis.ts
|
|
3
4
|
/**
|
|
4
5
|
* Everything the recessed control chassis paints except the box itself.
|
|
@@ -89,7 +90,7 @@ import { cva } from "../lib/cva.js";
|
|
|
89
90
|
* `focus-visible:outline-solid` re-declares the outline style the sibling
|
|
90
91
|
* `outline-none` switched off — see the note on `buttonChassis`.
|
|
91
92
|
*/
|
|
92
|
-
const controlSurface =
|
|
93
|
+
const controlSurface = `w-full rounded-(--radius-control) ${STROKE_SUNKEN} font-mono text-fg placeholder:text-fg-subtle outline-none focus:border-border-strong focus-visible:outline-2 focus-visible:outline-solid focus-visible:-outline-offset-1 focus-visible:outline-(--cue-focus) disabled:opacity-40 data-[disabled]:opacity-40 data-[invalid]:border-danger data-[invalid]:focus-visible:outline-danger`;
|
|
93
94
|
/**
|
|
94
95
|
* The full recessed-control recipe, one variant per rung of the control ladder.
|
|
95
96
|
*
|
package/dist/forms/combobox.d.ts
CHANGED
package/dist/forms/field.js
CHANGED
|
@@ -43,7 +43,7 @@ const FieldLabel = React.forwardRef(function FieldLabel({ className, ...elementP
|
|
|
43
43
|
return /* @__PURE__ */ jsx(Field.Label, {
|
|
44
44
|
ref,
|
|
45
45
|
"data-slot": "field-label",
|
|
46
|
-
className: cn("font-mono text-(length:--cue-text-label) leading-none tracking-
|
|
46
|
+
className: cn("font-mono text-(length:--cue-text-label) leading-none tracking-(--cue-tracking-caps-tight) text-fg-muted uppercase select-none data-[disabled]:opacity-40", className),
|
|
47
47
|
...elementProps
|
|
48
48
|
});
|
|
49
49
|
});
|
package/dist/forms/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FormControlSize } from "./_chassis-size.js";
|
|
2
|
+
import { ControlVariantProps, bareControlClasses, controlClasses, controlGroupFocusClasses, controlSurface, controlVariants } from "./_chassis.js";
|
|
2
3
|
import { Autocomplete, AutocompleteProps } from "./autocomplete.js";
|
|
3
4
|
import { ButtonGroup, ButtonGroupOrientation, ButtonGroupProps } from "./button-group.js";
|
|
4
5
|
import { Checkbox, CheckboxGroup, CheckboxGroupProps, CheckboxProps } from "./checkbox.js";
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { FormControlSize } from "./_chassis.js";
|
|
1
|
+
import { FormControlSize } from "./_chassis-size.js";
|
|
2
|
+
import "./_chassis.js";
|
|
2
3
|
import * as React from "react";
|
|
3
4
|
//#region src/forms/input-group.d.ts
|
|
4
5
|
interface InputGroupProps extends React.ComponentPropsWithoutRef<"div"> {
|
package/dist/forms/input.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { FormControlSize } from "./_chassis.js";
|
|
1
|
+
import { FormControlSize } from "./_chassis-size.js";
|
|
2
|
+
import "./_chassis.js";
|
|
2
3
|
import * as React from "react";
|
|
3
4
|
//#region src/forms/scrub-input.d.ts
|
|
4
5
|
interface ScrubInputProps extends Omit<React.ComponentPropsWithoutRef<"div">, "onChange" | "defaultValue" | "onDragStart" | "onDragEnd"> {
|
package/dist/forms/select.d.ts
CHANGED
package/dist/forms/select.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { cn } from "../lib/cn.js";
|
|
3
3
|
import { controlVariants } from "./_chassis.js";
|
|
4
|
+
import { ELEVATION_2 } from "../system/_paint-elevation.js";
|
|
4
5
|
import { useCuePortalProps } from "../system/portal.js";
|
|
5
6
|
import { CaretGlyph, TickGlyph } from "./_glyphs.js";
|
|
6
7
|
import * as React from "react";
|
|
@@ -65,7 +66,7 @@ const Select$1 = React.forwardRef(function Select$2({ items, value, defaultValue
|
|
|
65
66
|
alignItemWithTrigger: false,
|
|
66
67
|
children: /* @__PURE__ */ jsx(Select.Popup, {
|
|
67
68
|
"data-slot": "select-popup",
|
|
68
|
-
className: cn(
|
|
69
|
+
className: cn(`min-w-(--anchor-width) origin-(--transform-origin) overflow-hidden rounded-(--radius-overlay) border border-border-overlay bg-surface-2 py-(--cue-space-1) ${ELEVATION_2} outline-none`, "transition-[opacity,scale] duration-100 ease-out motion-reduce:transition-none", "data-[starting-style]:scale-[0.98] data-[starting-style]:opacity-0", "data-[ending-style]:scale-[0.98] data-[ending-style]:opacity-0", popupClassName),
|
|
69
70
|
children: /* @__PURE__ */ jsx(Select.List, {
|
|
70
71
|
className: "max-h-(--available-height) overflow-y-auto",
|
|
71
72
|
children: items.map((item) => /* @__PURE__ */ jsxs(Select.Item, {
|
package/dist/forms/slider.js
CHANGED
|
@@ -40,7 +40,7 @@ const Slider$1 = React.forwardRef(function Slider$2({ className, onCommit, label
|
|
|
40
40
|
className: cn("flex w-full flex-col gap-(--cue-space-2)", className),
|
|
41
41
|
...elementProps,
|
|
42
42
|
children: [label === void 0 && !showValue ? null : /* @__PURE__ */ jsxs("div", {
|
|
43
|
-
className: "flex items-baseline justify-between gap-(--cue-space-3) font-mono text-(length:--cue-text-label) tracking-
|
|
43
|
+
className: "flex items-baseline justify-between gap-(--cue-space-3) font-mono text-(length:--cue-text-label) tracking-(--cue-tracking-caps-tight) text-fg-muted uppercase",
|
|
44
44
|
children: [label === void 0 ? /* @__PURE__ */ jsx("span", {}) : /* @__PURE__ */ jsx(Slider.Label, { children: label }), showValue ? /* @__PURE__ */ jsx(Slider.Value, { className: "tabular-nums text-fg normal-case tracking-normal" }) : null]
|
|
45
45
|
}), /* @__PURE__ */ jsx(Slider.Control, {
|
|
46
46
|
"data-slot": "slider-control",
|
package/dist/forms/toggle.d.ts
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -34,7 +34,8 @@ import { TitleBar, TitleBarProps } from "./chrome/title-bar.js";
|
|
|
34
34
|
import { Tree, TreeProps, TreeVisibility, TreeVisibilityToggle, TreeVisibilityToggleProps } from "./chrome/tree.js";
|
|
35
35
|
import { Toolbar, ToolbarButtonProps, ToolbarGroupProps, ToolbarRootProps, ToolbarSeparatorProps } from "./chrome/toolbar.js";
|
|
36
36
|
import "./chrome/index.js";
|
|
37
|
-
import {
|
|
37
|
+
import { FormControlSize } from "./forms/_chassis-size.js";
|
|
38
|
+
import { ControlVariantProps, bareControlClasses, controlClasses, controlGroupFocusClasses, controlSurface, controlVariants } from "./forms/_chassis.js";
|
|
38
39
|
import { TokenOverrides, isSafeTokenValue } from "./system/overrides.js";
|
|
39
40
|
import { FontFamilies, ResolvedMode, ThemeContextValue, ThemeProvider, ThemeProviderProps } from "./system/theme-provider.js";
|
|
40
41
|
import { Autocomplete, AutocompleteProps } from "./forms/autocomplete.js";
|
|
@@ -159,7 +159,7 @@ const CodeBlock = React.forwardRef(function CodeBlock({ code, label, language =
|
|
|
159
159
|
className: "flex items-center justify-between gap-(--cue-space-4) border-b border-border px-(--cue-pad-row-x) py-(--cue-pad-row-y)",
|
|
160
160
|
children: [/* @__PURE__ */ jsx("span", {
|
|
161
161
|
"data-slot": "code-block-label",
|
|
162
|
-
className: "font-mono text-(length:--cue-text-micro) tracking-
|
|
162
|
+
className: "font-mono text-(length:--cue-text-micro) tracking-(--cue-tracking-caps) text-fg-subtle uppercase",
|
|
163
163
|
children: label ?? language
|
|
164
164
|
}), /* @__PURE__ */ jsx(CopyButton, { value: code })]
|
|
165
165
|
}), /* @__PURE__ */ jsx("pre", {
|
|
@@ -13,7 +13,7 @@ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
|
13
13
|
* be said out loud, because `<h2>` and `<h3>` come bold by default and a bold
|
|
14
14
|
* micro-label in a dense list reads as a second kind of emphasis.
|
|
15
15
|
*/
|
|
16
|
-
const LEDGER_LABEL = "font-mono text-(length:--cue-text-label) font-normal tracking-
|
|
16
|
+
const LEDGER_LABEL = "font-mono text-(length:--cue-text-label) font-normal tracking-(--cue-tracking-caps) text-fg-subtle uppercase";
|
|
17
17
|
/**
|
|
18
18
|
* The disclosure button a collapsible heading holds.
|
|
19
19
|
*
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { cn } from "../lib/cn.js";
|
|
3
3
|
import { Chip } from "../primitives/chip.js";
|
|
4
4
|
import { useIsomorphicLayoutEffect } from "../system/use-isomorphic-layout-effect.js";
|
|
5
|
+
import { ELEVATION_2 } from "../system/_paint-elevation.js";
|
|
5
6
|
import { toRem } from "./_rem.js";
|
|
6
7
|
import { useControlHeight } from "../system/use-density.js";
|
|
7
8
|
import { ansiSpans } from "./_ansi.js";
|
|
@@ -204,7 +205,7 @@ const LogViewer = React.forwardRef(function LogViewer({ className, lines, follow
|
|
|
204
205
|
pending > 0 ? /* @__PURE__ */ jsx("button", {
|
|
205
206
|
type: "button",
|
|
206
207
|
"data-slot": "log-viewer-jump",
|
|
207
|
-
className:
|
|
208
|
+
className: `absolute bottom-(--cue-space-4) left-1/2 -translate-x-1/2 cursor-pointer rounded-(--radius-control) border border-border-overlay bg-surface-2 px-(--cue-space-4) py-(--cue-space-2) font-mono text-(length:--cue-text-label) text-fg ${ELEVATION_2} outline-none hover:border-accent hover:text-accent focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-1 focus-visible:outline-accent`,
|
|
208
209
|
onClick: jumpToBottom,
|
|
209
210
|
children: newLinesLabel(pending)
|
|
210
211
|
}) : null
|
|
@@ -58,7 +58,7 @@ const Progress$1 = React.forwardRef(function Progress$2({ className, trackClassN
|
|
|
58
58
|
children: [label === void 0 ? null : /* @__PURE__ */ jsx(Progress.Label, {
|
|
59
59
|
id: namedByCaption ? captionId : void 0,
|
|
60
60
|
"data-slot": "progress-label",
|
|
61
|
-
className: "truncate tracking-
|
|
61
|
+
className: "truncate tracking-(--cue-tracking-caps) text-fg-subtle uppercase",
|
|
62
62
|
children: label
|
|
63
63
|
}), showValue ? /* @__PURE__ */ jsx(Progress.Value, {
|
|
64
64
|
"data-slot": "progress-value",
|
package/dist/instruments/stat.js
CHANGED
|
@@ -39,7 +39,7 @@ const Stat = React.forwardRef(function Stat({ className, label, value, detail, t
|
|
|
39
39
|
children: [
|
|
40
40
|
/* @__PURE__ */ jsx("span", {
|
|
41
41
|
"data-slot": "stat-label",
|
|
42
|
-
className: "truncate font-mono text-(length:--cue-text-micro) tracking-
|
|
42
|
+
className: "truncate font-mono text-(length:--cue-text-micro) tracking-(--cue-tracking-caps) text-fg-subtle uppercase",
|
|
43
43
|
children: label
|
|
44
44
|
}),
|
|
45
45
|
/* @__PURE__ */ jsx("span", {
|
|
@@ -122,7 +122,7 @@ const TableHead = React.forwardRef(function TableHead({ className, numeric = fal
|
|
|
122
122
|
scope,
|
|
123
123
|
"data-slot": "table-head",
|
|
124
124
|
"data-numeric": numeric ? "" : void 0,
|
|
125
|
-
className: cn("border-b border-border bg-surface-1 px-(--cue-pad-row-x) py-(--cue-pad-row-y) text-left font-mono text-(length:--cue-text-label) font-normal tracking-
|
|
125
|
+
className: cn("border-b border-border bg-surface-1 px-(--cue-pad-row-x) py-(--cue-pad-row-y) text-left font-mono text-(length:--cue-text-label) font-normal tracking-(--cue-tracking-caps) whitespace-nowrap text-fg-subtle uppercase", sticky ? "sticky top-0 z-3 border-b-0 shadow-[inset_0_-1px_0_var(--cue-hair-strong)]" : null, className),
|
|
126
126
|
...elementProps
|
|
127
127
|
});
|
|
128
128
|
});
|
|
@@ -201,7 +201,7 @@ const Table = {
|
|
|
201
201
|
colSpan: span,
|
|
202
202
|
scope: "rowgroup",
|
|
203
203
|
"data-slot": "table-group-cell",
|
|
204
|
-
className: cn("bg-bg px-(--cue-pad-row-x) py-(--cue-pad-row-y) text-left font-mono text-(length:--cue-text-label) font-normal tracking-
|
|
204
|
+
className: cn("bg-bg px-(--cue-pad-row-x) py-(--cue-pad-row-y) text-left font-mono text-(length:--cue-text-label) font-normal tracking-(--cue-tracking-caps) whitespace-nowrap text-fg-subtle uppercase", sticky ? "sticky z-2 [top:var(--cue-table-group-top,0px)]" : null, className),
|
|
205
205
|
children: [/* @__PURE__ */ jsx(Label, {
|
|
206
206
|
"data-slot": "table-group-label",
|
|
207
207
|
className: TABLE_GROUP_LABEL,
|
|
@@ -191,7 +191,7 @@ const TerminalFrame = React.forwardRef(function TerminalFrame({ className, title
|
|
|
191
191
|
className: "flex h-control-md shrink-0 items-center justify-between gap-(--cue-space-3) border-b border-border px-(--cue-pad-row-x)",
|
|
192
192
|
children: [/* @__PURE__ */ jsx("span", {
|
|
193
193
|
"data-slot": "terminal-frame-title",
|
|
194
|
-
className: "min-w-0 truncate text-(length:--cue-text-label) tracking-
|
|
194
|
+
className: "min-w-0 truncate text-(length:--cue-text-label) tracking-(--cue-tracking-caps) text-fg-subtle uppercase",
|
|
195
195
|
children: title
|
|
196
196
|
}), copy ? /* @__PURE__ */ jsx("span", {
|
|
197
197
|
"data-slot": "terminal-frame-copy",
|
package/dist/layout/_ground.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/** What each ground paints. `"none"` paints nothing, so whatever is behind shows through. */
|
|
3
3
|
const GROUND_CLASSES = {
|
|
4
4
|
plain: "bg-surface-1",
|
|
5
|
-
dots: "bg-surface-1 bg-
|
|
5
|
+
dots: "bg-surface-1 bg-(image:--cue-paint-screen) bg-(length:--cue-paint-screen-size)",
|
|
6
6
|
none: ""
|
|
7
7
|
};
|
|
8
8
|
//#endregion
|
package/dist/layout/card.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { cn } from "../lib/cn.js";
|
|
2
|
+
import { RIM_INSET } from "../system/_paint-rim.js";
|
|
3
|
+
import { STROKE_SURFACE_1 } from "../system/_paint-stroke-surface-1.js";
|
|
2
4
|
import * as React from "react";
|
|
3
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
6
|
/**
|
|
@@ -19,7 +21,7 @@ const Card = {
|
|
|
19
21
|
ref,
|
|
20
22
|
"data-slot": "card",
|
|
21
23
|
"data-seam": seam ? "" : void 0,
|
|
22
|
-
className: cn("group/card flex flex-col overflow-hidden rounded-(--radius-surface)
|
|
24
|
+
className: cn("group/card flex flex-col overflow-hidden rounded-(--radius-surface)", seam ? "border border-border gap-px bg-border" : `${STROKE_SURFACE_1} ${RIM_INSET}`, className),
|
|
23
25
|
...elementProps
|
|
24
26
|
});
|
|
25
27
|
}),
|
|
@@ -94,7 +94,7 @@ const Disclosure = React.forwardRef(function Disclosure({ className, label = "ad
|
|
|
94
94
|
children: [/* @__PURE__ */ jsxs(Collapsible.Trigger, {
|
|
95
95
|
ref,
|
|
96
96
|
"data-slot": "disclosure-trigger",
|
|
97
|
-
className: cn("group/disclosure inline-flex cursor-pointer items-center gap-(--cue-space-2) self-start border-0 bg-transparent p-0 py-(--cue-space-2) font-mono text-(length:--cue-text-label) tracking-
|
|
97
|
+
className: cn("group/disclosure inline-flex cursor-pointer items-center gap-(--cue-space-2) self-start border-0 bg-transparent p-0 py-(--cue-space-2) font-mono text-(length:--cue-text-label) tracking-(--cue-tracking-caps) text-fg-subtle uppercase transition-colors duration-150 outline-none select-none hover:text-fg-muted focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-2 focus-visible:outline-accent", className),
|
|
98
98
|
...elementProps,
|
|
99
99
|
children: [
|
|
100
100
|
/* @__PURE__ */ jsx("span", {
|
|
@@ -20,7 +20,7 @@ const DescriptionList = {
|
|
|
20
20
|
return /* @__PURE__ */ jsx("dt", {
|
|
21
21
|
ref,
|
|
22
22
|
"data-slot": "description-list-term",
|
|
23
|
-
className: cn("font-mono text-(length:--cue-text-label) tracking-
|
|
23
|
+
className: cn("font-mono text-(length:--cue-text-label) tracking-(--cue-tracking-caps) text-fg-subtle uppercase", className),
|
|
24
24
|
...elementProps
|
|
25
25
|
});
|
|
26
26
|
}),
|
package/dist/layout/preview.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { PreviewGround } from "./_ground.js";
|
|
2
2
|
import * as React from "react";
|
|
3
|
-
import { StyleSet } from "@cueplusplus/tokens";
|
|
3
|
+
import { Paint, StyleSet } from "@cueplusplus/tokens";
|
|
4
4
|
import { Density as Density$1, FontName, Mode, ThemeName } from "@cueplusplus/theme-base";
|
|
5
5
|
//#region src/layout/preview.d.ts
|
|
6
6
|
/** Where the chrome sits and what the stage's ground is. */
|
|
@@ -71,6 +71,18 @@ interface PreviewProps extends Omit<React.ComponentPropsWithoutRef<"div">, "chil
|
|
|
71
71
|
* `<body>` and inherits nothing from the stage's DOM.
|
|
72
72
|
*/
|
|
73
73
|
styleSet?: StyleSet;
|
|
74
|
+
/**
|
|
75
|
+
* A look pack for the stage: the finish its surfaces wear.
|
|
76
|
+
*
|
|
77
|
+
* Stamped as `data-paint` on the stage element, and republished to React for
|
|
78
|
+
* the same reason `styleSet` is — a popover opened on the stage mounts on
|
|
79
|
+
* `<body>` and inherits nothing from the stage's DOM, so it has to be told.
|
|
80
|
+
*
|
|
81
|
+
* Absent means inherit. `none` is a value that opts OUT of an ambient pack,
|
|
82
|
+
* which is what a stage uses to show a component unpainted inside a page that
|
|
83
|
+
* is not.
|
|
84
|
+
*/
|
|
85
|
+
paint?: Paint;
|
|
74
86
|
/**
|
|
75
87
|
* Resize the stage by dragging or with the keyboard. `true` gives both axes
|
|
76
88
|
* inside the default bounds (160–1280 px wide, 96–960 px tall); an object
|