@dev-dga/react 1.0.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 +11 -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-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-7GAELGEB.cjs → chunk-BTXKJ4NE.cjs} +3 -3
- package/dist/{chunk-7GAELGEB.cjs.map → chunk-BTXKJ4NE.cjs.map} +1 -1
- package/dist/{chunk-V7U2CXYL.cjs → chunk-C5BPJIIC.cjs} +3 -3
- package/dist/{chunk-V7U2CXYL.cjs.map → chunk-C5BPJIIC.cjs.map} +1 -1
- 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-DU4YQEIM.cjs → chunk-H7V6VNFC.cjs} +3 -3
- package/dist/{chunk-DU4YQEIM.cjs.map → chunk-H7V6VNFC.cjs.map} +1 -1
- package/dist/{chunk-K27GNXBF.cjs → chunk-HQABMNYD.cjs} +4 -4
- package/dist/{chunk-K27GNXBF.cjs.map → chunk-HQABMNYD.cjs.map} +1 -1
- package/dist/{chunk-AHUL5WRD.js → chunk-IS7NNFV3.js} +6 -6
- 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-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-WRUVDZRI.js → chunk-S7KATX5T.js} +2 -2
- 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-EZRPCQSP.js → chunk-TPZTJDCN.js} +4 -4
- 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-K7GLIST7.cjs → chunk-UG2SQ4Q3.cjs} +10 -10
- package/dist/{chunk-K7GLIST7.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-BJIB6S5L.js → chunk-WU3IBHA4.js} +4 -4
- 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/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 +3 -3
- package/dist/components/FileUpload/FileUpload.js +2 -2
- package/dist/components/FileUpload/index.cjs +3 -3
- package/dist/components/FileUpload/index.js +2 -2
- 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/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 +4 -4
- package/dist/components/SearchBox/SearchBox.js +3 -3
- package/dist/components/SearchBox/index.cjs +4 -4
- package/dist/components/SearchBox/index.js +3 -3
- 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 +89 -89
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -142
- package/dist/index.d.ts +2 -142
- package/dist/index.js +113 -113
- package/dist/providers/DgaProvider.cjs +2 -2
- package/dist/providers/DgaProvider.js +1 -1
- package/package.json +13 -3
- package/dist/chunk-P2CSX4DZ.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-AHUL5WRD.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-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-WRUVDZRI.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-EZRPCQSP.js.map → chunk-TPZTJDCN.js.map} +0 -0
- /package/dist/{chunk-U7SCEB34.js.map → chunk-VAGYICPO.js.map} +0 -0
- /package/dist/{chunk-BJIB6S5L.js.map → chunk-WU3IBHA4.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-BYSA3YCV.cjs","../src/components/Dropdown/Dropdown.tsx"],"names":["Fragment"],"mappings":"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","file":"/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-BYSA3YCV.cjs","sourcesContent":[null,"'use client';\n\nimport {\n Children,\n Fragment,\n createContext,\n isValidElement,\n useCallback,\n useContext,\n useMemo,\n useRef,\n useState,\n type ReactNode,\n} from 'react';\nimport { Command } from 'cmdk';\nimport { Popover as PopoverPrimitive } from 'radix-ui';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\nimport { Check, DropdownChevron, Info, AlertCircle } from '../../internal/icons';\nimport { useFieldA11y, FieldMessage } from '../../field';\nimport { DgaContext } from '../../providers/DgaContext';\n\n// SDGA Dropdown Input field = the Text Input field model + a trailing chevron:\n// md 32 / lg 40, three fill styles, gray-400 border, focus underline.\nconst dropdownTriggerVariants = cva('ddga-dropdown-trigger', {\n variants: {\n size: {\n md: 'ddga-dropdown-trigger--md',\n lg: 'ddga-dropdown-trigger--lg',\n },\n variant: {\n default: 'ddga-dropdown-trigger--default',\n 'filled-lighter': 'ddga-dropdown-trigger--filled-lighter',\n 'filled-darker': 'ddga-dropdown-trigger--filled-darker',\n },\n error: {\n true: 'ddga-dropdown-trigger--error',\n },\n },\n defaultVariants: {\n size: 'lg',\n variant: 'default',\n },\n});\n\ninterface DropdownContextValue {\n multiple: boolean;\n isSelected: (value: string) => boolean;\n select: (value: string) => void;\n}\n\nconst DropdownContext = createContext<DropdownContextValue | null>(null);\n\nfunction useDropdownContext(component: string): DropdownContextValue {\n const ctx = useContext(DropdownContext);\n if (!ctx) {\n throw new Error(`<${component}> must be rendered inside <Dropdown>.`);\n }\n return ctx;\n}\n\ninterface DropdownBaseProps extends VariantProps<typeof dropdownTriggerVariants> {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n /** Visible label above the trigger. */\n label?: ReactNode;\n /** Hint shown below the trigger when there's no error. */\n helperText?: ReactNode;\n /** Message shown below the trigger when `error` is true. */\n errorMessage?: ReactNode;\n /** Marks the field invalid — sets `aria-invalid` and the error border. */\n error?: boolean;\n /** Adds the required asterisk + `aria-required`. */\n required?: boolean;\n /** Disables the trigger entirely. */\n disabled?: boolean;\n /** Shows the value but blocks opening (SDGA Read-only). */\n readOnly?: boolean;\n /** Placeholder shown when nothing is selected. */\n placeholder?: ReactNode;\n /**\n * Render the in-panel filter input (combobox behavior). Off by default — the\n * plain SDGA dropdown. A hidden focusable input is kept either way for cmdk's\n * keyboard model.\n */\n searchable?: boolean;\n /** Placeholder for the filter input when `searchable`. */\n searchPlaceholder?: string;\n /** Shown when a filter matches nothing. */\n emptyMessage?: ReactNode;\n /** Override the trigger label resolver (e.g. async-loaded options). */\n getLabel?: (value: string) => ReactNode;\n id?: string;\n className?: string;\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n /** `<DropdownItem>` (+ optional `DropdownGroup` / `DropdownSeparator`). */\n children: ReactNode;\n}\n\ninterface DropdownSingleProps extends DropdownBaseProps {\n multiple?: false;\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n}\n\ninterface DropdownMultipleProps extends DropdownBaseProps {\n /** Multi-select (SDGA Multi Select): leading checkboxes; panel stays open. */\n multiple: true;\n value?: string[];\n defaultValue?: string[];\n onValueChange?: (value: string[]) => void;\n}\n\ntype DropdownProps = DropdownSingleProps | DropdownMultipleProps;\n\ninterface DropdownItemProps extends Omit<\n React.ComponentProps<typeof Command.Item>,\n 'value' | 'onSelect'\n> {\n /** Stable value for filtering + selection. */\n value: string;\n /** Extra search terms cmdk matches against the filter input. */\n keywords?: string[];\n disabled?: boolean;\n /** Fires alongside the root's `onValueChange`. */\n onSelect?: (value: string) => void;\n}\n\ninterface DropdownGroupProps extends React.ComponentProps<typeof Command.Group> {\n heading?: ReactNode;\n}\n\ntype DropdownSeparatorProps = React.ComponentProps<typeof Command.Separator>;\n\nconst toArray = (v: string | string[] | undefined): string[] =>\n v === undefined ? [] : Array.isArray(v) ? v : [v];\n\nfunction Dropdown(props: DropdownProps) {\n const {\n multiple = false,\n open: controlledOpen,\n defaultOpen,\n onOpenChange,\n label,\n helperText,\n errorMessage,\n error,\n required,\n disabled,\n readOnly,\n size,\n variant,\n placeholder,\n searchable = false,\n searchPlaceholder = 'Search…',\n emptyMessage = 'No results.',\n getLabel,\n id: externalId,\n className,\n children,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n } = props;\n\n const controlledValue = 'value' in props ? toArray(props.value) : undefined;\n const isControlled = 'value' in props && props.value !== undefined;\n const [internalValue, setInternalValue] = useState<string[]>(() => toArray(props.defaultValue));\n const selected = isControlled ? (controlledValue as string[]) : internalValue;\n\n const [internalOpen, setInternalOpen] = useState(defaultOpen ?? false);\n const isOpenControlled = controlledOpen !== undefined;\n const open = isOpenControlled ? controlledOpen : internalOpen;\n\n const setOpen = useCallback(\n (next: boolean) => {\n if (readOnly || disabled) return;\n if (!isOpenControlled) setInternalOpen(next);\n onOpenChange?.(next);\n },\n [readOnly, disabled, isOpenControlled, onOpenChange],\n );\n\n const emit = useCallback(\n (next: string[]) => {\n if (multiple) (props.onValueChange as ((v: string[]) => void) | undefined)?.(next);\n else (props.onValueChange as ((v: string) => void) | undefined)?.(next[0] ?? '');\n },\n [multiple, props.onValueChange],\n );\n\n const select = useCallback(\n (val: string) => {\n const next = multiple\n ? selected.includes(val)\n ? selected.filter((v) => v !== val)\n : [...selected, val]\n : [val];\n if (!isControlled) setInternalValue(next);\n emit(next);\n if (!multiple) setOpen(false);\n },\n [multiple, selected, isControlled, emit, setOpen],\n );\n\n const isSelected = useCallback((val: string) => selected.includes(val), [selected]);\n\n const ctx = useMemo<DropdownContextValue>(\n () => ({ multiple, isSelected, select }),\n [multiple, isSelected, select],\n );\n\n // value → label map, built synchronously so the trigger renders the right\n // label on first paint (items don't mount until the panel opens).\n const itemLabels = useMemo<Map<string, ReactNode>>(() => {\n const map = new Map<string, ReactNode>();\n const visit = (nodes: ReactNode): void => {\n Children.forEach(nodes, (child) => {\n if (!isValidElement(child)) return;\n const childProps = child.props as { value?: unknown; children?: ReactNode };\n if (typeof childProps.value === 'string') map.set(childProps.value, childProps.children);\n else if (childProps.children) visit(childProps.children);\n });\n };\n visit(children);\n return map;\n }, [children]);\n\n const { fieldId, errorId, helperId, hasError, hasErrorMessage, hasHelper, controlProps } =\n useFieldA11y({\n name: 'Dropdown',\n id: externalId,\n label,\n error,\n errorMessage,\n helperText,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n });\n\n const providerCtx = useContext(DgaContext);\n const portalContainer = providerCtx?.portalEl ?? providerCtx?.rootEl ?? undefined;\n const triggerRef = useRef<HTMLButtonElement>(null);\n const lastInputKeyboard = useRef(false);\n\n const resolveLabel = (v: string): ReactNode =>\n getLabel ? getLabel(v) : (itemLabels.get(v) ?? v);\n const triggerLabel: ReactNode =\n selected.length === 0 ? null : (\n <>\n {selected.map((v, i) => (\n <Fragment key={v}>\n {i > 0 ? ', ' : ''}\n {resolveLabel(v)}\n </Fragment>\n ))}\n </>\n );\n\n return (\n <DropdownContext.Provider value={ctx}>\n <div data-slot=\"dropdown-field\" className=\"ddga-field\">\n {label && (\n <label htmlFor={fieldId} className=\"ddga-dropdown__label\">\n {required && (\n <span aria-hidden=\"true\" className=\"ddga-dropdown__required\">\n *\n </span>\n )}\n {label}\n </label>\n )}\n <PopoverPrimitive.Root open={open} onOpenChange={setOpen}>\n <PopoverPrimitive.Trigger asChild>\n <button\n ref={triggerRef}\n type=\"button\"\n {...controlProps}\n aria-haspopup=\"listbox\"\n aria-required={required || undefined}\n aria-readonly={readOnly || undefined}\n disabled={disabled}\n data-slot=\"dropdown-trigger\"\n className={cn(dropdownTriggerVariants({ size, variant, error: hasError }), className)}\n >\n <span className=\"ddga-dropdown__value\">\n {selected.length > 0 ? (\n triggerLabel\n ) : (\n <span className=\"ddga-dropdown__placeholder\">{placeholder}</span>\n )}\n </span>\n <DropdownChevron aria-hidden=\"true\" className=\"ddga-dropdown__icon\" />\n </button>\n </PopoverPrimitive.Trigger>\n <PopoverPrimitive.Portal container={portalContainer}>\n <PopoverPrimitive.Content\n data-slot=\"dropdown-content\"\n className=\"ddga-dropdown-content\"\n sideOffset={4}\n align=\"start\"\n aria-label={ariaLabel ?? (typeof label === 'string' ? label : 'Options')}\n aria-labelledby={ariaLabelledBy}\n style={{ inlineSize: 'var(--radix-popover-trigger-width)' }}\n onOpenAutoFocus={(event) => {\n // cmdk autofocuses its input (visible or hidden) — let it.\n event.preventDefault();\n }}\n onKeyDownCapture={() => {\n lastInputKeyboard.current = true;\n }}\n onPointerDownCapture={() => {\n lastInputKeyboard.current = false;\n }}\n onCloseAutoFocus={(event) => {\n // Radix repaints the trigger's :focus-visible ring even after a mouse\n // selection; refocus ourselves and set focusVisible from the real modality.\n event.preventDefault();\n triggerRef.current?.focus({\n focusVisible: lastInputKeyboard.current,\n } as FocusOptions);\n }}\n >\n <Command\n data-slot=\"dropdown-command\"\n className=\"ddga-dropdown-command\"\n shouldFilter={searchable}\n >\n <Command.Input\n autoFocus\n placeholder={searchable ? searchPlaceholder : undefined}\n aria-label={searchable ? undefined : 'Filter options'}\n data-slot=\"dropdown-input\"\n className={searchable ? 'ddga-dropdown-input' : 'ddga-dropdown-input--hidden'}\n />\n <Command.List data-slot=\"dropdown-list\" className=\"ddga-dropdown-list\">\n {searchable && (\n <Command.Empty data-slot=\"dropdown-empty\" className=\"ddga-dropdown-empty\">\n {emptyMessage}\n </Command.Empty>\n )}\n {children}\n </Command.List>\n </Command>\n </PopoverPrimitive.Content>\n </PopoverPrimitive.Portal>\n </PopoverPrimitive.Root>\n {hasErrorMessage && (\n <FieldMessage id={errorId} variant=\"error\" icon={<AlertCircle width={16} height={16} />}>\n {errorMessage}\n </FieldMessage>\n )}\n {hasHelper && (\n <FieldMessage id={helperId} variant=\"helper\" icon={<Info width={16} height={16} />}>\n {helperText}\n </FieldMessage>\n )}\n </div>\n </DropdownContext.Provider>\n );\n}\n\nfunction DropdownItem({\n value,\n keywords,\n disabled,\n onSelect,\n className,\n children,\n ...props\n}: DropdownItemProps) {\n const { multiple, isSelected, select } = useDropdownContext('DropdownItem');\n const sel = isSelected(value);\n\n return (\n <Command.Item\n value={value}\n keywords={keywords}\n disabled={disabled}\n onSelect={(v) => {\n onSelect?.(v);\n select(v);\n }}\n data-slot=\"dropdown-item\"\n data-active={sel ? '' : undefined}\n className={cn('ddga-dropdown-item', className)}\n {...props}\n >\n {multiple ? (\n <span\n className=\"ddga-dropdown-item__checkbox\"\n data-checked={sel ? '' : undefined}\n aria-hidden=\"true\"\n >\n {sel ? <Check /> : null}\n </span>\n ) : null}\n <span className=\"ddga-dropdown-item__label\">{children}</span>\n {!multiple && sel ? (\n <span className=\"ddga-dropdown-item__check\" aria-hidden=\"true\">\n <Check />\n </span>\n ) : null}\n </Command.Item>\n );\n}\n\nfunction DropdownGroup({ className, heading, ...props }: DropdownGroupProps) {\n return (\n <Command.Group\n heading={heading}\n data-slot=\"dropdown-group\"\n className={cn('ddga-dropdown-group', className)}\n {...props}\n />\n );\n}\n\nfunction DropdownSeparator({ className, ...props }: DropdownSeparatorProps) {\n return (\n <Command.Separator\n data-slot=\"dropdown-separator\"\n className={cn('ddga-dropdown-separator', className)}\n {...props}\n />\n );\n}\n\nexport { Dropdown, DropdownItem, DropdownGroup, DropdownSeparator, dropdownTriggerVariants };\nexport type {\n DropdownProps,\n DropdownSingleProps,\n DropdownMultipleProps,\n DropdownItemProps,\n DropdownGroupProps,\n DropdownSeparatorProps,\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-RRTB754T.cjs","../src/components/Dropdown/Dropdown.tsx"],"names":["Fragment"],"mappings":"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","file":"/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-RRTB754T.cjs","sourcesContent":[null,"'use client';\n\nimport {\n Children,\n Fragment,\n createContext,\n isValidElement,\n useCallback,\n useContext,\n useMemo,\n useRef,\n useState,\n type ReactNode,\n} from 'react';\nimport { Command } from 'cmdk';\nimport { Popover as PopoverPrimitive } from 'radix-ui';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\nimport { Check, DropdownChevron, Info, AlertCircle } from '../../internal/icons';\nimport { useFieldA11y, FieldMessage } from '../../field';\nimport { DgaContext } from '../../providers/DgaContext';\n\n// SDGA Dropdown Input field = the Text Input field model + a trailing chevron:\n// md 32 / lg 40, three fill styles, gray-400 border, focus underline.\nconst dropdownTriggerVariants = cva('ddga-dropdown-trigger', {\n variants: {\n size: {\n md: 'ddga-dropdown-trigger--md',\n lg: 'ddga-dropdown-trigger--lg',\n },\n variant: {\n default: 'ddga-dropdown-trigger--default',\n 'filled-lighter': 'ddga-dropdown-trigger--filled-lighter',\n 'filled-darker': 'ddga-dropdown-trigger--filled-darker',\n },\n error: {\n true: 'ddga-dropdown-trigger--error',\n },\n },\n defaultVariants: {\n size: 'lg',\n variant: 'default',\n },\n});\n\ninterface DropdownContextValue {\n multiple: boolean;\n isSelected: (value: string) => boolean;\n select: (value: string) => void;\n}\n\nconst DropdownContext = createContext<DropdownContextValue | null>(null);\n\nfunction useDropdownContext(component: string): DropdownContextValue {\n const ctx = useContext(DropdownContext);\n if (!ctx) {\n throw new Error(`<${component}> must be rendered inside <Dropdown>.`);\n }\n return ctx;\n}\n\ninterface DropdownBaseProps extends VariantProps<typeof dropdownTriggerVariants> {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n /** Visible label above the trigger. */\n label?: ReactNode;\n /** Hint shown below the trigger when there's no error. */\n helperText?: ReactNode;\n /** Message shown below the trigger when `error` is true. */\n errorMessage?: ReactNode;\n /** Marks the field invalid — sets `aria-invalid` and the error border. */\n error?: boolean;\n /** Adds the required asterisk + `aria-required`. */\n required?: boolean;\n /** Disables the trigger entirely. */\n disabled?: boolean;\n /** Shows the value but blocks opening (SDGA Read-only). */\n readOnly?: boolean;\n /** Placeholder shown when nothing is selected. */\n placeholder?: ReactNode;\n /**\n * Render the in-panel filter input (combobox behavior). Off by default — the\n * plain SDGA dropdown. A hidden focusable input is kept either way for cmdk's\n * keyboard model.\n */\n searchable?: boolean;\n /** Placeholder for the filter input when `searchable`. */\n searchPlaceholder?: string;\n /** Shown when a filter matches nothing. */\n emptyMessage?: ReactNode;\n /** Override the trigger label resolver (e.g. async-loaded options). */\n getLabel?: (value: string) => ReactNode;\n id?: string;\n className?: string;\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n /** `<DropdownItem>` (+ optional `DropdownGroup` / `DropdownSeparator`). */\n children: ReactNode;\n}\n\ninterface DropdownSingleProps extends DropdownBaseProps {\n multiple?: false;\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n}\n\ninterface DropdownMultipleProps extends DropdownBaseProps {\n /** Multi-select (SDGA Multi Select): leading checkboxes; panel stays open. */\n multiple: true;\n value?: string[];\n defaultValue?: string[];\n onValueChange?: (value: string[]) => void;\n}\n\ntype DropdownProps = DropdownSingleProps | DropdownMultipleProps;\n\ninterface DropdownItemProps extends Omit<\n React.ComponentProps<typeof Command.Item>,\n 'value' | 'onSelect'\n> {\n /** Stable value for filtering + selection. */\n value: string;\n /** Extra search terms cmdk matches against the filter input. */\n keywords?: string[];\n disabled?: boolean;\n /** Fires alongside the root's `onValueChange`. */\n onSelect?: (value: string) => void;\n}\n\ninterface DropdownGroupProps extends React.ComponentProps<typeof Command.Group> {\n heading?: ReactNode;\n}\n\ntype DropdownSeparatorProps = React.ComponentProps<typeof Command.Separator>;\n\nconst toArray = (v: string | string[] | undefined): string[] =>\n v === undefined ? [] : Array.isArray(v) ? v : [v];\n\nfunction Dropdown(props: DropdownProps) {\n const {\n multiple = false,\n open: controlledOpen,\n defaultOpen,\n onOpenChange,\n label,\n helperText,\n errorMessage,\n error,\n required,\n disabled,\n readOnly,\n size,\n variant,\n placeholder,\n searchable = false,\n searchPlaceholder = 'Search…',\n emptyMessage = 'No results.',\n getLabel,\n id: externalId,\n className,\n children,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n } = props;\n\n const controlledValue = 'value' in props ? toArray(props.value) : undefined;\n const isControlled = 'value' in props && props.value !== undefined;\n const [internalValue, setInternalValue] = useState<string[]>(() => toArray(props.defaultValue));\n const selected = isControlled ? (controlledValue as string[]) : internalValue;\n\n const [internalOpen, setInternalOpen] = useState(defaultOpen ?? false);\n const isOpenControlled = controlledOpen !== undefined;\n const open = isOpenControlled ? controlledOpen : internalOpen;\n\n const setOpen = useCallback(\n (next: boolean) => {\n if (readOnly || disabled) return;\n if (!isOpenControlled) setInternalOpen(next);\n onOpenChange?.(next);\n },\n [readOnly, disabled, isOpenControlled, onOpenChange],\n );\n\n const emit = useCallback(\n (next: string[]) => {\n if (multiple) (props.onValueChange as ((v: string[]) => void) | undefined)?.(next);\n else (props.onValueChange as ((v: string) => void) | undefined)?.(next[0] ?? '');\n },\n [multiple, props.onValueChange],\n );\n\n const select = useCallback(\n (val: string) => {\n const next = multiple\n ? selected.includes(val)\n ? selected.filter((v) => v !== val)\n : [...selected, val]\n : [val];\n if (!isControlled) setInternalValue(next);\n emit(next);\n if (!multiple) setOpen(false);\n },\n [multiple, selected, isControlled, emit, setOpen],\n );\n\n const isSelected = useCallback((val: string) => selected.includes(val), [selected]);\n\n const ctx = useMemo<DropdownContextValue>(\n () => ({ multiple, isSelected, select }),\n [multiple, isSelected, select],\n );\n\n // value → label map, built synchronously so the trigger renders the right\n // label on first paint (items don't mount until the panel opens).\n const itemLabels = useMemo<Map<string, ReactNode>>(() => {\n const map = new Map<string, ReactNode>();\n const visit = (nodes: ReactNode): void => {\n Children.forEach(nodes, (child) => {\n if (!isValidElement(child)) return;\n const childProps = child.props as { value?: unknown; children?: ReactNode };\n if (typeof childProps.value === 'string') map.set(childProps.value, childProps.children);\n else if (childProps.children) visit(childProps.children);\n });\n };\n visit(children);\n return map;\n }, [children]);\n\n const { fieldId, errorId, helperId, hasError, hasErrorMessage, hasHelper, controlProps } =\n useFieldA11y({\n name: 'Dropdown',\n id: externalId,\n label,\n error,\n errorMessage,\n helperText,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n });\n\n const providerCtx = useContext(DgaContext);\n const portalContainer = providerCtx?.portalEl ?? providerCtx?.rootEl ?? undefined;\n const triggerRef = useRef<HTMLButtonElement>(null);\n const lastInputKeyboard = useRef(false);\n\n const resolveLabel = (v: string): ReactNode =>\n getLabel ? getLabel(v) : (itemLabels.get(v) ?? v);\n const triggerLabel: ReactNode =\n selected.length === 0 ? null : (\n <>\n {selected.map((v, i) => (\n <Fragment key={v}>\n {i > 0 ? ', ' : ''}\n {resolveLabel(v)}\n </Fragment>\n ))}\n </>\n );\n\n return (\n <DropdownContext.Provider value={ctx}>\n <div data-slot=\"dropdown-field\" className=\"ddga-field\">\n {label && (\n <label htmlFor={fieldId} className=\"ddga-dropdown__label\">\n {required && (\n <span aria-hidden=\"true\" className=\"ddga-dropdown__required\">\n *\n </span>\n )}\n {label}\n </label>\n )}\n <PopoverPrimitive.Root open={open} onOpenChange={setOpen}>\n <PopoverPrimitive.Trigger asChild>\n <button\n ref={triggerRef}\n type=\"button\"\n {...controlProps}\n aria-haspopup=\"listbox\"\n aria-required={required || undefined}\n aria-readonly={readOnly || undefined}\n disabled={disabled}\n data-slot=\"dropdown-trigger\"\n className={cn(dropdownTriggerVariants({ size, variant, error: hasError }), className)}\n >\n <span className=\"ddga-dropdown__value\">\n {selected.length > 0 ? (\n triggerLabel\n ) : (\n <span className=\"ddga-dropdown__placeholder\">{placeholder}</span>\n )}\n </span>\n <DropdownChevron aria-hidden=\"true\" className=\"ddga-dropdown__icon\" />\n </button>\n </PopoverPrimitive.Trigger>\n <PopoverPrimitive.Portal container={portalContainer}>\n <PopoverPrimitive.Content\n data-slot=\"dropdown-content\"\n className=\"ddga-dropdown-content\"\n sideOffset={4}\n align=\"start\"\n aria-label={ariaLabel ?? (typeof label === 'string' ? label : 'Options')}\n aria-labelledby={ariaLabelledBy}\n style={{ inlineSize: 'var(--radix-popover-trigger-width)' }}\n onOpenAutoFocus={(event) => {\n // cmdk autofocuses its input (visible or hidden) — let it.\n event.preventDefault();\n }}\n onKeyDownCapture={() => {\n lastInputKeyboard.current = true;\n }}\n onPointerDownCapture={() => {\n lastInputKeyboard.current = false;\n }}\n onCloseAutoFocus={(event) => {\n // Radix repaints the trigger's :focus-visible ring even after a mouse\n // selection; refocus ourselves and set focusVisible from the real modality.\n event.preventDefault();\n triggerRef.current?.focus({\n focusVisible: lastInputKeyboard.current,\n } as FocusOptions);\n }}\n >\n <Command\n data-slot=\"dropdown-command\"\n className=\"ddga-dropdown-command\"\n shouldFilter={searchable}\n >\n <Command.Input\n autoFocus\n placeholder={searchable ? searchPlaceholder : undefined}\n aria-label={searchable ? undefined : 'Filter options'}\n data-slot=\"dropdown-input\"\n className={searchable ? 'ddga-dropdown-input' : 'ddga-dropdown-input--hidden'}\n />\n <Command.List data-slot=\"dropdown-list\" className=\"ddga-dropdown-list\">\n {searchable && (\n <Command.Empty data-slot=\"dropdown-empty\" className=\"ddga-dropdown-empty\">\n {emptyMessage}\n </Command.Empty>\n )}\n {children}\n </Command.List>\n </Command>\n </PopoverPrimitive.Content>\n </PopoverPrimitive.Portal>\n </PopoverPrimitive.Root>\n {hasErrorMessage && (\n <FieldMessage id={errorId} variant=\"error\" icon={<AlertCircle width={16} height={16} />}>\n {errorMessage}\n </FieldMessage>\n )}\n {hasHelper && (\n <FieldMessage id={helperId} variant=\"helper\" icon={<Info width={16} height={16} />}>\n {helperText}\n </FieldMessage>\n )}\n </div>\n </DropdownContext.Provider>\n );\n}\n\nfunction DropdownItem({\n value,\n keywords,\n disabled,\n onSelect,\n className,\n children,\n ...props\n}: DropdownItemProps) {\n const { multiple, isSelected, select } = useDropdownContext('DropdownItem');\n const sel = isSelected(value);\n\n return (\n <Command.Item\n value={value}\n keywords={keywords}\n disabled={disabled}\n onSelect={(v) => {\n onSelect?.(v);\n select(v);\n }}\n data-slot=\"dropdown-item\"\n data-active={sel ? '' : undefined}\n className={cn('ddga-dropdown-item', className)}\n {...props}\n >\n {multiple ? (\n <span\n className=\"ddga-dropdown-item__checkbox\"\n data-checked={sel ? '' : undefined}\n aria-hidden=\"true\"\n >\n {sel ? <Check /> : null}\n </span>\n ) : null}\n <span className=\"ddga-dropdown-item__label\">{children}</span>\n {!multiple && sel ? (\n <span className=\"ddga-dropdown-item__check\" aria-hidden=\"true\">\n <Check />\n </span>\n ) : null}\n </Command.Item>\n );\n}\n\nfunction DropdownGroup({ className, heading, ...props }: DropdownGroupProps) {\n return (\n <Command.Group\n heading={heading}\n data-slot=\"dropdown-group\"\n className={cn('ddga-dropdown-group', className)}\n {...props}\n />\n );\n}\n\nfunction DropdownSeparator({ className, ...props }: DropdownSeparatorProps) {\n return (\n <Command.Separator\n data-slot=\"dropdown-separator\"\n className={cn('ddga-dropdown-separator', className)}\n {...props}\n />\n );\n}\n\nexport { Dropdown, DropdownItem, DropdownGroup, DropdownSeparator, dropdownTriggerVariants };\nexport type {\n DropdownProps,\n DropdownSingleProps,\n DropdownMultipleProps,\n DropdownItemProps,\n DropdownGroupProps,\n DropdownSeparatorProps,\n};\n"]}
|
|
@@ -4,15 +4,15 @@ import {
|
|
|
4
4
|
Minus,
|
|
5
5
|
Plus
|
|
6
6
|
} from "./chunk-FFGALWM2.js";
|
|
7
|
+
import {
|
|
8
|
+
cn
|
|
9
|
+
} from "./chunk-7NTT2UXP.js";
|
|
7
10
|
import {
|
|
8
11
|
FieldMessage
|
|
9
12
|
} from "./chunk-E5ZIKIGB.js";
|
|
10
13
|
import {
|
|
11
14
|
useFieldA11y
|
|
12
15
|
} from "./chunk-HN5AFDQA.js";
|
|
13
|
-
import {
|
|
14
|
-
cn
|
|
15
|
-
} from "./chunk-7NTT2UXP.js";
|
|
16
16
|
|
|
17
17
|
// src/components/NumberInput/NumberInput.tsx
|
|
18
18
|
import { useState } from "react";
|
|
@@ -211,4 +211,4 @@ export {
|
|
|
211
211
|
numberInputVariants,
|
|
212
212
|
NumberInput
|
|
213
213
|
};
|
|
214
|
-
//# sourceMappingURL=chunk-
|
|
214
|
+
//# sourceMappingURL=chunk-S3JTU4FH.js.map
|
|
@@ -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/Menubar/Menubar.tsx
|
|
13
13
|
var _react = require('react');
|
|
@@ -212,4 +212,4 @@ function MenubarSubContent({ size, className, ...props }) {
|
|
|
212
212
|
|
|
213
213
|
|
|
214
214
|
exports.menubarContentVariants = menubarContentVariants; exports.menubarTriggerVariants = menubarTriggerVariants; exports.Menubar = Menubar; exports.MenubarMenu = MenubarMenu; exports.MenubarTrigger = MenubarTrigger; exports.MenubarContent = MenubarContent; exports.MenubarItem = MenubarItem; exports.MenubarCheckboxItem = MenubarCheckboxItem; exports.MenubarRadioGroup = MenubarRadioGroup; exports.MenubarRadioItem = MenubarRadioItem; exports.MenubarLabel = MenubarLabel; exports.MenubarSeparator = MenubarSeparator; exports.MenubarGroup = MenubarGroup; exports.MenubarSub = MenubarSub; exports.MenubarSubTrigger = MenubarSubTrigger; exports.MenubarSubContent = MenubarSubContent;
|
|
215
|
-
//# sourceMappingURL=chunk-
|
|
215
|
+
//# sourceMappingURL=chunk-S6FRVWCG.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-RH3CQOEI.cjs","../src/components/Menubar/Menubar.tsx"],"names":[],"mappings":"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","file":"/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-RH3CQOEI.cjs","sourcesContent":[null,"'use client';\n\nimport { useContext, type ReactNode } from 'react';\nimport { Menubar as MenubarPrimitive } from 'radix-ui';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\nimport { Check, ChevronRight } from '../../internal/icons';\nimport { DgaContext } from '../../providers/DgaContext';\n\n// ─── 1. Variants ─── //\n\n// Size lives on the dropdown panel (Content / SubContent), mirroring\n// DropdownMenu. The bar itself is a single size, so it carries no cva.\nconst menubarContentVariants = cva('ddga-menubar-menu', {\n variants: {\n size: {\n sm: 'ddga-menubar-menu--sm',\n md: 'ddga-menubar-menu--md',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n});\n\n// Trigger look. `default` = flat menu-bar idiom (text + SA-green open underline);\n// `outline` = bordered button-style chip. Apply the same variant to every\n// trigger in a bar for a consistent look.\nconst menubarTriggerVariants = cva('ddga-menubar__trigger', {\n variants: {\n variant: {\n default: 'ddga-menubar__trigger--default',\n outline: 'ddga-menubar__trigger--outline',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n});\n\n// ─── 2. Bar (Root + Menu + Trigger) ─── //\n\ntype MenubarProps = React.ComponentProps<typeof MenubarPrimitive.Root>;\n\nfunction Menubar({ className, ...props }: MenubarProps) {\n return (\n <MenubarPrimitive.Root\n data-slot=\"menubar\"\n className={cn('ddga-menubar', className)}\n {...props}\n />\n );\n}\n\ntype MenubarMenuProps = React.ComponentProps<typeof MenubarPrimitive.Menu>;\n\nfunction MenubarMenu(props: MenubarMenuProps) {\n return <MenubarPrimitive.Menu {...props} />;\n}\n\ntype MenubarTriggerProps = React.ComponentProps<typeof MenubarPrimitive.Trigger> &\n VariantProps<typeof menubarTriggerVariants>;\n\nfunction MenubarTrigger({ variant, className, ...props }: MenubarTriggerProps) {\n return (\n <MenubarPrimitive.Trigger\n data-slot=\"menubar-trigger\"\n data-variant={variant ?? 'default'}\n className={cn(menubarTriggerVariants({ variant }), className)}\n {...props}\n />\n );\n}\n\n// ─── 3. Content (portal-anchored) ─── //\n\ntype MenubarContentProps = React.ComponentProps<typeof MenubarPrimitive.Content> &\n VariantProps<typeof menubarContentVariants>;\n\nfunction MenubarContent({ size, className, sideOffset = 6, ...props }: MenubarContentProps) {\n // Radix Portal defaults to <body>, which doesn't inherit DgaProvider's\n // data-theme / CSS vars. Re-anchor at the provider's body-level portal\n // container (mirrors data-theme + dir + theme vars) so the menu inherits\n // theme AND escapes any clipping or transform ancestor. Falls back to\n // <body> when used outside a provider. (Same pattern as DropdownMenu.)\n const ctx = useContext(DgaContext);\n const portalContainer = ctx?.portalEl ?? ctx?.rootEl ?? undefined;\n\n return (\n <MenubarPrimitive.Portal container={portalContainer}>\n <MenubarPrimitive.Content\n data-slot=\"menubar-content\"\n sideOffset={sideOffset}\n className={cn(menubarContentVariants({ size }), className)}\n {...props}\n />\n </MenubarPrimitive.Portal>\n );\n}\n\n// ─── 4. Item + variants ─── //\n\ntype MenubarItemProps = React.ComponentProps<typeof MenubarPrimitive.Item> & {\n /** Style as a destructive action (red text, red hover). */\n destructive?: boolean;\n /** Icon rendered before the label. Sized to 1em. */\n startIcon?: ReactNode;\n /** Trailing text shown muted, e.g. a keyboard shortcut hint (\"⌘K\"). */\n shortcut?: ReactNode;\n};\n\nfunction MenubarItem({\n className,\n destructive,\n startIcon,\n shortcut,\n children,\n ...props\n}: MenubarItemProps) {\n return (\n <MenubarPrimitive.Item\n data-slot=\"menubar-item\"\n data-destructive={destructive ? '' : undefined}\n className={cn('ddga-menubar-menu__item', className)}\n {...props}\n >\n {startIcon ? (\n <span className=\"ddga-menubar-menu__icon\" aria-hidden=\"true\">\n {startIcon}\n </span>\n ) : null}\n <span className=\"ddga-menubar-menu__label\">{children}</span>\n {shortcut ? (\n <span className=\"ddga-menubar-menu__shortcut\" aria-hidden=\"true\">\n {shortcut}\n </span>\n ) : null}\n </MenubarPrimitive.Item>\n );\n}\n\n// ─── 5. CheckboxItem + RadioItem ─── //\n\ntype MenubarCheckboxItemProps = React.ComponentProps<typeof MenubarPrimitive.CheckboxItem>;\n\nfunction MenubarCheckboxItem({\n className,\n children,\n onSelect,\n ...props\n}: MenubarCheckboxItemProps) {\n // Default UX: keep the menu open across toggles so consumers can flip\n // multiple checkboxes in one pass. If a consumer passes their own onSelect,\n // they own the behavior (call `event.preventDefault()` to keep this default).\n const handleSelect =\n onSelect ??\n ((event: Event) => {\n event.preventDefault();\n });\n return (\n <MenubarPrimitive.CheckboxItem\n data-slot=\"menubar-checkbox-item\"\n className={cn('ddga-menubar-menu__item', 'ddga-menubar-menu__item--checkable', className)}\n onSelect={handleSelect}\n {...props}\n >\n <span className=\"ddga-menubar-menu__indicator\" aria-hidden=\"true\">\n <MenubarPrimitive.ItemIndicator>\n <Check className=\"ddga-menubar-menu__indicator-icon\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n <span className=\"ddga-menubar-menu__label\">{children}</span>\n </MenubarPrimitive.CheckboxItem>\n );\n}\n\ntype MenubarRadioGroupProps = React.ComponentProps<typeof MenubarPrimitive.RadioGroup>;\n\nfunction MenubarRadioGroup(props: MenubarRadioGroupProps) {\n return <MenubarPrimitive.RadioGroup data-slot=\"menubar-radio-group\" {...props} />;\n}\n\ntype MenubarRadioItemProps = React.ComponentProps<typeof MenubarPrimitive.RadioItem>;\n\nfunction MenubarRadioItem({ className, children, onSelect, ...props }: MenubarRadioItemProps) {\n // Same default-open behavior as CheckboxItem — selecting a radio without\n // the menu visually confirming the new state is a frustrating dead-feel.\n const handleSelect =\n onSelect ??\n ((event: Event) => {\n event.preventDefault();\n });\n return (\n <MenubarPrimitive.RadioItem\n data-slot=\"menubar-radio-item\"\n className={cn('ddga-menubar-menu__item', 'ddga-menubar-menu__item--checkable', className)}\n onSelect={handleSelect}\n {...props}\n >\n <span className=\"ddga-menubar-menu__indicator\" aria-hidden=\"true\">\n <MenubarPrimitive.ItemIndicator>\n <span className=\"ddga-menubar-menu__radio-dot\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n <span className=\"ddga-menubar-menu__label\">{children}</span>\n </MenubarPrimitive.RadioItem>\n );\n}\n\n// ─── 6. Label + Separator + Group ─── //\n\ntype MenubarLabelProps = React.ComponentProps<typeof MenubarPrimitive.Label>;\n\nfunction MenubarLabel({ className, ...props }: MenubarLabelProps) {\n return (\n <MenubarPrimitive.Label\n data-slot=\"menubar-label\"\n className={cn('ddga-menubar-menu__group-label', className)}\n {...props}\n />\n );\n}\n\ntype MenubarSeparatorProps = React.ComponentProps<typeof MenubarPrimitive.Separator>;\n\nfunction MenubarSeparator({ className, ...props }: MenubarSeparatorProps) {\n return (\n <MenubarPrimitive.Separator\n data-slot=\"menubar-separator\"\n className={cn('ddga-menubar-menu__separator', className)}\n {...props}\n />\n );\n}\n\ntype MenubarGroupProps = React.ComponentProps<typeof MenubarPrimitive.Group>;\n\nfunction MenubarGroup(props: MenubarGroupProps) {\n return <MenubarPrimitive.Group data-slot=\"menubar-group\" {...props} />;\n}\n\n// ─── 7. Submenu (Sub + SubTrigger + SubContent) ─── //\n\ntype MenubarSubProps = React.ComponentProps<typeof MenubarPrimitive.Sub>;\n\nfunction MenubarSub(props: MenubarSubProps) {\n return <MenubarPrimitive.Sub {...props} />;\n}\n\ntype MenubarSubTriggerProps = React.ComponentProps<typeof MenubarPrimitive.SubTrigger> & {\n startIcon?: ReactNode;\n};\n\nfunction MenubarSubTrigger({ className, startIcon, children, ...props }: MenubarSubTriggerProps) {\n return (\n <MenubarPrimitive.SubTrigger\n data-slot=\"menubar-sub-trigger\"\n className={cn('ddga-menubar-menu__item', 'ddga-menubar-menu__item--sub', className)}\n {...props}\n >\n {startIcon ? (\n <span className=\"ddga-menubar-menu__icon\" aria-hidden=\"true\">\n {startIcon}\n </span>\n ) : null}\n <span className=\"ddga-menubar-menu__label\">{children}</span>\n <ChevronRight className=\"ddga-menubar-menu__sub-chevron\" aria-hidden=\"true\" />\n </MenubarPrimitive.SubTrigger>\n );\n}\n\ntype MenubarSubContentProps = React.ComponentProps<typeof MenubarPrimitive.SubContent> &\n VariantProps<typeof menubarContentVariants>;\n\nfunction MenubarSubContent({ size, className, ...props }: MenubarSubContentProps) {\n const ctx = useContext(DgaContext);\n const portalContainer = ctx?.portalEl ?? ctx?.rootEl ?? undefined;\n\n return (\n <MenubarPrimitive.Portal container={portalContainer}>\n <MenubarPrimitive.SubContent\n data-slot=\"menubar-sub-content\"\n className={cn(menubarContentVariants({ size }), className)}\n {...props}\n />\n </MenubarPrimitive.Portal>\n );\n}\n\n// ─── 8. Exports ─── //\n\nexport {\n Menubar,\n MenubarMenu,\n MenubarTrigger,\n MenubarContent,\n MenubarItem,\n MenubarCheckboxItem,\n MenubarRadioGroup,\n MenubarRadioItem,\n MenubarLabel,\n MenubarSeparator,\n MenubarGroup,\n MenubarSub,\n MenubarSubTrigger,\n MenubarSubContent,\n menubarContentVariants,\n menubarTriggerVariants,\n};\nexport type {\n MenubarProps,\n MenubarMenuProps,\n MenubarTriggerProps,\n MenubarContentProps,\n MenubarItemProps,\n MenubarCheckboxItemProps,\n MenubarRadioGroupProps,\n MenubarRadioItemProps,\n MenubarLabelProps,\n MenubarSeparatorProps,\n MenubarGroupProps,\n MenubarSubProps,\n MenubarSubTriggerProps,\n MenubarSubContentProps,\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-S6FRVWCG.cjs","../src/components/Menubar/Menubar.tsx"],"names":[],"mappings":"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","file":"/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-S6FRVWCG.cjs","sourcesContent":[null,"'use client';\n\nimport { useContext, type ReactNode } from 'react';\nimport { Menubar as MenubarPrimitive } from 'radix-ui';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\nimport { Check, ChevronRight } from '../../internal/icons';\nimport { DgaContext } from '../../providers/DgaContext';\n\n// ─── 1. Variants ─── //\n\n// Size lives on the dropdown panel (Content / SubContent), mirroring\n// DropdownMenu. The bar itself is a single size, so it carries no cva.\nconst menubarContentVariants = cva('ddga-menubar-menu', {\n variants: {\n size: {\n sm: 'ddga-menubar-menu--sm',\n md: 'ddga-menubar-menu--md',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n});\n\n// Trigger look. `default` = flat menu-bar idiom (text + SA-green open underline);\n// `outline` = bordered button-style chip. Apply the same variant to every\n// trigger in a bar for a consistent look.\nconst menubarTriggerVariants = cva('ddga-menubar__trigger', {\n variants: {\n variant: {\n default: 'ddga-menubar__trigger--default',\n outline: 'ddga-menubar__trigger--outline',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n});\n\n// ─── 2. Bar (Root + Menu + Trigger) ─── //\n\ntype MenubarProps = React.ComponentProps<typeof MenubarPrimitive.Root>;\n\nfunction Menubar({ className, ...props }: MenubarProps) {\n return (\n <MenubarPrimitive.Root\n data-slot=\"menubar\"\n className={cn('ddga-menubar', className)}\n {...props}\n />\n );\n}\n\ntype MenubarMenuProps = React.ComponentProps<typeof MenubarPrimitive.Menu>;\n\nfunction MenubarMenu(props: MenubarMenuProps) {\n return <MenubarPrimitive.Menu {...props} />;\n}\n\ntype MenubarTriggerProps = React.ComponentProps<typeof MenubarPrimitive.Trigger> &\n VariantProps<typeof menubarTriggerVariants>;\n\nfunction MenubarTrigger({ variant, className, ...props }: MenubarTriggerProps) {\n return (\n <MenubarPrimitive.Trigger\n data-slot=\"menubar-trigger\"\n data-variant={variant ?? 'default'}\n className={cn(menubarTriggerVariants({ variant }), className)}\n {...props}\n />\n );\n}\n\n// ─── 3. Content (portal-anchored) ─── //\n\ntype MenubarContentProps = React.ComponentProps<typeof MenubarPrimitive.Content> &\n VariantProps<typeof menubarContentVariants>;\n\nfunction MenubarContent({ size, className, sideOffset = 6, ...props }: MenubarContentProps) {\n // Radix Portal defaults to <body>, which doesn't inherit DgaProvider's\n // data-theme / CSS vars. Re-anchor at the provider's body-level portal\n // container (mirrors data-theme + dir + theme vars) so the menu inherits\n // theme AND escapes any clipping or transform ancestor. Falls back to\n // <body> when used outside a provider. (Same pattern as DropdownMenu.)\n const ctx = useContext(DgaContext);\n const portalContainer = ctx?.portalEl ?? ctx?.rootEl ?? undefined;\n\n return (\n <MenubarPrimitive.Portal container={portalContainer}>\n <MenubarPrimitive.Content\n data-slot=\"menubar-content\"\n sideOffset={sideOffset}\n className={cn(menubarContentVariants({ size }), className)}\n {...props}\n />\n </MenubarPrimitive.Portal>\n );\n}\n\n// ─── 4. Item + variants ─── //\n\ntype MenubarItemProps = React.ComponentProps<typeof MenubarPrimitive.Item> & {\n /** Style as a destructive action (red text, red hover). */\n destructive?: boolean;\n /** Icon rendered before the label. Sized to 1em. */\n startIcon?: ReactNode;\n /** Trailing text shown muted, e.g. a keyboard shortcut hint (\"⌘K\"). */\n shortcut?: ReactNode;\n};\n\nfunction MenubarItem({\n className,\n destructive,\n startIcon,\n shortcut,\n children,\n ...props\n}: MenubarItemProps) {\n return (\n <MenubarPrimitive.Item\n data-slot=\"menubar-item\"\n data-destructive={destructive ? '' : undefined}\n className={cn('ddga-menubar-menu__item', className)}\n {...props}\n >\n {startIcon ? (\n <span className=\"ddga-menubar-menu__icon\" aria-hidden=\"true\">\n {startIcon}\n </span>\n ) : null}\n <span className=\"ddga-menubar-menu__label\">{children}</span>\n {shortcut ? (\n <span className=\"ddga-menubar-menu__shortcut\" aria-hidden=\"true\">\n {shortcut}\n </span>\n ) : null}\n </MenubarPrimitive.Item>\n );\n}\n\n// ─── 5. CheckboxItem + RadioItem ─── //\n\ntype MenubarCheckboxItemProps = React.ComponentProps<typeof MenubarPrimitive.CheckboxItem>;\n\nfunction MenubarCheckboxItem({\n className,\n children,\n onSelect,\n ...props\n}: MenubarCheckboxItemProps) {\n // Default UX: keep the menu open across toggles so consumers can flip\n // multiple checkboxes in one pass. If a consumer passes their own onSelect,\n // they own the behavior (call `event.preventDefault()` to keep this default).\n const handleSelect =\n onSelect ??\n ((event: Event) => {\n event.preventDefault();\n });\n return (\n <MenubarPrimitive.CheckboxItem\n data-slot=\"menubar-checkbox-item\"\n className={cn('ddga-menubar-menu__item', 'ddga-menubar-menu__item--checkable', className)}\n onSelect={handleSelect}\n {...props}\n >\n <span className=\"ddga-menubar-menu__indicator\" aria-hidden=\"true\">\n <MenubarPrimitive.ItemIndicator>\n <Check className=\"ddga-menubar-menu__indicator-icon\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n <span className=\"ddga-menubar-menu__label\">{children}</span>\n </MenubarPrimitive.CheckboxItem>\n );\n}\n\ntype MenubarRadioGroupProps = React.ComponentProps<typeof MenubarPrimitive.RadioGroup>;\n\nfunction MenubarRadioGroup(props: MenubarRadioGroupProps) {\n return <MenubarPrimitive.RadioGroup data-slot=\"menubar-radio-group\" {...props} />;\n}\n\ntype MenubarRadioItemProps = React.ComponentProps<typeof MenubarPrimitive.RadioItem>;\n\nfunction MenubarRadioItem({ className, children, onSelect, ...props }: MenubarRadioItemProps) {\n // Same default-open behavior as CheckboxItem — selecting a radio without\n // the menu visually confirming the new state is a frustrating dead-feel.\n const handleSelect =\n onSelect ??\n ((event: Event) => {\n event.preventDefault();\n });\n return (\n <MenubarPrimitive.RadioItem\n data-slot=\"menubar-radio-item\"\n className={cn('ddga-menubar-menu__item', 'ddga-menubar-menu__item--checkable', className)}\n onSelect={handleSelect}\n {...props}\n >\n <span className=\"ddga-menubar-menu__indicator\" aria-hidden=\"true\">\n <MenubarPrimitive.ItemIndicator>\n <span className=\"ddga-menubar-menu__radio-dot\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n <span className=\"ddga-menubar-menu__label\">{children}</span>\n </MenubarPrimitive.RadioItem>\n );\n}\n\n// ─── 6. Label + Separator + Group ─── //\n\ntype MenubarLabelProps = React.ComponentProps<typeof MenubarPrimitive.Label>;\n\nfunction MenubarLabel({ className, ...props }: MenubarLabelProps) {\n return (\n <MenubarPrimitive.Label\n data-slot=\"menubar-label\"\n className={cn('ddga-menubar-menu__group-label', className)}\n {...props}\n />\n );\n}\n\ntype MenubarSeparatorProps = React.ComponentProps<typeof MenubarPrimitive.Separator>;\n\nfunction MenubarSeparator({ className, ...props }: MenubarSeparatorProps) {\n return (\n <MenubarPrimitive.Separator\n data-slot=\"menubar-separator\"\n className={cn('ddga-menubar-menu__separator', className)}\n {...props}\n />\n );\n}\n\ntype MenubarGroupProps = React.ComponentProps<typeof MenubarPrimitive.Group>;\n\nfunction MenubarGroup(props: MenubarGroupProps) {\n return <MenubarPrimitive.Group data-slot=\"menubar-group\" {...props} />;\n}\n\n// ─── 7. Submenu (Sub + SubTrigger + SubContent) ─── //\n\ntype MenubarSubProps = React.ComponentProps<typeof MenubarPrimitive.Sub>;\n\nfunction MenubarSub(props: MenubarSubProps) {\n return <MenubarPrimitive.Sub {...props} />;\n}\n\ntype MenubarSubTriggerProps = React.ComponentProps<typeof MenubarPrimitive.SubTrigger> & {\n startIcon?: ReactNode;\n};\n\nfunction MenubarSubTrigger({ className, startIcon, children, ...props }: MenubarSubTriggerProps) {\n return (\n <MenubarPrimitive.SubTrigger\n data-slot=\"menubar-sub-trigger\"\n className={cn('ddga-menubar-menu__item', 'ddga-menubar-menu__item--sub', className)}\n {...props}\n >\n {startIcon ? (\n <span className=\"ddga-menubar-menu__icon\" aria-hidden=\"true\">\n {startIcon}\n </span>\n ) : null}\n <span className=\"ddga-menubar-menu__label\">{children}</span>\n <ChevronRight className=\"ddga-menubar-menu__sub-chevron\" aria-hidden=\"true\" />\n </MenubarPrimitive.SubTrigger>\n );\n}\n\ntype MenubarSubContentProps = React.ComponentProps<typeof MenubarPrimitive.SubContent> &\n VariantProps<typeof menubarContentVariants>;\n\nfunction MenubarSubContent({ size, className, ...props }: MenubarSubContentProps) {\n const ctx = useContext(DgaContext);\n const portalContainer = ctx?.portalEl ?? ctx?.rootEl ?? undefined;\n\n return (\n <MenubarPrimitive.Portal container={portalContainer}>\n <MenubarPrimitive.SubContent\n data-slot=\"menubar-sub-content\"\n className={cn(menubarContentVariants({ size }), className)}\n {...props}\n />\n </MenubarPrimitive.Portal>\n );\n}\n\n// ─── 8. Exports ─── //\n\nexport {\n Menubar,\n MenubarMenu,\n MenubarTrigger,\n MenubarContent,\n MenubarItem,\n MenubarCheckboxItem,\n MenubarRadioGroup,\n MenubarRadioItem,\n MenubarLabel,\n MenubarSeparator,\n MenubarGroup,\n MenubarSub,\n MenubarSubTrigger,\n MenubarSubContent,\n menubarContentVariants,\n menubarTriggerVariants,\n};\nexport type {\n MenubarProps,\n MenubarMenuProps,\n MenubarTriggerProps,\n MenubarContentProps,\n MenubarItemProps,\n MenubarCheckboxItemProps,\n MenubarRadioGroupProps,\n MenubarRadioItemProps,\n MenubarLabelProps,\n MenubarSeparatorProps,\n MenubarGroupProps,\n MenubarSubProps,\n MenubarSubTriggerProps,\n MenubarSubContentProps,\n};\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
TextInput
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-4G42XPSB.js";
|
|
4
4
|
import {
|
|
5
5
|
Button
|
|
6
6
|
} from "./chunk-GQAX2CH6.js";
|
|
@@ -127,4 +127,4 @@ function SearchBox({
|
|
|
127
127
|
export {
|
|
128
128
|
SearchBox
|
|
129
129
|
};
|
|
130
|
-
//# sourceMappingURL=chunk-
|
|
130
|
+
//# sourceMappingURL=chunk-S7KATX5T.js.map
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Star
|
|
3
3
|
} from "./chunk-FFGALWM2.js";
|
|
4
|
+
import {
|
|
5
|
+
cn
|
|
6
|
+
} from "./chunk-7NTT2UXP.js";
|
|
4
7
|
import {
|
|
5
8
|
FieldMessage
|
|
6
9
|
} from "./chunk-E5ZIKIGB.js";
|
|
7
10
|
import {
|
|
8
11
|
useFieldA11y
|
|
9
12
|
} from "./chunk-HN5AFDQA.js";
|
|
10
|
-
import {
|
|
11
|
-
cn
|
|
12
|
-
} from "./chunk-7NTT2UXP.js";
|
|
13
13
|
|
|
14
14
|
// src/components/Rating/Rating.tsx
|
|
15
15
|
import { useRef, useState } from "react";
|
|
@@ -187,4 +187,4 @@ export {
|
|
|
187
187
|
ratingVariants,
|
|
188
188
|
Rating
|
|
189
189
|
};
|
|
190
|
-
//# sourceMappingURL=chunk-
|
|
190
|
+
//# sourceMappingURL=chunk-SHP4KSPL.js.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
+
import {
|
|
2
|
+
cn
|
|
3
|
+
} from "./chunk-7NTT2UXP.js";
|
|
1
4
|
import {
|
|
2
5
|
FieldMessage
|
|
3
6
|
} from "./chunk-E5ZIKIGB.js";
|
|
4
7
|
import {
|
|
5
8
|
useFieldA11y
|
|
6
9
|
} from "./chunk-HN5AFDQA.js";
|
|
7
|
-
import {
|
|
8
|
-
cn
|
|
9
|
-
} from "./chunk-7NTT2UXP.js";
|
|
10
10
|
|
|
11
11
|
// src/components/Radio/Radio.tsx
|
|
12
12
|
import { useId } from "react";
|
|
@@ -137,4 +137,4 @@ export {
|
|
|
137
137
|
RadioGroup,
|
|
138
138
|
Radio
|
|
139
139
|
};
|
|
140
|
-
//# sourceMappingURL=chunk-
|
|
140
|
+
//# sourceMappingURL=chunk-SZRP2ODO.js.map
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Check
|
|
3
3
|
} from "./chunk-FFGALWM2.js";
|
|
4
|
+
import {
|
|
5
|
+
cn
|
|
6
|
+
} from "./chunk-7NTT2UXP.js";
|
|
4
7
|
import {
|
|
5
8
|
FieldMessage
|
|
6
9
|
} from "./chunk-E5ZIKIGB.js";
|
|
7
10
|
import {
|
|
8
11
|
useFieldA11y
|
|
9
12
|
} from "./chunk-HN5AFDQA.js";
|
|
10
|
-
import {
|
|
11
|
-
cn
|
|
12
|
-
} from "./chunk-7NTT2UXP.js";
|
|
13
13
|
|
|
14
14
|
// src/components/Checkbox/Checkbox.tsx
|
|
15
15
|
import { Checkbox as CheckboxPrimitive } from "radix-ui";
|
|
@@ -102,4 +102,4 @@ export {
|
|
|
102
102
|
checkboxVariants,
|
|
103
103
|
Checkbox
|
|
104
104
|
};
|
|
105
|
-
//# sourceMappingURL=chunk-
|
|
105
|
+
//# sourceMappingURL=chunk-T6RGNFKN.js.map
|
|
@@ -28,7 +28,9 @@ function DgaProvider({
|
|
|
28
28
|
if (typeof document === "undefined") return;
|
|
29
29
|
const el = document.createElement("div");
|
|
30
30
|
el.setAttribute("data-slot", "dga-portal");
|
|
31
|
-
el.style.position = "
|
|
31
|
+
el.style.position = "fixed";
|
|
32
|
+
el.style.top = "0";
|
|
33
|
+
el.style.left = "0";
|
|
32
34
|
el.style.zIndex = "50";
|
|
33
35
|
document.body.appendChild(el);
|
|
34
36
|
portalRef.current = el;
|
|
@@ -74,4 +76,4 @@ function DgaProvider({
|
|
|
74
76
|
|
|
75
77
|
|
|
76
78
|
exports.DgaProvider = DgaProvider;
|
|
77
|
-
//# sourceMappingURL=chunk-
|
|
79
|
+
//# sourceMappingURL=chunk-TBI3YP65.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-TBI3YP65.cjs","../src/providers/DgaProvider.tsx"],"names":[],"mappings":"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","file":"/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-TBI3YP65.cjs","sourcesContent":[null,"'use client';\n\nimport { useState, useMemo, useContext, useEffect, useRef } from 'react';\nimport { Direction as DirectionPrimitive, Tooltip as TooltipPrimitive } from 'radix-ui';\nimport { buildTheme, type DgaTheme } from '@dev-dga/tokens';\nimport { DgaContext, type DgaContextValue } from './DgaContext';\n\ntype DgaRootElement =\n | 'div'\n | 'main'\n | 'nav'\n | 'section'\n | 'article'\n | 'aside'\n | 'header'\n | 'footer';\n\nexport interface DgaProviderProps {\n dir?: 'ltr' | 'rtl';\n locale?: string;\n mode?: 'light' | 'dark';\n /**\n * Brand theme. `theme.primary` accepts a palette name (`'lavender'`),\n * any CSS color string (`'#7C3AED'` , hover/active auto-derived via\n * `color-mix()`), or an explicit `{ base, hover, active, foreground? }`\n * triplet. The override-object pattern (`style={{ '--ddga-color-primary':\n * '...' }}`) still works , `style` wins over `theme`.\n */\n theme?: DgaTheme;\n as?: DgaRootElement;\n className?: string;\n style?: React.CSSProperties;\n children: React.ReactNode;\n}\n\nexport function DgaProvider({\n dir = 'ltr',\n locale,\n mode = 'light',\n theme,\n as: Component = 'div',\n className,\n style: consumerStyle,\n children,\n}: DgaProviderProps) {\n const parentCtx = useContext(DgaContext);\n const isNested = parentCtx !== null;\n // Callback ref + state so context subscribers (e.g. Select's portal\n // container) re-render when the element actually mounts. With useRef\n // the .current update wouldn't trigger a render and a defaultOpen\n // portal would race to <body> before the ref populated.\n const [rootEl, setRootEl] = useState<HTMLElement | null>(null);\n // The portal element is held in a ref (we directly mutate its attributes\n // + inline CSS variables, which the react-hooks/immutability lint rule\n // forbids on state values). A parallel `portalEl` state mirrors the ref\n // so context subscribers re-render once the element mounts.\n const portalRef = useRef<HTMLDivElement | null>(null);\n const [portalEl, setPortalEl] = useState<HTMLElement | null>(null);\n const resolvedLocale = locale ?? (dir === 'rtl' ? 'ar' : 'en');\n\n // Memoize by reference. Stable palette-name themes (`{ primary: 'lavender' }`\n // declared at module scope) never recompute; consumers passing an inline\n // object accept a per-render `buildTheme` call (cheap , small switch\n // statement over a single string).\n const themeVars = useMemo(() => (theme ? buildTheme(theme) : null), [theme]);\n\n // ─── Body-level portal container ─── //\n //\n // Create a sibling-of-body div that mirrors this provider's theme\n // attributes. Overlay portals (Modal, Drawer, DropdownMenu, etc.) anchor\n // here instead of `rootEl` so:\n //\n // - They escape `overflow: hidden` / `transform` ancestors the consumer\n // might wrap us in (Storybook's docs-story preview block is the\n // motivating case — a `transform` ancestor breaks `position: fixed`\n // descendants, clipping modals to the preview rect).\n // - Theme variables, dark mode, RTL still resolve because we copy\n // `data-theme`, `dir`, and inline CSS vars from this provider onto\n // the portal element.\n //\n // One container per DgaProvider instance — cleaned up on unmount. SSR-safe\n // (effects only run client-side; consumers see `portalEl: null` and the\n // overlays fall back to `rootEl`).\n useEffect(() => {\n if (typeof document === 'undefined') return;\n const el = document.createElement('div');\n el.setAttribute('data-slot', 'dga-portal');\n // Fixed at the viewport origin, NOT `relative`. This zero-size div is a\n // child of <body>, so in flow it is placed by whatever layout body uses —\n // a centered flex body parks it at the far edge — and because it is\n // positioned it becomes the containing block for react-aria's absolutely\n // positioned popovers, which then resolve against that stray origin and\n // render off-screen (DatePicker on a `justify-content: center` body).\n // `absolute; top/left: 0` also fixes the origin but breaks react-aria's\n // `maxHeight` on a scrolled page (it collapses the popover to 0) — fixed\n // keeps the container rect viewport-relative, which its math expects.\n // z-index still applies (position !== static), and Radix overlays are\n // unaffected: a plain fixed ancestor is not a containing block for fixed\n // descendants, so they still resolve to the viewport.\n el.style.position = 'fixed';\n el.style.top = '0';\n el.style.left = '0';\n el.style.zIndex = '50';\n document.body.appendChild(el);\n portalRef.current = el;\n // The setState here exposes the freshly-mounted DOM element to context\n // subscribers (overlay components) so they re-render and target the\n // portal on first commit. Single call on mount + single on unmount;\n // not the cascading-render footgun the lint rule guards against.\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setPortalEl(el);\n return () => {\n el.remove();\n portalRef.current = null;\n\n setPortalEl(null);\n };\n }, []);\n\n // Mirror theme attributes onto the portal element so its descendants\n // resolve `var(--ddga-*)` and respect dark mode / RTL the same way as\n // descendants of `rootEl`. We mutate via the ref (not the state) so the\n // react-hooks/immutability rule stays happy — and run this on every prop\n // change that affects appearance.\n useEffect(() => {\n const el = portalRef.current;\n if (!el) return;\n el.setAttribute('data-theme', mode);\n el.setAttribute('dir', dir);\n el.style.colorScheme = mode;\n if (themeVars) {\n for (const [k, v] of Object.entries(themeVars)) {\n el.style.setProperty(k, String(v));\n }\n }\n }, [mode, dir, themeVars, portalEl]);\n\n const ctxValue = useMemo<DgaContextValue>(\n () => ({ dir, locale: resolvedLocale, mode, rootEl, portalEl }),\n [dir, resolvedLocale, mode, rootEl, portalEl],\n );\n\n // Radix's Direction.Provider propagates `dir` to portal-rendered content\n // (Tooltip/Select/Toast/Modal) that would otherwise inherit body dir,\n // not the dir on this wrapper element. Nested providers reuse the parent\n // direction via their own Direction.Provider, so this is safe to repeat.\n const inner = <DirectionPrimitive.Provider dir={dir}>{children}</DirectionPrimitive.Provider>;\n\n return (\n <DgaContext.Provider value={ctxValue}>\n <Component\n ref={setRootEl}\n dir={dir}\n lang={resolvedLocale}\n data-slot=\"dga-root\"\n data-theme={mode}\n className={className}\n // Order: colorScheme → theme vars → consumer style. A manually-\n // supplied `style` overrides `theme` (escape hatch preserved per\n // THEMING-PLAN.md: every `--ddga-*` remains plain-CSS overridable).\n style={{ colorScheme: mode, ...(themeVars ?? {}), ...consumerStyle }}\n >\n {isNested ? (\n inner\n ) : (\n <TooltipPrimitive.Provider delayDuration={300} skipDelayDuration={100}>\n {inner}\n </TooltipPrimitive.Provider>\n )}\n </Component>\n </DgaContext.Provider>\n );\n}\n"]}
|
|
@@ -10,15 +10,15 @@ import {
|
|
|
10
10
|
Exclamation,
|
|
11
11
|
Upload
|
|
12
12
|
} from "./chunk-FFGALWM2.js";
|
|
13
|
+
import {
|
|
14
|
+
cn
|
|
15
|
+
} from "./chunk-7NTT2UXP.js";
|
|
13
16
|
import {
|
|
14
17
|
FieldMessage
|
|
15
18
|
} from "./chunk-E5ZIKIGB.js";
|
|
16
19
|
import {
|
|
17
20
|
useFieldA11y
|
|
18
21
|
} from "./chunk-HN5AFDQA.js";
|
|
19
|
-
import {
|
|
20
|
-
cn
|
|
21
|
-
} from "./chunk-7NTT2UXP.js";
|
|
22
22
|
|
|
23
23
|
// src/components/FileUpload/FileUpload.tsx
|
|
24
24
|
import { useRef, useState } from "react";
|
|
@@ -269,4 +269,4 @@ function FileUpload({
|
|
|
269
269
|
export {
|
|
270
270
|
FileUpload
|
|
271
271
|
};
|
|
272
|
-
//# sourceMappingURL=chunk-
|
|
272
|
+
//# sourceMappingURL=chunk-TPZTJDCN.js.map
|
|
@@ -1,12 +1,12 @@
|
|
|
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
|
|
3
|
+
var _chunkV6MXOJQ4cjs = require('./chunk-V6MXOJQ4.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunk3UT22WQMcjs = require('./chunk-3UT22WQM.cjs');
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
var
|
|
9
|
+
var _chunkNH3KGR65cjs = require('./chunk-NH3KGR65.cjs');
|
|
10
10
|
|
|
11
11
|
// src/components/InputOTP/InputOTP.tsx
|
|
12
12
|
var _react = require('react');
|
|
@@ -213,4 +213,4 @@ function InputOTP({
|
|
|
213
213
|
|
|
214
214
|
|
|
215
215
|
exports.inputOTPVariants = inputOTPVariants; exports.InputOTP = InputOTP;
|
|
216
|
-
//# sourceMappingURL=chunk-
|
|
216
|
+
//# sourceMappingURL=chunk-TQH7AMQ2.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-J7XCG6SX.cjs","../src/components/InputOTP/InputOTP.tsx"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACRA,8BAAoE;AACpE,kEAAuC;AAiGnC,+CAAA;AA3FJ,IAAM,gBAAA,EAAkB,UAAA;AAMxB,IAAM,iBAAA,EAAmB,yCAAA,gBAAI,EAAkB;AAAA,EAC7C,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI,oBAAA;AAAA,MACJ,EAAA,EAAI,oBAAA;AAAA,MACJ,EAAA,EAAI;AAAA,IACN,CAAA;AAAA,IACA,KAAA,EAAO;AAAA,MACL,IAAA,EAAM;AAAA,IACR;AAAA,EACF,CAAA;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM;AAAA,EACR;AACF,CAAC,CAAA;AA4CD,SAAS,aAAA,CAAc,MAAA,EAAgB,UAAA,EAA4C;AACjF,EAAA,GAAA,CAAI,CAAC,WAAA,GAAc,UAAA,CAAW,OAAA,IAAW,CAAA,EAAG,OAAO,CAAC,MAAM,CAAA;AAC1D,EAAA,MAAM,IAAA,EAAM,UAAA,CAAW,MAAA,CAAO,CAAC,KAAA,EAAO,CAAA,EAAA,GAAM,MAAA,EAAQ,CAAA,EAAG,CAAC,CAAA;AACxD,EAAA,GAAA,CAAI,IAAA,IAAQ,MAAA,EAAQ;AAClB,IAAA,GAAA,CAAI,OAAA,CAAQ,GAAA,CAAI,SAAA,IAAa,aAAA,EAAe;AAC1C,MAAA,OAAA,CAAQ,IAAA;AAAA,QACN,CAAA,0DAAA,EAA6D,MAAM,CAAA,OAAA,EAC1D,GAAG,CAAA,iCAAA;AAAA,MACd,CAAA;AAAA,IACF;AACA,IAAA,OAAO,CAAC,MAAM,CAAA;AAAA,EAChB;AACA,EAAA,OAAO,UAAA;AACT;AAEA,SAAS,IAAA,CAAK;AAAA,EACZ,IAAA;AAAA,EACA,MAAA;AAAA,EACA,KAAA;AAAA,EACA;AACF,CAAA,EAKG;AACD,EAAA,uBACE,8BAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,gBAAA;AAAA,MACV,aAAA,EAAa,OAAA,GAAU,KAAA,CAAA;AAAA,MACvB,aAAA,EAAa,KAAA,GAAQ,KAAA,GAAQ,KAAA,CAAA;AAAA,MAC7B,SAAA,EAAU,sBAAA;AAAA,MAET,QAAA,EAAA;AAAA,QAAA,KAAA,GAAQ,KAAA,EAAQ,KAAA,EAAO,SAAA,EAAM,KAAA,EAAQ,IAAA;AAAA,QACrC,MAAA,mBACC,6BAAA,KAAC,EAAA,EAAI,aAAA,EAAY,MAAA,EAAO,WAAA,EAAU,iBAAA,EAAkB,SAAA,EAAU,wBAAA,CAAwB;AAAA,MAAA;AAAA,IAAA;AAAA,EAE1F,CAAA;AAEJ;AAIA,SAAS,QAAA,CAAS;AAAA,EAChB,EAAA,EAAI,UAAA;AAAA,EACJ,OAAA,EAAS,CAAA;AAAA,EACT,UAAA;AAAA,EACA,KAAA;AAAA,EACA,YAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AAAA,EACA,QAAA,EAAU,eAAA;AAAA,EACV,KAAA,EAAO,KAAA;AAAA,EACP,SAAA;AAAA,EACA,IAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,IAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA,UAAA;AAAA,EACA,YAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EACA,YAAA,EAAc,SAAA;AAAA,EACd,iBAAA,EAAmB,cAAA;AAAA,EACnB,GAAG;AACL,CAAA,EAAkB;AAChB,EAAA,MAAM,SAAA,EAAW,2BAAA,IAA6B,CAAA;AAC9C,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,EAAA,EAAI,6BAAA,KAAc,CAAA;AAC5C,EAAA,MAAM,aAAA,EAAe,MAAA,IAAU,KAAA,CAAA;AAC/B,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,EAAA,EAAI,6BAAA,iBAAS,YAAA,UAAgB,IAAE,CAAA;AAC3D,EAAA,MAAM,QAAA,EAAU,aAAA,EAAe,MAAA,EAAQ,QAAA;AAKvC,EAAA,MAAM,gBAAA,EAAkB,4BAAA,CAAQ,EAAA,GAAM;AACpC,IAAA,IAAI;AACF,MAAA,OAAO,IAAI,MAAA,CAAO,OAAO,CAAA;AAAA,IAC3B,EAAA,UAAQ;AACN,MAAA,GAAA,CAAI,OAAA,CAAQ,GAAA,CAAI,SAAA,IAAa,aAAA,EAAe;AAC1C,QAAA,OAAA,CAAQ,IAAA;AAAA,UACN,CAAA,sDAAA,EAAyD,OAAO,CAAA,+BAAA;AAAA,QAElE,CAAA;AAAA,MACF;AACA,MAAA,OAAO,IAAI,MAAA,CAAO,eAAe,CAAA;AAAA,IACnC;AAAA,EACF,CAAA,EAAG,CAAC,OAAO,CAAC,CAAA;AAIZ,EAAA,MAAM,aAAA,EAAe,2BAAA,IAA0B,CAAA;AAE/C,EAAA,MAAM,EAAE,OAAA,EAAS,OAAA,EAAS,QAAA,EAAU,QAAA,EAAU,eAAA,EAAiB,SAAA,EAAW,aAAa,EAAA,EACrF,4CAAA;AAAa,IACX,IAAA,EAAM,UAAA;AAAA,IACN,EAAA,EAAI,UAAA;AAAA,IACJ,KAAA;AAAA,IACA,KAAA;AAAA,IACA,YAAA;AAAA,IACA,UAAA;AAAA,IACA,YAAA,EAAc,SAAA;AAAA,IACd,iBAAA,EAAmB;AAAA,EACrB,CAAC,CAAA;AAEH,EAAA,SAAS,YAAA,CAAa,KAAA,EAA4C;AAIhE,IAAA,MAAM,KAAA,EAAO,KAAA,CAAM,MAAA,CAAO,KAAA,CAAM,OAAA,CAAQ,QAAA,EAAU,EAAE,CAAA,CAAE,KAAA,CAAM,CAAA,EAAG,MAAM,CAAA;AAIrE,IAAA,GAAA,CAAI,CAAC,eAAA,CAAgB,IAAA,CAAK,IAAI,CAAA,EAAG,MAAA;AACjC,IAAA,GAAA,CAAI,CAAC,YAAA,EAAc,WAAA,CAAY,IAAI,CAAA;AACnC,oBAAA,QAAA,0BAAA,CAAW,IAAI,GAAA;AACf,IAAA,GAAA,CAAI,IAAA,CAAK,OAAA,IAAW,MAAA,EAAQ;AAC1B,MAAA,GAAA,CAAI,YAAA,CAAa,QAAA,IAAY,IAAA,EAAM;AACjC,QAAA,YAAA,CAAa,QAAA,EAAU,IAAA;AACvB,wBAAA,UAAA,0BAAA,CAAa,IAAI,GAAA;AAAA,MACnB;AAAA,IACF,EAAA,KAAO;AACL,MAAA,YAAA,CAAa,QAAA,EAAU,IAAA;AAAA,IACzB;AAAA,EACF;AAIA,EAAA,SAAS,cAAA,CAAA,EAAiB;AACxB,IAAA,MAAM,GAAA,EAAK,QAAA,CAAS,OAAA;AACpB,IAAA,GAAA,CAAI,EAAA,EAAI,EAAA,CAAG,iBAAA,CAAkB,EAAA,CAAG,KAAA,CAAM,MAAA,EAAQ,EAAA,CAAG,KAAA,CAAM,MAAM,CAAA;AAAA,EAC/D;AAEA,EAAA,MAAM,OAAA,EAAS,aAAA,CAAc,MAAA,EAAQ,UAAU,CAAA;AAC/C,EAAA,MAAM,UAAA,EAAY,MAAA,CAAO,OAAA,EAAS,CAAA;AAGlC,EAAA,MAAM,YAAA,EAAc,QAAA,EAAU,IAAA,CAAK,GAAA,CAAI,OAAA,CAAQ,MAAA,EAAQ,OAAA,EAAS,CAAC,EAAA,EAAI,CAAA,CAAA;AACrE,EAAA,MAAM,UAAA,EAAY,QAAA,IAAY,gBAAA,EAAkB,UAAA,EAAY,MAAA;AAE5D,EAAA,uBACE,8BAAA,KAAC,EAAA,EAAI,WAAA,EAAU,iBAAA,EAAkB,SAAA,EAAU,YAAA,EAAc,GAAG,KAAA,EACzD,QAAA,EAAA;AAAA,IAAA,MAAA,mBACC,8BAAA,OAAC,EAAA,EAAM,OAAA,EAAS,OAAA,EAAS,SAAA,EAAU,uBAAA,EAChC,QAAA,EAAA;AAAA,MAAA,KAAA;AAAA,MACA,SAAA,mBACC,6BAAA,MAAC,EAAA,EAAK,aAAA,EAAY,MAAA,EAAO,SAAA,EAAU,0BAAA,EAA2B,QAAA,EAAA,IAAA,CAE9D;AAAA,IAAA,EAAA,CAEJ,CAAA;AAAA,oBAEF,8BAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,kCAAA,gBAAG,CAAiB,EAAE,IAAA,EAAM,KAAA,EAAO,SAAS,CAAC,CAAA,EAAG,SAAS,CAAA;AAAA,QACpE,WAAA,EAAU,WAAA;AAAA,QAIV,QAAA,EAAA;AAAA,0BAAA,6BAAA;AAAA,YAAC,OAAA;AAAA,YAAA;AAAA,cACE,GAAG,YAAA;AAAA,cACJ,GAAA,EAAK,QAAA;AAAA,cACL,IAAA,EAAK,MAAA;AAAA,cACL,SAAA;AAAA,cACA,YAAA,EAAa,eAAA;AAAA,cAIb,KAAA,EAAO,OAAA;AAAA,cACP,SAAA,EAAW,MAAA;AAAA,cACX,QAAA;AAAA,cACA,SAAA;AAAA,cACA,IAAA;AAAA,cACA,QAAA;AAAA,cACA,YAAA,EAAY,SAAA;AAAA,cACZ,iBAAA,EAAiB,cAAA;AAAA,cACjB,QAAA,EAAU,YAAA;AAAA,cACV,OAAA,EAAS,CAAA,EAAA,GAAM;AACb,gBAAA,UAAA,CAAW,IAAI,CAAA;AACf,gBAAA,cAAA,CAAe,CAAA;AAAA,cACjB,CAAA;AAAA,cACA,MAAA,EAAQ,CAAA,EAAA,GAAM,UAAA,CAAW,KAAK,CAAA;AAAA,cAC9B,WAAA,EAAa,cAAA;AAAA,cACb,SAAA,EAAU,uBAAA;AAAA,cACV,WAAA,EAAU;AAAA,YAAA;AAAA,UACZ,CAAA;AAAA,0BAGA,6BAAA,KAAC,EAAA,EAAI,GAAA,EAAI,KAAA,EAAM,aAAA,EAAY,MAAA,EAAO,WAAA,EAAU,eAAA,EAAgB,SAAA,EAAU,qBAAA,EACnE,QAAA,EAAA,MAAA,CAAO,GAAA,CAAI,CAAC,KAAA,EAAO,UAAA,EAAA,GAAe;AACjC,YAAA,MAAM,MAAA,EAAQ,MAAA,CAAO,KAAA,CAAM,CAAA,EAAG,UAAU,CAAA,CAAE,MAAA,CAAO,CAAC,KAAA,EAAO,CAAA,EAAA,GAAM,MAAA,EAAQ,CAAA,EAAG,CAAC,CAAA;AAC3E,YAAA,uBACE,8BAAA,eAAC,EAAA,EACC,QAAA,EAAA;AAAA,8BAAA,6BAAA,KAAC,EAAA,EAAI,WAAA,EAAU,iBAAA,EAAkB,SAAA,EAAU,uBAAA,EACxC,QAAA,EAAA,KAAA,CAAM,IAAA,CAAK,EAAE,MAAA,EAAQ,MAAM,CAAA,EAAG,CAAC,CAAA,EAAG,MAAA,EAAA,GAAW;AAC5C,gBAAA,MAAM,MAAA,EAAQ,MAAA,EAAQ,MAAA;AACtB,gBAAA,uBACE,6BAAA;AAAA,kBAAC,IAAA;AAAA,kBAAA;AAAA,oBAEC,IAAA,EAAM,OAAA,CAAQ,KAAK,CAAA;AAAA,oBACnB,MAAA,EAAQ,MAAA,IAAU,WAAA;AAAA,oBAClB,KAAA,EAAO,MAAA,IAAU,YAAA,GAAe,OAAA,CAAQ,OAAA,EAAS,MAAA;AAAA,oBACjD;AAAA,kBAAA,CAAA;AAAA,kBAJK;AAAA,gBAKP,CAAA;AAAA,cAEJ,CAAC,EAAA,CACH,CAAA;AAAA,cACC,WAAA,EAAa,UAAA,mBACZ,6BAAA;AAAA,gBAAC,MAAA;AAAA,gBAAA;AAAA,kBACC,aAAA,EAAY,MAAA;AAAA,kBACZ,WAAA,EAAU,qBAAA;AAAA,kBACV,SAAA,EAAU,2BAAA;AAAA,kBAET,QAAA,mBAAA,SAAA,0BAAa,6BAAA,MAAC,EAAA,EAAK,SAAA,EAAU,iCAAA,CAAiC;AAAA,gBAAA;AAAA,cACjE;AAAA,YAAA,EAAA,CAAA,EAtBW,UAwBf,CAAA;AAAA,UAEJ,CAAC,EAAA,CACH;AAAA,QAAA;AAAA,MAAA;AAAA,IACF,CAAA;AAAA,IACC,gBAAA,mBACC,6BAAA,8BAAC,EAAA,EAAa,EAAA,EAAI,OAAA,EAAS,OAAA,EAAQ,OAAA,EAChC,QAAA,EAAA,aAAA,CACH,CAAA;AAAA,IAED,UAAA,mBACC,6BAAA,8BAAC,EAAA,EAAa,EAAA,EAAI,QAAA,EAAU,OAAA,EAAQ,QAAA,EACjC,QAAA,EAAA,WAAA,CACH;AAAA,EAAA,EAAA,CAEJ,CAAA;AAEJ;ADjGA;AACA;AACE;AACA;AACF,yEAAC","file":"/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-J7XCG6SX.cjs","sourcesContent":[null,"'use client';\n\nimport { useMemo, useRef, useState, Fragment, type ReactNode } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\nimport { useFieldA11y, FieldMessage } from '../../field';\n\n// Default: digits-only, allows the empty string so clearing works. Consumers\n// can pass any full-string regex (e.g. '^[a-zA-Z0-9]+$' for alphanumeric).\nconst DEFAULT_PATTERN = '^[0-9]*$';\n\n// ─── 1. Variants (cva) ─── //\n\n// Applied to the container that overlays the (visually-hidden) input on top of\n// the decorative slot row, mirroring NumberInput's control box.\nconst inputOTPVariants = cva('ddga-input-otp', {\n variants: {\n size: {\n sm: 'ddga-input-otp--sm',\n md: 'ddga-input-otp--md',\n lg: 'ddga-input-otp--lg',\n },\n error: {\n true: 'ddga-input-otp--error',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n});\n\n// ─── 2. Types ─── //\n\ninterface InputOTPProps\n extends\n Omit<React.ComponentProps<'div'>, 'onChange' | 'defaultValue' | 'children'>,\n VariantProps<typeof inputOTPVariants> {\n /** Number of slots. Defaults to 6 (Saudi SMS OTP length). */\n length?: number;\n /** Optional visual grouping; must sum to `length`. Default: one group. */\n groupSizes?: number[];\n /** Controlled value (the entered characters). */\n value?: string;\n /** Uncontrolled initial value. */\n defaultValue?: string;\n onChange?: (value: string) => void;\n /** Fires when all `length` slots are filled. */\n onComplete?: (value: string) => void;\n /** Full-string regex the entered value must match. Defaults to digits-only. */\n pattern?: string;\n /** Render dots instead of characters (PIN entry). */\n mask?: boolean;\n /** Override the divider rendered between groups. */\n separator?: ReactNode;\n disabled?: boolean;\n autoFocus?: boolean;\n name?: string;\n required?: boolean;\n /** Visible field label, auto-associated to the input via `htmlFor`/`id`. */\n label?: ReactNode;\n /** Hint shown below the field. Hidden while an error message is showing. */\n helperText?: ReactNode;\n /** Message shown below the field when invalid. */\n errorMessage?: ReactNode;\n /** Marks the field invalid: sets `aria-invalid` and error styling. */\n error?: boolean;\n}\n\n// ─── 3. Helpers ─── //\n\n// Resolve the per-group slot counts. An absent/empty `groupSizes` is one group;\n// a mismatched sum is a caller bug, so dev-warn and fall back rather than render\n// a code whose layout doesn't match its length.\nfunction resolveGroups(length: number, groupSizes: number[] | undefined): number[] {\n if (!groupSizes || groupSizes.length === 0) return [length];\n const sum = groupSizes.reduce((total, n) => total + n, 0);\n if (sum !== length) {\n if (process.env.NODE_ENV === 'development') {\n console.warn(\n `[@dev-dga/react] InputOTP: groupSizes must sum to length (${length}); ` +\n `got ${sum}. Falling back to a single group.`,\n );\n }\n return [length];\n }\n return groupSizes;\n}\n\nfunction Slot({\n char,\n active,\n caret,\n mask,\n}: {\n char: string | undefined;\n active: boolean;\n caret: boolean;\n mask: boolean;\n}) {\n return (\n <div\n data-slot=\"input-otp-slot\"\n data-active={active || undefined}\n data-filled={char != null || undefined}\n className=\"ddga-input-otp__slot\"\n >\n {char != null ? (mask ? '•' : char) : null}\n {caret && (\n <div aria-hidden=\"true\" data-slot=\"input-otp-caret\" className=\"ddga-input-otp__caret\" />\n )}\n </div>\n );\n}\n\n// ─── 4. Component ─── //\n\nfunction InputOTP({\n id: externalId,\n length = 6,\n groupSizes,\n value,\n defaultValue,\n onChange,\n onComplete,\n pattern = DEFAULT_PATTERN,\n mask = false,\n separator,\n size,\n disabled,\n autoFocus,\n name,\n required,\n label,\n helperText,\n errorMessage,\n error,\n className,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n ...props\n}: InputOTPProps) {\n const inputRef = useRef<HTMLInputElement>(null);\n const [focused, setFocused] = useState(false);\n const isControlled = value !== undefined;\n const [internal, setInternal] = useState(defaultValue ?? '');\n const current = isControlled ? value : internal;\n\n // Compile the pattern once per change to `pattern`. A malformed regex is a\n // caller bug — dev-warn and fall back to digits-only rather than throw on\n // every keystroke (mirrors the groupSizes-mismatch handling).\n const compiledPattern = useMemo(() => {\n try {\n return new RegExp(pattern);\n } catch {\n if (process.env.NODE_ENV === 'development') {\n console.warn(\n `[@dev-dga/react] InputOTP: invalid \\`pattern\\` regex \"${pattern}\". ` +\n 'Falling back to digits-only.',\n );\n }\n return new RegExp(DEFAULT_PATTERN);\n }\n }, [pattern]);\n\n // Guards onComplete against firing more than once for the same full value\n // (IME / autofill can deliver the same value across repeated change events).\n const completedRef = useRef<string | null>(null);\n\n const { fieldId, errorId, helperId, hasError, hasErrorMessage, hasHelper, controlProps } =\n useFieldA11y({\n name: 'InputOTP',\n id: externalId,\n label,\n error,\n errorMessage,\n helperText,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n });\n\n function handleChange(event: React.ChangeEvent<HTMLInputElement>) {\n // Strip whitespace + hyphens first, so a code pasted with display\n // separators (\"123 456\", \"123-456\") still fills — neither is ever a valid\n // OTP/PIN character. Then cap to `length`.\n const next = event.target.value.replace(/[\\s-]/g, '').slice(0, length);\n // Reject the whole (cleaned) candidate if it still doesn't match — the\n // keystroke/paste never lands (mirrors NumberInput). The default pattern\n // allows the empty string, so clearing always works.\n if (!compiledPattern.test(next)) return;\n if (!isControlled) setInternal(next);\n onChange?.(next);\n if (next.length === length) {\n if (completedRef.current !== next) {\n completedRef.current = next;\n onComplete?.(next);\n }\n } else {\n completedRef.current = null;\n }\n }\n\n // Keep the caret at the end so Backspace always removes the last entered char;\n // the visible caret is the fake one we draw on the active slot.\n function moveCaretToEnd() {\n const el = inputRef.current;\n if (el) el.setSelectionRange(el.value.length, el.value.length);\n }\n\n const groups = resolveGroups(length, groupSizes);\n const lastGroup = groups.length - 1;\n // The active slot is where the next character lands (clamped to the last slot\n // when the code is full). Only shown while focused.\n const activeIndex = focused ? Math.min(current.length, length - 1) : -1;\n const inputMode = pattern === DEFAULT_PATTERN ? 'numeric' : 'text';\n\n return (\n <div data-slot=\"input-otp-field\" className=\"ddga-field\" {...props}>\n {label && (\n <label htmlFor={fieldId} className=\"ddga-input-otp__label\">\n {label}\n {required && (\n <span aria-hidden=\"true\" className=\"ddga-input-otp__required\">\n *\n </span>\n )}\n </label>\n )}\n <div\n className={cn(inputOTPVariants({ size, error: hasError }), className)}\n data-slot=\"input-otp\"\n >\n {/* The real control — overlays the row, visually transparent. Paste,\n SMS autofill, typing, and Backspace all flow through its onChange. */}\n <input\n {...controlProps}\n ref={inputRef}\n type=\"text\"\n inputMode={inputMode}\n autoComplete=\"one-time-code\"\n // The slots are the visible UI, but the value itself never renders\n // here (the input is transparent), so masking is purely the slots'\n // concern — even password managers can't read a visually-empty field.\n value={current}\n maxLength={length}\n disabled={disabled}\n autoFocus={autoFocus}\n name={name}\n required={required}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n onChange={handleChange}\n onFocus={() => {\n setFocused(true);\n moveCaretToEnd();\n }}\n onBlur={() => setFocused(false)}\n onPointerUp={moveCaretToEnd}\n className=\"ddga-input-otp__input\"\n data-slot=\"input-otp-input\"\n />\n {/* Decorative slot row. Forced LTR so the code is always read/entered\n left-to-right even in an RTL form (DGA convention). */}\n <div dir=\"ltr\" aria-hidden=\"true\" data-slot=\"input-otp-row\" className=\"ddga-input-otp__row\">\n {groups.map((count, groupIndex) => {\n const start = groups.slice(0, groupIndex).reduce((total, n) => total + n, 0);\n return (\n <Fragment key={groupIndex}>\n <div data-slot=\"input-otp-group\" className=\"ddga-input-otp__group\">\n {Array.from({ length: count }, (_, offset) => {\n const index = start + offset;\n return (\n <Slot\n key={index}\n char={current[index]}\n active={index === activeIndex}\n caret={index === activeIndex && current.length < length}\n mask={mask}\n />\n );\n })}\n </div>\n {groupIndex < lastGroup && (\n <span\n aria-hidden=\"true\"\n data-slot=\"input-otp-separator\"\n className=\"ddga-input-otp__separator\"\n >\n {separator ?? <span className=\"ddga-input-otp__separator-dash\" />}\n </span>\n )}\n </Fragment>\n );\n })}\n </div>\n </div>\n {hasErrorMessage && (\n <FieldMessage id={errorId} variant=\"error\">\n {errorMessage}\n </FieldMessage>\n )}\n {hasHelper && (\n <FieldMessage id={helperId} variant=\"helper\">\n {helperText}\n </FieldMessage>\n )}\n </div>\n );\n}\n\n// ─── 5. Exports ─── //\n\nexport { InputOTP, inputOTPVariants };\nexport type { InputOTPProps };\n"]}
|
|
1
|
+
{"version":3,"sources":["/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-TQH7AMQ2.cjs","../src/components/InputOTP/InputOTP.tsx"],"names":[],"mappings":"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","file":"/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-TQH7AMQ2.cjs","sourcesContent":[null,"'use client';\n\nimport { useMemo, useRef, useState, Fragment, type ReactNode } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\nimport { useFieldA11y, FieldMessage } from '../../field';\n\n// Default: digits-only, allows the empty string so clearing works. Consumers\n// can pass any full-string regex (e.g. '^[a-zA-Z0-9]+$' for alphanumeric).\nconst DEFAULT_PATTERN = '^[0-9]*$';\n\n// ─── 1. Variants (cva) ─── //\n\n// Applied to the container that overlays the (visually-hidden) input on top of\n// the decorative slot row, mirroring NumberInput's control box.\nconst inputOTPVariants = cva('ddga-input-otp', {\n variants: {\n size: {\n sm: 'ddga-input-otp--sm',\n md: 'ddga-input-otp--md',\n lg: 'ddga-input-otp--lg',\n },\n error: {\n true: 'ddga-input-otp--error',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n});\n\n// ─── 2. Types ─── //\n\ninterface InputOTPProps\n extends\n Omit<React.ComponentProps<'div'>, 'onChange' | 'defaultValue' | 'children'>,\n VariantProps<typeof inputOTPVariants> {\n /** Number of slots. Defaults to 6 (Saudi SMS OTP length). */\n length?: number;\n /** Optional visual grouping; must sum to `length`. Default: one group. */\n groupSizes?: number[];\n /** Controlled value (the entered characters). */\n value?: string;\n /** Uncontrolled initial value. */\n defaultValue?: string;\n onChange?: (value: string) => void;\n /** Fires when all `length` slots are filled. */\n onComplete?: (value: string) => void;\n /** Full-string regex the entered value must match. Defaults to digits-only. */\n pattern?: string;\n /** Render dots instead of characters (PIN entry). */\n mask?: boolean;\n /** Override the divider rendered between groups. */\n separator?: ReactNode;\n disabled?: boolean;\n autoFocus?: boolean;\n name?: string;\n required?: boolean;\n /** Visible field label, auto-associated to the input via `htmlFor`/`id`. */\n label?: ReactNode;\n /** Hint shown below the field. Hidden while an error message is showing. */\n helperText?: ReactNode;\n /** Message shown below the field when invalid. */\n errorMessage?: ReactNode;\n /** Marks the field invalid: sets `aria-invalid` and error styling. */\n error?: boolean;\n}\n\n// ─── 3. Helpers ─── //\n\n// Resolve the per-group slot counts. An absent/empty `groupSizes` is one group;\n// a mismatched sum is a caller bug, so dev-warn and fall back rather than render\n// a code whose layout doesn't match its length.\nfunction resolveGroups(length: number, groupSizes: number[] | undefined): number[] {\n if (!groupSizes || groupSizes.length === 0) return [length];\n const sum = groupSizes.reduce((total, n) => total + n, 0);\n if (sum !== length) {\n if (process.env.NODE_ENV === 'development') {\n console.warn(\n `[@dev-dga/react] InputOTP: groupSizes must sum to length (${length}); ` +\n `got ${sum}. Falling back to a single group.`,\n );\n }\n return [length];\n }\n return groupSizes;\n}\n\nfunction Slot({\n char,\n active,\n caret,\n mask,\n}: {\n char: string | undefined;\n active: boolean;\n caret: boolean;\n mask: boolean;\n}) {\n return (\n <div\n data-slot=\"input-otp-slot\"\n data-active={active || undefined}\n data-filled={char != null || undefined}\n className=\"ddga-input-otp__slot\"\n >\n {char != null ? (mask ? '•' : char) : null}\n {caret && (\n <div aria-hidden=\"true\" data-slot=\"input-otp-caret\" className=\"ddga-input-otp__caret\" />\n )}\n </div>\n );\n}\n\n// ─── 4. Component ─── //\n\nfunction InputOTP({\n id: externalId,\n length = 6,\n groupSizes,\n value,\n defaultValue,\n onChange,\n onComplete,\n pattern = DEFAULT_PATTERN,\n mask = false,\n separator,\n size,\n disabled,\n autoFocus,\n name,\n required,\n label,\n helperText,\n errorMessage,\n error,\n className,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n ...props\n}: InputOTPProps) {\n const inputRef = useRef<HTMLInputElement>(null);\n const [focused, setFocused] = useState(false);\n const isControlled = value !== undefined;\n const [internal, setInternal] = useState(defaultValue ?? '');\n const current = isControlled ? value : internal;\n\n // Compile the pattern once per change to `pattern`. A malformed regex is a\n // caller bug — dev-warn and fall back to digits-only rather than throw on\n // every keystroke (mirrors the groupSizes-mismatch handling).\n const compiledPattern = useMemo(() => {\n try {\n return new RegExp(pattern);\n } catch {\n if (process.env.NODE_ENV === 'development') {\n console.warn(\n `[@dev-dga/react] InputOTP: invalid \\`pattern\\` regex \"${pattern}\". ` +\n 'Falling back to digits-only.',\n );\n }\n return new RegExp(DEFAULT_PATTERN);\n }\n }, [pattern]);\n\n // Guards onComplete against firing more than once for the same full value\n // (IME / autofill can deliver the same value across repeated change events).\n const completedRef = useRef<string | null>(null);\n\n const { fieldId, errorId, helperId, hasError, hasErrorMessage, hasHelper, controlProps } =\n useFieldA11y({\n name: 'InputOTP',\n id: externalId,\n label,\n error,\n errorMessage,\n helperText,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n });\n\n function handleChange(event: React.ChangeEvent<HTMLInputElement>) {\n // Strip whitespace + hyphens first, so a code pasted with display\n // separators (\"123 456\", \"123-456\") still fills — neither is ever a valid\n // OTP/PIN character. Then cap to `length`.\n const next = event.target.value.replace(/[\\s-]/g, '').slice(0, length);\n // Reject the whole (cleaned) candidate if it still doesn't match — the\n // keystroke/paste never lands (mirrors NumberInput). The default pattern\n // allows the empty string, so clearing always works.\n if (!compiledPattern.test(next)) return;\n if (!isControlled) setInternal(next);\n onChange?.(next);\n if (next.length === length) {\n if (completedRef.current !== next) {\n completedRef.current = next;\n onComplete?.(next);\n }\n } else {\n completedRef.current = null;\n }\n }\n\n // Keep the caret at the end so Backspace always removes the last entered char;\n // the visible caret is the fake one we draw on the active slot.\n function moveCaretToEnd() {\n const el = inputRef.current;\n if (el) el.setSelectionRange(el.value.length, el.value.length);\n }\n\n const groups = resolveGroups(length, groupSizes);\n const lastGroup = groups.length - 1;\n // The active slot is where the next character lands (clamped to the last slot\n // when the code is full). Only shown while focused.\n const activeIndex = focused ? Math.min(current.length, length - 1) : -1;\n const inputMode = pattern === DEFAULT_PATTERN ? 'numeric' : 'text';\n\n return (\n <div data-slot=\"input-otp-field\" className=\"ddga-field\" {...props}>\n {label && (\n <label htmlFor={fieldId} className=\"ddga-input-otp__label\">\n {label}\n {required && (\n <span aria-hidden=\"true\" className=\"ddga-input-otp__required\">\n *\n </span>\n )}\n </label>\n )}\n <div\n className={cn(inputOTPVariants({ size, error: hasError }), className)}\n data-slot=\"input-otp\"\n >\n {/* The real control — overlays the row, visually transparent. Paste,\n SMS autofill, typing, and Backspace all flow through its onChange. */}\n <input\n {...controlProps}\n ref={inputRef}\n type=\"text\"\n inputMode={inputMode}\n autoComplete=\"one-time-code\"\n // The slots are the visible UI, but the value itself never renders\n // here (the input is transparent), so masking is purely the slots'\n // concern — even password managers can't read a visually-empty field.\n value={current}\n maxLength={length}\n disabled={disabled}\n autoFocus={autoFocus}\n name={name}\n required={required}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n onChange={handleChange}\n onFocus={() => {\n setFocused(true);\n moveCaretToEnd();\n }}\n onBlur={() => setFocused(false)}\n onPointerUp={moveCaretToEnd}\n className=\"ddga-input-otp__input\"\n data-slot=\"input-otp-input\"\n />\n {/* Decorative slot row. Forced LTR so the code is always read/entered\n left-to-right even in an RTL form (DGA convention). */}\n <div dir=\"ltr\" aria-hidden=\"true\" data-slot=\"input-otp-row\" className=\"ddga-input-otp__row\">\n {groups.map((count, groupIndex) => {\n const start = groups.slice(0, groupIndex).reduce((total, n) => total + n, 0);\n return (\n <Fragment key={groupIndex}>\n <div data-slot=\"input-otp-group\" className=\"ddga-input-otp__group\">\n {Array.from({ length: count }, (_, offset) => {\n const index = start + offset;\n return (\n <Slot\n key={index}\n char={current[index]}\n active={index === activeIndex}\n caret={index === activeIndex && current.length < length}\n mask={mask}\n />\n );\n })}\n </div>\n {groupIndex < lastGroup && (\n <span\n aria-hidden=\"true\"\n data-slot=\"input-otp-separator\"\n className=\"ddga-input-otp__separator\"\n >\n {separator ?? <span className=\"ddga-input-otp__separator-dash\" />}\n </span>\n )}\n </Fragment>\n );\n })}\n </div>\n </div>\n {hasErrorMessage && (\n <FieldMessage id={errorId} variant=\"error\">\n {errorMessage}\n </FieldMessage>\n )}\n {hasHelper && (\n <FieldMessage id={helperId} variant=\"helper\">\n {helperText}\n </FieldMessage>\n )}\n </div>\n );\n}\n\n// ─── 5. Exports ─── //\n\nexport { InputOTP, inputOTPVariants };\nexport type { InputOTPProps };\n"]}
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
var _chunkYS2JJ73Mcjs = require('./chunk-YS2JJ73M.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunkV6MXOJQ4cjs = require('./chunk-V6MXOJQ4.cjs');
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
var
|
|
9
|
+
var _chunk3UT22WQMcjs = require('./chunk-3UT22WQM.cjs');
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _chunkNH3KGR65cjs = require('./chunk-NH3KGR65.cjs');
|
|
13
13
|
|
|
14
14
|
// src/components/Checkbox/Checkbox.tsx
|
|
15
15
|
var _radixui = require('radix-ui');
|
|
@@ -102,4 +102,4 @@ function Checkbox({
|
|
|
102
102
|
|
|
103
103
|
|
|
104
104
|
exports.checkboxVariants = checkboxVariants; exports.Checkbox = Checkbox;
|
|
105
|
-
//# sourceMappingURL=chunk-
|
|
105
|
+
//# sourceMappingURL=chunk-TQUB2TCL.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-
|
|
1
|
+
{"version":3,"sources":["/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-TQUB2TCL.cjs","../src/components/Checkbox/Checkbox.tsx"],"names":[],"mappings":"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","file":"/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-TQUB2TCL.cjs","sourcesContent":[null,"'use client';\n\nimport type { ReactNode } from 'react';\nimport { Checkbox as CheckboxPrimitive } from 'radix-ui';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\nimport { Check } from '../../internal/icons';\nimport { useFieldA11y, FieldMessage } from '../../field';\n\n// ─── 1. Variants (cva) ─── //\n\nconst checkboxVariants = cva('ddga-checkbox', {\n variants: {\n size: {\n xs: 'ddga-checkbox--xs',\n sm: 'ddga-checkbox--sm',\n md: 'ddga-checkbox--md',\n },\n variant: {\n primary: '',\n neutral: 'ddga-checkbox--neutral',\n },\n error: {\n true: 'ddga-checkbox--error',\n },\n },\n defaultVariants: {\n size: 'md',\n variant: 'primary',\n },\n});\n\n// ─── 2. Types ─── //\n\n// Radix owns the state model (checked / defaultChecked / onCheckedChange /\n// indeterminate via checked=\"indeterminate\" / disabled / required / name /\n// value). We add the composed label + helper/error + a11y wiring. `children`\n// is omitted , the indicator is rendered internally.\ninterface CheckboxProps\n extends\n Omit<React.ComponentProps<typeof CheckboxPrimitive.Root>, 'children'>,\n VariantProps<typeof checkboxVariants> {\n /** Visible label, sits beside the box, associated via `htmlFor`/`id`. */\n label?: ReactNode;\n /** Hint shown below the row. Hidden while an error message is showing. */\n helperText?: ReactNode;\n /** Message shown below the row when `error` is true. */\n errorMessage?: ReactNode;\n /** Marks the field invalid: sets `aria-invalid` and error styling. */\n error?: boolean;\n /** Locks the value: shows state but can't be toggled; stays focusable, sets `aria-readonly`. */\n readOnly?: boolean;\n}\n\n// ─── 3. Component ─── //\n\nfunction Checkbox({\n id: externalId,\n label,\n helperText,\n errorMessage,\n error,\n size,\n variant,\n readOnly,\n required,\n className,\n onClick,\n ...props\n}: CheckboxProps) {\n const { fieldId, errorId, helperId, hasError, hasErrorMessage, hasHelper, controlProps } =\n useFieldA11y({\n name: 'Checkbox',\n id: externalId,\n label,\n error,\n errorMessage,\n helperText,\n 'aria-label': props['aria-label'],\n 'aria-labelledby': props['aria-labelledby'],\n });\n\n return (\n <div data-slot=\"checkbox-field\" className=\"ddga-field\">\n <div className=\"ddga-checkbox-row\">\n <CheckboxPrimitive.Root\n // Spread props first, then the a11y contract (controlProps) so a\n // consumer cannot accidentally clobber the wiring.\n {...props}\n {...controlProps}\n data-slot=\"checkbox\"\n data-readonly={readOnly ? '' : undefined}\n aria-readonly={readOnly || undefined}\n required={required}\n // Read-only: preventDefault runs before Radix's composed handler, skipping the toggle.\n onClick={(event) => {\n if (readOnly) event.preventDefault();\n onClick?.(event);\n }}\n className={cn(checkboxVariants({ size, variant, error: hasError }), className)}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className=\"ddga-checkbox__indicator\"\n >\n {/* CSS shows one per data-state; minus is a bar, check is the glyph. */}\n <Check className=\"ddga-checkbox__check\" aria-hidden=\"true\" />\n <span className=\"ddga-checkbox__minus\" aria-hidden=\"true\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n {label && (\n <label htmlFor={fieldId} className=\"ddga-checkbox__label\">\n {label}\n {required && (\n <span aria-hidden=\"true\" className=\"ddga-checkbox__required\">\n *\n </span>\n )}\n </label>\n )}\n </div>\n {hasErrorMessage && (\n <FieldMessage id={errorId} variant=\"error\">\n {errorMessage}\n </FieldMessage>\n )}\n {hasHelper && (\n <FieldMessage id={helperId} variant=\"helper\">\n {helperText}\n </FieldMessage>\n )}\n </div>\n );\n}\n\n// ─── 4. Exports ─── //\n\nexport { Checkbox, checkboxVariants };\nexport type { CheckboxProps };\n"]}
|
|
@@ -28,7 +28,9 @@ function DgaProvider({
|
|
|
28
28
|
if (typeof document === "undefined") return;
|
|
29
29
|
const el = document.createElement("div");
|
|
30
30
|
el.setAttribute("data-slot", "dga-portal");
|
|
31
|
-
el.style.position = "
|
|
31
|
+
el.style.position = "fixed";
|
|
32
|
+
el.style.top = "0";
|
|
33
|
+
el.style.left = "0";
|
|
32
34
|
el.style.zIndex = "50";
|
|
33
35
|
document.body.appendChild(el);
|
|
34
36
|
portalRef.current = el;
|
|
@@ -74,4 +76,4 @@ function DgaProvider({
|
|
|
74
76
|
export {
|
|
75
77
|
DgaProvider
|
|
76
78
|
};
|
|
77
|
-
//# sourceMappingURL=chunk-
|
|
79
|
+
//# sourceMappingURL=chunk-TZ6IKB3E.js.map
|