@ember-home/unbound-styleguide 0.0.4 → 0.0.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/index.js CHANGED
@@ -69,14 +69,14 @@ var buttonVariants = cva(
69
69
  // Base styles with R2 semantic tokens
70
70
  // TODO: focus-visible:border-line-default-active differs from shadcn border-ring (#71717a vs #09090b)
71
71
  // Consider adding a dedicated focus border token if exact visual parity is required
72
- "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all cursor-pointer disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-line-default-active focus-visible:ring-ring-default/50 focus-visible:ring-[3px] aria-invalid:ring-ring-critical/20 dark:aria-invalid:ring-ring-critical/40 aria-invalid:border-line-critical",
72
+ "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all cursor-pointer disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-line-default-active focus-visible:ring-default/50 focus-visible:ring-[3px] aria-invalid:ring-critical/20 dark:aria-invalid:ring-critical/40 aria-invalid:border-line-critical",
73
73
  {
74
74
  variants: {
75
75
  variant: {
76
76
  // Default: Brand fill with white text
77
77
  default: "bg-fill-brand text-brand-on-bg-fill hover:bg-fill-brand-hover",
78
78
  // Destructive: Critical fill with on-fill text
79
- destructive: "bg-fill-critical text-critical-on-bg-fill hover:bg-fill-critical-hover focus-visible:ring-ring-critical-secondary dark:focus-visible:ring-ring-critical-secondary dark:bg-fill-critical",
79
+ destructive: "bg-fill-critical text-critical-on-bg-fill hover:bg-fill-critical-hover focus-visible:ring-critical-secondary dark:focus-visible:ring-critical-secondary dark:bg-fill-critical",
80
80
  // Secondary: Surface background with subtle hover
81
81
  secondary: "border border-line-default bg-surface-default shadow-xs hover:bg-fill-default-secondary-hover hover:text-default",
82
82
  // Tertiary: Secondary fill background
@@ -404,13 +404,13 @@ import { Slot as Slot2 } from "@radix-ui/react-slot";
404
404
  import { cva as cva3 } from "class-variance-authority";
405
405
  import { jsx as jsx4 } from "react/jsx-runtime";
406
406
  var badgeVariants = cva3(
407
- "inline-flex items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring-default/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",
407
+ "inline-flex items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-default/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",
408
408
  {
409
409
  variants: {
410
410
  variant: {
411
411
  default: "border-transparent bg-fill-brand text-brand-on-bg-fill [a&]:hover:bg-primary/90",
412
412
  secondary: "border-transparent bg-fill-default-secondary text-default [a&]:hover:bg-secondary/90",
413
- destructive: "border-transparent bg-fill-critical text-white [a&]:hover:bg-destructive/90 focus-visible:ring-ring-critical/20 dark:focus-visible:ring-destructive/40 dark:bg-fill-critical/60",
413
+ destructive: "border-transparent bg-fill-critical text-white [a&]:hover:bg-destructive/90 focus-visible:ring-critical/20 dark:focus-visible:ring-destructive/40 dark:bg-fill-critical/60",
414
414
  outline: "text-default [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"
415
415
  }
416
416
  },
@@ -1028,7 +1028,7 @@ function DialogContent({
1028
1028
  DialogPrimitive.Close,
1029
1029
  {
1030
1030
  "data-slot": "dialog-close",
1031
- className: "ring-offset-background focus:ring-ring-default data-[state=open]:bg-fill-default-secondary data-[state=open]:text-default-tertiary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1031
+ className: "ring-offset-background focus:ring-default data-[state=open]:bg-fill-default-secondary data-[state=open]:text-default-tertiary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1032
1032
  children: [
1033
1033
  /* @__PURE__ */ jsx14(XIcon, {}),
1034
1034
  /* @__PURE__ */ jsx14("span", { className: "sr-only", children: "Close" })
@@ -1151,7 +1151,7 @@ function PopoverContent({
1151
1151
  PopoverPrimitive.Close,
1152
1152
  {
1153
1153
  "data-slot": "popover-close",
1154
- className: "ring-offset-background focus:ring-ring-default data-[state=open]:bg-fill-default-secondary data-[state=open]:text-default-tertiary absolute top-2 right-2 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1154
+ className: "ring-offset-background focus:ring-default data-[state=open]:bg-fill-default-secondary data-[state=open]:text-default-tertiary absolute top-2 right-2 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1155
1155
  children: [
1156
1156
  /* @__PURE__ */ jsx15(XIcon2, {}),
1157
1157
  /* @__PURE__ */ jsx15("span", { className: "sr-only", children: "Close" })
@@ -1260,7 +1260,7 @@ function SheetContent({
1260
1260
  ...props,
1261
1261
  children: [
1262
1262
  children,
1263
- showCloseButton && /* @__PURE__ */ jsxs7(SheetPrimitive.Close, { className: "ring-offset-background focus:ring-ring-default data-[state=open]:bg-fill-default-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none", children: [
1263
+ showCloseButton && /* @__PURE__ */ jsxs7(SheetPrimitive.Close, { className: "ring-offset-background focus:ring-default data-[state=open]:bg-fill-default-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none", children: [
1264
1264
  /* @__PURE__ */ jsx16(XIcon3, { className: "size-4" }),
1265
1265
  /* @__PURE__ */ jsx16("span", { className: "sr-only", children: "Close" })
1266
1266
  ] })
@@ -1671,7 +1671,7 @@ function Checkbox({ className, ...props }) {
1671
1671
  {
1672
1672
  "data-slot": "checkbox",
1673
1673
  className: mergeClasses(
1674
- "peer border-line-default-tertiary dark:bg-input/30 data-[state=checked]:bg-fill-brand data-[state=checked]:text-brand-on-bg-fill dark:data-[state=checked]:bg-fill-brand data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring-default/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] cursor-pointer disabled:cursor-not-allowed disabled:opacity-50",
1674
+ "peer border-line-default-tertiary dark:bg-input/30 data-[state=checked]:bg-fill-brand data-[state=checked]:text-brand-on-bg-fill dark:data-[state=checked]:bg-fill-brand data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-default/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] cursor-pointer disabled:cursor-not-allowed disabled:opacity-50",
1675
1675
  className
1676
1676
  ),
1677
1677
  ...props,
@@ -1700,7 +1700,7 @@ var Input = React9.forwardRef(
1700
1700
  "data-slot": "input",
1701
1701
  className: mergeClasses(
1702
1702
  "file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-line-default-tertiary h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
1703
- "focus-visible:border-ring focus-visible:ring-ring-default/50 focus-visible:ring-[3px]",
1703
+ "focus-visible:border-ring focus-visible:ring-default/50 focus-visible:ring-[3px]",
1704
1704
  "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
1705
1705
  className
1706
1706
  ),
@@ -1816,7 +1816,7 @@ var SearchInput = React10.forwardRef(
1816
1816
  tabIndex: -1,
1817
1817
  className: mergeClasses(
1818
1818
  "absolute top-1/2 -translate-y-1/2 text-default-tertiary hover:text-default",
1819
- "rounded-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring-default",
1819
+ "rounded-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-default",
1820
1820
  config.clearButton
1821
1821
  ),
1822
1822
  "aria-label": "Clear search",
@@ -1876,7 +1876,7 @@ function ToggleGroupItem({
1876
1876
  // Base styles
1877
1877
  "inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center rounded-md border border-transparent font-medium whitespace-nowrap transition-[color,box-shadow] cursor-pointer",
1878
1878
  // Focus styles
1879
- "focus-visible:border-ring focus-visible:ring-ring-default/50 focus-visible:outline-ring focus-visible:ring-[3px] focus-visible:outline-1",
1879
+ "focus-visible:border-ring focus-visible:ring-default/50 focus-visible:outline-ring focus-visible:ring-[3px] focus-visible:outline-1",
1880
1880
  // Active state
1881
1881
  "data-[state=on]:bg-surface-default data-[state=on]:text-default data-[state=on]:shadow-sm",
1882
1882
  // Inactive state
@@ -1932,7 +1932,7 @@ var Textarea = React12.forwardRef(
1932
1932
  ref,
1933
1933
  "data-slot": "textarea",
1934
1934
  className: mergeClasses(
1935
- "border-line-default-tertiary placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring-default/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
1935
+ "border-line-default-tertiary placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-default/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
1936
1936
  className
1937
1937
  ),
1938
1938
  ...props
@@ -1952,7 +1952,7 @@ function Switch({ className, ...props }) {
1952
1952
  "data-slot": "switch",
1953
1953
  className: mergeClasses(
1954
1954
  "peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-xs transition-colors",
1955
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring-default focus-visible:ring-offset-2 focus-visible:ring-offset-background",
1955
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-default focus-visible:ring-offset-2 focus-visible:ring-offset-background",
1956
1956
  "disabled:cursor-not-allowed disabled:opacity-50",
1957
1957
  "data-[state=checked]:bg-fill-brand data-[state=unchecked]:bg-input",
1958
1958
  "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",
@@ -1998,7 +1998,7 @@ function SelectTrigger({
1998
1998
  "data-slot": "select-trigger",
1999
1999
  "data-size": size,
2000
2000
  className: mergeClasses(
2001
- "border-line-default-tertiary data-[placeholder]:text-default-tertiary [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring-default/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] cursor-pointer disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
2001
+ "border-line-default-tertiary data-[placeholder]:text-default-tertiary [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-default/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] cursor-pointer disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
2002
2002
  className
2003
2003
  ),
2004
2004
  ...props,
@@ -2291,7 +2291,7 @@ function Combobox({
2291
2291
  className: mergeClasses(
2292
2292
  // Base styles matching SelectTrigger
2293
2293
  "border-line-default-tertiary data-[placeholder]:text-default-tertiary [&_svg:not([class*='text-'])]:text-muted-foreground",
2294
- "focus-visible:border-ring focus-visible:ring-ring-default/50 focus-visible:ring-[3px]",
2294
+ "focus-visible:border-ring focus-visible:ring-default/50 focus-visible:ring-[3px]",
2295
2295
  "flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs",
2296
2296
  "transition-[color,box-shadow] outline-none cursor-pointer",
2297
2297
  "disabled:cursor-not-allowed disabled:opacity-50",
@@ -2365,7 +2365,7 @@ function ComboboxTrigger({
2365
2365
  className: mergeClasses(
2366
2366
  // Base styles matching SelectTrigger
2367
2367
  "border-line-default-tertiary data-[placeholder]:text-default-tertiary [&_svg:not([class*='text-'])]:text-muted-foreground",
2368
- "focus-visible:border-ring focus-visible:ring-ring-default/50 focus-visible:ring-[3px]",
2368
+ "focus-visible:border-ring focus-visible:ring-default/50 focus-visible:ring-[3px]",
2369
2369
  "flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs",
2370
2370
  "transition-[color,box-shadow] outline-none cursor-pointer",
2371
2371
  "disabled:cursor-not-allowed disabled:opacity-50",
@@ -2502,14 +2502,14 @@ function Calendar({
2502
2502
  nav: "flex items-center gap-1",
2503
2503
  button_previous: mergeClasses(
2504
2504
  "inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors",
2505
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring-default focus-visible:ring-offset-2",
2505
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-default focus-visible:ring-offset-2",
2506
2506
  "disabled:pointer-events-none disabled:opacity-50",
2507
2507
  "border border-line-default-tertiary bg-surface-default hover:bg-fill-default-secondary-hover hover:text-default",
2508
2508
  "h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100"
2509
2509
  ),
2510
2510
  button_next: mergeClasses(
2511
2511
  "inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors",
2512
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring-default focus-visible:ring-offset-2",
2512
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-default focus-visible:ring-offset-2",
2513
2513
  "disabled:pointer-events-none disabled:opacity-50",
2514
2514
  "border border-line-default-tertiary bg-surface-default hover:bg-fill-default-secondary-hover hover:text-default",
2515
2515
  "h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100"
@@ -2521,7 +2521,7 @@ function Calendar({
2521
2521
  day: "h-9 w-9 text-center text-sm p-0 relative [&:has([aria-selected].day-range-end)]:rounded-r-md [&:has([aria-selected].day-outside)]:bg-accent/50 [&:has([aria-selected])]:bg-accent first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md focus-within:relative focus-within:z-20",
2522
2522
  day_button: mergeClasses(
2523
2523
  "inline-flex items-center justify-center rounded-md text-sm ring-offset-background transition-colors",
2524
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring-default focus-visible:ring-offset-2",
2524
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-default focus-visible:ring-offset-2",
2525
2525
  "hover:bg-surface-default-secondary-hover hover:text-default",
2526
2526
  "h-9 w-9 p-0 font-normal aria-selected:opacity-100"
2527
2527
  ),
@@ -2750,7 +2750,7 @@ function DatePicker({
2750
2750
  readOnly,
2751
2751
  className: mergeClasses(
2752
2752
  "pr-10",
2753
- displayError && "border-destructive focus-visible:ring-ring-critical"
2753
+ displayError && "border-destructive focus-visible:ring-critical"
2754
2754
  ),
2755
2755
  "aria-invalid": !!displayError,
2756
2756
  "aria-describedby": displayError ? errorId : void 0
@@ -2763,7 +2763,7 @@ function DatePicker({
2763
2763
  className: mergeClasses(
2764
2764
  "absolute right-0 top-0 h-full px-3 flex items-center justify-center",
2765
2765
  "text-default-tertiary hover:text-default transition-colors",
2766
- "focus:outline-none focus-visible:ring-2 focus-visible:ring-ring-default focus-visible:ring-offset-2 rounded-r-md",
2766
+ "focus:outline-none focus-visible:ring-2 focus-visible:ring-default focus-visible:ring-offset-2 rounded-r-md",
2767
2767
  (disabled || readOnly) && "opacity-50 cursor-not-allowed hover:text-default-tertiary"
2768
2768
  ),
2769
2769
  tabIndex: -1,
@@ -3405,7 +3405,7 @@ function DateRangePicker({
3405
3405
  placeholder: startPlaceholder,
3406
3406
  className: mergeClasses(
3407
3407
  "h-8 text-sm",
3408
- startError && "border-destructive focus-visible:ring-ring-critical"
3408
+ startError && "border-destructive focus-visible:ring-critical"
3409
3409
  ),
3410
3410
  "aria-invalid": !!startError,
3411
3411
  "aria-describedby": startError ? startErrorId : void 0
@@ -3436,7 +3436,7 @@ function DateRangePicker({
3436
3436
  placeholder: endPlaceholder,
3437
3437
  className: mergeClasses(
3438
3438
  "h-8 text-sm",
3439
- endError && "border-destructive focus-visible:ring-ring-critical"
3439
+ endError && "border-destructive focus-visible:ring-critical"
3440
3440
  ),
3441
3441
  "aria-invalid": !!endError,
3442
3442
  "aria-describedby": endError ? endErrorId : void 0
@@ -3453,7 +3453,7 @@ function DateRangePicker({
3453
3453
  className: mergeClasses(
3454
3454
  "text-left px-2 py-1.5 text-sm rounded-md transition-colors",
3455
3455
  "hover:bg-fill-default-secondary-hover hover:text-default",
3456
- "focus:outline-none focus-visible:ring-2 focus-visible:ring-ring-default",
3456
+ "focus:outline-none focus-visible:ring-2 focus-visible:ring-default",
3457
3457
  matchingPreset === preset.id && "bg-fill-default-secondary text-default font-medium"
3458
3458
  ),
3459
3459
  children: preset.label
@@ -3967,7 +3967,7 @@ function WeeklyDaysSelect({
3967
3967
  disabled: disabled || isLastSelected,
3968
3968
  className: mergeClasses(
3969
3969
  "size-8 rounded-full text-xs font-medium transition-colors",
3970
- "border focus:outline-none focus:ring-2 focus:ring-ring-default focus:ring-offset-2",
3970
+ "border focus:outline-none focus:ring-2 focus:ring-default focus:ring-offset-2",
3971
3971
  isSelected ? "bg-fill-brand text-brand-on-bg-fill border-primary" : "bg-surface-default text-default border-line-default-tertiary hover:bg-fill-default-secondary-hover hover:text-default",
3972
3972
  disabled && "opacity-50 cursor-not-allowed",
3973
3973
  isLastSelected && "cursor-not-allowed"
@@ -6163,7 +6163,7 @@ function TabsTrigger({ className, ...props }) {
6163
6163
  {
6164
6164
  "data-slot": "tabs-trigger",
6165
6165
  className: mergeClasses(
6166
- "data-[state=active]:bg-surface-default dark:data-[state=active]:text-default focus-visible:border-ring focus-visible:ring-ring-default/50 focus-visible:outline-ring dark:data-[state=active]:border-line-default-tertiary dark:data-[state=active]:bg-input/30 text-default dark:text-default-tertiary inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm cursor-pointer data-[state=inactive]:hover:bg-background/50 data-[state=inactive]:hover:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
6166
+ "data-[state=active]:bg-surface-default dark:data-[state=active]:text-default focus-visible:border-ring focus-visible:ring-default/50 focus-visible:outline-ring dark:data-[state=active]:border-line-default-tertiary dark:data-[state=active]:bg-input/30 text-default dark:text-default-tertiary inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm cursor-pointer data-[state=inactive]:hover:bg-background/50 data-[state=inactive]:hover:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
6167
6167
  className
6168
6168
  ),
6169
6169
  ...props
package/dist/theme.css CHANGED
@@ -2980,6 +2980,11 @@
2980
2980
  --tw-ring-color: var(--color-ring-critical);
2981
2981
  }
2982
2982
  }
2983
+ .focus\:ring-default {
2984
+ &:focus {
2985
+ --tw-ring-color: var(--color-ring-default);
2986
+ }
2987
+ }
2983
2988
  .focus\:ring-primary {
2984
2989
  &:focus {
2985
2990
  --tw-ring-color: var(--primary);
@@ -3024,6 +3029,37 @@
3024
3029
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
3025
3030
  }
3026
3031
  }
3032
+ .focus-visible\:ring-critical {
3033
+ &:focus-visible {
3034
+ --tw-ring-color: var(--color-ring-critical);
3035
+ }
3036
+ }
3037
+ .focus-visible\:ring-critical-secondary {
3038
+ &:focus-visible {
3039
+ --tw-ring-color: var(--color-ring-critical-secondary);
3040
+ }
3041
+ }
3042
+ .focus-visible\:ring-critical\/20 {
3043
+ &:focus-visible {
3044
+ --tw-ring-color: var(--color-ring-critical);
3045
+ @supports (color: color-mix(in lab, red, red)) {
3046
+ --tw-ring-color: color-mix(in oklab, var(--color-ring-critical) 20%, transparent);
3047
+ }
3048
+ }
3049
+ }
3050
+ .focus-visible\:ring-default {
3051
+ &:focus-visible {
3052
+ --tw-ring-color: var(--color-ring-default);
3053
+ }
3054
+ }
3055
+ .focus-visible\:ring-default\/50 {
3056
+ &:focus-visible {
3057
+ --tw-ring-color: var(--color-ring-default);
3058
+ @supports (color: color-mix(in lab, red, red)) {
3059
+ --tw-ring-color: color-mix(in oklab, var(--color-ring-default) 50%, transparent);
3060
+ }
3061
+ }
3062
+ }
3027
3063
  .focus-visible\:ring-white\/50 {
3028
3064
  &:focus-visible {
3029
3065
  --tw-ring-color: var(--color-ring-white);
@@ -3152,6 +3188,14 @@
3152
3188
  border-color: var(--destructive);
3153
3189
  }
3154
3190
  }
3191
+ .aria-invalid\:ring-critical\/20 {
3192
+ &[aria-invalid="true"] {
3193
+ --tw-ring-color: var(--color-ring-critical);
3194
+ @supports (color: color-mix(in lab, red, red)) {
3195
+ --tw-ring-color: color-mix(in oklab, var(--color-ring-critical) 20%, transparent);
3196
+ }
3197
+ }
3198
+ }
3155
3199
  .aria-invalid\:ring-destructive\/20 {
3156
3200
  &[aria-invalid="true"] {
3157
3201
  --tw-ring-color: var(--destructive);
@@ -3966,6 +4010,13 @@
3966
4010
  }
3967
4011
  }
3968
4012
  }
4013
+ .dark\:focus-visible\:ring-critical-secondary {
4014
+ &:is(.dark *) {
4015
+ &:focus-visible {
4016
+ --tw-ring-color: var(--color-ring-critical-secondary);
4017
+ }
4018
+ }
4019
+ }
3969
4020
  .dark\:focus-visible\:ring-destructive\/40 {
3970
4021
  &:is(.dark *) {
3971
4022
  &:focus-visible {
@@ -3976,6 +4027,16 @@
3976
4027
  }
3977
4028
  }
3978
4029
  }
4030
+ .dark\:aria-invalid\:ring-critical\/40 {
4031
+ &:is(.dark *) {
4032
+ &[aria-invalid="true"] {
4033
+ --tw-ring-color: var(--color-ring-critical);
4034
+ @supports (color: color-mix(in lab, red, red)) {
4035
+ --tw-ring-color: color-mix(in oklab, var(--color-ring-critical) 40%, transparent);
4036
+ }
4037
+ }
4038
+ }
4039
+ }
3979
4040
  .dark\:aria-invalid\:ring-destructive\/40 {
3980
4041
  &:is(.dark *) {
3981
4042
  &[aria-invalid="true"] {
@@ -4588,6 +4649,15 @@
4588
4649
  --white: #ffffff;
4589
4650
  --black: #000000;
4590
4651
  }
4652
+ @layer base {
4653
+ *,
4654
+ ::after,
4655
+ ::before,
4656
+ ::backdrop,
4657
+ ::file-selector-button {
4658
+ border-color: var(--border);
4659
+ }
4660
+ }
4591
4661
  :root {
4592
4662
  --color-text-white: var(--white);
4593
4663
  --color-text-default: var(--gray-950);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ember-home/unbound-styleguide",
3
- "version": "0.0.4",
3
+ "version": "0.0.6",
4
4
  "description": "React component library with Tailwind CSS v4 design tokens",
5
5
  "keywords": [
6
6
  "react",