@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/providers/DgaProvider.tsx"],"sourcesContent":["'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"],"mappings":";;;;;AAEA,SAAS,UAAU,SAAS,YAAY,WAAW,cAAc;AACjE,SAAS,aAAa,oBAAoB,WAAW,wBAAwB;AAC7E,SAAS,kBAAiC;AA8I1B;AA/GT,SAAS,YAAY;AAAA,EAC1B,MAAM;AAAA,EACN;AAAA,EACA,OAAO;AAAA,EACP;AAAA,EACA,IAAI,YAAY;AAAA,EAChB;AAAA,EACA,OAAO;AAAA,EACP;AACF,GAAqB;AACnB,QAAM,YAAY,WAAW,UAAU;AACvC,QAAM,WAAW,cAAc;AAK/B,QAAM,CAAC,QAAQ,SAAS,IAAI,SAA6B,IAAI;AAK7D,QAAM,YAAY,OAA8B,IAAI;AACpD,QAAM,CAAC,UAAU,WAAW,IAAI,SAA6B,IAAI;AACjE,QAAM,iBAAiB,WAAW,QAAQ,QAAQ,OAAO;AAMzD,QAAM,YAAY,QAAQ,MAAO,QAAQ,WAAW,KAAK,IAAI,MAAO,CAAC,KAAK,CAAC;AAmB3E,YAAU,MAAM;AACd,QAAI,OAAO,aAAa,YAAa;AACrC,UAAM,KAAK,SAAS,cAAc,KAAK;AACvC,OAAG,aAAa,aAAa,YAAY;AAazC,OAAG,MAAM,WAAW;AACpB,OAAG,MAAM,MAAM;AACf,OAAG,MAAM,OAAO;AAChB,OAAG,MAAM,SAAS;AAClB,aAAS,KAAK,YAAY,EAAE;AAC5B,cAAU,UAAU;AAMpB,gBAAY,EAAE;AACd,WAAO,MAAM;AACX,SAAG,OAAO;AACV,gBAAU,UAAU;AAEpB,kBAAY,IAAI;AAAA,IAClB;AAAA,EACF,GAAG,CAAC,CAAC;AAOL,YAAU,MAAM;AACd,UAAM,KAAK,UAAU;AACrB,QAAI,CAAC,GAAI;AACT,OAAG,aAAa,cAAc,IAAI;AAClC,OAAG,aAAa,OAAO,GAAG;AAC1B,OAAG,MAAM,cAAc;AACvB,QAAI,WAAW;AACb,iBAAW,CAAC,GAAG,CAAC,KAAK,OAAO,QAAQ,SAAS,GAAG;AAC9C,WAAG,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC;AAAA,MACnC;AAAA,IACF;AAAA,EACF,GAAG,CAAC,MAAM,KAAK,WAAW,QAAQ,CAAC;AAEnC,QAAM,WAAW;AAAA,IACf,OAAO,EAAE,KAAK,QAAQ,gBAAgB,MAAM,QAAQ,SAAS;AAAA,IAC7D,CAAC,KAAK,gBAAgB,MAAM,QAAQ,QAAQ;AAAA,EAC9C;AAMA,QAAM,QAAQ,oBAAC,mBAAmB,UAAnB,EAA4B,KAAW,UAAS;AAE/D,SACE,oBAAC,WAAW,UAAX,EAAoB,OAAO,UAC1B;AAAA,IAAC;AAAA;AAAA,MACC,KAAK;AAAA,MACL;AAAA,MACA,MAAM;AAAA,MACN,aAAU;AAAA,MACV,cAAY;AAAA,MACZ;AAAA,MAIA,OAAO,EAAE,aAAa,MAAM,GAAI,aAAa,CAAC,GAAI,GAAG,cAAc;AAAA,MAElE,qBACC,QAEA,oBAAC,iBAAiB,UAAjB,EAA0B,eAAe,KAAK,mBAAmB,KAC/D,iBACH;AAAA;AAAA,EAEJ,GACF;AAEJ;","names":[]}
|
|
@@ -8,7 +8,7 @@ var _chunkVXR7IJMHcjs = require('./chunk-VXR7IJMH.cjs');
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
var
|
|
11
|
+
var _chunkP66BFKWQcjs = require('./chunk-P66BFKWQ.cjs');
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
var _chunkYS2JJ73Mcjs = require('./chunk-YS2JJ73M.cjs');
|
|
@@ -92,8 +92,8 @@ function Sidebar({
|
|
|
92
92
|
}) {
|
|
93
93
|
const { isMobile, openMobile, setOpenMobile, state } = _chunkYUJZEQJWcjs.useSidebar.call(void 0, );
|
|
94
94
|
if (isMobile) {
|
|
95
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
96
|
-
|
|
95
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP66BFKWQcjs.Drawer, { open: openMobile, onOpenChange: setOpenMobile, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
96
|
+
_chunkP66BFKWQcjs.DrawerContent,
|
|
97
97
|
{
|
|
98
98
|
side,
|
|
99
99
|
size: "sm",
|
|
@@ -227,4 +227,4 @@ function SidebarSeparator({ className, ...props }) {
|
|
|
227
227
|
|
|
228
228
|
|
|
229
229
|
exports.SidebarProvider = SidebarProvider; exports.Sidebar = Sidebar; exports.SidebarTrigger = SidebarTrigger; exports.SidebarRail = SidebarRail; exports.SidebarInset = SidebarInset; exports.SidebarHeader = SidebarHeader; exports.SidebarContent = SidebarContent; exports.SidebarFooter = SidebarFooter; exports.SidebarSeparator = SidebarSeparator;
|
|
230
|
-
//# sourceMappingURL=chunk-
|
|
230
|
+
//# sourceMappingURL=chunk-U3W2GAHM.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-T3NVC7UU.cjs","../src/components/Sidebar/Sidebar.tsx"],"names":["value"],"mappings":"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","file":"/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-T3NVC7UU.cjs","sourcesContent":[null,"'use client';\n\nimport { useCallback, useEffect, useMemo, useState } from 'react';\nimport { Slot as SlotPrimitive } from 'radix-ui';\nimport { cn } from '../../utils/cn';\nimport { Drawer, DrawerContent } from '../Drawer';\nimport { PanelLeft } from '../../internal/icons';\nimport { SidebarContext, useSidebar, type SidebarContextValue } from './SidebarContext';\nimport { useIsMobile } from './useIsMobile';\n\n// ─── SidebarProvider ─── //\n\ninterface SidebarProviderProps extends React.ComponentProps<'div'> {\n /** Uncontrolled initial desktop state. Default true (expanded). */\n defaultOpen?: boolean;\n /** Controlled desktop open state. */\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n /** Viewport width (px) below which the mobile Drawer engages. Default 768. */\n mobileBreakpoint?: number;\n /** Register Cmd/Ctrl+B to toggle. Default true. */\n keyboardShortcut?: boolean;\n}\n\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange,\n mobileBreakpoint = 768,\n keyboardShortcut = true,\n className,\n style,\n children,\n ...props\n}: SidebarProviderProps) {\n const isMobile = useIsMobile(mobileBreakpoint);\n const [openMobile, setOpenMobile] = useState(false);\n\n const isControlled = openProp !== undefined;\n const [openInternal, setOpenInternal] = useState(defaultOpen);\n const open = isControlled ? (openProp as boolean) : openInternal;\n\n const setOpen = useCallback(\n (value: boolean) => {\n if (!isControlled) setOpenInternal(value);\n onOpenChange?.(value);\n },\n [isControlled, onOpenChange],\n );\n\n const toggleSidebar = useCallback(() => {\n if (isMobile) {\n setOpenMobile((v) => !v);\n return;\n }\n if (isControlled) {\n onOpenChange?.(!open);\n } else {\n setOpenInternal((v) => !v);\n }\n }, [isMobile, isControlled, onOpenChange, open]);\n\n useEffect(() => {\n if (!keyboardShortcut) return;\n const onKeyDown = (e: KeyboardEvent) => {\n if (e.key.toLowerCase() === 'b' && (e.metaKey || e.ctrlKey)) {\n e.preventDefault();\n toggleSidebar();\n }\n };\n window.addEventListener('keydown', onKeyDown);\n return () => window.removeEventListener('keydown', onKeyDown);\n }, [keyboardShortcut, toggleSidebar]);\n\n const state: 'expanded' | 'collapsed' = open ? 'expanded' : 'collapsed';\n\n const value = useMemo<SidebarContextValue>(\n () => ({ state, open, setOpen, openMobile, setOpenMobile, isMobile, toggleSidebar }),\n [state, open, setOpen, openMobile, isMobile, toggleSidebar],\n );\n\n return (\n <SidebarContext.Provider value={value}>\n <div\n data-slot=\"sidebar-wrapper\"\n className={cn('ddga-sidebar-wrapper', className)}\n style={style}\n {...props}\n >\n {children}\n </div>\n </SidebarContext.Provider>\n );\n}\n\n// ─── Sidebar (container) ─── //\n\ninterface SidebarProps extends React.ComponentProps<'div'> {\n variant?: 'sidebar' | 'floating' | 'inset';\n collapsible?: 'icon' | 'offcanvas' | 'none';\n /** Logical side; flips with dir. Default 'start'. */\n side?: 'start' | 'end';\n}\n\nfunction Sidebar({\n variant = 'sidebar',\n collapsible = 'icon',\n side = 'start',\n className,\n children,\n 'aria-label': ariaLabel = 'Sidebar',\n ...props\n}: SidebarProps) {\n const { isMobile, openMobile, setOpenMobile, state } = useSidebar();\n\n if (isMobile) {\n return (\n <Drawer open={openMobile} onOpenChange={setOpenMobile}>\n <DrawerContent\n side={side}\n size=\"sm\"\n aria-label={ariaLabel}\n data-slot=\"sidebar\"\n data-mobile=\"true\"\n data-variant={variant}\n data-side={side}\n className={cn('ddga-sidebar', 'ddga-sidebar--mobile', className)}\n {...props}\n >\n {children}\n </DrawerContent>\n </Drawer>\n );\n }\n\n return (\n <aside\n data-slot=\"sidebar\"\n aria-label={ariaLabel}\n data-state={state}\n data-collapsible={collapsible}\n data-variant={variant}\n data-side={side}\n className={cn('ddga-sidebar', className)}\n {...props}\n >\n {children}\n </aside>\n );\n}\n\n// ─── Trigger / Rail / Inset ─── //\n\ninterface SidebarTriggerProps extends React.ComponentProps<'button'> {\n asChild?: boolean;\n}\n\nfunction SidebarTrigger({\n asChild,\n className,\n onClick,\n children,\n 'aria-label': ariaLabel = 'Toggle sidebar',\n ...props\n}: SidebarTriggerProps) {\n const { toggleSidebar, open, openMobile, isMobile } = useSidebar();\n const Comp = asChild ? SlotPrimitive.Slot : 'button';\n return (\n <Comp\n type={asChild ? undefined : 'button'}\n data-slot=\"sidebar-trigger\"\n // Don't override the child element's accessible name when asChild.\n aria-label={asChild ? undefined : ariaLabel}\n aria-haspopup={isMobile ? 'dialog' : undefined}\n aria-expanded={isMobile ? openMobile : open}\n className={cn('ddga-sidebar__trigger', className)}\n onClick={(e: React.MouseEvent<HTMLButtonElement>) => {\n onClick?.(e);\n toggleSidebar();\n }}\n {...props}\n >\n {children ?? <PanelLeft aria-hidden=\"true\" />}\n </Comp>\n );\n}\n\nfunction SidebarRail({\n className,\n 'aria-label': ariaLabel = 'Toggle sidebar',\n ...props\n}: React.ComponentProps<'button'>) {\n const { toggleSidebar } = useSidebar();\n return (\n <button\n type=\"button\"\n data-slot=\"sidebar-rail\"\n aria-label={ariaLabel}\n title={ariaLabel}\n tabIndex={-1}\n className={cn('ddga-sidebar__rail', className)}\n onClick={toggleSidebar}\n {...props}\n />\n );\n}\n\ninterface SidebarInsetProps extends React.ComponentProps<'main'> {\n asChild?: boolean;\n /**\n * Make the inset its own vertical scroll region: tall content scrolls inside\n * it (the sidebar + footer stay put) with zero consumer layout CSS — no\n * `flex` / `min-block-size:0` / `overflow-y:auto` boilerplate. The whole inset\n * scrolls, header included; for a fixed header with only the body scrolling,\n * leave this off and compose a nested scroll region inside the inset (see the\n * App shell story).\n */\n scrollable?: boolean;\n}\n\nfunction SidebarInset({ asChild, scrollable, className, ...props }: SidebarInsetProps) {\n const Comp = asChild ? SlotPrimitive.Slot : 'main';\n return (\n <Comp\n data-slot=\"sidebar-inset\"\n className={cn(\n 'ddga-sidebar-inset',\n scrollable && 'ddga-sidebar-inset--scrollable',\n className,\n )}\n {...props}\n />\n );\n}\n\n// ─── Structure ─── //\n\ntype SidebarSectionProps = React.ComponentProps<'div'> & { asChild?: boolean };\n\nfunction SidebarHeader({ asChild, className, ...props }: SidebarSectionProps) {\n const Comp = asChild ? SlotPrimitive.Slot : 'div';\n return (\n <Comp data-slot=\"sidebar-header\" className={cn('ddga-sidebar__header', className)} {...props} />\n );\n}\n\nfunction SidebarContent({ asChild, className, ...props }: SidebarSectionProps) {\n const Comp = asChild ? SlotPrimitive.Slot : 'div';\n return (\n <Comp\n data-slot=\"sidebar-content\"\n className={cn('ddga-sidebar__content', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarFooter({ asChild, className, ...props }: SidebarSectionProps) {\n const Comp = asChild ? SlotPrimitive.Slot : 'div';\n return (\n <Comp data-slot=\"sidebar-footer\" className={cn('ddga-sidebar__footer', className)} {...props} />\n );\n}\n\nfunction SidebarSeparator({ className, ...props }: React.ComponentProps<'hr'>) {\n return (\n <hr\n data-slot=\"sidebar-separator\"\n className={cn('ddga-sidebar__separator', className)}\n {...props}\n />\n );\n}\n\n// ─── Exports ─── //\n\nexport { SidebarProvider };\nexport type { SidebarProviderProps };\n\nexport { Sidebar };\nexport type { SidebarProps };\n\nexport { SidebarTrigger, SidebarRail, SidebarInset };\nexport type { SidebarTriggerProps, SidebarInsetProps };\n\nexport { SidebarHeader, SidebarContent, SidebarFooter, SidebarSeparator };\nexport type { SidebarSectionProps };\n\nexport { useSidebar };\nexport type { SidebarContextValue };\n"]}
|
|
1
|
+
{"version":3,"sources":["/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-U3W2GAHM.cjs","../src/components/Sidebar/Sidebar.tsx"],"names":["value"],"mappings":"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","file":"/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-U3W2GAHM.cjs","sourcesContent":[null,"'use client';\n\nimport { useCallback, useEffect, useMemo, useState } from 'react';\nimport { Slot as SlotPrimitive } from 'radix-ui';\nimport { cn } from '../../utils/cn';\nimport { Drawer, DrawerContent } from '../Drawer';\nimport { PanelLeft } from '../../internal/icons';\nimport { SidebarContext, useSidebar, type SidebarContextValue } from './SidebarContext';\nimport { useIsMobile } from './useIsMobile';\n\n// ─── SidebarProvider ─── //\n\ninterface SidebarProviderProps extends React.ComponentProps<'div'> {\n /** Uncontrolled initial desktop state. Default true (expanded). */\n defaultOpen?: boolean;\n /** Controlled desktop open state. */\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n /** Viewport width (px) below which the mobile Drawer engages. Default 768. */\n mobileBreakpoint?: number;\n /** Register Cmd/Ctrl+B to toggle. Default true. */\n keyboardShortcut?: boolean;\n}\n\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange,\n mobileBreakpoint = 768,\n keyboardShortcut = true,\n className,\n style,\n children,\n ...props\n}: SidebarProviderProps) {\n const isMobile = useIsMobile(mobileBreakpoint);\n const [openMobile, setOpenMobile] = useState(false);\n\n const isControlled = openProp !== undefined;\n const [openInternal, setOpenInternal] = useState(defaultOpen);\n const open = isControlled ? (openProp as boolean) : openInternal;\n\n const setOpen = useCallback(\n (value: boolean) => {\n if (!isControlled) setOpenInternal(value);\n onOpenChange?.(value);\n },\n [isControlled, onOpenChange],\n );\n\n const toggleSidebar = useCallback(() => {\n if (isMobile) {\n setOpenMobile((v) => !v);\n return;\n }\n if (isControlled) {\n onOpenChange?.(!open);\n } else {\n setOpenInternal((v) => !v);\n }\n }, [isMobile, isControlled, onOpenChange, open]);\n\n useEffect(() => {\n if (!keyboardShortcut) return;\n const onKeyDown = (e: KeyboardEvent) => {\n if (e.key.toLowerCase() === 'b' && (e.metaKey || e.ctrlKey)) {\n e.preventDefault();\n toggleSidebar();\n }\n };\n window.addEventListener('keydown', onKeyDown);\n return () => window.removeEventListener('keydown', onKeyDown);\n }, [keyboardShortcut, toggleSidebar]);\n\n const state: 'expanded' | 'collapsed' = open ? 'expanded' : 'collapsed';\n\n const value = useMemo<SidebarContextValue>(\n () => ({ state, open, setOpen, openMobile, setOpenMobile, isMobile, toggleSidebar }),\n [state, open, setOpen, openMobile, isMobile, toggleSidebar],\n );\n\n return (\n <SidebarContext.Provider value={value}>\n <div\n data-slot=\"sidebar-wrapper\"\n className={cn('ddga-sidebar-wrapper', className)}\n style={style}\n {...props}\n >\n {children}\n </div>\n </SidebarContext.Provider>\n );\n}\n\n// ─── Sidebar (container) ─── //\n\ninterface SidebarProps extends React.ComponentProps<'div'> {\n variant?: 'sidebar' | 'floating' | 'inset';\n collapsible?: 'icon' | 'offcanvas' | 'none';\n /** Logical side; flips with dir. Default 'start'. */\n side?: 'start' | 'end';\n}\n\nfunction Sidebar({\n variant = 'sidebar',\n collapsible = 'icon',\n side = 'start',\n className,\n children,\n 'aria-label': ariaLabel = 'Sidebar',\n ...props\n}: SidebarProps) {\n const { isMobile, openMobile, setOpenMobile, state } = useSidebar();\n\n if (isMobile) {\n return (\n <Drawer open={openMobile} onOpenChange={setOpenMobile}>\n <DrawerContent\n side={side}\n size=\"sm\"\n aria-label={ariaLabel}\n data-slot=\"sidebar\"\n data-mobile=\"true\"\n data-variant={variant}\n data-side={side}\n className={cn('ddga-sidebar', 'ddga-sidebar--mobile', className)}\n {...props}\n >\n {children}\n </DrawerContent>\n </Drawer>\n );\n }\n\n return (\n <aside\n data-slot=\"sidebar\"\n aria-label={ariaLabel}\n data-state={state}\n data-collapsible={collapsible}\n data-variant={variant}\n data-side={side}\n className={cn('ddga-sidebar', className)}\n {...props}\n >\n {children}\n </aside>\n );\n}\n\n// ─── Trigger / Rail / Inset ─── //\n\ninterface SidebarTriggerProps extends React.ComponentProps<'button'> {\n asChild?: boolean;\n}\n\nfunction SidebarTrigger({\n asChild,\n className,\n onClick,\n children,\n 'aria-label': ariaLabel = 'Toggle sidebar',\n ...props\n}: SidebarTriggerProps) {\n const { toggleSidebar, open, openMobile, isMobile } = useSidebar();\n const Comp = asChild ? SlotPrimitive.Slot : 'button';\n return (\n <Comp\n type={asChild ? undefined : 'button'}\n data-slot=\"sidebar-trigger\"\n // Don't override the child element's accessible name when asChild.\n aria-label={asChild ? undefined : ariaLabel}\n aria-haspopup={isMobile ? 'dialog' : undefined}\n aria-expanded={isMobile ? openMobile : open}\n className={cn('ddga-sidebar__trigger', className)}\n onClick={(e: React.MouseEvent<HTMLButtonElement>) => {\n onClick?.(e);\n toggleSidebar();\n }}\n {...props}\n >\n {children ?? <PanelLeft aria-hidden=\"true\" />}\n </Comp>\n );\n}\n\nfunction SidebarRail({\n className,\n 'aria-label': ariaLabel = 'Toggle sidebar',\n ...props\n}: React.ComponentProps<'button'>) {\n const { toggleSidebar } = useSidebar();\n return (\n <button\n type=\"button\"\n data-slot=\"sidebar-rail\"\n aria-label={ariaLabel}\n title={ariaLabel}\n tabIndex={-1}\n className={cn('ddga-sidebar__rail', className)}\n onClick={toggleSidebar}\n {...props}\n />\n );\n}\n\ninterface SidebarInsetProps extends React.ComponentProps<'main'> {\n asChild?: boolean;\n /**\n * Make the inset its own vertical scroll region: tall content scrolls inside\n * it (the sidebar + footer stay put) with zero consumer layout CSS — no\n * `flex` / `min-block-size:0` / `overflow-y:auto` boilerplate. The whole inset\n * scrolls, header included; for a fixed header with only the body scrolling,\n * leave this off and compose a nested scroll region inside the inset (see the\n * App shell story).\n */\n scrollable?: boolean;\n}\n\nfunction SidebarInset({ asChild, scrollable, className, ...props }: SidebarInsetProps) {\n const Comp = asChild ? SlotPrimitive.Slot : 'main';\n return (\n <Comp\n data-slot=\"sidebar-inset\"\n className={cn(\n 'ddga-sidebar-inset',\n scrollable && 'ddga-sidebar-inset--scrollable',\n className,\n )}\n {...props}\n />\n );\n}\n\n// ─── Structure ─── //\n\ntype SidebarSectionProps = React.ComponentProps<'div'> & { asChild?: boolean };\n\nfunction SidebarHeader({ asChild, className, ...props }: SidebarSectionProps) {\n const Comp = asChild ? SlotPrimitive.Slot : 'div';\n return (\n <Comp data-slot=\"sidebar-header\" className={cn('ddga-sidebar__header', className)} {...props} />\n );\n}\n\nfunction SidebarContent({ asChild, className, ...props }: SidebarSectionProps) {\n const Comp = asChild ? SlotPrimitive.Slot : 'div';\n return (\n <Comp\n data-slot=\"sidebar-content\"\n className={cn('ddga-sidebar__content', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarFooter({ asChild, className, ...props }: SidebarSectionProps) {\n const Comp = asChild ? SlotPrimitive.Slot : 'div';\n return (\n <Comp data-slot=\"sidebar-footer\" className={cn('ddga-sidebar__footer', className)} {...props} />\n );\n}\n\nfunction SidebarSeparator({ className, ...props }: React.ComponentProps<'hr'>) {\n return (\n <hr\n data-slot=\"sidebar-separator\"\n className={cn('ddga-sidebar__separator', className)}\n {...props}\n />\n );\n}\n\n// ─── Exports ─── //\n\nexport { SidebarProvider };\nexport type { SidebarProviderProps };\n\nexport { Sidebar };\nexport type { SidebarProps };\n\nexport { SidebarTrigger, SidebarRail, SidebarInset };\nexport type { SidebarTriggerProps, SidebarInsetProps };\n\nexport { SidebarHeader, SidebarContent, SidebarFooter, SidebarSeparator };\nexport type { SidebarSectionProps };\n\nexport { useSidebar };\nexport type { SidebarContextValue };\n"]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunkH7V6VNFCcjs = require('./chunk-H7V6VNFC.cjs');
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
var _chunkYS2JJ73Mcjs = require('./chunk-YS2JJ73M.cjs');
|
|
@@ -174,8 +174,8 @@ function TabsOverflowList({
|
|
|
174
174
|
)
|
|
175
175
|
}
|
|
176
176
|
),
|
|
177
|
-
hasOverflow && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
178
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
177
|
+
hasOverflow && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkH7V6VNFCcjs.DropdownMenu, { children: [
|
|
178
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH7V6VNFCcjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
179
179
|
"button",
|
|
180
180
|
{
|
|
181
181
|
ref: moreRef,
|
|
@@ -187,10 +187,10 @@ function TabsOverflowList({
|
|
|
187
187
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "ddga-tabs__more-button", "aria-hidden": "true", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYS2JJ73Mcjs.MoreHorizontal, { className: "ddga-tabs__more-icon" }) })
|
|
188
188
|
}
|
|
189
189
|
) }),
|
|
190
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
190
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH7V6VNFCcjs.DropdownMenuContent, { align: "end", children: items.slice(hiddenFrom).map((child, i) => {
|
|
191
191
|
const index = hiddenFrom + i;
|
|
192
192
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
193
|
-
|
|
193
|
+
_chunkH7V6VNFCcjs.DropdownMenuItem,
|
|
194
194
|
{
|
|
195
195
|
startIcon: child.props.startIcon,
|
|
196
196
|
disabled: child.props.disabled,
|
|
@@ -268,4 +268,4 @@ function TabsContent({ className, ...props }) {
|
|
|
268
268
|
|
|
269
269
|
|
|
270
270
|
exports.tabsVariants = tabsVariants; exports.tabsListVariants = tabsListVariants; exports.Tabs = Tabs; exports.TabsList = TabsList; exports.TabsTrigger = TabsTrigger; exports.TabsContent = TabsContent;
|
|
271
|
-
//# sourceMappingURL=chunk-
|
|
271
|
+
//# sourceMappingURL=chunk-U6YLGSAQ.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-G6ZOJVIG.cjs","../src/components/Tabs/Tabs.tsx"],"names":[],"mappings":"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","file":"/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-G6ZOJVIG.cjs","sourcesContent":[null,"'use client';\n\nimport {\n Children,\n cloneElement,\n isValidElement,\n useCallback,\n useEffect,\n useLayoutEffect,\n useRef,\n useState,\n type ReactElement,\n type ReactNode,\n} from 'react';\nimport { Tabs as TabsPrimitive } from 'radix-ui';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\nimport { MoreHorizontal } from '../../internal/icons';\nimport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n} from '../DropdownMenu/DropdownMenu';\n\nconst useIsoLayoutEffect = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\n\nconst tabsVariants = cva('ddga-tabs', {\n variants: {\n size: {\n sm: 'ddga-tabs--sm',\n md: 'ddga-tabs--md',\n lg: 'ddga-tabs--lg',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n});\n\nconst tabsListVariants = cva('ddga-tabs__list', {\n variants: {\n fullWidth: {\n true: 'ddga-tabs__list--full-width',\n },\n /** Align the first tab's content to the list's leading edge (drop the\n * leading inset). SDGA \"Flush\" — horizontal lists only. */\n flush: {\n true: 'ddga-tabs__list--flush',\n },\n },\n});\n\ninterface TabsProps\n extends React.ComponentProps<typeof TabsPrimitive.Root>, VariantProps<typeof tabsVariants> {}\n\ninterface TabsListProps\n extends React.ComponentProps<typeof TabsPrimitive.List>, VariantProps<typeof tabsListVariants> {\n /**\n * Collapse tabs that don't fit into a trailing \"More\" overflow menu (SDGA\n * \"More Tab\"). Horizontal lists only — the list fills its container's inline\n * size and pushes the overflow trigger to the trailing edge.\n */\n overflow?: boolean;\n /** Accessible name for the overflow trigger when `overflow` is set. */\n moreLabel?: string;\n}\n\ninterface TabsTriggerProps extends React.ComponentProps<typeof TabsPrimitive.Trigger> {\n /**\n * Leading icon, rendered before the label in a decorative (`aria-hidden`)\n * wrapper. Ignored when `asChild` is set — compose icons inside your own\n * element in that mode.\n */\n startIcon?: ReactNode;\n /** Trailing icon (e.g. a count/badge glyph). Same rules as `startIcon`. */\n endIcon?: ReactNode;\n}\ntype TabsContentProps = React.ComponentProps<typeof TabsPrimitive.Content>;\n\nfunction Tabs({ size, className, ...props }: TabsProps) {\n return (\n <TabsPrimitive.Root\n data-slot=\"tabs\"\n className={cn(tabsVariants({ size }), className)}\n {...props}\n />\n );\n}\n\nfunction TabsList({ overflow, fullWidth, flush, moreLabel, ...props }: TabsListProps) {\n return overflow ? (\n // `fullWidth` is incompatible with measured overflow; `flush` still applies.\n <TabsOverflowList moreLabel={moreLabel} flush={flush} {...props} />\n ) : (\n <TabsPlainList fullWidth={fullWidth} flush={flush} {...props} />\n );\n}\n\nfunction TabsPlainList({\n fullWidth,\n flush,\n className,\n ...props\n}: Omit<TabsListProps, 'overflow' | 'moreLabel'>) {\n return (\n <TabsPrimitive.List\n data-slot=\"tabs-list\"\n className={cn(tabsListVariants({ fullWidth, flush }), className)}\n {...props}\n />\n );\n}\n\nfunction TabsOverflowList({\n className,\n children,\n flush,\n moreLabel = 'More tabs',\n ...props\n}: Omit<TabsListProps, 'overflow' | 'fullWidth'>) {\n const wrapRef = useRef<HTMLDivElement>(null);\n const listRef = useRef<HTMLDivElement>(null);\n const moreRef = useRef<HTMLButtonElement>(null);\n const [hiddenFrom, setHiddenFrom] = useState<number>(Number.POSITIVE_INFINITY);\n const [activeIndex, setActiveIndex] = useState<number>(-1);\n\n const items = Children.toArray(children).filter(\n isValidElement,\n ) as ReactElement<TabsTriggerProps>[];\n const count = items.length;\n\n const measure = useCallback(() => {\n const wrap = wrapRef.current;\n const list = listRef.current;\n if (!wrap || !list) return;\n const triggers = Array.from(list.querySelectorAll<HTMLElement>('[data-slot=\"tabs-trigger\"]'));\n if (triggers.length === 0) return;\n // Natural widths — defeat the `--overflowed` (display:none) class so a\n // hidden trigger still reports its real width on a later resize.\n const widths = triggers.map((t) => {\n t.style.setProperty('display', 'inline-flex', 'important');\n const w = t.getBoundingClientRect().width;\n t.style.removeProperty('display');\n return w;\n });\n const containerW = wrap.getBoundingClientRect().width;\n const total = widths.reduce((a, b) => a + b, 0);\n let next = triggers.length;\n if (total > containerW + 0.5) {\n const moreW = moreRef.current?.getBoundingClientRect().width ?? 48;\n const avail = containerW - moreW;\n let used = 0;\n next = 0;\n for (let i = 0; i < widths.length; i++) {\n if (used + widths[i] <= avail) {\n used += widths[i];\n next++;\n } else break;\n }\n next = Math.max(next, 1);\n }\n setHiddenFrom((prev) => (prev === next ? prev : next));\n }, []);\n\n const signature = items.map((c) => String(c.props.value)).join('|');\n useIsoLayoutEffect(() => {\n measure();\n const wrap = wrapRef.current;\n if (!wrap || typeof ResizeObserver === 'undefined') return;\n const ro = new ResizeObserver(() => measure());\n ro.observe(wrap);\n return () => ro.disconnect();\n }, [measure, signature]);\n\n // Track the active tab (Radix flips `data-state` internally) so the overflow\n // trigger can show the selected style when the active tab is collapsed.\n useEffect(() => {\n const list = listRef.current;\n if (!list) return;\n const read = () => {\n const triggers = Array.from(list.querySelectorAll('[data-slot=\"tabs-trigger\"]'));\n setActiveIndex(triggers.findIndex((t) => t.getAttribute('data-state') === 'active'));\n };\n read();\n if (typeof MutationObserver === 'undefined') return;\n const mo = new MutationObserver(read);\n mo.observe(list, { attributes: true, subtree: true, attributeFilter: ['data-state'] });\n return () => mo.disconnect();\n }, [signature]);\n\n const activate = (index: number) => {\n const trigger = listRef.current?.querySelectorAll<HTMLElement>('[data-slot=\"tabs-trigger\"]')[\n index\n ];\n trigger?.dispatchEvent(new MouseEvent('mousedown', { bubbles: true, cancelable: true }));\n };\n\n const hasOverflow = hiddenFrom < count;\n const activeHidden = activeIndex >= hiddenFrom;\n\n return (\n <div ref={wrapRef} className=\"ddga-tabs__list-wrap\" data-slot=\"tabs-list-wrap\">\n <TabsPrimitive.List\n ref={listRef}\n data-slot=\"tabs-list\"\n className={cn('ddga-tabs__list', flush && 'ddga-tabs__list--flush', className)}\n {...props}\n >\n {items.map((child, i) =>\n cloneElement(child, {\n key: child.key ?? i,\n className: cn(\n child.props.className,\n i >= hiddenFrom && 'ddga-tabs__trigger--overflowed',\n ),\n }),\n )}\n </TabsPrimitive.List>\n\n {hasOverflow && (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <button\n ref={moreRef}\n type=\"button\"\n className=\"ddga-tabs__more\"\n data-slot=\"tabs-more\"\n data-active={activeHidden ? '' : undefined}\n aria-label={moreLabel}\n >\n <span className=\"ddga-tabs__more-button\" aria-hidden=\"true\">\n <MoreHorizontal className=\"ddga-tabs__more-icon\" />\n </span>\n </button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\">\n {items.slice(hiddenFrom).map((child, i) => {\n const index = hiddenFrom + i;\n return (\n <DropdownMenuItem\n key={child.key ?? index}\n startIcon={child.props.startIcon}\n disabled={child.props.disabled}\n onSelect={() => activate(index)}\n >\n {child.props.children}\n </DropdownMenuItem>\n );\n })}\n </DropdownMenuContent>\n </DropdownMenu>\n )}\n </div>\n );\n}\n\nfunction TabsTrigger({\n className,\n startIcon,\n endIcon,\n children,\n asChild,\n ...props\n}: TabsTriggerProps) {\n const hasIcon = startIcon != null || endIcon != null;\n // null/undefined/boolean/'' children don't count as text (React renders nothing for them).\n const hasText = children != null && children !== '' && typeof children !== 'boolean';\n const isIconOnly = !asChild && hasIcon && !hasText;\n\n if (process.env.NODE_ENV === 'development') {\n if (isIconOnly && !props['aria-label'] && !props['aria-labelledby']) {\n console.warn(\n '[@dev-dga/react] An icon-only TabsTrigger (icon with no text label) ' +\n 'requires an aria-label or aria-labelledby for screen reader accessibility.',\n );\n }\n if (asChild && hasIcon) {\n console.warn(\n '[@dev-dga/react] TabsTrigger `startIcon`/`endIcon` are ignored when ' +\n '`asChild` is set — render the icons inside your child element instead.',\n );\n }\n }\n\n return (\n <TabsPrimitive.Trigger\n data-slot=\"tabs-trigger\"\n asChild={asChild}\n className={cn('ddga-tabs__trigger', isIconOnly && 'ddga-tabs__trigger--icon-only', className)}\n {...props}\n >\n {asChild ? (\n children\n ) : (\n <>\n {startIcon && (\n <span\n className=\"ddga-tabs__icon\"\n data-slot=\"tabs-trigger-start-icon\"\n aria-hidden=\"true\"\n >\n {startIcon}\n </span>\n )}\n {children}\n {endIcon && (\n <span className=\"ddga-tabs__icon\" data-slot=\"tabs-trigger-end-icon\" aria-hidden=\"true\">\n {endIcon}\n </span>\n )}\n </>\n )}\n </TabsPrimitive.Trigger>\n );\n}\n\nfunction TabsContent({ className, ...props }: TabsContentProps) {\n return (\n <TabsPrimitive.Content\n data-slot=\"tabs-content\"\n className={cn('ddga-tabs__content', className)}\n {...props}\n />\n );\n}\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent, tabsVariants, tabsListVariants };\nexport type { TabsProps, TabsListProps, TabsTriggerProps, TabsContentProps };\n"]}
|
|
1
|
+
{"version":3,"sources":["/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-U6YLGSAQ.cjs","../src/components/Tabs/Tabs.tsx"],"names":[],"mappings":"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","file":"/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-U6YLGSAQ.cjs","sourcesContent":[null,"'use client';\n\nimport {\n Children,\n cloneElement,\n isValidElement,\n useCallback,\n useEffect,\n useLayoutEffect,\n useRef,\n useState,\n type ReactElement,\n type ReactNode,\n} from 'react';\nimport { Tabs as TabsPrimitive } from 'radix-ui';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\nimport { MoreHorizontal } from '../../internal/icons';\nimport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n} from '../DropdownMenu/DropdownMenu';\n\nconst useIsoLayoutEffect = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\n\nconst tabsVariants = cva('ddga-tabs', {\n variants: {\n size: {\n sm: 'ddga-tabs--sm',\n md: 'ddga-tabs--md',\n lg: 'ddga-tabs--lg',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n});\n\nconst tabsListVariants = cva('ddga-tabs__list', {\n variants: {\n fullWidth: {\n true: 'ddga-tabs__list--full-width',\n },\n /** Align the first tab's content to the list's leading edge (drop the\n * leading inset). SDGA \"Flush\" — horizontal lists only. */\n flush: {\n true: 'ddga-tabs__list--flush',\n },\n },\n});\n\ninterface TabsProps\n extends React.ComponentProps<typeof TabsPrimitive.Root>, VariantProps<typeof tabsVariants> {}\n\ninterface TabsListProps\n extends React.ComponentProps<typeof TabsPrimitive.List>, VariantProps<typeof tabsListVariants> {\n /**\n * Collapse tabs that don't fit into a trailing \"More\" overflow menu (SDGA\n * \"More Tab\"). Horizontal lists only — the list fills its container's inline\n * size and pushes the overflow trigger to the trailing edge.\n */\n overflow?: boolean;\n /** Accessible name for the overflow trigger when `overflow` is set. */\n moreLabel?: string;\n}\n\ninterface TabsTriggerProps extends React.ComponentProps<typeof TabsPrimitive.Trigger> {\n /**\n * Leading icon, rendered before the label in a decorative (`aria-hidden`)\n * wrapper. Ignored when `asChild` is set — compose icons inside your own\n * element in that mode.\n */\n startIcon?: ReactNode;\n /** Trailing icon (e.g. a count/badge glyph). Same rules as `startIcon`. */\n endIcon?: ReactNode;\n}\ntype TabsContentProps = React.ComponentProps<typeof TabsPrimitive.Content>;\n\nfunction Tabs({ size, className, ...props }: TabsProps) {\n return (\n <TabsPrimitive.Root\n data-slot=\"tabs\"\n className={cn(tabsVariants({ size }), className)}\n {...props}\n />\n );\n}\n\nfunction TabsList({ overflow, fullWidth, flush, moreLabel, ...props }: TabsListProps) {\n return overflow ? (\n // `fullWidth` is incompatible with measured overflow; `flush` still applies.\n <TabsOverflowList moreLabel={moreLabel} flush={flush} {...props} />\n ) : (\n <TabsPlainList fullWidth={fullWidth} flush={flush} {...props} />\n );\n}\n\nfunction TabsPlainList({\n fullWidth,\n flush,\n className,\n ...props\n}: Omit<TabsListProps, 'overflow' | 'moreLabel'>) {\n return (\n <TabsPrimitive.List\n data-slot=\"tabs-list\"\n className={cn(tabsListVariants({ fullWidth, flush }), className)}\n {...props}\n />\n );\n}\n\nfunction TabsOverflowList({\n className,\n children,\n flush,\n moreLabel = 'More tabs',\n ...props\n}: Omit<TabsListProps, 'overflow' | 'fullWidth'>) {\n const wrapRef = useRef<HTMLDivElement>(null);\n const listRef = useRef<HTMLDivElement>(null);\n const moreRef = useRef<HTMLButtonElement>(null);\n const [hiddenFrom, setHiddenFrom] = useState<number>(Number.POSITIVE_INFINITY);\n const [activeIndex, setActiveIndex] = useState<number>(-1);\n\n const items = Children.toArray(children).filter(\n isValidElement,\n ) as ReactElement<TabsTriggerProps>[];\n const count = items.length;\n\n const measure = useCallback(() => {\n const wrap = wrapRef.current;\n const list = listRef.current;\n if (!wrap || !list) return;\n const triggers = Array.from(list.querySelectorAll<HTMLElement>('[data-slot=\"tabs-trigger\"]'));\n if (triggers.length === 0) return;\n // Natural widths — defeat the `--overflowed` (display:none) class so a\n // hidden trigger still reports its real width on a later resize.\n const widths = triggers.map((t) => {\n t.style.setProperty('display', 'inline-flex', 'important');\n const w = t.getBoundingClientRect().width;\n t.style.removeProperty('display');\n return w;\n });\n const containerW = wrap.getBoundingClientRect().width;\n const total = widths.reduce((a, b) => a + b, 0);\n let next = triggers.length;\n if (total > containerW + 0.5) {\n const moreW = moreRef.current?.getBoundingClientRect().width ?? 48;\n const avail = containerW - moreW;\n let used = 0;\n next = 0;\n for (let i = 0; i < widths.length; i++) {\n if (used + widths[i] <= avail) {\n used += widths[i];\n next++;\n } else break;\n }\n next = Math.max(next, 1);\n }\n setHiddenFrom((prev) => (prev === next ? prev : next));\n }, []);\n\n const signature = items.map((c) => String(c.props.value)).join('|');\n useIsoLayoutEffect(() => {\n measure();\n const wrap = wrapRef.current;\n if (!wrap || typeof ResizeObserver === 'undefined') return;\n const ro = new ResizeObserver(() => measure());\n ro.observe(wrap);\n return () => ro.disconnect();\n }, [measure, signature]);\n\n // Track the active tab (Radix flips `data-state` internally) so the overflow\n // trigger can show the selected style when the active tab is collapsed.\n useEffect(() => {\n const list = listRef.current;\n if (!list) return;\n const read = () => {\n const triggers = Array.from(list.querySelectorAll('[data-slot=\"tabs-trigger\"]'));\n setActiveIndex(triggers.findIndex((t) => t.getAttribute('data-state') === 'active'));\n };\n read();\n if (typeof MutationObserver === 'undefined') return;\n const mo = new MutationObserver(read);\n mo.observe(list, { attributes: true, subtree: true, attributeFilter: ['data-state'] });\n return () => mo.disconnect();\n }, [signature]);\n\n const activate = (index: number) => {\n const trigger = listRef.current?.querySelectorAll<HTMLElement>('[data-slot=\"tabs-trigger\"]')[\n index\n ];\n trigger?.dispatchEvent(new MouseEvent('mousedown', { bubbles: true, cancelable: true }));\n };\n\n const hasOverflow = hiddenFrom < count;\n const activeHidden = activeIndex >= hiddenFrom;\n\n return (\n <div ref={wrapRef} className=\"ddga-tabs__list-wrap\" data-slot=\"tabs-list-wrap\">\n <TabsPrimitive.List\n ref={listRef}\n data-slot=\"tabs-list\"\n className={cn('ddga-tabs__list', flush && 'ddga-tabs__list--flush', className)}\n {...props}\n >\n {items.map((child, i) =>\n cloneElement(child, {\n key: child.key ?? i,\n className: cn(\n child.props.className,\n i >= hiddenFrom && 'ddga-tabs__trigger--overflowed',\n ),\n }),\n )}\n </TabsPrimitive.List>\n\n {hasOverflow && (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <button\n ref={moreRef}\n type=\"button\"\n className=\"ddga-tabs__more\"\n data-slot=\"tabs-more\"\n data-active={activeHidden ? '' : undefined}\n aria-label={moreLabel}\n >\n <span className=\"ddga-tabs__more-button\" aria-hidden=\"true\">\n <MoreHorizontal className=\"ddga-tabs__more-icon\" />\n </span>\n </button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\">\n {items.slice(hiddenFrom).map((child, i) => {\n const index = hiddenFrom + i;\n return (\n <DropdownMenuItem\n key={child.key ?? index}\n startIcon={child.props.startIcon}\n disabled={child.props.disabled}\n onSelect={() => activate(index)}\n >\n {child.props.children}\n </DropdownMenuItem>\n );\n })}\n </DropdownMenuContent>\n </DropdownMenu>\n )}\n </div>\n );\n}\n\nfunction TabsTrigger({\n className,\n startIcon,\n endIcon,\n children,\n asChild,\n ...props\n}: TabsTriggerProps) {\n const hasIcon = startIcon != null || endIcon != null;\n // null/undefined/boolean/'' children don't count as text (React renders nothing for them).\n const hasText = children != null && children !== '' && typeof children !== 'boolean';\n const isIconOnly = !asChild && hasIcon && !hasText;\n\n if (process.env.NODE_ENV === 'development') {\n if (isIconOnly && !props['aria-label'] && !props['aria-labelledby']) {\n console.warn(\n '[@dev-dga/react] An icon-only TabsTrigger (icon with no text label) ' +\n 'requires an aria-label or aria-labelledby for screen reader accessibility.',\n );\n }\n if (asChild && hasIcon) {\n console.warn(\n '[@dev-dga/react] TabsTrigger `startIcon`/`endIcon` are ignored when ' +\n '`asChild` is set — render the icons inside your child element instead.',\n );\n }\n }\n\n return (\n <TabsPrimitive.Trigger\n data-slot=\"tabs-trigger\"\n asChild={asChild}\n className={cn('ddga-tabs__trigger', isIconOnly && 'ddga-tabs__trigger--icon-only', className)}\n {...props}\n >\n {asChild ? (\n children\n ) : (\n <>\n {startIcon && (\n <span\n className=\"ddga-tabs__icon\"\n data-slot=\"tabs-trigger-start-icon\"\n aria-hidden=\"true\"\n >\n {startIcon}\n </span>\n )}\n {children}\n {endIcon && (\n <span className=\"ddga-tabs__icon\" data-slot=\"tabs-trigger-end-icon\" aria-hidden=\"true\">\n {endIcon}\n </span>\n )}\n </>\n )}\n </TabsPrimitive.Trigger>\n );\n}\n\nfunction TabsContent({ className, ...props }: TabsContentProps) {\n return (\n <TabsPrimitive.Content\n data-slot=\"tabs-content\"\n className={cn('ddga-tabs__content', className)}\n {...props}\n />\n );\n}\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent, tabsVariants, tabsListVariants };\nexport type { TabsProps, TabsListProps, TabsTriggerProps, TabsContentProps };\n"]}
|
|
@@ -1,17 +1,17 @@
|
|
|
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 _chunkBTXKJ4NEcjs = require('./chunk-BTXKJ4NE.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var
|
|
8
|
+
var _chunkOYSETR4Kcjs = require('./chunk-OYSETR4K.cjs');
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
var
|
|
11
|
+
var _chunkTQUB2TCLcjs = require('./chunk-TQUB2TCL.cjs');
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _chunk5NENDJOMcjs = require('./chunk-5NENDJOM.cjs');
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
|
|
@@ -66,7 +66,7 @@ function Filtration({
|
|
|
66
66
|
() => ({ overlay, open: actualOpen, setOpen }),
|
|
67
67
|
[overlay, actualOpen, setOpen]
|
|
68
68
|
);
|
|
69
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, FiltrationContext.Provider, { value: ctx, children: overlay ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
69
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, FiltrationContext.Provider, { value: ctx, children: overlay ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkOYSETR4Kcjs.Popover, { open: actualOpen, onOpenChange: setOpen, children }) : children });
|
|
70
70
|
}
|
|
71
71
|
function FiltrationTrigger({
|
|
72
72
|
size = "lg",
|
|
@@ -101,7 +101,7 @@ function FiltrationTrigger({
|
|
|
101
101
|
children
|
|
102
102
|
}
|
|
103
103
|
);
|
|
104
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
104
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkOYSETR4Kcjs.PopoverTrigger, { asChild: true, children: button });
|
|
105
105
|
}
|
|
106
106
|
function FiltrationResults({
|
|
107
107
|
className,
|
|
@@ -138,7 +138,7 @@ function FiltrationPanel({ className, children, ...props }) {
|
|
|
138
138
|
const overlay = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _3 => _3.overlay]), () => ( true));
|
|
139
139
|
if (overlay) {
|
|
140
140
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
141
|
-
|
|
141
|
+
_chunkOYSETR4Kcjs.PopoverContent,
|
|
142
142
|
{
|
|
143
143
|
"data-slot": "filtration-panel",
|
|
144
144
|
align: "start",
|
|
@@ -242,7 +242,7 @@ function FiltrationCheckboxFilter({
|
|
|
242
242
|
className: _chunkV6MXOJQ4cjs.cn.call(void 0, "ddga-filtration-checkbox-filter", className),
|
|
243
243
|
children: [
|
|
244
244
|
searchable ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
245
|
-
|
|
245
|
+
_chunkBTXKJ4NEcjs.SearchBox,
|
|
246
246
|
{
|
|
247
247
|
"aria-label": searchLabel,
|
|
248
248
|
placeholder: searchPlaceholder,
|
|
@@ -252,7 +252,7 @@ function FiltrationCheckboxFilter({
|
|
|
252
252
|
}
|
|
253
253
|
) : null,
|
|
254
254
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { id: listId, className: "ddga-filtration-checkbox-filter__list", children: visible.map((opt) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
255
|
-
|
|
255
|
+
_chunkTQUB2TCLcjs.Checkbox,
|
|
256
256
|
{
|
|
257
257
|
size: "sm",
|
|
258
258
|
value: opt.value,
|
|
@@ -372,4 +372,4 @@ function FiltrationFooter({
|
|
|
372
372
|
|
|
373
373
|
|
|
374
374
|
exports.filtrationPanelVariants = filtrationPanelVariants; exports.Filtration = Filtration; exports.FiltrationTrigger = FiltrationTrigger; exports.FiltrationResults = FiltrationResults; exports.FiltrationPanel = FiltrationPanel; exports.FiltrationSection = FiltrationSection; exports.FiltrationCheckboxFilter = FiltrationCheckboxFilter; exports.FiltrationOptionList = FiltrationOptionList; exports.FiltrationOption = FiltrationOption; exports.FiltrationFooter = FiltrationFooter;
|
|
375
|
-
//# sourceMappingURL=chunk-
|
|
375
|
+
//# sourceMappingURL=chunk-UG2SQ4Q3.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-K7GLIST7.cjs","../src/components/Filtration/Filtration.tsx"],"names":["Fragment"],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACrBA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,8BAEK;AACP,mCAAkD;AAClD,kEAAoB;AAsIZ,+CAAA;AA9HR,IAAM,wBAAA,EAA0B,yCAAA,uBAAI,EAAyB;AAAA,EAC3D,QAAA,EAAU;AAAA,IACR,MAAA,EAAQ;AAAA,MACN,IAAA,EAAM;AAAA,IACR;AAAA,EACF;AACF,CAAC,CAAA;AASD,IAAM,kBAAA,EAAoB,kCAAA,IAAiD,CAAA;AAoF3E,SAAS,UAAA,CAAW;AAAA,EAClB,QAAA,EAAU,IAAA;AAAA,EACV,IAAA;AAAA,EACA,WAAA;AAAA,EACA,YAAA;AAAA,EACA;AACF,CAAA,EAAoB;AAClB,EAAA,MAAM,aAAA,EAAe,KAAA,IAAS,KAAA,CAAA;AAC9B,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,EAAA,EAAI,6BAAA,iBAAS,WAAA,UAAe,OAAK,CAAA;AACrE,EAAA,MAAM,WAAA,EAAa,aAAA,EAAe,KAAA,EAAO,YAAA;AAEzC,EAAA,MAAM,QAAA,EAAU,gCAAA;AAAA,IACd,CAAC,IAAA,EAAA,GAAkB;AACjB,MAAA,GAAA,CAAI,CAAC,YAAA,EAAc,eAAA,CAAgB,IAAI,CAAA;AACvC,sBAAA,YAAA,wBAAA,CAAe,IAAI,GAAA;AAAA,IACrB,CAAA;AAAA,IACA,CAAC,YAAA,EAAc,YAAY;AAAA,EAC7B,CAAA;AAEA,EAAA,MAAM,IAAA,EAAM,4BAAA;AAAA,IACV,CAAA,EAAA,GAAA,CAAO,EAAE,OAAA,EAAS,IAAA,EAAM,UAAA,EAAY,QAAQ,CAAA,CAAA;AAAA,IAC5C,CAAC,OAAA,EAAS,UAAA,EAAY,OAAO;AAAA,EAC/B,CAAA;AAEA,EAAA,uBACE,6BAAA,iBAAC,CAAkB,QAAA,EAAlB,EAA2B,KAAA,EAAO,GAAA,EAChC,QAAA,EAAA,QAAA,kBACC,6BAAA,yBAAC,EAAA,EAAQ,IAAA,EAAM,UAAA,EAAY,YAAA,EAAc,OAAA,EACtC,SAAA,CACH,EAAA,EAEA,SAAA,CAEJ,CAAA;AAEJ;AAEA,SAAS,iBAAA,CAAkB;AAAA,EACzB,KAAA,EAAO,IAAA;AAAA,EACP,SAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA2B;AACzB,EAAA,MAAM,IAAA,EAAM,+BAAA,iBAA4B,CAAA;AACxC,EAAA,MAAM,QAAA,mCAAU,GAAA,6BAAK,SAAA,UAAW,MAAA;AAEhC,EAAA,MAAM,OAAA,EAAS,2BAAA,KAAY,CAAA;AAC3B,EAAA,8BAAA,CAAU,EAAA,GAAM;AACd,IAAA,GAAA,CAAI,OAAA,CAAQ,GAAA,CAAI,SAAA,IAAa,aAAA,GAAgB,CAAC,QAAA,GAAW,CAAC,MAAA,CAAO,OAAA,EAAS;AACxE,MAAA,MAAA,CAAO,QAAA,EAAU,IAAA;AACjB,MAAA,OAAA,CAAQ,IAAA;AAAA,QACN;AAAA,MAEF,CAAA;AAAA,IACF;AAAA,EACF,CAAA,EAAG,CAAC,OAAO,CAAC,CAAA;AAEZ,EAAA,GAAA,CAAI,CAAC,OAAA,EAAS,OAAO,IAAA;AAErB,EAAA,MAAM,OAAA,kBACJ,6BAAA;AAAA,IAAC,wBAAA;AAAA,IAAA;AAAA,MACC,OAAA,EAAQ,OAAA;AAAA,MACR,IAAA;AAAA,MACA,SAAA,mBAAW,SAAA,0BAAa,6BAAA,wBAAC,EAAA,EAAO,aAAA,EAAY,OAAA,CAAO,GAAA;AAAA,MACnD,OAAA,mBAAS,OAAA,0BAAW,6BAAA,6BAAC,EAAA,EAAY,aAAA,EAAY,OAAA,CAAO,GAAA;AAAA,MACpD,WAAA,EAAU,oBAAA;AAAA,MACV,SAAA,EAAW,kCAAA,0BAAG,EAA4B,SAAS,CAAA;AAAA,MAClD,GAAG,KAAA;AAAA,MAEH;AAAA,IAAA;AAAA,EACH,CAAA;AAGF,EAAA,uBAAO,6BAAA,gCAAC,EAAA,EAAe,OAAA,EAAO,IAAA,EAAE,QAAA,EAAA,OAAA,CAAO,CAAA;AACzC;AAEA,SAAS,iBAAA,CAAkB;AAAA,EACzB,SAAA;AAAA,EACA,QAAA;AAAA,EACA,YAAA,EAAc,SAAA;AAAA,EACd,GAAG;AACL,CAAA,EAA2B;AACzB,EAAA,GAAA,CAAI,OAAA,CAAQ,GAAA,CAAI,SAAA,IAAa,aAAA,GAAgB,CAAC,UAAA,GAAa,CAAC,KAAA,CAAM,iBAAiB,CAAA,EAAG;AACpF,IAAA,OAAA,CAAQ,IAAA;AAAA,MACN;AAAA,IACF,CAAA;AAAA,EACF;AACA,EAAA,uBACE,6BAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,OAAA;AAAA,MACL,YAAA,EAAY,SAAA;AAAA,MACZ,WAAA,EAAU,oBAAA;AAAA,MACV,SAAA,EAAW,kCAAA,yBAAG,EAA2B,SAAS,CAAA;AAAA,MACjD,GAAG,KAAA;AAAA,MAEH;AAAA,IAAA;AAAA,EACH,CAAA;AAEJ;AAIA,SAAS,kBAAA,CAAmB,QAAA,EAAgC;AAC1D,EAAA,MAAM,MAAA,EAAQ,eAAA,CAAS,OAAA,CAAQ,QAAQ,CAAA,CAAE,MAAA,CAAO,OAAO,CAAA;AACvD,EAAA,OAAO,KAAA,CAAM,GAAA,CAAI,CAAC,KAAA,EAAO,CAAA,EAAA,mBACvB,8BAAA,eAAC,EAAA,EACE,QAAA,EAAA;AAAA,IAAA,EAAA,EAAI,EAAA,kBAAI,6BAAA,KAAC,EAAA,EAAI,SAAA,EAAU,0BAAA,EAA2B,aAAA,EAAY,OAAA,CAAO,EAAA,EAAK,IAAA;AAAA,IAC1E;AAAA,EAAA,EAAA,CAAA,EAFY,CAGf,CACD,CAAA;AACH;AAEA,SAAS,eAAA,CAAgB,EAAE,SAAA,EAAW,QAAA,EAAU,GAAG,MAAM,CAAA,EAAyB;AAChF,EAAA,MAAM,IAAA,EAAM,+BAAA,iBAA4B,CAAA;AACxC,EAAA,MAAM,QAAA,mCAAU,GAAA,6BAAK,SAAA,UAAW,MAAA;AAEhC,EAAA,GAAA,CAAI,OAAA,EAAS;AACX,IAAA,uBACE,6BAAA;AAAA,MAAC,gCAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAU,kBAAA;AAAA,QACV,KAAA,EAAM,OAAA;AAAA,QACN,SAAA,EAAW,kCAAA,uBAAG,CAAwB,CAAA,EAAG,SAAS,CAAA;AAAA,QACjD,GAAG,KAAA;AAAA,QAEH,QAAA,EAAA,kBAAA,CAAmB,QAAQ;AAAA,MAAA;AAAA,IAC9B,CAAA;AAAA,EAEJ;AAEA,EAAA,GAAA,CAAI,OAAA,CAAQ,GAAA,CAAI,SAAA,IAAa,aAAA,GAAgB,CAAC,KAAA,CAAM,YAAY,EAAA,GAAK,CAAC,KAAA,CAAM,iBAAiB,CAAA,EAAG;AAC9F,IAAA,OAAA,CAAQ,IAAA;AAAA,MACN;AAAA,IACF,CAAA;AAAA,EACF;AAEA,EAAA,uBACE,6BAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,kBAAA;AAAA,MACV,SAAA,EAAW,kCAAA,uBAAG,CAAwB,EAAE,MAAA,EAAQ,KAAK,CAAC,CAAA,EAAG,SAAS,CAAA;AAAA,MACjE,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA,kBAAA,CAAmB,QAAQ;AAAA,IAAA;AAAA,EAC9B,CAAA;AAEJ;AAEA,SAAS,iBAAA,CAAkB;AAAA,EACzB,KAAA;AAAA,EACA,KAAA;AAAA,EACA,YAAA,EAAc,CAAC,CAAA,EAAA,GAAM,CAAA,CAAA,EAAI,CAAC,CAAA,YAAA,CAAA;AAAA,EAC1B,SAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA2B;AACzB,EAAA,MAAM,QAAA,EAAU,0BAAA,CAAM;AACtB,EAAA,uBACE,8BAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,OAAA;AAAA,MACL,iBAAA,EAAiB,OAAA;AAAA,MACjB,WAAA,EAAU,oBAAA;AAAA,MACV,SAAA,EAAW,kCAAA,yBAAG,EAA2B,SAAS,CAAA;AAAA,MACjD,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAA,8BAAA,GAAC,EAAA,EAAE,EAAA,EAAI,OAAA,EAAS,SAAA,EAAU,gCAAA,EACvB,QAAA,EAAA;AAAA,UAAA,KAAA;AAAA,UACA,MAAA,GAAS,KAAA,kBACR,8BAAA,MAAC,EAAA,EAAK,SAAA,EAAU,gCAAA,EAAiC,QAAA,EAAA;AAAA,YAAA,GAAA;AAAA,YAAE,WAAA,CAAY,KAAK;AAAA,UAAA,EAAA,CAAE,EAAA,EACpE;AAAA,QAAA,EAAA,CACN,CAAA;AAAA,wBACA,6BAAA,KAAC,EAAA,EAAI,SAAA,EAAU,+BAAA,EAAiC,SAAA,CAAS;AAAA,MAAA;AAAA,IAAA;AAAA,EAC3D,CAAA;AAEJ;AAEA,SAAS,UAAA,CAAW,KAAA,EAAkB,KAAA,EAAuB;AAC3D,EAAA,OAAO,OAAO,MAAA,IAAU,SAAA,EAAW,MAAA,EAAQ,KAAA;AAC7C;AAEA,SAAS,wBAAA,CAAyB;AAAA,EAChC,OAAA;AAAA,EACA,KAAA;AAAA,EACA,YAAA;AAAA,EACA,aAAA;AAAA,EACA,WAAA,EAAa,KAAA;AAAA,EACb,iBAAA;AAAA,EACA,YAAA,EAAc,gBAAA;AAAA,EACd,aAAA;AAAA,EACA,cAAA,EAAgB,CAAC,SAAA,EAAA,GAAc,CAAA,KAAA,EAAQ,SAAS,CAAA,KAAA,CAAA;AAAA,EAChD,cAAA,EAAgB,WAAA;AAAA,EAChB,SAAA;AAAA,EACA,YAAA,EAAc,SAAA;AAAA,EACd,iBAAA,EAAmB,cAAA;AAAA,EACnB,GAAG;AACL,CAAA,EAAkC;AAChC,EAAA,MAAM,aAAA,EAAe,MAAA,IAAU,KAAA,CAAA;AAC/B,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,EAAA,EAAI,6BAAA,iBAAmB,YAAA,UAAgB,CAAC,GAAC,CAAA;AACrE,EAAA,MAAM,SAAA,EAAW,aAAA,EAAe,MAAA,EAAQ,QAAA;AAExC,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,EAAA,EAAI,6BAAA,EAAW,CAAA;AACrC,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,EAAA,EAAI,6BAAA,KAAc,CAAA;AAC9C,EAAA,MAAM,OAAA,EAAS,0BAAA,CAAM;AAErB,EAAA,MAAM,OAAA,EAAS,CAAC,QAAA,EAAA,GAAqB;AACnC,IAAA,MAAM,KAAA,EAAO,QAAA,CAAS,QAAA,CAAS,QAAQ,EAAA,EACnC,QAAA,CAAS,MAAA,CAAO,CAAC,CAAA,EAAA,GAAM,EAAA,IAAM,QAAQ,EAAA,EACrC,CAAC,GAAG,QAAA,EAAU,QAAQ,CAAA;AAC1B,IAAA,GAAA,CAAI,CAAC,YAAA,EAAc,WAAA,CAAY,IAAI,CAAA;AACnC,oBAAA,aAAA,0BAAA,CAAgB,IAAI,GAAA;AAAA,EACtB,CAAA;AAEA,EAAA,MAAM,SAAA,EAAW,4BAAA,CAAQ,EAAA,GAAM;AAC7B,IAAA,MAAM,EAAA,EAAI,KAAA,CAAM,IAAA,CAAK,CAAA,CAAE,WAAA,CAAY,CAAA;AACnC,IAAA,GAAA,CAAI,CAAC,WAAA,GAAc,CAAC,CAAA,EAAG,OAAO,OAAA;AAC9B,IAAA,OAAO,OAAA,CAAQ,MAAA,CAAO,CAAC,CAAA,EAAA,GAAM,UAAA,CAAW,CAAA,CAAE,KAAA,EAAO,CAAA,CAAE,KAAK,CAAA,CAAE,WAAA,CAAY,CAAA,CAAE,QAAA,CAAS,CAAC,CAAC,CAAA;AAAA,EACrF,CAAA,EAAG,CAAC,OAAA,EAAS,KAAA,EAAO,UAAU,CAAC,CAAA;AAE/B,EAAA,MAAM,YAAA,EAAc,cAAA,GAAiB,KAAA,GAAQ,QAAA,CAAS,OAAA,EAAS,aAAA;AAC/D,EAAA,MAAM,QAAA,EAAU,YAAA,GAAe,CAAC,SAAA,EAAW,QAAA,CAAS,KAAA,CAAM,CAAA,EAAG,aAAa,EAAA,EAAI,QAAA;AAC9E,EAAA,MAAM,UAAA,EAAY,YAAA,EAAc,QAAA,CAAS,OAAA,EAAA,kBAAU,aAAA,UAAiB,GAAA,EAAA,EAAK,CAAA;AAEzE,EAAA,uBACE,8BAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,IAAA;AAAA,MACJ,IAAA,EAAK,OAAA;AAAA,MACL,YAAA,EAAY,SAAA;AAAA,MACZ,iBAAA,EAAiB,cAAA;AAAA,MACjB,WAAA,EAAU,4BAAA;AAAA,MACV,SAAA,EAAW,kCAAA,iCAAG,EAAmC,SAAS,CAAA;AAAA,MAEzD,QAAA,EAAA;AAAA,QAAA,WAAA,kBACC,6BAAA;AAAA,UAAC,2BAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAY,WAAA;AAAA,YACZ,WAAA,EAAa,iBAAA;AAAA,YACb,WAAA,EAAa,KAAA;AAAA,YACb,KAAA,EAAO,KAAA;AAAA,YACP,QAAA,EAAU,CAAC,KAAA,EAAA,GAAU,QAAA,CAAS,KAAA,CAAM,MAAA,CAAO,KAAK;AAAA,UAAA;AAAA,QAClD,EAAA,EACE,IAAA;AAAA,wBACJ,6BAAA,KAAC,EAAA,EAAI,EAAA,EAAI,MAAA,EAAQ,SAAA,EAAU,uCAAA,EACxB,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAC,GAAA,EAAA,mBACZ,6BAAA;AAAA,UAAC,0BAAA;AAAA,UAAA;AAAA,YAEC,IAAA,EAAK,IAAA;AAAA,YACL,KAAA,EAAO,GAAA,CAAI,KAAA;AAAA,YACX,OAAA,EAAS,QAAA,CAAS,QAAA,CAAS,GAAA,CAAI,KAAK,CAAA;AAAA,YACpC,eAAA,EAAiB,CAAA,EAAA,GAAM,MAAA,CAAO,GAAA,CAAI,KAAK,CAAA;AAAA,YACvC,QAAA,EAAU,GAAA,CAAI,QAAA;AAAA,YACd,KAAA,kBACE,8BAAA,oBAAAA,EAAA,EACG,QAAA,EAAA;AAAA,cAAA,GAAA,CAAI,KAAA;AAAA,cACJ,GAAA,CAAI,MAAA,GAAS,KAAA,kBACZ,8BAAA,MAAC,EAAA,EAAK,SAAA,EAAU,wCAAA,EAAyC,aAAA,EAAY,MAAA,EAClE,QAAA,EAAA;AAAA,gBAAA,GAAA;AAAA,gBAAI,GAAA;AAAA,gBACH,GAAA,CAAI,KAAA;AAAA,gBAAM;AAAA,cAAA,EAAA,CACd,EAAA,EACE;AAAA,YAAA,EAAA,CACN;AAAA,UAAA,CAAA;AAAA,UAfG,GAAA,CAAI;AAAA,QAiBX,CACD,EAAA,CACH,CAAA;AAAA,QACC,YAAA,kBACC,8BAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,SAAA,EAAU,uCAAA;AAAA,YACV,eAAA,EAAe,QAAA;AAAA,YACf,eAAA,EAAe,MAAA;AAAA,YACf,OAAA,EAAS,CAAA,EAAA,GAAM,WAAA,CAAY,CAAC,IAAA,EAAA,GAAS,CAAC,IAAI,CAAA;AAAA,YAEzC,QAAA,EAAA;AAAA,cAAA,SAAA,EAAW,cAAA,EAAgB,aAAA,CAAc,SAAS,CAAA;AAAA,8BACnD,6BAAA;AAAA,gBAAC,6BAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAW,kCAAA,4CAAG,EAA8C,SAAA,GAAY,SAAS,CAAA;AAAA,kBACjF,aAAA,EAAY;AAAA,gBAAA;AAAA,cACd;AAAA,YAAA;AAAA,UAAA;AAAA,QACF,EAAA,EACE;AAAA,MAAA;AAAA,IAAA;AAAA,EACN,CAAA;AAEJ;AAEA,SAAS,oBAAA,CAAqB,EAAE,SAAA,EAAW,GAAG,MAAM,CAAA,EAA8B;AAChF,EAAA,uBACE,6BAAA;AAAA,IAAC,mBAAA,CAAoB,IAAA;AAAA,IAApB;AAAA,MACC,WAAA,EAAU,wBAAA;AAAA,MACV,SAAA,EAAW,kCAAA,6BAAG,EAA+B,SAAS,CAAA;AAAA,MACrD,GAAG;AAAA,IAAA;AAAA,EACN,CAAA;AAEJ;AAEA,SAAS,gBAAA,CAAiB,EAAE,SAAA,EAAW,QAAA,EAAU,GAAG,MAAM,CAAA,EAA0B;AAClF,EAAA,uBACE,8BAAA;AAAA,IAAC,mBAAA,CAAoB,IAAA;AAAA,IAApB;AAAA,MACC,WAAA,EAAU,mBAAA;AAAA,MACV,SAAA,EAAW,kCAAA,wBAAG,EAA0B,SAAS,CAAA;AAAA,MAChD,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAA,6BAAA,MAAC,EAAA,EAAK,SAAA,EAAU,+BAAA,EAAiC,SAAA,CAAS,CAAA;AAAA,wBAC1D,6BAAA,mBAAC,CAAoB,SAAA,EAApB,EAA8B,SAAA,EAAU,mCAAA,EACvC,QAAA,kBAAA,6BAAA,uBAAC,EAAA,EAAM,SAAA,EAAU,+BAAA,EAAgC,aAAA,EAAY,OAAA,CAAO,EAAA,CACtE;AAAA,MAAA;AAAA,IAAA;AAAA,EACF,CAAA;AAEJ;AAEA,SAAS,gBAAA,CAAiB;AAAA,EACxB,WAAA,EAAa,eAAA;AAAA,EACb,WAAA,EAAa,cAAA;AAAA,EACb,YAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,aAAA,EAAe,IAAA;AAAA,EACf,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA0B;AACxB,EAAA,MAAM,IAAA,EAAM,+BAAA,iBAA4B,CAAA;AAExC,EAAA,MAAM,YAAA,EAAc,CAAA,EAAA,GAAM;AACxB,oBAAA,OAAA,0BAAA,CAAU,GAAA;AACV,IAAA,GAAA,CAAI,aAAA,mBAAgB,GAAA,6BAAK,SAAA,EAAS,GAAA,CAAI,OAAA,CAAQ,KAAK,CAAA;AAAA,EACrD,CAAA;AAEA,EAAA,uBACE,8BAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,mBAAA;AAAA,MACV,SAAA,EAAW,kCAAA,wBAAG,EAA0B,SAAS,CAAA;AAAA,MAChD,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAA,8BAAA;AAAA,UAAC,wBAAA;AAAA,UAAA;AAAA,YACC,OAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAK,IAAA;AAAA,YACL,SAAA,EAAU,+BAAA;AAAA,YACV,OAAA,EAAS,WAAA;AAAA,YAER,QAAA,EAAA;AAAA,cAAA,UAAA;AAAA,cACA,aAAA,GAAgB,KAAA,EAAO,CAAA,EAAA,EAAK,YAAY,CAAA,CAAA,EAAA,EAAM;AAAA,YAAA;AAAA,UAAA;AAAA,QACjD,CAAA;AAAA,wBACA,6BAAA,wBAAC,EAAA,EAAO,OAAA,EAAQ,OAAA,EAAQ,IAAA,EAAK,IAAA,EAAK,OAAA,EAAS,OAAA,EACxC,QAAA,EAAA,WAAA,CACH;AAAA,MAAA;AAAA,IAAA;AAAA,EACF,CAAA;AAEJ;AD1GA;AACA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,+dAAC","file":"/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-K7GLIST7.cjs","sourcesContent":[null,"'use client';\n\nimport {\n Children,\n Fragment,\n createContext,\n useCallback,\n useContext,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n type ReactNode,\n} from 'react';\nimport { RadioGroup as RadioGroupPrimitive } from 'radix-ui';\nimport { cva } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\nimport { Button, type ButtonProps } from '../Button';\nimport { Popover, PopoverTrigger, PopoverContent } from '../Popover';\nimport { Checkbox } from '../Checkbox';\nimport { SearchBox } from '../SearchBox';\nimport { Check, Filter, ChevronDown } from '../../internal/icons';\n\nconst filtrationPanelVariants = cva('ddga-filtration-panel', {\n variants: {\n inline: {\n true: 'ddga-filtration-panel--inline',\n },\n },\n});\n\ninterface FiltrationContextValue {\n /** `true` = floating overlay (Popover); `false` = embedded inline panel. */\n overlay: boolean;\n open: boolean;\n setOpen: (open: boolean) => void;\n}\n\nconst FiltrationContext = createContext<FiltrationContextValue | null>(null);\n\ninterface FiltrationProps {\n /** Floating overlay anchored to the trigger (default) vs an embedded inline panel. */\n overlay?: boolean;\n /** Controlled open state (overlay only). */\n open?: boolean;\n /** Uncontrolled initial open state (overlay only). */\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n children?: ReactNode;\n}\n\ntype FiltrationTriggerProps = Omit<ButtonProps, 'variant' | 'asChild'>;\n\ninterface FiltrationResultsProps extends React.ComponentProps<'div'> {\n /** Names the applied-filters chip group for assistive tech, e.g. \"Applied filters\". */\n 'aria-label'?: string;\n}\n\ntype FiltrationPanelProps = Omit<React.ComponentProps<typeof PopoverContent>, 'size' | 'arrow'>;\n\ninterface FiltrationSectionProps extends React.ComponentProps<'div'> {\n /** Section heading (Text sm/Semibold). */\n label: ReactNode;\n /** Selected-count badge; rendered via `formatCount`. */\n count?: number;\n /** Maps `count` → the suffix text. Defaults to `(n selections)`. Override for i18n. */\n formatCount?: (count: number) => ReactNode;\n}\n\ninterface FiltrationCheckboxOption {\n value: string;\n label: ReactNode;\n /** Optional trailing count, e.g. number of matching results. */\n count?: number;\n disabled?: boolean;\n}\n\ninterface FiltrationCheckboxFilterProps extends Omit<React.ComponentProps<'div'>, 'defaultValue'> {\n options: FiltrationCheckboxOption[];\n /** Controlled selected values. */\n value?: string[];\n /** Uncontrolled initial selected values. */\n defaultValue?: string[];\n onValueChange?: (next: string[]) => void;\n /** Show a search field that filters options by label. */\n searchable?: boolean;\n searchPlaceholder?: string;\n /** Accessible label for the search field (it has no visible label). */\n searchLabel?: string;\n /** Collapse to the first N options behind a \"Show more\" toggle. */\n collapseAfter?: number;\n /** Maps the hidden-count → the expand button label. Default `Show {n} more`. */\n showMoreLabel?: (remaining: number) => ReactNode;\n showLessLabel?: ReactNode;\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n className?: string;\n}\n\ntype FiltrationOptionListProps = Omit<\n React.ComponentProps<typeof RadioGroupPrimitive.Root>,\n 'asChild'\n>;\n\ninterface FiltrationOptionProps extends Omit<\n React.ComponentProps<typeof RadioGroupPrimitive.Item>,\n 'children'\n> {\n children: ReactNode;\n}\n\ninterface FiltrationFooterProps extends React.ComponentProps<'div'> {\n applyLabel?: ReactNode;\n clearLabel?: ReactNode;\n /** Appended to the apply label as `(n)`. */\n appliedCount?: number;\n onApply?: () => void;\n onClear?: () => void;\n /** Close the overlay when Apply is pressed (overlay only). Default `true`. */\n closeOnApply?: boolean;\n}\n\nfunction Filtration({\n overlay = true,\n open,\n defaultOpen,\n onOpenChange,\n children,\n}: FiltrationProps) {\n const isControlled = open !== undefined;\n const [internalOpen, setInternalOpen] = useState(defaultOpen ?? false);\n const actualOpen = isControlled ? open : internalOpen;\n\n const setOpen = useCallback(\n (next: boolean) => {\n if (!isControlled) setInternalOpen(next);\n onOpenChange?.(next);\n },\n [isControlled, onOpenChange],\n );\n\n const ctx = useMemo<FiltrationContextValue>(\n () => ({ overlay, open: actualOpen, setOpen }),\n [overlay, actualOpen, setOpen],\n );\n\n return (\n <FiltrationContext.Provider value={ctx}>\n {overlay ? (\n <Popover open={actualOpen} onOpenChange={setOpen}>\n {children}\n </Popover>\n ) : (\n children\n )}\n </FiltrationContext.Provider>\n );\n}\n\nfunction FiltrationTrigger({\n size = 'lg',\n startIcon,\n endIcon,\n className,\n children,\n ...props\n}: FiltrationTriggerProps) {\n const ctx = useContext(FiltrationContext);\n const overlay = ctx?.overlay ?? true;\n\n const warned = useRef(false);\n useEffect(() => {\n if (process.env.NODE_ENV !== 'production' && !overlay && !warned.current) {\n warned.current = true;\n console.warn(\n '[@dev-dga/react] <FiltrationTrigger> only renders in overlay mode. In an inline ' +\n '<Filtration overlay={false}> the panel is always visible, so the trigger is omitted.',\n );\n }\n }, [overlay]);\n\n if (!overlay) return null;\n\n const button = (\n <Button\n variant=\"black\"\n size={size}\n startIcon={startIcon ?? <Filter aria-hidden=\"true\" />}\n endIcon={endIcon ?? <ChevronDown aria-hidden=\"true\" />}\n data-slot=\"filtration-trigger\"\n className={cn('ddga-filtration__trigger', className)}\n {...props}\n >\n {children}\n </Button>\n );\n\n return <PopoverTrigger asChild>{button}</PopoverTrigger>;\n}\n\nfunction FiltrationResults({\n className,\n children,\n 'aria-label': ariaLabel,\n ...props\n}: FiltrationResultsProps) {\n if (process.env.NODE_ENV !== 'production' && !ariaLabel && !props['aria-labelledby']) {\n console.warn(\n '[@dev-dga/react] <FiltrationResults> should have an `aria-label` (e.g. \"Applied filters\") so the chip group has an accessible name.',\n );\n }\n return (\n <div\n role=\"group\"\n aria-label={ariaLabel}\n data-slot=\"filtration-results\"\n className={cn('ddga-filtration-results', className)}\n {...props}\n >\n {children}\n </div>\n );\n}\n\n// SDGA draws an explicit hairline between every panel child (sections + footer),\n// inset 8px each side and floating in the 8px inter-child gap — not an edge border.\nfunction interleaveDividers(children: ReactNode): ReactNode {\n const items = Children.toArray(children).filter(Boolean);\n return items.map((child, i) => (\n <Fragment key={i}>\n {i > 0 ? <div className=\"ddga-filtration__divider\" aria-hidden=\"true\" /> : null}\n {child}\n </Fragment>\n ));\n}\n\nfunction FiltrationPanel({ className, children, ...props }: FiltrationPanelProps) {\n const ctx = useContext(FiltrationContext);\n const overlay = ctx?.overlay ?? true;\n\n if (overlay) {\n return (\n <PopoverContent\n data-slot=\"filtration-panel\"\n align=\"start\"\n className={cn(filtrationPanelVariants(), className)}\n {...props}\n >\n {interleaveDividers(children)}\n </PopoverContent>\n );\n }\n\n if (process.env.NODE_ENV !== 'production' && !props['aria-label'] && !props['aria-labelledby']) {\n console.warn(\n '[@dev-dga/react] An inline <FiltrationPanel> should have an `aria-label` or `aria-labelledby` so the region has an accessible name.',\n );\n }\n\n return (\n <section\n data-slot=\"filtration-panel\"\n className={cn(filtrationPanelVariants({ inline: true }), className)}\n {...props}\n >\n {interleaveDividers(children)}\n </section>\n );\n}\n\nfunction FiltrationSection({\n label,\n count,\n formatCount = (n) => `(${n} selections)`,\n className,\n children,\n ...props\n}: FiltrationSectionProps) {\n const labelId = useId();\n return (\n <div\n role=\"group\"\n aria-labelledby={labelId}\n data-slot=\"filtration-section\"\n className={cn('ddga-filtration-section', className)}\n {...props}\n >\n <p id={labelId} className=\"ddga-filtration-section__label\">\n {label}\n {count != null ? (\n <span className=\"ddga-filtration-section__count\"> {formatCount(count)}</span>\n ) : null}\n </p>\n <div className=\"ddga-filtration-section__body\">{children}</div>\n </div>\n );\n}\n\nfunction optionText(label: ReactNode, value: string): string {\n return typeof label === 'string' ? label : value;\n}\n\nfunction FiltrationCheckboxFilter({\n options,\n value,\n defaultValue,\n onValueChange,\n searchable = false,\n searchPlaceholder,\n searchLabel = 'Search options',\n collapseAfter,\n showMoreLabel = (remaining) => `Show ${remaining} more`,\n showLessLabel = 'Show less',\n className,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n ...rest\n}: FiltrationCheckboxFilterProps) {\n const isControlled = value !== undefined;\n const [internal, setInternal] = useState<string[]>(defaultValue ?? []);\n const selected = isControlled ? value : internal;\n\n const [query, setQuery] = useState('');\n const [expanded, setExpanded] = useState(false);\n const listId = useId();\n\n const toggle = (optValue: string) => {\n const next = selected.includes(optValue)\n ? selected.filter((v) => v !== optValue)\n : [...selected, optValue];\n if (!isControlled) setInternal(next);\n onValueChange?.(next);\n };\n\n const filtered = useMemo(() => {\n const q = query.trim().toLowerCase();\n if (!searchable || !q) return options;\n return options.filter((o) => optionText(o.label, o.value).toLowerCase().includes(q));\n }, [options, query, searchable]);\n\n const collapsible = collapseAfter != null && filtered.length > collapseAfter;\n const visible = collapsible && !expanded ? filtered.slice(0, collapseAfter) : filtered;\n const remaining = collapsible ? filtered.length - (collapseAfter ?? 0) : 0;\n\n return (\n <div\n {...rest}\n role=\"group\"\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n data-slot=\"filtration-checkbox-filter\"\n className={cn('ddga-filtration-checkbox-filter', className)}\n >\n {searchable ? (\n <SearchBox\n aria-label={searchLabel}\n placeholder={searchPlaceholder}\n voiceSearch={false}\n value={query}\n onChange={(event) => setQuery(event.target.value)}\n />\n ) : null}\n <div id={listId} className=\"ddga-filtration-checkbox-filter__list\">\n {visible.map((opt) => (\n <Checkbox\n key={opt.value}\n size=\"sm\"\n value={opt.value}\n checked={selected.includes(opt.value)}\n onCheckedChange={() => toggle(opt.value)}\n disabled={opt.disabled}\n label={\n <>\n {opt.label}\n {opt.count != null ? (\n <span className=\"ddga-filtration-checkbox-filter__count\" aria-hidden=\"true\">\n {' '}\n ({opt.count})\n </span>\n ) : null}\n </>\n }\n />\n ))}\n </div>\n {collapsible ? (\n <button\n type=\"button\"\n className=\"ddga-filtration-checkbox-filter__more\"\n aria-expanded={expanded}\n aria-controls={listId}\n onClick={() => setExpanded((prev) => !prev)}\n >\n {expanded ? showLessLabel : showMoreLabel(remaining)}\n <ChevronDown\n className={cn('ddga-filtration-checkbox-filter__more-icon', expanded && 'is-open')}\n aria-hidden=\"true\"\n />\n </button>\n ) : null}\n </div>\n );\n}\n\nfunction FiltrationOptionList({ className, ...props }: FiltrationOptionListProps) {\n return (\n <RadioGroupPrimitive.Root\n data-slot=\"filtration-option-list\"\n className={cn('ddga-filtration-option-list', className)}\n {...props}\n />\n );\n}\n\nfunction FiltrationOption({ className, children, ...props }: FiltrationOptionProps) {\n return (\n <RadioGroupPrimitive.Item\n data-slot=\"filtration-option\"\n className={cn('ddga-filtration-option', className)}\n {...props}\n >\n <span className=\"ddga-filtration-option__label\">{children}</span>\n <RadioGroupPrimitive.Indicator className=\"ddga-filtration-option__indicator\">\n <Check className=\"ddga-filtration-option__check\" aria-hidden=\"true\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n );\n}\n\nfunction FiltrationFooter({\n applyLabel = 'Apply Filters',\n clearLabel = 'Clear Filter',\n appliedCount,\n onApply,\n onClear,\n closeOnApply = true,\n className,\n ...props\n}: FiltrationFooterProps) {\n const ctx = useContext(FiltrationContext);\n\n const handleApply = () => {\n onApply?.();\n if (closeOnApply && ctx?.overlay) ctx.setOpen(false);\n };\n\n return (\n <div\n data-slot=\"filtration-footer\"\n className={cn('ddga-filtration-footer', className)}\n {...props}\n >\n <Button\n variant=\"primary\"\n size=\"lg\"\n className=\"ddga-filtration-footer__apply\"\n onClick={handleApply}\n >\n {applyLabel}\n {appliedCount != null ? ` (${appliedCount})` : ''}\n </Button>\n <Button variant=\"ghost\" size=\"lg\" onClick={onClear}>\n {clearLabel}\n </Button>\n </div>\n );\n}\n\nexport {\n Filtration,\n FiltrationTrigger,\n FiltrationResults,\n FiltrationPanel,\n FiltrationSection,\n FiltrationCheckboxFilter,\n FiltrationOptionList,\n FiltrationOption,\n FiltrationFooter,\n filtrationPanelVariants,\n};\nexport type {\n FiltrationProps,\n FiltrationTriggerProps,\n FiltrationResultsProps,\n FiltrationPanelProps,\n FiltrationSectionProps,\n FiltrationCheckboxFilterProps,\n FiltrationCheckboxOption,\n FiltrationOptionListProps,\n FiltrationOptionProps,\n FiltrationFooterProps,\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-UG2SQ4Q3.cjs","../src/components/Filtration/Filtration.tsx"],"names":["Fragment"],"mappings":"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","file":"/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-UG2SQ4Q3.cjs","sourcesContent":[null,"'use client';\n\nimport {\n Children,\n Fragment,\n createContext,\n useCallback,\n useContext,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n type ReactNode,\n} from 'react';\nimport { RadioGroup as RadioGroupPrimitive } from 'radix-ui';\nimport { cva } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\nimport { Button, type ButtonProps } from '../Button';\nimport { Popover, PopoverTrigger, PopoverContent } from '../Popover';\nimport { Checkbox } from '../Checkbox';\nimport { SearchBox } from '../SearchBox';\nimport { Check, Filter, ChevronDown } from '../../internal/icons';\n\nconst filtrationPanelVariants = cva('ddga-filtration-panel', {\n variants: {\n inline: {\n true: 'ddga-filtration-panel--inline',\n },\n },\n});\n\ninterface FiltrationContextValue {\n /** `true` = floating overlay (Popover); `false` = embedded inline panel. */\n overlay: boolean;\n open: boolean;\n setOpen: (open: boolean) => void;\n}\n\nconst FiltrationContext = createContext<FiltrationContextValue | null>(null);\n\ninterface FiltrationProps {\n /** Floating overlay anchored to the trigger (default) vs an embedded inline panel. */\n overlay?: boolean;\n /** Controlled open state (overlay only). */\n open?: boolean;\n /** Uncontrolled initial open state (overlay only). */\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n children?: ReactNode;\n}\n\ntype FiltrationTriggerProps = Omit<ButtonProps, 'variant' | 'asChild'>;\n\ninterface FiltrationResultsProps extends React.ComponentProps<'div'> {\n /** Names the applied-filters chip group for assistive tech, e.g. \"Applied filters\". */\n 'aria-label'?: string;\n}\n\ntype FiltrationPanelProps = Omit<React.ComponentProps<typeof PopoverContent>, 'size' | 'arrow'>;\n\ninterface FiltrationSectionProps extends React.ComponentProps<'div'> {\n /** Section heading (Text sm/Semibold). */\n label: ReactNode;\n /** Selected-count badge; rendered via `formatCount`. */\n count?: number;\n /** Maps `count` → the suffix text. Defaults to `(n selections)`. Override for i18n. */\n formatCount?: (count: number) => ReactNode;\n}\n\ninterface FiltrationCheckboxOption {\n value: string;\n label: ReactNode;\n /** Optional trailing count, e.g. number of matching results. */\n count?: number;\n disabled?: boolean;\n}\n\ninterface FiltrationCheckboxFilterProps extends Omit<React.ComponentProps<'div'>, 'defaultValue'> {\n options: FiltrationCheckboxOption[];\n /** Controlled selected values. */\n value?: string[];\n /** Uncontrolled initial selected values. */\n defaultValue?: string[];\n onValueChange?: (next: string[]) => void;\n /** Show a search field that filters options by label. */\n searchable?: boolean;\n searchPlaceholder?: string;\n /** Accessible label for the search field (it has no visible label). */\n searchLabel?: string;\n /** Collapse to the first N options behind a \"Show more\" toggle. */\n collapseAfter?: number;\n /** Maps the hidden-count → the expand button label. Default `Show {n} more`. */\n showMoreLabel?: (remaining: number) => ReactNode;\n showLessLabel?: ReactNode;\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n className?: string;\n}\n\ntype FiltrationOptionListProps = Omit<\n React.ComponentProps<typeof RadioGroupPrimitive.Root>,\n 'asChild'\n>;\n\ninterface FiltrationOptionProps extends Omit<\n React.ComponentProps<typeof RadioGroupPrimitive.Item>,\n 'children'\n> {\n children: ReactNode;\n}\n\ninterface FiltrationFooterProps extends React.ComponentProps<'div'> {\n applyLabel?: ReactNode;\n clearLabel?: ReactNode;\n /** Appended to the apply label as `(n)`. */\n appliedCount?: number;\n onApply?: () => void;\n onClear?: () => void;\n /** Close the overlay when Apply is pressed (overlay only). Default `true`. */\n closeOnApply?: boolean;\n}\n\nfunction Filtration({\n overlay = true,\n open,\n defaultOpen,\n onOpenChange,\n children,\n}: FiltrationProps) {\n const isControlled = open !== undefined;\n const [internalOpen, setInternalOpen] = useState(defaultOpen ?? false);\n const actualOpen = isControlled ? open : internalOpen;\n\n const setOpen = useCallback(\n (next: boolean) => {\n if (!isControlled) setInternalOpen(next);\n onOpenChange?.(next);\n },\n [isControlled, onOpenChange],\n );\n\n const ctx = useMemo<FiltrationContextValue>(\n () => ({ overlay, open: actualOpen, setOpen }),\n [overlay, actualOpen, setOpen],\n );\n\n return (\n <FiltrationContext.Provider value={ctx}>\n {overlay ? (\n <Popover open={actualOpen} onOpenChange={setOpen}>\n {children}\n </Popover>\n ) : (\n children\n )}\n </FiltrationContext.Provider>\n );\n}\n\nfunction FiltrationTrigger({\n size = 'lg',\n startIcon,\n endIcon,\n className,\n children,\n ...props\n}: FiltrationTriggerProps) {\n const ctx = useContext(FiltrationContext);\n const overlay = ctx?.overlay ?? true;\n\n const warned = useRef(false);\n useEffect(() => {\n if (process.env.NODE_ENV !== 'production' && !overlay && !warned.current) {\n warned.current = true;\n console.warn(\n '[@dev-dga/react] <FiltrationTrigger> only renders in overlay mode. In an inline ' +\n '<Filtration overlay={false}> the panel is always visible, so the trigger is omitted.',\n );\n }\n }, [overlay]);\n\n if (!overlay) return null;\n\n const button = (\n <Button\n variant=\"black\"\n size={size}\n startIcon={startIcon ?? <Filter aria-hidden=\"true\" />}\n endIcon={endIcon ?? <ChevronDown aria-hidden=\"true\" />}\n data-slot=\"filtration-trigger\"\n className={cn('ddga-filtration__trigger', className)}\n {...props}\n >\n {children}\n </Button>\n );\n\n return <PopoverTrigger asChild>{button}</PopoverTrigger>;\n}\n\nfunction FiltrationResults({\n className,\n children,\n 'aria-label': ariaLabel,\n ...props\n}: FiltrationResultsProps) {\n if (process.env.NODE_ENV !== 'production' && !ariaLabel && !props['aria-labelledby']) {\n console.warn(\n '[@dev-dga/react] <FiltrationResults> should have an `aria-label` (e.g. \"Applied filters\") so the chip group has an accessible name.',\n );\n }\n return (\n <div\n role=\"group\"\n aria-label={ariaLabel}\n data-slot=\"filtration-results\"\n className={cn('ddga-filtration-results', className)}\n {...props}\n >\n {children}\n </div>\n );\n}\n\n// SDGA draws an explicit hairline between every panel child (sections + footer),\n// inset 8px each side and floating in the 8px inter-child gap — not an edge border.\nfunction interleaveDividers(children: ReactNode): ReactNode {\n const items = Children.toArray(children).filter(Boolean);\n return items.map((child, i) => (\n <Fragment key={i}>\n {i > 0 ? <div className=\"ddga-filtration__divider\" aria-hidden=\"true\" /> : null}\n {child}\n </Fragment>\n ));\n}\n\nfunction FiltrationPanel({ className, children, ...props }: FiltrationPanelProps) {\n const ctx = useContext(FiltrationContext);\n const overlay = ctx?.overlay ?? true;\n\n if (overlay) {\n return (\n <PopoverContent\n data-slot=\"filtration-panel\"\n align=\"start\"\n className={cn(filtrationPanelVariants(), className)}\n {...props}\n >\n {interleaveDividers(children)}\n </PopoverContent>\n );\n }\n\n if (process.env.NODE_ENV !== 'production' && !props['aria-label'] && !props['aria-labelledby']) {\n console.warn(\n '[@dev-dga/react] An inline <FiltrationPanel> should have an `aria-label` or `aria-labelledby` so the region has an accessible name.',\n );\n }\n\n return (\n <section\n data-slot=\"filtration-panel\"\n className={cn(filtrationPanelVariants({ inline: true }), className)}\n {...props}\n >\n {interleaveDividers(children)}\n </section>\n );\n}\n\nfunction FiltrationSection({\n label,\n count,\n formatCount = (n) => `(${n} selections)`,\n className,\n children,\n ...props\n}: FiltrationSectionProps) {\n const labelId = useId();\n return (\n <div\n role=\"group\"\n aria-labelledby={labelId}\n data-slot=\"filtration-section\"\n className={cn('ddga-filtration-section', className)}\n {...props}\n >\n <p id={labelId} className=\"ddga-filtration-section__label\">\n {label}\n {count != null ? (\n <span className=\"ddga-filtration-section__count\"> {formatCount(count)}</span>\n ) : null}\n </p>\n <div className=\"ddga-filtration-section__body\">{children}</div>\n </div>\n );\n}\n\nfunction optionText(label: ReactNode, value: string): string {\n return typeof label === 'string' ? label : value;\n}\n\nfunction FiltrationCheckboxFilter({\n options,\n value,\n defaultValue,\n onValueChange,\n searchable = false,\n searchPlaceholder,\n searchLabel = 'Search options',\n collapseAfter,\n showMoreLabel = (remaining) => `Show ${remaining} more`,\n showLessLabel = 'Show less',\n className,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n ...rest\n}: FiltrationCheckboxFilterProps) {\n const isControlled = value !== undefined;\n const [internal, setInternal] = useState<string[]>(defaultValue ?? []);\n const selected = isControlled ? value : internal;\n\n const [query, setQuery] = useState('');\n const [expanded, setExpanded] = useState(false);\n const listId = useId();\n\n const toggle = (optValue: string) => {\n const next = selected.includes(optValue)\n ? selected.filter((v) => v !== optValue)\n : [...selected, optValue];\n if (!isControlled) setInternal(next);\n onValueChange?.(next);\n };\n\n const filtered = useMemo(() => {\n const q = query.trim().toLowerCase();\n if (!searchable || !q) return options;\n return options.filter((o) => optionText(o.label, o.value).toLowerCase().includes(q));\n }, [options, query, searchable]);\n\n const collapsible = collapseAfter != null && filtered.length > collapseAfter;\n const visible = collapsible && !expanded ? filtered.slice(0, collapseAfter) : filtered;\n const remaining = collapsible ? filtered.length - (collapseAfter ?? 0) : 0;\n\n return (\n <div\n {...rest}\n role=\"group\"\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n data-slot=\"filtration-checkbox-filter\"\n className={cn('ddga-filtration-checkbox-filter', className)}\n >\n {searchable ? (\n <SearchBox\n aria-label={searchLabel}\n placeholder={searchPlaceholder}\n voiceSearch={false}\n value={query}\n onChange={(event) => setQuery(event.target.value)}\n />\n ) : null}\n <div id={listId} className=\"ddga-filtration-checkbox-filter__list\">\n {visible.map((opt) => (\n <Checkbox\n key={opt.value}\n size=\"sm\"\n value={opt.value}\n checked={selected.includes(opt.value)}\n onCheckedChange={() => toggle(opt.value)}\n disabled={opt.disabled}\n label={\n <>\n {opt.label}\n {opt.count != null ? (\n <span className=\"ddga-filtration-checkbox-filter__count\" aria-hidden=\"true\">\n {' '}\n ({opt.count})\n </span>\n ) : null}\n </>\n }\n />\n ))}\n </div>\n {collapsible ? (\n <button\n type=\"button\"\n className=\"ddga-filtration-checkbox-filter__more\"\n aria-expanded={expanded}\n aria-controls={listId}\n onClick={() => setExpanded((prev) => !prev)}\n >\n {expanded ? showLessLabel : showMoreLabel(remaining)}\n <ChevronDown\n className={cn('ddga-filtration-checkbox-filter__more-icon', expanded && 'is-open')}\n aria-hidden=\"true\"\n />\n </button>\n ) : null}\n </div>\n );\n}\n\nfunction FiltrationOptionList({ className, ...props }: FiltrationOptionListProps) {\n return (\n <RadioGroupPrimitive.Root\n data-slot=\"filtration-option-list\"\n className={cn('ddga-filtration-option-list', className)}\n {...props}\n />\n );\n}\n\nfunction FiltrationOption({ className, children, ...props }: FiltrationOptionProps) {\n return (\n <RadioGroupPrimitive.Item\n data-slot=\"filtration-option\"\n className={cn('ddga-filtration-option', className)}\n {...props}\n >\n <span className=\"ddga-filtration-option__label\">{children}</span>\n <RadioGroupPrimitive.Indicator className=\"ddga-filtration-option__indicator\">\n <Check className=\"ddga-filtration-option__check\" aria-hidden=\"true\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n );\n}\n\nfunction FiltrationFooter({\n applyLabel = 'Apply Filters',\n clearLabel = 'Clear Filter',\n appliedCount,\n onApply,\n onClear,\n closeOnApply = true,\n className,\n ...props\n}: FiltrationFooterProps) {\n const ctx = useContext(FiltrationContext);\n\n const handleApply = () => {\n onApply?.();\n if (closeOnApply && ctx?.overlay) ctx.setOpen(false);\n };\n\n return (\n <div\n data-slot=\"filtration-footer\"\n className={cn('ddga-filtration-footer', className)}\n {...props}\n >\n <Button\n variant=\"primary\"\n size=\"lg\"\n className=\"ddga-filtration-footer__apply\"\n onClick={handleApply}\n >\n {applyLabel}\n {appliedCount != null ? ` (${appliedCount})` : ''}\n </Button>\n <Button variant=\"ghost\" size=\"lg\" onClick={onClear}>\n {clearLabel}\n </Button>\n </div>\n );\n}\n\nexport {\n Filtration,\n FiltrationTrigger,\n FiltrationResults,\n FiltrationPanel,\n FiltrationSection,\n FiltrationCheckboxFilter,\n FiltrationOptionList,\n FiltrationOption,\n FiltrationFooter,\n filtrationPanelVariants,\n};\nexport type {\n FiltrationProps,\n FiltrationTriggerProps,\n FiltrationResultsProps,\n FiltrationPanelProps,\n FiltrationSectionProps,\n FiltrationCheckboxFilterProps,\n FiltrationCheckboxOption,\n FiltrationOptionListProps,\n FiltrationOptionProps,\n FiltrationFooterProps,\n};\n"]}
|
|
@@ -3,10 +3,10 @@
|
|
|
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 _chunkFQLVTLUIcjs = require('./chunk-FQLVTLUI.cjs');
|
|
10
10
|
|
|
11
11
|
// src/components/Command/Command.tsx
|
|
12
12
|
var _react = require('react');
|
|
@@ -189,4 +189,4 @@ function CommandDialog({
|
|
|
189
189
|
|
|
190
190
|
|
|
191
191
|
exports.commandVariants = commandVariants; exports.Command = Command; exports.CommandInput = CommandInput; exports.CommandList = CommandList; exports.CommandEmpty = CommandEmpty; exports.CommandGroup = CommandGroup; exports.CommandSeparator = CommandSeparator; exports.CommandItem = CommandItem; exports.CommandDialog = CommandDialog;
|
|
192
|
-
//# sourceMappingURL=chunk-
|
|
192
|
+
//# sourceMappingURL=chunk-UVBZHPKP.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-IM6TYL3P.cjs","../src/components/Command/Command.tsx"],"names":[],"mappings":"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","file":"/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-IM6TYL3P.cjs","sourcesContent":[null,"'use client';\n\nimport { useCallback, useContext, useEffect, useRef, useState } from 'react';\nimport { Command as CommandPrimitive } from 'cmdk';\nimport { Dialog as DialogPrimitive, VisuallyHidden } from 'radix-ui';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\nimport { Search } from '../../internal/icons';\nimport { DgaContext } from '../../providers/DgaContext';\n\n// ─── 1. Variants (cva) ─── //\n//\n// Single structural class — no size/variant axes (a palette is one shape).\n// Kept as cva for barrel parity with the rest of the library + an override\n// seam if variants are ever added.\nconst commandVariants = cva('ddga-command');\n\n// ─── 2. Types ─── //\n\ntype CommandProps = React.ComponentProps<typeof CommandPrimitive> &\n VariantProps<typeof commandVariants>;\ntype CommandInputProps = React.ComponentProps<typeof CommandPrimitive.Input>;\ntype CommandListProps = React.ComponentProps<typeof CommandPrimitive.List>;\ntype CommandEmptyProps = React.ComponentProps<typeof CommandPrimitive.Empty>;\ntype CommandGroupProps = React.ComponentProps<typeof CommandPrimitive.Group>;\ntype CommandSeparatorProps = React.ComponentProps<typeof CommandPrimitive.Separator>;\n\ninterface CommandItemProps extends Omit<\n React.ComponentProps<typeof CommandPrimitive.Item>,\n 'onSelect' | 'value'\n> {\n /**\n * Stable value for filtering + the `onSelect` payload. Required: cmdk would\n * otherwise derive it from the rendered text, so a label / translation /\n * icon change would silently change what `onSelect` receives.\n */\n value: string;\n /** Leading icon — mirrors Menubar / DropdownMenu item icons. */\n startIcon?: React.ReactNode;\n /** Right-aligned keyboard hint, e.g. `\"⌘P\"` — mirrors Menubar / DropdownMenu. */\n shortcut?: React.ReactNode;\n /**\n * Fires when the item is chosen (click / Enter). Receives the item's\n * `value` (cmdk defaults it to the text content when `value` is omitted).\n *\n * Action-oriented: items run a command and don't track selection. Inside\n * `CommandDialog` the consumer closes the dialog here, e.g.\n * `onSelect={() => { setOpen(false); run(); }}`.\n */\n onSelect?: (value: string) => void;\n}\n\ninterface CommandDialogProps extends Pick<\n React.ComponentProps<typeof CommandPrimitive>,\n 'filter' | 'shouldFilter' | 'loop'\n> {\n /** Controlled open state. */\n open?: boolean;\n /** Initial open state when uncontrolled. */\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n /**\n * Key for the built-in document shortcut (with Cmd on macOS / Ctrl elsewhere).\n * Defaults to `'k'` (⌘K / Ctrl+K). Pass `false` to bind no listener and wire\n * your own. The modifier is fixed; only the key is configurable.\n */\n shortcut?: string | false;\n /** Accessible name → visually-hidden `DialogTitle`. Defaults to `\"Command palette\"`. */\n label?: React.ReactNode;\n /** Optional visually-hidden `DialogDescription`. */\n description?: React.ReactNode;\n className?: string;\n /** `CommandInput` + `CommandList` + groups / items. */\n children: React.ReactNode;\n}\n\n// ─── 3. Inline compound (cmdk passthroughs) ─── //\n\n/**\n * Inline command palette (cmdk root). Pass cmdk's `label` to give the search\n * input + listbox their accessible name — cmdk wires it via `aria-labelledby`,\n * which wins over any `aria-label` on `CommandInput`. `CommandDialog` sets this\n * for you from its `label`.\n */\nfunction Command({ className, ...props }: CommandProps) {\n return (\n <CommandPrimitive data-slot=\"command\" className={cn(commandVariants(), className)} {...props} />\n );\n}\n\nfunction CommandInput({\n className,\n placeholder,\n 'aria-label': ariaLabel,\n ...props\n}: CommandInputProps) {\n return (\n <div className=\"ddga-command__input-wrapper\" data-slot=\"command-input-wrapper\">\n <Search className=\"ddga-command__search-icon\" aria-hidden=\"true\" />\n <CommandPrimitive.Input\n data-slot=\"command-input\"\n className={cn('ddga-command__input', className)}\n placeholder={placeholder}\n // role=\"combobox\" needs an accessible name. Fall back to the placeholder\n // string so the input is named without forcing a separate label.\n aria-label={ariaLabel ?? (typeof placeholder === 'string' ? placeholder : undefined)}\n {...props}\n />\n </div>\n );\n}\n\nfunction CommandList({ className, ...props }: CommandListProps) {\n // Native overflow scroll — cmdk manages scroll-into-view against this\n // container; wrapping it in ScrollArea would fight that math.\n return (\n <CommandPrimitive.List\n data-slot=\"command-list\"\n className={cn('ddga-command__list', className)}\n {...props}\n />\n );\n}\n\nfunction CommandEmpty({ className, ...props }: CommandEmptyProps) {\n return (\n <CommandPrimitive.Empty\n data-slot=\"command-empty\"\n className={cn('ddga-command__empty', className)}\n {...props}\n />\n );\n}\n\nfunction CommandGroup({ className, ...props }: CommandGroupProps) {\n return (\n <CommandPrimitive.Group\n data-slot=\"command-group\"\n className={cn('ddga-command__group', className)}\n {...props}\n />\n );\n}\n\nfunction CommandSeparator({\n className,\n 'aria-hidden': ariaHidden = true,\n ...props\n}: CommandSeparatorProps) {\n // cmdk hardcodes role=\"separator\"; a separator is an invalid child of the\n // list's role=\"listbox\" (aria-required-children). It's purely decorative —\n // groups carry the semantics via their headings — so hide it from the a11y\n // tree. cmdk spreads our props before its own attrs, so aria-hidden survives.\n return (\n <CommandPrimitive.Separator\n aria-hidden={ariaHidden}\n data-slot=\"command-separator\"\n className={cn('ddga-command__separator', className)}\n {...props}\n />\n );\n}\n\nfunction CommandItem({\n startIcon,\n shortcut,\n className,\n children,\n keywords,\n ...props\n}: CommandItemProps) {\n // Make the visible label searchable. cmdk filters against `value` + `keywords`,\n // never the rendered text — so with a stable Latin `value` the label (e.g.\n // Arabic) would be unmatchable. When the label is a plain string (our common\n // case; icon/shortcut are separate props), fold it into keywords so typing the\n // label works in any language. `value` stays the stable `onSelect` id.\n const labelText = typeof children === 'string' ? children : undefined;\n const mergedKeywords =\n labelText && !keywords?.includes(labelText) ? [...(keywords ?? []), labelText] : keywords;\n return (\n <CommandPrimitive.Item\n data-slot=\"command-item\"\n className={cn('ddga-command__item', className)}\n keywords={mergedKeywords}\n {...props}\n >\n {startIcon != null && (\n <span className=\"ddga-command__item-icon\" aria-hidden=\"true\">\n {startIcon}\n </span>\n )}\n <span className=\"ddga-command__item-label\">{children}</span>\n {shortcut != null && <span className=\"ddga-command__item-shortcut\">{shortcut}</span>}\n </CommandPrimitive.Item>\n );\n}\n\n// ─── 4. Dialog surface (Radix Dialog + Command) ─── //\n\nfunction CommandDialog({\n open: controlledOpen,\n defaultOpen,\n onOpenChange,\n shortcut = 'k',\n label = 'Command palette',\n description,\n className,\n filter,\n shouldFilter,\n loop,\n children,\n}: CommandDialogProps) {\n const [internalOpen, setInternalOpen] = useState(defaultOpen ?? false);\n const isControlled = controlledOpen !== undefined;\n const open = isControlled ? controlledOpen : internalOpen;\n\n const setOpen = useCallback(\n (next: boolean) => {\n if (!isControlled) setInternalOpen(next);\n onOpenChange?.(next);\n },\n [isControlled, onOpenChange],\n );\n\n // Built-in ⌘K / Ctrl+K toggle (opt-out via `shortcut={false}`). Mirrors\n // Sidebar's Cmd/Ctrl+B. Bind the listener once (per shortcut) and read the\n // live open state through a ref so it isn't torn down on every toggle; goes\n // through `setOpen` so controlled + uncontrolled both work.\n const openRef = useRef(open);\n useEffect(() => {\n openRef.current = open;\n });\n useEffect(() => {\n if (typeof shortcut !== 'string') return;\n const key = shortcut.toLowerCase();\n const onKeyDown = (event: KeyboardEvent) => {\n if ((event.metaKey || event.ctrlKey) && event.key.toLowerCase() === key) {\n event.preventDefault();\n setOpen(!openRef.current);\n }\n };\n document.addEventListener('keydown', onKeyDown);\n return () => document.removeEventListener('keydown', onKeyDown);\n }, [shortcut, setOpen]);\n\n // Anchor the Portal to the DgaProvider body-level container so data-theme /\n // dir / theme vars inherit and the fixed overlay escapes ancestor\n // transform / overflow:hidden. Mirrors Modal; regression test asserts\n // containment + dark data-theme.\n const ctx = useContext(DgaContext);\n const portalContainer = ctx?.portalEl ?? ctx?.rootEl ?? undefined;\n\n return (\n <DialogPrimitive.Root open={open} onOpenChange={setOpen}>\n <DialogPrimitive.Portal container={portalContainer}>\n <DialogPrimitive.Overlay className=\"ddga-command__overlay\" data-slot=\"command-overlay\" />\n <DialogPrimitive.Content\n data-slot=\"command-dialog\"\n className={cn('ddga-command-dialog', className)}\n // Named by the visually-hidden title below. With no description,\n // opt out of Radix's missing-description dev warning via its\n // documented escape hatch (explicit aria-describedby={undefined}).\n {...(description == null ? { 'aria-describedby': undefined } : {})}\n >\n <DialogPrimitive.Title asChild>\n <VisuallyHidden.Root>{label}</VisuallyHidden.Root>\n </DialogPrimitive.Title>\n {description != null && (\n <DialogPrimitive.Description asChild>\n <VisuallyHidden.Root>{description}</VisuallyHidden.Root>\n </DialogPrimitive.Description>\n )}\n <Command\n data-slot=\"command-dialog-command\"\n className=\"ddga-command--dialog\"\n // Name cmdk's listbox + input with the dialog label (cmdk's `label`\n // wins over our per-input aria-label via aria-labelledby).\n label={typeof label === 'string' ? label : 'Command palette'}\n filter={filter}\n shouldFilter={shouldFilter}\n loop={loop}\n >\n {children}\n </Command>\n </DialogPrimitive.Content>\n </DialogPrimitive.Portal>\n </DialogPrimitive.Root>\n );\n}\n\n// ─── 5. Exports ─── //\n\nexport {\n Command,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandSeparator,\n CommandDialog,\n commandVariants,\n};\nexport type {\n CommandProps,\n CommandInputProps,\n CommandListProps,\n CommandEmptyProps,\n CommandGroupProps,\n CommandSeparatorProps,\n CommandItemProps,\n CommandDialogProps,\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-UVBZHPKP.cjs","../src/components/Command/Command.tsx"],"names":[],"mappings":"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","file":"/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-UVBZHPKP.cjs","sourcesContent":[null,"'use client';\n\nimport { useCallback, useContext, useEffect, useRef, useState } from 'react';\nimport { Command as CommandPrimitive } from 'cmdk';\nimport { Dialog as DialogPrimitive, VisuallyHidden } from 'radix-ui';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\nimport { Search } from '../../internal/icons';\nimport { DgaContext } from '../../providers/DgaContext';\n\n// ─── 1. Variants (cva) ─── //\n//\n// Single structural class — no size/variant axes (a palette is one shape).\n// Kept as cva for barrel parity with the rest of the library + an override\n// seam if variants are ever added.\nconst commandVariants = cva('ddga-command');\n\n// ─── 2. Types ─── //\n\ntype CommandProps = React.ComponentProps<typeof CommandPrimitive> &\n VariantProps<typeof commandVariants>;\ntype CommandInputProps = React.ComponentProps<typeof CommandPrimitive.Input>;\ntype CommandListProps = React.ComponentProps<typeof CommandPrimitive.List>;\ntype CommandEmptyProps = React.ComponentProps<typeof CommandPrimitive.Empty>;\ntype CommandGroupProps = React.ComponentProps<typeof CommandPrimitive.Group>;\ntype CommandSeparatorProps = React.ComponentProps<typeof CommandPrimitive.Separator>;\n\ninterface CommandItemProps extends Omit<\n React.ComponentProps<typeof CommandPrimitive.Item>,\n 'onSelect' | 'value'\n> {\n /**\n * Stable value for filtering + the `onSelect` payload. Required: cmdk would\n * otherwise derive it from the rendered text, so a label / translation /\n * icon change would silently change what `onSelect` receives.\n */\n value: string;\n /** Leading icon — mirrors Menubar / DropdownMenu item icons. */\n startIcon?: React.ReactNode;\n /** Right-aligned keyboard hint, e.g. `\"⌘P\"` — mirrors Menubar / DropdownMenu. */\n shortcut?: React.ReactNode;\n /**\n * Fires when the item is chosen (click / Enter). Receives the item's\n * `value` (cmdk defaults it to the text content when `value` is omitted).\n *\n * Action-oriented: items run a command and don't track selection. Inside\n * `CommandDialog` the consumer closes the dialog here, e.g.\n * `onSelect={() => { setOpen(false); run(); }}`.\n */\n onSelect?: (value: string) => void;\n}\n\ninterface CommandDialogProps extends Pick<\n React.ComponentProps<typeof CommandPrimitive>,\n 'filter' | 'shouldFilter' | 'loop'\n> {\n /** Controlled open state. */\n open?: boolean;\n /** Initial open state when uncontrolled. */\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n /**\n * Key for the built-in document shortcut (with Cmd on macOS / Ctrl elsewhere).\n * Defaults to `'k'` (⌘K / Ctrl+K). Pass `false` to bind no listener and wire\n * your own. The modifier is fixed; only the key is configurable.\n */\n shortcut?: string | false;\n /** Accessible name → visually-hidden `DialogTitle`. Defaults to `\"Command palette\"`. */\n label?: React.ReactNode;\n /** Optional visually-hidden `DialogDescription`. */\n description?: React.ReactNode;\n className?: string;\n /** `CommandInput` + `CommandList` + groups / items. */\n children: React.ReactNode;\n}\n\n// ─── 3. Inline compound (cmdk passthroughs) ─── //\n\n/**\n * Inline command palette (cmdk root). Pass cmdk's `label` to give the search\n * input + listbox their accessible name — cmdk wires it via `aria-labelledby`,\n * which wins over any `aria-label` on `CommandInput`. `CommandDialog` sets this\n * for you from its `label`.\n */\nfunction Command({ className, ...props }: CommandProps) {\n return (\n <CommandPrimitive data-slot=\"command\" className={cn(commandVariants(), className)} {...props} />\n );\n}\n\nfunction CommandInput({\n className,\n placeholder,\n 'aria-label': ariaLabel,\n ...props\n}: CommandInputProps) {\n return (\n <div className=\"ddga-command__input-wrapper\" data-slot=\"command-input-wrapper\">\n <Search className=\"ddga-command__search-icon\" aria-hidden=\"true\" />\n <CommandPrimitive.Input\n data-slot=\"command-input\"\n className={cn('ddga-command__input', className)}\n placeholder={placeholder}\n // role=\"combobox\" needs an accessible name. Fall back to the placeholder\n // string so the input is named without forcing a separate label.\n aria-label={ariaLabel ?? (typeof placeholder === 'string' ? placeholder : undefined)}\n {...props}\n />\n </div>\n );\n}\n\nfunction CommandList({ className, ...props }: CommandListProps) {\n // Native overflow scroll — cmdk manages scroll-into-view against this\n // container; wrapping it in ScrollArea would fight that math.\n return (\n <CommandPrimitive.List\n data-slot=\"command-list\"\n className={cn('ddga-command__list', className)}\n {...props}\n />\n );\n}\n\nfunction CommandEmpty({ className, ...props }: CommandEmptyProps) {\n return (\n <CommandPrimitive.Empty\n data-slot=\"command-empty\"\n className={cn('ddga-command__empty', className)}\n {...props}\n />\n );\n}\n\nfunction CommandGroup({ className, ...props }: CommandGroupProps) {\n return (\n <CommandPrimitive.Group\n data-slot=\"command-group\"\n className={cn('ddga-command__group', className)}\n {...props}\n />\n );\n}\n\nfunction CommandSeparator({\n className,\n 'aria-hidden': ariaHidden = true,\n ...props\n}: CommandSeparatorProps) {\n // cmdk hardcodes role=\"separator\"; a separator is an invalid child of the\n // list's role=\"listbox\" (aria-required-children). It's purely decorative —\n // groups carry the semantics via their headings — so hide it from the a11y\n // tree. cmdk spreads our props before its own attrs, so aria-hidden survives.\n return (\n <CommandPrimitive.Separator\n aria-hidden={ariaHidden}\n data-slot=\"command-separator\"\n className={cn('ddga-command__separator', className)}\n {...props}\n />\n );\n}\n\nfunction CommandItem({\n startIcon,\n shortcut,\n className,\n children,\n keywords,\n ...props\n}: CommandItemProps) {\n // Make the visible label searchable. cmdk filters against `value` + `keywords`,\n // never the rendered text — so with a stable Latin `value` the label (e.g.\n // Arabic) would be unmatchable. When the label is a plain string (our common\n // case; icon/shortcut are separate props), fold it into keywords so typing the\n // label works in any language. `value` stays the stable `onSelect` id.\n const labelText = typeof children === 'string' ? children : undefined;\n const mergedKeywords =\n labelText && !keywords?.includes(labelText) ? [...(keywords ?? []), labelText] : keywords;\n return (\n <CommandPrimitive.Item\n data-slot=\"command-item\"\n className={cn('ddga-command__item', className)}\n keywords={mergedKeywords}\n {...props}\n >\n {startIcon != null && (\n <span className=\"ddga-command__item-icon\" aria-hidden=\"true\">\n {startIcon}\n </span>\n )}\n <span className=\"ddga-command__item-label\">{children}</span>\n {shortcut != null && <span className=\"ddga-command__item-shortcut\">{shortcut}</span>}\n </CommandPrimitive.Item>\n );\n}\n\n// ─── 4. Dialog surface (Radix Dialog + Command) ─── //\n\nfunction CommandDialog({\n open: controlledOpen,\n defaultOpen,\n onOpenChange,\n shortcut = 'k',\n label = 'Command palette',\n description,\n className,\n filter,\n shouldFilter,\n loop,\n children,\n}: CommandDialogProps) {\n const [internalOpen, setInternalOpen] = useState(defaultOpen ?? false);\n const isControlled = controlledOpen !== undefined;\n const open = isControlled ? controlledOpen : internalOpen;\n\n const setOpen = useCallback(\n (next: boolean) => {\n if (!isControlled) setInternalOpen(next);\n onOpenChange?.(next);\n },\n [isControlled, onOpenChange],\n );\n\n // Built-in ⌘K / Ctrl+K toggle (opt-out via `shortcut={false}`). Mirrors\n // Sidebar's Cmd/Ctrl+B. Bind the listener once (per shortcut) and read the\n // live open state through a ref so it isn't torn down on every toggle; goes\n // through `setOpen` so controlled + uncontrolled both work.\n const openRef = useRef(open);\n useEffect(() => {\n openRef.current = open;\n });\n useEffect(() => {\n if (typeof shortcut !== 'string') return;\n const key = shortcut.toLowerCase();\n const onKeyDown = (event: KeyboardEvent) => {\n if ((event.metaKey || event.ctrlKey) && event.key.toLowerCase() === key) {\n event.preventDefault();\n setOpen(!openRef.current);\n }\n };\n document.addEventListener('keydown', onKeyDown);\n return () => document.removeEventListener('keydown', onKeyDown);\n }, [shortcut, setOpen]);\n\n // Anchor the Portal to the DgaProvider body-level container so data-theme /\n // dir / theme vars inherit and the fixed overlay escapes ancestor\n // transform / overflow:hidden. Mirrors Modal; regression test asserts\n // containment + dark data-theme.\n const ctx = useContext(DgaContext);\n const portalContainer = ctx?.portalEl ?? ctx?.rootEl ?? undefined;\n\n return (\n <DialogPrimitive.Root open={open} onOpenChange={setOpen}>\n <DialogPrimitive.Portal container={portalContainer}>\n <DialogPrimitive.Overlay className=\"ddga-command__overlay\" data-slot=\"command-overlay\" />\n <DialogPrimitive.Content\n data-slot=\"command-dialog\"\n className={cn('ddga-command-dialog', className)}\n // Named by the visually-hidden title below. With no description,\n // opt out of Radix's missing-description dev warning via its\n // documented escape hatch (explicit aria-describedby={undefined}).\n {...(description == null ? { 'aria-describedby': undefined } : {})}\n >\n <DialogPrimitive.Title asChild>\n <VisuallyHidden.Root>{label}</VisuallyHidden.Root>\n </DialogPrimitive.Title>\n {description != null && (\n <DialogPrimitive.Description asChild>\n <VisuallyHidden.Root>{description}</VisuallyHidden.Root>\n </DialogPrimitive.Description>\n )}\n <Command\n data-slot=\"command-dialog-command\"\n className=\"ddga-command--dialog\"\n // Name cmdk's listbox + input with the dialog label (cmdk's `label`\n // wins over our per-input aria-label via aria-labelledby).\n label={typeof label === 'string' ? label : 'Command palette'}\n filter={filter}\n shouldFilter={shouldFilter}\n loop={loop}\n >\n {children}\n </Command>\n </DialogPrimitive.Content>\n </DialogPrimitive.Portal>\n </DialogPrimitive.Root>\n );\n}\n\n// ─── 5. Exports ─── //\n\nexport {\n Command,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandSeparator,\n CommandDialog,\n commandVariants,\n};\nexport type {\n CommandProps,\n CommandInputProps,\n CommandListProps,\n CommandEmptyProps,\n CommandGroupProps,\n CommandSeparatorProps,\n CommandItemProps,\n CommandDialogProps,\n};\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Checkbox
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-T6RGNFKN.js";
|
|
4
4
|
import {
|
|
5
5
|
cn
|
|
6
6
|
} from "./chunk-7NTT2UXP.js";
|
|
@@ -178,4 +178,4 @@ export {
|
|
|
178
178
|
StructuredListHead,
|
|
179
179
|
StructuredListCell
|
|
180
180
|
};
|
|
181
|
-
//# sourceMappingURL=chunk-
|
|
181
|
+
//# sourceMappingURL=chunk-VAGYICPO.js.map
|