@womp/kookie-ui 0.25.0 → 0.25.1
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 +5 -2
- package/dist/cjs/components/_internal/base-button.d.ts.map +1 -1
- package/dist/cjs/components/_internal/base-button.js +1 -1
- package/dist/cjs/components/_internal/base-button.js.map +4 -4
- package/dist/cjs/components/_internal/shell-bottom.js +1 -1
- package/dist/cjs/components/_internal/shell-bottom.js.map +3 -3
- package/dist/cjs/components/_internal/shell-inspector.d.ts.map +1 -1
- package/dist/cjs/components/_internal/shell-inspector.js +1 -1
- package/dist/cjs/components/_internal/shell-inspector.js.map +3 -3
- package/dist/cjs/components/_internal/shell-resizable.d.ts +6 -0
- package/dist/cjs/components/_internal/shell-resizable.d.ts.map +1 -1
- package/dist/cjs/components/_internal/shell-resizable.js +1 -1
- package/dist/cjs/components/_internal/shell-resizable.js.map +3 -3
- package/dist/cjs/components/_internal/shell-sidebar.d.ts.map +1 -1
- package/dist/cjs/components/_internal/shell-sidebar.js +1 -1
- package/dist/cjs/components/_internal/shell-sidebar.js.map +3 -3
- package/dist/cjs/components/accordion.js +1 -1
- package/dist/cjs/components/accordion.js.map +4 -4
- package/dist/cjs/components/alert-dialog.js +1 -1
- package/dist/cjs/components/alert-dialog.js.map +4 -4
- package/dist/cjs/components/avatar.js +1 -1
- package/dist/cjs/components/avatar.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/card.js +1 -1
- package/dist/cjs/components/card.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/checkbox-group.js +1 -1
- package/dist/cjs/components/checkbox-group.js.map +4 -4
- package/dist/cjs/components/checkbox.js +1 -1
- package/dist/cjs/components/checkbox.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.js +1 -1
- package/dist/cjs/components/combobox.js.map +4 -4
- 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.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/navbar.js +1 -1
- package/dist/cjs/components/navbar.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/radio-group.js +1 -1
- package/dist/cjs/components/radio-group.js.map +4 -4
- package/dist/cjs/components/radio.js +1 -1
- package/dist/cjs/components/radio.js.map +4 -4
- package/dist/cjs/components/segmented-control.js +1 -1
- package/dist/cjs/components/segmented-control.js.map +4 -4
- 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 +1 -1
- package/dist/cjs/components/shell.js.map +4 -4
- package/dist/cjs/components/sidebar.d.ts.map +1 -1
- package/dist/cjs/components/sidebar.js +1 -1
- package/dist/cjs/components/sidebar.js.map +4 -4
- package/dist/cjs/components/slider.js +1 -1
- package/dist/cjs/components/slider.js.map +4 -4
- package/dist/cjs/components/switch.js +1 -1
- package/dist/cjs/components/switch.js.map +4 -4
- package/dist/cjs/components/table.js +1 -1
- package/dist/cjs/components/table.js.map +4 -4
- package/dist/cjs/components/tabs.js +1 -1
- package/dist/cjs/components/tabs.js.map +4 -4
- package/dist/cjs/components/text-area.js +1 -1
- package/dist/cjs/components/text-area.js.map +4 -4
- package/dist/cjs/components/text-field.js +2 -2
- package/dist/cjs/components/text-field.js.map +4 -4
- 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.d.ts.map +1 -1
- 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/helpers/index.d.ts +1 -0
- package/dist/cjs/helpers/index.d.ts.map +1 -1
- package/dist/cjs/helpers/index.js +4 -4
- package/dist/cjs/helpers/index.js.map +3 -3
- package/dist/cjs/helpers/theme-size.d.ts +8 -30
- package/dist/cjs/helpers/theme-size.d.ts.map +1 -1
- package/dist/cjs/helpers/theme-size.js +1 -1
- package/dist/cjs/helpers/theme-size.js.map +3 -3
- package/dist/cjs/hooks/theme-size.d.ts +32 -0
- package/dist/cjs/hooks/theme-size.d.ts.map +1 -0
- package/dist/cjs/hooks/theme-size.js +3 -0
- package/dist/cjs/hooks/theme-size.js.map +7 -0
- package/dist/cjs/index.js +4 -4
- package/dist/cjs/index.js.map +4 -4
- package/dist/cjs/props/index.js +1 -1
- package/dist/cjs/props/index.js.map +4 -4
- package/dist/esm/chunk-3B25RLWX.js +3 -0
- package/dist/esm/chunk-3B25RLWX.js.map +7 -0
- package/dist/esm/{chunk-PF67GJ5D.js → chunk-3CY6H4TE.js} +2 -2
- package/dist/esm/chunk-3CY6H4TE.js.map +7 -0
- package/dist/esm/{chunk-2EXOL2BR.js → chunk-3L2MDOYC.js} +2 -2
- package/dist/esm/chunk-3L2MDOYC.js.map +7 -0
- package/dist/esm/{chunk-KNBSG2WA.js → chunk-5CFSNNYS.js} +2 -2
- package/dist/esm/chunk-5CFSNNYS.js.map +7 -0
- package/dist/esm/{chunk-4ABQ6CDI.js → chunk-5EBJOOXE.js} +2 -2
- package/dist/esm/chunk-5EBJOOXE.js.map +7 -0
- package/dist/esm/{chunk-E4EMG3RC.js → chunk-5L4DZ2D3.js} +2 -2
- package/dist/esm/chunk-5L4DZ2D3.js.map +7 -0
- package/dist/esm/chunk-5ON3XLRD.js +3 -0
- package/dist/esm/chunk-5ON3XLRD.js.map +7 -0
- package/dist/esm/{chunk-UZAS4PYM.js → chunk-5TJH35TF.js} +2 -2
- package/dist/esm/{chunk-GPQSC6GL.js → chunk-5XR5PTDR.js} +2 -2
- package/dist/esm/chunk-5XR5PTDR.js.map +7 -0
- package/dist/esm/{chunk-AOBY2OUZ.js → chunk-63MUJFVF.js} +2 -2
- package/dist/esm/chunk-63MUJFVF.js.map +7 -0
- package/dist/esm/chunk-6AUIIXXE.js +2 -0
- package/dist/esm/chunk-6AUIIXXE.js.map +7 -0
- package/dist/esm/{chunk-4Q5PUIDJ.js → chunk-6RJQ5LLP.js} +2 -2
- package/dist/esm/{chunk-YVZTQA2L.js → chunk-7B3XDZXZ.js} +2 -2
- package/dist/esm/chunk-7B3XDZXZ.js.map +7 -0
- package/dist/esm/{chunk-7IHBNDCE.js → chunk-7X7VWR3F.js} +2 -2
- package/dist/esm/chunk-7X7VWR3F.js.map +7 -0
- package/dist/esm/{chunk-45O3JZWQ.js → chunk-7XHE6TOA.js} +2 -2
- package/dist/esm/chunk-7XHE6TOA.js.map +7 -0
- package/dist/esm/chunk-AQ7VUGQQ.js +3 -0
- package/dist/esm/chunk-AQ7VUGQQ.js.map +7 -0
- package/dist/esm/{chunk-54HUG34P.js → chunk-BVFHJP5E.js} +2 -2
- package/dist/esm/chunk-BVFHJP5E.js.map +7 -0
- package/dist/esm/{chunk-CRCYUJMK.js → chunk-BXZSJKWA.js} +2 -2
- package/dist/esm/chunk-BXZSJKWA.js.map +7 -0
- package/dist/esm/{chunk-IQ2RMFOM.js → chunk-CQG4U5BR.js} +2 -2
- package/dist/esm/{chunk-YNCI5PY6.js → chunk-FPGBCCML.js} +2 -2
- package/dist/esm/chunk-FPGBCCML.js.map +7 -0
- package/dist/esm/{chunk-A7QRPXXB.js → chunk-HHSFAOIO.js} +2 -2
- package/dist/esm/chunk-HHSFAOIO.js.map +7 -0
- package/dist/esm/{chunk-NMQGDBLD.js → chunk-MQEWEAH5.js} +2 -2
- package/dist/esm/chunk-MQEWEAH5.js.map +7 -0
- package/dist/esm/{chunk-YIKLO2XL.js → chunk-N3QLHFHB.js} +2 -2
- package/dist/esm/chunk-N3QLHFHB.js.map +7 -0
- package/dist/esm/{chunk-LCG3JZ3C.js → chunk-N5H7C3PZ.js} +2 -2
- package/dist/esm/chunk-N5H7C3PZ.js.map +7 -0
- package/dist/esm/{chunk-N53NJCEM.js → chunk-OQWD63AI.js} +2 -2
- package/dist/esm/chunk-OQWD63AI.js.map +7 -0
- package/dist/esm/chunk-PCLO3ZZY.js +3 -0
- package/dist/esm/chunk-PCLO3ZZY.js.map +7 -0
- package/dist/esm/{chunk-2XZ7477Y.js → chunk-PZZJH2LR.js} +2 -2
- package/dist/esm/chunk-PZZJH2LR.js.map +7 -0
- package/dist/esm/chunk-QKCNGEX4.js +3 -0
- package/dist/esm/chunk-QKCNGEX4.js.map +7 -0
- package/dist/esm/{chunk-PPQ7URZL.js → chunk-R4PGFURL.js} +2 -2
- package/dist/esm/{chunk-UUQGOQ5H.js → chunk-RB5VHWAW.js} +2 -2
- package/dist/esm/chunk-RB5VHWAW.js.map +7 -0
- package/dist/esm/{chunk-AG2YETE6.js → chunk-VPRAXHLL.js} +2 -2
- package/dist/esm/chunk-VPRAXHLL.js.map +7 -0
- package/dist/esm/{chunk-7J7RPEPB.js → chunk-VRQEWMC6.js} +2 -2
- package/dist/esm/chunk-VRQEWMC6.js.map +7 -0
- package/dist/esm/{chunk-UFJGZUKK.js → chunk-W4MQ6TEK.js} +2 -2
- package/dist/esm/chunk-W4MQ6TEK.js.map +7 -0
- package/dist/esm/{chunk-3223MHQK.js → chunk-WJ4H2O2G.js} +2 -2
- package/dist/esm/chunk-WMODMXEU.js +3 -0
- package/dist/esm/chunk-WMODMXEU.js.map +7 -0
- package/dist/esm/{chunk-JZVLP2VF.js → chunk-XPVRXQSW.js} +2 -2
- package/dist/esm/chunk-XPVRXQSW.js.map +7 -0
- package/dist/esm/{chunk-BUZGRMDD.js → chunk-Y2BTPKK6.js} +2 -2
- package/dist/esm/chunk-YOSCUA6Z.js +3 -0
- package/dist/esm/chunk-YOSCUA6Z.js.map +7 -0
- package/dist/esm/{chunk-X272YV2E.js → chunk-Z563IAE3.js} +2 -2
- package/dist/esm/chunk-Z563IAE3.js.map +7 -0
- package/dist/esm/{chunk-GZ333J7L.js → chunk-ZDSY6CJL.js} +2 -2
- package/dist/esm/chunk-ZDSY6CJL.js.map +7 -0
- package/dist/esm/{chunk-ENAW44VE.js → chunk-ZYKJTNAT.js} +2 -2
- package/dist/esm/chunk-ZYKJTNAT.js.map +7 -0
- package/dist/esm/components/_internal/base-button.d.ts.map +1 -1
- package/dist/esm/components/_internal/base-button.js +1 -1
- package/dist/esm/components/_internal/shell-bottom.js +1 -1
- package/dist/esm/components/_internal/shell-inspector.d.ts.map +1 -1
- package/dist/esm/components/_internal/shell-inspector.js +1 -1
- package/dist/esm/components/_internal/shell-resizable.d.ts +6 -0
- package/dist/esm/components/_internal/shell-resizable.d.ts.map +1 -1
- package/dist/esm/components/_internal/shell-resizable.js +1 -1
- package/dist/esm/components/_internal/shell-sidebar.d.ts.map +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/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/combobox.js +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.js +1 -1
- package/dist/esm/components/index.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/radio-group.js +1 -1
- package/dist/esm/components/radio.js +1 -1
- package/dist/esm/components/segmented-control.js +1 -1
- package/dist/esm/components/select.js +1 -1
- package/dist/esm/components/sheet.js +1 -1
- package/dist/esm/components/shell.js +1 -1
- package/dist/esm/components/sidebar.d.ts.map +1 -1
- package/dist/esm/components/sidebar.js +1 -1
- package/dist/esm/components/slider.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.js +1 -1
- package/dist/esm/components/text-field.js +1 -1
- package/dist/esm/components/theme.js +1 -1
- package/dist/esm/components/toggle.js +1 -1
- package/dist/esm/components/toolbar.d.ts.map +1 -1
- package/dist/esm/components/toolbar.js +1 -1
- package/dist/esm/components/tooltip.js +1 -1
- package/dist/esm/helpers/index.d.ts +1 -0
- package/dist/esm/helpers/index.d.ts.map +1 -1
- package/dist/esm/helpers/index.js +1 -1
- package/dist/esm/helpers/index.js.map +4 -4
- package/dist/esm/helpers/theme-size.d.ts +8 -30
- package/dist/esm/helpers/theme-size.d.ts.map +1 -1
- package/dist/esm/helpers/theme-size.js +1 -1
- package/dist/esm/hooks/theme-size.d.ts +32 -0
- package/dist/esm/hooks/theme-size.d.ts.map +1 -0
- package/dist/esm/hooks/theme-size.js +3 -0
- package/dist/esm/hooks/theme-size.js.map +7 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/props/font-family.prop.js +1 -1
- package/dist/esm/props/font-family.prop.js.map +4 -4
- package/dist/esm/props/index.js +1 -1
- package/dist/esm/props/index.js.map +4 -4
- package/package.json +1 -1
- package/src/components/_internal/base-button.tsx +56 -42
- package/src/components/_internal/shell-inspector.tsx +3 -1
- package/src/components/_internal/shell-resizable.tsx +13 -0
- package/src/components/_internal/shell-sidebar.tsx +3 -1
- package/src/components/accordion.tsx +1 -1
- package/src/components/alert-dialog.tsx +1 -1
- package/src/components/avatar.tsx +1 -1
- package/src/components/card.tsx +1 -1
- package/src/components/chatbar.tsx +1 -1
- package/src/components/checkbox-group.tsx +1 -1
- package/src/components/checkbox.tsx +1 -1
- package/src/components/combobox.tsx +1 -1
- package/src/components/context-menu.tsx +1 -1
- package/src/components/dialog.tsx +1 -1
- package/src/components/dropdown-menu.tsx +1 -1
- package/src/components/navbar.tsx +1 -1
- package/src/components/notice.tsx +1 -1
- package/src/components/popover.css +4 -2
- package/src/components/popover.tsx +1 -1
- package/src/components/radio-group.tsx +1 -1
- package/src/components/radio.tsx +1 -1
- package/src/components/segmented-control.tsx +1 -1
- package/src/components/select.tsx +1 -1
- package/src/components/sheet.css +4 -2
- package/src/components/sheet.tsx +1 -1
- package/src/components/shell.tsx +1 -1
- package/src/components/sidebar.tsx +16 -1
- package/src/components/slider.tsx +1 -1
- package/src/components/switch.tsx +1 -1
- package/src/components/table.tsx +1 -1
- package/src/components/tabs.tsx +1 -1
- package/src/components/text-area.tsx +1 -1
- package/src/components/text-field.tsx +1 -1
- package/src/components/theme.tsx +1 -1
- package/src/components/toolbar.tsx +17 -8
- package/src/helpers/index.ts +3 -0
- package/src/helpers/theme-size.ts +8 -46
- package/src/hooks/theme-size.ts +50 -0
- package/src/styles/tokens/color.css +3 -0
- package/styles.css +7 -2
- package/tokens/base.css +2 -0
- package/tokens.css +2 -0
- package/dist/esm/chunk-2EXOL2BR.js.map +0 -7
- package/dist/esm/chunk-2IUGM657.js +0 -3
- package/dist/esm/chunk-2IUGM657.js.map +0 -7
- package/dist/esm/chunk-2XZ7477Y.js.map +0 -7
- package/dist/esm/chunk-3WZLXGUE.js +0 -3
- package/dist/esm/chunk-3WZLXGUE.js.map +0 -7
- package/dist/esm/chunk-3YLYGKFB.js +0 -2
- package/dist/esm/chunk-3YLYGKFB.js.map +0 -7
- package/dist/esm/chunk-45O3JZWQ.js.map +0 -7
- package/dist/esm/chunk-4ABQ6CDI.js.map +0 -7
- package/dist/esm/chunk-54HUG34P.js.map +0 -7
- package/dist/esm/chunk-7IHBNDCE.js.map +0 -7
- package/dist/esm/chunk-7J7RPEPB.js.map +0 -7
- package/dist/esm/chunk-A7QRPXXB.js.map +0 -7
- package/dist/esm/chunk-AG2YETE6.js.map +0 -7
- package/dist/esm/chunk-AOBY2OUZ.js.map +0 -7
- package/dist/esm/chunk-CRCYUJMK.js.map +0 -7
- package/dist/esm/chunk-DI7RUMLO.js +0 -3
- package/dist/esm/chunk-DI7RUMLO.js.map +0 -7
- package/dist/esm/chunk-E4EMG3RC.js.map +0 -7
- package/dist/esm/chunk-ENAW44VE.js.map +0 -7
- package/dist/esm/chunk-EVCQ6TG5.js +0 -3
- package/dist/esm/chunk-EVCQ6TG5.js.map +0 -7
- package/dist/esm/chunk-G32GSPNO.js +0 -3
- package/dist/esm/chunk-G32GSPNO.js.map +0 -7
- package/dist/esm/chunk-GPQSC6GL.js.map +0 -7
- package/dist/esm/chunk-GZ333J7L.js.map +0 -7
- package/dist/esm/chunk-JIF77MRB.js +0 -3
- package/dist/esm/chunk-JIF77MRB.js.map +0 -7
- package/dist/esm/chunk-JZVLP2VF.js.map +0 -7
- package/dist/esm/chunk-KNBSG2WA.js.map +0 -7
- package/dist/esm/chunk-LB2HB4NG.js +0 -3
- package/dist/esm/chunk-LB2HB4NG.js.map +0 -7
- package/dist/esm/chunk-LCG3JZ3C.js.map +0 -7
- package/dist/esm/chunk-N53NJCEM.js.map +0 -7
- package/dist/esm/chunk-NMQGDBLD.js.map +0 -7
- package/dist/esm/chunk-PF67GJ5D.js.map +0 -7
- package/dist/esm/chunk-UFJGZUKK.js.map +0 -7
- package/dist/esm/chunk-UUQGOQ5H.js.map +0 -7
- package/dist/esm/chunk-VCV7RACK.js +0 -2
- package/dist/esm/chunk-VCV7RACK.js.map +0 -7
- package/dist/esm/chunk-X272YV2E.js.map +0 -7
- package/dist/esm/chunk-YIKLO2XL.js.map +0 -7
- package/dist/esm/chunk-YNCI5PY6.js.map +0 -7
- package/dist/esm/chunk-YVZTQA2L.js.map +0 -7
- /package/dist/esm/{chunk-UZAS4PYM.js.map → chunk-5TJH35TF.js.map} +0 -0
- /package/dist/esm/{chunk-4Q5PUIDJ.js.map → chunk-6RJQ5LLP.js.map} +0 -0
- /package/dist/esm/{chunk-IQ2RMFOM.js.map → chunk-CQG4U5BR.js.map} +0 -0
- /package/dist/esm/{chunk-PPQ7URZL.js.map → chunk-R4PGFURL.js.map} +0 -0
- /package/dist/esm/{chunk-3223MHQK.js.map → chunk-WJ4H2O2G.js.map} +0 -0
- /package/dist/esm/{chunk-BUZGRMDD.js.map → chunk-Y2BTPKK6.js.map} +0 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/accordion.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nimport classNames from 'classnames';\nimport { Accordion as AccordionPrimitive } from 'radix-ui';\n\nimport {\n accordionRootPropDefs,\n accordionItemPropDefs,\n accordionHeaderPropDefs,\n accordionTriggerPropDefs,\n accordionContentPropDefs,\n} from './accordion.props.js';\nimport { ChevronDownIcon } from './icons.js';\nimport { Slottable } from './slot.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { useThemeSizeProps } from '../hooks/theme-size.js';\n\nimport type {\n AccordionRootOwnProps,\n AccordionItemOwnProps,\n AccordionHeaderOwnProps,\n AccordionTriggerOwnProps,\n AccordionContentOwnProps,\n} from './accordion.props.js';\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\n\n// Root component\ntype AccordionRootElement = React.ElementRef<typeof AccordionPrimitive.Root>;\n// Radix's Root props are a union of single and multiple. Omit each member on its own, so\n// `defaultValue`, `value` and `collapsible` survive with the right type for each `type`.\ntype AccordionRootRadixProps =\n | Omit<AccordionPrimitive.AccordionSingleProps, 'asChild' | 'color'>\n | Omit<AccordionPrimitive.AccordionMultipleProps, 'asChild' | 'color'>;\n\ntype AccordionRootProps = AccordionRootRadixProps & AccordionRootOwnProps;\n\nconst AccordionRoot = React.forwardRef<AccordionRootElement, AccordionRootProps>(\n (ownProps, forwardedRef) => {\n const props = useThemeSizeProps(ownProps, accordionRootPropDefs.size);\n const { className, radius, color, ...extractedRadixProps } =\n extractProps(props, accordionRootPropDefs);\n\n const radixProps = extractedRadixProps as React.ComponentPropsWithoutRef<\n typeof AccordionPrimitive.Root\n >;\n\n // Ensure single accordions can collapse by default unless explicitly set\n if (radixProps.type === 'single' && radixProps.collapsible === undefined) {\n radixProps.collapsible = true;\n }\n\n return (\n <AccordionPrimitive.Root\n {...radixProps}\n ref={forwardedRef}\n className={classNames('kui-AccordionRoot', className)}\n data-accent-color={color}\n data-radius={radius}\n />\n );\n },\n);\nAccordionRoot.displayName = 'Accordion.Root';\n\n// Item component\ntype AccordionItemElement = React.ElementRef<typeof AccordionPrimitive.Item>;\ninterface AccordionItemProps\n extends ComponentPropsWithout<typeof AccordionPrimitive.Item, RemovedProps>,\n AccordionItemOwnProps {}\n\nconst AccordionItem = React.forwardRef<AccordionItemElement, AccordionItemProps>(\n (props, forwardedRef) => {\n const { className, ...itemProps } = extractProps(props, accordionItemPropDefs);\n\n return (\n <AccordionPrimitive.Item\n {...itemProps}\n ref={forwardedRef}\n className={classNames('kui-AccordionItem', className)}\n />\n );\n },\n);\nAccordionItem.displayName = 'Accordion.Item';\n\n// Header component\ntype AccordionHeaderElement = React.ElementRef<typeof AccordionPrimitive.Header>;\ninterface AccordionHeaderProps\n extends ComponentPropsWithout<typeof AccordionPrimitive.Header, RemovedProps>,\n AccordionHeaderOwnProps {}\n\nconst AccordionHeader = React.forwardRef<AccordionHeaderElement, AccordionHeaderProps>(\n (props, forwardedRef) => {\n const { className, ...headerProps } = extractProps(props, accordionHeaderPropDefs);\n\n return (\n <AccordionPrimitive.Header\n {...headerProps}\n ref={forwardedRef}\n className={classNames('kui-AccordionHeader', className)}\n />\n );\n },\n);\nAccordionHeader.displayName = 'Accordion.Header';\n\n// Trigger component\ntype AccordionTriggerElement = React.ElementRef<typeof AccordionPrimitive.Trigger>;\ninterface AccordionTriggerProps\n extends ComponentPropsWithout<typeof AccordionPrimitive.Trigger, RemovedProps>,\n AccordionTriggerOwnProps {}\n\nconst AccordionTrigger = React.forwardRef<AccordionTriggerElement, AccordionTriggerProps>(\n ({ children, ...props }, forwardedRef) => {\n const { className, ...triggerProps } = extractProps(props, accordionTriggerPropDefs);\n\n return (\n <AccordionPrimitive.Trigger\n {...triggerProps}\n ref={forwardedRef}\n className={classNames('kui-AccordionTrigger', className)}\n >\n <Slottable>{children}</Slottable>\n <ChevronDownIcon className=\"kui-AccordionChevron\" aria-hidden />\n </AccordionPrimitive.Trigger>\n );\n },\n);\nAccordionTrigger.displayName = 'Accordion.Trigger';\n\n// Content component\ntype AccordionContentElement = React.ElementRef<typeof AccordionPrimitive.Content>;\ninterface AccordionContentProps\n extends ComponentPropsWithout<typeof AccordionPrimitive.Content, RemovedProps>,\n AccordionContentOwnProps {}\n\nconst AccordionContent = React.forwardRef<AccordionContentElement, AccordionContentProps>(\n (props, forwardedRef) => {\n const { className, children, ...contentProps } = extractProps(props, accordionContentPropDefs);\n\n return (\n <AccordionPrimitive.Content\n {...contentProps}\n ref={forwardedRef}\n className={classNames('kui-AccordionContent', className)}\n >\n <div className=\"kui-AccordionContentInner\">{children}</div>\n </AccordionPrimitive.Content>\n );\n },\n);\nAccordionContent.displayName = 'Accordion.Content';\n\nexport {\n AccordionRoot as Root,\n AccordionItem as Item,\n AccordionHeader as Header,\n AccordionTrigger as Trigger,\n AccordionContent as Content,\n};\n\nexport type {\n AccordionRootProps as RootProps,\n AccordionItemProps as ItemProps,\n AccordionHeaderProps as HeaderProps,\n AccordionTriggerProps as TriggerProps,\n AccordionContentProps as ContentProps,\n};\n"],
|
|
5
|
+
"mappings": ";4QAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,EAAA,WAAAC,EAAA,SAAAC,EAAA,SAAAC,EAAA,YAAAC,IAAA,UAAYC,MAAW,QACvB,OAAOC,MAAgB,aACvB,OAAS,aAAaC,MAA0B,WAiChD,IAAMC,EAAsB,aAC1B,CAACC,EAAUC,IAAiB,CAC1B,IAAMC,EAAQC,EAAkBH,EAAUI,EAAsB,IAAI,EAC9D,CAAE,UAAAC,EAAW,OAAAC,EAAQ,MAAAC,EAAO,GAAGC,CAAoB,EACvDC,EAAaP,EAAOE,CAAqB,EAErCM,EAAaF,EAKnB,OAAIE,EAAW,OAAS,UAAYA,EAAW,cAAgB,SAC7DA,EAAW,YAAc,IAIzB,gBAACC,EAAmB,KAAnB,CACE,GAAGD,EACJ,IAAKT,EACL,UAAWW,EAAW,oBAAqBP,CAAS,EACpD,oBAAmBE,EACnB,cAAaD,EACf,CAEJ,CACF,EACAP,EAAc,YAAc,iBAQ5B,IAAMc,EAAsB,aAC1B,CAACX,EAAOD,IAAiB,CACvB,GAAM,CAAE,UAAAI,EAAW,GAAGS,CAAU,EAAIL,EAAaP,EAAOa,CAAqB,EAE7E,OACE,gBAACJ,EAAmB,KAAnB,CACE,GAAGG,EACJ,IAAKb,EACL,UAAWW,EAAW,oBAAqBP,CAAS,EACtD,CAEJ,CACF,EACAQ,EAAc,YAAc,iBAQ5B,IAAMG,EAAwB,aAC5B,CAACd,EAAOD,IAAiB,CACvB,GAAM,CAAE,UAAAI,EAAW,GAAGY,CAAY,EAAIR,EAAaP,EAAOgB,CAAuB,EAEjF,OACE,gBAACP,EAAmB,OAAnB,CACE,GAAGM,EACJ,IAAKhB,EACL,UAAWW,EAAW,sBAAuBP,CAAS,EACxD,CAEJ,CACF,EACAW,EAAgB,YAAc,mBAQ9B,IAAMG,EAAyB,aAC7B,CAAC,CAAE,SAAAC,EAAU,GAAGlB,CAAM,EAAGD,IAAiB,CACxC,GAAM,CAAE,UAAAI,EAAW,GAAGgB,CAAa,EAAIZ,EAAaP,EAAOoB,CAAwB,EAEnF,OACE,gBAACX,EAAmB,QAAnB,CACE,GAAGU,EACJ,IAAKpB,EACL,UAAWW,EAAW,uBAAwBP,CAAS,GAEvD,gBAACkB,EAAA,KAAWH,CAAS,EACrB,gBAACI,EAAA,CAAgB,UAAU,uBAAuB,cAAW,GAAC,CAChE,CAEJ,CACF,EACAL,EAAiB,YAAc,oBAQ/B,IAAMM,EAAyB,aAC7B,CAACvB,EAAOD,IAAiB,CACvB,GAAM,CAAE,UAAAI,EAAW,SAAAe,EAAU,GAAGM,CAAa,EAAIjB,EAAaP,EAAOyB,CAAwB,EAE7F,OACE,gBAAChB,EAAmB,QAAnB,CACE,GAAGe,EACJ,IAAKzB,EACL,UAAWW,EAAW,uBAAwBP,CAAS,GAEvD,gBAAC,OAAI,UAAU,6BAA6Be,CAAS,CACvD,CAEJ,CACF,EACAK,EAAiB,YAAc",
|
|
6
|
+
"names": ["accordion_exports", "__export", "AccordionContent", "AccordionHeader", "AccordionItem", "AccordionRoot", "AccordionTrigger", "React", "classNames", "AccordionPrimitive", "AccordionRoot", "ownProps", "forwardedRef", "props", "useThemeSizeProps", "accordionRootPropDefs", "className", "radius", "color", "extractedRadixProps", "extractProps", "radixProps", "AccordionPrimitive", "classNames", "AccordionItem", "itemProps", "accordionItemPropDefs", "AccordionHeader", "headerProps", "accordionHeaderPropDefs", "AccordionTrigger", "children", "triggerProps", "accordionTriggerPropDefs", "Slottable", "ChevronDownIcon", "AccordionContent", "contentProps", "accordionContentPropDefs"]
|
|
7
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{a as v}from"./chunk-U5GQ3IFS.js";import{a as i}from"./chunk-WZKSLTBH.js";import{c as l}from"./chunk-
|
|
3
|
-
//# sourceMappingURL=chunk-
|
|
2
|
+
import{a as v}from"./chunk-U5GQ3IFS.js";import{a as i}from"./chunk-WZKSLTBH.js";import{c as l}from"./chunk-5ON3XLRD.js";import{c as N}from"./chunk-OKQAVYW4.js";import{a as g}from"./chunk-VQPANPMI.js";var R={};g(R,{Actions:()=>c,Logo:()=>b,Navigation:()=>f,Root:()=>m});import*as o from"react";import n from"classnames";var m=o.forwardRef((e,t)=>{let a=l(e,v.size),{children:s,className:r,...p}=N(a,v),P=a.position??"fixed",d=a.size??"2";return o.createElement("header",{...p,ref:t,className:n("kui-NavbarRoot",r),"data-position":P,"data-size":d},o.createElement("div",{className:"kui-NavbarContainer"},s))});m.displayName="Navbar.Root";var b=o.forwardRef(({gap:e="2",align:t="center",justify:a="start",className:s,...r},p)=>o.createElement(i,{ref:p,gap:e,align:t,justify:a,className:n("kui-NavbarLogo",s),...r}));b.displayName="Navbar.Logo";var f=o.forwardRef(({gap:e="4",align:t="center",justify:a="center",className:s,...r},p)=>o.createElement(i,{ref:p,gap:e,align:t,justify:a,className:n("kui-NavbarNavigation",s),role:"navigation","aria-label":r["aria-labelledby"]===void 0?"Main":void 0,...r}));f.displayName="Navbar.Navigation";var c=o.forwardRef(({gap:e="4",align:t="center",justify:a="end",className:s,...r},p)=>o.createElement(i,{ref:p,gap:e,align:t,justify:a,className:n("kui-NavbarActions",s),...r}));c.displayName="Navbar.Actions";export{m as a,b,f as c,c as d,R as e};
|
|
3
|
+
//# sourceMappingURL=chunk-BXZSJKWA.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/navbar.tsx"],
|
|
4
|
+
"sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Flex } from './flex.js';\n\nimport type { FlexProps } from './flex.js';\nimport type { MarginProps } from '../props/margin.props.js';\n\n// Navbar slots are parts, not layout primitives: the bar owns their spacing.\ntype NavbarSlotFlexProps = Omit<FlexProps, keyof MarginProps>;\n\nimport { navbarRootPropDefs } from './navbar.props.js';\nimport { extractProps } from '../helpers/extract-props.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\n/**\n * Navbar Component\n *\n * A horizontal navigation bar component with semantic slots for organizing\n * content. Follows the Shell and Sidebar compound component patterns.\n *\n * @example\n * <Navbar.Root>\n * <Navbar.Logo>Brand/logo content</Navbar.Logo>\n * <Navbar.Navigation>Navigation links</Navbar.Navigation>\n * <Navbar.Actions>CTAs, user menu, etc</Navbar.Actions>\n * </Navbar.Root>\n */\n\n// Root Component\ntype NavbarRootElement = React.ElementRef<'header'>;\ntype NavbarRootOwnProps = GetPropDefTypes<typeof navbarRootPropDefs>;\ninterface NavbarRootProps\n extends ComponentPropsWithout<'header', RemovedProps>,\n NavbarRootOwnProps {}\n\nconst NavbarRoot = React.forwardRef<NavbarRootElement, NavbarRootProps>(\n (ownProps, forwardedRef) => {\n const props = useThemeSizeProps(ownProps, navbarRootPropDefs.size);\n const { children, className, ...rootProps } = extractProps(\n props,\n navbarRootPropDefs,\n );\n\n const position = props.position ?? 'fixed';\n const size = props.size ?? '2';\n\n return (\n <header\n {...rootProps}\n ref={forwardedRef}\n className={classNames('kui-NavbarRoot', className)}\n data-position={position}\n data-size={size}\n >\n <div className=\"kui-NavbarContainer\">{children}</div>\n </header>\n );\n },\n);\nNavbarRoot.displayName = 'Navbar.Root';\n\n// Logo Slot - extends FlexProps\ntype NavbarLogoProps = NavbarSlotFlexProps & {\n asChild?: boolean;\n};\n\n// With `asChild`, Flex renders the child, so the layout props become classes on it, not attributes.\nconst NavbarLogo = React.forwardRef<HTMLDivElement, NavbarLogoProps>(\n ({ gap = '2', align = 'center', justify = 'start', className, ...props }, ref) => (\n <Flex\n ref={ref}\n gap={gap}\n align={align}\n justify={justify}\n className={classNames('kui-NavbarLogo', className)}\n {...props}\n />\n ),\n);\nNavbarLogo.displayName = 'Navbar.Logo';\n\n// Navigation Slot - extends FlexProps\ntype NavbarNavigationProps = NavbarSlotFlexProps & {\n asChild?: boolean;\n};\n\nconst NavbarNavigation = React.forwardRef<HTMLDivElement, NavbarNavigationProps>(\n ({ gap = '4', align = 'center', justify = 'center', className, ...props }, ref) => (\n <Flex\n ref={ref}\n gap={gap}\n align={align}\n justify={justify}\n className={classNames('kui-NavbarNavigation', className)}\n role=\"navigation\"\n // A landmark needs a name to be told apart from other navigation on the page.\n aria-label={props['aria-labelledby'] === undefined ? 'Main' : undefined}\n {...props}\n />\n ),\n);\nNavbarNavigation.displayName = 'Navbar.Navigation';\n\n// Actions Slot - extends FlexProps\ntype NavbarActionsProps = NavbarSlotFlexProps & {\n asChild?: boolean;\n};\n\nconst NavbarActions = React.forwardRef<HTMLDivElement, NavbarActionsProps>(\n ({ gap = '4', align = 'center', justify = 'end', className, ...props }, ref) => (\n <Flex\n ref={ref}\n gap={gap}\n align={align}\n justify={justify}\n className={classNames('kui-NavbarActions', className)}\n {...props}\n />\n ),\n);\nNavbarActions.displayName = 'Navbar.Actions';\n\nexport {\n NavbarRoot as Root,\n NavbarLogo as Logo,\n NavbarNavigation as Navigation,\n NavbarActions as Actions,\n};\n\nexport type {\n NavbarRootProps as RootProps,\n NavbarLogoProps as LogoProps,\n NavbarNavigationProps as NavigationProps,\n NavbarActionsProps as ActionsProps,\n};\n"],
|
|
5
|
+
"mappings": ";wMAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,EAAA,SAAAC,EAAA,eAAAC,EAAA,SAAAC,IAEA,UAAYC,MAAW,QACvB,OAAOC,MAAgB,aAqCvB,IAAMC,EAAmB,aACvB,CAACC,EAAUC,IAAiB,CAC1B,IAAMC,EAAQC,EAAkBH,EAAUI,EAAmB,IAAI,EAC3D,CAAE,SAAAC,EAAU,UAAAC,EAAW,GAAGC,CAAU,EAAIC,EAC5CN,EACAE,CACF,EAEMK,EAAWP,EAAM,UAAY,QAC7BQ,EAAOR,EAAM,MAAQ,IAE3B,OACE,gBAAC,UACE,GAAGK,EACJ,IAAKN,EACL,UAAWU,EAAW,iBAAkBL,CAAS,EACjD,gBAAeG,EACf,YAAWC,GAEX,gBAAC,OAAI,UAAU,uBAAuBL,CAAS,CACjD,CAEJ,CACF,EACAN,EAAW,YAAc,cAQzB,IAAMa,EAAmB,aACvB,CAAC,CAAE,IAAAC,EAAM,IAAK,MAAAC,EAAQ,SAAU,QAAAC,EAAU,QAAS,UAAAT,EAAW,GAAGJ,CAAM,EAAGc,IACxE,gBAACC,EAAA,CACC,IAAKD,EACL,IAAKH,EACL,MAAOC,EACP,QAASC,EACT,UAAWJ,EAAW,iBAAkBL,CAAS,EAChD,GAAGJ,EACN,CAEJ,EACAU,EAAW,YAAc,cAOzB,IAAMM,EAAyB,aAC7B,CAAC,CAAE,IAAAL,EAAM,IAAK,MAAAC,EAAQ,SAAU,QAAAC,EAAU,SAAU,UAAAT,EAAW,GAAGJ,CAAM,EAAGc,IACzE,gBAACC,EAAA,CACC,IAAKD,EACL,IAAKH,EACL,MAAOC,EACP,QAASC,EACT,UAAWJ,EAAW,uBAAwBL,CAAS,EACvD,KAAK,aAEL,aAAYJ,EAAM,iBAAiB,IAAM,OAAY,OAAS,OAC7D,GAAGA,EACN,CAEJ,EACAgB,EAAiB,YAAc,oBAO/B,IAAMC,EAAsB,aAC1B,CAAC,CAAE,IAAAN,EAAM,IAAK,MAAAC,EAAQ,SAAU,QAAAC,EAAU,MAAO,UAAAT,EAAW,GAAGJ,CAAM,EAAGc,IACtE,gBAACC,EAAA,CACC,IAAKD,EACL,IAAKH,EACL,MAAOC,EACP,QAASC,EACT,UAAWJ,EAAW,oBAAqBL,CAAS,EACnD,GAAGJ,EACN,CAEJ,EACAiB,EAAc,YAAc",
|
|
6
|
+
"names": ["navbar_exports", "__export", "NavbarActions", "NavbarLogo", "NavbarNavigation", "NavbarRoot", "React", "classNames", "NavbarRoot", "ownProps", "forwardedRef", "props", "useThemeSizeProps", "navbarRootPropDefs", "children", "className", "rootProps", "extractProps", "position", "size", "classNames", "NavbarLogo", "gap", "align", "justify", "ref", "Flex", "NavbarNavigation", "NavbarActions"]
|
|
7
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{a as r,c as x,f as O,g as M}from"./chunk-XUCR7L4G.js";import{a as B,e as l}from"./chunk-3QWGSRYC.js";import{a as C,b as S,c as v}from"./chunk-VVBSYWUA.js";import{o as h}from"./chunk-GHWEXMF6.js";import{
|
|
3
|
-
//# sourceMappingURL=chunk-
|
|
2
|
+
import{a as r,c as x,f as O,g as M}from"./chunk-XUCR7L4G.js";import{a as B,e as l}from"./chunk-3QWGSRYC.js";import{a as C,b as S,c as v}from"./chunk-VVBSYWUA.js";import{o as h}from"./chunk-GHWEXMF6.js";import{b as R,c as y}from"./chunk-QKCNGEX4.js";import{a as g}from"./chunk-WEBNIUEX.js";import{a as b}from"./chunk-G66WDIIV.js";import*as e from"react";import se from"classnames";import{useComposedRefs as ie}from"radix-ui/internal";var le={controlled:"open",default:"defaultOpen"},T=e.forwardRef((w,E)=>{let{className:H,presentation:N="fixed",defaultOpen:U,open:k,onOpenChange:I,expandedSize:t=200,minSize:p=100,maxSize:d=400,resizable:m=!1,collapsible:V=!0,onExpand:A,onCollapse:L,onResize:$,onResizeStart:q,onResizeEnd:D,snapPoints:n,snapTolerance:W,collapseThreshold:a,paneId:s,persistence:i,children:_,style:j,size:F,defaultSize:G,onSizeChange:K,sizeUpdate:J,sizeUpdateMs:Q=50,inset:c,id:X,...u}=w,{table:f,attributes:Y}=v(N,"fixed"),o=C({name:"bottom",label:"Bottom",propNames:le,id:X,controlled:r(k),defaultValue:r(U),presentationTable:f,builtIn:x,onChange:(ne,ae)=>I?.(ne!=="closed",{reason:ae}),onExpand:A,onCollapse:L,size:t});h("bottom",c),e.useEffect(()=>{(n!==void 0||a!==void 0||s!==void 0||i!==void 0)&&void 0},[n,a,s,i]);let P=e.useRef(null),Z=ie(E,o.setElement,P),ee=R({name:"bottom",elementId:o.id,elementRef:P,cssVarName:"--bottom-size",orientation:"horizontal",edge:"start",growth:O,expandedSize:t,minSize:p,maxSize:d,resizable:m,collapsible:V,size:F,defaultSize:G,onSizeChange:K,sizeUpdate:J,sizeUpdateMs:Q,onResize:$,onResizeStart:q,onResizeEnd:D,snapPoints:n,snapTolerance:W,collapseThreshold:a,paneId:s,persistence:i,overlaying:o.overlaying,overlayingNow:()=>f[b()]==="overlay",requestCollapse:()=>o.setValue("closed","toggle"),requestToggle:()=>o.toggle("toggle")}),{handles:z,content:oe}=y(_,l),te=m&&o.shown!==!1&&!o.overlaying?e.createElement(g.Provider,{value:ee},z.length>0?z:e.createElement(B,null)):null;return e.createElement("div",{...M(u),id:o.id,ref:Z,className:se("kui-ShellPane","kui-ShellBottom",H),...S(o,Y),"data-inset":c||void 0,tabIndex:o.overlaying?-1:u.tabIndex,style:{...j,"--bottom-expanded-size":`${t}px`,"--bottom-min-size":`${p}px`,"--bottom-max-size":`${d}px`}},e.createElement("div",{className:"kui-ShellBottomContent"},oe),te)});T.displayName="Shell.Bottom";T.Handle=l;export{T as a};
|
|
3
|
+
//# sourceMappingURL=chunk-CQG4U5BR.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{a as R}from"./chunk-L4NF3Q2T.js";import{a as u}from"./chunk-TGRHRMQI.js";import{c as h}from"./chunk-
|
|
3
|
-
//# sourceMappingURL=chunk-
|
|
2
|
+
import{a as R}from"./chunk-L4NF3Q2T.js";import{a as u}from"./chunk-TGRHRMQI.js";import{c as h}from"./chunk-N3QLHFHB.js";import{c as d}from"./chunk-5ON3XLRD.js";import{c as C}from"./chunk-OKQAVYW4.js";import{a as S}from"./chunk-VQPANPMI.js";var w={};S(w,{Anchor:()=>M,Close:()=>N,Content:()=>x,Root:()=>E,Toolbar:()=>W,Trigger:()=>L});import*as o from"react";import v from"classnames";import{Popover as P}from"radix-ui";var y=o.createContext(null),g=t=>{let e=o.useContext(y);return e},E=t=>o.createElement(P.Root,{...t});E.displayName="Popover.Root";var L=o.forwardRef(({children:t,...e},r)=>o.createElement(P.Trigger,{...e,ref:r,asChild:!0},u(t)));L.displayName="Popover.Trigger";var x=o.forwardRef((t,e)=>{let r=d(t,R.size),{className:s,forceMount:n,container:i,...a}=C(r,R),p=o.useRef(null),m=o.useCallback(l=>{p.current=l,typeof e=="function"?e(l):e&&(e.current=l)},[e]),[f,T]=o.useState(void 0),b=o.useCallback(l=>{let c=p.current;c&&(l>0?(c.style.setProperty("--popover-toolbar-offset",`${l}px`),c.setAttribute("data-has-toolbar","true")):(c.style.removeProperty("--popover-toolbar-offset"),c.removeAttribute("data-has-toolbar")))},[]);return o.createElement(P.Portal,{container:i,forceMount:n},o.createElement(h,{asChild:!0},o.createElement(P.Content,{align:"start",sideOffset:8,collisionPadding:10,...a,ref:m,"aria-labelledby":f??a["aria-labelledby"],className:v("kui-PopperContent","kui-PopoverContent",s)},o.createElement(y.Provider,{value:o.useMemo(()=>({contentRef:p,setToolbarOffset:b,setLabelId:T}),[b])},r.children))))});x.displayName="Popover.Content";var N=o.forwardRef(({children:t,...e},r)=>o.createElement(P.Close,{...e,ref:r,asChild:!0},u(t)));N.displayName="Popover.Close";var M=o.forwardRef((t,e)=>o.createElement(P.Anchor,{...t,ref:e}));M.displayName="Popover.Anchor";var A=o.forwardRef(({className:t,children:e,...r},s)=>{let n=g("Popover.Toolbar"),i=o.useRef(null),a=o.useCallback(p=>{i.current=p,typeof s=="function"?s(p):s&&(s.current=p)},[s]);return o.useEffect(()=>{if(!n||!i.current)return;let p=i.current,m=()=>{let T=p.getBoundingClientRect().height;n.setToolbarOffset(T)};m();let f=new ResizeObserver(m);return f.observe(p),()=>{f.disconnect(),n.setToolbarOffset(0)}},[n]),o.createElement("div",{...r,ref:a,className:v("kui-PopoverToolbar",t)},e)});A.displayName="Popover.Toolbar";var k=o.forwardRef(({className:t,...e},r)=>o.createElement("div",{...e,ref:r,className:v("kui-PopoverToolbarSection","kui-PopoverToolbarLeft",t)}));k.displayName="Popover.Toolbar.Left";var D=o.forwardRef(({className:t,...e},r)=>o.createElement("div",{...e,ref:r,className:v("kui-PopoverToolbarSection","kui-PopoverToolbarCenter",t)}));D.displayName="Popover.Toolbar.Center";var H=o.forwardRef(({className:t,...e},r)=>o.createElement("div",{...e,ref:r,className:v("kui-PopoverToolbarSection","kui-PopoverToolbarRight",t)}));H.displayName="Popover.Toolbar.Right";var O=o.forwardRef(({className:t,id:e,...r},s)=>{let n=g("Popover.Toolbar.Title"),i=o.useId(),a=e??`kui-popover-toolbar-title-${i}`;return o.useEffect(()=>(n?.setLabelId(a),()=>n?.setLabelId(void 0)),[n,a]),o.createElement("span",{...r,id:a,ref:s,className:v("kui-PopoverToolbarTitle",t)})});O.displayName="Popover.Toolbar.Title";var W=Object.assign(A,{Left:k,Center:D,Right:H,Title:O});export{E as a,L as b,x as c,N as d,M as e,W as f,w as g};
|
|
3
|
+
//# sourceMappingURL=chunk-FPGBCCML.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/popover.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 { Theme } from './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 /** Ref to the Popover.Content DOM node */\n contentRef: React.MutableRefObject<HTMLDivElement | null>;\n /** Update content's toolbar offset variable and presence flag */\n setToolbarOffset: (offsetPx: number) => void;\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 // Manage refs (we need the DOM node to apply CSS variables)\n const contentRef = React.useRef<HTMLDivElement>(null);\n const combinedRef = React.useCallback(\n (node: HTMLDivElement | null) => {\n contentRef.current = node;\n if (typeof forwardedRef === 'function') {\n forwardedRef(node);\n } else if (forwardedRef) {\n (forwardedRef as React.MutableRefObject<HTMLDivElement | null>).current = node;\n }\n },\n [forwardedRef],\n );\n\n const [labelId, setLabelId] = React.useState<string | undefined>(undefined);\n\n const setToolbarOffset = React.useCallback((offsetPx: number) => {\n const el = contentRef.current;\n if (!el) return;\n if (offsetPx > 0) {\n el.style.setProperty('--popover-toolbar-offset', `${offsetPx}px`);\n el.setAttribute('data-has-toolbar', 'true');\n } else {\n el.style.removeProperty('--popover-toolbar-offset');\n el.removeAttribute('data-has-toolbar');\n }\n }, []);\n\n return (\n <PopoverPrimitive.Portal container={container} forceMount={forceMount}>\n <Theme asChild>\n <PopoverPrimitive.Content\n align=\"start\"\n sideOffset={8}\n collisionPadding={10}\n {...contentProps}\n ref={combinedRef}\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={React.useMemo(() => ({ contentRef, setToolbarOffset, setLabelId }), [setToolbarOffset])}>\n {props.children}\n </PopoverContentContext.Provider>\n </PopoverPrimitive.Content>\n </Theme>\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 const ctx = usePopoverContentContext('Popover.Toolbar');\n\n const localRef = React.useRef<HTMLDivElement | null>(null);\n const setRefs = React.useCallback(\n (node: HTMLDivElement | null) => {\n localRef.current = node;\n if (typeof forwardedRef === 'function') forwardedRef(node);\n else if (forwardedRef)\n (forwardedRef as React.MutableRefObject<HTMLDivElement | null>).current = node;\n },\n [forwardedRef],\n );\n\n React.useEffect(() => {\n if (!ctx || !localRef.current) return;\n const el = localRef.current;\n const update = () => {\n const height = el.getBoundingClientRect().height;\n ctx.setToolbarOffset(height);\n };\n update();\n const ro = new ResizeObserver(update);\n ro.observe(el);\n return () => {\n ro.disconnect();\n ctx.setToolbarOffset(0);\n };\n }, [ctx]);\n\n return (\n <div {...props} ref={setRefs} 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"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["popover_exports", "__export", "PopoverAnchor", "PopoverClose", "PopoverContent", "PopoverRoot", "PopoverToolbar", "PopoverTrigger", "React", "classNames", "PopoverPrimitive", "PopoverContentContext", "usePopoverContentContext", "caller", "ctx", "PopoverRoot", "props", "PopoverPrimitive", "PopoverTrigger", "children", "forwardedRef", "requireReactElement", "PopoverContent", "ownProps", "useThemeSizeProps", "popoverContentPropDefs", "className", "forceMount", "container", "contentProps", "extractProps", "contentRef", "combinedRef", "node", "labelId", "setLabelId", "setToolbarOffset", "offsetPx", "el", "Theme", "classNames", "PopoverClose", "PopoverAnchor", "PopoverToolbarBase", "localRef", "setRefs", "update", "height", "ro", "PopoverToolbarLeft", "ref", "PopoverToolbarCenter", "PopoverToolbarRight", "PopoverToolbarTitle", "idProp", "reactId", "id", "PopoverToolbar"]
|
|
7
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{a as D}from"./chunk-7VJF6EXN.js";import{a as p}from"./chunk-3H23GRNQ.js";import{a as l}from"./chunk-TGRHRMQI.js";import{c as m}from"./chunk-
|
|
3
|
-
//# sourceMappingURL=chunk-
|
|
2
|
+
import{a as D}from"./chunk-7VJF6EXN.js";import{a as p}from"./chunk-3H23GRNQ.js";import{a as l}from"./chunk-TGRHRMQI.js";import{c as m}from"./chunk-N3QLHFHB.js";import{a as g}from"./chunk-6UZT3ZLO.js";import{a as n}from"./chunk-PT45Q47V.js";import{c as s}from"./chunk-5ON3XLRD.js";import{c as r}from"./chunk-OKQAVYW4.js";import{a as w}from"./chunk-VQPANPMI.js";var S={};w(S,{Close:()=>y,Content:()=>C,Description:()=>R,Root:()=>c,Title:()=>d,Trigger:()=>f});import*as o from"react";import W from"classnames";import{Dialog as t}from"radix-ui";var c=e=>o.createElement(t.Root,{...e,modal:!0});c.displayName="Dialog.Root";var f=o.forwardRef(({children:e,...i},a)=>o.createElement(t.Trigger,{...i,ref:a,asChild:!0},l(e)));f.displayName="Dialog.Trigger";var{align:O,...P}=n,B={align:O},C=o.forwardRef(({align:e,...i},a)=>{let T=s(i,P.size),{className:v}=r({align:e},B),{className:u,forceMount:h,container:E,onCloseAutoFocus:N,...x}=r(T,P);return D(),o.createElement(t.Portal,{container:E,forceMount:h},o.createElement(m,{asChild:!0},o.createElement(t.Overlay,{className:"kui-BaseDialogOverlay kui-DialogOverlay"},o.createElement("div",{className:"kui-BaseDialogScroll kui-DialogScroll"},o.createElement("div",{className:`kui-BaseDialogScrollPadding kui-DialogScrollPadding ${v}`},o.createElement(t.Content,{...x,ref:a,className:W("kui-BaseDialogContent","kui-DialogContent",u),"aria-modal":"true",onCloseAutoFocus:k=>{N?.(k),document.body.style.pointerEvents=""}}))))))});C.displayName="Dialog.Content";var d=o.forwardRef((e,i)=>o.createElement(t.Title,{asChild:!0},o.createElement(p,{size:"5",trim:"start",...e,asChild:!1,ref:i})));d.displayName="Dialog.Title";var R=o.forwardRef((e,i)=>o.createElement(t.Description,{asChild:!0},o.createElement(g,{as:"p",size:"3",...e,asChild:!1,ref:i})));R.displayName="Dialog.Description";var y=o.forwardRef(({children:e,...i},a)=>o.createElement(t.Close,{...i,ref:a,asChild:!0},l(e)));y.displayName="Dialog.Close";export{c as a,f as b,C as c,d,R as e,y as f,S as g};
|
|
3
|
+
//# sourceMappingURL=chunk-HHSFAOIO.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/dialog.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nimport classNames from 'classnames';\nimport { Dialog as DialogPrimitive } from 'radix-ui';\n\nimport { dialogContentPropDefs } from './dialog.props.js';\nimport { Heading } from './heading.js';\nimport { Text } from './text.js';\nimport { Theme } from './theme.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { useThemeSizeProps } from '../hooks/theme-size.js';\nimport { requireReactElement } from '../helpers/require-react-element.js';\nimport { useBodyPointerEventsCleanup } from '../hooks/use-body-pointer-events-cleanup.js';\n\nimport type { DialogContentOwnProps } from './dialog.props.js';\nimport type { ComponentPropsWithout, RemovedProps, ComponentPropsAs } from '../helpers/component-props.js';\n\ninterface DialogRootProps extends ComponentPropsWithout<typeof DialogPrimitive.Root, 'modal'> {}\nconst DialogRoot: React.FC<DialogRootProps> = (props) => <DialogPrimitive.Root {...props} modal />;\nDialogRoot.displayName = 'Dialog.Root';\n\ntype DialogTriggerElement = React.ElementRef<typeof DialogPrimitive.Trigger>;\ninterface DialogTriggerProps extends ComponentPropsWithout<typeof DialogPrimitive.Trigger, RemovedProps> {}\nconst DialogTrigger = React.forwardRef<DialogTriggerElement, DialogTriggerProps>(({ children, ...props }, forwardedRef) => (\n <DialogPrimitive.Trigger {...props} ref={forwardedRef} asChild>\n {requireReactElement(children)}\n </DialogPrimitive.Trigger>\n));\nDialogTrigger.displayName = 'Dialog.Trigger';\n\n// Split once at module scope. `extractProps` memoises on the identity of the\n// prop def objects it is handed, so rebuilding these per render would recompile\n// them on every render.\nconst { align: alignPropDef, ...contentPropDefs } = dialogContentPropDefs;\nconst alignPropDefs = { align: alignPropDef };\n\ntype DialogContentElement = React.ElementRef<typeof DialogPrimitive.Content>;\ninterface DialogContentProps extends ComponentPropsWithout<typeof DialogPrimitive.Content, RemovedProps>, DialogContentOwnProps {\n container?: React.ComponentPropsWithoutRef<typeof DialogPrimitive.Portal>['container'];\n}\nconst DialogContent = React.forwardRef<DialogContentElement, DialogContentProps>(({ align, ...ownProps }, forwardedRef) => {\n const props = useThemeSizeProps(ownProps, contentPropDefs.size);\n const { className: alignClassName } = extractProps({ align }, alignPropDefs);\n\n const { className, forceMount, container, onCloseAutoFocus, ...contentProps } = extractProps(props, contentPropDefs);\n\n // Cleanup stuck pointer-events on body\n useBodyPointerEventsCleanup();\n\n return (\n <DialogPrimitive.Portal container={container} forceMount={forceMount}>\n <Theme asChild>\n <DialogPrimitive.Overlay className=\"kui-BaseDialogOverlay kui-DialogOverlay\">\n <div className=\"kui-BaseDialogScroll kui-DialogScroll\">\n <div className={`kui-BaseDialogScrollPadding kui-DialogScrollPadding ${alignClassName}`}>\n <DialogPrimitive.Content\n {...contentProps}\n ref={forwardedRef}\n className={classNames('kui-BaseDialogContent', 'kui-DialogContent', className)}\n aria-modal=\"true\"\n onCloseAutoFocus={(event) => {\n // Radix returns focus to the trigger unless the caller prevents it.\n onCloseAutoFocus?.(event);\n // Restore pointer-events to body (Radix UI fix for issue #1241)\n document.body.style.pointerEvents = '';\n }}\n />\n </div>\n </div>\n </DialogPrimitive.Overlay>\n </Theme>\n </DialogPrimitive.Portal>\n );\n});\nDialogContent.displayName = 'Dialog.Content';\n\ntype DialogTitleElement = React.ElementRef<typeof Heading>;\ntype DialogTitleProps = ComponentPropsWithout<typeof Heading, 'asChild'>;\nconst DialogTitle = React.forwardRef<DialogTitleElement, DialogTitleProps>((props, forwardedRef) => (\n <DialogPrimitive.Title asChild>\n <Heading size=\"5\" trim=\"start\" {...props} asChild={false} ref={forwardedRef} />\n </DialogPrimitive.Title>\n));\nDialogTitle.displayName = 'Dialog.Title';\n\ntype DialogDescriptionElement = HTMLParagraphElement;\ntype DialogDescriptionProps = ComponentPropsAs<typeof Text, 'p'>;\nconst DialogDescription = React.forwardRef<DialogDescriptionElement, DialogDescriptionProps>((props, forwardedRef) => (\n <DialogPrimitive.Description asChild>\n <Text as=\"p\" size=\"3\" {...props} asChild={false} ref={forwardedRef} />\n </DialogPrimitive.Description>\n));\nDialogDescription.displayName = 'Dialog.Description';\n\ntype DialogCloseElement = React.ElementRef<typeof DialogPrimitive.Close>;\ninterface DialogCloseProps extends ComponentPropsWithout<typeof DialogPrimitive.Close, RemovedProps> {}\nconst DialogClose = React.forwardRef<DialogCloseElement, DialogCloseProps>(({ children, ...props }, forwardedRef) => (\n <DialogPrimitive.Close {...props} ref={forwardedRef} asChild>\n {requireReactElement(children)}\n </DialogPrimitive.Close>\n));\nDialogClose.displayName = 'Dialog.Close';\n\nexport { DialogRoot as Root, DialogTrigger as Trigger, DialogContent as Content, DialogTitle as Title, DialogDescription as Description, DialogClose as Close };\n\nexport type {\n DialogRootProps as RootProps,\n DialogTriggerProps as TriggerProps,\n DialogContentProps as ContentProps,\n DialogTitleProps as TitleProps,\n DialogDescriptionProps as DescriptionProps,\n DialogCloseProps as CloseProps,\n};\n"],
|
|
5
|
+
"mappings": ";wWAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,WAAAE,EAAA,YAAAC,EAAA,gBAAAC,EAAA,SAAAC,EAAA,UAAAC,EAAA,YAAAC,IAAA,UAAYC,MAAW,QACvB,OAAOC,MAAgB,aACvB,OAAS,UAAUC,MAAuB,WAe1C,IAAMC,EAAyCC,GAAU,gBAACC,EAAgB,KAAhB,CAAsB,GAAGD,EAAO,MAAK,GAAC,EAChGD,EAAW,YAAc,cAIzB,IAAMG,EAAsB,aAAqD,CAAC,CAAE,SAAAC,EAAU,GAAGH,CAAM,EAAGI,IACxG,gBAACH,EAAgB,QAAhB,CAAyB,GAAGD,EAAO,IAAKI,EAAc,QAAO,IAC3DC,EAAoBF,CAAQ,CAC/B,CACD,EACDD,EAAc,YAAc,iBAK5B,GAAM,CAAE,MAAOI,EAAc,GAAGC,CAAgB,EAAIC,EAC9CC,EAAgB,CAAE,MAAOH,CAAa,EAMtCI,EAAsB,aAAqD,CAAC,CAAE,MAAAC,EAAO,GAAGC,CAAS,EAAGR,IAAiB,CACzH,IAAMJ,EAAQa,EAAkBD,EAAUL,EAAgB,IAAI,EACxD,CAAE,UAAWO,CAAe,EAAIC,EAAa,CAAE,MAAAJ,CAAM,EAAGF,CAAa,EAErE,CAAE,UAAAO,EAAW,WAAAC,EAAY,UAAAC,EAAW,iBAAAC,EAAkB,GAAGC,CAAa,EAAIL,EAAaf,EAAOO,CAAe,EAGnH,OAAAc,EAA4B,EAG1B,gBAACpB,EAAgB,OAAhB,CAAuB,UAAWiB,EAAW,WAAYD,GACxD,gBAACK,EAAA,CAAM,QAAO,IACZ,gBAACrB,EAAgB,QAAhB,CAAwB,UAAU,2CACjC,gBAAC,OAAI,UAAU,yCACb,gBAAC,OAAI,UAAW,uDAAuDa,CAAc,IACnF,gBAACb,EAAgB,QAAhB,CACE,GAAGmB,EACJ,IAAKhB,EACL,UAAWmB,EAAW,wBAAyB,oBAAqBP,CAAS,EAC7E,aAAW,OACX,iBAAmBQ,GAAU,CAE3BL,IAAmBK,CAAK,EAExB,SAAS,KAAK,MAAM,cAAgB,EACtC,EACF,CACF,CACF,CACF,CACF,CACF,CAEJ,CAAC,EACDd,EAAc,YAAc,iBAI5B,IAAMe,EAAoB,aAAiD,CAACzB,EAAOI,IACjF,gBAACH,EAAgB,MAAhB,CAAsB,QAAO,IAC5B,gBAACyB,EAAA,CAAQ,KAAK,IAAI,KAAK,QAAS,GAAG1B,EAAO,QAAS,GAAO,IAAKI,EAAc,CAC/E,CACD,EACDqB,EAAY,YAAc,eAI1B,IAAME,EAA0B,aAA6D,CAAC3B,EAAOI,IACnG,gBAACH,EAAgB,YAAhB,CAA4B,QAAO,IAClC,gBAAC2B,EAAA,CAAK,GAAG,IAAI,KAAK,IAAK,GAAG5B,EAAO,QAAS,GAAO,IAAKI,EAAc,CACtE,CACD,EACDuB,EAAkB,YAAc,qBAIhC,IAAME,EAAoB,aAAiD,CAAC,CAAE,SAAA1B,EAAU,GAAGH,CAAM,EAAGI,IAClG,gBAACH,EAAgB,MAAhB,CAAuB,GAAGD,EAAO,IAAKI,EAAc,QAAO,IACzDC,EAAoBF,CAAQ,CAC/B,CACD,EACD0B,EAAY,YAAc",
|
|
6
|
+
"names": ["dialog_exports", "__export", "DialogClose", "DialogContent", "DialogDescription", "DialogRoot", "DialogTitle", "DialogTrigger", "React", "classNames", "DialogPrimitive", "DialogRoot", "props", "DialogPrimitive", "DialogTrigger", "children", "forwardedRef", "requireReactElement", "alignPropDef", "contentPropDefs", "dialogContentPropDefs", "alignPropDefs", "DialogContent", "align", "ownProps", "useThemeSizeProps", "alignClassName", "extractProps", "className", "forceMount", "container", "onCloseAutoFocus", "contentProps", "useBodyPointerEventsCleanup", "Theme", "classNames", "event", "DialogTitle", "Heading", "DialogDescription", "Text", "DialogClose"]
|
|
7
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{a as u}from"./chunk-I3SRUPUP.js";import{c as S}from"./chunk-
|
|
3
|
-
//# sourceMappingURL=chunk-
|
|
2
|
+
import{a as u}from"./chunk-I3SRUPUP.js";import{c as S}from"./chunk-5ON3XLRD.js";import{c as R}from"./chunk-OKQAVYW4.js";import{a as K}from"./chunk-VQPANPMI.js";var W={};K(W,{Item:()=>x,Root:()=>h});import*as e from"react";import y from"classnames";import{ToggleGroup as v}from"radix-ui";import{useComposedRefs as M,useControllableState as O,useLayoutEffect as F}from"radix-ui/internal";var I=e.createContext(null),H=new Set(["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End"]),h=e.forwardRef((n,s)=>{let a=S(n,u.size),{className:l,children:t,radius:m,value:d,defaultValue:i,onValueChange:w,style:b,disabled:c,onKeyDown:N,onPointerDown:k,...T}=R(a,u),[g,p]=O({prop:d,onChange:w,defaultProp:i??""}),r=e.useRef(!1),A=e.useMemo(()=>({selectFromKeyboard(o){r.current&&(r.current=!1,p(o))}}),[p]),f=e.useRef(null),D=M(s,f),C=e.Children.toArray(t).filter(e.isValidElement),V=C.length,G=Math.max(0,C.findIndex(o=>o.props.value===g));return F(()=>{let o=f.current;if(!o)return;let P=Array.from(o.querySelectorAll(":scope > .kui-SegmentedControlItem")),L=P.findIndex(E=>E.getAttribute("data-state")==="on");o.style.setProperty("--segmented-control-count",String(P.length||1)),o.style.setProperty("--segmented-control-index",String(Math.max(0,L)))}),e.createElement(I.Provider,{value:A},e.createElement(v.Root,{"data-disabled":c||void 0,"data-radius":m,ref:D,style:{"--segmented-control-count":V||1,"--segmented-control-index":G,...b},className:y("kui-SegmentedControlRoot",l),onValueChange:o=>{o&&p(o)},onKeyDown:o=>{N?.(o),r.current=H.has(o.key)},onPointerDown:o=>{k?.(o),r.current=!1},...T,type:"single",value:g,asChild:!1,disabled:!!c},t,e.createElement("div",{className:"kui-SegmentedControlIndicator"})))});h.displayName="SegmentedControl.Root";var x=e.forwardRef(({children:n,className:s,iconOnly:a,onFocus:l,...t},m)=>{let d=e.useContext(I);return e.createElement(v.Item,{ref:m,className:y("kui-reset","kui-SegmentedControlItem",s),"data-icon-only":a||void 0,onFocus:i=>{l?.(i),d?.selectFromKeyboard(t.value)},...t,asChild:!1},e.createElement("span",{className:"kui-SegmentedControlItemSeparator"}),e.createElement("span",{className:"kui-SegmentedControlItemLabel"},e.createElement("span",{className:"kui-SegmentedControlItemLabelActive"},n),e.createElement("span",{className:"kui-SegmentedControlItemLabelInactive","aria-hidden":!0},n)))});x.displayName="SegmentedControl.Item";export{h as a,x as b,W as c};
|
|
3
|
+
//# sourceMappingURL=chunk-MQEWEAH5.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/segmented-control.tsx"],
|
|
4
|
+
"sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { ToggleGroup as ToggleGroupPrimitive } from 'radix-ui';\nimport { useComposedRefs, useControllableState, useLayoutEffect } from 'radix-ui/internal';\n\nimport { segmentedControlRootPropDefs } from './segmented-control.props.js';\nimport { extractProps } from '../helpers/extract-props.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 SegmentedControlRootOwnProps = GetPropDefTypes<typeof segmentedControlRootPropDefs>;\n\ninterface SegmentedControlRootProps extends ComponentPropsWithout<'div', RemovedProps | 'dir'>, SegmentedControlRootOwnProps {\n value?: string;\n defaultValue?: string;\n onValueChange?(value: string): void;\n}\n\n// Arrow keys select as they move focus, as in a radio group. The root marks a key press, and the\n// item that takes focus from it selects itself. A click or Tab focuses without selecting.\nconst SegmentedControlContext = React.createContext<{ selectFromKeyboard(value: string): void } | null>(null);\n\nconst NAVIGATION_KEYS = new Set(['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Home', 'End']);\n\nconst SegmentedControlRoot = React.forwardRef<HTMLDivElement, SegmentedControlRootProps>((ownProps, forwardedRef) => {\n const props = useThemeSizeProps(ownProps, segmentedControlRootPropDefs.size);\n const {\n className,\n children,\n radius,\n value: valueProp,\n defaultValue: defaultValueProp,\n onValueChange: onValueChangeProp,\n style,\n disabled,\n onKeyDown,\n onPointerDown,\n ...rootProps\n } = extractProps(props, segmentedControlRootPropDefs);\n\n const [value, setValue] = useControllableState({\n prop: valueProp,\n onChange: onValueChangeProp,\n defaultProp: defaultValueProp ?? '',\n });\n\n // The indicator is sized and placed from the item count and the selected index, written\n // as custom properties. They are read from the children on render, so the server markup\n // is right, then corrected from the DOM, which also sees items inside fragments or\n // wrapper components.\n const keyboardNavigationRef = React.useRef(false);\n const context = React.useMemo(\n () => ({\n selectFromKeyboard(itemValue: string) {\n if (!keyboardNavigationRef.current) return;\n keyboardNavigationRef.current = false;\n setValue(itemValue);\n },\n }),\n [setValue],\n );\n\n const rootRef = React.useRef<HTMLDivElement>(null);\n const composedRef = useComposedRefs(forwardedRef, rootRef);\n const items = React.Children.toArray(children).filter(React.isValidElement);\n const renderedCount = items.length;\n const renderedIndex = Math.max(\n 0,\n items.findIndex((child) => (child.props as { value?: unknown }).value === value),\n );\n useLayoutEffect(() => {\n const root = rootRef.current;\n if (!root) return;\n const domItems = Array.from(root.querySelectorAll(':scope > .kui-SegmentedControlItem'));\n const index = domItems.findIndex((item) => item.getAttribute('data-state') === 'on');\n root.style.setProperty('--segmented-control-count', String(domItems.length || 1));\n root.style.setProperty('--segmented-control-index', String(Math.max(0, index)));\n });\n\n return (\n <SegmentedControlContext.Provider value={context}>\n <ToggleGroupPrimitive.Root\n data-disabled={disabled || undefined}\n data-radius={radius}\n ref={composedRef}\n style={\n {\n '--segmented-control-count': renderedCount || 1,\n '--segmented-control-index': renderedIndex,\n ...style,\n } as React.CSSProperties\n }\n className={classNames('kui-SegmentedControlRoot', className)}\n onValueChange={(value) => {\n if (value) {\n setValue(value);\n }\n }}\n onKeyDown={(event) => {\n onKeyDown?.(event);\n keyboardNavigationRef.current = NAVIGATION_KEYS.has(event.key);\n }}\n onPointerDown={(event) => {\n onPointerDown?.(event);\n keyboardNavigationRef.current = false;\n }}\n {...rootProps}\n type=\"single\"\n value={value}\n asChild={false}\n disabled={!!disabled}\n >\n {children}\n <div className=\"kui-SegmentedControlIndicator\" />\n </ToggleGroupPrimitive.Root>\n </SegmentedControlContext.Provider>\n );\n});\n\nSegmentedControlRoot.displayName = 'SegmentedControl.Root';\n\ninterface SegmentedControlItemOwnProps {\n value: string;\n /** When true, this segment can't be selected. */\n disabled?: boolean;\n /** When true, applies fixed square width for icon-only segments */\n iconOnly?: boolean;\n}\n\ninterface SegmentedControlItemProps extends ComponentPropsWithout<typeof ToggleGroupPrimitive.Item, RemovedProps | 'type' | 'value'>, SegmentedControlItemOwnProps {}\n\nconst SegmentedControlItem = React.forwardRef<HTMLButtonElement, SegmentedControlItemProps>(({ children, className, iconOnly, onFocus, ...props }, forwardedRef) => {\n const context = React.useContext(SegmentedControlContext);\n return (\n <ToggleGroupPrimitive.Item\n ref={forwardedRef}\n className={classNames('kui-reset', 'kui-SegmentedControlItem', className)}\n data-icon-only={iconOnly || undefined}\n onFocus={(event) => {\n onFocus?.(event);\n context?.selectFromKeyboard(props.value);\n }}\n {...props}\n asChild={false}\n >\n <span className=\"kui-SegmentedControlItemSeparator\" />\n <span className=\"kui-SegmentedControlItemLabel\">\n <span className=\"kui-SegmentedControlItemLabelActive\">{children}</span>\n <span className=\"kui-SegmentedControlItemLabelInactive\" aria-hidden>\n {children}\n </span>\n </span>\n </ToggleGroupPrimitive.Item>\n );\n});\n\nSegmentedControlItem.displayName = 'SegmentedControl.Item';\n\nexport { SegmentedControlRoot as Root, SegmentedControlItem as Item };\nexport type { SegmentedControlRootProps as RootProps, SegmentedControlItemProps as ItemProps };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["segmented_control_exports", "__export", "SegmentedControlItem", "SegmentedControlRoot", "React", "classNames", "ToggleGroupPrimitive", "useComposedRefs", "useControllableState", "useLayoutEffect", "SegmentedControlContext", "NAVIGATION_KEYS", "SegmentedControlRoot", "ownProps", "forwardedRef", "props", "useThemeSizeProps", "segmentedControlRootPropDefs", "className", "children", "radius", "valueProp", "defaultValueProp", "onValueChangeProp", "style", "disabled", "onKeyDown", "onPointerDown", "rootProps", "extractProps", "value", "setValue", "useControllableState", "keyboardNavigationRef", "context", "itemValue", "rootRef", "composedRef", "useComposedRefs", "items", "renderedCount", "renderedIndex", "child", "useLayoutEffect", "root", "domItems", "index", "item", "ToggleGroupPrimitive", "classNames", "event", "SegmentedControlItem", "iconOnly", "onFocus"]
|
|
7
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{a as r}from"./chunk-GHUAUFG7.js";import{a as e}from"./chunk-IZIDRDQW.js";import{a as S}from"./chunk-
|
|
3
|
-
//# sourceMappingURL=chunk-
|
|
2
|
+
import{a as r}from"./chunk-GHUAUFG7.js";import{a as e}from"./chunk-IZIDRDQW.js";import{a as S}from"./chunk-5ON3XLRD.js";import*as a from"react";import B from"classnames";import{Direction as D,Slot as E}from"radix-ui";function H(o){switch(o){case"tomato":case"red":case"ruby":case"crimson":case"pink":case"plum":case"purple":case"violet":return"mauve";case"iris":case"indigo":case"blue":case"sky":case"cyan":return"slate";case"teal":case"jade":case"mint":case"green":return"sage";case"grass":case"lime":return"olive";case"yellow":case"amber":case"orange":case"brown":case"gold":case"bronze":return"sand";case"gray":return"gray"}}var t=()=>{},N={appearance:e.appearance.default,accentColor:e.accentColor.default,grayColor:e.grayColor.default,resolvedGrayColor:e.grayColor.default,radius:e.radius.default,fontFamily:e.fontFamily.default,headingFontFamily:void 0,size:e.size.default,onAppearanceChange:t,onAccentColorChange:t,onGrayColorChange:t,onRadiusChange:t,onFontFamilyChange:t,onHeadingFontFamilyChange:t,onSizeChange:t},A=a.createContext(void 0);function L(){return a.useContext(A)??N}var j=a.forwardRef((o,i)=>{let n=a.useContext(A),s=D.useDirection();return n===void 0?a.createElement(D.Provider,{dir:s},a.createElement(w,{...o,ref:i})):a.createElement(I,{...o,ref:i})});j.displayName="Theme";var w=a.forwardRef((o,i)=>{let{appearance:n=e.appearance.default,accentColor:s=e.accentColor.default,grayColor:d=e.grayColor.default,radius:g=e.radius.default,fontFamily:l=e.fontFamily.default,headingFontFamily:c,size:m=e.size.default,hasBackground:h=e.hasBackground.default,...p}=o,[u,C]=r(n),[f,F]=r(s),[T,P]=r(d),[v,R]=r(g),[x,z]=r(l),[b,y]=r(c),[G,k]=r(m);return a.createElement(I,{...p,ref:i,isRoot:!0,hasBackground:h,appearance:u,accentColor:f,grayColor:T,radius:v,fontFamily:x,headingFontFamily:b,size:G,onAppearanceChange:C,onAccentColorChange:F,onGrayColorChange:P,onRadiusChange:R,onFontFamilyChange:z,onHeadingFontFamilyChange:y,onSizeChange:k})});w.displayName="ThemeRoot";var I=a.forwardRef((o,i)=>{let n=a.useContext(A),{asChild:s,isRoot:d,hasBackground:g,appearance:l=o.appearance??n?.appearance??e.appearance.default,accentColor:c=o.accentColor??n?.accentColor??e.accentColor.default,grayColor:m=o.grayColor??n?.resolvedGrayColor??e.grayColor.default,radius:h=o.radius??n?.radius??e.radius.default,fontFamily:p=o.fontFamily??n?.fontFamily??e.fontFamily.default,headingFontFamily:u=o.headingFontFamily??n?.headingFontFamily,size:C=o.size??n?.size??e.size.default,onAppearanceChange:f=n?.onAppearanceChange??t,onAccentColorChange:F=n?.onAccentColorChange??t,onGrayColorChange:T=n?.onGrayColorChange??t,onRadiusChange:P=n?.onRadiusChange??t,onFontFamilyChange:v=n?.onFontFamilyChange??t,onHeadingFontFamilyChange:R=n?.onHeadingFontFamilyChange??t,onSizeChange:x=n?.onSizeChange??t,...z}=o,b=s?E.Root:"div",y=m==="auto"?H(c):m,G=o.appearance==="light"||o.appearance==="dark",k=g===void 0?d||G:g;return a.createElement(A.Provider,{value:a.useMemo(()=>({appearance:l,accentColor:c,grayColor:m,resolvedGrayColor:y,radius:h,fontFamily:p,headingFontFamily:u,size:C,onAppearanceChange:f,onAccentColorChange:F,onGrayColorChange:T,onRadiusChange:P,onFontFamilyChange:v,onHeadingFontFamilyChange:R,onSizeChange:x}),[l,c,m,y,h,p,u,C,f,F,T,P,v,R,x])},a.createElement(S.Provider,{value:C},a.createElement(b,{"data-is-root-theme":d?"true":"false","data-accent-color":c,"data-gray-color":y,"data-has-background":k?"true":"false","data-radius":h,"data-font-family":p,"data-heading-font-family":u,ref:i,...z,className:B("kui-theme",{light:l==="light",dark:l==="dark"},z.className)})))});I.displayName="ThemeImpl";export{A as a,L as b,j as c};
|
|
3
|
+
//# sourceMappingURL=chunk-N3QLHFHB.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/theme.tsx", "../../src/helpers/get-matching-gray-color.ts"],
|
|
4
|
+
"sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Direction, Slot } from 'radix-ui';\n\nimport { getMatchingGrayColor } from '../helpers/get-matching-gray-color.js';\nimport { ThemeSizeContext } from '../hooks/theme-size.js';\nimport { usePropSyncedState } from '../hooks/use-prop-synced-state.js';\nimport { themePropDefs } from './theme.props.js';\n\nimport type { ThemeOwnProps } from './theme.props.js';\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\n\nconst noop = () => {};\n\ntype ThemeAppearance = (typeof themePropDefs.appearance.values)[number];\ntype ThemeAccentColor = (typeof themePropDefs.accentColor.values)[number];\ntype ThemeGrayColor = (typeof themePropDefs.grayColor.values)[number];\ntype ThemeRadius = (typeof themePropDefs.radius.values)[number];\ntype ThemeFontFamily = (typeof themePropDefs.fontFamily.values)[number];\ntype ThemeSize = (typeof themePropDefs.size.values)[number];\n// Headings follow the body font until something sets this, so `undefined` is a\n// meaningful value here rather than a missing one.\ntype ThemeHeadingFontFamily = ThemeFontFamily | undefined;\n\ninterface ThemeChangeHandlers {\n onAppearanceChange: (appearance: ThemeAppearance) => void;\n onAccentColorChange: (accentColor: ThemeAccentColor) => void;\n onGrayColorChange: (grayColor: ThemeGrayColor) => void;\n onRadiusChange: (radius: ThemeRadius) => void;\n onFontFamilyChange: (fontFamily: ThemeFontFamily) => void;\n onHeadingFontFamilyChange: (headingFontFamily: ThemeHeadingFontFamily) => void;\n onSizeChange: (size: ThemeSize) => void;\n}\n\ninterface ThemeContextValue extends ThemeChangeHandlers {\n appearance: ThemeAppearance;\n accentColor: ThemeAccentColor;\n grayColor: ThemeGrayColor;\n resolvedGrayColor: ThemeGrayColor;\n radius: ThemeRadius;\n fontFamily: ThemeFontFamily;\n headingFontFamily: ThemeHeadingFontFamily;\n size: ThemeSize;\n}\n// Default theme values used when components render outside a Theme provider\nconst defaultThemeContext: ThemeContextValue = {\n appearance: themePropDefs.appearance.default,\n accentColor: themePropDefs.accentColor.default,\n grayColor: themePropDefs.grayColor.default,\n resolvedGrayColor: themePropDefs.grayColor.default,\n radius: themePropDefs.radius.default,\n fontFamily: themePropDefs.fontFamily.default,\n headingFontFamily: undefined,\n size: themePropDefs.size.default,\n onAppearanceChange: noop,\n onAccentColorChange: noop,\n onGrayColorChange: noop,\n onRadiusChange: noop,\n onFontFamilyChange: noop,\n onHeadingFontFamilyChange: noop,\n onSizeChange: noop,\n};\n\nconst ThemeContext = React.createContext<ThemeContextValue | undefined>(undefined);\n\nfunction useThemeContext() {\n const context = React.useContext(ThemeContext);\n // Return default context if used outside Theme provider (e.g., during SSR)\n return context ?? defaultThemeContext;\n}\n\ninterface ThemeProps extends ThemeImplPublicProps {}\nconst Theme = React.forwardRef<ThemeImplElement, ThemeProps>((props, forwardedRef) => {\n const context = React.useContext(ThemeContext);\n // Direction is inherited: a Radix DirectionProvider above the Theme (for a right-to-left app)\n // wins, and left-to-right stays the default when there is none.\n const dir = Direction.useDirection();\n const isRoot = context === undefined;\n if (isRoot) {\n return (\n <Direction.Provider dir={dir}>\n <ThemeRoot {...props} ref={forwardedRef} />\n </Direction.Provider>\n );\n }\n return <ThemeImpl {...props} ref={forwardedRef} />;\n});\nTheme.displayName = 'Theme';\n\nconst ThemeRoot = React.forwardRef<ThemeImplElement, ThemeImplPublicProps>((props, forwardedRef) => {\n const {\n appearance: appearanceProp = themePropDefs.appearance.default,\n accentColor: accentColorProp = themePropDefs.accentColor.default,\n grayColor: grayColorProp = themePropDefs.grayColor.default,\n radius: radiusProp = themePropDefs.radius.default,\n fontFamily: fontFamilyProp = themePropDefs.fontFamily.default,\n headingFontFamily: headingFontFamilyProp,\n size: sizeProp = themePropDefs.size.default,\n hasBackground = themePropDefs.hasBackground.default,\n ...rootProps\n } = props;\n\n // Each of these follows its prop but stays independently settable, so\n // the context setters can change the theme at runtime. Syncing during render\n // rather than in an effect matters here: an effect would commit the old\n // theme first and re-render every consumer of the context a second time.\n const [appearance, setAppearance] = usePropSyncedState(appearanceProp);\n const [accentColor, setAccentColor] = usePropSyncedState(accentColorProp);\n const [grayColor, setGrayColor] = usePropSyncedState(grayColorProp);\n const [radius, setRadius] = usePropSyncedState(radiusProp);\n const [fontFamily, setFontFamily] = usePropSyncedState(fontFamilyProp);\n const [headingFontFamily, setHeadingFontFamily] = usePropSyncedState(headingFontFamilyProp);\n const [size, setSize] = usePropSyncedState(sizeProp);\n\n return (\n <ThemeImpl\n {...rootProps}\n ref={forwardedRef}\n isRoot\n hasBackground={hasBackground}\n //\n appearance={appearance}\n accentColor={accentColor}\n grayColor={grayColor}\n radius={radius}\n fontFamily={fontFamily}\n headingFontFamily={headingFontFamily}\n size={size}\n //\n onAppearanceChange={setAppearance}\n onAccentColorChange={setAccentColor}\n onGrayColorChange={setGrayColor}\n onRadiusChange={setRadius}\n onFontFamilyChange={setFontFamily}\n onHeadingFontFamilyChange={setHeadingFontFamily}\n onSizeChange={setSize}\n />\n );\n});\nThemeRoot.displayName = 'ThemeRoot';\n\ntype ThemeImplElement = React.ElementRef<'div'>;\ninterface ThemeImplProps extends ThemeImplPublicProps, ThemeImplPrivateProps {}\ninterface ThemeImplPublicProps extends ComponentPropsWithout<'div', RemovedProps | 'dir'>, ThemeOwnProps {}\ninterface ThemeImplPrivateProps extends Partial<ThemeChangeHandlers> {\n isRoot?: boolean;\n}\nconst ThemeImpl = React.forwardRef<ThemeImplElement, ThemeImplProps>((props, forwardedRef) => {\n const context = React.useContext(ThemeContext);\n const {\n asChild,\n isRoot,\n hasBackground: hasBackgroundProp,\n //\n appearance = props.appearance ?? context?.appearance ?? themePropDefs.appearance.default,\n accentColor = props.accentColor ?? context?.accentColor ?? themePropDefs.accentColor.default,\n grayColor = props.grayColor ?? context?.resolvedGrayColor ?? themePropDefs.grayColor.default,\n radius = props.radius ?? context?.radius ?? themePropDefs.radius.default,\n fontFamily = props.fontFamily ?? context?.fontFamily ?? themePropDefs.fontFamily.default,\n headingFontFamily = props.headingFontFamily ?? context?.headingFontFamily,\n size = props.size ?? context?.size ?? themePropDefs.size.default,\n // A nested Theme forwards changes to the one above it, so a switcher\n // inside a portal (Dialog, Popover, menus) still reaches the root.\n onAppearanceChange = context?.onAppearanceChange ?? noop,\n onAccentColorChange = context?.onAccentColorChange ?? noop,\n onGrayColorChange = context?.onGrayColorChange ?? noop,\n onRadiusChange = context?.onRadiusChange ?? noop,\n onFontFamilyChange = context?.onFontFamilyChange ?? noop,\n onHeadingFontFamilyChange = context?.onHeadingFontFamilyChange ?? noop,\n onSizeChange = context?.onSizeChange ?? noop,\n //\n ...themeProps\n } = props;\n const Comp = asChild ? Slot.Root : 'div';\n const resolvedGrayColor = grayColor === 'auto' ? getMatchingGrayColor(accentColor) : grayColor;\n const isExplicitAppearance = props.appearance === 'light' || props.appearance === 'dark';\n const hasBackground = hasBackgroundProp === undefined ? isRoot || isExplicitAppearance : hasBackgroundProp;\n\n return (\n <ThemeContext.Provider\n value={React.useMemo(\n () => ({\n appearance,\n accentColor,\n grayColor,\n resolvedGrayColor,\n radius,\n fontFamily,\n headingFontFamily,\n size,\n //\n onAppearanceChange,\n onAccentColorChange,\n onGrayColorChange,\n onRadiusChange,\n onFontFamilyChange,\n onHeadingFontFamilyChange,\n onSizeChange,\n }),\n [\n appearance,\n accentColor,\n grayColor,\n resolvedGrayColor,\n radius,\n fontFamily,\n headingFontFamily,\n size,\n //\n onAppearanceChange,\n onAccentColorChange,\n onGrayColorChange,\n onRadiusChange,\n onFontFamilyChange,\n onHeadingFontFamilyChange,\n onSizeChange,\n ],\n )}\n >\n {/* Size travels on its own context as a bare string, so the components\n that read it do not re-render when another theme value changes. */}\n <ThemeSizeContext.Provider value={size}>\n <Comp\n data-is-root-theme={isRoot ? 'true' : 'false'}\n data-accent-color={accentColor}\n data-gray-color={resolvedGrayColor}\n // for nested `Theme` background\n data-has-background={hasBackground ? 'true' : 'false'}\n data-radius={radius}\n data-font-family={fontFamily}\n data-heading-font-family={headingFontFamily}\n ref={forwardedRef}\n {...themeProps}\n className={classNames(\n 'kui-theme',\n {\n light: appearance === 'light',\n dark: appearance === 'dark',\n },\n themeProps.className,\n )}\n />\n </ThemeSizeContext.Provider>\n </ThemeContext.Provider>\n );\n});\nThemeImpl.displayName = 'ThemeImpl';\n\nexport { Theme, ThemeContext, useThemeContext };\nexport type { ThemeProps, ThemeContextValue };\n", "import type { accentColors } from '../props/color.prop.js';\n\ntype ThemeAccentColor = (typeof accentColors)[number];\n\nexport function getMatchingGrayColor(accentColor: ThemeAccentColor) {\n switch (accentColor) {\n case 'tomato':\n case 'red':\n case 'ruby':\n case 'crimson':\n case 'pink':\n case 'plum':\n case 'purple':\n case 'violet':\n return 'mauve';\n case 'iris':\n case 'indigo':\n case 'blue':\n case 'sky':\n case 'cyan':\n return 'slate';\n case 'teal':\n case 'jade':\n case 'mint':\n case 'green':\n return 'sage';\n case 'grass':\n case 'lime':\n return 'olive';\n case 'yellow':\n case 'amber':\n case 'orange':\n case 'brown':\n case 'gold':\n case 'bronze':\n return 'sand';\n case 'gray':\n return 'gray';\n }\n}\n"],
|
|
5
|
+
"mappings": ";wHAEA,UAAYA,MAAW,QACvB,OAAOC,MAAgB,aACvB,OAAS,aAAAC,EAAW,QAAAC,MAAY,WCAzB,SAASC,EAAqBC,EAA+B,CAClE,OAAQA,EAAa,CACnB,IAAK,SACL,IAAK,MACL,IAAK,OACL,IAAK,UACL,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,SACH,MAAO,QACT,IAAK,OACL,IAAK,SACL,IAAK,OACL,IAAK,MACL,IAAK,OACH,MAAO,QACT,IAAK,OACL,IAAK,OACL,IAAK,OACL,IAAK,QACH,MAAO,OACT,IAAK,QACL,IAAK,OACH,MAAO,QACT,IAAK,SACL,IAAK,QACL,IAAK,SACL,IAAK,QACL,IAAK,OACL,IAAK,SACH,MAAO,OACT,IAAK,OACH,MAAO,MACX,CACF,CDzBA,IAAMC,EAAO,IAAM,CAAC,EAiCdC,EAAyC,CAC7C,WAAYC,EAAc,WAAW,QACrC,YAAaA,EAAc,YAAY,QACvC,UAAWA,EAAc,UAAU,QACnC,kBAAmBA,EAAc,UAAU,QAC3C,OAAQA,EAAc,OAAO,QAC7B,WAAYA,EAAc,WAAW,QACrC,kBAAmB,OACnB,KAAMA,EAAc,KAAK,QACzB,mBAAoBF,EACpB,oBAAqBA,EACrB,kBAAmBA,EACnB,eAAgBA,EAChB,mBAAoBA,EACpB,0BAA2BA,EAC3B,aAAcA,CAChB,EAEMG,EAAqB,gBAA6C,MAAS,EAEjF,SAASC,GAAkB,CAGzB,OAFsB,aAAWD,CAAY,GAE3BF,CACpB,CAGA,IAAMI,EAAc,aAAyC,CAACC,EAAOC,IAAiB,CACpF,IAAMC,EAAgB,aAAWL,CAAY,EAGvCM,EAAMC,EAAU,aAAa,EAEnC,OADeF,IAAY,OAGvB,gBAACE,EAAU,SAAV,CAAmB,IAAKD,GACvB,gBAACE,EAAA,CAAW,GAAGL,EAAO,IAAKC,EAAc,CAC3C,EAGG,gBAACK,EAAA,CAAW,GAAGN,EAAO,IAAKC,EAAc,CAClD,CAAC,EACDF,EAAM,YAAc,QAEpB,IAAMM,EAAkB,aAAmD,CAACL,EAAOC,IAAiB,CAClG,GAAM,CACJ,WAAYM,EAAiBX,EAAc,WAAW,QACtD,YAAaY,EAAkBZ,EAAc,YAAY,QACzD,UAAWa,EAAgBb,EAAc,UAAU,QACnD,OAAQc,EAAad,EAAc,OAAO,QAC1C,WAAYe,EAAiBf,EAAc,WAAW,QACtD,kBAAmBgB,EACnB,KAAMC,EAAWjB,EAAc,KAAK,QACpC,cAAAkB,EAAgBlB,EAAc,cAAc,QAC5C,GAAGmB,CACL,EAAIf,EAME,CAACgB,EAAYC,CAAa,EAAIC,EAAmBX,CAAc,EAC/D,CAACY,EAAaC,CAAc,EAAIF,EAAmBV,CAAe,EAClE,CAACa,EAAWC,CAAY,EAAIJ,EAAmBT,CAAa,EAC5D,CAACc,EAAQC,CAAS,EAAIN,EAAmBR,CAAU,EACnD,CAACe,EAAYC,CAAa,EAAIR,EAAmBP,CAAc,EAC/D,CAACgB,EAAmBC,CAAoB,EAAIV,EAAmBN,CAAqB,EACpF,CAACiB,EAAMC,CAAO,EAAIZ,EAAmBL,CAAQ,EAEnD,OACE,gBAACP,EAAA,CACE,GAAGS,EACJ,IAAKd,EACL,OAAM,GACN,cAAea,EAEf,WAAYE,EACZ,YAAaG,EACb,UAAWE,EACX,OAAQE,EACR,WAAYE,EACZ,kBAAmBE,EACnB,KAAME,EAEN,mBAAoBZ,EACpB,oBAAqBG,EACrB,kBAAmBE,EACnB,eAAgBE,EAChB,mBAAoBE,EACpB,0BAA2BE,EAC3B,aAAcE,EAChB,CAEJ,CAAC,EACDzB,EAAU,YAAc,YAQxB,IAAMC,EAAkB,aAA6C,CAACN,EAAOC,IAAiB,CAC5F,IAAMC,EAAgB,aAAWL,CAAY,EACvC,CACJ,QAAAkC,EACA,OAAAC,EACA,cAAeC,EAEf,WAAAjB,EAAahB,EAAM,YAAcE,GAAS,YAAcN,EAAc,WAAW,QACjF,YAAAuB,EAAcnB,EAAM,aAAeE,GAAS,aAAeN,EAAc,YAAY,QACrF,UAAAyB,EAAYrB,EAAM,WAAaE,GAAS,mBAAqBN,EAAc,UAAU,QACrF,OAAA2B,EAASvB,EAAM,QAAUE,GAAS,QAAUN,EAAc,OAAO,QACjE,WAAA6B,EAAazB,EAAM,YAAcE,GAAS,YAAcN,EAAc,WAAW,QACjF,kBAAA+B,EAAoB3B,EAAM,mBAAqBE,GAAS,kBACxD,KAAA2B,EAAO7B,EAAM,MAAQE,GAAS,MAAQN,EAAc,KAAK,QAGzD,mBAAAsC,EAAqBhC,GAAS,oBAAsBR,EACpD,oBAAAyC,EAAsBjC,GAAS,qBAAuBR,EACtD,kBAAA0C,EAAoBlC,GAAS,mBAAqBR,EAClD,eAAA2C,EAAiBnC,GAAS,gBAAkBR,EAC5C,mBAAA4C,EAAqBpC,GAAS,oBAAsBR,EACpD,0BAAA6C,EAA4BrC,GAAS,2BAA6BR,EAClE,aAAA8C,EAAetC,GAAS,cAAgBR,EAExC,GAAG+C,CACL,EAAIzC,EACE0C,EAAOX,EAAUY,EAAK,KAAO,MAC7BC,EAAoBvB,IAAc,OAASwB,EAAqB1B,CAAW,EAAIE,EAC/EyB,EAAuB9C,EAAM,aAAe,SAAWA,EAAM,aAAe,OAC5Ec,EAAgBmB,IAAsB,OAAYD,GAAUc,EAAuBb,EAEzF,OACE,gBAACpC,EAAa,SAAb,CACC,MAAa,UACX,KAAO,CACL,WAAAmB,EACA,YAAAG,EACA,UAAAE,EACA,kBAAAuB,EACA,OAAArB,EACA,WAAAE,EACA,kBAAAE,EACA,KAAAE,EAEA,mBAAAK,EACA,oBAAAC,EACA,kBAAAC,EACA,eAAAC,EACA,mBAAAC,EACA,0BAAAC,EACA,aAAAC,CACF,GACA,CACExB,EACAG,EACAE,EACAuB,EACArB,EACAE,EACAE,EACAE,EAEAK,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,CACF,CACF,GAIA,gBAACO,EAAiB,SAAjB,CAA0B,MAAOlB,GAChC,gBAACa,EAAA,CACC,qBAAoBV,EAAS,OAAS,QACtC,oBAAmBb,EACnB,kBAAiByB,EAEjB,sBAAqB9B,EAAgB,OAAS,QAC9C,cAAaS,EACb,mBAAkBE,EAClB,2BAA0BE,EAC1B,IAAK1B,EACJ,GAAGwC,EACJ,UAAWO,EACT,YACA,CACE,MAAOhC,IAAe,QACtB,KAAMA,IAAe,MACvB,EACAyB,EAAW,SACb,EACF,CACF,CACF,CAEJ,CAAC,EACDnC,EAAU,YAAc",
|
|
6
|
+
"names": ["React", "classNames", "Direction", "Slot", "getMatchingGrayColor", "accentColor", "noop", "defaultThemeContext", "themePropDefs", "ThemeContext", "useThemeContext", "Theme", "props", "forwardedRef", "context", "dir", "Direction", "ThemeRoot", "ThemeImpl", "appearanceProp", "accentColorProp", "grayColorProp", "radiusProp", "fontFamilyProp", "headingFontFamilyProp", "sizeProp", "hasBackground", "rootProps", "appearance", "setAppearance", "usePropSyncedState", "accentColor", "setAccentColor", "grayColor", "setGrayColor", "radius", "setRadius", "fontFamily", "setFontFamily", "headingFontFamily", "setHeadingFontFamily", "size", "setSize", "asChild", "isRoot", "hasBackgroundProp", "onAppearanceChange", "onAccentColorChange", "onGrayColorChange", "onRadiusChange", "onFontFamilyChange", "onHeadingFontFamilyChange", "onSizeChange", "themeProps", "Comp", "Slot", "resolvedGrayColor", "getMatchingGrayColor", "isExplicitAppearance", "ThemeSizeContext", "classNames"]
|
|
7
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{a as R}from"./chunk-ZFDHZEWN.js";import{a as f}from"./chunk-6UZT3ZLO.js";import{b as G}from"./chunk-
|
|
3
|
-
//# sourceMappingURL=chunk-
|
|
2
|
+
import{a as R}from"./chunk-ZFDHZEWN.js";import{a as f}from"./chunk-6UZT3ZLO.js";import{b as G}from"./chunk-5ON3XLRD.js";import{c as n}from"./chunk-OKQAVYW4.js";import{a as S}from"./chunk-VQPANPMI.js";var _={};S(_,{Item:()=>x,Root:()=>y});import*as o from"react";import c from"classnames";import{Context as v}from"radix-ui/internal";import{RadioGroup as d}from"radix-ui";var l="RadioGroup",[h]=v.createContextScope(l,[d.createRadioGroupScope]),P=d.createRadioGroupScope(),[E,I]=h(l),y=o.forwardRef(({color:a=R.color.default,size:e,variant:t=R.variant.default,...r},i)=>{let s=G(e,R.size),{__scopeRadioGroup:p,className:m,...C}=r,N=P(p);return o.createElement(E,{scope:p,color:a,size:s,variant:t},o.createElement(d.Root,{...N,...C,ref:i,className:c("kui-RadioGroupRoot",m)}))});y.displayName="RadioGroup.Root";var x=o.forwardRef((a,e)=>{let{__scopeRadioGroup:t,children:r,className:i,style:s,...p}=a,{size:m}=I("RadioGroupItem",t);return r?o.createElement(f,{as:"label",size:m,className:c("kui-RadioGroupItem",i),style:s},o.createElement(u,{__scopeRadioGroup:t,...p,ref:e}),r&&o.createElement("span",{className:"kui-RadioGroupItemInner"},r)):o.createElement(u,{__scopeRadioGroup:t,...p,ref:e,className:i,style:s})});x.displayName="RadioGroup.Item";var u=o.forwardRef(({__scopeRadioGroup:a,...e},t)=>{let r=I("RadioGroupItemRadio",a),i=P(a),{color:s,className:p}=n({...e,...r},R);return o.createElement(d.Item,{...i,"data-accent-color":s,...e,asChild:!1,ref:t,className:c("kui-reset","kui-BaseRadioRoot",p)})});u.displayName="RadioGroup.ItemRadio";export{y as a,x as b,_ as c};
|
|
3
|
+
//# sourceMappingURL=chunk-N5H7C3PZ.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/radio-group.tsx"],
|
|
4
|
+
"sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Context } from 'radix-ui/internal';\nimport { RadioGroup as RadioGroupPrimitive } from 'radix-ui';\n\nimport { radioGroupRootPropDefs } from './radio-group.props.js';\nimport { Text } from './text.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { useThemeSize } from '../hooks/theme-size.js';\n\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { GetPropDefTypes } from '../props/prop-def.js';\n\nconst RADIO_GROUP_NAME = 'RadioGroup';\n\ntype ScopedProps<P> = P & { __scopeRadioGroup?: Context.Scope };\nconst [createRadioGroupContext] = Context.createContextScope(RADIO_GROUP_NAME, [\n RadioGroupPrimitive.createRadioGroupScope,\n]);\nconst useRadioGroupScope = RadioGroupPrimitive.createRadioGroupScope();\n\ntype RadioGroupRootOwnProps = GetPropDefTypes<typeof radioGroupRootPropDefs>;\ntype RadioGroupContextValue = RadioGroupRootOwnProps;\n\nconst [RadioGroupProvider, useRadioGroupContext] =\n createRadioGroupContext<RadioGroupContextValue>(RADIO_GROUP_NAME);\n\ntype RadioGroupRootElement = React.ElementRef<typeof RadioGroupPrimitive.Root>;\ninterface RadioGroupRootProps\n extends ComponentPropsWithout<\n typeof RadioGroupPrimitive.Root,\n 'asChild' | 'color' | 'defaultChecked'\n >,\n RadioGroupRootOwnProps {}\nconst RadioGroupRoot = React.forwardRef<RadioGroupRootElement, RadioGroupRootProps>(\n (\n {\n color = radioGroupRootPropDefs.color.default,\n size: sizeProp,\n variant = radioGroupRootPropDefs.variant.default,\n ...props\n }: ScopedProps<RadioGroupRootProps>,\n forwardedRef\n ) => {\n const size = useThemeSize(sizeProp, radioGroupRootPropDefs.size);\n const { __scopeRadioGroup, className, ...rootProps } = props;\n const radioGroupScope = useRadioGroupScope(__scopeRadioGroup);\n return (\n <RadioGroupProvider\n scope={__scopeRadioGroup}\n color={color}\n size={size}\n variant={variant}\n >\n <RadioGroupPrimitive.Root\n {...radioGroupScope}\n {...rootProps}\n ref={forwardedRef}\n className={classNames('kui-RadioGroupRoot', className)}\n />\n </RadioGroupProvider>\n );\n }\n);\nRadioGroupRoot.displayName = 'RadioGroup.Root';\n\ntype RadioGroupItemElement = React.ElementRef<typeof RadioGroupItemRadio>;\ninterface RadioGroupItemProps\n extends ComponentPropsWithout<typeof RadioGroupItemRadio, RemovedProps> {}\nconst RadioGroupItem = React.forwardRef<RadioGroupItemElement, RadioGroupItemProps>(\n (_props: ScopedProps<RadioGroupItemProps>, forwardedRef) => {\n const { __scopeRadioGroup, children, className, style, ...props } = _props;\n const { size } = useRadioGroupContext('RadioGroupItem', __scopeRadioGroup);\n\n // Render `<Text as=\"label\">` if children\u00A0are provided, otherwise render\n // the solo radio button to allow building out your custom layouts with it.\n if (children) {\n return (\n <Text\n as=\"label\"\n size={size}\n className={classNames('kui-RadioGroupItem', className)}\n style={style}\n >\n <RadioGroupItemRadio\n __scopeRadioGroup={__scopeRadioGroup}\n {...props}\n ref={forwardedRef}\n />\n {children && <span className=\"kui-RadioGroupItemInner\">{children}</span>}\n </Text>\n );\n }\n\n return (\n <RadioGroupItemRadio\n __scopeRadioGroup={__scopeRadioGroup}\n {...props}\n ref={forwardedRef}\n className={className}\n style={style}\n />\n );\n }\n);\nRadioGroupItem.displayName = 'RadioGroup.Item';\n\ntype RadioGroupItemRadioElement = React.ElementRef<typeof RadioGroupPrimitive.Item>;\ninterface RadioGroupItemRadioProps\n extends React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item> {}\nconst RadioGroupItemRadio = React.forwardRef<\n RadioGroupItemRadioElement,\n ScopedProps<RadioGroupItemRadioProps>\n>(({ __scopeRadioGroup, ...props }, forwardedRef) => {\n const context = useRadioGroupContext('RadioGroupItemRadio', __scopeRadioGroup);\n const radioGroupScope = useRadioGroupScope(__scopeRadioGroup);\n const { color, className } = extractProps(\n { ...props, ...context },\n radioGroupRootPropDefs\n );\n return (\n <RadioGroupPrimitive.Item\n {...radioGroupScope}\n data-accent-color={color}\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('kui-reset', 'kui-BaseRadioRoot', className)}\n />\n );\n});\nRadioGroupItemRadio.displayName = 'RadioGroup.ItemRadio';\n\nexport { RadioGroupRoot as Root, RadioGroupItem as Item };\nexport type { RadioGroupRootProps as RootProps, RadioGroupItemProps as ItemProps };\n"],
|
|
5
|
+
"mappings": ";wMAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,UAAAE,EAAA,SAAAC,IAEA,UAAYC,MAAW,QACvB,OAAOC,MAAgB,aACvB,OAAS,WAAAC,MAAe,oBACxB,OAAS,cAAcC,MAA2B,WAUlD,IAAMC,EAAmB,aAGnB,CAACC,CAAuB,EAAIC,EAAQ,mBAAmBF,EAAkB,CAC7EG,EAAoB,qBACtB,CAAC,EACKC,EAAqBD,EAAoB,sBAAsB,EAK/D,CAACE,EAAoBC,CAAoB,EAC7CL,EAAgDD,CAAgB,EAS5DO,EAAuB,aAC3B,CACE,CACE,MAAAC,EAAQC,EAAuB,MAAM,QACrC,KAAMC,EACN,QAAAC,EAAUF,EAAuB,QAAQ,QACzC,GAAGG,CACL,EACAC,IACG,CACH,IAAMC,EAAOC,EAAaL,EAAUD,EAAuB,IAAI,EACzD,CAAE,kBAAAO,EAAmB,UAAAC,EAAW,GAAGC,CAAU,EAAIN,EACjDO,EAAkBf,EAAmBY,CAAiB,EAC5D,OACE,gBAACX,EAAA,CACC,MAAOW,EACP,MAAOR,EACP,KAAMM,EACN,QAASH,GAET,gBAACR,EAAoB,KAApB,CACE,GAAGgB,EACH,GAAGD,EACJ,IAAKL,EACL,UAAWO,EAAW,qBAAsBH,CAAS,EACvD,CACF,CAEJ,CACF,EACAV,EAAe,YAAc,kBAK7B,IAAMc,EAAuB,aAC3B,CAACC,EAA0CT,IAAiB,CAC1D,GAAM,CAAE,kBAAAG,EAAmB,SAAAO,EAAU,UAAAN,EAAW,MAAAO,EAAO,GAAGZ,CAAM,EAAIU,EAC9D,CAAE,KAAAR,CAAK,EAAIR,EAAqB,iBAAkBU,CAAiB,EAIzE,OAAIO,EAEA,gBAACE,EAAA,CACC,GAAG,QACH,KAAMX,EACN,UAAWM,EAAW,qBAAsBH,CAAS,EACrD,MAAOO,GAEP,gBAACE,EAAA,CACC,kBAAmBV,EAClB,GAAGJ,EACJ,IAAKC,EACP,EACCU,GAAY,gBAAC,QAAK,UAAU,2BAA2BA,CAAS,CACnE,EAKF,gBAACG,EAAA,CACC,kBAAmBV,EAClB,GAAGJ,EACJ,IAAKC,EACL,UAAWI,EACX,MAAOO,EACT,CAEJ,CACF,EACAH,EAAe,YAAc,kBAK7B,IAAMK,EAA4B,aAGhC,CAAC,CAAE,kBAAAV,EAAmB,GAAGJ,CAAM,EAAGC,IAAiB,CACnD,IAAMc,EAAUrB,EAAqB,sBAAuBU,CAAiB,EACvEG,EAAkBf,EAAmBY,CAAiB,EACtD,CAAE,MAAAR,EAAO,UAAAS,CAAU,EAAIW,EAC3B,CAAE,GAAGhB,EAAO,GAAGe,CAAQ,EACvBlB,CACF,EACA,OACE,gBAACN,EAAoB,KAApB,CACE,GAAGgB,EACJ,oBAAmBX,EAClB,GAAGI,EACJ,QAAS,GACT,IAAKC,EACL,UAAWO,EAAW,YAAa,oBAAqBH,CAAS,EACnE,CAEJ,CAAC,EACDS,EAAoB,YAAc",
|
|
6
|
+
"names": ["radio_group_exports", "__export", "RadioGroupItem", "RadioGroupRoot", "React", "classNames", "Context", "RadioGroupPrimitive", "RADIO_GROUP_NAME", "createRadioGroupContext", "Context", "RadioGroupPrimitive", "useRadioGroupScope", "RadioGroupProvider", "useRadioGroupContext", "RadioGroupRoot", "color", "radioGroupRootPropDefs", "sizeProp", "variant", "props", "forwardedRef", "size", "useThemeSize", "__scopeRadioGroup", "className", "rootProps", "radioGroupScope", "classNames", "RadioGroupItem", "_props", "children", "style", "Text", "RadioGroupItemRadio", "context", "extractProps"]
|
|
7
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{a as p,b as P,c as b}from"./chunk-FI32HA4X.js";import{a as T}from"./chunk-RVPLXLRA.js";import{c as R}from"./chunk-
|
|
3
|
-
//# sourceMappingURL=chunk-
|
|
2
|
+
import{a as p,b as P,c as b}from"./chunk-FI32HA4X.js";import{a as T}from"./chunk-RVPLXLRA.js";import{c as R}from"./chunk-5ON3XLRD.js";import{a as m,c as s}from"./chunk-OKQAVYW4.js";import{a as k}from"./chunk-VQPANPMI.js";var x={};k(x,{Body:()=>f,Cell:()=>y,ColumnHeaderCell:()=>u,Header:()=>i,Root:()=>c,Row:()=>C,RowHeaderCell:()=>w});import*as e from"react";import t from"classnames";var c=e.forwardRef((o,l)=>{let a=R(o,p.size),{layout:r,...H}=p,{className:N,children:h,layout:E,"aria-label":d,"aria-labelledby":n,"aria-describedby":v,...D}=s(a,H),B=m({value:E,className:p.layout.className,propValues:p.layout.values});return e.createElement("div",{ref:l,className:t("kui-TableRoot",N),...D},e.createElement(T,{"aria-label":d,"aria-labelledby":n},e.createElement("table",{className:t("kui-TableRootTable",B),"aria-label":d,"aria-labelledby":n,"aria-describedby":v},h)))});c.displayName="Table.Root";var i=e.forwardRef(({className:o,...l},a)=>e.createElement("thead",{...l,ref:a,className:t("kui-TableHeader",o)}));i.displayName="Table.Header";var f=e.forwardRef(({className:o,...l},a)=>e.createElement("tbody",{...l,ref:a,className:t("kui-TableBody",o)}));f.displayName="Table.Body";var C=e.forwardRef((o,l)=>{let{className:a,...r}=s(o,P);return e.createElement("tr",{...r,ref:l,className:t("kui-TableRow",a)})});C.displayName="Table.Row";var y=e.forwardRef((o,l)=>{let{className:a,...r}=s(o,b);return e.createElement("td",{className:t("kui-TableCell",a),ref:l,...r})});y.displayName="Table.Cell";var u=e.forwardRef((o,l)=>{let{className:a,...r}=s(o,b);return e.createElement("th",{className:t("kui-TableCell","kui-TableColumnHeaderCell",a),scope:"col",ref:l,...r})});u.displayName="Table.ColumnHeaderCell";var w=e.forwardRef((o,l)=>{let{className:a,...r}=s(o,b);return e.createElement("th",{className:t("kui-TableCell","kui-TableRowHeaderCell",a),scope:"row",ref:l,...r})});w.displayName="Table.RowHeaderCell";export{c as a,i as b,f as c,C as d,y as e,u as f,w as g,x as h};
|
|
3
|
+
//# sourceMappingURL=chunk-OQWD63AI.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/table.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nimport classNames from 'classnames';\n\nimport { tableRootPropDefs, tableRowPropDefs, tableCellPropDefs } from './table.props.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { useThemeSizeProps } from '../hooks/theme-size.js';\nimport { getResponsiveClassNames } from '../helpers/get-responsive-styles.js';\nimport { ScrollArea } from './scroll-area.js';\n\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { GetPropDefTypes } from '../props/prop-def.js';\n\ntype TableRootElement = React.ElementRef<'div'>;\ntype TableRootOwnProps = GetPropDefTypes<typeof tableRootPropDefs>;\ninterface TableRootProps\n extends ComponentPropsWithout<'div', RemovedProps>,\n TableRootOwnProps {}\nconst TableRoot = React.forwardRef<TableRootElement, TableRootProps>((ownProps, forwardedRef) => {\n const props = useThemeSizeProps(ownProps, tableRootPropDefs.size);\n const { layout: layoutPropDef, ...rootPropDefs } = tableRootPropDefs;\n const {\n className,\n children,\n layout,\n // The table is what gets named, not the scroll wrapper around it.\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n 'aria-describedby': ariaDescribedBy,\n ...rootProps\n } = extractProps(props, rootPropDefs);\n const tableLayoutClassNames = getResponsiveClassNames({\n value: layout,\n className: tableRootPropDefs.layout.className,\n propValues: tableRootPropDefs.layout.values,\n });\n return (\n <div ref={forwardedRef} className={classNames('kui-TableRoot', className)} {...rootProps}>\n {/* An overflowing scroller is a tab stop, so it carries the table's name and reads as a region. */}\n <ScrollArea aria-label={ariaLabel} aria-labelledby={ariaLabelledBy}>\n <table\n className={classNames('kui-TableRootTable', tableLayoutClassNames)}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-describedby={ariaDescribedBy}\n >\n {children}\n </table>\n </ScrollArea>\n </div>\n );\n});\nTableRoot.displayName = 'Table.Root';\n\ntype TableHeaderElement = React.ElementRef<'thead'>;\ninterface TableHeaderProps extends ComponentPropsWithout<'thead', RemovedProps> {}\nconst TableHeader = React.forwardRef<TableHeaderElement, TableHeaderProps>(\n ({ className, ...props }, forwardedRef) => (\n <thead {...props} ref={forwardedRef} className={classNames('kui-TableHeader', className)} />\n )\n);\nTableHeader.displayName = 'Table.Header';\n\ntype TableBodyElement = React.ElementRef<'tbody'>;\ninterface TableBodyProps extends ComponentPropsWithout<'tbody', RemovedProps> {}\nconst TableBody = React.forwardRef<TableBodyElement, TableBodyProps>(\n ({ className, ...props }, forwardedRef) => (\n <tbody {...props} ref={forwardedRef} className={classNames('kui-TableBody', className)} />\n )\n);\nTableBody.displayName = 'Table.Body';\n\ntype TableRowElement = React.ElementRef<'tr'>;\ntype TableRowOwnProps = GetPropDefTypes<typeof tableRowPropDefs>;\ninterface TableRowProps extends ComponentPropsWithout<'tr', RemovedProps>, TableRowOwnProps {}\nconst TableRow = React.forwardRef<TableRowElement, TableRowProps>((props, forwardedRef) => {\n const { className, ...rowProps } = extractProps(props, tableRowPropDefs);\n return <tr {...rowProps} ref={forwardedRef} className={classNames('kui-TableRow', className)} />;\n});\nTableRow.displayName = 'Table.Row';\n\ntype TableCellElement = React.ElementRef<'td'>;\ntype TableCellOwnProps = GetPropDefTypes<typeof tableCellPropDefs>;\ninterface TableCellProps\n extends ComponentPropsWithout<'td', RemovedProps | 'width'>,\n TableCellOwnProps {}\nconst TableCell = React.forwardRef<TableCellElement, TableCellProps>((props, forwardedRef) => {\n const { className, ...cellProps } = extractProps(props, tableCellPropDefs);\n return <td className={classNames('kui-TableCell', className)} ref={forwardedRef} {...cellProps} />;\n});\nTableCell.displayName = 'Table.Cell';\n\ntype TableColumnHeaderCellElement = React.ElementRef<'th'>;\ninterface TableColumnHeaderCellProps\n extends ComponentPropsWithout<'th', RemovedProps>,\n TableCellOwnProps {}\nconst TableColumnHeaderCell = React.forwardRef<\n TableColumnHeaderCellElement,\n TableColumnHeaderCellProps\n>((props, forwardedRef) => {\n const { className, ...cellProps } = extractProps(props, tableCellPropDefs);\n return (\n <th\n className={classNames('kui-TableCell', 'kui-TableColumnHeaderCell', className)}\n scope=\"col\"\n ref={forwardedRef}\n {...cellProps}\n />\n );\n});\nTableColumnHeaderCell.displayName = 'Table.ColumnHeaderCell';\n\ntype TableRowHeaderCellElement = React.ElementRef<'th'>;\ninterface TableRowHeaderCellProps\n extends ComponentPropsWithout<'th', RemovedProps>,\n TableCellOwnProps {}\nconst TableRowHeaderCell = React.forwardRef<TableRowHeaderCellElement, TableRowHeaderCellProps>(\n (props, forwardedRef) => {\n const { className, ...cellProps } = extractProps(props, tableCellPropDefs);\n return (\n <th\n className={classNames('kui-TableCell', 'kui-TableRowHeaderCell', className)}\n scope=\"row\"\n ref={forwardedRef}\n {...cellProps}\n />\n );\n }\n);\nTableRowHeaderCell.displayName = 'Table.RowHeaderCell';\n\nexport {\n TableRoot as Root,\n TableHeader as Header,\n TableBody as Body,\n TableRow as Row,\n TableCell as Cell,\n TableColumnHeaderCell as ColumnHeaderCell,\n TableRowHeaderCell as RowHeaderCell,\n};\n\nexport type {\n TableRootProps as RootProps,\n TableHeaderProps as HeaderProps,\n TableBodyProps as BodyProps,\n TableRowProps as RowProps,\n TableCellProps as CellProps,\n TableColumnHeaderCellProps as ColumnHeaderCellProps,\n TableRowHeaderCellProps as RowHeaderCellProps,\n};\n"],
|
|
5
|
+
"mappings": ";6NAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,UAAAE,EAAA,SAAAC,EAAA,qBAAAC,EAAA,WAAAC,EAAA,SAAAC,EAAA,QAAAC,EAAA,kBAAAC,IAAA,UAAYC,MAAW,QACvB,OAAOC,MAAgB,aAgBvB,IAAMC,EAAkB,aAA6C,CAACC,EAAUC,IAAiB,CAC/F,IAAMC,EAAQC,EAAkBH,EAAUI,EAAkB,IAAI,EAC1D,CAAE,OAAQC,EAAe,GAAGC,CAAa,EAAIF,EAC7C,CACJ,UAAAG,EACA,SAAAC,EACA,OAAAC,EAEA,aAAcC,EACd,kBAAmBC,EACnB,mBAAoBC,EACpB,GAAGC,CACL,EAAIC,EAAaZ,EAAOI,CAAY,EAC9BS,EAAwBC,EAAwB,CACpD,MAAOP,EACP,UAAWL,EAAkB,OAAO,UACpC,WAAYA,EAAkB,OAAO,MACvC,CAAC,EACD,OACE,gBAAC,OAAI,IAAKH,EAAc,UAAWgB,EAAW,gBAAiBV,CAAS,EAAI,GAAGM,GAE7E,gBAACK,EAAA,CAAW,aAAYR,EAAW,kBAAiBC,GAClD,gBAAC,SACC,UAAWM,EAAW,qBAAsBF,CAAqB,EACjE,aAAYL,EACZ,kBAAiBC,EACjB,mBAAkBC,GAEjBJ,CACH,CACF,CACF,CAEJ,CAAC,EACDT,EAAU,YAAc,aAIxB,IAAMoB,EAAoB,aACxB,CAAC,CAAE,UAAAZ,EAAW,GAAGL,CAAM,EAAGD,IACxB,gBAAC,SAAO,GAAGC,EAAO,IAAKD,EAAc,UAAWgB,EAAW,kBAAmBV,CAAS,EAAG,CAE9F,EACAY,EAAY,YAAc,eAI1B,IAAMC,EAAkB,aACtB,CAAC,CAAE,UAAAb,EAAW,GAAGL,CAAM,EAAGD,IACxB,gBAAC,SAAO,GAAGC,EAAO,IAAKD,EAAc,UAAWgB,EAAW,gBAAiBV,CAAS,EAAG,CAE5F,EACAa,EAAU,YAAc,aAKxB,IAAMC,EAAiB,aAA2C,CAACnB,EAAOD,IAAiB,CACzF,GAAM,CAAE,UAAAM,EAAW,GAAGe,CAAS,EAAIR,EAAaZ,EAAOqB,CAAgB,EACvE,OAAO,gBAAC,MAAI,GAAGD,EAAU,IAAKrB,EAAc,UAAWgB,EAAW,eAAgBV,CAAS,EAAG,CAChG,CAAC,EACDc,EAAS,YAAc,YAOvB,IAAMG,EAAkB,aAA6C,CAACtB,EAAOD,IAAiB,CAC5F,GAAM,CAAE,UAAAM,EAAW,GAAGkB,CAAU,EAAIX,EAAaZ,EAAOwB,CAAiB,EACzE,OAAO,gBAAC,MAAG,UAAWT,EAAW,gBAAiBV,CAAS,EAAG,IAAKN,EAAe,GAAGwB,EAAW,CAClG,CAAC,EACDD,EAAU,YAAc,aAMxB,IAAMG,EAA8B,aAGlC,CAACzB,EAAOD,IAAiB,CACzB,GAAM,CAAE,UAAAM,EAAW,GAAGkB,CAAU,EAAIX,EAAaZ,EAAOwB,CAAiB,EACzE,OACE,gBAAC,MACC,UAAWT,EAAW,gBAAiB,4BAA6BV,CAAS,EAC7E,MAAM,MACN,IAAKN,EACJ,GAAGwB,EACN,CAEJ,CAAC,EACDE,EAAsB,YAAc,yBAMpC,IAAMC,EAA2B,aAC/B,CAAC1B,EAAOD,IAAiB,CACvB,GAAM,CAAE,UAAAM,EAAW,GAAGkB,CAAU,EAAIX,EAAaZ,EAAOwB,CAAiB,EACzE,OACE,gBAAC,MACC,UAAWT,EAAW,gBAAiB,yBAA0BV,CAAS,EAC1E,MAAM,MACN,IAAKN,EACJ,GAAGwB,EACN,CAEJ,CACF,EACAG,EAAmB,YAAc",
|
|
6
|
+
"names": ["table_exports", "__export", "TableBody", "TableCell", "TableColumnHeaderCell", "TableHeader", "TableRoot", "TableRow", "TableRowHeaderCell", "React", "classNames", "TableRoot", "ownProps", "forwardedRef", "props", "useThemeSizeProps", "tableRootPropDefs", "layoutPropDef", "rootPropDefs", "className", "children", "layout", "ariaLabel", "ariaLabelledBy", "ariaDescribedBy", "rootProps", "extractProps", "tableLayoutClassNames", "getResponsiveClassNames", "classNames", "ScrollArea", "TableHeader", "TableBody", "TableRow", "rowProps", "tableRowPropDefs", "TableCell", "cellProps", "tableCellPropDefs", "TableColumnHeaderCell", "TableRowHeaderCell"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import{a as g}from"./chunk-WMZLMZHB.js";import{a as X,b as oo,c as eo,e as W,f as to,i as ro,l as no}from"./chunk-5L4DZ2D3.js";import{a as B}from"./chunk-5TJH35TF.js";import{a as Q}from"./chunk-6UZT3ZLO.js";import{g as J}from"./chunk-EAIQIW23.js";import{a as q}from"./chunk-7N2Q5WOM.js";import{b as L}from"./chunk-5ON3XLRD.js";import{c as U}from"./chunk-OKQAVYW4.js";import*as o from"react";import{useLayoutEffect as D}from"radix-ui/internal";import x from"classnames";import{Toolbar as N}from"radix-ui";var E=o.createContext(null),F=o.createContext(null),M=o.createContext(!1);function Bo(){return o.useContext(M)}var H=o.forwardRef((e,t)=>{let r=J(),a=L(e.size??r??void 0,g.size),s=e.orientation??g.orientation.default,{className:i,orientation:n,backdrop:l=!1,children:p,...d}=U({...e,size:a},g,q),u=o.useMemo(()=>({size:a,orientation:s,backdrop:l}),[a,s,l]);return o.createElement(N.Root,{...d,ref:t,orientation:s,"data-backdrop":l||void 0,className:x("kui-Toolbar",i)},o.createElement(E.Provider,{value:u},p))});H.displayName="Toolbar";var so=o.forwardRef(({className:e,disabled:t=!1,children:r,...a},s)=>{let i=o.useContext(E),n=o.useContext(M),l=o.useMemo(()=>({disabled:t}),[t]);return n?o.createElement(to,{...a,ref:s,className:e},o.createElement(F.Provider,{value:l},r)):o.createElement("div",{role:"group","data-orientation":i?.orientation??"horizontal","data-disabled":t||void 0,...a,ref:s,className:x("kui-ToolbarGroup",e)},o.createElement(F.Provider,{value:l},r))});so.displayName="Toolbar.Group";var bo=new Set(["id","className","style","title"]);function ao(e){return e===!0||e==="true"}function To(e){return o.isValidElement(e)&&e.type==="button"}var j=o.forwardRef((e,t)=>{let r=o.useContext(E),a=o.useContext(F),s=o.useContext(M),{iconOnly:i,size:n,variant:l,emphasis:p,color:d,disabled:u,asChild:v,onKeyDown:y,...w}=e,h=u||a?.disabled||void 0;if(s){let T={};for(let m of Object.keys(w))(/^on[A-Z]/.test(m)||m.startsWith("aria-")||m.startsWith("data-")||bo.has(m))&&(T[m]=w[m]);return y&&(T.onKeyDown=y),o.createElement(io,{...T,ref:t,asChild:v,iconOnly:i,disabled:h,color:d,pressed:e["aria-pressed"]===void 0?void 0:ao(e["aria-pressed"])},w.children)}let O=r?.orientation==="vertical"&&y?T=>{T.key==="ArrowDown"||T.key==="ArrowUp"||y(T)}:y,I=ao(e["aria-pressed"]),c="data-state"in e||e["aria-pressed"]===void 0?{}:{"data-state":I?"on":"off"},f={size:n??r?.size,...p!==void 0?{emphasis:p}:{variant:l??(a?"ghost":r?.backdrop?"raised":"soft")},color:d??(l||p?void 0:"gray"),...c},b={...w,...i?{iconOnly:!0}:{},...v?{asChild:!0}:{},...O?{onKeyDown:O}:{},...f};return r?v&&!To(w.children)?o.createElement(N.Link,{asChild:!0,ref:t},o.createElement(B,{...b,disabled:h})):o.createElement(N.Button,{asChild:!0,ref:t,disabled:h},o.createElement(B,{...b})):o.createElement(B,{...b,ref:t,disabled:h})});j.displayName="Toolbar.Button";var io=o.forwardRef(({asChild:e,iconOnly:t,disabled:r,color:a,pressed:s,children:i,"aria-label":n,...l},p)=>{let d=t?n:void 0,u={...l,...t?{}:n?{"aria-label":n}:{},disabled:r,...a?{color:a}:{}};if(e&&o.isValidElement(i)){let v=d?o.cloneElement(i,void 0,i.props.children,o.createElement("span",null,d)):i;return o.createElement(W,{...u,ref:p,asChild:!0},v)}return s!==void 0?o.createElement(ro,{...u,ref:p,checked:s},i,d):o.createElement(W,{...u,ref:p},i,d)});io.displayName="Toolbar.OverflowItem";function mo(){return o.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"currentcolor","aria-hidden":!0,xmlns:"http://www.w3.org/2000/svg"},o.createElement("circle",{cx:"3.25",cy:"8",r:"1.25"}),o.createElement("circle",{cx:"8",cy:"8",r:"1.25"}),o.createElement("circle",{cx:"12.75",cy:"8",r:"1.25"}))}var lo=o.forwardRef(({label:e="More",className:t,children:r,...a},s)=>{let i=o.Children.toArray(r),n=i.length,l=o.useRef(null),p=o.useRef([]),d=o.useRef(0),[u,v]=o.useState(n),[y,w]=o.useState(0),[h,O]=o.useState(n);h!==n&&(O(n),v(n)),D(()=>{p.current=[]},[n]),D(()=>{let c=l.current;if(!c)return;let f=Array.from(c.children),b=Math.min(u,n);for(let P=0;P<b;P++){let R=f[P];R&&(p.current[P]=R.offsetWidth)}let T=f[b];T&&(d.current=T.offsetWidth);let m=Number.parseFloat(getComputedStyle(c).columnGap)||0,K=c.clientWidth,V=0,_=0;for(let P=0;P<n;P++){let R=p.current[P];if(R===void 0)return;R!==0&&(V+=R+(_>0?m:0),_+=1)}let k=n;if(V>K){let P=K-(d.current||c.clientHeight)-m,R=0,Y=0;k=0;for(let G=0;G<n;G++){let Z=p.current[G];if(Z>0){let $=Z+(Y>0?m:0);if(R+$>P)break;R+=$,Y+=1}k+=1}}k!==u&&v(k)},[u,n,y]),o.useEffect(()=>{let c=l.current;if(!c||typeof ResizeObserver>"u")return;let f=new ResizeObserver(()=>w(b=>b+1));f.observe(c);for(let b of Array.from(c.children))f.observe(b);return()=>f.disconnect()},[u,n]);let I=o.useCallback(c=>{l.current=c,typeof s=="function"?s(c):s&&(s.current=c)},[s]);return o.createElement("div",{...a,ref:I,className:x("kui-ToolbarOverflow",t)},i.slice(0,u).map((c,f)=>o.createElement("div",{key:f,className:"kui-ToolbarOverflowSeat"},c)),u<n?o.createElement(X,null,o.createElement(oo,null,o.createElement(j,{iconOnly:!0,"aria-label":e},o.createElement(mo,null))),o.createElement(eo,{align:"end"},o.createElement(M.Provider,{value:!0},i.slice(u)))):null)});lo.displayName="Toolbar.Overflow";var A=[],S=new Map,z=new Set,C=new Map;function Po(e){return z.add(e),()=>{z.delete(e)}}function Ro(e,t,r){let a=S.get(e)??A,i=a.findIndex(n=>n.id===t)===-1?[...a,{id:t,node:r}]:a.map(n=>n.id===t?{id:t,node:r}:n);S.set(e,i),z.forEach(n=>n())}function vo(e,t){let r=S.get(e);if(!r)return;let a=r.filter(s=>s.id!==t);a.length===0?S.delete(e):S.set(e,a),z.forEach(s=>s())}function co({name:e="default"}){D(()=>{let r=(C.get(e)??0)+1;return C.set(e,r),r>1,()=>{let a=(C.get(e)??1)-1;a>0?C.set(e,a):C.delete(e)}},[e]);let t=o.useSyncExternalStore(Po,()=>S.get(e)??A,()=>A);return o.createElement(o.Fragment,null,t.map(r=>o.createElement(o.Fragment,{key:r.id},r.node)))}co.displayName="Toolbar.Slot";function uo({name:e="default",children:t}){let r=o.useId();return D(()=>{Ro(e,r,t)},[e,r,t]),D(()=>()=>vo(e,r),[e,r]),null}uo.displayName="Toolbar.Fill";var po=o.forwardRef(({className:e,...t},r)=>{let a=o.useContext(E);return o.useContext(M)?o.createElement(no,{...t,ref:r,className:e}):a?o.createElement(N.Separator,{...t,ref:r,className:x("kui-ToolbarSeparator",e)}):o.createElement("div",{role:"separator","aria-orientation":"vertical","data-orientation":"vertical",...t,ref:r,className:x("kui-ToolbarSeparator",e)})});po.displayName="Toolbar.Separator";var yo={1:"2",2:"3",3:"4",4:"5"},fo=o.forwardRef(({className:e,children:t,style:r,id:a},s)=>{let i=o.useContext(E),n=L(void 0,g.size),l=i?.size??n;return t==null||t===!1?null:o.createElement(Q,{ref:s,as:"span",size:yo[l],weight:"medium",truncate:!0,id:a,style:r,className:x("kui-ToolbarTitle",e)},t)});fo.displayName="Toolbar.Title";var No=Object.assign(H,{Root:H,Group:so,Button:j,Separator:po,Title:fo,Overflow:lo,Slot:co,Fill:uo});export{Bo as a,H as b,so as c,j as d,lo as e,co as f,uo as g,po as h,fo as i,No as j};
|
|
3
|
+
//# sourceMappingURL=chunk-PCLO3ZZY.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/toolbar.tsx"],
|
|
4
|
+
"sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport { useLayoutEffect } from 'radix-ui/internal';\nimport classNames from 'classnames';\nimport { Toolbar as ToolbarPrimitive } from 'radix-ui';\n\nimport { toolbarRootPropDefs } from './toolbar.props.js';\nimport { Button } from './button.js';\nimport * as DropdownMenu from './dropdown-menu.js';\nimport { Text } from './text.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { useThemeSize } from '../hooks/theme-size.js';\nimport { layoutPropDefs } from '../props/layout.props.js';\nimport { usePaneBandSize } from './_internal/pane-chrome.js';\n\nimport type { ButtonProps } from './button.js';\nimport type { LayoutProps } from '../props/layout.props.js';\nimport type { TextProps } from './text.js';\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { GetPropDefTypes } from '../props/prop-def.js';\nimport type { ButtonRankProps } from './button.js';\n\n/*\n * Toolbar takes Kookie UI v2's contract (v2: components/toolbar), built on Radix instead of\n * Base UI. A toolbar is a row of controls with ONE tab stop: `role=\"toolbar\"`, and the arrow\n * keys move focus between its controls. That keyboard is the reason it is a component.\n *\n * Its `size` reaches every control inside it that does not state its own. The row itself paints\n * nothing; a `ToolbarGroup` draws a quiet well around controls that belong together, and a\n * `ToolbarSeparator` draws a gray hairline between clusters. Use a `Flex` to cluster controls\n * without a well: the row spaces the clusters with `space-between`.\n */\n\ntype ToolbarSize = NonNullable<GetPropDefTypes<typeof toolbarRootPropDefs>['size']>;\ntype ToolbarOrientation = NonNullable<GetPropDefTypes<typeof toolbarRootPropDefs>['orientation']>;\n\ninterface ToolbarContextValue {\n size: ToolbarSize;\n orientation: ToolbarOrientation;\n backdrop: boolean;\n}\n\nconst ToolbarContext = React.createContext<ToolbarContextValue | null>(null);\n\n/** Set by a `ToolbarGroup`: its children rest quiet, and `disabled` turns them all off. */\nconst ToolbarGroupContext = React.createContext<{ disabled: boolean } | null>(null);\n\n/**\n * True while a subtree is drawn into a `ToolbarOverflow`'s menu instead of into the row (v2\n * `InOverflow`). The parts answer it themselves: a `ToolbarButton` renders a menu item, a\n * `ToolbarGroup` a menu group, a `ToolbarSeparator` a menu separator.\n */\nconst InOverflowContext = React.createContext(false);\n\n/**\n * True while this subtree is drawn into a `ToolbarOverflow`'s \"More\" menu instead of the row.\n *\n * The toolbar's own parts handle this already. Use it in your own component inside a\n * `ToolbarOverflow` to render a different form in the menu.\n */\nfunction useToolbarOverflow(): boolean {\n return React.useContext(InOverflowContext);\n}\n\n// ============================================================================\n// Toolbar (root)\n// ============================================================================\n\ntype ToolbarOwnProps = GetPropDefTypes<typeof toolbarRootPropDefs>;\n\ninterface ToolbarProps\n extends ComponentPropsWithout<typeof ToolbarPrimitive.Root, RemovedProps | 'orientation'>,\n ToolbarOwnProps,\n LayoutProps {\n /**\n * Gives every control a surface of its own, for a row that content passes behind, such as\n * `Shell.PaneHeader float`. Buttons rest `raised` instead of `soft`, and a group's well is\n * solid and raised.\n */\n backdrop?: boolean;\n}\n\n/**\n * A row of controls with one keyboard tab stop. The arrow keys move focus between the controls.\n *\n * Give it an `aria-label` (or `aria-labelledby`) that says what the controls act on.\n *\n * @example\n * ```tsx\n * <Toolbar aria-label=\"Formatting\">\n * <ToolbarGroup>\n * <ToolbarButton iconOnly aria-label=\"Bold\" aria-pressed={bold} onClick={toggleBold}>\n * <HugeiconsIcon icon={TextBoldIcon} strokeWidth={1.75} />\n * </ToolbarButton>\n * </ToolbarGroup>\n * <ToolbarSeparator />\n * <ToolbarButton>Share</ToolbarButton>\n * </Toolbar>\n * ```\n */\nconst ToolbarRoot = React.forwardRef<HTMLDivElement, ToolbarProps>((props, forwardedRef) => {\n // Inside a Shell (a pane's header or footer, or the content area), a toolbar with no size\n // rests one step above the Shell's. A pane's scrolling list has no band.\n const band = usePaneBandSize();\n // Elsewhere it takes the nearest Theme's size.\n const size: ToolbarSize = useThemeSize(props.size ?? band ?? undefined, toolbarRootPropDefs.size);\n const orientation: ToolbarOrientation = props.orientation ?? toolbarRootPropDefs.orientation.default;\n const { className, orientation: _orientation, backdrop = false, children, ...rootProps } = extractProps(\n { ...props, size },\n toolbarRootPropDefs,\n layoutPropDefs,\n );\n\n const context = React.useMemo(() => ({ size, orientation, backdrop }), [size, orientation, backdrop]);\n\n return (\n <ToolbarPrimitive.Root\n {...rootProps}\n ref={forwardedRef}\n orientation={orientation}\n data-backdrop={backdrop || undefined}\n className={classNames('kui-Toolbar', className)}\n >\n <ToolbarContext.Provider value={context}>{children}</ToolbarContext.Provider>\n </ToolbarPrimitive.Root>\n );\n});\nToolbarRoot.displayName = 'Toolbar';\n\n// ============================================================================\n// ToolbarGroup\n// ============================================================================\n\ninterface ToolbarGroupProps extends ComponentPropsWithout<'div', RemovedProps> {\n /** Turns every control in the group off at once. */\n disabled?: boolean;\n}\n\n/**\n * Controls that belong together, drawn as one quiet well that stands level with a button\n * beside it. Buttons inside it rest as `ghost` unless they state a `variant`.\n * To cluster controls without a well, use a `Flex`.\n *\n * In a `ToolbarOverflow`'s menu it is a menu group. Outside a `Toolbar` (rendered through a\n * portal, for example) it still draws its well, as a horizontal group.\n */\nconst ToolbarGroup = React.forwardRef<HTMLDivElement, ToolbarGroupProps>(\n ({ className, disabled = false, children, ...props }, forwardedRef) => {\n const toolbar = React.useContext(ToolbarContext);\n const overflow = React.useContext(InOverflowContext);\n const group = React.useMemo(() => ({ disabled }), [disabled]);\n\n if (overflow) {\n return (\n <DropdownMenu.Group {...props} ref={forwardedRef} className={className}>\n <ToolbarGroupContext.Provider value={group}>{children}</ToolbarGroupContext.Provider>\n </DropdownMenu.Group>\n );\n }\n\n return (\n <div\n role=\"group\"\n data-orientation={toolbar?.orientation ?? 'horizontal'}\n data-disabled={disabled || undefined}\n {...props}\n ref={forwardedRef}\n className={classNames('kui-ToolbarGroup', className)}\n >\n <ToolbarGroupContext.Provider value={group}>{children}</ToolbarGroupContext.Provider>\n </div>\n );\n },\n);\nToolbarGroup.displayName = 'Toolbar.Group';\n\n// ============================================================================\n// ToolbarButton\n// ============================================================================\n\ntype ToolbarButtonBaseProps = Omit<ButtonProps, 'as' | 'variant' | 'emphasis'>;\n\n/** A labelled button: takes every `Button` prop. */\ntype ToolbarTextButtonProps = ToolbarButtonBaseProps &\n ButtonRankProps & {\n iconOnly?: false;\n};\n\n/** An icon-only button: renders `Button iconOnly`, and the type requires an `aria-label`. */\ntype ToolbarIconButtonProps = Omit<ToolbarButtonBaseProps, 'aria-label' | 'aria-labelledby' | 'fullWidth'> &\n ButtonRankProps & {\n iconOnly: true;\n /** The control's accessible name. An icon has no words of its own, so this is required. */\n 'aria-label': string;\n};\n\ntype ToolbarButtonProps = ToolbarTextButtonProps | ToolbarIconButtonProps;\n\n/** The plain DOM props, besides handlers, ARIA and data attributes, a menu row takes from a ToolbarButton. */\nconst OVERFLOW_ITEM_KEYS = new Set(['id', 'className', 'style', 'title']);\n\nfunction isPressed(value: React.AriaAttributes['aria-pressed']) {\n return value === true || value === 'true';\n}\n\n/** Does an `asChild` child render a native `<button>`? Only then is it a Radix Toolbar.Button. */\nfunction isButtonElement(children: React.ReactNode) {\n return React.isValidElement(children) && children.type === 'button';\n}\n\n/**\n * A `Button` that joins the toolbar's keyboard navigation, so a row of them is one tab stop.\n *\n * Set `iconOnly` (with an `aria-label`) for a symbol-only control. Set `aria-pressed` for a\n * control that toggles; a pressed button wears Button's pressed look. Set `asChild` to render\n * your own element, such as a link: `<ToolbarButton asChild><a href=\"/docs\">Docs</a></ToolbarButton>`.\n * A link stays in the arrow-key row and gets no `type` attribute.\n *\n * It takes the toolbar's `size`, and rests as a gray `soft` button (`raised` in a toolbar with\n * `backdrop`, gray `ghost` inside a `ToolbarGroup`). A stated `size`, `variant` or `color` wins; a\n * stated `variant` without a `color` takes Button's own default colour.\n *\n * In a `ToolbarOverflow`'s menu it renders a menu item; an icon-only button uses its\n * `aria-label` as the item's text. Outside a `Toolbar` (rendered through a React portal, for\n * example) it renders a plain Button with the same rest look, as its own tab stop. Use\n * `ToolbarSlot` and `ToolbarFill` for a control that should join the row's arrow keys.\n */\nconst ToolbarButton = React.forwardRef<HTMLButtonElement, ToolbarButtonProps>((props, forwardedRef) => {\n const toolbar = React.useContext(ToolbarContext);\n const group = React.useContext(ToolbarGroupContext);\n const overflow = React.useContext(InOverflowContext);\n const { iconOnly, size, variant, emphasis, color, disabled, asChild, onKeyDown, ...rest } = props;\n const off = disabled || group?.disabled || undefined;\n\n if (overflow) {\n // Only what a menu row means comes across: handlers, ARIA, data attributes, id, class and\n // style. Button's box props (size, loading, tooltip, fullWidth and the rest) would land on the\n // DOM as unknown attributes. A wrapping menu trigger hands its open handlers (onPointerDown,\n // onKeyDown), aria-expanded/haspopup/controls and data-state in through these, so it still\n // opens from the row.\n const passed: Record<string, unknown> = {};\n for (const key of Object.keys(rest)) {\n if (/^on[A-Z]/.test(key) || key.startsWith('aria-') || key.startsWith('data-') || OVERFLOW_ITEM_KEYS.has(key)) {\n passed[key] = (rest as Record<string, unknown>)[key];\n }\n }\n if (onKeyDown) passed.onKeyDown = onKeyDown;\n return (\n <ToolbarOverflowItem\n {...(passed as React.ComponentPropsWithoutRef<'div'>)}\n ref={forwardedRef as unknown as React.Ref<HTMLDivElement>}\n asChild={asChild}\n iconOnly={iconOnly}\n disabled={off}\n color={color}\n pressed={props['aria-pressed'] === undefined ? undefined : isPressed(props['aria-pressed'])}\n >\n {rest.children}\n </ToolbarOverflowItem>\n );\n }\n\n // In a vertical toolbar, Up and Down belong to the toolbar. A menu trigger rendering this\n // hands its open-on-arrow handler in through `onKeyDown`; those two keys skip it (v2).\n const handleKeyDown =\n toolbar?.orientation === 'vertical' && onKeyDown\n ? (event: React.KeyboardEvent<HTMLButtonElement>) => {\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') return;\n onKeyDown(event);\n }\n : onKeyDown;\n\n const pressed = isPressed(props['aria-pressed']);\n const stateProps =\n 'data-state' in props || props['aria-pressed'] === undefined ? {} : { 'data-state': pressed ? 'on' : 'off' };\n\n const shared = {\n size: size ?? toolbar?.size,\n // A caller states the look by `variant` or the rank by `emphasis`, never both.\n ...(emphasis !== undefined\n ? { emphasis }\n : { variant: variant ?? (group ? 'ghost' : toolbar?.backdrop ? 'raised' : 'soft') }),\n // The gray rest is a pair with the default variant: a caller who states a variant or an\n // emphasis gets Button's own colour for it unless they state a colour too.\n color: color ?? (variant || emphasis ? undefined : 'gray'),\n ...stateProps,\n } as const;\n\n // The text and icon-only branches share every prop but the name; one Button renders both.\n const buttonProps = {\n ...rest,\n ...(iconOnly ? { iconOnly: true } : {}),\n ...(asChild ? { asChild: true } : {}),\n ...(handleKeyDown ? { onKeyDown: handleKeyDown } : {}),\n ...shared,\n } as ButtonProps;\n\n // Outside a toolbar there is no row to join: a plain Button, not a throw.\n if (!toolbar) {\n return <Button {...buttonProps} ref={forwardedRef} disabled={off} />;\n }\n\n // A link (or any non-button child) joins the row as a Radix Toolbar.Link, which sets no\n // `type`. Toolbar.Button would stamp `type=\"button\"` on it.\n if (asChild && !isButtonElement(rest.children)) {\n return (\n <ToolbarPrimitive.Link asChild ref={forwardedRef as unknown as React.Ref<HTMLAnchorElement>}>\n <Button {...buttonProps} disabled={off} />\n </ToolbarPrimitive.Link>\n );\n }\n\n return (\n <ToolbarPrimitive.Button asChild ref={forwardedRef} disabled={off}>\n <Button {...buttonProps} />\n </ToolbarPrimitive.Button>\n );\n});\nToolbarButton.displayName = 'Toolbar.Button';\n\ninterface ToolbarOverflowItemProps extends Omit<React.ComponentPropsWithoutRef<'div'>, 'onSelect' | 'color'> {\n asChild?: boolean;\n iconOnly?: boolean;\n disabled?: boolean;\n color?: ButtonProps['color'];\n /** A toggle's pressed state. A toggle becomes a checkbox item, so the menu still says whether it is on. */\n pressed?: boolean;\n}\n\n/**\n * A ToolbarButton drawn into the overflow menu: the same element, as a menu item. An icon-only\n * button's `aria-label` becomes the item's text beside its icon, since a menu row has room for\n * words. What prices a box (size, variant, emphasis, iconOnly) does not come across.\n */\nconst ToolbarOverflowItem = React.forwardRef<HTMLDivElement, ToolbarOverflowItemProps>(\n ({ asChild, iconOnly, disabled, color, pressed, children, 'aria-label': label, ...props }, forwardedRef) => {\n const words = iconOnly ? label : undefined;\n const itemProps = {\n ...props,\n ...(iconOnly ? {} : label ? { 'aria-label': label } : {}),\n disabled,\n ...(color ? { color: color as DropdownMenu.ItemProps['color'] } : {}),\n };\n if (asChild && React.isValidElement<{ children?: React.ReactNode }>(children)) {\n const child = words\n ? React.cloneElement(children, undefined, children.props.children, <span>{words}</span>)\n : children;\n return (\n <DropdownMenu.Item {...itemProps} ref={forwardedRef} asChild>\n {child}\n </DropdownMenu.Item>\n );\n }\n if (pressed !== undefined) {\n return (\n <DropdownMenu.CheckboxItem {...itemProps} ref={forwardedRef} checked={pressed}>\n {children}\n {words}\n </DropdownMenu.CheckboxItem>\n );\n }\n return (\n <DropdownMenu.Item {...itemProps} ref={forwardedRef}>\n {children}\n {words}\n </DropdownMenu.Item>\n );\n },\n);\nToolbarOverflowItem.displayName = 'Toolbar.OverflowItem';\n\n// ============================================================================\n// ToolbarOverflow\n// ============================================================================\n\ninterface ToolbarOverflowProps extends ComponentPropsWithout<'div', RemovedProps> {\n /** The accessible name of the \"More\" button. Defaults to `More`. */\n label?: string;\n /** The controls in the cluster, in order. The ones that don't fit move into the \"More\" menu. */\n children?: React.ReactNode;\n}\n\n/** Three filled dots for the \"More\" button. Internal, so the library carries no icon set. */\nfunction MoreIcon() {\n return (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"currentcolor\" aria-hidden xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"3.25\" cy=\"8\" r=\"1.25\" />\n <circle cx=\"8\" cy=\"8\" r=\"1.25\" />\n <circle cx=\"12.75\" cy=\"8\" r=\"1.25\" />\n </svg>\n );\n}\n\n/**\n * A cluster of controls that collapses into a \"More\" menu when the row runs out of room.\n *\n * It takes the room the row leaves, and when its controls don't fit, they move into the menu\n * from the end of the cluster. A `ToolbarButton` shows as a menu item there, and a\n * `ToolbarGroup` as a menu group. Use `useToolbarOverflow()` in your own components to render a\n * different form in the menu.\n *\n * It measures on mount and on resize (v2 ToolbarOverflow): each control's width is cached while\n * it is in the row, since a hidden control has no width to measure.\n */\nconst ToolbarOverflow = React.forwardRef<HTMLDivElement, ToolbarOverflowProps>(\n ({ label = 'More', className, children, ...props }, forwardedRef) => {\n const items = React.Children.toArray(children);\n const count = items.length;\n\n const rootRef = React.useRef<HTMLDivElement | null>(null);\n const widths = React.useRef<number[]>([]);\n const triggerWidth = React.useRef(0);\n const [shown, setShown] = React.useState(count);\n const [tick, setTick] = React.useState(0);\n\n // A different set of children is a different set of widths: show them all and measure again.\n const [measuredCount, setMeasuredCount] = React.useState(count);\n if (measuredCount !== count) {\n setMeasuredCount(count);\n setShown(count);\n }\n useLayoutEffect(() => {\n widths.current = [];\n }, [count]);\n\n useLayoutEffect(() => {\n const root = rootRef.current;\n if (!root) return;\n\n // The root's children are one seat per visible child, then the trigger.\n const kids = Array.from(root.children) as HTMLElement[];\n const visible = Math.min(shown, count);\n for (let i = 0; i < visible; i++) {\n const el = kids[i];\n if (el) widths.current[i] = el.offsetWidth;\n }\n const trigger = kids[visible];\n if (trigger) triggerWidth.current = trigger.offsetWidth;\n\n const gap = Number.parseFloat(getComputedStyle(root).columnGap) || 0;\n const available = root.clientWidth;\n\n let total = 0;\n let counted = 0;\n for (let i = 0; i < count; i++) {\n const width = widths.current[i];\n // Never seen in the row, so there is nothing to decide with yet.\n if (width === undefined) return;\n // An empty seat leaves the layout, so it spends no gap.\n if (width === 0) continue;\n total += width + (counted > 0 ? gap : 0);\n counted += 1;\n }\n\n let next = count;\n if (total > available) {\n // Before the trigger exists, the row's height stands in for its width: an icon-only\n // button is square. The next pass, before paint, corrects it.\n const budget = available - (triggerWidth.current || root.clientHeight) - gap;\n let used = 0;\n let drawn = 0;\n next = 0;\n for (let i = 0; i < count; i++) {\n const own = widths.current[i]!;\n if (own > 0) {\n const width = own + (drawn > 0 ? gap : 0);\n if (used + width > budget) break;\n used += width;\n drawn += 1;\n }\n next += 1;\n }\n }\n if (next !== shown) setShown(next);\n }, [shown, count, tick]);\n\n // Watch the row and every seat in it: a control whose content changes (a page's actions\n // arriving after navigation) changes its width without the row's width changing.\n React.useEffect(() => {\n const root = rootRef.current;\n if (!root || typeof ResizeObserver === 'undefined') return;\n const observer = new ResizeObserver(() => setTick((n) => n + 1));\n observer.observe(root);\n for (const seat of Array.from(root.children)) observer.observe(seat);\n return () => observer.disconnect();\n }, [shown, count]);\n\n const attach = React.useCallback(\n (node: HTMLDivElement | null) => {\n rootRef.current = node;\n if (typeof forwardedRef === 'function') forwardedRef(node);\n else if (forwardedRef) forwardedRef.current = node;\n },\n [forwardedRef],\n );\n\n return (\n <div {...props} ref={attach} className={classNames('kui-ToolbarOverflow', className)}>\n {items.slice(0, shown).map((item, i) => (\n // The seat is a position in the row, so its key is the index.\n <div key={i} className=\"kui-ToolbarOverflowSeat\">\n {item}\n </div>\n ))}\n {shown < count ? (\n <DropdownMenu.Root>\n <DropdownMenu.Trigger>\n <ToolbarButton iconOnly aria-label={label}>\n <MoreIcon />\n </ToolbarButton>\n </DropdownMenu.Trigger>\n <DropdownMenu.Content align=\"end\">\n <InOverflowContext.Provider value>{items.slice(shown)}</InOverflowContext.Provider>\n </DropdownMenu.Content>\n </DropdownMenu.Root>\n ) : null}\n </div>\n );\n },\n);\nToolbarOverflow.displayName = 'Toolbar.Overflow';\n\n// ============================================================================\n// ToolbarSlot and ToolbarFill\n// ============================================================================\n\ntype SlotEntry = { id: string; node: React.ReactNode };\n\nconst EMPTY_ENTRIES: readonly SlotEntry[] = [];\nconst slotEntries = new Map<string, readonly SlotEntry[]>();\nconst slotListeners = new Set<() => void>();\n/** How many ToolbarSlots of each name are mounted, to warn when one Fill would render twice. */\nconst mountedSlots = new Map<string, number>();\n\nfunction subscribeSlots(listener: () => void) {\n slotListeners.add(listener);\n return () => {\n slotListeners.delete(listener);\n };\n}\n\nfunction setSlotEntry(name: string, id: string, node: React.ReactNode) {\n const list = slotEntries.get(name) ?? EMPTY_ENTRIES;\n const index = list.findIndex((entry) => entry.id === id);\n const next = index === -1 ? [...list, { id, node }] : list.map((entry) => (entry.id === id ? { id, node } : entry));\n slotEntries.set(name, next);\n slotListeners.forEach((listener) => listener());\n}\n\nfunction removeSlotEntry(name: string, id: string) {\n const list = slotEntries.get(name);\n if (!list) return;\n const next = list.filter((entry) => entry.id !== id);\n if (next.length === 0) slotEntries.delete(name);\n else slotEntries.set(name, next);\n slotListeners.forEach((listener) => listener());\n}\n\ninterface ToolbarSlotProps {\n /**\n * Which `ToolbarFill` renders here. Defaults to `default`. Names are global to the page: mount one\n * slot per name, or the fill renders in each of them (development builds warn).\n */\n name?: string;\n}\n\n/**\n * A place in a toolbar that content elsewhere in the app fills, such as a page adding its own\n * actions to a header toolbar the layout owns.\n *\n * It renders whatever the `ToolbarFill` with the same `name` holds, as if it were written here:\n * the controls take the toolbar's size and join its arrow-key row. It adds no element.\n */\nfunction ToolbarSlot({ name = 'default' }: ToolbarSlotProps) {\n useLayoutEffect(() => {\n const count = (mountedSlots.get(name) ?? 0) + 1;\n mountedSlots.set(name, count);\n if (count > 1 && process.env.NODE_ENV !== 'production') {\n console.warn(`[kookie-ui] ToolbarSlot: ${count} slots named \"${name}\" are mounted. Each renders the ToolbarFill's controls, so they appear more than once. Give each slot its own name.`);\n }\n return () => {\n const left = (mountedSlots.get(name) ?? 1) - 1;\n if (left > 0) mountedSlots.set(name, left);\n else mountedSlots.delete(name);\n };\n }, [name]);\n const entries = React.useSyncExternalStore(\n subscribeSlots,\n () => slotEntries.get(name) ?? EMPTY_ENTRIES,\n () => EMPTY_ENTRIES,\n );\n return (\n <>\n {entries.map((entry) => (\n <React.Fragment key={entry.id}>{entry.node}</React.Fragment>\n ))}\n </>\n );\n}\nToolbarSlot.displayName = 'Toolbar.Slot';\n\ninterface ToolbarFillProps {\n /** The `ToolbarSlot` to render into. Defaults to `default`. */\n name?: string;\n /** The controls to show in the slot, such as `ToolbarButton`s. */\n children?: React.ReactNode;\n}\n\n/**\n * Sends its children to the `ToolbarSlot` with the same `name`, and renders nothing where it\n * is written. Use it instead of a React portal: a portal keeps the page's React tree, so a\n * ToolbarButton in it can't join the toolbar's arrow keys.\n *\n * The children render inside the toolbar, so they read the toolbar's context, not the page's.\n * They appear after the page mounts on the client, not in server-rendered HTML.\n */\nfunction ToolbarFill({ name = 'default', children }: ToolbarFillProps) {\n const id = React.useId();\n useLayoutEffect(() => {\n setSlotEntry(name, id, children);\n }, [name, id, children]);\n useLayoutEffect(() => () => removeSlotEntry(name, id), [name, id]);\n return null;\n}\nToolbarFill.displayName = 'Toolbar.Fill';\n\n// ============================================================================\n// ToolbarSeparator\n// ============================================================================\n\ntype ToolbarSeparatorProps = ComponentPropsWithout<typeof ToolbarPrimitive.Separator, RemovedProps | 'orientation'>;\n\n/**\n * A gray hairline between two clusters, announced as a separator. Its direction is always\n * opposite to the toolbar's. In a `ToolbarOverflow`'s menu it is a menu separator.\n */\nconst ToolbarSeparator = React.forwardRef<HTMLDivElement, ToolbarSeparatorProps>(\n ({ className, ...props }, forwardedRef) => {\n const toolbar = React.useContext(ToolbarContext);\n const overflow = React.useContext(InOverflowContext);\n if (overflow) return <DropdownMenu.Separator {...props} ref={forwardedRef} className={className} />;\n if (!toolbar) {\n return (\n <div\n role=\"separator\"\n aria-orientation=\"vertical\"\n data-orientation=\"vertical\"\n {...props}\n ref={forwardedRef}\n className={classNames('kui-ToolbarSeparator', className)}\n />\n );\n }\n return (\n <ToolbarPrimitive.Separator\n {...props}\n ref={forwardedRef}\n className={classNames('kui-ToolbarSeparator', className)}\n />\n );\n },\n);\nToolbarSeparator.displayName = 'Toolbar.Separator';\n\n// ============================================================================\n// ToolbarTitle\n// ============================================================================\n\n/** The title's text step: one step above the label of a button at the same size. */\nconst TITLE_SIZE = { '1': '2', '2': '3', '3': '4', '4': '5' } as const satisfies Record<ToolbarSize, TextProps['size']>;\n\ninterface ToolbarTitleProps {\n /** The title text. With none, the title renders nothing. */\n children?: React.ReactNode;\n className?: string;\n style?: React.CSSProperties;\n /** The id of the title, so that the toolbar's `aria-labelledby` can point at it. */\n id?: string;\n}\n\n/**\n * What the row is about, at its leading edge. One line: it truncates rather than wrapping.\n * Its text step follows the toolbar's `size`, and it takes more air from the controls beside it\n * than they take from each other.\n */\nconst ToolbarTitle = React.forwardRef<HTMLSpanElement, ToolbarTitleProps>(\n ({ className, children, style, id }, forwardedRef) => {\n const toolbar = React.useContext(ToolbarContext);\n const themeSize = useThemeSize<ToolbarSize>(undefined, toolbarRootPropDefs.size);\n const size = toolbar?.size ?? themeSize;\n if (children === undefined || children === null || children === false) return null;\n return (\n <Text\n ref={forwardedRef}\n as=\"span\"\n size={TITLE_SIZE[size]}\n weight=\"medium\"\n truncate\n id={id}\n style={style}\n className={classNames('kui-ToolbarTitle', className)}\n >\n {children}\n </Text>\n );\n },\n);\nToolbarTitle.displayName = 'Toolbar.Title';\n\n// ============================================================================\n// Exports\n// ============================================================================\n\nconst Toolbar = Object.assign(ToolbarRoot, {\n Root: ToolbarRoot,\n Group: ToolbarGroup,\n Button: ToolbarButton,\n Separator: ToolbarSeparator,\n Title: ToolbarTitle,\n Overflow: ToolbarOverflow,\n Slot: ToolbarSlot,\n Fill: ToolbarFill,\n});\n\nexport {\n Toolbar,\n ToolbarGroup,\n ToolbarButton,\n ToolbarSeparator,\n ToolbarTitle,\n ToolbarOverflow,\n ToolbarSlot,\n ToolbarFill,\n useToolbarOverflow,\n ToolbarRoot as Root,\n ToolbarGroup as Group,\n ToolbarButton as Button,\n ToolbarSeparator as Separator,\n ToolbarTitle as Title,\n ToolbarOverflow as Overflow,\n ToolbarSlot as Slot,\n ToolbarFill as Fill,\n};\nexport type {\n ToolbarProps,\n ToolbarGroupProps,\n ToolbarButtonProps,\n ToolbarSeparatorProps,\n ToolbarTitleProps,\n ToolbarOverflowProps,\n ToolbarSlotProps,\n ToolbarFillProps,\n ToolbarProps as RootProps,\n ToolbarGroupProps as GroupProps,\n ToolbarButtonProps as ButtonProps,\n ToolbarSeparatorProps as SeparatorProps,\n ToolbarTitleProps as TitleProps,\n ToolbarOverflowProps as OverflowProps,\n ToolbarSlotProps as SlotProps,\n ToolbarFillProps as FillProps,\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "useLayoutEffect", "classNames", "ToolbarPrimitive", "ToolbarContext", "ToolbarGroupContext", "InOverflowContext", "useToolbarOverflow", "ToolbarRoot", "props", "forwardedRef", "band", "usePaneBandSize", "size", "useThemeSize", "toolbarRootPropDefs", "orientation", "className", "_orientation", "backdrop", "children", "rootProps", "extractProps", "layoutPropDefs", "context", "ToolbarPrimitive", "classNames", "ToolbarGroup", "disabled", "toolbar", "overflow", "group", "DropdownMenuGroup", "OVERFLOW_ITEM_KEYS", "isPressed", "value", "isButtonElement", "ToolbarButton", "iconOnly", "variant", "emphasis", "color", "asChild", "onKeyDown", "rest", "off", "passed", "key", "ToolbarOverflowItem", "handleKeyDown", "event", "pressed", "stateProps", "shared", "buttonProps", "Button", "label", "words", "itemProps", "child", "DropdownMenuItem", "DropdownMenuCheckboxItem", "MoreIcon", "ToolbarOverflow", "items", "count", "rootRef", "widths", "triggerWidth", "shown", "setShown", "tick", "setTick", "measuredCount", "setMeasuredCount", "useLayoutEffect", "root", "kids", "visible", "i", "el", "trigger", "gap", "available", "total", "counted", "width", "next", "budget", "used", "drawn", "own", "observer", "n", "seat", "attach", "node", "item", "DropdownMenuRoot", "DropdownMenuTrigger", "DropdownMenuContent", "EMPTY_ENTRIES", "slotEntries", "slotListeners", "mountedSlots", "subscribeSlots", "listener", "setSlotEntry", "name", "id", "list", "entry", "removeSlotEntry", "ToolbarSlot", "left", "entries", "ToolbarFill", "ToolbarSeparator", "DropdownMenuSeparator", "TITLE_SIZE", "ToolbarTitle", "style", "themeSize", "Text", "Toolbar"]
|
|
7
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{a as p,b as i}from"./chunk-GKDGNPBD.js";import{c as s}from"./chunk-
|
|
3
|
-
//# sourceMappingURL=chunk-
|
|
2
|
+
import{a as p,b as i}from"./chunk-GKDGNPBD.js";import{c as s}from"./chunk-5ON3XLRD.js";import{a as o}from"./chunk-FM3GBCX5.js";import{c}from"./chunk-OKQAVYW4.js";import*as e from"react";import b from"classnames";import{Checkbox as h}from"radix-ui";import{useControllableState as P}from"radix-ui/internal";var u=e.forwardRef((a,k)=>{let m=s(a,o.size),{className:n,color:C,checked:d,defaultChecked:t,onCheckedChange:f,...l}=c(m,o),[r,x]=P({prop:d,defaultProp:t??!1,onChange:f});return e.createElement(h.Root,{"data-accent-color":C,...l,defaultChecked:t,checked:r,onCheckedChange:x,asChild:!1,ref:k,className:b("kui-reset","kui-BaseCheckboxRoot","kui-CheckboxRoot",n)},e.createElement(h.Indicator,{asChild:!0,className:"kui-BaseCheckboxIndicator kui-CheckboxIndicator"},r==="indeterminate"?e.createElement(p,null):e.createElement(i,null)))});u.displayName="Checkbox";export{u as a};
|
|
3
|
+
//# sourceMappingURL=chunk-PZZJH2LR.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/checkbox.tsx"],
|
|
4
|
+
"sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Checkbox as CheckboxPrimitive } from 'radix-ui';\nimport { useControllableState } from 'radix-ui/internal';\n\nimport { checkboxPropDefs } from './checkbox.props.js';\nimport { ThickCheckIcon, ThickDividerHorizontalIcon } from './icons.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { useThemeSizeProps } from '../hooks/theme-size.js';\n\nimport type { ComponentPropsWithout } from '../helpers/component-props.js';\nimport type { GetPropDefTypes } from '../props/prop-def.js';\n\ntype CheckboxElement = React.ElementRef<typeof CheckboxPrimitive.Root>;\ntype CheckboxOwnProps = GetPropDefTypes<typeof checkboxPropDefs>;\ninterface CheckboxProps\n extends ComponentPropsWithout<\n typeof CheckboxPrimitive.Root,\n 'asChild' | 'color' | 'defaultValue' | 'children'\n >,\n CheckboxOwnProps {}\nconst Checkbox = React.forwardRef<CheckboxElement, CheckboxProps>((ownProps, forwardedRef) => {\n const props = useThemeSizeProps(ownProps, checkboxPropDefs.size);\n const {\n className,\n color,\n checked: checkedProp,\n defaultChecked: defaultCheckedProp,\n onCheckedChange,\n ...checkboxProps\n } = extractProps(props, checkboxPropDefs);\n\n const [checked, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultCheckedProp ?? false,\n onChange: onCheckedChange,\n });\n\n return (\n <CheckboxPrimitive.Root\n data-accent-color={color}\n {...checkboxProps}\n defaultChecked={defaultCheckedProp}\n checked={checked}\n onCheckedChange={setChecked}\n asChild={false}\n ref={forwardedRef}\n className={classNames('kui-reset', 'kui-BaseCheckboxRoot', 'kui-CheckboxRoot', className)}\n >\n <CheckboxPrimitive.Indicator\n asChild\n className=\"kui-BaseCheckboxIndicator kui-CheckboxIndicator\"\n >\n {checked === 'indeterminate' ? <ThickDividerHorizontalIcon /> : <ThickCheckIcon />}\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n );\n});\nCheckbox.displayName = 'Checkbox';\n\nexport { Checkbox };\nexport type { CheckboxProps };\n"],
|
|
5
|
+
"mappings": ";kKAEA,UAAYA,MAAW,QACvB,OAAOC,MAAgB,aACvB,OAAS,YAAYC,MAAyB,WAC9C,OAAS,wBAAAC,MAA4B,oBAkBrC,IAAMC,EAAiB,aAA2C,CAACC,EAAUC,IAAiB,CAC5F,IAAMC,EAAQC,EAAkBH,EAAUI,EAAiB,IAAI,EACzD,CACJ,UAAAC,EACA,MAAAC,EACA,QAASC,EACT,eAAgBC,EAChB,gBAAAC,EACA,GAAGC,CACL,EAAIC,EAAaT,EAAOE,CAAgB,EAElC,CAACQ,EAASC,CAAU,EAAIC,EAAqB,CACjD,KAAMP,EACN,YAAaC,GAAsB,GACnC,SAAUC,CACZ,CAAC,EAED,OACE,gBAACM,EAAkB,KAAlB,CACC,oBAAmBT,EAClB,GAAGI,EACJ,eAAgBF,EAChB,QAASI,EACT,gBAAiBC,EACjB,QAAS,GACT,IAAKZ,EACL,UAAWe,EAAW,YAAa,uBAAwB,mBAAoBX,CAAS,GAExF,gBAACU,EAAkB,UAAlB,CACC,QAAO,GACP,UAAU,mDAETH,IAAY,gBAAkB,gBAACK,EAAA,IAA2B,EAAK,gBAACC,EAAA,IAAe,CAClF,CACF,CAEJ,CAAC,EACDnB,EAAS,YAAc",
|
|
6
|
+
"names": ["React", "classNames", "CheckboxPrimitive", "useControllableState", "Checkbox", "ownProps", "forwardedRef", "props", "useThemeSizeProps", "baseCheckboxPropDefs", "className", "color", "checkedProp", "defaultCheckedProp", "onCheckedChange", "checkboxProps", "extractProps", "checked", "setChecked", "useControllableState", "CheckboxPrimitive", "classNames", "ThickDividerHorizontalIcon", "ThickCheckIcon"]
|
|
7
|
+
}
|