kz-design-system 0.2.0 → 0.3.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.
Files changed (118) hide show
  1. package/dist/button.d.mts +1 -1
  2. package/dist/button.d.ts +1 -1
  3. package/dist/button.js +6 -2
  4. package/dist/button.js.map +1 -1
  5. package/dist/button.mjs +11 -3
  6. package/dist/button.mjs.map +1 -1
  7. package/dist/color-picker.js +6 -2
  8. package/dist/color-picker.js.map +1 -1
  9. package/dist/color-picker.mjs +11 -3
  10. package/dist/color-picker.mjs.map +1 -1
  11. package/dist/date-range-picker.js +6 -2
  12. package/dist/date-range-picker.js.map +1 -1
  13. package/dist/date-range-picker.mjs +11 -3
  14. package/dist/date-range-picker.mjs.map +1 -1
  15. package/dist/date-time-picker.js +6 -2
  16. package/dist/date-time-picker.js.map +1 -1
  17. package/dist/date-time-picker.mjs +11 -3
  18. package/dist/date-time-picker.mjs.map +1 -1
  19. package/dist/dropdown.js +6 -2
  20. package/dist/dropdown.js.map +1 -1
  21. package/dist/dropdown.mjs +11 -3
  22. package/dist/dropdown.mjs.map +1 -1
  23. package/dist/error-page.js +5 -1
  24. package/dist/error-page.js.map +1 -1
  25. package/dist/error-page.mjs +10 -2
  26. package/dist/error-page.mjs.map +1 -1
  27. package/dist/file-uploader.js +5 -1
  28. package/dist/file-uploader.js.map +1 -1
  29. package/dist/file-uploader.mjs +10 -2
  30. package/dist/file-uploader.mjs.map +1 -1
  31. package/dist/icon-picker.d.mts +1 -1
  32. package/dist/icon-picker.d.ts +1 -1
  33. package/dist/icon-picker.js +10 -2
  34. package/dist/icon-picker.js.map +1 -1
  35. package/dist/icon-picker.mjs +15 -3
  36. package/dist/icon-picker.mjs.map +1 -1
  37. package/dist/{icon-registry-YZFYW-mt.d.mts → icon-registry-DY5NSKnE.d.mts} +5 -1
  38. package/dist/{icon-registry-YZFYW-mt.d.ts → icon-registry-DY5NSKnE.d.ts} +5 -1
  39. package/dist/icon.d.mts +2 -2
  40. package/dist/icon.d.ts +2 -2
  41. package/dist/icon.js +9 -1
  42. package/dist/icon.js.map +1 -1
  43. package/dist/icon.mjs +14 -2
  44. package/dist/icon.mjs.map +1 -1
  45. package/dist/index.d.mts +2 -1
  46. package/dist/index.d.ts +2 -1
  47. package/dist/index.js +994 -693
  48. package/dist/index.js.map +1 -1
  49. package/dist/index.mjs +999 -695
  50. package/dist/index.mjs.map +1 -1
  51. package/dist/modal.js +5 -1
  52. package/dist/modal.js.map +1 -1
  53. package/dist/modal.mjs +10 -2
  54. package/dist/modal.mjs.map +1 -1
  55. package/dist/number-input.js +6 -2
  56. package/dist/number-input.js.map +1 -1
  57. package/dist/number-input.mjs +11 -3
  58. package/dist/number-input.mjs.map +1 -1
  59. package/dist/pagination.js +6 -2
  60. package/dist/pagination.js.map +1 -1
  61. package/dist/pagination.mjs +11 -3
  62. package/dist/pagination.mjs.map +1 -1
  63. package/dist/qr-renderer.js +6 -2
  64. package/dist/qr-renderer.js.map +1 -1
  65. package/dist/qr-renderer.mjs +11 -3
  66. package/dist/qr-renderer.mjs.map +1 -1
  67. package/dist/range-slider.d.mts +38 -0
  68. package/dist/range-slider.d.ts +38 -0
  69. package/dist/range-slider.js +466 -0
  70. package/dist/range-slider.js.map +1 -0
  71. package/dist/range-slider.mjs +426 -0
  72. package/dist/range-slider.mjs.map +1 -0
  73. package/dist/select.js +5 -1
  74. package/dist/select.js.map +1 -1
  75. package/dist/select.mjs +10 -2
  76. package/dist/select.mjs.map +1 -1
  77. package/dist/sidemenu.d.mts +1 -1
  78. package/dist/sidemenu.d.ts +1 -1
  79. package/dist/sidemenu.js +5 -1
  80. package/dist/sidemenu.js.map +1 -1
  81. package/dist/sidemenu.mjs +10 -2
  82. package/dist/sidemenu.mjs.map +1 -1
  83. package/dist/sidepanel.js +5 -1
  84. package/dist/sidepanel.js.map +1 -1
  85. package/dist/sidepanel.mjs +10 -2
  86. package/dist/sidepanel.mjs.map +1 -1
  87. package/dist/sql-editor.js +6 -2
  88. package/dist/sql-editor.js.map +1 -1
  89. package/dist/sql-editor.mjs +11 -3
  90. package/dist/sql-editor.mjs.map +1 -1
  91. package/dist/styles.css +2 -2
  92. package/dist/table.d.mts +14 -0
  93. package/dist/table.d.ts +14 -0
  94. package/dist/table.js +41 -21
  95. package/dist/table.js.map +1 -1
  96. package/dist/table.mjs +46 -22
  97. package/dist/table.mjs.map +1 -1
  98. package/dist/tabs.js +5 -1
  99. package/dist/tabs.js.map +1 -1
  100. package/dist/tabs.mjs +10 -2
  101. package/dist/tabs.mjs.map +1 -1
  102. package/dist/text-area.js +5 -1
  103. package/dist/text-area.js.map +1 -1
  104. package/dist/text-area.mjs +10 -2
  105. package/dist/text-area.mjs.map +1 -1
  106. package/dist/text-input.js +5 -1
  107. package/dist/text-input.js.map +1 -1
  108. package/dist/text-input.mjs +10 -2
  109. package/dist/text-input.mjs.map +1 -1
  110. package/dist/toast.js +5 -1
  111. package/dist/toast.js.map +1 -1
  112. package/dist/toast.mjs +10 -2
  113. package/dist/toast.mjs.map +1 -1
  114. package/dist/toggle-button.js +6 -2
  115. package/dist/toggle-button.js.map +1 -1
  116. package/dist/toggle-button.mjs +11 -3
  117. package/dist/toggle-button.mjs.map +1 -1
  118. package/package.json +7 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/dropdown/index.ts","../src/components/dropdown/dropdown.tsx","../src/utils/cn.ts","../src/icon/Icon.tsx","../src/icon/icon-registry.tsx","../src/icon/icon-sizes.ts","../src/constants/enum.ts","../src/components/button/Button.tsx","../src/components/button/button.variants.ts","../src/components/dropdown/DropdownButton.tsx"],"sourcesContent":["export {\n Dropdown,\n DropdownTrigger,\n DropdownContent,\n DropdownItem,\n DropdownSeparator,\n DropdownLabel,\n DropdownCheckboxItem,\n DropdownRadioGroup,\n DropdownRadioItem,\n DropdownSub,\n DropdownSubTrigger,\n DropdownSubContent,\n} from \"./dropdown\";\nexport type { DropdownTriggerProps } from \"./dropdown\";\nexport { DropdownButton } from \"./DropdownButton\";\nexport { DropdownTriggerVariant } from \"../../constants/enum\";\nexport type {\n DropdownButtonProps,\n DropdownButtonTrigger,\n DropdownButtonItem,\n DropdownButtonVariant,\n DropdownButtonAlign,\n DropdownButtonSide,\n} from \"./dropdown.types\";\n","import * as React from \"react\";\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\nimport { Check, ChevronRight, Circle } from \"lucide-react\";\nimport { cn } from \"../../utils/cn\";\nimport { Icon, IconName } from \"../../icon\";\nimport { DropdownTriggerVariant } from \"../../constants/enum\";\n\nconst Dropdown = DropdownMenuPrimitive.Root;\n\nexport interface DropdownTriggerProps extends React.ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.Trigger\n> {\n variant?: DropdownTriggerVariant;\n\n showChevron?: boolean;\n\n startIcon?: React.ReactNode;\n\n endIcon?: React.ReactNode;\n}\n\nconst DropdownTrigger = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Trigger>,\n DropdownTriggerProps\n>(\n (\n {\n asChild = false,\n disabled,\n className,\n variant = DropdownTriggerVariant.Default,\n showChevron = true,\n startIcon,\n endIcon,\n children,\n ...props\n },\n ref\n ) => {\n const isGhost = variant === DropdownTriggerVariant.Ghost;\n const triggerContent = asChild ? (\n children\n ) : (\n <>\n {startIcon ? (\n <span className=\"kz-dropdown-trigger-icon-start\">{startIcon}</span>\n ) : null}\n {children}\n {endIcon ? (\n <span className=\"kz-dropdown-trigger-icon-end\">{endIcon}</span>\n ) : null}\n {showChevron ? (\n <Icon\n name={IconName.ChevronDown}\n className=\"kz-dropdown-trigger-chevron\"\n size=\"sm\"\n aria-hidden\n />\n ) : null}\n </>\n );\n\n return (\n <DropdownMenuPrimitive.Trigger\n ref={ref}\n asChild={asChild}\n disabled={disabled}\n className={cn(\n \"kz-dropdown-trigger\",\n isGhost && \"kz-dropdown-trigger-ghost\",\n className\n )}\n {...props}\n >\n {triggerContent}\n </DropdownMenuPrimitive.Trigger>\n );\n }\n);\nDropdownTrigger.displayName = DropdownMenuPrimitive.Trigger.displayName;\n\ninterface DropdownContentProps extends React.ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.Content\n> {\n className?: string;\n align?: \"start\" | \"center\" | \"end\";\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n sideOffset?: number;\n alignOffset?: number;\n avoidCollisions?: boolean;\n}\n\nconst DropdownContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Content>,\n DropdownContentProps\n>(\n (\n {\n className,\n align = \"center\",\n side = \"bottom\",\n sideOffset = 4,\n alignOffset = 0,\n avoidCollisions = true,\n ...props\n },\n ref\n ) => (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n ref={ref}\n align={align}\n side={side}\n sideOffset={sideOffset}\n alignOffset={alignOffset}\n avoidCollisions={avoidCollisions}\n className={cn(\"kz-dropdown-content\", className)}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n )\n);\nDropdownContent.displayName = DropdownMenuPrimitive.Content.displayName;\n\ninterface DropdownItemProps extends React.ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.Item\n> {\n onSelect?: (event: Event) => void;\n disabled?: boolean;\n destructive?: boolean;\n inset?: boolean;\n startIcon?: React.ReactNode;\n endIcon?: React.ReactNode;\n shortcut?: string;\n className?: string;\n children: React.ReactNode;\n}\n\nconst DropdownItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Item>,\n DropdownItemProps\n>(\n (\n {\n className,\n onSelect,\n disabled,\n destructive,\n inset,\n startIcon,\n endIcon,\n shortcut,\n children,\n ...props\n },\n ref\n ) => (\n <DropdownMenuPrimitive.Item\n ref={ref}\n onSelect={onSelect}\n disabled={disabled}\n className={cn(\n \"kz-dropdown-item\",\n inset && \"kz-dropdown-item-inset\",\n destructive && \"kz-dropdown-item-destructive\",\n className\n )}\n {...props}\n >\n {startIcon ? (\n <span className=\"kz-dropdown-item-icon-start\">{startIcon}</span>\n ) : null}\n <span className=\"kz-dropdown-item-text\">{children}</span>\n {shortcut ? (\n <span className=\"kz-dropdown-item-shortcut\">{shortcut}</span>\n ) : null}\n {endIcon ? (\n <span className=\"kz-dropdown-item-icon-end\">{endIcon}</span>\n ) : null}\n </DropdownMenuPrimitive.Item>\n )\n);\nDropdownItem.displayName = DropdownMenuPrimitive.Item.displayName;\n\nconst DropdownSeparator = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator> & {\n className?: string;\n }\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.Separator\n ref={ref}\n className={cn(\"kz-dropdown-separator\", className)}\n {...props}\n />\n));\nDropdownSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;\n\ninterface DropdownLabelProps extends React.ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.Label\n> {\n inset?: boolean;\n className?: string;\n}\n\nconst DropdownLabel = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Label>,\n DropdownLabelProps\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Label\n ref={ref}\n className={cn(\n \"kz-dropdown-label\",\n inset && \"kz-dropdown-label-inset\",\n className\n )}\n {...props}\n />\n));\nDropdownLabel.displayName = DropdownMenuPrimitive.Label.displayName;\n\ninterface DropdownCheckboxItemProps extends React.ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.CheckboxItem\n> {\n checked?: boolean | \"indeterminate\";\n onCheckedChange?: (checked: boolean) => void;\n disabled?: boolean;\n className?: string;\n children: React.ReactNode;\n}\n\nconst DropdownCheckboxItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,\n DropdownCheckboxItemProps\n>(\n (\n { className, checked, onCheckedChange, disabled, children, ...props },\n ref\n ) => (\n <DropdownMenuPrimitive.CheckboxItem\n ref={ref}\n checked={checked}\n onCheckedChange={onCheckedChange}\n disabled={disabled}\n className={cn(\"kz-dropdown-checkbox-item\", className)}\n {...props}\n >\n <DropdownMenuPrimitive.ItemIndicator className=\"kz-dropdown-item-indicator\">\n {checked === \"indeterminate\" ? (\n <span className=\"kz-dropdown-item-indicator-minus\">−</span>\n ) : (\n <Check className=\"kz-dropdown-item-indicator-check\" />\n )}\n </DropdownMenuPrimitive.ItemIndicator>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n )\n);\nDropdownCheckboxItem.displayName =\n DropdownMenuPrimitive.CheckboxItem.displayName;\n\nconst DropdownRadioGroup = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.RadioGroup>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioGroup>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.RadioGroup\n ref={ref}\n className={cn(\"kz-dropdown-radio-group\", className)}\n {...props}\n />\n));\nDropdownRadioGroup.displayName = DropdownMenuPrimitive.RadioGroup.displayName;\n\ninterface DropdownRadioItemProps extends React.ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.RadioItem\n> {\n value: string;\n disabled?: boolean;\n className?: string;\n children: React.ReactNode;\n}\n\nconst DropdownRadioItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,\n DropdownRadioItemProps\n>(({ className, value, disabled, children, ...props }, ref) => (\n <DropdownMenuPrimitive.RadioItem\n ref={ref}\n value={value}\n disabled={disabled}\n className={cn(\"kz-dropdown-radio-item\", className)}\n {...props}\n >\n <DropdownMenuPrimitive.ItemIndicator className=\"kz-dropdown-item-indicator\">\n <Circle className=\"kz-dropdown-item-indicator-dot\" />\n </DropdownMenuPrimitive.ItemIndicator>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n));\nDropdownRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;\n\nconst DropdownSub = DropdownMenuPrimitive.Sub;\n\ninterface DropdownSubTriggerProps extends React.ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.SubTrigger\n> {\n inset?: boolean;\n disabled?: boolean;\n startIcon?: React.ReactNode;\n endIcon?: React.ReactNode;\n className?: string;\n children: React.ReactNode;\n}\n\nconst DropdownSubTrigger = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,\n DropdownSubTriggerProps\n>(\n (\n { className, inset, disabled, startIcon, endIcon, children, ...props },\n ref\n ) => (\n <DropdownMenuPrimitive.SubTrigger\n ref={ref}\n disabled={disabled}\n className={cn(\n \"kz-dropdown-sub-trigger\",\n inset && \"kz-dropdown-sub-trigger-inset\",\n className\n )}\n {...props}\n >\n {startIcon ? (\n <span className=\"kz-dropdown-item-icon-start\">{startIcon}</span>\n ) : null}\n <span className=\"kz-dropdown-item-text\">{children}</span>\n {endIcon ?? (\n <ChevronRight className=\"kz-dropdown-sub-trigger-chevron\" aria-hidden />\n )}\n </DropdownMenuPrimitive.SubTrigger>\n )\n);\nDropdownSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;\n\ninterface DropdownSubContentProps extends React.ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.SubContent\n> {\n className?: string;\n sideOffset?: number;\n alignOffset?: number;\n children: React.ReactNode;\n}\n\nconst DropdownSubContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,\n DropdownSubContentProps\n>(({ className, sideOffset = 8, alignOffset, children, ...props }, ref) => (\n <DropdownMenuPrimitive.SubContent\n ref={ref}\n sideOffset={sideOffset}\n alignOffset={alignOffset}\n className={cn(\"kz-dropdown-sub-content\", className)}\n {...props}\n >\n {children}\n </DropdownMenuPrimitive.SubContent>\n));\nDropdownSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;\n\nexport {\n Dropdown,\n DropdownTrigger,\n DropdownContent,\n DropdownItem,\n DropdownSeparator,\n DropdownLabel,\n DropdownCheckboxItem,\n DropdownRadioGroup,\n DropdownRadioItem,\n DropdownSub,\n DropdownSubTrigger,\n DropdownSubContent,\n};\n","import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import * as React from \"react\";\nimport { iconRegistry, IconName } from \"./icon-registry\";\nimport { iconSize, type IconSizeKey } from \"./icon-sizes\";\nimport { cn } from \"../utils/cn\";\n\nexport interface IconProps extends Omit<\n React.SVGAttributes<SVGSVGElement>,\n \"color\"\n> {\n name: IconName;\n size?: IconSizeKey | number;\n color?: string;\n className?: string;\n}\n\nconst Icon = React.forwardRef<SVGSVGElement, IconProps>(\n ({ name, size = \"md\", color, className, ...props }, ref) => {\n const Component = iconRegistry[name];\n if (!Component) return null;\n const sizePx = typeof size === \"number\" ? size : iconSize[size];\n const resolvedColor = color ?? \"var(--kz-color-icon-default, currentColor)\";\n return (\n <Component\n ref={ref}\n size={sizePx}\n color={resolvedColor}\n className={cn(\"shrink-0\", className)}\n {...props}\n />\n );\n }\n);\n\nIcon.displayName = \"Icon\";\n\nexport { Icon, iconRegistry, iconSize, IconName };\nexport type { IconSizeKey };\n","import type { LucideIcon } from \"lucide-react\";\nimport {\n Search,\n CircleAlert,\n CheckCircle,\n TriangleAlert,\n Loader2,\n ChevronDown,\n ChevronLeft,\n ChevronRight,\n BarChart2,\n Shield,\n ArrowLeft,\n ArrowUp,\n ArrowDown,\n ArrowUpDown,\n EllipsisVertical,\n Sun,\n Moon,\n Settings,\n LogOut,\n User,\n FileText,\n LockOpen,\n Calendar,\n ChartArea,\n ChartBar,\n ChartBarBig,\n ChartBarDecreasing,\n ChartBarIncreasing,\n ChartBarStacked,\n ChartCandlestick,\n ChartColumn,\n ChartColumnBig,\n ChartColumnDecreasing,\n ChartColumnIncreasing,\n ChartColumnStacked,\n ChartGantt,\n ChartLine,\n ChartNetwork,\n ChartNoAxesColumn,\n ChartNoAxesColumnDecreasing,\n ChartNoAxesColumnIncreasing,\n ChartNoAxesCombined,\n ChartNoAxesGantt,\n ChartPie,\n ChartScatter,\n ChartSpline,\n FolderKanban,\n Kanban,\n SquareChartGantt,\n SquareDashedKanban,\n SquareKanban,\n TrendingDown,\n TrendingUp,\n TrendingUpDown,\n Atom,\n GitBranch,\n Clipboard,\n Palette,\n Gauge,\n Filter,\n Grid3x3,\n RadioTower,\n BadgeCheck,\n Wallet,\n DollarSign,\n Plus,\n Building2,\n X,\n FilePlus,\n UserPlus2,\n UserRoundPlus,\n List,\n CircleAlert as AlertCircleIcon,\n Layers,\n Badge,\n MapPin,\n Puzzle,\n Globe,\n ShoppingBag,\n QrCode,\n Brush,\n FileSpreadsheet,\n Tag,\n Scan,\n Clock3,\n UserPlus,\n Users,\n Files,\n Group,\n CheckSquare,\n ClipboardList,\n ListTodo,\n BarChart3,\n FileBarChart,\n FileSearch,\n Lock,\n Settings2,\n LayoutGrid,\n Terminal,\n Pencil,\n Trash2,\n Eye,\n EyeOff,\n} from \"lucide-react\";\n\n/** Use IconName.* so users discover available icons. Values match registry keys. */\nexport enum IconName {\n Search = \"search\",\n CircleAlert = \"circle-alert\",\n CheckCircle = \"check-circle\",\n TriangleAlert = \"triangle-alert\",\n Loader2 = \"loader-2\",\n ChevronDown = \"chevron-down\",\n ChevronLeft = \"chevron-left\",\n ChevronRight = \"chevron-right\",\n BarChart2 = \"bar-chart-2\",\n Shield = \"shield\",\n ArrowLeft = \"arrow-left\",\n ArrowUp = \"arrow-up\",\n ArrowDown = \"arrow-down\",\n ArrowUpDown = \"arrow-up-down\",\n EllipsisVertical = \"ellipsis-vertical\",\n Sun = \"sun\",\n Moon = \"moon\",\n LogOut = \"log-out\",\n Settings = \"settings\",\n User = \"user\",\n FileText = \"file-text\",\n LockOpen = \"lock-open\",\n Calendar = \"calendar\",\n ChartArea = \"chart-area\",\n ChartBar = \"chart-bar\",\n ChartBarBig = \"chart-bar-big\",\n ChartBarDecreasing = \"chart-bar-decreasing\",\n ChartBarIncreasing = \"chart-bar-increasing\",\n ChartBarStacked = \"chart-bar-stacked\",\n ChartCandlestick = \"chart-candlestick\",\n ChartColumn = \"chart-column\",\n ChartColumnBig = \"chart-column-big\",\n ChartColumnDecreasing = \"chart-column-decreasing\",\n ChartColumnIncreasing = \"chart-column-increasing\",\n ChartColumnStacked = \"chart-column-stacked\",\n ChartGantt = \"chart-gantt\",\n ChartLine = \"chart-line\",\n ChartNetwork = \"chart-network\",\n ChartNoAxesColumn = \"chart-no-axes-column\",\n ChartNoAxesColumnDecreasing = \"chart-no-axes-column-decreasing\",\n ChartNoAxesColumnIncreasing = \"chart-no-axes-column-increasing\",\n ChartNoAxesCombined = \"chart-no-axes-combined\",\n ChartNoAxesGantt = \"chart-no-axes-gantt\",\n ChartPie = \"chart-pie\",\n ChartScatter = \"chart-scatter\",\n ChartSpline = \"chart-spline\",\n FolderKanban = \"folder-kanban\",\n Kanban = \"kanban\",\n SquareChartGantt = \"square-chart-gantt\",\n SquareDashedKanban = \"square-dashed-kanban\",\n SquareKanban = \"square-kanban\",\n TrendingDown = \"trending-down\",\n TrendingUp = \"trending-up\",\n TrendingUpDown = \"trending-up-down\",\n Atom = \"atom\",\n GitBranch = \"git-branch\",\n Clipboard = \"clipboard\",\n Palette = \"palette\",\n Gauge = \"gauge\",\n Filter = \"filter\",\n Grid3x3 = \"grid-3x3\",\n RadioTower = \"radio-tower\",\n BadgeCheck = \"badge-check\",\n Wallet = \"wallet\",\n DollarSign = \"dollar-sign\",\n Plus = \"plus\",\n Building2 = \"building-2\",\n X = \"x\",\n FilePlus = \"file-plus\",\n UserPlus2 = \"user-plus-2\",\n UserRoundPlus = \"user-round-plus\",\n List = \"list\",\n AlertCircle = \"alert-circle\",\n Layers = \"layers\",\n Badge = \"badge\",\n MapPin = \"map-pin\",\n Puzzle = \"puzzle\",\n Globe = \"globe\",\n ShoppingBag = \"shopping-bag\",\n QrCode = \"qr-code\",\n Brush = \"brush\",\n FileSpreadsheet = \"file-spreadsheet\",\n Tag = \"tag\",\n Scan = \"scan\",\n Clock3 = \"clock-3\",\n UserPlus = \"user-plus\",\n Users = \"users\",\n Files = \"files\",\n Group = \"group\",\n CheckSquare = \"check-square\",\n ClipboardList = \"clipboard-list\",\n ListTodo = \"list-todo\",\n BarChart3 = \"bar-chart-3\",\n FileBarChart = \"file-bar-chart\",\n FileSearch = \"file-search\",\n Lock = \"lock\",\n Settings2 = \"settings-2\",\n LayoutGrid = \"layout-grid\",\n Terminal = \"terminal\",\n Pencil = \"pencil\",\n Trash2 = \"trash-2\",\n Eye = \"eye\",\n EyeOff = \"eye-off\",\n}\n\nexport const iconRegistry: Record<IconName, LucideIcon> = {\n [IconName.Search]: Search,\n [IconName.CircleAlert]: CircleAlert,\n [IconName.CheckCircle]: CheckCircle,\n [IconName.TriangleAlert]: TriangleAlert,\n [IconName.Loader2]: Loader2,\n [IconName.ChevronDown]: ChevronDown,\n [IconName.ChevronLeft]: ChevronLeft,\n [IconName.ChevronRight]: ChevronRight,\n [IconName.BarChart2]: BarChart2,\n [IconName.Shield]: Shield,\n [IconName.ArrowLeft]: ArrowLeft,\n [IconName.ArrowUp]: ArrowUp,\n [IconName.ArrowDown]: ArrowDown,\n [IconName.ArrowUpDown]: ArrowUpDown,\n [IconName.EllipsisVertical]: EllipsisVertical,\n [IconName.Sun]: Sun,\n [IconName.Moon]: Moon,\n [IconName.LogOut]: LogOut,\n [IconName.Settings]: Settings,\n [IconName.User]: User,\n [IconName.FileText]: FileText,\n [IconName.LockOpen]: LockOpen,\n [IconName.Calendar]: Calendar,\n [IconName.ChartArea]: ChartArea,\n [IconName.ChartBar]: ChartBar,\n [IconName.ChartBarBig]: ChartBarBig,\n [IconName.ChartBarDecreasing]: ChartBarDecreasing,\n [IconName.ChartBarIncreasing]: ChartBarIncreasing,\n [IconName.ChartBarStacked]: ChartBarStacked,\n [IconName.ChartCandlestick]: ChartCandlestick,\n [IconName.ChartColumn]: ChartColumn,\n [IconName.ChartColumnBig]: ChartColumnBig,\n [IconName.ChartColumnDecreasing]: ChartColumnDecreasing,\n [IconName.ChartColumnIncreasing]: ChartColumnIncreasing,\n [IconName.ChartColumnStacked]: ChartColumnStacked,\n [IconName.ChartGantt]: ChartGantt,\n [IconName.ChartLine]: ChartLine,\n [IconName.ChartNetwork]: ChartNetwork,\n [IconName.ChartNoAxesColumn]: ChartNoAxesColumn,\n [IconName.ChartNoAxesColumnDecreasing]: ChartNoAxesColumnDecreasing,\n [IconName.ChartNoAxesColumnIncreasing]: ChartNoAxesColumnIncreasing,\n [IconName.ChartNoAxesCombined]: ChartNoAxesCombined,\n [IconName.ChartNoAxesGantt]: ChartNoAxesGantt,\n [IconName.ChartPie]: ChartPie,\n [IconName.ChartScatter]: ChartScatter,\n [IconName.ChartSpline]: ChartSpline,\n [IconName.FolderKanban]: FolderKanban,\n [IconName.Kanban]: Kanban,\n [IconName.SquareChartGantt]: SquareChartGantt,\n [IconName.SquareDashedKanban]: SquareDashedKanban,\n [IconName.SquareKanban]: SquareKanban,\n [IconName.TrendingDown]: TrendingDown,\n [IconName.TrendingUp]: TrendingUp,\n [IconName.TrendingUpDown]: TrendingUpDown,\n [IconName.Atom]: Atom,\n [IconName.GitBranch]: GitBranch,\n [IconName.Clipboard]: Clipboard,\n [IconName.Palette]: Palette,\n [IconName.Gauge]: Gauge,\n [IconName.Filter]: Filter,\n [IconName.Grid3x3]: Grid3x3,\n [IconName.RadioTower]: RadioTower,\n [IconName.BadgeCheck]: BadgeCheck,\n [IconName.Wallet]: Wallet,\n [IconName.DollarSign]: DollarSign,\n [IconName.Plus]: Plus,\n [IconName.Building2]: Building2,\n [IconName.X]: X,\n [IconName.FilePlus]: FilePlus,\n [IconName.UserPlus2]: UserPlus2,\n [IconName.UserRoundPlus]: UserRoundPlus,\n [IconName.List]: List,\n [IconName.AlertCircle]: AlertCircleIcon,\n [IconName.Layers]: Layers,\n [IconName.Badge]: Badge,\n [IconName.MapPin]: MapPin,\n [IconName.Puzzle]: Puzzle,\n [IconName.Globe]: Globe,\n [IconName.ShoppingBag]: ShoppingBag,\n [IconName.QrCode]: QrCode,\n [IconName.Brush]: Brush,\n [IconName.FileSpreadsheet]: FileSpreadsheet,\n [IconName.Tag]: Tag,\n [IconName.Scan]: Scan,\n [IconName.Clock3]: Clock3,\n [IconName.UserPlus]: UserPlus,\n [IconName.Users]: Users,\n [IconName.Files]: Files,\n [IconName.Group]: Group,\n [IconName.CheckSquare]: CheckSquare,\n [IconName.ClipboardList]: ClipboardList,\n [IconName.ListTodo]: ListTodo,\n [IconName.BarChart3]: BarChart3,\n [IconName.FileBarChart]: FileBarChart,\n [IconName.FileSearch]: FileSearch,\n [IconName.Lock]: Lock,\n [IconName.Settings2]: Settings2,\n [IconName.LayoutGrid]: LayoutGrid,\n [IconName.Terminal]: Terminal,\n [IconName.Pencil]: Pencil,\n [IconName.Trash2]: Trash2,\n [IconName.Eye]: Eye,\n [IconName.EyeOff]: EyeOff,\n};\n","/** Preset icon sizes (px). Use with Icon size prop. */\nexport const iconSize = {\n xs: 12,\n sm: 16,\n md: 24,\n lg: 32,\n xl: 40,\n} as const;\n\nexport type IconSizeKey = keyof typeof iconSize;\n","export enum Theme {\n Light = \"light\",\n Dark = \"dark\",\n}\n\nexport enum ThemeStyle {\n Enterprise = \"enterprise\",\n Neumorphic = \"neumorphic\",\n Standard = \"standard\",\n Glassmorphic = \"glassmorphic\",\n}\n\nexport enum KezelVariant {\n Standard = \"standard\",\n Neumorphic = \"neumorphic\",\n}\n\nexport enum KezelMode {\n Light,\n Dark,\n}\n\nexport enum ButtonVariant {\n Primary = \"primary\",\n Ghost = \"ghost\",\n Container = \"container\",\n}\n\nexport enum ButtonStatus {\n Default = \"default\",\n Brand = \"brand\",\n Success = \"success\",\n Warning = \"warning\",\n Error = \"error\",\n Info = \"info\",\n}\n\nexport enum ButtonSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum ButtonType {\n Button = \"button\",\n Submit = \"submit\",\n Reset = \"reset\",\n}\n\nexport enum ButtonAspectRatio {\n Auto = \"auto\",\n Square = \"square\",\n}\n\nexport enum DropdownTriggerVariant {\n Default = \"default\",\n Ghost = \"ghost\",\n}\n\nexport enum TypographyVariant {\n H1 = \"h1\",\n H2 = \"h2\",\n H3 = \"h3\",\n H4 = \"h4\",\n H5 = \"h5\",\n Body = \"body\",\n Small = \"small\",\n Caption = \"caption\",\n Label = \"label\",\n Link = \"link\",\n Error = \"error\",\n Success = \"success\",\n Warning = \"warning\",\n}\n\nexport enum TypographyTone {\n Primary = \"primary\",\n Secondary = \"secondary\",\n Muted = \"muted\",\n Disabled = \"disabled\",\n Inverse = \"inverse\",\n Link = \"link\",\n}\n\nexport enum TypographyAlign {\n Left = \"left\",\n Center = \"center\",\n Right = \"right\",\n}\n\nexport enum TypographyWeight {\n Regular = \"regular\",\n Medium = \"medium\",\n Semibold = \"semibold\",\n Bold = \"bold\",\n}\n\nexport enum TokenCategory {\n Color = \"color\",\n Shadow = \"shadow\",\n Length = \"length\",\n Number = \"number\",\n LineHeight = \"lineHeight\",\n FontFamily = \"fontFamily\",\n FontWeight = \"fontWeight\",\n Duration = \"duration\",\n Easing = \"easing\",\n}\n\nexport enum OverrideMode {\n Safe = \"safe\",\n Strict = \"strict\",\n}\n\nexport enum TextInputVariant {\n Default = \"default\",\n Container = \"container\",\n Ghost = \"ghost\",\n}\n\nexport enum TextInputSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum TextInputState {\n Default = \"default\",\n Error = \"error\",\n Success = \"success\",\n Warning = \"warning\",\n}\n\nexport enum TextInputType {\n Text = \"text\",\n Email = \"email\",\n Password = \"password\",\n Number = \"number\",\n Search = \"search\",\n Tel = \"tel\",\n Url = \"url\",\n}\n\nexport enum TooltipSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum TooltipPosition {\n Top = \"top\",\n Right = \"right\",\n Bottom = \"bottom\",\n Left = \"left\",\n}\n\nexport enum TooltipAlign {\n Start = \"start\",\n Center = \"center\",\n End = \"end\",\n}\n\nexport enum TooltipColor {\n Default = \"default\",\n Inverse = \"inverse\",\n Success = \"success\",\n Warning = \"warning\",\n Error = \"error\",\n}\n\nexport enum ToggleButtonVariant {\n Default = \"default\",\n Primary = \"primary\",\n Container = \"container\",\n}\n\nexport enum ToggleButtonSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum CheckboxSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum CheckboxVariant {\n Default = \"default\",\n Container = \"container\",\n}\n\nexport enum RadioSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum AvatarSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n Xl = \"xl\",\n}\n\nexport enum AvatarStatus {\n Online = \"online\",\n Busy = \"busy\",\n Away = \"away\",\n Offline = \"offline\",\n}\n\nexport enum ToastVariant {\n Success = \"success\",\n Error = \"error\",\n Warning = \"warning\",\n Info = \"info\",\n}\n\nexport enum CardShadow {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum ToastPosition {\n TopRight = \"top-right\",\n TopLeft = \"top-left\",\n BottomRight = \"bottom-right\",\n BottomLeft = \"bottom-left\",\n}\n\nexport enum QrPattern {\n Square = \"square\",\n Circle = \"circle\",\n Diamond = \"diamond\",\n}\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport {\n ButtonVariant,\n ButtonSize,\n ButtonStatus,\n ButtonType,\n ButtonAspectRatio,\n} from \"../../constants/enum\";\nimport { buttonVariants, type ButtonVariants } from \"./button.variants\";\nimport { Loader2 } from \"lucide-react\";\nimport { iconSize } from \"../../icon/icon-sizes\";\nimport { cn } from \"../../utils/cn\";\nimport { Icon, type IconProps } from \"../../icon/Icon\";\n\nexport interface ButtonProps extends Omit<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n \"children\" | \"onClick\"\n> {\n variant: ButtonVariant;\n size: ButtonSize;\n status?: ButtonStatus;\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n asChild?: boolean;\n children: React.ReactNode;\n type?: ButtonType;\n loading?: boolean;\n aspectRatio?: ButtonAspectRatio;\n leftIcon?: IconProps;\n rightIcon?: IconProps;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n className,\n variant,\n size,\n status,\n onClick,\n asChild = false,\n children,\n type = ButtonType.Button,\n loading = false,\n aspectRatio = ButtonAspectRatio.Auto,\n disabled,\n leftIcon,\n rightIcon,\n ...props\n },\n ref\n ) => {\n const Comp = asChild ? Slot : \"button\";\n const isDisabled = disabled || loading;\n\n const buttonClassName = cn(\n buttonVariants({ variant, size, status }),\n loading && \"opacity-[var(--kz-component-button-loading-opacity,0.8)]\",\n aspectRatio === ButtonAspectRatio.Square && \"kz-button--aspect-1-1\",\n className\n );\n\n if (asChild) {\n return (\n <Comp\n ref={ref}\n type={asChild ? undefined : type}\n className={buttonClassName}\n onClick={onClick}\n disabled={isDisabled}\n aria-busy={loading}\n {...props}\n >\n {children}\n </Comp>\n );\n }\n\n return (\n <Comp\n ref={ref}\n type={type}\n className={buttonClassName}\n onClick={onClick}\n disabled={isDisabled}\n aria-busy={loading}\n {...props}\n >\n {loading && (\n <Loader2\n className=\"kz-button-spinner\"\n size={iconSize.md}\n color=\"currentColor\"\n />\n )}\n {leftIcon && <Icon {...leftIcon} />}\n {children}\n {rightIcon && <Icon {...rightIcon} />}\n </Comp>\n );\n }\n);\n\nButton.displayName = \"Button\";\n\nexport { Button, buttonVariants };\nexport type { ButtonVariants };\n","import { cva, type VariantProps } from \"class-variance-authority\";\nimport { ButtonVariant, ButtonSize } from \"../../constants/enum\";\n\nconst base = [\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium\",\n \"transition-all duration-150 ease-out\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-[var(--kz-color-border-focus)]\",\n \"disabled:pointer-events-none disabled:opacity-[var(--kz-component-button-disabled-opacity,0.5)]\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0\",\n].join(\" \");\n\nexport const buttonVariants = cva(base, {\n variants: {\n variant: {\n primary: [\n \"bg-[var(--kz-component-button-secondary-bg)]\",\n \"text-[var(--kz-component-button-secondary-text)]\",\n \"rounded-[var(--kz-component-button-radius,8px)]\",\n \"[border:var(--kz-component-button-secondary-border,none)]\",\n \"[box-shadow:var(--kz-component-button-secondary-shadow,none)]\",\n \"hover:bg-[var(--kz-component-button-secondary-bg-hover)]\",\n \"hover:[box-shadow:var(--kz-component-button-secondary-shadow-hover,var(--kz-component-button-secondary-shadow,none))]\",\n \"active:bg-[var(--kz-component-button-secondary-bg-active)]\",\n ].join(\" \"),\n ghost: [\n \"bg-[var(--kz-component-button-ghost-bg)]\",\n \"text-[var(--kz-component-button-ghost-text)]\",\n \"rounded-[var(--kz-component-button-radius,8px)]\",\n \"border border-transparent\",\n \"[box-shadow:none]\",\n \"hover:bg-[var(--kz-component-button-ghost-bg-hover,transparent)]\",\n \"active:opacity-80\",\n ].join(\" \"),\n container: [\n \"bg-[var(--kz-component-button-container-bg)]\",\n \"text-[var(--kz-component-button-container-text)]\",\n \"border border-[var(--kz-component-button-container-border)]\",\n \"rounded-[var(--kz-component-button-radius,8px)]\",\n \"[box-shadow:var(--kz-component-button-container-shadow)]\",\n \"hover:bg-[var(--kz-component-button-ghost-bg-hover,transparent)]\",\n \"hover:[box-shadow:var(--kz-component-button-container-shadow-hover)]\",\n ].join(\" \"),\n },\n status: {\n default: \"\",\n brand: [\n \"bg-[var(--kz-component-button-brand-bg)]\",\n \"text-[var(--kz-component-button-brand-text)]\",\n \"[box-shadow:var(--kz-component-button-brand-shadow,none)]\",\n \"hover:bg-[var(--kz-component-button-brand-bg-hover,var(--kz-component-button-brand-bg))]\",\n \"hover:[box-shadow:var(--kz-component-button-brand-shadow-hover,var(--kz-component-button-brand-shadow,none))]\",\n \"active:!bg-[var(--kz-component-button-brand-bg-hover,var(--kz-component-button-brand-bg))]\",\n ].join(\" \"),\n success: [\n \"bg-[var(--kz-component-button-success-bg)]\",\n \"text-[var(--kz-component-button-success-text)]\",\n \"[box-shadow:var(--kz-component-button-success-shadow,none)]\",\n \"hover:bg-[var(--kz-component-button-success-bg-hover,var(--kz-component-button-success-bg))]\",\n \"hover:[box-shadow:var(--kz-component-button-success-shadow-hover,var(--kz-component-button-success-shadow,none))]\",\n \"active:!bg-[var(--kz-component-button-success-bg-hover,var(--kz-component-button-success-bg))]\",\n ].join(\" \"),\n warning: [\n \"bg-[var(--kz-component-button-warning-bg)]\",\n \"text-[var(--kz-component-button-warning-text)]\",\n \"[box-shadow:var(--kz-component-button-warning-shadow,none)]\",\n \"hover:bg-[var(--kz-component-button-warning-bg-hover,var(--kz-component-button-warning-bg))]\",\n \"hover:[box-shadow:var(--kz-component-button-warning-shadow-hover,var(--kz-component-button-warning-shadow,none))]\",\n \"active:!bg-[var(--kz-component-button-warning-bg-hover,var(--kz-component-button-warning-bg))]\",\n ].join(\" \"),\n error: [\n \"bg-[var(--kz-component-button-error-bg)]\",\n \"text-[var(--kz-component-button-error-text)]\",\n \"[box-shadow:var(--kz-component-button-error-shadow,none)]\",\n \"hover:bg-[var(--kz-component-button-error-bg-hover,var(--kz-component-button-error-bg))]\",\n \"hover:[box-shadow:var(--kz-component-button-error-shadow-hover,var(--kz-component-button-error-shadow,none))]\",\n \"active:!bg-[var(--kz-component-button-error-bg-hover,var(--kz-component-button-error-bg))]\",\n ].join(\" \"),\n info: [\n \"bg-[var(--kz-component-button-info-bg)]\",\n \"text-[var(--kz-component-button-info-text)]\",\n \"[box-shadow:var(--kz-component-button-info-shadow,none)]\",\n \"hover:bg-[var(--kz-component-button-info-bg-hover,var(--kz-component-button-info-bg))]\",\n \"hover:[box-shadow:var(--kz-component-button-info-shadow-hover,var(--kz-component-button-info-shadow,none))]\",\n \"active:!bg-[var(--kz-component-button-info-bg-hover,var(--kz-component-button-info-bg))]\",\n ].join(\" \"),\n },\n size: {\n sm: [\n \"h-[var(--kz-component-button-height-sm,2rem)]\",\n \"px-[var(--kz-component-button-px-sm,0.75rem)]\",\n \"text-[length:var(--kz-component-button-text-sm,0.875rem)]\",\n \"[&_svg]:size-[var(--kz-component-button-icon-sm,1rem)]\",\n ].join(\" \"),\n md: [\n \"h-[var(--kz-component-button-height-md,2.5rem)]\",\n \"px-[var(--kz-component-button-px-md,1rem)]\",\n \"text-[length:var(--kz-component-button-text-md,0.875rem)]\",\n \"[&_svg]:size-[var(--kz-component-button-icon-md,1rem)]\",\n ].join(\" \"),\n lg: [\n \"h-[var(--kz-component-button-height-lg,3rem)]\",\n \"px-[var(--kz-component-button-px-lg,1.25rem)]\",\n \"text-[length:var(--kz-component-button-text-lg,1rem)]\",\n \"[&_svg]:size-[var(--kz-component-button-icon-lg,1.25rem)]\",\n ].join(\" \"),\n },\n },\n compoundVariants: [\n // Ghost + brand: brand text, transparent bg, brand-tinted hover\n {\n variant: \"ghost\",\n status: \"brand\",\n className: [\n \"!bg-transparent text-[var(--kz-color-brand-accent)]\",\n \"hover:!bg-[var(--kz-component-button-ghost-brand-bg-hover,rgba(0,150,137,0.1))]\",\n \"[box-shadow:none] hover:[box-shadow:none]\",\n ].join(\" \"),\n },\n // Ghost + status: text color = status, bg transparent, hover = light tint\n {\n variant: \"ghost\",\n status: \"success\",\n className: [\n \"!bg-transparent text-[var(--kz-color-status-success)]\",\n \"hover:!bg-[var(--kz-component-button-ghost-success-bg-hover,rgba(0,201,80,0.1))]\",\n \"[box-shadow:none] hover:[box-shadow:none]\",\n ].join(\" \"),\n },\n {\n variant: \"ghost\",\n status: \"warning\",\n className: [\n \"!bg-transparent text-[var(--kz-color-status-warning)]\",\n \"hover:!bg-[var(--kz-component-button-ghost-warning-bg-hover,rgba(245,158,11,0.1))]\",\n \"[box-shadow:none] hover:[box-shadow:none]\",\n ].join(\" \"),\n },\n {\n variant: \"ghost\",\n status: \"error\",\n className: [\n \"!bg-transparent text-[var(--kz-color-status-error)]\",\n \"hover:!bg-[var(--kz-component-button-ghost-error-bg-hover,rgba(251,44,54,0.1))]\",\n \"[box-shadow:none] hover:[box-shadow:none]\",\n ].join(\" \"),\n },\n {\n variant: \"ghost\",\n status: \"info\",\n className: [\n \"!bg-transparent text-[var(--kz-color-status-info)]\",\n \"hover:!bg-[var(--kz-component-button-ghost-info-bg-hover,rgba(37,99,235,0.1))]\",\n \"[box-shadow:none] hover:[box-shadow:none]\",\n ].join(\" \"),\n },\n // Container + brand: brand text, brand border, no shadow, brand-tinted hover\n {\n variant: \"container\",\n status: \"brand\",\n className: [\n \"!bg-transparent\",\n \"!text-[var(--kz-component-button-container-brand-text,var(--kz-color-brand-accent))]\",\n \"!border-[var(--kz-component-button-container-brand-border,var(--kz-color-brand-accent))]\",\n \"[box-shadow:none] hover:[box-shadow:none]\",\n \"hover:!bg-[var(--kz-component-button-container-brand-bg-hover,rgba(0,150,137,0.08))]\",\n ].join(\" \"),\n },\n // Container + status: keep container shape/shadow, override bg/text with status colors\n {\n variant: \"container\",\n status: \"success\",\n className: [\n \"!bg-transparent\",\n \"!text-[var(--kz-color-status-success)]\",\n \"!border-[var(--kz-color-status-success)]\",\n \"[box-shadow:none] hover:[box-shadow:none]\",\n \"hover:!bg-[var(--kz-component-button-ghost-success-bg-hover,rgba(0,201,80,0.1))]\",\n ].join(\" \"),\n },\n {\n variant: \"container\",\n status: \"warning\",\n className: [\n \"!bg-transparent\",\n \"!text-[var(--kz-color-status-warning)]\",\n \"!border-[var(--kz-color-status-warning)]\",\n \"[box-shadow:none] hover:[box-shadow:none]\",\n \"hover:!bg-[var(--kz-component-button-ghost-warning-bg-hover,rgba(245,158,11,0.1))]\",\n ].join(\" \"),\n },\n {\n variant: \"container\",\n status: \"error\",\n className: [\n \"!bg-transparent\",\n \"!text-[var(--kz-color-status-error)]\",\n \"!border-[var(--kz-color-status-error)]\",\n \"[box-shadow:none] hover:[box-shadow:none]\",\n \"hover:!bg-[var(--kz-component-button-ghost-error-bg-hover,rgba(251,44,54,0.1))]\",\n ].join(\" \"),\n },\n {\n variant: \"container\",\n status: \"info\",\n className: [\n \"!bg-transparent\",\n \"!text-[var(--kz-color-status-info)]\",\n \"!border-[var(--kz-color-status-info)]\",\n \"[box-shadow:none] hover:[box-shadow:none]\",\n \"hover:!bg-[var(--kz-component-button-ghost-info-bg-hover,rgba(37,99,235,0.1))]\",\n ].join(\" \"),\n },\n ],\n defaultVariants: {\n variant: ButtonVariant.Primary,\n size: ButtonSize.Md,\n },\n});\n\nexport type ButtonVariants = VariantProps<typeof buttonVariants>;\n","import * as React from \"react\";\nimport {\n Dropdown,\n DropdownTrigger,\n DropdownContent,\n DropdownItem,\n DropdownSeparator,\n DropdownLabel,\n DropdownSub,\n DropdownSubTrigger,\n DropdownSubContent,\n} from \"./dropdown\";\nimport { DropdownTriggerVariant } from \"../../constants/enum\";\nimport { Button } from \"../button\";\nimport {\n ButtonVariant,\n ButtonSize,\n ButtonAspectRatio,\n} from \"../../constants/enum\";\nimport { Icon, IconName } from \"../../icon\";\nimport type {\n DropdownButtonProps,\n DropdownButtonItem,\n DropdownButtonVariant,\n} from \"./dropdown.types\";\n\nfunction mapVariant(\n v: DropdownButtonVariant | undefined\n): DropdownTriggerVariant {\n return v === \"ghost\"\n ? DropdownTriggerVariant.Ghost\n : DropdownTriggerVariant.Default;\n}\n\nfunction renderItems(items: DropdownButtonItem[]): React.ReactNode {\n return items.map((item) => {\n if (item.type === \"label\") {\n return <DropdownLabel key={item.key}>{item.label}</DropdownLabel>;\n }\n if (item.type === \"separator\") {\n return <DropdownSeparator key={item.key} />;\n }\n if (item.type === \"submenu\") {\n return (\n <DropdownSub key={item.key}>\n <DropdownSubTrigger\n disabled={item.disabled}\n startIcon={item.icon}\n endIcon={item.endIcon}\n >\n {item.label}\n </DropdownSubTrigger>\n <DropdownSubContent>{renderItems(item.items)}</DropdownSubContent>\n </DropdownSub>\n );\n }\n const it = item as Extract<DropdownButtonItem, { type?: \"item\" }>;\n return (\n <DropdownItem\n key={it.key}\n disabled={it.disabled}\n onSelect={() => {\n it.onSelect?.();\n }}\n startIcon={it.icon}\n endIcon={it.endIcon}\n shortcut={it.shortcut}\n >\n {it.label}\n </DropdownItem>\n );\n });\n}\n\nconst DropdownButton: React.FC<DropdownButtonProps> = ({\n trigger,\n items,\n align = \"center\",\n side = \"bottom\",\n sideOffset = 4,\n disabled = false,\n contentClassName,\n}) => {\n const triggerVariant = mapVariant(trigger.variant);\n const showChevron = trigger.showChevron !== false;\n const iconOnly = trigger.iconOnly === true;\n const triggerContent = iconOnly ? (\n <Button\n variant={ButtonVariant.Ghost}\n size={ButtonSize.Sm}\n aspectRatio={ButtonAspectRatio.Square}\n aria-label={trigger.ariaLabel ?? \"Actions\"}\n >\n <Icon\n name={IconName.EllipsisVertical}\n size=\"sm\"\n color=\"currentColor\"\n aria-hidden\n />\n </Button>\n ) : trigger.icon != null ? (\n <>\n {trigger.icon}\n {trigger.label != null ? trigger.label : null}\n </>\n ) : (\n trigger.label\n );\n\n return (\n <Dropdown>\n <DropdownTrigger\n variant={triggerVariant}\n showChevron={!iconOnly && showChevron}\n disabled={disabled}\n className={trigger.className}\n asChild={iconOnly}\n >\n {triggerContent}\n </DropdownTrigger>\n <DropdownContent\n align={align}\n side={side}\n sideOffset={sideOffset}\n className={contentClassName}\n >\n {renderItems(items)}\n </DropdownContent>\n </Dropdown>\n );\n};\n\nDropdownButton.displayName = \"DropdownButton\";\n\nexport { DropdownButton };\n"],"mappings":"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","names":["React","import_lucide_react","AlertCircleIcon","DropdownTriggerVariant","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","import_jsx_runtime"]}
1
+ {"version":3,"sources":["../src/components/dropdown/index.ts","../src/components/dropdown/dropdown.tsx","../src/utils/cn.ts","../src/icon/Icon.tsx","../src/icon/icon-registry.tsx","../src/icon/icon-sizes.ts","../src/constants/enum.ts","../src/components/button/Button.tsx","../src/components/button/button.variants.ts","../src/components/dropdown/DropdownButton.tsx"],"sourcesContent":["export {\n Dropdown,\n DropdownTrigger,\n DropdownContent,\n DropdownItem,\n DropdownSeparator,\n DropdownLabel,\n DropdownCheckboxItem,\n DropdownRadioGroup,\n DropdownRadioItem,\n DropdownSub,\n DropdownSubTrigger,\n DropdownSubContent,\n} from \"./dropdown\";\nexport type { DropdownTriggerProps } from \"./dropdown\";\nexport { DropdownButton } from \"./DropdownButton\";\nexport { DropdownTriggerVariant } from \"../../constants/enum\";\nexport type {\n DropdownButtonProps,\n DropdownButtonTrigger,\n DropdownButtonItem,\n DropdownButtonVariant,\n DropdownButtonAlign,\n DropdownButtonSide,\n} from \"./dropdown.types\";\n","import * as React from \"react\";\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\nimport { Check, ChevronRight, Circle } from \"lucide-react\";\nimport { cn } from \"../../utils/cn\";\nimport { Icon, IconName } from \"../../icon\";\nimport { DropdownTriggerVariant } from \"../../constants/enum\";\n\nconst Dropdown = DropdownMenuPrimitive.Root;\n\nexport interface DropdownTriggerProps extends React.ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.Trigger\n> {\n variant?: DropdownTriggerVariant;\n\n showChevron?: boolean;\n\n startIcon?: React.ReactNode;\n\n endIcon?: React.ReactNode;\n}\n\nconst DropdownTrigger = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Trigger>,\n DropdownTriggerProps\n>(\n (\n {\n asChild = false,\n disabled,\n className,\n variant = DropdownTriggerVariant.Default,\n showChevron = true,\n startIcon,\n endIcon,\n children,\n ...props\n },\n ref\n ) => {\n const isGhost = variant === DropdownTriggerVariant.Ghost;\n const triggerContent = asChild ? (\n children\n ) : (\n <>\n {startIcon ? (\n <span className=\"kz-dropdown-trigger-icon-start\">{startIcon}</span>\n ) : null}\n {children}\n {endIcon ? (\n <span className=\"kz-dropdown-trigger-icon-end\">{endIcon}</span>\n ) : null}\n {showChevron ? (\n <Icon\n name={IconName.ChevronDown}\n className=\"kz-dropdown-trigger-chevron\"\n size=\"sm\"\n aria-hidden\n />\n ) : null}\n </>\n );\n\n return (\n <DropdownMenuPrimitive.Trigger\n ref={ref}\n asChild={asChild}\n disabled={disabled}\n className={cn(\n \"kz-dropdown-trigger\",\n isGhost && \"kz-dropdown-trigger-ghost\",\n className\n )}\n {...props}\n >\n {triggerContent}\n </DropdownMenuPrimitive.Trigger>\n );\n }\n);\nDropdownTrigger.displayName = DropdownMenuPrimitive.Trigger.displayName;\n\ninterface DropdownContentProps extends React.ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.Content\n> {\n className?: string;\n align?: \"start\" | \"center\" | \"end\";\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n sideOffset?: number;\n alignOffset?: number;\n avoidCollisions?: boolean;\n}\n\nconst DropdownContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Content>,\n DropdownContentProps\n>(\n (\n {\n className,\n align = \"center\",\n side = \"bottom\",\n sideOffset = 4,\n alignOffset = 0,\n avoidCollisions = true,\n ...props\n },\n ref\n ) => (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n ref={ref}\n align={align}\n side={side}\n sideOffset={sideOffset}\n alignOffset={alignOffset}\n avoidCollisions={avoidCollisions}\n className={cn(\"kz-dropdown-content\", className)}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n )\n);\nDropdownContent.displayName = DropdownMenuPrimitive.Content.displayName;\n\ninterface DropdownItemProps extends React.ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.Item\n> {\n onSelect?: (event: Event) => void;\n disabled?: boolean;\n destructive?: boolean;\n inset?: boolean;\n startIcon?: React.ReactNode;\n endIcon?: React.ReactNode;\n shortcut?: string;\n className?: string;\n children: React.ReactNode;\n}\n\nconst DropdownItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Item>,\n DropdownItemProps\n>(\n (\n {\n className,\n onSelect,\n disabled,\n destructive,\n inset,\n startIcon,\n endIcon,\n shortcut,\n children,\n ...props\n },\n ref\n ) => (\n <DropdownMenuPrimitive.Item\n ref={ref}\n onSelect={onSelect}\n disabled={disabled}\n className={cn(\n \"kz-dropdown-item\",\n inset && \"kz-dropdown-item-inset\",\n destructive && \"kz-dropdown-item-destructive\",\n className\n )}\n {...props}\n >\n {startIcon ? (\n <span className=\"kz-dropdown-item-icon-start\">{startIcon}</span>\n ) : null}\n <span className=\"kz-dropdown-item-text\">{children}</span>\n {shortcut ? (\n <span className=\"kz-dropdown-item-shortcut\">{shortcut}</span>\n ) : null}\n {endIcon ? (\n <span className=\"kz-dropdown-item-icon-end\">{endIcon}</span>\n ) : null}\n </DropdownMenuPrimitive.Item>\n )\n);\nDropdownItem.displayName = DropdownMenuPrimitive.Item.displayName;\n\nconst DropdownSeparator = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator> & {\n className?: string;\n }\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.Separator\n ref={ref}\n className={cn(\"kz-dropdown-separator\", className)}\n {...props}\n />\n));\nDropdownSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;\n\ninterface DropdownLabelProps extends React.ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.Label\n> {\n inset?: boolean;\n className?: string;\n}\n\nconst DropdownLabel = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Label>,\n DropdownLabelProps\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Label\n ref={ref}\n className={cn(\n \"kz-dropdown-label\",\n inset && \"kz-dropdown-label-inset\",\n className\n )}\n {...props}\n />\n));\nDropdownLabel.displayName = DropdownMenuPrimitive.Label.displayName;\n\ninterface DropdownCheckboxItemProps extends React.ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.CheckboxItem\n> {\n checked?: boolean | \"indeterminate\";\n onCheckedChange?: (checked: boolean) => void;\n disabled?: boolean;\n className?: string;\n children: React.ReactNode;\n}\n\nconst DropdownCheckboxItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,\n DropdownCheckboxItemProps\n>(\n (\n { className, checked, onCheckedChange, disabled, children, ...props },\n ref\n ) => (\n <DropdownMenuPrimitive.CheckboxItem\n ref={ref}\n checked={checked}\n onCheckedChange={onCheckedChange}\n disabled={disabled}\n className={cn(\"kz-dropdown-checkbox-item\", className)}\n {...props}\n >\n <DropdownMenuPrimitive.ItemIndicator className=\"kz-dropdown-item-indicator\">\n {checked === \"indeterminate\" ? (\n <span className=\"kz-dropdown-item-indicator-minus\">−</span>\n ) : (\n <Check className=\"kz-dropdown-item-indicator-check\" />\n )}\n </DropdownMenuPrimitive.ItemIndicator>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n )\n);\nDropdownCheckboxItem.displayName =\n DropdownMenuPrimitive.CheckboxItem.displayName;\n\nconst DropdownRadioGroup = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.RadioGroup>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioGroup>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.RadioGroup\n ref={ref}\n className={cn(\"kz-dropdown-radio-group\", className)}\n {...props}\n />\n));\nDropdownRadioGroup.displayName = DropdownMenuPrimitive.RadioGroup.displayName;\n\ninterface DropdownRadioItemProps extends React.ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.RadioItem\n> {\n value: string;\n disabled?: boolean;\n className?: string;\n children: React.ReactNode;\n}\n\nconst DropdownRadioItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,\n DropdownRadioItemProps\n>(({ className, value, disabled, children, ...props }, ref) => (\n <DropdownMenuPrimitive.RadioItem\n ref={ref}\n value={value}\n disabled={disabled}\n className={cn(\"kz-dropdown-radio-item\", className)}\n {...props}\n >\n <DropdownMenuPrimitive.ItemIndicator className=\"kz-dropdown-item-indicator\">\n <Circle className=\"kz-dropdown-item-indicator-dot\" />\n </DropdownMenuPrimitive.ItemIndicator>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n));\nDropdownRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;\n\nconst DropdownSub = DropdownMenuPrimitive.Sub;\n\ninterface DropdownSubTriggerProps extends React.ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.SubTrigger\n> {\n inset?: boolean;\n disabled?: boolean;\n startIcon?: React.ReactNode;\n endIcon?: React.ReactNode;\n className?: string;\n children: React.ReactNode;\n}\n\nconst DropdownSubTrigger = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,\n DropdownSubTriggerProps\n>(\n (\n { className, inset, disabled, startIcon, endIcon, children, ...props },\n ref\n ) => (\n <DropdownMenuPrimitive.SubTrigger\n ref={ref}\n disabled={disabled}\n className={cn(\n \"kz-dropdown-sub-trigger\",\n inset && \"kz-dropdown-sub-trigger-inset\",\n className\n )}\n {...props}\n >\n {startIcon ? (\n <span className=\"kz-dropdown-item-icon-start\">{startIcon}</span>\n ) : null}\n <span className=\"kz-dropdown-item-text\">{children}</span>\n {endIcon ?? (\n <ChevronRight className=\"kz-dropdown-sub-trigger-chevron\" aria-hidden />\n )}\n </DropdownMenuPrimitive.SubTrigger>\n )\n);\nDropdownSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;\n\ninterface DropdownSubContentProps extends React.ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.SubContent\n> {\n className?: string;\n sideOffset?: number;\n alignOffset?: number;\n children: React.ReactNode;\n}\n\nconst DropdownSubContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,\n DropdownSubContentProps\n>(({ className, sideOffset = 8, alignOffset, children, ...props }, ref) => (\n <DropdownMenuPrimitive.SubContent\n ref={ref}\n sideOffset={sideOffset}\n alignOffset={alignOffset}\n className={cn(\"kz-dropdown-sub-content\", className)}\n {...props}\n >\n {children}\n </DropdownMenuPrimitive.SubContent>\n));\nDropdownSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;\n\nexport {\n Dropdown,\n DropdownTrigger,\n DropdownContent,\n DropdownItem,\n DropdownSeparator,\n DropdownLabel,\n DropdownCheckboxItem,\n DropdownRadioGroup,\n DropdownRadioItem,\n DropdownSub,\n DropdownSubTrigger,\n DropdownSubContent,\n};\n","import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import * as React from \"react\";\nimport { iconRegistry, IconName } from \"./icon-registry\";\nimport { iconSize, type IconSizeKey } from \"./icon-sizes\";\nimport { cn } from \"../utils/cn\";\n\nexport interface IconProps extends Omit<\n React.SVGAttributes<SVGSVGElement>,\n \"color\"\n> {\n name: IconName;\n size?: IconSizeKey | number;\n color?: string;\n className?: string;\n}\n\nconst Icon = React.forwardRef<SVGSVGElement, IconProps>(\n ({ name, size = \"md\", color, className, ...props }, ref) => {\n const Component = iconRegistry[name];\n if (!Component) return null;\n const sizePx = typeof size === \"number\" ? size : iconSize[size];\n const resolvedColor = color ?? \"var(--kz-color-icon-default, currentColor)\";\n return (\n <Component\n ref={ref}\n size={sizePx}\n color={resolvedColor}\n className={cn(\"shrink-0\", className)}\n {...props}\n />\n );\n }\n);\n\nIcon.displayName = \"Icon\";\n\nexport { Icon, iconRegistry, iconSize, IconName };\nexport type { IconSizeKey };\n","import type { LucideIcon } from \"lucide-react\";\nimport {\n Search,\n CircleAlert,\n CheckCircle,\n TriangleAlert,\n Loader2,\n ChevronDown,\n ChevronLeft,\n ChevronRight,\n BarChart2,\n Shield,\n ArrowLeft,\n ArrowUp,\n ArrowDown,\n ArrowUpDown,\n EllipsisVertical,\n Sun,\n Moon,\n Settings,\n LogOut,\n User,\n FileText,\n LockOpen,\n Calendar,\n ChartArea,\n ChartBar,\n ChartBarBig,\n ChartBarDecreasing,\n ChartBarIncreasing,\n ChartBarStacked,\n ChartCandlestick,\n ChartColumn,\n ChartColumnBig,\n ChartColumnDecreasing,\n ChartColumnIncreasing,\n ChartColumnStacked,\n ChartGantt,\n ChartLine,\n ChartNetwork,\n ChartNoAxesColumn,\n ChartNoAxesColumnDecreasing,\n ChartNoAxesColumnIncreasing,\n ChartNoAxesCombined,\n ChartNoAxesGantt,\n ChartPie,\n ChartScatter,\n ChartSpline,\n FolderKanban,\n Kanban,\n SquareChartGantt,\n SquareDashedKanban,\n SquareKanban,\n TrendingDown,\n TrendingUp,\n TrendingUpDown,\n Atom,\n GitBranch,\n Clipboard,\n Palette,\n Gauge,\n Filter,\n Grid3x3,\n RadioTower,\n BadgeCheck,\n Wallet,\n DollarSign,\n Plus,\n Building2,\n X,\n FilePlus,\n UserPlus2,\n UserRoundPlus,\n List,\n CircleAlert as AlertCircleIcon,\n Layers,\n Badge,\n MapPin,\n Puzzle,\n Globe,\n ShoppingBag,\n QrCode,\n Brush,\n FileSpreadsheet,\n Tag,\n Scan,\n Clock3,\n UserPlus,\n Users,\n Files,\n Group,\n CheckSquare,\n ClipboardList,\n ListTodo,\n BarChart3,\n FileBarChart,\n FileSearch,\n Lock,\n Settings2,\n LayoutGrid,\n Terminal,\n Pencil,\n Trash2,\n Eye,\n EyeOff,\n Pin,\n PinOff,\n Save,\n RotateCcw,\n} from \"lucide-react\";\n\n/** Use IconName.* so users discover available icons. Values match registry keys. */\nexport enum IconName {\n Search = \"search\",\n CircleAlert = \"circle-alert\",\n CheckCircle = \"check-circle\",\n TriangleAlert = \"triangle-alert\",\n Loader2 = \"loader-2\",\n ChevronDown = \"chevron-down\",\n ChevronLeft = \"chevron-left\",\n ChevronRight = \"chevron-right\",\n BarChart2 = \"bar-chart-2\",\n Shield = \"shield\",\n ArrowLeft = \"arrow-left\",\n ArrowUp = \"arrow-up\",\n ArrowDown = \"arrow-down\",\n ArrowUpDown = \"arrow-up-down\",\n EllipsisVertical = \"ellipsis-vertical\",\n Sun = \"sun\",\n Moon = \"moon\",\n LogOut = \"log-out\",\n Settings = \"settings\",\n User = \"user\",\n FileText = \"file-text\",\n LockOpen = \"lock-open\",\n Calendar = \"calendar\",\n ChartArea = \"chart-area\",\n ChartBar = \"chart-bar\",\n ChartBarBig = \"chart-bar-big\",\n ChartBarDecreasing = \"chart-bar-decreasing\",\n ChartBarIncreasing = \"chart-bar-increasing\",\n ChartBarStacked = \"chart-bar-stacked\",\n ChartCandlestick = \"chart-candlestick\",\n ChartColumn = \"chart-column\",\n ChartColumnBig = \"chart-column-big\",\n ChartColumnDecreasing = \"chart-column-decreasing\",\n ChartColumnIncreasing = \"chart-column-increasing\",\n ChartColumnStacked = \"chart-column-stacked\",\n ChartGantt = \"chart-gantt\",\n ChartLine = \"chart-line\",\n ChartNetwork = \"chart-network\",\n ChartNoAxesColumn = \"chart-no-axes-column\",\n ChartNoAxesColumnDecreasing = \"chart-no-axes-column-decreasing\",\n ChartNoAxesColumnIncreasing = \"chart-no-axes-column-increasing\",\n ChartNoAxesCombined = \"chart-no-axes-combined\",\n ChartNoAxesGantt = \"chart-no-axes-gantt\",\n ChartPie = \"chart-pie\",\n ChartScatter = \"chart-scatter\",\n ChartSpline = \"chart-spline\",\n FolderKanban = \"folder-kanban\",\n Kanban = \"kanban\",\n SquareChartGantt = \"square-chart-gantt\",\n SquareDashedKanban = \"square-dashed-kanban\",\n SquareKanban = \"square-kanban\",\n TrendingDown = \"trending-down\",\n TrendingUp = \"trending-up\",\n TrendingUpDown = \"trending-up-down\",\n Atom = \"atom\",\n GitBranch = \"git-branch\",\n Clipboard = \"clipboard\",\n Palette = \"palette\",\n Gauge = \"gauge\",\n Filter = \"filter\",\n Grid3x3 = \"grid-3x3\",\n RadioTower = \"radio-tower\",\n BadgeCheck = \"badge-check\",\n Wallet = \"wallet\",\n DollarSign = \"dollar-sign\",\n Plus = \"plus\",\n Building2 = \"building-2\",\n X = \"x\",\n FilePlus = \"file-plus\",\n UserPlus2 = \"user-plus-2\",\n UserRoundPlus = \"user-round-plus\",\n List = \"list\",\n AlertCircle = \"alert-circle\",\n Layers = \"layers\",\n Badge = \"badge\",\n MapPin = \"map-pin\",\n Puzzle = \"puzzle\",\n Globe = \"globe\",\n ShoppingBag = \"shopping-bag\",\n QrCode = \"qr-code\",\n Brush = \"brush\",\n FileSpreadsheet = \"file-spreadsheet\",\n Tag = \"tag\",\n Scan = \"scan\",\n Clock3 = \"clock-3\",\n UserPlus = \"user-plus\",\n Users = \"users\",\n Files = \"files\",\n Group = \"group\",\n CheckSquare = \"check-square\",\n ClipboardList = \"clipboard-list\",\n ListTodo = \"list-todo\",\n BarChart3 = \"bar-chart-3\",\n FileBarChart = \"file-bar-chart\",\n FileSearch = \"file-search\",\n Lock = \"lock\",\n Settings2 = \"settings-2\",\n LayoutGrid = \"layout-grid\",\n Terminal = \"terminal\",\n Pencil = \"pencil\",\n Trash2 = \"trash-2\",\n Eye = \"eye\",\n EyeOff = \"eye-off\",\n Pin = \"pin\",\n PinOff = \"pin-off\",\n Save = \"save\",\n RotateCcw = \"rotate-ccw\",\n}\n\nexport const iconRegistry: Record<IconName, LucideIcon> = {\n [IconName.Search]: Search,\n [IconName.CircleAlert]: CircleAlert,\n [IconName.CheckCircle]: CheckCircle,\n [IconName.TriangleAlert]: TriangleAlert,\n [IconName.Loader2]: Loader2,\n [IconName.ChevronDown]: ChevronDown,\n [IconName.ChevronLeft]: ChevronLeft,\n [IconName.ChevronRight]: ChevronRight,\n [IconName.BarChart2]: BarChart2,\n [IconName.Shield]: Shield,\n [IconName.ArrowLeft]: ArrowLeft,\n [IconName.ArrowUp]: ArrowUp,\n [IconName.ArrowDown]: ArrowDown,\n [IconName.ArrowUpDown]: ArrowUpDown,\n [IconName.EllipsisVertical]: EllipsisVertical,\n [IconName.Sun]: Sun,\n [IconName.Moon]: Moon,\n [IconName.LogOut]: LogOut,\n [IconName.Settings]: Settings,\n [IconName.User]: User,\n [IconName.FileText]: FileText,\n [IconName.LockOpen]: LockOpen,\n [IconName.Calendar]: Calendar,\n [IconName.ChartArea]: ChartArea,\n [IconName.ChartBar]: ChartBar,\n [IconName.ChartBarBig]: ChartBarBig,\n [IconName.ChartBarDecreasing]: ChartBarDecreasing,\n [IconName.ChartBarIncreasing]: ChartBarIncreasing,\n [IconName.ChartBarStacked]: ChartBarStacked,\n [IconName.ChartCandlestick]: ChartCandlestick,\n [IconName.ChartColumn]: ChartColumn,\n [IconName.ChartColumnBig]: ChartColumnBig,\n [IconName.ChartColumnDecreasing]: ChartColumnDecreasing,\n [IconName.ChartColumnIncreasing]: ChartColumnIncreasing,\n [IconName.ChartColumnStacked]: ChartColumnStacked,\n [IconName.ChartGantt]: ChartGantt,\n [IconName.ChartLine]: ChartLine,\n [IconName.ChartNetwork]: ChartNetwork,\n [IconName.ChartNoAxesColumn]: ChartNoAxesColumn,\n [IconName.ChartNoAxesColumnDecreasing]: ChartNoAxesColumnDecreasing,\n [IconName.ChartNoAxesColumnIncreasing]: ChartNoAxesColumnIncreasing,\n [IconName.ChartNoAxesCombined]: ChartNoAxesCombined,\n [IconName.ChartNoAxesGantt]: ChartNoAxesGantt,\n [IconName.ChartPie]: ChartPie,\n [IconName.ChartScatter]: ChartScatter,\n [IconName.ChartSpline]: ChartSpline,\n [IconName.FolderKanban]: FolderKanban,\n [IconName.Kanban]: Kanban,\n [IconName.SquareChartGantt]: SquareChartGantt,\n [IconName.SquareDashedKanban]: SquareDashedKanban,\n [IconName.SquareKanban]: SquareKanban,\n [IconName.TrendingDown]: TrendingDown,\n [IconName.TrendingUp]: TrendingUp,\n [IconName.TrendingUpDown]: TrendingUpDown,\n [IconName.Atom]: Atom,\n [IconName.GitBranch]: GitBranch,\n [IconName.Clipboard]: Clipboard,\n [IconName.Palette]: Palette,\n [IconName.Gauge]: Gauge,\n [IconName.Filter]: Filter,\n [IconName.Grid3x3]: Grid3x3,\n [IconName.RadioTower]: RadioTower,\n [IconName.BadgeCheck]: BadgeCheck,\n [IconName.Wallet]: Wallet,\n [IconName.DollarSign]: DollarSign,\n [IconName.Plus]: Plus,\n [IconName.Building2]: Building2,\n [IconName.X]: X,\n [IconName.FilePlus]: FilePlus,\n [IconName.UserPlus2]: UserPlus2,\n [IconName.UserRoundPlus]: UserRoundPlus,\n [IconName.List]: List,\n [IconName.AlertCircle]: AlertCircleIcon,\n [IconName.Layers]: Layers,\n [IconName.Badge]: Badge,\n [IconName.MapPin]: MapPin,\n [IconName.Puzzle]: Puzzle,\n [IconName.Globe]: Globe,\n [IconName.ShoppingBag]: ShoppingBag,\n [IconName.QrCode]: QrCode,\n [IconName.Brush]: Brush,\n [IconName.FileSpreadsheet]: FileSpreadsheet,\n [IconName.Tag]: Tag,\n [IconName.Scan]: Scan,\n [IconName.Clock3]: Clock3,\n [IconName.UserPlus]: UserPlus,\n [IconName.Users]: Users,\n [IconName.Files]: Files,\n [IconName.Group]: Group,\n [IconName.CheckSquare]: CheckSquare,\n [IconName.ClipboardList]: ClipboardList,\n [IconName.ListTodo]: ListTodo,\n [IconName.BarChart3]: BarChart3,\n [IconName.FileBarChart]: FileBarChart,\n [IconName.FileSearch]: FileSearch,\n [IconName.Lock]: Lock,\n [IconName.Settings2]: Settings2,\n [IconName.LayoutGrid]: LayoutGrid,\n [IconName.Terminal]: Terminal,\n [IconName.Pencil]: Pencil,\n [IconName.Trash2]: Trash2,\n [IconName.Eye]: Eye,\n [IconName.EyeOff]: EyeOff,\n [IconName.Pin]: Pin,\n [IconName.PinOff]: PinOff,\n [IconName.Save]: Save,\n [IconName.RotateCcw]: RotateCcw,\n};\n","/** Preset icon sizes (px). Use with Icon size prop. */\nexport const iconSize = {\n xs: 12,\n sm: 16,\n md: 24,\n lg: 32,\n xl: 40,\n} as const;\n\nexport type IconSizeKey = keyof typeof iconSize;\n","export enum Theme {\n Light = \"light\",\n Dark = \"dark\",\n}\n\nexport enum ThemeStyle {\n Enterprise = \"enterprise\",\n Neumorphic = \"neumorphic\",\n Standard = \"standard\",\n Glassmorphic = \"glassmorphic\",\n}\n\nexport enum KezelVariant {\n Standard = \"standard\",\n Neumorphic = \"neumorphic\",\n}\n\nexport enum KezelMode {\n Light,\n Dark,\n}\n\nexport enum ButtonVariant {\n Primary = \"primary\",\n Ghost = \"ghost\",\n Container = \"container\",\n}\n\nexport enum ButtonStatus {\n Default = \"default\",\n Brand = \"brand\",\n Success = \"success\",\n Warning = \"warning\",\n Error = \"error\",\n Info = \"info\",\n}\n\nexport enum ButtonSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum ButtonType {\n Button = \"button\",\n Submit = \"submit\",\n Reset = \"reset\",\n}\n\nexport enum ButtonAspectRatio {\n Auto = \"auto\",\n Square = \"square\",\n}\n\nexport enum DropdownTriggerVariant {\n Default = \"default\",\n Ghost = \"ghost\",\n}\n\nexport enum TypographyVariant {\n H1 = \"h1\",\n H2 = \"h2\",\n H3 = \"h3\",\n H4 = \"h4\",\n H5 = \"h5\",\n Body = \"body\",\n Small = \"small\",\n Caption = \"caption\",\n Label = \"label\",\n Link = \"link\",\n Error = \"error\",\n Success = \"success\",\n Warning = \"warning\",\n}\n\nexport enum TypographyTone {\n Primary = \"primary\",\n Secondary = \"secondary\",\n Muted = \"muted\",\n Disabled = \"disabled\",\n Inverse = \"inverse\",\n Link = \"link\",\n}\n\nexport enum TypographyAlign {\n Left = \"left\",\n Center = \"center\",\n Right = \"right\",\n}\n\nexport enum TypographyWeight {\n Regular = \"regular\",\n Medium = \"medium\",\n Semibold = \"semibold\",\n Bold = \"bold\",\n}\n\nexport enum TokenCategory {\n Color = \"color\",\n Shadow = \"shadow\",\n Length = \"length\",\n Number = \"number\",\n LineHeight = \"lineHeight\",\n FontFamily = \"fontFamily\",\n FontWeight = \"fontWeight\",\n Duration = \"duration\",\n Easing = \"easing\",\n}\n\nexport enum OverrideMode {\n Safe = \"safe\",\n Strict = \"strict\",\n}\n\nexport enum TextInputVariant {\n Default = \"default\",\n Container = \"container\",\n Ghost = \"ghost\",\n}\n\nexport enum TextInputSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum TextInputState {\n Default = \"default\",\n Error = \"error\",\n Success = \"success\",\n Warning = \"warning\",\n}\n\nexport enum TextInputType {\n Text = \"text\",\n Email = \"email\",\n Password = \"password\",\n Number = \"number\",\n Search = \"search\",\n Tel = \"tel\",\n Url = \"url\",\n}\n\nexport enum TooltipSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum TooltipPosition {\n Top = \"top\",\n Right = \"right\",\n Bottom = \"bottom\",\n Left = \"left\",\n}\n\nexport enum TooltipAlign {\n Start = \"start\",\n Center = \"center\",\n End = \"end\",\n}\n\nexport enum TooltipColor {\n Default = \"default\",\n Inverse = \"inverse\",\n Success = \"success\",\n Warning = \"warning\",\n Error = \"error\",\n}\n\nexport enum ToggleButtonVariant {\n Default = \"default\",\n Primary = \"primary\",\n Container = \"container\",\n}\n\nexport enum ToggleButtonSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum CheckboxSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum CheckboxVariant {\n Default = \"default\",\n Container = \"container\",\n}\n\nexport enum RadioSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum AvatarSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n Xl = \"xl\",\n}\n\nexport enum AvatarStatus {\n Online = \"online\",\n Busy = \"busy\",\n Away = \"away\",\n Offline = \"offline\",\n}\n\nexport enum ToastVariant {\n Success = \"success\",\n Error = \"error\",\n Warning = \"warning\",\n Info = \"info\",\n}\n\nexport enum CardShadow {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum ToastPosition {\n TopRight = \"top-right\",\n TopLeft = \"top-left\",\n BottomRight = \"bottom-right\",\n BottomLeft = \"bottom-left\",\n}\n\nexport enum QrPattern {\n Square = \"square\",\n Circle = \"circle\",\n Diamond = \"diamond\",\n}\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport {\n ButtonVariant,\n ButtonSize,\n ButtonStatus,\n ButtonType,\n ButtonAspectRatio,\n} from \"../../constants/enum\";\nimport { buttonVariants, type ButtonVariants } from \"./button.variants\";\nimport { Loader2 } from \"lucide-react\";\nimport { iconSize } from \"../../icon/icon-sizes\";\nimport { cn } from \"../../utils/cn\";\nimport { Icon, type IconProps } from \"../../icon/Icon\";\n\nexport interface ButtonProps extends Omit<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n \"children\" | \"onClick\"\n> {\n variant: ButtonVariant;\n size: ButtonSize;\n status?: ButtonStatus;\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n asChild?: boolean;\n children: React.ReactNode;\n type?: ButtonType;\n loading?: boolean;\n aspectRatio?: ButtonAspectRatio;\n leftIcon?: IconProps;\n rightIcon?: IconProps;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n className,\n variant,\n size,\n status,\n onClick,\n asChild = false,\n children,\n type = ButtonType.Button,\n loading = false,\n aspectRatio = ButtonAspectRatio.Auto,\n disabled,\n leftIcon,\n rightIcon,\n ...props\n },\n ref\n ) => {\n const Comp = asChild ? Slot : \"button\";\n const isDisabled = disabled || loading;\n\n const buttonClassName = cn(\n buttonVariants({ variant, size, status }),\n loading && \"opacity-[var(--kz-component-button-loading-opacity,0.8)]\",\n aspectRatio === ButtonAspectRatio.Square && \"kz-button--aspect-1-1\",\n className\n );\n\n if (asChild) {\n return (\n <Comp\n ref={ref}\n type={asChild ? undefined : type}\n className={buttonClassName}\n onClick={onClick}\n disabled={isDisabled}\n aria-busy={loading}\n {...props}\n >\n {children}\n </Comp>\n );\n }\n\n return (\n <Comp\n ref={ref}\n type={type}\n className={buttonClassName}\n onClick={onClick}\n disabled={isDisabled}\n aria-busy={loading}\n {...props}\n >\n {loading && (\n <Loader2\n className=\"kz-button-spinner\"\n size={iconSize.md}\n color=\"currentColor\"\n />\n )}\n {leftIcon && <Icon {...leftIcon} />}\n {children}\n {rightIcon && <Icon {...rightIcon} />}\n </Comp>\n );\n }\n);\n\nButton.displayName = \"Button\";\n\nexport { Button, buttonVariants };\nexport type { ButtonVariants };\n","import { cva, type VariantProps } from \"class-variance-authority\";\nimport { ButtonVariant, ButtonSize } from \"../../constants/enum\";\n\nconst base = [\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium\",\n \"transition-all duration-150 ease-out\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-[var(--kz-color-border-focus)]\",\n \"disabled:cursor-not-allowed disabled:opacity-[var(--kz-component-button-disabled-opacity,0.5)]\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0\",\n].join(\" \");\n\nexport const buttonVariants = cva(base, {\n variants: {\n variant: {\n primary: [\n \"bg-[var(--kz-component-button-secondary-bg)]\",\n \"text-[var(--kz-component-button-secondary-text)]\",\n \"rounded-[var(--kz-component-button-radius,8px)]\",\n \"[border:var(--kz-component-button-secondary-border,none)]\",\n \"[box-shadow:var(--kz-component-button-secondary-shadow,none)]\",\n \"hover:bg-[var(--kz-component-button-secondary-bg-hover)]\",\n \"hover:[box-shadow:var(--kz-component-button-secondary-shadow-hover,var(--kz-component-button-secondary-shadow,none))]\",\n \"active:bg-[var(--kz-component-button-secondary-bg-active)]\",\n ].join(\" \"),\n ghost: [\n \"bg-[var(--kz-component-button-ghost-bg)]\",\n \"text-[var(--kz-component-button-ghost-text)]\",\n \"rounded-[var(--kz-component-button-radius,8px)]\",\n \"border border-transparent\",\n \"[box-shadow:none]\",\n \"hover:bg-[var(--kz-component-button-ghost-bg-hover,transparent)]\",\n \"active:opacity-80\",\n ].join(\" \"),\n container: [\n \"bg-[var(--kz-component-button-container-bg)]\",\n \"text-[var(--kz-component-button-container-text)]\",\n \"border border-[var(--kz-component-button-container-border)]\",\n \"rounded-[var(--kz-component-button-radius,8px)]\",\n \"[box-shadow:var(--kz-component-button-container-shadow)]\",\n \"hover:bg-[var(--kz-component-button-ghost-bg-hover,transparent)]\",\n \"hover:[box-shadow:var(--kz-component-button-container-shadow-hover)]\",\n ].join(\" \"),\n },\n status: {\n default: \"\",\n brand: [\n \"bg-[var(--kz-component-button-brand-bg)]\",\n \"text-[var(--kz-component-button-brand-text)]\",\n \"[box-shadow:var(--kz-component-button-brand-shadow,none)]\",\n \"hover:bg-[var(--kz-component-button-brand-bg-hover,var(--kz-component-button-brand-bg))]\",\n \"hover:[box-shadow:var(--kz-component-button-brand-shadow-hover,var(--kz-component-button-brand-shadow,none))]\",\n \"active:!bg-[var(--kz-component-button-brand-bg-hover,var(--kz-component-button-brand-bg))]\",\n ].join(\" \"),\n success: [\n \"bg-[var(--kz-component-button-success-bg)]\",\n \"text-[var(--kz-component-button-success-text)]\",\n \"[box-shadow:var(--kz-component-button-success-shadow,none)]\",\n \"hover:bg-[var(--kz-component-button-success-bg-hover,var(--kz-component-button-success-bg))]\",\n \"hover:[box-shadow:var(--kz-component-button-success-shadow-hover,var(--kz-component-button-success-shadow,none))]\",\n \"active:!bg-[var(--kz-component-button-success-bg-hover,var(--kz-component-button-success-bg))]\",\n ].join(\" \"),\n warning: [\n \"bg-[var(--kz-component-button-warning-bg)]\",\n \"text-[var(--kz-component-button-warning-text)]\",\n \"[box-shadow:var(--kz-component-button-warning-shadow,none)]\",\n \"hover:bg-[var(--kz-component-button-warning-bg-hover,var(--kz-component-button-warning-bg))]\",\n \"hover:[box-shadow:var(--kz-component-button-warning-shadow-hover,var(--kz-component-button-warning-shadow,none))]\",\n \"active:!bg-[var(--kz-component-button-warning-bg-hover,var(--kz-component-button-warning-bg))]\",\n ].join(\" \"),\n error: [\n \"bg-[var(--kz-component-button-error-bg)]\",\n \"text-[var(--kz-component-button-error-text)]\",\n \"[box-shadow:var(--kz-component-button-error-shadow,none)]\",\n \"hover:bg-[var(--kz-component-button-error-bg-hover,var(--kz-component-button-error-bg))]\",\n \"hover:[box-shadow:var(--kz-component-button-error-shadow-hover,var(--kz-component-button-error-shadow,none))]\",\n \"active:!bg-[var(--kz-component-button-error-bg-hover,var(--kz-component-button-error-bg))]\",\n ].join(\" \"),\n info: [\n \"bg-[var(--kz-component-button-info-bg)]\",\n \"text-[var(--kz-component-button-info-text)]\",\n \"[box-shadow:var(--kz-component-button-info-shadow,none)]\",\n \"hover:bg-[var(--kz-component-button-info-bg-hover,var(--kz-component-button-info-bg))]\",\n \"hover:[box-shadow:var(--kz-component-button-info-shadow-hover,var(--kz-component-button-info-shadow,none))]\",\n \"active:!bg-[var(--kz-component-button-info-bg-hover,var(--kz-component-button-info-bg))]\",\n ].join(\" \"),\n },\n size: {\n sm: [\n \"h-[var(--kz-component-button-height-sm,2rem)]\",\n \"px-[var(--kz-component-button-px-sm,0.75rem)]\",\n \"text-[length:var(--kz-component-button-text-sm,0.875rem)]\",\n \"[&_svg]:size-[var(--kz-component-button-icon-sm,1rem)]\",\n ].join(\" \"),\n md: [\n \"h-[var(--kz-component-button-height-md,2.5rem)]\",\n \"px-[var(--kz-component-button-px-md,1rem)]\",\n \"text-[length:var(--kz-component-button-text-md,0.875rem)]\",\n \"[&_svg]:size-[var(--kz-component-button-icon-md,1rem)]\",\n ].join(\" \"),\n lg: [\n \"h-[var(--kz-component-button-height-lg,3rem)]\",\n \"px-[var(--kz-component-button-px-lg,1.25rem)]\",\n \"text-[length:var(--kz-component-button-text-lg,1rem)]\",\n \"[&_svg]:size-[var(--kz-component-button-icon-lg,1.25rem)]\",\n ].join(\" \"),\n },\n },\n compoundVariants: [\n // Ghost + brand: brand text, transparent bg, brand-tinted hover\n {\n variant: \"ghost\",\n status: \"brand\",\n className: [\n \"!bg-transparent text-[var(--kz-color-brand-accent)]\",\n \"hover:!bg-[var(--kz-component-button-ghost-brand-bg-hover,rgba(0,150,137,0.1))]\",\n \"[box-shadow:none] hover:[box-shadow:none]\",\n ].join(\" \"),\n },\n // Ghost + status: text color = status, bg transparent, hover = light tint\n {\n variant: \"ghost\",\n status: \"success\",\n className: [\n \"!bg-transparent text-[var(--kz-color-status-success)]\",\n \"hover:!bg-[var(--kz-component-button-ghost-success-bg-hover,rgba(0,201,80,0.1))]\",\n \"[box-shadow:none] hover:[box-shadow:none]\",\n ].join(\" \"),\n },\n {\n variant: \"ghost\",\n status: \"warning\",\n className: [\n \"!bg-transparent text-[var(--kz-color-status-warning)]\",\n \"hover:!bg-[var(--kz-component-button-ghost-warning-bg-hover,rgba(245,158,11,0.1))]\",\n \"[box-shadow:none] hover:[box-shadow:none]\",\n ].join(\" \"),\n },\n {\n variant: \"ghost\",\n status: \"error\",\n className: [\n \"!bg-transparent text-[var(--kz-color-status-error)]\",\n \"hover:!bg-[var(--kz-component-button-ghost-error-bg-hover,rgba(251,44,54,0.1))]\",\n \"[box-shadow:none] hover:[box-shadow:none]\",\n ].join(\" \"),\n },\n {\n variant: \"ghost\",\n status: \"info\",\n className: [\n \"!bg-transparent text-[var(--kz-color-status-info)]\",\n \"hover:!bg-[var(--kz-component-button-ghost-info-bg-hover,rgba(37,99,235,0.1))]\",\n \"[box-shadow:none] hover:[box-shadow:none]\",\n ].join(\" \"),\n },\n // Container + brand: brand text, brand border, no shadow, brand-tinted hover\n {\n variant: \"container\",\n status: \"brand\",\n className: [\n \"!bg-transparent\",\n \"!text-[var(--kz-component-button-container-brand-text,var(--kz-color-brand-accent))]\",\n \"!border-[var(--kz-component-button-container-brand-border,var(--kz-color-brand-accent))]\",\n \"[box-shadow:none] hover:[box-shadow:none]\",\n \"hover:!bg-[var(--kz-component-button-container-brand-bg-hover,rgba(0,150,137,0.08))]\",\n ].join(\" \"),\n },\n // Container + status: keep container shape/shadow, override bg/text with status colors\n {\n variant: \"container\",\n status: \"success\",\n className: [\n \"!bg-transparent\",\n \"!text-[var(--kz-color-status-success)]\",\n \"!border-[var(--kz-color-status-success)]\",\n \"[box-shadow:none] hover:[box-shadow:none]\",\n \"hover:!bg-[var(--kz-component-button-ghost-success-bg-hover,rgba(0,201,80,0.1))]\",\n ].join(\" \"),\n },\n {\n variant: \"container\",\n status: \"warning\",\n className: [\n \"!bg-transparent\",\n \"!text-[var(--kz-color-status-warning)]\",\n \"!border-[var(--kz-color-status-warning)]\",\n \"[box-shadow:none] hover:[box-shadow:none]\",\n \"hover:!bg-[var(--kz-component-button-ghost-warning-bg-hover,rgba(245,158,11,0.1))]\",\n ].join(\" \"),\n },\n {\n variant: \"container\",\n status: \"error\",\n className: [\n \"!bg-transparent\",\n \"!text-[var(--kz-color-status-error)]\",\n \"!border-[var(--kz-color-status-error)]\",\n \"[box-shadow:none] hover:[box-shadow:none]\",\n \"hover:!bg-[var(--kz-component-button-ghost-error-bg-hover,rgba(251,44,54,0.1))]\",\n ].join(\" \"),\n },\n {\n variant: \"container\",\n status: \"info\",\n className: [\n \"!bg-transparent\",\n \"!text-[var(--kz-color-status-info)]\",\n \"!border-[var(--kz-color-status-info)]\",\n \"[box-shadow:none] hover:[box-shadow:none]\",\n \"hover:!bg-[var(--kz-component-button-ghost-info-bg-hover,rgba(37,99,235,0.1))]\",\n ].join(\" \"),\n },\n ],\n defaultVariants: {\n variant: ButtonVariant.Primary,\n size: ButtonSize.Md,\n },\n});\n\nexport type ButtonVariants = VariantProps<typeof buttonVariants>;\n","import * as React from \"react\";\nimport {\n Dropdown,\n DropdownTrigger,\n DropdownContent,\n DropdownItem,\n DropdownSeparator,\n DropdownLabel,\n DropdownSub,\n DropdownSubTrigger,\n DropdownSubContent,\n} from \"./dropdown\";\nimport { DropdownTriggerVariant } from \"../../constants/enum\";\nimport { Button } from \"../button\";\nimport {\n ButtonVariant,\n ButtonSize,\n ButtonAspectRatio,\n} from \"../../constants/enum\";\nimport { Icon, IconName } from \"../../icon\";\nimport type {\n DropdownButtonProps,\n DropdownButtonItem,\n DropdownButtonVariant,\n} from \"./dropdown.types\";\n\nfunction mapVariant(\n v: DropdownButtonVariant | undefined\n): DropdownTriggerVariant {\n return v === \"ghost\"\n ? DropdownTriggerVariant.Ghost\n : DropdownTriggerVariant.Default;\n}\n\nfunction renderItems(items: DropdownButtonItem[]): React.ReactNode {\n return items.map((item) => {\n if (item.type === \"label\") {\n return <DropdownLabel key={item.key}>{item.label}</DropdownLabel>;\n }\n if (item.type === \"separator\") {\n return <DropdownSeparator key={item.key} />;\n }\n if (item.type === \"submenu\") {\n return (\n <DropdownSub key={item.key}>\n <DropdownSubTrigger\n disabled={item.disabled}\n startIcon={item.icon}\n endIcon={item.endIcon}\n >\n {item.label}\n </DropdownSubTrigger>\n <DropdownSubContent>{renderItems(item.items)}</DropdownSubContent>\n </DropdownSub>\n );\n }\n const it = item as Extract<DropdownButtonItem, { type?: \"item\" }>;\n return (\n <DropdownItem\n key={it.key}\n disabled={it.disabled}\n onSelect={() => {\n it.onSelect?.();\n }}\n startIcon={it.icon}\n endIcon={it.endIcon}\n shortcut={it.shortcut}\n >\n {it.label}\n </DropdownItem>\n );\n });\n}\n\nconst DropdownButton: React.FC<DropdownButtonProps> = ({\n trigger,\n items,\n align = \"center\",\n side = \"bottom\",\n sideOffset = 4,\n disabled = false,\n contentClassName,\n}) => {\n const triggerVariant = mapVariant(trigger.variant);\n const showChevron = trigger.showChevron !== false;\n const iconOnly = trigger.iconOnly === true;\n const triggerContent = iconOnly ? (\n <Button\n variant={ButtonVariant.Ghost}\n size={ButtonSize.Sm}\n aspectRatio={ButtonAspectRatio.Square}\n aria-label={trigger.ariaLabel ?? \"Actions\"}\n >\n <Icon\n name={IconName.EllipsisVertical}\n size=\"sm\"\n color=\"currentColor\"\n aria-hidden\n />\n </Button>\n ) : trigger.icon != null ? (\n <>\n {trigger.icon}\n {trigger.label != null ? trigger.label : null}\n </>\n ) : (\n trigger.label\n );\n\n return (\n <Dropdown>\n <DropdownTrigger\n variant={triggerVariant}\n showChevron={!iconOnly && showChevron}\n disabled={disabled}\n className={trigger.className}\n asChild={iconOnly}\n >\n {triggerContent}\n </DropdownTrigger>\n <DropdownContent\n align={align}\n side={side}\n sideOffset={sideOffset}\n className={contentClassName}\n >\n {renderItems(items)}\n </DropdownContent>\n </Dropdown>\n );\n};\n\nDropdownButton.displayName = \"DropdownButton\";\n\nexport { DropdownButton };\n"],"mappings":"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","names":["React","import_lucide_react","AlertCircleIcon","DropdownTriggerVariant","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","import_jsx_runtime"]}
package/dist/dropdown.mjs CHANGED
@@ -117,7 +117,11 @@ import {
117
117
  Pencil,
118
118
  Trash2,
119
119
  Eye,
120
- EyeOff
120
+ EyeOff,
121
+ Pin,
122
+ PinOff,
123
+ Save,
124
+ RotateCcw
121
125
  } from "lucide-react";
122
126
  var iconRegistry = {
123
127
  ["search" /* Search */]: Search,
@@ -222,7 +226,11 @@ var iconRegistry = {
222
226
  ["pencil" /* Pencil */]: Pencil,
223
227
  ["trash-2" /* Trash2 */]: Trash2,
224
228
  ["eye" /* Eye */]: Eye,
225
- ["eye-off" /* EyeOff */]: EyeOff
229
+ ["eye-off" /* EyeOff */]: EyeOff,
230
+ ["pin" /* Pin */]: Pin,
231
+ ["pin-off" /* PinOff */]: PinOff,
232
+ ["save" /* Save */]: Save,
233
+ ["rotate-ccw" /* RotateCcw */]: RotateCcw
226
234
  };
227
235
 
228
236
  // src/icon/icon-sizes.ts
@@ -479,7 +487,7 @@ var base = [
479
487
  "inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium",
480
488
  "transition-all duration-150 ease-out",
481
489
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-[var(--kz-color-border-focus)]",
482
- "disabled:pointer-events-none disabled:opacity-[var(--kz-component-button-disabled-opacity,0.5)]",
490
+ "disabled:cursor-not-allowed disabled:opacity-[var(--kz-component-button-disabled-opacity,0.5)]",
483
491
  "[&_svg]:pointer-events-none [&_svg]:shrink-0"
484
492
  ].join(" ");
485
493
  var buttonVariants = cva(base, {