@trading-game/design-intelligence-layer 0.16.8 → 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 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 (32px) hovers to `bg-secondary-hover`.
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
- ### v0.16.7 (current)
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-all 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",
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 grid-cols-[auto_1fr_auto] items-center gap-x-4 sm:grid-cols-[auto_1fr_auto_auto]",
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-[auto_1fr_auto] grid-rows-[auto_auto] items-center gap-x-4 gap-y-3",
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: "col-start-3 row-start-1", children: closeButton }),
1324
- effectiveActions && effectiveActions.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: "col-span-3 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
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
  );
@@ -1944,7 +1948,7 @@ function Chip(_a) {
1944
1948
  disabled,
1945
1949
  className: cn(
1946
1950
  chipVariants({ size }),
1947
- selected ? "border-[1.5px] border-primary bg-primary/10 text-primary font-semibold pointer-events-none cursor-default" : "border border-border-subtle bg-transparent text-on-prominent hover:bg-secondary-hover active:bg-secondary-hover/80",
1951
+ selected ? "border-[1.5px] border-primary bg-primary/10 text-primary font-semibold pointer-events-none cursor-default" : "border border-border-subtle bg-transparent text-on-prominent transition-colors hover:bg-secondary-hover active:bg-secondary-hover/80",
1948
1952
  className
1949
1953
  )
1950
1954
  }, props), {
@@ -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 hover:underline decoration-2 underline-offset-4",
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-primary text-on-primary";
5851
- const arrowClasses = variant === "inverse" ? "fill-prominent" : "fill-primary";
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("flex flex-col gap-2 p-2", className)
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("flex flex-col gap-2 p-2", className)
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("relative flex w-full min-w-0 flex-col p-2", className)
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-secondary-hover data-[active=true]:font-semibold data-[active=true]:text-primary data-[active=true]:hover:bg-secondary-hover 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",
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-secondary-hover data-[active=true]:text-primary",
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-[6px] 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-slider-range data-[state=unchecked]:bg-input",
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-[3px] 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 data-[state=checked]:bg-primary data-[state=unchecked]:bg-on-subtle"
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
  )