@stll/ui 0.34.4 → 0.34.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/application-rail.js +1 -1
- package/dist/components/breadcrumb.js +1 -1
- package/dist/components/button.d.ts +1 -1
- package/dist/components/button.js +1 -1
- package/dist/components/checkbox.js +1 -1
- package/dist/components/color-picker.js +3 -3
- package/dist/components/combobox.js +1 -1
- package/dist/components/composer.d.ts +2 -2
- package/dist/components/composer.js +2 -2
- package/dist/components/date-picker-popover.js +5 -5
- package/dist/components/input-control.d.ts +1 -1
- package/dist/components/input-control.js +1 -1
- package/dist/components/input-group.js +1 -1
- package/dist/components/input-otp.js +1 -1
- package/dist/components/input.js +1 -1
- package/dist/components/landing.d.ts +2 -2
- package/dist/components/landing.js +3 -3
- package/dist/components/menu.js +2 -2
- package/dist/components/scroll-area.js +1 -1
- package/dist/components/select.js +1 -1
- package/dist/components/table.js +1 -1
- package/dist/components/textarea.js +1 -1
- package/dist/components/toast.js +1 -1
- package/dist/inspector/chrome.js +2 -2
- package/dist/inspector/dock.js +1 -1
- package/dist/inspector/facet-bar.js +1 -1
- package/dist/kanban/card-shell.js +1 -1
- package/dist/kanban/column-band-header.js +1 -1
- package/dist/kanban/subgroup-board.js +1 -1
- package/dist/kanban/virtual-cell.js +1 -1
- package/dist/lib/week.js +4 -2
- package/package.json +1 -1
|
@@ -32,7 +32,7 @@ const ApplicationRailMenu = ({ className, ...props }) => /* @__PURE__ */ jsx("di
|
|
|
32
32
|
...props
|
|
33
33
|
});
|
|
34
34
|
const ApplicationRailButton = ({ className, ...props }) => /* @__PURE__ */ jsx("button", {
|
|
35
|
-
className: cn("text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground flex shrink-0 items-center justify-center rounded-md outline-hidden
|
|
35
|
+
className: cn("text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground flex shrink-0 items-center justify-center rounded-md outline-hidden focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50", APPLICATION_RAIL_BUTTON_SIZE, className),
|
|
36
36
|
"data-slot": "application-rail-button",
|
|
37
37
|
type: "button",
|
|
38
38
|
...props
|
|
@@ -23,7 +23,7 @@ const BreadcrumbItem = ({ className, ...props }) => /* @__PURE__ */ jsx("li", {
|
|
|
23
23
|
});
|
|
24
24
|
function BreadcrumbLink({ className, render, ...props }) {
|
|
25
25
|
const defaultProps = {
|
|
26
|
-
className: cn("hover:text-foreground
|
|
26
|
+
className: cn("hover:text-foreground", className),
|
|
27
27
|
"data-slot": "breadcrumb-link"
|
|
28
28
|
};
|
|
29
29
|
return useRender({
|
|
@@ -13,7 +13,7 @@ import { VariantProps } from "class-variance-authority";
|
|
|
13
13
|
*/
|
|
14
14
|
declare const buttonAccessibleDisabledClass = "cursor-not-allowed opacity-64";
|
|
15
15
|
declare const buttonVariants: (props?: ({
|
|
16
|
-
size?: "default" | "
|
|
16
|
+
size?: "default" | "chip" | "icon" | "icon-lg" | "icon-sm" | "icon-xl" | "icon-xs" | "lg" | "row" | "sm" | "xl" | "xs" | null | undefined;
|
|
17
17
|
variant?: "link" | "default" | "destructive" | "destructive-outline" | "destructive-ghost" | "ghost" | "muted" | "outline" | "secondary" | null | undefined;
|
|
18
18
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
19
19
|
type ButtonProps = {
|
|
@@ -19,7 +19,7 @@ import { cva } from "class-variance-authority";
|
|
|
19
19
|
* swaps the cursor so the control still reads as unavailable on hover.
|
|
20
20
|
*/
|
|
21
21
|
const buttonAccessibleDisabledClass = "cursor-not-allowed opacity-64";
|
|
22
|
-
const buttonVariants = cva("focus-visible:ring-ring focus-visible:ring-offset-background relative inline-flex shrink-0 cursor-pointer items-center justify-center gap-2 rounded-lg border text-base font-medium whitespace-nowrap
|
|
22
|
+
const buttonVariants = cva("focus-visible:ring-ring focus-visible:ring-offset-background relative inline-flex shrink-0 cursor-pointer items-center justify-center gap-2 rounded-lg border text-base font-medium whitespace-nowrap outline-none before:pointer-events-none before:absolute before:inset-0 before:rounded-[calc(var(--radius-lg)-1px)] focus-visible:ring-2 focus-visible:ring-offset-1 disabled:pointer-events-none disabled:opacity-64 sm:text-sm pointer-coarse:after:absolute pointer-coarse:after:size-full pointer-coarse:after:min-h-11 pointer-coarse:after:min-w-11 [&_svg]:pointer-events-none [&_svg]:-mx-0.5 [&_svg]:shrink-0 [&_svg:not([class*='opacity-'])]:opacity-80 [&_svg:not([class*='size-'])]:size-4.5 sm:[&_svg:not([class*='size-'])]:size-4", {
|
|
23
23
|
defaultVariants: {
|
|
24
24
|
size: "default",
|
|
25
25
|
variant: "default"
|
|
@@ -4,7 +4,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
|
|
|
4
4
|
import { Checkbox as Checkbox$1 } from "@base-ui/react/checkbox";
|
|
5
5
|
//#region src/components/checkbox.tsx
|
|
6
6
|
const Checkbox = ({ className, ...props }) => /* @__PURE__ */ jsx(Checkbox$1.Root, {
|
|
7
|
-
className: cn("border-input bg-background ring-ring focus-visible:ring-offset-background aria-invalid:border-destructive/36 focus-visible:aria-invalid:border-destructive/64 focus-visible:aria-invalid:ring-destructive/48 dark:not-data-checked:bg-input/32 dark:aria-invalid:ring-destructive/24 relative inline-flex size-4.5 shrink-0 items-center justify-center rounded-[4px] border shadow-xs/5
|
|
7
|
+
className: cn("border-input bg-background ring-ring focus-visible:ring-offset-background aria-invalid:border-destructive/36 focus-visible:aria-invalid:border-destructive/64 focus-visible:aria-invalid:ring-destructive/48 dark:not-data-checked:bg-input/32 dark:aria-invalid:ring-destructive/24 relative inline-flex size-4.5 shrink-0 items-center justify-center rounded-[4px] border shadow-xs/5 outline-none not-dark:bg-clip-padding before:pointer-events-none before:absolute before:inset-0 before:rounded-[3px] not-data-disabled:not-data-checked:not-aria-invalid:before:shadow-[0_1px_--theme(--color-black/4%)] focus-visible:ring-2 focus-visible:ring-offset-1 data-disabled:opacity-64 sm:size-4 dark:not-data-disabled:not-data-checked:not-aria-invalid:before:shadow-[0_-1px_--theme(--color-white/6%)] [[data-disabled],[data-checked],[aria-invalid]]:shadow-none", className),
|
|
8
8
|
"data-slot": "checkbox",
|
|
9
9
|
...props,
|
|
10
10
|
children: /* @__PURE__ */ jsx(Checkbox$1.Indicator, {
|
|
@@ -125,7 +125,7 @@ const ColorSwatch = ({ cssColor, selected, label, isLight, onClick, presentation
|
|
|
125
125
|
const swatch = /* @__PURE__ */ jsx("button", {
|
|
126
126
|
"aria-label": label,
|
|
127
127
|
"aria-pressed": selected,
|
|
128
|
-
className: cn(presentation === "inline" ? "ring-offset-popover relative grid size-11 shrink-0 place-items-center rounded-full border ring-offset-2 transition-transform outline-none hover:scale-105 focus-visible:ring-2" : "hover:border-foreground relative flex size-6 items-center justify-center rounded-md border transition-
|
|
128
|
+
className: cn(presentation === "inline" ? "ring-offset-popover relative grid size-11 shrink-0 place-items-center rounded-full border ring-offset-2 transition-transform outline-none hover:scale-105 focus-visible:ring-2" : "hover:border-foreground relative flex size-6 items-center justify-center rounded-md border transition-transform hover:scale-115 sm:size-5", selectionClassName, isLight && !selected && "border-border"),
|
|
129
129
|
onClick,
|
|
130
130
|
style: { backgroundColor: cssColor },
|
|
131
131
|
type: "button",
|
|
@@ -248,7 +248,7 @@ const ColorPickerContent = ({ value, onSelect, onClear, presets, columns, defaul
|
|
|
248
248
|
onClear && /* @__PURE__ */ jsxs(Popover.Close, {
|
|
249
249
|
render: /* @__PURE__ */ jsx("button", {
|
|
250
250
|
"aria-label": "No color",
|
|
251
|
-
className: "text-muted-foreground hover:bg-accent hover:text-accent-foreground text-2xs flex h-6 w-full items-center gap-1.5 rounded px-1
|
|
251
|
+
className: "text-muted-foreground hover:bg-accent hover:text-accent-foreground text-2xs flex h-6 w-full items-center gap-1.5 rounded px-1",
|
|
252
252
|
onClick: onClear,
|
|
253
253
|
type: "button"
|
|
254
254
|
}),
|
|
@@ -271,7 +271,7 @@ const ColorPickerContent = ({ value, onSelect, onClear, presets, columns, defaul
|
|
|
271
271
|
}, preset.value))
|
|
272
272
|
}),
|
|
273
273
|
!expanded ? /* @__PURE__ */ jsxs("button", {
|
|
274
|
-
className: "text-muted-foreground hover:text-foreground text-2xs flex items-center justify-center gap-1 py-0.5
|
|
274
|
+
className: "text-muted-foreground hover:text-foreground text-2xs flex items-center justify-center gap-1 py-0.5",
|
|
275
275
|
onClick: () => setExpanded(true),
|
|
276
276
|
type: "button",
|
|
277
277
|
children: [moreLabel, /* @__PURE__ */ jsx(ChevronDownIcon, { className: "size-3" })]
|
|
@@ -198,7 +198,7 @@ const ComboboxCollection = (props) => /* @__PURE__ */ jsx(Combobox$1.Collection,
|
|
|
198
198
|
const ComboboxChips = ({ className, children, startAddon, ...props }) => {
|
|
199
199
|
const { chipsRef } = React$1.use(ComboboxContext);
|
|
200
200
|
return /* @__PURE__ */ jsxs(Combobox$1.Chips, {
|
|
201
|
-
className: cn("border-input bg-background ring-ring/24 focus-within:border-ring has-autofill:bg-foreground/4 has-aria-invalid:border-destructive/36 focus-within:has-aria-invalid:border-destructive/64 focus-within:has-aria-invalid:ring-destructive/16 dark:not-has-disabled:bg-input/32 dark:has-autofill:bg-foreground/8 dark:has-aria-invalid:ring-destructive/24 relative inline-flex min-h-9 w-full flex-wrap gap-1 rounded-lg border p-[calc(--spacing(1)-1px)] text-base shadow-xs/5
|
|
201
|
+
className: cn("border-input bg-background ring-ring/24 focus-within:border-ring has-autofill:bg-foreground/4 has-aria-invalid:border-destructive/36 focus-within:has-aria-invalid:border-destructive/64 focus-within:has-aria-invalid:ring-destructive/16 dark:not-has-disabled:bg-input/32 dark:has-autofill:bg-foreground/8 dark:has-aria-invalid:ring-destructive/24 relative inline-flex min-h-9 w-full flex-wrap gap-1 rounded-lg border p-[calc(--spacing(1)-1px)] text-base shadow-xs/5 outline-none *:min-h-7 not-dark:bg-clip-padding before:pointer-events-none before:absolute before:inset-0 before:rounded-[calc(var(--radius-lg)-1px)] not-has-disabled:not-focus-within:not-aria-invalid:before:shadow-[0_1px_--theme(--color-black/4%)] focus-within:ring-[3px] has-disabled:pointer-events-none has-disabled:opacity-64 has-data-[size=lg]:min-h-10 has-data-[size=lg]:*:min-h-8 has-data-[size=sm]:min-h-8 has-data-[size=sm]:*:min-h-6 has-[:disabled,:focus-within,[aria-invalid]]:shadow-none sm:min-h-8 sm:text-sm sm:*:min-h-6 sm:has-data-[size=lg]:min-h-9 sm:has-data-[size=lg]:*:min-h-7 sm:has-data-[size=sm]:min-h-7 sm:has-data-[size=sm]:*:min-h-5 dark:not-has-disabled:not-focus-within:not-aria-invalid:before:shadow-[0_-1px_--theme(--color-white/6%)]", className),
|
|
202
202
|
"data-slot": "combobox-chips",
|
|
203
203
|
onMouseDown: containedHandler(chipsRef, (e) => {
|
|
204
204
|
const { target } = e;
|
|
@@ -15,7 +15,7 @@ export declare const COMPOSER_CONTROL_BUTTON_SIZE: "icon-sm";
|
|
|
15
15
|
* radius is the docked bar's original `rounded-2xl`: at the compact row's
|
|
16
16
|
* stature it reads as a soft pill, which is the shape the composers were
|
|
17
17
|
* meant to unify on. */
|
|
18
|
-
export declare const COMPOSER_BOX_CLASS = "bg-background rounded-2xl border
|
|
18
|
+
export declare const COMPOSER_BOX_CLASS = "bg-background rounded-2xl border";
|
|
19
19
|
/** The box's focus ring in its default (non-anonymized) treatment. */
|
|
20
20
|
export declare const COMPOSER_BOX_FOCUS_CLASS = "focus-within:border-ring";
|
|
21
21
|
/**
|
|
@@ -69,7 +69,7 @@ export declare const COMPOSER_SEND_BUTTON_CLASS = "bg-foreground text-background
|
|
|
69
69
|
* law home's scope and jurisdiction): quiet text with a hover surface, so
|
|
70
70
|
* the row stays subordinate to the box above it.
|
|
71
71
|
*/
|
|
72
|
-
export declare const COMPOSER_PICKER_TRIGGER_CLASS = "text-muted-foreground hover:text-foreground hover:bg-accent inline-flex min-w-0 shrink items-center gap-1 rounded-md px-1.5 py-0.5 text-2xs
|
|
72
|
+
export declare const COMPOSER_PICKER_TRIGGER_CLASS = "text-muted-foreground hover:text-foreground hover:bg-accent inline-flex min-w-0 shrink items-center gap-1 rounded-md px-1.5 py-0.5 text-2xs";
|
|
73
73
|
type ComposerStatusRowProps = {
|
|
74
74
|
/** Left cluster: matter picker, web-search / anonymize toggles, ... */
|
|
75
75
|
start?: ReactNode | undefined;
|
|
@@ -19,7 +19,7 @@ const COMPOSER_CONTROL_BUTTON_SIZE = "icon-sm";
|
|
|
19
19
|
* radius is the docked bar's original `rounded-2xl`: at the compact row's
|
|
20
20
|
* stature it reads as a soft pill, which is the shape the composers were
|
|
21
21
|
* meant to unify on. */
|
|
22
|
-
const COMPOSER_BOX_CLASS = "bg-background rounded-2xl border
|
|
22
|
+
const COMPOSER_BOX_CLASS = "bg-background rounded-2xl border";
|
|
23
23
|
/** The box's focus ring in its default (non-anonymized) treatment. */
|
|
24
24
|
const COMPOSER_BOX_FOCUS_CLASS = "focus-within:border-ring";
|
|
25
25
|
/**
|
|
@@ -73,7 +73,7 @@ const COMPOSER_SEND_BUTTON_CLASS = "bg-foreground text-background hover:bg-foreg
|
|
|
73
73
|
* law home's scope and jurisdiction): quiet text with a hover surface, so
|
|
74
74
|
* the row stays subordinate to the box above it.
|
|
75
75
|
*/
|
|
76
|
-
const COMPOSER_PICKER_TRIGGER_CLASS = "text-muted-foreground hover:text-foreground hover:bg-accent inline-flex min-w-0 shrink items-center gap-1 rounded-md px-1.5 py-0.5 text-2xs
|
|
76
|
+
const COMPOSER_PICKER_TRIGGER_CLASS = "text-muted-foreground hover:text-foreground hover:bg-accent inline-flex min-w-0 shrink items-center gap-1 rounded-md px-1.5 py-0.5 text-2xs";
|
|
77
77
|
/**
|
|
78
78
|
* The slim status row rendered beneath a composer box: a `text-xs` row with
|
|
79
79
|
* a start cluster and an end slot pinned to the far edge. Shared by every
|
|
@@ -334,7 +334,7 @@ const DatePickerPopoverContent = ({ id, labelledBy, value: rawValue, onChange, l
|
|
|
334
334
|
render: /* @__PURE__ */ jsx("button", {
|
|
335
335
|
"aria-label": !labelledBy && value ? displayLabel : void 0,
|
|
336
336
|
"aria-labelledby": labelledBy ? `${labelledBy} ${displayValueId}` : void 0,
|
|
337
|
-
className: cn("flex h-auto min-h-7 w-full min-w-0 items-center gap-1.5", "rounded-md px-1.5 text-sm", "hover:bg-muted
|
|
337
|
+
className: cn("flex h-auto min-h-7 w-full min-w-0 items-center gap-1.5", "rounded-md px-1.5 text-sm", "hover:bg-muted", (() => {
|
|
338
338
|
if (isOverdue) return "text-destructive";
|
|
339
339
|
if (value) return "text-foreground";
|
|
340
340
|
return "text-muted-foreground";
|
|
@@ -379,7 +379,7 @@ const DatePickerPopoverContent = ({ id, labelledBy, value: rawValue, onChange, l
|
|
|
379
379
|
children: /* @__PURE__ */ jsx(DirectionalIcon, { icon: ChevronLeftIcon })
|
|
380
380
|
}),
|
|
381
381
|
/* @__PURE__ */ jsx("button", {
|
|
382
|
-
className: cn("text-xs font-medium
|
|
382
|
+
className: cn("text-xs font-medium", view !== "years" && "hover:bg-muted cursor-pointer rounded-md px-2 py-0.5", view === "years" && "cursor-default"),
|
|
383
383
|
onClick: handleHeaderClick,
|
|
384
384
|
tabIndex: view === "years" ? -1 : 0,
|
|
385
385
|
type: "button",
|
|
@@ -422,7 +422,7 @@ const DatePickerPopoverContent = ({ id, labelledBy, value: rawValue, onChange, l
|
|
|
422
422
|
"aria-disabled": disabled || void 0,
|
|
423
423
|
"aria-label": formatDayLabel(day.date),
|
|
424
424
|
"aria-selected": isSelected || void 0,
|
|
425
|
-
className: cn("flex size-8 items-center justify-center", "rounded-full text-xs
|
|
425
|
+
className: cn("flex size-8 items-center justify-center", "rounded-full text-xs", "focus-visible:ring-ring focus-visible:ring-1 focus-visible:outline-none", disabled ? "text-foreground-disabled cursor-not-allowed" : "hover:bg-muted cursor-pointer", !day.isCurrentMonth && !disabled && "text-foreground-disabled", day.isWeekend && day.isCurrentMonth && !disabled && !isSelected && "text-foreground-label", day.isToday && !isSelected && !disabled && "ring-foreground font-medium ring-1", isSelected && "bg-primary text-primary-foreground hover:bg-primary/90"),
|
|
426
426
|
"data-date": day.date,
|
|
427
427
|
onClick: () => {
|
|
428
428
|
if (!disabled) onChange(day.date);
|
|
@@ -504,7 +504,7 @@ const MonthGrid = ({ locale, viewYear, currentMonth, currentYear, onSelect, toda
|
|
|
504
504
|
const isSelected = currentMonth !== null && currentYear !== null && month === currentMonth && viewYear === currentYear;
|
|
505
505
|
return /* @__PURE__ */ jsxs("button", {
|
|
506
506
|
"aria-selected": isSelected || void 0,
|
|
507
|
-
className: cn("rounded-md px-2 py-1.5 text-xs
|
|
507
|
+
className: cn("rounded-md px-2 py-1.5 text-xs", "hover:bg-muted cursor-pointer", "focus-visible:ring-ring focus-visible:ring-1 focus-visible:outline-none", month === todayMonth && viewYear === todayYear && !isSelected && "ring-foreground font-medium ring-1", isSelected && "bg-primary text-primary-foreground hover:bg-primary/90"),
|
|
508
508
|
onClick: () => onSelect(month),
|
|
509
509
|
role: "gridcell",
|
|
510
510
|
type: "button",
|
|
@@ -536,7 +536,7 @@ const YearGrid = ({ decadeBase, currentYear, onSelect, today }) => {
|
|
|
536
536
|
const isSelected = currentYear !== null && year === currentYear;
|
|
537
537
|
return /* @__PURE__ */ jsx("button", {
|
|
538
538
|
"aria-selected": isSelected || void 0,
|
|
539
|
-
className: cn("rounded-md px-2 py-1.5 text-xs
|
|
539
|
+
className: cn("rounded-md px-2 py-1.5 text-xs", "hover:bg-muted cursor-pointer", "focus-visible:ring-ring focus-visible:ring-1 focus-visible:outline-none", isOutside && !isSelected && "text-foreground-subtle", year === todayYear && !isSelected && "ring-foreground font-medium ring-1", isSelected && "bg-primary text-primary-foreground hover:bg-primary/90"),
|
|
540
540
|
onClick: () => onSelect(year),
|
|
541
541
|
role: "gridcell",
|
|
542
542
|
type: "button",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* two boxes drift apart the moment a caller sizes the wrapper: the text sits
|
|
10
10
|
* at the top of the control while the icon stays centred.
|
|
11
11
|
*/
|
|
12
|
-
export declare const INPUT_CONTROL_CLASS_NAME = "border-input bg-background text-foreground ring-ring/24 has-autofill:bg-foreground/4 has-focus-visible:border-ring has-aria-invalid:border-destructive/36 has-focus-visible:has-aria-invalid:border-destructive/64 has-focus-visible:has-aria-invalid:ring-destructive/16 dark:bg-input/32 dark:has-autofill:bg-foreground/8 dark:has-aria-invalid:ring-destructive/24 relative inline-flex w-full rounded-lg border text-base shadow-xs/5
|
|
12
|
+
export declare const INPUT_CONTROL_CLASS_NAME = "border-input bg-background text-foreground ring-ring/24 has-autofill:bg-foreground/4 has-focus-visible:border-ring has-aria-invalid:border-destructive/36 has-focus-visible:has-aria-invalid:border-destructive/64 has-focus-visible:has-aria-invalid:ring-destructive/16 dark:bg-input/32 dark:has-autofill:bg-foreground/8 dark:has-aria-invalid:ring-destructive/24 relative inline-flex w-full rounded-lg border text-base shadow-xs/5 not-dark:bg-clip-padding before:pointer-events-none before:absolute before:inset-0 before:rounded-[calc(var(--radius-lg)-1px)] not-has-disabled:not-has-focus-visible:not-has-aria-invalid:before:shadow-[0_1px_--theme(--color-black/4%)] has-focus-visible:ring-[3px] has-disabled:opacity-64 has-[:disabled,:focus-visible,[aria-invalid]]:shadow-none sm:text-sm dark:not-has-disabled:not-has-focus-visible:not-has-aria-invalid:before:shadow-[0_-1px_--theme(--color-white/6%)] pointer-coarse:min-h-11";
|
|
13
13
|
export declare const INPUT_ELEMENT_CLASS_NAME = "placeholder:text-foreground-placeholder h-full min-h-8.5 w-full min-w-0 rounded-[inherit] px-[calc(--spacing(3)-1px)] leading-8.5 outline-none [transition:background-color_5000000s_ease-in-out_0s] sm:min-h-7.5 sm:leading-7.5";
|
|
14
14
|
export declare const INPUT_SIZE_CLASS_NAMES: {
|
|
15
15
|
readonly sm: "min-h-7.5 px-[calc(--spacing(2.5)-1px)] leading-7.5 sm:min-h-6.5 sm:leading-6.5";
|
|
@@ -10,7 +10,7 @@ import { CONTROL_SIZE } from "../lib/control-size.js";
|
|
|
10
10
|
* two boxes drift apart the moment a caller sizes the wrapper: the text sits
|
|
11
11
|
* at the top of the control while the icon stays centred.
|
|
12
12
|
*/
|
|
13
|
-
const INPUT_CONTROL_CLASS_NAME = "border-input bg-background text-foreground ring-ring/24 has-autofill:bg-foreground/4 has-focus-visible:border-ring has-aria-invalid:border-destructive/36 has-focus-visible:has-aria-invalid:border-destructive/64 has-focus-visible:has-aria-invalid:ring-destructive/16 dark:bg-input/32 dark:has-autofill:bg-foreground/8 dark:has-aria-invalid:ring-destructive/24 relative inline-flex w-full rounded-lg border text-base shadow-xs/5
|
|
13
|
+
const INPUT_CONTROL_CLASS_NAME = "border-input bg-background text-foreground ring-ring/24 has-autofill:bg-foreground/4 has-focus-visible:border-ring has-aria-invalid:border-destructive/36 has-focus-visible:has-aria-invalid:border-destructive/64 has-focus-visible:has-aria-invalid:ring-destructive/16 dark:bg-input/32 dark:has-autofill:bg-foreground/8 dark:has-aria-invalid:ring-destructive/24 relative inline-flex w-full rounded-lg border text-base shadow-xs/5 not-dark:bg-clip-padding before:pointer-events-none before:absolute before:inset-0 before:rounded-[calc(var(--radius-lg)-1px)] not-has-disabled:not-has-focus-visible:not-has-aria-invalid:before:shadow-[0_1px_--theme(--color-black/4%)] has-focus-visible:ring-[3px] has-disabled:opacity-64 has-[:disabled,:focus-visible,[aria-invalid]]:shadow-none sm:text-sm dark:not-has-disabled:not-has-focus-visible:not-has-aria-invalid:before:shadow-[0_-1px_--theme(--color-white/6%)] pointer-coarse:min-h-11";
|
|
14
14
|
const INPUT_ELEMENT_CLASS_NAME = "placeholder:text-foreground-placeholder h-full min-h-8.5 w-full min-w-0 rounded-[inherit] px-[calc(--spacing(3)-1px)] leading-8.5 outline-none [transition:background-color_5000000s_ease-in-out_0s] sm:min-h-7.5 sm:leading-7.5";
|
|
15
15
|
const INPUT_SIZE_CLASS_NAMES = {
|
|
16
16
|
[CONTROL_SIZE.sm]: "min-h-7.5 px-[calc(--spacing(2.5)-1px)] leading-7.5 sm:min-h-6.5 sm:leading-6.5",
|
|
@@ -6,7 +6,7 @@ import { jsx } from "react/jsx-runtime";
|
|
|
6
6
|
import { cva } from "class-variance-authority";
|
|
7
7
|
//#region src/components/input-group.tsx
|
|
8
8
|
const InputGroup = ({ className, ...props }) => /* @__PURE__ */ jsx("div", {
|
|
9
|
-
className: cn("border-input bg-background text-foreground ring-ring/24 has-autofill:bg-foreground/4 has-[input:focus-visible,textarea:focus-visible]:border-ring has-[input[aria-invalid],textarea[aria-invalid]]:border-destructive/36 has-[input:focus-visible,textarea:focus-visible]:has-[input[aria-invalid],textarea[aria-invalid]]:border-destructive/64 has-[input:focus-visible,textarea:focus-visible]:has-[input[aria-invalid],textarea[aria-invalid]]:ring-destructive/16 dark:bg-input/32 dark:has-autofill:bg-foreground/8 dark:has-[input[aria-invalid],textarea[aria-invalid]]:ring-destructive/24 relative inline-flex w-full min-w-0 items-center rounded-lg border text-base shadow-xs/5
|
|
9
|
+
className: cn("border-input bg-background text-foreground ring-ring/24 has-autofill:bg-foreground/4 has-[input:focus-visible,textarea:focus-visible]:border-ring has-[input[aria-invalid],textarea[aria-invalid]]:border-destructive/36 has-[input:focus-visible,textarea:focus-visible]:has-[input[aria-invalid],textarea[aria-invalid]]:border-destructive/64 has-[input:focus-visible,textarea:focus-visible]:has-[input[aria-invalid],textarea[aria-invalid]]:ring-destructive/16 dark:bg-input/32 dark:has-autofill:bg-foreground/8 dark:has-[input[aria-invalid],textarea[aria-invalid]]:ring-destructive/24 relative inline-flex w-full min-w-0 items-center rounded-lg border text-base shadow-xs/5 not-dark:bg-clip-padding before:pointer-events-none before:absolute before:inset-0 before:rounded-[calc(var(--radius-lg)-1px)] not-has-[input:disabled,textarea:disabled]:not-has-[input:focus-visible,textarea:focus-visible]:not-has-[input[aria-invalid],textarea[aria-invalid]]:before:shadow-[0_1px_--theme(--color-black/4%)] has-data-[align=block-end]:h-auto has-data-[align=block-end]:flex-col has-data-[align=block-start]:h-auto has-data-[align=block-start]:flex-col has-[input:disabled,textarea:disabled]:opacity-64 has-[input:disabled,textarea:disabled,input:focus-visible,textarea:focus-visible,input[aria-invalid],textarea[aria-invalid]]:shadow-none has-[input:focus-visible,textarea:focus-visible]:ring-[3px] has-[textarea]:h-auto sm:text-sm dark:not-has-[input:disabled,textarea:disabled]:not-has-[input:focus-visible,textarea:focus-visible]:not-has-[input[aria-invalid],textarea[aria-invalid]]:before:shadow-[0_-1px_--theme(--color-white/6%)] has-data-[align=inline-end]:**:[[data-size=sm]_input]:pe-1.5 has-data-[align=inline-start]:**:[[data-size=sm]_input]:ps-1.5 *:[[data-slot=input-control],[data-slot=textarea-control]]:contents *:[[data-slot=input-control],[data-slot=textarea-control]]:before:hidden has-data-[align=block-end]:**:[input]:pt-1.5 has-data-[align=block-start]:**:[input]:pb-1.5 has-data-[align=inline-end]:**:[input]:pe-2 has-data-[align=inline-start]:**:[input]:ps-2 has-[[data-align=block-start],[data-align=block-end]]:**:[input]:h-auto **:[textarea_button]:rounded-[calc(var(--radius-md)-1px)] **:[textarea]:min-h-20.5 **:[textarea]:resize-none **:[textarea]:py-[calc(--spacing(3)-1px)] **:[textarea]:max-sm:min-h-23.5", className),
|
|
10
10
|
"data-slot": "input-group",
|
|
11
11
|
role: "group",
|
|
12
12
|
...props
|
|
@@ -19,7 +19,7 @@ const InputOTPGroup = ({ className, ...props }) => /* @__PURE__ */ jsx("div", {
|
|
|
19
19
|
const InputOTPSlot = ({ index, className, ...props }) => {
|
|
20
20
|
const { char, hasFakeCaret, isActive } = React$1.use(OTPInputContext).slots[index] ?? {};
|
|
21
21
|
return /* @__PURE__ */ jsxs("div", {
|
|
22
|
-
className: cn("border-input aria-invalid:border-destructive data-[active=true]:border-ring data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:border-destructive data-[active=true]:aria-invalid:ring-destructive/20 dark:bg-input/30 dark:data-[active=true]:aria-invalid:ring-destructive/40 relative flex h-9 w-9 items-center justify-center border-y border-e text-sm shadow-xs
|
|
22
|
+
className: cn("border-input aria-invalid:border-destructive data-[active=true]:border-ring data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:border-destructive data-[active=true]:aria-invalid:ring-destructive/20 dark:bg-input/30 dark:data-[active=true]:aria-invalid:ring-destructive/40 relative flex h-9 w-9 items-center justify-center border-y border-e text-sm shadow-xs outline-none first:rounded-s-md first:border-s last:rounded-e-md data-[active=true]:z-10 data-[active=true]:ring-[3px]", className),
|
|
23
23
|
"data-active": isActive,
|
|
24
24
|
"data-slot": "input-otp-slot",
|
|
25
25
|
...props,
|
package/dist/components/input.js
CHANGED
|
@@ -20,7 +20,7 @@ const Input = ({ className, size = CONTROL_SIZE.default, unstyled = false, nativ
|
|
|
20
20
|
};
|
|
21
21
|
const inputClassName = cn(INPUT_ELEMENT_CLASS_NAME, INPUT_SIZE_CLASS_NAMES[controlSize], props.type === "search" && "ps-8 [&::-webkit-search-cancel-button]:appearance-none [&::-webkit-search-decoration]:appearance-none [&::-webkit-search-results-button]:appearance-none [&::-webkit-search-results-decoration]:appearance-none");
|
|
22
22
|
return /* @__PURE__ */ jsxs("span", {
|
|
23
|
-
className: cn(!unstyled && "border-input bg-background text-foreground ring-ring/24 has-autofill:bg-foreground/4 has-focus-visible:border-ring has-aria-invalid:border-destructive/36 has-focus-visible:has-aria-invalid:border-destructive/64 has-focus-visible:has-aria-invalid:ring-destructive/16 dark:bg-input/32 dark:has-autofill:bg-foreground/8 dark:has-aria-invalid:ring-destructive/24 relative inline-flex w-full rounded-lg border text-base shadow-xs/5
|
|
23
|
+
className: cn(!unstyled && "border-input bg-background text-foreground ring-ring/24 has-autofill:bg-foreground/4 has-focus-visible:border-ring has-aria-invalid:border-destructive/36 has-focus-visible:has-aria-invalid:border-destructive/64 has-focus-visible:has-aria-invalid:ring-destructive/16 dark:bg-input/32 dark:has-autofill:bg-foreground/8 dark:has-aria-invalid:ring-destructive/24 relative inline-flex w-full rounded-lg border text-base shadow-xs/5 not-dark:bg-clip-padding before:pointer-events-none before:absolute before:inset-0 before:rounded-[calc(var(--radius-lg)-1px)] not-has-disabled:not-has-focus-visible:not-has-aria-invalid:before:shadow-[0_1px_--theme(--color-black/4%)] has-focus-visible:ring-[3px] has-disabled:opacity-64 has-[:disabled,:focus-visible,[aria-invalid]]:shadow-none sm:text-sm dark:not-has-disabled:not-has-focus-visible:not-has-aria-invalid:before:shadow-[0_-1px_--theme(--color-white/6%)] pointer-coarse:min-h-11", className) || void 0,
|
|
24
24
|
"data-size": size,
|
|
25
25
|
"data-slot": "input-control",
|
|
26
26
|
dir: contentDir.dir,
|
|
@@ -25,9 +25,9 @@ type LandingGreetingProps = {
|
|
|
25
25
|
};
|
|
26
26
|
export declare const LandingGreeting: ({ icon, children }: LandingGreetingProps) => import("react").JSX.Element;
|
|
27
27
|
/** A column's heading: an icon and an uppercase label, as a link or a trigger. */
|
|
28
|
-
export declare const LANDING_SECTION_HEADING_CLASS = "text-muted-foreground hover:text-foreground focus-visible:ring-ring flex items-center gap-2 rounded-md px-1 text-xs font-semibold tracking-widest uppercase
|
|
28
|
+
export declare const LANDING_SECTION_HEADING_CLASS = "text-muted-foreground hover:text-foreground focus-visible:ring-ring flex items-center gap-2 rounded-md px-1 text-xs font-semibold tracking-widest uppercase outline-none focus-visible:ring-2";
|
|
29
29
|
/** A row of a column, as a link or a button. */
|
|
30
|
-
export declare const LANDING_ROW_CLASS = "group hover:bg-accent/50 focus-visible:ring-ring rounded-md px-2 py-1.5 text-start
|
|
30
|
+
export declare const LANDING_ROW_CLASS = "group hover:bg-accent/50 focus-visible:ring-ring rounded-md px-2 py-1.5 text-start outline-none focus-visible:ring-2";
|
|
31
31
|
type LandingSectionProps = {
|
|
32
32
|
children: ReactNode;
|
|
33
33
|
heading: ReactNode;
|
|
@@ -40,9 +40,9 @@ const LandingGreeting = ({ icon, children }) => /* @__PURE__ */ jsxs("div", {
|
|
|
40
40
|
})]
|
|
41
41
|
});
|
|
42
42
|
/** A column's heading: an icon and an uppercase label, as a link or a trigger. */
|
|
43
|
-
const LANDING_SECTION_HEADING_CLASS = "text-muted-foreground hover:text-foreground focus-visible:ring-ring flex items-center gap-2 rounded-md px-1 text-xs font-semibold tracking-widest uppercase
|
|
43
|
+
const LANDING_SECTION_HEADING_CLASS = "text-muted-foreground hover:text-foreground focus-visible:ring-ring flex items-center gap-2 rounded-md px-1 text-xs font-semibold tracking-widest uppercase outline-none focus-visible:ring-2";
|
|
44
44
|
/** A row of a column, as a link or a button. */
|
|
45
|
-
const LANDING_ROW_CLASS = "group hover:bg-accent/50 focus-visible:ring-ring rounded-md px-2 py-1.5 text-start
|
|
45
|
+
const LANDING_ROW_CLASS = "group hover:bg-accent/50 focus-visible:ring-ring rounded-md px-2 py-1.5 text-start outline-none focus-visible:ring-2";
|
|
46
46
|
/** A column: its heading stays put, its rows scroll beneath it. */
|
|
47
47
|
const LandingSection = ({ children, heading }) => /* @__PURE__ */ jsxs("section", {
|
|
48
48
|
className: "flex min-h-0 min-w-0 flex-col",
|
|
@@ -86,7 +86,7 @@ const LandingItemText = ({ icon, iconTone = "muted", meta, title }) => /* @__PUR
|
|
|
86
86
|
})]
|
|
87
87
|
});
|
|
88
88
|
const LandingRowIcon = ({ children, tone = "muted" }) => /* @__PURE__ */ jsx("span", {
|
|
89
|
-
className: cn("mt-0.5 flex size-4 shrink-0 items-center justify-center
|
|
89
|
+
className: cn("mt-0.5 flex size-4 shrink-0 items-center justify-center", tone === "muted" && "text-foreground-muted group-hover:text-muted-foreground"),
|
|
90
90
|
children
|
|
91
91
|
});
|
|
92
92
|
const LandingEmpty = ({ children }) => /* @__PURE__ */ jsx("div", {
|
package/dist/components/menu.js
CHANGED
|
@@ -58,9 +58,9 @@ const MenuCheckboxItem = ({ className, children, checked, variant = "default", .
|
|
|
58
58
|
className: "col-start-1",
|
|
59
59
|
children
|
|
60
60
|
}), /* @__PURE__ */ jsx(Menu$1.CheckboxItemIndicator, {
|
|
61
|
-
className: "focus-visible:ring-ring focus-visible:ring-offset-background data-checked:bg-primary data-unchecked:bg-input inline-flex h-[calc(var(--thumb-size)+2px)] w-[calc(var(--thumb-size)*2-2px)] shrink-0 items-center rounded-full p-px inset-shadow-[0_1px_--theme(--color-black/4%)]
|
|
61
|
+
className: "focus-visible:ring-ring focus-visible:ring-offset-background data-checked:bg-primary data-unchecked:bg-input inline-flex h-[calc(var(--thumb-size)+2px)] w-[calc(var(--thumb-size)*2-2px)] shrink-0 items-center rounded-full p-px inset-shadow-[0_1px_--theme(--color-black/4%)] outline-none [--thumb-size:--spacing(4)] focus-visible:ring-2 focus-visible:ring-offset-1 data-disabled:opacity-64 sm:[--thumb-size:--spacing(3)]",
|
|
62
62
|
keepMounted: true,
|
|
63
|
-
children: /* @__PURE__ */ jsx("span", { className: "bg-background pointer-events-none block aspect-square h-full origin-left rounded-(--thumb-size) shadow-sm/5 will-change-transform [transition:translate_.15s,
|
|
63
|
+
children: /* @__PURE__ */ jsx("span", { className: "bg-background pointer-events-none block aspect-square h-full origin-left rounded-(--thumb-size) shadow-sm/5 will-change-transform [transition:translate_.15s,scale_.1s_.1s,transform-origin_.15s] in-[[data-slot=menu-checkbox-item]:active]:rounded-[var(--thumb-size)/calc(var(--thumb-size)*1.10)] in-[[data-slot=menu-checkbox-item]:active]:not-data-disabled:scale-x-110 in-[[data-slot=menu-checkbox-item][data-checked]]:origin-[var(--thumb-size)_50%] in-[[data-slot=menu-checkbox-item][data-checked]]:translate-x-[calc(var(--thumb-size)-4px)]" })
|
|
64
64
|
})] }) : /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Menu$1.CheckboxItemIndicator, {
|
|
65
65
|
className: "col-start-1",
|
|
66
66
|
children: /* @__PURE__ */ jsxs("svg", {
|
|
@@ -13,7 +13,7 @@ const ScrollArea = ({ axis = "both", className, children, scrollFade = false, sc
|
|
|
13
13
|
children: [
|
|
14
14
|
/* @__PURE__ */ jsx(ScrollArea$1.Viewport, {
|
|
15
15
|
ref: viewportRef,
|
|
16
|
-
className: cn("focus-visible:ring-ring focus-visible:ring-offset-background h-full overscroll-contain rounded-[inherit]
|
|
16
|
+
className: cn("focus-visible:ring-ring focus-visible:ring-offset-background h-full overscroll-contain rounded-[inherit] outline-none focus-visible:ring-2 focus-visible:ring-offset-1 data-has-overflow-x:overscroll-x-contain", scrollFade && "mask-t-from-[calc(100%-min(var(--fade-size),var(--scroll-area-overflow-y-start)))] mask-r-from-[calc(100%-min(var(--fade-size),var(--scroll-area-overflow-x-end)))] mask-b-from-[calc(100%-min(var(--fade-size),var(--scroll-area-overflow-y-end)))] mask-l-from-[calc(100%-min(var(--fade-size),var(--scroll-area-overflow-x-start)))] [--fade-size:1.5rem]", scrollbarGutter && "data-has-overflow-x:pb-2.5 data-has-overflow-y:pe-2.5", AXIS_VIEWPORT_CLASS[axis]),
|
|
17
17
|
"data-slot": "scroll-area-viewport",
|
|
18
18
|
children
|
|
19
19
|
}),
|
|
@@ -31,7 +31,7 @@ const Select = ({ children, isItemEqualToValue, itemToStringLabel, itemToStringV
|
|
|
31
31
|
});
|
|
32
32
|
};
|
|
33
33
|
const SelectTrigger = ({ className, size = CONTROL_SIZE.default, children, ...props }) => /* @__PURE__ */ jsxs(Select$1.Trigger, {
|
|
34
|
-
className: cn("border-input bg-background text-foreground ring-ring/24 focus-visible:border-ring aria-invalid:border-destructive/36 focus-visible:aria-invalid:border-destructive/64 focus-visible:aria-invalid:ring-destructive/16 dark:bg-input/32 dark:aria-invalid:ring-destructive/24 relative inline-flex min-h-9 w-full min-w-36 items-center justify-center gap-2 rounded-lg border px-[calc(--spacing(3)-1px)] text-start text-base shadow-xs/5
|
|
34
|
+
className: cn("border-input bg-background text-foreground ring-ring/24 focus-visible:border-ring aria-invalid:border-destructive/36 focus-visible:aria-invalid:border-destructive/64 focus-visible:aria-invalid:ring-destructive/16 dark:bg-input/32 dark:aria-invalid:ring-destructive/24 relative inline-flex min-h-9 w-full min-w-36 items-center justify-center gap-2 rounded-lg border px-[calc(--spacing(3)-1px)] text-start text-base shadow-xs/5 outline-none select-none not-dark:bg-clip-padding before:pointer-events-none before:absolute before:inset-0 before:rounded-[calc(var(--radius-lg)-1px)] not-data-disabled:not-focus-visible:not-aria-invalid:not-data-pressed:before:shadow-[0_1px_--theme(--color-black/4%)] focus-visible:ring-[3px] data-disabled:pointer-events-none data-disabled:opacity-64 sm:min-h-8 sm:text-sm dark:not-data-disabled:not-focus-visible:not-aria-invalid:not-data-pressed:before:shadow-[0_-1px_--theme(--color-white/6%)] pointer-coarse:after:absolute pointer-coarse:after:size-full pointer-coarse:after:min-h-11 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='opacity-'])]:opacity-80 [&_svg:not([class*='size-'])]:size-4.5 sm:[&_svg:not([class*='size-'])]:size-4 [[data-disabled],:focus-visible,[aria-invalid],[data-pressed]]:shadow-none", SELECT_TRIGGER_SIZE_CLASS_NAMES[size], className),
|
|
35
35
|
"data-slot": "select-trigger",
|
|
36
36
|
...props,
|
|
37
37
|
children: [children, /* @__PURE__ */ jsx(Select$1.Icon, {
|
package/dist/components/table.js
CHANGED
|
@@ -27,7 +27,7 @@ const TableFooter = ({ className, ...props }) => /* @__PURE__ */ jsx("tfoot", {
|
|
|
27
27
|
...props
|
|
28
28
|
});
|
|
29
29
|
const TableRow = ({ className, ...props }) => /* @__PURE__ */ jsx("tr", {
|
|
30
|
-
className: cn("hover:bg-muted/72 data-[state=selected]:bg-muted/72 border-b
|
|
30
|
+
className: cn("hover:bg-muted/72 data-[state=selected]:bg-muted/72 border-b in-data-[slot=frame]:hover:bg-transparent in-data-[slot=frame]:data-[state=selected]:bg-transparent", className),
|
|
31
31
|
"data-slot": "table-row",
|
|
32
32
|
...props
|
|
33
33
|
});
|
|
@@ -18,7 +18,7 @@ const Textarea = ({ className, size = CONTROL_SIZE.default, unstyled = false, di
|
|
|
18
18
|
onChange?.(event);
|
|
19
19
|
};
|
|
20
20
|
return /* @__PURE__ */ jsx("span", {
|
|
21
|
-
className: cn(!unstyled && "border-input bg-background text-foreground ring-ring/24 has-focus-visible:border-ring has-aria-invalid:border-destructive/36 has-focus-visible:has-aria-invalid:border-destructive/64 has-focus-visible:has-aria-invalid:ring-destructive/16 dark:bg-input/32 dark:has-aria-invalid:ring-destructive/24 relative inline-flex w-full rounded-lg border text-base shadow-xs/5
|
|
21
|
+
className: cn(!unstyled && "border-input bg-background text-foreground ring-ring/24 has-focus-visible:border-ring has-aria-invalid:border-destructive/36 has-focus-visible:has-aria-invalid:border-destructive/64 has-focus-visible:has-aria-invalid:ring-destructive/16 dark:bg-input/32 dark:has-aria-invalid:ring-destructive/24 relative inline-flex w-full rounded-lg border text-base shadow-xs/5 not-dark:bg-clip-padding before:pointer-events-none before:absolute before:inset-0 before:rounded-[calc(var(--radius-lg)-1px)] not-has-disabled:has-not-focus-visible:not-has-aria-invalid:before:shadow-[0_1px_--theme(--color-black/4%)] has-focus-visible:ring-[3px] has-disabled:opacity-64 has-[:disabled,:focus-visible,[aria-invalid]]:shadow-none sm:text-sm dark:not-has-disabled:has-not-focus-visible:not-has-aria-invalid:before:shadow-[0_-1px_--theme(--color-white/6%)]", className) || void 0,
|
|
22
22
|
"data-size": size,
|
|
23
23
|
"data-slot": "textarea-control",
|
|
24
24
|
children: /* @__PURE__ */ jsx(Field.Control, { render: (defaultProps) => /* @__PURE__ */ jsx("textarea", {
|
package/dist/components/toast.js
CHANGED
|
@@ -99,7 +99,7 @@ const Toasts = ({ position }) => {
|
|
|
99
99
|
"data-slot": "toast-action",
|
|
100
100
|
children: toastItem.actionProps.children
|
|
101
101
|
}), /* @__PURE__ */ jsx(Toast.Close, {
|
|
102
|
-
className: "text-muted-foreground hover:text-foreground shrink-0 cursor-pointer rounded p-0.5
|
|
102
|
+
className: "text-muted-foreground hover:text-foreground shrink-0 cursor-pointer rounded p-0.5 select-none",
|
|
103
103
|
"data-slot": "toast-close",
|
|
104
104
|
"aria-label": "Close notification",
|
|
105
105
|
children: /* @__PURE__ */ jsx(XIcon, { className: "size-4" })
|
package/dist/inspector/chrome.js
CHANGED
|
@@ -56,7 +56,7 @@ const InspectorRailFooter = ({ className, ...props }) => /* @__PURE__ */ jsx("di
|
|
|
56
56
|
...props
|
|
57
57
|
});
|
|
58
58
|
const InspectorRailIconButton = ({ className, ...props }) => /* @__PURE__ */ jsx("button", {
|
|
59
|
-
className: cn("text-muted-foreground hover:bg-accent hover:text-foreground flex items-center justify-center rounded-md outline-hidden
|
|
59
|
+
className: cn("text-muted-foreground hover:bg-accent hover:text-foreground flex items-center justify-center rounded-md outline-hidden focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50", SIDE_RAIL_ICON_BUTTON_SIZE, className),
|
|
60
60
|
"data-slot": "inspector-rail-icon-button",
|
|
61
61
|
type: "button",
|
|
62
62
|
...props
|
|
@@ -69,7 +69,7 @@ const InspectorRailIconButton = ({ className, ...props }) => /* @__PURE__ */ jsx
|
|
|
69
69
|
*/
|
|
70
70
|
const InspectorRailTab = ({ active = false, className, ...props }) => /* @__PURE__ */ jsx("button", {
|
|
71
71
|
"aria-current": active ? "true" : void 0,
|
|
72
|
-
className: cn("group/tab relative flex w-full shrink-0 items-center justify-center border-b
|
|
72
|
+
className: cn("group/tab relative flex w-full shrink-0 items-center justify-center border-b", TOOLBAR_ROW_HEIGHT, active ? "bg-background text-foreground before:bg-primary before:absolute before:inset-y-0 before:inset-s-0 before:w-0.5" : "text-muted-foreground hover:bg-accent hover:text-foreground", className),
|
|
73
73
|
"data-active": active ? "" : void 0,
|
|
74
74
|
"data-slot": "inspector-rail-tab",
|
|
75
75
|
type: "button",
|
package/dist/inspector/dock.js
CHANGED
|
@@ -37,7 +37,7 @@ const InspectorDock = ({ children, className, mount = "shell-end", onResetWidth,
|
|
|
37
37
|
className: "bg-border group-hover:bg-primary group-active:bg-primary absolute inset-y-0 start-1/2 w-px -translate-x-1/2"
|
|
38
38
|
}), /* @__PURE__ */ jsx("span", {
|
|
39
39
|
"aria-hidden": "true",
|
|
40
|
-
className: "bg-background/80 text-foreground-placeholder ring-border/60 group-hover:bg-accent group-hover:text-foreground group-focus-visible:bg-accent group-focus-visible:text-foreground relative flex h-5 w-3 items-center justify-center rounded-full opacity-0 shadow-xs ring-1 backdrop-blur-sm transition-
|
|
40
|
+
className: "bg-background/80 text-foreground-placeholder ring-border/60 group-hover:bg-accent group-hover:text-foreground group-focus-visible:bg-accent group-focus-visible:text-foreground relative flex h-5 w-3 items-center justify-center rounded-full opacity-0 shadow-xs ring-1 backdrop-blur-sm transition-opacity group-hover:opacity-100 group-focus-visible:opacity-100 group-active:opacity-100",
|
|
41
41
|
"data-slot": "inspector-resize-grip",
|
|
42
42
|
children: /* @__PURE__ */ jsx(EllipsisIcon, { className: "size-3 rotate-90" })
|
|
43
43
|
})]
|
|
@@ -157,7 +157,7 @@ const flashFacetChip = (el) => {
|
|
|
157
157
|
easing: "ease-in-out"
|
|
158
158
|
});
|
|
159
159
|
};
|
|
160
|
-
const CHIP_CLASS = "shrink-0 rounded-md px-1.5 py-1 text-xs font-medium whitespace-nowrap
|
|
160
|
+
const CHIP_CLASS = "shrink-0 rounded-md px-1.5 py-1 text-xs font-medium whitespace-nowrap";
|
|
161
161
|
const INACTIVE_CHIP_CLASS = "text-muted-foreground hover:bg-muted hover:text-foreground";
|
|
162
162
|
const FacetChip = ({ label, value, isActive, disabled, activeBadge, onSelect }) => /* @__PURE__ */ jsxs(Tooltip, { children: [/* @__PURE__ */ jsx(TooltipTrigger, {
|
|
163
163
|
render: /* @__PURE__ */ jsx("button", {
|
|
@@ -44,7 +44,7 @@ const KanbanCardShell = ({ children, appearance = "standard", actions, actionsVi
|
|
|
44
44
|
"data-active": active ? "true" : void 0,
|
|
45
45
|
ref: dragRef,
|
|
46
46
|
children: /* @__PURE__ */ jsx("div", {
|
|
47
|
-
className: cn(CARD_CLASS, appearance === "proposal" && "border-dashed", "cursor-pointer
|
|
47
|
+
className: cn(CARD_CLASS, appearance === "proposal" && "border-dashed", "cursor-pointer hover:shadow-md", active && ACTIVE_CLASS, className),
|
|
48
48
|
onClick: containedEventHandler(onOpen),
|
|
49
49
|
onKeyDown: (event) => {
|
|
50
50
|
if (event.key !== "Enter" && event.key !== " ") return;
|
|
@@ -22,7 +22,7 @@ const KanbanColumnBandHeader = ({ title, swatch, meta, collapsed, compact = coll
|
|
|
22
22
|
children: [/* @__PURE__ */ jsx("button", {
|
|
23
23
|
"aria-expanded": !collapsed,
|
|
24
24
|
"aria-label": toggleLabel,
|
|
25
|
-
className: cn("hover:bg-muted/60 text-muted-foreground hover:text-foreground flex size-7 shrink-0 items-center justify-center rounded-md
|
|
25
|
+
className: cn("hover:bg-muted/60 text-muted-foreground hover:text-foreground flex size-7 shrink-0 items-center justify-center rounded-md", KANBAN_CHROME_TOGGLE_COARSE_TARGET_CLASS),
|
|
26
26
|
onClick: (event) => onCollapsedChange(!collapsed, { viaPointer: event.detail > 0 }),
|
|
27
27
|
title: toggleLabel,
|
|
28
28
|
type: "button",
|
|
@@ -359,7 +359,7 @@ const KanbanSubgroupBoard = ({ scrollRef, matrix, renderColumnHeader, renderLane
|
|
|
359
359
|
"data-kanban-lane-identity": "",
|
|
360
360
|
children: /* @__PURE__ */ jsxs("button", {
|
|
361
361
|
"aria-expanded": !collapsed,
|
|
362
|
-
className: cn("hover:bg-muted/60 flex items-center gap-2 rounded-lg px-2 text-start text-sm font-medium
|
|
362
|
+
className: cn("hover:bg-muted/60 flex items-center gap-2 rounded-lg px-2 text-start text-sm font-medium", "h-9", KANBAN_CHROME_TOGGLE_COARSE_TARGET_CLASS),
|
|
363
363
|
onClick: () => setLaneCollapsed(group, count, !collapsed),
|
|
364
364
|
type: "button",
|
|
365
365
|
children: [
|
|
@@ -128,7 +128,7 @@ const KanbanVirtualCell = ({ rows, getRowKey, renderRow, pagination, sortable, c
|
|
|
128
128
|
})
|
|
129
129
|
}) : null;
|
|
130
130
|
const content = /* @__PURE__ */ jsxs("div", {
|
|
131
|
-
className: cn(KANBAN_CELL_SURFACE_CLASS, "min-h-20 rounded-xl p-2
|
|
131
|
+
className: cn(KANBAN_CELL_SURFACE_CLASS, "min-h-20 rounded-xl p-2", rows.length === 0 ? "overflow-visible" : "max-h-[min(60vh,40rem)] overflow-y-auto overscroll-y-contain", active && accentVariants === void 0 && "bg-primary/5 ring-primary/50 ring-2", className),
|
|
132
132
|
"data-kanban-cell": sortable?.dropTarget.id,
|
|
133
133
|
"data-kanban-cell-accent": accentVariants === void 0 ? void 0 : "true",
|
|
134
134
|
onScroll: handleScroll,
|
package/dist/lib/week.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Locale week data (first weekday, weekend) derived from CLDR via Intl.
|
|
4
4
|
* Shared so the app shell and the date picker resolve week starts identically.
|
|
5
5
|
*/
|
|
6
|
+
const isWeekInfo = (value) => typeof value === "object" && value !== null && "firstDay" in value && typeof value.firstDay === "number" && "weekend" in value && Array.isArray(value.weekend);
|
|
6
7
|
/**
|
|
7
8
|
* Read CLDR week info for a locale, tolerating the legacy `weekInfo` accessor
|
|
8
9
|
* on engines that predate `getWeekInfo()`. Returns undefined when unavailable
|
|
@@ -11,8 +12,9 @@
|
|
|
11
12
|
const getLocaleWeekInfo = (locale) => {
|
|
12
13
|
try {
|
|
13
14
|
const loc = new Intl.Locale(locale);
|
|
14
|
-
|
|
15
|
-
|
|
15
|
+
if (typeof loc.getWeekInfo === "function") return loc.getWeekInfo();
|
|
16
|
+
const legacy = "weekInfo" in loc ? loc.weekInfo : void 0;
|
|
17
|
+
return isWeekInfo(legacy) ? legacy : void 0;
|
|
16
18
|
} catch {
|
|
17
19
|
return;
|
|
18
20
|
}
|
package/package.json
CHANGED