@womp/kookie-ui 0.26.2 → 0.26.3
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/components.css +27 -4
- package/dist/cjs/components/_internal/base-button.js +1 -1
- package/dist/cjs/components/_internal/base-button.js.map +2 -2
- package/dist/cjs/components/_internal/pane-band-context.d.ts +4 -3
- package/dist/cjs/components/_internal/pane-band-context.d.ts.map +1 -1
- package/dist/cjs/components/_internal/pane-band-context.js.map +2 -2
- package/dist/cjs/components/_internal/pane-chrome.js.map +2 -2
- package/dist/cjs/components/_internal/portal-theme.d.ts +9 -0
- package/dist/cjs/components/_internal/portal-theme.d.ts.map +1 -0
- package/dist/cjs/components/_internal/portal-theme.js +3 -0
- package/dist/cjs/components/_internal/portal-theme.js.map +7 -0
- package/dist/cjs/components/_internal/shell-sidebar.js.map +2 -2
- package/dist/cjs/components/alert-dialog.js +1 -1
- package/dist/cjs/components/alert-dialog.js.map +4 -4
- package/dist/cjs/components/button.js +1 -1
- package/dist/cjs/components/button.js.map +4 -4
- package/dist/cjs/components/chatbar.js +1 -1
- package/dist/cjs/components/chatbar.js.map +4 -4
- package/dist/cjs/components/chip.js +1 -1
- package/dist/cjs/components/chip.js.map +4 -4
- package/dist/cjs/components/combobox.d.ts.map +1 -1
- package/dist/cjs/components/combobox.js +1 -1
- package/dist/cjs/components/combobox.js.map +4 -4
- package/dist/cjs/components/context-menu.d.ts.map +1 -1
- package/dist/cjs/components/context-menu.js +1 -1
- package/dist/cjs/components/context-menu.js.map +4 -4
- package/dist/cjs/components/dialog.js +1 -1
- package/dist/cjs/components/dialog.js.map +4 -4
- package/dist/cjs/components/dropdown-menu.d.ts.map +1 -1
- package/dist/cjs/components/dropdown-menu.js +1 -1
- package/dist/cjs/components/dropdown-menu.js.map +4 -4
- package/dist/cjs/components/index.js +2 -2
- package/dist/cjs/components/index.js.map +4 -4
- package/dist/cjs/components/message-scroller.js +1 -1
- package/dist/cjs/components/message-scroller.js.map +4 -4
- package/dist/cjs/components/notice.js +1 -1
- package/dist/cjs/components/notice.js.map +4 -4
- package/dist/cjs/components/popover.js +1 -1
- package/dist/cjs/components/popover.js.map +4 -4
- package/dist/cjs/components/select.d.ts.map +1 -1
- package/dist/cjs/components/select.js +1 -1
- package/dist/cjs/components/select.js.map +4 -4
- package/dist/cjs/components/sheet.js +1 -1
- package/dist/cjs/components/sheet.js.map +4 -4
- package/dist/cjs/components/shell.js.map +2 -2
- package/dist/cjs/components/sidebar.js +1 -1
- package/dist/cjs/components/sidebar.js.map +4 -4
- package/dist/cjs/components/spinner.d.ts.map +1 -1
- package/dist/cjs/components/spinner.js +1 -1
- package/dist/cjs/components/spinner.js.map +2 -2
- package/dist/cjs/components/text-area.d.ts.map +1 -1
- package/dist/cjs/components/text-area.js +1 -1
- package/dist/cjs/components/text-area.js.map +2 -2
- package/dist/cjs/components/text-field.d.ts.map +1 -1
- package/dist/cjs/components/text-field.js +2 -2
- package/dist/cjs/components/text-field.js.map +2 -2
- package/dist/cjs/components/theme.d.ts.map +1 -1
- package/dist/cjs/components/theme.js +1 -1
- package/dist/cjs/components/theme.js.map +4 -4
- package/dist/cjs/components/toggle.js +1 -1
- package/dist/cjs/components/toggle.js.map +4 -4
- package/dist/cjs/components/toolbar.js +1 -1
- package/dist/cjs/components/toolbar.js.map +4 -4
- package/dist/cjs/components/tooltip.js +1 -1
- package/dist/cjs/components/tooltip.js.map +4 -4
- package/dist/cjs/index.js +4 -4
- package/dist/cjs/index.js.map +4 -4
- package/dist/esm/{chunk-UG73IGRF.js → chunk-27XQ5PN5.js} +2 -2
- package/dist/esm/{chunk-F2722F7B.js → chunk-2NWHEGKZ.js} +2 -2
- package/dist/esm/chunk-2NWHEGKZ.js.map +7 -0
- package/dist/esm/{chunk-5FWEGTP6.js → chunk-2R7WQPXX.js} +2 -2
- package/dist/esm/chunk-2R7WQPXX.js.map +7 -0
- package/dist/esm/{chunk-H2TSRYQ5.js → chunk-324VC67W.js} +2 -2
- package/dist/esm/{chunk-TFGUTYZK.js → chunk-3UIODOPE.js} +2 -2
- package/dist/esm/chunk-4CIQRUYW.js +6 -0
- package/dist/esm/chunk-4CIQRUYW.js.map +7 -0
- package/dist/esm/{chunk-OTCVSJT7.js → chunk-4MNRLB57.js} +2 -2
- package/dist/esm/{chunk-E6BDD3PN.js → chunk-6C6EK2B5.js} +2 -2
- package/dist/esm/{chunk-W4CPV4PO.js → chunk-6JGF6PQH.js} +2 -2
- package/dist/esm/{chunk-NYBE3U3V.js → chunk-7QBNXNEN.js} +2 -2
- package/dist/esm/{chunk-C2WKAIZM.js → chunk-ACMANOVD.js} +2 -2
- package/dist/esm/{chunk-KQIZMPSW.js → chunk-ANQLWGFN.js} +1 -1
- package/dist/esm/{chunk-KQIZMPSW.js.map → chunk-ANQLWGFN.js.map} +2 -2
- package/dist/esm/chunk-BUXK5VGR.js +3 -0
- package/dist/esm/chunk-BUXK5VGR.js.map +7 -0
- package/dist/esm/{chunk-7QP6JFPO.js → chunk-C67MM24U.js} +2 -2
- package/dist/esm/{chunk-ULCHGKI3.js → chunk-CGFLZ3DC.js} +2 -2
- package/dist/esm/{chunk-LFAUMDU5.js → chunk-D2C2A2ZK.js} +2 -2
- package/dist/esm/{chunk-MS2ONKJJ.js → chunk-DSM5SUH3.js} +2 -2
- package/dist/esm/{chunk-AJANJ22M.js → chunk-E2LSWNWZ.js} +2 -2
- package/dist/esm/{chunk-BVQDDN5Q.js → chunk-EB4AG3OL.js} +2 -2
- package/dist/esm/{chunk-5PQCTVZB.js → chunk-ENQV6SEA.js} +2 -2
- package/dist/esm/{chunk-VVLUY4WR.js → chunk-EPGIYTFK.js} +2 -2
- package/dist/esm/{chunk-6M6HGIGN.js → chunk-FK434VPA.js} +2 -2
- package/dist/esm/{chunk-TFFMELAL.js → chunk-FYTLUDL3.js} +2 -2
- package/dist/esm/chunk-GMWCTK5G.js +3 -0
- package/dist/esm/chunk-GMWCTK5G.js.map +7 -0
- package/dist/esm/{chunk-F364PDDM.js → chunk-HLIOHDEX.js} +2 -2
- package/dist/esm/{chunk-ONJYRJ66.js → chunk-IDEDEPBM.js} +2 -2
- package/dist/esm/{chunk-ZKQCSGL3.js → chunk-ISCZ57VL.js} +2 -2
- package/dist/esm/{chunk-HVMRB3AH.js → chunk-JD4KR6VZ.js} +2 -2
- package/dist/esm/{chunk-NS573D6O.js → chunk-JP36JSNP.js} +2 -2
- package/dist/esm/{chunk-N3B6EGXL.js → chunk-KLYI5E6F.js} +2 -2
- package/dist/esm/{chunk-GOXGRJO6.js → chunk-MCHK36NI.js} +2 -2
- package/dist/esm/{chunk-VIVM525H.js → chunk-MGWGD6KI.js} +2 -2
- package/dist/esm/{chunk-K55IQP5H.js → chunk-MPCCYR7L.js} +2 -2
- package/dist/esm/chunk-MPCCYR7L.js.map +7 -0
- package/dist/esm/{chunk-EERKYRYI.js → chunk-NWXODCTD.js} +2 -2
- package/dist/esm/{chunk-3ZWHKNHI.js → chunk-OLTRWCQK.js} +2 -2
- package/dist/esm/{chunk-RD4T2MCC.js → chunk-OLWUS7PC.js} +2 -2
- package/dist/esm/chunk-OLWUS7PC.js.map +7 -0
- package/dist/esm/chunk-OUOP6Q3Z.js +3 -0
- package/dist/esm/chunk-OUOP6Q3Z.js.map +7 -0
- package/dist/esm/{chunk-UR5BUNNT.js → chunk-Q2TLWILH.js} +2 -2
- package/dist/esm/{chunk-VCZ2GYOF.js → chunk-Q5SANVIW.js} +2 -2
- package/dist/esm/{chunk-LGZCNQBS.js → chunk-QPRUTOLI.js} +2 -2
- package/dist/esm/{chunk-TTW3EAQT.js → chunk-QRV32INS.js} +2 -2
- package/dist/esm/chunk-R7YHDIFM.js +3 -0
- package/dist/esm/{chunk-M7IQIKB4.js.map → chunk-R7YHDIFM.js.map} +2 -2
- package/dist/esm/{chunk-UBUGG2OB.js → chunk-RP5ORPPH.js} +2 -2
- package/dist/esm/chunk-T2DZDW5Y.js +3 -0
- package/dist/esm/chunk-T2DZDW5Y.js.map +7 -0
- package/dist/esm/{chunk-2TWPPDII.js → chunk-UMR4AF35.js} +2 -2
- package/dist/esm/chunk-VPP5IDW7.js +3 -0
- package/dist/esm/chunk-VPP5IDW7.js.map +7 -0
- package/dist/esm/chunk-W3ES2XSB.js +3 -0
- package/dist/esm/chunk-W3ES2XSB.js.map +7 -0
- package/dist/esm/{chunk-TF6WAIUQ.js → chunk-W4Z6ORYO.js} +2 -2
- package/dist/esm/{chunk-ADL3LEOQ.js → chunk-WD66RYF6.js} +2 -2
- package/dist/esm/{chunk-TFFU435D.js → chunk-WYKNBNM5.js} +2 -2
- package/dist/esm/chunk-WYKNBNM5.js.map +7 -0
- package/dist/esm/{chunk-DIY2XQKR.js → chunk-X7JHZ3HA.js} +2 -2
- package/dist/esm/{chunk-H33NTGVF.js → chunk-XD3C3GVF.js} +2 -2
- package/dist/esm/{chunk-POP5NB33.js → chunk-XGES2VBG.js} +2 -2
- package/dist/esm/{chunk-VPUFKJQA.js → chunk-YMUERC2J.js} +2 -2
- package/dist/esm/chunk-YOZXIUZY.js +3 -0
- package/dist/esm/chunk-YOZXIUZY.js.map +7 -0
- package/dist/esm/{chunk-TXVZOS3E.js → chunk-Z5W4ACO2.js} +2 -2
- package/dist/esm/{chunk-3QN4C5LW.js → chunk-ZIAA2C4H.js} +2 -2
- package/dist/esm/components/_internal/base-button.js +1 -1
- package/dist/esm/components/_internal/base-menu.utils.js +1 -1
- package/dist/esm/components/_internal/menu-context.js +1 -1
- package/dist/esm/components/_internal/pane-band-context.d.ts +4 -3
- package/dist/esm/components/_internal/pane-band-context.d.ts.map +1 -1
- package/dist/esm/components/_internal/pane-band-context.js +1 -1
- package/dist/esm/components/_internal/pane-chrome.js +1 -1
- package/dist/esm/components/_internal/portal-theme.d.ts +9 -0
- package/dist/esm/components/_internal/portal-theme.d.ts.map +1 -0
- package/dist/esm/components/_internal/portal-theme.js +3 -0
- package/dist/esm/components/_internal/portal-theme.js.map +7 -0
- package/dist/esm/components/_internal/shell-bottom.js +1 -1
- package/dist/esm/components/_internal/shell-inspector.js +1 -1
- package/dist/esm/components/_internal/shell-sidebar.js +1 -1
- package/dist/esm/components/accordion.js +1 -1
- package/dist/esm/components/alert-dialog.js +1 -1
- package/dist/esm/components/avatar.js +1 -1
- package/dist/esm/components/blockquote.js +1 -1
- package/dist/esm/components/box.js +1 -1
- package/dist/esm/components/button.js +1 -1
- package/dist/esm/components/card.js +1 -1
- package/dist/esm/components/chatbar.js +1 -1
- package/dist/esm/components/checkbox-group.js +1 -1
- package/dist/esm/components/checkbox.js +1 -1
- package/dist/esm/components/chip.js +1 -1
- package/dist/esm/components/code.js +1 -1
- package/dist/esm/components/combobox.d.ts.map +1 -1
- package/dist/esm/components/combobox.js +1 -1
- package/dist/esm/components/context-menu.d.ts.map +1 -1
- package/dist/esm/components/context-menu.js +1 -1
- package/dist/esm/components/dialog.js +1 -1
- package/dist/esm/components/dropdown-menu.d.ts.map +1 -1
- package/dist/esm/components/dropdown-menu.js +1 -1
- package/dist/esm/components/flex.js +1 -1
- package/dist/esm/components/grid.js +1 -1
- package/dist/esm/components/heading.js +1 -1
- package/dist/esm/components/image.js +1 -1
- package/dist/esm/components/index.js +1 -1
- package/dist/esm/components/kbd.js +1 -1
- package/dist/esm/components/link.js +1 -1
- package/dist/esm/components/message-scroller.js +1 -1
- package/dist/esm/components/navbar.js +1 -1
- package/dist/esm/components/notice.js +1 -1
- package/dist/esm/components/popover.js +1 -1
- package/dist/esm/components/progress.js +1 -1
- package/dist/esm/components/radio-group.js +1 -1
- package/dist/esm/components/radio.js +1 -1
- package/dist/esm/components/scroll-area.js +1 -1
- package/dist/esm/components/segmented-control.js +1 -1
- package/dist/esm/components/select.d.ts.map +1 -1
- package/dist/esm/components/select.js +1 -1
- package/dist/esm/components/separator.js +1 -1
- package/dist/esm/components/sheet.js +1 -1
- package/dist/esm/components/shell.js +1 -1
- package/dist/esm/components/sidebar.js +1 -1
- package/dist/esm/components/slider.js +1 -1
- package/dist/esm/components/spinner.d.ts.map +1 -1
- package/dist/esm/components/spinner.js +1 -1
- package/dist/esm/components/switch.js +1 -1
- package/dist/esm/components/table.js +1 -1
- package/dist/esm/components/tabs.js +1 -1
- package/dist/esm/components/text-area.d.ts.map +1 -1
- package/dist/esm/components/text-area.js +1 -1
- package/dist/esm/components/text-field.d.ts.map +1 -1
- package/dist/esm/components/text-field.js +1 -1
- package/dist/esm/components/text.js +1 -1
- package/dist/esm/components/theme.d.ts.map +1 -1
- package/dist/esm/components/theme.js +1 -1
- package/dist/esm/components/toggle.js +1 -1
- package/dist/esm/components/toolbar.js +1 -1
- package/dist/esm/components/tooltip.js +1 -1
- package/dist/esm/components/virtual-menu.js +1 -1
- package/dist/esm/index.js +1 -1
- package/package.json +1 -1
- package/src/components/_internal/pane-band-context.ts +4 -3
- package/src/components/_internal/portal-theme.tsx +18 -0
- package/src/components/alert-dialog.tsx +3 -3
- package/src/components/combobox.tsx +4 -3
- package/src/components/context-menu.tsx +6 -5
- package/src/components/dialog.tsx +3 -3
- package/src/components/dropdown-menu.tsx +6 -5
- package/src/components/popover.tsx +3 -3
- package/src/components/select.tsx +4 -3
- package/src/components/sheet.tsx +3 -3
- package/src/components/spinner.css +16 -1
- package/src/components/spinner.tsx +14 -13
- package/src/components/text-area.css +7 -2
- package/src/components/text-area.tsx +10 -8
- package/src/components/text-field.css +7 -2
- package/src/components/text-field.tsx +10 -8
- package/src/components/theme.tsx +24 -30
- package/src/components/tooltip.tsx +3 -3
- package/styles.css +27 -4
- package/dist/esm/chunk-3C4Q6PMS.js +0 -3
- package/dist/esm/chunk-3C4Q6PMS.js.map +0 -7
- package/dist/esm/chunk-457Z4R5W.js +0 -3
- package/dist/esm/chunk-457Z4R5W.js.map +0 -7
- package/dist/esm/chunk-5FWEGTP6.js.map +0 -7
- package/dist/esm/chunk-5MEWNLNH.js +0 -3
- package/dist/esm/chunk-5MEWNLNH.js.map +0 -7
- package/dist/esm/chunk-BEHAT3GI.js +0 -3
- package/dist/esm/chunk-BEHAT3GI.js.map +0 -7
- package/dist/esm/chunk-DG2KIH54.js +0 -6
- package/dist/esm/chunk-DG2KIH54.js.map +0 -7
- package/dist/esm/chunk-DQCE7DHY.js +0 -3
- package/dist/esm/chunk-DQCE7DHY.js.map +0 -7
- package/dist/esm/chunk-F2722F7B.js.map +0 -7
- package/dist/esm/chunk-GE7FRBZ4.js +0 -3
- package/dist/esm/chunk-GE7FRBZ4.js.map +0 -7
- package/dist/esm/chunk-K55IQP5H.js.map +0 -7
- package/dist/esm/chunk-M7IQIKB4.js +0 -3
- package/dist/esm/chunk-RD4T2MCC.js.map +0 -7
- package/dist/esm/chunk-TFFU435D.js.map +0 -7
- /package/dist/esm/{chunk-UG73IGRF.js.map → chunk-27XQ5PN5.js.map} +0 -0
- /package/dist/esm/{chunk-H2TSRYQ5.js.map → chunk-324VC67W.js.map} +0 -0
- /package/dist/esm/{chunk-TFGUTYZK.js.map → chunk-3UIODOPE.js.map} +0 -0
- /package/dist/esm/{chunk-OTCVSJT7.js.map → chunk-4MNRLB57.js.map} +0 -0
- /package/dist/esm/{chunk-E6BDD3PN.js.map → chunk-6C6EK2B5.js.map} +0 -0
- /package/dist/esm/{chunk-W4CPV4PO.js.map → chunk-6JGF6PQH.js.map} +0 -0
- /package/dist/esm/{chunk-NYBE3U3V.js.map → chunk-7QBNXNEN.js.map} +0 -0
- /package/dist/esm/{chunk-C2WKAIZM.js.map → chunk-ACMANOVD.js.map} +0 -0
- /package/dist/esm/{chunk-7QP6JFPO.js.map → chunk-C67MM24U.js.map} +0 -0
- /package/dist/esm/{chunk-ULCHGKI3.js.map → chunk-CGFLZ3DC.js.map} +0 -0
- /package/dist/esm/{chunk-LFAUMDU5.js.map → chunk-D2C2A2ZK.js.map} +0 -0
- /package/dist/esm/{chunk-MS2ONKJJ.js.map → chunk-DSM5SUH3.js.map} +0 -0
- /package/dist/esm/{chunk-AJANJ22M.js.map → chunk-E2LSWNWZ.js.map} +0 -0
- /package/dist/esm/{chunk-BVQDDN5Q.js.map → chunk-EB4AG3OL.js.map} +0 -0
- /package/dist/esm/{chunk-5PQCTVZB.js.map → chunk-ENQV6SEA.js.map} +0 -0
- /package/dist/esm/{chunk-VVLUY4WR.js.map → chunk-EPGIYTFK.js.map} +0 -0
- /package/dist/esm/{chunk-6M6HGIGN.js.map → chunk-FK434VPA.js.map} +0 -0
- /package/dist/esm/{chunk-TFFMELAL.js.map → chunk-FYTLUDL3.js.map} +0 -0
- /package/dist/esm/{chunk-F364PDDM.js.map → chunk-HLIOHDEX.js.map} +0 -0
- /package/dist/esm/{chunk-ONJYRJ66.js.map → chunk-IDEDEPBM.js.map} +0 -0
- /package/dist/esm/{chunk-ZKQCSGL3.js.map → chunk-ISCZ57VL.js.map} +0 -0
- /package/dist/esm/{chunk-HVMRB3AH.js.map → chunk-JD4KR6VZ.js.map} +0 -0
- /package/dist/esm/{chunk-NS573D6O.js.map → chunk-JP36JSNP.js.map} +0 -0
- /package/dist/esm/{chunk-N3B6EGXL.js.map → chunk-KLYI5E6F.js.map} +0 -0
- /package/dist/esm/{chunk-GOXGRJO6.js.map → chunk-MCHK36NI.js.map} +0 -0
- /package/dist/esm/{chunk-VIVM525H.js.map → chunk-MGWGD6KI.js.map} +0 -0
- /package/dist/esm/{chunk-EERKYRYI.js.map → chunk-NWXODCTD.js.map} +0 -0
- /package/dist/esm/{chunk-3ZWHKNHI.js.map → chunk-OLTRWCQK.js.map} +0 -0
- /package/dist/esm/{chunk-UR5BUNNT.js.map → chunk-Q2TLWILH.js.map} +0 -0
- /package/dist/esm/{chunk-VCZ2GYOF.js.map → chunk-Q5SANVIW.js.map} +0 -0
- /package/dist/esm/{chunk-LGZCNQBS.js.map → chunk-QPRUTOLI.js.map} +0 -0
- /package/dist/esm/{chunk-TTW3EAQT.js.map → chunk-QRV32INS.js.map} +0 -0
- /package/dist/esm/{chunk-UBUGG2OB.js.map → chunk-RP5ORPPH.js.map} +0 -0
- /package/dist/esm/{chunk-2TWPPDII.js.map → chunk-UMR4AF35.js.map} +0 -0
- /package/dist/esm/{chunk-TF6WAIUQ.js.map → chunk-W4Z6ORYO.js.map} +0 -0
- /package/dist/esm/{chunk-ADL3LEOQ.js.map → chunk-WD66RYF6.js.map} +0 -0
- /package/dist/esm/{chunk-DIY2XQKR.js.map → chunk-X7JHZ3HA.js.map} +0 -0
- /package/dist/esm/{chunk-H33NTGVF.js.map → chunk-XD3C3GVF.js.map} +0 -0
- /package/dist/esm/{chunk-POP5NB33.js.map → chunk-XGES2VBG.js.map} +0 -0
- /package/dist/esm/{chunk-VPUFKJQA.js.map → chunk-YMUERC2J.js.map} +0 -0
- /package/dist/esm/{chunk-TXVZOS3E.js.map → chunk-Z5W4ACO2.js.map} +0 -0
- /package/dist/esm/{chunk-3QN4C5LW.js.map → chunk-ZIAA2C4H.js.map} +0 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/popover.tsx", "../../src/components/popover.props.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nimport classNames from 'classnames';\nimport { Popover as PopoverPrimitive } from 'radix-ui';\n\nimport { extractProps } from '../helpers/extract-props.js';\nimport { useThemeSizeProps } from '../hooks/theme-size.js';\nimport { requireReactElement } from '../helpers/require-react-element.js';\nimport { popoverContentPropDefs } from './popover.props.js';\nimport { PortalTheme } from './_internal/portal-theme.js';\n\nimport type { PopoverContentOwnProps } from './popover.props.js';\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\n\n// ---------------------------------------------\n// Popover Content Context\n// ---------------------------------------------\ntype PopoverContentContextValue = {\n /** Wire up aria-labelledby for toolbar title */\n setLabelId: (id: string | undefined) => void;\n};\n\nconst PopoverContentContext = React.createContext<PopoverContentContextValue | null>(null);\nconst usePopoverContentContext = (caller: string) => {\n const ctx = React.useContext(PopoverContentContext);\n if (!ctx) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`${caller} must be used within Popover.Content`);\n }\n }\n return ctx;\n};\n\ninterface PopoverRootProps extends React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Root> {}\nconst PopoverRoot: React.FC<PopoverRootProps> = (props: PopoverRootProps) => (\n <PopoverPrimitive.Root {...props} />\n);\nPopoverRoot.displayName = 'Popover.Root';\n\ntype PopoverTriggerElement = React.ElementRef<typeof PopoverPrimitive.Trigger>;\ninterface PopoverTriggerProps\n extends ComponentPropsWithout<typeof PopoverPrimitive.Trigger, RemovedProps> {}\nconst PopoverTrigger = React.forwardRef<PopoverTriggerElement, PopoverTriggerProps>(\n ({ children, ...props }, forwardedRef) => (\n <PopoverPrimitive.Trigger {...props} ref={forwardedRef} asChild>\n {requireReactElement(children)}\n </PopoverPrimitive.Trigger>\n ),\n);\nPopoverTrigger.displayName = 'Popover.Trigger';\n\ntype PopoverContentElement = React.ElementRef<typeof PopoverPrimitive.Content>;\ninterface PopoverContentProps\n extends ComponentPropsWithout<typeof PopoverPrimitive.Content, RemovedProps>,\n PopoverContentOwnProps {\n container?: React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Portal>['container'];\n}\nconst PopoverContent = React.forwardRef<PopoverContentElement, PopoverContentProps>(\n (ownProps, forwardedRef) => {\n const props = useThemeSizeProps(ownProps, popoverContentPropDefs.size);\n const {\n className,\n forceMount,\n container,\n ...contentProps\n } = extractProps(props, popoverContentPropDefs);\n\n const [labelId, setLabelId] = React.useState<string | undefined>(undefined);\n const contextValue = React.useMemo(() => ({ setLabelId }), []);\n\n return (\n <PopoverPrimitive.Portal container={container} forceMount={forceMount}>\n <PortalTheme asChild>\n <PopoverPrimitive.Content\n align=\"start\"\n sideOffset={8}\n collisionPadding={10}\n {...contentProps}\n ref={forwardedRef}\n // A Toolbar.Title names the panel; without one, the caller's own value stands.\n aria-labelledby={labelId ?? contentProps['aria-labelledby']}\n className={classNames('kui-PopperContent', 'kui-PopoverContent', className)}\n >\n <PopoverContentContext.Provider value={contextValue}>\n {props.children}\n </PopoverContentContext.Provider>\n </PopoverPrimitive.Content>\n </PortalTheme>\n </PopoverPrimitive.Portal>\n );\n },\n);\nPopoverContent.displayName = 'Popover.Content';\n\ntype PopoverCloseElement = React.ElementRef<typeof PopoverPrimitive.Close>;\ninterface PopoverCloseProps\n extends ComponentPropsWithout<typeof PopoverPrimitive.Close, RemovedProps> {}\nconst PopoverClose = React.forwardRef<PopoverCloseElement, PopoverCloseProps>(\n ({ children, ...props }, forwardedRef) => (\n <PopoverPrimitive.Close {...props} ref={forwardedRef} asChild>\n {requireReactElement(children)}\n </PopoverPrimitive.Close>\n ),\n);\nPopoverClose.displayName = 'Popover.Close';\n\ntype PopoverAnchorElement = React.ElementRef<typeof PopoverPrimitive.Anchor>;\ninterface PopoverAnchorProps\n extends React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Anchor> {}\nconst PopoverAnchor = React.forwardRef<PopoverAnchorElement, PopoverAnchorProps>(\n (props, forwardedRef) => <PopoverPrimitive.Anchor {...props} ref={forwardedRef} />,\n);\n\nPopoverAnchor.displayName = 'Popover.Anchor';\n\n// ---------------------------------------------\n// Toolbar (Popover-only)\n// ---------------------------------------------\n\ntype PopoverToolbarElement = HTMLDivElement;\ntype PopoverToolbarProps = React.ComponentPropsWithoutRef<'div'>;\n\nconst PopoverToolbarBase = React.forwardRef<PopoverToolbarElement, PopoverToolbarProps>(\n ({ className, children, ...props }, forwardedRef) => {\n // The toolbar is sticky in the content's own CSS, so it needs no measuring; this only warns\n // when it is used outside Popover.Content.\n usePopoverContentContext('Popover.Toolbar');\n\n return (\n <div {...props} ref={forwardedRef} className={classNames('kui-PopoverToolbar', className)}>\n {children}\n </div>\n );\n },\n);\nPopoverToolbarBase.displayName = 'Popover.Toolbar';\n\ntype PopoverToolbarSectionProps = React.ComponentPropsWithoutRef<'div'>;\n\nconst PopoverToolbarLeft = React.forwardRef<HTMLDivElement, PopoverToolbarSectionProps>(\n ({ className, ...props }, ref) => (\n <div\n {...props}\n ref={ref}\n className={classNames('kui-PopoverToolbarSection', 'kui-PopoverToolbarLeft', className)}\n />\n ),\n);\nPopoverToolbarLeft.displayName = 'Popover.Toolbar.Left';\n\nconst PopoverToolbarCenter = React.forwardRef<HTMLDivElement, PopoverToolbarSectionProps>(\n ({ className, ...props }, ref) => (\n <div\n {...props}\n ref={ref}\n className={classNames('kui-PopoverToolbarSection', 'kui-PopoverToolbarCenter', className)}\n />\n ),\n);\nPopoverToolbarCenter.displayName = 'Popover.Toolbar.Center';\n\nconst PopoverToolbarRight = React.forwardRef<HTMLDivElement, PopoverToolbarSectionProps>(\n ({ className, ...props }, ref) => (\n <div\n {...props}\n ref={ref}\n className={classNames('kui-PopoverToolbarSection', 'kui-PopoverToolbarRight', className)}\n />\n ),\n);\nPopoverToolbarRight.displayName = 'Popover.Toolbar.Right';\n\ntype PopoverToolbarTitleProps = React.ComponentPropsWithoutRef<'span'>;\nconst PopoverToolbarTitle = React.forwardRef<HTMLSpanElement, PopoverToolbarTitleProps>(\n ({ className, id: idProp, ...props }, ref) => {\n const ctx = usePopoverContentContext('Popover.Toolbar.Title');\n const reactId = React.useId();\n const id = idProp ?? `kui-popover-toolbar-title-${reactId}`;\n React.useEffect(() => {\n ctx?.setLabelId(id);\n return () => ctx?.setLabelId(undefined);\n }, [ctx, id]);\n return (\n <span\n {...props}\n id={id}\n ref={ref}\n className={classNames('kui-PopoverToolbarTitle', className)}\n />\n );\n },\n);\nPopoverToolbarTitle.displayName = 'Popover.Toolbar.Title';\n\ntype PopoverToolbarComponent = React.ForwardRefExoticComponent<\n React.PropsWithoutRef<PopoverToolbarProps> & React.RefAttributes<HTMLDivElement>\n> & {\n Left: typeof PopoverToolbarLeft;\n Center: typeof PopoverToolbarCenter;\n Right: typeof PopoverToolbarRight;\n Title: typeof PopoverToolbarTitle;\n};\n\nconst PopoverToolbar = Object.assign(PopoverToolbarBase, {\n Left: PopoverToolbarLeft,\n Center: PopoverToolbarCenter,\n Right: PopoverToolbarRight,\n Title: PopoverToolbarTitle,\n}) as PopoverToolbarComponent;\n\nexport {\n PopoverRoot as Root,\n PopoverContent as Content,\n PopoverTrigger as Trigger,\n PopoverClose as Close,\n PopoverAnchor as Anchor,\n PopoverToolbar as Toolbar,\n};\nexport type {\n PopoverRootProps as RootProps,\n PopoverContentProps as ContentProps,\n PopoverTriggerProps as TriggerProps,\n PopoverCloseProps as CloseProps,\n PopoverAnchorProps as AnchorProps,\n PopoverToolbarProps as ToolbarProps,\n PopoverToolbarSectionProps as ToolbarSectionProps,\n PopoverToolbarTitleProps as ToolbarTitleProps,\n};\n", "import { asChildPropDef } from '../props/as-child.prop.js';\nimport { heightPropDefs } from '../props/height.props.js';\nimport { widthPropDefs } from '../props/width.props.js';\n\nimport type { PropDef, GetPropDefTypes } from '../props/prop-def.js';\n\nconst contentSizes = ['1', '2', '3', '4'] as const;\n\nconst popoverContentPropDefs = {\n ...asChildPropDef,\n size: {\n type: 'enum',\n className: 'kui-r-size',\n values: contentSizes,\n default: '2',\n responsive: true,\n },\n width: widthPropDefs.width,\n minWidth: widthPropDefs.minWidth,\n maxWidth: { ...widthPropDefs.maxWidth, default: '480px' },\n ...heightPropDefs,\n} satisfies {\n width: PropDef<string>;\n minWidth: PropDef<string>;\n maxWidth: PropDef<string>;\n size: PropDef<(typeof contentSizes)[number]>;\n};\n\ntype PopoverContentOwnProps = GetPropDefTypes<\n typeof popoverContentPropDefs &\n typeof asChildPropDef &\n typeof widthPropDefs &\n typeof heightPropDefs\n>;\n\nexport { popoverContentPropDefs };\nexport type { PopoverContentOwnProps };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["popover_exports", "__export", "PopoverAnchor", "PopoverClose", "PopoverContent", "PopoverRoot", "PopoverToolbar", "PopoverTrigger", "React", "classNames", "PopoverPrimitive", "contentSizes", "popoverContentPropDefs", "asChildPropDef", "widthPropDefs", "heightPropDefs", "PopoverContentContext", "usePopoverContentContext", "caller", "ctx", "PopoverRoot", "props", "PopoverPrimitive", "PopoverTrigger", "children", "forwardedRef", "requireReactElement", "PopoverContent", "ownProps", "useThemeSizeProps", "popoverContentPropDefs", "className", "forceMount", "container", "contentProps", "extractProps", "labelId", "setLabelId", "contextValue", "PortalTheme", "classNames", "PopoverClose", "PopoverAnchor", "PopoverToolbarBase", "PopoverToolbarLeft", "ref", "PopoverToolbarCenter", "PopoverToolbarRight", "PopoverToolbarTitle", "idProp", "reactId", "id", "PopoverToolbar"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import{a as N}from"./chunk-BUXK5VGR.js";import{b as E,c as w}from"./chunk-GKDGNPBD.js";import{a as L}from"./chunk-KOAWATCI.js";import{c as g}from"./chunk-OKQAVYW4.js";import{a as z}from"./chunk-T2DZDW5Y.js";import{b as O}from"./chunk-YOZXIUZY.js";import{c as C}from"./chunk-HBWBPBSA.js";import{b as x}from"./chunk-5ON3XLRD.js";import{b as D}from"./chunk-XU74PNM2.js";import{a as q}from"./chunk-VQPANPMI.js";var $={};q($,{Content:()=>W,Group:()=>H,Item:()=>K,Label:()=>j,Root:()=>A,Separator:()=>U,Trigger:()=>B});import*as e from"react";import S from"classnames";import{Select as r,ScrollArea as R}from"radix-ui";var J=["1","2","3","4"],v={size:{type:"enum",className:"kui-r-size",values:J,default:"2",responsive:!0}},Q=["raised","surface","soft","outline","ghost"],G={variant:{type:"enum",className:"kui-variant",values:Q,default:"raised"},error:{type:"boolean"},loading:{type:"boolean"},disabled:{type:"boolean"},readOnly:{type:"boolean"},...C,...D,placeholder:{type:"ReactNode"}},M={...C};var V={size:v.size},X=[" ","Enter","ArrowUp","ArrowDown"],h=e.createContext({}),A=o=>{let{children:t,size:a,open:s,defaultOpen:n,onOpenChange:c,...P}=o,p=x(a,v.size),[f,i]=e.useState(n??!1),m=s??f,u=e.useCallback(d=>{i(d),c?.(d)},[c]);return e.createElement(r.Root,{...P,open:m,onOpenChange:u},e.createElement(h.Provider,{value:e.useMemo(()=>({size:p,open:m}),[p,m])},t))};A.displayName="Select.Root";var B=e.forwardRef((o,t)=>{let a=e.useContext(h),{children:s,className:n,color:c,radius:P,placeholder:p,error:f,loading:i,disabled:m,readOnly:u,...d}=g({size:a?.size,...o},V,G),{"aria-invalid":y,"aria-busy":b,"aria-disabled":T,"aria-readonly":k}=d,I=!!f||y===!0||y==="true",Y=e.useMemo(()=>({"aria-invalid":I?!0:y,"aria-busy":i||b,"aria-disabled":m||T,"aria-readonly":u||k}),[I,y,i,b,m,T,u,k]),F=!!(u||i)?{onPointerDown:l=>l.preventDefault(),onClick:l=>{l.preventDefault(),l.currentTarget.focus()},onKeyDown:l=>{let _=l.ctrlKey||l.altKey||l.metaKey;(X.includes(l.key)||!_&&l.key.length===1)&&l.preventDefault()}}:void 0;return e.createElement(r.Trigger,{asChild:!0,disabled:m,...F},e.createElement("button",{"data-accent-color":c,"data-radius":P,"data-error":f,"data-loading":i,...d,...Y,ref:t,className:S("kui-reset","kui-SelectTrigger",n)},e.createElement("span",{className:"kui-SelectTriggerInner"},e.createElement(r.Value,{placeholder:p},s)),e.createElement(r.Icon,{asChild:!0},i?e.createElement("span",{className:"kui-SelectIcon kui-SelectLoadingIcon","aria-hidden":"true"},e.createElement(N,null)):e.createElement(w,{className:"kui-SelectIcon"}))))});B.displayName="Select.Trigger";var W=e.forwardRef((o,t)=>{let a=e.useContext(h),{className:s,children:n,color:c,container:P,...p}=g({size:a?.size,...o},V,M),f=O();if(a.open===!1&&!p.forceMount)return e.createElement(r.Portal,{container:P},e.createElement(r.Content,{...p,asChild:!1,ref:t},n));let i=c||f.accentColor;return e.createElement(r.Portal,{container:P},e.createElement(z,{asChild:!0},e.createElement(r.Content,{"data-accent-color":i,sideOffset:4,...p,asChild:!1,ref:t,className:S("kui-PopperContent","kui-BaseMenuContent","kui-variant-soft","kui-SelectContent",s)},e.createElement(Z,null,n))))});W.displayName="Select.Content";function Z({children:o}){let t=L();return e.createElement(R.Root,{type:"auto",className:"kui-ScrollAreaRoot"},e.createElement(r.Viewport,{asChild:!0,className:S("kui-BaseMenuViewport","kui-SelectViewport")},e.createElement(R.Viewport,{ref:t,className:"kui-ScrollAreaViewport",style:{overflowY:void 0}},o)),e.createElement(R.Scrollbar,{className:"kui-ScrollAreaScrollbar",orientation:"vertical"},e.createElement(R.Thumb,{className:"kui-ScrollAreaThumb"})))}var K=e.forwardRef((o,t)=>{let{className:a,children:s,...n}=o,c=typeof s!="string";return e.createElement(r.Item,{...n,asChild:!1,ref:t,className:S("kui-reset","kui-BaseMenuItem","kui-SelectItem",{"kui-SelectItemRich":c},a)},e.createElement(r.ItemIndicator,{className:"kui-SelectItemIndicator"},e.createElement(E,{className:"kui-SelectItemIndicatorIcon"})),e.createElement(r.ItemText,null,s))});K.displayName="Select.Item";var H=e.forwardRef(({className:o,...t},a)=>e.createElement(r.Group,{...t,asChild:!1,ref:a,className:S("kui-SelectGroup",o)}));H.displayName="Select.Group";var j=e.forwardRef(({className:o,...t},a)=>e.createElement(r.Label,{...t,asChild:!1,ref:a,className:S("kui-BaseMenuLabel","kui-SelectLabel",o)}));j.displayName="Select.Label";var U=e.forwardRef(({className:o,...t},a)=>e.createElement(r.Separator,{...t,asChild:!1,ref:a,className:S("kui-BaseMenuSeparator","kui-SelectSeparator",o)}));U.displayName="Select.Separator";export{A as a,B as b,W as c,K as d,H as e,j as f,U as g,$ as h};
|
|
3
|
+
//# sourceMappingURL=chunk-OUOP6Q3Z.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/select.tsx", "../../src/components/select.props.tsx"],
|
|
4
|
+
"sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Select as SelectPrimitive, ScrollArea as ScrollAreaPrimitive } from 'radix-ui';\n\nimport { extractProps } from '../helpers/extract-props.js';\nimport { useThemeSize } from '../hooks/theme-size.js';\nimport { ChevronDownIcon, ThickCheckIcon } from './icons.js';\nimport { Spinner } from './spinner.js';\nimport {\n selectRootPropDefs,\n selectTriggerPropDefs,\n selectContentPropDefs,\n} from './select.props.js';\nimport { useThemeContext } from './theme.js';\nimport { PortalTheme } from './_internal/portal-theme.js';\nimport { useThumbSync } from '../hooks/use-thumb-sync.js';\n\nimport type { GetPropDefTypes } from '../props/prop-def.js';\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\n\ntype SelectRootOwnProps = GetPropDefTypes<typeof selectRootPropDefs>;\n\n// Trigger and Content pass the size prop def as its own record. It is hoisted because\n// extractProps caches its compiled prop defs on the identity of each record it is given:\n// a literal written at the call site would be a new object, and a recompile, every render.\nconst selectSizePropDefs = { size: selectRootPropDefs.size };\n\n// Keys that open the list from the trigger, as in Radix.\nconst OPEN_KEYS = [' ', 'Enter', 'ArrowUp', 'ArrowDown'];\n\ninterface SelectContextValue extends SelectRootOwnProps {\n /** Whether the list is open. Undefined when Content is rendered outside a Kookie Select.Root. */\n open?: boolean;\n}\nconst SelectContext = React.createContext<SelectContextValue>({});\n\ninterface SelectRootProps extends SelectPrimitive.SelectProps, SelectRootOwnProps {}\nconst SelectRoot: React.FC<SelectRootProps> = (props) => {\n const {\n children,\n size: sizeProp,\n open: openProp,\n defaultOpen,\n onOpenChange,\n ...rootProps\n } = props;\n const size = useThemeSize(sizeProp, selectRootPropDefs.size);\n\n // Root owns the open state and hands Radix a controlled `open`, so Content learns of a\n // change in the same render Radix does. Radix's uncontrolled state reports changes from an\n // effect, a render late, which would mount the open list once without its wrappers.\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(defaultOpen ?? false);\n const open = openProp ?? uncontrolledOpen;\n const handleOpenChange = React.useCallback(\n (next: boolean) => {\n setUncontrolledOpen(next);\n onOpenChange?.(next);\n },\n [onOpenChange],\n );\n\n return (\n <SelectPrimitive.Root {...rootProps} open={open} onOpenChange={handleOpenChange}>\n <SelectContext.Provider value={React.useMemo(() => ({ size, open }), [size, open])}>\n {children}\n </SelectContext.Provider>\n </SelectPrimitive.Root>\n );\n};\nSelectRoot.displayName = 'Select.Root';\n\ntype SelectTriggerElement = React.ElementRef<typeof SelectPrimitive.Trigger>;\ntype SelectTriggerOwnProps = GetPropDefTypes<typeof selectTriggerPropDefs>;\ninterface SelectTriggerProps\n extends ComponentPropsWithout<typeof SelectPrimitive.Trigger, RemovedProps>,\n SelectTriggerOwnProps {}\nconst SelectTrigger = React.forwardRef<SelectTriggerElement, SelectTriggerProps>(\n (props, forwardedRef) => {\n const context = React.useContext(SelectContext);\n const {\n children,\n className,\n color,\n radius,\n placeholder,\n error,\n loading,\n disabled,\n readOnly,\n ...triggerProps\n } = extractProps(\n // Pass size value from the context to generate styles\n { size: context?.size, ...props },\n // Pass size prop def to allow it to be extracted\n selectSizePropDefs,\n selectTriggerPropDefs,\n );\n\n // The props win when set; otherwise a caller's own aria-* (a form library's aria-invalid)\n // stays, so both paths reach the accessibility tree and the CSS, as on TextField.\n const {\n 'aria-invalid': ariaInvalid,\n 'aria-busy': ariaBusy,\n 'aria-disabled': ariaDisabled,\n 'aria-readonly': ariaReadOnly,\n } = triggerProps;\n const isInvalid = Boolean(error) || ariaInvalid === true || ariaInvalid === 'true';\n const ariaProps = React.useMemo(\n () => ({\n 'aria-invalid': isInvalid ? true : ariaInvalid,\n 'aria-busy': loading || ariaBusy,\n 'aria-disabled': disabled || ariaDisabled,\n 'aria-readonly': readOnly || ariaReadOnly,\n }),\n [isInvalid, ariaInvalid, loading, ariaBusy, disabled, ariaDisabled, readOnly, ariaReadOnly],\n );\n\n // Read-only and loading triggers stay focusable but do not open or take typeahead,\n // as on Combobox. Radix skips its own handler when the event is default-prevented.\n const isBlocked = Boolean(readOnly || loading);\n const blockedHandlers = isBlocked\n ? {\n onPointerDown: (event: React.PointerEvent<HTMLButtonElement>) => event.preventDefault(),\n onClick: (event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault();\n event.currentTarget.focus();\n },\n onKeyDown: (event: React.KeyboardEvent<HTMLButtonElement>) => {\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n if (OPEN_KEYS.includes(event.key) || (!isModifierKey && event.key.length === 1)) {\n event.preventDefault();\n }\n },\n }\n : undefined;\n\n return (\n // `disabled` goes to Radix, which merges it with Root's and sets the native attribute.\n <SelectPrimitive.Trigger asChild disabled={disabled} {...blockedHandlers}>\n <button\n data-accent-color={color}\n data-radius={radius}\n data-error={error}\n data-loading={loading}\n {...triggerProps}\n {...ariaProps}\n ref={forwardedRef}\n className={classNames('kui-reset', 'kui-SelectTrigger', className)}\n >\n <span className=\"kui-SelectTriggerInner\">\n <SelectPrimitive.Value placeholder={placeholder}>{children}</SelectPrimitive.Value>\n </span>\n <SelectPrimitive.Icon asChild>\n {loading ? (\n <span className=\"kui-SelectIcon kui-SelectLoadingIcon\" aria-hidden=\"true\">\n <Spinner />\n </span>\n ) : (\n <ChevronDownIcon className=\"kui-SelectIcon\" />\n )}\n </SelectPrimitive.Icon>\n </button>\n </SelectPrimitive.Trigger>\n );\n },\n);\nSelectTrigger.displayName = 'Select.Trigger';\n\ntype SelectContentElement = React.ElementRef<typeof SelectPrimitive.Content>;\ntype SelectContentOwnProps = GetPropDefTypes<typeof selectContentPropDefs>;\ninterface SelectContentProps\n extends ComponentPropsWithout<typeof SelectPrimitive.Content, RemovedProps>,\n SelectContentOwnProps {\n container?: React.ComponentPropsWithoutRef<typeof SelectPrimitive.Portal>['container'];\n}\nconst SelectContent = React.forwardRef<SelectContentElement, SelectContentProps>(\n (props, forwardedRef) => {\n const context = React.useContext(SelectContext);\n const { className, children, color, container, ...contentProps } = extractProps(\n // Pass size value from the context to generate styles\n { size: context?.size, ...props },\n // Pass size prop def to allow it to be extracted\n selectSizePropDefs,\n selectContentPropDefs,\n );\n const themeContext = useThemeContext();\n\n // While closed, Radix still renders Content's children, into a detached fragment: the\n // items must exist for the trigger's value label, typeahead and the native form select.\n // Nothing in that fragment is ever shown, so the theme wrapper and the scroll area, with\n // its two resize observers, are left out until the list opens.\n if (context.open === false && !contentProps.forceMount) {\n return (\n <SelectPrimitive.Portal container={container}>\n <SelectPrimitive.Content {...contentProps} asChild={false} ref={forwardedRef}>\n {children}\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n );\n }\n\n const resolvedColor = color || themeContext.accentColor;\n return (\n <SelectPrimitive.Portal container={container}>\n <PortalTheme asChild>\n <SelectPrimitive.Content\n data-accent-color={resolvedColor}\n sideOffset={4}\n {...contentProps}\n asChild={false}\n ref={forwardedRef}\n className={classNames(\n 'kui-PopperContent',\n 'kui-BaseMenuContent',\n 'kui-variant-soft',\n 'kui-SelectContent',\n className,\n )}\n >\n <SelectScrollArea>{children}</SelectScrollArea>\n </SelectPrimitive.Content>\n </PortalTheme>\n </SelectPrimitive.Portal>\n );\n },\n);\nSelectContent.displayName = 'Select.Content';\n\n/** The open list's scroll area. Its own component so the thumb sync hook runs only while open. */\nfunction SelectScrollArea({ children }: { children: React.ReactNode }) {\n const setThumbViewport = useThumbSync<HTMLDivElement>();\n return (\n <ScrollAreaPrimitive.Root type=\"auto\" className=\"kui-ScrollAreaRoot\">\n <SelectPrimitive.Viewport\n asChild\n className={classNames('kui-BaseMenuViewport', 'kui-SelectViewport')}\n >\n <ScrollAreaPrimitive.Viewport\n ref={setThumbViewport}\n className=\"kui-ScrollAreaViewport\"\n style={{ overflowY: undefined }}\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n </SelectPrimitive.Viewport>\n <ScrollAreaPrimitive.Scrollbar className=\"kui-ScrollAreaScrollbar\" orientation=\"vertical\">\n <ScrollAreaPrimitive.Thumb className=\"kui-ScrollAreaThumb\" />\n </ScrollAreaPrimitive.Scrollbar>\n </ScrollAreaPrimitive.Root>\n );\n}\n\ntype SelectItemElement = React.ElementRef<typeof SelectPrimitive.Item>;\ninterface SelectItemProps\n extends ComponentPropsWithout<typeof SelectPrimitive.Item, RemovedProps> {}\nconst SelectItem = React.forwardRef<SelectItemElement, SelectItemProps>((props, forwardedRef) => {\n const { className, children, ...itemProps } = props;\n\n // Detect if this is rich content (not just a string)\n const isRichContent = typeof children !== 'string';\n\n return (\n <SelectPrimitive.Item\n {...itemProps}\n asChild={false}\n ref={forwardedRef}\n className={classNames(\n 'kui-reset',\n 'kui-BaseMenuItem',\n 'kui-SelectItem',\n { 'kui-SelectItemRich': isRichContent },\n className,\n )}\n >\n <SelectPrimitive.ItemIndicator className=\"kui-SelectItemIndicator\">\n <ThickCheckIcon className=\"kui-SelectItemIndicatorIcon\" />\n </SelectPrimitive.ItemIndicator>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n );\n});\nSelectItem.displayName = 'Select.Item';\n\ntype SelectGroupElement = React.ElementRef<typeof SelectPrimitive.Group>;\ninterface SelectGroupProps\n extends ComponentPropsWithout<typeof SelectPrimitive.Group, RemovedProps> {}\nconst SelectGroup = React.forwardRef<SelectGroupElement, SelectGroupProps>(\n ({ className, ...props }, forwardedRef) => (\n <SelectPrimitive.Group\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('kui-SelectGroup', className)}\n />\n ),\n);\nSelectGroup.displayName = 'Select.Group';\n\ntype SelectLabelElement = React.ElementRef<typeof SelectPrimitive.Label>;\ninterface SelectLabelProps\n extends ComponentPropsWithout<typeof SelectPrimitive.Label, RemovedProps> {}\nconst SelectLabel = React.forwardRef<SelectLabelElement, SelectLabelProps>(\n ({ className, ...props }, forwardedRef) => (\n <SelectPrimitive.Label\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('kui-BaseMenuLabel', 'kui-SelectLabel', className)}\n />\n ),\n);\nSelectLabel.displayName = 'Select.Label';\n\ntype SelectSeparatorElement = React.ElementRef<typeof SelectPrimitive.Separator>;\ninterface SelectSeparatorProps\n extends ComponentPropsWithout<typeof SelectPrimitive.Separator, RemovedProps> {}\nconst SelectSeparator = React.forwardRef<SelectSeparatorElement, SelectSeparatorProps>(\n ({ className, ...props }, forwardedRef) => (\n <SelectPrimitive.Separator\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('kui-BaseMenuSeparator', 'kui-SelectSeparator', className)}\n />\n ),\n);\nSelectSeparator.displayName = 'Select.Separator';\n\nexport {\n SelectRoot as Root,\n SelectTrigger as Trigger,\n SelectContent as Content,\n SelectItem as Item,\n SelectGroup as Group,\n SelectLabel as Label,\n SelectSeparator as Separator,\n};\n\nexport type {\n SelectRootProps as RootProps,\n SelectTriggerProps as TriggerProps,\n SelectContentProps as ContentProps,\n SelectItemProps as ItemProps,\n SelectGroupProps as GroupProps,\n SelectLabelProps as LabelProps,\n SelectSeparatorProps as SeparatorProps,\n};\n", "import type React from 'react';\n\nimport { colorPropDef } from '../props/color.prop.js';\nimport { radiusPropDef } from '../props/radius.prop.js';\n\nimport type { PropDef } from '../props/prop-def.js';\n\nconst sizes = ['1', '2', '3', '4'] as const;\n\nconst selectRootPropDefs = {\n size: { type: 'enum', className: 'kui-r-size', values: sizes, default: '2', responsive: true },\n} satisfies {\n size: PropDef<(typeof sizes)[number]>;\n};\n\nconst triggerVariants = ['raised', 'surface', 'soft', 'outline', 'ghost'] as const;\n\nconst selectTriggerPropDefs = {\n variant: { type: 'enum', className: 'kui-variant', values: triggerVariants, default: 'raised' },\n error: { type: 'boolean' },\n loading: { type: 'boolean' },\n disabled: { type: 'boolean' },\n readOnly: { type: 'boolean' },\n ...colorPropDef,\n ...radiusPropDef,\n placeholder: { type: 'ReactNode' },\n} satisfies {\n variant: PropDef<(typeof triggerVariants)[number]>;\n error: PropDef<boolean>;\n loading: PropDef<boolean>;\n disabled: PropDef<boolean>;\n readOnly: PropDef<boolean>;\n placeholder: PropDef<React.ReactNode>;\n};\n\n\nconst selectContentPropDefs = {\n ...colorPropDef,\n} satisfies {\n};\n\nexport { selectRootPropDefs, selectTriggerPropDefs, selectContentPropDefs };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["select_exports", "__export", "SelectContent", "SelectGroup", "SelectItem", "SelectLabel", "SelectRoot", "SelectSeparator", "SelectTrigger", "React", "classNames", "SelectPrimitive", "ScrollAreaPrimitive", "sizes", "selectRootPropDefs", "triggerVariants", "selectTriggerPropDefs", "colorPropDef", "radiusPropDef", "selectContentPropDefs", "selectSizePropDefs", "selectRootPropDefs", "OPEN_KEYS", "SelectContext", "SelectRoot", "props", "children", "sizeProp", "openProp", "defaultOpen", "onOpenChange", "rootProps", "size", "useThemeSize", "uncontrolledOpen", "setUncontrolledOpen", "open", "handleOpenChange", "next", "SelectPrimitive", "SelectTrigger", "forwardedRef", "context", "className", "color", "radius", "placeholder", "error", "loading", "disabled", "readOnly", "triggerProps", "extractProps", "selectTriggerPropDefs", "ariaInvalid", "ariaBusy", "ariaDisabled", "ariaReadOnly", "isInvalid", "ariaProps", "blockedHandlers", "event", "isModifierKey", "classNames", "Spinner", "ChevronDownIcon", "SelectContent", "container", "contentProps", "selectContentPropDefs", "themeContext", "useThemeContext", "resolvedColor", "PortalTheme", "SelectScrollArea", "setThumbViewport", "useThumbSync", "ScrollAreaPrimitive", "SelectItem", "itemProps", "isRichContent", "ThickCheckIcon", "SelectGroup", "SelectLabel", "SelectSeparator"]
|
|
7
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{a as F}from"./chunk-H2TSRYQ5.js";import{a as O,b as U,c as q,e as C,f as $}from"./chunk-457Z4R5W.js";import{a as E}from"./chunk-TFGUTYZK.js";import{a as z,b as V,c as j}from"./chunk-RD4T2MCC.js";import{d as H}from"./chunk-GKDGNPBD.js";import{b as L}from"./chunk-5KMEUZWN.js";import{a as W}from"./chunk-LGZCNQBS.js";import{b as y,c as K}from"./chunk-3ZWHKNHI.js";import{a as ue}from"./chunk-VQPANPMI.js";var fe={};ue(fe,{Group:()=>oe,GroupContent:()=>ie,GroupLabel:()=>ae,Menu:()=>Y,MenuButton:()=>T,MenuItem:()=>D,MenuSub:()=>ee,MenuSubContent:()=>re,MenuSubTrigger:()=>te,Search:()=>se,Separator:()=>Q});import*as e from"react";import d from"classnames";import*as f from"@radix-ui/react-accordion";var Q=e.forwardRef(({className:t,...r},n)=>e.createElement(F,{...r,ref:n,className:d("kui-SidebarSeparator",t)}));Q.displayName="Sidebar.Separator";var Y=e.forwardRef(({className:t,...r},n)=>e.createElement("ul",{...r,ref:n,className:d("kui-SidebarMenu",t)}));Y.displayName="Sidebar.Menu";var D=e.forwardRef(({className:t,...r},n)=>e.createElement("li",{...r,ref:n,className:d("kui-SidebarMenuItem",t)}));D.displayName="Sidebar.MenuItem";function A(t){if(typeof t=="function"){let r=t;return r.displayName||r.name}if(t&&typeof t=="object"){let r=t;return r.displayName||A(r.render)||A(r.type)}}function ce(t){return t.type==="svg"||t.props?.icon?!0:A(t.type)?.includes("Icon")??!1}function Z(t){return typeof t=="string"||typeof t=="number"}function de(t){let r=e.Children.toArray(t),n=[],o=[];for(let a of r)e.isValidElement(a)&&ce(a)?n.push(a):o.push(Z(a)?e.createElement("span",{key:o.length,className:"kui-SidebarMenuLabel"},a):a);return n.length===0&&r.length>1&&e.isValidElement(r[0])&&(n.push(r[0]),o.shift()),{icons:n,labels:o}}function pe(t){return e.Children.map(t,r=>Z(r)?e.createElement("span",{className:"kui-SidebarMenuLabel"},r):r)}function _(t){if(t.key!=="ArrowDown"&&t.key!=="ArrowUp")return;let r=t.currentTarget.closest(".kui-SidebarContent, .kui-SidebarSearchPopover"),n=r?Array.from(r.querySelectorAll(".kui-SidebarMenuButton")).filter(u=>u.offsetParent!==null):[],o=n.indexOf(t.currentTarget),a=n[o+(t.key==="ArrowDown"?1:-1)];o!==-1&&a&&(t.preventDefault(),a.focus())}var T=e.forwardRef(({asChild:t=!1,isActive:r=!1,shortcut:n,badge:o,className:a,children:u,onKeyDown:p,...s},l)=>{let c=y(),k=e.useContext(K),g=c?.size??k,M=c?.presentation==="thin",N=t?L:"button",P=i=>{p?.(i),i.defaultPrevented||_(i)},m=M?null:e.createElement(e.Fragment,null,o&&e.createElement("div",{className:"kui-SidebarMenuBadge"},typeof o=="string"?e.createElement(E,{size:g,variant:"soft"},o):e.createElement(E,{size:o.size||g,variant:o.variant||"soft",color:o.color,radius:o.radius},o.content)),n&&e.createElement("div",{className:"kui-BaseMenuShortcut kui-SidebarMenuShortcut"},e.createElement(W,{size:g},n))),h=i=>{if(M){let{icons:v,labels:w}=de(i);if(v.length>0)return e.createElement(e.Fragment,null,e.createElement("span",{className:"kui-SidebarMenuIconWrapper"},v),w)}return e.createElement(e.Fragment,null,pe(i),m)},S;return t&&e.isValidElement(u)&&e.Children.count(u)===1?S=e.cloneElement(u,void 0,h(u.props.children)):t?S=u:S=h(u),e.createElement(N,{type:t?void 0:"button",...s,ref:l,"aria-current":r?"page":void 0,className:d("kui-reset","kui-BaseMenuItem","kui-SidebarMenuButton",a),"data-active":r||void 0,onKeyDown:P},S)});T.displayName="Sidebar.MenuButton";var x=e.createContext("accordion"),ee=e.forwardRef(({defaultOpen:t=!1,children:r,...n},o)=>(y()?.presentation==="thin"?"dropdown":"accordion")==="dropdown"?e.createElement("div",{...n,ref:o},e.createElement(O,null,e.createElement(x.Provider,{value:"dropdown"},r))):e.createElement("div",{...n,ref:o},e.createElement(x.Provider,{value:"accordion"},e.createElement(f.Root,{type:"single",collapsible:!0,defaultValue:t?"item":void 0},e.createElement(f.Item,{value:"item"},r)))));ee.displayName="Sidebar.MenuSub";var te=e.forwardRef(({asChild:t=!1,className:r,children:n,onKeyDown:o,...a},u)=>e.useContext(x)==="dropdown"?e.createElement(U,null,e.createElement("button",{...a,onKeyDown:o,ref:u,type:"button","aria-haspopup":"menu",className:d("kui-reset","kui-BaseMenuItem","kui-SidebarMenuButton","kui-SidebarMenuSubTrigger",r)},n)):e.createElement(f.Header,{asChild:!0},e.createElement("div",null,e.createElement(f.Trigger,{...a,onKeyDown:s=>{_(s),o?.(s)},ref:u,asChild:t,className:d("kui-reset","kui-BaseMenuItem","kui-SidebarMenuButton","kui-SidebarMenuSubTrigger",r)},t?n:e.createElement(e.Fragment,null,n,e.createElement(H,{className:d("kui-BaseMenuSubTriggerIcon","kui-SidebarMenuSubTriggerIcon")}))))));te.displayName="Sidebar.MenuSubTrigger";function X(t,r){if(e.isValidElement(t)&&t.type===T){let{asChild:n,isActive:o,shortcut:a,badge:u,type:p,children:s,...l}=t.props,c={...l,"data-active":o||void 0,"aria-current":o?"page":void 0};return n&&e.isValidElement(s)&&e.Children.count(s)===1?e.createElement(C,{key:r,...c,asChild:!0},s):e.createElement(C,{key:r,...c},s)}return e.isValidElement(t)?e.createElement(C,{key:r,asChild:!0},t):e.createElement(C,{key:r},t)}function le(t){return e.Children.map(t,(r,n)=>e.isValidElement(r)&&r.type===T?e.createElement(D,{key:r.key??n},r):r)}var re=e.forwardRef(({className:t,children:r,...n},o)=>{let a=y();if(e.useContext(x)==="dropdown"){let p=e.Children.map(r,(s,l)=>{if(e.isValidElement(s)&&s.type===D){let c=e.Children.toArray(s.props.children);return X(c.length===1?c[0]:c,l)}return X(s,l)});return e.createElement(q,{...n,ref:o,size:a?.size,className:d(t)},e.createElement($,null,p))}return e.createElement(f.Content,{...n,ref:o,className:d("kui-SidebarMenuSubContent",t)},e.createElement("ul",{className:"kui-SidebarMenuSubList"},le(r)))});re.displayName="Sidebar.MenuSubContent";var ne=e.createContext(null),oe=e.forwardRef(({className:t,...r},n)=>{let o=e.useId(),[a,u]=e.useState(null),p=e.useMemo(()=>({labelId:o,setLabelId:u}),[o]);return e.createElement(ne.Provider,{value:p},e.createElement("div",{role:a?"group":void 0,"aria-labelledby":a??void 0,...r,ref:n,className:d("kui-BaseMenuGroup","kui-SidebarGroup",t)}))});oe.displayName="Sidebar.Group";var ae=e.forwardRef(({asChild:t=!1,className:r,id:n,...o},a)=>{let u=t?L:"div",p=e.useContext(ne),s=n??p?.labelId,l=p?.setLabelId;return e.useEffect(()=>{if(!(!l||!s))return l(s),()=>l(null)},[l,s]),e.createElement(u,{...o,id:s,ref:a,className:d("kui-BaseMenuLabel","kui-SidebarGroupLabel",r)})});ae.displayName="Sidebar.GroupLabel";var ie=e.forwardRef(({className:t,...r},n)=>e.createElement("div",{...r,ref:n,className:d("kui-SidebarGroupContent",t)}));ie.displayName="Sidebar.GroupContent";var B=({className:t})=>e.createElement("svg",{className:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true"},e.createElement("circle",{cx:"11",cy:"11",r:"8"}),e.createElement("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})),J=({className:t})=>e.createElement("svg",{className:t,width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true"},e.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),e.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),se=e.forwardRef(({value:t,onValueChange:r,placeholder:n="Search...",children:o,className:a,...u},p)=>{let s=y(),l=s?.presentation==="thin",c=e.useRef(null),k=e.useRef(null),M=`${e.useId()}-results`,N=e.useRef(t);N.current=t;let P=e.useRef(r);P.current=r;let m=n.replace(/\.+$/,""),h=e.useCallback(i=>{i.key==="Escape"&&N.current&&(i.preventDefault(),i.stopPropagation(),P.current(""),c.current?.focus())},[]),S=e.useCallback(i=>{if(i.defaultPrevented)return;let v=k.current;if(!v)return;let w=v.querySelector('[role="group"]');if(!w)return;let b=Array.from(w.querySelectorAll("a, button"));if(b.length===0)return;let G=document.activeElement,I=G===c.current,R=b.indexOf(G);if(i.key.length===1&&!i.ctrlKey&&!i.metaKey&&!i.altKey&&!I&&R!==-1){c.current?.focus();return}switch(i.key){case"ArrowDown":{i.preventDefault(),I||R===-1?b[0]?.focus():R<b.length-1&&b[R+1]?.focus();break}case"ArrowUp":{i.preventDefault(),R<=0?c.current?.focus():b[R-1]?.focus();break}case"Home":{I||(i.preventDefault(),b[0]?.focus());break}case"End":{I||(i.preventDefault(),b[b.length-1]?.focus());break}}},[]);return l?e.createElement("div",{...u,ref:p,className:d("kui-SidebarSearch","kui-SidebarSearch--thin",a)},e.createElement(z,null,e.createElement(V,null,e.createElement("button",{type:"button",className:d("kui-reset","kui-BaseMenuItem","kui-SidebarMenuButton","kui-SidebarSearchTrigger"),"aria-label":m},e.createElement("span",{className:"kui-SidebarMenuIconWrapper"},e.createElement(B,null)),e.createElement("span",{className:"kui-SidebarMenuLabel"},"Search"))),e.createElement(j,{side:"right",align:"start",size:"2",width:"280px","aria-label":m},e.createElement("div",{ref:k,className:"kui-SidebarSearchPopover",role:"search",onKeyDown:S},e.createElement("div",{className:"kui-SidebarSearchInputWrapper"},e.createElement(B,{className:"kui-SidebarSearchIcon"}),e.createElement("input",{ref:c,type:"search",className:"kui-SidebarSearchInput",value:t,onChange:i=>r(i.target.value),onKeyDown:h,placeholder:n,"aria-label":m,"aria-controls":o?M:void 0,autoFocus:!0}),t&&e.createElement("button",{type:"button",className:"kui-reset kui-SidebarSearchClear",onClick:()=>{r(""),c.current?.focus()},"aria-label":"Clear search"},e.createElement(J,null))),o&&e.createElement("div",{id:M,role:"group","aria-label":"Search results"},o))))):e.createElement("div",{...u,ref:p,className:d("kui-SidebarSearch","kui-SidebarSearch--expanded","kui-ShellPaneChrome",`kui-r-size-${s?.size??"2"}`,a),role:"search"},e.createElement("div",{className:"kui-SidebarSearchInputWrapper"},e.createElement(B,{className:"kui-SidebarSearchIcon"}),e.createElement("input",{ref:c,type:"search",className:"kui-SidebarSearchInput",value:t,onChange:i=>r(i.target.value),onKeyDown:h,placeholder:n,"aria-label":m}),t&&e.createElement("button",{type:"button",className:"kui-reset kui-SidebarSearchClear",onClick:()=>{r(""),c.current?.focus()},"aria-label":"Clear search"},e.createElement(J,null))))});se.displayName="Sidebar.Search";export{Q as a,Y as b,D as c,T as d,ee as e,te as f,re as g,oe as h,ae as i,ie as j,se as k,fe as l};
|
|
3
|
-
//# sourceMappingURL=chunk-
|
|
2
|
+
import{a as F}from"./chunk-324VC67W.js";import{a as O,b as U,c as q,e as C,f as $}from"./chunk-VPP5IDW7.js";import{a as E}from"./chunk-3UIODOPE.js";import{a as z,b as V,c as j}from"./chunk-OLWUS7PC.js";import{d as H}from"./chunk-GKDGNPBD.js";import{b as L}from"./chunk-5KMEUZWN.js";import{a as W}from"./chunk-QPRUTOLI.js";import{b as y,c as K}from"./chunk-OLTRWCQK.js";import{a as ue}from"./chunk-VQPANPMI.js";var fe={};ue(fe,{Group:()=>oe,GroupContent:()=>ie,GroupLabel:()=>ae,Menu:()=>Y,MenuButton:()=>T,MenuItem:()=>D,MenuSub:()=>ee,MenuSubContent:()=>re,MenuSubTrigger:()=>te,Search:()=>se,Separator:()=>Q});import*as e from"react";import d from"classnames";import*as f from"@radix-ui/react-accordion";var Q=e.forwardRef(({className:t,...r},n)=>e.createElement(F,{...r,ref:n,className:d("kui-SidebarSeparator",t)}));Q.displayName="Sidebar.Separator";var Y=e.forwardRef(({className:t,...r},n)=>e.createElement("ul",{...r,ref:n,className:d("kui-SidebarMenu",t)}));Y.displayName="Sidebar.Menu";var D=e.forwardRef(({className:t,...r},n)=>e.createElement("li",{...r,ref:n,className:d("kui-SidebarMenuItem",t)}));D.displayName="Sidebar.MenuItem";function A(t){if(typeof t=="function"){let r=t;return r.displayName||r.name}if(t&&typeof t=="object"){let r=t;return r.displayName||A(r.render)||A(r.type)}}function ce(t){return t.type==="svg"||t.props?.icon?!0:A(t.type)?.includes("Icon")??!1}function Z(t){return typeof t=="string"||typeof t=="number"}function de(t){let r=e.Children.toArray(t),n=[],o=[];for(let a of r)e.isValidElement(a)&&ce(a)?n.push(a):o.push(Z(a)?e.createElement("span",{key:o.length,className:"kui-SidebarMenuLabel"},a):a);return n.length===0&&r.length>1&&e.isValidElement(r[0])&&(n.push(r[0]),o.shift()),{icons:n,labels:o}}function pe(t){return e.Children.map(t,r=>Z(r)?e.createElement("span",{className:"kui-SidebarMenuLabel"},r):r)}function _(t){if(t.key!=="ArrowDown"&&t.key!=="ArrowUp")return;let r=t.currentTarget.closest(".kui-SidebarContent, .kui-SidebarSearchPopover"),n=r?Array.from(r.querySelectorAll(".kui-SidebarMenuButton")).filter(u=>u.offsetParent!==null):[],o=n.indexOf(t.currentTarget),a=n[o+(t.key==="ArrowDown"?1:-1)];o!==-1&&a&&(t.preventDefault(),a.focus())}var T=e.forwardRef(({asChild:t=!1,isActive:r=!1,shortcut:n,badge:o,className:a,children:u,onKeyDown:p,...s},l)=>{let c=y(),k=e.useContext(K),g=c?.size??k,M=c?.presentation==="thin",N=t?L:"button",P=i=>{p?.(i),i.defaultPrevented||_(i)},m=M?null:e.createElement(e.Fragment,null,o&&e.createElement("div",{className:"kui-SidebarMenuBadge"},typeof o=="string"?e.createElement(E,{size:g,variant:"soft"},o):e.createElement(E,{size:o.size||g,variant:o.variant||"soft",color:o.color,radius:o.radius},o.content)),n&&e.createElement("div",{className:"kui-BaseMenuShortcut kui-SidebarMenuShortcut"},e.createElement(W,{size:g},n))),h=i=>{if(M){let{icons:v,labels:w}=de(i);if(v.length>0)return e.createElement(e.Fragment,null,e.createElement("span",{className:"kui-SidebarMenuIconWrapper"},v),w)}return e.createElement(e.Fragment,null,pe(i),m)},S;return t&&e.isValidElement(u)&&e.Children.count(u)===1?S=e.cloneElement(u,void 0,h(u.props.children)):t?S=u:S=h(u),e.createElement(N,{type:t?void 0:"button",...s,ref:l,"aria-current":r?"page":void 0,className:d("kui-reset","kui-BaseMenuItem","kui-SidebarMenuButton",a),"data-active":r||void 0,onKeyDown:P},S)});T.displayName="Sidebar.MenuButton";var x=e.createContext("accordion"),ee=e.forwardRef(({defaultOpen:t=!1,children:r,...n},o)=>(y()?.presentation==="thin"?"dropdown":"accordion")==="dropdown"?e.createElement("div",{...n,ref:o},e.createElement(O,null,e.createElement(x.Provider,{value:"dropdown"},r))):e.createElement("div",{...n,ref:o},e.createElement(x.Provider,{value:"accordion"},e.createElement(f.Root,{type:"single",collapsible:!0,defaultValue:t?"item":void 0},e.createElement(f.Item,{value:"item"},r)))));ee.displayName="Sidebar.MenuSub";var te=e.forwardRef(({asChild:t=!1,className:r,children:n,onKeyDown:o,...a},u)=>e.useContext(x)==="dropdown"?e.createElement(U,null,e.createElement("button",{...a,onKeyDown:o,ref:u,type:"button","aria-haspopup":"menu",className:d("kui-reset","kui-BaseMenuItem","kui-SidebarMenuButton","kui-SidebarMenuSubTrigger",r)},n)):e.createElement(f.Header,{asChild:!0},e.createElement("div",null,e.createElement(f.Trigger,{...a,onKeyDown:s=>{_(s),o?.(s)},ref:u,asChild:t,className:d("kui-reset","kui-BaseMenuItem","kui-SidebarMenuButton","kui-SidebarMenuSubTrigger",r)},t?n:e.createElement(e.Fragment,null,n,e.createElement(H,{className:d("kui-BaseMenuSubTriggerIcon","kui-SidebarMenuSubTriggerIcon")}))))));te.displayName="Sidebar.MenuSubTrigger";function X(t,r){if(e.isValidElement(t)&&t.type===T){let{asChild:n,isActive:o,shortcut:a,badge:u,type:p,children:s,...l}=t.props,c={...l,"data-active":o||void 0,"aria-current":o?"page":void 0};return n&&e.isValidElement(s)&&e.Children.count(s)===1?e.createElement(C,{key:r,...c,asChild:!0},s):e.createElement(C,{key:r,...c},s)}return e.isValidElement(t)?e.createElement(C,{key:r,asChild:!0},t):e.createElement(C,{key:r},t)}function le(t){return e.Children.map(t,(r,n)=>e.isValidElement(r)&&r.type===T?e.createElement(D,{key:r.key??n},r):r)}var re=e.forwardRef(({className:t,children:r,...n},o)=>{let a=y();if(e.useContext(x)==="dropdown"){let p=e.Children.map(r,(s,l)=>{if(e.isValidElement(s)&&s.type===D){let c=e.Children.toArray(s.props.children);return X(c.length===1?c[0]:c,l)}return X(s,l)});return e.createElement(q,{...n,ref:o,size:a?.size,className:d(t)},e.createElement($,null,p))}return e.createElement(f.Content,{...n,ref:o,className:d("kui-SidebarMenuSubContent",t)},e.createElement("ul",{className:"kui-SidebarMenuSubList"},le(r)))});re.displayName="Sidebar.MenuSubContent";var ne=e.createContext(null),oe=e.forwardRef(({className:t,...r},n)=>{let o=e.useId(),[a,u]=e.useState(null),p=e.useMemo(()=>({labelId:o,setLabelId:u}),[o]);return e.createElement(ne.Provider,{value:p},e.createElement("div",{role:a?"group":void 0,"aria-labelledby":a??void 0,...r,ref:n,className:d("kui-BaseMenuGroup","kui-SidebarGroup",t)}))});oe.displayName="Sidebar.Group";var ae=e.forwardRef(({asChild:t=!1,className:r,id:n,...o},a)=>{let u=t?L:"div",p=e.useContext(ne),s=n??p?.labelId,l=p?.setLabelId;return e.useEffect(()=>{if(!(!l||!s))return l(s),()=>l(null)},[l,s]),e.createElement(u,{...o,id:s,ref:a,className:d("kui-BaseMenuLabel","kui-SidebarGroupLabel",r)})});ae.displayName="Sidebar.GroupLabel";var ie=e.forwardRef(({className:t,...r},n)=>e.createElement("div",{...r,ref:n,className:d("kui-SidebarGroupContent",t)}));ie.displayName="Sidebar.GroupContent";var B=({className:t})=>e.createElement("svg",{className:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true"},e.createElement("circle",{cx:"11",cy:"11",r:"8"}),e.createElement("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})),J=({className:t})=>e.createElement("svg",{className:t,width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true"},e.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),e.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),se=e.forwardRef(({value:t,onValueChange:r,placeholder:n="Search...",children:o,className:a,...u},p)=>{let s=y(),l=s?.presentation==="thin",c=e.useRef(null),k=e.useRef(null),M=`${e.useId()}-results`,N=e.useRef(t);N.current=t;let P=e.useRef(r);P.current=r;let m=n.replace(/\.+$/,""),h=e.useCallback(i=>{i.key==="Escape"&&N.current&&(i.preventDefault(),i.stopPropagation(),P.current(""),c.current?.focus())},[]),S=e.useCallback(i=>{if(i.defaultPrevented)return;let v=k.current;if(!v)return;let w=v.querySelector('[role="group"]');if(!w)return;let b=Array.from(w.querySelectorAll("a, button"));if(b.length===0)return;let G=document.activeElement,I=G===c.current,R=b.indexOf(G);if(i.key.length===1&&!i.ctrlKey&&!i.metaKey&&!i.altKey&&!I&&R!==-1){c.current?.focus();return}switch(i.key){case"ArrowDown":{i.preventDefault(),I||R===-1?b[0]?.focus():R<b.length-1&&b[R+1]?.focus();break}case"ArrowUp":{i.preventDefault(),R<=0?c.current?.focus():b[R-1]?.focus();break}case"Home":{I||(i.preventDefault(),b[0]?.focus());break}case"End":{I||(i.preventDefault(),b[b.length-1]?.focus());break}}},[]);return l?e.createElement("div",{...u,ref:p,className:d("kui-SidebarSearch","kui-SidebarSearch--thin",a)},e.createElement(z,null,e.createElement(V,null,e.createElement("button",{type:"button",className:d("kui-reset","kui-BaseMenuItem","kui-SidebarMenuButton","kui-SidebarSearchTrigger"),"aria-label":m},e.createElement("span",{className:"kui-SidebarMenuIconWrapper"},e.createElement(B,null)),e.createElement("span",{className:"kui-SidebarMenuLabel"},"Search"))),e.createElement(j,{side:"right",align:"start",size:"2",width:"280px","aria-label":m},e.createElement("div",{ref:k,className:"kui-SidebarSearchPopover",role:"search",onKeyDown:S},e.createElement("div",{className:"kui-SidebarSearchInputWrapper"},e.createElement(B,{className:"kui-SidebarSearchIcon"}),e.createElement("input",{ref:c,type:"search",className:"kui-SidebarSearchInput",value:t,onChange:i=>r(i.target.value),onKeyDown:h,placeholder:n,"aria-label":m,"aria-controls":o?M:void 0,autoFocus:!0}),t&&e.createElement("button",{type:"button",className:"kui-reset kui-SidebarSearchClear",onClick:()=>{r(""),c.current?.focus()},"aria-label":"Clear search"},e.createElement(J,null))),o&&e.createElement("div",{id:M,role:"group","aria-label":"Search results"},o))))):e.createElement("div",{...u,ref:p,className:d("kui-SidebarSearch","kui-SidebarSearch--expanded","kui-ShellPaneChrome",`kui-r-size-${s?.size??"2"}`,a),role:"search"},e.createElement("div",{className:"kui-SidebarSearchInputWrapper"},e.createElement(B,{className:"kui-SidebarSearchIcon"}),e.createElement("input",{ref:c,type:"search",className:"kui-SidebarSearchInput",value:t,onChange:i=>r(i.target.value),onKeyDown:h,placeholder:n,"aria-label":m}),t&&e.createElement("button",{type:"button",className:"kui-reset kui-SidebarSearchClear",onClick:()=>{r(""),c.current?.focus()},"aria-label":"Clear search"},e.createElement(J,null))))});se.displayName="Sidebar.Search";export{Q as a,Y as b,D as c,T as d,ee as e,te as f,re as g,oe as h,ae as i,ie as j,se as k,fe as l};
|
|
3
|
+
//# sourceMappingURL=chunk-Q2TLWILH.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{a as i}from"./chunk-CR65RYGM.js";import{a as p,b as n}from"./chunk-7N2Q5WOM.js";import{b as a}from"./chunk-5KMEUZWN.js";import{
|
|
3
|
-
//# sourceMappingURL=chunk-
|
|
2
|
+
import{a as i}from"./chunk-CR65RYGM.js";import{a as p,b as n}from"./chunk-7N2Q5WOM.js";import{b as a}from"./chunk-5KMEUZWN.js";import{c as t}from"./chunk-OKQAVYW4.js";import{a as o}from"./chunk-CLJ6SEGP.js";import*as s from"react";import N from"classnames";var y=["div","span"],P=["none","inline-grid","grid"],g=["1","2","3","4","5","6","7","8","9"],v=["1","2","3","4","5","6","7","8","9"],D=["row","column","dense","row-dense","column-dense"],V=["start","center","end","baseline","stretch"],w=["start","center","end","between"],G=["start","center","end","baseline","between","around","evenly","stretch"],b=["start","center","end","baseline","stretch"],r={as:{type:"enum",values:y,default:"div"},...o,display:{type:"enum",className:"kui-r-display",values:P,responsive:!0},areas:{type:"string",className:"kui-r-gta",customProperties:["--grid-template-areas"],responsive:!0},columns:{type:"enum | string",className:"kui-r-gtc",customProperties:["--grid-template-columns"],values:g,parseValue:u,responsive:!0},rows:{type:"enum | string",className:"kui-r-gtr",customProperties:["--grid-template-rows"],values:v,parseValue:u,responsive:!0},flow:{type:"enum",className:"kui-r-gaf",values:D,responsive:!0},align:{type:"enum",className:"kui-r-ai",values:V,responsive:!0},justify:{type:"enum",className:"kui-r-jc",values:w,parseValue:j,responsive:!0},alignContent:{type:"enum",className:"kui-r-ac",values:G,parseValue:C,responsive:!0},justifyItems:{type:"enum",className:"kui-r-ji",values:b,responsive:!0},...i};function u(e){return r.columns.values.includes(e)?e:e?.match(/^\d+$/)?`repeat(${e}, minmax(0, 1fr))`:e}function j(e){return e==="between"?"space-between":e}function C(e){return e==="between"?"space-between":e==="around"?"space-around":e==="evenly"?"space-evenly":e}var h=s.forwardRef((e,m)=>{let{className:l,asChild:f,as:c="div",...d}=t(e,r,p,n);return s.createElement(f?a:c,{...d,ref:m,className:N("kui-Grid",l)})});h.displayName="Grid";export{h as a};
|
|
3
|
+
//# sourceMappingURL=chunk-Q5SANVIW.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{
|
|
3
|
-
//# sourceMappingURL=chunk-
|
|
2
|
+
import{c as s}from"./chunk-OKQAVYW4.js";import{a as o}from"./chunk-CLJ6SEGP.js";import*as e from"react";import P from"classnames";import{Slot as b}from"radix-ui";var f=["1","2","3","4","5","6","7","8","9"],d=["raised","soft"],r={...o,size:{type:"enum",className:"kui-r-size",values:f,responsive:!0},variant:{type:"enum",className:"kui-variant",values:d,default:"raised"}};var c=e.forwardRef((t,p)=>{let{asChild:a,className:m,...i}=s(t,r),n=a?b.Root:"kbd";return e.createElement(n,{...i,ref:p,className:P("kui-reset","kui-Kbd",m)})});c.displayName="Kbd";export{c as a};
|
|
3
|
+
//# sourceMappingURL=chunk-QPRUTOLI.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{a as R,b as y,c as x}from"./chunk-LTUW36HM.js";import{a as O,b as M,c as T}from"./chunk-QKCNGEX4.js";import{a as d,c as w,f as E,g as H}from"./chunk-XUCR7L4G.js";import{a as B}from"./chunk-G66WDIIV.js";import{o as S}from"./chunk-GHWEXMF6.js";import
|
|
3
|
-
//# sourceMappingURL=chunk-
|
|
2
|
+
import{a as v,e as p}from"./chunk-3QWGSRYC.js";import{a as R,b as y,c as x}from"./chunk-LTUW36HM.js";import{a as O,b as M,c as T}from"./chunk-QKCNGEX4.js";import{a as C}from"./chunk-WEBNIUEX.js";import{a as d,c as w,f as E,g as H}from"./chunk-XUCR7L4G.js";import{a as B}from"./chunk-G66WDIIV.js";import{o as S}from"./chunk-GHWEXMF6.js";import*as e from"react";import le from"classnames";import{useComposedRefs as re}from"radix-ui/internal";var pe={controlled:"open",default:"defaultOpen"},N=e.forwardRef((I,U)=>{let{className:k,presentation:V="fixed",defaultOpen:A,open:L,onOpenChange:$,expandedSize:t=200,minSize:n=100,maxSize:a=400,resizable:m=!1,collapsible:q=!0,onExpand:D,onCollapse:W,onResize:_,onResizeStart:j,onResizeEnd:F,snapPoints:s,snapTolerance:G,collapseThreshold:i,paneId:l,persistence:r,children:K,style:J,size:c,defaultSize:u,onSizeChange:Q,sizeUpdate:X,sizeUpdateMs:Y=50,inset:f,id:Z,...z}=I,{table:P,attributes:ee}=x(V,"fixed"),o=R({name:"bottom",label:"Bottom",propNames:pe,id:Z,controlled:d(L),defaultValue:d(A),presentationTable:P,builtIn:w,onChange:(se,ie)=>$?.(se!=="closed",{reason:ie}),onExpand:D,onCollapse:W,size:t});S("bottom",f),e.useEffect(()=>{(s!==void 0||i!==void 0||l!==void 0||r!==void 0)&&void 0},[s,i,l,r]);let b=e.useRef(null),oe=re(U,o.setElement,b),te=M({name:"bottom",elementId:o.id,elementRef:b,cssVarName:"--bottom-size",orientation:"horizontal",edge:"start",growth:E,expandedSize:t,minSize:n,maxSize:a,resizable:m,collapsible:q,size:c,defaultSize:u,onSizeChange:Q,sizeUpdate:X,sizeUpdateMs:Y,onResize:_,onResizeStart:j,onResizeEnd:F,snapPoints:s,snapTolerance:G,collapseThreshold:i,paneId:l,persistence:r,overlaying:o.overlaying,overlayingNow:()=>P[B()]==="overlay",requestCollapse:()=>o.setValue("closed","toggle"),requestToggle:()=>o.toggle("toggle")}),h=O(c,u,n,a),{handles:g,content:ne}=T(K,p),ae=m&&o.shown!==!1&&!o.overlaying?e.createElement(C.Provider,{value:te},g.length>0?g:e.createElement(v,null)):null;return e.createElement("div",{...H(z),id:o.id,ref:oe,className:le("kui-ShellPane","kui-ShellBottom",k),...y(o,ee),"data-inset":f||void 0,tabIndex:o.overlaying?-1:z.tabIndex,style:{...J,"--bottom-expanded-size":`${t}px`,...h?{"--bottom-size":h}:{},"--bottom-min-size":`${n}px`,"--bottom-max-size":`${a}px`}},e.createElement("div",{className:"kui-ShellBottomContent"},ne),ae)});N.displayName="Shell.Bottom";N.Handle=p;export{N as a};
|
|
3
|
+
//# sourceMappingURL=chunk-QRV32INS.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import{b,c as P}from"./chunk-OKQAVYW4.js";import{c}from"./chunk-HBWBPBSA.js";import{c as v}from"./chunk-5ON3XLRD.js";import{b as y}from"./chunk-XU74PNM2.js";import*as e from"react";import x from"classnames";var w=["1","2","3","4"],I=["raised","surface","soft","outline","ghost"],j=["none","vertical","horizontal","both"],p={size:{type:"enum",className:"kui-r-size",values:w,default:"2",responsive:!0},variant:{type:"enum",className:"kui-variant",values:I,default:"raised"},resize:{type:"enum",className:"kui-r-resize",values:j,responsive:!0},error:{type:"boolean",default:!1},errorMessage:{type:"string",default:void 0},required:{type:"boolean",default:!1},"aria-describedby":{type:"string",default:void 0},"aria-labelledby":{type:"string",default:void 0},...c,...y};var q=e.forwardRef((g,A)=>{let{className:d,style:l,...D}=v(g,p.size),{className:T,color:z,radius:N,style:u,...r}=P(D,p),a=!!r.errorMessage,o=e.useId(),{"aria-describedby":i,"aria-labelledby":f,"aria-invalid":s}=r,n=!!r.error||s===!0||s==="true",m=e.useMemo(()=>{let t=[];return r.errorMessage&&t.push(o),i&&t.push(i),t.length>0?t.join(" "):void 0},[r.errorMessage,i,o]),h=e.useMemo(()=>({"aria-invalid":n?!0:s,"aria-describedby":m,"aria-labelledby":f}),[n,s,m,f]),{error:E,errorMessage:B,required:R,"aria-describedby":C,"aria-labelledby":S,...M}=r,k=e.createElement("div",{"data-accent-color":z,"data-radius":N,className:x("kui-TextAreaRoot",T,!a&&d,{"kui-error":n}),style:a?u:b(u,l)},e.createElement("textarea",{className:"kui-reset kui-TextAreaInput",ref:A,...M,required:R||void 0,...h}));return e.createElement("div",{className:x("kui-TextAreaWrapper",a&&d),style:a?l:void 0,"data-message":a||void 0},k,a?e.createElement("div",{id:o,className:"kui-TextAreaErrorMessage",role:"alert"},r.errorMessage):null)});q.displayName="TextArea";export{q as a};
|
|
3
|
+
//# sourceMappingURL=chunk-R7YHDIFM.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/components/text-area.tsx", "../../src/components/text-area.props.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nimport classNames from 'classnames';\n\nimport { textAreaPropDefs } from './text-area.props.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { mergeStyles } from '../helpers/merge-styles.js';\nimport { useThemeSizeProps } from '../hooks/theme-size.js';\n\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { GetPropDefTypes } from '../props/prop-def.js';\n\ntype TextAreaElement = React.ElementRef<'textarea'>;\ntype TextAreaOwnProps = GetPropDefTypes<typeof textAreaPropDefs> & {\n defaultValue?: string;\n value?: string;\n};\ninterface TextAreaProps\n extends ComponentPropsWithout<'textarea', RemovedProps | 'size' | 'value'>,\n TextAreaOwnProps {}\n\nconst TextArea = React.forwardRef<TextAreaElement, TextAreaProps>((ownProps, forwardedRef) => {\n // The caller's className and style are kept apart from the size and variant classes: with an\n // error message they go on the wrapper, which is then the one box the parent lays out.\n const { className: ownClassName, style: ownStyle, ...themedProps } = useThemeSizeProps(ownProps, textAreaPropDefs.size);\n const { className, color, radius, style, ...textAreaProps } =\n extractProps(themedProps, textAreaPropDefs);\n const wrapped = Boolean(textAreaProps.errorMessage);\n\n // Generate unique IDs for accessibility\n const errorId = React.useId();\n\n const { 'aria-describedby': ariaDescribedby, 'aria-labelledby': ariaLabelledby, 'aria-invalid': ariaInvalid } = textAreaProps;\n\n // Invalid when `error` is set or the caller passes aria-invalid; the CSS keys on aria-invalid only.\n const isInvalid = Boolean(textAreaProps.error) || ariaInvalid === true || ariaInvalid === 'true';\n\n // Build aria-describedby string\n const describedBy = React.useMemo(() => {\n const parts = [];\n if (textAreaProps.errorMessage) parts.push(errorId);\n if (ariaDescribedby) parts.push(ariaDescribedby);\n return parts.length > 0 ? parts.join(' ') : undefined;\n }, [textAreaProps.errorMessage, ariaDescribedby, errorId]);\n\n // Build aria attributes\n const ariaProps = React.useMemo(\n () => ({\n 'aria-invalid': isInvalid ? true : ariaInvalid,\n 'aria-describedby': describedBy,\n 'aria-labelledby': ariaLabelledby,\n }),\n [isInvalid, ariaInvalid, describedBy, ariaLabelledby],\n );\n\n // Filter out our custom props to avoid DOM warnings\n const {\n error,\n errorMessage,\n required,\n 'aria-describedby': _ariaDescribedby,\n 'aria-labelledby': _ariaLabelledby,\n ...nativeTextAreaProps\n } = textAreaProps;\n\n const field = (\n <div\n data-accent-color={color}\n data-radius={radius}\n className={classNames('kui-TextAreaRoot', className, !wrapped && ownClassName, {\n // Not used by the library's CSS (invalid styling keys on aria-invalid); kept as a hook for app styles.\n 'kui-error': isInvalid,\n })}\n style={wrapped ? style : mergeStyles(style, ownStyle)}\n >\n <textarea\n className=\"kui-reset kui-TextAreaInput\"\n ref={forwardedRef}\n {...nativeTextAreaProps}\n required={required || undefined}\n {...ariaProps}\n />\n </div>\n );\n
|
|
5
|
-
"mappings": ";
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nimport classNames from 'classnames';\n\nimport { textAreaPropDefs } from './text-area.props.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { mergeStyles } from '../helpers/merge-styles.js';\nimport { useThemeSizeProps } from '../hooks/theme-size.js';\n\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { GetPropDefTypes } from '../props/prop-def.js';\n\ntype TextAreaElement = React.ElementRef<'textarea'>;\ntype TextAreaOwnProps = GetPropDefTypes<typeof textAreaPropDefs> & {\n defaultValue?: string;\n value?: string;\n};\ninterface TextAreaProps\n extends ComponentPropsWithout<'textarea', RemovedProps | 'size' | 'value'>,\n TextAreaOwnProps {}\n\nconst TextArea = React.forwardRef<TextAreaElement, TextAreaProps>((ownProps, forwardedRef) => {\n // The caller's className and style are kept apart from the size and variant classes: with an\n // error message they go on the wrapper, which is then the one box the parent lays out.\n const { className: ownClassName, style: ownStyle, ...themedProps } = useThemeSizeProps(ownProps, textAreaPropDefs.size);\n const { className, color, radius, style, ...textAreaProps } =\n extractProps(themedProps, textAreaPropDefs);\n const wrapped = Boolean(textAreaProps.errorMessage);\n\n // Generate unique IDs for accessibility\n const errorId = React.useId();\n\n const { 'aria-describedby': ariaDescribedby, 'aria-labelledby': ariaLabelledby, 'aria-invalid': ariaInvalid } = textAreaProps;\n\n // Invalid when `error` is set or the caller passes aria-invalid; the CSS keys on aria-invalid only.\n const isInvalid = Boolean(textAreaProps.error) || ariaInvalid === true || ariaInvalid === 'true';\n\n // Build aria-describedby string\n const describedBy = React.useMemo(() => {\n const parts = [];\n if (textAreaProps.errorMessage) parts.push(errorId);\n if (ariaDescribedby) parts.push(ariaDescribedby);\n return parts.length > 0 ? parts.join(' ') : undefined;\n }, [textAreaProps.errorMessage, ariaDescribedby, errorId]);\n\n // Build aria attributes\n const ariaProps = React.useMemo(\n () => ({\n 'aria-invalid': isInvalid ? true : ariaInvalid,\n 'aria-describedby': describedBy,\n 'aria-labelledby': ariaLabelledby,\n }),\n [isInvalid, ariaInvalid, describedBy, ariaLabelledby],\n );\n\n // Filter out our custom props to avoid DOM warnings\n const {\n error,\n errorMessage,\n required,\n 'aria-describedby': _ariaDescribedby,\n 'aria-labelledby': _ariaLabelledby,\n ...nativeTextAreaProps\n } = textAreaProps;\n\n const field = (\n <div\n data-accent-color={color}\n data-radius={radius}\n className={classNames('kui-TextAreaRoot', className, !wrapped && ownClassName, {\n // Not used by the library's CSS (invalid styling keys on aria-invalid); kept as a hook for app styles.\n 'kui-error': isInvalid,\n })}\n style={wrapped ? style : mergeStyles(style, ownStyle)}\n >\n <textarea\n className=\"kui-reset kui-TextAreaInput\"\n ref={forwardedRef}\n {...nativeTextAreaProps}\n required={required || undefined}\n {...ariaProps}\n />\n </div>\n );\n // The wrapper is always there, so a message coming or going never moves the field in the tree:\n // moving it would remount the input, dropping focus, the caret and an uncontrolled value. With\n // no message it is `display: contents` and the field is the box the parent lays out; with one\n // it holds the field and the message below it, and the caller's className and style size the pair.\n return (\n <div className={classNames('kui-TextAreaWrapper', wrapped && ownClassName)} style={wrapped ? ownStyle : undefined} data-message={wrapped || undefined}>\n {field}\n {wrapped ? (\n <div id={errorId} className=\"kui-TextAreaErrorMessage\" role=\"alert\">\n {textAreaProps.errorMessage}\n </div>\n ) : null}\n </div>\n );\n});\n\nTextArea.displayName = 'TextArea';\n\nexport { TextArea };\nexport type { TextAreaProps };\n", "import { colorPropDef } from '../props/color.prop.js';\nimport { radiusPropDef } from '../props/radius.prop.js';\n\nimport type { PropDef } from '../props/prop-def.js';\n\nconst sizes = ['1', '2', '3', '4'] as const;\nconst variants = ['raised', 'surface', 'soft', 'outline', 'ghost'] as const;\nconst resizeValues = ['none', 'vertical', 'horizontal', 'both'] as const;\n\n// prettier-ignore\nconst textAreaPropDefs = {\n size: { type: 'enum', className: 'kui-r-size', values: sizes, default: '2', responsive: true },\n variant: { type: 'enum', className: 'kui-variant', values: variants, default: 'raised' },\n resize: { type: 'enum', className: 'kui-r-resize', values: resizeValues, responsive: true },\n // Error and validation props\n error: { type: 'boolean', default: false },\n errorMessage: { type: 'string', default: undefined },\n required: { type: 'boolean', default: false },\n // Accessibility props\n 'aria-describedby': { type: 'string', default: undefined },\n 'aria-labelledby': { type: 'string', default: undefined },\n ...colorPropDef,\n ...radiusPropDef,\n} satisfies {\n size: PropDef<(typeof sizes)[number]>;\n variant: PropDef<(typeof variants)[number]>;\n resize: PropDef<(typeof resizeValues)[number]>;\n error: PropDef<boolean>;\n errorMessage: PropDef<string | undefined>;\n required: PropDef<boolean>;\n 'aria-describedby': PropDef<string | undefined>;\n 'aria-labelledby': PropDef<string | undefined>;\n};\n\nexport { textAreaPropDefs };\n"],
|
|
5
|
+
"mappings": ";6JAAA,UAAYA,MAAW,QACvB,OAAOC,MAAgB,aCIvB,IAAMC,EAAQ,CAAC,IAAK,IAAK,IAAK,GAAG,EAC3BC,EAAW,CAAC,SAAU,UAAW,OAAQ,UAAW,OAAO,EAC3DC,EAAe,CAAC,OAAQ,WAAY,aAAc,MAAM,EAGxDC,EAAmB,CACvB,KAAM,CAAE,KAAM,OAAQ,UAAW,aAAc,OAAQH,EAAO,QAAS,IAAK,WAAY,EAAK,EAC7F,QAAS,CAAE,KAAM,OAAQ,UAAW,cAAe,OAAQC,EAAU,QAAS,QAAS,EACvF,OAAQ,CAAE,KAAM,OAAQ,UAAW,eAAgB,OAAQC,EAAe,WAAY,EAAK,EAE3F,MAAO,CAAE,KAAM,UAAW,QAAS,EAAM,EACzC,aAAc,CAAE,KAAM,SAAU,QAAS,MAAU,EACnD,SAAU,CAAE,KAAM,UAAW,QAAS,EAAM,EAE5C,mBAAoB,CAAE,KAAM,SAAU,QAAS,MAAU,EACzD,kBAAmB,CAAE,KAAM,SAAU,QAAS,MAAU,EACxD,GAAGE,EACH,GAAGC,CACL,EDHA,IAAMC,EAAiB,aAA2C,CAACC,EAAUC,IAAiB,CAG5F,GAAM,CAAE,UAAWC,EAAc,MAAOC,EAAU,GAAGC,CAAY,EAAIC,EAAkBL,EAAUM,EAAiB,IAAI,EAChH,CAAE,UAAAC,EAAW,MAAAC,EAAO,OAAAC,EAAQ,MAAAC,EAAO,GAAGC,CAAc,EACxDC,EAAaR,EAAaE,CAAgB,EACtCO,EAAU,EAAQF,EAAc,aAGhCG,EAAgB,QAAM,EAEtB,CAAE,mBAAoBC,EAAiB,kBAAmBC,EAAgB,eAAgBC,CAAY,EAAIN,EAG1GO,EAAY,EAAQP,EAAc,OAAUM,IAAgB,IAAQA,IAAgB,OAGpFE,EAAoB,UAAQ,IAAM,CACtC,IAAMC,EAAQ,CAAC,EACf,OAAIT,EAAc,cAAcS,EAAM,KAAKN,CAAO,EAC9CC,GAAiBK,EAAM,KAAKL,CAAe,EACxCK,EAAM,OAAS,EAAIA,EAAM,KAAK,GAAG,EAAI,MAC9C,EAAG,CAACT,EAAc,aAAcI,EAAiBD,CAAO,CAAC,EAGnDO,EAAkB,UACtB,KAAO,CACL,eAAgBH,EAAY,GAAOD,EACnC,mBAAoBE,EACpB,kBAAmBH,CACrB,GACA,CAACE,EAAWD,EAAaE,EAAaH,CAAc,CACtD,EAGM,CACJ,MAAAM,EACA,aAAAC,EACA,SAAAC,EACA,mBAAoBC,EACpB,kBAAmBC,EACnB,GAAGC,CACL,EAAIhB,EAEEiB,EACJ,gBAAC,OACC,oBAAmBpB,EACnB,cAAaC,EACb,UAAWoB,EAAW,mBAAoBtB,EAAW,CAACM,GAAWX,EAAc,CAE7E,YAAagB,CACf,CAAC,EACD,MAAOL,EAAUH,EAAQoB,EAAYpB,EAAOP,CAAQ,GAEpD,gBAAC,YACC,UAAU,8BACV,IAAKF,EACJ,GAAG0B,EACJ,SAAUH,GAAY,OACrB,GAAGH,EACN,CACF,EAMF,OACE,gBAAC,OAAI,UAAWQ,EAAW,sBAAuBhB,GAAWX,CAAY,EAAG,MAAOW,EAAUV,EAAW,OAAW,eAAcU,GAAW,QACzIe,EACAf,EACC,gBAAC,OAAI,GAAIC,EAAS,UAAU,2BAA2B,KAAK,SACzDH,EAAc,YACjB,EACE,IACN,CAEJ,CAAC,EAEDZ,EAAS,YAAc",
|
|
6
6
|
"names": ["React", "classNames", "sizes", "variants", "resizeValues", "textAreaPropDefs", "colorPropDef", "radiusPropDef", "TextArea", "ownProps", "forwardedRef", "ownClassName", "ownStyle", "themedProps", "useThemeSizeProps", "textAreaPropDefs", "className", "color", "radius", "style", "textAreaProps", "extractProps", "wrapped", "errorId", "ariaDescribedby", "ariaLabelledby", "ariaInvalid", "isInvalid", "describedBy", "parts", "ariaProps", "error", "errorMessage", "required", "_ariaDescribedby", "_ariaLabelledby", "nativeTextAreaProps", "field", "classNames", "mergeStyles"]
|
|
7
7
|
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{c as A}from"./chunk-GKDGNPBD.js";import{c as
|
|
3
|
-
//# sourceMappingURL=chunk-
|
|
2
|
+
import{c as A}from"./chunk-GKDGNPBD.js";import{c as l}from"./chunk-5KMEUZWN.js";import{c}from"./chunk-OKQAVYW4.js";import{c as P}from"./chunk-HBWBPBSA.js";import{c as R}from"./chunk-5ON3XLRD.js";import{b as f}from"./chunk-XU74PNM2.js";import{a as n}from"./chunk-CLJ6SEGP.js";import{a as x}from"./chunk-VQPANPMI.js";var b={};x(b,{Content:()=>I,Header:()=>w,Item:()=>h,Root:()=>v,Trigger:()=>D});import*as o from"react";import a from"classnames";import{Accordion as d}from"radix-ui";var H=["1","2","3","4"],O=["raised","soft","surface","outline","ghost"],m={...n,size:{type:"enum",className:"kui-r-size",values:H,default:"2",responsive:!0},variant:{type:"enum",className:"kui-variant",values:O,default:"raised"},...P,...f},g={...n},u={...n},C={...n},y={...n};var v=o.forwardRef((e,r)=>{let t=R(e,m.size),{className:i,radius:s,color:N,...T}=c(t,m),p=T;return p.type==="single"&&p.collapsible===void 0&&(p.collapsible=!0),o.createElement(d.Root,{...p,ref:r,className:a("kui-AccordionRoot",i),"data-accent-color":N,"data-radius":s})});v.displayName="Accordion.Root";var h=o.forwardRef((e,r)=>{let{className:t,...i}=c(e,g);return o.createElement(d.Item,{...i,ref:r,className:a("kui-AccordionItem",t)})});h.displayName="Accordion.Item";var w=o.forwardRef((e,r)=>{let{className:t,...i}=c(e,u);return o.createElement(d.Header,{...i,ref:r,className:a("kui-AccordionHeader",t)})});w.displayName="Accordion.Header";var D=o.forwardRef(({children:e,...r},t)=>{let{className:i,...s}=c(r,C);return o.createElement(d.Trigger,{...s,ref:t,className:a("kui-AccordionTrigger",i)},o.createElement(l,null,e),o.createElement(A,{className:"kui-AccordionChevron","aria-hidden":!0}))});D.displayName="Accordion.Trigger";var I=o.forwardRef((e,r)=>{let{className:t,children:i,...s}=c(e,y);return o.createElement(d.Content,{...s,ref:r,className:a("kui-AccordionContent",t)},o.createElement("div",{className:"kui-AccordionContentInner"},i))});I.displayName="Accordion.Content";export{v as a,h as b,w as c,D as d,I as e,b as f};
|
|
3
|
+
//# sourceMappingURL=chunk-RP5ORPPH.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import{c as t}from"./chunk-YOZXIUZY.js";import{a as o}from"./chunk-ANQLWGFN.js";import*as e from"react";var m=e.forwardRef((r,a)=>e.createElement(o.Provider,{value:null},e.createElement(t,{...r,ref:a})));m.displayName="PortalTheme";export{m as a};
|
|
3
|
+
//# sourceMappingURL=chunk-T2DZDW5Y.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/_internal/portal-theme.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\n\nimport { Theme } from '../theme.js';\nimport { PaneBandSizeContext } from './pane-band-context.js';\n\n/**\n * The Theme at the root of a portalled surface (Popover, Dialog, Sheet, menus, Tooltip). The\n * surface renders outside any Shell pane even though context flows into it, so a Toolbar in it\n * does not take the pane's band size. A `Theme asChild` an app nests in a pane keeps the band.\n */\nconst PortalTheme = React.forwardRef<HTMLDivElement, React.ComponentPropsWithoutRef<typeof Theme>>((props, forwardedRef) => (\n <PaneBandSizeContext.Provider value={null}>\n <Theme {...props} ref={forwardedRef} />\n </PaneBandSizeContext.Provider>\n));\nPortalTheme.displayName = 'PortalTheme';\n\nexport { PortalTheme };\n"],
|
|
5
|
+
"mappings": ";gFAAA,UAAYA,MAAW,QAUvB,IAAMC,EAAoB,aAAyE,CAACC,EAAOC,IACzG,gBAACC,EAAoB,SAApB,CAA6B,MAAO,MACnC,gBAACC,EAAA,CAAO,GAAGH,EAAO,IAAKC,EAAc,CACvC,CACD,EACDF,EAAY,YAAc",
|
|
6
|
+
"names": ["React", "PortalTheme", "props", "forwardedRef", "PaneBandSizeContext", "Theme"]
|
|
7
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{a as r}from"./chunk-
|
|
3
|
-
//# sourceMappingURL=chunk-
|
|
2
|
+
import{a as r}from"./chunk-CGFLZ3DC.js";import*as e from"react";import d from"classnames";import{Toggle as g}from"radix-ui";var i=e.forwardRef(({pressed:o,onPressedChange:t,defaultPressed:s,children:a,className:l,...n},p)=>{delete n.done;let u=e.useRef(!1);return e.useEffect(()=>{},[o,t]),e.createElement(g.Root,{pressed:o,onPressedChange:t,defaultPressed:s,asChild:!0},e.createElement(r,{...n,ref:p,className:d("kui-Toggle",l)},a))});i.displayName="Toggle";export{i as a};
|
|
3
|
+
//# sourceMappingURL=chunk-UMR4AF35.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import{a as I,b as y,c as z,d as _,e as K}from"./chunk-2ACVWLFA.js";import{a as te}from"./chunk-TGRHRMQI.js";import{b as H,c as U,d as k,e as Y,f as q}from"./chunk-GKDGNPBD.js";import{a as M,b as v,c as J,d as Q,e as E,f as Z,g as ee,h as N}from"./chunk-5JYSYTHA.js";import{c as B,e as oe,g,h as O,i as ne}from"./chunk-ISCZ57VL.js";import{b as h,c as $,d as T,e as x}from"./chunk-EB4AG3OL.js";import{a as L}from"./chunk-MGWGD6KI.js";import{c as S}from"./chunk-OKQAVYW4.js";import{a as G}from"./chunk-T2DZDW5Y.js";import{b as re}from"./chunk-YOZXIUZY.js";import{c as X}from"./chunk-5ON3XLRD.js";import{a as he}from"./chunk-VQPANPMI.js";var Oe={};he(Oe,{CheckboxItem:()=>Me,Content:()=>de,Group:()=>me,Item:()=>ce,Label:()=>le,RadioGroup:()=>De,RadioItem:()=>we,Root:()=>ue,Separator:()=>be,Sub:()=>fe,SubContent:()=>Re,SubTrigger:()=>Pe,Trigger:()=>se,TriggerIcon:()=>Ie});import*as e from"react";import l from"classnames";import{DropdownMenu as s,Slot as W}from"radix-ui";import{useCallbackRef as ie}from"radix-ui/internal";var ae=e.createContext(!1),ue=o=>{let{open:n,defaultOpen:t=!1,onOpenChange:u}=o,[i,r]=e.useState(t),a=n??i,c=ie(u),p=e.useCallback(D=>{r(D),c(D)},[c]),m=e.useCallback(()=>p(!1),[p]);return e.createElement(ae.Provider,{value:a},e.createElement(oe,{value:m},e.createElement(s.Root,{...o,open:a,onOpenChange:p})))};ue.displayName="DropdownMenu.Root";var se=e.forwardRef(({children:o,...n},t)=>e.createElement(s.Trigger,{...n,ref:t,asChild:!0},te(o)));se.displayName="DropdownMenu.Trigger";var V=e.createContext({}),Te={ltr:"ArrowLeft",rtl:"ArrowRight"},xe={ltr:"ArrowRight",rtl:"ArrowLeft"};function Ee(o){return o instanceof HTMLElement&&(o.isContentEditable||o.tagName==="INPUT"||o.tagName==="TEXTAREA")}function pe(o){return o?.closest("[dir]")?.getAttribute("dir")==="rtl"?"rtl":"ltr"}var de=e.forwardRef((o,n)=>{let t=X(o,I.size),u=re(),{size:i=I.size.default}=t,{className:r,children:a,color:c,container:p,forceMount:m,submenuBehavior:D,virtualized:d=!1,onEscapeKeyDown:P,onKeyDown:R,...f}=S(t,I),b=c||u.accentColor,A=h(D,"cascade"),F=A==="drill-down",ge=e.useContext(ae),C=J(),ye=w=>{P?.(w),!(w.defaultPrevented||!F||C.getDepth()===0)&&(w.preventDefault(),C.pop("keyboard"))},Se=w=>{R?.(w),!(w.defaultPrevented||!F||C.getDepth()===0)&&(Ee(w.target)||w.key===Te[pe(w.currentTarget)]&&(w.preventDefault(),C.pop("keyboard")))},ke=e.useMemo(()=>({size:i,color:b}),[i,b]),j=e.createElement(B,{size:i},e.createElement(V.Provider,{value:ke},e.createElement(Q,{store:C,behavior:A,open:ge},a)));return e.createElement(s.Portal,{container:p,forceMount:m},e.createElement(G,{asChild:!0},e.createElement(s.Content,{"data-accent-color":b,align:"start",sideOffset:4,collisionPadding:10,...f,onEscapeKeyDown:ye,onKeyDown:Se,asChild:!1,ref:n,className:l("kui-PopperContent","kui-BaseMenuContent","kui-variant-soft","kui-DropdownMenuContent",r)},d?e.createElement("div",{className:l("kui-BaseMenuViewport","kui-DropdownMenuViewport","kui-virtualized")},j):e.createElement(L,{type:"auto",scrollbars:"vertical"},e.createElement("div",{className:l("kui-BaseMenuViewport","kui-DropdownMenuViewport")},j)))))});de.displayName="DropdownMenu.Content";var le=e.forwardRef(({className:o,id:n,...t},u)=>{let i=e.useContext(M),r=ne(n,i);return i?e.createElement(s.Label,{...t,id:r,asChild:!1,ref:u,className:l("kui-BaseMenuLabel","kui-DropdownMenuLabel",o)}):null});le.displayName="DropdownMenu.Label";var ce=e.forwardRef((o,n)=>{let{className:t,children:u,color:i=z.color.default,shortcut:r,...a}=o;return e.useContext(M)?e.createElement(s.Item,{"data-accent-color":i,"aria-keyshortcuts":r?T(r):void 0,...a,ref:n,className:l("kui-reset","kui-BaseMenuItem","kui-DropdownMenuItem",t)},e.createElement(W.Slottable,null,u),r&&e.createElement(x,{shortcut:r,className:"kui-DropdownMenuShortcut"})):null});ce.displayName="DropdownMenu.Item";var me=e.forwardRef(({className:o,"aria-labelledby":n,...t},u)=>{let[i,r]=O(n),a=e.useContext(M);return e.createElement(g,{value:r},e.createElement(s.Group,{...a?{"aria-labelledby":i}:{role:"none"},...t,asChild:!1,ref:u,className:l("kui-BaseMenuGroup","kui-DropdownMenuGroup",o)}))});me.displayName="DropdownMenu.Group";var De=e.forwardRef(({className:o,"aria-labelledby":n,...t},u)=>{let[i,r]=O(n),a=e.useContext(M);return e.createElement(g,{value:r},e.createElement(s.RadioGroup,{...a?{"aria-labelledby":i}:{role:"none"},...t,asChild:!1,ref:u,className:l("kui-BaseMenuRadioGroup","kui-DropdownMenuRadioGroup",o)}))});De.displayName="DropdownMenu.RadioGroup";var we=e.forwardRef((o,n)=>{let{children:t,className:u,color:i=K.color.default,...r}=o;return e.useContext(M)?e.createElement(s.RadioItem,{...r,asChild:!1,ref:n,"data-accent-color":i,className:l("kui-BaseMenuItem","kui-BaseMenuRadioItem","kui-DropdownMenuItem","kui-DropdownMenuRadioItem",u)},e.createElement(W.Slottable,null,t),e.createElement(s.ItemIndicator,{className:"kui-BaseMenuItemIndicator kui-DropdownMenuItemIndicator"},e.createElement(q,{className:"kui-BaseMenuItemIndicatorIcon kui-DropdownMenuItemIndicatorIcon"}))):null});we.displayName="DropdownMenu.RadioItem";var Me=e.forwardRef((o,n)=>{let{children:t,className:u,shortcut:i,color:r=_.color.default,...a}=o;return e.useContext(M)?e.createElement(s.CheckboxItem,{"aria-keyshortcuts":i?T(i):void 0,...a,asChild:!1,ref:n,"data-accent-color":r,className:l("kui-BaseMenuItem","kui-BaseMenuCheckboxItem","kui-DropdownMenuItem","kui-DropdownMenuCheckboxItem",u)},e.createElement(W.Slottable,null,t),e.createElement(s.ItemIndicator,{className:"kui-BaseMenuItemIndicator kui-DropdownMenuItemIndicator"},e.createElement(H,{className:"kui-BaseMenuItemIndicatorIcon kui-DropdownMenuItemIndicatorIcon"})),i&&e.createElement(x,{shortcut:i,className:"kui-DropdownMenuShortcut"})):null});Me.displayName="DropdownMenu.CheckboxItem";var fe=({label:o="Back",open:n,defaultOpen:t,onOpenChange:u,children:i})=>{let r=v(),a=e.useId(),c=e.useMemo(()=>({id:a,label:o}),[a,o]),p=E(r,a)!=="closed",m=ie(u),D=n!==void 0;e.useLayoutEffect(()=>{if(!(!r||!D))return r.setController(a,m),()=>r.setController(a,null)},[r,D,a,m]),e.useLayoutEffect(()=>{!r||n===void 0||(n&&!r.isOpen(a)?r.open(a,r.takePendingModality(a)):!n&&r.isOpen(a)&&r.close(a,r.takePendingModality(a)))},[r,n,a]);let d=e.useRef(n===void 0&&!!t);e.useLayoutEffect(()=>{r&&d.current?r.open(a):d.current=!1},[]);let P=e.useRef(p);return e.useEffect(()=>{if(!(!r||P.current===p)){if(P.current=p,p&&d.current){d.current=!1;return}n!==void 0&&n===p||m(p)}},[r,p,m,n]),e.createElement(ee.Provider,{value:c},e.createElement(s.Sub,{open:n,defaultOpen:t,onOpenChange:r?void 0:u},i))};fe.displayName="DropdownMenu.Sub";var Pe=e.forwardRef((o,n)=>{let{className:t,children:u,onKeyDown:i,...r}=o,a=v(),c=N(),p=e.useContext(M);if(a&&c){if(!p)return null;let m=d=>{d.preventDefault(),a.push(c.id)},D=d=>{i?.(d),!(d.defaultPrevented||r.disabled)&&d.key===xe[pe(d.currentTarget)]&&(d.preventDefault(),a.push(c.id,"keyboard"))};return e.createElement(s.Item,{...r,"data-drill-down-trigger":c.id,"data-drill-down-name":r.textValue,onSelect:m,onKeyDown:D,ref:n,className:l("kui-reset","kui-BaseMenuItem","kui-BaseMenuSubTrigger","kui-DropdownMenuItem","kui-DropdownMenuSubTrigger","kui-DropdownMenuDrillDownSubTrigger",t)},u,e.createElement("div",{className:"kui-BaseMenuShortcut kui-DropdownMenuShortcut"},e.createElement(k,{className:"kui-BaseMenuSubTriggerIcon kui-DropdownMenuSubTriggerIcon"})))}return e.createElement(s.SubTrigger,{...r,onKeyDown:i,asChild:!1,ref:n,className:l("kui-BaseMenuItem","kui-BaseMenuSubTrigger","kui-DropdownMenuItem","kui-DropdownMenuSubTrigger",t)},u,e.createElement("div",{className:"kui-BaseMenuShortcut kui-DropdownMenuShortcut"},e.createElement(k,{className:"kui-BaseMenuSubTriggerIcon kui-DropdownMenuSubTriggerIcon"})))});Pe.displayName="DropdownMenu.SubTrigger";var be=e.forwardRef(({className:o,...n},t)=>e.useContext(M)?e.createElement(s.Separator,{...n,asChild:!1,ref:t,className:l("kui-BaseMenuSeparator","kui-DropdownMenuSeparator",o)}):null);be.displayName="DropdownMenu.Separator";function Ne({label:o,name:n}){let t=v(),u=e.useCallback(a=>{a.preventDefault(),t?.pop()},[t]),i=typeof o=="string"?o:n,r=i&&i!=="Back"?`Back from ${i}`:void 0;return e.createElement(s.Item,{"aria-label":r,textValue:i||"Back",onSelect:u,className:l("kui-reset","kui-BaseMenuItem","kui-DropdownMenuItem","kui-DropdownMenuDrillDownBackItem")},e.createElement(Y,{className:"kui-BaseMenuSubTriggerIcon kui-DropdownMenuDrillDownBackIcon"}),e.createElement("span",{className:"kui-DropdownMenuDrillDownBackLabel"},o))}function Be(o){let{loop:n,onEscapeKeyDown:t,onPointerDownOutside:u,onFocusOutside:i,onInteractOutside:r,sideOffset:a,alignOffset:c,avoidCollisions:p,collisionBoundary:m,collisionPadding:D,arrowPadding:d,sticky:P,hideWhenDetached:R,updatePositionStrategy:f,...b}=o;return b}var Re=e.forwardRef((o,n)=>{let t=v(),u=N();return t&&u?e.createElement(ve,{...o,ref:n,store:t,sub:u}):e.createElement(Ce,{...o,ref:n})});Re.displayName="DropdownMenu.SubContent";var Ce=e.forwardRef((o,n)=>{let t=e.useContext(V),u=o.size??t.size,i=o.color??t.color,{className:r,children:a,container:c,forceMount:p,color:m,virtualized:D=!1,...d}=S({...o,size:u},y),P=h(u,y.size.default),R=e.useMemo(()=>({size:u,color:i}),[u,i]),f=e.createElement(B,{size:u},e.createElement(V.Provider,{value:R},a));return e.createElement(s.Portal,{container:c,forceMount:p},e.createElement(G,{asChild:!0},e.createElement(s.SubContent,{"data-accent-color":i,alignOffset:$(P),sideOffset:1,collisionPadding:10,...d,asChild:!1,ref:n,className:l("kui-PopperContent","kui-BaseMenuContent","kui-variant-soft","kui-BaseMenuSubContent","kui-DropdownMenuContent","kui-DropdownMenuSubContent",r)},D?e.createElement("div",{className:l("kui-BaseMenuViewport","kui-DropdownMenuViewport","kui-virtualized")},f):e.createElement(L,{type:"auto",scrollbars:"vertical"},e.createElement("div",{className:l("kui-BaseMenuViewport","kui-DropdownMenuViewport")},f)))))});Ce.displayName="DropdownMenu.CascadeSubContent";var ve=e.forwardRef(({store:o,sub:n,...t},u)=>{let i=E(o,n.id),r=Z(o,n.id);if(i==="closed")return null;let{className:a,children:c,container:p,forceMount:m,virtualized:D,size:d,color:P,...R}=Be(t),f=i==="top",b=r?.name||(typeof n.label=="string"?n.label:"");return e.createElement("div",{role:"group","aria-label":b||void 0,...R,ref:u,"data-drill-down-panel":n.id,"data-drill-down-active":f?!0:void 0,className:l("kui-DropdownMenuDrillDownPanel",a)},f&&e.createElement(e.Fragment,null,e.createElement(Ne,{label:n.label,name:b}),e.createElement(s.Separator,{className:"kui-BaseMenuSeparator kui-DropdownMenuSeparator"})),e.createElement(g,{value:null},e.createElement(M.Provider,{value:f},c)))});ve.displayName="DropdownMenu.DrillDownPanel";var Ie=e.forwardRef(({className:o,...n},t)=>e.createElement(U,{...n,ref:t,className:l("kui-DropdownMenuTriggerIcon",o)}));Ie.displayName="DropdownMenu.TriggerIcon";export{ue as a,se as b,de as c,le as d,ce as e,me as f,De as g,we as h,Me as i,fe as j,Pe as k,be as l,Re as m,Ie as n,Oe as o};
|
|
3
|
+
//# sourceMappingURL=chunk-VPP5IDW7.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/dropdown-menu.tsx"],
|
|
4
|
+
"sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { DropdownMenu as DropdownMenuPrimitive, Slot } from 'radix-ui';\nimport { useCallbackRef } from 'radix-ui/internal';\n\nimport { ScrollArea } from './scroll-area.js';\nimport {\n dropdownMenuContentPropDefs,\n dropdownMenuSubContentPropDefs,\n dropdownMenuItemPropDefs,\n dropdownMenuCheckboxItemPropDefs,\n dropdownMenuRadioItemPropDefs,\n} from './dropdown-menu.props.js';\nimport { useThemeContext } from './theme.js';\nimport { PortalTheme } from './_internal/portal-theme.js';\nimport { ChevronDownIcon, ThickCheckIcon, ThickChevronLeftIcon, ThickChevronRightIcon, ThickDotIcon } from './icons.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { useThemeSizeProps } from '../hooks/theme-size.js';\nimport {\n DrillDownLevelContext,\n DrillDownRoot,\n SubContext,\n useCreateDrillDownStore,\n useDrillDownStore,\n usePanelPosition,\n useStackEntry,\n useSubContext,\n} from './_internal/dropdown-menu-drill-down.js';\nimport {\n MenuCloseProvider,\n MenuGroupLabelProvider,\n MenuProvider,\n useMenuGroupLabelId,\n useMenuGroupLabelledBy,\n} from './_internal/menu-context.js';\nimport {\n MenuShortcut,\n getMenuAlignOffset,\n toAriaKeyShortcuts,\n useResolvedResponsiveValue,\n} from './_internal/base-menu.utils.js';\nimport { requireReactElement } from '../helpers/require-react-element.js';\n\nimport type { SubmenuBehavior } from './_internal/dropdown-menu-drill-down.js';\nimport type { IconProps } from './icons.js';\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { GetPropDefTypes, Responsive } from '../props/prop-def.js';\n\n/**\n * Open state of the menu, mirrored from Root so Content can reset drill-down\n * navigation when a force-mounted menu opens again.\n */\nconst DropdownMenuOpenContext = React.createContext(false);\n\ninterface DropdownMenuRootProps\n extends React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Root> {}\nconst DropdownMenuRoot: React.FC<DropdownMenuRootProps> = (props) => {\n const { open: openProp, defaultOpen = false, onOpenChange } = props;\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(defaultOpen);\n const open = openProp ?? uncontrolledOpen;\n\n const handleOpenChangeProp = useCallbackRef(onOpenChange);\n const handleOpenChange = React.useCallback(\n (next: boolean) => {\n setUncontrolledOpen(next);\n handleOpenChangeProp(next);\n },\n [handleOpenChangeProp],\n );\n\n const close = React.useCallback(() => handleOpenChange(false), [handleOpenChange]);\n\n return (\n <DropdownMenuOpenContext.Provider value={open}>\n <MenuCloseProvider value={close}>\n <DropdownMenuPrimitive.Root {...props} open={open} onOpenChange={handleOpenChange} />\n </MenuCloseProvider>\n </DropdownMenuOpenContext.Provider>\n );\n};\nDropdownMenuRoot.displayName = 'DropdownMenu.Root';\n\ntype DropdownMenuTriggerElement = React.ElementRef<typeof DropdownMenuPrimitive.Trigger>;\ninterface DropdownMenuTriggerProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.Trigger, RemovedProps> {}\nconst DropdownMenuTrigger = React.forwardRef<DropdownMenuTriggerElement, DropdownMenuTriggerProps>(\n ({ children, ...props }, forwardedRef) => (\n <DropdownMenuPrimitive.Trigger {...props} ref={forwardedRef} asChild>\n {requireReactElement(children)}\n </DropdownMenuPrimitive.Trigger>\n ),\n);\nDropdownMenuTrigger.displayName = 'DropdownMenu.Trigger';\n\n/** Visual props shared by Content and SubContent. */\ntype DropdownMenuSurfaceProps = GetPropDefTypes<typeof dropdownMenuSubContentPropDefs>;\n\ntype DropdownMenuContentContextValue = {\n size?: DropdownMenuSurfaceProps['size'];\n color?: DropdownMenuSurfaceProps['color'];\n};\nconst DropdownMenuContentContext = React.createContext<DropdownMenuContentContextValue>({});\n\n/** Keys that navigate back one drill-down level, by writing direction. */\nconst BACK_KEYS = { ltr: 'ArrowLeft', rtl: 'ArrowRight' } as const;\nconst FORWARD_KEYS = { ltr: 'ArrowRight', rtl: 'ArrowLeft' } as const;\n\nfunction isTextEntryTarget(target: EventTarget | null) {\n return (\n target instanceof HTMLElement &&\n (target.isContentEditable || target.tagName === 'INPUT' || target.tagName === 'TEXTAREA')\n );\n}\n\nfunction getDirection(element: HTMLElement | null): 'ltr' | 'rtl' {\n return element?.closest('[dir]')?.getAttribute('dir') === 'rtl' ? 'rtl' : 'ltr';\n}\n\ntype DropdownMenuContentElement = React.ElementRef<typeof DropdownMenuPrimitive.Content>;\ninterface DropdownMenuContentProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.Content, RemovedProps>,\n DropdownMenuSurfaceProps {\n container?: React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Portal>['container'];\n /**\n * Controls how submenus behave.\n * - `cascade`: Default cascading behavior where submenus open to the side (portal-based)\n * - `drill-down`: Mobile-friendly behavior where submenus replace the content inline\n * Supports responsive values: `{ initial: 'drill-down', md: 'cascade' }`\n */\n submenuBehavior?: Responsive<SubmenuBehavior>;\n /**\n * When true, skips the ScrollArea wrapper to allow VirtualMenu to handle its own scrolling.\n * Use this when rendering virtualized lists inside the dropdown.\n */\n virtualized?: boolean;\n}\nconst DropdownMenuContent = React.forwardRef<DropdownMenuContentElement, DropdownMenuContentProps>(\n (ownProps, forwardedRef) => {\n const props = useThemeSizeProps(ownProps, dropdownMenuContentPropDefs.size);\n const themeContext = useThemeContext();\n const {\n size = dropdownMenuContentPropDefs.size.default,\n } = props;\n const {\n className,\n children,\n color,\n container,\n forceMount,\n submenuBehavior,\n virtualized = false,\n onEscapeKeyDown,\n onKeyDown,\n ...contentProps\n } = extractProps(props, dropdownMenuContentPropDefs);\n\n const resolvedColor = color || themeContext.accentColor;\n const behavior = useResolvedResponsiveValue<SubmenuBehavior>(submenuBehavior, 'cascade');\n const isDrillDown = behavior === 'drill-down';\n const open = React.useContext(DropdownMenuOpenContext);\n const drillDownStore = useCreateDrillDownStore();\n\n // Escape goes back one drill-down level before it closes the menu.\n const handleEscapeKeyDown = (event: KeyboardEvent) => {\n onEscapeKeyDown?.(event);\n if (event.defaultPrevented || !isDrillDown || drillDownStore.getDepth() === 0) return;\n event.preventDefault();\n drillDownStore.pop('keyboard');\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n onKeyDown?.(event);\n if (event.defaultPrevented || !isDrillDown || drillDownStore.getDepth() === 0) return;\n if (isTextEntryTarget(event.target)) return;\n if (event.key === BACK_KEYS[getDirection(event.currentTarget)]) {\n event.preventDefault();\n drillDownStore.pop('keyboard');\n }\n };\n\n const contextValue = React.useMemo(\n () => ({ size, color: resolvedColor }),\n [size, resolvedColor],\n );\n\n const contentBody = (\n <MenuProvider size={size}>\n <DropdownMenuContentContext.Provider value={contextValue}>\n <DrillDownRoot store={drillDownStore} behavior={behavior} open={open}>\n {children}\n </DrillDownRoot>\n </DropdownMenuContentContext.Provider>\n </MenuProvider>\n );\n\n return (\n <DropdownMenuPrimitive.Portal container={container} forceMount={forceMount}>\n <PortalTheme asChild>\n <DropdownMenuPrimitive.Content\n data-accent-color={resolvedColor}\n align=\"start\"\n sideOffset={4}\n collisionPadding={10}\n {...contentProps}\n onEscapeKeyDown={handleEscapeKeyDown}\n onKeyDown={handleKeyDown}\n asChild={false}\n ref={forwardedRef}\n className={classNames(\n 'kui-PopperContent',\n 'kui-BaseMenuContent',\n 'kui-variant-soft',\n 'kui-DropdownMenuContent',\n className,\n )}\n >\n {virtualized ? (\n <div className={classNames('kui-BaseMenuViewport', 'kui-DropdownMenuViewport', 'kui-virtualized')}>\n {contentBody}\n </div>\n ) : (\n <ScrollArea type=\"auto\" scrollbars=\"vertical\">\n <div className={classNames('kui-BaseMenuViewport', 'kui-DropdownMenuViewport')}>\n {contentBody}\n </div>\n </ScrollArea>\n )}\n </DropdownMenuPrimitive.Content>\n </PortalTheme>\n </DropdownMenuPrimitive.Portal>\n );\n },\n);\nDropdownMenuContent.displayName = 'DropdownMenu.Content';\n\ntype DropdownMenuLabelElement = React.ElementRef<typeof DropdownMenuPrimitive.Label>;\ninterface DropdownMenuLabelProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.Label, RemovedProps> {}\nconst DropdownMenuLabel = React.forwardRef<DropdownMenuLabelElement, DropdownMenuLabelProps>(\n ({ className, id: idProp, ...props }, forwardedRef) => {\n const isLevelVisible = React.useContext(DrillDownLevelContext);\n const id = useMenuGroupLabelId(idProp, isLevelVisible);\n if (!isLevelVisible) return null;\n return (\n <DropdownMenuPrimitive.Label\n {...props}\n id={id}\n asChild={false}\n ref={forwardedRef}\n className={classNames('kui-BaseMenuLabel', 'kui-DropdownMenuLabel', className)}\n />\n );\n },\n);\nDropdownMenuLabel.displayName = 'DropdownMenu.Label';\n\ntype DropdownMenuItemElement = React.ElementRef<typeof DropdownMenuPrimitive.Item>;\ntype DropdownMenuItemOwnProps = GetPropDefTypes<typeof dropdownMenuItemPropDefs>;\ninterface DropdownMenuItemProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.Item, RemovedProps>,\n DropdownMenuItemOwnProps {}\nconst DropdownMenuItem = React.forwardRef<DropdownMenuItemElement, DropdownMenuItemProps>(\n (props, forwardedRef) => {\n const {\n className,\n children,\n color = dropdownMenuItemPropDefs.color.default,\n shortcut,\n ...itemProps\n } = props;\n // In drill-down mode, items of levels that are not on screen do not mount.\n if (!React.useContext(DrillDownLevelContext)) return null;\n return (\n <DropdownMenuPrimitive.Item\n data-accent-color={color}\n aria-keyshortcuts={shortcut ? toAriaKeyShortcuts(shortcut) : undefined}\n {...itemProps}\n ref={forwardedRef}\n className={classNames('kui-reset', 'kui-BaseMenuItem', 'kui-DropdownMenuItem', className)}\n >\n <Slot.Slottable>{children}</Slot.Slottable>\n {shortcut && <MenuShortcut shortcut={shortcut} className=\"kui-DropdownMenuShortcut\" />}\n </DropdownMenuPrimitive.Item>\n );\n },\n);\nDropdownMenuItem.displayName = 'DropdownMenu.Item';\n\ntype DropdownMenuGroupElement = React.ElementRef<typeof DropdownMenuPrimitive.Group>;\ninterface DropdownMenuGroupProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.Group, RemovedProps> {}\nconst DropdownMenuGroup = React.forwardRef<DropdownMenuGroupElement, DropdownMenuGroupProps>(\n ({ className, 'aria-labelledby': ariaLabelledBy, ...props }, forwardedRef) => {\n const [labelledBy, setLabelId] = useMenuGroupLabelledBy(ariaLabelledBy);\n // A drill-down level that is not on screen keeps its groups only to hold the open path.\n const isLevelVisible = React.useContext(DrillDownLevelContext);\n return (\n <MenuGroupLabelProvider value={setLabelId}>\n <DropdownMenuPrimitive.Group\n {...(isLevelVisible ? { 'aria-labelledby': labelledBy } : { role: 'none' })}\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('kui-BaseMenuGroup', 'kui-DropdownMenuGroup', className)}\n />\n </MenuGroupLabelProvider>\n );\n },\n);\nDropdownMenuGroup.displayName = 'DropdownMenu.Group';\n\ntype DropdownMenuRadioGroupElement = React.ElementRef<typeof DropdownMenuPrimitive.RadioGroup>;\ninterface DropdownMenuRadioGroupProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.RadioGroup, RemovedProps> {}\nconst DropdownMenuRadioGroup = React.forwardRef<\n DropdownMenuRadioGroupElement,\n DropdownMenuRadioGroupProps\n>(({ className, 'aria-labelledby': ariaLabelledBy, ...props }, forwardedRef) => {\n const [labelledBy, setLabelId] = useMenuGroupLabelledBy(ariaLabelledBy);\n const isLevelVisible = React.useContext(DrillDownLevelContext);\n return (\n <MenuGroupLabelProvider value={setLabelId}>\n <DropdownMenuPrimitive.RadioGroup\n {...(isLevelVisible ? { 'aria-labelledby': labelledBy } : { role: 'none' })}\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('kui-BaseMenuRadioGroup', 'kui-DropdownMenuRadioGroup', className)}\n />\n </MenuGroupLabelProvider>\n );\n});\nDropdownMenuRadioGroup.displayName = 'DropdownMenu.RadioGroup';\n\ntype DropdownMenuRadioItemElement = React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>;\ntype DropdownMenuRadioItemOwnProps = GetPropDefTypes<typeof dropdownMenuRadioItemPropDefs>;\ninterface DropdownMenuRadioItemProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.RadioItem, RemovedProps>,\n DropdownMenuRadioItemOwnProps {}\nconst DropdownMenuRadioItem = React.forwardRef<\n DropdownMenuRadioItemElement,\n DropdownMenuRadioItemProps\n>((props, forwardedRef) => {\n const {\n children,\n className,\n color = dropdownMenuRadioItemPropDefs.color.default,\n ...itemProps\n } = props;\n if (!React.useContext(DrillDownLevelContext)) return null;\n return (\n <DropdownMenuPrimitive.RadioItem\n {...itemProps}\n asChild={false}\n ref={forwardedRef}\n data-accent-color={color}\n className={classNames(\n 'kui-BaseMenuItem',\n 'kui-BaseMenuRadioItem',\n 'kui-DropdownMenuItem',\n 'kui-DropdownMenuRadioItem',\n className,\n )}\n >\n <Slot.Slottable>{children}</Slot.Slottable>\n <DropdownMenuPrimitive.ItemIndicator className=\"kui-BaseMenuItemIndicator kui-DropdownMenuItemIndicator\">\n <ThickDotIcon className=\"kui-BaseMenuItemIndicatorIcon kui-DropdownMenuItemIndicatorIcon\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </DropdownMenuPrimitive.RadioItem>\n );\n});\nDropdownMenuRadioItem.displayName = 'DropdownMenu.RadioItem';\n\ntype DropdownMenuCheckboxItemElement = React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>;\ntype DropdownMenuCheckboxItemOwnProps = GetPropDefTypes<typeof dropdownMenuCheckboxItemPropDefs>;\ninterface DropdownMenuCheckboxItemProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.CheckboxItem, RemovedProps>,\n DropdownMenuCheckboxItemOwnProps {}\nconst DropdownMenuCheckboxItem = React.forwardRef<\n DropdownMenuCheckboxItemElement,\n DropdownMenuCheckboxItemProps\n>((props, forwardedRef) => {\n const {\n children,\n className,\n shortcut,\n color = dropdownMenuCheckboxItemPropDefs.color.default,\n ...itemProps\n } = props;\n if (!React.useContext(DrillDownLevelContext)) return null;\n return (\n <DropdownMenuPrimitive.CheckboxItem\n aria-keyshortcuts={shortcut ? toAriaKeyShortcuts(shortcut) : undefined}\n {...itemProps}\n asChild={false}\n ref={forwardedRef}\n data-accent-color={color}\n className={classNames(\n 'kui-BaseMenuItem',\n 'kui-BaseMenuCheckboxItem',\n 'kui-DropdownMenuItem',\n 'kui-DropdownMenuCheckboxItem',\n className,\n )}\n >\n <Slot.Slottable>{children}</Slot.Slottable>\n <DropdownMenuPrimitive.ItemIndicator className=\"kui-BaseMenuItemIndicator kui-DropdownMenuItemIndicator\">\n <ThickCheckIcon className=\"kui-BaseMenuItemIndicatorIcon kui-DropdownMenuItemIndicatorIcon\" />\n </DropdownMenuPrimitive.ItemIndicator>\n {shortcut && <MenuShortcut shortcut={shortcut} className=\"kui-DropdownMenuShortcut\" />}\n </DropdownMenuPrimitive.CheckboxItem>\n );\n});\nDropdownMenuCheckboxItem.displayName = 'DropdownMenu.CheckboxItem';\n\ninterface DropdownMenuSubProps\n extends React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Sub> {\n /**\n * Label displayed in the back button when using drill-down mode.\n * If not provided, defaults to \"Back\".\n */\n label?: React.ReactNode;\n}\nconst DropdownMenuSub: React.FC<DropdownMenuSubProps> = ({\n label = 'Back',\n open,\n defaultOpen,\n onOpenChange,\n children,\n}) => {\n const drillDownStore = useDrillDownStore();\n const id = React.useId();\n const subContextValue = React.useMemo(() => ({ id, label }), [id, label]);\n const isOpenInDrillDown = usePanelPosition(drillDownStore, id) !== 'closed';\n\n const handleOpenChange = useCallbackRef(onOpenChange);\n const isControlled = open !== undefined;\n\n // Drill-down, controlled: navigating asks `onOpenChange` and leaves the stack to `open`.\n React.useLayoutEffect(() => {\n if (!drillDownStore || !isControlled) return;\n drillDownStore.setController(id, handleOpenChange);\n return () => drillDownStore.setController(id, null);\n }, [drillDownStore, isControlled, id, handleOpenChange]);\n\n React.useLayoutEffect(() => {\n if (!drillDownStore || open === undefined) return;\n if (open && !drillDownStore.isOpen(id)) drillDownStore.open(id, drillDownStore.takePendingModality(id));\n else if (!open && drillDownStore.isOpen(id)) drillDownStore.close(id, drillDownStore.takePendingModality(id));\n }, [drillDownStore, open, id]);\n\n // A `defaultOpen` push on mount is the starting state, not a change to report.\n const defaultOpenRef = React.useRef(open === undefined && Boolean(defaultOpen));\n React.useLayoutEffect(() => {\n if (drillDownStore && defaultOpenRef.current) drillDownStore.open(id);\n else defaultOpenRef.current = false;\n // Only on mount, like an uncontrolled default.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // Uncontrolled, the stack drives `onOpenChange`. Controlled, it reports only a close\n // the `open` prop did not ask for, such as a parent level closing.\n const wasOpenRef = React.useRef(isOpenInDrillDown);\n React.useEffect(() => {\n if (!drillDownStore || wasOpenRef.current === isOpenInDrillDown) return;\n wasOpenRef.current = isOpenInDrillDown;\n if (isOpenInDrillDown && defaultOpenRef.current) {\n defaultOpenRef.current = false;\n return;\n }\n if (open !== undefined && open === isOpenInDrillDown) return;\n handleOpenChange(isOpenInDrillDown);\n }, [drillDownStore, isOpenInDrillDown, handleOpenChange, open]);\n\n // Radix Sub stays mounted in both behaviors so switching behavior does not\n // remount the subtree. It only renders context; in drill-down its trigger\n // and content are never rendered, so it reports no open changes of its own.\n return (\n <SubContext.Provider value={subContextValue}>\n <DropdownMenuPrimitive.Sub\n open={open}\n defaultOpen={defaultOpen}\n onOpenChange={drillDownStore ? undefined : onOpenChange}\n >\n {children}\n </DropdownMenuPrimitive.Sub>\n </SubContext.Provider>\n );\n};\nDropdownMenuSub.displayName = 'DropdownMenu.Sub';\n\ntype DropdownMenuSubTriggerElement = React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>;\ninterface DropdownMenuSubTriggerProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.SubTrigger, RemovedProps> {}\nconst DropdownMenuSubTrigger = React.forwardRef<\n DropdownMenuSubTriggerElement,\n DropdownMenuSubTriggerProps\n>((props, forwardedRef) => {\n const { className, children, onKeyDown, ...subTriggerProps } = props;\n const drillDownStore = useDrillDownStore();\n const subContext = useSubContext();\n const isLevelVisible = React.useContext(DrillDownLevelContext);\n\n if (drillDownStore && subContext) {\n if (!isLevelVisible) return null;\n\n const handleSelect = (event: Event) => {\n // Navigating does not close the menu.\n event.preventDefault();\n drillDownStore.push(subContext.id);\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n onKeyDown?.(event);\n if (event.defaultPrevented || subTriggerProps.disabled) return;\n if (event.key === FORWARD_KEYS[getDirection(event.currentTarget)]) {\n event.preventDefault();\n drillDownStore.push(subContext.id, 'keyboard');\n }\n };\n\n return (\n // The row navigates within the same menu, so it announces no popup.\n <DropdownMenuPrimitive.Item\n {...subTriggerProps}\n data-drill-down-trigger={subContext.id}\n data-drill-down-name={subTriggerProps.textValue}\n onSelect={handleSelect}\n onKeyDown={handleKeyDown}\n ref={forwardedRef}\n className={classNames(\n 'kui-reset',\n 'kui-BaseMenuItem',\n 'kui-BaseMenuSubTrigger',\n 'kui-DropdownMenuItem',\n 'kui-DropdownMenuSubTrigger',\n 'kui-DropdownMenuDrillDownSubTrigger',\n className,\n )}\n >\n {children}\n <div className=\"kui-BaseMenuShortcut kui-DropdownMenuShortcut\">\n <ThickChevronRightIcon className=\"kui-BaseMenuSubTriggerIcon kui-DropdownMenuSubTriggerIcon\" />\n </div>\n </DropdownMenuPrimitive.Item>\n );\n }\n\n return (\n <DropdownMenuPrimitive.SubTrigger\n {...subTriggerProps}\n onKeyDown={onKeyDown}\n asChild={false}\n ref={forwardedRef}\n className={classNames(\n 'kui-BaseMenuItem',\n 'kui-BaseMenuSubTrigger',\n 'kui-DropdownMenuItem',\n 'kui-DropdownMenuSubTrigger',\n className,\n )}\n >\n {children}\n <div className=\"kui-BaseMenuShortcut kui-DropdownMenuShortcut\">\n <ThickChevronRightIcon className=\"kui-BaseMenuSubTriggerIcon kui-DropdownMenuSubTriggerIcon\" />\n </div>\n </DropdownMenuPrimitive.SubTrigger>\n );\n});\nDropdownMenuSubTrigger.displayName = 'DropdownMenu.SubTrigger';\n\ntype DropdownMenuSeparatorElement = React.ElementRef<typeof DropdownMenuPrimitive.Separator>;\ninterface DropdownMenuSeparatorProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.Separator, RemovedProps> {}\nconst DropdownMenuSeparator = React.forwardRef<\n DropdownMenuSeparatorElement,\n DropdownMenuSeparatorProps\n>(({ className, ...props }, forwardedRef) => {\n if (!React.useContext(DrillDownLevelContext)) return null;\n return (\n <DropdownMenuPrimitive.Separator\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('kui-BaseMenuSeparator', 'kui-DropdownMenuSeparator', className)}\n />\n );\n});\nDropdownMenuSeparator.displayName = 'DropdownMenu.Separator';\n\n/** The row at the top of a drill-down panel that returns to the parent level. */\nfunction DrillDownBackItem({ label, name }: { label: React.ReactNode; name: string }) {\n const drillDownStore = useDrillDownStore();\n\n const handleSelect = React.useCallback(\n (event: Event) => {\n // Navigating does not close the menu.\n event.preventDefault();\n drillDownStore?.pop();\n },\n [drillDownStore],\n );\n\n // The visible label is often the submenu title, so the accessible name says\n // what the row does while still containing the visible text.\n const labelText = typeof label === 'string' ? label : name;\n const ariaLabel = labelText && labelText !== 'Back' ? `Back from ${labelText}` : undefined;\n\n return (\n <DropdownMenuPrimitive.Item\n aria-label={ariaLabel}\n textValue={labelText || 'Back'}\n onSelect={handleSelect}\n className={classNames(\n 'kui-reset',\n 'kui-BaseMenuItem',\n 'kui-DropdownMenuItem',\n 'kui-DropdownMenuDrillDownBackItem',\n )}\n >\n <ThickChevronLeftIcon className=\"kui-BaseMenuSubTriggerIcon kui-DropdownMenuDrillDownBackIcon\" />\n <span className=\"kui-DropdownMenuDrillDownBackLabel\">{label}</span>\n </DropdownMenuPrimitive.Item>\n );\n}\n\n/** Radix positioning and layer props that have no meaning for an inline drill-down panel. */\ntype PopperOnlyProps =\n | 'loop'\n | 'onEscapeKeyDown'\n | 'onPointerDownOutside'\n | 'onFocusOutside'\n | 'onInteractOutside'\n | 'sideOffset'\n | 'alignOffset'\n | 'avoidCollisions'\n | 'collisionBoundary'\n | 'collisionPadding'\n | 'arrowPadding'\n | 'sticky'\n | 'hideWhenDetached'\n | 'updatePositionStrategy';\n\nfunction omitPopperProps<T extends Record<string, unknown>>(props: T): Omit<T, PopperOnlyProps> {\n const {\n loop: _loop,\n onEscapeKeyDown: _onEscapeKeyDown,\n onPointerDownOutside: _onPointerDownOutside,\n onFocusOutside: _onFocusOutside,\n onInteractOutside: _onInteractOutside,\n sideOffset: _sideOffset,\n alignOffset: _alignOffset,\n avoidCollisions: _avoidCollisions,\n collisionBoundary: _collisionBoundary,\n collisionPadding: _collisionPadding,\n arrowPadding: _arrowPadding,\n sticky: _sticky,\n hideWhenDetached: _hideWhenDetached,\n updatePositionStrategy: _updatePositionStrategy,\n ...rest\n } = props;\n return rest;\n}\n\ntype DropdownMenuSubContentElement = React.ElementRef<typeof DropdownMenuPrimitive.SubContent>;\ninterface DropdownMenuSubContentProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.SubContent, RemovedProps>,\n DropdownMenuSurfaceProps {\n container?: React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Portal>['container'];\n /**\n * When true, skips the ScrollArea wrapper so a VirtualMenu can handle its own\n * scrolling. Applies to cascade submenus; a drill-down panel scrolls with the\n * root content.\n */\n virtualized?: boolean;\n}\nconst DropdownMenuSubContent = React.forwardRef<\n DropdownMenuSubContentElement,\n DropdownMenuSubContentProps\n>((props, forwardedRef) => {\n const drillDownStore = useDrillDownStore();\n const subContext = useSubContext();\n\n if (drillDownStore && subContext) {\n return (\n <DrillDownPanel {...props} ref={forwardedRef} store={drillDownStore} sub={subContext} />\n );\n }\n return <CascadeSubContent {...props} ref={forwardedRef} />;\n});\nDropdownMenuSubContent.displayName = 'DropdownMenu.SubContent';\n\nconst CascadeSubContent = React.forwardRef<DropdownMenuSubContentElement, DropdownMenuSubContentProps>(\n (props, forwardedRef) => {\n const parent = React.useContext(DropdownMenuContentContext);\n\n // A submenu inherits the parent surface, and its own props win.\n const size = props.size ?? parent.size;\n const color = props.color ?? parent.color;\n\n const {\n className,\n children,\n container,\n forceMount,\n color: _color,\n virtualized = false,\n ...subContentProps\n } = extractProps({ ...props, size }, dropdownMenuSubContentPropDefs);\n\n const scalarSize = useResolvedResponsiveValue(size, dropdownMenuSubContentPropDefs.size.default);\n\n const contextValue = React.useMemo(\n () => ({ size, color }),\n [size, color],\n );\n\n const body = (\n <MenuProvider size={size}>\n <DropdownMenuContentContext.Provider value={contextValue}>{children}</DropdownMenuContentContext.Provider>\n </MenuProvider>\n );\n\n return (\n <DropdownMenuPrimitive.Portal container={container} forceMount={forceMount}>\n <PortalTheme asChild>\n <DropdownMenuPrimitive.SubContent\n data-accent-color={color}\n alignOffset={getMenuAlignOffset(scalarSize)}\n // Side offset accounts for the outer solid box-shadow\n sideOffset={1}\n collisionPadding={10}\n {...subContentProps}\n asChild={false}\n ref={forwardedRef}\n className={classNames(\n 'kui-PopperContent',\n 'kui-BaseMenuContent',\n 'kui-variant-soft',\n 'kui-BaseMenuSubContent',\n 'kui-DropdownMenuContent',\n 'kui-DropdownMenuSubContent',\n className,\n )}\n >\n {virtualized ? (\n <div className={classNames('kui-BaseMenuViewport', 'kui-DropdownMenuViewport', 'kui-virtualized')}>\n {body}\n </div>\n ) : (\n <ScrollArea type=\"auto\" scrollbars=\"vertical\">\n <div className={classNames('kui-BaseMenuViewport', 'kui-DropdownMenuViewport')}>{body}</div>\n </ScrollArea>\n )}\n </DropdownMenuPrimitive.SubContent>\n </PortalTheme>\n </DropdownMenuPrimitive.Portal>\n );\n },\n);\nCascadeSubContent.displayName = 'DropdownMenu.CascadeSubContent';\n\ninterface DrillDownPanelProps extends DropdownMenuSubContentProps {\n store: NonNullable<ReturnType<typeof useDrillDownStore>>;\n sub: NonNullable<ReturnType<typeof useSubContext>>;\n}\n\n/**\n * A submenu rendered inline in drill-down mode. It mounts its children only\n * while it is on the navigation stack, and shows its own items only while it\n * is the top level; deeper panels inside it stay mounted.\n */\nconst DrillDownPanel = React.forwardRef<DropdownMenuSubContentElement, DrillDownPanelProps>(\n ({ store, sub, ...props }, forwardedRef) => {\n const position = usePanelPosition(store, sub.id);\n const entry = useStackEntry(store, sub.id);\n\n if (position === 'closed') return null;\n\n const {\n className,\n children,\n container: _container,\n forceMount: _forceMount,\n virtualized: _virtualized,\n size: _size,\n color: _color,\n ...panelProps\n } = omitPopperProps(props);\n\n const isTop = position === 'top';\n const name = entry?.name || (typeof sub.label === 'string' ? sub.label : '');\n\n return (\n <div\n role=\"group\"\n aria-label={name || undefined}\n {...panelProps}\n ref={forwardedRef}\n data-drill-down-panel={sub.id}\n data-drill-down-active={isTop ? true : undefined}\n className={classNames('kui-DropdownMenuDrillDownPanel', className)}\n >\n {isTop && (\n <>\n <DrillDownBackItem label={sub.label} name={name} />\n <DropdownMenuPrimitive.Separator className=\"kui-BaseMenuSeparator kui-DropdownMenuSeparator\" />\n </>\n )}\n <MenuGroupLabelProvider value={null}>\n <DrillDownLevelContext.Provider value={isTop}>{children}</DrillDownLevelContext.Provider>\n </MenuGroupLabelProvider>\n </div>\n );\n },\n);\nDrillDownPanel.displayName = 'DropdownMenu.DrillDownPanel';\n\ntype DropdownMenuTriggerIconElement = React.ElementRef<'svg'>;\ninterface DropdownMenuTriggerIconProps extends IconProps {}\nconst DropdownMenuTriggerIcon = React.forwardRef<\n DropdownMenuTriggerIconElement,\n DropdownMenuTriggerIconProps\n>(({ className, ...props }, forwardedRef) => (\n <ChevronDownIcon\n {...props}\n ref={forwardedRef}\n className={classNames('kui-DropdownMenuTriggerIcon', className)}\n />\n));\nDropdownMenuTriggerIcon.displayName = 'DropdownMenu.TriggerIcon';\n\nexport {\n DropdownMenuRoot as Root,\n DropdownMenuTrigger as Trigger,\n DropdownMenuTriggerIcon as TriggerIcon,\n DropdownMenuContent as Content,\n DropdownMenuLabel as Label,\n DropdownMenuItem as Item,\n DropdownMenuGroup as Group,\n DropdownMenuRadioGroup as RadioGroup,\n DropdownMenuRadioItem as RadioItem,\n DropdownMenuCheckboxItem as CheckboxItem,\n DropdownMenuSub as Sub,\n DropdownMenuSubTrigger as SubTrigger,\n DropdownMenuSubContent as SubContent,\n DropdownMenuSeparator as Separator,\n};\n\nexport type {\n DropdownMenuRootProps as RootProps,\n DropdownMenuTriggerProps as TriggerProps,\n DropdownMenuTriggerIconProps as TriggerIconProps,\n DropdownMenuContentProps as ContentProps,\n DropdownMenuLabelProps as LabelProps,\n DropdownMenuItemProps as ItemProps,\n DropdownMenuGroupProps as GroupProps,\n DropdownMenuRadioGroupProps as RadioGroupProps,\n DropdownMenuRadioItemProps as RadioItemProps,\n DropdownMenuCheckboxItemProps as CheckboxItemProps,\n DropdownMenuSubProps as SubProps,\n DropdownMenuSubTriggerProps as SubTriggerProps,\n DropdownMenuSubContentProps as SubContentProps,\n DropdownMenuSeparatorProps as SeparatorProps,\n SubmenuBehavior,\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["dropdown_menu_exports", "__export", "DropdownMenuCheckboxItem", "DropdownMenuContent", "DropdownMenuGroup", "DropdownMenuItem", "DropdownMenuLabel", "DropdownMenuRadioGroup", "DropdownMenuRadioItem", "DropdownMenuRoot", "DropdownMenuSeparator", "DropdownMenuSub", "DropdownMenuSubContent", "DropdownMenuSubTrigger", "DropdownMenuTrigger", "DropdownMenuTriggerIcon", "React", "classNames", "DropdownMenuPrimitive", "Slot", "useCallbackRef", "DropdownMenuOpenContext", "DropdownMenuRoot", "props", "openProp", "defaultOpen", "onOpenChange", "uncontrolledOpen", "setUncontrolledOpen", "open", "handleOpenChangeProp", "useCallbackRef", "handleOpenChange", "next", "close", "MenuCloseProvider", "DropdownMenuPrimitive", "DropdownMenuTrigger", "children", "forwardedRef", "requireReactElement", "DropdownMenuContentContext", "BACK_KEYS", "FORWARD_KEYS", "isTextEntryTarget", "target", "getDirection", "element", "DropdownMenuContent", "ownProps", "useThemeSizeProps", "baseMenuContentPropDefs", "themeContext", "useThemeContext", "size", "className", "color", "container", "forceMount", "submenuBehavior", "virtualized", "onEscapeKeyDown", "onKeyDown", "contentProps", "extractProps", "resolvedColor", "behavior", "useResolvedResponsiveValue", "isDrillDown", "drillDownStore", "useCreateDrillDownStore", "handleEscapeKeyDown", "event", "handleKeyDown", "contextValue", "contentBody", "MenuProvider", "DrillDownRoot", "PortalTheme", "classNames", "ScrollArea", "DropdownMenuLabel", "idProp", "isLevelVisible", "DrillDownLevelContext", "id", "useMenuGroupLabelId", "DropdownMenuItem", "baseMenuItemPropDefs", "shortcut", "itemProps", "toAriaKeyShortcuts", "Slot", "MenuShortcut", "DropdownMenuGroup", "ariaLabelledBy", "labelledBy", "setLabelId", "useMenuGroupLabelledBy", "MenuGroupLabelProvider", "DropdownMenuRadioGroup", "DropdownMenuRadioItem", "baseMenuRadioItemPropDefs", "ThickDotIcon", "DropdownMenuCheckboxItem", "baseMenuCheckboxItemPropDefs", "ThickCheckIcon", "DropdownMenuSub", "label", "useDrillDownStore", "subContextValue", "isOpenInDrillDown", "usePanelPosition", "isControlled", "defaultOpenRef", "wasOpenRef", "SubContext", "DropdownMenuSubTrigger", "subTriggerProps", "subContext", "useSubContext", "handleSelect", "ThickChevronRightIcon", "DropdownMenuSeparator", "DrillDownBackItem", "name", "labelText", "ariaLabel", "ThickChevronLeftIcon", "omitPopperProps", "_loop", "_onEscapeKeyDown", "_onPointerDownOutside", "_onFocusOutside", "_onInteractOutside", "_sideOffset", "_alignOffset", "_avoidCollisions", "_collisionBoundary", "_collisionPadding", "_arrowPadding", "_sticky", "_hideWhenDetached", "_updatePositionStrategy", "rest", "DropdownMenuSubContent", "DrillDownPanel", "CascadeSubContent", "parent", "_color", "subContentProps", "baseMenuSubContentPropDefs", "scalarSize", "body", "getMenuAlignOffset", "store", "sub", "position", "entry", "useStackEntry", "_container", "_forceMount", "_virtualized", "_size", "panelProps", "isTop", "DropdownMenuTriggerIcon", "ChevronDownIcon"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import{b as C,c as T,d as N,e as G}from"./chunk-2ACVWLFA.js";import{a as F}from"./chunk-TGRHRMQI.js";import{b as z,d as L,f as O}from"./chunk-GKDGNPBD.js";import{c as h,e as V,g as S,h as k,i as A}from"./chunk-ISCZ57VL.js";import{b,c as R,d as I,e as v}from"./chunk-EB4AG3OL.js";import{a as y}from"./chunk-MGWGD6KI.js";import{c as f}from"./chunk-OKQAVYW4.js";import{a as g}from"./chunk-T2DZDW5Y.js";import{b as j}from"./chunk-YOZXIUZY.js";import{c as W}from"./chunk-5ON3XLRD.js";import{a as ne}from"./chunk-VQPANPMI.js";var ae={};ne(ae,{CheckboxItem:()=>Y,Content:()=>K,Group:()=>J,Item:()=>H,Label:()=>U,RadioGroup:()=>Q,RadioItem:()=>X,Root:()=>_,Separator:()=>te,Sub:()=>Z,SubContent:()=>ee,SubTrigger:()=>$,Trigger:()=>q});import*as e from"react";import s from"classnames";import{ContextMenu as i,Slot as B}from"radix-ui";import{useCallbackRef as re}from"radix-ui/internal";var _=t=>{let{open:r,onOpenChange:n}=t,[a,o]=e.useState(!1),u=r??a,p=re(n),c=e.useCallback(l=>{o(l),p(l)},[p]),m=e.useCallback(()=>c(!1),[c]);return e.createElement(V,{value:m},e.createElement(i.Root,{...t,open:u,onOpenChange:c}))};_.displayName="ContextMenu.Root";var q=e.forwardRef(({children:t,...r},n)=>e.createElement(i.Trigger,{...r,ref:n,asChild:!0},F(t)));q.displayName="ContextMenu.Trigger";var E=e.createContext({}),K=e.forwardRef((t,r)=>{let n=W(t,C.size),a=j(),{size:o=C.size.default}=n,{className:u,children:p,color:c,container:m,forceMount:l,submenuBehavior:w,virtualized:d=!1,...P}=f(n,C),x=c||a.accentColor,M=b(o,C.size.default),oe=e.useMemo(()=>({size:o,color:x}),[o,x]),D=e.createElement(h,{size:o},e.createElement(E.Provider,{value:oe},p));return e.createElement(i.Portal,{container:m,forceMount:l},e.createElement(g,{asChild:!0},e.createElement(i.Content,{"data-accent-color":x,alignOffset:R(M),collisionPadding:10,...P,asChild:!1,ref:r,className:s("kui-PopperContent","kui-BaseMenuContent","kui-variant-soft","kui-ContextMenuContent",u)},d?e.createElement("div",{className:s("kui-BaseMenuViewport","kui-ContextMenuViewport","kui-virtualized")},D):e.createElement(y,{type:"auto",scrollbars:"vertical"},e.createElement("div",{className:s("kui-BaseMenuViewport","kui-ContextMenuViewport")},D)))))});K.displayName="ContextMenu.Content";var U=e.forwardRef(({className:t,id:r,...n},a)=>{let o=A(r);return e.createElement(i.Label,{...n,id:o,asChild:!1,ref:a,className:s("kui-BaseMenuLabel","kui-ContextMenuLabel",t)})});U.displayName="ContextMenu.Label";var H=e.forwardRef((t,r)=>{let{className:n,children:a,color:o=T.color.default,shortcut:u,...p}=t;return e.createElement(i.Item,{"data-accent-color":o,"aria-keyshortcuts":u?I(u):void 0,...p,ref:r,className:s("kui-reset","kui-BaseMenuItem","kui-ContextMenuItem",n)},e.createElement(B.Slottable,null,a),u&&e.createElement(v,{shortcut:u,className:"kui-ContextMenuShortcut"}))});H.displayName="ContextMenu.Item";var J=e.forwardRef(({className:t,"aria-labelledby":r,...n},a)=>{let[o,u]=k(r);return e.createElement(S,{value:u},e.createElement(i.Group,{"aria-labelledby":o,...n,asChild:!1,ref:a,className:s("kui-BaseMenuGroup","kui-ContextMenuGroup",t)}))});J.displayName="ContextMenu.Group";var Q=e.forwardRef(({className:t,"aria-labelledby":r,...n},a)=>{let[o,u]=k(r);return e.createElement(S,{value:u},e.createElement(i.RadioGroup,{"aria-labelledby":o,...n,asChild:!1,ref:a,className:s("kui-BaseMenuRadioGroup","kui-ContextMenuRadioGroup",t)}))});Q.displayName="ContextMenu.RadioGroup";var X=e.forwardRef((t,r)=>{let{children:n,className:a,color:o=G.color.default,...u}=t;return e.createElement(i.RadioItem,{...u,asChild:!1,ref:r,"data-accent-color":o,className:s("kui-BaseMenuItem","kui-BaseMenuRadioItem","kui-ContextMenuItem","kui-ContextMenuRadioItem",a)},e.createElement(B.Slottable,null,n),e.createElement(i.ItemIndicator,{className:"kui-BaseMenuItemIndicator kui-ContextMenuItemIndicator"},e.createElement(O,{className:"kui-BaseMenuItemIndicatorIcon kui-ContextMenuItemIndicatorIcon"})))});X.displayName="ContextMenu.RadioItem";var Y=e.forwardRef((t,r)=>{let{children:n,className:a,shortcut:o,color:u=N.color.default,...p}=t;return e.createElement(i.CheckboxItem,{"aria-keyshortcuts":o?I(o):void 0,...p,asChild:!1,ref:r,"data-accent-color":u,className:s("kui-BaseMenuItem","kui-BaseMenuCheckboxItem","kui-ContextMenuItem","kui-ContextMenuCheckboxItem",a)},e.createElement(B.Slottable,null,n),e.createElement(i.ItemIndicator,{className:"kui-BaseMenuItemIndicator kui-ContextMenuItemIndicator"},e.createElement(z,{className:"kui-BaseMenuItemIndicatorIcon kui-ContextMenuItemIndicatorIcon"})),o&&e.createElement(v,{shortcut:o,className:"kui-ContextMenuShortcut"}))});Y.displayName="ContextMenu.CheckboxItem";var Z=t=>e.createElement(i.Sub,{...t});Z.displayName="ContextMenu.Sub";var $=e.forwardRef((t,r)=>{let{className:n,children:a,...o}=t;return e.createElement(i.SubTrigger,{...o,asChild:!1,ref:r,className:s("kui-BaseMenuItem","kui-BaseMenuSubTrigger","kui-ContextMenuItem","kui-ContextMenuSubTrigger",n)},a,e.createElement("div",{className:"kui-BaseMenuShortcut kui-ContextMenuShortcut"},e.createElement(L,{className:"kui-BaseMenuSubTriggerIcon kui-ContextMenuSubTriggerIcon"})))});$.displayName="ContextMenu.SubTrigger";var ee=e.forwardRef((t,r)=>{let n=e.useContext(E),a=t.size??n.size,o=t.color??n.color,{className:u,children:p,container:c,forceMount:m,color:l,virtualized:w=!1,...d}=f({...t,size:a},C),P=b(a,C.size.default),x=e.useMemo(()=>({size:a,color:o}),[a,o]),M=e.createElement(h,{size:a},e.createElement(E.Provider,{value:x},p));return e.createElement(i.Portal,{container:c,forceMount:m},e.createElement(g,{asChild:!0},e.createElement(i.SubContent,{"data-accent-color":o,alignOffset:R(P),sideOffset:1,collisionPadding:10,...d,asChild:!1,ref:r,className:s("kui-PopperContent","kui-BaseMenuContent","kui-variant-soft","kui-BaseMenuSubContent","kui-ContextMenuContent","kui-ContextMenuSubContent",u)},w?e.createElement("div",{className:s("kui-BaseMenuViewport","kui-ContextMenuViewport","kui-virtualized")},M):e.createElement(y,{type:"auto",scrollbars:"vertical"},e.createElement("div",{className:s("kui-BaseMenuViewport","kui-ContextMenuViewport")},M)))))});ee.displayName="ContextMenu.SubContent";var te=e.forwardRef(({className:t,...r},n)=>e.createElement(i.Separator,{...r,asChild:!1,ref:n,className:s("kui-BaseMenuSeparator","kui-ContextMenuSeparator",t)}));te.displayName="ContextMenu.Separator";export{_ as a,q as b,K as c,U as d,H as e,J as f,Q as g,X as h,Y as i,Z as j,$ as k,ee as l,te as m,ae as n};
|
|
3
|
+
//# sourceMappingURL=chunk-W3ES2XSB.js.map
|