@dev-dga/react 0.13.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (298) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +14 -0
  3. package/dist/{chunk-Z2LJBEIV.cjs → chunk-2ISGZAMI.cjs} +3 -3
  4. package/dist/{chunk-Z2LJBEIV.cjs.map → chunk-2ISGZAMI.cjs.map} +1 -1
  5. package/dist/{chunk-TPD2GNR6.js → chunk-3BDWXIO2.js} +4 -4
  6. package/dist/{chunk-KDV7V5S4.js → chunk-3GW6NMDL.js} +4 -4
  7. package/dist/{chunk-VN2YHNUE.cjs → chunk-3IJBHHQP.cjs} +4 -4
  8. package/dist/{chunk-VN2YHNUE.cjs.map → chunk-3IJBHHQP.cjs.map} +1 -1
  9. package/dist/{chunk-DI52GZLA.cjs → chunk-3Y6JPEJ3.cjs} +4 -4
  10. package/dist/{chunk-DI52GZLA.cjs.map → chunk-3Y6JPEJ3.cjs.map} +1 -1
  11. package/dist/{chunk-4HBVLISS.js → chunk-4G42XPSB.js} +4 -4
  12. package/dist/{chunk-7EEKESAA.js → chunk-4IUOTHJC.js} +4 -4
  13. package/dist/{chunk-YOKOPO2W.cjs → chunk-5NBC47JU.cjs} +3 -3
  14. package/dist/{chunk-YOKOPO2W.cjs.map → chunk-5NBC47JU.cjs.map} +1 -1
  15. package/dist/{chunk-GHJEE4NW.js → chunk-6AWYGPVV.js} +4 -4
  16. package/dist/{chunk-WRCHASO2.js → chunk-6LRMCCGU.js} +4 -4
  17. package/dist/{chunk-TG2IDU3W.js → chunk-6UMASQFJ.js} +4 -4
  18. package/dist/{chunk-O7BBEN7E.cjs → chunk-7ECWVWEP.cjs} +3 -3
  19. package/dist/{chunk-O7BBEN7E.cjs.map → chunk-7ECWVWEP.cjs.map} +1 -1
  20. package/dist/{chunk-IFZWOLDF.cjs → chunk-7M3PXCTB.cjs} +3 -3
  21. package/dist/{chunk-IFZWOLDF.cjs.map → chunk-7M3PXCTB.cjs.map} +1 -1
  22. package/dist/{chunk-PLT3EZZ5.js → chunk-7NXFVPPR.js} +4 -4
  23. package/dist/{chunk-EQINOHB6.cjs → chunk-A4JJG7ZS.cjs} +4 -4
  24. package/dist/{chunk-EQINOHB6.cjs.map → chunk-A4JJG7ZS.cjs.map} +1 -1
  25. package/dist/{chunk-CUOYBYI4.cjs → chunk-AOGJVMFE.cjs} +9 -9
  26. package/dist/{chunk-CUOYBYI4.cjs.map → chunk-AOGJVMFE.cjs.map} +1 -1
  27. package/dist/{chunk-5N6CFYT6.cjs → chunk-B3MX4XNP.cjs} +3 -3
  28. package/dist/{chunk-5N6CFYT6.cjs.map → chunk-B3MX4XNP.cjs.map} +1 -1
  29. package/dist/{chunk-REDX5DCT.cjs → chunk-BH7XP6DP.cjs} +4 -4
  30. package/dist/{chunk-REDX5DCT.cjs.map → chunk-BH7XP6DP.cjs.map} +1 -1
  31. package/dist/{chunk-GUI2LDJZ.cjs → chunk-BSVWC2OY.cjs} +4 -4
  32. package/dist/{chunk-GUI2LDJZ.cjs.map → chunk-BSVWC2OY.cjs.map} +1 -1
  33. package/dist/{chunk-TGM4JFWI.cjs → chunk-BTXKJ4NE.cjs} +5 -5
  34. package/dist/{chunk-TGM4JFWI.cjs.map → chunk-BTXKJ4NE.cjs.map} +1 -1
  35. package/dist/{chunk-QLV4RQVQ.cjs → chunk-C5BPJIIC.cjs} +5 -5
  36. package/dist/chunk-C5BPJIIC.cjs.map +1 -0
  37. package/dist/{chunk-NKCBDSI2.js → chunk-C7QGHL2M.js} +2 -2
  38. package/dist/{chunk-7F24FFIV.cjs → chunk-DI3WGH7W.cjs} +5 -5
  39. package/dist/{chunk-7F24FFIV.cjs.map → chunk-DI3WGH7W.cjs.map} +1 -1
  40. package/dist/{chunk-BQZ4XAYH.js → chunk-DUJ2QWTC.js} +4 -4
  41. package/dist/{chunk-VYP5GX57.cjs → chunk-DZTHIGMQ.cjs} +3 -3
  42. package/dist/{chunk-VYP5GX57.cjs.map → chunk-DZTHIGMQ.cjs.map} +1 -1
  43. package/dist/{chunk-BP6BOEVE.js → chunk-EBV35LZE.js} +4 -4
  44. package/dist/{chunk-GEVXV4RL.js → chunk-GGWMXMBP.js} +4 -4
  45. package/dist/{chunk-P7WYXL4A.cjs → chunk-GXF5IZEX.cjs} +3 -3
  46. package/dist/{chunk-P7WYXL4A.cjs.map → chunk-GXF5IZEX.cjs.map} +1 -1
  47. package/dist/{chunk-DU4YQEIM.cjs → chunk-H7V6VNFC.cjs} +3 -3
  48. package/dist/{chunk-DU4YQEIM.cjs.map → chunk-H7V6VNFC.cjs.map} +1 -1
  49. package/dist/{chunk-NGDKAG2O.cjs → chunk-HQABMNYD.cjs} +7 -7
  50. package/dist/{chunk-NGDKAG2O.cjs.map → chunk-HQABMNYD.cjs.map} +1 -1
  51. package/dist/{chunk-J53OY747.js → chunk-IS7NNFV3.js} +7 -7
  52. package/dist/{chunk-ANHZT2X2.js → chunk-JADNUODB.js} +3 -3
  53. package/dist/{chunk-ANHZT2X2.js.map → chunk-JADNUODB.js.map} +1 -1
  54. package/dist/{chunk-XB6YHZAG.js → chunk-JBTM3SFO.js} +4 -4
  55. package/dist/{chunk-APD5WA65.js → chunk-JHWACBNX.js} +4 -4
  56. package/dist/{chunk-54KSDBGC.js → chunk-JXMXEBXP.js} +2 -2
  57. package/dist/{chunk-FPXFD5XT.js → chunk-KXBRKW25.js} +4 -4
  58. package/dist/{chunk-FF4QNJOQ.js → chunk-MFBGKD5J.js} +4 -4
  59. package/dist/{chunk-WHKNCDTX.js → chunk-N2OE2MUB.js} +7 -7
  60. package/dist/{chunk-MECGQLHL.js → chunk-NJIQJHJS.js} +4 -4
  61. package/dist/{chunk-QCITJAK6.cjs → chunk-NLAVXC45.cjs} +3 -3
  62. package/dist/{chunk-QCITJAK6.cjs.map → chunk-NLAVXC45.cjs.map} +1 -1
  63. package/dist/{chunk-5GDTEDDH.js → chunk-OUS6KAYF.js} +4 -4
  64. package/dist/{chunk-G6LUBXN2.js → chunk-OXMWQMYF.js} +2 -2
  65. package/dist/{chunk-BNCUXVZF.cjs → chunk-OYSETR4K.cjs} +3 -3
  66. package/dist/{chunk-BNCUXVZF.cjs.map → chunk-OYSETR4K.cjs.map} +1 -1
  67. package/dist/{chunk-ZNDJS2W7.js → chunk-P4AMGEAG.js} +4 -4
  68. package/dist/{chunk-6G2BJQZL.cjs → chunk-P66BFKWQ.cjs} +3 -3
  69. package/dist/{chunk-6G2BJQZL.cjs.map → chunk-P66BFKWQ.cjs.map} +1 -1
  70. package/dist/{chunk-BYSA3YCV.cjs → chunk-RRTB754T.cjs} +4 -4
  71. package/dist/{chunk-BYSA3YCV.cjs.map → chunk-RRTB754T.cjs.map} +1 -1
  72. package/dist/{chunk-GS7QTYLD.js → chunk-S3JTU4FH.js} +4 -4
  73. package/dist/{chunk-RH3CQOEI.cjs → chunk-S6FRVWCG.cjs} +3 -3
  74. package/dist/{chunk-RH3CQOEI.cjs.map → chunk-S6FRVWCG.cjs.map} +1 -1
  75. package/dist/{chunk-4S2DSEXR.js → chunk-S7KATX5T.js} +5 -5
  76. package/dist/{chunk-VJV3K53D.js → chunk-SHP4KSPL.js} +4 -4
  77. package/dist/{chunk-WGCK6KKL.js → chunk-SZRP2ODO.js} +4 -4
  78. package/dist/{chunk-TNIRKGXY.js → chunk-T6RGNFKN.js} +4 -4
  79. package/dist/{chunk-P2CSX4DZ.cjs → chunk-TBI3YP65.cjs} +4 -2
  80. package/dist/chunk-TBI3YP65.cjs.map +1 -0
  81. package/dist/{chunk-WLJHHTE2.js → chunk-TPZTJDCN.js} +9 -9
  82. package/dist/{chunk-J7XCG6SX.cjs → chunk-TQH7AMQ2.cjs} +4 -4
  83. package/dist/{chunk-J7XCG6SX.cjs.map → chunk-TQH7AMQ2.cjs.map} +1 -1
  84. package/dist/{chunk-FV6E33FY.cjs → chunk-TQUB2TCL.cjs} +4 -4
  85. package/dist/{chunk-FV6E33FY.cjs.map → chunk-TQUB2TCL.cjs.map} +1 -1
  86. package/dist/{chunk-YVB5RTKR.js → chunk-TZ6IKB3E.js} +4 -2
  87. package/dist/chunk-TZ6IKB3E.js.map +1 -0
  88. package/dist/{chunk-T3NVC7UU.cjs → chunk-U3W2GAHM.cjs} +4 -4
  89. package/dist/{chunk-T3NVC7UU.cjs.map → chunk-U3W2GAHM.cjs.map} +1 -1
  90. package/dist/{chunk-G6ZOJVIG.cjs → chunk-U6YLGSAQ.cjs} +6 -6
  91. package/dist/{chunk-G6ZOJVIG.cjs.map → chunk-U6YLGSAQ.cjs.map} +1 -1
  92. package/dist/{chunk-J7HSAVFF.cjs → chunk-UG2SQ4Q3.cjs} +11 -11
  93. package/dist/{chunk-J7HSAVFF.cjs.map → chunk-UG2SQ4Q3.cjs.map} +1 -1
  94. package/dist/{chunk-IM6TYL3P.cjs → chunk-UVBZHPKP.cjs} +3 -3
  95. package/dist/{chunk-IM6TYL3P.cjs.map → chunk-UVBZHPKP.cjs.map} +1 -1
  96. package/dist/{chunk-U7SCEB34.js → chunk-VAGYICPO.js} +2 -2
  97. package/dist/{chunk-DVKPFWP2.cjs → chunk-W46J3DNV.cjs} +4 -4
  98. package/dist/{chunk-DVKPFWP2.cjs.map → chunk-W46J3DNV.cjs.map} +1 -1
  99. package/dist/{chunk-KSEN4ESR.js → chunk-WU3IBHA4.js} +6 -6
  100. package/dist/chunk-WU3IBHA4.js.map +1 -0
  101. package/dist/{chunk-FUFFG2UW.cjs → chunk-X5GBT5VI.cjs} +4 -4
  102. package/dist/{chunk-FUFFG2UW.cjs.map → chunk-X5GBT5VI.cjs.map} +1 -1
  103. package/dist/{chunk-55RHNN3T.js → chunk-Y4JUMIH4.js} +4 -4
  104. package/dist/{chunk-ODNO43HV.cjs → chunk-YPC7FRJX.cjs} +4 -4
  105. package/dist/{chunk-ODNO43HV.cjs.map → chunk-YPC7FRJX.cjs.map} +1 -1
  106. package/dist/{chunk-TYZIRV75.cjs → chunk-ZCRO2PBB.cjs} +4 -4
  107. package/dist/{chunk-TYZIRV75.cjs.map → chunk-ZCRO2PBB.cjs.map} +1 -1
  108. package/dist/components/Card/Card.cjs +3 -3
  109. package/dist/components/Card/Card.js +2 -2
  110. package/dist/components/Card/index.cjs +3 -3
  111. package/dist/components/Card/index.js +2 -2
  112. package/dist/components/Charts/Charts.cjs +3 -3
  113. package/dist/components/Charts/Charts.js +2 -2
  114. package/dist/components/Charts/index.cjs +3 -3
  115. package/dist/components/Charts/index.js +2 -2
  116. package/dist/components/Checkbox/Checkbox.cjs +3 -3
  117. package/dist/components/Checkbox/Checkbox.js +2 -2
  118. package/dist/components/Checkbox/index.cjs +3 -3
  119. package/dist/components/Checkbox/index.js +2 -2
  120. package/dist/components/CodeSnippet/CodeSnippet.cjs +5 -5
  121. package/dist/components/CodeSnippet/CodeSnippet.js +4 -4
  122. package/dist/components/CodeSnippet/index.cjs +5 -5
  123. package/dist/components/CodeSnippet/index.js +4 -4
  124. package/dist/components/Command/Command.cjs +3 -3
  125. package/dist/components/Command/Command.js +2 -2
  126. package/dist/components/Command/index.cjs +3 -3
  127. package/dist/components/Command/index.js +2 -2
  128. package/dist/components/DatePicker/DatePicker.cjs +1 -1
  129. package/dist/components/DatePicker/DatePicker.js +1 -1
  130. package/dist/components/DatePicker/index.cjs +1 -1
  131. package/dist/components/DatePicker/index.js +1 -1
  132. package/dist/components/DateRangePicker/DateRangePicker.cjs +1 -1
  133. package/dist/components/DateRangePicker/DateRangePicker.js +1 -1
  134. package/dist/components/DateRangePicker/index.cjs +1 -1
  135. package/dist/components/DateRangePicker/index.js +1 -1
  136. package/dist/components/Drawer/Drawer.cjs +3 -3
  137. package/dist/components/Drawer/Drawer.js +2 -2
  138. package/dist/components/Drawer/index.cjs +3 -3
  139. package/dist/components/Drawer/index.js +2 -2
  140. package/dist/components/Dropdown/Dropdown.cjs +3 -3
  141. package/dist/components/Dropdown/Dropdown.js +2 -2
  142. package/dist/components/Dropdown/index.cjs +3 -3
  143. package/dist/components/Dropdown/index.js +2 -2
  144. package/dist/components/DropdownMenu/DropdownMenu.cjs +3 -3
  145. package/dist/components/DropdownMenu/DropdownMenu.js +2 -2
  146. package/dist/components/DropdownMenu/index.cjs +3 -3
  147. package/dist/components/DropdownMenu/index.js +2 -2
  148. package/dist/components/FileUpload/FileUpload.cjs +4 -4
  149. package/dist/components/FileUpload/FileUpload.js +3 -3
  150. package/dist/components/FileUpload/index.cjs +4 -4
  151. package/dist/components/FileUpload/index.js +3 -3
  152. package/dist/components/Filtration/Filtration.cjs +8 -8
  153. package/dist/components/Filtration/Filtration.js +7 -7
  154. package/dist/components/Filtration/index.cjs +8 -8
  155. package/dist/components/Filtration/index.js +7 -7
  156. package/dist/components/InputOTP/InputOTP.cjs +3 -3
  157. package/dist/components/InputOTP/InputOTP.js +2 -2
  158. package/dist/components/InputOTP/index.cjs +3 -3
  159. package/dist/components/InputOTP/index.js +2 -2
  160. package/dist/components/Menubar/Menubar.cjs +3 -3
  161. package/dist/components/Menubar/Menubar.js +2 -2
  162. package/dist/components/Menubar/index.cjs +3 -3
  163. package/dist/components/Menubar/index.js +2 -2
  164. package/dist/components/Metric/index.cjs +2 -2
  165. package/dist/components/Metric/index.cjs.map +1 -1
  166. package/dist/components/Metric/index.js +4 -4
  167. package/dist/components/Modal/Modal.cjs +3 -3
  168. package/dist/components/Modal/Modal.js +2 -2
  169. package/dist/components/Modal/index.cjs +3 -3
  170. package/dist/components/Modal/index.js +2 -2
  171. package/dist/components/NumberInput/NumberInput.cjs +3 -3
  172. package/dist/components/NumberInput/NumberInput.js +2 -2
  173. package/dist/components/NumberInput/index.cjs +3 -3
  174. package/dist/components/NumberInput/index.js +2 -2
  175. package/dist/components/Pagination/Pagination.cjs +3 -3
  176. package/dist/components/Pagination/Pagination.js +2 -2
  177. package/dist/components/Pagination/index.cjs +3 -3
  178. package/dist/components/Pagination/index.js +2 -2
  179. package/dist/components/Popover/Popover.cjs +3 -3
  180. package/dist/components/Popover/Popover.js +2 -2
  181. package/dist/components/Popover/index.cjs +3 -3
  182. package/dist/components/Popover/index.js +2 -2
  183. package/dist/components/Progress/Progress.cjs +2 -2
  184. package/dist/components/Progress/Progress.js +1 -1
  185. package/dist/components/Progress/index.cjs +2 -2
  186. package/dist/components/Progress/index.js +1 -1
  187. package/dist/components/Radio/Radio.cjs +3 -3
  188. package/dist/components/Radio/Radio.js +2 -2
  189. package/dist/components/Radio/index.cjs +3 -3
  190. package/dist/components/Radio/index.js +2 -2
  191. package/dist/components/Rating/Rating.cjs +3 -3
  192. package/dist/components/Rating/Rating.js +2 -2
  193. package/dist/components/Rating/index.cjs +3 -3
  194. package/dist/components/Rating/index.js +2 -2
  195. package/dist/components/SaudiRiyal/SaudiRiyal.cjs +3 -3
  196. package/dist/components/SaudiRiyal/SaudiRiyal.js +2 -2
  197. package/dist/components/SaudiRiyal/index.cjs +3 -3
  198. package/dist/components/SaudiRiyal/index.js +2 -2
  199. package/dist/components/SearchBox/SearchBox.cjs +5 -5
  200. package/dist/components/SearchBox/SearchBox.js +4 -4
  201. package/dist/components/SearchBox/index.cjs +5 -5
  202. package/dist/components/SearchBox/index.js +4 -4
  203. package/dist/components/Select/Select.cjs +3 -3
  204. package/dist/components/Select/Select.js +2 -2
  205. package/dist/components/Select/index.cjs +3 -3
  206. package/dist/components/Select/index.js +2 -2
  207. package/dist/components/Sidebar/Sidebar.cjs +4 -4
  208. package/dist/components/Sidebar/Sidebar.js +3 -3
  209. package/dist/components/Sidebar/SidebarMenu.cjs +5 -5
  210. package/dist/components/Sidebar/SidebarMenu.js +4 -4
  211. package/dist/components/Sidebar/index.cjs +7 -7
  212. package/dist/components/Sidebar/index.cjs.map +1 -1
  213. package/dist/components/Sidebar/index.js +6 -6
  214. package/dist/components/SlideoutMenu/SlideoutMenu.cjs +3 -3
  215. package/dist/components/SlideoutMenu/SlideoutMenu.js +2 -2
  216. package/dist/components/SlideoutMenu/index.cjs +3 -3
  217. package/dist/components/SlideoutMenu/index.js +2 -2
  218. package/dist/components/Slider/Slider.cjs +3 -3
  219. package/dist/components/Slider/Slider.js +2 -2
  220. package/dist/components/Slider/index.cjs +3 -3
  221. package/dist/components/Slider/index.js +2 -2
  222. package/dist/components/StructuredList/StructuredList.cjs +4 -4
  223. package/dist/components/StructuredList/StructuredList.js +3 -3
  224. package/dist/components/StructuredList/index.cjs +4 -4
  225. package/dist/components/StructuredList/index.js +3 -3
  226. package/dist/components/Switch/Switch.cjs +3 -3
  227. package/dist/components/Switch/Switch.js +2 -2
  228. package/dist/components/Switch/index.cjs +3 -3
  229. package/dist/components/Switch/index.js +2 -2
  230. package/dist/components/Tabs/Tabs.cjs +4 -4
  231. package/dist/components/Tabs/Tabs.js +3 -3
  232. package/dist/components/Tabs/index.cjs +4 -4
  233. package/dist/components/Tabs/index.js +3 -3
  234. package/dist/components/TagInput/TagInput.cjs +3 -3
  235. package/dist/components/TagInput/TagInput.js +2 -2
  236. package/dist/components/TagInput/index.cjs +3 -3
  237. package/dist/components/TagInput/index.js +2 -2
  238. package/dist/components/TextInput/TextInput.cjs +3 -3
  239. package/dist/components/TextInput/TextInput.js +2 -2
  240. package/dist/components/TextInput/index.cjs +3 -3
  241. package/dist/components/TextInput/index.js +2 -2
  242. package/dist/components/Textarea/Textarea.cjs +3 -3
  243. package/dist/components/Textarea/Textarea.js +2 -2
  244. package/dist/components/Textarea/index.cjs +3 -3
  245. package/dist/components/Textarea/index.js +2 -2
  246. package/dist/components/Tooltip/Tooltip.cjs +3 -3
  247. package/dist/components/Tooltip/Tooltip.js +2 -2
  248. package/dist/components/Tooltip/index.cjs +3 -3
  249. package/dist/components/Tooltip/index.js +2 -2
  250. package/dist/date-picker.cjs +25 -0
  251. package/dist/date-picker.cjs.map +1 -0
  252. package/dist/date-picker.d.cts +147 -0
  253. package/dist/date-picker.d.ts +147 -0
  254. package/dist/date-picker.js +25 -0
  255. package/dist/date-picker.js.map +1 -0
  256. package/dist/index.cjs +102 -102
  257. package/dist/index.cjs.map +1 -1
  258. package/dist/index.d.cts +6 -146
  259. package/dist/index.d.ts +6 -146
  260. package/dist/index.js +141 -141
  261. package/dist/providers/DgaProvider.cjs +2 -2
  262. package/dist/providers/DgaProvider.js +1 -1
  263. package/package.json +13 -3
  264. package/dist/chunk-KSEN4ESR.js.map +0 -1
  265. package/dist/chunk-P2CSX4DZ.cjs.map +0 -1
  266. package/dist/chunk-QLV4RQVQ.cjs.map +0 -1
  267. package/dist/chunk-YVB5RTKR.js.map +0 -1
  268. /package/dist/{chunk-TPD2GNR6.js.map → chunk-3BDWXIO2.js.map} +0 -0
  269. /package/dist/{chunk-KDV7V5S4.js.map → chunk-3GW6NMDL.js.map} +0 -0
  270. /package/dist/{chunk-4HBVLISS.js.map → chunk-4G42XPSB.js.map} +0 -0
  271. /package/dist/{chunk-7EEKESAA.js.map → chunk-4IUOTHJC.js.map} +0 -0
  272. /package/dist/{chunk-GHJEE4NW.js.map → chunk-6AWYGPVV.js.map} +0 -0
  273. /package/dist/{chunk-WRCHASO2.js.map → chunk-6LRMCCGU.js.map} +0 -0
  274. /package/dist/{chunk-TG2IDU3W.js.map → chunk-6UMASQFJ.js.map} +0 -0
  275. /package/dist/{chunk-PLT3EZZ5.js.map → chunk-7NXFVPPR.js.map} +0 -0
  276. /package/dist/{chunk-NKCBDSI2.js.map → chunk-C7QGHL2M.js.map} +0 -0
  277. /package/dist/{chunk-BQZ4XAYH.js.map → chunk-DUJ2QWTC.js.map} +0 -0
  278. /package/dist/{chunk-BP6BOEVE.js.map → chunk-EBV35LZE.js.map} +0 -0
  279. /package/dist/{chunk-GEVXV4RL.js.map → chunk-GGWMXMBP.js.map} +0 -0
  280. /package/dist/{chunk-J53OY747.js.map → chunk-IS7NNFV3.js.map} +0 -0
  281. /package/dist/{chunk-XB6YHZAG.js.map → chunk-JBTM3SFO.js.map} +0 -0
  282. /package/dist/{chunk-APD5WA65.js.map → chunk-JHWACBNX.js.map} +0 -0
  283. /package/dist/{chunk-54KSDBGC.js.map → chunk-JXMXEBXP.js.map} +0 -0
  284. /package/dist/{chunk-FPXFD5XT.js.map → chunk-KXBRKW25.js.map} +0 -0
  285. /package/dist/{chunk-FF4QNJOQ.js.map → chunk-MFBGKD5J.js.map} +0 -0
  286. /package/dist/{chunk-WHKNCDTX.js.map → chunk-N2OE2MUB.js.map} +0 -0
  287. /package/dist/{chunk-MECGQLHL.js.map → chunk-NJIQJHJS.js.map} +0 -0
  288. /package/dist/{chunk-5GDTEDDH.js.map → chunk-OUS6KAYF.js.map} +0 -0
  289. /package/dist/{chunk-G6LUBXN2.js.map → chunk-OXMWQMYF.js.map} +0 -0
  290. /package/dist/{chunk-ZNDJS2W7.js.map → chunk-P4AMGEAG.js.map} +0 -0
  291. /package/dist/{chunk-GS7QTYLD.js.map → chunk-S3JTU4FH.js.map} +0 -0
  292. /package/dist/{chunk-4S2DSEXR.js.map → chunk-S7KATX5T.js.map} +0 -0
  293. /package/dist/{chunk-VJV3K53D.js.map → chunk-SHP4KSPL.js.map} +0 -0
  294. /package/dist/{chunk-WGCK6KKL.js.map → chunk-SZRP2ODO.js.map} +0 -0
  295. /package/dist/{chunk-TNIRKGXY.js.map → chunk-T6RGNFKN.js.map} +0 -0
  296. /package/dist/{chunk-WLJHHTE2.js.map → chunk-TPZTJDCN.js.map} +0 -0
  297. /package/dist/{chunk-U7SCEB34.js.map → chunk-VAGYICPO.js.map} +0 -0
  298. /package/dist/{chunk-55RHNN3T.js.map → chunk-Y4JUMIH4.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-P7WYXL4A.cjs","../src/components/Card/Card.tsx"],"names":[],"mappings":"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","file":"/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-P7WYXL4A.cjs","sourcesContent":[null,"'use client';\n\nimport { useState, useId, useContext, createContext } from 'react';\nimport { Slot as SlotPrimitive } from 'radix-ui';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\nimport { Check, ChevronDown } from '../../internal/icons';\nimport { Button } from '../Button';\n\nconst cardVariants = cva('ddga-card', {\n variants: {\n variant: {\n default: 'ddga-card--default',\n outline: 'ddga-card--outline',\n elevated: 'ddga-card--elevated',\n plain: 'ddga-card--plain',\n filled: 'ddga-card--filled',\n gradient: 'ddga-card--gradient',\n ghost: 'ddga-card--ghost',\n },\n padding: {\n sm: 'ddga-card--padding-sm',\n md: 'ddga-card--padding-md',\n lg: 'ddga-card--padding-lg',\n },\n orientation: {\n vertical: 'ddga-card--vertical',\n horizontal: 'ddga-card--horizontal',\n },\n interactive: {\n true: 'ddga-card--interactive',\n },\n },\n defaultVariants: {\n variant: 'default',\n padding: 'md',\n orientation: 'vertical',\n },\n});\n\n// Shares expanded state + content id between the chevron toggle and CardExpandableContent.\nconst CardContext = createContext<{ expanded: boolean; contentId: string } | null>(null);\n\ninterface CardProps extends React.ComponentProps<'div'>, VariantProps<typeof cardVariants> {\n /** Render as the single child element instead of a `<div>` (see Button). */\n asChild?: boolean;\n /**\n * DGA Disabled state — mutes the surface (gray-200 bg / gray-400 text + icon)\n * and marks the card `aria-disabled`. Suppresses Selectable toggling.\n */\n disabled?: boolean;\n /**\n * DGA Type=Selectable — the whole card becomes a checkbox (`role=\"checkbox\"`,\n * Space toggles) with a checkbox indicator at the top inline-end. Controlled\n * via `selected` or uncontrolled via `defaultSelected`. Ignores `asChild`.\n */\n selectable?: boolean;\n /** Controlled selected state (Selectable). */\n selected?: boolean;\n /** Uncontrolled initial selected state (Selectable). */\n defaultSelected?: boolean;\n /** Fires with the next selected value when the user toggles a Selectable card. */\n onSelectedChange?: (selected: boolean) => void;\n /**\n * DGA Type=Expandable — renders a chevron toggle (icon-only Subtle button) at\n * the bottom inline-end that shows/hides a `<CardExpandableContent>` region.\n * Controlled via `expanded` or uncontrolled via `defaultExpanded`.\n */\n expandable?: boolean;\n /** Controlled expanded state (Expandable). */\n expanded?: boolean;\n /** Uncontrolled initial expanded state (Expandable). */\n defaultExpanded?: boolean;\n /** Fires with the next expanded value when the user toggles an Expandable card. */\n onExpandedChange?: (expanded: boolean) => void;\n /** Accessible label for the expand/collapse toggle. Default `'Toggle details'`. */\n expandLabel?: string;\n}\n\ntype CardSectionProps = React.ComponentProps<'div'> & { asChild?: boolean };\n\ntype CardIconProps = CardSectionProps & {\n /**\n * Render the DGA Platforms Code \"Featured Icon\" treatment — a 48px brand-light\n * circle around the glyph (vs the bare inline icon). Pair with the SDGA Card\n * pattern (featured icon → title → content → footer).\n */\n featured?: boolean;\n};\n\ninterface CardTitleProps extends React.ComponentProps<'h3'> {\n /** Override the heading element (e.g. render an `<h2>` or `<a>`). */\n asChild?: boolean;\n}\n\ntype CardDescriptionProps = React.ComponentProps<'p'> & { asChild?: boolean };\n\ninterface CardImageProps extends React.ComponentProps<'img'> {\n /**\n * Aspect ratio of the image in vertical orientation (e.g. `'16/9'`, `'4/3'`,\n * `'1/1'`). Default `'16/9'`. Ignored in horizontal orientation — the image\n * fills the card's full height there.\n */\n aspectRatio?: string;\n}\n\nfunction Card({\n variant,\n padding,\n orientation,\n interactive,\n asChild,\n disabled,\n selectable,\n selected,\n defaultSelected,\n onSelectedChange,\n expandable,\n expanded,\n defaultExpanded,\n onExpandedChange,\n expandLabel = 'Toggle details',\n className,\n children,\n onClick,\n onKeyDown,\n ...props\n}: CardProps) {\n // Dev-only: a selectable card is a `role=\"checkbox\"`, which takes its name\n // from aria-label/aria-labelledby (not its text content).\n if (process.env.NODE_ENV === 'development' && selectable) {\n if (!props['aria-label'] && !props['aria-labelledby']) {\n console.warn(\n '[@dev-dga/react] A selectable Card renders as a checkbox and needs an ' +\n 'aria-label or aria-labelledby for screen-reader users.',\n );\n }\n }\n\n const [internalSelected, setInternalSelected] = useState(defaultSelected ?? false);\n const isSelected = selected ?? internalSelected;\n const toggleSelected = () => {\n if (disabled) return;\n const next = !isSelected;\n if (selected === undefined) setInternalSelected(next);\n onSelectedChange?.(next);\n };\n\n const [internalExpanded, setInternalExpanded] = useState(defaultExpanded ?? false);\n const isExpanded = expanded ?? internalExpanded;\n const contentId = useId();\n const toggleExpanded = () => {\n if (disabled) return;\n const next = !isExpanded;\n if (expanded === undefined) setInternalExpanded(next);\n onExpandedChange?.(next);\n };\n\n // Selectable/Expandable add sibling elements, so the card can't be a Slot\n // (Slot needs exactly one child). They are mutually exclusive DGA Types.\n const hasExtras = selectable || expandable;\n const Comp = asChild && !hasExtras ? SlotPrimitive.Slot : 'div';\n\n const selectableProps = selectable\n ? {\n role: 'checkbox' as const,\n 'aria-checked': isSelected,\n 'aria-disabled': disabled || undefined,\n tabIndex: disabled ? -1 : 0,\n 'data-state': isSelected ? ('checked' as const) : ('unchecked' as const),\n onClick: (e: React.MouseEvent<HTMLDivElement>) => {\n toggleSelected();\n onClick?.(e);\n },\n onKeyDown: (e: React.KeyboardEvent<HTMLDivElement>) => {\n if (e.key === ' ') {\n e.preventDefault();\n toggleSelected();\n }\n onKeyDown?.(e);\n },\n }\n : // A bare `interactive` card (no asChild wrapper) is a whole-card click target →\n // make it keyboard-operable and announced as a button, else it's mouse-only.\n interactive && !expandable && !asChild\n ? {\n role: 'button' as const,\n 'aria-disabled': disabled || undefined,\n tabIndex: disabled ? -1 : 0,\n onClick,\n onKeyDown: (e: React.KeyboardEvent<HTMLDivElement>) => {\n if (!disabled && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault();\n e.currentTarget.click();\n }\n onKeyDown?.(e);\n },\n }\n : { onClick, onKeyDown };\n\n const card = (\n <Comp\n data-slot=\"card\"\n data-orientation={orientation ?? 'vertical'}\n data-disabled={disabled || undefined}\n data-expanded={expandable ? isExpanded : undefined}\n aria-disabled={disabled && !selectable ? true : undefined}\n className={cn(\n cardVariants({ variant, padding, orientation, interactive }),\n disabled && 'ddga-card--disabled',\n selectable && 'ddga-card--selectable',\n expandable && 'ddga-card--expandable',\n className,\n )}\n {...selectableProps}\n {...props}\n >\n {hasExtras ? (\n <>\n {selectable && (\n <span className=\"ddga-card__select-indicator\" aria-hidden>\n <span\n className=\"ddga-card__checkbox\"\n data-state={isSelected ? 'checked' : 'unchecked'}\n >\n {isSelected && <Check className=\"ddga-card__checkbox-check\" />}\n </span>\n </span>\n )}\n {children}\n {expandable && (\n <div className=\"ddga-card__expand-row\">\n <Button\n variant=\"ghost\"\n size=\"icon\"\n aria-label={expandLabel}\n aria-expanded={isExpanded}\n aria-controls={contentId}\n disabled={disabled}\n onClick={toggleExpanded}\n >\n <ChevronDown\n className={cn('ddga-card__chevron', isExpanded && 'ddga-card__chevron--up')}\n />\n </Button>\n </div>\n )}\n </>\n ) : (\n // Plain card: pass children straight through so `asChild` (Slot) still\n // receives a single element.\n children\n )}\n </Comp>\n );\n\n return expandable ? (\n <CardContext.Provider value={{ expanded: isExpanded, contentId }}>{card}</CardContext.Provider>\n ) : (\n card\n );\n}\n\nfunction CardImage({ aspectRatio = '16/9', className, style, ...props }: CardImageProps) {\n return (\n <img\n data-slot=\"card-image\"\n className={cn('ddga-card__image', className)}\n style={\n {\n '--ddga-card-image-aspect': aspectRatio,\n ...style,\n } as React.CSSProperties\n }\n {...props}\n />\n );\n}\n\nfunction CardHeader({ asChild, className, ...props }: CardSectionProps) {\n const Comp = asChild ? SlotPrimitive.Slot : 'div';\n return <Comp data-slot=\"card-header\" className={cn('ddga-card__header', className)} {...props} />;\n}\n\n// Decorative (`aria-hidden`) by default; pass `aria-hidden={false}` when the icon is the sole label.\nfunction CardIcon({ asChild, featured, className, ...props }: CardIconProps) {\n const Comp = asChild ? SlotPrimitive.Slot : 'div';\n return (\n <Comp\n data-slot=\"card-icon\"\n aria-hidden\n className={cn('ddga-card__icon', featured && 'ddga-card__icon--featured', className)}\n {...props}\n />\n );\n}\n\nfunction CardTitle({ asChild, className, ...props }: CardTitleProps) {\n const Comp = asChild ? SlotPrimitive.Slot : 'h3';\n return <Comp data-slot=\"card-title\" className={cn('ddga-card__title', className)} {...props} />;\n}\n\nfunction CardDescription({ asChild, className, ...props }: CardDescriptionProps) {\n const Comp = asChild ? SlotPrimitive.Slot : 'p';\n return (\n <Comp\n data-slot=\"card-description\"\n className={cn('ddga-card__description', className)}\n {...props}\n />\n );\n}\n\nfunction CardContent({ asChild, className, ...props }: CardSectionProps) {\n const Comp = asChild ? SlotPrimitive.Slot : 'div';\n return (\n <Comp data-slot=\"card-content\" className={cn('ddga-card__content', className)} {...props} />\n );\n}\n\nfunction CardFooter({ asChild, className, ...props }: CardSectionProps) {\n const Comp = asChild ? SlotPrimitive.Slot : 'div';\n return <Comp data-slot=\"card-footer\" className={cn('ddga-card__footer', className)} {...props} />;\n}\n\n// The collapsible region of an Expandable card — reads the Card's expanded state\n// via context; `hidden` removes it from layout + a11y tree when collapsed.\nfunction CardExpandableContent({ asChild, className, ...props }: CardSectionProps) {\n const ctx = useContext(CardContext);\n const Comp = asChild ? SlotPrimitive.Slot : 'div';\n return (\n <Comp\n data-slot=\"card-expandable-content\"\n id={ctx?.contentId}\n hidden={ctx ? !ctx.expanded : undefined}\n className={cn('ddga-card__expandable-content', className)}\n {...props}\n />\n );\n}\n\nexport {\n Card,\n CardImage,\n CardIcon,\n CardHeader,\n CardTitle,\n CardDescription,\n CardContent,\n CardFooter,\n CardExpandableContent,\n cardVariants,\n};\nexport type {\n CardProps,\n CardImageProps,\n CardSectionProps,\n CardIconProps,\n CardTitleProps,\n CardDescriptionProps,\n};\n"]}
1
+ {"version":3,"sources":["/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-GXF5IZEX.cjs","../src/components/Card/Card.tsx"],"names":[],"mappings":"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","file":"/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-GXF5IZEX.cjs","sourcesContent":[null,"'use client';\n\nimport { useState, useId, useContext, createContext } from 'react';\nimport { Slot as SlotPrimitive } from 'radix-ui';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\nimport { Check, ChevronDown } from '../../internal/icons';\nimport { Button } from '../Button';\n\nconst cardVariants = cva('ddga-card', {\n variants: {\n variant: {\n default: 'ddga-card--default',\n outline: 'ddga-card--outline',\n elevated: 'ddga-card--elevated',\n plain: 'ddga-card--plain',\n filled: 'ddga-card--filled',\n gradient: 'ddga-card--gradient',\n ghost: 'ddga-card--ghost',\n },\n padding: {\n sm: 'ddga-card--padding-sm',\n md: 'ddga-card--padding-md',\n lg: 'ddga-card--padding-lg',\n },\n orientation: {\n vertical: 'ddga-card--vertical',\n horizontal: 'ddga-card--horizontal',\n },\n interactive: {\n true: 'ddga-card--interactive',\n },\n },\n defaultVariants: {\n variant: 'default',\n padding: 'md',\n orientation: 'vertical',\n },\n});\n\n// Shares expanded state + content id between the chevron toggle and CardExpandableContent.\nconst CardContext = createContext<{ expanded: boolean; contentId: string } | null>(null);\n\ninterface CardProps extends React.ComponentProps<'div'>, VariantProps<typeof cardVariants> {\n /** Render as the single child element instead of a `<div>` (see Button). */\n asChild?: boolean;\n /**\n * DGA Disabled state — mutes the surface (gray-200 bg / gray-400 text + icon)\n * and marks the card `aria-disabled`. Suppresses Selectable toggling.\n */\n disabled?: boolean;\n /**\n * DGA Type=Selectable — the whole card becomes a checkbox (`role=\"checkbox\"`,\n * Space toggles) with a checkbox indicator at the top inline-end. Controlled\n * via `selected` or uncontrolled via `defaultSelected`. Ignores `asChild`.\n */\n selectable?: boolean;\n /** Controlled selected state (Selectable). */\n selected?: boolean;\n /** Uncontrolled initial selected state (Selectable). */\n defaultSelected?: boolean;\n /** Fires with the next selected value when the user toggles a Selectable card. */\n onSelectedChange?: (selected: boolean) => void;\n /**\n * DGA Type=Expandable — renders a chevron toggle (icon-only Subtle button) at\n * the bottom inline-end that shows/hides a `<CardExpandableContent>` region.\n * Controlled via `expanded` or uncontrolled via `defaultExpanded`.\n */\n expandable?: boolean;\n /** Controlled expanded state (Expandable). */\n expanded?: boolean;\n /** Uncontrolled initial expanded state (Expandable). */\n defaultExpanded?: boolean;\n /** Fires with the next expanded value when the user toggles an Expandable card. */\n onExpandedChange?: (expanded: boolean) => void;\n /** Accessible label for the expand/collapse toggle. Default `'Toggle details'`. */\n expandLabel?: string;\n}\n\ntype CardSectionProps = React.ComponentProps<'div'> & { asChild?: boolean };\n\ntype CardIconProps = CardSectionProps & {\n /**\n * Render the DGA Platforms Code \"Featured Icon\" treatment — a 48px brand-light\n * circle around the glyph (vs the bare inline icon). Pair with the SDGA Card\n * pattern (featured icon → title → content → footer).\n */\n featured?: boolean;\n};\n\ninterface CardTitleProps extends React.ComponentProps<'h3'> {\n /** Override the heading element (e.g. render an `<h2>` or `<a>`). */\n asChild?: boolean;\n}\n\ntype CardDescriptionProps = React.ComponentProps<'p'> & { asChild?: boolean };\n\ninterface CardImageProps extends React.ComponentProps<'img'> {\n /**\n * Aspect ratio of the image in vertical orientation (e.g. `'16/9'`, `'4/3'`,\n * `'1/1'`). Default `'16/9'`. Ignored in horizontal orientation — the image\n * fills the card's full height there.\n */\n aspectRatio?: string;\n}\n\nfunction Card({\n variant,\n padding,\n orientation,\n interactive,\n asChild,\n disabled,\n selectable,\n selected,\n defaultSelected,\n onSelectedChange,\n expandable,\n expanded,\n defaultExpanded,\n onExpandedChange,\n expandLabel = 'Toggle details',\n className,\n children,\n onClick,\n onKeyDown,\n ...props\n}: CardProps) {\n // Dev-only: a selectable card is a `role=\"checkbox\"`, which takes its name\n // from aria-label/aria-labelledby (not its text content).\n if (process.env.NODE_ENV === 'development' && selectable) {\n if (!props['aria-label'] && !props['aria-labelledby']) {\n console.warn(\n '[@dev-dga/react] A selectable Card renders as a checkbox and needs an ' +\n 'aria-label or aria-labelledby for screen-reader users.',\n );\n }\n }\n\n const [internalSelected, setInternalSelected] = useState(defaultSelected ?? false);\n const isSelected = selected ?? internalSelected;\n const toggleSelected = () => {\n if (disabled) return;\n const next = !isSelected;\n if (selected === undefined) setInternalSelected(next);\n onSelectedChange?.(next);\n };\n\n const [internalExpanded, setInternalExpanded] = useState(defaultExpanded ?? false);\n const isExpanded = expanded ?? internalExpanded;\n const contentId = useId();\n const toggleExpanded = () => {\n if (disabled) return;\n const next = !isExpanded;\n if (expanded === undefined) setInternalExpanded(next);\n onExpandedChange?.(next);\n };\n\n // Selectable/Expandable add sibling elements, so the card can't be a Slot\n // (Slot needs exactly one child). They are mutually exclusive DGA Types.\n const hasExtras = selectable || expandable;\n const Comp = asChild && !hasExtras ? SlotPrimitive.Slot : 'div';\n\n const selectableProps = selectable\n ? {\n role: 'checkbox' as const,\n 'aria-checked': isSelected,\n 'aria-disabled': disabled || undefined,\n tabIndex: disabled ? -1 : 0,\n 'data-state': isSelected ? ('checked' as const) : ('unchecked' as const),\n onClick: (e: React.MouseEvent<HTMLDivElement>) => {\n toggleSelected();\n onClick?.(e);\n },\n onKeyDown: (e: React.KeyboardEvent<HTMLDivElement>) => {\n if (e.key === ' ') {\n e.preventDefault();\n toggleSelected();\n }\n onKeyDown?.(e);\n },\n }\n : // A bare `interactive` card (no asChild wrapper) is a whole-card click target →\n // make it keyboard-operable and announced as a button, else it's mouse-only.\n interactive && !expandable && !asChild\n ? {\n role: 'button' as const,\n 'aria-disabled': disabled || undefined,\n tabIndex: disabled ? -1 : 0,\n onClick,\n onKeyDown: (e: React.KeyboardEvent<HTMLDivElement>) => {\n if (!disabled && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault();\n e.currentTarget.click();\n }\n onKeyDown?.(e);\n },\n }\n : { onClick, onKeyDown };\n\n const card = (\n <Comp\n data-slot=\"card\"\n data-orientation={orientation ?? 'vertical'}\n data-disabled={disabled || undefined}\n data-expanded={expandable ? isExpanded : undefined}\n aria-disabled={disabled && !selectable ? true : undefined}\n className={cn(\n cardVariants({ variant, padding, orientation, interactive }),\n disabled && 'ddga-card--disabled',\n selectable && 'ddga-card--selectable',\n expandable && 'ddga-card--expandable',\n className,\n )}\n {...selectableProps}\n {...props}\n >\n {hasExtras ? (\n <>\n {selectable && (\n <span className=\"ddga-card__select-indicator\" aria-hidden>\n <span\n className=\"ddga-card__checkbox\"\n data-state={isSelected ? 'checked' : 'unchecked'}\n >\n {isSelected && <Check className=\"ddga-card__checkbox-check\" />}\n </span>\n </span>\n )}\n {children}\n {expandable && (\n <div className=\"ddga-card__expand-row\">\n <Button\n variant=\"ghost\"\n size=\"icon\"\n aria-label={expandLabel}\n aria-expanded={isExpanded}\n aria-controls={contentId}\n disabled={disabled}\n onClick={toggleExpanded}\n >\n <ChevronDown\n className={cn('ddga-card__chevron', isExpanded && 'ddga-card__chevron--up')}\n />\n </Button>\n </div>\n )}\n </>\n ) : (\n // Plain card: pass children straight through so `asChild` (Slot) still\n // receives a single element.\n children\n )}\n </Comp>\n );\n\n return expandable ? (\n <CardContext.Provider value={{ expanded: isExpanded, contentId }}>{card}</CardContext.Provider>\n ) : (\n card\n );\n}\n\nfunction CardImage({ aspectRatio = '16/9', className, style, ...props }: CardImageProps) {\n return (\n <img\n data-slot=\"card-image\"\n className={cn('ddga-card__image', className)}\n style={\n {\n '--ddga-card-image-aspect': aspectRatio,\n ...style,\n } as React.CSSProperties\n }\n {...props}\n />\n );\n}\n\nfunction CardHeader({ asChild, className, ...props }: CardSectionProps) {\n const Comp = asChild ? SlotPrimitive.Slot : 'div';\n return <Comp data-slot=\"card-header\" className={cn('ddga-card__header', className)} {...props} />;\n}\n\n// Decorative (`aria-hidden`) by default; pass `aria-hidden={false}` when the icon is the sole label.\nfunction CardIcon({ asChild, featured, className, ...props }: CardIconProps) {\n const Comp = asChild ? SlotPrimitive.Slot : 'div';\n return (\n <Comp\n data-slot=\"card-icon\"\n aria-hidden\n className={cn('ddga-card__icon', featured && 'ddga-card__icon--featured', className)}\n {...props}\n />\n );\n}\n\nfunction CardTitle({ asChild, className, ...props }: CardTitleProps) {\n const Comp = asChild ? SlotPrimitive.Slot : 'h3';\n return <Comp data-slot=\"card-title\" className={cn('ddga-card__title', className)} {...props} />;\n}\n\nfunction CardDescription({ asChild, className, ...props }: CardDescriptionProps) {\n const Comp = asChild ? SlotPrimitive.Slot : 'p';\n return (\n <Comp\n data-slot=\"card-description\"\n className={cn('ddga-card__description', className)}\n {...props}\n />\n );\n}\n\nfunction CardContent({ asChild, className, ...props }: CardSectionProps) {\n const Comp = asChild ? SlotPrimitive.Slot : 'div';\n return (\n <Comp data-slot=\"card-content\" className={cn('ddga-card__content', className)} {...props} />\n );\n}\n\nfunction CardFooter({ asChild, className, ...props }: CardSectionProps) {\n const Comp = asChild ? SlotPrimitive.Slot : 'div';\n return <Comp data-slot=\"card-footer\" className={cn('ddga-card__footer', className)} {...props} />;\n}\n\n// The collapsible region of an Expandable card — reads the Card's expanded state\n// via context; `hidden` removes it from layout + a11y tree when collapsed.\nfunction CardExpandableContent({ asChild, className, ...props }: CardSectionProps) {\n const ctx = useContext(CardContext);\n const Comp = asChild ? SlotPrimitive.Slot : 'div';\n return (\n <Comp\n data-slot=\"card-expandable-content\"\n id={ctx?.contentId}\n hidden={ctx ? !ctx.expanded : undefined}\n className={cn('ddga-card__expandable-content', className)}\n {...props}\n />\n );\n}\n\nexport {\n Card,\n CardImage,\n CardIcon,\n CardHeader,\n CardTitle,\n CardDescription,\n CardContent,\n CardFooter,\n CardExpandableContent,\n cardVariants,\n};\nexport type {\n CardProps,\n CardImageProps,\n CardSectionProps,\n CardIconProps,\n CardTitleProps,\n CardDescriptionProps,\n};\n"]}
@@ -4,10 +4,10 @@
4
4
  var _chunkYS2JJ73Mcjs = require('./chunk-YS2JJ73M.cjs');
5
5
 
6
6
 
7
- var _chunkFQLVTLUIcjs = require('./chunk-FQLVTLUI.cjs');
7
+ var _chunkV6MXOJQ4cjs = require('./chunk-V6MXOJQ4.cjs');
8
8
 
9
9
 
10
- var _chunkV6MXOJQ4cjs = require('./chunk-V6MXOJQ4.cjs');
10
+ var _chunkFQLVTLUIcjs = require('./chunk-FQLVTLUI.cjs');
11
11
 
12
12
  // src/components/DropdownMenu/DropdownMenu.tsx
13
13
  var _react = require('react');
@@ -239,4 +239,4 @@ function DropdownMenuSubContent({ className, ...props }) {
239
239
 
240
240
 
241
241
  exports.dropdownMenuVariants = dropdownMenuVariants; exports.DropdownMenu = DropdownMenu; exports.DropdownMenuTrigger = DropdownMenuTrigger; exports.DropdownMenuContent = DropdownMenuContent; exports.DropdownMenuItem = DropdownMenuItem; exports.DropdownMenuCheckboxItem = DropdownMenuCheckboxItem; exports.DropdownMenuRadioGroup = DropdownMenuRadioGroup; exports.DropdownMenuRadioItem = DropdownMenuRadioItem; exports.DropdownMenuLabel = DropdownMenuLabel; exports.DropdownMenuSeparator = DropdownMenuSeparator; exports.DropdownMenuGroup = DropdownMenuGroup; exports.DropdownMenuSub = DropdownMenuSub; exports.DropdownMenuSubTrigger = DropdownMenuSubTrigger; exports.DropdownMenuSubContent = DropdownMenuSubContent;
242
- //# sourceMappingURL=chunk-DU4YQEIM.cjs.map
242
+ //# sourceMappingURL=chunk-H7V6VNFC.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-DU4YQEIM.cjs","../src/components/DropdownMenu/DropdownMenu.tsx"],"names":[],"mappings":"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","file":"/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-DU4YQEIM.cjs","sourcesContent":[null,"'use client';\n\nimport { createContext, useContext, useRef, type ReactNode, type Ref } from 'react';\nimport { DropdownMenu as DropdownMenuPrimitive } from 'radix-ui';\nimport { cva } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\nimport { Check, ChevronRight } from '../../internal/icons';\nimport { DgaContext } from '../../providers/DgaContext';\n\nconst dropdownMenuVariants = cva('ddga-dropdown-menu');\n\ntype TriggerElement = React.ElementRef<typeof DropdownMenuPrimitive.Trigger>;\n\nfunction composeRefs(...refs: Array<Ref<TriggerElement> | undefined>) {\n return (node: TriggerElement | null) => {\n for (const ref of refs) {\n if (typeof ref === 'function') ref(node);\n else if (ref) (ref as React.MutableRefObject<TriggerElement | null>).current = node;\n }\n };\n}\n\nconst DropdownMenuTriggerRefContext =\n createContext<React.MutableRefObject<TriggerElement | null> | null>(null);\n\ntype DropdownMenuProps = React.ComponentProps<typeof DropdownMenuPrimitive.Root>;\n\nfunction DropdownMenu(props: DropdownMenuProps) {\n const triggerRef = useRef<TriggerElement | null>(null);\n return (\n <DropdownMenuTriggerRefContext.Provider value={triggerRef}>\n <DropdownMenuPrimitive.Root {...props} />\n </DropdownMenuTriggerRefContext.Provider>\n );\n}\n\ntype DropdownMenuTriggerProps = React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>;\n\nfunction DropdownMenuTrigger({ ref, ...props }: DropdownMenuTriggerProps) {\n const triggerRef = useContext(DropdownMenuTriggerRefContext);\n return (\n <DropdownMenuPrimitive.Trigger\n ref={composeRefs(triggerRef ?? undefined, ref)}\n data-slot=\"dropdown-menu-trigger\"\n {...props}\n />\n );\n}\n\ntype DropdownMenuContentProps = React.ComponentProps<typeof DropdownMenuPrimitive.Content>;\n\nfunction DropdownMenuContent({\n className,\n sideOffset = 6,\n onCloseAutoFocus,\n onPointerDownOutside,\n onFocusOutside,\n onKeyDownCapture,\n onPointerDownCapture,\n ...props\n}: DropdownMenuContentProps) {\n // Radix Portal defaults to <body>, which doesn't inherit DgaProvider's\n // data-theme / CSS vars. Re-anchor at the provider's portal container so the\n // menu inherits theme and escapes any clipping/transform ancestor.\n const ctx = useContext(DgaContext);\n const triggerRef = useContext(DropdownMenuTriggerRefContext);\n const portalContainer = ctx?.portalEl ?? ctx?.rootEl ?? undefined;\n const dismissedByOutside = useRef(false);\n const lastInputKeyboard = useRef(false);\n\n return (\n <DropdownMenuPrimitive.Portal container={portalContainer}>\n <DropdownMenuPrimitive.Content\n data-slot=\"dropdown-menu-content\"\n sideOffset={sideOffset}\n className={cn(dropdownMenuVariants(), className)}\n {...props}\n onKeyDownCapture={(event) => {\n lastInputKeyboard.current = true;\n onKeyDownCapture?.(event);\n }}\n onPointerDownCapture={(event) => {\n lastInputKeyboard.current = false;\n onPointerDownCapture?.(event);\n }}\n onPointerDownOutside={(event) => {\n dismissedByOutside.current = true;\n onPointerDownOutside?.(event);\n }}\n onFocusOutside={(event) => {\n dismissedByOutside.current = true;\n onFocusOutside?.(event);\n }}\n onCloseAutoFocus={(event) => {\n onCloseAutoFocus?.(event);\n if (event.defaultPrevented) return;\n // An outside interaction should keep focus where the user clicked.\n if (dismissedByOutside.current) {\n dismissedByOutside.current = false;\n return;\n }\n // Radix restores trigger focus with a visible ring even after a mouse\n // selection (the browser's :focus-visible heuristic carries the menu's\n // keyboard focus state). Refocus the trigger ourselves and set\n // `focusVisible` explicitly from the real input modality — keyboard ⇒\n // ring, mouse ⇒ none — while keeping WAI-ARIA focus-return.\n event.preventDefault();\n triggerRef?.current?.focus({\n focusVisible: lastInputKeyboard.current,\n } as FocusOptions);\n }}\n />\n </DropdownMenuPrimitive.Portal>\n );\n}\n\ntype DropdownMenuItemProps = React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {\n /** Style as a destructive action (red text, red hover). House extension — not in SDGA Menu. */\n destructive?: boolean;\n /** Icon rendered before the label, sized to SDGA's 24px. */\n startIcon?: ReactNode;\n /** Trailing element (SDGA \"trail\"): a counter, icon, `<Tag>`, `<Switch>`, or `<Button>`.\n * Interactive trailing content must `stopPropagation()` on its own click (or set\n * `onSelect={(e) => e.preventDefault()}` on this item) — otherwise the click bubbles\n * to the row and closes the menu. */\n trailing?: ReactNode;\n};\n\nfunction DropdownMenuItem({\n className,\n destructive,\n startIcon,\n trailing,\n children,\n ...props\n}: DropdownMenuItemProps) {\n return (\n <DropdownMenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n data-destructive={destructive ? '' : undefined}\n className={cn('ddga-dropdown-menu__item', className)}\n {...props}\n >\n {startIcon ? (\n <span className=\"ddga-dropdown-menu__icon\" aria-hidden=\"true\">\n {startIcon}\n </span>\n ) : null}\n <span className=\"ddga-dropdown-menu__label\">{children}</span>\n {trailing ? <span className=\"ddga-dropdown-menu__trailing\">{trailing}</span> : null}\n </DropdownMenuPrimitive.Item>\n );\n}\n\ntype DropdownMenuCheckboxItemProps = React.ComponentProps<\n typeof DropdownMenuPrimitive.CheckboxItem\n>;\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n onSelect,\n ...props\n}: DropdownMenuCheckboxItemProps) {\n // Keep the menu open across toggles so consumers can flip several at once.\n // A consumer-passed onSelect owns the behavior (call preventDefault to keep this).\n const handleSelect =\n onSelect ??\n ((event: Event) => {\n event.preventDefault();\n });\n return (\n <DropdownMenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n className={cn('ddga-dropdown-menu__item', 'ddga-dropdown-menu__item--checkable', className)}\n onSelect={handleSelect}\n {...props}\n >\n <span className=\"ddga-dropdown-menu__label\">{children}</span>\n <span className=\"ddga-dropdown-menu__indicator\" aria-hidden=\"true\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Check className=\"ddga-dropdown-menu__indicator-icon\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n </DropdownMenuPrimitive.CheckboxItem>\n );\n}\n\ntype DropdownMenuRadioGroupProps = React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>;\n\nfunction DropdownMenuRadioGroup(props: DropdownMenuRadioGroupProps) {\n return <DropdownMenuPrimitive.RadioGroup data-slot=\"dropdown-menu-radio-group\" {...props} />;\n}\n\ntype DropdownMenuRadioItemProps = React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem>;\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n onSelect,\n ...props\n}: DropdownMenuRadioItemProps) {\n const handleSelect =\n onSelect ??\n ((event: Event) => {\n event.preventDefault();\n });\n return (\n <DropdownMenuPrimitive.RadioItem\n data-slot=\"dropdown-menu-radio-item\"\n className={cn('ddga-dropdown-menu__item', 'ddga-dropdown-menu__item--checkable', className)}\n onSelect={handleSelect}\n {...props}\n >\n <span className=\"ddga-dropdown-menu__label\">{children}</span>\n <span className=\"ddga-dropdown-menu__indicator\" aria-hidden=\"true\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Check className=\"ddga-dropdown-menu__indicator-icon\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n </DropdownMenuPrimitive.RadioItem>\n );\n}\n\ntype DropdownMenuLabelProps = React.ComponentProps<typeof DropdownMenuPrimitive.Label>;\n\nfunction DropdownMenuLabel({ className, ...props }: DropdownMenuLabelProps) {\n return (\n <DropdownMenuPrimitive.Label\n data-slot=\"dropdown-menu-label\"\n className={cn('ddga-dropdown-menu__group-label', className)}\n {...props}\n />\n );\n}\n\ntype DropdownMenuSeparatorProps = React.ComponentProps<typeof DropdownMenuPrimitive.Separator>;\n\nfunction DropdownMenuSeparator({ className, ...props }: DropdownMenuSeparatorProps) {\n return (\n <DropdownMenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn('ddga-dropdown-menu__separator', className)}\n {...props}\n />\n );\n}\n\ntype DropdownMenuGroupProps = React.ComponentProps<typeof DropdownMenuPrimitive.Group>;\n\nfunction DropdownMenuGroup(props: DropdownMenuGroupProps) {\n return <DropdownMenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />;\n}\n\ntype DropdownMenuSubProps = React.ComponentProps<typeof DropdownMenuPrimitive.Sub>;\n\nfunction DropdownMenuSub(props: DropdownMenuSubProps) {\n return <DropdownMenuPrimitive.Sub {...props} />;\n}\n\ntype DropdownMenuSubTriggerProps = React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {\n startIcon?: ReactNode;\n};\n\nfunction DropdownMenuSubTrigger({\n className,\n startIcon,\n children,\n ...props\n}: DropdownMenuSubTriggerProps) {\n return (\n <DropdownMenuPrimitive.SubTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n className={cn('ddga-dropdown-menu__item', 'ddga-dropdown-menu__item--sub', className)}\n {...props}\n >\n {startIcon ? (\n <span className=\"ddga-dropdown-menu__icon\" aria-hidden=\"true\">\n {startIcon}\n </span>\n ) : null}\n <span className=\"ddga-dropdown-menu__label\">{children}</span>\n <ChevronRight className=\"ddga-dropdown-menu__sub-chevron\" aria-hidden=\"true\" />\n </DropdownMenuPrimitive.SubTrigger>\n );\n}\n\ntype DropdownMenuSubContentProps = React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>;\n\nfunction DropdownMenuSubContent({ className, ...props }: DropdownMenuSubContentProps) {\n const ctx = useContext(DgaContext);\n const portalContainer = ctx?.portalEl ?? ctx?.rootEl ?? undefined;\n\n return (\n <DropdownMenuPrimitive.Portal container={portalContainer}>\n <DropdownMenuPrimitive.SubContent\n data-slot=\"dropdown-menu-sub-content\"\n className={cn(dropdownMenuVariants(), className)}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n );\n}\n\nexport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuGroup,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n dropdownMenuVariants,\n};\nexport type {\n DropdownMenuProps,\n DropdownMenuTriggerProps,\n DropdownMenuContentProps,\n DropdownMenuItemProps,\n DropdownMenuCheckboxItemProps,\n DropdownMenuRadioGroupProps,\n DropdownMenuRadioItemProps,\n DropdownMenuLabelProps,\n DropdownMenuSeparatorProps,\n DropdownMenuGroupProps,\n DropdownMenuSubProps,\n DropdownMenuSubTriggerProps,\n DropdownMenuSubContentProps,\n};\n"]}
1
+ {"version":3,"sources":["/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-H7V6VNFC.cjs","../src/components/DropdownMenu/DropdownMenu.tsx"],"names":[],"mappings":"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","file":"/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-H7V6VNFC.cjs","sourcesContent":[null,"'use client';\n\nimport { createContext, useContext, useRef, type ReactNode, type Ref } from 'react';\nimport { DropdownMenu as DropdownMenuPrimitive } from 'radix-ui';\nimport { cva } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\nimport { Check, ChevronRight } from '../../internal/icons';\nimport { DgaContext } from '../../providers/DgaContext';\n\nconst dropdownMenuVariants = cva('ddga-dropdown-menu');\n\ntype TriggerElement = React.ElementRef<typeof DropdownMenuPrimitive.Trigger>;\n\nfunction composeRefs(...refs: Array<Ref<TriggerElement> | undefined>) {\n return (node: TriggerElement | null) => {\n for (const ref of refs) {\n if (typeof ref === 'function') ref(node);\n else if (ref) (ref as React.MutableRefObject<TriggerElement | null>).current = node;\n }\n };\n}\n\nconst DropdownMenuTriggerRefContext =\n createContext<React.MutableRefObject<TriggerElement | null> | null>(null);\n\ntype DropdownMenuProps = React.ComponentProps<typeof DropdownMenuPrimitive.Root>;\n\nfunction DropdownMenu(props: DropdownMenuProps) {\n const triggerRef = useRef<TriggerElement | null>(null);\n return (\n <DropdownMenuTriggerRefContext.Provider value={triggerRef}>\n <DropdownMenuPrimitive.Root {...props} />\n </DropdownMenuTriggerRefContext.Provider>\n );\n}\n\ntype DropdownMenuTriggerProps = React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>;\n\nfunction DropdownMenuTrigger({ ref, ...props }: DropdownMenuTriggerProps) {\n const triggerRef = useContext(DropdownMenuTriggerRefContext);\n return (\n <DropdownMenuPrimitive.Trigger\n ref={composeRefs(triggerRef ?? undefined, ref)}\n data-slot=\"dropdown-menu-trigger\"\n {...props}\n />\n );\n}\n\ntype DropdownMenuContentProps = React.ComponentProps<typeof DropdownMenuPrimitive.Content>;\n\nfunction DropdownMenuContent({\n className,\n sideOffset = 6,\n onCloseAutoFocus,\n onPointerDownOutside,\n onFocusOutside,\n onKeyDownCapture,\n onPointerDownCapture,\n ...props\n}: DropdownMenuContentProps) {\n // Radix Portal defaults to <body>, which doesn't inherit DgaProvider's\n // data-theme / CSS vars. Re-anchor at the provider's portal container so the\n // menu inherits theme and escapes any clipping/transform ancestor.\n const ctx = useContext(DgaContext);\n const triggerRef = useContext(DropdownMenuTriggerRefContext);\n const portalContainer = ctx?.portalEl ?? ctx?.rootEl ?? undefined;\n const dismissedByOutside = useRef(false);\n const lastInputKeyboard = useRef(false);\n\n return (\n <DropdownMenuPrimitive.Portal container={portalContainer}>\n <DropdownMenuPrimitive.Content\n data-slot=\"dropdown-menu-content\"\n sideOffset={sideOffset}\n className={cn(dropdownMenuVariants(), className)}\n {...props}\n onKeyDownCapture={(event) => {\n lastInputKeyboard.current = true;\n onKeyDownCapture?.(event);\n }}\n onPointerDownCapture={(event) => {\n lastInputKeyboard.current = false;\n onPointerDownCapture?.(event);\n }}\n onPointerDownOutside={(event) => {\n dismissedByOutside.current = true;\n onPointerDownOutside?.(event);\n }}\n onFocusOutside={(event) => {\n dismissedByOutside.current = true;\n onFocusOutside?.(event);\n }}\n onCloseAutoFocus={(event) => {\n onCloseAutoFocus?.(event);\n if (event.defaultPrevented) return;\n // An outside interaction should keep focus where the user clicked.\n if (dismissedByOutside.current) {\n dismissedByOutside.current = false;\n return;\n }\n // Radix restores trigger focus with a visible ring even after a mouse\n // selection (the browser's :focus-visible heuristic carries the menu's\n // keyboard focus state). Refocus the trigger ourselves and set\n // `focusVisible` explicitly from the real input modality — keyboard ⇒\n // ring, mouse ⇒ none — while keeping WAI-ARIA focus-return.\n event.preventDefault();\n triggerRef?.current?.focus({\n focusVisible: lastInputKeyboard.current,\n } as FocusOptions);\n }}\n />\n </DropdownMenuPrimitive.Portal>\n );\n}\n\ntype DropdownMenuItemProps = React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {\n /** Style as a destructive action (red text, red hover). House extension — not in SDGA Menu. */\n destructive?: boolean;\n /** Icon rendered before the label, sized to SDGA's 24px. */\n startIcon?: ReactNode;\n /** Trailing element (SDGA \"trail\"): a counter, icon, `<Tag>`, `<Switch>`, or `<Button>`.\n * Interactive trailing content must `stopPropagation()` on its own click (or set\n * `onSelect={(e) => e.preventDefault()}` on this item) — otherwise the click bubbles\n * to the row and closes the menu. */\n trailing?: ReactNode;\n};\n\nfunction DropdownMenuItem({\n className,\n destructive,\n startIcon,\n trailing,\n children,\n ...props\n}: DropdownMenuItemProps) {\n return (\n <DropdownMenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n data-destructive={destructive ? '' : undefined}\n className={cn('ddga-dropdown-menu__item', className)}\n {...props}\n >\n {startIcon ? (\n <span className=\"ddga-dropdown-menu__icon\" aria-hidden=\"true\">\n {startIcon}\n </span>\n ) : null}\n <span className=\"ddga-dropdown-menu__label\">{children}</span>\n {trailing ? <span className=\"ddga-dropdown-menu__trailing\">{trailing}</span> : null}\n </DropdownMenuPrimitive.Item>\n );\n}\n\ntype DropdownMenuCheckboxItemProps = React.ComponentProps<\n typeof DropdownMenuPrimitive.CheckboxItem\n>;\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n onSelect,\n ...props\n}: DropdownMenuCheckboxItemProps) {\n // Keep the menu open across toggles so consumers can flip several at once.\n // A consumer-passed onSelect owns the behavior (call preventDefault to keep this).\n const handleSelect =\n onSelect ??\n ((event: Event) => {\n event.preventDefault();\n });\n return (\n <DropdownMenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n className={cn('ddga-dropdown-menu__item', 'ddga-dropdown-menu__item--checkable', className)}\n onSelect={handleSelect}\n {...props}\n >\n <span className=\"ddga-dropdown-menu__label\">{children}</span>\n <span className=\"ddga-dropdown-menu__indicator\" aria-hidden=\"true\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Check className=\"ddga-dropdown-menu__indicator-icon\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n </DropdownMenuPrimitive.CheckboxItem>\n );\n}\n\ntype DropdownMenuRadioGroupProps = React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>;\n\nfunction DropdownMenuRadioGroup(props: DropdownMenuRadioGroupProps) {\n return <DropdownMenuPrimitive.RadioGroup data-slot=\"dropdown-menu-radio-group\" {...props} />;\n}\n\ntype DropdownMenuRadioItemProps = React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem>;\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n onSelect,\n ...props\n}: DropdownMenuRadioItemProps) {\n const handleSelect =\n onSelect ??\n ((event: Event) => {\n event.preventDefault();\n });\n return (\n <DropdownMenuPrimitive.RadioItem\n data-slot=\"dropdown-menu-radio-item\"\n className={cn('ddga-dropdown-menu__item', 'ddga-dropdown-menu__item--checkable', className)}\n onSelect={handleSelect}\n {...props}\n >\n <span className=\"ddga-dropdown-menu__label\">{children}</span>\n <span className=\"ddga-dropdown-menu__indicator\" aria-hidden=\"true\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Check className=\"ddga-dropdown-menu__indicator-icon\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n </DropdownMenuPrimitive.RadioItem>\n );\n}\n\ntype DropdownMenuLabelProps = React.ComponentProps<typeof DropdownMenuPrimitive.Label>;\n\nfunction DropdownMenuLabel({ className, ...props }: DropdownMenuLabelProps) {\n return (\n <DropdownMenuPrimitive.Label\n data-slot=\"dropdown-menu-label\"\n className={cn('ddga-dropdown-menu__group-label', className)}\n {...props}\n />\n );\n}\n\ntype DropdownMenuSeparatorProps = React.ComponentProps<typeof DropdownMenuPrimitive.Separator>;\n\nfunction DropdownMenuSeparator({ className, ...props }: DropdownMenuSeparatorProps) {\n return (\n <DropdownMenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn('ddga-dropdown-menu__separator', className)}\n {...props}\n />\n );\n}\n\ntype DropdownMenuGroupProps = React.ComponentProps<typeof DropdownMenuPrimitive.Group>;\n\nfunction DropdownMenuGroup(props: DropdownMenuGroupProps) {\n return <DropdownMenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />;\n}\n\ntype DropdownMenuSubProps = React.ComponentProps<typeof DropdownMenuPrimitive.Sub>;\n\nfunction DropdownMenuSub(props: DropdownMenuSubProps) {\n return <DropdownMenuPrimitive.Sub {...props} />;\n}\n\ntype DropdownMenuSubTriggerProps = React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {\n startIcon?: ReactNode;\n};\n\nfunction DropdownMenuSubTrigger({\n className,\n startIcon,\n children,\n ...props\n}: DropdownMenuSubTriggerProps) {\n return (\n <DropdownMenuPrimitive.SubTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n className={cn('ddga-dropdown-menu__item', 'ddga-dropdown-menu__item--sub', className)}\n {...props}\n >\n {startIcon ? (\n <span className=\"ddga-dropdown-menu__icon\" aria-hidden=\"true\">\n {startIcon}\n </span>\n ) : null}\n <span className=\"ddga-dropdown-menu__label\">{children}</span>\n <ChevronRight className=\"ddga-dropdown-menu__sub-chevron\" aria-hidden=\"true\" />\n </DropdownMenuPrimitive.SubTrigger>\n );\n}\n\ntype DropdownMenuSubContentProps = React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>;\n\nfunction DropdownMenuSubContent({ className, ...props }: DropdownMenuSubContentProps) {\n const ctx = useContext(DgaContext);\n const portalContainer = ctx?.portalEl ?? ctx?.rootEl ?? undefined;\n\n return (\n <DropdownMenuPrimitive.Portal container={portalContainer}>\n <DropdownMenuPrimitive.SubContent\n data-slot=\"dropdown-menu-sub-content\"\n className={cn(dropdownMenuVariants(), className)}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n );\n}\n\nexport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuGroup,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n dropdownMenuVariants,\n};\nexport type {\n DropdownMenuProps,\n DropdownMenuTriggerProps,\n DropdownMenuContentProps,\n DropdownMenuItemProps,\n DropdownMenuCheckboxItemProps,\n DropdownMenuRadioGroupProps,\n DropdownMenuRadioItemProps,\n DropdownMenuLabelProps,\n DropdownMenuSeparatorProps,\n DropdownMenuGroupProps,\n DropdownMenuSubProps,\n DropdownMenuSubTriggerProps,\n DropdownMenuSubContentProps,\n};\n"]}
@@ -1,24 +1,24 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
+ var _chunk5NENDJOMcjs = require('./chunk-5NENDJOM.cjs');
3
4
 
4
5
 
6
+ var _chunkJCOUZVG3cjs = require('./chunk-JCOUZVG3.cjs');
5
7
 
6
- var _chunkYS2JJ73Mcjs = require('./chunk-YS2JJ73M.cjs');
7
8
 
8
9
 
9
- var _chunk5NENDJOMcjs = require('./chunk-5NENDJOM.cjs');
10
10
 
11
11
 
12
- var _chunkJCOUZVG3cjs = require('./chunk-JCOUZVG3.cjs');
12
+ var _chunkYS2JJ73Mcjs = require('./chunk-YS2JJ73M.cjs');
13
13
 
14
14
 
15
- var _chunk3UT22WQMcjs = require('./chunk-3UT22WQM.cjs');
15
+ var _chunkV6MXOJQ4cjs = require('./chunk-V6MXOJQ4.cjs');
16
16
 
17
17
 
18
- var _chunkNH3KGR65cjs = require('./chunk-NH3KGR65.cjs');
18
+ var _chunk3UT22WQMcjs = require('./chunk-3UT22WQM.cjs');
19
19
 
20
20
 
21
- var _chunkV6MXOJQ4cjs = require('./chunk-V6MXOJQ4.cjs');
21
+ var _chunkNH3KGR65cjs = require('./chunk-NH3KGR65.cjs');
22
22
 
23
23
  // src/components/FileUpload/FileUpload.tsx
24
24
  var _react = require('react');
@@ -269,4 +269,4 @@ function FileUpload({
269
269
 
270
270
 
271
271
  exports.FileUpload = FileUpload;
272
- //# sourceMappingURL=chunk-NGDKAG2O.cjs.map
272
+ //# sourceMappingURL=chunk-HQABMNYD.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-NGDKAG2O.cjs","../src/components/FileUpload/FileUpload.tsx"],"names":[],"mappings":"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","file":"/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-NGDKAG2O.cjs","sourcesContent":[null,"'use client';\n\nimport { useRef, useState, type ReactNode } from 'react';\nimport { cn } from '../../utils/cn';\nimport { useFieldA11y, FieldMessage } from '../../field';\nimport { Button } from '../Button';\nimport { Spinner } from '../Spinner';\nimport { Upload, Check, Exclamation, Close } from '../../internal/icons';\n\ntype FileStatus = 'uploading' | 'success' | 'error';\n\n/** Reason codes attached to a rejected file. */\ntype RejectionCode = 'file-too-large' | 'file-invalid-type' | 'too-many-files';\n\n/**\n * A controlled file entry. The consumer owns this array and is responsible for\n * performing the actual upload, updating `status`, and assigning a stable `id`\n * (used as the React key and the `onRemove` target).\n */\ninterface UploadFile {\n /** Stable, consumer-assigned id. Used as the React key and remove target. */\n id: string;\n /** The native File. */\n file: File;\n /** Defaults to `'uploading'`. Drives the per-row indicator. */\n status?: FileStatus;\n /** Shown in the row's second line (red) while `status === 'error'`. */\n error?: string;\n}\n\ninterface FileRejection {\n file: File;\n errors: RejectionCode[];\n}\n\ninterface FileUploadProps extends Omit<\n React.ComponentProps<'input'>,\n | 'onChange'\n | 'type'\n | 'accept'\n | 'multiple'\n | 'required'\n | 'disabled'\n | 'className'\n | 'id'\n | 'children'\n | 'title'\n> {\n variant?: 'dropzone' | 'button';\n\n /** Controlled list of files to render. The consumer is the source of truth. */\n files: UploadFile[];\n /** Called with the files that passed validation. The consumer wraps each in\n * an {@link UploadFile} (assigning an `id`) and starts the upload. */\n onFilesAdded: (accepted: File[]) => void;\n /** Called with files that failed validation. Never enter `files`. */\n onFilesRejected?: (rejections: FileRejection[]) => void;\n /** Per-row remove handler. Omit to hide the remove button. */\n onRemove?: (id: string) => void;\n\n /** Native `accept` string (e.g. `'image/*,.pdf'`). Also drives validation. */\n accept?: string;\n /** Maximum size per file, in bytes. */\n maxSize?: number;\n /** Maximum total files (existing + incoming). When `multiple` is false this\n * is forced to 1. */\n maxFiles?: number;\n /** Allow selecting/dropping more than one file. Defaults to true. */\n multiple?: boolean;\n /** Disables the drop zone / button and the picker. */\n disabled?: boolean;\n /** Marks the field required: renders the asterisk and sets the input's\n * `required` attribute. */\n required?: boolean;\n\n /** Visible field label, auto-associated to the input. */\n label?: ReactNode;\n title?: ReactNode;\n description?: ReactNode;\n buttonLabel?: ReactNode;\n /** Message shown below the field when `error` is true. */\n errorMessage?: ReactNode;\n /** Marks the field invalid: sets `aria-invalid` and error styling. */\n error?: boolean;\n\n /** Accessible label for the per-row remove button. Defaults to `'Remove'`. */\n removeLabel?: string;\n\n id?: string;\n className?: string;\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n}\n\nfunction matchesAccept(file: File, accept?: string): boolean {\n if (!accept) return true;\n const tokens = accept\n .split(',')\n .map((t) => t.trim().toLowerCase())\n .filter(Boolean);\n if (tokens.length === 0) return true;\n\n const name = file.name.toLowerCase();\n const type = file.type.toLowerCase();\n\n return tokens.some((token) => {\n if (token.startsWith('.')) return name.endsWith(token);\n if (token.endsWith('/*')) return type.startsWith(token.slice(0, token.indexOf('/') + 1));\n return type === token;\n });\n}\n\ninterface ValidationConfig {\n accept?: string;\n maxSize?: number;\n maxFiles?: number;\n /** Files already in the list — counts against `maxFiles`. */\n currentCount: number;\n}\n\nfunction splitFiles(incoming: File[], config: ValidationConfig) {\n const { accept, maxSize, maxFiles, currentCount } = config;\n const accepted: File[] = [];\n const rejections: FileRejection[] = [];\n\n for (const file of incoming) {\n const errors: RejectionCode[] = [];\n if (!matchesAccept(file, accept)) errors.push('file-invalid-type');\n if (maxSize != null && file.size > maxSize) errors.push('file-too-large');\n\n if (errors.length > 0) {\n rejections.push({ file, errors });\n continue;\n }\n // Count last: only an otherwise-valid file consumes a slot.\n if (maxFiles != null && currentCount + accepted.length >= maxFiles) {\n rejections.push({ file, errors: ['too-many-files'] });\n continue;\n }\n accepted.push(file);\n }\n\n return { accepted, rejections };\n}\n\nfunction FileRow({\n item,\n onRemove,\n removeLabel,\n}: {\n item: UploadFile;\n onRemove?: (id: string) => void;\n removeLabel: string;\n}) {\n const status = item.status ?? 'uploading';\n return (\n <li\n data-slot=\"file-upload-item\"\n data-status={status}\n className={cn(\n 'ddga-file-upload__file',\n status === 'error' && 'ddga-file-upload__file--error',\n )}\n >\n <div className=\"ddga-file-upload__file-main\">\n {status === 'uploading' ? (\n <span className=\"ddga-file-upload__file-indicator ddga-file-upload__file-indicator--loading\">\n <Spinner aria-label={`Uploading ${item.file.name}`} />\n </span>\n ) : (\n <span\n aria-hidden=\"true\"\n className={cn(\n 'ddga-file-upload__file-indicator',\n `ddga-file-upload__file-indicator--${status}`,\n )}\n >\n {status === 'success' ? <Check /> : <Exclamation />}\n </span>\n )}\n\n <span className=\"ddga-file-upload__file-name\" dir=\"auto\" title={item.file.name}>\n {item.file.name}\n </span>\n\n {onRemove && (\n <button\n type=\"button\"\n className=\"ddga-file-upload__file-remove\"\n aria-label={`${removeLabel}: ${item.file.name}`}\n onClick={() => onRemove(item.id)}\n >\n <Close aria-hidden=\"true\" />\n </button>\n )}\n </div>\n\n {status === 'error' && item.error && (\n <div className=\"ddga-file-upload__file-error-row\">\n <span role=\"alert\" className=\"ddga-file-upload__file-error\">\n {item.error}\n </span>\n </div>\n )}\n </li>\n );\n}\n\nfunction FileUpload({\n variant = 'dropzone',\n files,\n onFilesAdded,\n onFilesRejected,\n onRemove,\n accept,\n maxSize,\n maxFiles,\n multiple = true,\n disabled = false,\n required,\n label,\n title = 'Drag and drop files here to upload',\n description,\n buttonLabel = 'Browse Files',\n errorMessage,\n error,\n removeLabel = 'Remove',\n id: externalId,\n className,\n ...props\n}: FileUploadProps) {\n const inputRef = useRef<HTMLInputElement>(null);\n const [isDragging, setIsDragging] = useState(false);\n\n const { fieldId, errorId, helperId, hasErrorMessage, controlProps } = useFieldA11y({\n name: 'FileUpload',\n id: externalId,\n label,\n error,\n errorMessage,\n helperText: description,\n 'aria-label': props['aria-label'],\n 'aria-labelledby': props['aria-labelledby'],\n });\n\n const effectiveMaxFiles = multiple ? maxFiles : 1;\n\n function process(incoming: File[]) {\n if (disabled || incoming.length === 0) return;\n const { accepted, rejections } = splitFiles(incoming, {\n accept,\n maxSize,\n maxFiles: effectiveMaxFiles,\n currentCount: files.length,\n });\n if (accepted.length > 0) onFilesAdded(accepted);\n if (rejections.length > 0) onFilesRejected?.(rejections);\n }\n\n function openPicker() {\n if (!disabled) inputRef.current?.click();\n }\n\n function handleInputChange(event: React.ChangeEvent<HTMLInputElement>) {\n process(Array.from(event.target.files ?? []));\n // Reset so re-selecting the same file re-fires change.\n event.target.value = '';\n }\n\n function handleDrop(event: React.DragEvent<HTMLDivElement>) {\n event.preventDefault();\n setIsDragging(false);\n if (disabled) return;\n process(Array.from(event.dataTransfer.files));\n }\n\n function handleDragOver(event: React.DragEvent<HTMLDivElement>) {\n event.preventDefault();\n if (!disabled) setIsDragging(true);\n }\n\n function handleDragLeave(event: React.DragEvent<HTMLDivElement>) {\n // Ignore dragleave bubbling from descendants.\n if (!event.currentTarget.contains(event.relatedTarget as Node | null)) {\n setIsDragging(false);\n }\n }\n\n const labelNode = label && (\n <label htmlFor={fieldId} className=\"ddga-file-upload__label\">\n {required && (\n <span aria-hidden=\"true\" className=\"ddga-file-upload__required\">\n *\n </span>\n )}\n {label}\n </label>\n );\n\n const descriptionNode = description && (\n <span id={helperId} className=\"ddga-file-upload__description\">\n {description}\n </span>\n );\n\n const fileInput = (\n <input\n {...props}\n {...controlProps}\n ref={inputRef}\n type=\"file\"\n tabIndex={-1}\n className=\"ddga-file-upload__input\"\n accept={accept}\n multiple={multiple}\n disabled={disabled}\n required={required}\n onChange={handleInputChange}\n // Guard the openPicker() recursion: the programmatic input.click() would\n // bubble back to the dropzone's onClick.\n onClick={(event) => event.stopPropagation()}\n data-slot=\"file-upload-input\"\n />\n );\n\n // SDGA Single: the file row replaces the trigger once the one file is chosen.\n const showTrigger = variant === 'dropzone' || multiple || files.length === 0;\n\n return (\n <div\n data-slot=\"file-upload-field\"\n data-variant={variant}\n className={cn('ddga-field', 'ddga-file-upload', className)}\n >\n {variant === 'dropzone' ? (\n <>\n {labelNode}\n <div\n data-slot=\"file-upload-dropzone\"\n className=\"ddga-file-upload__dropzone\"\n data-dragging={isDragging || undefined}\n data-disabled={disabled || undefined}\n aria-disabled={disabled || undefined}\n onClick={openPicker}\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n onDrop={handleDrop}\n >\n <svg className=\"ddga-file-upload__border\" aria-hidden=\"true\" focusable=\"false\">\n <rect width=\"100%\" height=\"100%\" rx=\"4\" ry=\"4\" />\n </svg>\n <Upload className=\"ddga-file-upload__icon\" aria-hidden=\"true\" />\n <div className=\"ddga-file-upload__copy\">\n <span className=\"ddga-file-upload__title\">{title}</span>\n {descriptionNode}\n </div>\n <Button\n type=\"button\"\n variant=\"secondary\"\n size=\"md\"\n disabled={disabled}\n className=\"ddga-file-upload__browse\"\n onClick={(event) => {\n event.stopPropagation();\n openPicker();\n }}\n >\n {buttonLabel}\n </Button>\n {fileInput}\n </div>\n </>\n ) : (\n <>\n <div className=\"ddga-file-upload__header\">\n {labelNode}\n {descriptionNode}\n </div>\n {showTrigger && (\n <Button\n type=\"button\"\n variant=\"black\"\n size=\"md\"\n disabled={disabled}\n className=\"ddga-file-upload__browse\"\n onClick={openPicker}\n >\n {buttonLabel}\n </Button>\n )}\n {fileInput}\n </>\n )}\n\n {hasErrorMessage && (\n <FieldMessage id={errorId} variant=\"error\">\n {errorMessage}\n </FieldMessage>\n )}\n\n {files.length > 0 && (\n <ul data-slot=\"file-upload-list\" className=\"ddga-file-upload__list\">\n {files.map((item) => (\n <FileRow key={item.id} item={item} onRemove={onRemove} removeLabel={removeLabel} />\n ))}\n </ul>\n )}\n </div>\n );\n}\n\nexport { FileUpload };\nexport type { FileUploadProps, UploadFile, FileRejection, FileStatus, RejectionCode };\n"]}
1
+ {"version":3,"sources":["/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-HQABMNYD.cjs","../src/components/FileUpload/FileUpload.tsx"],"names":[],"mappings":"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","file":"/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-HQABMNYD.cjs","sourcesContent":[null,"'use client';\n\nimport { useRef, useState, type ReactNode } from 'react';\nimport { cn } from '../../utils/cn';\nimport { useFieldA11y, FieldMessage } from '../../field';\nimport { Button } from '../Button';\nimport { Spinner } from '../Spinner';\nimport { Upload, Check, Exclamation, Close } from '../../internal/icons';\n\ntype FileStatus = 'uploading' | 'success' | 'error';\n\n/** Reason codes attached to a rejected file. */\ntype RejectionCode = 'file-too-large' | 'file-invalid-type' | 'too-many-files';\n\n/**\n * A controlled file entry. The consumer owns this array and is responsible for\n * performing the actual upload, updating `status`, and assigning a stable `id`\n * (used as the React key and the `onRemove` target).\n */\ninterface UploadFile {\n /** Stable, consumer-assigned id. Used as the React key and remove target. */\n id: string;\n /** The native File. */\n file: File;\n /** Defaults to `'uploading'`. Drives the per-row indicator. */\n status?: FileStatus;\n /** Shown in the row's second line (red) while `status === 'error'`. */\n error?: string;\n}\n\ninterface FileRejection {\n file: File;\n errors: RejectionCode[];\n}\n\ninterface FileUploadProps extends Omit<\n React.ComponentProps<'input'>,\n | 'onChange'\n | 'type'\n | 'accept'\n | 'multiple'\n | 'required'\n | 'disabled'\n | 'className'\n | 'id'\n | 'children'\n | 'title'\n> {\n variant?: 'dropzone' | 'button';\n\n /** Controlled list of files to render. The consumer is the source of truth. */\n files: UploadFile[];\n /** Called with the files that passed validation. The consumer wraps each in\n * an {@link UploadFile} (assigning an `id`) and starts the upload. */\n onFilesAdded: (accepted: File[]) => void;\n /** Called with files that failed validation. Never enter `files`. */\n onFilesRejected?: (rejections: FileRejection[]) => void;\n /** Per-row remove handler. Omit to hide the remove button. */\n onRemove?: (id: string) => void;\n\n /** Native `accept` string (e.g. `'image/*,.pdf'`). Also drives validation. */\n accept?: string;\n /** Maximum size per file, in bytes. */\n maxSize?: number;\n /** Maximum total files (existing + incoming). When `multiple` is false this\n * is forced to 1. */\n maxFiles?: number;\n /** Allow selecting/dropping more than one file. Defaults to true. */\n multiple?: boolean;\n /** Disables the drop zone / button and the picker. */\n disabled?: boolean;\n /** Marks the field required: renders the asterisk and sets the input's\n * `required` attribute. */\n required?: boolean;\n\n /** Visible field label, auto-associated to the input. */\n label?: ReactNode;\n title?: ReactNode;\n description?: ReactNode;\n buttonLabel?: ReactNode;\n /** Message shown below the field when `error` is true. */\n errorMessage?: ReactNode;\n /** Marks the field invalid: sets `aria-invalid` and error styling. */\n error?: boolean;\n\n /** Accessible label for the per-row remove button. Defaults to `'Remove'`. */\n removeLabel?: string;\n\n id?: string;\n className?: string;\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n}\n\nfunction matchesAccept(file: File, accept?: string): boolean {\n if (!accept) return true;\n const tokens = accept\n .split(',')\n .map((t) => t.trim().toLowerCase())\n .filter(Boolean);\n if (tokens.length === 0) return true;\n\n const name = file.name.toLowerCase();\n const type = file.type.toLowerCase();\n\n return tokens.some((token) => {\n if (token.startsWith('.')) return name.endsWith(token);\n if (token.endsWith('/*')) return type.startsWith(token.slice(0, token.indexOf('/') + 1));\n return type === token;\n });\n}\n\ninterface ValidationConfig {\n accept?: string;\n maxSize?: number;\n maxFiles?: number;\n /** Files already in the list — counts against `maxFiles`. */\n currentCount: number;\n}\n\nfunction splitFiles(incoming: File[], config: ValidationConfig) {\n const { accept, maxSize, maxFiles, currentCount } = config;\n const accepted: File[] = [];\n const rejections: FileRejection[] = [];\n\n for (const file of incoming) {\n const errors: RejectionCode[] = [];\n if (!matchesAccept(file, accept)) errors.push('file-invalid-type');\n if (maxSize != null && file.size > maxSize) errors.push('file-too-large');\n\n if (errors.length > 0) {\n rejections.push({ file, errors });\n continue;\n }\n // Count last: only an otherwise-valid file consumes a slot.\n if (maxFiles != null && currentCount + accepted.length >= maxFiles) {\n rejections.push({ file, errors: ['too-many-files'] });\n continue;\n }\n accepted.push(file);\n }\n\n return { accepted, rejections };\n}\n\nfunction FileRow({\n item,\n onRemove,\n removeLabel,\n}: {\n item: UploadFile;\n onRemove?: (id: string) => void;\n removeLabel: string;\n}) {\n const status = item.status ?? 'uploading';\n return (\n <li\n data-slot=\"file-upload-item\"\n data-status={status}\n className={cn(\n 'ddga-file-upload__file',\n status === 'error' && 'ddga-file-upload__file--error',\n )}\n >\n <div className=\"ddga-file-upload__file-main\">\n {status === 'uploading' ? (\n <span className=\"ddga-file-upload__file-indicator ddga-file-upload__file-indicator--loading\">\n <Spinner aria-label={`Uploading ${item.file.name}`} />\n </span>\n ) : (\n <span\n aria-hidden=\"true\"\n className={cn(\n 'ddga-file-upload__file-indicator',\n `ddga-file-upload__file-indicator--${status}`,\n )}\n >\n {status === 'success' ? <Check /> : <Exclamation />}\n </span>\n )}\n\n <span className=\"ddga-file-upload__file-name\" dir=\"auto\" title={item.file.name}>\n {item.file.name}\n </span>\n\n {onRemove && (\n <button\n type=\"button\"\n className=\"ddga-file-upload__file-remove\"\n aria-label={`${removeLabel}: ${item.file.name}`}\n onClick={() => onRemove(item.id)}\n >\n <Close aria-hidden=\"true\" />\n </button>\n )}\n </div>\n\n {status === 'error' && item.error && (\n <div className=\"ddga-file-upload__file-error-row\">\n <span role=\"alert\" className=\"ddga-file-upload__file-error\">\n {item.error}\n </span>\n </div>\n )}\n </li>\n );\n}\n\nfunction FileUpload({\n variant = 'dropzone',\n files,\n onFilesAdded,\n onFilesRejected,\n onRemove,\n accept,\n maxSize,\n maxFiles,\n multiple = true,\n disabled = false,\n required,\n label,\n title = 'Drag and drop files here to upload',\n description,\n buttonLabel = 'Browse Files',\n errorMessage,\n error,\n removeLabel = 'Remove',\n id: externalId,\n className,\n ...props\n}: FileUploadProps) {\n const inputRef = useRef<HTMLInputElement>(null);\n const [isDragging, setIsDragging] = useState(false);\n\n const { fieldId, errorId, helperId, hasErrorMessage, controlProps } = useFieldA11y({\n name: 'FileUpload',\n id: externalId,\n label,\n error,\n errorMessage,\n helperText: description,\n 'aria-label': props['aria-label'],\n 'aria-labelledby': props['aria-labelledby'],\n });\n\n const effectiveMaxFiles = multiple ? maxFiles : 1;\n\n function process(incoming: File[]) {\n if (disabled || incoming.length === 0) return;\n const { accepted, rejections } = splitFiles(incoming, {\n accept,\n maxSize,\n maxFiles: effectiveMaxFiles,\n currentCount: files.length,\n });\n if (accepted.length > 0) onFilesAdded(accepted);\n if (rejections.length > 0) onFilesRejected?.(rejections);\n }\n\n function openPicker() {\n if (!disabled) inputRef.current?.click();\n }\n\n function handleInputChange(event: React.ChangeEvent<HTMLInputElement>) {\n process(Array.from(event.target.files ?? []));\n // Reset so re-selecting the same file re-fires change.\n event.target.value = '';\n }\n\n function handleDrop(event: React.DragEvent<HTMLDivElement>) {\n event.preventDefault();\n setIsDragging(false);\n if (disabled) return;\n process(Array.from(event.dataTransfer.files));\n }\n\n function handleDragOver(event: React.DragEvent<HTMLDivElement>) {\n event.preventDefault();\n if (!disabled) setIsDragging(true);\n }\n\n function handleDragLeave(event: React.DragEvent<HTMLDivElement>) {\n // Ignore dragleave bubbling from descendants.\n if (!event.currentTarget.contains(event.relatedTarget as Node | null)) {\n setIsDragging(false);\n }\n }\n\n const labelNode = label && (\n <label htmlFor={fieldId} className=\"ddga-file-upload__label\">\n {required && (\n <span aria-hidden=\"true\" className=\"ddga-file-upload__required\">\n *\n </span>\n )}\n {label}\n </label>\n );\n\n const descriptionNode = description && (\n <span id={helperId} className=\"ddga-file-upload__description\">\n {description}\n </span>\n );\n\n const fileInput = (\n <input\n {...props}\n {...controlProps}\n ref={inputRef}\n type=\"file\"\n tabIndex={-1}\n className=\"ddga-file-upload__input\"\n accept={accept}\n multiple={multiple}\n disabled={disabled}\n required={required}\n onChange={handleInputChange}\n // Guard the openPicker() recursion: the programmatic input.click() would\n // bubble back to the dropzone's onClick.\n onClick={(event) => event.stopPropagation()}\n data-slot=\"file-upload-input\"\n />\n );\n\n // SDGA Single: the file row replaces the trigger once the one file is chosen.\n const showTrigger = variant === 'dropzone' || multiple || files.length === 0;\n\n return (\n <div\n data-slot=\"file-upload-field\"\n data-variant={variant}\n className={cn('ddga-field', 'ddga-file-upload', className)}\n >\n {variant === 'dropzone' ? (\n <>\n {labelNode}\n <div\n data-slot=\"file-upload-dropzone\"\n className=\"ddga-file-upload__dropzone\"\n data-dragging={isDragging || undefined}\n data-disabled={disabled || undefined}\n aria-disabled={disabled || undefined}\n onClick={openPicker}\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n onDrop={handleDrop}\n >\n <svg className=\"ddga-file-upload__border\" aria-hidden=\"true\" focusable=\"false\">\n <rect width=\"100%\" height=\"100%\" rx=\"4\" ry=\"4\" />\n </svg>\n <Upload className=\"ddga-file-upload__icon\" aria-hidden=\"true\" />\n <div className=\"ddga-file-upload__copy\">\n <span className=\"ddga-file-upload__title\">{title}</span>\n {descriptionNode}\n </div>\n <Button\n type=\"button\"\n variant=\"secondary\"\n size=\"md\"\n disabled={disabled}\n className=\"ddga-file-upload__browse\"\n onClick={(event) => {\n event.stopPropagation();\n openPicker();\n }}\n >\n {buttonLabel}\n </Button>\n {fileInput}\n </div>\n </>\n ) : (\n <>\n <div className=\"ddga-file-upload__header\">\n {labelNode}\n {descriptionNode}\n </div>\n {showTrigger && (\n <Button\n type=\"button\"\n variant=\"black\"\n size=\"md\"\n disabled={disabled}\n className=\"ddga-file-upload__browse\"\n onClick={openPicker}\n >\n {buttonLabel}\n </Button>\n )}\n {fileInput}\n </>\n )}\n\n {hasErrorMessage && (\n <FieldMessage id={errorId} variant=\"error\">\n {errorMessage}\n </FieldMessage>\n )}\n\n {files.length > 0 && (\n <ul data-slot=\"file-upload-list\" className=\"ddga-file-upload__list\">\n {files.map((item) => (\n <FileRow key={item.id} item={item} onRemove={onRemove} removeLabel={removeLabel} />\n ))}\n </ul>\n )}\n </div>\n );\n}\n\nexport { FileUpload };\nexport type { FileUploadProps, UploadFile, FileRejection, FileStatus, RejectionCode };\n"]}
@@ -1,22 +1,22 @@
1
1
  import {
2
2
  SearchBox
3
- } from "./chunk-4S2DSEXR.js";
3
+ } from "./chunk-S7KATX5T.js";
4
4
  import {
5
5
  Popover,
6
6
  PopoverContent,
7
7
  PopoverTrigger
8
- } from "./chunk-APD5WA65.js";
8
+ } from "./chunk-JHWACBNX.js";
9
9
  import {
10
10
  Checkbox
11
- } from "./chunk-TNIRKGXY.js";
11
+ } from "./chunk-T6RGNFKN.js";
12
+ import {
13
+ Button
14
+ } from "./chunk-GQAX2CH6.js";
12
15
  import {
13
16
  Check,
14
17
  ChevronDown,
15
18
  Filter
16
19
  } from "./chunk-FFGALWM2.js";
17
- import {
18
- Button
19
- } from "./chunk-GQAX2CH6.js";
20
20
  import {
21
21
  cn
22
22
  } from "./chunk-7NTT2UXP.js";
@@ -372,4 +372,4 @@ export {
372
372
  FiltrationOption,
373
373
  FiltrationFooter
374
374
  };
375
- //# sourceMappingURL=chunk-J53OY747.js.map
375
+ //# sourceMappingURL=chunk-IS7NNFV3.js.map
@@ -129,7 +129,7 @@ function CircularProgress({
129
129
  state = "normal",
130
130
  thickness,
131
131
  segments,
132
- showLabel = true,
132
+ showValue = true,
133
133
  description,
134
134
  className,
135
135
  ...props
@@ -176,7 +176,7 @@ function CircularProgress({
176
176
  i
177
177
  );
178
178
  }) : null;
179
- const showValueLabel = !isIndeterminate && showLabel && !isStatus;
179
+ const showValueLabel = !isIndeterminate && showValue && !isStatus;
180
180
  const valueText = isSegmented ? `${filledSegments}/${segments}` : `${Math.round(pct)}%`;
181
181
  const showCentre = !isIndeterminate && (isStatus || showValueLabel || description != null);
182
182
  return /* @__PURE__ */ jsxs(
@@ -253,4 +253,4 @@ export {
253
253
  Progress,
254
254
  CircularProgress
255
255
  };
256
- //# sourceMappingURL=chunk-ANHZT2X2.js.map
256
+ //# sourceMappingURL=chunk-JADNUODB.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/Progress/Progress.tsx"],"sourcesContent":["'use client';\n\nimport { useId } from 'react';\nimport { Progress as ProgressPrimitive } from 'radix-ui';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\nimport { Check, Close, HelpCircle } from '../../internal/icons';\n\nconst progressVariants = cva('ddga-progress', {\n variants: {\n size: {\n sm: 'ddga-progress--sm',\n md: 'ddga-progress--md',\n lg: 'ddga-progress--lg',\n },\n variant: {\n primary: 'ddga-progress--primary',\n neutral: 'ddga-progress--neutral',\n },\n state: {\n normal: '',\n success: 'ddga-progress--success',\n error: 'ddga-progress--error',\n },\n },\n defaultVariants: { size: 'md', variant: 'primary', state: 'normal' },\n});\n\nconst circularProgressVariants = cva('ddga-circular-progress', {\n variants: {\n size: {\n sm: 'ddga-circular-progress--sm',\n md: 'ddga-circular-progress--md',\n lg: 'ddga-circular-progress--lg',\n xl: 'ddga-circular-progress--xl',\n '2xl': 'ddga-circular-progress--2xl',\n },\n variant: {\n primary: 'ddga-circular-progress--primary',\n neutral: 'ddga-circular-progress--neutral',\n },\n state: {\n normal: '',\n success: 'ddga-circular-progress--success',\n error: 'ddga-circular-progress--error',\n },\n },\n defaultVariants: { size: 'md', variant: 'primary', state: 'normal' },\n});\n\ntype ProgressState = 'normal' | 'success' | 'error';\n\nfunction StatusBadge({ className, state }: { className: string; state: 'success' | 'error' }) {\n return (\n <span className={cn(className, `${className}--${state}`)} aria-hidden=\"true\">\n {state === 'success' ? <Check /> : <Close />}\n </span>\n );\n}\n\ntype ProgressOwnProps = VariantProps<typeof progressVariants> & {\n /** Current progress. `null`/omitted renders the indeterminate slide. Clamp to `[0, max]` yourself. */\n value?: number | null;\n /** Maximum value. Defaults to 100. */\n max?: number;\n\n state?: ProgressState;\n label?: React.ReactNode;\n required?: boolean;\n helperText?: React.ReactNode;\n showValue?: boolean;\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n};\n\ntype ProgressProps = ProgressOwnProps &\n Omit<React.ComponentProps<typeof ProgressPrimitive.Root>, keyof ProgressOwnProps | 'asChild'>;\n\nfunction Progress({\n value = null,\n max = 100,\n size = 'md',\n variant = 'primary',\n state = 'normal',\n label,\n required = false,\n helperText,\n showValue,\n className,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n ...props\n}: ProgressProps) {\n const labelId = useId();\n const isIndeterminate = value === null;\n const isStatus = state === 'success' || state === 'error';\n const pct = isIndeterminate ? 0 : Math.min(100, Math.max(0, (value / max) * 100));\n const fillPct = isStatus ? 100 : pct;\n const showInBar = size === 'lg' && !isIndeterminate && showValue !== false;\n\n return (\n <div\n data-slot=\"progress-root\"\n className={cn(progressVariants({ size, variant, state }), className)}\n >\n {label != null && (\n <span id={labelId} data-slot=\"progress-label\" className=\"ddga-progress__label\">\n {required && (\n <span className=\"ddga-progress__required\" aria-hidden=\"true\">\n *\n </span>\n )}\n {label}\n </span>\n )}\n <ProgressPrimitive.Root\n data-slot=\"progress\"\n value={isIndeterminate ? null : value}\n max={max}\n aria-label={label == null ? ariaLabel : undefined}\n aria-labelledby={label != null ? labelId : ariaLabelledby}\n className=\"ddga-progress__track\"\n {...props}\n >\n <ProgressPrimitive.Indicator\n data-slot=\"progress-indicator\"\n className=\"ddga-progress__indicator\"\n style={isIndeterminate ? undefined : { inlineSize: `${fillPct}%` }}\n >\n {showInBar && (\n <span className=\"ddga-progress__value\" data-slot=\"progress-value\" dir=\"auto\">\n {Math.round(pct)}%\n </span>\n )}\n </ProgressPrimitive.Indicator>\n </ProgressPrimitive.Root>\n {helperText != null && (\n <span data-slot=\"progress-helper\" className=\"ddga-progress__helper\">\n {isStatus ? (\n <StatusBadge className=\"ddga-progress__badge\" state={state as 'success' | 'error'} />\n ) : (\n <span className=\"ddga-progress__helper-icon\" aria-hidden=\"true\">\n <HelpCircle />\n </span>\n )}\n <span className=\"ddga-progress__helper-text\">{helperText}</span>\n </span>\n )}\n </div>\n );\n}\n\ntype CircularProgressOwnProps = VariantProps<typeof circularProgressVariants> & {\n value?: number | null;\n max?: number;\n state?: ProgressState;\n thickness?: number;\n segments?: number;\n showLabel?: boolean;\n description?: React.ReactNode;\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n};\n\ntype CircularProgressProps = CircularProgressOwnProps &\n Omit<React.ComponentProps<'div'>, keyof CircularProgressOwnProps>;\n\nconst CIRCULAR_SIZES = { sm: 64, md: 80, lg: 120, xl: 160, '2xl': 200 } as const;\nconst CIRCULAR_STROKE = { sm: 4, md: 8, lg: 10, xl: 14, '2xl': 20 } as const;\nconst SEGMENT_GAP_FRACTION = 0.16;\n\nfunction CircularProgress({\n value = null,\n max = 100,\n size = 'md',\n variant = 'primary',\n state = 'normal',\n thickness,\n segments,\n showLabel = true,\n description,\n className,\n ...props\n}: CircularProgressProps) {\n if (process.env.NODE_ENV === 'development' && !props['aria-label'] && !props['aria-labelledby']) {\n console.warn(\n '[dga/Progress] <CircularProgress> has no accessible name. Pass `aria-label` or ' +\n '`aria-labelledby` so screen-reader users know what the progress represents.',\n );\n }\n\n const isIndeterminate = value === null;\n const isSegmented = typeof segments === 'number' && segments >= 2;\n const isStatus = state === 'success' || state === 'error';\n const sizeKey = size ?? 'md';\n const diameter = CIRCULAR_SIZES[sizeKey];\n const strokeWidth = thickness ?? CIRCULAR_STROKE[sizeKey];\n const radius = (diameter - strokeWidth) / 2;\n const circumference = 2 * Math.PI * radius;\n const center = diameter / 2;\n\n const pct = isIndeterminate ? 0 : Math.min(100, Math.max(0, (value / max) * 100));\n const fillPct = isStatus ? 100 : pct;\n const dashOffset = isIndeterminate ? circumference * 0.75 : circumference * (1 - fillPct / 100);\n\n const dataState = isIndeterminate ? 'indeterminate' : value >= max ? 'complete' : 'loading';\n\n const filledSegments =\n isSegmented && segments ? (isIndeterminate ? 0 : Math.round((pct / 100) * segments)) : 0;\n const segmentEls =\n isSegmented && segments\n ? Array.from({ length: segments }, (_, i) => {\n const segAngle = 360 / segments;\n const gapAngle = segAngle * SEGMENT_GAP_FRACTION;\n const segLen = circumference * ((1 - SEGMENT_GAP_FRACTION) / segments);\n return (\n <circle\n key={i}\n className={cn(\n 'ddga-circular-progress__segment',\n i < filledSegments && 'ddga-circular-progress__segment--filled',\n )}\n cx={center}\n cy={center}\n r={radius}\n fill=\"none\"\n strokeWidth={strokeWidth}\n // Butt caps: round caps overrun the gap at small sizes.\n strokeLinecap=\"butt\"\n strokeDasharray={`${segLen} ${circumference}`}\n transform={`rotate(${-90 + i * segAngle + gapAngle / 2} ${center} ${center})`}\n />\n );\n })\n : null;\n\n const showValueLabel = !isIndeterminate && showLabel && !isStatus;\n const valueText = isSegmented ? `${filledSegments}/${segments}` : `${Math.round(pct)}%`;\n const showCentre = !isIndeterminate && (isStatus || showValueLabel || description != null);\n\n return (\n <div\n data-slot=\"circular-progress\"\n data-state={dataState}\n data-segmented={isSegmented ? '' : undefined}\n role=\"progressbar\"\n aria-valuemin={0}\n aria-valuemax={max}\n aria-valuenow={isIndeterminate ? undefined : value}\n className={cn(circularProgressVariants({ size, variant, state }), className)}\n style={{ inlineSize: diameter, blockSize: diameter }}\n {...props}\n >\n <svg\n className=\"ddga-circular-progress__svg\"\n viewBox={`0 0 ${diameter} ${diameter}`}\n width={diameter}\n height={diameter}\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n {isSegmented ? (\n segmentEls\n ) : (\n <>\n <circle\n className=\"ddga-circular-progress__track\"\n cx={center}\n cy={center}\n r={radius}\n fill=\"none\"\n strokeWidth={strokeWidth}\n />\n <circle\n className=\"ddga-circular-progress__indicator\"\n cx={center}\n cy={center}\n r={radius}\n fill=\"none\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeDasharray={circumference}\n strokeDashoffset={dashOffset}\n transform={`rotate(-90 ${center} ${center})`}\n />\n </>\n )}\n </svg>\n {showCentre && (\n <span className=\"ddga-circular-progress__label\" aria-hidden=\"true\">\n {isStatus ? (\n <StatusBadge\n className=\"ddga-circular-progress__badge\"\n state={state as 'success' | 'error'}\n />\n ) : (\n <span className=\"ddga-circular-progress__value\">{valueText}</span>\n )}\n {description != null && (\n <span className=\"ddga-circular-progress__text\">{description}</span>\n )}\n </span>\n )}\n </div>\n );\n}\n\nexport { Progress, CircularProgress, progressVariants, circularProgressVariants };\nexport type { ProgressProps, CircularProgressProps };\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/components/Progress/Progress.tsx"],"sourcesContent":["'use client';\n\nimport { useId } from 'react';\nimport { Progress as ProgressPrimitive } from 'radix-ui';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\nimport { Check, Close, HelpCircle } from '../../internal/icons';\n\nconst progressVariants = cva('ddga-progress', {\n variants: {\n size: {\n sm: 'ddga-progress--sm',\n md: 'ddga-progress--md',\n lg: 'ddga-progress--lg',\n },\n variant: {\n primary: 'ddga-progress--primary',\n neutral: 'ddga-progress--neutral',\n },\n state: {\n normal: '',\n success: 'ddga-progress--success',\n error: 'ddga-progress--error',\n },\n },\n defaultVariants: { size: 'md', variant: 'primary', state: 'normal' },\n});\n\nconst circularProgressVariants = cva('ddga-circular-progress', {\n variants: {\n size: {\n sm: 'ddga-circular-progress--sm',\n md: 'ddga-circular-progress--md',\n lg: 'ddga-circular-progress--lg',\n xl: 'ddga-circular-progress--xl',\n '2xl': 'ddga-circular-progress--2xl',\n },\n variant: {\n primary: 'ddga-circular-progress--primary',\n neutral: 'ddga-circular-progress--neutral',\n },\n state: {\n normal: '',\n success: 'ddga-circular-progress--success',\n error: 'ddga-circular-progress--error',\n },\n },\n defaultVariants: { size: 'md', variant: 'primary', state: 'normal' },\n});\n\ntype ProgressState = 'normal' | 'success' | 'error';\n\nfunction StatusBadge({ className, state }: { className: string; state: 'success' | 'error' }) {\n return (\n <span className={cn(className, `${className}--${state}`)} aria-hidden=\"true\">\n {state === 'success' ? <Check /> : <Close />}\n </span>\n );\n}\n\ntype ProgressOwnProps = VariantProps<typeof progressVariants> & {\n /** Current progress. `null`/omitted renders the indeterminate slide. Clamp to `[0, max]` yourself. */\n value?: number | null;\n /** Maximum value. Defaults to 100. */\n max?: number;\n\n state?: ProgressState;\n label?: React.ReactNode;\n required?: boolean;\n helperText?: React.ReactNode;\n showValue?: boolean;\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n};\n\ntype ProgressProps = ProgressOwnProps &\n Omit<React.ComponentProps<typeof ProgressPrimitive.Root>, keyof ProgressOwnProps | 'asChild'>;\n\nfunction Progress({\n value = null,\n max = 100,\n size = 'md',\n variant = 'primary',\n state = 'normal',\n label,\n required = false,\n helperText,\n showValue,\n className,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n ...props\n}: ProgressProps) {\n const labelId = useId();\n const isIndeterminate = value === null;\n const isStatus = state === 'success' || state === 'error';\n const pct = isIndeterminate ? 0 : Math.min(100, Math.max(0, (value / max) * 100));\n const fillPct = isStatus ? 100 : pct;\n const showInBar = size === 'lg' && !isIndeterminate && showValue !== false;\n\n return (\n <div\n data-slot=\"progress-root\"\n className={cn(progressVariants({ size, variant, state }), className)}\n >\n {label != null && (\n <span id={labelId} data-slot=\"progress-label\" className=\"ddga-progress__label\">\n {required && (\n <span className=\"ddga-progress__required\" aria-hidden=\"true\">\n *\n </span>\n )}\n {label}\n </span>\n )}\n <ProgressPrimitive.Root\n data-slot=\"progress\"\n value={isIndeterminate ? null : value}\n max={max}\n aria-label={label == null ? ariaLabel : undefined}\n aria-labelledby={label != null ? labelId : ariaLabelledby}\n className=\"ddga-progress__track\"\n {...props}\n >\n <ProgressPrimitive.Indicator\n data-slot=\"progress-indicator\"\n className=\"ddga-progress__indicator\"\n style={isIndeterminate ? undefined : { inlineSize: `${fillPct}%` }}\n >\n {showInBar && (\n <span className=\"ddga-progress__value\" data-slot=\"progress-value\" dir=\"auto\">\n {Math.round(pct)}%\n </span>\n )}\n </ProgressPrimitive.Indicator>\n </ProgressPrimitive.Root>\n {helperText != null && (\n <span data-slot=\"progress-helper\" className=\"ddga-progress__helper\">\n {isStatus ? (\n <StatusBadge className=\"ddga-progress__badge\" state={state as 'success' | 'error'} />\n ) : (\n <span className=\"ddga-progress__helper-icon\" aria-hidden=\"true\">\n <HelpCircle />\n </span>\n )}\n <span className=\"ddga-progress__helper-text\">{helperText}</span>\n </span>\n )}\n </div>\n );\n}\n\ntype CircularProgressOwnProps = VariantProps<typeof circularProgressVariants> & {\n value?: number | null;\n max?: number;\n state?: ProgressState;\n thickness?: number;\n segments?: number;\n showValue?: boolean;\n description?: React.ReactNode;\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n};\n\ntype CircularProgressProps = CircularProgressOwnProps &\n Omit<React.ComponentProps<'div'>, keyof CircularProgressOwnProps>;\n\nconst CIRCULAR_SIZES = { sm: 64, md: 80, lg: 120, xl: 160, '2xl': 200 } as const;\nconst CIRCULAR_STROKE = { sm: 4, md: 8, lg: 10, xl: 14, '2xl': 20 } as const;\nconst SEGMENT_GAP_FRACTION = 0.16;\n\nfunction CircularProgress({\n value = null,\n max = 100,\n size = 'md',\n variant = 'primary',\n state = 'normal',\n thickness,\n segments,\n showValue = true,\n description,\n className,\n ...props\n}: CircularProgressProps) {\n if (process.env.NODE_ENV === 'development' && !props['aria-label'] && !props['aria-labelledby']) {\n console.warn(\n '[dga/Progress] <CircularProgress> has no accessible name. Pass `aria-label` or ' +\n '`aria-labelledby` so screen-reader users know what the progress represents.',\n );\n }\n\n const isIndeterminate = value === null;\n const isSegmented = typeof segments === 'number' && segments >= 2;\n const isStatus = state === 'success' || state === 'error';\n const sizeKey = size ?? 'md';\n const diameter = CIRCULAR_SIZES[sizeKey];\n const strokeWidth = thickness ?? CIRCULAR_STROKE[sizeKey];\n const radius = (diameter - strokeWidth) / 2;\n const circumference = 2 * Math.PI * radius;\n const center = diameter / 2;\n\n const pct = isIndeterminate ? 0 : Math.min(100, Math.max(0, (value / max) * 100));\n const fillPct = isStatus ? 100 : pct;\n const dashOffset = isIndeterminate ? circumference * 0.75 : circumference * (1 - fillPct / 100);\n\n const dataState = isIndeterminate ? 'indeterminate' : value >= max ? 'complete' : 'loading';\n\n const filledSegments =\n isSegmented && segments ? (isIndeterminate ? 0 : Math.round((pct / 100) * segments)) : 0;\n const segmentEls =\n isSegmented && segments\n ? Array.from({ length: segments }, (_, i) => {\n const segAngle = 360 / segments;\n const gapAngle = segAngle * SEGMENT_GAP_FRACTION;\n const segLen = circumference * ((1 - SEGMENT_GAP_FRACTION) / segments);\n return (\n <circle\n key={i}\n className={cn(\n 'ddga-circular-progress__segment',\n i < filledSegments && 'ddga-circular-progress__segment--filled',\n )}\n cx={center}\n cy={center}\n r={radius}\n fill=\"none\"\n strokeWidth={strokeWidth}\n // Butt caps: round caps overrun the gap at small sizes.\n strokeLinecap=\"butt\"\n strokeDasharray={`${segLen} ${circumference}`}\n transform={`rotate(${-90 + i * segAngle + gapAngle / 2} ${center} ${center})`}\n />\n );\n })\n : null;\n\n const showValueLabel = !isIndeterminate && showValue && !isStatus;\n const valueText = isSegmented ? `${filledSegments}/${segments}` : `${Math.round(pct)}%`;\n const showCentre = !isIndeterminate && (isStatus || showValueLabel || description != null);\n\n return (\n <div\n data-slot=\"circular-progress\"\n data-state={dataState}\n data-segmented={isSegmented ? '' : undefined}\n role=\"progressbar\"\n aria-valuemin={0}\n aria-valuemax={max}\n aria-valuenow={isIndeterminate ? undefined : value}\n className={cn(circularProgressVariants({ size, variant, state }), className)}\n style={{ inlineSize: diameter, blockSize: diameter }}\n {...props}\n >\n <svg\n className=\"ddga-circular-progress__svg\"\n viewBox={`0 0 ${diameter} ${diameter}`}\n width={diameter}\n height={diameter}\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n {isSegmented ? (\n segmentEls\n ) : (\n <>\n <circle\n className=\"ddga-circular-progress__track\"\n cx={center}\n cy={center}\n r={radius}\n fill=\"none\"\n strokeWidth={strokeWidth}\n />\n <circle\n className=\"ddga-circular-progress__indicator\"\n cx={center}\n cy={center}\n r={radius}\n fill=\"none\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeDasharray={circumference}\n strokeDashoffset={dashOffset}\n transform={`rotate(-90 ${center} ${center})`}\n />\n </>\n )}\n </svg>\n {showCentre && (\n <span className=\"ddga-circular-progress__label\" aria-hidden=\"true\">\n {isStatus ? (\n <StatusBadge\n className=\"ddga-circular-progress__badge\"\n state={state as 'success' | 'error'}\n />\n ) : (\n <span className=\"ddga-circular-progress__value\">{valueText}</span>\n )}\n {description != null && (\n <span className=\"ddga-circular-progress__text\">{description}</span>\n )}\n </span>\n )}\n </div>\n );\n}\n\nexport { Progress, CircularProgress, progressVariants, circularProgressVariants };\nexport type { ProgressProps, CircularProgressProps };\n"],"mappings":"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","names":[]}
@@ -2,12 +2,12 @@ import {
2
2
  Check,
3
3
  ChevronRight
4
4
  } from "./chunk-FFGALWM2.js";
5
- import {
6
- DgaContext
7
- } from "./chunk-TMXABSFE.js";
8
5
  import {
9
6
  cn
10
7
  } from "./chunk-7NTT2UXP.js";
8
+ import {
9
+ DgaContext
10
+ } from "./chunk-TMXABSFE.js";
11
11
 
12
12
  // src/components/DropdownMenu/DropdownMenu.tsx
13
13
  import { createContext, useContext, useRef } from "react";
@@ -239,4 +239,4 @@ export {
239
239
  DropdownMenuSubTrigger,
240
240
  DropdownMenuSubContent
241
241
  };
242
- //# sourceMappingURL=chunk-XB6YHZAG.js.map
242
+ //# sourceMappingURL=chunk-JBTM3SFO.js.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  Close
3
3
  } from "./chunk-FFGALWM2.js";
4
- import {
5
- DgaContext
6
- } from "./chunk-TMXABSFE.js";
7
4
  import {
8
5
  cn
9
6
  } from "./chunk-7NTT2UXP.js";
7
+ import {
8
+ DgaContext
9
+ } from "./chunk-TMXABSFE.js";
10
10
 
11
11
  // src/components/Popover/Popover.tsx
12
12
  import { useContext } from "react";
@@ -102,4 +102,4 @@ export {
102
102
  PopoverContent,
103
103
  PopoverClose
104
104
  };
105
- //# sourceMappingURL=chunk-APD5WA65.js.map
105
+ //# sourceMappingURL=chunk-JHWACBNX.js.map
@@ -3,7 +3,7 @@ import {
3
3
  TabsContent,
4
4
  TabsList,
5
5
  TabsTrigger
6
- } from "./chunk-G6LUBXN2.js";
6
+ } from "./chunk-OXMWQMYF.js";
7
7
  import {
8
8
  Check,
9
9
  ChevronDown,
@@ -257,4 +257,4 @@ export {
257
257
  CodeSnippet,
258
258
  CodeSnippetInline
259
259
  };
260
- //# sourceMappingURL=chunk-54KSDBGC.js.map
260
+ //# sourceMappingURL=chunk-JXMXEBXP.js.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  Search
3
3
  } from "./chunk-FFGALWM2.js";
4
- import {
5
- DgaContext
6
- } from "./chunk-TMXABSFE.js";
7
4
  import {
8
5
  cn
9
6
  } from "./chunk-7NTT2UXP.js";
7
+ import {
8
+ DgaContext
9
+ } from "./chunk-TMXABSFE.js";
10
10
 
11
11
  // src/components/Command/Command.tsx
12
12
  import { useCallback, useContext, useEffect, useRef, useState } from "react";
@@ -189,4 +189,4 @@ export {
189
189
  CommandItem,
190
190
  CommandDialog
191
191
  };
192
- //# sourceMappingURL=chunk-FPXFD5XT.js.map
192
+ //# sourceMappingURL=chunk-KXBRKW25.js.map
@@ -1,9 +1,9 @@
1
- import {
2
- DgaContext
3
- } from "./chunk-TMXABSFE.js";
4
1
  import {
5
2
  cn
6
3
  } from "./chunk-7NTT2UXP.js";
4
+ import {
5
+ DgaContext
6
+ } from "./chunk-TMXABSFE.js";
7
7
 
8
8
  // src/components/Tooltip/Tooltip.tsx
9
9
  import { useContext } from "react";
@@ -146,4 +146,4 @@ export {
146
146
  TooltipContent,
147
147
  HelpIcon
148
148
  };
149
- //# sourceMappingURL=chunk-FF4QNJOQ.js.map
149
+ //# sourceMappingURL=chunk-MFBGKD5J.js.map