@etus/ui 0.4.0-beta.7 → 0.4.0-beta.9

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 (242) hide show
  1. package/dist/{chunk-KR3IVNQH.js → chunk-2FJJOHHH.js} +16 -10
  2. package/dist/chunk-2FJJOHHH.js.map +1 -0
  3. package/dist/{chunk-2YWWZEPE.js → chunk-2HM5Z2YP.js} +3 -3
  4. package/dist/{chunk-2YWWZEPE.js.map → chunk-2HM5Z2YP.js.map} +1 -1
  5. package/dist/{chunk-W4NC5CU5.js → chunk-2Q4I4VDB.js} +4 -4
  6. package/dist/{chunk-W4NC5CU5.js.map → chunk-2Q4I4VDB.js.map} +1 -1
  7. package/dist/{chunk-SCGKQ5RE.js → chunk-2ROFZG3A.js} +3 -3
  8. package/dist/{chunk-SCGKQ5RE.js.map → chunk-2ROFZG3A.js.map} +1 -1
  9. package/dist/chunk-2Z722V5K.js +231 -0
  10. package/dist/chunk-2Z722V5K.js.map +1 -0
  11. package/dist/chunk-37IIHQP4.js +233 -0
  12. package/dist/chunk-37IIHQP4.js.map +1 -0
  13. package/dist/{chunk-YP2ATSXP.js → chunk-3BBOSSDG.js} +14 -6
  14. package/dist/{chunk-YP2ATSXP.js.map → chunk-3BBOSSDG.js.map} +1 -1
  15. package/dist/{chunk-UFRMZ3M6.js → chunk-3JCV72FO.js} +6 -2
  16. package/dist/chunk-3JCV72FO.js.map +1 -0
  17. package/dist/{chunk-2UGDLAYC.js → chunk-45D4O7RK.js} +10 -3
  18. package/dist/chunk-45D4O7RK.js.map +1 -0
  19. package/dist/{chunk-OTSK2KAI.js → chunk-4EYYCHLD.js} +5 -5
  20. package/dist/{chunk-OTSK2KAI.js.map → chunk-4EYYCHLD.js.map} +1 -1
  21. package/dist/{chunk-QIETN4UU.js → chunk-55RLLBXW.js} +4 -4
  22. package/dist/{chunk-QIETN4UU.js.map → chunk-55RLLBXW.js.map} +1 -1
  23. package/dist/{chunk-FCT6FEEZ.js → chunk-5DMK7CVS.js} +5 -5
  24. package/dist/{chunk-FCT6FEEZ.js.map → chunk-5DMK7CVS.js.map} +1 -1
  25. package/dist/{chunk-J62TFQHR.js → chunk-5I7AXWJU.js} +13 -13
  26. package/dist/chunk-5I7AXWJU.js.map +1 -0
  27. package/dist/{chunk-65YSTUD2.js → chunk-5SUD32RK.js} +44 -14
  28. package/dist/chunk-5SUD32RK.js.map +1 -0
  29. package/dist/{chunk-VPNFYQBL.js → chunk-6DN2UAIR.js} +3 -3
  30. package/dist/chunk-6DN2UAIR.js.map +1 -0
  31. package/dist/{chunk-EGYWK2XX.js → chunk-7CTFBOD4.js} +3 -3
  32. package/dist/{chunk-EGYWK2XX.js.map → chunk-7CTFBOD4.js.map} +1 -1
  33. package/dist/{chunk-AWYOWR5N.js → chunk-C5HSYDJC.js} +3 -3
  34. package/dist/{chunk-AWYOWR5N.js.map → chunk-C5HSYDJC.js.map} +1 -1
  35. package/dist/{chunk-VFALJSXB.js → chunk-DCUFQJYP.js} +3 -3
  36. package/dist/chunk-DCUFQJYP.js.map +1 -0
  37. package/dist/{chunk-LATTRPLQ.js → chunk-E2TI5V67.js} +3 -3
  38. package/dist/{chunk-LATTRPLQ.js.map → chunk-E2TI5V67.js.map} +1 -1
  39. package/dist/{chunk-23BHD62H.js → chunk-EVZ2GZU4.js} +5 -5
  40. package/dist/chunk-EVZ2GZU4.js.map +1 -0
  41. package/dist/{chunk-IRKDMISK.js → chunk-G2MAGZHQ.js} +4 -3
  42. package/dist/chunk-G2MAGZHQ.js.map +1 -0
  43. package/dist/{chunk-4GQN76L7.js → chunk-G7PBPX3K.js} +3 -3
  44. package/dist/{chunk-4GQN76L7.js.map → chunk-G7PBPX3K.js.map} +1 -1
  45. package/dist/{chunk-36XTKR3B.js → chunk-GDSYLR7L.js} +4 -4
  46. package/dist/{chunk-36XTKR3B.js.map → chunk-GDSYLR7L.js.map} +1 -1
  47. package/dist/{chunk-ONQCNOLU.js → chunk-HDOR3SN3.js} +3 -3
  48. package/dist/{chunk-ONQCNOLU.js.map → chunk-HDOR3SN3.js.map} +1 -1
  49. package/dist/{chunk-PLLJNHWU.js → chunk-HI3T55XK.js} +3 -33
  50. package/dist/chunk-HI3T55XK.js.map +1 -0
  51. package/dist/chunk-HJ4E6YPW.js +236 -0
  52. package/dist/chunk-HJ4E6YPW.js.map +1 -0
  53. package/dist/{chunk-LS3WD6IZ.js → chunk-I55QJ4CU.js} +4 -4
  54. package/dist/{chunk-LS3WD6IZ.js.map → chunk-I55QJ4CU.js.map} +1 -1
  55. package/dist/{chunk-HKXQLWGR.js → chunk-IOWHM7ZY.js} +13 -11
  56. package/dist/chunk-IOWHM7ZY.js.map +1 -0
  57. package/dist/{chunk-ILAV2AZ4.js → chunk-IZC5YFGO.js} +3 -3
  58. package/dist/{chunk-ILAV2AZ4.js.map → chunk-IZC5YFGO.js.map} +1 -1
  59. package/dist/{chunk-Y7UFBSAD.js → chunk-KHOCAVQO.js} +3 -3
  60. package/dist/{chunk-Y7UFBSAD.js.map → chunk-KHOCAVQO.js.map} +1 -1
  61. package/dist/{chunk-IBVCSZCH.js → chunk-KVJOKWP4.js} +5 -4
  62. package/dist/chunk-KVJOKWP4.js.map +1 -0
  63. package/dist/{chunk-2Y7PQ6ZL.js → chunk-LNSCL76Q.js} +5 -5
  64. package/dist/{chunk-2Y7PQ6ZL.js.map → chunk-LNSCL76Q.js.map} +1 -1
  65. package/dist/{chunk-OWOVCGUZ.js → chunk-M2C7HBR5.js} +3 -3
  66. package/dist/{chunk-OWOVCGUZ.js.map → chunk-M2C7HBR5.js.map} +1 -1
  67. package/dist/{chunk-33JGPMUW.js → chunk-M7TPROVH.js} +20 -7
  68. package/dist/chunk-M7TPROVH.js.map +1 -0
  69. package/dist/{chunk-AVR3LVOQ.js → chunk-MQMRVBUL.js} +4 -4
  70. package/dist/{chunk-AVR3LVOQ.js.map → chunk-MQMRVBUL.js.map} +1 -1
  71. package/dist/{chunk-JMZ4CO6R.js → chunk-NCT5WXKG.js} +3 -3
  72. package/dist/{chunk-JMZ4CO6R.js.map → chunk-NCT5WXKG.js.map} +1 -1
  73. package/dist/{chunk-KPNNSUXM.js → chunk-O7AUE5GP.js} +5 -3
  74. package/dist/chunk-O7AUE5GP.js.map +1 -0
  75. package/dist/{chunk-6HEURMY3.js → chunk-OCXGG7UP.js} +5 -5
  76. package/dist/{chunk-6HEURMY3.js.map → chunk-OCXGG7UP.js.map} +1 -1
  77. package/dist/{chunk-FSMHI7DW.js → chunk-OXDWUKGP.js} +3 -3
  78. package/dist/chunk-OXDWUKGP.js.map +1 -0
  79. package/dist/{chunk-SJSYKUCL.js → chunk-Q335YODG.js} +3 -3
  80. package/dist/{chunk-SJSYKUCL.js.map → chunk-Q335YODG.js.map} +1 -1
  81. package/dist/{chunk-DDM2I5C6.js → chunk-R5OIL4I4.js} +3 -3
  82. package/dist/{chunk-DDM2I5C6.js.map → chunk-R5OIL4I4.js.map} +1 -1
  83. package/dist/{chunk-KC6CHPT3.js → chunk-RJ2QVURO.js} +4 -4
  84. package/dist/{chunk-KC6CHPT3.js.map → chunk-RJ2QVURO.js.map} +1 -1
  85. package/dist/{chunk-FYJHWYPM.js → chunk-S524YVMO.js} +3 -3
  86. package/dist/{chunk-FYJHWYPM.js.map → chunk-S524YVMO.js.map} +1 -1
  87. package/dist/{chunk-OWIFNJXZ.js → chunk-S7TVRVRU.js} +3 -3
  88. package/dist/chunk-S7TVRVRU.js.map +1 -0
  89. package/dist/{chunk-JKYB5QAP.js → chunk-SLRCXCHM.js} +4 -4
  90. package/dist/{chunk-JKYB5QAP.js.map → chunk-SLRCXCHM.js.map} +1 -1
  91. package/dist/{chunk-JONTKXGK.js → chunk-U2CXFKRK.js} +3 -3
  92. package/dist/{chunk-JONTKXGK.js.map → chunk-U2CXFKRK.js.map} +1 -1
  93. package/dist/{chunk-B4ETIQOO.js → chunk-U2R47SPY.js} +3 -3
  94. package/dist/{chunk-B4ETIQOO.js.map → chunk-U2R47SPY.js.map} +1 -1
  95. package/dist/{chunk-TNROOKX3.js → chunk-UDY3IDCY.js} +10 -2
  96. package/dist/chunk-UDY3IDCY.js.map +1 -0
  97. package/dist/{chunk-3WOGOTOV.js → chunk-UPYT2XM5.js} +7 -7
  98. package/dist/chunk-UPYT2XM5.js.map +1 -0
  99. package/dist/{chunk-V7XHE25E.js → chunk-UST7EAJM.js} +4 -4
  100. package/dist/{chunk-V7XHE25E.js.map → chunk-UST7EAJM.js.map} +1 -1
  101. package/dist/{chunk-YWA63YN3.js → chunk-VAVE4ZJF.js} +2 -2
  102. package/dist/chunk-VAVE4ZJF.js.map +1 -0
  103. package/dist/{chunk-6ELVWWIA.js → chunk-VBJ26PZJ.js} +3 -3
  104. package/dist/{chunk-6ELVWWIA.js.map → chunk-VBJ26PZJ.js.map} +1 -1
  105. package/dist/chunk-WKWLKGNI.js +643 -0
  106. package/dist/chunk-WKWLKGNI.js.map +1 -0
  107. package/dist/{chunk-Z3FL7LEK.js → chunk-X253YD45.js} +71 -6
  108. package/dist/chunk-X253YD45.js.map +1 -0
  109. package/dist/{chunk-6XY7QYVR.js → chunk-X3AXEE3S.js} +3 -3
  110. package/dist/{chunk-6XY7QYVR.js.map → chunk-X3AXEE3S.js.map} +1 -1
  111. package/dist/{chunk-R4UOT76L.js → chunk-XAIUZJOJ.js} +8 -8
  112. package/dist/chunk-XAIUZJOJ.js.map +1 -0
  113. package/dist/{chunk-ZO2EKJZM.js → chunk-XCZMJA2D.js} +7 -7
  114. package/dist/{chunk-ZO2EKJZM.js.map → chunk-XCZMJA2D.js.map} +1 -1
  115. package/dist/{chunk-XRMKL43Y.js → chunk-XOLV7G4S.js} +3 -3
  116. package/dist/{chunk-XRMKL43Y.js.map → chunk-XOLV7G4S.js.map} +1 -1
  117. package/dist/chunk-XYYOV5GW.js +186 -0
  118. package/dist/chunk-XYYOV5GW.js.map +1 -0
  119. package/dist/{chunk-4MQNDQ4O.js → chunk-YACIRNVP.js} +12 -4
  120. package/dist/chunk-YACIRNVP.js.map +1 -0
  121. package/dist/{chunk-5XQIH6WM.js → chunk-YM5YBDRM.js} +4 -4
  122. package/dist/{chunk-5XQIH6WM.js.map → chunk-YM5YBDRM.js.map} +1 -1
  123. package/dist/{chunk-AUCDXPWH.js → chunk-YZ25HHV2.js} +5 -5
  124. package/dist/{chunk-AUCDXPWH.js.map → chunk-YZ25HHV2.js.map} +1 -1
  125. package/dist/{chunk-Y3BOERVB.js → chunk-ZEFK3AXP.js} +3 -3
  126. package/dist/{chunk-Y3BOERVB.js.map → chunk-ZEFK3AXP.js.map} +1 -1
  127. package/dist/{chunk-L3Z5FAJE.js → chunk-ZEYLSDSG.js} +3 -3
  128. package/dist/{chunk-L3Z5FAJE.js.map → chunk-ZEYLSDSG.js.map} +1 -1
  129. package/dist/components/advanced/Calendar/index.js +4 -4
  130. package/dist/components/advanced/Command/index.js +1 -1
  131. package/dist/components/advanced/EventCalendar/index.js +4 -4
  132. package/dist/components/advanced/FileDropzone/index.js +1 -1
  133. package/dist/components/advanced/FilterBuilder/index.js +4 -4
  134. package/dist/components/advanced/MarkdownEditor/index.js +2 -2
  135. package/dist/components/advanced/ReportBuilder/index.js +2 -2
  136. package/dist/components/advanced/RichTextEditor/index.js +2 -2
  137. package/dist/components/advanced/index.js +17 -17
  138. package/dist/components/data-display/AreaChart/index.js +1 -1
  139. package/dist/components/data-display/BarChart/index.js +1 -1
  140. package/dist/components/data-display/Carousel/index.js +4 -4
  141. package/dist/components/data-display/ChartCard/index.js +2 -2
  142. package/dist/components/data-display/DashboardFilterbar/index.js +6 -6
  143. package/dist/components/data-display/DataTable/FilterBuilder/index.js +4 -4
  144. package/dist/components/data-display/DataTable/index.js +7 -7
  145. package/dist/components/data-display/ImageGallery/index.js +7 -7
  146. package/dist/components/data-display/KPICard/index.js +4 -4
  147. package/dist/components/data-display/Lightbox/index.js +1 -1
  148. package/dist/components/data-display/LineChart/index.js +1 -1
  149. package/dist/components/data-display/List/index.js +3 -3
  150. package/dist/components/data-display/Table/index.js +1 -1
  151. package/dist/components/data-display/VirtualTable/index.js +2 -2
  152. package/dist/components/data-display/index.js +34 -34
  153. package/dist/components/feedback/Alert/index.js +1 -1
  154. package/dist/components/feedback/AlertDialog/index.js +4 -4
  155. package/dist/components/feedback/ConfirmModal/index.js +5 -5
  156. package/dist/components/feedback/Modal/index.js +1 -1
  157. package/dist/components/feedback/Notification/index.js +2 -2
  158. package/dist/components/feedback/index.js +10 -10
  159. package/dist/components/forms/ColorPicker/index.js +1 -1
  160. package/dist/components/forms/DatePicker/index.js +5 -5
  161. package/dist/components/forms/DateRangePicker/index.js +5 -5
  162. package/dist/components/forms/Field/index.js +2 -2
  163. package/dist/components/forms/Form/index.js +2 -2
  164. package/dist/components/forms/IftaLabel/index.js +1 -1
  165. package/dist/components/forms/InputGroup/index.js +4 -4
  166. package/dist/components/forms/InputOTPField/index.js +3 -3
  167. package/dist/components/forms/MultiSelect/index.js +2 -1
  168. package/dist/components/forms/RadioButton/index.js +1 -1
  169. package/dist/components/forms/Rating/index.js +1 -1
  170. package/dist/components/forms/TagsInput/index.js +2 -2
  171. package/dist/components/forms/TextareaField/index.js +3 -3
  172. package/dist/components/forms/ToggleGroup/index.js +1 -1
  173. package/dist/components/forms/index.js +31 -31
  174. package/dist/components/index.js +141 -141
  175. package/dist/components/layout/index.js +2 -2
  176. package/dist/components/navigation/AccountSwitch/index.js +4 -4
  177. package/dist/components/navigation/Drawer/index.js +1 -1
  178. package/dist/components/navigation/DropdownMenu/index.js +1 -1
  179. package/dist/components/navigation/Header/index.js +1 -1
  180. package/dist/components/navigation/MobileSidebar/index.js +4 -4
  181. package/dist/components/navigation/Pagination/index.js +4 -4
  182. package/dist/components/navigation/Sidebar/index.js +5 -5
  183. package/dist/components/navigation/UserProfileDropdown/index.js +1 -1
  184. package/dist/components/navigation/WorkspaceDropdown/index.js +1 -1
  185. package/dist/components/navigation/index.js +16 -16
  186. package/dist/components/primitives/AspectRatio/index.js +1 -1
  187. package/dist/components/primitives/Avatar/index.js +1 -1
  188. package/dist/components/primitives/Badge/index.js +1 -1
  189. package/dist/components/primitives/Button/index.js +3 -3
  190. package/dist/components/primitives/ConfirmButton/index.js +5 -5
  191. package/dist/components/primitives/Label/index.js +1 -1
  192. package/dist/components/primitives/ProgressBar/index.js +1 -1
  193. package/dist/components/primitives/SplitButton/index.js +2 -2
  194. package/dist/components/primitives/StatusIndicator/index.js +1 -1
  195. package/dist/components/primitives/Tag/index.js +1 -1
  196. package/dist/components/primitives/Toggle/index.js +1 -1
  197. package/dist/components/primitives/index.js +21 -21
  198. package/dist/components/workflow/ApprovalFlow/index.js +5 -5
  199. package/dist/components/workflow/CommentSystem/index.js +5 -5
  200. package/dist/components/workflow/Dashboard/index.js +4 -4
  201. package/dist/components/workflow/DashboardBuilder/index.js +5 -5
  202. package/dist/components/workflow/KanbanBoard/index.js +5 -5
  203. package/dist/components/workflow/ReportGenerator/index.js +5 -5
  204. package/dist/components/workflow/TaskStatus/index.js +2 -2
  205. package/dist/components/workflow/Wizard/index.js +4 -4
  206. package/dist/components/workflow/index.js +16 -16
  207. package/dist/index.d.ts +162 -56
  208. package/dist/index.js +143 -143
  209. package/dist/styles.css +121 -25
  210. package/package.json +2 -2
  211. package/dist/chunk-23BHD62H.js.map +0 -1
  212. package/dist/chunk-2UGDLAYC.js.map +0 -1
  213. package/dist/chunk-33JGPMUW.js.map +0 -1
  214. package/dist/chunk-3WOGOTOV.js.map +0 -1
  215. package/dist/chunk-4MQNDQ4O.js.map +0 -1
  216. package/dist/chunk-65YSTUD2.js.map +0 -1
  217. package/dist/chunk-FSMHI7DW.js.map +0 -1
  218. package/dist/chunk-GAP3OZR7.js +0 -223
  219. package/dist/chunk-GAP3OZR7.js.map +0 -1
  220. package/dist/chunk-HKXQLWGR.js.map +0 -1
  221. package/dist/chunk-IBVCSZCH.js.map +0 -1
  222. package/dist/chunk-ICAQYWCX.js +0 -153
  223. package/dist/chunk-ICAQYWCX.js.map +0 -1
  224. package/dist/chunk-IRKDMISK.js.map +0 -1
  225. package/dist/chunk-J62TFQHR.js.map +0 -1
  226. package/dist/chunk-KPNNSUXM.js.map +0 -1
  227. package/dist/chunk-KR3IVNQH.js.map +0 -1
  228. package/dist/chunk-OWIFNJXZ.js.map +0 -1
  229. package/dist/chunk-PLLJNHWU.js.map +0 -1
  230. package/dist/chunk-R4UOT76L.js.map +0 -1
  231. package/dist/chunk-SHS6EGWS.js +0 -226
  232. package/dist/chunk-SHS6EGWS.js.map +0 -1
  233. package/dist/chunk-TNROOKX3.js.map +0 -1
  234. package/dist/chunk-UFRMZ3M6.js.map +0 -1
  235. package/dist/chunk-VFALJSXB.js.map +0 -1
  236. package/dist/chunk-VPNFYQBL.js.map +0 -1
  237. package/dist/chunk-XD5LE64P.js +0 -311
  238. package/dist/chunk-XD5LE64P.js.map +0 -1
  239. package/dist/chunk-XV6NXXXP.js +0 -206
  240. package/dist/chunk-XV6NXXXP.js.map +0 -1
  241. package/dist/chunk-YWA63YN3.js.map +0 -1
  242. package/dist/chunk-Z3FL7LEK.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/primitives/Badge/Badge.tsx"],"names":[],"mappings":"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","file":"chunk-UDY3IDCY.js","sourcesContent":["import type { BadgeAvatarProps, BadgeColor, BadgeProps } from \"./Badge.types\"\n\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { X } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"../../feedback/Tooltip\"\n\n/* eslint-disable sonarjs/no-duplicate-string -- Badge variants require repeated color class patterns */\n\n// Legacy variant mapping for backwards compatibility\nconst legacyVariantMap: Record<string, { color: string; type: string; }> = {\n default: { type: \"pill-color\", color: \"primary\" },\n secondary: { type: \"pill-color\", color: \"muted\" },\n destructive: { type: \"pill-color\", color: \"destructive\" },\n outline: { type: \"pill-outline\", color: \"muted\" },\n}\n\n// Dot color mapping\nconst dotColorMap: Record<string, string> = {\n primary: \"bg-primary-foreground\",\n secondary: \"bg-secondary-foreground\",\n destructive: \"bg-white\",\n warning: \"bg-warning-foreground\",\n success: \"bg-success-foreground\",\n info: \"bg-white\",\n tip: \"bg-white\",\n muted: \"bg-muted-foreground\",\n \"blue-gray\": \"bg-white\",\n \"blue-light\": \"bg-white\",\n blue: \"bg-white\",\n indigo: \"bg-white\",\n purple: \"bg-white\",\n pink: \"bg-white\",\n orange: \"bg-white\",\n}\n\n// Dismiss button color mapping\nconst dismissColorMap: Record<string, string> = {\n primary: \"text-primary-foreground hover:bg-primary-foreground/20\",\n secondary: \"text-secondary-foreground hover:bg-secondary-foreground/20\",\n destructive: \"text-white hover:bg-white/20\",\n warning: \"text-warning-foreground hover:bg-warning-foreground/20\",\n success: \"text-success-foreground hover:bg-success-foreground/20\",\n info: \"text-white hover:bg-white/20\",\n tip: \"text-white hover:bg-white/20\",\n muted: \"text-muted-foreground hover:bg-muted-foreground/20\",\n \"blue-gray\": \"text-white hover:bg-white/20\",\n \"blue-light\": \"text-white hover:bg-white/20\",\n blue: \"text-white hover:bg-white/20\",\n indigo: \"text-white hover:bg-white/20\",\n purple: \"text-white hover:bg-white/20\",\n pink: \"text-white hover:bg-white/20\",\n orange: \"text-white hover:bg-white/20\",\n}\n\nconst badgeVariants = cva(\n \"inline-flex items-center justify-center font-medium w-fit whitespace-nowrap shrink-0 gap-1.5 transition-[color,background-color,box-shadow,filter] overflow-hidden border focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 data-[disabled=true]:opacity-50 data-[disabled=true]:pointer-events-none\",\n {\n variants: {\n type: {\n \"pill-color\": \"rounded-[var(--badge-radius-pill)] border-transparent\",\n \"pill-outline\": \"rounded-[var(--badge-radius-pill)] bg-transparent\",\n \"badge-color\": \"rounded-[var(--badge-radius-default)] border-transparent\",\n \"badge-outline\": \"rounded-[var(--badge-radius-default)] bg-transparent\",\n \"badge-modern\": \"rounded-[var(--badge-radius-default)] border-transparent border-l-[3px] pr-2.5 pl-2 shadow-xs\",\n },\n color: {\n primary: \"\",\n secondary: \"\",\n destructive: \"\",\n warning: \"\",\n success: \"\",\n info: \"\",\n tip: \"\",\n muted: \"\",\n \"blue-gray\": \"\",\n \"blue-light\": \"\",\n blue: \"\",\n indigo: \"\",\n purple: \"\",\n pink: \"\",\n orange: \"\",\n },\n size: {\n sm: \"h-[var(--badge-size-sm-h)] px-[var(--badge-size-sm-px)] text-[length:var(--badge-size-sm-text)] [&_svg]:size-3\",\n default: \"h-[var(--badge-size-md-h)] px-[var(--badge-size-md-px)] text-[length:var(--badge-size-md-text)] [&_svg]:size-3.5\",\n lg: \"h-[var(--badge-size-lg-h)] px-[var(--badge-size-lg-px)] text-[length:var(--badge-size-lg-text)] [&_svg]:size-4\",\n },\n },\n compoundVariants: [\n // ========================================\n // PILL-COLOR VARIANTS\n // ========================================\n { type: \"pill-color\", color: \"primary\", className: \"bg-[color:var(--badge-color-primary-bg)] text-[color:var(--badge-color-primary-fg)]\" },\n { type: \"pill-color\", color: \"secondary\", className: \"bg-[color:var(--badge-color-secondary-bg)] text-[color:var(--badge-color-secondary-fg)]\" },\n { type: \"pill-color\", color: \"destructive\", className: \"bg-[color:var(--badge-color-destructive-bg)] text-[color:var(--badge-color-destructive-fg)]\" },\n { type: \"pill-color\", color: \"warning\", className: \"bg-[color:var(--badge-color-warning-bg)] text-[color:var(--badge-color-warning-fg)]\" },\n { type: \"pill-color\", color: \"success\", className: \"bg-[color:var(--badge-color-success-bg)] text-[color:var(--badge-color-success-fg)]\" },\n { type: \"pill-color\", color: \"info\", className: \"bg-info text-info-foreground\" },\n { type: \"pill-color\", color: \"tip\", className: \"bg-tip text-white\" },\n { type: \"pill-color\", color: \"muted\", className: \"bg-[color:var(--badge-color-secondary-bg)] text-[color:var(--badge-color-secondary-fg)]\" },\n { type: \"pill-color\", color: \"blue-gray\", className: \"bg-slate-500 text-white\" },\n { type: \"pill-color\", color: \"blue-light\", className: \"bg-sky-400 text-sky-950\" },\n { type: \"pill-color\", color: \"blue\", className: \"bg-blue-400 text-blue-950\" },\n { type: \"pill-color\", color: \"indigo\", className: \"bg-indigo-400 text-indigo-950\" },\n { type: \"pill-color\", color: \"purple\", className: \"bg-violet-400 text-violet-950\" },\n { type: \"pill-color\", color: \"pink\", className: \"bg-pink-400 text-pink-950\" },\n { type: \"pill-color\", color: \"orange\", className: \"bg-orange-500 text-orange-950\" },\n\n // ========================================\n // PILL-OUTLINE VARIANTS\n // ========================================\n { type: \"pill-outline\", color: \"primary\", className: \"border-primary text-primary\" },\n { type: \"pill-outline\", color: \"secondary\", className: \"border-secondary text-secondary\" },\n { type: \"pill-outline\", color: \"destructive\", className: \"border-destructive text-destructive\" },\n { type: \"pill-outline\", color: \"warning\", className: \"border-warning text-warning\" },\n { type: \"pill-outline\", color: \"success\", className: \"border-success text-success\" },\n { type: \"pill-outline\", color: \"info\", className: \"border-info text-info\" },\n { type: \"pill-outline\", color: \"tip\", className: \"border-tip text-tip\" },\n { type: \"pill-outline\", color: \"muted\", className: \"border-border text-muted-foreground\" },\n { type: \"pill-outline\", color: \"blue-gray\", className: \"border-slate-500 text-slate-500\" },\n { type: \"pill-outline\", color: \"blue-light\", className: \"border-sky-400 text-sky-400\" },\n { type: \"pill-outline\", color: \"blue\", className: \"border-blue-400 text-blue-400\" },\n { type: \"pill-outline\", color: \"indigo\", className: \"border-indigo-400 text-indigo-400\" },\n { type: \"pill-outline\", color: \"purple\", className: \"border-violet-400 text-violet-400\" },\n { type: \"pill-outline\", color: \"pink\", className: \"border-pink-400 text-pink-400\" },\n { type: \"pill-outline\", color: \"orange\", className: \"border-orange-500 text-orange-500\" },\n\n // ========================================\n // BADGE-COLOR VARIANTS\n // ========================================\n { type: \"badge-color\", color: \"primary\", className: \"bg-primary text-primary-foreground\" },\n { type: \"badge-color\", color: \"secondary\", className: \"bg-[color:var(--badge-color-secondary-bg)] text-[color:var(--badge-color-secondary-fg)]\" },\n { type: \"badge-color\", color: \"destructive\", className: \"bg-destructive text-white\" },\n { type: \"badge-color\", color: \"warning\", className: \"bg-[color:var(--badge-color-warning-bg)] text-[color:var(--badge-color-warning-fg)]\" },\n { type: \"badge-color\", color: \"success\", className: \"bg-[color:var(--badge-color-success-bg)] text-[color:var(--badge-color-success-fg)]\" },\n { type: \"badge-color\", color: \"info\", className: \"bg-info text-info-foreground\" },\n { type: \"badge-color\", color: \"tip\", className: \"bg-tip text-white\" },\n { type: \"badge-color\", color: \"muted\", className: \"bg-muted text-muted-foreground\" },\n { type: \"badge-color\", color: \"blue-gray\", className: \"bg-slate-500 text-white\" },\n { type: \"badge-color\", color: \"blue-light\", className: \"bg-sky-400 text-sky-950\" },\n { type: \"badge-color\", color: \"blue\", className: \"bg-blue-400 text-blue-950\" },\n { type: \"badge-color\", color: \"indigo\", className: \"bg-indigo-400 text-indigo-950\" },\n { type: \"badge-color\", color: \"purple\", className: \"bg-violet-400 text-violet-950\" },\n { type: \"badge-color\", color: \"pink\", className: \"bg-pink-400 text-pink-950\" },\n { type: \"badge-color\", color: \"orange\", className: \"bg-orange-500 text-orange-950\" },\n\n // ========================================\n // BADGE-OUTLINE VARIANTS\n // ========================================\n { type: \"badge-outline\", color: \"primary\", className: \"border-primary text-primary\" },\n { type: \"badge-outline\", color: \"secondary\", className: \"border-secondary text-secondary\" },\n { type: \"badge-outline\", color: \"destructive\", className: \"border-destructive text-destructive\" },\n { type: \"badge-outline\", color: \"warning\", className: \"border-warning text-warning\" },\n { type: \"badge-outline\", color: \"success\", className: \"border-success text-success\" },\n { type: \"badge-outline\", color: \"info\", className: \"border-info text-info\" },\n { type: \"badge-outline\", color: \"tip\", className: \"border-tip text-tip\" },\n { type: \"badge-outline\", color: \"muted\", className: \"border-border text-muted-foreground\" },\n { type: \"badge-outline\", color: \"blue-gray\", className: \"border-slate-500 text-slate-500\" },\n { type: \"badge-outline\", color: \"blue-light\", className: \"border-sky-400 text-sky-400\" },\n { type: \"badge-outline\", color: \"blue\", className: \"border-blue-400 text-blue-400\" },\n { type: \"badge-outline\", color: \"indigo\", className: \"border-indigo-400 text-indigo-400\" },\n { type: \"badge-outline\", color: \"purple\", className: \"border-violet-400 text-violet-400\" },\n { type: \"badge-outline\", color: \"pink\", className: \"border-pink-400 text-pink-400\" },\n { type: \"badge-outline\", color: \"orange\", className: \"border-orange-500 text-orange-500\" },\n\n // ========================================\n // BADGE-MODERN VARIANTS (with left accent)\n // ========================================\n { type: \"badge-modern\", color: \"primary\", className: \"bg-primary/10 text-primary border-l-primary\" },\n { type: \"badge-modern\", color: \"secondary\", className: \"bg-secondary/10 text-secondary border-l-secondary\" },\n { type: \"badge-modern\", color: \"destructive\", className: \"bg-destructive/10 text-destructive border-l-destructive\" },\n { type: \"badge-modern\", color: \"warning\", className: \"bg-warning/10 text-warning border-l-warning\" },\n { type: \"badge-modern\", color: \"success\", className: \"bg-success/10 text-success border-l-success\" },\n { type: \"badge-modern\", color: \"info\", className: \"bg-info/10 text-info border-l-info\" },\n { type: \"badge-modern\", color: \"tip\", className: \"bg-tip/10 text-tip border-l-tip\" },\n { type: \"badge-modern\", color: \"muted\", className: \"bg-muted text-muted-foreground border-l-muted-foreground\" },\n { type: \"badge-modern\", color: \"blue-gray\", className: \"bg-slate-500/10 text-slate-500 border-l-slate-500\" },\n { type: \"badge-modern\", color: \"blue-light\", className: \"bg-sky-400/10 text-sky-400 border-l-sky-400\" },\n { type: \"badge-modern\", color: \"blue\", className: \"bg-blue-400/10 text-blue-400 border-l-blue-400\" },\n { type: \"badge-modern\", color: \"indigo\", className: \"bg-indigo-400/10 text-indigo-400 border-l-indigo-400\" },\n { type: \"badge-modern\", color: \"purple\", className: \"bg-violet-400/10 text-violet-400 border-l-violet-400\" },\n { type: \"badge-modern\", color: \"pink\", className: \"bg-pink-400/10 text-pink-400 border-l-pink-400\" },\n { type: \"badge-modern\", color: \"orange\", className: \"bg-orange-500/10 text-orange-500 border-l-orange-500\" },\n ],\n defaultVariants: {\n type: \"pill-color\",\n color: \"primary\",\n size: \"default\",\n },\n }\n)\n\n// Internal dot component\nfunction BadgeDot({ color }: { color: BadgeColor }) {\n return (\n <span\n className={cn(\"size-1.5 rounded-full shrink-0\", dotColorMap[color] ?? dotColorMap[\"primary\"])}\n data-slot=\"badge-dot\"\n />\n )\n}\n\n// Internal dismiss button component\nfunction BadgeDismiss({ onClick, color, type, dismissLabel = \"Dismiss\" }: { color: BadgeColor; dismissLabel?: string; onClick: () => void; type: string; }) {\n const handleClick = (e: React.MouseEvent) => {\n e.stopPropagation()\n onClick()\n }\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault()\n e.stopPropagation()\n onClick()\n }\n }\n\n // Adapt shape based on badge type: rounded for pills, square for badges\n const isPill = type === \"pill-color\" || type === \"pill-outline\"\n const shapeClass = isPill ? \"rounded-full\" : \"rounded-sm\"\n\n return (\n <button\n className={cn(\n \"size-4 -mr-1 inline-flex items-center justify-center shrink-0 transition-colors cursor-pointer\",\n shapeClass,\n \"focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring\",\n dismissColorMap[color] ?? dismissColorMap[\"primary\"]\n )}\n aria-label={dismissLabel}\n data-slot=\"badge-dismiss\"\n type=\"button\"\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n <X className=\"size-3\" />\n </button>\n )\n}\n\n// Internal avatar component for badge\nfunction BadgeAvatar({ src, fallback, alt }: BadgeAvatarProps) {\n const [imageError, setImageError] = React.useState(false)\n\n // Get initials from fallback text\n const initials = fallback\n .split(\" \")\n .map((word) => word[0])\n .join(\"\")\n .toUpperCase()\n .slice(0, 2)\n\n return (\n <span\n className=\"size-4 -ml-1 rounded-full shrink-0 inline-flex items-center justify-center overflow-hidden bg-muted text-xs font-medium\"\n data-slot=\"badge-avatar\"\n >\n {src && !imageError ? (\n <img\n alt={alt ?? fallback}\n className=\"size-full object-cover\"\n src={src}\n onError={() => { setImageError(true); }}\n />\n ) : (\n <span aria-label={alt ?? fallback}>{initials}</span>\n )}\n </span>\n )\n}\n\n// Internal country flag component\nfunction BadgeCountry({ code }: { code: string }) {\n // Convert country code to flag emoji using regional indicator symbols\n const countryToFlag = (countryCode: string) => {\n // eslint-disable-next-line unicorn/prefer-spread -- Array.from handles Unicode correctly for country codes\n const codePoints = Array.from(countryCode.toUpperCase()).map(\n (char) => 127397 + char.charCodeAt(0)\n )\n return String.fromCodePoint(...codePoints)\n }\n\n return (\n <span\n aria-label={`Flag of ${code}`}\n className=\"text-base -ml-0.5 shrink-0 leading-none\"\n data-slot=\"badge-country\"\n role=\"img\"\n >\n {countryToFlag(code)}\n </span>\n )\n}\n\nfunction Badge({\n className,\n type,\n color,\n size,\n disabled,\n dot,\n icon,\n leadingIcon,\n trailingIcon,\n country,\n avatar,\n iconOnly,\n onDismiss,\n dismissLabel,\n interactive,\n tooltip,\n // eslint-disable-next-line @typescript-eslint/no-deprecated -- Intentionally supporting legacy variant for backwards compatibility\n variant,\n asChild = false,\n children,\n onClick,\n ...props\n}: BadgeProps) {\n // Resolve legacy variant to new props (new props take precedence)\n const legacyMapping = variant ? legacyVariantMap[variant] : null\n const resolvedType = (type ?? legacyMapping?.type ?? \"pill-color\") as VariantProps<typeof badgeVariants>[\"type\"]\n const resolvedColor = (color ?? legacyMapping?.color ?? \"primary\") as BadgeColor\n\n // Icon-only badges are square with no horizontal padding\n const iconOnlyClass = iconOnly\n ? \"px-0 aspect-square\"\n : \"\"\n\n const badgeClassName = cn(\n badgeVariants({ type: resolvedType, color: resolvedColor, size }),\n iconOnlyClass,\n Boolean(interactive ?? onClick) && \"cursor-pointer hover:brightness-90\",\n className\n )\n\n // Disabled is a real state (not just a Figma style): toggle data-disabled + aria-disabled\n const stateAttrs = {\n \"aria-disabled\": disabled ? true : undefined,\n \"data-disabled\": disabled ? true : undefined,\n }\n\n // When asChild is true, use Slot which requires exactly one child\n // dot and onDismiss features are not supported with asChild\n if (asChild) {\n return (\n <Slot className={badgeClassName} data-slot=\"badge\" {...stateAttrs} {...props}>\n {children}\n </Slot>\n )\n }\n\n // Resolve leading content\n const resolvedLeadingIcon = leadingIcon ?? icon\n\n // Render leading content (avatar, country, dot, or leading icon)\n const renderLeading = () => {\n if (avatar) return <BadgeAvatar {...avatar} />\n if (country) return <BadgeCountry code={country} />\n if (dot) return <BadgeDot color={resolvedColor} />\n if (resolvedLeadingIcon) return <span className=\"shrink-0\" data-slot=\"badge-leading-icon\">{resolvedLeadingIcon}</span>\n return null\n }\n\n // Render trailing content (trailing icon or dismiss)\n const renderTrailing = () => {\n if (onDismiss) return <BadgeDismiss color={resolvedColor} dismissLabel={dismissLabel} type={resolvedType ?? \"pill-color\"} onClick={onDismiss} />\n if (trailingIcon) return <span className=\"shrink-0\" data-slot=\"badge-trailing-icon\">{trailingIcon}</span>\n return null\n }\n\n // Helper to wrap element with tooltip if tooltip prop is provided\n const wrapWithTooltip = (element: React.ReactElement) => {\n if (!tooltip) return element\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n {element}\n </TooltipTrigger>\n <TooltipContent>\n {tooltip}\n </TooltipContent>\n </Tooltip>\n )\n }\n\n // Icon-only variant: render only the icon, no children or other elements\n if (iconOnly) {\n return wrapWithTooltip(\n <span\n className={badgeClassName}\n data-slot=\"badge\"\n onClick={onClick}\n {...stateAttrs}\n {...props}\n >\n <span className=\"shrink-0\" data-slot=\"badge-icon-only\">{iconOnly}</span>\n </span>\n )\n }\n\n return wrapWithTooltip(\n <span\n className={badgeClassName}\n data-slot=\"badge\"\n onClick={onClick}\n {...stateAttrs}\n {...props}\n >\n {renderLeading()}\n {children}\n {renderTrailing()}\n </span>\n )\n}\n\n/* eslint-enable sonarjs/no-duplicate-string */\n\nexport { Badge, badgeVariants }\n"]}
@@ -6,7 +6,7 @@ import * as React from 'react';
6
6
  import { jsxs, jsx } from 'react/jsx-runtime';
7
7
 
8
8
  var toggleVariants = cva(
9
- "inline-flex items-center justify-center gap-[var(--toggle-root-gap)] font-[var(--toggle-root-font-weight)] border-[length:var(--toggle-root-border-width)] transition-all duration-150 hover:bg-[color:var(--toggle-variant-default-bg-hover)] hover:text-[color:var(--toggle-variant-default-color-hover)] hover:shadow-sm active:scale-[0.97] disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-[color:var(--toggle-variant-default-bg-on)] data-[state=on]:text-[color:var(--toggle-variant-default-color-on)] data-[state=on]:shadow-sm [&_svg]:pointer-events-none [&_svg]:size-[var(--toggle-icon-size)] [&_svg]:shrink-0 focus-visible:z-10 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] outline-none aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive whitespace-nowrap",
9
+ "inline-flex items-center justify-center gap-[var(--toggle-root-gap)] font-[var(--toggle-root-font-weight)] border-[length:var(--toggle-root-border-width)] transition-all duration-150 hover:bg-[color:var(--toggle-variant-default-bg-hover)] hover:text-[color:var(--toggle-variant-default-color-hover)] hover:shadow-sm active:scale-[0.97] disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-[color:var(--toggle-variant-default-bg-on)] data-[state=on]:text-[color:var(--toggle-variant-default-color-on)] data-[state=on]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 focus-visible:z-10 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] outline-none aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive whitespace-nowrap",
10
10
  {
11
11
  variants: {
12
12
  variant: {
@@ -14,10 +14,10 @@ var toggleVariants = cva(
14
14
  outline: "border-[color:var(--toggle-variant-outline-border)] bg-[color:var(--toggle-variant-outline-bg-default)] text-[color:var(--toggle-variant-outline-color-default)] hover:bg-[color:var(--toggle-variant-outline-bg-hover)] hover:text-[color:var(--toggle-variant-outline-color-hover)] data-[state=on]:bg-[color:var(--toggle-variant-outline-bg-on)] data-[state=on]:text-[color:var(--toggle-variant-outline-color-on)]"
15
15
  },
16
16
  size: {
17
- default: "h-[var(--toggle-size-default-height)] px-[var(--toggle-size-default-padding-x)] min-w-[var(--toggle-size-default-min-width)]",
18
- sm: "h-[var(--toggle-size-sm-height)] px-[var(--toggle-size-sm-padding-x)] min-w-[var(--toggle-size-sm-min-width)]",
19
- md: "h-[var(--toggle-size-md-height)] px-[var(--toggle-size-md-padding-x)] min-w-[var(--toggle-size-md-min-width)]",
20
- lg: "h-[var(--toggle-size-lg-height)] px-[var(--toggle-size-lg-padding-x)] min-w-[var(--toggle-size-lg-min-width)]"
17
+ default: "h-[var(--toggle-size-default-height)] px-[var(--toggle-size-default-padding-x)] min-w-[var(--toggle-size-default-min-width)] [&_svg]:size-[var(--toggle-icon-size-default)]",
18
+ sm: "h-[var(--toggle-size-sm-height)] px-[var(--toggle-size-sm-padding-x)] min-w-[var(--toggle-size-sm-min-width)] [&_svg]:size-[var(--toggle-icon-size-sm)]",
19
+ md: "h-[var(--toggle-size-md-height)] px-[var(--toggle-size-md-padding-x)] min-w-[var(--toggle-size-md-min-width)] [&_svg]:size-[var(--toggle-icon-size-md)]",
20
+ lg: "h-[var(--toggle-size-lg-height)] px-[var(--toggle-size-lg-padding-x)] min-w-[var(--toggle-size-lg-min-width)] [&_svg]:size-[var(--toggle-icon-size-lg)]"
21
21
  },
22
22
  /**
23
23
  * The shape of the toggle button
@@ -148,5 +148,5 @@ Toggle.Group = ToggleGroup;
148
148
  Toggle.Item = ToggleItem;
149
149
 
150
150
  export { Toggle, ToggleGroup, ToggleItem, toggleVariants };
151
- //# sourceMappingURL=chunk-3WOGOTOV.js.map
152
- //# sourceMappingURL=chunk-3WOGOTOV.js.map
151
+ //# sourceMappingURL=chunk-UPYT2XM5.js.map
152
+ //# sourceMappingURL=chunk-UPYT2XM5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/primitives/Toggle/Toggle.tsx"],"names":[],"mappings":"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","file":"chunk-UPYT2XM5.js","sourcesContent":["\"use client\"\n\nimport type { ToggleGroupProps, ToggleItemProps, ToggleProps } from \"./Toggle.types\"\n\nimport * as TogglePrimitive from \"@radix-ui/react-toggle\"\nimport * as ToggleGroupPrimitive from \"@radix-ui/react-toggle-group\"\nimport { cva } from \"class-variance-authority\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\n\nconst toggleVariants = cva(\n \"inline-flex items-center justify-center gap-[var(--toggle-root-gap)] font-[var(--toggle-root-font-weight)] border-[length:var(--toggle-root-border-width)] transition-all duration-150 hover:bg-[color:var(--toggle-variant-default-bg-hover)] hover:text-[color:var(--toggle-variant-default-color-hover)] hover:shadow-sm active:scale-[0.97] disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-[color:var(--toggle-variant-default-bg-on)] data-[state=on]:text-[color:var(--toggle-variant-default-color-on)] data-[state=on]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 focus-visible:z-10 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] outline-none aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive whitespace-nowrap\",\n {\n variants: {\n variant: {\n default: \"bg-[color:var(--toggle-variant-default-bg-default)] text-[color:var(--toggle-variant-default-color-default)] border-[color:var(--toggle-variant-default-border)]\",\n outline:\n \"border-[color:var(--toggle-variant-outline-border)] bg-[color:var(--toggle-variant-outline-bg-default)] text-[color:var(--toggle-variant-outline-color-default)] hover:bg-[color:var(--toggle-variant-outline-bg-hover)] hover:text-[color:var(--toggle-variant-outline-color-hover)] data-[state=on]:bg-[color:var(--toggle-variant-outline-bg-on)] data-[state=on]:text-[color:var(--toggle-variant-outline-color-on)]\",\n },\n size: {\n default: \"h-[var(--toggle-size-default-height)] px-[var(--toggle-size-default-padding-x)] min-w-[var(--toggle-size-default-min-width)] [&_svg]:size-[var(--toggle-icon-size-default)]\",\n sm: \"h-[var(--toggle-size-sm-height)] px-[var(--toggle-size-sm-padding-x)] min-w-[var(--toggle-size-sm-min-width)] [&_svg]:size-[var(--toggle-icon-size-sm)]\",\n md: \"h-[var(--toggle-size-md-height)] px-[var(--toggle-size-md-padding-x)] min-w-[var(--toggle-size-md-min-width)] [&_svg]:size-[var(--toggle-icon-size-md)]\",\n lg: \"h-[var(--toggle-size-lg-height)] px-[var(--toggle-size-lg-padding-x)] min-w-[var(--toggle-size-lg-min-width)] [&_svg]:size-[var(--toggle-icon-size-lg)]\",\n },\n /**\n * The shape of the toggle button\n */\n shape: {\n pill: \"rounded-[var(--toggle-root-border-radius-pill)]\",\n rounded: \"rounded-[var(--toggle-root-border-radius-rounded)]\",\n },\n /**\n * Whether the item is connected to adjacent items (spacing=0)\n */\n connected: {\n true: \"rounded-none first:rounded-l-[var(--toggle-root-border-radius-pill)] last:rounded-r-[var(--toggle-root-border-radius-pill)]\",\n false: \"\",\n },\n },\n compoundVariants: [\n {\n variant: \"outline\",\n connected: true,\n className: \"border-l-0 first:border-l\",\n },\n {\n shape: \"rounded\",\n connected: true,\n className: \"first:rounded-l-[var(--toggle-root-border-radius-rounded)] last:rounded-r-[var(--toggle-root-border-radius-rounded)]\",\n },\n ],\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n shape: \"rounded\",\n connected: false,\n },\n }\n)\n\n// Context for sharing group props with items\nconst ToggleGroupContext = React.createContext<{\n shape?: ToggleProps[\"shape\"]\n size?: ToggleProps[\"size\"]\n spacing?: ToggleGroupProps[\"spacing\"]\n variant?: ToggleProps[\"variant\"]\n}>({})\n\nfunction Toggle({\n className,\n variant,\n size,\n shape,\n icon,\n children,\n ...props\n}: ToggleProps) {\n return (\n <TogglePrimitive.Root\n className={cn(toggleVariants({ variant, size, shape, className }))}\n data-slot=\"toggle\"\n {...props}\n >\n {icon && (\n <span className=\"shrink-0\" data-slot=\"toggle-icon\">\n {icon}\n </span>\n )}\n {children}\n </TogglePrimitive.Root>\n )\n}\n\nconst spacingVariants = {\n 0: \"gap-0\",\n 1: \"gap-1\",\n 2: \"gap-2\",\n 3: \"gap-3\",\n 4: \"gap-4\",\n}\n\nfunction ToggleGroup({\n className,\n variant,\n size,\n shape,\n spacing = 1,\n children,\n ...props\n}: ToggleGroupProps) {\n return (\n <ToggleGroupContext value={{ variant, size, shape, spacing }}>\n <ToggleGroupPrimitive.Root\n className={cn(\n \"group/toggle-group inline-flex items-center\",\n spacingVariants[spacing],\n className\n )}\n data-slot=\"toggle-group\"\n data-spacing={spacing}\n {...props}\n >\n {children}\n </ToggleGroupPrimitive.Root>\n </ToggleGroupContext>\n )\n}\n\nfunction ToggleItem({\n className,\n variant,\n size,\n shape,\n icon,\n children,\n ...props\n}: ToggleItemProps) {\n const context = React.use(ToggleGroupContext)\n const resolvedVariant = variant ?? context.variant\n const resolvedSize = size ?? context.size\n const resolvedShape = shape ?? context.shape\n const resolvedSpacing = context.spacing ?? 1\n const isConnected = resolvedSpacing === 0\n\n return (\n <ToggleGroupPrimitive.Item\n className={cn(\n toggleVariants({\n variant: resolvedVariant,\n size: resolvedSize,\n shape: resolvedShape,\n connected: isConnected,\n className,\n })\n )}\n data-slot=\"toggle-item\"\n {...props}\n >\n {icon && (\n <span className=\"shrink-0\" data-slot=\"toggle-icon\">\n {icon}\n </span>\n )}\n {children}\n </ToggleGroupPrimitive.Item>\n )\n}\n\nToggle.Group = ToggleGroup\nToggle.Item = ToggleItem\n\nexport { Toggle, ToggleGroup, ToggleItem, toggleVariants }"]}
@@ -1,6 +1,6 @@
1
1
  import { SkeletonLoader } from './chunk-QHKOBGLW.js';
2
- import { Avatar, AvatarImage, AvatarFallback } from './chunk-YP2ATSXP.js';
3
- import { Badge } from './chunk-TNROOKX3.js';
2
+ import { Avatar, AvatarImage, AvatarFallback } from './chunk-3BBOSSDG.js';
3
+ import { Badge } from './chunk-UDY3IDCY.js';
4
4
  import { cn } from './chunk-HRNDJU7D.js';
5
5
  import { cva } from 'class-variance-authority';
6
6
  import * as React from 'react';
@@ -350,5 +350,5 @@ function ListItemActions({
350
350
  }
351
351
 
352
352
  export { List, ListItem, ListItemActions, ListItemContent, listItemVariants, listVariants };
353
- //# sourceMappingURL=chunk-V7XHE25E.js.map
354
- //# sourceMappingURL=chunk-V7XHE25E.js.map
353
+ //# sourceMappingURL=chunk-UST7EAJM.js.map
354
+ //# sourceMappingURL=chunk-UST7EAJM.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/data-display/List/List.tsx"],"names":[],"mappings":"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","file":"chunk-V7XHE25E.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Avatar, AvatarFallback, AvatarImage } from \"../../primitives/Avatar\"\nimport { Badge } from \"../../primitives/Badge\"\nimport { SkeletonLoader } from \"../../primitives/SkeletonLoader\"\n\n// ============================================\n// TYPES\n// ============================================\ninterface ListItem {\n avatar?: string\n badge?: string\n description?: string\n disabled?: boolean\n id: string\n label: string\n onClick?: () => void\n}\n\n// ============================================\n// VARIANTS\n// ============================================\nconst listVariants = cva(\n \"flex flex-col bg-background text-foreground transition-colors duration-150\",\n {\n variants: {\n variant: {\n default: \"border border-border rounded-md\",\n flat: \"divide-y divide-border\",\n card: \"gap-4 flex-col\",\n minimal: \"divide-y divide-border border-0\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nconst listItemVariants = cva(\n \"group/list-item flex items-center text-sm transition-colors duration-150 outline-none\",\n {\n variants: {\n variant: {\n default: \"border-b border-border last:border-b-0\",\n flat: \"\",\n card: \"border border-border rounded-md bg-background\",\n minimal: \"\",\n },\n size: {\n sm: \"px-3 py-2 min-h-8 gap-2\",\n default: \"px-4 py-3 min-h-10 gap-3\",\n lg: \"px-5 py-4 min-h-12 gap-4\",\n },\n selectable: {\n true: \"cursor-pointer hover:bg-muted/50 focus-visible:bg-muted/50 focus-visible:ring-[3px] focus-visible:ring-ring/50\",\n false: \"\",\n },\n selected: {\n true: \"bg-muted\",\n false: \"\",\n },\n disabled: {\n true: \"opacity-50 cursor-not-allowed pointer-events-none\",\n false: \"\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n selectable: false,\n selected: false,\n disabled: false,\n },\n }\n)\n\n// ============================================\n// LIST COMPONENT\n// ============================================\ntype ListProps = React.ComponentProps<\"ul\"> &\n VariantProps<typeof listVariants> & {\n items?: ListItem[]\n loading?: boolean\n multiple?: boolean\n onSelect?: (item: ListItem) => void\n selectable?: boolean\n }\n\nfunction List({\n className,\n variant = \"default\",\n items,\n selectable = false,\n multiple = false,\n loading = false,\n onSelect,\n children,\n ref,\n ...props\n}: ListProps) {\n const [selectedIds, setSelectedIds] = React.useState<Set<string>>(() => new Set())\n const [focusedIndex, setFocusedIndex] = React.useState<number>(-1)\n const itemRefsRef = React.useRef<Map<number, HTMLLIElement>>(new Map())\n\n const handleSelect = React.useCallback(\n (item: ListItem) => {\n if (item.disabled) return\n\n if (multiple) {\n setSelectedIds((prev) => {\n const newSet = new Set(prev)\n if (newSet.has(item.id)) {\n newSet.delete(item.id)\n } else {\n newSet.add(item.id)\n }\n return newSet\n })\n } else {\n setSelectedIds(new Set([item.id]))\n }\n\n onSelect?.(item)\n item.onClick?.()\n },\n [multiple, onSelect]\n )\n\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLUListElement>) => {\n if (!items || items.length === 0) return\n\n const enabledIndices = items\n .map((item, index) => (item.disabled ? -1 : index))\n .filter((i) => i !== -1)\n\n let newIndex = focusedIndex\n\n switch (e.key) {\n case \"ArrowDown\":\n e.preventDefault()\n if (focusedIndex === -1) {\n newIndex = enabledIndices[0] ?? -1\n } else {\n const currentEnabledPos = enabledIndices.indexOf(focusedIndex)\n const nextPos = Math.min(\n currentEnabledPos + 1,\n enabledIndices.length - 1\n )\n newIndex = enabledIndices[nextPos] ?? focusedIndex\n }\n break\n case \"ArrowUp\":\n e.preventDefault()\n if (focusedIndex === -1) {\n newIndex = enabledIndices[enabledIndices.length - 1] ?? -1\n } else {\n const currentEnabledPos = enabledIndices.indexOf(focusedIndex)\n const prevPos = Math.max(currentEnabledPos - 1, 0)\n newIndex = enabledIndices[prevPos] ?? focusedIndex\n }\n break\n case \"Enter\":\n case \" \":\n e.preventDefault()\n if (focusedIndex >= 0 && selectable && items[focusedIndex]) {\n handleSelect(items[focusedIndex])\n }\n break\n case \"Home\":\n e.preventDefault()\n newIndex = enabledIndices[0] ?? -1\n break\n case \"End\":\n e.preventDefault()\n newIndex = enabledIndices[enabledIndices.length - 1] ?? -1\n break\n }\n\n if (newIndex !== focusedIndex) {\n setFocusedIndex(newIndex)\n itemRefsRef.current.get(newIndex)?.focus()\n }\n },\n [items, focusedIndex, selectable, handleSelect]\n )\n\n // Loading skeleton\n if (loading) {\n return (\n <ul\n ref={ref}\n data-loading\n aria-busy=\"true\"\n aria-label=\"Loading list\"\n className={cn(listVariants({ variant }), className)}\n data-slot=\"list\"\n data-variant={variant}\n role=\"list\"\n {...props}\n >\n {[1, 2, 3].map((i) => (\n <li\n key={i}\n className={cn(listItemVariants({ variant, size: \"default\" }))}\n data-slot=\"list-item\"\n >\n <SkeletonLoader className=\"size-10 rounded-full\" />\n <div className=\"flex flex-1 flex-col gap-1\">\n <SkeletonLoader className=\"h-4 w-32\" />\n <SkeletonLoader className=\"h-3 w-24\" />\n </div>\n </li>\n ))}\n </ul>\n )\n }\n\n // Render with items prop\n if (items && items.length > 0) {\n return (\n <ul\n ref={ref}\n aria-label={props[\"aria-label\"]}\n className={cn(listVariants({ variant }), className)}\n data-slot=\"list\"\n data-variant={variant}\n role={selectable ? \"listbox\" : \"list\"}\n tabIndex={selectable ? 0 : undefined}\n onKeyDown={selectable ? handleKeyDown : undefined}\n {...props}\n >\n {items.map((item, index) => {\n const isSelected = selectedIds.has(item.id)\n const isFocused = focusedIndex === index\n\n return (\n <ListItemInternal\n key={item.id}\n ref={(el) => {\n if (el) {\n itemRefsRef.current.set(index, el)\n } else {\n itemRefsRef.current.delete(index)\n }\n }}\n tabIndex={\n selectable\n ? isFocused || (focusedIndex === -1 && index === 0)\n ? 0\n : -1\n : undefined\n }\n aria-disabled={item.disabled ? true : undefined}\n aria-selected={selectable ? isSelected : undefined}\n data-focused={isFocused ? true : undefined}\n data-selected={isSelected ? true : undefined}\n disabled={item.disabled}\n isFocused={isFocused}\n item={item}\n selectable={selectable}\n selected={isSelected}\n variant={variant}\n onClick={\n selectable && !item.disabled\n ? () => { handleSelect(item); }\n : undefined\n }\n />\n )\n })}\n </ul>\n )\n }\n\n // Render with children\n return (\n <ul\n ref={ref}\n aria-label={props[\"aria-label\"]}\n className={cn(listVariants({ variant }), className)}\n data-slot=\"list\"\n data-variant={variant}\n role=\"list\"\n {...props}\n >\n {children}\n </ul>\n )\n}\n\n// ============================================\n// INTERNAL LIST ITEM (for items prop rendering)\n// ============================================\ninterface ListItemInternalProps\n extends Omit<React.ComponentProps<\"li\">, \"onClick\"> {\n disabled?: boolean\n isFocused?: boolean\n item: ListItem\n onClick?: () => void\n selectable?: boolean\n selected?: boolean\n variant?: \"card\" | \"default\" | \"flat\" | \"minimal\" | null\n}\n\nfunction ListItemInternal({\n ref,\n item,\n variant = \"default\",\n selectable = false,\n selected = false,\n disabled = false,\n isFocused = false,\n onClick,\n className,\n ...props\n}: ListItemInternalProps & { ref?: React.Ref<HTMLLIElement | null> }) {\n return (\n <li\n ref={ref}\n className={cn(\n listItemVariants({\n variant,\n size: \"default\",\n selectable,\n selected,\n disabled,\n }),\n isFocused && \"ring-[3px] ring-ring/50\",\n className\n )}\n data-slot=\"list-item\"\n role={selectable ? \"option\" : undefined}\n onClick={onClick}\n {...props}\n >\n {item.avatar && (\n <Avatar className=\"size-10\" data-slot=\"list-item-avatar\">\n <AvatarImage alt={item.label} src={item.avatar} />\n <AvatarFallback>\n {item.label.slice(0, 2).toUpperCase()}\n </AvatarFallback>\n </Avatar>\n )}\n\n <div className=\"flex flex-1 flex-col gap-0.5\" data-slot=\"list-item-content\">\n <span className=\"font-medium leading-snug\">{item.label}</span>\n {item.description && (\n <span\n className=\"text-muted-foreground text-xs leading-normal\"\n data-slot=\"list-item-description\"\n >\n {item.description}\n </span>\n )}\n </div>\n\n {item.badge && (\n <div data-slot=\"list-item-actions\">\n <Badge color=\"muted\" type=\"pill-color\">{item.badge}</Badge>\n </div>\n )}\n </li>\n )\n }\n\n// ============================================\n// PUBLIC LIST ITEM COMPONENT\n// ============================================\ninterface ListItemProps extends Omit<React.ComponentProps<\"li\">, \"disabled\"> {\n disabled?: boolean\n selectable?: boolean\n selected?: boolean\n size?: \"default\" | \"lg\" | \"sm\"\n variant?: \"card\" | \"default\" | \"flat\" | \"minimal\"\n}\n\nfunction ListItem({\n className,\n variant = \"default\",\n size = \"default\",\n selectable = false,\n selected = false,\n disabled = false,\n ref,\n ...restProps\n}: ListItemProps) {\n return (\n <li\n ref={ref}\n className={cn(\n listItemVariants({ variant, size, selectable, selected, disabled }),\n className\n )}\n aria-disabled={disabled ? true : undefined}\n aria-selected={selectable ? selected : undefined}\n data-disabled={disabled ? true : undefined}\n data-selected={selected ? true : undefined}\n data-size={size}\n data-slot=\"list-item\"\n data-variant={variant}\n role={selectable ? \"option\" : undefined}\n tabIndex={selectable && !disabled ? 0 : undefined}\n {...restProps}\n />\n )\n}\n\n// ============================================\n// LIST ITEM CONTENT\n// ============================================\nfunction ListItemContent({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n className={cn(\"flex flex-1 flex-col gap-0.5\", className)}\n data-slot=\"list-item-content\"\n {...props}\n />\n )\n}\n\n// ============================================\n// LIST ITEM ACTIONS\n// ============================================\nfunction ListItemActions({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n className={cn(\"flex items-center gap-2\", className)}\n data-slot=\"list-item-actions\"\n {...props}\n />\n )\n}\n\n// ============================================\n// EXPORTS\n// ============================================\nexport {\n List,\n ListItem,\n ListItemActions,\n ListItemContent,\n listItemVariants,\n listVariants,\n}\nexport type { ListItemProps, ListItem as ListItemType, ListProps }\n"]}
1
+ {"version":3,"sources":["../src/components/data-display/List/List.tsx"],"names":[],"mappings":"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","file":"chunk-UST7EAJM.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Avatar, AvatarFallback, AvatarImage } from \"../../primitives/Avatar\"\nimport { Badge } from \"../../primitives/Badge\"\nimport { SkeletonLoader } from \"../../primitives/SkeletonLoader\"\n\n// ============================================\n// TYPES\n// ============================================\ninterface ListItem {\n avatar?: string\n badge?: string\n description?: string\n disabled?: boolean\n id: string\n label: string\n onClick?: () => void\n}\n\n// ============================================\n// VARIANTS\n// ============================================\nconst listVariants = cva(\n \"flex flex-col bg-background text-foreground transition-colors duration-150\",\n {\n variants: {\n variant: {\n default: \"border border-border rounded-md\",\n flat: \"divide-y divide-border\",\n card: \"gap-4 flex-col\",\n minimal: \"divide-y divide-border border-0\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nconst listItemVariants = cva(\n \"group/list-item flex items-center text-sm transition-colors duration-150 outline-none\",\n {\n variants: {\n variant: {\n default: \"border-b border-border last:border-b-0\",\n flat: \"\",\n card: \"border border-border rounded-md bg-background\",\n minimal: \"\",\n },\n size: {\n sm: \"px-3 py-2 min-h-8 gap-2\",\n default: \"px-4 py-3 min-h-10 gap-3\",\n lg: \"px-5 py-4 min-h-12 gap-4\",\n },\n selectable: {\n true: \"cursor-pointer hover:bg-muted/50 focus-visible:bg-muted/50 focus-visible:ring-[3px] focus-visible:ring-ring/50\",\n false: \"\",\n },\n selected: {\n true: \"bg-muted\",\n false: \"\",\n },\n disabled: {\n true: \"opacity-50 cursor-not-allowed pointer-events-none\",\n false: \"\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n selectable: false,\n selected: false,\n disabled: false,\n },\n }\n)\n\n// ============================================\n// LIST COMPONENT\n// ============================================\ntype ListProps = React.ComponentProps<\"ul\"> &\n VariantProps<typeof listVariants> & {\n items?: ListItem[]\n loading?: boolean\n multiple?: boolean\n onSelect?: (item: ListItem) => void\n selectable?: boolean\n }\n\nfunction List({\n className,\n variant = \"default\",\n items,\n selectable = false,\n multiple = false,\n loading = false,\n onSelect,\n children,\n ref,\n ...props\n}: ListProps) {\n const [selectedIds, setSelectedIds] = React.useState<Set<string>>(() => new Set())\n const [focusedIndex, setFocusedIndex] = React.useState<number>(-1)\n const itemRefsRef = React.useRef<Map<number, HTMLLIElement>>(new Map())\n\n const handleSelect = React.useCallback(\n (item: ListItem) => {\n if (item.disabled) return\n\n if (multiple) {\n setSelectedIds((prev) => {\n const newSet = new Set(prev)\n if (newSet.has(item.id)) {\n newSet.delete(item.id)\n } else {\n newSet.add(item.id)\n }\n return newSet\n })\n } else {\n setSelectedIds(new Set([item.id]))\n }\n\n onSelect?.(item)\n item.onClick?.()\n },\n [multiple, onSelect]\n )\n\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLUListElement>) => {\n if (!items || items.length === 0) return\n\n const enabledIndices = items\n .map((item, index) => (item.disabled ? -1 : index))\n .filter((i) => i !== -1)\n\n let newIndex = focusedIndex\n\n switch (e.key) {\n case \"ArrowDown\":\n e.preventDefault()\n if (focusedIndex === -1) {\n newIndex = enabledIndices[0] ?? -1\n } else {\n const currentEnabledPos = enabledIndices.indexOf(focusedIndex)\n const nextPos = Math.min(\n currentEnabledPos + 1,\n enabledIndices.length - 1\n )\n newIndex = enabledIndices[nextPos] ?? focusedIndex\n }\n break\n case \"ArrowUp\":\n e.preventDefault()\n if (focusedIndex === -1) {\n newIndex = enabledIndices[enabledIndices.length - 1] ?? -1\n } else {\n const currentEnabledPos = enabledIndices.indexOf(focusedIndex)\n const prevPos = Math.max(currentEnabledPos - 1, 0)\n newIndex = enabledIndices[prevPos] ?? focusedIndex\n }\n break\n case \"Enter\":\n case \" \":\n e.preventDefault()\n if (focusedIndex >= 0 && selectable && items[focusedIndex]) {\n handleSelect(items[focusedIndex])\n }\n break\n case \"Home\":\n e.preventDefault()\n newIndex = enabledIndices[0] ?? -1\n break\n case \"End\":\n e.preventDefault()\n newIndex = enabledIndices[enabledIndices.length - 1] ?? -1\n break\n }\n\n if (newIndex !== focusedIndex) {\n setFocusedIndex(newIndex)\n itemRefsRef.current.get(newIndex)?.focus()\n }\n },\n [items, focusedIndex, selectable, handleSelect]\n )\n\n // Loading skeleton\n if (loading) {\n return (\n <ul\n ref={ref}\n data-loading\n aria-busy=\"true\"\n aria-label=\"Loading list\"\n className={cn(listVariants({ variant }), className)}\n data-slot=\"list\"\n data-variant={variant}\n role=\"list\"\n {...props}\n >\n {[1, 2, 3].map((i) => (\n <li\n key={i}\n className={cn(listItemVariants({ variant, size: \"default\" }))}\n data-slot=\"list-item\"\n >\n <SkeletonLoader className=\"size-10 rounded-full\" />\n <div className=\"flex flex-1 flex-col gap-1\">\n <SkeletonLoader className=\"h-4 w-32\" />\n <SkeletonLoader className=\"h-3 w-24\" />\n </div>\n </li>\n ))}\n </ul>\n )\n }\n\n // Render with items prop\n if (items && items.length > 0) {\n return (\n <ul\n ref={ref}\n aria-label={props[\"aria-label\"]}\n className={cn(listVariants({ variant }), className)}\n data-slot=\"list\"\n data-variant={variant}\n role={selectable ? \"listbox\" : \"list\"}\n tabIndex={selectable ? 0 : undefined}\n onKeyDown={selectable ? handleKeyDown : undefined}\n {...props}\n >\n {items.map((item, index) => {\n const isSelected = selectedIds.has(item.id)\n const isFocused = focusedIndex === index\n\n return (\n <ListItemInternal\n key={item.id}\n ref={(el) => {\n if (el) {\n itemRefsRef.current.set(index, el)\n } else {\n itemRefsRef.current.delete(index)\n }\n }}\n tabIndex={\n selectable\n ? isFocused || (focusedIndex === -1 && index === 0)\n ? 0\n : -1\n : undefined\n }\n aria-disabled={item.disabled ? true : undefined}\n aria-selected={selectable ? isSelected : undefined}\n data-focused={isFocused ? true : undefined}\n data-selected={isSelected ? true : undefined}\n disabled={item.disabled}\n isFocused={isFocused}\n item={item}\n selectable={selectable}\n selected={isSelected}\n variant={variant}\n onClick={\n selectable && !item.disabled\n ? () => { handleSelect(item); }\n : undefined\n }\n />\n )\n })}\n </ul>\n )\n }\n\n // Render with children\n return (\n <ul\n ref={ref}\n aria-label={props[\"aria-label\"]}\n className={cn(listVariants({ variant }), className)}\n data-slot=\"list\"\n data-variant={variant}\n role=\"list\"\n {...props}\n >\n {children}\n </ul>\n )\n}\n\n// ============================================\n// INTERNAL LIST ITEM (for items prop rendering)\n// ============================================\ninterface ListItemInternalProps\n extends Omit<React.ComponentProps<\"li\">, \"onClick\"> {\n disabled?: boolean\n isFocused?: boolean\n item: ListItem\n onClick?: () => void\n selectable?: boolean\n selected?: boolean\n variant?: \"card\" | \"default\" | \"flat\" | \"minimal\" | null\n}\n\nfunction ListItemInternal({\n ref,\n item,\n variant = \"default\",\n selectable = false,\n selected = false,\n disabled = false,\n isFocused = false,\n onClick,\n className,\n ...props\n}: ListItemInternalProps & { ref?: React.Ref<HTMLLIElement | null> }) {\n return (\n <li\n ref={ref}\n className={cn(\n listItemVariants({\n variant,\n size: \"default\",\n selectable,\n selected,\n disabled,\n }),\n isFocused && \"ring-[3px] ring-ring/50\",\n className\n )}\n data-slot=\"list-item\"\n role={selectable ? \"option\" : undefined}\n onClick={onClick}\n {...props}\n >\n {item.avatar && (\n <Avatar className=\"size-10\" data-slot=\"list-item-avatar\">\n <AvatarImage alt={item.label} src={item.avatar} />\n <AvatarFallback>\n {item.label.slice(0, 2).toUpperCase()}\n </AvatarFallback>\n </Avatar>\n )}\n\n <div className=\"flex flex-1 flex-col gap-0.5\" data-slot=\"list-item-content\">\n <span className=\"font-medium leading-snug\">{item.label}</span>\n {item.description && (\n <span\n className=\"text-muted-foreground text-xs leading-normal\"\n data-slot=\"list-item-description\"\n >\n {item.description}\n </span>\n )}\n </div>\n\n {item.badge && (\n <div data-slot=\"list-item-actions\">\n <Badge color=\"muted\" type=\"pill-color\">{item.badge}</Badge>\n </div>\n )}\n </li>\n )\n }\n\n// ============================================\n// PUBLIC LIST ITEM COMPONENT\n// ============================================\ninterface ListItemProps extends Omit<React.ComponentProps<\"li\">, \"disabled\"> {\n disabled?: boolean\n selectable?: boolean\n selected?: boolean\n size?: \"default\" | \"lg\" | \"sm\"\n variant?: \"card\" | \"default\" | \"flat\" | \"minimal\"\n}\n\nfunction ListItem({\n className,\n variant = \"default\",\n size = \"default\",\n selectable = false,\n selected = false,\n disabled = false,\n ref,\n ...restProps\n}: ListItemProps) {\n return (\n <li\n ref={ref}\n className={cn(\n listItemVariants({ variant, size, selectable, selected, disabled }),\n className\n )}\n aria-disabled={disabled ? true : undefined}\n aria-selected={selectable ? selected : undefined}\n data-disabled={disabled ? true : undefined}\n data-selected={selected ? true : undefined}\n data-size={size}\n data-slot=\"list-item\"\n data-variant={variant}\n role={selectable ? \"option\" : undefined}\n tabIndex={selectable && !disabled ? 0 : undefined}\n {...restProps}\n />\n )\n}\n\n// ============================================\n// LIST ITEM CONTENT\n// ============================================\nfunction ListItemContent({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n className={cn(\"flex flex-1 flex-col gap-0.5\", className)}\n data-slot=\"list-item-content\"\n {...props}\n />\n )\n}\n\n// ============================================\n// LIST ITEM ACTIONS\n// ============================================\nfunction ListItemActions({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n className={cn(\"flex items-center gap-2\", className)}\n data-slot=\"list-item-actions\"\n {...props}\n />\n )\n}\n\n// ============================================\n// EXPORTS\n// ============================================\nexport {\n List,\n ListItem,\n ListItemActions,\n ListItemContent,\n listItemVariants,\n listVariants,\n}\nexport type { ListItemProps, ListItem as ListItemType, ListProps }\n"]}
@@ -161,5 +161,5 @@ function Modal({
161
161
  }
162
162
 
163
163
  export { Modal };
164
- //# sourceMappingURL=chunk-YWA63YN3.js.map
165
- //# sourceMappingURL=chunk-YWA63YN3.js.map
164
+ //# sourceMappingURL=chunk-VAVE4ZJF.js.map
165
+ //# sourceMappingURL=chunk-VAVE4ZJF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/feedback/Modal/Modal.tsx"],"names":[],"mappings":"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","file":"chunk-VAVE4ZJF.js","sourcesContent":["\"use client\"\n\nimport type { ModalIntent, ModalProps, ModalSize } from \"./Modal.types\"\n\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\"\nimport { X } from \"lucide-react\"\n\nimport { cn } from \"../../../lib/utils\"\n\n/**\n * Size classes for modal widths\n */\nconst sizeClasses: Record<ModalSize, string> = {\n \"2xl\": \"sm:max-w-2xl\",\n full: \"sm:max-w-[calc(100vw-4rem)]\",\n lg: \"sm:max-w-lg\",\n md: \"sm:max-w-md\",\n sm: \"sm:max-w-sm\",\n xl: \"sm:max-w-xl\",\n}\n\n/**\n * Background/foreground classes for the header icon-pill per intent.\n * Reuses the semantic STATUS tokens exposed as `--modal-icon-pill-color-*`.\n */\nconst iconPillClasses: Record<ModalIntent, string> = {\n default:\n \"bg-[color:var(--modal-icon-pill-color-default-bg)] text-[color:var(--modal-icon-pill-color-default-fg)]\",\n destructive:\n \"bg-[color:var(--modal-icon-pill-color-destructive-bg)] text-[color:var(--modal-icon-pill-color-destructive-fg)]\",\n warning:\n \"bg-[color:var(--modal-icon-pill-color-warning-bg)] text-[color:var(--modal-icon-pill-color-warning-fg)]\",\n}\n\n// Default English fallbacks — override via props for i18n (DES-1286 item 7)\nconst DEFAULT_FALLBACK_TITLE = \"Modal dialog\"\nconst DEFAULT_FALLBACK_DESCRIPTION = \"Use this dialog to complete the current action.\"\nconst DEFAULT_CLOSE_LABEL = \"Close\"\n\n/**\n * Modal - Simplified wrapper over @radix-ui/react-dialog\n *\n * A declarative API for common modal use cases. Modal is NOT a wrapper over\n * Seven's Dialog component — both are sibling wrappers over the same Radix\n * primitive. Modal provides a simpler props-based interface than Dialog's\n * compound subcomponents while maintaining full accessibility.\n *\n * @example\n * ```tsx\n * // With trigger (uncontrolled)\n * <Modal\n * trigger={<Button>Open Modal</Button>}\n * title=\"Modal Title\"\n * description=\"Optional description\"\n * footer={<Button>Save</Button>}\n * >\n * <p>Modal content here</p>\n * </Modal>\n *\n * // Controlled\n * <Modal\n * open={isOpen}\n * onOpenChange={setIsOpen}\n * title=\"Controlled Modal\"\n * >\n * <p>Content</p>\n * </Modal>\n * ```\n */\nfunction Modal({\n children,\n className,\n closeLabel = DEFAULT_CLOSE_LABEL,\n closeOnEscape = true,\n closeOnOverlayClick = true,\n defaultOpen = false,\n description,\n fallbackDescription = DEFAULT_FALLBACK_DESCRIPTION,\n fallbackTitle = DEFAULT_FALLBACK_TITLE,\n footer,\n icon,\n intent = \"default\",\n onOpenChange,\n open,\n overlayClassName,\n showCloseButton = true,\n size = \"md\",\n title,\n trigger,\n}: ModalProps) {\n const accessibleTitle = title ?? fallbackTitle\n const accessibleDescription = description ?? fallbackDescription\n\n const handleOpenChange = (newOpen: boolean): void => {\n onOpenChange?.(newOpen)\n }\n\n const handleEscapeKeyDown = (event: KeyboardEvent): void => {\n if (!closeOnEscape) {\n event.preventDefault()\n }\n }\n\n const handleInteractOutside = (\n event: CustomEvent<{ originalEvent: Event }>\n ): void => {\n if (!closeOnOverlayClick) {\n event.preventDefault()\n }\n }\n\n return (\n <DialogPrimitive.Root\n defaultOpen={defaultOpen}\n open={open}\n onOpenChange={handleOpenChange}\n >\n {trigger && (\n <DialogPrimitive.Trigger asChild data-slot=\"modal-trigger\">\n {trigger}\n </DialogPrimitive.Trigger>\n )}\n\n <DialogPrimitive.Portal>\n <DialogPrimitive.Overlay\n className={cn(\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-[color:var(--modal-overlay-bg)]\",\n overlayClassName\n )}\n data-slot=\"modal-overlay\"\n />\n <DialogPrimitive.Content\n className={cn(\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] border duration-200\",\n \"bg-[color:var(--modal-content-bg)] border-[color:var(--modal-content-border)] gap-[var(--modal-content-gap)] rounded-[var(--modal-content-radius)] p-[var(--modal-content-padding)] shadow-[var(--modal-content-shadow)]\",\n sizeClasses[size],\n className\n )}\n data-slot=\"modal\"\n onEscapeKeyDown={handleEscapeKeyDown}\n onInteractOutside={handleInteractOutside}\n >\n {/* Header */}\n <div\n className=\"flex flex-col gap-[var(--modal-header-gap)] text-center sm:text-left\"\n data-slot=\"modal-header\"\n >\n {icon && (\n <span\n className={cn(\n \"inline-flex w-fit items-center justify-center self-center rounded-[var(--modal-icon-pill-radius)] p-[var(--modal-icon-pill-padding)] sm:self-start [&_svg]:size-[var(--modal-icon-pill-icon-size)] [&_svg]:shrink-0\",\n iconPillClasses[intent]\n )}\n aria-hidden=\"true\"\n data-intent={intent}\n data-slot=\"modal-icon-pill\"\n >\n {icon}\n </span>\n )}\n <DialogPrimitive.Title\n className={cn(\n \"text-lg leading-tight font-semibold\",\n !title && \"sr-only\"\n )}\n data-slot=\"modal-title\"\n >\n {accessibleTitle}\n </DialogPrimitive.Title>\n <DialogPrimitive.Description\n className={cn(\n \"text-muted-foreground text-sm\",\n !description && \"sr-only\"\n )}\n data-slot=\"modal-description\"\n >\n {accessibleDescription}\n </DialogPrimitive.Description>\n </div>\n\n {/* Content */}\n {children && <div data-slot=\"modal-content\">{children}</div>}\n\n {/* Footer */}\n {footer && (\n <div\n className=\"flex flex-col-reverse gap-[var(--modal-footer-gap)] sm:flex-row sm:justify-end\"\n data-slot=\"modal-footer\"\n >\n {footer}\n </div>\n )}\n\n {/* Close Button */}\n {showCloseButton && (\n <DialogPrimitive.Close\n className=\"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\"\n data-slot=\"modal-close\"\n >\n <X />\n <span className=\"sr-only\">{closeLabel}</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </DialogPrimitive.Portal>\n </DialogPrimitive.Root>\n )\n}\n\nexport { Modal }\n"]}
@@ -1,5 +1,5 @@
1
- import { Field, FieldLabel, FieldError, FieldDescription } from './chunk-4GQN76L7.js';
2
1
  import { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator } from './chunk-N3I6GA4I.js';
2
+ import { Field, FieldLabel, FieldError, FieldDescription } from './chunk-G7PBPX3K.js';
3
3
  import * as React from 'react';
4
4
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
5
5
  import { cva } from 'class-variance-authority';
@@ -143,5 +143,5 @@ var inputOTPFieldErrorVariants = cva(
143
143
  );
144
144
 
145
145
  export { InputOTPField, inputOTPFieldDescriptionVariants, inputOTPFieldErrorVariants, inputOTPFieldLabelVariants, inputOTPFieldVariants };
146
- //# sourceMappingURL=chunk-6ELVWWIA.js.map
147
- //# sourceMappingURL=chunk-6ELVWWIA.js.map
146
+ //# sourceMappingURL=chunk-VBJ26PZJ.js.map
147
+ //# sourceMappingURL=chunk-VBJ26PZJ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/forms/InputOTPField/InputOTPField.tsx","../src/components/forms/InputOTPField/InputOTPField.variants.ts"],"names":[],"mappings":"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","file":"chunk-6ELVWWIA.js","sourcesContent":["\"use client\"\n\nimport type { InputOTPFieldProps } from \"./InputOTPField.types\"\n\nimport * as React from \"react\"\n\nimport { Field, FieldDescription, FieldError, FieldLabel } from \"../Field\"\nimport {\n InputOTP,\n InputOTPGroup,\n InputOTPSeparator,\n InputOTPSlot,\n} from \"../InputOTP\"\n\n/**\n * InputOTPField - A complete OTP input field with label, description, and error handling\n *\n * @example\n * ```tsx\n * // 6-digit OTP with two groups\n * <InputOTPField\n * label=\"Verification Code\"\n * description=\"Enter the 6-digit code sent to your phone\"\n * digits={6}\n * />\n *\n * // 4-digit OTP with placeholder\n * <InputOTPField\n * label=\"PIN\"\n * digits={4}\n * placeholder=\"0\"\n * />\n *\n * // With error state\n * <InputOTPField\n * label=\"Code\"\n * errorMessage=\"Invalid verification code\"\n * digits={6}\n * />\n * ```\n */\nfunction InputOTPField({\n label,\n description,\n errorMessage,\n required,\n digits = 6,\n placeholder,\n size = \"md\",\n slotSize,\n onChange,\n onComplete,\n value,\n defaultValue,\n disabled,\n pattern,\n className,\n containerClassName,\n}: InputOTPFieldProps) {\n const id = React.useId()\n const inputId = `${id}-input`\n const descriptionId = `${id}-description`\n const errorId = `${id}-error`\n\n const hasError = !!errorMessage\n const resolvedSlotSize = slotSize ?? size\n const isControlled = value !== undefined\n const [internalValue, setInternalValue] = React.useState(defaultValue ?? \"\")\n\n const currentValue = isControlled ? value : internalValue\n\n const handleChange = React.useCallback(\n (nextValue: string) => {\n if (!isControlled) {\n setInternalValue(nextValue)\n }\n onChange?.(nextValue)\n },\n [isControlled, onChange]\n )\n\n // Generate slot elements based on digit count\n // Index keys are safe here: OTP slots are static, fixed-length, never reordered\n /* eslint-disable @eslint-react/no-array-index-key */\n const renderSlots = () => {\n const slotProps = {\n size: resolvedSlotSize,\n ...(placeholder ? { placeholder } : {}),\n }\n\n if (digits === 4) {\n return (\n <InputOTPGroup>\n {Array.from({ length: 4 }).map((_, i) => (\n <InputOTPSlot key={i} index={i} {...slotProps} />\n ))}\n </InputOTPGroup>\n )\n }\n\n // 6 digits: two groups of 3 with separator\n return (\n <>\n <InputOTPGroup>\n {Array.from({ length: 3 }).map((_, i) => (\n <InputOTPSlot key={i} index={i} {...slotProps} />\n ))}\n </InputOTPGroup>\n <InputOTPSeparator />\n <InputOTPGroup>\n {Array.from({ length: 3 }).map((_, i) => (\n <InputOTPSlot key={i + 3} index={i + 3} {...slotProps} />\n ))}\n </InputOTPGroup>\n </>\n )\n }\n /* eslint-enable @eslint-react/no-array-index-key */\n\n return (\n <Field>\n {label && (\n <FieldLabel htmlFor={inputId}>\n {label}\n {required && (\n <span aria-hidden=\"true\" className=\"text-destructive ml-1\">\n *\n </span>\n )}\n </FieldLabel>\n )}\n <InputOTP\n id={inputId}\n maxLength={digits}\n slotSize={resolvedSlotSize}\n onChange={handleChange}\n {...(onComplete ? { onComplete } : {})}\n disabled={disabled}\n value={currentValue}\n {...(pattern ? { pattern } : {})}\n {...(className ? { className } : {})}\n {...(containerClassName ? { containerClassName } : {})}\n aria-describedby={\n hasError ? errorId : (description ? descriptionId : undefined)\n }\n aria-invalid={hasError || undefined}\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing -- Using || intentionally: false || undefined = undefined, false ?? undefined = false\n aria-required={required || undefined}\n >\n {renderSlots()}\n </InputOTP>\n {hasError ? (\n <FieldError id={errorId}>{errorMessage}</FieldError>\n ) : description ? (\n <FieldDescription id={descriptionId}>{description}</FieldDescription>\n ) : null}\n </Field>\n )\n}\n\nexport { InputOTPField }\n","import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * InputOTPField container variant styles using CVA\n * Wraps the Field + InputOTP combination with consistent spacing\n */\nexport const inputOTPFieldVariants = cva(\n \"flex flex-col gap-2\",\n {\n variants: {\n size: {\n sm: \"gap-1.5\",\n md: \"gap-2\",\n lg: \"gap-2.5\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\n/**\n * InputOTPField label variant styles using CVA\n */\nexport const inputOTPFieldLabelVariants = cva(\n \"font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\",\n {\n variants: {\n size: {\n sm: \"text-xs\",\n md: \"text-sm\",\n lg: \"text-base\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\n/**\n * InputOTPField description variant styles using CVA\n */\nexport const inputOTPFieldDescriptionVariants = cva(\n \"text-muted-foreground\",\n {\n variants: {\n size: {\n sm: \"text-xs\",\n md: \"text-sm\",\n lg: \"text-sm\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\n/**\n * InputOTPField error variant styles using CVA\n */\nexport const inputOTPFieldErrorVariants = cva(\n \"text-destructive font-medium\",\n {\n variants: {\n size: {\n sm: \"text-xs\",\n md: \"text-sm\",\n lg: \"text-sm\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\nexport type InputOTPFieldVariantProps = VariantProps<typeof inputOTPFieldVariants>\nexport type InputOTPFieldLabelVariantProps = VariantProps<typeof inputOTPFieldLabelVariants>\nexport type InputOTPFieldDescriptionVariantProps = VariantProps<typeof inputOTPFieldDescriptionVariants>\nexport type InputOTPFieldErrorVariantProps = VariantProps<typeof inputOTPFieldErrorVariants>\n"]}
1
+ {"version":3,"sources":["../src/components/forms/InputOTPField/InputOTPField.tsx","../src/components/forms/InputOTPField/InputOTPField.variants.ts"],"names":[],"mappings":"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","file":"chunk-VBJ26PZJ.js","sourcesContent":["\"use client\"\n\nimport type { InputOTPFieldProps } from \"./InputOTPField.types\"\n\nimport * as React from \"react\"\n\nimport { Field, FieldDescription, FieldError, FieldLabel } from \"../Field\"\nimport {\n InputOTP,\n InputOTPGroup,\n InputOTPSeparator,\n InputOTPSlot,\n} from \"../InputOTP\"\n\n/**\n * InputOTPField - A complete OTP input field with label, description, and error handling\n *\n * @example\n * ```tsx\n * // 6-digit OTP with two groups\n * <InputOTPField\n * label=\"Verification Code\"\n * description=\"Enter the 6-digit code sent to your phone\"\n * digits={6}\n * />\n *\n * // 4-digit OTP with placeholder\n * <InputOTPField\n * label=\"PIN\"\n * digits={4}\n * placeholder=\"0\"\n * />\n *\n * // With error state\n * <InputOTPField\n * label=\"Code\"\n * errorMessage=\"Invalid verification code\"\n * digits={6}\n * />\n * ```\n */\nfunction InputOTPField({\n label,\n description,\n errorMessage,\n required,\n digits = 6,\n placeholder,\n size = \"md\",\n slotSize,\n onChange,\n onComplete,\n value,\n defaultValue,\n disabled,\n pattern,\n className,\n containerClassName,\n}: InputOTPFieldProps) {\n const id = React.useId()\n const inputId = `${id}-input`\n const descriptionId = `${id}-description`\n const errorId = `${id}-error`\n\n const hasError = !!errorMessage\n const resolvedSlotSize = slotSize ?? size\n const isControlled = value !== undefined\n const [internalValue, setInternalValue] = React.useState(defaultValue ?? \"\")\n\n const currentValue = isControlled ? value : internalValue\n\n const handleChange = React.useCallback(\n (nextValue: string) => {\n if (!isControlled) {\n setInternalValue(nextValue)\n }\n onChange?.(nextValue)\n },\n [isControlled, onChange]\n )\n\n // Generate slot elements based on digit count\n // Index keys are safe here: OTP slots are static, fixed-length, never reordered\n /* eslint-disable @eslint-react/no-array-index-key */\n const renderSlots = () => {\n const slotProps = {\n size: resolvedSlotSize,\n ...(placeholder ? { placeholder } : {}),\n }\n\n if (digits === 4) {\n return (\n <InputOTPGroup>\n {Array.from({ length: 4 }).map((_, i) => (\n <InputOTPSlot key={i} index={i} {...slotProps} />\n ))}\n </InputOTPGroup>\n )\n }\n\n // 6 digits: two groups of 3 with separator\n return (\n <>\n <InputOTPGroup>\n {Array.from({ length: 3 }).map((_, i) => (\n <InputOTPSlot key={i} index={i} {...slotProps} />\n ))}\n </InputOTPGroup>\n <InputOTPSeparator />\n <InputOTPGroup>\n {Array.from({ length: 3 }).map((_, i) => (\n <InputOTPSlot key={i + 3} index={i + 3} {...slotProps} />\n ))}\n </InputOTPGroup>\n </>\n )\n }\n /* eslint-enable @eslint-react/no-array-index-key */\n\n return (\n <Field>\n {label && (\n <FieldLabel htmlFor={inputId}>\n {label}\n {required && (\n <span aria-hidden=\"true\" className=\"text-destructive ml-1\">\n *\n </span>\n )}\n </FieldLabel>\n )}\n <InputOTP\n id={inputId}\n maxLength={digits}\n slotSize={resolvedSlotSize}\n onChange={handleChange}\n {...(onComplete ? { onComplete } : {})}\n disabled={disabled}\n value={currentValue}\n {...(pattern ? { pattern } : {})}\n {...(className ? { className } : {})}\n {...(containerClassName ? { containerClassName } : {})}\n aria-describedby={\n hasError ? errorId : (description ? descriptionId : undefined)\n }\n aria-invalid={hasError || undefined}\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing -- Using || intentionally: false || undefined = undefined, false ?? undefined = false\n aria-required={required || undefined}\n >\n {renderSlots()}\n </InputOTP>\n {hasError ? (\n <FieldError id={errorId}>{errorMessage}</FieldError>\n ) : description ? (\n <FieldDescription id={descriptionId}>{description}</FieldDescription>\n ) : null}\n </Field>\n )\n}\n\nexport { InputOTPField }\n","import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * InputOTPField container variant styles using CVA\n * Wraps the Field + InputOTP combination with consistent spacing\n */\nexport const inputOTPFieldVariants = cva(\n \"flex flex-col gap-2\",\n {\n variants: {\n size: {\n sm: \"gap-1.5\",\n md: \"gap-2\",\n lg: \"gap-2.5\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\n/**\n * InputOTPField label variant styles using CVA\n */\nexport const inputOTPFieldLabelVariants = cva(\n \"font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\",\n {\n variants: {\n size: {\n sm: \"text-xs\",\n md: \"text-sm\",\n lg: \"text-base\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\n/**\n * InputOTPField description variant styles using CVA\n */\nexport const inputOTPFieldDescriptionVariants = cva(\n \"text-muted-foreground\",\n {\n variants: {\n size: {\n sm: \"text-xs\",\n md: \"text-sm\",\n lg: \"text-sm\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\n/**\n * InputOTPField error variant styles using CVA\n */\nexport const inputOTPFieldErrorVariants = cva(\n \"text-destructive font-medium\",\n {\n variants: {\n size: {\n sm: \"text-xs\",\n md: \"text-sm\",\n lg: \"text-sm\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\nexport type InputOTPFieldVariantProps = VariantProps<typeof inputOTPFieldVariants>\nexport type InputOTPFieldLabelVariantProps = VariantProps<typeof inputOTPFieldLabelVariants>\nexport type InputOTPFieldDescriptionVariantProps = VariantProps<typeof inputOTPFieldDescriptionVariants>\nexport type InputOTPFieldErrorVariantProps = VariantProps<typeof inputOTPFieldErrorVariants>\n"]}