@etus/ui 0.4.0-beta.20 → 0.4.0-beta.22

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 (235) hide show
  1. package/dist/{chunk-KBU4KJKC.js → chunk-2DFFIU44.js} +4 -4
  2. package/dist/{chunk-KBU4KJKC.js.map → chunk-2DFFIU44.js.map} +1 -1
  3. package/dist/{chunk-YMCKML6D.js → chunk-2JDLQ4VR.js} +4 -4
  4. package/dist/{chunk-YMCKML6D.js.map → chunk-2JDLQ4VR.js.map} +1 -1
  5. package/dist/{chunk-JE46MFMN.js → chunk-2LVRSLWI.js} +4 -4
  6. package/dist/{chunk-JE46MFMN.js.map → chunk-2LVRSLWI.js.map} +1 -1
  7. package/dist/{chunk-GRODCJS4.js → chunk-2VOKY2TU.js} +4 -4
  8. package/dist/{chunk-GRODCJS4.js.map → chunk-2VOKY2TU.js.map} +1 -1
  9. package/dist/{chunk-UC5J6GWG.js → chunk-3TRT6TKW.js} +6 -6
  10. package/dist/chunk-3TRT6TKW.js.map +1 -0
  11. package/dist/{chunk-UZZCEQH4.js → chunk-3XVOI4HK.js} +3 -3
  12. package/dist/{chunk-UZZCEQH4.js.map → chunk-3XVOI4HK.js.map} +1 -1
  13. package/dist/{chunk-WGKOYZRI.js → chunk-4S6CPTSO.js} +5 -5
  14. package/dist/chunk-4S6CPTSO.js.map +1 -0
  15. package/dist/{chunk-GVNG5ME6.js → chunk-6CO3FRGG.js} +201 -17
  16. package/dist/chunk-6CO3FRGG.js.map +1 -0
  17. package/dist/chunk-7MJS37Q4.js +135 -0
  18. package/dist/chunk-7MJS37Q4.js.map +1 -0
  19. package/dist/{chunk-QXET2TML.js → chunk-A33MLHXO.js} +3 -3
  20. package/dist/{chunk-QXET2TML.js.map → chunk-A33MLHXO.js.map} +1 -1
  21. package/dist/{chunk-STADVFL2.js → chunk-A6BDDZ27.js} +3 -3
  22. package/dist/{chunk-STADVFL2.js.map → chunk-A6BDDZ27.js.map} +1 -1
  23. package/dist/{chunk-WSDWJX4Y.js → chunk-AGXEGVSY.js} +3 -3
  24. package/dist/{chunk-WSDWJX4Y.js.map → chunk-AGXEGVSY.js.map} +1 -1
  25. package/dist/{chunk-R42LSLJL.js → chunk-AOLVER6U.js} +3 -3
  26. package/dist/{chunk-R42LSLJL.js.map → chunk-AOLVER6U.js.map} +1 -1
  27. package/dist/{chunk-YMQDTTO7.js → chunk-CEUARW3D.js} +3 -3
  28. package/dist/{chunk-YMQDTTO7.js.map → chunk-CEUARW3D.js.map} +1 -1
  29. package/dist/{chunk-LDK6ADKM.js → chunk-DZV32N5V.js} +4 -4
  30. package/dist/{chunk-LDK6ADKM.js.map → chunk-DZV32N5V.js.map} +1 -1
  31. package/dist/{chunk-2SUZS6GZ.js → chunk-E5UFATRY.js} +11 -3
  32. package/dist/chunk-E5UFATRY.js.map +1 -0
  33. package/dist/{chunk-RQBYBBMP.js → chunk-EINYBB7T.js} +5 -5
  34. package/dist/{chunk-RQBYBBMP.js.map → chunk-EINYBB7T.js.map} +1 -1
  35. package/dist/{chunk-4LZ53BAG.js → chunk-EKKJXJX7.js} +4 -2
  36. package/dist/chunk-EKKJXJX7.js.map +1 -0
  37. package/dist/{chunk-4OWRNWHW.js → chunk-FCVFYUCL.js} +14 -5
  38. package/dist/chunk-FCVFYUCL.js.map +1 -0
  39. package/dist/{chunk-6QVXMYKH.js → chunk-FGTYI4ZG.js} +3 -3
  40. package/dist/{chunk-6QVXMYKH.js.map → chunk-FGTYI4ZG.js.map} +1 -1
  41. package/dist/{chunk-6G5QK3SU.js → chunk-FLXU5LWR.js} +44 -4
  42. package/dist/chunk-FLXU5LWR.js.map +1 -0
  43. package/dist/{chunk-P4WMDGAQ.js → chunk-G5JO3Q3K.js} +3 -3
  44. package/dist/{chunk-P4WMDGAQ.js.map → chunk-G5JO3Q3K.js.map} +1 -1
  45. package/dist/{chunk-RMJVCJ6U.js → chunk-GKG2LRGY.js} +6 -6
  46. package/dist/chunk-GKG2LRGY.js.map +1 -0
  47. package/dist/{chunk-N7VMQWM3.js → chunk-GN6B4W3G.js} +4 -4
  48. package/dist/{chunk-N7VMQWM3.js.map → chunk-GN6B4W3G.js.map} +1 -1
  49. package/dist/chunk-GX2VJT7D.js +136 -0
  50. package/dist/chunk-GX2VJT7D.js.map +1 -0
  51. package/dist/{chunk-MNYU5MHO.js → chunk-H4KC2YSL.js} +5 -5
  52. package/dist/{chunk-MNYU5MHO.js.map → chunk-H4KC2YSL.js.map} +1 -1
  53. package/dist/{chunk-GLHKHYJY.js → chunk-IARO2PPN.js} +55 -15
  54. package/dist/chunk-IARO2PPN.js.map +1 -0
  55. package/dist/{chunk-ELRIFGMN.js → chunk-JWXZFGNT.js} +30 -6
  56. package/dist/chunk-JWXZFGNT.js.map +1 -0
  57. package/dist/{chunk-Y4FEW7SR.js → chunk-K5RHYIFF.js} +16 -6
  58. package/dist/chunk-K5RHYIFF.js.map +1 -0
  59. package/dist/{chunk-T3LWBCVR.js → chunk-LKCOHB3C.js} +36 -3
  60. package/dist/chunk-LKCOHB3C.js.map +1 -0
  61. package/dist/{chunk-7PX3WBR3.js → chunk-LWIIO75I.js} +5 -3
  62. package/dist/chunk-LWIIO75I.js.map +1 -0
  63. package/dist/{chunk-U7TPJMGY.js → chunk-MR3IPJAO.js} +6 -2
  64. package/dist/chunk-MR3IPJAO.js.map +1 -0
  65. package/dist/chunk-MVL4DVRW.js +177 -0
  66. package/dist/chunk-MVL4DVRW.js.map +1 -0
  67. package/dist/{chunk-L4OQ6BJ5.js → chunk-N3DBRKUS.js} +3 -3
  68. package/dist/{chunk-L4OQ6BJ5.js.map → chunk-N3DBRKUS.js.map} +1 -1
  69. package/dist/{chunk-TIPKU427.js → chunk-N7DAU4LE.js} +3 -3
  70. package/dist/{chunk-TIPKU427.js.map → chunk-N7DAU4LE.js.map} +1 -1
  71. package/dist/{chunk-ZVSMLMMS.js → chunk-NORI6ECA.js} +44 -4
  72. package/dist/chunk-NORI6ECA.js.map +1 -0
  73. package/dist/{chunk-NLPVF34P.js → chunk-NT4GLWNR.js} +14 -9
  74. package/dist/chunk-NT4GLWNR.js.map +1 -0
  75. package/dist/{chunk-7AR5QRRX.js → chunk-NZNAR4HJ.js} +27 -11
  76. package/dist/chunk-NZNAR4HJ.js.map +1 -0
  77. package/dist/{chunk-TNSMTINE.js → chunk-OJIFG4LW.js} +3 -3
  78. package/dist/{chunk-TNSMTINE.js.map → chunk-OJIFG4LW.js.map} +1 -1
  79. package/dist/{chunk-PTXC4KPQ.js → chunk-OSHGYI2O.js} +4 -4
  80. package/dist/{chunk-PTXC4KPQ.js.map → chunk-OSHGYI2O.js.map} +1 -1
  81. package/dist/chunk-OW5R4KST.js +108 -0
  82. package/dist/chunk-OW5R4KST.js.map +1 -0
  83. package/dist/{chunk-QJOWG2D4.js → chunk-PVF23ZX2.js} +3 -3
  84. package/dist/{chunk-QJOWG2D4.js.map → chunk-PVF23ZX2.js.map} +1 -1
  85. package/dist/{chunk-KHCHATTD.js → chunk-PYCQBP4O.js} +4 -4
  86. package/dist/{chunk-KHCHATTD.js.map → chunk-PYCQBP4O.js.map} +1 -1
  87. package/dist/{chunk-KDNTSZF5.js → chunk-Q4E7OG7J.js} +3 -3
  88. package/dist/{chunk-KDNTSZF5.js.map → chunk-Q4E7OG7J.js.map} +1 -1
  89. package/dist/{chunk-KLFYTLF3.js → chunk-Q7MAQ7MO.js} +3 -3
  90. package/dist/{chunk-KLFYTLF3.js.map → chunk-Q7MAQ7MO.js.map} +1 -1
  91. package/dist/{chunk-S6BREP2G.js → chunk-QMCQIOCP.js} +21 -7
  92. package/dist/chunk-QMCQIOCP.js.map +1 -0
  93. package/dist/{chunk-SSKSWSVO.js → chunk-R2Z64IC3.js} +4 -4
  94. package/dist/{chunk-SSKSWSVO.js.map → chunk-R2Z64IC3.js.map} +1 -1
  95. package/dist/{chunk-UNHPLKMR.js → chunk-RK27HS7W.js} +3 -3
  96. package/dist/{chunk-UNHPLKMR.js.map → chunk-RK27HS7W.js.map} +1 -1
  97. package/dist/{chunk-IKLFWGFS.js → chunk-RTSAERFS.js} +7 -7
  98. package/dist/{chunk-IKLFWGFS.js.map → chunk-RTSAERFS.js.map} +1 -1
  99. package/dist/{chunk-EO4NGM5W.js → chunk-S7HXZ5T3.js} +65 -16
  100. package/dist/chunk-S7HXZ5T3.js.map +1 -0
  101. package/dist/{chunk-I5RDX6O3.js → chunk-TBPPBA3S.js} +31 -25
  102. package/dist/chunk-TBPPBA3S.js.map +1 -0
  103. package/dist/{chunk-TDANAN5A.js → chunk-TD2EFGHO.js} +7 -3
  104. package/dist/chunk-TD2EFGHO.js.map +1 -0
  105. package/dist/{chunk-3R6MY3YJ.js → chunk-TVAIT3F5.js} +3 -3
  106. package/dist/{chunk-3R6MY3YJ.js.map → chunk-TVAIT3F5.js.map} +1 -1
  107. package/dist/{chunk-VHJ6ALIE.js → chunk-TX4GUAZ6.js} +11 -3
  108. package/dist/chunk-TX4GUAZ6.js.map +1 -0
  109. package/dist/{chunk-7XJQYAGY.js → chunk-U55YU7DB.js} +22 -6
  110. package/dist/chunk-U55YU7DB.js.map +1 -0
  111. package/dist/{chunk-5GV4LDX7.js → chunk-VI3QWOII.js} +4 -2
  112. package/dist/chunk-VI3QWOII.js.map +1 -0
  113. package/dist/{chunk-PXR6CZIL.js → chunk-VYCXCOUH.js} +3 -3
  114. package/dist/{chunk-PXR6CZIL.js.map → chunk-VYCXCOUH.js.map} +1 -1
  115. package/dist/{chunk-SKI25Q7O.js → chunk-W72PXQDH.js} +4 -4
  116. package/dist/{chunk-SKI25Q7O.js.map → chunk-W72PXQDH.js.map} +1 -1
  117. package/dist/{chunk-4SFBDK4E.js → chunk-WTKHA2NF.js} +3 -3
  118. package/dist/{chunk-4SFBDK4E.js.map → chunk-WTKHA2NF.js.map} +1 -1
  119. package/dist/{chunk-KXJ3SEW7.js → chunk-YNZ6T4IU.js} +13 -5
  120. package/dist/chunk-YNZ6T4IU.js.map +1 -0
  121. package/dist/{chunk-7QEFKWUR.js → chunk-YZBCJDYO.js} +4 -4
  122. package/dist/{chunk-7QEFKWUR.js.map → chunk-YZBCJDYO.js.map} +1 -1
  123. package/dist/{chunk-PVIIIQJI.js → chunk-ZTD3QXLY.js} +4 -4
  124. package/dist/{chunk-PVIIIQJI.js.map → chunk-ZTD3QXLY.js.map} +1 -1
  125. package/dist/{chunk-HHWUROMA.js → chunk-ZZFCKHE2.js} +4 -4
  126. package/dist/{chunk-HHWUROMA.js.map → chunk-ZZFCKHE2.js.map} +1 -1
  127. package/dist/components/advanced/Calendar/index.js +3 -3
  128. package/dist/components/advanced/Command/index.js +2 -2
  129. package/dist/components/advanced/EventCalendar/index.js +3 -3
  130. package/dist/components/advanced/FilterBuilder/index.js +5 -5
  131. package/dist/components/advanced/MarkdownEditor/index.js +3 -3
  132. package/dist/components/advanced/ReportBuilder/index.js +4 -4
  133. package/dist/components/advanced/index.js +17 -17
  134. package/dist/components/data-display/Banner/index.js +1 -1
  135. package/dist/components/data-display/BarChart/index.js +1 -1
  136. package/dist/components/data-display/Carousel/index.js +3 -3
  137. package/dist/components/data-display/DataTable/FilterBuilder/index.js +5 -5
  138. package/dist/components/data-display/DataTable/index.js +9 -9
  139. package/dist/components/data-display/ImageGallery/index.js +4 -4
  140. package/dist/components/data-display/Item/index.js +1 -1
  141. package/dist/components/data-display/KPICard/index.js +1 -1
  142. package/dist/components/data-display/List/index.js +2 -2
  143. package/dist/components/data-display/RadarChart/index.js +1 -1
  144. package/dist/components/data-display/RadialChart/index.js +1 -1
  145. package/dist/components/data-display/index.js +35 -35
  146. package/dist/components/feedback/AlertDialog/index.js +3 -3
  147. package/dist/components/feedback/ConfirmModal/index.js +4 -4
  148. package/dist/components/feedback/Dialog/index.js +1 -1
  149. package/dist/components/feedback/ErrorPage/index.js +1 -1
  150. package/dist/components/feedback/Notification/index.js +2 -2
  151. package/dist/components/feedback/index.js +9 -9
  152. package/dist/components/forms/DatePicker/index.js +4 -4
  153. package/dist/components/forms/DateRangePicker/index.js +5 -5
  154. package/dist/components/forms/EmailInput/index.js +3 -3
  155. package/dist/components/forms/InputGroup/index.js +5 -5
  156. package/dist/components/forms/NumberInput/index.js +2 -2
  157. package/dist/components/forms/PasswordInput/index.js +3 -3
  158. package/dist/components/forms/PaymentInput/index.js +1 -1
  159. package/dist/components/forms/PhoneInput/index.js +1 -1
  160. package/dist/components/forms/RadioGroup/index.js +1 -1
  161. package/dist/components/forms/Rating/index.js +1 -1
  162. package/dist/components/forms/SearchInput/index.js +3 -3
  163. package/dist/components/forms/Switch/index.js +1 -1
  164. package/dist/components/forms/TagsInput/index.js +1 -1
  165. package/dist/components/forms/TextInput/index.js +2 -2
  166. package/dist/components/forms/URLInput/index.js +3 -3
  167. package/dist/components/forms/index.js +33 -33
  168. package/dist/components/index.js +159 -159
  169. package/dist/components/layout/Collapsible/index.js +1 -1
  170. package/dist/components/layout/index.js +5 -5
  171. package/dist/components/navigation/AccountSwitch/index.js +3 -3
  172. package/dist/components/navigation/Breadcrumb/index.js +1 -1
  173. package/dist/components/navigation/ContextMenu/index.js +1 -1
  174. package/dist/components/navigation/DropdownMenu/index.js +1 -1
  175. package/dist/components/navigation/Pagination/index.js +3 -3
  176. package/dist/components/navigation/Sidebar/index.js +8 -7
  177. package/dist/components/navigation/index.js +18 -17
  178. package/dist/components/primitives/Avatar/index.js +1 -1
  179. package/dist/components/primitives/Button/index.js +2 -2
  180. package/dist/components/primitives/ButtonGroup/index.js +1 -1
  181. package/dist/components/primitives/ConfirmButton/index.js +4 -4
  182. package/dist/components/primitives/Icon/index.js +1 -1
  183. package/dist/components/primitives/Kbd/index.js +1 -1
  184. package/dist/components/primitives/Link/index.js +1 -1
  185. package/dist/components/primitives/ProgressCircle/index.js +1 -1
  186. package/dist/components/primitives/SplitButton/index.js +2 -2
  187. package/dist/components/primitives/Text/index.js +1 -1
  188. package/dist/components/primitives/index.js +18 -18
  189. package/dist/components/workflow/ApprovalFlow/index.js +4 -4
  190. package/dist/components/workflow/CommentSystem/index.js +4 -4
  191. package/dist/components/workflow/Dashboard/index.js +3 -3
  192. package/dist/components/workflow/DashboardBuilder/index.js +5 -5
  193. package/dist/components/workflow/KanbanBoard/index.js +4 -4
  194. package/dist/components/workflow/ReportGenerator/index.js +3 -3
  195. package/dist/components/workflow/TaskStatus/index.js +2 -2
  196. package/dist/components/workflow/Wizard/index.js +3 -3
  197. package/dist/components/workflow/index.js +17 -17
  198. package/dist/hooks/index.js +1 -1
  199. package/dist/index.d.ts +322 -49
  200. package/dist/index.js +159 -159
  201. package/dist/styles.css +27 -8
  202. package/package.json +2 -2
  203. package/dist/chunk-2SUZS6GZ.js.map +0 -1
  204. package/dist/chunk-4LZ53BAG.js.map +0 -1
  205. package/dist/chunk-4OWRNWHW.js.map +0 -1
  206. package/dist/chunk-5GV4LDX7.js.map +0 -1
  207. package/dist/chunk-6G5QK3SU.js.map +0 -1
  208. package/dist/chunk-6VEQLD2P.js +0 -75
  209. package/dist/chunk-6VEQLD2P.js.map +0 -1
  210. package/dist/chunk-7AR5QRRX.js.map +0 -1
  211. package/dist/chunk-7PX3WBR3.js.map +0 -1
  212. package/dist/chunk-7XJQYAGY.js.map +0 -1
  213. package/dist/chunk-ELRIFGMN.js.map +0 -1
  214. package/dist/chunk-EO4NGM5W.js.map +0 -1
  215. package/dist/chunk-GLHKHYJY.js.map +0 -1
  216. package/dist/chunk-GVNG5ME6.js.map +0 -1
  217. package/dist/chunk-I5RDX6O3.js.map +0 -1
  218. package/dist/chunk-JUZ4JQWH.js +0 -69
  219. package/dist/chunk-JUZ4JQWH.js.map +0 -1
  220. package/dist/chunk-K4UCALQQ.js +0 -67
  221. package/dist/chunk-K4UCALQQ.js.map +0 -1
  222. package/dist/chunk-KXJ3SEW7.js.map +0 -1
  223. package/dist/chunk-NLPVF34P.js.map +0 -1
  224. package/dist/chunk-RMJVCJ6U.js.map +0 -1
  225. package/dist/chunk-S6BREP2G.js.map +0 -1
  226. package/dist/chunk-T3LWBCVR.js.map +0 -1
  227. package/dist/chunk-TDANAN5A.js.map +0 -1
  228. package/dist/chunk-U7TPJMGY.js.map +0 -1
  229. package/dist/chunk-UC5J6GWG.js.map +0 -1
  230. package/dist/chunk-VHJ6ALIE.js.map +0 -1
  231. package/dist/chunk-WGKOYZRI.js.map +0 -1
  232. package/dist/chunk-WUS45IZW.js +0 -36
  233. package/dist/chunk-WUS45IZW.js.map +0 -1
  234. package/dist/chunk-Y4FEW7SR.js.map +0 -1
  235. package/dist/chunk-ZVSMLMMS.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/primitives/Avatar/Avatar.tsx","../src/components/primitives/Avatar/AvatarStatus.tsx","../src/components/primitives/Avatar/AvatarBadge.tsx","../src/components/primitives/Avatar/AvatarGroup.tsx","../src/components/primitives/Avatar/AvatarLabelGroup.tsx","../src/components/primitives/Avatar/AvatarAddButton.tsx","../src/components/primitives/Avatar/AvatarSkeleton.tsx"],"names":["cva","jsx","jsxs","iconSizes"],"mappings":"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","file":"chunk-U7TPJMGY.js","sourcesContent":["\"use client\"\n\nimport type { AvatarFallbackProps, AvatarImageProps, AvatarProps } from \"./Avatar.types\"\n\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\"\nimport { cva } from \"class-variance-authority\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"../../feedback/Tooltip\"\n\nconst avatarVariants = cva(\n \"relative flex shrink-0 overflow-hidden\",\n {\n variants: {\n size: {\n xs: \"size-[var(--avatar-size-xs)] text-[length:var(--avatar-text-xs)]\",\n sm: \"size-[var(--avatar-size-sm)] text-[length:var(--avatar-text-sm)]\",\n default: \"size-[var(--avatar-size-default)] text-[length:var(--avatar-text-default)]\",\n lg: \"size-[var(--avatar-size-lg)] text-[length:var(--avatar-text-lg)]\",\n xl: \"size-[var(--avatar-size-xl)] text-[length:var(--avatar-text-xl)]\",\n \"3xl\": \"size-[var(--avatar-size-3xl)] text-[length:var(--avatar-text-3xl)]\",\n \"4xl\": \"size-[var(--avatar-size-4xl)] text-[length:var(--avatar-text-4xl)]\",\n },\n shape: {\n circle: \"rounded-[var(--avatar-radius-circle)]\",\n },\n bordered: {\n true: \"ring-2 ring-background\",\n false: \"\",\n },\n interactive: {\n true: \"cursor-pointer transition-transform hover:scale-105 focus-visible:outline-none focus-visible:ring-[length:var(--avatar-focus-ring-width)] focus-visible:ring-offset-[length:var(--avatar-focus-ring-offset)] focus-visible:ring-[color:var(--avatar-focus-ring-color)]\",\n false: \"\",\n },\n },\n defaultVariants: {\n size: \"default\",\n shape: \"circle\",\n bordered: false,\n interactive: false,\n },\n }\n)\n\n// Static contrast border classes for Tailwind JIT compatibility\n// Uses base-black/8 token instead of hardcoded rgba values\nconst contrastBorderClasses = {\n \"xs-circle\": \"after:absolute after:inset-0 after:rounded-full after:border-[0.5px] after:border-[color:var(--avatar-border-contrast)] after:pointer-events-none\",\n \"sm-circle\": \"after:absolute after:inset-0 after:rounded-full after:border-[0.5px] after:border-[color:var(--avatar-border-contrast)] after:pointer-events-none\",\n \"default-circle\": \"after:absolute after:inset-0 after:rounded-full after:border-[0.75px] after:border-[color:var(--avatar-border-contrast)] after:pointer-events-none\",\n \"lg-circle\": \"after:absolute after:inset-0 after:rounded-full after:border-[0.75px] after:border-[color:var(--avatar-border-contrast)] after:pointer-events-none\",\n \"xl-circle\": \"after:absolute after:inset-0 after:rounded-full after:border-[0.75px] after:border-[color:var(--avatar-border-contrast)] after:pointer-events-none\",\n} as const\n\nfunction getContrastBorderClass(size: string, shape: string): string {\n const key = `${size}-${shape}` as keyof typeof contrastBorderClasses\n return key in contrastBorderClasses ? contrastBorderClasses[key] : contrastBorderClasses[\"default-circle\"]\n}\n\nfunction Avatar({\n className,\n size = \"default\",\n shape = \"circle\",\n bordered,\n interactive,\n contrastBorder = true,\n tooltip,\n children,\n ...props\n}: AvatarProps) {\n const avatarElement = (\n <AvatarPrimitive.Root\n className={cn(\n avatarVariants({ size, shape, bordered, interactive }),\n contrastBorder && size && shape && getContrastBorderClass(size, shape),\n className\n )}\n data-slot=\"avatar\"\n tabIndex={tooltip ? 0 : undefined}\n {...props}\n >\n {children}\n </AvatarPrimitive.Root>\n )\n\n if (tooltip) {\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n {avatarElement}\n </TooltipTrigger>\n <TooltipContent>\n {tooltip}\n </TooltipContent>\n </Tooltip>\n )\n }\n\n return avatarElement\n}\n\nfunction AvatarImage({\n className,\n ...props\n}: AvatarImageProps) {\n return (\n <AvatarPrimitive.Image\n className={cn(\"aspect-square size-full object-cover\", className)}\n data-slot=\"avatar-image\"\n {...props}\n />\n )\n}\n\nconst avatarFallbackVariants = cva(\n \"flex size-full items-center justify-center font-medium\",\n {\n variants: {\n colorScheme: {\n default: \"bg-[color:var(--avatar-fallback-bg-default)] text-[color:var(--avatar-fallback-text-default)]\",\n primary: \"bg-[color:var(--avatar-fallback-bg-primary)] text-[color:var(--avatar-fallback-text-primary)]\",\n secondary: \"bg-[color:var(--avatar-fallback-bg-secondary)] text-[color:var(--avatar-fallback-text-secondary)]\",\n success: \"bg-[color:var(--avatar-fallback-bg-success)] text-[color:var(--avatar-fallback-text-success)]\",\n warning: \"bg-[color:var(--avatar-fallback-bg-warning)] text-[color:var(--avatar-fallback-text-warning)]\",\n destructive: \"bg-[color:var(--avatar-fallback-bg-destructive)] text-[color:var(--avatar-fallback-text-destructive)]\",\n },\n },\n defaultVariants: {\n colorScheme: \"default\",\n },\n }\n)\n\nfunction AvatarFallback({\n className,\n colorScheme = \"default\",\n ...props\n}: AvatarFallbackProps) {\n return (\n <AvatarPrimitive.Fallback\n className={cn(avatarFallbackVariants({ colorScheme }), className)}\n data-slot=\"avatar-fallback\"\n {...props}\n />\n )\n}\n\nexport { Avatar, AvatarFallback, avatarFallbackVariants, AvatarImage, avatarVariants }\n","\"use client\"\n\nimport { cva } from \"class-variance-authority\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\n\nconst avatarStatusVariants = cva(\n \"absolute bottom-0 right-0 rounded-full ring-[1.5px] ring-background\",\n {\n variants: {\n status: {\n online: \"bg-success\",\n offline: \"bg-muted-foreground\",\n busy: \"bg-destructive\",\n away: \"bg-warning\",\n },\n size: {\n xs: \"size-1.5\", // 6px\n sm: \"size-2\", // 8px\n default: \"size-2.5\", // 10px\n lg: \"size-3\", // 12px\n xl: \"size-3.5\", // 14px\n },\n },\n defaultVariants: {\n status: \"offline\",\n size: \"default\",\n },\n }\n)\n\nexport interface AvatarStatusProps extends React.ComponentProps<\"span\"> {\n /**\n * The size of the status indicator (should match parent Avatar size)\n * @default \"default\"\n */\n size?: \"default\" | \"lg\" | \"sm\" | \"xl\" | \"xs\"\n /**\n * The status to display\n * @default \"offline\"\n */\n status?: \"away\" | \"busy\" | \"offline\" | \"online\"\n}\n\nconst statusLabels = {\n online: \"Online\",\n offline: \"Offline\",\n busy: \"Busy\",\n away: \"Away\",\n} as const\n\nfunction AvatarStatus({\n className,\n status = \"offline\",\n size,\n ...props\n}: AvatarStatusProps) {\n return (\n <span\n aria-label={statusLabels[status]}\n className={cn(avatarStatusVariants({ status, size, className }))}\n data-slot=\"avatar-status\"\n role=\"status\"\n {...props}\n />\n )\n}\n\nexport { AvatarStatus, avatarStatusVariants }\n","\"use client\"\n\nimport { cva } from \"class-variance-authority\"\nimport { Building2, CheckCircle2 } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\n\nconst avatarBadgeVariants = cva(\n \"absolute -bottom-0.5 -right-0.5 flex items-center justify-center rounded-full ring-[1.5px] ring-background\",\n {\n variants: {\n variant: {\n company: \"bg-brius-500 text-base-white\",\n verified: \"bg-sevends-blue-600 text-base-white\",\n },\n size: {\n xs: \"size-2.5\", // 10px\n sm: \"size-3\", // 12px\n default: \"size-3.5\", // 14px\n lg: \"size-4\", // 16px\n xl: \"size-5\", // 18px\n },\n },\n defaultVariants: {\n variant: \"verified\",\n size: \"default\",\n },\n }\n)\n\nconst iconSizes = {\n xs: \"size-2\",\n sm: \"size-2.5\",\n default: \"size-3\",\n lg: \"size-3.5\",\n xl: \"size-4\",\n} as const\n\nexport interface AvatarBadgeProps extends React.ComponentProps<\"span\"> {\n /**\n * The size of the badge (should match parent Avatar size)\n * @default \"default\"\n */\n size?: \"default\" | \"lg\" | \"sm\" | \"xl\" | \"xs\"\n /**\n * The badge variant to display\n * @default \"verified\"\n */\n variant?: \"company\" | \"verified\"\n}\n\nconst badgeLabels = {\n company: \"Company account\",\n verified: \"Verified account\",\n} as const\n\nfunction AvatarBadge({\n className,\n variant = \"verified\",\n size = \"default\",\n children,\n ...props\n}: AvatarBadgeProps) {\n const defaultIcon = variant === \"company\"\n ? <Building2 className={iconSizes[size]} />\n : <CheckCircle2 className={iconSizes[size]} />\n\n return (\n <span\n aria-label={badgeLabels[variant]}\n className={cn(avatarBadgeVariants({ variant, size, className }))}\n data-slot=\"avatar-badge\"\n role=\"img\"\n {...props}\n >\n {children ?? defaultIcon}\n </span>\n )\n}\n\nexport { AvatarBadge, avatarBadgeVariants }\n","\"use client\"\n\nimport type { AvatarProps, AvatarSize } from \"./Avatar.types\"\n\nimport { cva } from \"class-variance-authority\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Avatar, AvatarFallback } from \"./Avatar\"\n\nconst avatarGroupVariants = cva(\"flex\", {\n variants: {\n size: {\n xs: \"-space-x-1\",\n sm: \"-space-x-2\",\n default: \"-space-x-3\",\n lg: \"-space-x-3\",\n xl: \"-space-x-4\",\n \"3xl\": \"-space-x-5\",\n \"4xl\": \"-space-x-6\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n})\n\nexport interface AvatarGroupProps extends React.ComponentProps<\"div\"> {\n /**\n * Whether to apply ring-2 ring-background to all avatars for visual separation\n * @default true\n */\n bordered?: boolean\n /**\n * Child Avatar components\n */\n children: React.ReactNode\n /**\n * Maximum number of avatars to display before showing \"+N\" indicator\n */\n max?: number\n /**\n * Size to apply to all child avatars\n * @default \"default\"\n */\n size?: AvatarSize\n}\n\nfunction AvatarGroup({\n className,\n max,\n size = \"default\",\n bordered = true,\n children,\n ...props\n}: AvatarGroupProps) {\n // eslint-disable-next-line @eslint-react/no-children-to-array -- Required to count and slice children for max limit\n const childArray = React.Children.toArray(children)\n const hasMax = max !== undefined\n const visibleChildren = hasMax ? childArray.slice(0, max) : childArray\n const remainingCount = hasMax ? Math.max(0, childArray.length - max) : 0\n\n return (\n <div\n aria-label={`Avatar group${hasMax && remainingCount > 0 ? `, showing ${String(visibleChildren.length)} of ${String(childArray.length)}` : \"\"}`}\n className={cn(avatarGroupVariants({ size, className }))}\n data-slot=\"avatar-group\"\n role=\"group\"\n {...props}\n >\n {/* eslint-disable @eslint-react/no-clone-element -- Required to inject size/bordered props to Avatar children */}\n {visibleChildren.map((child) => {\n if (React.isValidElement<AvatarProps>(child) && child.type === Avatar) {\n // Children.toArray assigns stable keys to all children\n return React.cloneElement(child, {\n size: child.props.size ?? size,\n bordered: child.props.bordered ?? bordered,\n className: cn(\n bordered && \"ring-2 ring-background\",\n child.props.className\n ),\n })\n }\n return child\n })}\n {/* eslint-enable @eslint-react/no-clone-element */}\n {remainingCount > 0 && (\n <Avatar\n bordered={bordered}\n className={cn(bordered && \"ring-2 ring-background\")}\n size={size}\n >\n <AvatarFallback className=\"bg-muted text-muted-foreground text-xs font-medium\">\n +{remainingCount}\n </AvatarFallback>\n </Avatar>\n )}\n </div>\n )\n}\n\nexport { AvatarGroup, avatarGroupVariants }\n","\"use client\"\n\nimport { cva } from \"class-variance-authority\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"../../feedback/Tooltip\"\nimport { Avatar, AvatarFallback, AvatarImage } from \"./Avatar\"\nimport { AvatarBadge, type AvatarBadgeProps } from \"./AvatarBadge\"\nimport { AvatarStatus, type AvatarStatusProps } from \"./AvatarStatus\"\n\nconst avatarLabelGroupVariants = cva(\n \"flex items-center gap-3\",\n {\n variants: {\n interactive: {\n true: \"cursor-pointer rounded-lg transition-colors hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 -m-2 p-2\",\n false: \"\",\n },\n },\n defaultVariants: {\n interactive: false,\n },\n }\n)\n\nexport interface AvatarLabelGroupProps extends React.ComponentProps<\"div\"> {\n /**\n * Alternative text for the avatar image\n */\n alt?: string\n /**\n * Optional badge variant (company or verified)\n * Cannot be used together with status\n */\n badge?: AvatarBadgeProps[\"variant\"]\n /**\n * Optional description text below the name\n */\n description?: string\n /**\n * Whether the component is interactive (shows hover/focus states)\n * @default false\n */\n interactive?: boolean\n /**\n * The name to display (required, also used for initials fallback)\n */\n name: string\n /**\n * Click handler for interactive mode\n */\n onClick?: React.MouseEventHandler<HTMLDivElement>\n /**\n * Size variant for the avatar and status/badge indicator\n * @default \"default\"\n */\n size?: AvatarStatusProps[\"size\"]\n /**\n * The image source for the avatar\n */\n src?: string\n /**\n * Optional status indicator (online, offline, busy, away)\n * Cannot be used together with badge\n */\n status?: AvatarStatusProps[\"status\"]\n /**\n * Tooltip text to display on hover\n * If true, uses name + description\n * @default undefined\n */\n tooltip?: boolean | string\n}\n\n/**\n * Generates initials from a name string\n * Takes first letter of first two words, uppercased\n */\nfunction getInitials(name: string): string {\n return name\n .split(\" \")\n .map((word) => word[0])\n .join(\"\")\n .toUpperCase()\n .slice(0, 2)\n}\n\nfunction AvatarLabelGroup({\n className,\n src,\n alt,\n name,\n description,\n size = \"default\",\n status,\n badge,\n interactive = false,\n onClick,\n tooltip,\n ...props\n}: AvatarLabelGroupProps) {\n // Generate tooltip text\n const tooltipText = tooltip === true\n ? description ? `${name} - ${description}` : name\n : typeof tooltip === \"string\" ? tooltip : undefined\n\n const content = (\n <div\n className={cn(avatarLabelGroupVariants({ interactive }), className)}\n data-slot=\"avatar-label-group\"\n role={interactive ? \"button\" : undefined}\n tabIndex={interactive || tooltipText ? 0 : undefined}\n onClick={interactive ? onClick : undefined}\n {...props}\n >\n <div className=\"relative\">\n <Avatar interactive={interactive} size={size}>\n {src && <AvatarImage alt={alt ?? name} src={src} />}\n <AvatarFallback>{getInitials(name)}</AvatarFallback>\n </Avatar>\n {status && <AvatarStatus size={size} status={status} />}\n {badge && !status && <AvatarBadge size={size} variant={badge} />}\n </div>\n <div className=\"flex flex-col gap-0.5\">\n <span className=\"text-sm font-medium text-foreground\">{name}</span>\n {description && (\n <span className=\"text-sm text-muted-foreground\">{description}</span>\n )}\n </div>\n </div>\n )\n\n if (tooltipText) {\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n {content}\n </TooltipTrigger>\n <TooltipContent>\n {tooltipText}\n </TooltipContent>\n </Tooltip>\n )\n }\n\n return content\n}\n\nexport { AvatarLabelGroup, avatarLabelGroupVariants, getInitials }\n","\"use client\"\n\nimport { cva } from \"class-variance-authority\"\nimport { Plus } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\n\nconst avatarAddButtonVariants = cva(\n \"relative flex shrink-0 items-center justify-center overflow-hidden rounded-full border-2 border-dashed border-muted-foreground/50 bg-muted text-muted-foreground transition-colors hover:border-primary hover:bg-primary/10 hover:text-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 cursor-pointer\",\n {\n variants: {\n size: {\n xs: \"size-[var(--avatar-size-xs)]\",\n sm: \"size-[var(--avatar-size-sm)]\",\n default: \"size-[var(--avatar-size-default)]\",\n lg: \"size-[var(--avatar-size-lg)]\",\n xl: \"size-[var(--avatar-size-xl)]\",\n \"3xl\": \"size-[var(--avatar-size-3xl)]\",\n \"4xl\": \"size-[var(--avatar-size-4xl)]\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\nexport interface AvatarAddButtonProps extends React.ComponentProps<\"button\"> {\n size?: \"3xl\" | \"4xl\" | \"default\" | \"lg\" | \"sm\" | \"xl\" | \"xs\"\n}\n\nfunction AvatarAddButton({\n className,\n size = \"default\",\n ...props\n}: AvatarAddButtonProps) {\n const iconSizes = {\n xs: \"size-3\",\n sm: \"size-3.5\",\n default: \"size-4\",\n lg: \"size-5\",\n xl: \"size-6\",\n \"3xl\": \"size-7\",\n \"4xl\": \"size-8\",\n }\n\n return (\n <button\n aria-label=\"Add user\"\n className={cn(avatarAddButtonVariants({ size, className }))}\n data-slot=\"avatar-add-button\"\n type=\"button\"\n {...props}\n >\n <Plus className={iconSizes[size]} />\n </button>\n )\n}\n\nexport { AvatarAddButton, avatarAddButtonVariants }\n","\"use client\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { avatarVariants } from \"./Avatar\"\n\nexport interface AvatarSkeletonProps extends React.ComponentProps<\"div\"> {\n /**\n * The shape of the skeleton\n * @default \"circle\"\n */\n shape?: \"circle\"\n /**\n * The size of the skeleton\n * @default \"default\"\n */\n size?: \"default\" | \"lg\" | \"sm\" | \"xl\" | \"xs\"\n}\n\nexport interface AvatarLabelGroupSkeletonProps extends React.ComponentProps<\"div\"> {\n /**\n * The size of the avatar skeleton\n * @default \"default\"\n */\n size?: \"default\" | \"lg\" | \"sm\" | \"xl\" | \"xs\"\n}\n\n/**\n * Skeleton placeholder for Avatar component\n * Use while loading user data\n */\nfunction AvatarSkeleton({\n size = \"default\",\n shape = \"circle\",\n className,\n ...props\n}: AvatarSkeletonProps) {\n return (\n <div\n className={cn(\n avatarVariants({ size, shape }),\n \"bg-muted animate-pulse\",\n className\n )}\n data-slot=\"avatar-skeleton\"\n {...props}\n />\n )\n}\n\n/**\n * Skeleton placeholder for AvatarLabelGroup component\n * Use while loading user data with name and description\n */\nfunction AvatarLabelGroupSkeleton({\n size = \"default\",\n className,\n ...props\n}: AvatarLabelGroupSkeletonProps) {\n return (\n <div\n className={cn(\"flex items-center gap-3\", className)}\n data-slot=\"avatar-label-group-skeleton\"\n {...props}\n >\n <AvatarSkeleton size={size} />\n <div className=\"flex flex-col gap-1.5\">\n <div className=\"h-4 w-24 rounded bg-muted animate-pulse\" />\n <div className=\"h-3 w-32 rounded bg-muted animate-pulse\" />\n </div>\n </div>\n )\n}\n\nexport { AvatarLabelGroupSkeleton, AvatarSkeleton }\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/primitives/SplitButton/SplitButton.variants.ts","../src/components/primitives/SplitButton/SplitButton.tsx"],"names":[],"mappings":"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","file":"chunk-UC5J6GWG.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * Primary action button variants (left half of SplitButton).\n *\n * State colors follow Figma (DES-1306): solid hover tokens (`--primary-hover` /\n * `--destructive-hover`) instead of opacity, and a solid disabled triplet\n * (`--disabled-background` / `-foreground` / `-border`) instead of `opacity-50`.\n */\nexport const splitButtonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium transition-all disabled:pointer-events-none disabled:bg-[color:var(--disabled-background)] disabled:text-[color:var(--disabled-foreground)] [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-[color:var(--primary-hover)]\",\n primary: \"bg-primary text-primary-foreground hover:bg-[color:var(--primary-hover)]\",\n destructive:\n \"bg-destructive text-white hover:bg-[color:var(--destructive-hover)] focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n outline:\n \"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground disabled:border-[color:var(--disabled-border)] dark:bg-input/30 dark:border-input dark:hover:bg-input/50\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n ghost:\n \"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50\",\n },\n size: {\n md:\n \"h-[var(--button-size-default-h)] px-[var(--button-size-default-px)] py-[var(--button-size-default-py)]\",\n sm: \"h-[var(--button-size-sm-h)] gap-[var(--button-size-sm-gap)] px-[var(--button-size-sm-px)]\",\n lg: \"h-[var(--button-size-lg-h)] px-[var(--button-size-lg-px)]\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n }\n)\n\n/**\n * Trigger button variants (right half of SplitButton — icon-only chevron).\n *\n * Adds the Figma `Status=Open` visual (DES-1306 item 2): the outline trigger\n * gets `bg-muted` while the dropdown is open (`data-state=open` from Radix).\n */\nexport const splitButtonTriggerVariants = cva(\n \"inline-flex items-center justify-center transition-all disabled:pointer-events-none disabled:bg-[color:var(--disabled-background)] disabled:text-[color:var(--disabled-foreground)] [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-[color:var(--primary-hover)]\",\n primary: \"bg-primary text-primary-foreground hover:bg-[color:var(--primary-hover)]\",\n destructive:\n \"bg-destructive text-white hover:bg-[color:var(--destructive-hover)] focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n outline:\n \"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground data-[state=open]:bg-muted disabled:border-[color:var(--disabled-border)] dark:bg-input/30 dark:border-input dark:hover:bg-input/50\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n ghost:\n \"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50\",\n },\n size: {\n md:\n \"h-[var(--button-size-default-h)] px-[var(--split-button-trigger-padding-x)]\",\n sm: \"h-[var(--button-size-sm-h)] px-1.5\",\n lg: \"h-[var(--button-size-lg-h)] px-3\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n }\n)\n\nexport type SplitButtonVariantProps = VariantProps<typeof splitButtonVariants>\nexport type SplitButtonTriggerVariantProps = VariantProps<\n typeof splitButtonTriggerVariants\n>\n","\"use client\"\n\nimport type {\n SplitButtonEventPayload,\n SplitButtonMenuItem,\n SplitButtonProps,\n} from \"./SplitButton.types\"\n\nimport { ChevronDown, LoaderCircle } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuShortcut,\n DropdownMenuTrigger,\n} from \"../../navigation/DropdownMenu\"\nimport {\n splitButtonVariants,\n splitButtonTriggerVariants as triggerVariants,\n} from \"./SplitButton.variants\"\n\nfunction SplitButton({\n className,\n variant,\n size,\n children,\n onClick,\n menuItems,\n loading = false,\n loadingText,\n disabled,\n leftIcon,\n \"data-id\": dataId,\n triggerAriaLabel = \"Open menu\",\n defaultOpen,\n open,\n onOpenChange,\n ...props\n}: SplitButtonProps) {\n const isDisabled = disabled ?? loading\n\n // Create event payload for callbacks\n const createPayload = React.useCallback((): SplitButtonEventPayload => ({\n ...(dataId ? { id: dataId } : {}),\n timestamp: Date.now(),\n isLoading: loading,\n }), [dataId, loading])\n\n // Wrapped event handler that emits SplitButtonEventPayload\n const handleClick = React.useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n onClick?.(event, createPayload())\n },\n [onClick, createPayload]\n )\n\n // Determine what to render as primary button content\n const renderPrimaryContent = () => {\n if (loading) {\n return (\n <>\n <LoaderCircle\n aria-hidden=\"true\"\n className=\"animate-spin\"\n data-slot=\"loading-icon\"\n />\n {loadingText ?? children}\n </>\n )\n }\n\n return (\n <>\n {leftIcon && (\n <span aria-hidden=\"true\" data-slot=\"left-icon\">\n {leftIcon}\n </span>\n )}\n {children}\n </>\n )\n }\n\n // Render a single menu item\n const renderMenuItem = (item: SplitButtonMenuItem, index: number) => {\n // Guard onClick - don't call if item is disabled\n const handleItemClick = item.disabled ? undefined : item.onClick\n\n return (\n <DropdownMenuItem\n key={index}\n {...(handleItemClick ? { onClick: handleItemClick } : {})}\n disabled={item.disabled ?? false}\n variant={item.variant ?? \"default\"}\n >\n {item.icon}\n <span>{item.label}</span>\n {item.shortcut && (\n <DropdownMenuShortcut>{item.shortcut}</DropdownMenuShortcut>\n )}\n </DropdownMenuItem>\n )\n }\n\n // Divider class for visual separation between buttons\n const dividerClass =\n variant === \"outline\" || variant === \"ghost\"\n ? \"border-l border-[color:var(--split-button-divider-color)]\"\n : \"border-l border-current/20\"\n\n return (\n <div\n className={cn(\"inline-flex\", className)}\n data-id={dataId}\n data-slot=\"split-button\"\n {...props}\n >\n {/* Primary action button */}\n <button\n className={cn(\n splitButtonVariants({ variant, size }),\n \"rounded-l-[var(--button-radius-default)] rounded-r-none\"\n )}\n aria-busy={loading || undefined}\n aria-disabled={isDisabled || undefined}\n data-loading={loading || undefined}\n data-slot=\"split-button-primary\"\n disabled={isDisabled}\n type=\"button\"\n onClick={handleClick}\n >\n {renderPrimaryContent()}\n </button>\n\n {/* Dropdown trigger button */}\n <DropdownMenu defaultOpen={defaultOpen} open={open} onOpenChange={onOpenChange}>\n <DropdownMenuTrigger asChild>\n <button\n className={cn(\n triggerVariants({ variant, size }),\n \"rounded-r-[var(--button-radius-default)] rounded-l-none\",\n dividerClass\n )}\n aria-disabled={isDisabled || undefined}\n aria-label={triggerAriaLabel}\n data-slot=\"split-button-trigger\"\n disabled={isDisabled}\n type=\"button\"\n >\n <ChevronDown className=\"size-4\" />\n </button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\">\n {menuItems.map(renderMenuItem)}\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n )\n}\n\nexport { SplitButton, splitButtonVariants }\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/data-display/Item/Item.tsx"],"names":[],"mappings":"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","file":"chunk-VHJ6ALIE.js","sourcesContent":["import { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Divider } from \"../../primitives/Divider\"\n\nfunction ItemGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n className={cn(\"group/item-group flex flex-col\", className)}\n data-slot=\"item-group\"\n role=\"list\"\n {...props}\n />\n )\n}\n\nfunction ItemSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof Divider>) {\n return (\n <Divider\n className={cn(\"my-0\", className)}\n data-slot=\"item-separator\"\n orientation=\"horizontal\"\n {...props}\n />\n )\n}\n\nconst itemVariants = cva(\n \"group/item flex items-center border border-transparent text-sm rounded-md transition-[colors,transform,box-shadow] [a]:hover:bg-accent/50 [a]:transition-colors duration-100 flex-wrap outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline: \"border-border\",\n muted: \"bg-muted/50\",\n active: \"bg-[color:var(--sidebar-accent)] text-[color:var(--sidebar-accent-foreground)] font-medium\",\n },\n size: {\n sm: \"py-3 px-4 gap-2.5 min-h-7\",\n default: \"p-4 gap-4 min-h-8\",\n lg: \"py-3.5 px-4 gap-3.5 min-h-14\",\n },\n interactive: {\n true: \"cursor-pointer hover:translate-y-px active:translate-y-0.5 motion-reduce:transform-none\",\n false: \"\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n interactive: false,\n },\n }\n)\n\nexport interface ItemEventPayload {\n /** Whether the item is currently in active state */\n active: boolean\n /** Reflects the `data-id` prop */\n id?: string\n /** Event timestamp (Date.now()) */\n timestamp: number\n}\n\ninterface ItemProps\n extends Omit<React.ComponentProps<\"div\">, \"onClick\" | \"onFocus\" | \"onKeyDown\">,\n VariantProps<typeof itemVariants> {\n /** Shorthand for `variant=\"active\"`. When both passed, `variant` wins. */\n active?: boolean\n asChild?: boolean\n /** Reflected to `data-id` and to the event payload. */\n \"data-id\"?: string\n /** Click handler — receives the event + an ItemEventPayload. */\n onClick?: (\n event: React.MouseEvent<HTMLButtonElement | HTMLDivElement>,\n payload: ItemEventPayload,\n ) => void\n onFocus?: (\n event: React.FocusEvent<HTMLButtonElement | HTMLDivElement>,\n payload: ItemEventPayload,\n ) => void\n onKeyDown?: (\n event: React.KeyboardEvent<HTMLButtonElement | HTMLDivElement>,\n payload: ItemEventPayload,\n ) => void\n}\n\nfunction Item({\n className,\n variant,\n active = false,\n interactive = false,\n size = \"default\",\n asChild = false,\n \"data-id\": dataId,\n onClick,\n onFocus,\n onKeyDown,\n ...props\n}: ItemProps) {\n // active prop is shorthand for variant=\"active\"; explicit variant wins\n const resolvedVariant = variant ?? (active ? \"active\" : \"default\")\n const isActive = resolvedVariant === \"active\"\n\n // Root element selection: asChild > interactive=button > default div\n // (when asChild, Radix Slot proxies to the child)\n // Cast to ElementType so the spread of generic props works against any root\n const Comp = (asChild ? Slot : interactive ? \"button\" : \"div\") as React.ElementType\n\n const createPayload = React.useCallback(\n (): ItemEventPayload => ({\n ...(dataId ? { id: dataId } : {}),\n active: isActive,\n timestamp: Date.now(),\n }),\n [dataId, isActive],\n )\n\n const handleClick = React.useCallback(\n (event: React.MouseEvent<HTMLButtonElement | HTMLDivElement>) => {\n onClick?.(event, createPayload())\n },\n [onClick, createPayload],\n )\n\n const handleFocus = React.useCallback(\n (event: React.FocusEvent<HTMLButtonElement | HTMLDivElement>) => {\n onFocus?.(event, createPayload())\n },\n [onFocus, createPayload],\n )\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLButtonElement | HTMLDivElement>) => {\n onKeyDown?.(event, createPayload())\n },\n [onKeyDown, createPayload],\n )\n\n return (\n <Comp\n aria-current={isActive && interactive ? \"page\" : undefined}\n className={cn(itemVariants({ variant: resolvedVariant, size, interactive, className }))}\n data-active={isActive || undefined}\n data-id={dataId}\n data-interactive={interactive ?? undefined}\n data-size={size}\n data-slot=\"item\"\n data-variant={resolvedVariant}\n type={interactive && !asChild ? \"button\" : undefined}\n onClick={handleClick}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n {...props}\n />\n )\n}\n\nconst itemMediaVariants = cva(\n \"flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=item-description]]/item:self-start [&_svg]:pointer-events-none group-has-[[data-slot=item-description]]/item:translate-y-0.5\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n icon: \"size-8 border rounded-sm bg-muted [&_svg:not([class*='size-'])]:size-4\",\n image:\n \"size-10 rounded-sm overflow-hidden [&_img]:size-full [&_img]:object-cover\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nfunction ItemMedia({\n className,\n variant = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof itemMediaVariants>) {\n return (\n <div\n className={cn(itemMediaVariants({ variant, className }))}\n data-slot=\"item-media\"\n data-variant={variant}\n {...props}\n />\n )\n}\n\nfunction ItemContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n className={cn(\n \"flex flex-1 flex-col gap-1 [&+[data-slot=item-content]]:flex-none\",\n className\n )}\n data-slot=\"item-content\"\n {...props}\n />\n )\n}\n\nfunction ItemTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n className={cn(\n \"flex w-fit items-center gap-2 text-sm leading-snug font-medium\",\n className\n )}\n data-slot=\"item-title\"\n {...props}\n />\n )\n}\n\nfunction ItemDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p\n className={cn(\n \"text-muted-foreground line-clamp-2 text-sm leading-normal font-normal text-balance\",\n \"[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4\",\n className\n )}\n data-slot=\"item-description\"\n {...props}\n />\n )\n}\n\nfunction ItemActions({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n className={cn(\"flex items-center gap-2\", className)}\n data-slot=\"item-actions\"\n {...props}\n />\n )\n}\n\nfunction ItemHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n className={cn(\n \"flex basis-full items-center justify-between gap-2\",\n className\n )}\n data-slot=\"item-header\"\n {...props}\n />\n )\n}\n\nfunction ItemFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n className={cn(\n \"flex basis-full items-center justify-between gap-2\",\n className\n )}\n data-slot=\"item-footer\"\n {...props}\n />\n )\n}\n\nexport {\n Item,\n ItemActions,\n ItemContent,\n ItemDescription,\n ItemFooter,\n ItemGroup,\n ItemHeader,\n ItemMedia,\n itemMediaVariants,\n ItemSeparator,\n ItemTitle,\n itemVariants,\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/forms/PhoneInput/countries.ts","../src/components/forms/PhoneInput/PhoneInput.variants.ts","../src/components/forms/PhoneInput/PhoneInput.tsx"],"names":[],"mappings":"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","file":"chunk-WGKOYZRI.js","sourcesContent":["/* eslint-disable sonarjs/no-duplicate-string -- Country data naturally has repeated format patterns */\n\n/**\n * Country information for phone input\n */\nexport interface Country {\n /** ISO 3166-1 alpha-2 country code */\n code: string\n /** International dial code */\n dialCode: string\n /** Flag emoji */\n flag: string\n /** Phone number format pattern (# = digit) */\n format?: string\n /** Country name in English */\n name: string\n}\n\n/**\n * Default list of countries with dial codes\n * Prioritizes common countries at the top\n */\nexport const defaultCountries: Country[] = [\n // Priority countries\n { code: \"BR\", dialCode: \"+55\", name: \"Brazil\", flag: \"🇧🇷\", format: \"(##) #####-####\" },\n { code: \"US\", dialCode: \"+1\", name: \"United States\", flag: \"🇺🇸\", format: \"(###) ###-####\" },\n { code: \"GB\", dialCode: \"+44\", name: \"United Kingdom\", flag: \"🇬🇧\", format: \"#### ######\" },\n { code: \"CA\", dialCode: \"+1\", name: \"Canada\", flag: \"🇨🇦\", format: \"(###) ###-####\" },\n { code: \"PT\", dialCode: \"+351\", name: \"Portugal\", flag: \"🇵🇹\", format: \"### ### ###\" },\n { code: \"ES\", dialCode: \"+34\", name: \"Spain\", flag: \"🇪🇸\", format: \"### ### ###\" },\n\n // Latin America\n { code: \"AR\", dialCode: \"+54\", name: \"Argentina\", flag: \"🇦🇷\", format: \"## ####-####\" },\n { code: \"CL\", dialCode: \"+56\", name: \"Chile\", flag: \"🇨🇱\", format: \"# #### ####\" },\n { code: \"CO\", dialCode: \"+57\", name: \"Colombia\", flag: \"🇨🇴\", format: \"### #######\" },\n { code: \"MX\", dialCode: \"+52\", name: \"Mexico\", flag: \"🇲🇽\", format: \"### ### ####\" },\n { code: \"PE\", dialCode: \"+51\", name: \"Peru\", flag: \"🇵🇪\", format: \"### ### ###\" },\n { code: \"UY\", dialCode: \"+598\", name: \"Uruguay\", flag: \"🇺🇾\", format: \"## ### ###\" },\n { code: \"VE\", dialCode: \"+58\", name: \"Venezuela\", flag: \"🇻🇪\", format: \"### #######\" },\n\n // Europe\n { code: \"DE\", dialCode: \"+49\", name: \"Germany\", flag: \"🇩🇪\", format: \"#### #######\" },\n { code: \"FR\", dialCode: \"+33\", name: \"France\", flag: \"🇫🇷\", format: \"# ## ## ## ##\" },\n { code: \"IT\", dialCode: \"+39\", name: \"Italy\", flag: \"🇮🇹\", format: \"### #######\" },\n { code: \"NL\", dialCode: \"+31\", name: \"Netherlands\", flag: \"🇳🇱\", format: \"# ########\" },\n { code: \"BE\", dialCode: \"+32\", name: \"Belgium\", flag: \"🇧🇪\", format: \"### ## ## ##\" },\n { code: \"CH\", dialCode: \"+41\", name: \"Switzerland\", flag: \"🇨🇭\", format: \"## ### ## ##\" },\n { code: \"AT\", dialCode: \"+43\", name: \"Austria\", flag: \"🇦🇹\", format: \"### #######\" },\n { code: \"PL\", dialCode: \"+48\", name: \"Poland\", flag: \"🇵🇱\", format: \"### ### ###\" },\n { code: \"SE\", dialCode: \"+46\", name: \"Sweden\", flag: \"🇸🇪\", format: \"## ### ## ##\" },\n { code: \"NO\", dialCode: \"+47\", name: \"Norway\", flag: \"🇳🇴\", format: \"### ## ###\" },\n { code: \"DK\", dialCode: \"+45\", name: \"Denmark\", flag: \"🇩🇰\", format: \"## ## ## ##\" },\n { code: \"FI\", dialCode: \"+358\", name: \"Finland\", flag: \"🇫🇮\", format: \"## ### ####\" },\n { code: \"IE\", dialCode: \"+353\", name: \"Ireland\", flag: \"🇮🇪\", format: \"## #######\" },\n\n // Asia\n { code: \"JP\", dialCode: \"+81\", name: \"Japan\", flag: \"🇯🇵\", format: \"##-####-####\" },\n { code: \"CN\", dialCode: \"+86\", name: \"China\", flag: \"🇨🇳\", format: \"### #### ####\" },\n { code: \"IN\", dialCode: \"+91\", name: \"India\", flag: \"🇮🇳\", format: \"##### #####\" },\n { code: \"KR\", dialCode: \"+82\", name: \"South Korea\", flag: \"🇰🇷\", format: \"##-####-####\" },\n { code: \"SG\", dialCode: \"+65\", name: \"Singapore\", flag: \"🇸🇬\", format: \"#### ####\" },\n { code: \"HK\", dialCode: \"+852\", name: \"Hong Kong\", flag: \"🇭🇰\", format: \"#### ####\" },\n { code: \"TW\", dialCode: \"+886\", name: \"Taiwan\", flag: \"🇹🇼\", format: \"### ### ###\" },\n { code: \"TH\", dialCode: \"+66\", name: \"Thailand\", flag: \"🇹🇭\", format: \"## ### ####\" },\n { code: \"MY\", dialCode: \"+60\", name: \"Malaysia\", flag: \"🇲🇾\", format: \"##-### ####\" },\n { code: \"ID\", dialCode: \"+62\", name: \"Indonesia\", flag: \"🇮🇩\", format: \"### ### ####\" },\n { code: \"PH\", dialCode: \"+63\", name: \"Philippines\", flag: \"🇵🇭\", format: \"### ### ####\" },\n { code: \"VN\", dialCode: \"+84\", name: \"Vietnam\", flag: \"🇻🇳\", format: \"## ### ## ##\" },\n\n // Middle East\n { code: \"AE\", dialCode: \"+971\", name: \"UAE\", flag: \"🇦🇪\", format: \"## ### ####\" },\n { code: \"SA\", dialCode: \"+966\", name: \"Saudi Arabia\", flag: \"🇸🇦\", format: \"## ### ####\" },\n { code: \"IL\", dialCode: \"+972\", name: \"Israel\", flag: \"🇮🇱\", format: \"##-###-####\" },\n { code: \"TR\", dialCode: \"+90\", name: \"Turkey\", flag: \"🇹🇷\", format: \"### ### ## ##\" },\n\n // Oceania\n { code: \"AU\", dialCode: \"+61\", name: \"Australia\", flag: \"🇦🇺\", format: \"### ### ###\" },\n { code: \"NZ\", dialCode: \"+64\", name: \"New Zealand\", flag: \"🇳🇿\", format: \"## ### ####\" },\n\n // Africa\n { code: \"ZA\", dialCode: \"+27\", name: \"South Africa\", flag: \"🇿🇦\", format: \"## ### ####\" },\n { code: \"NG\", dialCode: \"+234\", name: \"Nigeria\", flag: \"🇳🇬\", format: \"### ### ####\" },\n { code: \"EG\", dialCode: \"+20\", name: \"Egypt\", flag: \"🇪🇬\", format: \"## #### ####\" },\n { code: \"KE\", dialCode: \"+254\", name: \"Kenya\", flag: \"🇰🇪\", format: \"### ######\" },\n]\n\n/**\n * Find country by ISO code\n */\nexport function findCountryByCode(code: string, countries = defaultCountries): Country | undefined {\n return countries.find((c) => c.code.toLowerCase() === code.toLowerCase())\n}\n\n/**\n * Find country by dial code\n */\nexport function findCountryByDialCode(dialCode: string, countries = defaultCountries): Country | undefined {\n return countries.find((c) => c.dialCode === dialCode)\n}\n\n/**\n * Format a phone number according to the country format\n */\nexport function formatPhoneNumber(value: string, country: Country): string {\n // Remove all non-digit characters\n const digits = value.replaceAll(/\\D/g, \"\")\n\n if (!country.format) {\n return digits\n }\n\n let result = \"\"\n let digitIndex = 0\n\n for (const char of country.format) {\n if (digitIndex >= digits.length) break\n\n if (char === \"#\") {\n result += digits[digitIndex] ?? \"\"\n digitIndex++\n } else {\n result += char\n }\n }\n\n return result\n}\n\n/**\n * Get the raw digits from a formatted phone number\n */\nexport function getPhoneDigits(value: string): string {\n return value.replaceAll(/\\D/g, \"\")\n}\n","import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * PhoneInput container variant styles using CVA\n */\nexport const phoneInputVariants = cva(\n [\n \"flex w-full min-w-0 rounded-md border bg-transparent transition-[color,box-shadow] outline-none\",\n \"dark:bg-input/30\",\n \"focus-within:border-ring focus-within:ring-ring/50 focus-within:ring-[3px]\",\n \"has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50\",\n \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n ],\n {\n variants: {\n size: {\n sm: \"h-8 text-sm\",\n md: \"h-9 text-base md:text-sm\",\n lg: \"h-10 text-base\",\n },\n variant: {\n default: \"border-input shadow-xs\",\n filled: \"border-transparent bg-muted\",\n flushed: \"rounded-none border-x-0 border-t-0 border-b-input\",\n },\n },\n defaultVariants: {\n size: \"md\",\n variant: \"default\",\n },\n }\n)\n\n/**\n * Country selector button styles\n */\nexport const phoneInputCountryButtonVariants = cva(\n [\n \"flex items-center gap-1.5 shrink-0 border-r border-[color:var(--phone-input-country-select-border-color)] bg-transparent outline-none transition-colors\",\n \"hover:bg-muted/50\",\n \"focus-visible:bg-muted/50\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n ],\n {\n variants: {\n size: {\n sm: \"px-2 text-sm\",\n md: \"px-3 text-sm\",\n lg: \"px-3.5 text-base\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\n/**\n * Phone number input styles\n */\nexport const phoneInputInputVariants = cva(\n [\n \"flex-1 min-w-0 bg-transparent outline-none\",\n \"placeholder:text-muted-foreground\",\n \"disabled:cursor-not-allowed\",\n ],\n {\n variants: {\n size: {\n sm: \"px-2 text-sm\",\n md: \"px-3 text-base md:text-sm\",\n lg: \"px-3.5 text-base\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\n/**\n * Country dropdown styles\n */\nexport const phoneInputDropdownVariants = cva(\n [\n \"absolute left-0 top-full z-50 mt-1 max-h-60 min-w-52 overflow-auto rounded-md border bg-popover p-1 shadow-md\",\n \"animate-in fade-in-0 zoom-in-95\",\n ]\n)\n\n/**\n * Country option styles\n */\nexport const phoneInputOptionVariants = cva(\n [\n \"flex items-center gap-2 cursor-pointer rounded-sm px-2 py-1.5 text-sm outline-none transition-colors\",\n \"hover:bg-accent hover:text-accent-foreground\",\n \"focus-visible:bg-accent focus-visible:text-accent-foreground\",\n \"data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground\",\n ]\n)\n\nexport type PhoneInputVariantProps = VariantProps<typeof phoneInputVariants>\n","\"use client\"\n\nimport type { PhoneInputProps } from \"./PhoneInput.types\"\n\nimport { ChevronDown } from \"lucide-react\"\nimport * as React from \"react\"\nimport { useCallback, useEffect, useRef, useState } from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n type Country,\n defaultCountries,\n findCountryByCode,\n formatPhoneNumber,\n getPhoneDigits,\n} from \"./countries\"\nimport {\n phoneInputCountryButtonVariants,\n phoneInputDropdownVariants,\n phoneInputInputVariants,\n phoneInputOptionVariants,\n phoneInputVariants,\n} from \"./PhoneInput.variants\"\n\n/**\n * PhoneInput - An international phone number input with country selector\n *\n * @example\n * ```tsx\n * // Basic usage\n * <PhoneInput\n * placeholder=\"Enter phone number\"\n * defaultCountry=\"BR\"\n * />\n *\n * // Controlled\n * const [phone, setPhone] = useState(\"\")\n * <PhoneInput\n * value={phone}\n * onChange={(value, country) => {\n * setPhone(value)\n * console.log(`${country.dialCode} ${value}`)\n * }}\n * />\n * ```\n */\nfunction PhoneInput({\n value: controlledValue,\n defaultValue = \"\",\n onChange,\n onCountryChange,\n defaultCountry = \"BR\",\n countries = defaultCountries,\n disabled,\n size = \"md\",\n variant,\n invalid,\n placeholder = \"Phone number\",\n className,\n ...props\n}: PhoneInputProps) {\n const containerRef = useRef<HTMLDivElement>(null)\n const inputRef = useRef<HTMLInputElement>(null)\n const [isOpen, setIsOpen] = useState(false)\n\n // Find initial country - fallback to first country or Brazil\n const initialCountry = findCountryByCode(defaultCountry, countries) ?? countries[0] ?? defaultCountries[0]\n if (!initialCountry) {\n throw new Error(\"PhoneInput requires at least one country option.\")\n }\n const [selectedCountry, setSelectedCountry] = useState<Country>(() => initialCountry)\n\n // Internal state for uncontrolled mode\n const [internalValue, setInternalValue] = useState(defaultValue)\n\n // Determine if controlled\n const isControlled = controlledValue !== undefined\n const phoneValue = isControlled ? controlledValue : internalValue\n\n // Format the display value\n const displayValue = formatPhoneNumber(phoneValue, selectedCountry)\n\n const handleCountrySelect = useCallback(\n (country: Country) => {\n setSelectedCountry(country)\n setIsOpen(false)\n onCountryChange?.(country)\n inputRef.current?.focus()\n\n // Notify parent of the change with current value\n if (phoneValue) {\n onChange?.(phoneValue, country)\n }\n },\n [onCountryChange, onChange, phoneValue]\n )\n\n const handleInputChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const rawValue = getPhoneDigits(e.target.value)\n\n if (!isControlled) {\n setInternalValue(rawValue)\n }\n\n onChange?.(rawValue, selectedCountry)\n },\n [isControlled, onChange, selectedCountry]\n )\n\n // Close dropdown on click outside\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (containerRef.current && !containerRef.current.contains(event.target as Node)) {\n setIsOpen(false)\n }\n }\n\n if (isOpen) {\n document.addEventListener(\"mousedown\", handleClickOutside)\n }\n\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside)\n }\n }, [isOpen])\n\n // Handle keyboard navigation\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (e.key === \"Escape\") {\n setIsOpen(false)\n } else if (e.key === \"ArrowDown\" && !isOpen) {\n setIsOpen(true)\n }\n },\n [isOpen]\n )\n\n return (\n <div\n ref={containerRef}\n className={cn(\"relative\", className)}\n data-slot=\"phone-input\"\n onKeyDown={handleKeyDown}\n >\n <div\n aria-invalid={invalid ?? undefined}\n className={phoneInputVariants({ size, variant })}\n >\n {/* Country selector */}\n <button\n aria-expanded={isOpen}\n aria-haspopup=\"listbox\"\n aria-label={`Select country, current: ${selectedCountry.name}`}\n className={phoneInputCountryButtonVariants({ size })}\n data-slot=\"phone-input-country\"\n disabled={disabled}\n type=\"button\"\n onClick={() => { setIsOpen(!isOpen); }}\n >\n <span className=\"text-base\">{selectedCountry.flag}</span>\n <span className=\"text-muted-foreground\">{selectedCountry.dialCode}</span>\n <ChevronDown\n className={cn(\n \"size-4 text-muted-foreground transition-transform\",\n isOpen && \"rotate-180\"\n )}\n />\n </button>\n\n {/* Phone number input */}\n <input\n ref={inputRef}\n aria-invalid={invalid ?? undefined}\n className={phoneInputInputVariants({ size })}\n data-slot=\"phone-input-field\"\n disabled={disabled}\n placeholder={placeholder}\n type=\"tel\"\n value={displayValue}\n onChange={handleInputChange}\n {...props}\n />\n </div>\n\n {/* Country dropdown */}\n {isOpen && (\n <div\n className={phoneInputDropdownVariants()}\n data-slot=\"phone-input-dropdown\"\n role=\"listbox\"\n >\n {countries.map((country) => (\n <div\n key={country.code}\n aria-selected={country.code === selectedCountry.code}\n className={phoneInputOptionVariants()}\n data-selected={country.code === selectedCountry.code}\n data-slot=\"phone-input-option\"\n role=\"option\"\n onClick={() => { handleCountrySelect(country); }}\n >\n <span className=\"text-base\">{country.flag}</span>\n <span className=\"flex-1\">{country.name}</span>\n <span className=\"text-muted-foreground\">{country.dialCode}</span>\n </div>\n ))}\n </div>\n )}\n </div>\n )\n}\n\nexport { PhoneInput }\n"]}
@@ -1,36 +0,0 @@
1
- import { ChartContainer, ChartTooltip, ChartTooltipContent } from './chunk-XXWCMY2G.js';
2
- import { cn } from './chunk-RVAYDRMA.js';
3
- import { RadialBarChart, RadialBar } from 'recharts';
4
- import { jsx, jsxs } from 'react/jsx-runtime';
5
-
6
- function RadialChart({
7
- className,
8
- config,
9
- data,
10
- dataKey = "value",
11
- innerRadius = "30%",
12
- outerRadius = "100%",
13
- startAngle = 90,
14
- endAngle = -270,
15
- showBackground = true,
16
- ...props
17
- }) {
18
- return /* @__PURE__ */ jsx(ChartContainer, { className: cn("aspect-square", className), config, ...props, children: /* @__PURE__ */ jsxs(
19
- RadialBarChart,
20
- {
21
- data,
22
- endAngle,
23
- innerRadius,
24
- outerRadius,
25
- startAngle,
26
- children: [
27
- /* @__PURE__ */ jsx(ChartTooltip, { content: /* @__PURE__ */ jsx(ChartTooltipContent, { hideLabel: true }) }),
28
- /* @__PURE__ */ jsx(RadialBar, { background: showBackground, cornerRadius: 4, dataKey })
29
- ]
30
- }
31
- ) });
32
- }
33
-
34
- export { RadialChart };
35
- //# sourceMappingURL=chunk-WUS45IZW.js.map
36
- //# sourceMappingURL=chunk-WUS45IZW.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/data-display/RadialChart/RadialChart.tsx"],"names":["RechartsRadialBarChart"],"mappings":";;;;;AASA,SAAS,WAAA,CAAY;AAAA,EACnB,SAAA;AAAA,EACA,MAAA;AAAA,EACA,IAAA;AAAA,EACA,OAAA,GAAU,OAAA;AAAA,EACV,WAAA,GAAc,KAAA;AAAA,EACd,WAAA,GAAc,MAAA;AAAA,EACd,UAAA,GAAa,EAAA;AAAA,EACb,QAAA,GAAW,IAAA;AAAA,EACX,cAAA,GAAiB,IAAA;AAAA,EACjB,GAAG;AACL,CAAA,EAAqB;AACnB,EAAA,uBACE,GAAA,CAAC,kBAAe,SAAA,EAAW,EAAA,CAAG,iBAAiB,SAAS,CAAA,EAAG,MAAA,EAAiB,GAAG,KAAA,EAC7E,QAAA,kBAAA,IAAA;AAAA,IAACA,cAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,QAAA;AAAA,MACA,WAAA;AAAA,MACA,WAAA;AAAA,MACA,UAAA;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,gBAAa,OAAA,kBAAS,GAAA,CAAC,mBAAA,EAAA,EAAoB,SAAA,EAAS,MAAC,CAAA,EAAI,CAAA;AAAA,4BACzD,SAAA,EAAA,EAAU,UAAA,EAAY,cAAA,EAAgB,YAAA,EAAc,GAAG,OAAA,EAAkB;AAAA;AAAA;AAAA,GAC5E,EACF,CAAA;AAEJ","file":"chunk-WUS45IZW.js","sourcesContent":["\"use client\"\n\nimport type { RadialChartProps } from \"./RadialChart.types\"\n\nimport { RadialBar, RadialBarChart as RechartsRadialBarChart } from \"recharts\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { ChartContainer, ChartTooltip, ChartTooltipContent } from \"../Chart\"\n\nfunction RadialChart({\n className,\n config,\n data,\n dataKey = \"value\",\n innerRadius = \"30%\",\n outerRadius = \"100%\",\n startAngle = 90,\n endAngle = -270,\n showBackground = true,\n ...props\n}: RadialChartProps) {\n return (\n <ChartContainer className={cn(\"aspect-square\", className)} config={config} {...props}>\n <RechartsRadialBarChart\n data={data}\n endAngle={endAngle}\n innerRadius={innerRadius}\n outerRadius={outerRadius}\n startAngle={startAngle}\n >\n <ChartTooltip content={<ChartTooltipContent hideLabel />} />\n <RadialBar background={showBackground} cornerRadius={4} dataKey={dataKey} />\n </RechartsRadialBarChart>\n </ChartContainer>\n )\n}\n\nexport { RadialChart }\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/primitives/Link/Link.tsx"],"names":[],"mappings":"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","file":"chunk-Y4FEW7SR.js","sourcesContent":["import type { LinkEventPayload, LinkProps } from \"./Link.types\"\n\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva } from \"class-variance-authority\"\nimport { ExternalLink } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\n\nconst linkVariants = cva(\n \"inline-flex items-center gap-1 transition-colors outline-none focus-visible:ring-ring/50 focus-visible:ring-[3px] [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"text-[color:var(--link-color-default)]\",\n muted: \"text-[color:var(--link-color-muted)]\",\n subtle: \"text-[color:var(--link-color-subtle)]\",\n nav: \"text-[color:var(--link-color-nav)] hover:text-[color:var(--link-color-nav-hover)]\",\n inline: \"text-[color:var(--link-color-default)] underline underline-offset-4\",\n unstyled: \"\",\n },\n size: {\n xs: \"text-[length:var(--link-text-xs)]\",\n sm: \"text-[length:var(--link-text-sm)]\",\n default: \"text-[length:var(--link-text-default)]\",\n lg: \"text-[length:var(--link-text-lg)]\",\n inherit: \"\",\n },\n underline: {\n always: \"underline underline-offset-4\",\n hover: \"hover:underline underline-offset-4\",\n none: \"no-underline hover:no-underline\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"inherit\",\n underline: \"hover\",\n },\n compoundVariants: [\n // inline variant always has underline, override underline prop\n {\n variant: \"inline\",\n className: \"underline underline-offset-4\",\n },\n // nav variant never has underline, override underline prop\n {\n variant: \"nav\",\n className: \"no-underline hover:no-underline\",\n },\n ],\n }\n)\n\nfunction Link({\n className,\n variant,\n size,\n underline,\n asChild = false,\n external = false,\n leftIcon,\n rightIcon,\n showExternalIcon = true,\n children,\n onClick,\n href,\n rel,\n \"data-id\": dataId,\n ...props\n}: LinkProps) {\n const Comp = asChild ? Slot : \"a\"\n\n // Create event payload for callbacks\n const createPayload = React.useCallback((): LinkEventPayload => ({\n ...(dataId ? { id: dataId } : {}),\n timestamp: Date.now(),\n isExternal: external,\n ...(href ? { href } : {}),\n }), [dataId, external, href])\n\n // Wrapped click handler that emits LinkEventPayload\n const handleClick = React.useCallback(\n (event: React.MouseEvent<HTMLAnchorElement>) => {\n onClick?.(event, createPayload())\n },\n [onClick, createPayload]\n )\n\n // Determine if we should show the external icon\n const shouldShowExternalIcon = external && showExternalIcon && !rightIcon\n\n // Render content with icons\n const renderContent = () => {\n // If asChild, we pass children directly (Slot handles composition)\n if (asChild) {\n return children\n }\n\n return (\n <>\n {leftIcon && (\n <span aria-hidden=\"true\" data-slot=\"left-icon\">\n {leftIcon}\n </span>\n )}\n {children}\n {rightIcon && (\n <span aria-hidden=\"true\" data-slot=\"right-icon\">\n {rightIcon}\n </span>\n )}\n {shouldShowExternalIcon && (\n <>\n <span className=\"sr-only\">(opens in new tab)</span>\n <ExternalLink\n aria-hidden=\"true\"\n className=\"size-3\"\n data-slot=\"external-icon\"\n />\n </>\n )}\n </>\n )\n }\n\n return (\n <Comp\n className={cn(linkVariants({ variant, size, underline }), className)}\n data-id={dataId}\n data-slot=\"link\"\n href={href}\n rel={external ? \"noopener noreferrer\" : rel}\n target={external ? \"_blank\" : undefined}\n onClick={handleClick}\n {...props}\n >\n {renderContent()}\n </Comp>\n )\n}\n\nexport { Link, linkVariants }\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/navigation/ContextMenu/ContextMenu.variants.ts","../src/components/navigation/ContextMenu/ContextMenu.tsx"],"names":[],"mappings":"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","file":"chunk-ZVSMLMMS.js","sourcesContent":["// ContextMenu/ContextMenu.variants.ts\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * Shared animation and transition styles for menu content\n */\nconst menuContentBase = [\n \"bg-popover text-popover-foreground\",\n \"z-[var(--context-menu-content-z-index)] min-w-[var(--context-menu-content-min-width)] overflow-hidden rounded-[var(--context-menu-content-radius)] border-[var(--context-menu-content-border-width)] p-[var(--context-menu-content-padding)]\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-2\",\n \"data-[side=left]:slide-in-from-right-2\",\n \"data-[side=right]:slide-in-from-left-2\",\n \"data-[side=top]:slide-in-from-bottom-2\",\n]\n\n/**\n * Shared base styles for interactive menu items\n */\nconst menuItemBase = [\n \"relative flex cursor-default items-center rounded-[var(--context-menu-item-radius)] text-[length:var(--context-menu-item-text-size)] outline-hidden select-none\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-[var(--context-menu-item-icon-size)]\",\n]\n\n/**\n * ContextMenuSubTrigger variant styles\n */\nexport const contextMenuSubTriggerVariants = cva(\n [\n ...menuItemBase,\n \"focus:bg-accent focus:text-accent-foreground\",\n \"data-[state=open]:bg-accent data-[state=open]:text-accent-foreground\",\n \"[&_svg:not([class*='text-'])]:text-muted-foreground\",\n \"px-[var(--context-menu-item-padding-x)] py-[var(--context-menu-item-padding-y)] gap-[var(--context-menu-item-gap)]\",\n ],\n {\n variants: {\n inset: {\n true: \"pl-[var(--context-menu-item-inset-padding-left)]\",\n false: \"\",\n },\n },\n defaultVariants: {\n inset: false,\n },\n }\n)\n\n/**\n * ContextMenuSubContent variant styles\n */\nexport const contextMenuSubContentVariants = cva([\n ...menuContentBase,\n \"shadow-lg\",\n \"origin-(--radix-context-menu-content-transform-origin)\",\n])\n\n/**\n * ContextMenuContent variant styles\n */\nexport const contextMenuContentVariants = cva([\n ...menuContentBase,\n \"shadow-md\",\n \"max-h-(--radix-context-menu-content-available-height)\",\n \"origin-(--radix-context-menu-content-transform-origin)\",\n \"overflow-x-hidden overflow-y-auto\",\n])\n\n/**\n * ContextMenuItem variant styles\n */\nexport const contextMenuItemVariants = cva(\n [\n ...menuItemBase,\n \"[&_svg:not([class*='text-'])]:text-muted-foreground\",\n \"px-[var(--context-menu-item-padding-x)] py-[var(--context-menu-item-padding-y)] gap-[var(--context-menu-item-gap)]\",\n ],\n {\n variants: {\n inset: {\n true: \"pl-[var(--context-menu-item-inset-padding-left)]\",\n false: \"\",\n },\n variant: {\n default: \"focus:bg-accent focus:text-accent-foreground\",\n destructive: [\n \"text-destructive\",\n \"focus:bg-destructive/10 dark:focus:bg-destructive/20\",\n \"focus:text-destructive\",\n \"*:[svg]:!text-destructive\",\n ],\n },\n },\n defaultVariants: {\n inset: false,\n variant: \"default\",\n },\n }\n)\n\n/**\n * ContextMenuCheckboxItem variant styles\n */\nexport const contextMenuCheckboxItemVariants = cva([\n ...menuItemBase,\n \"focus:bg-accent focus:text-accent-foreground\",\n \"py-[var(--context-menu-item-padding-y)] pr-[var(--context-menu-item-padding-x)] pl-[var(--context-menu-item-inset-padding-left)] gap-[var(--context-menu-item-gap)]\",\n])\n\n/**\n * ContextMenuRadioItem variant styles\n */\nexport const contextMenuRadioItemVariants = cva([\n ...menuItemBase,\n \"focus:bg-accent focus:text-accent-foreground\",\n \"py-[var(--context-menu-item-padding-y)] pr-[var(--context-menu-item-padding-x)] pl-[var(--context-menu-item-inset-padding-left)] gap-[var(--context-menu-item-gap)]\",\n])\n\n/**\n * ContextMenuLabel variant styles\n */\nexport const contextMenuLabelVariants = cva(\n [\"text-foreground px-[var(--context-menu-item-padding-x)] py-[var(--context-menu-item-padding-y)] text-[length:var(--context-menu-item-text-size)] font-medium\"],\n {\n variants: {\n inset: {\n true: \"pl-[var(--context-menu-item-inset-padding-left)]\",\n false: \"\",\n },\n },\n defaultVariants: {\n inset: false,\n },\n }\n)\n\n/**\n * ContextMenuSeparator variant styles\n */\nexport const contextMenuSeparatorVariants = cva([\"bg-border -mx-[var(--context-menu-separator-margin-x)] my-[var(--context-menu-separator-margin-y)] h-[var(--context-menu-separator-height)]\"])\n\n/**\n * ContextMenuShortcut variant styles\n */\nexport const contextMenuShortcutVariants = cva([\n \"text-muted-foreground ml-auto text-[length:var(--context-menu-shortcut-text-size)] tracking-widest\",\n])\n\n/**\n * Item indicator wrapper styles\n */\nexport const contextMenuIndicatorWrapperVariants = cva([\n \"pointer-events-none absolute left-[var(--context-menu-indicator-left)] flex size-[var(--context-menu-indicator-size)] items-center justify-center\",\n])\n\nexport type ContextMenuSubTriggerVariantProps = VariantProps<\n typeof contextMenuSubTriggerVariants\n>\nexport type ContextMenuItemVariantProps = VariantProps<\n typeof contextMenuItemVariants\n>\nexport type ContextMenuLabelVariantProps = VariantProps<\n typeof contextMenuLabelVariants\n>\n","\"use client\"\n\nimport type {\n ContextMenuCheckboxItemProps,\n ContextMenuContentProps,\n ContextMenuGroupProps,\n ContextMenuItemProps,\n ContextMenuLabelProps,\n ContextMenuPortalProps,\n ContextMenuProps,\n ContextMenuRadioGroupProps,\n ContextMenuRadioItemProps,\n ContextMenuSeparatorProps,\n ContextMenuShortcutProps,\n ContextMenuSubContentProps,\n ContextMenuSubProps,\n ContextMenuSubTriggerProps,\n ContextMenuTriggerProps,\n} from \"./ContextMenu.types\"\n\nimport * as ContextMenuPrimitive from \"@radix-ui/react-context-menu\"\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from \"lucide-react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n contextMenuCheckboxItemVariants,\n contextMenuContentVariants,\n contextMenuIndicatorWrapperVariants,\n contextMenuItemVariants,\n contextMenuLabelVariants,\n contextMenuRadioItemVariants,\n contextMenuSeparatorVariants,\n contextMenuShortcutVariants,\n contextMenuSubContentVariants,\n contextMenuSubTriggerVariants,\n} from \"./ContextMenu.variants\"\n\n/**\n * ContextMenu - Root component for context menus.\n *\n * Displays a menu when the user right-clicks on the trigger element.\n *\n * @example\n * <ContextMenu>\n * <ContextMenuTrigger>Right click me</ContextMenuTrigger>\n * <ContextMenuContent>\n * <ContextMenuItem>Profile</ContextMenuItem>\n * <ContextMenuItem>Settings</ContextMenuItem>\n * </ContextMenuContent>\n * </ContextMenu>\n */\nfunction ContextMenu({ ...props }: ContextMenuProps) {\n return <ContextMenuPrimitive.Root data-slot=\"context-menu\" {...props} />\n}\n\n/**\n * ContextMenuTrigger - Element that triggers the context menu on right-click.\n */\nfunction ContextMenuTrigger({ ...props }: ContextMenuTriggerProps) {\n return (\n <ContextMenuPrimitive.Trigger data-slot=\"context-menu-trigger\" {...props} />\n )\n}\n\n/**\n * ContextMenuGroup - Groups related menu items.\n */\nfunction ContextMenuGroup({ ...props }: ContextMenuGroupProps) {\n return (\n <ContextMenuPrimitive.Group data-slot=\"context-menu-group\" {...props} />\n )\n}\n\n/**\n * ContextMenuPortal - Renders content in a portal.\n */\nfunction ContextMenuPortal({ ...props }: ContextMenuPortalProps) {\n return (\n <ContextMenuPrimitive.Portal data-slot=\"context-menu-portal\" {...props} />\n )\n}\n\n/**\n * ContextMenuSub - Container for nested submenus.\n */\nfunction ContextMenuSub({ ...props }: ContextMenuSubProps) {\n return <ContextMenuPrimitive.Sub data-slot=\"context-menu-sub\" {...props} />\n}\n\n/**\n * ContextMenuRadioGroup - Groups radio items for single selection.\n */\nfunction ContextMenuRadioGroup({ ...props }: ContextMenuRadioGroupProps) {\n return (\n <ContextMenuPrimitive.RadioGroup\n data-slot=\"context-menu-radio-group\"\n {...props}\n />\n )\n}\n\n/**\n * ContextMenuSubTrigger - Triggers a nested submenu.\n */\nfunction ContextMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: ContextMenuSubTriggerProps) {\n return (\n <ContextMenuPrimitive.SubTrigger\n className={cn(contextMenuSubTriggerVariants({ inset }), className)}\n data-inset={inset}\n data-slot=\"context-menu-sub-trigger\"\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto\" />\n </ContextMenuPrimitive.SubTrigger>\n )\n}\n\n/**\n * ContextMenuSubContent - Content container for submenus.\n */\nfunction ContextMenuSubContent({\n className,\n ...props\n}: ContextMenuSubContentProps) {\n return (\n <ContextMenuPrimitive.SubContent\n className={cn(contextMenuSubContentVariants(), className)}\n data-slot=\"context-menu-sub-content\"\n {...props}\n />\n )\n}\n\n/**\n * ContextMenuContent - Main content container for the menu.\n *\n * Automatically wraps content in a Portal.\n */\nfunction ContextMenuContent({\n className,\n ...props\n}: ContextMenuContentProps) {\n return (\n <ContextMenuPrimitive.Portal>\n <ContextMenuPrimitive.Content\n className={cn(contextMenuContentVariants(), className)}\n data-slot=\"context-menu-content\"\n {...props}\n />\n </ContextMenuPrimitive.Portal>\n )\n}\n\n/**\n * ContextMenuItem - Individual menu item.\n *\n * @example\n * // Default item\n * <ContextMenuItem>Edit</ContextMenuItem>\n *\n * @example\n * // Destructive variant\n * <ContextMenuItem variant=\"destructive\">Delete</ContextMenuItem>\n */\nfunction ContextMenuItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: ContextMenuItemProps) {\n return (\n <ContextMenuPrimitive.Item\n className={cn(contextMenuItemVariants({ inset, variant }), className)}\n data-inset={inset}\n data-slot=\"context-menu-item\"\n data-variant={variant}\n {...props}\n />\n )\n}\n\n/**\n * ContextMenuCheckboxItem - Menu item with a checkbox.\n */\nfunction ContextMenuCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: ContextMenuCheckboxItemProps) {\n return (\n <ContextMenuPrimitive.CheckboxItem\n checked={checked ?? false}\n className={cn(contextMenuCheckboxItemVariants(), className)}\n data-slot=\"context-menu-checkbox-item\"\n {...props}\n >\n <span className={cn(contextMenuIndicatorWrapperVariants())}>\n <ContextMenuPrimitive.ItemIndicator>\n <CheckIcon className=\"size-[var(--context-menu-checkbox-size)]\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.CheckboxItem>\n )\n}\n\n/**\n * ContextMenuRadioItem - Menu item for radio selection.\n */\nfunction ContextMenuRadioItem({\n className,\n children,\n ...props\n}: ContextMenuRadioItemProps) {\n return (\n <ContextMenuPrimitive.RadioItem\n className={cn(contextMenuRadioItemVariants(), className)}\n data-slot=\"context-menu-radio-item\"\n {...props}\n >\n <span className={cn(contextMenuIndicatorWrapperVariants())}>\n <ContextMenuPrimitive.ItemIndicator>\n <CircleIcon className=\"size-[var(--context-menu-radio-size)]\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.RadioItem>\n )\n}\n\n/**\n * ContextMenuLabel - Non-interactive label for grouping items.\n */\nfunction ContextMenuLabel({\n className,\n inset,\n ...props\n}: ContextMenuLabelProps) {\n return (\n <ContextMenuPrimitive.Label\n className={cn(contextMenuLabelVariants({ inset }), className)}\n data-inset={inset}\n data-slot=\"context-menu-label\"\n {...props}\n />\n )\n}\n\n/**\n * ContextMenuSeparator - Visual separator between menu sections.\n */\nfunction ContextMenuSeparator({\n className,\n ...props\n}: ContextMenuSeparatorProps) {\n return (\n <ContextMenuPrimitive.Separator\n className={cn(contextMenuSeparatorVariants(), className)}\n data-slot=\"context-menu-separator\"\n {...props}\n />\n )\n}\n\n/**\n * ContextMenuShortcut - Displays keyboard shortcut hint.\n */\nfunction ContextMenuShortcut({\n className,\n ...props\n}: ContextMenuShortcutProps) {\n return (\n <span\n className={cn(contextMenuShortcutVariants(), className)}\n data-slot=\"context-menu-shortcut\"\n {...props}\n />\n )\n}\n\nexport {\n ContextMenu,\n ContextMenuCheckboxItem,\n ContextMenuContent,\n ContextMenuGroup,\n ContextMenuItem,\n ContextMenuLabel,\n ContextMenuPortal,\n ContextMenuRadioGroup,\n ContextMenuRadioItem,\n ContextMenuSeparator,\n ContextMenuShortcut,\n ContextMenuSub,\n ContextMenuSubContent,\n ContextMenuSubTrigger,\n ContextMenuTrigger,\n}\n"]}