@abumble/design-system 0.0.32 → 0.0.34

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.
@@ -2,7 +2,7 @@ import { jsx as a } from "react/jsx-runtime";
2
2
  import { c as n } from "../shared/utils.js";
3
3
  import { cva as o } from "class-variance-authority";
4
4
  const d = o(
5
- "inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors",
5
+ "inline-flex items-center rounded border px-2.5 py-0.5 text-xs font-semibold transition-colors",
6
6
  {
7
7
  variants: {
8
8
  variant: {
@@ -1 +1 @@
1
- {"version":3,"file":"Badge.js","sources":["../../src/components/Badge/Badge.tsx"],"sourcesContent":["import { cn } from '@/utils'\nimport { cva } from 'class-variance-authority'\nimport type { VariantProps } from 'class-variance-authority'\n\nconst badgeVariants = cva(\n\t'inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors',\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tdefault: 'border-transparent bg-primary text-primary-foreground',\n\t\t\t\tsecondary: 'border-transparent bg-secondary text-secondary-foreground',\n\t\t\t\tsuccess:\n\t\t\t\t\t'border-transparent bg-[var(--badge-success)] text-[var(--badge-success-foreground)]',\n\t\t\t\twarning:\n\t\t\t\t\t'border-transparent bg-[var(--badge-warning)] text-[var(--badge-warning-foreground)]',\n\t\t\t\tdestructive:\n\t\t\t\t\t'border-transparent bg-destructive text-destructive-foreground',\n\t\t\t\toutline: 'text-foreground border-border',\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tvariant: 'default',\n\t\t},\n\t},\n)\n\nexport function Badge({\n\tclassName,\n\tvariant,\n\t...props\n}: React.ComponentProps<'div'> & VariantProps<typeof badgeVariants>) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"badge\"\n\t\t\tclassName={cn(badgeVariants({ variant }), className)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n"],"names":["badgeVariants","cva","Badge","className","variant","props","jsx","cn"],"mappings":";;;AAIA,MAAMA,IAAgBC;AAAA,EACrB;AAAA,EACA;AAAA,IACC,UAAU;AAAA,MACT,SAAS;AAAA,QACR,SAAS;AAAA,QACT,WAAW;AAAA,QACX,SACC;AAAA,QACD,SACC;AAAA,QACD,aACC;AAAA,QACD,SAAS;AAAA,MAAA;AAAA,IACV;AAAA,IAED,iBAAiB;AAAA,MAChB,SAAS;AAAA,IAAA;AAAA,EACV;AAEF;AAEO,SAASC,EAAM;AAAA,EACrB,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,GAAGC;AACJ,GAAqE;AACpE,SACC,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,aAAU;AAAA,MACV,WAAWC,EAAGP,EAAc,EAAE,SAAAI,EAAA,CAAS,GAAGD,CAAS;AAAA,MAClD,GAAGE;AAAA,IAAA;AAAA,EAAA;AAGP;"}
1
+ {"version":3,"file":"Badge.js","sources":["../../src/components/Badge/Badge.tsx"],"sourcesContent":["import { cn } from '@/utils'\nimport { cva } from 'class-variance-authority'\nimport type { VariantProps } from 'class-variance-authority'\n\nconst badgeVariants = cva(\n\t'inline-flex items-center rounded border px-2.5 py-0.5 text-xs font-semibold transition-colors',\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tdefault: 'border-transparent bg-primary text-primary-foreground',\n\t\t\t\tsecondary: 'border-transparent bg-secondary text-secondary-foreground',\n\t\t\t\tsuccess:\n\t\t\t\t\t'border-transparent bg-[var(--badge-success)] text-[var(--badge-success-foreground)]',\n\t\t\t\twarning:\n\t\t\t\t\t'border-transparent bg-[var(--badge-warning)] text-[var(--badge-warning-foreground)]',\n\t\t\t\tdestructive:\n\t\t\t\t\t'border-transparent bg-destructive text-destructive-foreground',\n\t\t\t\toutline: 'text-foreground border-border',\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tvariant: 'default',\n\t\t},\n\t},\n)\n\nexport function Badge({\n\tclassName,\n\tvariant,\n\t...props\n}: React.ComponentProps<'div'> & VariantProps<typeof badgeVariants>) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"badge\"\n\t\t\tclassName={cn(badgeVariants({ variant }), className)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n"],"names":["badgeVariants","cva","Badge","className","variant","props","jsx","cn"],"mappings":";;;AAIA,MAAMA,IAAgBC;AAAA,EACrB;AAAA,EACA;AAAA,IACC,UAAU;AAAA,MACT,SAAS;AAAA,QACR,SAAS;AAAA,QACT,WAAW;AAAA,QACX,SACC;AAAA,QACD,SACC;AAAA,QACD,aACC;AAAA,QACD,SAAS;AAAA,MAAA;AAAA,IACV;AAAA,IAED,iBAAiB;AAAA,MAChB,SAAS;AAAA,IAAA;AAAA,EACV;AAEF;AAEO,SAASC,EAAM;AAAA,EACrB,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,GAAGC;AACJ,GAAqE;AACpE,SACC,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,aAAU;AAAA,MACV,WAAWC,EAAGP,EAAc,EAAE,SAAAI,EAAA,CAAS,GAAGD,CAAS;AAAA,MAClD,GAAGE;AAAA,IAAA;AAAA,EAAA;AAGP;"}
@@ -51,7 +51,7 @@ function z({
51
51
  "data-slot": "context-menu-sub-trigger",
52
52
  "data-inset": n,
53
53
  className: s(
54
- "focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
54
+ "focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground flex cursor-default items-center rounded px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
55
55
  t
56
56
  ),
57
57
  ...r,
@@ -71,7 +71,7 @@ function M({
71
71
  {
72
72
  "data-slot": "context-menu-sub-content",
73
73
  className: s(
74
- "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]: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 z-50 min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg",
74
+ "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]: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 z-50 min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-hidden rounded border p-1 shadow-lg",
75
75
  t
76
76
  ),
77
77
  ...n
@@ -125,7 +125,7 @@ function I({
125
125
  {
126
126
  "data-slot": "context-menu-checkbox-item",
127
127
  className: s(
128
- "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
128
+ "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
129
129
  t
130
130
  ),
131
131
  checked: a,
@@ -147,7 +147,7 @@ function y({
147
147
  {
148
148
  "data-slot": "context-menu-radio-item",
149
149
  className: s(
150
- "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
150
+ "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
151
151
  t
152
152
  ),
153
153
  ...a,
@@ -1 +1 @@
1
- {"version":3,"file":"ContextMenu.js","sources":["../../src/components/ContextMenu/ContextMenu.tsx"],"sourcesContent":["import * as ContextMenuPrimitive from \"@radix-ui/react-context-menu\"\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"@/utils\"\n\nfunction ContextMenu({\n\t...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Root>) {\n\treturn <ContextMenuPrimitive.Root data-slot=\"context-menu\" {...props} />\n}\n\nfunction ContextMenuTrigger({\n\t...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Trigger>) {\n\treturn (\n\t\t<ContextMenuPrimitive.Trigger data-slot=\"context-menu-trigger\" {...props} />\n\t)\n}\n\nfunction ContextMenuGroup({\n\t...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Group>) {\n\treturn (\n\t\t<ContextMenuPrimitive.Group data-slot=\"context-menu-group\" {...props} />\n\t)\n}\n\nfunction ContextMenuPortal({\n\t...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Portal>) {\n\treturn (\n\t\t<ContextMenuPrimitive.Portal data-slot=\"context-menu-portal\" {...props} />\n\t)\n}\n\nfunction ContextMenuSub({\n\t...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Sub>) {\n\treturn <ContextMenuPrimitive.Sub data-slot=\"context-menu-sub\" {...props} />\n}\n\nfunction ContextMenuRadioGroup({\n\t...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.RadioGroup>) {\n\treturn (\n\t\t<ContextMenuPrimitive.RadioGroup\n\t\t\tdata-slot=\"context-menu-radio-group\"\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction ContextMenuSubTrigger({\n\tclassName,\n\tinset,\n\tchildren,\n\t...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.SubTrigger> & {\n\tinset?: boolean\n}) {\n\treturn (\n\t\t<ContextMenuPrimitive.SubTrigger\n\t\t\tdata-slot=\"context-menu-sub-trigger\"\n\t\t\tdata-inset={inset}\n\t\t\tclassName={cn(\n\t\t\t\t\"focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t\t<ChevronRightIcon className=\"ml-auto\" />\n\t\t</ContextMenuPrimitive.SubTrigger>\n\t)\n}\n\nfunction ContextMenuSubContent({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.SubContent>) {\n\treturn (\n\t\t<ContextMenuPrimitive.SubContent\n\t\t\tdata-slot=\"context-menu-sub-content\"\n\t\t\tclassName={cn(\n\t\t\t\t\"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]: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 z-50 min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction ContextMenuContent({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Content>) {\n\treturn (\n\t\t<ContextMenuPrimitive.Portal>\n\t\t\t<ContextMenuPrimitive.Content\n\t\t\t\tdata-slot=\"context-menu-content\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]: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 z-50 max-h-(--radix-context-menu-content-available-height) min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded shadow-md\",\n\t\t\t\t\tclassName\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t</ContextMenuPrimitive.Portal>\n\t)\n}\n\nfunction ContextMenuItem({\n\tclassName,\n\tinset,\n\tvariant = \"default\",\n\t...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Item> & {\n\tinset?: boolean\n\tvariant?: \"default\" | \"destructive\"\n}) {\n\treturn (\n\t\t<ContextMenuPrimitive.Item\n\t\t\tdata-slot=\"context-menu-item\"\n\t\t\tdata-inset={inset}\n\t\t\tdata-variant={variant}\n\t\t\tclassName={cn(\n\t\t\t\t\"focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction ContextMenuCheckboxItem({\n\tclassName,\n\tchildren,\n\tchecked,\n\t...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.CheckboxItem>) {\n\treturn (\n\t\t<ContextMenuPrimitive.CheckboxItem\n\t\t\tdata-slot=\"context-menu-checkbox-item\"\n\t\t\tclassName={cn(\n\t\t\t\t\"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tchecked={checked}\n\t\t\t{...props}\n\t\t>\n\t\t\t<span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n\t\t\t\t<ContextMenuPrimitive.ItemIndicator>\n\t\t\t\t\t<CheckIcon className=\"size-4\" />\n\t\t\t\t</ContextMenuPrimitive.ItemIndicator>\n\t\t\t</span>\n\t\t\t{children}\n\t\t</ContextMenuPrimitive.CheckboxItem>\n\t)\n}\n\nfunction ContextMenuRadioItem({\n\tclassName,\n\tchildren,\n\t...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.RadioItem>) {\n\treturn (\n\t\t<ContextMenuPrimitive.RadioItem\n\t\t\tdata-slot=\"context-menu-radio-item\"\n\t\t\tclassName={cn(\n\t\t\t\t\"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n\t\t\t\t<ContextMenuPrimitive.ItemIndicator>\n\t\t\t\t\t<CircleIcon className=\"size-2 fill-current\" />\n\t\t\t\t</ContextMenuPrimitive.ItemIndicator>\n\t\t\t</span>\n\t\t\t{children}\n\t\t</ContextMenuPrimitive.RadioItem>\n\t)\n}\n\nfunction ContextMenuLabel({\n\tclassName,\n\tinset,\n\t...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Label> & {\n\tinset?: boolean\n}) {\n\treturn (\n\t\t<ContextMenuPrimitive.Label\n\t\t\tdata-slot=\"context-menu-label\"\n\t\t\tdata-inset={inset}\n\t\t\tclassName={cn(\n\t\t\t\t\"text-foreground px-2 py-1.5 text-sm font-medium data-[inset]:pl-8\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction ContextMenuSeparator({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Separator>) {\n\treturn (\n\t\t<ContextMenuPrimitive.Separator\n\t\t\tdata-slot=\"context-menu-separator\"\n\t\t\tclassName={cn(\"bg-border -mx-1 my-1 h-px\", className)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction ContextMenuShortcut({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"span\">) {\n\treturn (\n\t\t<span\n\t\t\tdata-slot=\"context-menu-shortcut\"\n\t\t\tclassName={cn(\n\t\t\t\t\"text-muted-foreground ml-auto text-xs tracking-widest\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nexport {\n\tContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator,\n\tContextMenuShortcut, ContextMenuSub,\n\tContextMenuSubContent,\n\tContextMenuSubTrigger, ContextMenuTrigger\n}\n\n"],"names":["ContextMenu","props","ContextMenuPrimitive","ContextMenuTrigger","ContextMenuGroup","ContextMenuPortal","ContextMenuSub","ContextMenuRadioGroup","jsx","ContextMenuSubTrigger","className","inset","children","jsxs","cn","ChevronRightIcon","ContextMenuSubContent","ContextMenuContent","ContextMenuItem","variant","ContextMenuCheckboxItem","checked","CheckIcon","ContextMenuRadioItem","CircleIcon","ContextMenuLabel","ContextMenuSeparator","ContextMenuShortcut"],"mappings":"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"}
1
+ {"version":3,"file":"ContextMenu.js","sources":["../../src/components/ContextMenu/ContextMenu.tsx"],"sourcesContent":["import * as ContextMenuPrimitive from \"@radix-ui/react-context-menu\"\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"@/utils\"\n\nfunction ContextMenu({\n\t...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Root>) {\n\treturn <ContextMenuPrimitive.Root data-slot=\"context-menu\" {...props} />\n}\n\nfunction ContextMenuTrigger({\n\t...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Trigger>) {\n\treturn (\n\t\t<ContextMenuPrimitive.Trigger data-slot=\"context-menu-trigger\" {...props} />\n\t)\n}\n\nfunction ContextMenuGroup({\n\t...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Group>) {\n\treturn (\n\t\t<ContextMenuPrimitive.Group data-slot=\"context-menu-group\" {...props} />\n\t)\n}\n\nfunction ContextMenuPortal({\n\t...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Portal>) {\n\treturn (\n\t\t<ContextMenuPrimitive.Portal data-slot=\"context-menu-portal\" {...props} />\n\t)\n}\n\nfunction ContextMenuSub({\n\t...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Sub>) {\n\treturn <ContextMenuPrimitive.Sub data-slot=\"context-menu-sub\" {...props} />\n}\n\nfunction ContextMenuRadioGroup({\n\t...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.RadioGroup>) {\n\treturn (\n\t\t<ContextMenuPrimitive.RadioGroup\n\t\t\tdata-slot=\"context-menu-radio-group\"\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction ContextMenuSubTrigger({\n\tclassName,\n\tinset,\n\tchildren,\n\t...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.SubTrigger> & {\n\tinset?: boolean\n}) {\n\treturn (\n\t\t<ContextMenuPrimitive.SubTrigger\n\t\t\tdata-slot=\"context-menu-sub-trigger\"\n\t\t\tdata-inset={inset}\n\t\t\tclassName={cn(\n\t\t\t\t\"focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground flex cursor-default items-center rounded px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t\t<ChevronRightIcon className=\"ml-auto\" />\n\t\t</ContextMenuPrimitive.SubTrigger>\n\t)\n}\n\nfunction ContextMenuSubContent({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.SubContent>) {\n\treturn (\n\t\t<ContextMenuPrimitive.SubContent\n\t\t\tdata-slot=\"context-menu-sub-content\"\n\t\t\tclassName={cn(\n\t\t\t\t\"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]: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 z-50 min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-hidden rounded border p-1 shadow-lg\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction ContextMenuContent({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Content>) {\n\treturn (\n\t\t<ContextMenuPrimitive.Portal>\n\t\t\t<ContextMenuPrimitive.Content\n\t\t\t\tdata-slot=\"context-menu-content\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]: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 z-50 max-h-(--radix-context-menu-content-available-height) min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded shadow-md\",\n\t\t\t\t\tclassName\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t</ContextMenuPrimitive.Portal>\n\t)\n}\n\nfunction ContextMenuItem({\n\tclassName,\n\tinset,\n\tvariant = \"default\",\n\t...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Item> & {\n\tinset?: boolean\n\tvariant?: \"default\" | \"destructive\"\n}) {\n\treturn (\n\t\t<ContextMenuPrimitive.Item\n\t\t\tdata-slot=\"context-menu-item\"\n\t\t\tdata-inset={inset}\n\t\t\tdata-variant={variant}\n\t\t\tclassName={cn(\n\t\t\t\t\"focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction ContextMenuCheckboxItem({\n\tclassName,\n\tchildren,\n\tchecked,\n\t...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.CheckboxItem>) {\n\treturn (\n\t\t<ContextMenuPrimitive.CheckboxItem\n\t\t\tdata-slot=\"context-menu-checkbox-item\"\n\t\t\tclassName={cn(\n\t\t\t\t\"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tchecked={checked}\n\t\t\t{...props}\n\t\t>\n\t\t\t<span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n\t\t\t\t<ContextMenuPrimitive.ItemIndicator>\n\t\t\t\t\t<CheckIcon className=\"size-4\" />\n\t\t\t\t</ContextMenuPrimitive.ItemIndicator>\n\t\t\t</span>\n\t\t\t{children}\n\t\t</ContextMenuPrimitive.CheckboxItem>\n\t)\n}\n\nfunction ContextMenuRadioItem({\n\tclassName,\n\tchildren,\n\t...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.RadioItem>) {\n\treturn (\n\t\t<ContextMenuPrimitive.RadioItem\n\t\t\tdata-slot=\"context-menu-radio-item\"\n\t\t\tclassName={cn(\n\t\t\t\t\"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n\t\t\t\t<ContextMenuPrimitive.ItemIndicator>\n\t\t\t\t\t<CircleIcon className=\"size-2 fill-current\" />\n\t\t\t\t</ContextMenuPrimitive.ItemIndicator>\n\t\t\t</span>\n\t\t\t{children}\n\t\t</ContextMenuPrimitive.RadioItem>\n\t)\n}\n\nfunction ContextMenuLabel({\n\tclassName,\n\tinset,\n\t...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Label> & {\n\tinset?: boolean\n}) {\n\treturn (\n\t\t<ContextMenuPrimitive.Label\n\t\t\tdata-slot=\"context-menu-label\"\n\t\t\tdata-inset={inset}\n\t\t\tclassName={cn(\n\t\t\t\t\"text-foreground px-2 py-1.5 text-sm font-medium data-[inset]:pl-8\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction ContextMenuSeparator({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Separator>) {\n\treturn (\n\t\t<ContextMenuPrimitive.Separator\n\t\t\tdata-slot=\"context-menu-separator\"\n\t\t\tclassName={cn(\"bg-border -mx-1 my-1 h-px\", className)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction ContextMenuShortcut({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"span\">) {\n\treturn (\n\t\t<span\n\t\t\tdata-slot=\"context-menu-shortcut\"\n\t\t\tclassName={cn(\n\t\t\t\t\"text-muted-foreground ml-auto text-xs tracking-widest\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nexport {\n\tContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator,\n\tContextMenuShortcut, ContextMenuSub,\n\tContextMenuSubContent,\n\tContextMenuSubTrigger, ContextMenuTrigger\n}\n\n"],"names":["ContextMenu","props","ContextMenuPrimitive","ContextMenuTrigger","ContextMenuGroup","ContextMenuPortal","ContextMenuSub","ContextMenuRadioGroup","jsx","ContextMenuSubTrigger","className","inset","children","jsxs","cn","ChevronRightIcon","ContextMenuSubContent","ContextMenuContent","ContextMenuItem","variant","ContextMenuCheckboxItem","checked","CheckIcon","ContextMenuRadioItem","CircleIcon","ContextMenuLabel","ContextMenuSeparator","ContextMenuShortcut"],"mappings":";;;;;AAMA,SAASA,EAAY;AAAA,EACpB,GAAGC;AACJ,GAA2D;AAC1D,2BAAQC,EAAqB,MAArB,EAA0B,aAAU,gBAAgB,GAAGD,GAAO;AACvE;AAEA,SAASE,EAAmB;AAAA,EAC3B,GAAGF;AACJ,GAA8D;AAC7D,2BACEC,EAAqB,SAArB,EAA6B,aAAU,wBAAwB,GAAGD,GAAO;AAE5E;AAEA,SAASG,EAAiB;AAAA,EACzB,GAAGH;AACJ,GAA4D;AAC3D,2BACEC,EAAqB,OAArB,EAA2B,aAAU,sBAAsB,GAAGD,GAAO;AAExE;AAEA,SAASI,EAAkB;AAAA,EAC1B,GAAGJ;AACJ,GAA6D;AAC5D,2BACEC,EAAqB,QAArB,EAA4B,aAAU,uBAAuB,GAAGD,GAAO;AAE1E;AAEA,SAASK,EAAe;AAAA,EACvB,GAAGL;AACJ,GAA0D;AACzD,2BAAQC,EAAqB,KAArB,EAAyB,aAAU,oBAAoB,GAAGD,GAAO;AAC1E;AAEA,SAASM,EAAsB;AAAA,EAC9B,GAAGN;AACJ,GAAiE;AAChE,SACC,gBAAAO;AAAA,IAACN,EAAqB;AAAA,IAArB;AAAA,MACA,aAAU;AAAA,MACT,GAAGD;AAAA,IAAA;AAAA,EAAA;AAGP;AAEA,SAASQ,EAAsB;AAAA,EAC9B,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGX;AACJ,GAEG;AACF,SACC,gBAAAY;AAAA,IAACX,EAAqB;AAAA,IAArB;AAAA,MACA,aAAU;AAAA,MACV,cAAYS;AAAA,MACZ,WAAWG;AAAA,QACV;AAAA,QACAJ;AAAA,MAAA;AAAA,MAEA,GAAGT;AAAA,MAEH,UAAA;AAAA,QAAAW;AAAA,QACD,gBAAAJ,EAACO,GAAA,EAAiB,WAAU,UAAA,CAAU;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGzC;AAEA,SAASC,EAAsB;AAAA,EAC9B,WAAAN;AAAA,EACA,GAAGT;AACJ,GAAiE;AAChE,SACC,gBAAAO;AAAA,IAACN,EAAqB;AAAA,IAArB;AAAA,MACA,aAAU;AAAA,MACV,WAAWY;AAAA,QACV;AAAA,QACAJ;AAAA,MAAA;AAAA,MAEA,GAAGT;AAAA,IAAA;AAAA,EAAA;AAGP;AAEA,SAASgB,EAAmB;AAAA,EAC3B,WAAAP;AAAA,EACA,GAAGT;AACJ,GAA8D;AAC7D,SACC,gBAAAO,EAACN,EAAqB,QAArB,EACA,UAAA,gBAAAM;AAAA,IAACN,EAAqB;AAAA,IAArB;AAAA,MACA,aAAU;AAAA,MACV,WAAWY;AAAA,QACV;AAAA,QACAJ;AAAA,MAAA;AAAA,MAEA,GAAGT;AAAA,IAAA;AAAA,EAAA,GAEN;AAEF;AAEA,SAASiB,EAAgB;AAAA,EACxB,WAAAR;AAAA,EACA,OAAAC;AAAA,EACA,SAAAQ,IAAU;AAAA,EACV,GAAGlB;AACJ,GAGG;AACF,SACC,gBAAAO;AAAA,IAACN,EAAqB;AAAA,IAArB;AAAA,MACA,aAAU;AAAA,MACV,cAAYS;AAAA,MACZ,gBAAcQ;AAAA,MACd,WAAWL;AAAA,QACV;AAAA,QACAJ;AAAA,MAAA;AAAA,MAEA,GAAGT;AAAA,IAAA;AAAA,EAAA;AAGP;AAEA,SAASmB,EAAwB;AAAA,EAChC,WAAAV;AAAA,EACA,UAAAE;AAAA,EACA,SAAAS;AAAA,EACA,GAAGpB;AACJ,GAAmE;AAClE,SACC,gBAAAY;AAAA,IAACX,EAAqB;AAAA,IAArB;AAAA,MACA,aAAU;AAAA,MACV,WAAWY;AAAA,QACV;AAAA,QACAJ;AAAA,MAAA;AAAA,MAED,SAAAW;AAAA,MACC,GAAGpB;AAAA,MAEJ,UAAA;AAAA,QAAA,gBAAAO,EAAC,QAAA,EAAK,WAAU,iFACf,UAAA,gBAAAA,EAACN,EAAqB,eAArB,EACA,UAAA,gBAAAM,EAACc,GAAA,EAAU,WAAU,SAAA,CAAS,EAAA,CAC/B,GACD;AAAA,QACCV;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGJ;AAEA,SAASW,EAAqB;AAAA,EAC7B,WAAAb;AAAA,EACA,UAAAE;AAAA,EACA,GAAGX;AACJ,GAAgE;AAC/D,SACC,gBAAAY;AAAA,IAACX,EAAqB;AAAA,IAArB;AAAA,MACA,aAAU;AAAA,MACV,WAAWY;AAAA,QACV;AAAA,QACAJ;AAAA,MAAA;AAAA,MAEA,GAAGT;AAAA,MAEJ,UAAA;AAAA,QAAA,gBAAAO,EAAC,QAAA,EAAK,WAAU,iFACf,UAAA,gBAAAA,EAACN,EAAqB,eAArB,EACA,UAAA,gBAAAM,EAACgB,GAAA,EAAW,WAAU,sBAAA,CAAsB,EAAA,CAC7C,GACD;AAAA,QACCZ;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGJ;AAEA,SAASa,EAAiB;AAAA,EACzB,WAAAf;AAAA,EACA,OAAAC;AAAA,EACA,GAAGV;AACJ,GAEG;AACF,SACC,gBAAAO;AAAA,IAACN,EAAqB;AAAA,IAArB;AAAA,MACA,aAAU;AAAA,MACV,cAAYS;AAAA,MACZ,WAAWG;AAAA,QACV;AAAA,QACAJ;AAAA,MAAA;AAAA,MAEA,GAAGT;AAAA,IAAA;AAAA,EAAA;AAGP;AAEA,SAASyB,EAAqB;AAAA,EAC7B,WAAAhB;AAAA,EACA,GAAGT;AACJ,GAAgE;AAC/D,SACC,gBAAAO;AAAA,IAACN,EAAqB;AAAA,IAArB;AAAA,MACA,aAAU;AAAA,MACV,WAAWY,EAAG,6BAA6BJ,CAAS;AAAA,MACnD,GAAGT;AAAA,IAAA;AAAA,EAAA;AAGP;AAEA,SAAS0B,EAAoB;AAAA,EAC5B,WAAAjB;AAAA,EACA,GAAGT;AACJ,GAAiC;AAChC,SACC,gBAAAO;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,aAAU;AAAA,MACV,WAAWM;AAAA,QACV;AAAA,QACAJ;AAAA,MAAA;AAAA,MAEA,GAAGT;AAAA,IAAA;AAAA,EAAA;AAGP;"}
@@ -10,7 +10,7 @@ const c = a(
10
10
  variant: {
11
11
  default: "bg-primary text-primary-foreground hover:bg-primary/90",
12
12
  destructive: "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
13
- outline: "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
13
+ outline: "border bg-secondary shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
14
14
  secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
15
15
  ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
16
16
  link: "text-primary underline-offset-4 hover:underline"
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sources":["../../src/components/Button/Button.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/utils\"\n\nconst buttonVariants = cva(\n\t\"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded text-sm font-medium transition-all 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-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tdefault: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n\t\t\t\tdestructive:\n\t\t\t\t\t\"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n\t\t\t\toutline:\n\t\t\t\t\t\"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50\",\n\t\t\t\tsecondary:\n\t\t\t\t\t\"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n\t\t\t\tghost:\n\t\t\t\t\t\"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50\",\n\t\t\t\tlink: \"text-primary underline-offset-4 hover:underline\",\n\t\t\t},\n\t\t\tsize: {\n\t\t\t\tdefault: \"h-9 px-4 py-2 has-[>svg]:px-3\",\n\t\t\t\tsm: \"h-8 rounded gap-1.5 px-3 has-[>svg]:px-2.5\",\n\t\t\t\tlg: \"h-10 rounded px-6 has-[>svg]:px-4\",\n\t\t\t\ticon: \"size-9\",\n\t\t\t\t\"icon-sm\": \"size-8\",\n\t\t\t\t\"icon-lg\": \"size-10\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tvariant: \"outline\",\n\t\t\tsize: \"default\",\n\t\t},\n\t}\n)\n\nfunction Button({\n\tclassName,\n\tvariant,\n\tsize,\n\tasChild = false,\n\t...props\n}: React.ComponentProps<\"button\"> &\n\tVariantProps<typeof buttonVariants> & {\n\t\tasChild?: boolean\n\t}) {\n\tconst Comp = asChild ? Slot : \"button\"\n\n\treturn (\n\t\t<Comp\n\t\t\tdata-slot=\"button\"\n\t\t\tclassName={cn(buttonVariants({ variant, size, className }))}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nexport { Button, buttonVariants }\n"],"names":["buttonVariants","cva","Button","className","variant","size","asChild","props","jsx","Slot","cn"],"mappings":";;;;;AAMA,MAAMA,IAAiBC;AAAA,EACtB;AAAA,EACA;AAAA,IACC,UAAU;AAAA,MACT,SAAS;AAAA,QACR,SAAS;AAAA,QACT,aACC;AAAA,QACD,SACC;AAAA,QACD,WACC;AAAA,QACD,OACC;AAAA,QACD,MAAM;AAAA,MAAA;AAAA,MAEP,MAAM;AAAA,QACL,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,WAAW;AAAA,QACX,WAAW;AAAA,MAAA;AAAA,IACZ;AAAA,IAED,iBAAiB;AAAA,MAChB,SAAS;AAAA,MACT,MAAM;AAAA,IAAA;AAAA,EACP;AAEF;AAEA,SAASC,EAAO;AAAA,EACf,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,MAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,GAAGC;AACJ,GAGI;AAGH,SACC,gBAAAC;AAAA,IAHYF,IAAUG,IAAO;AAAA,IAG5B;AAAA,MACA,aAAU;AAAA,MACV,WAAWC,EAAGV,EAAe,EAAE,SAAAI,GAAS,MAAAC,GAAM,WAAAF,EAAA,CAAW,CAAC;AAAA,MACzD,GAAGI;AAAA,IAAA;AAAA,EAAA;AAGP;"}
1
+ {"version":3,"file":"Button.js","sources":["../../src/components/Button/Button.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/utils\"\n\nconst buttonVariants = cva(\n\t\"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded text-sm font-medium transition-all 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-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tdefault: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n\t\t\t\tdestructive:\n\t\t\t\t\t\"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n\t\t\t\toutline:\n\t\t\t\t\t\"border bg-secondary shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50\",\n\t\t\t\tsecondary:\n\t\t\t\t\t\"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n\t\t\t\tghost:\n\t\t\t\t\t\"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50\",\n\t\t\t\tlink: \"text-primary underline-offset-4 hover:underline\",\n\t\t\t},\n\t\t\tsize: {\n\t\t\t\tdefault: \"h-9 px-4 py-2 has-[>svg]:px-3\",\n\t\t\t\tsm: \"h-8 rounded gap-1.5 px-3 has-[>svg]:px-2.5\",\n\t\t\t\tlg: \"h-10 rounded px-6 has-[>svg]:px-4\",\n\t\t\t\ticon: \"size-9\",\n\t\t\t\t\"icon-sm\": \"size-8\",\n\t\t\t\t\"icon-lg\": \"size-10\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tvariant: \"outline\",\n\t\t\tsize: \"default\",\n\t\t},\n\t}\n)\n\nfunction Button({\n\tclassName,\n\tvariant,\n\tsize,\n\tasChild = false,\n\t...props\n}: React.ComponentProps<\"button\"> &\n\tVariantProps<typeof buttonVariants> & {\n\t\tasChild?: boolean\n\t}) {\n\tconst Comp = asChild ? Slot : \"button\"\n\n\treturn (\n\t\t<Comp\n\t\t\tdata-slot=\"button\"\n\t\t\tclassName={cn(buttonVariants({ variant, size, className }))}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nexport { Button, buttonVariants }\n"],"names":["buttonVariants","cva","Button","className","variant","size","asChild","props","jsx","Slot","cn"],"mappings":";;;;;AAMA,MAAMA,IAAiBC;AAAA,EACtB;AAAA,EACA;AAAA,IACC,UAAU;AAAA,MACT,SAAS;AAAA,QACR,SAAS;AAAA,QACT,aACC;AAAA,QACD,SACC;AAAA,QACD,WACC;AAAA,QACD,OACC;AAAA,QACD,MAAM;AAAA,MAAA;AAAA,MAEP,MAAM;AAAA,QACL,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,WAAW;AAAA,QACX,WAAW;AAAA,MAAA;AAAA,IACZ;AAAA,IAED,iBAAiB;AAAA,MAChB,SAAS;AAAA,MACT,MAAM;AAAA,IAAA;AAAA,EACP;AAEF;AAEA,SAASC,EAAO;AAAA,EACf,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,MAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,GAAGC;AACJ,GAGI;AAGH,SACC,gBAAAC;AAAA,IAHYF,IAAUG,IAAO;AAAA,IAG5B;AAAA,MACA,aAAU;AAAA,MACV,WAAWC,EAAGV,EAAe,EAAE,SAAAI,GAAS,MAAAC,GAAM,WAAAF,EAAA,CAAW,CAAC;AAAA,MACzD,GAAGI;AAAA,IAAA;AAAA,EAAA;AAGP;"}
@@ -1,6 +1,6 @@
1
- import { jsx as a, jsxs as o, Fragment as u } from "react/jsx-runtime";
1
+ import { jsx as a, jsxs as o, Fragment as m } from "react/jsx-runtime";
2
2
  import "react";
3
- import { XIcon as m } from "lucide-react";
3
+ import { XIcon as u } from "lucide-react";
4
4
  import * as n from "@radix-ui/react-dialog";
5
5
  import { c as i } from "./utils.js";
6
6
  import { B as f } from "./Button.js";
@@ -54,7 +54,7 @@ function v({
54
54
  {
55
55
  "data-slot": "dialog-content",
56
56
  className: i(
57
- "bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded border p-6 shadow-lg duration-200 outline-none",
57
+ "bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100vw-2rem)] sm:max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 rounded border p-6 shadow-lg duration-200 outline-none",
58
58
  e
59
59
  ),
60
60
  ...l,
@@ -66,7 +66,7 @@ function v({
66
66
  "data-slot": "dialog-close",
67
67
  className: "ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded 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",
68
68
  children: [
69
- /* @__PURE__ */ a(m, {}),
69
+ /* @__PURE__ */ a(u, {}),
70
70
  /* @__PURE__ */ a("span", { className: "sr-only", children: "Close" })
71
71
  ]
72
72
  }
@@ -169,7 +169,7 @@ function y({
169
169
  /* @__PURE__ */ a("span", { className: "text-foreground", children: e }),
170
170
  /* @__PURE__ */ a("span", { children: "/" }),
171
171
  /* @__PURE__ */ a("span", { children: t }),
172
- g && /* @__PURE__ */ o(u, { children: [
172
+ g && /* @__PURE__ */ o(m, { children: [
173
173
  /* @__PURE__ */ a("span", { className: "text-border", children: "·" }),
174
174
  /* @__PURE__ */ a("span", { className: "hidden sm:inline", children: g })
175
175
  ] })
@@ -1 +1 @@
1
- {"version":3,"file":"Dialog.js","sources":["../../src/components/Dialog/Dialog.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport { XIcon } from 'lucide-react'\nimport * as DialogPrimitive from '@radix-ui/react-dialog'\n\nimport { cn } from '@/utils'\nimport { Button } from '@/components/Button/Button'\n\n/** Class for create/edit form dialogs: consistent width and scroll. Use via FormDialog or apply to DialogContent. */\nexport const FORM_DIALOG_CONTENT_CLASS =\n\t'max-w-[calc(100vw-2rem)] sm:max-w-2xl max-h-[90vh] overflow-y-auto'\n\nexport function Dialog({\n\t...props\n}: React.ComponentProps<typeof DialogPrimitive.Root>) {\n\treturn <DialogPrimitive.Root data-slot=\"dialog\" {...props} />\n}\n\nexport function DialogTrigger({\n\t...props\n}: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n\treturn <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />\n}\n\nexport function DialogPortal({\n\t...props\n}: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n\treturn <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />\n}\n\nexport function DialogClose({\n\t...props\n}: React.ComponentProps<typeof DialogPrimitive.Close>) {\n\treturn <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />\n}\n\nexport function DialogOverlay({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n\treturn (\n\t\t<DialogPrimitive.Overlay\n\t\t\tdata-slot=\"dialog-overlay\"\n\t\t\tclassName={cn(\n\t\t\t\t'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nexport function DialogContent({\n\tclassName,\n\tchildren,\n\tshowCloseIcon = true,\n\t...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & {\n\tshowCloseIcon?: boolean\n}) {\n\treturn (\n\t\t<DialogPortal data-slot=\"dialog-portal\">\n\t\t\t<DialogOverlay />\n\t\t\t<DialogPrimitive.Content\n\t\t\t\tdata-slot=\"dialog-content\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded border p-6 shadow-lg duration-200 outline-none',\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t\t{showCloseIcon && (\n\t\t\t\t\t<DialogPrimitive.Close\n\t\t\t\t\t\tdata-slot=\"dialog-close\"\n\t\t\t\t\t\tclassName=\"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded 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\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<XIcon />\n\t\t\t\t\t\t<span className=\"sr-only\">Close</span>\n\t\t\t\t\t</DialogPrimitive.Close>\n\t\t\t\t)}\n\t\t\t</DialogPrimitive.Content>\n\t\t</DialogPortal>\n\t)\n}\n\nexport function DialogHeader({\n\tclassName,\n\t...props\n}: React.ComponentProps<'div'>) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"dialog-header\"\n\t\t\tclassName={cn('flex flex-col gap-2 text-center sm:text-left', className)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nexport function DialogFooter({\n\tclassName,\n\tshowCloseAction = false,\n\tchildren,\n\t...props\n}: React.ComponentProps<'div'> & {\n\tshowCloseAction?: boolean\n}) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"dialog-footer\"\n\t\t\tclassName={cn(\n\t\t\t\t'flex flex-col-reverse gap-2 sm:flex-row sm:justify-end',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t\t{showCloseAction && (\n\t\t\t\t<DialogPrimitive.Close asChild>\n\t\t\t\t\t<Button variant=\"outline\">Close</Button>\n\t\t\t\t</DialogPrimitive.Close>\n\t\t\t)}\n\t\t</div>\n\t)\n}\n\nexport function DialogTitle({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof DialogPrimitive.Title>) {\n\treturn (\n\t\t<DialogPrimitive.Title\n\t\t\tdata-slot=\"dialog-title\"\n\t\t\tclassName={cn('text-lg leading-none font-semibold', className)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nexport function DialogDescription({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof DialogPrimitive.Description>) {\n\treturn (\n\t\t<DialogPrimitive.Description\n\t\t\tdata-slot=\"dialog-description\"\n\t\t\tclassName={cn('text-muted-foreground text-sm', className)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nexport interface FormDialogProps {\n\topen: boolean\n\tonOpenChange: (open: boolean) => void\n\ttitle: string\n\tdescription: React.ReactNode\n\t/** Optional trigger (e.g. \"Add\" button); when provided, render as first child of Dialog. */\n\ttrigger?: React.ReactNode\n\tchildren: React.ReactNode\n\t/** Optional custom className for DialogContent (overrides FORM_DIALOG_CONTENT_CLASS). Use for wider dialogs (e.g., sm:max-w-5xl for wizards). */\n\tclassName?: string\n\t/** Optional wizard configuration for multi-step forms. Renders a stepper bar at the top of the header. */\n\twizard?: {\n\t\tcurrentStep: number\n\t\ttotalSteps: number\n\t\tstepTitle: string\n\t\tstepLabels?: Array<string>\n\t}\n}\n\n/** Compact glass-styled stepper for top-right corner of wizard dialogs. */\nexport function WizardStepper({\n\tcurrentStep,\n\ttotalSteps,\n\tstepLabels,\n}: {\n\tcurrentStep: number\n\ttotalSteps: number\n\tstepLabels?: Array<string>\n}) {\n\tconst steps = Array.from({ length: totalSteps }, (_, i) => i + 1)\n\tconst currentLabel = stepLabels?.[currentStep - 1]\n\n\treturn (\n\t\t<div\n\t\t\tclassName=\"absolute top-4 right-12 z-20 flex items-center gap-2 rounded-full border border-border/50 bg-background/80 px-3 py-1.5 backdrop-blur-sm\"\n\t\t\taria-label=\"Progress\"\n\t\t>\n\t\t\t{/* Step dots */}\n\t\t\t<div className=\"flex items-center gap-1.5\">\n\t\t\t\t{steps.map((step) => {\n\t\t\t\t\tconst isCompleted = step < currentStep\n\t\t\t\t\tconst isCurrent = step === currentStep\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={step}\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t'h-1.5 w-1.5 rounded-full transition-all duration-300',\n\t\t\t\t\t\t\t\tisCurrent && 'bg-primary w-6',\n\t\t\t\t\t\t\t\tisCompleted && 'bg-primary',\n\t\t\t\t\t\t\t\t!isCurrent && !isCompleted && 'bg-muted',\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\taria-current={isCurrent ? 'step' : undefined}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)\n\t\t\t\t})}\n\t\t\t</div>\n\n\t\t\t{/* Step label/counter */}\n\t\t\t<div className=\"text-muted-foreground flex items-center gap-1.5 text-xs font-medium\">\n\t\t\t\t<span className=\"text-foreground\">{currentStep}</span>\n\t\t\t\t<span>/</span>\n\t\t\t\t<span>{totalSteps}</span>\n\t\t\t\t{currentLabel && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<span className=\"text-border\">·</span>\n\t\t\t\t\t\t<span className=\"hidden sm:inline\">{currentLabel}</span>\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>\n\t)\n}\n\n/** Dialog shell for create/edit forms: standard width, header with title + description. */\nexport function FormDialog({\n\topen,\n\tonOpenChange,\n\ttitle,\n\tdescription,\n\ttrigger,\n\tchildren,\n\tclassName,\n\twizard,\n}: FormDialogProps) {\n\treturn (\n\t\t<Dialog open={open} onOpenChange={onOpenChange}>\n\t\t\t{trigger}\n\t\t\t<DialogContent className={className ?? FORM_DIALOG_CONTENT_CLASS}>\n\t\t\t\t{wizard && (\n\t\t\t\t\t<WizardStepper\n\t\t\t\t\t\tcurrentStep={wizard.currentStep}\n\t\t\t\t\t\ttotalSteps={wizard.totalSteps}\n\t\t\t\t\t\tstepLabels={wizard.stepLabels}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t<div className=\"bg-muted -m-6 p-6 -mb-4\">\n\t\t\t\t\t<DialogTitle>{title}</DialogTitle>\n\t\t\t\t\t<DialogDescription>{description}</DialogDescription>\n\t\t\t\t</div>\n\t\t\t\t{children}\n\t\t\t</DialogContent>\n\t\t</Dialog>\n\t)\n}\n"],"names":["FORM_DIALOG_CONTENT_CLASS","Dialog","props","DialogPrimitive","DialogTrigger","DialogPortal","DialogClose","DialogOverlay","className","jsx","cn","DialogContent","children","showCloseIcon","jsxs","XIcon","DialogHeader","DialogFooter","showCloseAction","Button","DialogTitle","DialogDescription","WizardStepper","currentStep","totalSteps","stepLabels","steps","_","i","currentLabel","step","isCompleted","isCurrent","Fragment","FormDialog","open","onOpenChange","title","description","trigger","wizard"],"mappings":"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"}
1
+ {"version":3,"file":"Dialog.js","sources":["../../src/components/Dialog/Dialog.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport { XIcon } from 'lucide-react'\nimport * as DialogPrimitive from '@radix-ui/react-dialog'\n\nimport { cn } from '@/utils'\nimport { Button } from '@/components/Button/Button'\n\n/** Class for create/edit form dialogs: consistent width and scroll. Use via FormDialog or apply to DialogContent. */\nexport const FORM_DIALOG_CONTENT_CLASS =\n\t'max-w-[calc(100vw-2rem)] sm:max-w-2xl max-h-[90vh] overflow-y-auto'\n\nexport function Dialog({\n\t...props\n}: React.ComponentProps<typeof DialogPrimitive.Root>) {\n\treturn <DialogPrimitive.Root data-slot=\"dialog\" {...props} />\n}\n\nexport function DialogTrigger({\n\t...props\n}: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n\treturn <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />\n}\n\nexport function DialogPortal({\n\t...props\n}: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n\treturn <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />\n}\n\nexport function DialogClose({\n\t...props\n}: React.ComponentProps<typeof DialogPrimitive.Close>) {\n\treturn <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />\n}\n\nexport function DialogOverlay({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n\treturn (\n\t\t<DialogPrimitive.Overlay\n\t\t\tdata-slot=\"dialog-overlay\"\n\t\t\tclassName={cn(\n\t\t\t\t'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nexport function DialogContent({\n\tclassName,\n\tchildren,\n\tshowCloseIcon = true,\n\t...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & {\n\tshowCloseIcon?: boolean\n}) {\n\treturn (\n\t\t<DialogPortal data-slot=\"dialog-portal\">\n\t\t\t<DialogOverlay />\n\t\t\t<DialogPrimitive.Content\n\t\t\t\tdata-slot=\"dialog-content\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100vw-2rem)] sm:max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 rounded border p-6 shadow-lg duration-200 outline-none',\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t\t{showCloseIcon && (\n\t\t\t\t\t<DialogPrimitive.Close\n\t\t\t\t\t\tdata-slot=\"dialog-close\"\n\t\t\t\t\t\tclassName=\"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded 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\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<XIcon />\n\t\t\t\t\t\t<span className=\"sr-only\">Close</span>\n\t\t\t\t\t</DialogPrimitive.Close>\n\t\t\t\t)}\n\t\t\t</DialogPrimitive.Content>\n\t\t</DialogPortal>\n\t)\n}\n\nexport function DialogHeader({\n\tclassName,\n\t...props\n}: React.ComponentProps<'div'>) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"dialog-header\"\n\t\t\tclassName={cn('flex flex-col gap-2 text-center sm:text-left', className)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nexport function DialogFooter({\n\tclassName,\n\tshowCloseAction = false,\n\tchildren,\n\t...props\n}: React.ComponentProps<'div'> & {\n\tshowCloseAction?: boolean\n}) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"dialog-footer\"\n\t\t\tclassName={cn(\n\t\t\t\t'flex flex-col-reverse gap-2 sm:flex-row sm:justify-end',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t\t{showCloseAction && (\n\t\t\t\t<DialogPrimitive.Close asChild>\n\t\t\t\t\t<Button variant=\"outline\">Close</Button>\n\t\t\t\t</DialogPrimitive.Close>\n\t\t\t)}\n\t\t</div>\n\t)\n}\n\nexport function DialogTitle({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof DialogPrimitive.Title>) {\n\treturn (\n\t\t<DialogPrimitive.Title\n\t\t\tdata-slot=\"dialog-title\"\n\t\t\tclassName={cn('text-lg leading-none font-semibold', className)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nexport function DialogDescription({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof DialogPrimitive.Description>) {\n\treturn (\n\t\t<DialogPrimitive.Description\n\t\t\tdata-slot=\"dialog-description\"\n\t\t\tclassName={cn('text-muted-foreground text-sm', className)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nexport interface FormDialogProps {\n\topen: boolean\n\tonOpenChange: (open: boolean) => void\n\ttitle: string\n\tdescription: React.ReactNode\n\t/** Optional trigger (e.g. \"Add\" button); when provided, render as first child of Dialog. */\n\ttrigger?: React.ReactNode\n\tchildren: React.ReactNode\n\t/** Optional custom className for DialogContent (overrides FORM_DIALOG_CONTENT_CLASS). Use for wider dialogs (e.g., sm:max-w-5xl for wizards). */\n\tclassName?: string\n\t/** Optional wizard configuration for multi-step forms. Renders a stepper bar at the top of the header. */\n\twizard?: {\n\t\tcurrentStep: number\n\t\ttotalSteps: number\n\t\tstepTitle: string\n\t\tstepLabels?: Array<string>\n\t}\n}\n\n/** Compact glass-styled stepper for top-right corner of wizard dialogs. */\nexport function WizardStepper({\n\tcurrentStep,\n\ttotalSteps,\n\tstepLabels,\n}: {\n\tcurrentStep: number\n\ttotalSteps: number\n\tstepLabels?: Array<string>\n}) {\n\tconst steps = Array.from({ length: totalSteps }, (_, i) => i + 1)\n\tconst currentLabel = stepLabels?.[currentStep - 1]\n\n\treturn (\n\t\t<div\n\t\t\tclassName=\"absolute top-4 right-12 z-20 flex items-center gap-2 rounded-full border border-border/50 bg-background/80 px-3 py-1.5 backdrop-blur-sm\"\n\t\t\taria-label=\"Progress\"\n\t\t>\n\t\t\t{/* Step dots */}\n\t\t\t<div className=\"flex items-center gap-1.5\">\n\t\t\t\t{steps.map((step) => {\n\t\t\t\t\tconst isCompleted = step < currentStep\n\t\t\t\t\tconst isCurrent = step === currentStep\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={step}\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t'h-1.5 w-1.5 rounded-full transition-all duration-300',\n\t\t\t\t\t\t\t\tisCurrent && 'bg-primary w-6',\n\t\t\t\t\t\t\t\tisCompleted && 'bg-primary',\n\t\t\t\t\t\t\t\t!isCurrent && !isCompleted && 'bg-muted',\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\taria-current={isCurrent ? 'step' : undefined}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)\n\t\t\t\t})}\n\t\t\t</div>\n\n\t\t\t{/* Step label/counter */}\n\t\t\t<div className=\"text-muted-foreground flex items-center gap-1.5 text-xs font-medium\">\n\t\t\t\t<span className=\"text-foreground\">{currentStep}</span>\n\t\t\t\t<span>/</span>\n\t\t\t\t<span>{totalSteps}</span>\n\t\t\t\t{currentLabel && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<span className=\"text-border\">·</span>\n\t\t\t\t\t\t<span className=\"hidden sm:inline\">{currentLabel}</span>\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>\n\t)\n}\n\n/** Dialog shell for create/edit forms: standard width, header with title + description. */\nexport function FormDialog({\n\topen,\n\tonOpenChange,\n\ttitle,\n\tdescription,\n\ttrigger,\n\tchildren,\n\tclassName,\n\twizard,\n}: FormDialogProps) {\n\treturn (\n\t\t<Dialog open={open} onOpenChange={onOpenChange}>\n\t\t\t{trigger}\n\t\t\t<DialogContent className={className ?? FORM_DIALOG_CONTENT_CLASS}>\n\t\t\t\t{wizard && (\n\t\t\t\t\t<WizardStepper\n\t\t\t\t\t\tcurrentStep={wizard.currentStep}\n\t\t\t\t\t\ttotalSteps={wizard.totalSteps}\n\t\t\t\t\t\tstepLabels={wizard.stepLabels}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t<div className=\"bg-muted -m-6 p-6 -mb-4\">\n\t\t\t\t\t<DialogTitle>{title}</DialogTitle>\n\t\t\t\t\t<DialogDescription>{description}</DialogDescription>\n\t\t\t\t</div>\n\t\t\t\t{children}\n\t\t\t</DialogContent>\n\t\t</Dialog>\n\t)\n}\n"],"names":["FORM_DIALOG_CONTENT_CLASS","Dialog","props","DialogPrimitive","DialogTrigger","DialogPortal","DialogClose","DialogOverlay","className","jsx","cn","DialogContent","children","showCloseIcon","jsxs","XIcon","DialogHeader","DialogFooter","showCloseAction","Button","DialogTitle","DialogDescription","WizardStepper","currentStep","totalSteps","stepLabels","steps","_","i","currentLabel","step","isCompleted","isCurrent","Fragment","FormDialog","open","onOpenChange","title","description","trigger","wizard"],"mappings":";;;;;;AAUO,MAAMA,IACZ;AAEM,SAASC,EAAO;AAAA,EACtB,GAAGC;AACJ,GAAsD;AACrD,2BAAQC,EAAgB,MAAhB,EAAqB,aAAU,UAAU,GAAGD,GAAO;AAC5D;AAEO,SAASE,EAAc;AAAA,EAC7B,GAAGF;AACJ,GAAyD;AACxD,2BAAQC,EAAgB,SAAhB,EAAwB,aAAU,kBAAkB,GAAGD,GAAO;AACvE;AAEO,SAASG,EAAa;AAAA,EAC5B,GAAGH;AACJ,GAAwD;AACvD,2BAAQC,EAAgB,QAAhB,EAAuB,aAAU,iBAAiB,GAAGD,GAAO;AACrE;AAEO,SAASI,EAAY;AAAA,EAC3B,GAAGJ;AACJ,GAAuD;AACtD,2BAAQC,EAAgB,OAAhB,EAAsB,aAAU,gBAAgB,GAAGD,GAAO;AACnE;AAEO,SAASK,EAAc;AAAA,EAC7B,WAAAC;AAAA,EACA,GAAGN;AACJ,GAAyD;AACxD,SACC,gBAAAO;AAAA,IAACN,EAAgB;AAAA,IAAhB;AAAA,MACA,aAAU;AAAA,MACV,WAAWO;AAAA,QACV;AAAA,QACAF;AAAA,MAAA;AAAA,MAEA,GAAGN;AAAA,IAAA;AAAA,EAAA;AAGP;AAEO,SAASS,EAAc;AAAA,EAC7B,WAAAH;AAAA,EACA,UAAAI;AAAA,EACA,eAAAC,IAAgB;AAAA,EAChB,GAAGX;AACJ,GAEG;AACF,SACC,gBAAAY,EAACT,GAAA,EAAa,aAAU,iBACvB,UAAA;AAAA,IAAA,gBAAAI,EAACF,GAAA,EAAc;AAAA,IACf,gBAAAO;AAAA,MAACX,EAAgB;AAAA,MAAhB;AAAA,QACA,aAAU;AAAA,QACV,WAAWO;AAAA,UACV;AAAA,UACAF;AAAA,QAAA;AAAA,QAEA,GAAGN;AAAA,QAEH,UAAA;AAAA,UAAAU;AAAA,UACAC,KACA,gBAAAC;AAAA,YAACX,EAAgB;AAAA,YAAhB;AAAA,cACA,aAAU;AAAA,cACV,WAAU;AAAA,cAEV,UAAA;AAAA,gBAAA,gBAAAM,EAACM,GAAA,EAAM;AAAA,gBACP,gBAAAN,EAAC,QAAA,EAAK,WAAU,WAAU,UAAA,QAAA,CAAK;AAAA,cAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QAChC;AAAA,MAAA;AAAA,IAAA;AAAA,EAEF,GACD;AAEF;AAEO,SAASO,EAAa;AAAA,EAC5B,WAAAR;AAAA,EACA,GAAGN;AACJ,GAAgC;AAC/B,SACC,gBAAAO;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,aAAU;AAAA,MACV,WAAWC,EAAG,gDAAgDF,CAAS;AAAA,MACtE,GAAGN;AAAA,IAAA;AAAA,EAAA;AAGP;AAEO,SAASe,EAAa;AAAA,EAC5B,WAAAT;AAAA,EACA,iBAAAU,IAAkB;AAAA,EAClB,UAAAN;AAAA,EACA,GAAGV;AACJ,GAEG;AACF,SACC,gBAAAY;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,aAAU;AAAA,MACV,WAAWJ;AAAA,QACV;AAAA,QACAF;AAAA,MAAA;AAAA,MAEA,GAAGN;AAAA,MAEH,UAAA;AAAA,QAAAU;AAAA,QACAM,KACA,gBAAAT,EAACN,EAAgB,OAAhB,EAAsB,SAAO,IAC7B,UAAA,gBAAAM,EAACU,GAAA,EAAO,SAAQ,WAAU,UAAA,QAAA,CAAK,EAAA,CAChC;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIJ;AAEO,SAASC,EAAY;AAAA,EAC3B,WAAAZ;AAAA,EACA,GAAGN;AACJ,GAAuD;AACtD,SACC,gBAAAO;AAAA,IAACN,EAAgB;AAAA,IAAhB;AAAA,MACA,aAAU;AAAA,MACV,WAAWO,EAAG,sCAAsCF,CAAS;AAAA,MAC5D,GAAGN;AAAA,IAAA;AAAA,EAAA;AAGP;AAEO,SAASmB,EAAkB;AAAA,EACjC,WAAAb;AAAA,EACA,GAAGN;AACJ,GAA6D;AAC5D,SACC,gBAAAO;AAAA,IAACN,EAAgB;AAAA,IAAhB;AAAA,MACA,aAAU;AAAA,MACV,WAAWO,EAAG,iCAAiCF,CAAS;AAAA,MACvD,GAAGN;AAAA,IAAA;AAAA,EAAA;AAGP;AAsBO,SAASoB,EAAc;AAAA,EAC7B,aAAAC;AAAA,EACA,YAAAC;AAAA,EACA,YAAAC;AACD,GAIG;AACF,QAAMC,IAAQ,MAAM,KAAK,EAAE,QAAQF,EAAA,GAAc,CAACG,GAAGC,MAAMA,IAAI,CAAC,GAC1DC,IAAeJ,IAAaF,IAAc,CAAC;AAEjD,SACC,gBAAAT;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,WAAU;AAAA,MACV,cAAW;AAAA,MAGX,UAAA;AAAA,QAAA,gBAAAL,EAAC,SAAI,WAAU,6BACb,UAAAiB,EAAM,IAAI,CAACI,MAAS;AACpB,gBAAMC,IAAcD,IAAOP,GACrBS,IAAYF,MAASP;AAE3B,iBACC,gBAAAd;AAAA,YAAC;AAAA,YAAA;AAAA,cAEA,WAAWC;AAAA,gBACV;AAAA,gBACAsB,KAAa;AAAA,gBACbD,KAAe;AAAA,gBACf,CAACC,KAAa,CAACD,KAAe;AAAA,cAAA;AAAA,cAE/B,gBAAcC,IAAY,SAAS;AAAA,YAAA;AAAA,YAP9BF;AAAA,UAAA;AAAA,QAUR,CAAC,EAAA,CACF;AAAA,QAGA,gBAAAhB,EAAC,OAAA,EAAI,WAAU,uEACd,UAAA;AAAA,UAAA,gBAAAL,EAAC,QAAA,EAAK,WAAU,mBAAmB,UAAAc,GAAY;AAAA,UAC/C,gBAAAd,EAAC,UAAK,UAAA,IAAA,CAAC;AAAA,UACP,gBAAAA,EAAC,UAAM,UAAAe,EAAA,CAAW;AAAA,UACjBK,KACA,gBAAAf,EAAAmB,GAAA,EACC,UAAA;AAAA,YAAA,gBAAAxB,EAAC,QAAA,EAAK,WAAU,eAAc,UAAA,KAAC;AAAA,YAC/B,gBAAAA,EAAC,QAAA,EAAK,WAAU,oBAAoB,UAAAoB,EAAA,CAAa;AAAA,UAAA,EAAA,CAClD;AAAA,QAAA,EAAA,CAEF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGH;AAGO,SAASK,EAAW;AAAA,EAC1B,MAAAC;AAAA,EACA,cAAAC;AAAA,EACA,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAA3B;AAAA,EACA,WAAAJ;AAAA,EACA,QAAAgC;AACD,GAAoB;AACnB,SACC,gBAAA1B,EAACb,GAAA,EAAO,MAAAkC,GAAY,cAAAC,GAClB,UAAA;AAAA,IAAAG;AAAA,IACD,gBAAAzB,EAACH,GAAA,EAAc,WAAWH,KAAaR,GACrC,UAAA;AAAA,MAAAwC,KACA,gBAAA/B;AAAA,QAACa;AAAA,QAAA;AAAA,UACA,aAAakB,EAAO;AAAA,UACpB,YAAYA,EAAO;AAAA,UACnB,YAAYA,EAAO;AAAA,QAAA;AAAA,MAAA;AAAA,MAGrB,gBAAA1B,EAAC,OAAA,EAAI,WAAU,2BACd,UAAA;AAAA,QAAA,gBAAAL,EAACW,KAAa,UAAAiB,EAAA,CAAM;AAAA,QACpB,gBAAA5B,EAACY,KAAmB,UAAAiB,EAAA,CAAY;AAAA,MAAA,GACjC;AAAA,MACC1B;AAAA,IAAA,EAAA,CACF;AAAA,EAAA,GACD;AAEF;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abumble/design-system",
3
- "version": "0.0.32",
3
+ "version": "0.0.34",
4
4
  "files": [
5
5
  "dist",
6
6
  "src/styles.css"
package/src/styles.css CHANGED
@@ -159,70 +159,72 @@ code {
159
159
  }
160
160
 
161
161
  :root {
162
- /* --- Light Theme (Warm & Natural) --- */
163
- --background: oklch(0.99 0.003 85);
164
- --foreground: oklch(0.141 0.005 285.823);
162
+ /* --- Light Theme (Linen & Slate - Minimal Warmth) --- */
163
+ --background: oklch(0.992 0.003 85);
164
+ /* Clean Linen White */
165
+ --foreground: oklch(0.2 0.01 85);
165
166
 
166
- /* Card: Frosted warm white */
167
+ /* Surfaces (Tables, Cards, Buttons) - Frosted White */
167
168
  --card: oklch(1 0 0 / 0.75);
168
- --card-foreground: oklch(0.141 0.005 285.823);
169
-
170
- --popover: oklch(1 0 0);
171
- --popover-foreground: oklch(0.141 0.005 285.823);
172
-
173
- /* Primary: Solid Anchor (matches original deep tone) */
174
- --primary: oklch(0.21 0.006 285.885);
175
- --primary-foreground: oklch(0.985 0 0);
176
-
177
- --secondary: oklch(0.96 0.005 85);
178
- --secondary-foreground: oklch(0.21 0.006 285.885);
179
-
180
- --muted: oklch(0.96 0.005 85);
181
- --muted-foreground: oklch(0.552 0.016 285.938);
182
-
183
- --accent: oklch(0.96 0.005 85);
184
- --accent-foreground: oklch(0.21 0.006 285.885);
185
-
186
- --destructive: oklch(0.577 0.245 27.325);
187
- --destructive-foreground: oklch(0.99 0 0);
188
-
189
- --border: oklch(0.92 0.005 85);
190
- --input: oklch(0.92 0.005 85);
191
- --ring: oklch(0.871 0.006 285.885);
192
-
193
- --radius: 0.75rem;
194
-
195
- /* Sidebar inherits warm Light palette */
196
- --sidebar: var(--card);
197
- --sidebar-foreground: oklch(0.141 0.005 285.823);
198
- --sidebar-primary: oklch(0.21 0.006 285.885);
199
- --sidebar-primary-foreground: oklch(0.985 0 0);
200
- --sidebar-accent: oklch(0.96 0.005 85);
201
- --sidebar-accent-foreground: oklch(0.21 0.006 285.885);
202
- --sidebar-border: oklch(0.92 0.005 85);
203
-
204
- /* Banners (Light) */
205
- --banner-info: oklch(0.931 0.038 253.71);
206
- --banner-info-foreground: oklch(0.45 0.13 264.052);
207
- --banner-info-border: oklch(0.704 0.165 259.815);
208
- --banner-note: oklch(0.927 0.048 142.48);
209
- --banner-note-foreground: oklch(0.448 0.119 151.328);
210
- --banner-note-border: oklch(0.792 0.209 151.711);
211
- --banner-warning: oklch(0.937 0.065 99.01);
212
- --banner-warning-foreground: oklch(0.577 0.245 66.928);
213
- --banner-warning-border: oklch(0.828 0.189 84.429);
214
- --banner-alert: oklch(0.936 0.031 17.72);
215
- --banner-alert-foreground: oklch(0.396 0.141 25.723);
216
- --banner-alert-border: oklch(0.577 0.245 27.325);
217
-
218
- /* Interactive Elements (Light) */
219
- --badge-success: oklch(0.53 0.15 145);
169
+ --card-foreground: oklch(0.2 0.01 85);
170
+
171
+ --popover: oklch(1 0 0 / 0.75);
172
+ --popover-foreground: oklch(0.2 0.01 85);
173
+
174
+ /* Primary: Deep Warm Charcoal (Neutral & High Contrast) */
175
+ --primary: oklch(0.18 0.01 85);
176
+ --primary-foreground: oklch(1 0 0);
177
+
178
+ /* Button/Surface Colors: Pure White */
179
+ --secondary: oklch(1 0 0);
180
+ --secondary-foreground: oklch(0.18 0.01 85);
181
+
182
+ --muted: oklch(1 0 0);
183
+ --muted-foreground: oklch(0.5 0.01 85);
184
+
185
+ --accent: oklch(1 0 0);
186
+ --accent-foreground: oklch(0.18 0.01 85);
187
+
188
+ --destructive: oklch(0.55 0.15 25);
189
+ --destructive-foreground: oklch(1 0 0);
190
+
191
+ --border: oklch(0.94 0.005 85);
192
+ --input: oklch(0.94 0.005 85);
193
+ --ring: oklch(0.18 0.01 85 / 0.1);
194
+
195
+ --radius: 0.6rem;
196
+
197
+ /* Sidebar (Soft White) */
198
+ --sidebar: oklch(0.995 0.002 85);
199
+ --sidebar-foreground: oklch(0.2 0.01 85);
200
+ --sidebar-primary: oklch(0.18 0.01 85);
201
+ --sidebar-primary-foreground: oklch(1 0 0);
202
+ --sidebar-accent: oklch(0.97 0.01 85);
203
+ /* Slightly darker for active/hover state */
204
+ --sidebar-accent-foreground: oklch(0.18 0.01 85);
205
+ --sidebar-border: oklch(0.95 0.005 85);
206
+
207
+ /* Banners (Refined) */
208
+ --banner-info: oklch(0.94 0.02 240);
209
+ --banner-info-foreground: oklch(0.4 0.1 240);
210
+ --banner-info-border: oklch(0.85 0.05 240);
211
+ --banner-note: oklch(0.94 0.02 160);
212
+ --banner-note-foreground: oklch(0.35 0.1 160);
213
+ --banner-note-border: oklch(0.85 0.05 160);
214
+ --banner-warning: oklch(0.95 0.03 80);
215
+ --banner-warning-foreground: oklch(0.45 0.1 60);
216
+ --banner-warning-border: oklch(0.88 0.05 70);
217
+ --banner-alert: oklch(0.95 0.03 25);
218
+ --banner-alert-foreground: oklch(0.45 0.12 25);
219
+ --banner-alert-border: oklch(0.88 0.08 25);
220
+
221
+ /* Interactive Elements */
222
+ --badge-success: oklch(0.4 0.1 160);
220
223
  --badge-success-foreground: oklch(1 0 0);
221
- --checkbox-checked: oklch(0.45 0.12 150);
222
- /* Darker olive for light contrast */
224
+ --checkbox-checked: oklch(0.15 0.01 60);
223
225
  --checkbox-checked-foreground: oklch(1 0 0);
224
226
  --checkbox-unchecked-bg: oklch(1 0 0);
225
- --checkbox-unchecked-border: oklch(0.85 0.01 285);
227
+ --checkbox-unchecked-border: oklch(0.88 0.01 60);
226
228
  }
227
229
 
228
230
  .dark {
@@ -234,34 +236,34 @@ code {
234
236
  --card: oklch(0.23 0.02 260 / 0.75);
235
237
  --card-foreground: oklch(0.985 0 0);
236
238
 
237
- --popover: oklch(0.21 0.015 260);
239
+ --popover: oklch(0.21 0.015 260 / 0.75);
238
240
  --popover-foreground: oklch(0.985 0 0);
239
241
 
240
- /* Primary: High-contrast Glow */
241
- --primary: oklch(0.985 0 0);
242
+ /* Primary: Electric Cyan Glow */
243
+ --primary: oklch(0.9 0.1 220);
242
244
  --primary-foreground: oklch(0.18 0.015 260);
243
245
 
244
246
  --secondary: oklch(0.28 0.02 260);
245
- --secondary-foreground: oklch(0.985 0 0);
247
+ --secondary-foreground: oklch(0.9 0.1 220);
246
248
 
247
249
  --muted: oklch(0.28 0.02 260);
248
250
  --muted-foreground: oklch(0.705 0.015 260);
249
251
 
250
252
  --accent: oklch(0.28 0.02 260);
251
- --accent-foreground: oklch(0.985 0 0);
253
+ --accent-foreground: oklch(0.9 0.1 220);
252
254
 
253
255
  --destructive: oklch(0.45 0.15 25);
254
256
  --destructive-foreground: oklch(0.985 0 0);
255
257
 
256
258
  --border: oklch(0.32 0.02 260);
257
259
  --input: oklch(0.32 0.02 260);
258
- --ring: oklch(0.442 0.017 260);
260
+ --ring: oklch(0.9 0.1 220 / 0.3);
259
261
 
260
262
  /* Sidebar (Dark) */
261
263
  --sidebar: oklch(0.21 0.015 260);
262
264
  --sidebar-foreground: oklch(0.985 0 0);
263
- --sidebar-primary: oklch(0.488 0.243 260);
264
- --sidebar-primary-foreground: oklch(0.985 0 0);
265
+ --sidebar-primary: oklch(0.9 0.1 220);
266
+ --sidebar-primary-foreground: oklch(0.18 0.015 260);
265
267
  --sidebar-border: oklch(0.32 0.02 260);
266
268
 
267
269
  /* Banners (Dark - Desaturated) */
@@ -278,12 +280,13 @@ code {
278
280
  /* Interactive Elements (Dark) */
279
281
  --badge-success: oklch(0.48 0.15 150);
280
282
  --badge-success-foreground: oklch(1 0 0);
281
- --checkbox-checked: oklch(0.72 0.17 130);
283
+ --checkbox-checked: oklch(0.9 0.1 220);
282
284
  --checkbox-checked-foreground: oklch(0.18 0.015 260);
283
285
  --checkbox-unchecked-bg: oklch(0.25 0.01 260);
284
286
  --checkbox-unchecked-border: oklch(0.4 0.01 260);
285
287
  }
286
288
 
289
+
287
290
  /* Banner: colors from styles.css tokens; type → info=blue, note=green, warning=yellow, alert=red */
288
291
  [data-banner-type] {
289
292
  border-left-width: 4px;