@trading-game/design-intelligence-layer 0.16.9 → 0.17.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/README.md +26 -2
- package/dist/index.cjs +31 -18
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +31 -18
- package/dist/index.js.map +1 -1
- package/guides/design-system-guide/trading-game-ds-guide.md +3 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -341,7 +341,7 @@ Dismissible **promotional / marketing** surface — for feature launches, offers
|
|
|
341
341
|
- Default icon: 40 px brand-blue **circle** (`rounded-full bg-primary`) with a white `Gift` glyph inside. Swap just the glyph via the `glyph` prop (e.g. `<Sparkles className="size-5" />`); replace the entire badge via the `icon` prop; or `icon={null}` to omit the column entirely.
|
|
342
342
|
- Default action button: `Button variant="secondary"` size `sm` for every slot (inline `action` and both `actions[]` in card). Pass `<Button>` elements explicitly to override variant/size.
|
|
343
343
|
- Title supports `<b>` children styled with `text-primary` for in-line brand-blue accent.
|
|
344
|
-
- Close X (
|
|
344
|
+
- Close X (32 px): vertically-centred in the grid for single-line banners; pinned to the **top-right corner** (`absolute top-3 right-3`) when the banner is multi-line (`description` set) or `layout="card"` — so it reads as a true corner dismiss instead of floating mid-body. Hovers to `bg-secondary-hover`.
|
|
345
345
|
|
|
346
346
|
## Component behaviour notes
|
|
347
347
|
|
|
@@ -377,6 +377,21 @@ The `lg` variant of `Link` uses `text-base` (16px). The `md` and `sm` variants u
|
|
|
377
377
|
### Tabs — line variant hover
|
|
378
378
|
On the `line` variant, hover state shows `text-primary` (blue) with no background fill. On the `default` (pill) variant, hover shows a grey background with `text-on-prominent`.
|
|
379
379
|
|
|
380
|
+
### Link — underline
|
|
381
|
+
Underline is **always visible** (not hover-only). Class chain: `underline decoration-2 underline-offset-4 text-primary`.
|
|
382
|
+
|
|
383
|
+
### Switch — pill + circle
|
|
384
|
+
Track is a pill (`rounded-full`); thumb is always a white circle (`rounded-full bg-prominent`). Checked track: `bg-primary`. Unchecked track: `bg-input`.
|
|
385
|
+
|
|
386
|
+
### Tooltip — default surface
|
|
387
|
+
Default variant uses a **black** surface (`bg-prominent-inverse text-on-prominent-inverse`) with a matching arrow. Use `variant="inverse"` for a white tooltip when the trigger sits on a saturated coloured surface. The primitive bakes in `max-w-xs` + `whitespace-normal`, so consumers no longer need to pass them. When a `Kbd` is detected inside via `:has([data-slot=kbd])`, padding bumps to `px-3.5 py-2` and siblings receive `space-y-1.5` for breathing room.
|
|
388
|
+
|
|
389
|
+
### Sidebar — selection + padding
|
|
390
|
+
`SidebarHeader` / `SidebarFooter` / `SidebarGroup` use `px-layout-margin-inline py-2` (16 px horizontal via `--semantic-layout-margin-inline`), with `group-data-[collapsible=icon]:px-2` so the collapsed icon rail tightens to 8 px. Active selection: `bg-primary/10` + `text-primary` + `font-semibold`. For `size="lg"` menu buttons (typical brand-block + label or profile pattern), the collapsed state uses `p-0! justify-center` so a 32 px brand block fills the rail while a 16 px lucide icon still centres on the same vertical line.
|
|
391
|
+
|
|
392
|
+
### Button — bg transition
|
|
393
|
+
The button base sets `transition-[color,border-color,opacity,box-shadow,transform]` (not `transition-all`), so `background-color` flips instantly on hover instead of fading in over 150 ms. This prevents the brief partially-transparent phase where surrounding surface tints (e.g. an Alert) could bleed through a hovered secondary button.
|
|
394
|
+
|
|
380
395
|
---
|
|
381
396
|
|
|
382
397
|
## Design tokens
|
|
@@ -695,7 +710,16 @@ Design tokens are managed in Figma and exported as CSS variables. To update:
|
|
|
695
710
|
|
|
696
711
|
## Changelog
|
|
697
712
|
|
|
698
|
-
###
|
|
713
|
+
### Unreleased
|
|
714
|
+
- **Tooltip — black surface by default:** `variant="default"` switched from brand-blue to black (`bg-prominent-inverse` + `text-on-prominent-inverse`). The arrow follows. `variant="inverse"` (white) is unchanged. Default primitive now bakes in `max-w-xs whitespace-normal`, so consumers no longer pass these classes.
|
|
715
|
+
- **Tooltip — keyboard-shortcut breathing room:** when the tooltip contains a `Kbd` (detected via `:has([data-slot=kbd])`), padding bumps to `px-3.5 py-2` and child elements get `space-y-1.5` so the title / kbd-row pair doesn't crowd.
|
|
716
|
+
- **Switch — pill + white circle knob:** track switched from `rounded-[6px]` to `rounded-full`, thumb from `rounded-[3px]` to `rounded-full`. Thumb is always `bg-prominent` (white) in both states. Checked track: `bg-primary`. Unchecked track: `bg-input`. No API change.
|
|
717
|
+
- **Link — underline always visible:** swapped `hover:underline` → `underline` so the underline reads at rest, not only on hover.
|
|
718
|
+
- **Sidebar — primary-tinted selection + 16 px padding rails:** active menu items now use `bg-primary/10` (brand-blue tint) instead of `bg-secondary-hover` (grey). `SidebarHeader` / `SidebarFooter` / `SidebarGroup` use `px-layout-margin-inline py-2` (16 px horizontal) when expanded; the icon-collapsed rail falls back to `px-2` so the icons still centre. The `lg`-size menu button gets `p-0! justify-center` when collapsed so a 32 px brand block fills the rail while a 16 px lucide icon still centres in the same column.
|
|
719
|
+
- **Banner — close X corner anchor:** the close `X` stays grid-centred on single-line banners but pins to `absolute top-3 right-3` whenever `description` is set or `layout="card"` — so it reads as a true corner dismiss instead of floating mid-body.
|
|
720
|
+
- **Button — instant bg-color hover:** the button base now uses `transition-[color,border-color,opacity,box-shadow,transform]` instead of `transition-all`. `background-color` flips instantly on hover so the brief partially-transparent fade phase (which let surrounding surface tints bleed through a hovered secondary button) is gone.
|
|
721
|
+
|
|
722
|
+
### v0.16.7
|
|
699
723
|
- **Credit badge readability pass:** `<Badge variant="fill-credit">` and the credit pill inside `CreditTicketCard` now sit on a deeper peach surface and use a bold deep-amber text for crisper read on the grey `bg-subtle` ticket card and on white / brand-blue surfaces alike. Token chain: `--primitive-amber-100` (#FEEBD9) → `--primitive-amber-300` (#FDCA8A) and `--primitive-amber-800` (#713813) → `--primitive-amber-900` (#521900). `--semantic-boost-surface` and `--on-semantic-boost` are repointed automatically. Variant class also bumps to `!font-bold`.
|
|
700
724
|
- **CreditTicketCard — responsive compact layout:** Compact variant now keeps the credit badge inline next to the value when there's room and only wraps to a second line when balance + badge would overflow into the deposit stub (`flex-wrap` on the value/badge row, with `whitespace-nowrap` on the value so the number itself never splits). Non-compact keeps the existing inline behavior.
|
|
701
725
|
- **Banner — brand `IconBadge` is now a circle:** The 40 px brand-blue icon badge (visible when the consumer passes a `glyph` prop) is now `rounded-full` instead of `rounded-xs`. No API change.
|
package/dist/index.cjs
CHANGED
|
@@ -522,7 +522,7 @@ function Spinner(_a) {
|
|
|
522
522
|
// components/ui/button.tsx
|
|
523
523
|
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
524
524
|
var buttonVariants = (0, import_class_variance_authority.cva)(
|
|
525
|
-
"inline-flex shrink-0 items-center justify-center whitespace-nowrap transition-
|
|
525
|
+
"inline-flex shrink-0 items-center justify-center whitespace-nowrap transition-[color,border-color,opacity,box-shadow,transform] outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 active:opacity-60 disabled:pointer-events-none disabled:opacity-24 aria-invalid:border-destructive aria-invalid:ring-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 font-display font-bold",
|
|
526
526
|
{
|
|
527
527
|
variants: {
|
|
528
528
|
variant: {
|
|
@@ -1280,7 +1280,9 @@ function Banner(_a) {
|
|
|
1280
1280
|
const iconColumn = showIcon ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { "aria-hidden": true, className: "inline-flex shrink-0 translate-y-px", children: resolvedIcon }) : null;
|
|
1281
1281
|
if (isInline) {
|
|
1282
1282
|
const hasAction = Boolean(effectiveAction);
|
|
1283
|
+
const hasDescription = Boolean(description);
|
|
1283
1284
|
const rowTemplate = hasAction ? "grid-rows-[auto_auto] gap-y-3 sm:grid-rows-1 sm:gap-y-0" : "grid-rows-1 gap-y-0";
|
|
1285
|
+
const gridCols = hasDescription ? "grid-cols-[auto_1fr] sm:grid-cols-[auto_1fr_auto]" : "grid-cols-[auto_1fr_auto] sm:grid-cols-[auto_1fr_auto_auto]";
|
|
1284
1286
|
return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
|
|
1285
1287
|
"div",
|
|
1286
1288
|
__spreadProps(__spreadValues(__spreadValues({
|
|
@@ -1288,9 +1290,11 @@ function Banner(_a) {
|
|
|
1288
1290
|
"data-layout": "inline",
|
|
1289
1291
|
"data-clickable": isClickable ? "true" : void 0,
|
|
1290
1292
|
className: cn(
|
|
1291
|
-
"grid
|
|
1293
|
+
"grid items-center gap-x-4",
|
|
1294
|
+
gridCols,
|
|
1292
1295
|
rowTemplate,
|
|
1293
1296
|
SURFACE_CLASSES,
|
|
1297
|
+
hasDescription && "relative pr-12",
|
|
1294
1298
|
clickableClasses,
|
|
1295
1299
|
className
|
|
1296
1300
|
)
|
|
@@ -1298,7 +1302,7 @@ function Banner(_a) {
|
|
|
1298
1302
|
children: [
|
|
1299
1303
|
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: "col-start-1 row-start-1", children: iconColumn }),
|
|
1300
1304
|
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: "col-start-2 row-start-1 min-w-0", children: body }),
|
|
1301
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: "col-start-3 row-start-1 sm:col-start-4", children: closeButton }),
|
|
1305
|
+
hasDescription ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: "absolute top-3 right-3", children: closeButton }) : /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: "col-start-3 row-start-1 self-center sm:col-start-4", children: closeButton }),
|
|
1302
1306
|
hasAction ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: "col-start-2 row-start-2 justify-self-start sm:col-start-3 sm:row-start-1 sm:self-center sm:justify-self-end", children: wrapAction2(effectiveAction) }) : null
|
|
1303
1307
|
]
|
|
1304
1308
|
})
|
|
@@ -1311,7 +1315,7 @@ function Banner(_a) {
|
|
|
1311
1315
|
"data-layout": "card",
|
|
1312
1316
|
"data-clickable": isClickable ? "true" : void 0,
|
|
1313
1317
|
className: cn(
|
|
1314
|
-
"grid grid-cols-[
|
|
1318
|
+
"relative grid grid-cols-[auto_1fr] grid-rows-[auto_auto] items-center gap-x-4 gap-y-3 pr-12",
|
|
1315
1319
|
SURFACE_CLASSES,
|
|
1316
1320
|
clickableClasses,
|
|
1317
1321
|
className
|
|
@@ -1320,8 +1324,8 @@ function Banner(_a) {
|
|
|
1320
1324
|
children: [
|
|
1321
1325
|
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: "col-start-1 row-start-1", children: iconColumn }),
|
|
1322
1326
|
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: "col-start-2 row-start-1 min-w-0", children: body }),
|
|
1323
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: "
|
|
1324
|
-
effectiveActions && effectiveActions.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: "col-
|
|
1327
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: "absolute top-3 right-3", children: closeButton }),
|
|
1328
|
+
effectiveActions && effectiveActions.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: "col-start-2 row-start-2 flex flex-wrap items-center justify-start gap-2", children: effectiveActions.slice(0, 2).map((node, i) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(React2.Fragment, { children: wrapAction2(node) }, i)) }) : null
|
|
1325
1329
|
]
|
|
1326
1330
|
})
|
|
1327
1331
|
);
|
|
@@ -4511,7 +4515,7 @@ var import_class_variance_authority10 = require("class-variance-authority");
|
|
|
4511
4515
|
var import_radix_ui19 = require("radix-ui");
|
|
4512
4516
|
var import_jsx_runtime37 = require("react/jsx-runtime");
|
|
4513
4517
|
var linkVariants = (0, import_class_variance_authority10.cva)(
|
|
4514
|
-
"inline-flex shrink-0 items-center gap-1.5 whitespace-nowrap transition-all outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 active:opacity-60 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg]:inline font-display font-bold normal-case text-primary
|
|
4518
|
+
"inline-flex shrink-0 items-center gap-1.5 whitespace-nowrap transition-all outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 active:opacity-60 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg]:inline font-display font-bold normal-case text-primary underline decoration-2 underline-offset-4",
|
|
4515
4519
|
{
|
|
4516
4520
|
variants: {
|
|
4517
4521
|
size: {
|
|
@@ -5847,8 +5851,8 @@ function TooltipContent(_a) {
|
|
|
5847
5851
|
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(DrawerFooter, { children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(DrawerClose, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Button, { variant: "primary", size: "md", children: closeLabel }) }) })
|
|
5848
5852
|
] });
|
|
5849
5853
|
}
|
|
5850
|
-
const surfaceClasses = variant === "inverse" ? "bg-prominent text-on-prominent shadow-sm" : "bg-
|
|
5851
|
-
const arrowClasses = variant === "inverse" ? "fill-prominent" : "fill-
|
|
5854
|
+
const surfaceClasses = variant === "inverse" ? "bg-prominent text-on-prominent shadow-sm" : "bg-prominent-inverse text-on-prominent-inverse";
|
|
5855
|
+
const arrowClasses = variant === "inverse" ? "fill-prominent" : "fill-prominent-inverse";
|
|
5852
5856
|
return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_radix_ui29.Tooltip.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
|
|
5853
5857
|
import_radix_ui29.Tooltip.Content,
|
|
5854
5858
|
__spreadProps(__spreadValues({
|
|
@@ -5856,7 +5860,7 @@ function TooltipContent(_a) {
|
|
|
5856
5860
|
"data-variant": variant,
|
|
5857
5861
|
sideOffset,
|
|
5858
5862
|
className: cn(
|
|
5859
|
-
"z-50 w-fit max-w-xs origin-(--radix-tooltip-content-transform-origin) animate-in rounded-md border-0 px-3 py-1.5 text-sm font-medium text-balance whitespace-normal fade-in-0 zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
|
|
5863
|
+
"z-50 w-fit max-w-xs origin-(--radix-tooltip-content-transform-origin) animate-in rounded-md border-0 px-3 py-1.5 has-[[data-slot=kbd]]:px-3.5 has-[[data-slot=kbd]]:py-2 has-[[data-slot=kbd]]:space-y-1.5 text-sm font-medium text-balance whitespace-normal fade-in-0 zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
|
|
5860
5864
|
surfaceClasses,
|
|
5861
5865
|
className
|
|
5862
5866
|
)
|
|
@@ -6149,7 +6153,10 @@ function SidebarHeader(_a) {
|
|
|
6149
6153
|
__spreadValues({
|
|
6150
6154
|
"data-slot": "sidebar-header",
|
|
6151
6155
|
"data-sidebar": "header",
|
|
6152
|
-
className: cn(
|
|
6156
|
+
className: cn(
|
|
6157
|
+
"flex flex-col gap-2 px-layout-margin-inline py-2 group-data-[collapsible=icon]:px-2",
|
|
6158
|
+
className
|
|
6159
|
+
)
|
|
6153
6160
|
}, props)
|
|
6154
6161
|
);
|
|
6155
6162
|
}
|
|
@@ -6160,7 +6167,10 @@ function SidebarFooter(_a) {
|
|
|
6160
6167
|
__spreadValues({
|
|
6161
6168
|
"data-slot": "sidebar-footer",
|
|
6162
6169
|
"data-sidebar": "footer",
|
|
6163
|
-
className: cn(
|
|
6170
|
+
className: cn(
|
|
6171
|
+
"flex flex-col gap-2 px-layout-margin-inline py-2 group-data-[collapsible=icon]:px-2",
|
|
6172
|
+
className
|
|
6173
|
+
)
|
|
6164
6174
|
}, props)
|
|
6165
6175
|
);
|
|
6166
6176
|
}
|
|
@@ -6200,7 +6210,10 @@ function SidebarGroup(_a) {
|
|
|
6200
6210
|
__spreadValues({
|
|
6201
6211
|
"data-slot": "sidebar-group",
|
|
6202
6212
|
"data-sidebar": "group",
|
|
6203
|
-
className: cn(
|
|
6213
|
+
className: cn(
|
|
6214
|
+
"relative flex w-full min-w-0 flex-col px-layout-margin-inline py-2 group-data-[collapsible=icon]:px-2",
|
|
6215
|
+
className
|
|
6216
|
+
)
|
|
6204
6217
|
}, props)
|
|
6205
6218
|
);
|
|
6206
6219
|
}
|
|
@@ -6288,7 +6301,7 @@ function SidebarMenuItem(_a) {
|
|
|
6288
6301
|
);
|
|
6289
6302
|
}
|
|
6290
6303
|
var sidebarMenuButtonVariants = (0, import_class_variance_authority13.cva)(
|
|
6291
|
-
"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-sm p-2 text-left text-sidebar-foreground text-sm ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! hover:bg-secondary-hover hover:text-primary focus-visible:ring-2 active:bg-secondary-hover active:text-primary disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-
|
|
6304
|
+
"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-sm p-2 text-left text-sidebar-foreground text-sm ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! hover:bg-secondary-hover hover:text-primary focus-visible:ring-2 active:bg-secondary-hover active:text-primary disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-primary/10 data-[active=true]:font-semibold data-[active=true]:text-primary data-[active=true]:hover:bg-primary/10 data-[active=true]:hover:text-primary data-[state=open]:hover:bg-secondary-hover data-[state=open]:hover:text-primary [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 data-[active=true]:[&>svg]:text-primary",
|
|
6292
6305
|
{
|
|
6293
6306
|
variants: {
|
|
6294
6307
|
variant: {
|
|
@@ -6298,7 +6311,7 @@ var sidebarMenuButtonVariants = (0, import_class_variance_authority13.cva)(
|
|
|
6298
6311
|
size: {
|
|
6299
6312
|
default: "h-8 text-sm",
|
|
6300
6313
|
sm: "h-7 text-xs",
|
|
6301
|
-
lg: "h-12 text-sm group-data-[collapsible=icon]:p-0!"
|
|
6314
|
+
lg: "h-12 text-sm group-data-[collapsible=icon]:p-0! group-data-[collapsible=icon]:justify-center"
|
|
6302
6315
|
}
|
|
6303
6316
|
},
|
|
6304
6317
|
defaultVariants: {
|
|
@@ -6498,7 +6511,7 @@ function SidebarMenuSubButton(_a) {
|
|
|
6498
6511
|
"data-active": isActive,
|
|
6499
6512
|
className: cn(
|
|
6500
6513
|
"flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-sm px-2 text-sidebar-foreground ring-sidebar-ring outline-hidden hover:bg-secondary-hover hover:text-primary focus-visible:ring-2 active:bg-secondary-hover active:text-primary disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 data-[active=true]:[&>svg]:text-primary",
|
|
6501
|
-
"data-[active=true]:bg-
|
|
6514
|
+
"data-[active=true]:bg-primary/10 data-[active=true]:text-primary",
|
|
6502
6515
|
size === "sm" && "text-xs",
|
|
6503
6516
|
size === "md" && "text-sm",
|
|
6504
6517
|
"group-data-[collapsible=icon]:hidden",
|
|
@@ -6789,7 +6802,7 @@ function Switch(_a) {
|
|
|
6789
6802
|
"data-slot": "switch",
|
|
6790
6803
|
"data-size": size,
|
|
6791
6804
|
className: cn(
|
|
6792
|
-
"peer group/switch inline-flex shrink-0 items-center rounded-
|
|
6805
|
+
"peer group/switch inline-flex shrink-0 items-center rounded-full border border-transparent p-[3px] shadow-xs transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-6 data-[size=default]:w-11 data-[size=sm]:h-5 data-[size=sm]:w-9 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",
|
|
6793
6806
|
className
|
|
6794
6807
|
)
|
|
6795
6808
|
}, props), {
|
|
@@ -6798,7 +6811,7 @@ function Switch(_a) {
|
|
|
6798
6811
|
{
|
|
6799
6812
|
"data-slot": "switch-thumb",
|
|
6800
6813
|
className: cn(
|
|
6801
|
-
"pointer-events-none block rounded-
|
|
6814
|
+
"pointer-events-none block rounded-full bg-prominent ring-0 transition-transform group-data-[size=default]/switch:size-[18px] group-data-[size=sm]/switch:size-[14px] data-[state=checked]:translate-x-[calc(100%+1px)] data-[state=unchecked]:translate-x-0"
|
|
6802
6815
|
)
|
|
6803
6816
|
}
|
|
6804
6817
|
)
|