@mdigital_ui/ui 0.2.4 → 0.2.6

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 (228) hide show
  1. package/dist/accordion/index.js +3 -3
  2. package/dist/badge/index.js +3 -3
  3. package/dist/breadcrumbs/index.js +5 -5
  4. package/dist/button/index.js +4 -4
  5. package/dist/button-group/index.js +2 -2
  6. package/dist/card/index.js +2 -2
  7. package/dist/carousel/index.js +2 -1
  8. package/dist/cascader/index.js +2 -2
  9. package/dist/chart/index.js +2 -2
  10. package/dist/checkbox/index.js +3 -3
  11. package/dist/checkbox-group/index.js +2 -2
  12. package/dist/chunk-22FIGRGO.js +312 -0
  13. package/dist/chunk-22FIGRGO.js.map +1 -0
  14. package/dist/{chunk-GEWR5ROK.js → chunk-23BPDLT4.js} +9 -16
  15. package/dist/chunk-23BPDLT4.js.map +1 -0
  16. package/dist/{chunk-YNNAOXU5.js → chunk-2OGZENFC.js} +3 -4
  17. package/dist/chunk-2OGZENFC.js.map +1 -0
  18. package/dist/{chunk-SOV4PE3P.js → chunk-35K7N4JT.js} +11 -4
  19. package/dist/chunk-35K7N4JT.js.map +1 -0
  20. package/dist/chunk-3QKPSJTV.js +120 -0
  21. package/dist/chunk-3QKPSJTV.js.map +1 -0
  22. package/dist/chunk-3WVJE5MF.js +735 -0
  23. package/dist/chunk-3WVJE5MF.js.map +1 -0
  24. package/dist/chunk-555KXZRK.js +73 -0
  25. package/dist/chunk-555KXZRK.js.map +1 -0
  26. package/dist/{chunk-FYHQDFKE.js → chunk-6IPISGTP.js} +31 -9
  27. package/dist/chunk-6IPISGTP.js.map +1 -0
  28. package/dist/chunk-6MYKJE6A.js +312 -0
  29. package/dist/chunk-6MYKJE6A.js.map +1 -0
  30. package/dist/{chunk-6V5I5HJ2.js → chunk-6PFBSVLK.js} +4 -4
  31. package/dist/{chunk-6V5I5HJ2.js.map → chunk-6PFBSVLK.js.map} +1 -1
  32. package/dist/{chunk-267WNY3E.js → chunk-77YTCM7G.js} +53 -60
  33. package/dist/chunk-77YTCM7G.js.map +1 -0
  34. package/dist/{chunk-XMAH5PDW.js → chunk-7BUNJYZO.js} +11 -10
  35. package/dist/chunk-7BUNJYZO.js.map +1 -0
  36. package/dist/chunk-7ODPSHIQ.js +78 -0
  37. package/dist/chunk-7ODPSHIQ.js.map +1 -0
  38. package/dist/{chunk-ZNJ7M5QK.js → chunk-7TN4PGYF.js} +29 -22
  39. package/dist/chunk-7TN4PGYF.js.map +1 -0
  40. package/dist/{chunk-RPAQAZTI.js → chunk-7YPX6NJK.js} +3 -3
  41. package/dist/{chunk-RPAQAZTI.js.map → chunk-7YPX6NJK.js.map} +1 -1
  42. package/dist/{chunk-LEKLQR4I.js → chunk-ARK3EROZ.js} +55 -38
  43. package/dist/chunk-ARK3EROZ.js.map +1 -0
  44. package/dist/chunk-AVPPV5OM.js +203 -0
  45. package/dist/chunk-AVPPV5OM.js.map +1 -0
  46. package/dist/{chunk-NNSS366W.js → chunk-BYWYC7RC.js} +38 -5
  47. package/dist/chunk-BYWYC7RC.js.map +1 -0
  48. package/dist/{chunk-R225A5II.js → chunk-C2MZL644.js} +3 -3
  49. package/dist/{chunk-R225A5II.js.map → chunk-C2MZL644.js.map} +1 -1
  50. package/dist/{chunk-7PKVBUGL.js → chunk-CPPFXCNB.js} +3 -3
  51. package/dist/{chunk-7PKVBUGL.js.map → chunk-CPPFXCNB.js.map} +1 -1
  52. package/dist/chunk-DP6AWUH5.js +93 -0
  53. package/dist/chunk-DP6AWUH5.js.map +1 -0
  54. package/dist/{chunk-D3JWPGCA.js → chunk-DV5J5NLI.js} +6 -55
  55. package/dist/chunk-DV5J5NLI.js.map +1 -0
  56. package/dist/chunk-EFMKUCGX.js +104 -0
  57. package/dist/chunk-EFMKUCGX.js.map +1 -0
  58. package/dist/chunk-GFQXGLFD.js +256 -0
  59. package/dist/chunk-GFQXGLFD.js.map +1 -0
  60. package/dist/{chunk-SK5ECBBK.js → chunk-GGREAJO5.js} +8 -4
  61. package/dist/chunk-GGREAJO5.js.map +1 -0
  62. package/dist/{chunk-S5XJXU52.js → chunk-GH3CNX5N.js} +3 -3
  63. package/dist/{chunk-S5XJXU52.js.map → chunk-GH3CNX5N.js.map} +1 -1
  64. package/dist/{chunk-FCMVKFVV.js → chunk-HBEJ4S2Y.js} +11 -11
  65. package/dist/chunk-HBEJ4S2Y.js.map +1 -0
  66. package/dist/{chunk-SAVE5ACL.js → chunk-HWSLJGT7.js} +3 -3
  67. package/dist/{chunk-SAVE5ACL.js.map → chunk-HWSLJGT7.js.map} +1 -1
  68. package/dist/{chunk-BNILRB4T.js → chunk-IHKPZOE5.js} +10 -7
  69. package/dist/chunk-IHKPZOE5.js.map +1 -0
  70. package/dist/{chunk-I5ANSIDK.js → chunk-INH7KYCK.js} +17 -17
  71. package/dist/chunk-INH7KYCK.js.map +1 -0
  72. package/dist/{chunk-Y5A26EGR.js → chunk-IRNJZ754.js} +9 -9
  73. package/dist/{chunk-Y5A26EGR.js.map → chunk-IRNJZ754.js.map} +1 -1
  74. package/dist/{chunk-MLDX3Z67.js → chunk-IUUEYOMN.js} +3 -3
  75. package/dist/{chunk-MLDX3Z67.js.map → chunk-IUUEYOMN.js.map} +1 -1
  76. package/dist/chunk-JFGLDCAK.js +225 -0
  77. package/dist/chunk-JFGLDCAK.js.map +1 -0
  78. package/dist/{chunk-C7SXY3ZV.js → chunk-JGQOEAWL.js} +3 -3
  79. package/dist/{chunk-C7SXY3ZV.js.map → chunk-JGQOEAWL.js.map} +1 -1
  80. package/dist/{chunk-75XESYGN.js → chunk-L6EVOPWH.js} +5 -13
  81. package/dist/chunk-L6EVOPWH.js.map +1 -0
  82. package/dist/{chunk-XMKNYG7I.js → chunk-LSQLUYTD.js} +35 -24
  83. package/dist/chunk-LSQLUYTD.js.map +1 -0
  84. package/dist/{chunk-QPJL66S7.js → chunk-MDY3HCRC.js} +80 -41
  85. package/dist/chunk-MDY3HCRC.js.map +1 -0
  86. package/dist/chunk-MLNIKNLI.js +150 -0
  87. package/dist/chunk-MLNIKNLI.js.map +1 -0
  88. package/dist/{chunk-J3G5WWGR.js → chunk-NQB4V5P7.js} +6 -14
  89. package/dist/chunk-NQB4V5P7.js.map +1 -0
  90. package/dist/chunk-NZA526GC.js +106 -0
  91. package/dist/chunk-NZA526GC.js.map +1 -0
  92. package/dist/{chunk-FGWSUPVW.js → chunk-O2VJ6KP4.js} +8 -3
  93. package/dist/chunk-O2VJ6KP4.js.map +1 -0
  94. package/dist/{chunk-OALOWWO7.js → chunk-PQZB43VJ.js} +32 -36
  95. package/dist/chunk-PQZB43VJ.js.map +1 -0
  96. package/dist/{chunk-UAMFKX6L.js → chunk-QVCGNOBE.js} +34 -20
  97. package/dist/chunk-QVCGNOBE.js.map +1 -0
  98. package/dist/{chunk-ASW7TEAN.js → chunk-R2FZO7AM.js} +14 -14
  99. package/dist/chunk-R2FZO7AM.js.map +1 -0
  100. package/dist/{chunk-HUVXKOJC.js → chunk-SGMIDNPI.js} +13 -9
  101. package/dist/chunk-SGMIDNPI.js.map +1 -0
  102. package/dist/{chunk-DOKTHDG3.js → chunk-SMVVCZNM.js} +3 -3
  103. package/dist/{chunk-DOKTHDG3.js.map → chunk-SMVVCZNM.js.map} +1 -1
  104. package/dist/{chunk-FPOXTCYV.js → chunk-SOIF4SHB.js} +8 -8
  105. package/dist/chunk-SOIF4SHB.js.map +1 -0
  106. package/dist/{chunk-RMGIO27V.js → chunk-SYDNDYZJ.js} +20 -4
  107. package/dist/chunk-SYDNDYZJ.js.map +1 -0
  108. package/dist/chunk-TG2AECIN.js +446 -0
  109. package/dist/chunk-TG2AECIN.js.map +1 -0
  110. package/dist/{chunk-JLTDJ3VZ.js → chunk-TIMRHEKH.js} +4 -4
  111. package/dist/{chunk-JLTDJ3VZ.js.map → chunk-TIMRHEKH.js.map} +1 -1
  112. package/dist/chunk-TUTOU4X6.js +574 -0
  113. package/dist/chunk-TUTOU4X6.js.map +1 -0
  114. package/dist/chunk-TWZ5LXLL.js +254 -0
  115. package/dist/chunk-TWZ5LXLL.js.map +1 -0
  116. package/dist/{chunk-DPOSWW22.js → chunk-XG3KLPPS.js} +5 -3
  117. package/dist/chunk-XG3KLPPS.js.map +1 -0
  118. package/dist/{chunk-BP434VYV.js → chunk-Y2CXG3PT.js} +12 -12
  119. package/dist/chunk-Y2CXG3PT.js.map +1 -0
  120. package/dist/{chunk-ROR4E6IE.js → chunk-YII4K64U.js} +5 -5
  121. package/dist/{chunk-ROR4E6IE.js.map → chunk-YII4K64U.js.map} +1 -1
  122. package/dist/clipboard/index.js +2 -2
  123. package/dist/collapse/index.js +2 -2
  124. package/dist/command/index.js +3 -3
  125. package/dist/date-picker/index.js +4 -3
  126. package/dist/descriptions/index.js +2 -2
  127. package/dist/drawer/index.js +2 -2
  128. package/dist/dropdown/index.js +4 -3
  129. package/dist/empty/index.js +2 -2
  130. package/dist/fetching-overlay/index.js +4 -3
  131. package/dist/grid/index.js +2 -2
  132. package/dist/image/index.js +2 -2
  133. package/dist/index.d.ts +1358 -156
  134. package/dist/index.js +762 -65
  135. package/dist/index.js.map +1 -1
  136. package/dist/input/index.js +4 -3
  137. package/dist/input-group/index.js +2 -2
  138. package/dist/input-otp/index.js +2 -2
  139. package/dist/input-password/index.js +5 -4
  140. package/dist/kbd/index.js +3 -2
  141. package/dist/modal/index.js +2 -2
  142. package/dist/multi-select/index.js +4 -3
  143. package/dist/notification/index.js +3 -2
  144. package/dist/pagination/index.js +2 -2
  145. package/dist/popover/index.js +3 -2
  146. package/dist/progress/index.js +2 -2
  147. package/dist/radio/index.js +3 -2
  148. package/dist/radio-group/index.js +2 -2
  149. package/dist/rating/index.js +2 -2
  150. package/dist/ribbon/index.js +2 -2
  151. package/dist/select/index.js +5 -4
  152. package/dist/skeleton/index.js +3 -2
  153. package/dist/slider/index.js +2 -2
  154. package/dist/spinner/index.js +3 -2
  155. package/dist/stepper/index.js +2 -2
  156. package/dist/styles/base.css +2033 -1313
  157. package/dist/styles/global.css +1242 -459
  158. package/dist/switch/index.js +3 -2
  159. package/dist/table/index.js +10 -10
  160. package/dist/tabs/index.js +3 -3
  161. package/dist/textarea/index.js +2 -2
  162. package/dist/toggle/index.js +2 -2
  163. package/dist/toggle-group/index.js +2 -2
  164. package/dist/tooltip/index.js +3 -2
  165. package/dist/transfer/index.js +4 -4
  166. package/dist/tree/index.js +2 -2
  167. package/dist/tree-select/index.js +5 -4
  168. package/dist/upload/index.js +2 -2
  169. package/package.json +4 -1
  170. package/dist/chunk-267WNY3E.js.map +0 -1
  171. package/dist/chunk-2EKAF6EJ.js +0 -128
  172. package/dist/chunk-2EKAF6EJ.js.map +0 -1
  173. package/dist/chunk-3PFA3YG6.js +0 -228
  174. package/dist/chunk-3PFA3YG6.js.map +0 -1
  175. package/dist/chunk-56IXGP5C.js +0 -56
  176. package/dist/chunk-56IXGP5C.js.map +0 -1
  177. package/dist/chunk-5UEWVFF6.js +0 -212
  178. package/dist/chunk-5UEWVFF6.js.map +0 -1
  179. package/dist/chunk-75XESYGN.js.map +0 -1
  180. package/dist/chunk-ASW7TEAN.js.map +0 -1
  181. package/dist/chunk-AWPKZYHT.js +0 -152
  182. package/dist/chunk-AWPKZYHT.js.map +0 -1
  183. package/dist/chunk-BFO3ARVJ.js +0 -104
  184. package/dist/chunk-BFO3ARVJ.js.map +0 -1
  185. package/dist/chunk-BNILRB4T.js.map +0 -1
  186. package/dist/chunk-BP434VYV.js.map +0 -1
  187. package/dist/chunk-C3MX5EXL.js +0 -95
  188. package/dist/chunk-C3MX5EXL.js.map +0 -1
  189. package/dist/chunk-D3JWPGCA.js.map +0 -1
  190. package/dist/chunk-DPOSWW22.js.map +0 -1
  191. package/dist/chunk-FCMVKFVV.js.map +0 -1
  192. package/dist/chunk-FGWSUPVW.js.map +0 -1
  193. package/dist/chunk-FPOXTCYV.js.map +0 -1
  194. package/dist/chunk-FYHQDFKE.js.map +0 -1
  195. package/dist/chunk-G6TAVRTJ.js +0 -640
  196. package/dist/chunk-G6TAVRTJ.js.map +0 -1
  197. package/dist/chunk-GEWR5ROK.js.map +0 -1
  198. package/dist/chunk-HUVXKOJC.js.map +0 -1
  199. package/dist/chunk-I5ANSIDK.js.map +0 -1
  200. package/dist/chunk-J3G5WWGR.js.map +0 -1
  201. package/dist/chunk-KBCBVH7B.js +0 -51
  202. package/dist/chunk-KBCBVH7B.js.map +0 -1
  203. package/dist/chunk-KNQ7UQ2W.js +0 -143
  204. package/dist/chunk-KNQ7UQ2W.js.map +0 -1
  205. package/dist/chunk-KTAIRCOL.js +0 -100
  206. package/dist/chunk-KTAIRCOL.js.map +0 -1
  207. package/dist/chunk-LEKLQR4I.js.map +0 -1
  208. package/dist/chunk-NNSS366W.js.map +0 -1
  209. package/dist/chunk-OALOWWO7.js.map +0 -1
  210. package/dist/chunk-OOS3B7YZ.js +0 -94
  211. package/dist/chunk-OOS3B7YZ.js.map +0 -1
  212. package/dist/chunk-OQANRZPV.js +0 -197
  213. package/dist/chunk-OQANRZPV.js.map +0 -1
  214. package/dist/chunk-OW5A5IIF.js +0 -175
  215. package/dist/chunk-OW5A5IIF.js.map +0 -1
  216. package/dist/chunk-QPJL66S7.js.map +0 -1
  217. package/dist/chunk-RMGIO27V.js.map +0 -1
  218. package/dist/chunk-SK5ECBBK.js.map +0 -1
  219. package/dist/chunk-SOV4PE3P.js.map +0 -1
  220. package/dist/chunk-UAMFKX6L.js.map +0 -1
  221. package/dist/chunk-XMAH5PDW.js.map +0 -1
  222. package/dist/chunk-XMKNYG7I.js.map +0 -1
  223. package/dist/chunk-YNNAOXU5.js.map +0 -1
  224. package/dist/chunk-YZ6V6BQ7.js +0 -134
  225. package/dist/chunk-YZ6V6BQ7.js.map +0 -1
  226. package/dist/chunk-YZVSDRJD.js +0 -253
  227. package/dist/chunk-YZVSDRJD.js.map +0 -1
  228. package/dist/chunk-ZNJ7M5QK.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/variants.ts"],"names":[],"mappings":"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","file":"chunk-TUTOU4X6.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 * Shape of a generated compound variant object\n * Uses 'any' for CVA compatibility - CVA's compound variants type is complex\n * and using specific types causes type inference issues\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 * Foreground text color classes for solid backgrounds (contrast colors)\n * Used by: Solid buttons, badges, notifications - text that sits on colored backgrounds\n * Note: Uses 'text-background' for semantic colors as they typically have white/light foreground\n */\nexport const textForegroundColorClasses = {\n default: 'text-text-primary',\n primary: 'text-background',\n secondary: 'text-background',\n accent: 'text-background',\n success: 'text-background',\n error: 'text-background',\n warning: 'text-background',\n info: 'text-background',\n} as const\n\n/**\n * Background color classes (solid)\n * Used by: Solid buttons, badges, checked states\n */\nexport const bgColorClasses = {\n default: 'bg-surface',\n primary: 'bg-primary',\n secondary: 'bg-secondary',\n accent: 'bg-accent',\n success: 'bg-success',\n error: 'bg-error',\n warning: 'bg-warning',\n info: 'bg-info',\n} as const\n\n/**\n * Background color classes (soft/muted - 10% opacity)\n * Used by: Soft variants, hover states\n */\nexport const bgSoftColorClasses = {\n default: 'bg-surface',\n primary: 'bg-primary/10',\n secondary: 'bg-secondary/10',\n accent: 'bg-accent/10',\n success: 'bg-success/10',\n error: 'bg-error/10',\n warning: 'bg-warning/10',\n info: 'bg-info/10',\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 * Border color classes\n * Used by: Checkbox, Radio, Input borders\n */\nexport const borderColorClasses = {\n default: 'border-border',\n primary: 'border-primary',\n secondary: 'border-secondary',\n accent: 'border-accent',\n success: 'border-success',\n error: 'border-error',\n warning: 'border-warning',\n info: 'border-info',\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// Shared Icon Variants (Legacy - use textColorClasses instead)\n// ============================================================================\n\n/**\n * Icon color variants mapped to component colors\n * @deprecated Use textColorClasses instead\n */\nexport const iconColorClasses = textColorClasses\n\n/**\n * Helper to get icon color class for a given color\n * @deprecated Use textColorClasses[color] instead\n */\nexport function getIconColorClass(color: ButtonColor): string {\n return textColorClasses[color]\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// Shared Size Variants\n// ============================================================================\n\n/**\n * Standard component size scale (4 sizes: xs, sm, md, lg)\n * Used by: All components - this is the standardized size scale\n */\nexport const componentSizeVariants = {\n xs: 'xs',\n sm: 'sm',\n md: 'md',\n lg: 'lg',\n} as const\n\n// ============================================================================\n// Shared Spacing Utilities\n// ============================================================================\n\n/**\n * Common spacing values for consistent gaps, padding, and margins\n * Maps to Tailwind spacing scale\n *\n * Note: These are standard Tailwind values. For component-specific spacing,\n * use CSS custom properties defined in index.css (e.g., --button-padding-x-sm)\n */\nexport const commonSpacing = {\n '0.5': '0.125rem', // 2px\n '1': '0.25rem', // 4px\n '1.5': '0.375rem', // 6px\n '2': '0.5rem', // 8px\n '2.5': '0.625rem', // 10px\n '3': '0.75rem', // 12px\n '4': '1rem', // 16px\n '5': '1.25rem', // 20px\n '6': '1.5rem', // 24px\n '8': '2rem', // 32px\n} as const\n\n// ============================================================================\n// Component-Specific Variant Generators\n// ============================================================================\n\n/**\n * Accordion color style generator\n * Generates variant, color, and hover state combinations\n *\n * @param color - Component color\n * @param variant - Style variant (default, solid, soft)\n * @returns Combined class string\n */\nexport function getAccordionColorClass(\n color: ComponentColor,\n variant: 'default' | 'solid' | 'soft',\n): string {\n const colorMap = {\n default: {\n default: 'border-border bg-background text-text-primary hover:bg-surface',\n solid: 'border-border bg-surface text-text-primary hover:bg-surface/80',\n soft: 'border-border bg-surface/50 text-text-primary hover:bg-surface/70',\n },\n primary: {\n default:\n 'border-primary bg-background text-text-primary hover:bg-primary/5',\n solid: 'border-primary bg-primary text-background hover:bg-primary/90',\n soft: 'border-primary bg-primary/10 text-text-primary hover:bg-primary/20',\n },\n secondary: {\n default:\n 'border-secondary bg-background text-text-primary hover:bg-secondary/5',\n solid:\n 'border-secondary bg-secondary text-background hover:bg-secondary/90',\n soft: 'border-secondary bg-secondary/10 text-text-primary hover:bg-secondary/20',\n },\n accent: {\n default:\n 'border-accent bg-background text-text-primary hover:bg-accent/5',\n solid: 'border-accent bg-accent text-background hover:bg-accent/90',\n soft: 'border-accent bg-accent/10 text-text-primary hover:bg-accent/20',\n },\n success: {\n default:\n 'border-success bg-background text-text-primary hover:bg-success/5',\n solid: 'border-success bg-success text-background hover:bg-success/90',\n soft: 'border-success bg-success/10 text-text-primary hover:bg-success/20',\n },\n error: {\n default: 'border-error bg-background text-text-primary hover:bg-error/5',\n solid: 'border-error bg-error text-background hover:bg-error/90',\n soft: 'border-error bg-error/10 text-text-primary hover:bg-error/20',\n },\n warning: {\n default:\n 'border-warning bg-background text-text-primary hover:bg-warning/5',\n solid: 'border-warning bg-warning text-background hover:bg-warning/90',\n soft: 'border-warning bg-warning/10 text-text-primary hover:bg-warning/20',\n },\n info: {\n default: 'border-info bg-background text-text-primary hover:bg-info/5',\n solid: 'border-info bg-info text-background hover:bg-info/90',\n soft: 'border-info bg-info/10 text-text-primary hover:bg-info/20',\n },\n }\n\n return colorMap[color][variant]\n}\n\n/**\n * Checkbox/Radio indeterminate/checked state color generator\n * Generates background color for checked state with proper contrast\n *\n * @param color - Component color\n * @returns Background class string\n */\nexport function getCheckboxColorClass(color: ButtonColor): string {\n const colorMap = {\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 }\n\n return colorMap[color]\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 */\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 outlined style (border with thick left border)\n * Used by: Notification, Alert components\n */\nexport function createNotificationOutlinedColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'outlined' 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 */\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' | 'outlined' | 'soft'\n\n/**\n * Complete notification color variant generator\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 outlined: createNotificationOutlinedColorVariants,\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 */\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 */\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 */\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 */\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 */\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 */\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 */\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 */\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 */\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', 'outlined', '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"]}
@@ -0,0 +1,254 @@
1
+ import { Popover, PopoverTrigger, PopoverContent } from './chunk-EFMKUCGX.js';
2
+ import { cn } from './chunk-2OGZENFC.js';
3
+ import { cva } from 'class-variance-authority';
4
+ import React, { useState, useRef, useId, useEffect, useCallback } from 'react';
5
+ import { jsx, jsxs } from 'react/jsx-runtime';
6
+
7
+ var dropdownItemVariants = cva(
8
+ "relative cursor-pointer select-none text-text-primary transition-colors flex items-center gap-2 rounded-sm outline-none",
9
+ {
10
+ variants: {
11
+ size: {
12
+ xs: "px-2 py-1 text-xs",
13
+ sm: "px-3 py-1.5 text-sm",
14
+ md: "px-4 py-2 text-base",
15
+ lg: "px-5 py-2.5 text-lg"
16
+ },
17
+ disabled: {
18
+ true: "opacity-50 cursor-not-allowed",
19
+ false: "hover:bg-surface focus:bg-surface"
20
+ },
21
+ highlighted: {
22
+ true: "bg-surface",
23
+ false: ""
24
+ }
25
+ },
26
+ defaultVariants: {
27
+ size: "md",
28
+ disabled: false,
29
+ highlighted: false
30
+ }
31
+ }
32
+ );
33
+ var Dropdown = React.memo(
34
+ ({
35
+ children,
36
+ items,
37
+ render,
38
+ color = "default",
39
+ size = "md",
40
+ position = "left",
41
+ maxHeight = 300,
42
+ disabled = false,
43
+ fullWidth = false,
44
+ hover = false,
45
+ className,
46
+ onItemClick
47
+ }) => {
48
+ const [isOpen, setIsOpen] = useState(false);
49
+ const [highlightedIndex, setHighlightedIndex] = useState(-1);
50
+ const menuRef = useRef(null);
51
+ const itemRefs = useRef([]);
52
+ const uniqueId = useId();
53
+ const menuId = `dropdown-menu-${uniqueId}`;
54
+ const triggerId = `dropdown-trigger-${uniqueId}`;
55
+ const enabledIndices = items?.map((item, i) => !item.disabled ? i : -1).filter((i) => i !== -1) || [];
56
+ useEffect(() => {
57
+ if (!isOpen) {
58
+ setHighlightedIndex(-1);
59
+ }
60
+ }, [isOpen]);
61
+ useEffect(() => {
62
+ if (highlightedIndex >= 0 && itemRefs.current[highlightedIndex]) {
63
+ itemRefs.current[highlightedIndex]?.scrollIntoView({
64
+ block: "nearest"
65
+ });
66
+ }
67
+ }, [highlightedIndex]);
68
+ const handleItemClick = useCallback(
69
+ (item) => {
70
+ if (!item.disabled) {
71
+ item.onClick?.();
72
+ if (item.value !== void 0) {
73
+ onItemClick?.(item.value);
74
+ }
75
+ setIsOpen(false);
76
+ }
77
+ },
78
+ [onItemClick]
79
+ );
80
+ const handleClose = useCallback(() => {
81
+ setIsOpen(false);
82
+ }, []);
83
+ const handleOpen = useCallback(() => {
84
+ if (!disabled) {
85
+ setIsOpen(true);
86
+ }
87
+ }, [disabled]);
88
+ const handleToggle = useCallback(() => {
89
+ if (!disabled) {
90
+ setIsOpen((prev) => !prev);
91
+ }
92
+ }, [disabled]);
93
+ const handleKeyDown = useCallback(
94
+ (event) => {
95
+ if (!items?.length) return;
96
+ const currentEnabledPosition = enabledIndices.indexOf(highlightedIndex);
97
+ switch (event.key) {
98
+ case "ArrowDown":
99
+ event.preventDefault();
100
+ if (!isOpen) {
101
+ setIsOpen(true);
102
+ setHighlightedIndex(enabledIndices[0] ?? -1);
103
+ } else {
104
+ const nextIndex = currentEnabledPosition < enabledIndices.length - 1 ? enabledIndices[currentEnabledPosition + 1] : enabledIndices[0];
105
+ setHighlightedIndex(nextIndex ?? -1);
106
+ }
107
+ break;
108
+ case "ArrowUp":
109
+ event.preventDefault();
110
+ if (!isOpen) {
111
+ setIsOpen(true);
112
+ setHighlightedIndex(enabledIndices[enabledIndices.length - 1] ?? -1);
113
+ } else {
114
+ const prevIndex = currentEnabledPosition > 0 ? enabledIndices[currentEnabledPosition - 1] : enabledIndices[enabledIndices.length - 1];
115
+ setHighlightedIndex(prevIndex ?? -1);
116
+ }
117
+ break;
118
+ case "Home":
119
+ event.preventDefault();
120
+ if (isOpen) {
121
+ setHighlightedIndex(enabledIndices[0] ?? -1);
122
+ }
123
+ break;
124
+ case "End":
125
+ event.preventDefault();
126
+ if (isOpen) {
127
+ setHighlightedIndex(enabledIndices[enabledIndices.length - 1] ?? -1);
128
+ }
129
+ break;
130
+ case "Enter":
131
+ case " ":
132
+ event.preventDefault();
133
+ if (isOpen && highlightedIndex >= 0 && items[highlightedIndex]) {
134
+ handleItemClick(items[highlightedIndex]);
135
+ } else if (!isOpen) {
136
+ setIsOpen(true);
137
+ }
138
+ break;
139
+ case "Escape":
140
+ event.preventDefault();
141
+ setIsOpen(false);
142
+ break;
143
+ case "Tab":
144
+ setIsOpen(false);
145
+ break;
146
+ }
147
+ },
148
+ [items, isOpen, highlightedIndex, enabledIndices, handleItemClick]
149
+ );
150
+ const handleItemMouseEnter = useCallback((index) => {
151
+ setHighlightedIndex(index);
152
+ }, []);
153
+ return /* @__PURE__ */ jsx(
154
+ "div",
155
+ {
156
+ className: cn(
157
+ "relative",
158
+ fullWidth ? "w-full" : "inline-block",
159
+ className
160
+ ),
161
+ onMouseEnter: hover ? handleOpen : void 0,
162
+ onMouseLeave: hover ? () => setIsOpen(false) : void 0,
163
+ children: /* @__PURE__ */ jsxs(
164
+ Popover,
165
+ {
166
+ open: isOpen,
167
+ onOpenChange: setIsOpen,
168
+ children: [
169
+ /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
170
+ "div",
171
+ {
172
+ id: triggerId,
173
+ role: "button",
174
+ tabIndex: disabled ? -1 : 0,
175
+ "aria-haspopup": "menu",
176
+ "aria-expanded": isOpen,
177
+ "aria-controls": isOpen ? menuId : void 0,
178
+ "aria-disabled": disabled,
179
+ onClick: hover ? void 0 : handleToggle,
180
+ onKeyDown: handleKeyDown,
181
+ className: cn(
182
+ "flex outline-none",
183
+ !hover && "cursor-pointer",
184
+ fullWidth && "w-full",
185
+ disabled && "opacity-50 cursor-not-allowed"
186
+ ),
187
+ children
188
+ }
189
+ ) }),
190
+ /* @__PURE__ */ jsx(
191
+ PopoverContent,
192
+ {
193
+ className: "p-0 min-w-[140px]",
194
+ align: position === "left" ? "start" : "end",
195
+ sideOffset: 4,
196
+ color,
197
+ style: { maxHeight },
198
+ onOpenAutoFocus: (e) => e.preventDefault(),
199
+ children: /* @__PURE__ */ jsx(
200
+ "div",
201
+ {
202
+ ref: menuRef,
203
+ id: menuId,
204
+ role: "menu",
205
+ "aria-labelledby": triggerId,
206
+ className: "overflow-auto py-1",
207
+ style: { maxHeight },
208
+ onKeyDown: handleKeyDown,
209
+ children: render ? render({ close: handleClose }) : items?.map((item, idx) => /* @__PURE__ */ jsxs(
210
+ "div",
211
+ {
212
+ ref: (el) => {
213
+ itemRefs.current[idx] = el;
214
+ },
215
+ role: "menuitem",
216
+ tabIndex: item.disabled ? -1 : 0,
217
+ "aria-disabled": item.disabled,
218
+ className: dropdownItemVariants({
219
+ size,
220
+ disabled: !!item.disabled,
221
+ highlighted: highlightedIndex === idx
222
+ }),
223
+ onClick: () => handleItemClick(item),
224
+ onMouseEnter: () => handleItemMouseEnter(idx),
225
+ onKeyDown: (e) => {
226
+ if (e.key === "Enter" || e.key === " ") {
227
+ e.preventDefault();
228
+ handleItemClick(item);
229
+ }
230
+ },
231
+ children: [
232
+ item.icon && /* @__PURE__ */ jsx("span", { className: "shrink-0", "aria-hidden": "true", children: item.icon }),
233
+ /* @__PURE__ */ jsx("span", { className: "flex-1", children: item.label })
234
+ ]
235
+ },
236
+ `${item.value}-${idx}`
237
+ ))
238
+ }
239
+ )
240
+ }
241
+ )
242
+ ]
243
+ }
244
+ )
245
+ }
246
+ );
247
+ }
248
+ );
249
+ Dropdown.displayName = "Dropdown";
250
+ var dropdown_default = Dropdown;
251
+
252
+ export { dropdown_default };
253
+ //# sourceMappingURL=chunk-TWZ5LXLL.js.map
254
+ //# sourceMappingURL=chunk-TWZ5LXLL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/dropdown/index.tsx"],"names":[],"mappings":"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","file":"chunk-TWZ5LXLL.js","sourcesContent":["import { 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 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 'relative',\n fullWidth ? 'w-full' : 'inline-block',\n className,\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 'flex outline-none',\n !hover && 'cursor-pointer',\n fullWidth && 'w-full',\n disabled && 'opacity-50 cursor-not-allowed',\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=\"overflow-auto py-1\"\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={dropdownItemVariants({\n size,\n disabled: !!item.disabled,\n highlighted: highlightedIndex === idx,\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 className=\"shrink-0\" aria-hidden=\"true\">\n {item.icon}\n </span>\n )}\n <span className=\"flex-1\">{item.label}</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,4 +1,4 @@
1
- import { cn } from './chunk-YNNAOXU5.js';
1
+ import { cn } from './chunk-2OGZENFC.js';
2
2
  import { cva } from 'class-variance-authority';
3
3
  import React, { useState } from 'react';
4
4
  import { jsxs } from 'react/jsx-runtime';
@@ -101,6 +101,7 @@ var Toggle = React.memo(
101
101
  return /* @__PURE__ */ jsxs(
102
102
  "button",
103
103
  {
104
+ type: "button",
104
105
  className: cn(
105
106
  singleToggleVariants({ size }),
106
107
  getSingleToggleClasses(color, variant, pressed),
@@ -110,6 +111,7 @@ var Toggle = React.memo(
110
111
  ),
111
112
  onClick: handleClick,
112
113
  disabled,
114
+ "aria-pressed": pressed,
113
115
  children: [
114
116
  icon,
115
117
  children
@@ -122,5 +124,5 @@ Toggle.displayName = "Toggle";
122
124
  var toggle_default = Toggle;
123
125
 
124
126
  export { toggle_default };
125
- //# sourceMappingURL=chunk-DPOSWW22.js.map
126
- //# sourceMappingURL=chunk-DPOSWW22.js.map
127
+ //# sourceMappingURL=chunk-XG3KLPPS.js.map
128
+ //# sourceMappingURL=chunk-XG3KLPPS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/toggle/index.tsx"],"names":[],"mappings":"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","file":"chunk-XG3KLPPS.js","sourcesContent":["import { cva } from 'class-variance-authority'\nimport React, { useState } from 'react'\n\nimport { cn } from '../utils'\nimport type { SingleToggleProps } from './types'\n\n// Inactive hover states for each color\nconst inactiveHoverClasses = {\n default: 'text-text-secondary hover:text-text-primary hover:bg-surface',\n primary: 'text-text-secondary hover:text-primary hover:bg-primary/10',\n secondary: 'text-text-secondary hover:text-secondary hover:bg-secondary/10',\n accent: 'text-text-secondary hover:text-accent hover:bg-accent/10',\n success: 'text-text-secondary hover:text-success hover:bg-success/10',\n error: 'text-text-secondary hover:text-error hover:bg-error/10',\n warning: 'text-text-secondary hover:text-warning hover:bg-warning/10',\n info: 'text-text-secondary hover:text-info hover:bg-info/10',\n} as const\n\n// Active solid variant classes\nconst activeSolidClasses = {\n default: 'bg-border 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} as const\n\n// Active soft variant classes\nconst activeSoftClasses = {\n default: 'bg-border/20 text-text-primary',\n primary: 'bg-primary/20 text-primary',\n secondary: 'bg-secondary/20 text-secondary',\n accent: 'bg-accent/20 text-accent',\n success: 'bg-success/20 text-success',\n error: 'bg-error/20 text-error',\n warning: 'bg-warning/20 text-warning',\n info: 'bg-info/20 text-info',\n} as const\n\n// Active default variant classes\nconst activeDefaultClasses = {\n default: 'bg-surface text-text-primary',\n primary: 'border-primary bg-primary/10 text-primary',\n secondary: 'border-secondary bg-secondary/10 text-secondary',\n accent: 'border-accent bg-accent/10 text-accent',\n success: 'border-success bg-success/10 text-success',\n error: 'border-error bg-error/10 text-error',\n warning: 'border-warning bg-warning/10 text-warning',\n info: 'border-info bg-info/10 text-info',\n} as const\n\ntype ToggleColor = keyof typeof inactiveHoverClasses\n\nconst getToggleClasses = (\n color: string,\n variant: string,\n isActive: boolean,\n) => {\n const toggleColor = color as ToggleColor\n\n if (!isActive) {\n return inactiveHoverClasses[toggleColor] || inactiveHoverClasses.default\n }\n\n // Active state\n if (variant === 'solid') {\n return activeSolidClasses[toggleColor] || activeSolidClasses.default\n }\n if (variant === 'soft') {\n return activeSoftClasses[toggleColor] || activeSoftClasses.default\n }\n return activeDefaultClasses[toggleColor] || activeDefaultClasses.default\n}\n\nconst singleToggleVariants = cva(\n 'inline-flex items-center gap-2 font-medium transition-colors cursor-pointer border rounded-md',\n {\n variants: {\n size: {\n xs: 'text-xs px-2 py-1',\n sm: 'text-sm px-3 py-1.5',\n md: 'text-base px-4 py-2',\n lg: 'text-lg px-5 py-2.5',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n)\n\n// Single toggle uses the same class logic as toggle group\nconst getSingleToggleClasses = (\n color: string,\n variant: string,\n isPressed: boolean,\n) => {\n return getToggleClasses(color, variant, isPressed)\n}\n\nconst Toggle = React.memo<SingleToggleProps>(\n ({\n pressed: controlledPressed,\n defaultPressed = false,\n color = 'primary',\n size = 'md',\n variant = 'default',\n onChange,\n disabled = false,\n icon,\n children,\n className,\n }) => {\n const [internalPressed, setInternalPressed] = useState(defaultPressed)\n\n const pressed =\n controlledPressed !== undefined ? controlledPressed : internalPressed\n\n const handleClick = () => {\n if (disabled) return\n\n const newPressed = !pressed\n if (controlledPressed === undefined) {\n setInternalPressed(newPressed)\n }\n onChange?.(newPressed)\n }\n\n return (\n <button\n type=\"button\"\n className={cn(\n singleToggleVariants({ size }),\n getSingleToggleClasses(color, variant, pressed),\n 'border',\n disabled && 'opacity-50 cursor-not-allowed',\n className,\n )}\n onClick={handleClick}\n disabled={disabled}\n aria-pressed={pressed}\n >\n {icon}\n {children}\n </button>\n )\n },\n)\n\nToggle.displayName = 'Toggle'\n\nexport type * from './types'\nexport default Toggle\n"]}
@@ -1,4 +1,4 @@
1
- import { cn } from './chunk-YNNAOXU5.js';
1
+ import { cn } from './chunk-2OGZENFC.js';
2
2
  import { ResponsiveContainer, LineChart as LineChart$1, BarChart as BarChart$1, AreaChart as AreaChart$1, ComposedChart as ComposedChart$1, PieChart as PieChart$1, Tooltip, Legend, Pie, Cell, CartesianGrid, XAxis, YAxis, Area, Bar, Line } from 'recharts';
3
3
  import React from 'react';
4
4
  import { cva } from 'class-variance-authority';
@@ -9,10 +9,10 @@ var chartContainerVariants = cva(
9
9
  {
10
10
  variants: {
11
11
  size: {
12
- sm: "h-[var(--chart-height-sm)]",
13
- md: "h-[var(--chart-height-md)]",
14
- lg: "h-[var(--chart-height-lg)]",
15
- xl: "h-[var(--chart-height-xl)]"
12
+ xs: "h-(--chart-height-xs)",
13
+ sm: "h-(--chart-height-sm)",
14
+ md: "h-(--chart-height-md)",
15
+ lg: "h-(--chart-height-lg)"
16
16
  }
17
17
  },
18
18
  defaultVariants: {
@@ -184,7 +184,7 @@ var LineChart = React.memo(
184
184
  "flex items-center justify-center",
185
185
  className
186
186
  ),
187
- children: /* @__PURE__ */ jsx("div", { className: "animate-pulse text-text-muted", children: "Loading chart..." })
187
+ children: /* @__PURE__ */ jsx("div", { className: "animate-pulse text-text-secondary", children: "Loading chart..." })
188
188
  }
189
189
  );
190
190
  }
@@ -237,7 +237,7 @@ var BarChart = React.memo(
237
237
  "flex items-center justify-center",
238
238
  className
239
239
  ),
240
- children: /* @__PURE__ */ jsx("div", { className: "animate-pulse text-text-muted", children: "Loading chart..." })
240
+ children: /* @__PURE__ */ jsx("div", { className: "animate-pulse text-text-secondary", children: "Loading chart..." })
241
241
  }
242
242
  );
243
243
  }
@@ -290,7 +290,7 @@ var AreaChart = React.memo(
290
290
  "flex items-center justify-center",
291
291
  className
292
292
  ),
293
- children: /* @__PURE__ */ jsx("div", { className: "animate-pulse text-text-muted", children: "Loading chart..." })
293
+ children: /* @__PURE__ */ jsx("div", { className: "animate-pulse text-text-secondary", children: "Loading chart..." })
294
294
  }
295
295
  );
296
296
  }
@@ -343,7 +343,7 @@ var ComposedChart = React.memo(
343
343
  "flex items-center justify-center",
344
344
  className
345
345
  ),
346
- children: /* @__PURE__ */ jsx("div", { className: "animate-pulse text-text-muted", children: "Loading chart..." })
346
+ children: /* @__PURE__ */ jsx("div", { className: "animate-pulse text-text-secondary", children: "Loading chart..." })
347
347
  }
348
348
  );
349
349
  }
@@ -394,7 +394,7 @@ var PieChart = React.memo(
394
394
  "flex items-center justify-center",
395
395
  className
396
396
  ),
397
- children: /* @__PURE__ */ jsx("div", { className: "animate-pulse text-text-muted", children: "Loading chart..." })
397
+ children: /* @__PURE__ */ jsx("div", { className: "animate-pulse text-text-secondary", children: "Loading chart..." })
398
398
  }
399
399
  );
400
400
  }
@@ -444,5 +444,5 @@ var PieChart = React.memo(
444
444
  PieChart.displayName = "PieChart";
445
445
 
446
446
  export { AreaChart, BarChart, ComposedChart, LineChart, PieChart, axisLineStyle, axisTickStyle, chartContainerVariants, cursorStyle, getChartColor, gridStyle, legendStyle, tooltipStyle };
447
- //# sourceMappingURL=chunk-BP434VYV.js.map
448
- //# sourceMappingURL=chunk-BP434VYV.js.map
447
+ //# sourceMappingURL=chunk-Y2CXG3PT.js.map
448
+ //# sourceMappingURL=chunk-Y2CXG3PT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/chart/utils.ts","../src/chart/index.tsx"],"names":["RechartsLineChart","RechartsBarChart","RechartsAreaChart","RechartsComposedChart","RechartsPieChart"],"mappings":"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","file":"chunk-Y2CXG3PT.js","sourcesContent":["import { cva } from 'class-variance-authority'\n\nexport const chartContainerVariants = cva(\n 'w-full rounded-lg border border-border bg-card shadow-sm p-6 transition-all duration-200 hover:shadow-md',\n {\n variants: {\n size: {\n xs: 'h-(--chart-height-xs)',\n sm: 'h-(--chart-height-sm)',\n md: 'h-(--chart-height-md)',\n lg: 'h-(--chart-height-lg)',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n)\n\n// Default color palette using theme colors\nexport const defaultColors = [\n 'var(--color-primary)',\n 'var(--color-secondary)',\n 'var(--color-success)',\n 'var(--color-warning)',\n 'var(--color-error)',\n 'var(--color-info)',\n]\n\nexport const getChartColor = (index: number): string | undefined => {\n return defaultColors[index % defaultColors.length]\n}\n\n// Shared style objects for Recharts components (uses CSS variables directly)\nexport const tooltipStyle = {\n backgroundColor: 'var(--color-card)',\n border: '1px solid var(--color-border)',\n borderRadius: 'var(--radius-md)',\n fontSize: 'var(--font-size-xs)',\n boxShadow: 'var(--shadow-md)',\n}\n\nexport const legendStyle = {\n fontSize: 'var(--font-size-xs)',\n}\n\nexport const axisTickStyle = {\n fontSize: 'var(--font-size-xs)',\n fill: 'var(--color-text-secondary)',\n}\n\nexport const axisLineStyle = {\n stroke: 'var(--color-border)',\n}\n\nexport const gridStyle = {\n stroke: 'var(--color-border)',\n opacity: 0.3,\n}\n\nexport const cursorStyle = {\n fill: 'var(--color-surface)',\n opacity: 0.5,\n}\n","import {\n Area,\n Bar,\n CartesianGrid,\n Cell,\n Legend,\n Line,\n Pie,\n AreaChart as RechartsAreaChart,\n BarChart as RechartsBarChart,\n ComposedChart as RechartsComposedChart,\n LineChart as RechartsLineChart,\n PieChart as RechartsPieChart,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n YAxis,\n} from 'recharts'\nimport React from 'react'\n\nimport { cn } from '../utils'\nimport type {\n AreaChartProps,\n BarChartProps,\n ChartSeries,\n ComposedChartProps,\n LineChartProps,\n PieChartProps,\n} from './types'\nimport {\n axisLineStyle,\n axisTickStyle,\n chartContainerVariants,\n cursorStyle,\n getChartColor,\n gridStyle,\n legendStyle,\n tooltipStyle,\n} from './utils'\n\n// Shared rendering logic for series\nconst renderSeriesItem = (\n seriesItem: ChartSeries,\n index: number,\n defaultType: 'line' | 'bar' | 'area',\n) => {\n const color = seriesItem.color || getChartColor(index)\n const type = seriesItem.type || defaultType\n const key = `${type}-${seriesItem.dataKey}`\n\n switch (type) {\n case 'line':\n return (\n <Line\n key={key}\n type=\"monotone\"\n dataKey={seriesItem.dataKey}\n stroke={color}\n strokeWidth={2.5}\n name={seriesItem.name || seriesItem.dataKey}\n dot={{ fill: color, strokeWidth: 2, r: 4 }}\n activeDot={{ r: 6, strokeWidth: 0 }}\n />\n )\n case 'bar':\n return (\n <Bar\n key={key}\n dataKey={seriesItem.dataKey}\n fill={color}\n name={seriesItem.name || seriesItem.dataKey}\n radius={[4, 4, 0, 0]}\n />\n )\n case 'area':\n return (\n <Area\n key={key}\n type=\"monotone\"\n dataKey={seriesItem.dataKey}\n stroke={color}\n fill={color}\n fillOpacity={0.2}\n strokeWidth={2.5}\n name={seriesItem.name || seriesItem.dataKey}\n />\n )\n default:\n return null\n }\n}\n\n// Shared chart elements\ninterface CartesianChartElementsProps {\n xAxisKey: string\n showGrid?: boolean\n showTooltip?: boolean\n showLegend?: boolean\n xAxisLabel?: string\n yAxisLabel?: string\n}\n\nconst CartesianChartElements = ({\n xAxisKey,\n showGrid,\n showTooltip,\n showLegend,\n xAxisLabel,\n yAxisLabel,\n}: CartesianChartElementsProps) => (\n <>\n {showGrid && (\n <CartesianGrid\n strokeDasharray=\"3 3\"\n {...gridStyle}\n />\n )}\n <XAxis\n dataKey={xAxisKey}\n stroke=\"var(--color-text-secondary)\"\n tick={axisTickStyle}\n axisLine={axisLineStyle}\n tickLine={axisLineStyle}\n label={\n xAxisLabel\n ? { value: xAxisLabel, position: 'bottom', ...axisTickStyle }\n : undefined\n }\n />\n <YAxis\n stroke=\"var(--color-text-secondary)\"\n tick={axisTickStyle}\n axisLine={axisLineStyle}\n tickLine={axisLineStyle}\n label={\n yAxisLabel\n ? {\n value: yAxisLabel,\n angle: -90,\n position: 'left',\n ...axisTickStyle,\n }\n : undefined\n }\n />\n {showTooltip && (\n <Tooltip\n contentStyle={tooltipStyle}\n cursor={cursorStyle}\n />\n )}\n {showLegend && (\n <Legend\n wrapperStyle={legendStyle}\n iconType=\"circle\"\n iconSize={8}\n />\n )}\n </>\n)\n\n// Line Chart Component\nexport const LineChart = React.memo<LineChartProps>(\n ({\n data,\n xAxisKey,\n series,\n size = 'md',\n className,\n loading = false,\n showGrid = true,\n showLegend = true,\n showTooltip = true,\n xAxisLabel,\n yAxisLabel,\n }) => {\n if (loading) {\n return (\n <div\n className={cn(\n chartContainerVariants({ size }),\n 'flex items-center justify-center',\n className,\n )}\n >\n <div className=\"animate-pulse text-text-secondary\">Loading chart...</div>\n </div>\n )\n }\n\n return (\n <div className={cn(chartContainerVariants({ size }), className)}>\n <ResponsiveContainer\n width=\"100%\"\n height=\"100%\"\n >\n <RechartsLineChart data={data}>\n <CartesianChartElements\n xAxisKey={xAxisKey}\n showGrid={showGrid}\n showTooltip={showTooltip}\n showLegend={showLegend}\n xAxisLabel={xAxisLabel}\n yAxisLabel={yAxisLabel}\n />\n {series.map((seriesItem, index) =>\n renderSeriesItem(seriesItem, index, 'line'),\n )}\n </RechartsLineChart>\n </ResponsiveContainer>\n </div>\n )\n },\n)\n\nLineChart.displayName = 'LineChart'\n\n// Bar Chart Component\nexport const BarChart = React.memo<BarChartProps>(\n ({\n data,\n xAxisKey,\n series,\n size = 'md',\n className,\n loading = false,\n showGrid = true,\n showLegend = true,\n showTooltip = true,\n xAxisLabel,\n yAxisLabel,\n }) => {\n if (loading) {\n return (\n <div\n className={cn(\n chartContainerVariants({ size }),\n 'flex items-center justify-center',\n className,\n )}\n >\n <div className=\"animate-pulse text-text-secondary\">Loading chart...</div>\n </div>\n )\n }\n\n return (\n <div className={cn(chartContainerVariants({ size }), className)}>\n <ResponsiveContainer\n width=\"100%\"\n height=\"100%\"\n >\n <RechartsBarChart data={data}>\n <CartesianChartElements\n xAxisKey={xAxisKey}\n showGrid={showGrid}\n showTooltip={showTooltip}\n showLegend={showLegend}\n xAxisLabel={xAxisLabel}\n yAxisLabel={yAxisLabel}\n />\n {series.map((seriesItem, index) =>\n renderSeriesItem(seriesItem, index, 'bar'),\n )}\n </RechartsBarChart>\n </ResponsiveContainer>\n </div>\n )\n },\n)\n\nBarChart.displayName = 'BarChart'\n\n// Area Chart Component\nexport const AreaChart = React.memo<AreaChartProps>(\n ({\n data,\n xAxisKey,\n series,\n size = 'md',\n className,\n loading = false,\n showGrid = true,\n showLegend = true,\n showTooltip = true,\n xAxisLabel,\n yAxisLabel,\n }) => {\n if (loading) {\n return (\n <div\n className={cn(\n chartContainerVariants({ size }),\n 'flex items-center justify-center',\n className,\n )}\n >\n <div className=\"animate-pulse text-text-secondary\">Loading chart...</div>\n </div>\n )\n }\n\n return (\n <div className={cn(chartContainerVariants({ size }), className)}>\n <ResponsiveContainer\n width=\"100%\"\n height=\"100%\"\n >\n <RechartsAreaChart data={data}>\n <CartesianChartElements\n xAxisKey={xAxisKey}\n showGrid={showGrid}\n showTooltip={showTooltip}\n showLegend={showLegend}\n xAxisLabel={xAxisLabel}\n yAxisLabel={yAxisLabel}\n />\n {series.map((seriesItem, index) =>\n renderSeriesItem(seriesItem, index, 'area'),\n )}\n </RechartsAreaChart>\n </ResponsiveContainer>\n </div>\n )\n },\n)\n\nAreaChart.displayName = 'AreaChart'\n\n// Composed Chart Component (supports mixing line, bar, area)\nexport const ComposedChart = React.memo<ComposedChartProps>(\n ({\n data,\n xAxisKey,\n series,\n size = 'md',\n className,\n loading = false,\n showGrid = true,\n showLegend = true,\n showTooltip = true,\n xAxisLabel,\n yAxisLabel,\n }) => {\n if (loading) {\n return (\n <div\n className={cn(\n chartContainerVariants({ size }),\n 'flex items-center justify-center',\n className,\n )}\n >\n <div className=\"animate-pulse text-text-secondary\">Loading chart...</div>\n </div>\n )\n }\n\n return (\n <div className={cn(chartContainerVariants({ size }), className)}>\n <ResponsiveContainer\n width=\"100%\"\n height=\"100%\"\n >\n <RechartsComposedChart data={data}>\n <CartesianChartElements\n xAxisKey={xAxisKey}\n showGrid={showGrid}\n showTooltip={showTooltip}\n showLegend={showLegend}\n xAxisLabel={xAxisLabel}\n yAxisLabel={yAxisLabel}\n />\n {series.map((seriesItem, index) =>\n renderSeriesItem(seriesItem, index, 'line'),\n )}\n </RechartsComposedChart>\n </ResponsiveContainer>\n </div>\n )\n },\n)\n\nComposedChart.displayName = 'ComposedChart'\n\n// Pie Chart Component\nexport const PieChart = React.memo<PieChartProps>(\n ({\n data,\n dataKey,\n nameKey,\n size = 'md',\n className,\n loading = false,\n showLegend = true,\n showTooltip = true,\n innerRadius = 0,\n }) => {\n if (loading) {\n return (\n <div\n className={cn(\n chartContainerVariants({ size }),\n 'flex items-center justify-center',\n className,\n )}\n >\n <div className=\"animate-pulse text-text-secondary\">Loading chart...</div>\n </div>\n )\n }\n\n return (\n <div className={cn(chartContainerVariants({ size }), className)}>\n <ResponsiveContainer\n width=\"100%\"\n height=\"100%\"\n >\n <RechartsPieChart>\n {showTooltip && <Tooltip contentStyle={tooltipStyle} />}\n {showLegend && (\n <Legend\n wrapperStyle={legendStyle}\n iconType=\"circle\"\n iconSize={8}\n />\n )}\n <Pie\n data={data}\n dataKey={dataKey}\n nameKey={nameKey}\n cx=\"50%\"\n cy=\"50%\"\n innerRadius={innerRadius}\n outerRadius={80}\n label={{ ...axisTickStyle, fill: 'var(--color-text-primary)' }}\n paddingAngle={2}\n >\n {data.map((_, index) => (\n <Cell\n key={`cell-${index}`}\n fill={getChartColor(index)}\n stroke=\"var(--color-card)\"\n strokeWidth={2}\n />\n ))}\n </Pie>\n </RechartsPieChart>\n </ResponsiveContainer>\n </div>\n )\n },\n)\n\nPieChart.displayName = 'PieChart'\n\nexport type * from './types'\nexport {\n chartContainerVariants,\n getChartColor,\n tooltipStyle,\n legendStyle,\n axisTickStyle,\n axisLineStyle,\n gridStyle,\n cursorStyle,\n} from './utils'\n"]}
@@ -1,4 +1,4 @@
1
- import { cn } from './chunk-YNNAOXU5.js';
1
+ import { cn } from './chunk-2OGZENFC.js';
2
2
  import { cva } from 'class-variance-authority';
3
3
  import { InboxIcon } from 'lucide-react';
4
4
  import React from 'react';
@@ -20,7 +20,7 @@ var emptyContainerVariants = cva(
20
20
  }
21
21
  }
22
22
  );
23
- var emptyIconVariants = cva("text-text-muted mb-4", {
23
+ var emptyIconVariants = cva("text-text-secondary mb-4", {
24
24
  variants: {
25
25
  size: {
26
26
  xs: "w-8 h-8",
@@ -59,7 +59,7 @@ var emptyTitleVariants = cva("font-semibold text-text-primary mb-2", {
59
59
  size: "md"
60
60
  }
61
61
  });
62
- var emptyDescriptionVariants = cva("text-text-muted", {
62
+ var emptyDescriptionVariants = cva("text-text-secondary", {
63
63
  variants: {
64
64
  size: {
65
65
  xs: "text-[10px] max-w-[200px]",
@@ -115,5 +115,5 @@ Empty.displayName = "Empty";
115
115
  var empty_default = Empty;
116
116
 
117
117
  export { empty_default };
118
- //# sourceMappingURL=chunk-ROR4E6IE.js.map
119
- //# sourceMappingURL=chunk-ROR4E6IE.js.map
118
+ //# sourceMappingURL=chunk-YII4K64U.js.map
119
+ //# sourceMappingURL=chunk-YII4K64U.js.map