@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.
- package/CHANGELOG.md +19 -0
- package/README.md +14 -0
- package/dist/{chunk-Z2LJBEIV.cjs → chunk-2ISGZAMI.cjs} +3 -3
- package/dist/{chunk-Z2LJBEIV.cjs.map → chunk-2ISGZAMI.cjs.map} +1 -1
- package/dist/{chunk-TPD2GNR6.js → chunk-3BDWXIO2.js} +4 -4
- package/dist/{chunk-KDV7V5S4.js → chunk-3GW6NMDL.js} +4 -4
- package/dist/{chunk-VN2YHNUE.cjs → chunk-3IJBHHQP.cjs} +4 -4
- package/dist/{chunk-VN2YHNUE.cjs.map → chunk-3IJBHHQP.cjs.map} +1 -1
- package/dist/{chunk-DI52GZLA.cjs → chunk-3Y6JPEJ3.cjs} +4 -4
- package/dist/{chunk-DI52GZLA.cjs.map → chunk-3Y6JPEJ3.cjs.map} +1 -1
- package/dist/{chunk-4HBVLISS.js → chunk-4G42XPSB.js} +4 -4
- package/dist/{chunk-7EEKESAA.js → chunk-4IUOTHJC.js} +4 -4
- package/dist/{chunk-YOKOPO2W.cjs → chunk-5NBC47JU.cjs} +3 -3
- package/dist/{chunk-YOKOPO2W.cjs.map → chunk-5NBC47JU.cjs.map} +1 -1
- package/dist/{chunk-GHJEE4NW.js → chunk-6AWYGPVV.js} +4 -4
- package/dist/{chunk-WRCHASO2.js → chunk-6LRMCCGU.js} +4 -4
- package/dist/{chunk-TG2IDU3W.js → chunk-6UMASQFJ.js} +4 -4
- package/dist/{chunk-O7BBEN7E.cjs → chunk-7ECWVWEP.cjs} +3 -3
- package/dist/{chunk-O7BBEN7E.cjs.map → chunk-7ECWVWEP.cjs.map} +1 -1
- package/dist/{chunk-IFZWOLDF.cjs → chunk-7M3PXCTB.cjs} +3 -3
- package/dist/{chunk-IFZWOLDF.cjs.map → chunk-7M3PXCTB.cjs.map} +1 -1
- package/dist/{chunk-PLT3EZZ5.js → chunk-7NXFVPPR.js} +4 -4
- package/dist/{chunk-EQINOHB6.cjs → chunk-A4JJG7ZS.cjs} +4 -4
- package/dist/{chunk-EQINOHB6.cjs.map → chunk-A4JJG7ZS.cjs.map} +1 -1
- package/dist/{chunk-CUOYBYI4.cjs → chunk-AOGJVMFE.cjs} +9 -9
- package/dist/{chunk-CUOYBYI4.cjs.map → chunk-AOGJVMFE.cjs.map} +1 -1
- package/dist/{chunk-5N6CFYT6.cjs → chunk-B3MX4XNP.cjs} +3 -3
- package/dist/{chunk-5N6CFYT6.cjs.map → chunk-B3MX4XNP.cjs.map} +1 -1
- package/dist/{chunk-REDX5DCT.cjs → chunk-BH7XP6DP.cjs} +4 -4
- package/dist/{chunk-REDX5DCT.cjs.map → chunk-BH7XP6DP.cjs.map} +1 -1
- package/dist/{chunk-GUI2LDJZ.cjs → chunk-BSVWC2OY.cjs} +4 -4
- package/dist/{chunk-GUI2LDJZ.cjs.map → chunk-BSVWC2OY.cjs.map} +1 -1
- package/dist/{chunk-TGM4JFWI.cjs → chunk-BTXKJ4NE.cjs} +5 -5
- package/dist/{chunk-TGM4JFWI.cjs.map → chunk-BTXKJ4NE.cjs.map} +1 -1
- package/dist/{chunk-QLV4RQVQ.cjs → chunk-C5BPJIIC.cjs} +5 -5
- package/dist/chunk-C5BPJIIC.cjs.map +1 -0
- package/dist/{chunk-NKCBDSI2.js → chunk-C7QGHL2M.js} +2 -2
- package/dist/{chunk-7F24FFIV.cjs → chunk-DI3WGH7W.cjs} +5 -5
- package/dist/{chunk-7F24FFIV.cjs.map → chunk-DI3WGH7W.cjs.map} +1 -1
- package/dist/{chunk-BQZ4XAYH.js → chunk-DUJ2QWTC.js} +4 -4
- package/dist/{chunk-VYP5GX57.cjs → chunk-DZTHIGMQ.cjs} +3 -3
- package/dist/{chunk-VYP5GX57.cjs.map → chunk-DZTHIGMQ.cjs.map} +1 -1
- package/dist/{chunk-BP6BOEVE.js → chunk-EBV35LZE.js} +4 -4
- package/dist/{chunk-GEVXV4RL.js → chunk-GGWMXMBP.js} +4 -4
- package/dist/{chunk-P7WYXL4A.cjs → chunk-GXF5IZEX.cjs} +3 -3
- package/dist/{chunk-P7WYXL4A.cjs.map → chunk-GXF5IZEX.cjs.map} +1 -1
- package/dist/{chunk-DU4YQEIM.cjs → chunk-H7V6VNFC.cjs} +3 -3
- package/dist/{chunk-DU4YQEIM.cjs.map → chunk-H7V6VNFC.cjs.map} +1 -1
- package/dist/{chunk-NGDKAG2O.cjs → chunk-HQABMNYD.cjs} +7 -7
- package/dist/{chunk-NGDKAG2O.cjs.map → chunk-HQABMNYD.cjs.map} +1 -1
- package/dist/{chunk-J53OY747.js → chunk-IS7NNFV3.js} +7 -7
- package/dist/{chunk-ANHZT2X2.js → chunk-JADNUODB.js} +3 -3
- package/dist/{chunk-ANHZT2X2.js.map → chunk-JADNUODB.js.map} +1 -1
- package/dist/{chunk-XB6YHZAG.js → chunk-JBTM3SFO.js} +4 -4
- package/dist/{chunk-APD5WA65.js → chunk-JHWACBNX.js} +4 -4
- package/dist/{chunk-54KSDBGC.js → chunk-JXMXEBXP.js} +2 -2
- package/dist/{chunk-FPXFD5XT.js → chunk-KXBRKW25.js} +4 -4
- package/dist/{chunk-FF4QNJOQ.js → chunk-MFBGKD5J.js} +4 -4
- package/dist/{chunk-WHKNCDTX.js → chunk-N2OE2MUB.js} +7 -7
- package/dist/{chunk-MECGQLHL.js → chunk-NJIQJHJS.js} +4 -4
- package/dist/{chunk-QCITJAK6.cjs → chunk-NLAVXC45.cjs} +3 -3
- package/dist/{chunk-QCITJAK6.cjs.map → chunk-NLAVXC45.cjs.map} +1 -1
- package/dist/{chunk-5GDTEDDH.js → chunk-OUS6KAYF.js} +4 -4
- package/dist/{chunk-G6LUBXN2.js → chunk-OXMWQMYF.js} +2 -2
- package/dist/{chunk-BNCUXVZF.cjs → chunk-OYSETR4K.cjs} +3 -3
- package/dist/{chunk-BNCUXVZF.cjs.map → chunk-OYSETR4K.cjs.map} +1 -1
- package/dist/{chunk-ZNDJS2W7.js → chunk-P4AMGEAG.js} +4 -4
- package/dist/{chunk-6G2BJQZL.cjs → chunk-P66BFKWQ.cjs} +3 -3
- package/dist/{chunk-6G2BJQZL.cjs.map → chunk-P66BFKWQ.cjs.map} +1 -1
- package/dist/{chunk-BYSA3YCV.cjs → chunk-RRTB754T.cjs} +4 -4
- package/dist/{chunk-BYSA3YCV.cjs.map → chunk-RRTB754T.cjs.map} +1 -1
- package/dist/{chunk-GS7QTYLD.js → chunk-S3JTU4FH.js} +4 -4
- package/dist/{chunk-RH3CQOEI.cjs → chunk-S6FRVWCG.cjs} +3 -3
- package/dist/{chunk-RH3CQOEI.cjs.map → chunk-S6FRVWCG.cjs.map} +1 -1
- package/dist/{chunk-4S2DSEXR.js → chunk-S7KATX5T.js} +5 -5
- package/dist/{chunk-VJV3K53D.js → chunk-SHP4KSPL.js} +4 -4
- package/dist/{chunk-WGCK6KKL.js → chunk-SZRP2ODO.js} +4 -4
- package/dist/{chunk-TNIRKGXY.js → chunk-T6RGNFKN.js} +4 -4
- package/dist/{chunk-P2CSX4DZ.cjs → chunk-TBI3YP65.cjs} +4 -2
- package/dist/chunk-TBI3YP65.cjs.map +1 -0
- package/dist/{chunk-WLJHHTE2.js → chunk-TPZTJDCN.js} +9 -9
- package/dist/{chunk-J7XCG6SX.cjs → chunk-TQH7AMQ2.cjs} +4 -4
- package/dist/{chunk-J7XCG6SX.cjs.map → chunk-TQH7AMQ2.cjs.map} +1 -1
- package/dist/{chunk-FV6E33FY.cjs → chunk-TQUB2TCL.cjs} +4 -4
- package/dist/{chunk-FV6E33FY.cjs.map → chunk-TQUB2TCL.cjs.map} +1 -1
- package/dist/{chunk-YVB5RTKR.js → chunk-TZ6IKB3E.js} +4 -2
- package/dist/chunk-TZ6IKB3E.js.map +1 -0
- package/dist/{chunk-T3NVC7UU.cjs → chunk-U3W2GAHM.cjs} +4 -4
- package/dist/{chunk-T3NVC7UU.cjs.map → chunk-U3W2GAHM.cjs.map} +1 -1
- package/dist/{chunk-G6ZOJVIG.cjs → chunk-U6YLGSAQ.cjs} +6 -6
- package/dist/{chunk-G6ZOJVIG.cjs.map → chunk-U6YLGSAQ.cjs.map} +1 -1
- package/dist/{chunk-J7HSAVFF.cjs → chunk-UG2SQ4Q3.cjs} +11 -11
- package/dist/{chunk-J7HSAVFF.cjs.map → chunk-UG2SQ4Q3.cjs.map} +1 -1
- package/dist/{chunk-IM6TYL3P.cjs → chunk-UVBZHPKP.cjs} +3 -3
- package/dist/{chunk-IM6TYL3P.cjs.map → chunk-UVBZHPKP.cjs.map} +1 -1
- package/dist/{chunk-U7SCEB34.js → chunk-VAGYICPO.js} +2 -2
- package/dist/{chunk-DVKPFWP2.cjs → chunk-W46J3DNV.cjs} +4 -4
- package/dist/{chunk-DVKPFWP2.cjs.map → chunk-W46J3DNV.cjs.map} +1 -1
- package/dist/{chunk-KSEN4ESR.js → chunk-WU3IBHA4.js} +6 -6
- package/dist/chunk-WU3IBHA4.js.map +1 -0
- package/dist/{chunk-FUFFG2UW.cjs → chunk-X5GBT5VI.cjs} +4 -4
- package/dist/{chunk-FUFFG2UW.cjs.map → chunk-X5GBT5VI.cjs.map} +1 -1
- package/dist/{chunk-55RHNN3T.js → chunk-Y4JUMIH4.js} +4 -4
- package/dist/{chunk-ODNO43HV.cjs → chunk-YPC7FRJX.cjs} +4 -4
- package/dist/{chunk-ODNO43HV.cjs.map → chunk-YPC7FRJX.cjs.map} +1 -1
- package/dist/{chunk-TYZIRV75.cjs → chunk-ZCRO2PBB.cjs} +4 -4
- package/dist/{chunk-TYZIRV75.cjs.map → chunk-ZCRO2PBB.cjs.map} +1 -1
- package/dist/components/Card/Card.cjs +3 -3
- package/dist/components/Card/Card.js +2 -2
- package/dist/components/Card/index.cjs +3 -3
- package/dist/components/Card/index.js +2 -2
- package/dist/components/Charts/Charts.cjs +3 -3
- package/dist/components/Charts/Charts.js +2 -2
- package/dist/components/Charts/index.cjs +3 -3
- package/dist/components/Charts/index.js +2 -2
- package/dist/components/Checkbox/Checkbox.cjs +3 -3
- package/dist/components/Checkbox/Checkbox.js +2 -2
- package/dist/components/Checkbox/index.cjs +3 -3
- package/dist/components/Checkbox/index.js +2 -2
- package/dist/components/CodeSnippet/CodeSnippet.cjs +5 -5
- package/dist/components/CodeSnippet/CodeSnippet.js +4 -4
- package/dist/components/CodeSnippet/index.cjs +5 -5
- package/dist/components/CodeSnippet/index.js +4 -4
- package/dist/components/Command/Command.cjs +3 -3
- package/dist/components/Command/Command.js +2 -2
- package/dist/components/Command/index.cjs +3 -3
- package/dist/components/Command/index.js +2 -2
- package/dist/components/DatePicker/DatePicker.cjs +1 -1
- package/dist/components/DatePicker/DatePicker.js +1 -1
- package/dist/components/DatePicker/index.cjs +1 -1
- package/dist/components/DatePicker/index.js +1 -1
- package/dist/components/DateRangePicker/DateRangePicker.cjs +1 -1
- package/dist/components/DateRangePicker/DateRangePicker.js +1 -1
- package/dist/components/DateRangePicker/index.cjs +1 -1
- package/dist/components/DateRangePicker/index.js +1 -1
- package/dist/components/Drawer/Drawer.cjs +3 -3
- package/dist/components/Drawer/Drawer.js +2 -2
- package/dist/components/Drawer/index.cjs +3 -3
- package/dist/components/Drawer/index.js +2 -2
- package/dist/components/Dropdown/Dropdown.cjs +3 -3
- package/dist/components/Dropdown/Dropdown.js +2 -2
- package/dist/components/Dropdown/index.cjs +3 -3
- package/dist/components/Dropdown/index.js +2 -2
- package/dist/components/DropdownMenu/DropdownMenu.cjs +3 -3
- package/dist/components/DropdownMenu/DropdownMenu.js +2 -2
- package/dist/components/DropdownMenu/index.cjs +3 -3
- package/dist/components/DropdownMenu/index.js +2 -2
- package/dist/components/FileUpload/FileUpload.cjs +4 -4
- package/dist/components/FileUpload/FileUpload.js +3 -3
- package/dist/components/FileUpload/index.cjs +4 -4
- package/dist/components/FileUpload/index.js +3 -3
- package/dist/components/Filtration/Filtration.cjs +8 -8
- package/dist/components/Filtration/Filtration.js +7 -7
- package/dist/components/Filtration/index.cjs +8 -8
- package/dist/components/Filtration/index.js +7 -7
- package/dist/components/InputOTP/InputOTP.cjs +3 -3
- package/dist/components/InputOTP/InputOTP.js +2 -2
- package/dist/components/InputOTP/index.cjs +3 -3
- package/dist/components/InputOTP/index.js +2 -2
- package/dist/components/Menubar/Menubar.cjs +3 -3
- package/dist/components/Menubar/Menubar.js +2 -2
- package/dist/components/Menubar/index.cjs +3 -3
- package/dist/components/Menubar/index.js +2 -2
- package/dist/components/Metric/index.cjs +2 -2
- package/dist/components/Metric/index.cjs.map +1 -1
- package/dist/components/Metric/index.js +4 -4
- package/dist/components/Modal/Modal.cjs +3 -3
- package/dist/components/Modal/Modal.js +2 -2
- package/dist/components/Modal/index.cjs +3 -3
- package/dist/components/Modal/index.js +2 -2
- package/dist/components/NumberInput/NumberInput.cjs +3 -3
- package/dist/components/NumberInput/NumberInput.js +2 -2
- package/dist/components/NumberInput/index.cjs +3 -3
- package/dist/components/NumberInput/index.js +2 -2
- package/dist/components/Pagination/Pagination.cjs +3 -3
- package/dist/components/Pagination/Pagination.js +2 -2
- package/dist/components/Pagination/index.cjs +3 -3
- package/dist/components/Pagination/index.js +2 -2
- package/dist/components/Popover/Popover.cjs +3 -3
- package/dist/components/Popover/Popover.js +2 -2
- package/dist/components/Popover/index.cjs +3 -3
- package/dist/components/Popover/index.js +2 -2
- package/dist/components/Progress/Progress.cjs +2 -2
- package/dist/components/Progress/Progress.js +1 -1
- package/dist/components/Progress/index.cjs +2 -2
- package/dist/components/Progress/index.js +1 -1
- package/dist/components/Radio/Radio.cjs +3 -3
- package/dist/components/Radio/Radio.js +2 -2
- package/dist/components/Radio/index.cjs +3 -3
- package/dist/components/Radio/index.js +2 -2
- package/dist/components/Rating/Rating.cjs +3 -3
- package/dist/components/Rating/Rating.js +2 -2
- package/dist/components/Rating/index.cjs +3 -3
- package/dist/components/Rating/index.js +2 -2
- package/dist/components/SaudiRiyal/SaudiRiyal.cjs +3 -3
- package/dist/components/SaudiRiyal/SaudiRiyal.js +2 -2
- package/dist/components/SaudiRiyal/index.cjs +3 -3
- package/dist/components/SaudiRiyal/index.js +2 -2
- package/dist/components/SearchBox/SearchBox.cjs +5 -5
- package/dist/components/SearchBox/SearchBox.js +4 -4
- package/dist/components/SearchBox/index.cjs +5 -5
- package/dist/components/SearchBox/index.js +4 -4
- package/dist/components/Select/Select.cjs +3 -3
- package/dist/components/Select/Select.js +2 -2
- package/dist/components/Select/index.cjs +3 -3
- package/dist/components/Select/index.js +2 -2
- package/dist/components/Sidebar/Sidebar.cjs +4 -4
- package/dist/components/Sidebar/Sidebar.js +3 -3
- package/dist/components/Sidebar/SidebarMenu.cjs +5 -5
- package/dist/components/Sidebar/SidebarMenu.js +4 -4
- package/dist/components/Sidebar/index.cjs +7 -7
- package/dist/components/Sidebar/index.cjs.map +1 -1
- package/dist/components/Sidebar/index.js +6 -6
- package/dist/components/SlideoutMenu/SlideoutMenu.cjs +3 -3
- package/dist/components/SlideoutMenu/SlideoutMenu.js +2 -2
- package/dist/components/SlideoutMenu/index.cjs +3 -3
- package/dist/components/SlideoutMenu/index.js +2 -2
- package/dist/components/Slider/Slider.cjs +3 -3
- package/dist/components/Slider/Slider.js +2 -2
- package/dist/components/Slider/index.cjs +3 -3
- package/dist/components/Slider/index.js +2 -2
- package/dist/components/StructuredList/StructuredList.cjs +4 -4
- package/dist/components/StructuredList/StructuredList.js +3 -3
- package/dist/components/StructuredList/index.cjs +4 -4
- package/dist/components/StructuredList/index.js +3 -3
- package/dist/components/Switch/Switch.cjs +3 -3
- package/dist/components/Switch/Switch.js +2 -2
- package/dist/components/Switch/index.cjs +3 -3
- package/dist/components/Switch/index.js +2 -2
- package/dist/components/Tabs/Tabs.cjs +4 -4
- package/dist/components/Tabs/Tabs.js +3 -3
- package/dist/components/Tabs/index.cjs +4 -4
- package/dist/components/Tabs/index.js +3 -3
- package/dist/components/TagInput/TagInput.cjs +3 -3
- package/dist/components/TagInput/TagInput.js +2 -2
- package/dist/components/TagInput/index.cjs +3 -3
- package/dist/components/TagInput/index.js +2 -2
- package/dist/components/TextInput/TextInput.cjs +3 -3
- package/dist/components/TextInput/TextInput.js +2 -2
- package/dist/components/TextInput/index.cjs +3 -3
- package/dist/components/TextInput/index.js +2 -2
- package/dist/components/Textarea/Textarea.cjs +3 -3
- package/dist/components/Textarea/Textarea.js +2 -2
- package/dist/components/Textarea/index.cjs +3 -3
- package/dist/components/Textarea/index.js +2 -2
- package/dist/components/Tooltip/Tooltip.cjs +3 -3
- package/dist/components/Tooltip/Tooltip.js +2 -2
- package/dist/components/Tooltip/index.cjs +3 -3
- package/dist/components/Tooltip/index.js +2 -2
- package/dist/date-picker.cjs +25 -0
- package/dist/date-picker.cjs.map +1 -0
- package/dist/date-picker.d.cts +147 -0
- package/dist/date-picker.d.ts +147 -0
- package/dist/date-picker.js +25 -0
- package/dist/date-picker.js.map +1 -0
- package/dist/index.cjs +102 -102
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +6 -146
- package/dist/index.d.ts +6 -146
- package/dist/index.js +141 -141
- package/dist/providers/DgaProvider.cjs +2 -2
- package/dist/providers/DgaProvider.js +1 -1
- package/package.json +13 -3
- package/dist/chunk-KSEN4ESR.js.map +0 -1
- package/dist/chunk-P2CSX4DZ.cjs.map +0 -1
- package/dist/chunk-QLV4RQVQ.cjs.map +0 -1
- package/dist/chunk-YVB5RTKR.js.map +0 -1
- /package/dist/{chunk-TPD2GNR6.js.map → chunk-3BDWXIO2.js.map} +0 -0
- /package/dist/{chunk-KDV7V5S4.js.map → chunk-3GW6NMDL.js.map} +0 -0
- /package/dist/{chunk-4HBVLISS.js.map → chunk-4G42XPSB.js.map} +0 -0
- /package/dist/{chunk-7EEKESAA.js.map → chunk-4IUOTHJC.js.map} +0 -0
- /package/dist/{chunk-GHJEE4NW.js.map → chunk-6AWYGPVV.js.map} +0 -0
- /package/dist/{chunk-WRCHASO2.js.map → chunk-6LRMCCGU.js.map} +0 -0
- /package/dist/{chunk-TG2IDU3W.js.map → chunk-6UMASQFJ.js.map} +0 -0
- /package/dist/{chunk-PLT3EZZ5.js.map → chunk-7NXFVPPR.js.map} +0 -0
- /package/dist/{chunk-NKCBDSI2.js.map → chunk-C7QGHL2M.js.map} +0 -0
- /package/dist/{chunk-BQZ4XAYH.js.map → chunk-DUJ2QWTC.js.map} +0 -0
- /package/dist/{chunk-BP6BOEVE.js.map → chunk-EBV35LZE.js.map} +0 -0
- /package/dist/{chunk-GEVXV4RL.js.map → chunk-GGWMXMBP.js.map} +0 -0
- /package/dist/{chunk-J53OY747.js.map → chunk-IS7NNFV3.js.map} +0 -0
- /package/dist/{chunk-XB6YHZAG.js.map → chunk-JBTM3SFO.js.map} +0 -0
- /package/dist/{chunk-APD5WA65.js.map → chunk-JHWACBNX.js.map} +0 -0
- /package/dist/{chunk-54KSDBGC.js.map → chunk-JXMXEBXP.js.map} +0 -0
- /package/dist/{chunk-FPXFD5XT.js.map → chunk-KXBRKW25.js.map} +0 -0
- /package/dist/{chunk-FF4QNJOQ.js.map → chunk-MFBGKD5J.js.map} +0 -0
- /package/dist/{chunk-WHKNCDTX.js.map → chunk-N2OE2MUB.js.map} +0 -0
- /package/dist/{chunk-MECGQLHL.js.map → chunk-NJIQJHJS.js.map} +0 -0
- /package/dist/{chunk-5GDTEDDH.js.map → chunk-OUS6KAYF.js.map} +0 -0
- /package/dist/{chunk-G6LUBXN2.js.map → chunk-OXMWQMYF.js.map} +0 -0
- /package/dist/{chunk-ZNDJS2W7.js.map → chunk-P4AMGEAG.js.map} +0 -0
- /package/dist/{chunk-GS7QTYLD.js.map → chunk-S3JTU4FH.js.map} +0 -0
- /package/dist/{chunk-4S2DSEXR.js.map → chunk-S7KATX5T.js.map} +0 -0
- /package/dist/{chunk-VJV3K53D.js.map → chunk-SHP4KSPL.js.map} +0 -0
- /package/dist/{chunk-WGCK6KKL.js.map → chunk-SZRP2ODO.js.map} +0 -0
- /package/dist/{chunk-TNIRKGXY.js.map → chunk-T6RGNFKN.js.map} +0 -0
- /package/dist/{chunk-WLJHHTE2.js.map → chunk-TPZTJDCN.js.map} +0 -0
- /package/dist/{chunk-U7SCEB34.js.map → chunk-VAGYICPO.js.map} +0 -0
- /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
|
|
7
|
+
var _chunkV6MXOJQ4cjs = require('./chunk-V6MXOJQ4.cjs');
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
var
|
|
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-
|
|
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
|
|
12
|
+
var _chunkYS2JJ73Mcjs = require('./chunk-YS2JJ73M.cjs');
|
|
13
13
|
|
|
14
14
|
|
|
15
|
-
var
|
|
15
|
+
var _chunkV6MXOJQ4cjs = require('./chunk-V6MXOJQ4.cjs');
|
|
16
16
|
|
|
17
17
|
|
|
18
|
-
var
|
|
18
|
+
var _chunk3UT22WQMcjs = require('./chunk-3UT22WQM.cjs');
|
|
19
19
|
|
|
20
20
|
|
|
21
|
-
var
|
|
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-
|
|
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-
|
|
3
|
+
} from "./chunk-S7KATX5T.js";
|
|
4
4
|
import {
|
|
5
5
|
Popover,
|
|
6
6
|
PopoverContent,
|
|
7
7
|
PopoverTrigger
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-JHWACBNX.js";
|
|
9
9
|
import {
|
|
10
10
|
Checkbox
|
|
11
|
-
} from "./chunk-
|
|
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-
|
|
375
|
+
//# sourceMappingURL=chunk-IS7NNFV3.js.map
|
|
@@ -129,7 +129,7 @@ function CircularProgress({
|
|
|
129
129
|
state = "normal",
|
|
130
130
|
thickness,
|
|
131
131
|
segments,
|
|
132
|
-
|
|
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 &&
|
|
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-
|
|
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-
|
|
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-
|
|
105
|
+
//# sourceMappingURL=chunk-JHWACBNX.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
TabsContent,
|
|
4
4
|
TabsList,
|
|
5
5
|
TabsTrigger
|
|
6
|
-
} from "./chunk-
|
|
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-
|
|
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-
|
|
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-
|
|
149
|
+
//# sourceMappingURL=chunk-MFBGKD5J.js.map
|