@mdigital_ui/ui 0.2.7 → 0.2.8

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 (83) hide show
  1. package/dist/accordion/index.js +2 -2
  2. package/dist/badge/index.js +2 -2
  3. package/dist/breadcrumbs/index.js +4 -4
  4. package/dist/button/index.js +3 -3
  5. package/dist/checkbox/index.js +2 -2
  6. package/dist/{chunk-OWXQ45GS.js → chunk-22MY7IWD.js} +3 -3
  7. package/dist/{chunk-OWXQ45GS.js.map → chunk-22MY7IWD.js.map} +1 -1
  8. package/dist/{chunk-AQYOVYPS.js → chunk-2REG4OUB.js} +3 -3
  9. package/dist/{chunk-AQYOVYPS.js.map → chunk-2REG4OUB.js.map} +1 -1
  10. package/dist/{chunk-IA42ELUP.js → chunk-3HBMVZF5.js} +3 -3
  11. package/dist/{chunk-IA42ELUP.js.map → chunk-3HBMVZF5.js.map} +1 -1
  12. package/dist/{chunk-GBVIACYQ.js → chunk-43RDFTC5.js} +4 -4
  13. package/dist/{chunk-GBVIACYQ.js.map → chunk-43RDFTC5.js.map} +1 -1
  14. package/dist/{chunk-Z5VJ6MJP.js → chunk-CLLNXRYZ.js} +3 -3
  15. package/dist/{chunk-Z5VJ6MJP.js.map → chunk-CLLNXRYZ.js.map} +1 -1
  16. package/dist/{chunk-VUBU7Y4F.js → chunk-CPDVBHA3.js} +3 -3
  17. package/dist/{chunk-VUBU7Y4F.js.map → chunk-CPDVBHA3.js.map} +1 -1
  18. package/dist/{chunk-J525ROGL.js → chunk-DQQLJ5C5.js} +3 -3
  19. package/dist/{chunk-J525ROGL.js.map → chunk-DQQLJ5C5.js.map} +1 -1
  20. package/dist/{chunk-6TMOKYR7.js → chunk-EGNF7BRT.js} +3 -3
  21. package/dist/{chunk-6TMOKYR7.js.map → chunk-EGNF7BRT.js.map} +1 -1
  22. package/dist/{chunk-ZC3E3PWH.js → chunk-HEV27FUK.js} +3 -3
  23. package/dist/{chunk-ZC3E3PWH.js.map → chunk-HEV27FUK.js.map} +1 -1
  24. package/dist/{chunk-XJCWPPMM.js → chunk-ILQQTKD4.js} +3 -3
  25. package/dist/{chunk-XJCWPPMM.js.map → chunk-ILQQTKD4.js.map} +1 -1
  26. package/dist/{chunk-JLS4MBHN.js → chunk-IMGVPMHJ.js} +3 -3
  27. package/dist/{chunk-JLS4MBHN.js.map → chunk-IMGVPMHJ.js.map} +1 -1
  28. package/dist/{chunk-27QEPVKU.js → chunk-ITZBSE5F.js} +3 -3
  29. package/dist/{chunk-27QEPVKU.js.map → chunk-ITZBSE5F.js.map} +1 -1
  30. package/dist/{chunk-US4ZCMNU.js → chunk-JIREY2VB.js} +3 -3
  31. package/dist/{chunk-US4ZCMNU.js.map → chunk-JIREY2VB.js.map} +1 -1
  32. package/dist/{chunk-P6A75RAH.js → chunk-JZ5F6XDO.js} +3 -3
  33. package/dist/{chunk-P6A75RAH.js.map → chunk-JZ5F6XDO.js.map} +1 -1
  34. package/dist/{chunk-WVG3QQDN.js → chunk-KPI7MN5V.js} +3 -3
  35. package/dist/{chunk-WVG3QQDN.js.map → chunk-KPI7MN5V.js.map} +1 -1
  36. package/dist/{chunk-NTPWR57C.js → chunk-LK4EPTNG.js} +9 -9
  37. package/dist/{chunk-NTPWR57C.js.map → chunk-LK4EPTNG.js.map} +1 -1
  38. package/dist/{chunk-TTEBZZ3T.js → chunk-N32VWE6V.js} +18 -20
  39. package/dist/chunk-N32VWE6V.js.map +1 -0
  40. package/dist/{chunk-WZ2KDHFP.js → chunk-N3ZVPIFC.js} +3 -3
  41. package/dist/{chunk-WZ2KDHFP.js.map → chunk-N3ZVPIFC.js.map} +1 -1
  42. package/dist/{chunk-QDHGE7IF.js → chunk-PHQOHVG3.js} +3 -3
  43. package/dist/{chunk-QDHGE7IF.js.map → chunk-PHQOHVG3.js.map} +1 -1
  44. package/dist/{chunk-CK6A2R66.js → chunk-QF3NJUUG.js} +3 -3
  45. package/dist/{chunk-CK6A2R66.js.map → chunk-QF3NJUUG.js.map} +1 -1
  46. package/dist/{chunk-CHGJX5F2.js → chunk-REKWBXAQ.js} +6 -6
  47. package/dist/{chunk-CHGJX5F2.js.map → chunk-REKWBXAQ.js.map} +1 -1
  48. package/dist/{chunk-SDNT2JGC.js → chunk-VY3X4SDU.js} +3 -3
  49. package/dist/{chunk-SDNT2JGC.js.map → chunk-VY3X4SDU.js.map} +1 -1
  50. package/dist/{chunk-INQI3UUI.js → chunk-W3ES3UPV.js} +4 -4
  51. package/dist/{chunk-INQI3UUI.js.map → chunk-W3ES3UPV.js.map} +1 -1
  52. package/dist/{chunk-DH7R6NBG.js → chunk-WTGCXWNX.js} +3 -3
  53. package/dist/{chunk-DH7R6NBG.js.map → chunk-WTGCXWNX.js.map} +1 -1
  54. package/dist/{chunk-YOG5GXIC.js → chunk-YFK2DHCY.js} +4 -4
  55. package/dist/{chunk-YOG5GXIC.js.map → chunk-YFK2DHCY.js.map} +1 -1
  56. package/dist/{chunk-4SQOFZ3N.js → chunk-YTUB2Q7P.js} +3 -3
  57. package/dist/{chunk-4SQOFZ3N.js.map → chunk-YTUB2Q7P.js.map} +1 -1
  58. package/dist/date-picker/index.js +3 -3
  59. package/dist/dropdown/index.js +3 -3
  60. package/dist/fetching-overlay/index.js +3 -3
  61. package/dist/index.d.ts +7 -7
  62. package/dist/index.js +26 -26
  63. package/dist/input/index.js +3 -3
  64. package/dist/input-password/index.js +4 -4
  65. package/dist/kbd/index.js +2 -2
  66. package/dist/multi-select/index.js +3 -3
  67. package/dist/notification/index.js +2 -2
  68. package/dist/popover/index.js +2 -2
  69. package/dist/radio/index.js +2 -2
  70. package/dist/select/index.js +4 -4
  71. package/dist/skeleton/index.js +2 -2
  72. package/dist/spinner/index.js +2 -2
  73. package/dist/styles/base.css +35 -0
  74. package/dist/styles/global.css +35 -0
  75. package/dist/switch/index.js +2 -2
  76. package/dist/table/index.js +7 -7
  77. package/dist/tabs/index.js +2 -2
  78. package/dist/tag/index.js +2 -2
  79. package/dist/tooltip/index.js +2 -2
  80. package/dist/transfer/index.js +3 -3
  81. package/dist/tree-select/index.js +3 -3
  82. package/package.json +7 -22
  83. package/dist/chunk-TTEBZZ3T.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/skeleton/index.tsx"],"names":[],"mappings":";;;;;;AAOA,IAAM,gBAAA,GAAmB,IAAI,uBAAA,EAAyB;AAAA,EACpD,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI,KAAA;AAAA,MACJ,EAAA,EAAI,KAAA;AAAA,MACJ,EAAA,EAAI,KAAA;AAAA,MACJ,EAAA,EAAI;AAAA,KACN;AAAA,IACA,KAAA,EAAO;AAAA,GACT;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM,IAAA;AAAA,IACN,KAAA,EAAO;AAAA;AAEX,CAAC,CAAA;AAED,IAAM,WAAW,KAAA,CAAM,IAAA;AAAA,EACrB,CAAC,EAAE,KAAA,GAAQ,SAAA,EAAW,OAAO,IAAA,EAAM,SAAA,EAAW,MAAA,GAAS,KAAA,EAAM,KAAM;AACjE,IAAA,uBACE,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAU,MAAA;AAAA,QACV,SAAA,EAAW,EAAA;AAAA,UACT,eAAA;AAAA,UACA,gBAAA,CAAiB,EAAE,IAAA,EAAM,KAAA,EAAO,CAAA;AAAA,UAChC,MAAA,IAAU,4BAAA;AAAA,UACV;AAAA;AACF;AAAA,KACF;AAAA,EAEJ;AACF,CAAA;AAEA,QAAA,CAAS,WAAA,GAAc,UAAA;AAGvB,IAAO,gBAAA,GAAQ","file":"chunk-P6A75RAH.js","sourcesContent":["import { cva } from 'class-variance-authority'\nimport React from 'react'\n\nimport { cn } from '../utils'\nimport { bgSkeletonColorClasses } from '../variants'\nimport type { SkeletonProps } from './types'\n\nconst skeletonVariants = cva('animate-pulse rounded', {\n variants: {\n size: {\n xs: 'h-3',\n sm: 'h-4',\n md: 'h-5',\n lg: 'h-6',\n },\n color: bgSkeletonColorClasses,\n },\n defaultVariants: {\n size: 'md',\n color: 'default',\n },\n})\n\nconst Skeleton = React.memo<SkeletonProps>(\n ({ color = 'default', size = 'md', className, circle = false }) => {\n return (\n <div\n data-slot=\"root\"\n className={cn(\n 'skeleton_root',\n skeletonVariants({ size, color }),\n circle && 'rounded-full aspect-square',\n className,\n )}\n />\n )\n },\n)\n\nSkeleton.displayName = 'Skeleton'\n\nexport type * from './types'\nexport default Skeleton\n"]}
1
+ {"version":3,"sources":["../src/skeleton/index.tsx"],"names":[],"mappings":";;;;;;AAOA,IAAM,gBAAA,GAAmB,IAAI,uBAAA,EAAyB;AAAA,EACpD,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI,KAAA;AAAA,MACJ,EAAA,EAAI,KAAA;AAAA,MACJ,EAAA,EAAI,KAAA;AAAA,MACJ,EAAA,EAAI;AAAA,KACN;AAAA,IACA,KAAA,EAAO;AAAA,GACT;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM,IAAA;AAAA,IACN,KAAA,EAAO;AAAA;AAEX,CAAC,CAAA;AAED,IAAM,WAAW,KAAA,CAAM,IAAA;AAAA,EACrB,CAAC,EAAE,KAAA,GAAQ,SAAA,EAAW,OAAO,IAAA,EAAM,SAAA,EAAW,MAAA,GAAS,KAAA,EAAM,KAAM;AACjE,IAAA,uBACE,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAU,MAAA;AAAA,QACV,SAAA,EAAW,EAAA;AAAA,UACT,eAAA;AAAA,UACA,gBAAA,CAAiB,EAAE,IAAA,EAAM,KAAA,EAAO,CAAA;AAAA,UAChC,MAAA,IAAU,4BAAA;AAAA,UACV;AAAA;AACF;AAAA,KACF;AAAA,EAEJ;AACF,CAAA;AAEA,QAAA,CAAS,WAAA,GAAc,UAAA;AAGvB,IAAO,gBAAA,GAAQ","file":"chunk-JZ5F6XDO.js","sourcesContent":["import { cva } from 'class-variance-authority'\nimport React from 'react'\n\nimport { cn } from '../utils'\nimport { bgSkeletonColorClasses } from '../variants'\nimport type { SkeletonProps } from './types'\n\nconst skeletonVariants = cva('animate-pulse rounded', {\n variants: {\n size: {\n xs: 'h-3',\n sm: 'h-4',\n md: 'h-5',\n lg: 'h-6',\n },\n color: bgSkeletonColorClasses,\n },\n defaultVariants: {\n size: 'md',\n color: 'default',\n },\n})\n\nconst Skeleton = React.memo<SkeletonProps>(\n ({ color = 'default', size = 'md', className, circle = false }) => {\n return (\n <div\n data-slot=\"root\"\n className={cn(\n 'skeleton_root',\n skeletonVariants({ size, color }),\n circle && 'rounded-full aspect-square',\n className,\n )}\n />\n )\n },\n)\n\nSkeleton.displayName = 'Skeleton'\n\nexport type * from './types'\nexport default Skeleton\n"]}
@@ -1,4 +1,4 @@
1
- import { Popover, PopoverTrigger, PopoverContent } from './chunk-DH7R6NBG.js';
1
+ import { Popover, PopoverTrigger, PopoverContent } from './chunk-WTGCXWNX.js';
2
2
  import { cn } from './chunk-NGYLRX6F.js';
3
3
  import { cva } from 'class-variance-authority';
4
4
  import React, { useState, useRef, useId, useEffect, useCallback } from 'react';
@@ -279,5 +279,5 @@ Dropdown.displayName = "Dropdown";
279
279
  var dropdown_default = Dropdown;
280
280
 
281
281
  export { dropdown_default };
282
- //# sourceMappingURL=chunk-WVG3QQDN.js.map
283
- //# sourceMappingURL=chunk-WVG3QQDN.js.map
282
+ //# sourceMappingURL=chunk-KPI7MN5V.js.map
283
+ //# sourceMappingURL=chunk-KPI7MN5V.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/dropdown/index.tsx"],"names":[],"mappings":"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","file":"chunk-WVG3QQDN.js","sourcesContent":["'use client'\n\nimport { cva } from 'class-variance-authority'\nimport React, { useCallback, useRef, useId, useState, useEffect } from 'react'\n\nimport { Popover, PopoverContent, PopoverTrigger } from '../popover'\nimport { cn } from '../utils'\nimport type { DropdownProps } from './types'\n\nconst dropdownItemVariants = cva(\n 'relative cursor-pointer select-none text-text-primary transition-colors flex items-center gap-2 rounded-sm outline-none',\n {\n variants: {\n size: {\n xs: 'px-2 py-1 text-xs',\n sm: 'px-3 py-1.5 text-sm',\n md: 'px-4 py-2 text-base',\n lg: 'px-5 py-2.5 text-lg',\n },\n disabled: {\n true: 'opacity-50 cursor-not-allowed',\n false: 'hover:bg-surface focus:bg-surface',\n },\n highlighted: {\n true: 'bg-surface',\n false: '',\n },\n },\n defaultVariants: {\n size: 'md',\n disabled: false,\n highlighted: false,\n },\n },\n)\n\nconst Dropdown = React.memo<DropdownProps>(\n ({\n children,\n items,\n render,\n color = 'default',\n size = 'md',\n position = 'left',\n maxHeight = 300,\n disabled = false,\n fullWidth = false,\n hover = false,\n className,\n classNames,\n onItemClick,\n }) => {\n const [isOpen, setIsOpen] = useState(false)\n const [highlightedIndex, setHighlightedIndex] = useState(-1)\n const menuRef = useRef<HTMLDivElement>(null)\n const itemRefs = useRef<(HTMLDivElement | null)[]>([])\n\n // Generate unique IDs for accessibility\n const uniqueId = useId()\n const menuId = `dropdown-menu-${uniqueId}`\n const triggerId = `dropdown-trigger-${uniqueId}`\n\n // Get enabled items indices\n const enabledIndices = items\n ?.map((item, i) => (!item.disabled ? i : -1))\n .filter((i) => i !== -1) || []\n\n // Reset highlighted index when menu closes\n useEffect(() => {\n if (!isOpen) {\n setHighlightedIndex(-1)\n }\n }, [isOpen])\n\n // Scroll highlighted item into view\n useEffect(() => {\n if (highlightedIndex >= 0 && itemRefs.current[highlightedIndex]) {\n itemRefs.current[highlightedIndex]?.scrollIntoView({\n block: 'nearest',\n })\n }\n }, [highlightedIndex])\n\n const handleItemClick = useCallback(\n (item: NonNullable<typeof items>[0]) => {\n if (!item.disabled) {\n item.onClick?.()\n if (item.value !== undefined) {\n onItemClick?.(item.value)\n }\n setIsOpen(false)\n }\n },\n [onItemClick],\n )\n\n const handleClose = useCallback(() => {\n setIsOpen(false)\n }, [])\n\n const handleOpen = useCallback(() => {\n if (!disabled) {\n setIsOpen(true)\n }\n }, [disabled])\n\n const handleToggle = useCallback(() => {\n if (!disabled) {\n setIsOpen((prev) => !prev)\n }\n }, [disabled])\n\n // Keyboard navigation\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n if (!items?.length) return\n\n const currentEnabledPosition = enabledIndices.indexOf(highlightedIndex)\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault()\n if (!isOpen) {\n setIsOpen(true)\n setHighlightedIndex(enabledIndices[0] ?? -1)\n } else {\n const nextIndex =\n currentEnabledPosition < enabledIndices.length - 1\n ? enabledIndices[currentEnabledPosition + 1]\n : enabledIndices[0]\n setHighlightedIndex(nextIndex ?? -1)\n }\n break\n\n case 'ArrowUp':\n event.preventDefault()\n if (!isOpen) {\n setIsOpen(true)\n setHighlightedIndex(enabledIndices[enabledIndices.length - 1] ?? -1)\n } else {\n const prevIndex =\n currentEnabledPosition > 0\n ? enabledIndices[currentEnabledPosition - 1]\n : enabledIndices[enabledIndices.length - 1]\n setHighlightedIndex(prevIndex ?? -1)\n }\n break\n\n case 'Home':\n event.preventDefault()\n if (isOpen) {\n setHighlightedIndex(enabledIndices[0] ?? -1)\n }\n break\n\n case 'End':\n event.preventDefault()\n if (isOpen) {\n setHighlightedIndex(enabledIndices[enabledIndices.length - 1] ?? -1)\n }\n break\n\n case 'Enter':\n case ' ':\n event.preventDefault()\n if (isOpen && highlightedIndex >= 0 && items[highlightedIndex]) {\n handleItemClick(items[highlightedIndex])\n } else if (!isOpen) {\n setIsOpen(true)\n }\n break\n\n case 'Escape':\n event.preventDefault()\n setIsOpen(false)\n break\n\n case 'Tab':\n setIsOpen(false)\n break\n }\n },\n [items, isOpen, highlightedIndex, enabledIndices, handleItemClick],\n )\n\n // Handle mouse enter on items\n const handleItemMouseEnter = useCallback((index: number) => {\n setHighlightedIndex(index)\n }, [])\n\n return (\n <div\n className={cn(\n 'dropdown_root relative',\n fullWidth ? 'w-full' : 'inline-block',\n className,\n classNames?.root,\n )}\n onMouseEnter={hover ? handleOpen : undefined}\n onMouseLeave={hover ? () => setIsOpen(false) : undefined}\n >\n <Popover\n open={isOpen}\n onOpenChange={setIsOpen}\n >\n <PopoverTrigger asChild>\n <div\n id={triggerId}\n role=\"button\"\n tabIndex={disabled ? -1 : 0}\n aria-haspopup=\"menu\"\n aria-expanded={isOpen}\n aria-controls={isOpen ? menuId : undefined}\n aria-disabled={disabled}\n onClick={hover ? undefined : handleToggle}\n onKeyDown={handleKeyDown}\n className={cn(\n 'dropdown_trigger flex outline-none',\n !hover && 'cursor-pointer',\n fullWidth && 'w-full',\n disabled && 'opacity-50 cursor-not-allowed',\n classNames?.trigger,\n )}\n >\n {children}\n </div>\n </PopoverTrigger>\n\n <PopoverContent\n className=\"p-0 min-w-[140px]\"\n align={position === 'left' ? 'start' : 'end'}\n sideOffset={4}\n color={color}\n style={{ maxHeight }}\n onOpenAutoFocus={(e: Event) => e.preventDefault()}\n >\n <div\n ref={menuRef}\n id={menuId}\n role=\"menu\"\n aria-labelledby={triggerId}\n className={cn(\n 'dropdown_menu overflow-auto py-1',\n classNames?.menu,\n )}\n style={{ maxHeight }}\n onKeyDown={handleKeyDown}\n >\n {render\n ? render({ close: handleClose })\n : items?.map((item, idx) => (\n <div\n key={`${item.value}-${idx}`}\n ref={(el) => {\n itemRefs.current[idx] = el\n }}\n role=\"menuitem\"\n tabIndex={item.disabled ? -1 : 0}\n aria-disabled={item.disabled}\n className={cn(\n 'dropdown_item',\n dropdownItemVariants({\n size,\n disabled: !!item.disabled,\n highlighted: highlightedIndex === idx,\n }),\n classNames?.item,\n )}\n onClick={() => handleItemClick(item)}\n onMouseEnter={() => handleItemMouseEnter(idx)}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n handleItemClick(item)\n }\n }}\n >\n {item.icon && (\n <span\n className={cn(\n 'dropdown_itemIcon shrink-0',\n classNames?.itemIcon,\n )}\n aria-hidden=\"true\"\n >\n {item.icon}\n </span>\n )}\n <span\n className={cn(\n 'dropdown_itemLabel flex-1',\n classNames?.itemLabel,\n )}\n >\n {item.label}\n </span>\n </div>\n ))}\n </div>\n </PopoverContent>\n </Popover>\n </div>\n )\n },\n)\n\nDropdown.displayName = 'Dropdown'\n\nexport type * from './types'\nexport default Dropdown\n"]}
1
+ {"version":3,"sources":["../src/dropdown/index.tsx"],"names":[],"mappings":"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","file":"chunk-KPI7MN5V.js","sourcesContent":["'use client'\n\nimport { cva } from 'class-variance-authority'\nimport React, { useCallback, useRef, useId, useState, useEffect } from 'react'\n\nimport { Popover, PopoverContent, PopoverTrigger } from '../popover'\nimport { cn } from '../utils'\nimport type { DropdownProps } from './types'\n\nconst dropdownItemVariants = cva(\n 'relative cursor-pointer select-none text-text-primary transition-colors flex items-center gap-2 rounded-sm outline-none',\n {\n variants: {\n size: {\n xs: 'px-2 py-1 text-xs',\n sm: 'px-3 py-1.5 text-sm',\n md: 'px-4 py-2 text-base',\n lg: 'px-5 py-2.5 text-lg',\n },\n disabled: {\n true: 'opacity-50 cursor-not-allowed',\n false: 'hover:bg-surface focus:bg-surface',\n },\n highlighted: {\n true: 'bg-surface',\n false: '',\n },\n },\n defaultVariants: {\n size: 'md',\n disabled: false,\n highlighted: false,\n },\n },\n)\n\nconst Dropdown = React.memo<DropdownProps>(\n ({\n children,\n items,\n render,\n color = 'default',\n size = 'md',\n position = 'left',\n maxHeight = 300,\n disabled = false,\n fullWidth = false,\n hover = false,\n className,\n classNames,\n onItemClick,\n }) => {\n const [isOpen, setIsOpen] = useState(false)\n const [highlightedIndex, setHighlightedIndex] = useState(-1)\n const menuRef = useRef<HTMLDivElement>(null)\n const itemRefs = useRef<(HTMLDivElement | null)[]>([])\n\n // Generate unique IDs for accessibility\n const uniqueId = useId()\n const menuId = `dropdown-menu-${uniqueId}`\n const triggerId = `dropdown-trigger-${uniqueId}`\n\n // Get enabled items indices\n const enabledIndices = items\n ?.map((item, i) => (!item.disabled ? i : -1))\n .filter((i) => i !== -1) || []\n\n // Reset highlighted index when menu closes\n useEffect(() => {\n if (!isOpen) {\n setHighlightedIndex(-1)\n }\n }, [isOpen])\n\n // Scroll highlighted item into view\n useEffect(() => {\n if (highlightedIndex >= 0 && itemRefs.current[highlightedIndex]) {\n itemRefs.current[highlightedIndex]?.scrollIntoView({\n block: 'nearest',\n })\n }\n }, [highlightedIndex])\n\n const handleItemClick = useCallback(\n (item: NonNullable<typeof items>[0]) => {\n if (!item.disabled) {\n item.onClick?.()\n if (item.value !== undefined) {\n onItemClick?.(item.value)\n }\n setIsOpen(false)\n }\n },\n [onItemClick],\n )\n\n const handleClose = useCallback(() => {\n setIsOpen(false)\n }, [])\n\n const handleOpen = useCallback(() => {\n if (!disabled) {\n setIsOpen(true)\n }\n }, [disabled])\n\n const handleToggle = useCallback(() => {\n if (!disabled) {\n setIsOpen((prev) => !prev)\n }\n }, [disabled])\n\n // Keyboard navigation\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n if (!items?.length) return\n\n const currentEnabledPosition = enabledIndices.indexOf(highlightedIndex)\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault()\n if (!isOpen) {\n setIsOpen(true)\n setHighlightedIndex(enabledIndices[0] ?? -1)\n } else {\n const nextIndex =\n currentEnabledPosition < enabledIndices.length - 1\n ? enabledIndices[currentEnabledPosition + 1]\n : enabledIndices[0]\n setHighlightedIndex(nextIndex ?? -1)\n }\n break\n\n case 'ArrowUp':\n event.preventDefault()\n if (!isOpen) {\n setIsOpen(true)\n setHighlightedIndex(enabledIndices[enabledIndices.length - 1] ?? -1)\n } else {\n const prevIndex =\n currentEnabledPosition > 0\n ? enabledIndices[currentEnabledPosition - 1]\n : enabledIndices[enabledIndices.length - 1]\n setHighlightedIndex(prevIndex ?? -1)\n }\n break\n\n case 'Home':\n event.preventDefault()\n if (isOpen) {\n setHighlightedIndex(enabledIndices[0] ?? -1)\n }\n break\n\n case 'End':\n event.preventDefault()\n if (isOpen) {\n setHighlightedIndex(enabledIndices[enabledIndices.length - 1] ?? -1)\n }\n break\n\n case 'Enter':\n case ' ':\n event.preventDefault()\n if (isOpen && highlightedIndex >= 0 && items[highlightedIndex]) {\n handleItemClick(items[highlightedIndex])\n } else if (!isOpen) {\n setIsOpen(true)\n }\n break\n\n case 'Escape':\n event.preventDefault()\n setIsOpen(false)\n break\n\n case 'Tab':\n setIsOpen(false)\n break\n }\n },\n [items, isOpen, highlightedIndex, enabledIndices, handleItemClick],\n )\n\n // Handle mouse enter on items\n const handleItemMouseEnter = useCallback((index: number) => {\n setHighlightedIndex(index)\n }, [])\n\n return (\n <div\n className={cn(\n 'dropdown_root relative',\n fullWidth ? 'w-full' : 'inline-block',\n className,\n classNames?.root,\n )}\n onMouseEnter={hover ? handleOpen : undefined}\n onMouseLeave={hover ? () => setIsOpen(false) : undefined}\n >\n <Popover\n open={isOpen}\n onOpenChange={setIsOpen}\n >\n <PopoverTrigger asChild>\n <div\n id={triggerId}\n role=\"button\"\n tabIndex={disabled ? -1 : 0}\n aria-haspopup=\"menu\"\n aria-expanded={isOpen}\n aria-controls={isOpen ? menuId : undefined}\n aria-disabled={disabled}\n onClick={hover ? undefined : handleToggle}\n onKeyDown={handleKeyDown}\n className={cn(\n 'dropdown_trigger flex outline-none',\n !hover && 'cursor-pointer',\n fullWidth && 'w-full',\n disabled && 'opacity-50 cursor-not-allowed',\n classNames?.trigger,\n )}\n >\n {children}\n </div>\n </PopoverTrigger>\n\n <PopoverContent\n className=\"p-0 min-w-[140px]\"\n align={position === 'left' ? 'start' : 'end'}\n sideOffset={4}\n color={color}\n style={{ maxHeight }}\n onOpenAutoFocus={(e: Event) => e.preventDefault()}\n >\n <div\n ref={menuRef}\n id={menuId}\n role=\"menu\"\n aria-labelledby={triggerId}\n className={cn(\n 'dropdown_menu overflow-auto py-1',\n classNames?.menu,\n )}\n style={{ maxHeight }}\n onKeyDown={handleKeyDown}\n >\n {render\n ? render({ close: handleClose })\n : items?.map((item, idx) => (\n <div\n key={`${item.value}-${idx}`}\n ref={(el) => {\n itemRefs.current[idx] = el\n }}\n role=\"menuitem\"\n tabIndex={item.disabled ? -1 : 0}\n aria-disabled={item.disabled}\n className={cn(\n 'dropdown_item',\n dropdownItemVariants({\n size,\n disabled: !!item.disabled,\n highlighted: highlightedIndex === idx,\n }),\n classNames?.item,\n )}\n onClick={() => handleItemClick(item)}\n onMouseEnter={() => handleItemMouseEnter(idx)}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n handleItemClick(item)\n }\n }}\n >\n {item.icon && (\n <span\n className={cn(\n 'dropdown_itemIcon shrink-0',\n classNames?.itemIcon,\n )}\n aria-hidden=\"true\"\n >\n {item.icon}\n </span>\n )}\n <span\n className={cn(\n 'dropdown_itemLabel flex-1',\n classNames?.itemLabel,\n )}\n >\n {item.label}\n </span>\n </div>\n ))}\n </div>\n </PopoverContent>\n </Popover>\n </div>\n )\n },\n)\n\nDropdown.displayName = 'Dropdown'\n\nexport type * from './types'\nexport default Dropdown\n"]}
@@ -200,13 +200,13 @@ var switchTrackColorClasses = {
200
200
  info: "bg-border peer-checked:bg-info peer-focus-visible:ring-info"
201
201
  };
202
202
  var checkboxBorderColorClasses = {
203
- primary: "border-border checked:border-primary",
204
- secondary: "border-border checked:border-secondary",
205
- accent: "border-border checked:border-accent",
206
- success: "border-border checked:border-success",
207
- error: "border-border checked:border-error",
208
- warning: "border-border checked:border-warning",
209
- info: "border-border checked:border-info"
203
+ primary: "border-border checked:border-primary indeterminate:border-primary",
204
+ secondary: "border-border checked:border-secondary indeterminate:border-secondary",
205
+ accent: "border-border checked:border-accent indeterminate:border-accent",
206
+ success: "border-border checked:border-success indeterminate:border-success",
207
+ error: "border-border checked:border-error indeterminate:border-error",
208
+ warning: "border-border checked:border-warning indeterminate:border-warning",
209
+ info: "border-border checked:border-info indeterminate:border-info"
210
210
  };
211
211
  var radioCheckedColorClasses = {
212
212
  primary: "checked:border-primary checked:shadow-[inset_0_0_0_2px_var(--color-background),inset_0_0_0_13px_var(--color-primary)]",
@@ -441,5 +441,5 @@ function createPopoverColorVariants(colors, variants) {
441
441
  }
442
442
 
443
443
  export { bgSkeletonColorClasses, buttonColors, checkboxBorderColorClasses, checkedColorClasses, componentColors, createAllColorVariants, createDashedColorVariants, createDefaultColorVariants, createGhostColorVariants, createKbdColorVariants, createKbdOutlineColorVariants, createKbdSoftColorVariants, createKbdSolidColorVariants, createLinkColorVariants, createNotificationColorVariants, createNotificationOutlineColorVariants, createNotificationSoftColorVariants, createNotificationSolidColorVariants, createOutlineColorVariants, createPopoverColorVariants, createPopoverDefaultColorVariants, createPopoverSoftColorVariants, createPopoverSolidColorVariants, createSoftColorVariants, createSolidColorVariants, createTooltipSoftColorVariants, focusRingColorClasses, radioCheckedColorClasses, switchTrackColorClasses, textColorClasses, textColorVariants, tooltipSolidColorClasses };
444
- //# sourceMappingURL=chunk-NTPWR57C.js.map
445
- //# sourceMappingURL=chunk-NTPWR57C.js.map
444
+ //# sourceMappingURL=chunk-LK4EPTNG.js.map
445
+ //# sourceMappingURL=chunk-LK4EPTNG.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/variants.ts"],"names":[],"mappings":"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","file":"chunk-NTPWR57C.js","sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority'\n\nimport type { ButtonColor, ComponentColor } from './types'\n\n// ============================================================================\n// Color Variant Generators\n// ============================================================================\n\n/**\n * Color palette for component variants\n * Maps to Tailwind CSS v4 theme variables (--color-primary, --color-secondary, etc.)\n */\nexport const componentColors = [\n 'default',\n 'primary',\n 'secondary',\n 'accent',\n 'success',\n 'error',\n 'warning',\n 'info',\n] as const\n\nexport const buttonColors = [\n 'primary',\n 'secondary',\n 'accent',\n 'success',\n 'error',\n 'warning',\n 'info',\n] as const\n\n/**\n * Static class maps for Tailwind JIT compatibility\n * Template literals like `bg-${color}` don't work with Tailwind's JIT compiler\n */\nconst defaultVariantClasses: Record<ComponentColor, string> = {\n default: 'bg-background border border-border text-text-primary',\n primary: 'bg-background border border-primary text-text-primary',\n secondary: 'bg-background border border-secondary text-text-primary',\n accent: 'bg-background border border-accent text-text-primary',\n success: 'bg-background border border-success text-text-primary',\n error: 'bg-background border border-error text-text-primary',\n warning: 'bg-background border border-warning text-text-primary',\n info: 'bg-background border border-info text-text-primary',\n}\n\n/**\n * Generates compound variants for default style\n * Used by: Badge, Toast, and other components\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for cva\n */\nexport function createDefaultColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'default' as const,\n color: color as ComponentColor | ButtonColor,\n class: defaultVariantClasses[color as ComponentColor],\n }))\n}\n\nconst solidVariantClasses: Record<ComponentColor, string> = {\n default: 'bg-surface border border-border text-text-primary',\n primary: 'bg-primary text-background hover:bg-primary/90',\n secondary: 'bg-secondary text-background hover:bg-secondary/90',\n accent: 'bg-accent text-background hover:bg-accent/90',\n success: 'bg-success text-background hover:bg-success/90',\n error: 'bg-error text-background hover:bg-error/90',\n warning: 'bg-warning text-background hover:bg-warning/90',\n info: 'bg-info text-background hover:bg-info/90',\n}\n\n/**\n * Generates compound variants for solid color style\n * Used by: Button, Badge, Accordion, Toast\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for cva\n */\nexport function createSolidColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'solid' as const,\n color: color as ComponentColor | ButtonColor,\n class: solidVariantClasses[color as ComponentColor],\n }))\n}\n\nconst outlineVariantClasses: Record<ComponentColor, string> = {\n default: 'border border-border text-text-primary',\n primary: 'border border-primary text-primary hover:bg-primary/10',\n secondary: 'border border-secondary text-secondary hover:bg-secondary/10',\n accent: 'border border-accent text-accent hover:bg-accent/10',\n success: 'border border-success text-success hover:bg-success/10',\n error: 'border border-error text-error hover:bg-error/10',\n warning: 'border border-warning text-warning hover:bg-warning/10',\n info: 'border border-info text-info hover:bg-info/10',\n}\n\n/**\n * Generates compound variants for outline color style\n * Used by: Button, Badge, Accordion\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for cva\n */\nexport function createOutlineColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'outline' as const,\n color: color as ComponentColor | ButtonColor,\n class: outlineVariantClasses[color as ComponentColor],\n }))\n}\n\nconst softVariantClasses: Record<ComponentColor, string> = {\n default: 'bg-surface border border-border text-text-primary',\n primary: 'bg-primary/10 text-primary',\n secondary: 'bg-secondary/10 text-secondary',\n accent: 'bg-accent/10 text-accent',\n success: 'bg-success/10 text-success',\n error: 'bg-error/10 text-error',\n warning: 'bg-warning/10 text-warning',\n info: 'bg-info/10 text-info',\n}\n\n/**\n * Generates compound variants for soft/subtle color style\n * Used by: Badge, Accordion, Toast\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for cva\n */\nexport function createSoftColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'soft' as const,\n color: color as ComponentColor | ButtonColor,\n class: softVariantClasses[color as ComponentColor],\n }))\n}\n\nconst dashedVariantClasses: Record<ComponentColor, string> = {\n default: 'border-dashed border-border text-text-primary',\n primary: 'border-dashed border-primary text-primary hover:bg-primary/10',\n secondary: 'border-dashed border-secondary text-secondary hover:bg-secondary/10',\n accent: 'border-dashed border-accent text-accent hover:bg-accent/10',\n success: 'border-dashed border-success text-success hover:bg-success/10',\n error: 'border-dashed border-error text-error hover:bg-error/10',\n warning: 'border-dashed border-warning text-warning hover:bg-warning/10',\n info: 'border-dashed border-info text-info hover:bg-info/10',\n}\n\n/**\n * Generates compound variants for dashed border color style\n * Used by: Button\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for cva\n */\nexport function createDashedColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'dashed' as const,\n color: color as ComponentColor | ButtonColor,\n class: dashedVariantClasses[color as ComponentColor],\n }))\n}\n\nconst linkVariantClasses: Record<ComponentColor, string> = {\n default: 'text-text-primary hover:text-text-primary/80',\n primary: 'text-primary hover:text-primary/80',\n secondary: 'text-secondary hover:text-secondary/80',\n accent: 'text-accent hover:text-accent/80',\n success: 'text-success hover:text-success/80',\n error: 'text-error hover:text-error/80',\n warning: 'text-warning hover:text-warning/80',\n info: 'text-info hover:text-info/80',\n}\n\n/**\n * Generates compound variants for link/text-only color style\n * Used by: Button, Breadcrumbs\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for cva\n */\nexport function createLinkColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'link' as const,\n color: color as ComponentColor | ButtonColor,\n class: linkVariantClasses[color as ComponentColor],\n }))\n}\n\nconst ghostVariantClasses: Record<ComponentColor, string> = {\n default: 'text-text-primary hover:bg-surface',\n primary: 'text-primary hover:bg-primary/10',\n secondary: 'text-secondary hover:bg-secondary/10',\n accent: 'text-accent hover:bg-accent/10',\n success: 'text-success hover:bg-success/10',\n error: 'text-error hover:bg-error/10',\n warning: 'text-warning hover:bg-warning/10',\n info: 'text-info hover:bg-info/10',\n}\n\n/**\n * Generates compound variants for ghost (borderless) color style\n * Used by: Button, Table\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for cva\n */\nexport function createGhostColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'ghost' as const,\n color: color as ComponentColor | ButtonColor,\n class: ghostVariantClasses[color as ComponentColor],\n }))\n}\n\n/**\n * Complete color variant generator for components with multiple style variants\n * Combines all color variant generators into a single array\n *\n * @example\n * const buttonVariants = cva(\"base-classes\", {\n * variants: {\n * variant: { solid: \"\", outline: \"\", ghost: \"\" },\n * color: { primary: \"\", secondary: \"\", ... }\n * },\n * compoundVariants: createAllColorVariants(buttonColors, ['solid', 'outline', 'ghost'])\n * })\n */\n/**\n * Supported variant types for compound variant generation\n */\nexport type StyleVariantType = 'default' | 'solid' | 'outline' | 'soft' | 'dashed' | 'link' | 'ghost'\n\n/**\n * Complete color variant generator for components with multiple style variants\n * Combines all color variant generators into a single array\n *\n * Returns `any[]` for CVA (class-variance-authority) compatibility:\n * - CVA's CompoundVariant type is extremely complex and deeply nested\n * - Using specific types causes TypeScript inference failures in consuming components\n * - The `any` type allows CVA to properly infer variant combinations\n * - This is the recommended approach per CVA documentation for dynamic variant generation\n *\n * @param colors - Array of color names to generate variants for\n * @param variants - Array of style variant types to generate\n * @returns Array of compound variant objects for CVA\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function createAllColorVariants<V extends StyleVariantType>(\n colors: readonly string[],\n variants: V[],\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n): any[] {\n const variantGenerators = {\n default: createDefaultColorVariants,\n solid: createSolidColorVariants,\n outline: createOutlineColorVariants,\n soft: createSoftColorVariants,\n dashed: createDashedColorVariants,\n link: createLinkColorVariants,\n ghost: createGhostColorVariants,\n } as const\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return variants.flatMap((variant) => variantGenerators[variant](colors) as any[])\n}\n\n// ============================================================================\n// Shared Color Classes\n// ============================================================================\n\n/**\n * Text color classes for all component colors\n * Used by: Checkbox icons, Spinner, text elements\n */\nexport const textColorClasses = {\n default: 'text-text-primary',\n primary: 'text-primary',\n secondary: 'text-secondary',\n accent: 'text-accent',\n success: 'text-success',\n error: 'text-error',\n warning: 'text-warning',\n info: 'text-info',\n} as const\n\n/**\n * Background color classes for skeleton/placeholder (50% opacity)\n * Used by: Skeleton component\n */\nexport const bgSkeletonColorClasses = {\n default: 'bg-surface',\n primary: 'bg-primary/50',\n secondary: 'bg-secondary/50',\n accent: 'bg-accent/50',\n success: 'bg-success/50',\n error: 'bg-error/50',\n warning: 'bg-warning/50',\n info: 'bg-info/50',\n} as const\n\n/**\n * Focus ring color classes\n * Used by: Button, Switch, form elements\n */\nexport const focusRingColorClasses = {\n default: 'focus-visible:ring-border',\n primary: 'focus-visible:ring-primary',\n secondary: 'focus-visible:ring-secondary',\n accent: 'focus-visible:ring-accent',\n success: 'focus-visible:ring-success',\n error: 'focus-visible:ring-error',\n warning: 'focus-visible:ring-warning',\n info: 'focus-visible:ring-info',\n} as const\n\n/**\n * Combined background + border for checked/selected state\n * Used by: Checkbox, Radio checked states\n */\nexport const checkedColorClasses = {\n primary: 'bg-primary border-primary',\n secondary: 'bg-secondary border-secondary',\n accent: 'bg-accent border-accent',\n success: 'bg-success border-success',\n error: 'bg-error border-error',\n warning: 'bg-warning border-warning',\n info: 'bg-info border-info',\n} as const\n\n/**\n * Switch track colors (unchecked -> checked)\n * Used by: Switch component\n */\nexport const switchTrackColorClasses = {\n primary: 'bg-border peer-checked:bg-primary peer-focus-visible:ring-primary',\n secondary: 'bg-border peer-checked:bg-secondary peer-focus-visible:ring-secondary',\n accent: 'bg-border peer-checked:bg-accent peer-focus-visible:ring-accent',\n success: 'bg-border peer-checked:bg-success peer-focus-visible:ring-success',\n error: 'bg-border peer-checked:bg-error peer-focus-visible:ring-error',\n warning: 'bg-border peer-checked:bg-warning peer-focus-visible:ring-warning',\n info: 'bg-border peer-checked:bg-info peer-focus-visible:ring-info',\n} as const\n\n/**\n * Checkbox border colors (default -> checked)\n * Used by: Checkbox component\n */\nexport const checkboxBorderColorClasses = {\n primary: 'border-border checked:border-primary',\n secondary: 'border-border checked:border-secondary',\n accent: 'border-border checked:border-accent',\n success: 'border-border checked:border-success',\n error: 'border-border checked:border-error',\n warning: 'border-border checked:border-warning',\n info: 'border-border checked:border-info',\n} as const\n\n/**\n * Radio button inset shadow colors for checked state\n * Used by: Radio component\n */\nexport const radioCheckedColorClasses = {\n primary: 'checked:border-primary checked:shadow-[inset_0_0_0_2px_var(--color-background),inset_0_0_0_13px_var(--color-primary)]',\n secondary: 'checked:border-secondary checked:shadow-[inset_0_0_0_2px_var(--color-background),inset_0_0_0_13px_var(--color-secondary)]',\n accent: 'checked:border-accent checked:shadow-[inset_0_0_0_2px_var(--color-background),inset_0_0_0_13px_var(--color-accent)]',\n success: 'checked:border-success checked:shadow-[inset_0_0_0_2px_var(--color-background),inset_0_0_0_13px_var(--color-success)]',\n error: 'checked:border-error checked:shadow-[inset_0_0_0_2px_var(--color-background),inset_0_0_0_13px_var(--color-error)]',\n warning: 'checked:border-warning checked:shadow-[inset_0_0_0_2px_var(--color-background),inset_0_0_0_13px_var(--color-warning)]',\n info: 'checked:border-info checked:shadow-[inset_0_0_0_2px_var(--color-background),inset_0_0_0_13px_var(--color-info)]',\n} as const\n\n\n// ============================================================================\n// Shared Text Color Variants\n// ============================================================================\n\n/**\n * Text-only color variants (no background)\n * Used by: Breadcrumbs, Text components, Labels\n */\nexport const textColorVariants = cva('', {\n variants: {\n color: {\n default: 'text-text-primary',\n primary: 'text-primary',\n secondary: 'text-secondary',\n accent: 'text-accent',\n success: 'text-success',\n error: 'text-error',\n warning: 'text-warning',\n info: 'text-info',\n },\n },\n defaultVariants: {\n color: 'default',\n },\n})\n\nexport type TextColorVariants = VariantProps<typeof textColorVariants>\n\n\n\n// ============================================================================\n// Notification/Alert Variant Generators\n// ============================================================================\n\nconst notificationSolidClasses: Record<ComponentColor, string> = {\n default: 'bg-surface text-text-primary',\n primary: 'bg-primary text-background',\n secondary: 'bg-secondary text-background',\n accent: 'bg-accent text-background',\n success: 'bg-success text-background',\n error: 'bg-error text-background',\n warning: 'bg-warning text-background',\n info: 'bg-info text-background',\n}\n\nconst notificationOutlinedClasses: Record<ComponentColor, string> = {\n default: 'bg-background border-border border-l-border text-text-primary',\n primary: 'bg-background border-primary border-l-primary text-primary',\n secondary: 'bg-background border-secondary border-l-secondary text-secondary',\n accent: 'bg-background border-accent border-l-accent text-accent',\n success: 'bg-background border-success border-l-success text-success',\n error: 'bg-background border-error border-l-error text-error',\n warning: 'bg-background border-warning border-l-warning text-warning',\n info: 'bg-background border-info border-l-info text-info',\n}\n\nconst notificationSoftClasses: Record<ComponentColor, string> = {\n default: 'bg-surface/50 text-text-primary border-l-border',\n primary: 'bg-primary/10 text-primary border-l-primary',\n secondary: 'bg-secondary/10 text-secondary border-l-secondary',\n accent: 'bg-accent/10 text-accent border-l-accent',\n success: 'bg-success/10 text-success border-l-success',\n error: 'bg-error/10 text-error border-l-error',\n warning: 'bg-warning/10 text-warning border-l-warning',\n info: 'bg-info/10 text-info border-l-info',\n}\n\n/**\n * Generates compound variants for notification solid style (with foreground text)\n * Used by: Notification, Alert components\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for CVA\n */\nexport function createNotificationSolidColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'solid' as const,\n color: color as ComponentColor,\n class: notificationSolidClasses[color as ComponentColor],\n }))\n}\n\n/**\n * Generates compound variants for notification outline style (border with thick left border)\n * Used by: Notification, Alert components\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for CVA\n */\nexport function createNotificationOutlineColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'outline' as const,\n color: color as ComponentColor,\n class: notificationOutlinedClasses[color as ComponentColor],\n }))\n}\n\n/**\n * Generates compound variants for notification soft style (subtle bg with left border)\n * Used by: Notification, Alert components\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for CVA\n */\nexport function createNotificationSoftColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'soft' as const,\n color: color as ComponentColor,\n class: notificationSoftClasses[color as ComponentColor],\n }))\n}\n\n/**\n * Notification variant type\n */\nexport type NotificationVariantType = 'default' | 'solid' | 'outline' | 'soft'\n\n/**\n * Complete notification color variant generator\n *\n * Returns `any[]` for CVA (class-variance-authority) compatibility.\n * See createAllColorVariants for detailed explanation.\n *\n * @param colors - Array of color names to generate variants for\n * @param variants - Array of notification variant types to generate\n * @returns Array of compound variant objects for CVA\n */\nexport function createNotificationColorVariants(\n colors: readonly string[],\n variants: NotificationVariantType[],\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n): any[] {\n const variantGenerators = {\n default: createDefaultColorVariants,\n solid: createNotificationSolidColorVariants,\n outline: createNotificationOutlineColorVariants,\n soft: createNotificationSoftColorVariants,\n } as const\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return variants.flatMap((variant) => variantGenerators[variant](colors) as any[])\n}\n\n// ============================================================================\n// Tooltip Variant Generators\n// ============================================================================\n\n/**\n * Tooltip solid color classes (background with contrasting text)\n * Used by: Tooltip component solid variant\n */\nexport const tooltipSolidColorClasses = {\n default: 'bg-text-primary text-background',\n primary: 'bg-primary text-background',\n secondary: 'bg-secondary text-background',\n accent: 'bg-accent text-background',\n success: 'bg-success text-background',\n error: 'bg-error text-background',\n warning: 'bg-warning text-background',\n info: 'bg-info text-background',\n} as const\n\nconst tooltipSoftClasses: Record<ComponentColor, string> = {\n default: 'bg-surface text-text-primary border-border',\n primary: 'bg-primary/20 text-primary border-primary/30',\n secondary: 'bg-secondary/20 text-secondary border-secondary/30',\n accent: 'bg-accent/20 text-accent border-accent/30',\n success: 'bg-success/20 text-success border-success/30',\n error: 'bg-error/20 text-error border-error/30',\n warning: 'bg-warning/20 text-warning border-warning/30',\n info: 'bg-info/20 text-info border-info/30',\n}\n\n/**\n * Generates compound variants for tooltip soft style\n * Used by: Tooltip component soft variant\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for CVA\n */\nexport function createTooltipSoftColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'soft' as const,\n color: color as ComponentColor,\n className: tooltipSoftClasses[color as ComponentColor],\n }))\n}\n\n// ============================================================================\n// Kbd Variant Generators\n// ============================================================================\n\nconst kbdSolidClasses: Record<ComponentColor, string> = {\n default: 'bg-text-secondary border-text-secondary text-background',\n primary: 'bg-primary border-primary text-background',\n secondary: 'bg-secondary border-secondary text-background',\n accent: 'bg-accent border-accent text-background',\n success: 'bg-success border-success text-background',\n error: 'bg-error border-error text-background',\n warning: 'bg-warning border-warning text-background',\n info: 'bg-info border-info text-background',\n}\n\nconst kbdOutlineClasses: Record<ComponentColor, string> = {\n default: 'bg-background border-border text-text-secondary',\n primary: 'bg-background border-primary text-primary',\n secondary: 'bg-background border-secondary text-secondary',\n accent: 'bg-background border-accent text-accent',\n success: 'bg-background border-success text-success',\n error: 'bg-background border-error text-error',\n warning: 'bg-background border-warning text-warning',\n info: 'bg-background border-info text-info',\n}\n\nconst kbdSoftClasses: Record<ComponentColor, string> = {\n default: 'bg-surface border-border text-text-secondary',\n primary: 'bg-primary/10 border-primary/20 text-primary',\n secondary: 'bg-secondary/10 border-secondary/20 text-secondary',\n accent: 'bg-accent/10 border-accent/20 text-accent',\n success: 'bg-success/10 border-success/20 text-success',\n error: 'bg-error/10 border-error/20 text-error',\n warning: 'bg-warning/10 border-warning/20 text-warning',\n info: 'bg-info/10 border-info/20 text-info',\n}\n\n/**\n * Generates compound variants for Kbd solid style\n * Used by: Kbd component\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for CVA\n */\nexport function createKbdSolidColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'solid' as const,\n color: color as ComponentColor,\n class: kbdSolidClasses[color as ComponentColor],\n }))\n}\n\n/**\n * Generates compound variants for Kbd outline style\n * Used by: Kbd component\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for CVA\n */\nexport function createKbdOutlineColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'outline' as const,\n color: color as ComponentColor,\n class: kbdOutlineClasses[color as ComponentColor],\n }))\n}\n\n/**\n * Generates compound variants for Kbd soft style\n * Used by: Kbd component\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for CVA\n */\nexport function createKbdSoftColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'soft' as const,\n color: color as ComponentColor,\n class: kbdSoftClasses[color as ComponentColor],\n }))\n}\n\n/**\n * Kbd variant type\n */\nexport type KbdVariantType = 'solid' | 'outline' | 'soft'\n\n/**\n * Complete Kbd color variant generator\n *\n * Returns `any[]` for CVA (class-variance-authority) compatibility.\n * See createAllColorVariants for detailed explanation.\n *\n * @param colors - Array of color names to generate variants for\n * @param variants - Array of kbd variant types to generate\n * @returns Array of compound variant objects for CVA\n */\nexport function createKbdColorVariants(\n colors: readonly string[],\n variants: KbdVariantType[],\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n): any[] {\n const variantGenerators = {\n solid: createKbdSolidColorVariants,\n outline: createKbdOutlineColorVariants,\n soft: createKbdSoftColorVariants,\n } as const\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return variants.flatMap((variant) => variantGenerators[variant](colors) as any[])\n}\n\n// ============================================================================\n// Popover Variant Generators\n// ============================================================================\n\nconst popoverDefaultClasses: Record<ComponentColor, string> = {\n default: 'bg-background border-border text-text-primary',\n primary: 'bg-background border-primary text-text-primary',\n secondary: 'bg-background border-secondary text-text-primary',\n accent: 'bg-background border-accent text-text-primary',\n success: 'bg-background border-success text-text-primary',\n error: 'bg-background border-error text-text-primary',\n warning: 'bg-background border-warning text-text-primary',\n info: 'bg-background border-info text-text-primary',\n}\n\nconst popoverSolidClasses: Record<ComponentColor, string> = {\n default: 'bg-surface border-border text-text-primary',\n primary: 'bg-primary border-primary text-background',\n secondary: 'bg-secondary border-secondary text-background',\n accent: 'bg-accent border-accent text-background',\n success: 'bg-success border-success text-background',\n error: 'bg-error border-error text-background',\n warning: 'bg-warning border-warning text-background',\n info: 'bg-info border-info text-background',\n}\n\nconst popoverSoftClasses: Record<ComponentColor, string> = {\n default: 'backdrop-blur-sm bg-surface/80 border-border text-text-primary',\n primary: 'backdrop-blur-sm bg-primary/10 border-primary/30 text-primary',\n secondary: 'backdrop-blur-sm bg-secondary/10 border-secondary/30 text-secondary',\n accent: 'backdrop-blur-sm bg-accent/10 border-accent/30 text-accent',\n success: 'backdrop-blur-sm bg-success/10 border-success/30 text-success',\n error: 'backdrop-blur-sm bg-error/10 border-error/30 text-error',\n warning: 'backdrop-blur-sm bg-warning/10 border-warning/30 text-warning',\n info: 'backdrop-blur-sm bg-info/10 border-info/30 text-info',\n}\n\n/**\n * Generates compound variants for Popover default style\n * Used by: Popover component\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for CVA\n */\nexport function createPopoverDefaultColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'default' as const,\n color: color as ComponentColor,\n class: popoverDefaultClasses[color as ComponentColor],\n }))\n}\n\n/**\n * Generates compound variants for Popover solid style\n * Used by: Popover component\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for CVA\n */\nexport function createPopoverSolidColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'solid' as const,\n color: color as ComponentColor,\n class: popoverSolidClasses[color as ComponentColor],\n }))\n}\n\n/**\n * Generates compound variants for Popover soft style (with backdrop blur)\n * Used by: Popover component\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for CVA\n */\nexport function createPopoverSoftColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'soft' as const,\n color: color as ComponentColor,\n class: popoverSoftClasses[color as ComponentColor],\n }))\n}\n\n/**\n * Popover variant type\n */\nexport type PopoverVariantType = 'default' | 'solid' | 'soft'\n\n/**\n * Complete Popover color variant generator\n *\n * Returns `any[]` for CVA (class-variance-authority) compatibility.\n * See createAllColorVariants for detailed explanation.\n *\n * @param colors - Array of color names to generate variants for\n * @param variants - Array of popover variant types to generate\n * @returns Array of compound variant objects for CVA\n */\nexport function createPopoverColorVariants(\n colors: readonly string[],\n variants: PopoverVariantType[],\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n): any[] {\n const variantGenerators = {\n default: createPopoverDefaultColorVariants,\n solid: createPopoverSolidColorVariants,\n soft: createPopoverSoftColorVariants,\n } as const\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return variants.flatMap((variant) => variantGenerators[variant](colors) as any[])\n}\n\n// ============================================================================\n// Export Usage Note\n// ============================================================================\n\n/**\n * To use these utilities in your components:\n *\n * @example Button component\n * import { createAllColorVariants, buttonColors } from \"../variants\";\n * compoundVariants: createAllColorVariants(buttonColors, ['solid', 'outline', 'dashed', 'link', 'ghost'])\n *\n * @example Badge component\n * import { createAllColorVariants, componentColors } from \"../variants\";\n * compoundVariants: createAllColorVariants(componentColors, ['solid', 'outline', 'soft'])\n *\n * @example Notification component\n * import { createNotificationColorVariants, componentColors } from \"../variants\";\n * compoundVariants: createNotificationColorVariants(componentColors, ['default', 'solid', 'outline', 'soft'])\n *\n * @example Tooltip component\n * import { tooltipSolidColorClasses, createTooltipSoftColorVariants, componentColors } from \"../variants\";\n * color: tooltipSolidColorClasses,\n * compoundVariants: createTooltipSoftColorVariants(componentColors)\n *\n * @example Kbd component\n * import { createKbdColorVariants, componentColors } from \"../variants\";\n * compoundVariants: createKbdColorVariants(componentColors, ['solid', 'outline', 'soft'])\n *\n * @example Popover component\n * import { createPopoverColorVariants, componentColors } from \"../variants\";\n * compoundVariants: createPopoverColorVariants(componentColors, ['default', 'solid', 'soft'])\n */\n"]}
1
+ {"version":3,"sources":["../src/variants.ts"],"names":[],"mappings":"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","file":"chunk-LK4EPTNG.js","sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority'\n\nimport type { ButtonColor, ComponentColor } from './types'\n\n// ============================================================================\n// Color Variant Generators\n// ============================================================================\n\n/**\n * Color palette for component variants\n * Maps to Tailwind CSS v4 theme variables (--color-primary, --color-secondary, etc.)\n */\nexport const componentColors = [\n 'default',\n 'primary',\n 'secondary',\n 'accent',\n 'success',\n 'error',\n 'warning',\n 'info',\n] as const\n\nexport const buttonColors = [\n 'primary',\n 'secondary',\n 'accent',\n 'success',\n 'error',\n 'warning',\n 'info',\n] as const\n\n/**\n * Static class maps for Tailwind JIT compatibility\n * Template literals like `bg-${color}` don't work with Tailwind's JIT compiler\n */\nconst defaultVariantClasses: Record<ComponentColor, string> = {\n default: 'bg-background border border-border text-text-primary',\n primary: 'bg-background border border-primary text-text-primary',\n secondary: 'bg-background border border-secondary text-text-primary',\n accent: 'bg-background border border-accent text-text-primary',\n success: 'bg-background border border-success text-text-primary',\n error: 'bg-background border border-error text-text-primary',\n warning: 'bg-background border border-warning text-text-primary',\n info: 'bg-background border border-info text-text-primary',\n}\n\n/**\n * Generates compound variants for default style\n * Used by: Badge, Toast, and other components\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for cva\n */\nexport function createDefaultColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'default' as const,\n color: color as ComponentColor | ButtonColor,\n class: defaultVariantClasses[color as ComponentColor],\n }))\n}\n\nconst solidVariantClasses: Record<ComponentColor, string> = {\n default: 'bg-surface border border-border text-text-primary',\n primary: 'bg-primary text-background hover:bg-primary/90',\n secondary: 'bg-secondary text-background hover:bg-secondary/90',\n accent: 'bg-accent text-background hover:bg-accent/90',\n success: 'bg-success text-background hover:bg-success/90',\n error: 'bg-error text-background hover:bg-error/90',\n warning: 'bg-warning text-background hover:bg-warning/90',\n info: 'bg-info text-background hover:bg-info/90',\n}\n\n/**\n * Generates compound variants for solid color style\n * Used by: Button, Badge, Accordion, Toast\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for cva\n */\nexport function createSolidColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'solid' as const,\n color: color as ComponentColor | ButtonColor,\n class: solidVariantClasses[color as ComponentColor],\n }))\n}\n\nconst outlineVariantClasses: Record<ComponentColor, string> = {\n default: 'border border-border text-text-primary',\n primary: 'border border-primary text-primary hover:bg-primary/10',\n secondary: 'border border-secondary text-secondary hover:bg-secondary/10',\n accent: 'border border-accent text-accent hover:bg-accent/10',\n success: 'border border-success text-success hover:bg-success/10',\n error: 'border border-error text-error hover:bg-error/10',\n warning: 'border border-warning text-warning hover:bg-warning/10',\n info: 'border border-info text-info hover:bg-info/10',\n}\n\n/**\n * Generates compound variants for outline color style\n * Used by: Button, Badge, Accordion\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for cva\n */\nexport function createOutlineColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'outline' as const,\n color: color as ComponentColor | ButtonColor,\n class: outlineVariantClasses[color as ComponentColor],\n }))\n}\n\nconst softVariantClasses: Record<ComponentColor, string> = {\n default: 'bg-surface border border-border text-text-primary',\n primary: 'bg-primary/10 text-primary',\n secondary: 'bg-secondary/10 text-secondary',\n accent: 'bg-accent/10 text-accent',\n success: 'bg-success/10 text-success',\n error: 'bg-error/10 text-error',\n warning: 'bg-warning/10 text-warning',\n info: 'bg-info/10 text-info',\n}\n\n/**\n * Generates compound variants for soft/subtle color style\n * Used by: Badge, Accordion, Toast\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for cva\n */\nexport function createSoftColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'soft' as const,\n color: color as ComponentColor | ButtonColor,\n class: softVariantClasses[color as ComponentColor],\n }))\n}\n\nconst dashedVariantClasses: Record<ComponentColor, string> = {\n default: 'border-dashed border-border text-text-primary',\n primary: 'border-dashed border-primary text-primary hover:bg-primary/10',\n secondary: 'border-dashed border-secondary text-secondary hover:bg-secondary/10',\n accent: 'border-dashed border-accent text-accent hover:bg-accent/10',\n success: 'border-dashed border-success text-success hover:bg-success/10',\n error: 'border-dashed border-error text-error hover:bg-error/10',\n warning: 'border-dashed border-warning text-warning hover:bg-warning/10',\n info: 'border-dashed border-info text-info hover:bg-info/10',\n}\n\n/**\n * Generates compound variants for dashed border color style\n * Used by: Button\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for cva\n */\nexport function createDashedColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'dashed' as const,\n color: color as ComponentColor | ButtonColor,\n class: dashedVariantClasses[color as ComponentColor],\n }))\n}\n\nconst linkVariantClasses: Record<ComponentColor, string> = {\n default: 'text-text-primary hover:text-text-primary/80',\n primary: 'text-primary hover:text-primary/80',\n secondary: 'text-secondary hover:text-secondary/80',\n accent: 'text-accent hover:text-accent/80',\n success: 'text-success hover:text-success/80',\n error: 'text-error hover:text-error/80',\n warning: 'text-warning hover:text-warning/80',\n info: 'text-info hover:text-info/80',\n}\n\n/**\n * Generates compound variants for link/text-only color style\n * Used by: Button, Breadcrumbs\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for cva\n */\nexport function createLinkColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'link' as const,\n color: color as ComponentColor | ButtonColor,\n class: linkVariantClasses[color as ComponentColor],\n }))\n}\n\nconst ghostVariantClasses: Record<ComponentColor, string> = {\n default: 'text-text-primary hover:bg-surface',\n primary: 'text-primary hover:bg-primary/10',\n secondary: 'text-secondary hover:bg-secondary/10',\n accent: 'text-accent hover:bg-accent/10',\n success: 'text-success hover:bg-success/10',\n error: 'text-error hover:bg-error/10',\n warning: 'text-warning hover:bg-warning/10',\n info: 'text-info hover:bg-info/10',\n}\n\n/**\n * Generates compound variants for ghost (borderless) color style\n * Used by: Button, Table\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for cva\n */\nexport function createGhostColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'ghost' as const,\n color: color as ComponentColor | ButtonColor,\n class: ghostVariantClasses[color as ComponentColor],\n }))\n}\n\n/**\n * Complete color variant generator for components with multiple style variants\n * Combines all color variant generators into a single array\n *\n * @example\n * const buttonVariants = cva(\"base-classes\", {\n * variants: {\n * variant: { solid: \"\", outline: \"\", ghost: \"\" },\n * color: { primary: \"\", secondary: \"\", ... }\n * },\n * compoundVariants: createAllColorVariants(buttonColors, ['solid', 'outline', 'ghost'])\n * })\n */\n/**\n * Supported variant types for compound variant generation\n */\nexport type StyleVariantType = 'default' | 'solid' | 'outline' | 'soft' | 'dashed' | 'link' | 'ghost'\n\n/**\n * Complete color variant generator for components with multiple style variants\n * Combines all color variant generators into a single array\n *\n * Returns `any[]` for CVA (class-variance-authority) compatibility:\n * - CVA's CompoundVariant type is extremely complex and deeply nested\n * - Using specific types causes TypeScript inference failures in consuming components\n * - The `any` type allows CVA to properly infer variant combinations\n * - This is the recommended approach per CVA documentation for dynamic variant generation\n *\n * @param colors - Array of color names to generate variants for\n * @param variants - Array of style variant types to generate\n * @returns Array of compound variant objects for CVA\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function createAllColorVariants<V extends StyleVariantType>(\n colors: readonly string[],\n variants: V[],\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n): any[] {\n const variantGenerators = {\n default: createDefaultColorVariants,\n solid: createSolidColorVariants,\n outline: createOutlineColorVariants,\n soft: createSoftColorVariants,\n dashed: createDashedColorVariants,\n link: createLinkColorVariants,\n ghost: createGhostColorVariants,\n } as const\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return variants.flatMap((variant) => variantGenerators[variant](colors) as any[])\n}\n\n// ============================================================================\n// Shared Color Classes\n// ============================================================================\n\n/**\n * Text color classes for all component colors\n * Used by: Checkbox icons, Spinner, text elements\n */\nexport const textColorClasses = {\n default: 'text-text-primary',\n primary: 'text-primary',\n secondary: 'text-secondary',\n accent: 'text-accent',\n success: 'text-success',\n error: 'text-error',\n warning: 'text-warning',\n info: 'text-info',\n} as const\n\n/**\n * Background color classes for skeleton/placeholder (50% opacity)\n * Used by: Skeleton component\n */\nexport const bgSkeletonColorClasses = {\n default: 'bg-surface',\n primary: 'bg-primary/50',\n secondary: 'bg-secondary/50',\n accent: 'bg-accent/50',\n success: 'bg-success/50',\n error: 'bg-error/50',\n warning: 'bg-warning/50',\n info: 'bg-info/50',\n} as const\n\n/**\n * Focus ring color classes\n * Used by: Button, Switch, form elements\n */\nexport const focusRingColorClasses = {\n default: 'focus-visible:ring-border',\n primary: 'focus-visible:ring-primary',\n secondary: 'focus-visible:ring-secondary',\n accent: 'focus-visible:ring-accent',\n success: 'focus-visible:ring-success',\n error: 'focus-visible:ring-error',\n warning: 'focus-visible:ring-warning',\n info: 'focus-visible:ring-info',\n} as const\n\n/**\n * Combined background + border for checked/selected state\n * Used by: Checkbox, Radio checked states\n */\nexport const checkedColorClasses = {\n primary: 'bg-primary border-primary',\n secondary: 'bg-secondary border-secondary',\n accent: 'bg-accent border-accent',\n success: 'bg-success border-success',\n error: 'bg-error border-error',\n warning: 'bg-warning border-warning',\n info: 'bg-info border-info',\n} as const\n\n/**\n * Switch track colors (unchecked -> checked)\n * Used by: Switch component\n */\nexport const switchTrackColorClasses = {\n primary: 'bg-border peer-checked:bg-primary peer-focus-visible:ring-primary',\n secondary: 'bg-border peer-checked:bg-secondary peer-focus-visible:ring-secondary',\n accent: 'bg-border peer-checked:bg-accent peer-focus-visible:ring-accent',\n success: 'bg-border peer-checked:bg-success peer-focus-visible:ring-success',\n error: 'bg-border peer-checked:bg-error peer-focus-visible:ring-error',\n warning: 'bg-border peer-checked:bg-warning peer-focus-visible:ring-warning',\n info: 'bg-border peer-checked:bg-info peer-focus-visible:ring-info',\n} as const\n\n/**\n * Checkbox border colors (default -> checked)\n * Used by: Checkbox component\n */\nexport const checkboxBorderColorClasses = {\n primary: 'border-border checked:border-primary indeterminate:border-primary',\n secondary: 'border-border checked:border-secondary indeterminate:border-secondary',\n accent: 'border-border checked:border-accent indeterminate:border-accent',\n success: 'border-border checked:border-success indeterminate:border-success',\n error: 'border-border checked:border-error indeterminate:border-error',\n warning: 'border-border checked:border-warning indeterminate:border-warning',\n info: 'border-border checked:border-info indeterminate:border-info',\n} as const\n\n/**\n * Radio button inset shadow colors for checked state\n * Used by: Radio component\n */\nexport const radioCheckedColorClasses = {\n primary: 'checked:border-primary checked:shadow-[inset_0_0_0_2px_var(--color-background),inset_0_0_0_13px_var(--color-primary)]',\n secondary: 'checked:border-secondary checked:shadow-[inset_0_0_0_2px_var(--color-background),inset_0_0_0_13px_var(--color-secondary)]',\n accent: 'checked:border-accent checked:shadow-[inset_0_0_0_2px_var(--color-background),inset_0_0_0_13px_var(--color-accent)]',\n success: 'checked:border-success checked:shadow-[inset_0_0_0_2px_var(--color-background),inset_0_0_0_13px_var(--color-success)]',\n error: 'checked:border-error checked:shadow-[inset_0_0_0_2px_var(--color-background),inset_0_0_0_13px_var(--color-error)]',\n warning: 'checked:border-warning checked:shadow-[inset_0_0_0_2px_var(--color-background),inset_0_0_0_13px_var(--color-warning)]',\n info: 'checked:border-info checked:shadow-[inset_0_0_0_2px_var(--color-background),inset_0_0_0_13px_var(--color-info)]',\n} as const\n\n\n// ============================================================================\n// Shared Text Color Variants\n// ============================================================================\n\n/**\n * Text-only color variants (no background)\n * Used by: Breadcrumbs, Text components, Labels\n */\nexport const textColorVariants = cva('', {\n variants: {\n color: {\n default: 'text-text-primary',\n primary: 'text-primary',\n secondary: 'text-secondary',\n accent: 'text-accent',\n success: 'text-success',\n error: 'text-error',\n warning: 'text-warning',\n info: 'text-info',\n },\n },\n defaultVariants: {\n color: 'default',\n },\n})\n\nexport type TextColorVariants = VariantProps<typeof textColorVariants>\n\n\n\n// ============================================================================\n// Notification/Alert Variant Generators\n// ============================================================================\n\nconst notificationSolidClasses: Record<ComponentColor, string> = {\n default: 'bg-surface text-text-primary',\n primary: 'bg-primary text-background',\n secondary: 'bg-secondary text-background',\n accent: 'bg-accent text-background',\n success: 'bg-success text-background',\n error: 'bg-error text-background',\n warning: 'bg-warning text-background',\n info: 'bg-info text-background',\n}\n\nconst notificationOutlinedClasses: Record<ComponentColor, string> = {\n default: 'bg-background border-border border-l-border text-text-primary',\n primary: 'bg-background border-primary border-l-primary text-primary',\n secondary: 'bg-background border-secondary border-l-secondary text-secondary',\n accent: 'bg-background border-accent border-l-accent text-accent',\n success: 'bg-background border-success border-l-success text-success',\n error: 'bg-background border-error border-l-error text-error',\n warning: 'bg-background border-warning border-l-warning text-warning',\n info: 'bg-background border-info border-l-info text-info',\n}\n\nconst notificationSoftClasses: Record<ComponentColor, string> = {\n default: 'bg-surface/50 text-text-primary border-l-border',\n primary: 'bg-primary/10 text-primary border-l-primary',\n secondary: 'bg-secondary/10 text-secondary border-l-secondary',\n accent: 'bg-accent/10 text-accent border-l-accent',\n success: 'bg-success/10 text-success border-l-success',\n error: 'bg-error/10 text-error border-l-error',\n warning: 'bg-warning/10 text-warning border-l-warning',\n info: 'bg-info/10 text-info border-l-info',\n}\n\n/**\n * Generates compound variants for notification solid style (with foreground text)\n * Used by: Notification, Alert components\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for CVA\n */\nexport function createNotificationSolidColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'solid' as const,\n color: color as ComponentColor,\n class: notificationSolidClasses[color as ComponentColor],\n }))\n}\n\n/**\n * Generates compound variants for notification outline style (border with thick left border)\n * Used by: Notification, Alert components\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for CVA\n */\nexport function createNotificationOutlineColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'outline' as const,\n color: color as ComponentColor,\n class: notificationOutlinedClasses[color as ComponentColor],\n }))\n}\n\n/**\n * Generates compound variants for notification soft style (subtle bg with left border)\n * Used by: Notification, Alert components\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for CVA\n */\nexport function createNotificationSoftColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'soft' as const,\n color: color as ComponentColor,\n class: notificationSoftClasses[color as ComponentColor],\n }))\n}\n\n/**\n * Notification variant type\n */\nexport type NotificationVariantType = 'default' | 'solid' | 'outline' | 'soft'\n\n/**\n * Complete notification color variant generator\n *\n * Returns `any[]` for CVA (class-variance-authority) compatibility.\n * See createAllColorVariants for detailed explanation.\n *\n * @param colors - Array of color names to generate variants for\n * @param variants - Array of notification variant types to generate\n * @returns Array of compound variant objects for CVA\n */\nexport function createNotificationColorVariants(\n colors: readonly string[],\n variants: NotificationVariantType[],\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n): any[] {\n const variantGenerators = {\n default: createDefaultColorVariants,\n solid: createNotificationSolidColorVariants,\n outline: createNotificationOutlineColorVariants,\n soft: createNotificationSoftColorVariants,\n } as const\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return variants.flatMap((variant) => variantGenerators[variant](colors) as any[])\n}\n\n// ============================================================================\n// Tooltip Variant Generators\n// ============================================================================\n\n/**\n * Tooltip solid color classes (background with contrasting text)\n * Used by: Tooltip component solid variant\n */\nexport const tooltipSolidColorClasses = {\n default: 'bg-text-primary text-background',\n primary: 'bg-primary text-background',\n secondary: 'bg-secondary text-background',\n accent: 'bg-accent text-background',\n success: 'bg-success text-background',\n error: 'bg-error text-background',\n warning: 'bg-warning text-background',\n info: 'bg-info text-background',\n} as const\n\nconst tooltipSoftClasses: Record<ComponentColor, string> = {\n default: 'bg-surface text-text-primary border-border',\n primary: 'bg-primary/20 text-primary border-primary/30',\n secondary: 'bg-secondary/20 text-secondary border-secondary/30',\n accent: 'bg-accent/20 text-accent border-accent/30',\n success: 'bg-success/20 text-success border-success/30',\n error: 'bg-error/20 text-error border-error/30',\n warning: 'bg-warning/20 text-warning border-warning/30',\n info: 'bg-info/20 text-info border-info/30',\n}\n\n/**\n * Generates compound variants for tooltip soft style\n * Used by: Tooltip component soft variant\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for CVA\n */\nexport function createTooltipSoftColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'soft' as const,\n color: color as ComponentColor,\n className: tooltipSoftClasses[color as ComponentColor],\n }))\n}\n\n// ============================================================================\n// Kbd Variant Generators\n// ============================================================================\n\nconst kbdSolidClasses: Record<ComponentColor, string> = {\n default: 'bg-text-secondary border-text-secondary text-background',\n primary: 'bg-primary border-primary text-background',\n secondary: 'bg-secondary border-secondary text-background',\n accent: 'bg-accent border-accent text-background',\n success: 'bg-success border-success text-background',\n error: 'bg-error border-error text-background',\n warning: 'bg-warning border-warning text-background',\n info: 'bg-info border-info text-background',\n}\n\nconst kbdOutlineClasses: Record<ComponentColor, string> = {\n default: 'bg-background border-border text-text-secondary',\n primary: 'bg-background border-primary text-primary',\n secondary: 'bg-background border-secondary text-secondary',\n accent: 'bg-background border-accent text-accent',\n success: 'bg-background border-success text-success',\n error: 'bg-background border-error text-error',\n warning: 'bg-background border-warning text-warning',\n info: 'bg-background border-info text-info',\n}\n\nconst kbdSoftClasses: Record<ComponentColor, string> = {\n default: 'bg-surface border-border text-text-secondary',\n primary: 'bg-primary/10 border-primary/20 text-primary',\n secondary: 'bg-secondary/10 border-secondary/20 text-secondary',\n accent: 'bg-accent/10 border-accent/20 text-accent',\n success: 'bg-success/10 border-success/20 text-success',\n error: 'bg-error/10 border-error/20 text-error',\n warning: 'bg-warning/10 border-warning/20 text-warning',\n info: 'bg-info/10 border-info/20 text-info',\n}\n\n/**\n * Generates compound variants for Kbd solid style\n * Used by: Kbd component\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for CVA\n */\nexport function createKbdSolidColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'solid' as const,\n color: color as ComponentColor,\n class: kbdSolidClasses[color as ComponentColor],\n }))\n}\n\n/**\n * Generates compound variants for Kbd outline style\n * Used by: Kbd component\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for CVA\n */\nexport function createKbdOutlineColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'outline' as const,\n color: color as ComponentColor,\n class: kbdOutlineClasses[color as ComponentColor],\n }))\n}\n\n/**\n * Generates compound variants for Kbd soft style\n * Used by: Kbd component\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for CVA\n */\nexport function createKbdSoftColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'soft' as const,\n color: color as ComponentColor,\n class: kbdSoftClasses[color as ComponentColor],\n }))\n}\n\n/**\n * Kbd variant type\n */\nexport type KbdVariantType = 'solid' | 'outline' | 'soft'\n\n/**\n * Complete Kbd color variant generator\n *\n * Returns `any[]` for CVA (class-variance-authority) compatibility.\n * See createAllColorVariants for detailed explanation.\n *\n * @param colors - Array of color names to generate variants for\n * @param variants - Array of kbd variant types to generate\n * @returns Array of compound variant objects for CVA\n */\nexport function createKbdColorVariants(\n colors: readonly string[],\n variants: KbdVariantType[],\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n): any[] {\n const variantGenerators = {\n solid: createKbdSolidColorVariants,\n outline: createKbdOutlineColorVariants,\n soft: createKbdSoftColorVariants,\n } as const\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return variants.flatMap((variant) => variantGenerators[variant](colors) as any[])\n}\n\n// ============================================================================\n// Popover Variant Generators\n// ============================================================================\n\nconst popoverDefaultClasses: Record<ComponentColor, string> = {\n default: 'bg-background border-border text-text-primary',\n primary: 'bg-background border-primary text-text-primary',\n secondary: 'bg-background border-secondary text-text-primary',\n accent: 'bg-background border-accent text-text-primary',\n success: 'bg-background border-success text-text-primary',\n error: 'bg-background border-error text-text-primary',\n warning: 'bg-background border-warning text-text-primary',\n info: 'bg-background border-info text-text-primary',\n}\n\nconst popoverSolidClasses: Record<ComponentColor, string> = {\n default: 'bg-surface border-border text-text-primary',\n primary: 'bg-primary border-primary text-background',\n secondary: 'bg-secondary border-secondary text-background',\n accent: 'bg-accent border-accent text-background',\n success: 'bg-success border-success text-background',\n error: 'bg-error border-error text-background',\n warning: 'bg-warning border-warning text-background',\n info: 'bg-info border-info text-background',\n}\n\nconst popoverSoftClasses: Record<ComponentColor, string> = {\n default: 'backdrop-blur-sm bg-surface/80 border-border text-text-primary',\n primary: 'backdrop-blur-sm bg-primary/10 border-primary/30 text-primary',\n secondary: 'backdrop-blur-sm bg-secondary/10 border-secondary/30 text-secondary',\n accent: 'backdrop-blur-sm bg-accent/10 border-accent/30 text-accent',\n success: 'backdrop-blur-sm bg-success/10 border-success/30 text-success',\n error: 'backdrop-blur-sm bg-error/10 border-error/30 text-error',\n warning: 'backdrop-blur-sm bg-warning/10 border-warning/30 text-warning',\n info: 'backdrop-blur-sm bg-info/10 border-info/30 text-info',\n}\n\n/**\n * Generates compound variants for Popover default style\n * Used by: Popover component\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for CVA\n */\nexport function createPopoverDefaultColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'default' as const,\n color: color as ComponentColor,\n class: popoverDefaultClasses[color as ComponentColor],\n }))\n}\n\n/**\n * Generates compound variants for Popover solid style\n * Used by: Popover component\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for CVA\n */\nexport function createPopoverSolidColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'solid' as const,\n color: color as ComponentColor,\n class: popoverSolidClasses[color as ComponentColor],\n }))\n}\n\n/**\n * Generates compound variants for Popover soft style (with backdrop blur)\n * Used by: Popover component\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for CVA\n */\nexport function createPopoverSoftColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'soft' as const,\n color: color as ComponentColor,\n class: popoverSoftClasses[color as ComponentColor],\n }))\n}\n\n/**\n * Popover variant type\n */\nexport type PopoverVariantType = 'default' | 'solid' | 'soft'\n\n/**\n * Complete Popover color variant generator\n *\n * Returns `any[]` for CVA (class-variance-authority) compatibility.\n * See createAllColorVariants for detailed explanation.\n *\n * @param colors - Array of color names to generate variants for\n * @param variants - Array of popover variant types to generate\n * @returns Array of compound variant objects for CVA\n */\nexport function createPopoverColorVariants(\n colors: readonly string[],\n variants: PopoverVariantType[],\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n): any[] {\n const variantGenerators = {\n default: createPopoverDefaultColorVariants,\n solid: createPopoverSolidColorVariants,\n soft: createPopoverSoftColorVariants,\n } as const\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return variants.flatMap((variant) => variantGenerators[variant](colors) as any[])\n}\n\n// ============================================================================\n// Export Usage Note\n// ============================================================================\n\n/**\n * To use these utilities in your components:\n *\n * @example Button component\n * import { createAllColorVariants, buttonColors } from \"../variants\";\n * compoundVariants: createAllColorVariants(buttonColors, ['solid', 'outline', 'dashed', 'link', 'ghost'])\n *\n * @example Badge component\n * import { createAllColorVariants, componentColors } from \"../variants\";\n * compoundVariants: createAllColorVariants(componentColors, ['solid', 'outline', 'soft'])\n *\n * @example Notification component\n * import { createNotificationColorVariants, componentColors } from \"../variants\";\n * compoundVariants: createNotificationColorVariants(componentColors, ['default', 'solid', 'outline', 'soft'])\n *\n * @example Tooltip component\n * import { tooltipSolidColorClasses, createTooltipSoftColorVariants, componentColors } from \"../variants\";\n * color: tooltipSolidColorClasses,\n * compoundVariants: createTooltipSoftColorVariants(componentColors)\n *\n * @example Kbd component\n * import { createKbdColorVariants, componentColors } from \"../variants\";\n * compoundVariants: createKbdColorVariants(componentColors, ['solid', 'outline', 'soft'])\n *\n * @example Popover component\n * import { createPopoverColorVariants, componentColors } from \"../variants\";\n * compoundVariants: createPopoverColorVariants(componentColors, ['default', 'solid', 'soft'])\n */\n"]}
@@ -1,4 +1,4 @@
1
- import { checkboxBorderColorClasses, checkedColorClasses, textColorClasses } from './chunk-NTPWR57C.js';
1
+ import { checkboxBorderColorClasses, checkedColorClasses, textColorClasses } from './chunk-LK4EPTNG.js';
2
2
  import { cn, iconSizes } from './chunk-NGYLRX6F.js';
3
3
  import { cva } from 'class-variance-authority';
4
4
  import { Check } from 'lucide-react';
@@ -100,27 +100,25 @@ var Checkbox = React.memo(
100
100
  checked: currentChecked
101
101
  }
102
102
  ),
103
- currentChecked && /* @__PURE__ */ jsx("div", { className: cn(
104
- "checkbox_indicator",
105
- "absolute inset-0 flex items-center justify-center pointer-events-none",
106
- classNames?.indicator
107
- ), children: indeterminate ? /* @__PURE__ */ jsx(
103
+ currentChecked && /* @__PURE__ */ jsx(
108
104
  "div",
109
105
  {
110
106
  className: cn(
111
- "w-[70%] h-[70%] rounded-xs border-2 border-background flex items-center justify-center",
112
- checkedColorClasses[color]
113
- )
114
- }
115
- ) : /* @__PURE__ */ jsx(
116
- Check,
117
- {
118
- className: cn(
119
- iconSizes[size],
120
- textColorClasses[color]
121
- )
107
+ "checkbox_indicator",
108
+ "absolute inset-0 flex items-center justify-center pointer-events-none",
109
+ classNames?.indicator
110
+ ),
111
+ children: indeterminate ? /* @__PURE__ */ jsx(
112
+ "div",
113
+ {
114
+ className: cn(
115
+ "w-[70%] h-[70%] rounded-xs border-2 border-background flex items-center justify-center",
116
+ checkedColorClasses[color]
117
+ )
118
+ }
119
+ ) : /* @__PURE__ */ jsx(Check, { className: cn(iconSizes[size], textColorClasses[color]) })
122
120
  }
123
- ) })
121
+ )
124
122
  ] });
125
123
  if (!label && !helperText && !error) return checkboxElement;
126
124
  return /* @__PURE__ */ jsxs("div", { className: cn("checkbox_root", "w-full", classNames?.root), children: [
@@ -170,5 +168,5 @@ Checkbox.displayName = "Checkbox";
170
168
  var checkbox_default = Checkbox;
171
169
 
172
170
  export { checkbox_default };
173
- //# sourceMappingURL=chunk-TTEBZZ3T.js.map
174
- //# sourceMappingURL=chunk-TTEBZZ3T.js.map
171
+ //# sourceMappingURL=chunk-N32VWE6V.js.map
172
+ //# sourceMappingURL=chunk-N32VWE6V.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/checkbox/index.tsx"],"names":[],"mappings":"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","file":"chunk-N32VWE6V.js","sourcesContent":["\"use client\";\n\nimport { cva } from \"class-variance-authority\";\nimport { Check } from \"lucide-react\";\nimport React, { useState, useCallback, useEffect, useId } from \"react\";\n\nimport { cn, iconSizes } from \"../utils\";\nimport {\n checkboxBorderColorClasses,\n checkedColorClasses,\n textColorClasses,\n} from \"../variants\";\nimport type { CheckboxProps } from \"./types\";\n\n/**\n * Merges multiple refs into a single callback ref.\n * Handles both callback refs and RefObject refs safely.\n */\nfunction useMergeRefs<T>(\n ...refs: (React.Ref<T> | undefined)[]\n): React.RefCallback<T> {\n // Store refs in a ref to avoid dependency array issues\n const refsRef = React.useRef(refs);\n refsRef.current = refs;\n\n return useCallback((instance: T | null) => {\n refsRef.current.forEach((ref) => {\n if (typeof ref === \"function\") {\n ref(instance);\n } else if (ref && typeof ref === \"object\") {\n (ref as React.MutableRefObject<T | null>).current = instance;\n }\n });\n }, []);\n}\n\nconst checkboxVariants = cva(\n \"appearance-none rounded border bg-background cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed outline-none\",\n {\n variants: {\n color: checkboxBorderColorClasses,\n size: {\n xs: \"w-(--checkbox-size-xs) h-(--checkbox-size-xs)\",\n sm: \"w-(--checkbox-size-sm) h-(--checkbox-size-sm)\",\n md: \"w-(--checkbox-size-md) h-(--checkbox-size-md)\",\n lg: \"w-(--checkbox-size-lg) h-(--checkbox-size-lg)\",\n },\n error: {\n true: \"border-error checked:border-error\",\n false: \"\",\n },\n },\n defaultVariants: {\n color: \"primary\",\n size: \"md\",\n },\n },\n);\n\nconst Checkbox = React.memo<CheckboxProps>(\n ({\n color = \"primary\",\n size = \"md\",\n label,\n helperText,\n error,\n indeterminate = false,\n className,\n checked,\n defaultChecked,\n ref,\n labelClassName,\n classNames,\n ...props\n }) => {\n const [internalChecked, setInternalChecked] = useState(\n defaultChecked ?? false,\n );\n const internalRef = React.useRef<HTMLInputElement>(null);\n\n // Generate unique ID for accessibility\n const uniqueId = useId();\n const helperId = `checkbox-helper-${uniqueId}`;\n const hasHelperText = !!(helperText || error);\n\n // Safely merge refs - handles both callback refs and RefObject refs\n const mergedRef = useMergeRefs(ref, internalRef);\n\n // Determine if controlled\n const isControlled = checked !== undefined;\n const currentChecked = isControlled ? checked : internalChecked;\n\n const onChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n if (!isControlled) {\n setInternalChecked(event.target.checked);\n }\n props.onChange?.(event);\n },\n [isControlled, props.onChange],\n );\n\n useEffect(() => {\n if (internalRef.current) {\n internalRef.current.indeterminate = indeterminate;\n }\n }, [indeterminate]);\n\n const checkboxElement = (\n <div className=\"relative inline-flex\">\n <input\n ref={mergedRef}\n type=\"checkbox\"\n className={cn(\n \"checkbox_checkbox\",\n checkboxVariants({ color, size, error: !!error }),\n className,\n classNames?.checkbox,\n )}\n aria-checked={indeterminate ? \"mixed\" : currentChecked}\n aria-invalid={!!error || undefined}\n aria-describedby={hasHelperText ? helperId : undefined}\n {...props}\n onChange={onChange}\n checked={currentChecked}\n />\n {currentChecked && (\n <div\n className={cn(\n \"checkbox_indicator\",\n \"absolute inset-0 flex items-center justify-center pointer-events-none\",\n classNames?.indicator,\n )}\n >\n {indeterminate ? (\n <div\n className={cn(\n \"w-[70%] h-[70%] rounded-xs border-2 border-background flex items-center justify-center\",\n checkedColorClasses[color],\n )}\n />\n ) : (\n <Check className={cn(iconSizes[size], textColorClasses[color])} />\n )}\n </div>\n )}\n </div>\n );\n\n if (!label && !helperText && !error) return checkboxElement;\n\n return (\n <div className={cn(\"checkbox_root\", \"w-full\", classNames?.root)}>\n <label\n className={cn(\n \"flex items-center gap-2\",\n !props.disabled && \"cursor-pointer\",\n )}\n >\n {checkboxElement}\n {label && (\n <span\n className={cn(\n \"checkbox_label\",\n \"text-sm text-text-primary select-none\",\n error && \"text-error\",\n props.disabled && \"opacity-50\",\n labelClassName,\n classNames?.label,\n )}\n >\n {label}\n </span>\n )}\n </label>\n {(helperText || error) && (\n <p\n id={helperId}\n className={cn(\n \"checkbox_description\",\n \"mt-1 ml-0 text-xs\",\n error ? \"text-error\" : \"text-text-secondary\",\n classNames?.description,\n )}\n >\n {typeof error === \"string\" ? error : helperText}\n </p>\n )}\n </div>\n );\n },\n);\n\nCheckbox.displayName = \"Checkbox\";\n\nexport type * from \"./types\";\nexport default Checkbox;\n"]}
@@ -1,4 +1,4 @@
1
- import { createNotificationColorVariants, componentColors } from './chunk-NTPWR57C.js';
1
+ import { createNotificationColorVariants, componentColors } from './chunk-LK4EPTNG.js';
2
2
  import { cn, iconSizes } from './chunk-NGYLRX6F.js';
3
3
  import { cva } from 'class-variance-authority';
4
4
  import { X } from 'lucide-react';
@@ -105,5 +105,5 @@ Notification.displayName = "Notification";
105
105
  var notification_default = Notification;
106
106
 
107
107
  export { notification_default };
108
- //# sourceMappingURL=chunk-WZ2KDHFP.js.map
109
- //# sourceMappingURL=chunk-WZ2KDHFP.js.map
108
+ //# sourceMappingURL=chunk-N3ZVPIFC.js.map
109
+ //# sourceMappingURL=chunk-N3ZVPIFC.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/notification/index.tsx"],"names":[],"mappings":"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","file":"chunk-WZ2KDHFP.js","sourcesContent":["'use client'\n\nimport { cva } from 'class-variance-authority'\nimport { X } from 'lucide-react'\nimport React from 'react'\n\nimport { cn, iconSizes } from '../utils'\nimport { componentColors, createNotificationColorVariants } from '../variants'\nimport type { NotificationProps } from './types'\n\nconst notificationVariants = cva(\n 'relative flex gap-3 rounded-md transition-all',\n {\n variants: {\n variant: {\n default: '',\n solid: '',\n outline: 'border-2 border-l-6',\n soft: 'border-l-6',\n },\n color: {\n default: '',\n primary: '',\n secondary: '',\n accent: '',\n success: '',\n error: '',\n warning: '',\n info: '',\n },\n size: {\n xs: 'p-2 text-xs gap-2',\n sm: 'p-3 text-sm gap-2.5',\n md: 'p-4 text-base gap-3',\n lg: 'p-5 text-lg gap-3.5',\n },\n },\n compoundVariants: createNotificationColorVariants(componentColors, [\n 'default',\n 'solid',\n 'outline',\n 'soft',\n ]),\n defaultVariants: {\n variant: 'default',\n color: 'default',\n size: 'md',\n },\n },\n)\n\nconst Notification = React.memo<NotificationProps>(\n ({\n title,\n description,\n variant = 'default',\n color = 'default',\n size = 'md',\n closable = true,\n onClose,\n action,\n className,\n classNames,\n children,\n }) => {\n return (\n <div\n role=\"alert\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n className={cn(\n 'notification_root',\n notificationVariants({ variant, color, size }),\n className,\n classNames?.root,\n )}\n >\n <div className={cn('flex-1 min-w-0', 'notification_content', classNames?.content)}>\n {title && <div className={cn('font-semibold mb-1 text-sm', 'notification_title', classNames?.title)}>{title}</div>}\n {description && (\n <div className={cn('text-sm opacity-90', 'notification_description', classNames?.description)}>{description}</div>\n )}\n {children && <div className=\"mt-2\">{children}</div>}\n {action && (\n <button\n type=\"button\"\n onClick={action.onClick}\n className={cn('mt-2 text-sm font-medium underline hover:no-underline', 'notification_action', classNames?.action)}\n >\n {action.label}\n </button>\n )}\n </div>\n\n {closable && (\n <button\n type=\"button\"\n onClick={onClose}\n className={cn('shrink-0 rounded-sm opacity-70 hover:opacity-100 transition-opacity', 'notification_closeButton', classNames?.closeButton)}\n aria-label=\"Close notification\"\n >\n <X className={cn(iconSizes[size], 'notification_icon', classNames?.icon)} aria-hidden=\"true\" />\n </button>\n )}\n </div>\n )\n },\n)\n\nNotification.displayName = 'Notification'\n\nexport type * from './types'\nexport default Notification\n"]}
1
+ {"version":3,"sources":["../src/notification/index.tsx"],"names":[],"mappings":"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","file":"chunk-N3ZVPIFC.js","sourcesContent":["'use client'\n\nimport { cva } from 'class-variance-authority'\nimport { X } from 'lucide-react'\nimport React from 'react'\n\nimport { cn, iconSizes } from '../utils'\nimport { componentColors, createNotificationColorVariants } from '../variants'\nimport type { NotificationProps } from './types'\n\nconst notificationVariants = cva(\n 'relative flex gap-3 rounded-md transition-all',\n {\n variants: {\n variant: {\n default: '',\n solid: '',\n outline: 'border-2 border-l-6',\n soft: 'border-l-6',\n },\n color: {\n default: '',\n primary: '',\n secondary: '',\n accent: '',\n success: '',\n error: '',\n warning: '',\n info: '',\n },\n size: {\n xs: 'p-2 text-xs gap-2',\n sm: 'p-3 text-sm gap-2.5',\n md: 'p-4 text-base gap-3',\n lg: 'p-5 text-lg gap-3.5',\n },\n },\n compoundVariants: createNotificationColorVariants(componentColors, [\n 'default',\n 'solid',\n 'outline',\n 'soft',\n ]),\n defaultVariants: {\n variant: 'default',\n color: 'default',\n size: 'md',\n },\n },\n)\n\nconst Notification = React.memo<NotificationProps>(\n ({\n title,\n description,\n variant = 'default',\n color = 'default',\n size = 'md',\n closable = true,\n onClose,\n action,\n className,\n classNames,\n children,\n }) => {\n return (\n <div\n role=\"alert\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n className={cn(\n 'notification_root',\n notificationVariants({ variant, color, size }),\n className,\n classNames?.root,\n )}\n >\n <div className={cn('flex-1 min-w-0', 'notification_content', classNames?.content)}>\n {title && <div className={cn('font-semibold mb-1 text-sm', 'notification_title', classNames?.title)}>{title}</div>}\n {description && (\n <div className={cn('text-sm opacity-90', 'notification_description', classNames?.description)}>{description}</div>\n )}\n {children && <div className=\"mt-2\">{children}</div>}\n {action && (\n <button\n type=\"button\"\n onClick={action.onClick}\n className={cn('mt-2 text-sm font-medium underline hover:no-underline', 'notification_action', classNames?.action)}\n >\n {action.label}\n </button>\n )}\n </div>\n\n {closable && (\n <button\n type=\"button\"\n onClick={onClose}\n className={cn('shrink-0 rounded-sm opacity-70 hover:opacity-100 transition-opacity', 'notification_closeButton', classNames?.closeButton)}\n aria-label=\"Close notification\"\n >\n <X className={cn(iconSizes[size], 'notification_icon', classNames?.icon)} aria-hidden=\"true\" />\n </button>\n )}\n </div>\n )\n },\n)\n\nNotification.displayName = 'Notification'\n\nexport type * from './types'\nexport default Notification\n"]}
@@ -1,4 +1,4 @@
1
- import { textColorClasses } from './chunk-NTPWR57C.js';
1
+ import { textColorClasses } from './chunk-LK4EPTNG.js';
2
2
  import { cn } from './chunk-NGYLRX6F.js';
3
3
  import { cva } from 'class-variance-authority';
4
4
  import React from 'react';
@@ -41,5 +41,5 @@ Spinner.displayName = "Spinner";
41
41
  var spinner_default = Spinner;
42
42
 
43
43
  export { Spinner, spinner_default };
44
- //# sourceMappingURL=chunk-QDHGE7IF.js.map
45
- //# sourceMappingURL=chunk-QDHGE7IF.js.map
44
+ //# sourceMappingURL=chunk-PHQOHVG3.js.map
45
+ //# sourceMappingURL=chunk-PHQOHVG3.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/spinner/index.tsx"],"names":[],"mappings":";;;;;;AAOA,IAAM,eAAA,GAAkB,GAAA;AAAA,EACtB,mFAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,gBAAA;AAAA,QACJ,EAAA,EAAI,gBAAA;AAAA,QACJ,EAAA,EAAI,kBAAA;AAAA,QACJ,EAAA,EAAI;AAAA,OACN;AAAA,MACA,KAAA,EAAO;AAAA,KACT;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM,IAAA;AAAA,MACN,KAAA,EAAO;AAAA;AACT;AAEJ,CAAA;AAEO,IAAM,UAAU,KAAA,CAAM,IAAA;AAAA,EAC3B,CAAC,EAAE,IAAA,GAAO,IAAA,EAAM,QAAQ,SAAA,EAAW,KAAA,EAAO,WAAU,KAAM;AACxD,IAAA,uBACE,IAAA,CAAC,SAAI,WAAA,EAAU,MAAA,EAAO,WAAW,EAAA,CAAG,cAAA,EAAgB,yCAAA,EAA2C,SAAS,CAAA,EACtG,QAAA,EAAA;AAAA,sBAAA,GAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAW,eAAA,CAAgB,EAAE,IAAA,EAAM,OAAO,CAAA;AAAA,UAC1C,IAAA,EAAK,QAAA;AAAA,UACL,cAAY,KAAA,IAAS;AAAA;AAAA,OACvB;AAAA,MACC,KAAA,oBAAS,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,+BAA+B,QAAA,EAAA,KAAA,EAAM;AAAA,KAAA,EACjE,CAAA;AAAA,EAEJ;AACF;AAEA,OAAA,CAAQ,WAAA,GAAc,SAAA;AAGtB,IAAO,eAAA,GAAQ","file":"chunk-QDHGE7IF.js","sourcesContent":["import { cva } from 'class-variance-authority'\nimport React from 'react'\n\nimport { cn } from '../utils'\nimport { textColorClasses } from '../variants'\nimport type { SpinnerProps } from './types'\n\nconst spinnerVariants = cva(\n 'inline-block border border-current border-t-transparent rounded-full animate-spin',\n {\n variants: {\n size: {\n xs: 'w-3 h-3 border',\n sm: 'w-4 h-4 border',\n md: 'w-6 h-6 border-2',\n lg: 'w-8 h-8 border-2',\n },\n color: textColorClasses,\n },\n defaultVariants: {\n size: 'sm',\n color: 'primary',\n },\n },\n)\n\nexport const Spinner = React.memo<SpinnerProps>(\n ({ size = 'sm', color = 'primary', label, className }) => {\n return (\n <div data-slot=\"root\" className={cn('spinner_root', 'inline-flex flex-col items-center gap-2', className)}>\n <div\n className={spinnerVariants({ size, color })}\n role=\"status\"\n aria-label={label || 'Loading'}\n />\n {label && <span className=\"text-sm text-text-secondary\">{label}</span>}\n </div>\n )\n },\n)\n\nSpinner.displayName = 'Spinner'\n\nexport type * from './types'\nexport default Spinner\n"]}
1
+ {"version":3,"sources":["../src/spinner/index.tsx"],"names":[],"mappings":";;;;;;AAOA,IAAM,eAAA,GAAkB,GAAA;AAAA,EACtB,mFAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,gBAAA;AAAA,QACJ,EAAA,EAAI,gBAAA;AAAA,QACJ,EAAA,EAAI,kBAAA;AAAA,QACJ,EAAA,EAAI;AAAA,OACN;AAAA,MACA,KAAA,EAAO;AAAA,KACT;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM,IAAA;AAAA,MACN,KAAA,EAAO;AAAA;AACT;AAEJ,CAAA;AAEO,IAAM,UAAU,KAAA,CAAM,IAAA;AAAA,EAC3B,CAAC,EAAE,IAAA,GAAO,IAAA,EAAM,QAAQ,SAAA,EAAW,KAAA,EAAO,WAAU,KAAM;AACxD,IAAA,uBACE,IAAA,CAAC,SAAI,WAAA,EAAU,MAAA,EAAO,WAAW,EAAA,CAAG,cAAA,EAAgB,yCAAA,EAA2C,SAAS,CAAA,EACtG,QAAA,EAAA;AAAA,sBAAA,GAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAW,eAAA,CAAgB,EAAE,IAAA,EAAM,OAAO,CAAA;AAAA,UAC1C,IAAA,EAAK,QAAA;AAAA,UACL,cAAY,KAAA,IAAS;AAAA;AAAA,OACvB;AAAA,MACC,KAAA,oBAAS,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,+BAA+B,QAAA,EAAA,KAAA,EAAM;AAAA,KAAA,EACjE,CAAA;AAAA,EAEJ;AACF;AAEA,OAAA,CAAQ,WAAA,GAAc,SAAA;AAGtB,IAAO,eAAA,GAAQ","file":"chunk-PHQOHVG3.js","sourcesContent":["import { cva } from 'class-variance-authority'\nimport React from 'react'\n\nimport { cn } from '../utils'\nimport { textColorClasses } from '../variants'\nimport type { SpinnerProps } from './types'\n\nconst spinnerVariants = cva(\n 'inline-block border border-current border-t-transparent rounded-full animate-spin',\n {\n variants: {\n size: {\n xs: 'w-3 h-3 border',\n sm: 'w-4 h-4 border',\n md: 'w-6 h-6 border-2',\n lg: 'w-8 h-8 border-2',\n },\n color: textColorClasses,\n },\n defaultVariants: {\n size: 'sm',\n color: 'primary',\n },\n },\n)\n\nexport const Spinner = React.memo<SpinnerProps>(\n ({ size = 'sm', color = 'primary', label, className }) => {\n return (\n <div data-slot=\"root\" className={cn('spinner_root', 'inline-flex flex-col items-center gap-2', className)}>\n <div\n className={spinnerVariants({ size, color })}\n role=\"status\"\n aria-label={label || 'Loading'}\n />\n {label && <span className=\"text-sm text-text-secondary\">{label}</span>}\n </div>\n )\n },\n)\n\nSpinner.displayName = 'Spinner'\n\nexport type * from './types'\nexport default Spinner\n"]}
@@ -1,4 +1,4 @@
1
- import { focusRingColorClasses, textColorClasses } from './chunk-NTPWR57C.js';
1
+ import { focusRingColorClasses, textColorClasses } from './chunk-LK4EPTNG.js';
2
2
  import { cn, iconSizes } from './chunk-NGYLRX6F.js';
3
3
  import { cva } from 'class-variance-authority';
4
4
  import { ChevronDown } from 'lucide-react';
@@ -332,5 +332,5 @@ Accordion.displayName = "Accordion";
332
332
  var accordion_default = Accordion;
333
333
 
334
334
  export { accordion_default };
335
- //# sourceMappingURL=chunk-CK6A2R66.js.map
336
- //# sourceMappingURL=chunk-CK6A2R66.js.map
335
+ //# sourceMappingURL=chunk-QF3NJUUG.js.map
336
+ //# sourceMappingURL=chunk-QF3NJUUG.js.map