@womp/kookie-ui 0.7.0 → 0.8.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/README.md +1 -1
- package/components.css +539 -494
- package/dist/cjs/components/_internal/base-menu.utils.js +1 -1
- package/dist/cjs/components/_internal/base-menu.utils.js.map +3 -3
- package/dist/cjs/components/_internal/menu-context.js +1 -1
- package/dist/cjs/components/_internal/menu-context.js.map +3 -3
- package/dist/cjs/components/_internal/shell-bottom.d.ts +6 -7
- package/dist/cjs/components/_internal/shell-bottom.d.ts.map +1 -1
- package/dist/cjs/components/_internal/shell-bottom.js +1 -1
- package/dist/cjs/components/_internal/shell-bottom.js.map +4 -4
- package/dist/cjs/components/_internal/shell-handles.d.ts +9 -0
- package/dist/cjs/components/_internal/shell-handles.d.ts.map +1 -1
- package/dist/cjs/components/_internal/shell-handles.js +1 -1
- package/dist/cjs/components/_internal/shell-handles.js.map +3 -3
- package/dist/cjs/components/_internal/shell-inspector.d.ts +4 -6
- 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 +4 -4
- package/dist/cjs/components/_internal/shell-pane.d.ts +70 -0
- package/dist/cjs/components/_internal/shell-pane.d.ts.map +1 -0
- package/dist/cjs/components/_internal/shell-pane.js +2 -0
- package/dist/cjs/components/_internal/shell-pane.js.map +7 -0
- package/dist/cjs/components/_internal/shell-resizable.d.ts +48 -0
- package/dist/cjs/components/_internal/shell-resizable.d.ts.map +1 -0
- package/dist/cjs/components/_internal/shell-resizable.js +2 -0
- package/dist/cjs/components/_internal/shell-resizable.js.map +7 -0
- package/dist/cjs/components/_internal/shell-resize.d.ts +11 -3
- package/dist/cjs/components/_internal/shell-resize.d.ts.map +1 -1
- package/dist/cjs/components/_internal/shell-resize.js +1 -1
- package/dist/cjs/components/_internal/shell-resize.js.map +2 -2
- package/dist/cjs/components/_internal/shell-rest.d.ts +27 -0
- package/dist/cjs/components/_internal/shell-rest.d.ts.map +1 -0
- package/dist/cjs/components/_internal/shell-rest.js +2 -0
- package/dist/cjs/components/_internal/shell-rest.js.map +7 -0
- package/dist/cjs/components/_internal/shell-sidebar.d.ts +7 -12
- 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 +4 -4
- package/dist/cjs/components/_internal/shell-store.d.ts +99 -0
- package/dist/cjs/components/_internal/shell-store.d.ts.map +1 -0
- package/dist/cjs/components/_internal/shell-store.js +2 -0
- package/dist/cjs/components/_internal/shell-store.js.map +7 -0
- package/dist/cjs/components/context-menu.js +1 -1
- package/dist/cjs/components/context-menu.js.map +3 -3
- package/dist/cjs/components/dropdown-menu.js +1 -1
- package/dist/cjs/components/dropdown-menu.js.map +3 -3
- package/dist/cjs/components/index.js +5 -5
- package/dist/cjs/components/index.js.map +4 -4
- package/dist/cjs/components/schemas/index.js +1 -1
- package/dist/cjs/components/schemas/index.js.map +3 -3
- package/dist/cjs/components/schemas/shell.schema.d.ts +277 -229
- package/dist/cjs/components/schemas/shell.schema.d.ts.map +1 -1
- package/dist/cjs/components/schemas/shell.schema.js +1 -1
- package/dist/cjs/components/schemas/shell.schema.js.map +3 -3
- package/dist/cjs/components/shell.context.d.ts +25 -114
- package/dist/cjs/components/shell.context.d.ts.map +1 -1
- package/dist/cjs/components/shell.context.js +1 -1
- package/dist/cjs/components/shell.context.js.map +4 -4
- package/dist/cjs/components/shell.d.ts +42 -21
- package/dist/cjs/components/shell.d.ts.map +1 -1
- package/dist/cjs/components/shell.hooks.d.ts +7 -23
- package/dist/cjs/components/shell.hooks.d.ts.map +1 -1
- package/dist/cjs/components/shell.hooks.js +1 -1
- package/dist/cjs/components/shell.hooks.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/shell.types.d.ts +19 -2
- package/dist/cjs/components/shell.types.d.ts.map +1 -1
- package/dist/cjs/components/shell.types.js +1 -1
- package/dist/cjs/components/shell.types.js.map +3 -3
- 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 +3 -3
- package/dist/cjs/hooks/use-breakpoint.d.ts +5 -0
- package/dist/cjs/hooks/use-breakpoint.d.ts.map +1 -1
- package/dist/cjs/hooks/use-breakpoint.js +1 -1
- package/dist/cjs/hooks/use-breakpoint.js.map +3 -3
- package/dist/cjs/index.js +5 -5
- package/dist/cjs/index.js.map +4 -4
- package/dist/esm/{chunk-HJU4I34X.js → chunk-25X75TI7.js} +2 -2
- package/dist/esm/{chunk-4XKK32M4.js → chunk-26I257HE.js} +2 -2
- package/dist/esm/chunk-2EQWBT2S.js +2 -0
- package/dist/esm/chunk-2EQWBT2S.js.map +7 -0
- package/dist/esm/{chunk-GLERJXVS.js → chunk-2Q7BJ7YG.js} +2 -2
- package/dist/esm/chunk-3J6AUDID.js +2 -0
- package/dist/esm/chunk-3J6AUDID.js.map +7 -0
- package/dist/esm/{chunk-7EWFBWBS.js → chunk-3PTSRBVY.js} +2 -2
- package/dist/esm/chunk-3XSB7YIM.js +2 -0
- package/dist/esm/{chunk-FMBECDL4.js.map → chunk-3XSB7YIM.js.map} +3 -3
- package/dist/esm/{chunk-O2U6RJTB.js → chunk-44JZYS7A.js} +2 -2
- package/dist/esm/{chunk-CTA5ODAO.js → chunk-4WU2WKUJ.js} +2 -2
- package/dist/esm/{chunk-KZWNGWIM.js → chunk-5M7STAH3.js} +2 -2
- package/dist/esm/{chunk-5WRCK4R7.js → chunk-5TAHT6VC.js} +2 -2
- package/dist/esm/{chunk-RNTCHVFI.js → chunk-6J6YX2VX.js} +2 -2
- package/dist/esm/{chunk-AGSSWWFI.js → chunk-7FKKGUHK.js} +2 -2
- package/dist/esm/{chunk-WHFJ4JUN.js → chunk-7NYODT3Z.js} +2 -2
- package/dist/esm/{chunk-NVDXXGVW.js → chunk-7PMMYHZV.js} +2 -2
- package/dist/esm/chunk-A2XVR7GL.js +2 -0
- package/dist/esm/chunk-A2XVR7GL.js.map +7 -0
- package/dist/esm/chunk-ADXZNG4F.js +2 -0
- package/dist/esm/chunk-ADXZNG4F.js.map +7 -0
- package/dist/esm/chunk-AGNIFHOE.js +2 -0
- package/dist/esm/chunk-AGNIFHOE.js.map +7 -0
- package/dist/esm/{chunk-KJUDZCYK.js → chunk-AIHQ3MVK.js} +2 -2
- package/dist/esm/{chunk-UBOOUDS4.js → chunk-AO32NT75.js} +2 -2
- package/dist/esm/chunk-BZZXXZ3O.js +2 -0
- package/dist/esm/chunk-BZZXXZ3O.js.map +7 -0
- package/dist/esm/{chunk-JDGJSNWT.js → chunk-C5RVO3C3.js} +2 -2
- package/dist/esm/{chunk-IHK3H2OM.js → chunk-CBNTPHYK.js} +2 -2
- package/dist/esm/{chunk-BBJUB52V.js → chunk-CRBOJ7N7.js} +2 -2
- package/dist/esm/{chunk-VHECAEUP.js → chunk-DCIQHXAR.js} +2 -2
- package/dist/esm/{chunk-43A5GUSI.js → chunk-EHBAK3LQ.js} +2 -2
- package/dist/esm/{chunk-K3UAS7RW.js → chunk-F3AXE27Q.js} +2 -2
- package/dist/esm/{chunk-KFR3CK24.js → chunk-FB3PD4Z3.js} +2 -2
- package/dist/esm/{chunk-MCPRXVKZ.js → chunk-FEAOFF77.js} +2 -2
- package/dist/esm/{chunk-VZSQATP6.js → chunk-G4YKBAZT.js} +2 -2
- package/dist/esm/{chunk-ECXGQQJB.js → chunk-GDAKJS64.js} +2 -2
- package/dist/esm/{chunk-VR7ZAFYN.js → chunk-GGSJXOKR.js} +2 -2
- package/dist/esm/chunk-GM7KMQDI.js +2 -0
- package/dist/esm/chunk-GMHA5CFH.js +2 -0
- package/dist/esm/chunk-GMHA5CFH.js.map +7 -0
- package/dist/esm/{chunk-CESYMTJQ.js → chunk-H4GR4262.js} +2 -2
- package/dist/esm/{chunk-WXQIIKWV.js → chunk-HBIF43PT.js} +2 -2
- package/dist/esm/chunk-HCNO7PX6.js +2 -0
- package/dist/esm/chunk-HCNO7PX6.js.map +7 -0
- package/dist/esm/{chunk-2264DHUW.js → chunk-HMSSFU6I.js} +2 -2
- package/dist/esm/chunk-HWQ3NTJP.js +2 -0
- package/dist/esm/chunk-HWQ3NTJP.js.map +7 -0
- package/dist/esm/{chunk-S5C5YRBS.js → chunk-IDUVJJYG.js} +2 -2
- package/dist/esm/{chunk-CIYF56YS.js → chunk-IK3MQHA5.js} +2 -2
- package/dist/esm/{chunk-CKMMUHKE.js → chunk-JDEBKA56.js} +2 -2
- package/dist/esm/{chunk-E67CIG6A.js → chunk-JDWCQ2XP.js} +2 -2
- package/dist/esm/{chunk-L3BWTV7I.js → chunk-JQSZF3E2.js} +2 -2
- package/dist/esm/{chunk-MEO7MJMQ.js → chunk-JQW4XYBS.js} +2 -2
- package/dist/esm/{chunk-KMPE7TJ6.js → chunk-JRFZ535T.js} +2 -2
- package/dist/esm/{chunk-CDG5WH4U.js → chunk-KEEPKI2X.js} +2 -2
- package/dist/esm/{chunk-GAV3NHYL.js → chunk-KV4SZP3F.js} +2 -2
- package/dist/esm/{chunk-FG7XM7KJ.js → chunk-LJCUPAOI.js} +2 -2
- package/dist/esm/{chunk-N4GTDLRD.js → chunk-MBCQA7UZ.js} +2 -2
- package/dist/esm/chunk-MM5IHQFM.js +2 -0
- package/dist/esm/{chunk-Y5RCH23Z.js → chunk-NQXRWBQM.js} +2 -2
- package/dist/esm/{chunk-CSKZZOI2.js → chunk-NTNMJX5M.js} +2 -2
- package/dist/esm/{chunk-V27ZAN3E.js → chunk-NV3P2CKH.js} +2 -2
- package/dist/esm/{chunk-4ME6O27S.js → chunk-O4CSXNST.js} +2 -2
- package/dist/esm/chunk-ODCVOXEV.js +2 -0
- package/dist/esm/{chunk-W2FOBR5Q.js → chunk-OEEF6KJG.js} +2 -2
- package/dist/esm/{chunk-ABSKRHVM.js → chunk-OJSOX3AX.js} +2 -2
- package/dist/esm/{chunk-JGLAE5G7.js → chunk-OQU2SKLN.js} +2 -2
- package/dist/esm/{chunk-PZ7OYATT.js → chunk-OTKQN2KY.js} +2 -2
- package/dist/esm/{chunk-QWVU2TW4.js → chunk-P27KV2LS.js} +2 -2
- package/dist/esm/{chunk-JUY7CBSL.js → chunk-PBFSBHBS.js} +2 -2
- package/dist/esm/{chunk-DSJY5RI3.js → chunk-PDUHBDFC.js} +2 -2
- package/dist/esm/{chunk-MTOLKA6S.js → chunk-POG3YABW.js} +2 -2
- package/dist/esm/chunk-PYHEBG5I.js +2 -0
- package/dist/esm/chunk-PYHEBG5I.js.map +7 -0
- package/dist/esm/{chunk-GO7OHBHW.js → chunk-PYXMGEO7.js} +2 -2
- package/dist/esm/{chunk-VNH7BJOA.js → chunk-QEGEUD4D.js} +2 -2
- package/dist/esm/chunk-QEL55MLF.js +2 -0
- package/dist/esm/{chunk-MS5J4MF6.js → chunk-QJVAS7AK.js} +2 -2
- package/dist/esm/chunk-ROSWI2CL.js +2 -0
- package/dist/esm/chunk-ROSWI2CL.js.map +7 -0
- package/dist/esm/{chunk-KCWESYMR.js → chunk-RY67WG3O.js} +2 -2
- package/dist/esm/{chunk-IFM4EMZB.js → chunk-TLGXIWAS.js} +2 -2
- package/dist/esm/{chunk-6FLLFCBU.js → chunk-UBSLEGQZ.js} +2 -2
- package/dist/esm/{chunk-VBI3AWPT.js → chunk-UNWPH3SO.js} +2 -2
- package/dist/esm/chunk-V5ZSDDVZ.js +2 -0
- package/dist/esm/chunk-V5ZSDDVZ.js.map +7 -0
- package/dist/esm/{chunk-X7V3V3W4.js → chunk-VTIL55SR.js} +2 -2
- package/dist/esm/chunk-VUNNS3ZU.js +2 -0
- package/dist/esm/chunk-VUNNS3ZU.js.map +7 -0
- package/dist/esm/{chunk-ALWNS44Q.js → chunk-W2LD2YE6.js} +2 -2
- package/dist/esm/{chunk-2I7QRVJ5.js → chunk-WGWUEU4K.js} +2 -2
- package/dist/esm/{chunk-EPTYNVCU.js → chunk-WIDJYVZF.js} +2 -2
- package/dist/esm/{chunk-OLAWVEAI.js → chunk-WJBOOAIO.js} +2 -2
- package/dist/esm/{chunk-7FC7HF76.js → chunk-WQCB7KSH.js} +2 -2
- package/dist/esm/{chunk-YBSRX63K.js → chunk-WZFVTC7P.js} +2 -2
- package/dist/esm/chunk-XDDKT4NF.js +2 -0
- package/dist/esm/{chunk-KFA53SVQ.js → chunk-YA5DF67M.js} +2 -2
- package/dist/esm/chunk-YA5DF67M.js.map +7 -0
- package/dist/esm/chunk-YAQBIO2B.js +2 -0
- package/dist/esm/chunk-YAQBIO2B.js.map +7 -0
- package/dist/esm/{chunk-OFUNVHZ5.js → chunk-YG66IRW4.js} +2 -2
- package/dist/esm/{chunk-WGYUWEQV.js → chunk-YVSM2LGS.js} +2 -2
- package/dist/esm/{chunk-4NTGF22C.js → chunk-Z7AZNMNX.js} +2 -2
- package/dist/esm/chunk-ZJ33QP5N.js +2 -0
- package/dist/esm/{chunk-OGXZHAQL.js → chunk-ZW26J2SA.js} +2 -2
- package/dist/esm/components/_internal/base-button.js +1 -1
- package/dist/esm/components/_internal/base-menu.utils.js +1 -1
- package/dist/esm/components/_internal/menu-context.js +1 -1
- package/dist/esm/components/_internal/shell-bottom.d.ts +6 -7
- package/dist/esm/components/_internal/shell-bottom.d.ts.map +1 -1
- package/dist/esm/components/_internal/shell-bottom.js +1 -1
- package/dist/esm/components/_internal/shell-handles.d.ts +9 -0
- package/dist/esm/components/_internal/shell-handles.d.ts.map +1 -1
- package/dist/esm/components/_internal/shell-handles.js +1 -1
- package/dist/esm/components/_internal/shell-inspector.d.ts +4 -6
- 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-pane.d.ts +70 -0
- package/dist/esm/components/_internal/shell-pane.d.ts.map +1 -0
- package/dist/esm/components/_internal/shell-pane.js +2 -0
- package/dist/esm/components/_internal/shell-resizable.d.ts +48 -0
- package/dist/esm/components/_internal/shell-resizable.d.ts.map +1 -0
- package/dist/esm/components/_internal/shell-resizable.js +2 -0
- package/dist/esm/components/_internal/shell-resizable.js.map +7 -0
- package/dist/esm/components/_internal/shell-resize.d.ts +11 -3
- package/dist/esm/components/_internal/shell-resize.d.ts.map +1 -1
- package/dist/esm/components/_internal/shell-resize.js +1 -1
- package/dist/esm/components/_internal/shell-rest.d.ts +27 -0
- package/dist/esm/components/_internal/shell-rest.d.ts.map +1 -0
- package/dist/esm/components/_internal/shell-rest.js +2 -0
- package/dist/esm/components/_internal/shell-rest.js.map +7 -0
- package/dist/esm/components/_internal/shell-sidebar.d.ts +7 -12
- 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/_internal/shell-store.d.ts +99 -0
- package/dist/esm/components/_internal/shell-store.d.ts.map +1 -0
- package/dist/esm/components/_internal/shell-store.js +2 -0
- package/dist/esm/components/_internal/shell-store.js.map +7 -0
- 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/badge.js +1 -1
- package/dist/esm/components/blockquote.js +1 -1
- package/dist/esm/components/blockquote.props.js +1 -1
- package/dist/esm/components/box.js +1 -1
- package/dist/esm/components/button.js +1 -1
- package/dist/esm/components/callout.js +1 -1
- package/dist/esm/components/card.js +1 -1
- package/dist/esm/components/chatbar.js +1 -1
- package/dist/esm/components/checkbox-cards.js +1 -1
- package/dist/esm/components/checkbox-group.js +1 -1
- package/dist/esm/components/checkbox.js +1 -1
- package/dist/esm/components/code.js +1 -1
- package/dist/esm/components/code.props.js +1 -1
- package/dist/esm/components/combobox.js +1 -1
- package/dist/esm/components/container.js +1 -1
- package/dist/esm/components/context-menu.js +1 -1
- package/dist/esm/components/data-list.js +1 -1
- package/dist/esm/components/dialog.js +1 -1
- package/dist/esm/components/dropdown-menu.js +1 -1
- package/dist/esm/components/em.js +1 -1
- package/dist/esm/components/em.props.js +1 -1
- package/dist/esm/components/flex.js +1 -1
- package/dist/esm/components/grid.js +1 -1
- package/dist/esm/components/heading.js +1 -1
- package/dist/esm/components/heading.props.js +1 -1
- package/dist/esm/components/hover-card.js +1 -1
- package/dist/esm/components/icon-button.js +1 -1
- package/dist/esm/components/image.js +1 -1
- package/dist/esm/components/index.js +1 -1
- package/dist/esm/components/inset.js +1 -1
- package/dist/esm/components/kbd.js +1 -1
- package/dist/esm/components/link.js +1 -1
- package/dist/esm/components/link.props.js +1 -1
- package/dist/esm/components/navbar.js +1 -1
- package/dist/esm/components/popover.js +1 -1
- package/dist/esm/components/progress.js +1 -1
- package/dist/esm/components/quote.js +1 -1
- package/dist/esm/components/quote.props.js +1 -1
- package/dist/esm/components/radio-cards.js +1 -1
- package/dist/esm/components/radio-group.js +1 -1
- package/dist/esm/components/radio.js +1 -1
- package/dist/esm/components/schemas/index.js +1 -1
- package/dist/esm/components/schemas/shell.schema.d.ts +277 -229
- package/dist/esm/components/schemas/shell.schema.d.ts.map +1 -1
- package/dist/esm/components/schemas/shell.schema.js +1 -1
- package/dist/esm/components/scroll-area.js +1 -1
- package/dist/esm/components/section.js +1 -1
- package/dist/esm/components/segmented-control.js +1 -1
- package/dist/esm/components/select.js +1 -1
- package/dist/esm/components/separator.js +1 -1
- package/dist/esm/components/sheet.js +1 -1
- package/dist/esm/components/shell.context.d.ts +25 -114
- package/dist/esm/components/shell.context.d.ts.map +1 -1
- package/dist/esm/components/shell.context.js +1 -1
- package/dist/esm/components/shell.d.ts +42 -21
- package/dist/esm/components/shell.d.ts.map +1 -1
- package/dist/esm/components/shell.hooks.d.ts +7 -23
- package/dist/esm/components/shell.hooks.d.ts.map +1 -1
- package/dist/esm/components/shell.hooks.js +1 -1
- package/dist/esm/components/shell.js +1 -1
- package/dist/esm/components/shell.types.d.ts +19 -2
- package/dist/esm/components/shell.types.d.ts.map +1 -1
- package/dist/esm/components/shell.types.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/skeleton.js +1 -1
- package/dist/esm/components/slider.js +1 -1
- package/dist/esm/components/spinner.js +1 -1
- package/dist/esm/components/strong.js +1 -1
- package/dist/esm/components/strong.props.js +1 -1
- package/dist/esm/components/switch.js +1 -1
- package/dist/esm/components/tab-nav.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/text.js +1 -1
- package/dist/esm/components/text.props.js +1 -1
- package/dist/esm/components/theme-panel.js +1 -1
- package/dist/esm/components/toggle-button.js +1 -1
- package/dist/esm/components/toggle-icon-button.js +1 -1
- package/dist/esm/components/toolbar.js +1 -1
- package/dist/esm/components/tooltip.js +1 -1
- package/dist/esm/components/user-card.js +1 -1
- package/dist/esm/components/virtual-menu.js +1 -1
- package/dist/esm/helpers/extract-props.js +1 -1
- package/dist/esm/helpers/get-margin-styles.js +1 -1
- package/dist/esm/helpers/get-responsive-styles.js +1 -1
- package/dist/esm/helpers/index.js +1 -1
- package/dist/esm/hooks/index.js +1 -1
- package/dist/esm/hooks/use-breakpoint.d.ts +5 -0
- package/dist/esm/hooks/use-breakpoint.d.ts.map +1 -1
- package/dist/esm/hooks/use-breakpoint.js +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/props/index.js +1 -1
- package/package.json +7 -2
- package/schemas/index.json +1655 -0
- package/schemas/shell-bottom.d.ts +2 -0
- package/schemas/shell-bottom.json +180 -76
- package/schemas/shell-content.d.ts +2 -0
- package/schemas/shell-content.json +11 -5
- package/schemas/shell-handle.d.ts +2 -0
- package/schemas/shell-handle.json +7 -5
- package/schemas/shell-header.d.ts +2 -0
- package/schemas/shell-header.json +9 -10
- package/schemas/shell-inspector.d.ts +2 -0
- package/schemas/shell-inspector.json +183 -79
- package/schemas/shell-panel.d.ts +2 -0
- package/schemas/shell-panel.json +180 -76
- package/schemas/shell-rail.d.ts +2 -0
- package/schemas/shell-rail.json +137 -64
- package/schemas/shell-root.d.ts +2 -0
- package/schemas/shell-root.json +11 -9
- package/schemas/shell-sidebar.d.ts +2 -0
- package/schemas/shell-sidebar.json +274 -85
- package/schemas/shell-trigger.d.ts +2 -0
- package/schemas/shell-trigger.json +29 -17
- package/src/components/_internal/base-sidebar-menu.css +2 -1
- package/src/components/_internal/shell-bottom.tsx +92 -361
- package/src/components/_internal/shell-handles.tsx +193 -108
- package/src/components/_internal/shell-inspector.tsx +93 -360
- package/src/components/_internal/shell-pane.tsx +283 -0
- package/src/components/_internal/shell-resizable.tsx +263 -0
- package/src/components/_internal/shell-resize.tsx +11 -3
- package/src/components/_internal/shell-rest.ts +45 -0
- package/src/components/_internal/shell-sidebar.tsx +130 -441
- package/src/components/_internal/shell-store.tsx +204 -0
- package/src/components/schemas/shell.schema.ts +162 -153
- package/src/components/shell.context.tsx +112 -124
- package/src/components/shell.css +637 -496
- package/src/components/shell.hooks.ts +12 -170
- package/src/components/shell.tsx +566 -1497
- package/src/components/shell.types.ts +22 -2
- package/src/components/sidebar.tsx +17 -28
- package/src/hooks/use-breakpoint.ts +9 -0
- package/styles.css +539 -494
- package/dist/cjs/components/_internal/shell-prop-helpers.d.ts +0 -7
- package/dist/cjs/components/_internal/shell-prop-helpers.d.ts.map +0 -1
- package/dist/cjs/components/_internal/shell-prop-helpers.js +0 -2
- package/dist/cjs/components/_internal/shell-prop-helpers.js.map +0 -7
- package/dist/esm/chunk-2SZZ75RJ.js +0 -2
- package/dist/esm/chunk-2SZZ75RJ.js.map +0 -7
- package/dist/esm/chunk-4JQZUQY7.js +0 -2
- package/dist/esm/chunk-5LXFJMFB.js +0 -2
- package/dist/esm/chunk-5LXFJMFB.js.map +0 -7
- package/dist/esm/chunk-CECQNGUL.js +0 -2
- package/dist/esm/chunk-CECQNGUL.js.map +0 -7
- package/dist/esm/chunk-CEIK5U6C.js +0 -2
- package/dist/esm/chunk-CEIK5U6C.js.map +0 -7
- package/dist/esm/chunk-CJ27XP5Z.js +0 -2
- package/dist/esm/chunk-CJ27XP5Z.js.map +0 -7
- package/dist/esm/chunk-EE2IH2GL.js +0 -2
- package/dist/esm/chunk-EE2IH2GL.js.map +0 -7
- package/dist/esm/chunk-FMBECDL4.js +0 -2
- package/dist/esm/chunk-HSAG7C53.js +0 -2
- package/dist/esm/chunk-JJKQ7CGI.js +0 -2
- package/dist/esm/chunk-KFA53SVQ.js.map +0 -7
- package/dist/esm/chunk-KRDP5SQ7.js +0 -2
- package/dist/esm/chunk-KRDP5SQ7.js.map +0 -7
- package/dist/esm/chunk-M6DJRFJZ.js +0 -2
- package/dist/esm/chunk-M6DJRFJZ.js.map +0 -7
- package/dist/esm/chunk-MCQCG6AS.js +0 -2
- package/dist/esm/chunk-NIQT45PJ.js +0 -2
- package/dist/esm/chunk-NNO7M466.js +0 -2
- package/dist/esm/chunk-NNO7M466.js.map +0 -7
- package/dist/esm/chunk-SNHEJU2S.js +0 -2
- package/dist/esm/chunk-SNHEJU2S.js.map +0 -7
- package/dist/esm/chunk-TLWTUKKL.js +0 -2
- package/dist/esm/chunk-TLWTUKKL.js.map +0 -7
- package/dist/esm/chunk-XI5YXUCK.js +0 -2
- package/dist/esm/components/_internal/shell-prop-helpers.d.ts +0 -7
- package/dist/esm/components/_internal/shell-prop-helpers.d.ts.map +0 -1
- package/dist/esm/components/_internal/shell-prop-helpers.js +0 -2
- package/src/components/_internal/shell-prop-helpers.ts +0 -54
- /package/dist/esm/{chunk-HJU4I34X.js.map → chunk-25X75TI7.js.map} +0 -0
- /package/dist/esm/{chunk-4XKK32M4.js.map → chunk-26I257HE.js.map} +0 -0
- /package/dist/esm/{chunk-GLERJXVS.js.map → chunk-2Q7BJ7YG.js.map} +0 -0
- /package/dist/esm/{chunk-7EWFBWBS.js.map → chunk-3PTSRBVY.js.map} +0 -0
- /package/dist/esm/{chunk-O2U6RJTB.js.map → chunk-44JZYS7A.js.map} +0 -0
- /package/dist/esm/{chunk-CTA5ODAO.js.map → chunk-4WU2WKUJ.js.map} +0 -0
- /package/dist/esm/{chunk-KZWNGWIM.js.map → chunk-5M7STAH3.js.map} +0 -0
- /package/dist/esm/{chunk-5WRCK4R7.js.map → chunk-5TAHT6VC.js.map} +0 -0
- /package/dist/esm/{chunk-RNTCHVFI.js.map → chunk-6J6YX2VX.js.map} +0 -0
- /package/dist/esm/{chunk-AGSSWWFI.js.map → chunk-7FKKGUHK.js.map} +0 -0
- /package/dist/esm/{chunk-WHFJ4JUN.js.map → chunk-7NYODT3Z.js.map} +0 -0
- /package/dist/esm/{chunk-NVDXXGVW.js.map → chunk-7PMMYHZV.js.map} +0 -0
- /package/dist/esm/{chunk-KJUDZCYK.js.map → chunk-AIHQ3MVK.js.map} +0 -0
- /package/dist/esm/{chunk-UBOOUDS4.js.map → chunk-AO32NT75.js.map} +0 -0
- /package/dist/esm/{chunk-JDGJSNWT.js.map → chunk-C5RVO3C3.js.map} +0 -0
- /package/dist/esm/{chunk-IHK3H2OM.js.map → chunk-CBNTPHYK.js.map} +0 -0
- /package/dist/esm/{chunk-BBJUB52V.js.map → chunk-CRBOJ7N7.js.map} +0 -0
- /package/dist/esm/{chunk-VHECAEUP.js.map → chunk-DCIQHXAR.js.map} +0 -0
- /package/dist/esm/{chunk-43A5GUSI.js.map → chunk-EHBAK3LQ.js.map} +0 -0
- /package/dist/esm/{chunk-K3UAS7RW.js.map → chunk-F3AXE27Q.js.map} +0 -0
- /package/dist/esm/{chunk-KFR3CK24.js.map → chunk-FB3PD4Z3.js.map} +0 -0
- /package/dist/esm/{chunk-MCPRXVKZ.js.map → chunk-FEAOFF77.js.map} +0 -0
- /package/dist/esm/{chunk-VZSQATP6.js.map → chunk-G4YKBAZT.js.map} +0 -0
- /package/dist/esm/{chunk-ECXGQQJB.js.map → chunk-GDAKJS64.js.map} +0 -0
- /package/dist/esm/{chunk-VR7ZAFYN.js.map → chunk-GGSJXOKR.js.map} +0 -0
- /package/dist/esm/{chunk-4JQZUQY7.js.map → chunk-GM7KMQDI.js.map} +0 -0
- /package/dist/esm/{chunk-CESYMTJQ.js.map → chunk-H4GR4262.js.map} +0 -0
- /package/dist/esm/{chunk-WXQIIKWV.js.map → chunk-HBIF43PT.js.map} +0 -0
- /package/dist/esm/{chunk-2264DHUW.js.map → chunk-HMSSFU6I.js.map} +0 -0
- /package/dist/esm/{chunk-S5C5YRBS.js.map → chunk-IDUVJJYG.js.map} +0 -0
- /package/dist/esm/{chunk-CIYF56YS.js.map → chunk-IK3MQHA5.js.map} +0 -0
- /package/dist/esm/{chunk-CKMMUHKE.js.map → chunk-JDEBKA56.js.map} +0 -0
- /package/dist/esm/{chunk-E67CIG6A.js.map → chunk-JDWCQ2XP.js.map} +0 -0
- /package/dist/esm/{chunk-L3BWTV7I.js.map → chunk-JQSZF3E2.js.map} +0 -0
- /package/dist/esm/{chunk-MEO7MJMQ.js.map → chunk-JQW4XYBS.js.map} +0 -0
- /package/dist/esm/{chunk-KMPE7TJ6.js.map → chunk-JRFZ535T.js.map} +0 -0
- /package/dist/esm/{chunk-CDG5WH4U.js.map → chunk-KEEPKI2X.js.map} +0 -0
- /package/dist/esm/{chunk-GAV3NHYL.js.map → chunk-KV4SZP3F.js.map} +0 -0
- /package/dist/esm/{chunk-FG7XM7KJ.js.map → chunk-LJCUPAOI.js.map} +0 -0
- /package/dist/esm/{chunk-N4GTDLRD.js.map → chunk-MBCQA7UZ.js.map} +0 -0
- /package/dist/esm/{chunk-JJKQ7CGI.js.map → chunk-MM5IHQFM.js.map} +0 -0
- /package/dist/esm/{chunk-Y5RCH23Z.js.map → chunk-NQXRWBQM.js.map} +0 -0
- /package/dist/esm/{chunk-CSKZZOI2.js.map → chunk-NTNMJX5M.js.map} +0 -0
- /package/dist/esm/{chunk-V27ZAN3E.js.map → chunk-NV3P2CKH.js.map} +0 -0
- /package/dist/esm/{chunk-4ME6O27S.js.map → chunk-O4CSXNST.js.map} +0 -0
- /package/dist/esm/{chunk-HSAG7C53.js.map → chunk-ODCVOXEV.js.map} +0 -0
- /package/dist/esm/{chunk-W2FOBR5Q.js.map → chunk-OEEF6KJG.js.map} +0 -0
- /package/dist/esm/{chunk-ABSKRHVM.js.map → chunk-OJSOX3AX.js.map} +0 -0
- /package/dist/esm/{chunk-JGLAE5G7.js.map → chunk-OQU2SKLN.js.map} +0 -0
- /package/dist/esm/{chunk-PZ7OYATT.js.map → chunk-OTKQN2KY.js.map} +0 -0
- /package/dist/esm/{chunk-QWVU2TW4.js.map → chunk-P27KV2LS.js.map} +0 -0
- /package/dist/esm/{chunk-JUY7CBSL.js.map → chunk-PBFSBHBS.js.map} +0 -0
- /package/dist/esm/{chunk-DSJY5RI3.js.map → chunk-PDUHBDFC.js.map} +0 -0
- /package/dist/esm/{chunk-MTOLKA6S.js.map → chunk-POG3YABW.js.map} +0 -0
- /package/dist/esm/{chunk-GO7OHBHW.js.map → chunk-PYXMGEO7.js.map} +0 -0
- /package/dist/esm/{chunk-VNH7BJOA.js.map → chunk-QEGEUD4D.js.map} +0 -0
- /package/dist/esm/{chunk-MCQCG6AS.js.map → chunk-QEL55MLF.js.map} +0 -0
- /package/dist/esm/{chunk-MS5J4MF6.js.map → chunk-QJVAS7AK.js.map} +0 -0
- /package/dist/esm/{chunk-KCWESYMR.js.map → chunk-RY67WG3O.js.map} +0 -0
- /package/dist/esm/{chunk-IFM4EMZB.js.map → chunk-TLGXIWAS.js.map} +0 -0
- /package/dist/esm/{chunk-6FLLFCBU.js.map → chunk-UBSLEGQZ.js.map} +0 -0
- /package/dist/esm/{chunk-VBI3AWPT.js.map → chunk-UNWPH3SO.js.map} +0 -0
- /package/dist/esm/{chunk-X7V3V3W4.js.map → chunk-VTIL55SR.js.map} +0 -0
- /package/dist/esm/{chunk-ALWNS44Q.js.map → chunk-W2LD2YE6.js.map} +0 -0
- /package/dist/esm/{chunk-2I7QRVJ5.js.map → chunk-WGWUEU4K.js.map} +0 -0
- /package/dist/esm/{chunk-EPTYNVCU.js.map → chunk-WIDJYVZF.js.map} +0 -0
- /package/dist/esm/{chunk-OLAWVEAI.js.map → chunk-WJBOOAIO.js.map} +0 -0
- /package/dist/esm/{chunk-7FC7HF76.js.map → chunk-WQCB7KSH.js.map} +0 -0
- /package/dist/esm/{chunk-YBSRX63K.js.map → chunk-WZFVTC7P.js.map} +0 -0
- /package/dist/esm/{chunk-XI5YXUCK.js.map → chunk-XDDKT4NF.js.map} +0 -0
- /package/dist/esm/{chunk-OFUNVHZ5.js.map → chunk-YG66IRW4.js.map} +0 -0
- /package/dist/esm/{chunk-WGYUWEQV.js.map → chunk-YVSM2LGS.js.map} +0 -0
- /package/dist/esm/{chunk-4NTGF22C.js.map → chunk-Z7AZNMNX.js.map} +0 -0
- /package/dist/esm/{chunk-NIQT45PJ.js.map → chunk-ZJ33QP5N.js.map} +0 -0
- /package/dist/esm/{chunk-OGXZHAQL.js.map → chunk-ZW26J2SA.js.map} +0 -0
- /package/dist/esm/components/_internal/{shell-prop-helpers.js.map → shell-pane.js.map} +0 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/schemas/shell.schema.ts"],
|
|
4
|
+
"sourcesContent": ["import { z } from 'zod';\n\n/**\n * Shell Zod schema: the Shell's props, for tools that read a schema\n * (editors, assistants, documentation).\n *\n * Shell is the frame of an application. Each pane holds its own open state;\n * a pane nobody has touched follows the window, and the stylesheet resolves\n * it at each breakpoint. Callbacks report user actions only.\n *\n * @example\n * ```tsx\n * const props = ShellRootSchema.parse({ height: 'full' });\n *\n * const sidebarProps = ShellSidebarSchema.parse({\n * defaultState: { initial: 'collapsed', md: 'expanded' },\n * presentation: { initial: 'overlay', sm: 'fixed' },\n * });\n * ```\n */\n\n// Common types\nconst PaneModeSchema = z.enum(['expanded', 'collapsed']).describe('Pane state mode');\nconst SidebarModeSchema = z.enum(['collapsed', 'thin', 'expanded']).describe('Sidebar state');\nconst PresentationValueSchema = z.enum(['fixed', 'overlay', 'stacked']).describe('Presentation mode');\nconst _BreakpointSchema = z.enum(['initial', 'xs', 'sm', 'md', 'lg', 'xl']).describe('Responsive breakpoint');\nconst PaneTargetSchema = z.enum(['left', 'rail', 'panel', 'sidebar', 'inspector', 'bottom']).describe('Pane target. `left` is deprecated: use `rail`.');\nconst TriggerActionSchema = z.enum(['toggle', 'expand', 'collapse']).describe('Trigger action');\nconst OpenChangeReasonSchema = z.enum(['toggle', 'dismiss']).describe('Why the state changed: `toggle` for a trigger or the resize handle, `dismiss` for Escape or the scrim');\nconst SizeChangeReasonSchema = z.enum(['init', 'resize', 'controlled']).describe('Why the size changed');\n\nfunction responsive<T extends z.ZodTypeAny>(value: T) {\n return z.union([\n value,\n z.object({\n initial: value.optional(),\n xs: value.optional(),\n sm: value.optional(),\n md: value.optional(),\n lg: value.optional(),\n xl: value.optional(),\n }),\n ]);\n}\n\n// Responsive schemas\nconst _ResponsiveModeSchema = responsive(PaneModeSchema).describe('Responsive pane mode configuration');\nconst ResponsiveSidebarModeSchema = responsive(SidebarModeSchema).describe('Responsive sidebar state');\nconst ResponsivePresentationSchema = responsive(PresentationValueSchema).describe('Responsive presentation configuration');\nconst ResponsiveOpenSchema = responsive(z.boolean()).describe('Responsive open state');\n\n// Size persistence adapter (deprecated)\nconst PaneSizePersistenceSchema = z\n .object({\n load: z.function({ output: z.union([z.number(), z.promise(z.number()), z.undefined()]) }).optional(),\n save: z.function({ input: [z.number()], output: z.union([z.void(), z.promise(z.void())]) }).optional(),\n })\n .describe('Deprecated, removed in 1.0. Keep the size in your own state with `size`/`onSizeChange`.');\n\nconst StyleSchema = z\n .record(z.string(), z.union([z.string(), z.number()]))\n .optional()\n .describe('Inline styles');\n\nconst OpenPropsSchema = {\n open: z.union([z.boolean(), ResponsiveOpenSchema]).optional().describe('The open state, when controlled. A responsive object is deprecated.'),\n defaultOpen: z\n .union([z.boolean(), ResponsiveOpenSchema])\n .optional()\n .describe('The starting state. A responsive object leaves the pane untouched, with that object as the answer at each breakpoint.'),\n onOpenChange: z\n .function({ input: [z.boolean(), z.object({ reason: OpenChangeReasonSchema })], output: z.void() })\n .optional()\n .describe('Called when a user opens or closes the pane. Never called on mount or on a resize.'),\n};\n\n// Props shared by every pane\nconst PaneBaseShape = {\n id: z.string().optional().describe('The pane id. A Trigger points `aria-controls` at it.'),\n presentation: ResponsivePresentationSchema.optional(),\n expandedSize: z.number().optional(),\n inset: z.boolean().optional().describe('Lifts the pane off the frame and paints the backdrop behind it'),\n onExpand: z.function({ output: z.void() }).optional().describe('Deprecated: use `onOpenChange`'),\n onCollapse: z.function({ output: z.void() }).optional().describe('Deprecated: use `onOpenChange`'),\n className: z.string().optional().describe('Additional CSS class name'),\n style: StyleSchema,\n children: z.any().optional(),\n};\n\n// Props of a pane that resizes\nconst ResizeShape = {\n minSize: z.number().optional(),\n maxSize: z.number().optional().describe('The largest size. A drag also stops before the handle leaves the frame.'),\n resizable: z.boolean().optional(),\n collapsible: z.boolean().optional().describe('A double-click on the handle closes the pane'),\n size: z.union([z.number(), z.string()]).optional().describe('The size, when controlled'),\n defaultSize: z.union([z.number(), z.string()]).optional().describe('The starting size'),\n onSizeChange: z.function({ input: [z.number(), z.object({ reason: SizeChangeReasonSchema })], output: z.void() }).optional(),\n sizeUpdate: z\n .enum(['throttle', 'debounce'])\n .optional()\n .describe('Rate-limits onSizeChange across repeated resize ends, such as key presses on the handle. A drag calls it once, when the drag ends; use onResize for live sizes.'),\n sizeUpdateMs: z.number().optional(),\n onResize: z\n .function({ input: [z.number()], output: z.void() })\n .optional()\n .describe('Called during a drag, at most once per animation frame'),\n onResizeStart: z.function({ input: [z.number()], output: z.void() }).optional(),\n onResizeEnd: z.function({ input: [z.number()], output: z.void() }).optional(),\n snapPoints: z.array(z.number()).optional().describe('Deprecated, removed in 1.0'),\n snapTolerance: z.number().optional().describe('Deprecated, removed in 1.0'),\n collapseThreshold: z.number().optional().describe('Deprecated, removed in 1.0'),\n paneId: z.string().optional().describe('Deprecated, removed in 1.0'),\n persistence: PaneSizePersistenceSchema.optional(),\n};\n\n/**\n * Shell.Root component schema\n */\nexport const ShellRootSchema = z\n .object({\n height: z\n .union([z.literal('full'), z.literal('auto'), z.string(), z.number()])\n .default('full')\n .describe('Height of the frame. `full` is 100dvh, with 100vh where dvh is not supported.'),\n className: z.string().optional().describe('Additional CSS class name'),\n style: StyleSchema,\n children: z.any().optional().describe('The Shell parts, and anything else, rendered in order'),\n })\n .strict();\n\n/**\n * Shell.Header component schema\n */\nexport const ShellHeaderSchema = z\n .object({\n height: z.number().default(64).describe('Height of the header, in pixels'),\n className: z.string().optional().describe('Additional CSS class name'),\n style: StyleSchema,\n children: z.any().optional().describe('Header content'),\n })\n .strict();\n\n/**\n * Shell.Rail component schema\n */\nexport const ShellRailSchema = z\n .object({\n ...PaneBaseShape,\n ...OpenPropsSchema,\n presentation: ResponsivePresentationSchema.default('fixed').describe('Presentation mode'),\n expandedSize: z.number().default(64).describe('Width in pixels'),\n collapsible: z.boolean().optional(),\n })\n .strict();\n\n/**\n * Shell.Panel component schema\n */\nexport const ShellPanelSchema = z\n .object({\n ...PaneBaseShape,\n ...OpenPropsSchema,\n ...ResizeShape,\n presentation: ResponsivePresentationSchema.optional().describe(\"Presentation mode. With no value the panel follows the Rail's.\"),\n expandedSize: z.number().default(288).describe('Open width in pixels'),\n minSize: z.number().default(100).describe('Minimum width when resizing'),\n maxSize: z.number().default(800).describe('Maximum width when resizing'),\n resizable: z.boolean().default(false).describe('Whether the panel can be resized'),\n collapsible: z.boolean().default(true).describe('Whether a double-click on the handle closes the panel'),\n })\n .strict();\n\n/**\n * Shell.Sidebar component schema\n */\nexport const ShellSidebarSchema = z\n .object({\n ...PaneBaseShape,\n ...ResizeShape,\n state: z.union([SidebarModeSchema, ResponsiveSidebarModeSchema]).optional().describe('The state, when controlled. A responsive object is deprecated.'),\n defaultState: ResponsiveSidebarModeSchema.optional().describe('The starting state. With no value the sidebar is open where it is in the frame and closed where it is an overlay.'),\n onStateChange: z\n .function({ input: [SidebarModeSchema, z.object({ reason: OpenChangeReasonSchema })], output: z.void() })\n .optional()\n .describe('Called when a user changes the state. Never called on mount or on a resize.'),\n presentation: ResponsivePresentationSchema.default({ initial: 'overlay', sm: 'fixed' }).describe('Presentation mode'),\n expandedSize: z.number().default(288).describe('Open width in pixels'),\n minSize: z.number().default(200).describe('Minimum width when resizing'),\n maxSize: z.number().default(400).describe('Maximum width when resizing'),\n thinSize: z.number().default(64).describe('Width in the thin state'),\n toggleModes: z.enum(['both', 'single']).default('both').describe('`both` goes collapsed, thin, expanded; `single` goes between collapsed and one open state'),\n resizable: z.boolean().default(false).describe('Whether the sidebar can be resized'),\n collapsible: z.boolean().default(true).describe('Whether a double-click on the handle closes the sidebar'),\n })\n .strict();\n\n/**\n * Shell.Content component schema\n */\nexport const ShellContentSchema = z\n .object({\n inset: z.boolean().optional().describe('Lifts the pane off the frame and paints the backdrop behind it'),\n className: z.string().optional().describe('Additional CSS class name'),\n style: StyleSchema,\n children: z.any().optional().describe('Main content'),\n })\n .strict();\n\n/**\n * Shell.Inspector component schema\n */\nexport const ShellInspectorSchema = z\n .object({\n ...PaneBaseShape,\n ...OpenPropsSchema,\n ...ResizeShape,\n presentation: ResponsivePresentationSchema.default({ initial: 'overlay', sm: 'fixed' }).describe('Presentation mode'),\n expandedSize: z.number().default(320).describe('Open width in pixels'),\n minSize: z.number().default(200).describe('Minimum width when resizing'),\n maxSize: z.number().default(500).describe('Maximum width when resizing'),\n resizable: z.boolean().default(false).describe('Whether the inspector can be resized'),\n collapsible: z.boolean().default(true).describe('Whether a double-click on the handle closes the inspector'),\n })\n .strict();\n\n/**\n * Shell.Bottom component schema\n */\nexport const ShellBottomSchema = z\n .object({\n ...PaneBaseShape,\n ...OpenPropsSchema,\n ...ResizeShape,\n presentation: ResponsivePresentationSchema.default('fixed').describe('Presentation mode'),\n expandedSize: z.number().default(200).describe('Open height in pixels'),\n minSize: z.number().default(100).describe('Minimum height when resizing'),\n maxSize: z.number().default(400).describe('Maximum height when resizing'),\n resizable: z.boolean().default(false).describe('Whether the bottom panel can be resized'),\n collapsible: z.boolean().default(true).describe('Whether a double-click on the handle closes the panel'),\n })\n .strict();\n\n/**\n * Shell.Trigger component schema\n */\nexport const ShellTriggerSchema = z\n .object({\n target: PaneTargetSchema.describe('Which pane to drive'),\n action: TriggerActionSchema.default('toggle').describe('Action to perform'),\n peekOnHover: z.boolean().default(false).describe('Deprecated, removed in 1.0. Shows a preview of a closed pane on hover.'),\n type: z.enum(['button', 'submit', 'reset']).default('button').describe('The button type'),\n className: z.string().optional().describe('Additional CSS class name'),\n style: StyleSchema,\n children: z.any().optional().describe('Trigger content'),\n onClick: z.function().optional().describe('Runs before the trigger acts. Call `event.preventDefault()` to cancel it.'),\n onMouseEnter: z.function().optional().describe('Mouse enter handler'),\n onMouseLeave: z.function().optional().describe('Mouse leave handler'),\n 'aria-label': z.string().optional().describe('ARIA label for accessibility'),\n 'aria-labelledby': z.string().optional().describe('ARIA labelled by reference'),\n 'aria-describedby': z.string().optional().describe('ARIA described by reference'),\n })\n .strict();\n\n/**\n * Shell.Handle component schema (for resize handles)\n */\nexport const ShellHandleSchema = z\n .object({\n className: z.string().optional().describe('Additional CSS class name'),\n style: StyleSchema,\n children: z.any().optional().describe('Handle content'),\n })\n .strict();\n\n// Type exports\nexport type ShellRootProps = z.infer<typeof ShellRootSchema>;\nexport type ShellHeaderProps = z.infer<typeof ShellHeaderSchema>;\nexport type ShellRailProps = z.infer<typeof ShellRailSchema>;\nexport type ShellPanelProps = z.infer<typeof ShellPanelSchema>;\nexport type ShellSidebarProps = z.infer<typeof ShellSidebarSchema>;\nexport type ShellContentProps = z.infer<typeof ShellContentSchema>;\nexport type ShellInspectorProps = z.infer<typeof ShellInspectorSchema>;\nexport type ShellBottomProps = z.infer<typeof ShellBottomSchema>;\nexport type ShellTriggerProps = z.infer<typeof ShellTriggerSchema>;\nexport type ShellHandleProps = z.infer<typeof ShellHandleSchema>;\n\n// Common type exports\nexport type PaneMode = z.infer<typeof PaneModeSchema>;\nexport type SidebarMode = z.infer<typeof SidebarModeSchema>;\nexport type PresentationValue = z.infer<typeof PresentationValueSchema>;\nexport type Breakpoint = z.infer<typeof _BreakpointSchema>;\nexport type PaneTarget = z.infer<typeof PaneTargetSchema>;\nexport type TriggerAction = z.infer<typeof TriggerActionSchema>;\nexport type ResponsiveMode = z.infer<typeof _ResponsiveModeSchema>;\nexport type ResponsiveSidebarMode = z.infer<typeof ResponsiveSidebarModeSchema>;\nexport type ResponsivePresentation = z.infer<typeof ResponsivePresentationSchema>;\nexport type PaneSizePersistence = z.infer<typeof PaneSizePersistenceSchema>;\n\n/**\n * Development-only helper to validate and normalize Shell props\n * This function should only be used in development mode\n *\n * @param props - Props to validate and normalize\n * @returns Validated and normalized props\n *\n * @example\n * ```tsx\n * // In development, this will validate props and show helpful errors\n * const validatedProps = parseShellRootProps({ height: 'invalid' });\n * // Throws validation errors for invalid values\n * ```\n */\nexport function parseShellRootProps(props: unknown): ShellRootProps {\n if (process.env.NODE_ENV === 'development') {\n return ShellRootSchema.parse(props);\n }\n return props as ShellRootProps;\n}\n\nexport function parseShellHeaderProps(props: unknown): ShellHeaderProps {\n if (process.env.NODE_ENV === 'development') {\n return ShellHeaderSchema.parse(props);\n }\n return props as ShellHeaderProps;\n}\n\nexport function parseShellRailProps(props: unknown): ShellRailProps {\n if (process.env.NODE_ENV === 'development') {\n return ShellRailSchema.parse(props);\n }\n return props as ShellRailProps;\n}\n\nexport function parseShellPanelProps(props: unknown): ShellPanelProps {\n if (process.env.NODE_ENV === 'development') {\n return ShellPanelSchema.parse(props);\n }\n return props as ShellPanelProps;\n}\n\nexport function parseShellSidebarProps(props: unknown): ShellSidebarProps {\n if (process.env.NODE_ENV === 'development') {\n return ShellSidebarSchema.parse(props);\n }\n return props as ShellSidebarProps;\n}\n\nexport function parseShellContentProps(props: unknown): ShellContentProps {\n if (process.env.NODE_ENV === 'development') {\n return ShellContentSchema.parse(props);\n }\n return props as ShellContentProps;\n}\n\nexport function parseShellInspectorProps(props: unknown): ShellInspectorProps {\n if (process.env.NODE_ENV === 'development') {\n return ShellInspectorSchema.parse(props);\n }\n return props as ShellInspectorProps;\n}\n\nexport function parseShellBottomProps(props: unknown): ShellBottomProps {\n if (process.env.NODE_ENV === 'development') {\n return ShellBottomSchema.parse(props);\n }\n return props as ShellBottomProps;\n}\n\nexport function parseShellTriggerProps(props: unknown): ShellTriggerProps {\n if (process.env.NODE_ENV === 'development') {\n return ShellTriggerSchema.parse(props);\n }\n return props as ShellTriggerProps;\n}\n\nexport function parseShellHandleProps(props: unknown): ShellHandleProps {\n if (process.env.NODE_ENV === 'development') {\n return ShellHandleSchema.parse(props);\n }\n return props as ShellHandleProps;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["z", "PaneModeSchema", "SidebarModeSchema", "PresentationValueSchema", "_BreakpointSchema", "PaneTargetSchema", "TriggerActionSchema", "OpenChangeReasonSchema", "SizeChangeReasonSchema", "responsive", "value", "_ResponsiveModeSchema", "ResponsiveSidebarModeSchema", "ResponsivePresentationSchema", "ResponsiveOpenSchema", "PaneSizePersistenceSchema", "StyleSchema", "OpenPropsSchema", "PaneBaseShape", "ResizeShape", "ShellRootSchema", "ShellHeaderSchema", "ShellRailSchema", "ShellPanelSchema", "ShellSidebarSchema", "ShellContentSchema", "ShellInspectorSchema", "ShellBottomSchema", "ShellTriggerSchema", "ShellHandleSchema", "parseShellRootProps", "props", "parseShellHeaderProps", "parseShellRailProps", "parseShellPanelProps", "parseShellSidebarProps", "parseShellContentProps", "parseShellInspectorProps", "parseShellBottomProps", "parseShellTriggerProps", "parseShellHandleProps"]
|
|
7
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as f}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as f}from"./chunk-OQU2SKLN.js";import{a as c}from"./chunk-ZJ33QP5N.js";import{a as B}from"./chunk-AGAQC4HH.js";import{a as b,c as P}from"./chunk-5T6K7VPP.js";import{a as y}from"./chunk-5TXQLK4G.js";import{a as i}from"./chunk-JFWMAYEH.js";import{a as m}from"./chunk-GSTOGDAJ.js";import{a as u}from"./chunk-UBSLEGQZ.js";import*as e from"react";import S from"classnames";import{Slot as j}from"radix-ui";var I=e.forwardRef((o,g)=>{let{size:h=i.size.default}=o,{className:R,children:t,asChild:n,as:a,color:x,radius:C,material:k,panelBackground:w,flush:D,disabled:p=o.loading,...d}=u(o,i,m);y(o.panelBackground);let l=k??w,E=n?j.Root:a||"button",T=n||!a||["button","input","textarea","select"].includes(a),v=!n&&(!a||a==="button"),M="type"in d,z=e.useId(),s=o.loading?`${z}-loading`:void 0,r=e.useMemo(()=>typeof t=="string"?t:e.isValidElement(t)&&typeof t.props?.children=="string"?t.props.children:"button",[t]),N=e.useMemo(()=>o.loading?{"aria-busy":!0,"aria-disabled":!0,"aria-describedby":s,"aria-label":`${r} (loading)`}:{},[o.loading,s,r]);return e.createElement(E,{"data-disabled":p||void 0,"data-accent-color":x,"data-radius":C,"data-material":l,"data-panel-background":l,"data-flush":D?"true":void 0,...d,...N,ref:g,className:S("rt-reset","rt-BaseButton",R),...T&&{disabled:p},...v&&!M?{type:"button"}:{}},o.loading?e.createElement(e.Fragment,null,e.createElement("span",{style:{display:"contents",visibility:"hidden"},"aria-hidden":!0},t),e.createElement(B,null,e.createElement("span",{id:s},r," is loading, please wait..."),t),e.createElement(c,{asChild:!0,align:"center",justify:"center",position:"absolute",inset:"0"},e.createElement("span",null,e.createElement(f,{size:b(h,P),"aria-hidden":"true"})))):t)});I.displayName="BaseButton";export{I as a};
|
|
2
|
+
//# sourceMappingURL=chunk-VTIL55SR.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as x}from"./chunk-2CMM7MEL.js";import{a as q}from"./chunk-GGSJXOKR.js";import{a as j,b as O,c as _,e as k,f as U}from"./chunk-HBIF43PT.js";import{a as F,b as K,c as $}from"./chunk-7NYODT3Z.js";import{a as V}from"./chunk-4WU2WKUJ.js";import{d as W}from"./chunk-IX5HIHVI.js";import{a as B}from"./chunk-JRFZ535T.js";import{b as G}from"./chunk-SEY4NA45.js";import{b as L}from"./chunk-FWB47YCH.js";import{a as E}from"./chunk-JDWCQ2XP.js";import{a as H}from"./chunk-UBSLEGQZ.js";import{a as le}from"./chunk-OS3FCYZY.js";var fe={};le(fe,{Content:()=>Y,Footer:()=>ee,Group:()=>ce,GroupContent:()=>ue,GroupLabel:()=>de,Header:()=>Z,Menu:()=>re,MenuButton:()=>oe,MenuItem:()=>ae,MenuSub:()=>ne,MenuSubContent:()=>ie,MenuSubTrigger:()=>se,Root:()=>Q,Search:()=>pe,Separator:()=>te});import*as e from"react";import d from"classnames";import*as S from"@radix-ui/react-accordion";var J=e.createContext(null);function g(){return e.useContext(J)}var Q=e.forwardRef((t,a)=>{let o=G(),{size:r=x.size.default,variant:s=x.variant.default,menuVariant:c=x.menuVariant.default,layout:u=x.layout.default,presentation:l,panelBackground:R,color:i}=t,{className:p,children:m,...v}=H(t,x),{asChild:T,panelBackground:M,presentation:C,...P}=v,h=i||o.accentColor,n=l==="thin"?"rail":l==="expanded"?"panel":u||"panel",f=typeof r=="object"?r.initial||"2":r,y=e.useMemo(()=>({size:f,menuVariant:c,presentation:l,color:h}),[f,c,l,h]);return e.createElement("div",{...P,ref:a,"data-accent-color":h,className:d("rt-SidebarRoot",p)},e.createElement(J.Provider,{value:y},e.createElement("div",{className:d("rt-SidebarContainer",`rt-variant-${s}`,`rt-r-size-${f}`,`rt-menu-variant-${c}`,n&&`rt-layout-${n}`),"data-accent-color":h,"data-panel-background":R,"data-presentation":l,"data-layout":n},m)))});Q.displayName="Sidebar.Root";var Y=e.forwardRef(({className:t,children:a,role:o="navigation","aria-label":r="Main navigation",id:s,...c},u)=>{let l=g(),R=l?.size??"2",i=l?.menuVariant??"soft";return e.createElement(V,{type:"hover"},e.createElement("div",{...c,ref:u,id:s,role:o,"aria-label":r,className:d("rt-BaseMenuContent","rt-SidebarContent",`rt-r-size-${R}`,`rt-menu-variant-${i}`,t)},e.createElement("div",{className:"rt-BaseMenuViewport"},a)))});Y.displayName="Sidebar.Content";var Z=e.forwardRef(({className:t,asContainer:a=!0,...o},r)=>{let s=g(),c=s?.size??"2",u=s?.menuVariant??"soft";return e.createElement("div",{...o,ref:r,className:d("rt-SidebarHeader",`rt-r-size-${c}`,`rt-menu-variant-${u}`,{"rt-SidebarHeader--container":a},t)})});Z.displayName="Sidebar.Header";var ee=e.forwardRef(({className:t,asContainer:a=!0,...o},r)=>{let s=g(),c=s?.size??"2",u=s?.menuVariant??"soft";return e.createElement("div",{...o,ref:r,className:d("rt-SidebarFooter",`rt-r-size-${c}`,`rt-menu-variant-${u}`,{"rt-SidebarFooter--container":a},t)})});ee.displayName="Sidebar.Footer";var te=e.forwardRef(({className:t,...a},o)=>e.createElement(q,{...a,ref:o,className:d("rt-SidebarSeparator",t)}));te.displayName="Sidebar.Separator";var re=e.forwardRef(({className:t,...a},o)=>e.createElement("ul",{...a,ref:o,className:d("rt-SidebarMenu",t)}));re.displayName="Sidebar.Menu";var ae=e.forwardRef(({className:t,...a},o)=>e.createElement("li",{...a,ref:o,className:d("rt-SidebarMenuItem",t)}));ae.displayName="Sidebar.MenuItem";function me(t){let a=[],o=[];return e.Children.forEach(t,r=>{if(typeof r=="string"||typeof r=="number")o.push(e.createElement("span",{key:o.length,className:"rt-SidebarMenuLabel"},r));else if(e.isValidElement(r)){let s=r;s.type==="svg"||s.props&&s.props.icon||typeof s.type=="function"&&(s.type.displayName?.includes("Icon")||s.type.name?.includes("Icon"))?a.push(r):o.push(r)}else r&&o.push(r)}),{icons:a,labels:o}}function A(t){if(typeof t=="string"||typeof t=="number")return e.createElement("span",{className:"rt-SidebarMenuLabel"},t);if(Array.isArray(t))return t.map((a,o)=>e.createElement(e.Fragment,{key:o},A(a)));if(e.isValidElement(t)){let a=t,o=a.props&&a.props.className||"";if(typeof a.type=="string"&&o.split(" ").includes("rt-SidebarMenuLabel"))return a;let s=A(a.props?.children);return e.cloneElement(a,{...a.props},s)}return t}var oe=e.forwardRef(({asChild:t=!1,isActive:a=!1,shortcut:o,badge:r,className:s,children:c,onKeyDown:u,...l},R)=>{let i=g(),p=i?.size??"2",m=i?.presentation==="thin",v=t?L:"button",T=e.useCallback(n=>{if(n.key==="ArrowDown"||n.key==="ArrowUp"){let f=n.currentTarget.closest(".rt-SidebarContent, .rt-SidebarSearchPopover"),y=f?Array.from(f.querySelectorAll(".rt-SidebarMenuButton")).filter(N=>N.offsetParent!==null):[],b=y.indexOf(n.currentTarget),D=y[b+(n.key==="ArrowDown"?1:-1)];b!==-1&&D&&(n.preventDefault(),D.focus())}u?.(n)},[u]),M=e.useMemo(()=>A(c),[c]),{icons:C,labels:P}=e.useMemo(()=>m?me(c):{icons:[],labels:[]},[m,c]),h=e.useMemo(()=>{if(!t)return null;try{let n=e.Children.only(M),f=n.props?.children,y=e.createElement(e.Fragment,null,f,r&&e.createElement("div",{className:"rt-SidebarMenuBadge"},typeof r=="string"?e.createElement(B,{size:p,variant:"soft"},r):e.createElement(B,{size:r.size||p,variant:r.variant||"soft",color:r.color,radius:r.radius},r.content)),o&&e.createElement("div",{className:"rt-BaseMenuShortcut rt-SidebarMenuShortcut"},e.createElement(E,{size:p},o)));return e.cloneElement(n,{...n.props},y)}catch{return M}},[t,M,r,o,p]);return e.createElement(v,{...l,ref:R,"aria-current":a?"page":void 0,className:d("rt-reset","rt-BaseMenuItem","rt-SidebarMenuButton",s),"data-active":a||void 0,onKeyDown:T},t?h:m&&C.length>0?e.createElement(e.Fragment,null,e.createElement("span",{className:"rt-SidebarMenuIconWrapper"},C),P.map((n,f)=>e.createElement(e.Fragment,{key:f},typeof n=="string"||typeof n=="number"?e.createElement("span",{className:"rt-SidebarMenuLabel"},n):n))):e.createElement(e.Fragment,null,M,r&&e.createElement("div",{className:"rt-SidebarMenuBadge"},typeof r=="string"?e.createElement(B,{size:p,variant:"soft"},r):e.createElement(B,{size:r.size||p,variant:r.variant||"soft",color:r.color,radius:r.radius},r.content)),o&&e.createElement("div",{className:"rt-BaseMenuShortcut rt-SidebarMenuShortcut"},e.createElement(E,{size:p},o))))});oe.displayName="Sidebar.MenuButton";var I=e.createContext("accordion"),ne=e.forwardRef(({defaultOpen:t=!1,children:a,...o},r)=>(g()?.presentation==="thin"?"dropdown":"accordion")==="dropdown"?e.createElement("div",{...o,ref:r},e.createElement(j,null,e.createElement(I.Provider,{value:"dropdown"},a))):e.createElement("div",{...o,ref:r},e.createElement(I.Provider,{value:"accordion"},e.createElement(S.Root,{type:"single",collapsible:!0,defaultValue:t?"item":void 0},e.createElement(S.Item,{value:"item"},a)))));ne.displayName="Sidebar.MenuSub";var se=e.forwardRef(({asChild:t=!1,className:a,children:o,...r},s)=>e.useContext(I)==="dropdown"?e.createElement(O,null,e.createElement("button",{...r,ref:s,type:"button","aria-haspopup":"menu",className:d("rt-reset","rt-BaseMenuItem","rt-SidebarMenuButton","rt-SidebarMenuSubTrigger",a)},o)):e.createElement(S.Header,{asChild:!0},e.createElement("div",null,e.createElement(S.Trigger,{...r,ref:s,asChild:t,className:d("rt-reset","rt-BaseMenuItem","rt-SidebarMenuButton","rt-SidebarMenuSubTrigger",a)},t?o:e.createElement(e.Fragment,null,o,e.createElement(W,{className:d("rt-BaseMenuSubTriggerIcon","rt-SidebarMenuSubTriggerIcon")}))))));se.displayName="Sidebar.MenuSubTrigger";var ie=e.forwardRef(({className:t,children:a,...o},r)=>{let s=g();if(e.useContext(I)==="dropdown"){let u=i=>{if(Array.isArray(i))return i.map((p,m)=>e.createElement(e.Fragment,{key:m},u(p)));if(e.isValidElement(i)){if(i.type?.displayName==="Sidebar.MenuButton")return i.props?.children;let m=i.props?.children;if(m!==void 0)return e.cloneElement(i,{...i.props,children:u(m)})}return i},l=e.Children.map(a,(i,p)=>{if(e.isValidElement(i)&&i.type?.displayName==="Sidebar.MenuItem"){let m=i.props?.children,v=u(m);return e.createElement(k,{key:p,asChild:!0},v)}return e.createElement(k,{key:p,asChild:!0},u(i))}),R=s?.size==="3"?"2":s?.size;return e.createElement(_,{size:R,variant:s?.menuVariant,className:d(t)},e.createElement(U,null,l))}return e.createElement(S.Content,{...o,ref:r,className:d("rt-SidebarMenuSubContent",t)},e.createElement("div",{className:"rt-SidebarMenuSubList"},a))});ie.displayName="Sidebar.MenuSubContent";var ce=e.forwardRef(({className:t,...a},o)=>e.createElement("div",{...a,ref:o,className:d("rt-BaseMenuGroup","rt-SidebarGroup",t)}));ce.displayName="Sidebar.Group";var de=e.forwardRef(({asChild:t=!1,className:a,...o},r)=>e.createElement(t?L:"div",{...o,ref:r,className:d("rt-BaseMenuLabel","rt-SidebarGroupLabel",a)}));de.displayName="Sidebar.GroupLabel";var ue=e.forwardRef(({className:t,...a},o)=>e.createElement("div",{...a,ref:o,className:d("rt-SidebarGroupContent",t)}));ue.displayName="Sidebar.GroupContent";var z=({className:t})=>e.createElement("svg",{className:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true"},e.createElement("circle",{cx:"11",cy:"11",r:"8"}),e.createElement("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})),X=({className:t})=>e.createElement("svg",{className:t,width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true"},e.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),e.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),pe=e.forwardRef(({value:t,onValueChange:a,placeholder:o="Search...",children:r,className:s,...c},u)=>{let R=g()?.presentation==="thin",i=e.useRef(null),p=e.useRef(null),v=`${e.useId()}-results`,T=e.useRef(t);T.current=t;let M=e.useRef(a);M.current=a;let C=o.replace(/\.+$/,""),P=e.useCallback(n=>{n.key==="Escape"&&T.current&&(n.preventDefault(),n.stopPropagation(),M.current(""),i.current?.focus())},[]),h=e.useCallback(n=>{let f=p.current;if(!f)return;let y=f.querySelector('[role="group"]');if(!y)return;let b=Array.from(y.querySelectorAll("a, button"));if(b.length===0)return;let D=document.activeElement,N=D===i.current,w=b.indexOf(D);if(n.key.length===1&&!n.ctrlKey&&!n.metaKey&&!n.altKey&&!N&&w!==-1){i.current?.focus();return}switch(n.key){case"ArrowDown":{n.preventDefault(),N||w===-1?b[0]?.focus():w<b.length-1&&b[w+1]?.focus();break}case"ArrowUp":{n.preventDefault(),w<=0?i.current?.focus():b[w-1]?.focus();break}case"Home":{N||(n.preventDefault(),b[0]?.focus());break}case"End":{N||(n.preventDefault(),b[b.length-1]?.focus());break}}},[]);return R?e.createElement("div",{...c,ref:u,className:d("rt-SidebarSearch","rt-SidebarSearch--thin",s)},e.createElement(F,null,e.createElement(K,null,e.createElement("button",{type:"button",className:d("rt-reset","rt-BaseMenuItem","rt-SidebarMenuButton","rt-SidebarSearchTrigger"),"aria-label":C},e.createElement("span",{className:"rt-SidebarMenuIconWrapper"},e.createElement(z,null)),e.createElement("span",{className:"rt-SidebarMenuLabel"},"Search"))),e.createElement($,{side:"right",align:"start",size:"2",width:"280px","aria-label":C},e.createElement("div",{ref:p,className:"rt-SidebarSearchPopover",role:"search",onKeyDown:h},e.createElement("div",{className:"rt-SidebarSearchInputWrapper"},e.createElement(z,{className:"rt-SidebarSearchIcon"}),e.createElement("input",{ref:i,type:"search",className:"rt-SidebarSearchInput",value:t,onChange:n=>a(n.target.value),onKeyDown:P,placeholder:o,"aria-label":C,"aria-controls":r?v:void 0,autoFocus:!0}),t&&e.createElement("button",{type:"button",className:"rt-reset rt-SidebarSearchClear",onClick:()=>{a(""),i.current?.focus()},"aria-label":"Clear search"},e.createElement(X,null))),r&&e.createElement("div",{id:v,role:"group","aria-label":"Search results"},r))))):e.createElement("div",{...c,ref:u,className:d("rt-SidebarSearch","rt-SidebarSearch--expanded",s),role:"search"},e.createElement("div",{className:"rt-SidebarSearchInputWrapper"},e.createElement(z,{className:"rt-SidebarSearchIcon"}),e.createElement("input",{ref:i,type:"search",className:"rt-SidebarSearchInput",value:t,onChange:n=>a(n.target.value),onKeyDown:P,placeholder:o,"aria-label":C}),t&&e.createElement("button",{type:"button",className:"rt-reset rt-SidebarSearchClear",onClick:()=>{a(""),i.current?.focus()},"aria-label":"Clear search"},e.createElement(X,null))))});pe.displayName="Sidebar.Search";export{Q as a,Y as b,Z as c,ee as d,te as e,re as f,ae as g,oe as h,ne as i,se as j,ie as k,ce as l,de as m,ue as n,pe as o,fe as p};
|
|
2
|
+
//# sourceMappingURL=chunk-VUNNS3ZU.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/sidebar.tsx"],
|
|
4
|
+
"sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Slot } from './slot.js';\nimport * as Accordion from '@radix-ui/react-accordion';\nimport * as DropdownMenu from './dropdown-menu.js';\nimport * as Popover from './popover.js';\n\nimport { sidebarPropDefs } from './sidebar.props.js';\nimport { useThemeContext } from './theme.js';\n// import { IconButton } from './icon-button.js';\nimport { ScrollArea } from './scroll-area.js';\nimport { Separator } from './separator.js';\nimport { ThickChevronRightIcon } from './icons.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { Kbd } from './kbd.js';\nimport { Badge } from './badge.js';\n\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { GetPropDefTypes } from '../props/prop-def.js';\nimport type { BadgeProps } from './badge.js';\n\n// Badge configuration type for sidebar menu buttons\ntype BadgeConfig = {\n content: React.ReactNode;\n variant?: BadgeProps['variant'];\n size?: BadgeProps['size'];\n color?: BadgeProps['color'];\n radius?: BadgeProps['radius'];\n};\n\n// Internal presentational context (not exported) for size/menu variant\ntype SidebarVisualContextValue = {\n size: '1' | '2' | '3';\n menuVariant: 'solid' | 'soft';\n presentation?: 'thin' | 'expanded';\n color?: string;\n};\nconst SidebarVisualContext = React.createContext<SidebarVisualContextValue | null>(null);\nfunction useSidebarVisual() {\n return React.useContext(SidebarVisualContext);\n}\n\n// Sidebar is now independent of Shell - no integration needed\n\n// Main Sidebar component\ntype SidebarOwnProps = GetPropDefTypes<typeof sidebarPropDefs>;\ninterface SidebarProps extends ComponentPropsWithout<'div', RemovedProps>, SidebarOwnProps {\n /**\n * Presentational mode independent of Shell.\n * 'thin' renders a rail-style sidebar, 'expanded' renders a panel-style sidebar.\n * If both `presentation` and `layout` are provided, `presentation` takes precedence.\n */\n presentation?: 'thin' | 'expanded';\n}\n\nconst Sidebar = React.forwardRef<HTMLDivElement, SidebarProps>((props, forwardedRef) => {\n const themeContext = useThemeContext();\n\n const {\n size = sidebarPropDefs.size.default,\n variant = sidebarPropDefs.variant.default,\n menuVariant = sidebarPropDefs.menuVariant.default,\n layout = sidebarPropDefs.layout.default,\n presentation,\n // type = sidebarPropDefs.type.default,\n // side = sidebarPropDefs.side.default,\n // collapsible = sidebarPropDefs.collapsible.default,\n panelBackground,\n color,\n } = props;\n\n const { className, children, ...rootProps } = extractProps(props, sidebarPropDefs);\n // Remove internal-only props from DOM\n const { asChild: _, panelBackground: __, presentation: ___, ...safeRootProps } = rootProps;\n const resolvedColor = color || themeContext.accentColor;\n\n // Resolve layout (default to 'panel'). `presentation` takes precedence over `layout`.\n const resolvedLayout = presentation === 'thin' ? 'rail' : presentation === 'expanded' ? 'panel' : layout || 'panel';\n\n // Update context with current props - we'll pass the resolved values\n const resolvedSize = typeof size === 'object' ? size.initial || '2' : size;\n const visualContextValue = React.useMemo(\n () => ({ size: resolvedSize, menuVariant, presentation, color: resolvedColor }),\n [resolvedSize, menuVariant, presentation, resolvedColor],\n );\n return (\n <div {...safeRootProps} ref={forwardedRef} data-accent-color={resolvedColor} className={classNames('rt-SidebarRoot', className)}>\n <SidebarVisualContext.Provider value={visualContextValue}>\n <div\n className={classNames('rt-SidebarContainer', `rt-variant-${variant}`, `rt-r-size-${resolvedSize}`, `rt-menu-variant-${menuVariant}`, resolvedLayout && `rt-layout-${resolvedLayout}`)}\n data-accent-color={resolvedColor}\n data-panel-background={panelBackground}\n data-presentation={presentation}\n data-layout={resolvedLayout}\n >\n {children}\n </div>\n </SidebarVisualContext.Provider>\n </div>\n );\n});\nSidebar.displayName = 'Sidebar.Root';\n\n// Sidebar content area\ninterface SidebarContentProps extends React.ComponentPropsWithoutRef<'div'> {\n id?: string;\n role?: 'navigation' | 'none';\n 'aria-label'?: string;\n}\n\nconst SidebarContent = React.forwardRef<HTMLDivElement, SidebarContentProps>(\n ({ className, children, role = 'navigation', 'aria-label': ariaLabel = 'Main navigation', id, ...props }, forwardedRef) => {\n const visual = useSidebarVisual();\n const size = visual?.size ?? '2';\n const menuVariant = visual?.menuVariant ?? 'soft';\n\n return (\n <ScrollArea type=\"hover\">\n <div\n {...props}\n ref={forwardedRef}\n id={id}\n role={role}\n aria-label={ariaLabel}\n className={classNames('rt-BaseMenuContent', 'rt-SidebarContent', `rt-r-size-${size}`, `rt-menu-variant-${menuVariant}`, className)}\n >\n <div className=\"rt-BaseMenuViewport\">{children}</div>\n </div>\n </ScrollArea>\n );\n },\n);\nSidebarContent.displayName = 'Sidebar.Content';\n\n// Sidebar header\ninterface SidebarHeaderProps extends React.ComponentPropsWithoutRef<'div'> {\n /**\n * Whether to use the default flex container layout.\n * @default true\n */\n asContainer?: boolean;\n}\n\nconst SidebarHeader = React.forwardRef<HTMLDivElement, SidebarHeaderProps>(({ className, asContainer = true, ...props }, forwardedRef) => {\n const visual = useSidebarVisual();\n const size = visual?.size ?? '2';\n const menuVariant = visual?.menuVariant ?? 'soft';\n\n return (\n <div\n {...props}\n ref={forwardedRef}\n className={classNames(\n 'rt-SidebarHeader',\n `rt-r-size-${size}`,\n `rt-menu-variant-${menuVariant}`,\n {\n 'rt-SidebarHeader--container': asContainer,\n },\n className,\n )}\n />\n );\n});\nSidebarHeader.displayName = 'Sidebar.Header';\n\n// Sidebar footer\ninterface SidebarFooterProps extends React.ComponentPropsWithoutRef<'div'> {\n /**\n * Whether to use the default flex container layout.\n * @default true\n */\n asContainer?: boolean;\n}\n\nconst SidebarFooter = React.forwardRef<HTMLDivElement, SidebarFooterProps>(({ className, asContainer = true, ...props }, forwardedRef) => {\n const visual = useSidebarVisual();\n const size = visual?.size ?? '2';\n const menuVariant = visual?.menuVariant ?? 'soft';\n\n return (\n <div\n {...props}\n ref={forwardedRef}\n className={classNames(\n 'rt-SidebarFooter',\n `rt-r-size-${size}`,\n `rt-menu-variant-${menuVariant}`,\n {\n 'rt-SidebarFooter--container': asContainer,\n },\n className,\n )}\n />\n );\n});\nSidebarFooter.displayName = 'Sidebar.Footer';\n\n// Sidebar trigger button\n// removed Trigger in presentational-only Sidebar\n\n// Removed SidebarInset - not needed\n\n// Sidebar separator\ninterface SidebarSeparatorProps extends ComponentPropsWithout<typeof Separator, RemovedProps> {}\n\nconst SidebarSeparator = React.forwardRef<React.ComponentRef<typeof Separator>, SidebarSeparatorProps>(({ className, ...props }, forwardedRef) => (\n <Separator {...props} ref={forwardedRef} className={classNames('rt-SidebarSeparator', className)} />\n));\nSidebarSeparator.displayName = 'Sidebar.Separator';\n\n// Menu components - styled like dropdown menus, but semantically a navigation list.\n// No menu/menuitem roles: those promise an application menu, which a list of links is not.\ninterface SidebarMenuProps extends React.ComponentPropsWithoutRef<'ul'> {}\n\nconst SidebarMenu = React.forwardRef<HTMLUListElement, SidebarMenuProps>(({ className, ...props }, forwardedRef) => (\n <ul {...props} ref={forwardedRef} className={classNames('rt-SidebarMenu', className)} />\n));\nSidebarMenu.displayName = 'Sidebar.Menu';\n\ninterface SidebarMenuItemProps extends React.ComponentPropsWithoutRef<'li'> {}\n\nconst SidebarMenuItem = React.forwardRef<HTMLLIElement, SidebarMenuItemProps>(({ className, ...props }, forwardedRef) => (\n <li {...props} ref={forwardedRef} className={classNames('rt-SidebarMenuItem', className)} />\n));\nSidebarMenuItem.displayName = 'Sidebar.MenuItem';\n\ninterface SidebarMenuButtonProps extends React.ComponentPropsWithoutRef<'button'> {\n asChild?: boolean;\n isActive?: boolean;\n shortcut?: React.ReactNode;\n badge?: string | BadgeConfig;\n}\n\n// Extracted to module scope to avoid re-creation on every render\nfunction separateIconsAndLabels(node: React.ReactNode): { icons: React.ReactNode[]; labels: React.ReactNode[] } {\n const icons: React.ReactNode[] = [];\n const labels: React.ReactNode[] = [];\n\n React.Children.forEach(node, (child) => {\n if (typeof child === 'string' || typeof child === 'number') {\n labels.push(<span key={labels.length} className=\"rt-SidebarMenuLabel\">{child}</span>);\n } else if (React.isValidElement(child)) {\n const el = child as React.ReactElement<any>;\n if (el.type === 'svg' || (el.props && el.props.icon) || (typeof el.type === 'function' && ((el.type as any).displayName?.includes('Icon') || (el.type as any).name?.includes('Icon')))) {\n icons.push(child);\n } else {\n labels.push(child);\n }\n } else if (child) {\n labels.push(child);\n }\n });\n\n return { icons, labels };\n}\n\nfunction wrapTextNodes(node: React.ReactNode): React.ReactNode {\n if (typeof node === 'string' || typeof node === 'number') {\n return <span className=\"rt-SidebarMenuLabel\">{node}</span>;\n }\n if (Array.isArray(node)) {\n return node.map((child, index) => <React.Fragment key={index}>{wrapTextNodes(child)}</React.Fragment>);\n }\n if (React.isValidElement(node)) {\n const el = node as React.ReactElement<any>;\n const className: string = (el.props && (el.props as any).className) || '';\n const isAlreadyLabel = typeof el.type === 'string' && className.split(' ').includes('rt-SidebarMenuLabel');\n if (isAlreadyLabel) return el;\n const newChildren = wrapTextNodes((el.props as any)?.children);\n return React.cloneElement(el, { ...(el.props as any) }, newChildren);\n }\n return node;\n}\n\nconst SidebarMenuButton = React.forwardRef<HTMLButtonElement, SidebarMenuButtonProps>(\n ({ asChild = false, isActive = false, shortcut, badge, className, children, onKeyDown, ...props }, forwardedRef) => {\n const visual = useSidebarVisual();\n const sidebarSize = visual?.size ?? '2';\n const isThinMode = visual?.presentation === 'thin';\n\n const Comp = asChild ? Slot : 'button';\n\n // Enter and Space are left to the native button or link. Arrow keys move between\n // the visible buttons of the same sidebar, as a convenience on top of Tab.\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLButtonElement>) => {\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n const scope = event.currentTarget.closest('.rt-SidebarContent, .rt-SidebarSearchPopover');\n const buttons = scope\n ? Array.from(scope.querySelectorAll<HTMLElement>('.rt-SidebarMenuButton')).filter((el) => el.offsetParent !== null)\n : [];\n const index = buttons.indexOf(event.currentTarget);\n const next = buttons[index + (event.key === 'ArrowDown' ? 1 : -1)];\n if (index !== -1 && next) {\n event.preventDefault();\n next.focus();\n }\n }\n onKeyDown?.(event);\n },\n [onKeyDown],\n );\n\n // Memoize child processing to avoid re-traversal on every render\n const processedChildren = React.useMemo(() => wrapTextNodes(children), [children]);\n\n // For thin mode, separate icons into a wrapper for targeted background styling\n const { icons, labels } = React.useMemo(\n () => isThinMode ? separateIconsAndLabels(children) : { icons: [] as React.ReactNode[], labels: [] as React.ReactNode[] },\n [isThinMode, children],\n );\n\n // When rendering asChild, Slot expects a single child element. We still want to\n // append optional badge/shortcut inside that element so they render with Link.\n const slottedChildren = React.useMemo(() => {\n if (!asChild) return null;\n try {\n const onlyChild = React.Children.only(processedChildren as React.ReactElement<any>) as React.ReactElement<any>;\n const originalInnerChildren = (onlyChild.props as any)?.children;\n const enhancedInnerChildren = (\n <>\n {originalInnerChildren}\n {badge && (\n <div className=\"rt-SidebarMenuBadge\">\n {typeof badge === 'string' ? (\n <Badge size={sidebarSize} variant=\"soft\">\n {badge}\n </Badge>\n ) : (\n <Badge size={badge.size || sidebarSize} variant={badge.variant || 'soft'} color={badge.color} radius={badge.radius}>\n {badge.content}\n </Badge>\n )}\n </div>\n )}\n {shortcut && (\n <div className=\"rt-BaseMenuShortcut rt-SidebarMenuShortcut\">\n <Kbd size={sidebarSize}>{shortcut}</Kbd>\n </div>\n )}\n </>\n );\n return React.cloneElement(onlyChild, { ...(onlyChild.props as any) }, enhancedInnerChildren);\n } catch {\n // Fallback: if multiple children were passed incorrectly, just return processedChildren\n return processedChildren as React.ReactNode;\n }\n }, [asChild, processedChildren, badge, shortcut, sidebarSize]);\n\n return (\n <Comp\n {...props}\n ref={forwardedRef}\n aria-current={isActive ? 'page' : undefined}\n className={classNames('rt-reset', 'rt-BaseMenuItem', 'rt-SidebarMenuButton', className)}\n data-active={isActive || undefined}\n onKeyDown={handleKeyDown}\n >\n {asChild ? (\n slottedChildren\n ) : isThinMode && icons.length > 0 ? (\n <>\n <span className=\"rt-SidebarMenuIconWrapper\">{icons}</span>\n {labels.map((label, index) => (\n <React.Fragment key={index}>\n {typeof label === 'string' || typeof label === 'number' ? (\n <span className=\"rt-SidebarMenuLabel\">{label}</span>\n ) : (\n label\n )}\n </React.Fragment>\n ))}\n </>\n ) : (\n <>\n {processedChildren}\n {badge && (\n <div className=\"rt-SidebarMenuBadge\">\n {typeof badge === 'string' ? (\n <Badge size={sidebarSize} variant=\"soft\">\n {badge}\n </Badge>\n ) : (\n <Badge size={badge.size || sidebarSize} variant={badge.variant || 'soft'} color={badge.color} radius={badge.radius}>\n {badge.content}\n </Badge>\n )}\n </div>\n )}\n {shortcut && (\n <div className=\"rt-BaseMenuShortcut rt-SidebarMenuShortcut\">\n <Kbd size={sidebarSize}>{shortcut}</Kbd>\n </div>\n )}\n </>\n )}\n </Comp>\n );\n },\n);\nSidebarMenuButton.displayName = 'Sidebar.MenuButton';\n\n// Sub-menu components: Accordion in expanded, Dropdown in thin\nconst SidebarSubMenuModeContext = React.createContext<'accordion' | 'dropdown'>('accordion');\ninterface SidebarMenuSubProps extends React.ComponentPropsWithoutRef<'div'> {\n defaultOpen?: boolean;\n}\n\nconst SidebarMenuSub = React.forwardRef<HTMLDivElement, SidebarMenuSubProps>(({ defaultOpen = false, children, ...props }, forwardedRef) => {\n const visual = useSidebarVisual();\n const mode: 'accordion' | 'dropdown' = visual?.presentation === 'thin' ? 'dropdown' : 'accordion';\n\n if (mode === 'dropdown') {\n return (\n <div {...props} ref={forwardedRef}>\n <DropdownMenu.Root>\n <SidebarSubMenuModeContext.Provider value=\"dropdown\">{children}</SidebarSubMenuModeContext.Provider>\n </DropdownMenu.Root>\n </div>\n );\n }\n\n return (\n <div {...props} ref={forwardedRef}>\n <SidebarSubMenuModeContext.Provider value=\"accordion\">\n <Accordion.Root type=\"single\" collapsible defaultValue={defaultOpen ? 'item' : undefined}>\n <Accordion.Item value=\"item\">{children}</Accordion.Item>\n </Accordion.Root>\n </SidebarSubMenuModeContext.Provider>\n </div>\n );\n});\nSidebarMenuSub.displayName = 'Sidebar.MenuSub';\n\ninterface SidebarMenuSubTriggerProps extends React.ComponentPropsWithoutRef<typeof Accordion.Trigger> {\n asChild?: boolean;\n}\n\nconst SidebarMenuSubTrigger = React.forwardRef<React.ElementRef<typeof Accordion.Trigger>, SidebarMenuSubTriggerProps>(\n ({ asChild = false, className, children, ...props }, forwardedRef) => {\n const mode = React.useContext(SidebarSubMenuModeContext);\n\n if (mode === 'dropdown') {\n return (\n <DropdownMenu.Trigger>\n <button\n {...(props as any)}\n ref={forwardedRef as any}\n type=\"button\"\n aria-haspopup=\"menu\"\n className={classNames('rt-reset', 'rt-BaseMenuItem', 'rt-SidebarMenuButton', 'rt-SidebarMenuSubTrigger', className)}\n >\n {children}\n </button>\n </DropdownMenu.Trigger>\n );\n }\n\n return (\n <Accordion.Header asChild>\n <div>\n <Accordion.Trigger\n {...props}\n ref={forwardedRef}\n asChild={asChild}\n className={classNames('rt-reset', 'rt-BaseMenuItem', 'rt-SidebarMenuButton', 'rt-SidebarMenuSubTrigger', className)}\n >\n {asChild ? (\n children\n ) : (\n <>\n {children}\n <ThickChevronRightIcon className={classNames('rt-BaseMenuSubTriggerIcon', 'rt-SidebarMenuSubTriggerIcon')} />\n </>\n )}\n </Accordion.Trigger>\n </div>\n </Accordion.Header>\n );\n },\n);\nSidebarMenuSubTrigger.displayName = 'Sidebar.MenuSubTrigger';\n\ninterface SidebarMenuSubContentProps extends React.ComponentPropsWithoutRef<typeof Accordion.Content> {}\n\nconst SidebarMenuSubContent = React.forwardRef<React.ElementRef<typeof Accordion.Content>, SidebarMenuSubContentProps>(({ className, children, ...props }, forwardedRef) => {\n const visual = useSidebarVisual();\n const mode = React.useContext(SidebarSubMenuModeContext);\n\n if (mode === 'dropdown') {\n const unwrapMenuButton = (node: React.ReactNode): React.ReactNode => {\n if (Array.isArray(node)) {\n return node.map((n, i) => <React.Fragment key={i}>{unwrapMenuButton(n)}</React.Fragment>);\n }\n if (React.isValidElement(node)) {\n const typeDisplay = (node.type as any)?.displayName;\n if (typeDisplay === 'Sidebar.MenuButton') {\n return (node.props as any)?.children;\n }\n const child = (node.props as any)?.children;\n if (child !== undefined) {\n return React.cloneElement(node as any, { ...(node.props as any), children: unwrapMenuButton(child) });\n }\n }\n return node;\n };\n\n const normalized = React.Children.map(children as React.ReactNode, (child, index) => {\n if (React.isValidElement(child) && (child.type as any)?.displayName === 'Sidebar.MenuItem') {\n const itemChildren = (child.props as any)?.children;\n const content = unwrapMenuButton(itemChildren);\n return (\n <DropdownMenu.Item key={index} asChild>\n {content as any}\n </DropdownMenu.Item>\n );\n }\n // Fallback: wrap raw nodes too for consistent menu styling\n return (\n <DropdownMenu.Item key={index} asChild>\n {unwrapMenuButton(child) as any}\n </DropdownMenu.Item>\n );\n });\n\n // DropdownMenu only supports sizes 1 and 2, so map size 3 to 2\n const dropdownSize = visual?.size === '3' ? '2' : visual?.size;\n return (\n <DropdownMenu.Content size={dropdownSize} variant={visual?.menuVariant} className={classNames(className)}>\n <DropdownMenu.Group>{normalized}</DropdownMenu.Group>\n </DropdownMenu.Content>\n );\n }\n\n return (\n <Accordion.Content {...props} ref={forwardedRef} className={classNames('rt-SidebarMenuSubContent', className)}>\n <div className=\"rt-SidebarMenuSubList\">{children}</div>\n </Accordion.Content>\n );\n});\nSidebarMenuSubContent.displayName = 'Sidebar.MenuSubContent';\n\n// Group components. The label is plain text: no role, so it isn't announced as an empty group.\ninterface SidebarGroupProps extends React.ComponentPropsWithoutRef<'div'> {}\n\nconst SidebarGroup = React.forwardRef<HTMLDivElement, SidebarGroupProps>(({ className, ...props }, forwardedRef) => (\n <div {...props} ref={forwardedRef} className={classNames('rt-BaseMenuGroup', 'rt-SidebarGroup', className)} />\n));\nSidebarGroup.displayName = 'Sidebar.Group';\n\ninterface SidebarGroupLabelProps extends React.ComponentPropsWithoutRef<'div'> {\n asChild?: boolean;\n}\n\nconst SidebarGroupLabel = React.forwardRef<HTMLDivElement, SidebarGroupLabelProps>(({ asChild = false, className, ...props }, forwardedRef) => {\n const Comp = asChild ? Slot : 'div';\n\n return <Comp {...props} ref={forwardedRef} className={classNames('rt-BaseMenuLabel', 'rt-SidebarGroupLabel', className)} />;\n});\nSidebarGroupLabel.displayName = 'Sidebar.GroupLabel';\n\ninterface SidebarGroupContentProps extends React.ComponentPropsWithoutRef<'div'> {}\n\nconst SidebarGroupContent = React.forwardRef<HTMLDivElement, SidebarGroupContentProps>(({ className, ...props }, forwardedRef) => (\n <div {...props} ref={forwardedRef} className={classNames('rt-SidebarGroupContent', className)} />\n));\nSidebarGroupContent.displayName = 'Sidebar.GroupContent';\n\n// Search component: inline input in expanded, popover trigger in thin\ninterface SidebarSearchProps extends React.ComponentPropsWithoutRef<'div'> {\n value: string;\n onValueChange: (value: string) => void;\n placeholder?: string;\n children?: React.ReactNode;\n}\n\nconst SearchIcon = ({ className }: { className?: string }) => (\n <svg className={className} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\" />\n </svg>\n);\n\nconst ClearIcon = ({ className }: { className?: string }) => (\n <svg className={className} width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n);\n\nconst SidebarSearch = React.forwardRef<HTMLDivElement, SidebarSearchProps>(\n ({ value, onValueChange, placeholder = 'Search...', children, className, ...props }, forwardedRef) => {\n const visual = useSidebarVisual();\n const isThin = visual?.presentation === 'thin';\n const inputRef = React.useRef<HTMLInputElement>(null);\n const popoverRef = React.useRef<HTMLDivElement>(null);\n const searchId = React.useId();\n const resultsId = `${searchId}-results`;\n\n // Stable refs for values used in callbacks \u2014 avoids recreating handlers on every keystroke\n const valueRef = React.useRef(value);\n valueRef.current = value;\n const onValueChangeRef = React.useRef(onValueChange);\n onValueChangeRef.current = onValueChange;\n\n // Derive a clean aria-label from placeholder (strip trailing dots/ellipsis)\n const searchLabel = placeholder.replace(/\\.+$/, '');\n\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Escape' && valueRef.current) {\n e.preventDefault();\n e.stopPropagation();\n onValueChangeRef.current('');\n inputRef.current?.focus();\n }\n },\n [],\n );\n\n // Arrow key navigation within the popover (input \u2194 results)\n const handlePopoverKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLDivElement>) => {\n const container = popoverRef.current;\n if (!container) return;\n\n const resultsGroup = container.querySelector('[role=\"group\"]');\n if (!resultsGroup) return;\n\n const items = Array.from(\n resultsGroup.querySelectorAll<HTMLElement>('a, button'),\n );\n if (items.length === 0) return;\n\n const active = document.activeElement as HTMLElement;\n const isOnInput = active === inputRef.current;\n const currentIndex = items.indexOf(active);\n\n // Typing while a result is focused \u2192 redirect focus to input\n if (\n e.key.length === 1 &&\n !e.ctrlKey &&\n !e.metaKey &&\n !e.altKey &&\n !isOnInput &&\n currentIndex !== -1\n ) {\n inputRef.current?.focus();\n return;\n }\n\n switch (e.key) {\n case 'ArrowDown': {\n e.preventDefault();\n if (isOnInput || currentIndex === -1) {\n items[0]?.focus();\n } else if (currentIndex < items.length - 1) {\n items[currentIndex + 1]?.focus();\n }\n break;\n }\n case 'ArrowUp': {\n e.preventDefault();\n if (currentIndex <= 0) {\n inputRef.current?.focus();\n } else {\n items[currentIndex - 1]?.focus();\n }\n break;\n }\n case 'Home': {\n // Only intercept when focused on a result, not the input (where Home moves cursor)\n if (!isOnInput) {\n e.preventDefault();\n items[0]?.focus();\n }\n break;\n }\n case 'End': {\n if (!isOnInput) {\n e.preventDefault();\n items[items.length - 1]?.focus();\n }\n break;\n }\n }\n },\n [],\n );\n\n if (isThin) {\n return (\n <div {...props} ref={forwardedRef} className={classNames('rt-SidebarSearch', 'rt-SidebarSearch--thin', className)}>\n <Popover.Root>\n <Popover.Trigger>\n <button\n type=\"button\"\n className={classNames('rt-reset', 'rt-BaseMenuItem', 'rt-SidebarMenuButton', 'rt-SidebarSearchTrigger')}\n aria-label={searchLabel}\n >\n <span className=\"rt-SidebarMenuIconWrapper\">\n <SearchIcon />\n </span>\n <span className=\"rt-SidebarMenuLabel\">Search</span>\n </button>\n </Popover.Trigger>\n <Popover.Content side=\"right\" align=\"start\" size=\"2\" width=\"280px\" aria-label={searchLabel}>\n {/* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions -- keyDown manages arrow-key navigation between input and results, which is accessibility-enhancing */}\n <div\n ref={popoverRef}\n className=\"rt-SidebarSearchPopover\"\n role=\"search\"\n onKeyDown={handlePopoverKeyDown}\n >\n <div className=\"rt-SidebarSearchInputWrapper\">\n <SearchIcon className=\"rt-SidebarSearchIcon\" />\n <input\n ref={inputRef}\n type=\"search\"\n className=\"rt-SidebarSearchInput\"\n value={value}\n onChange={(e) => onValueChange(e.target.value)}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n aria-label={searchLabel}\n aria-controls={children ? resultsId : undefined}\n // eslint-disable-next-line jsx-a11y/no-autofocus -- intentional: popover opens on user action, focusing the input is expected UX\n autoFocus\n />\n {value && (\n <button\n type=\"button\"\n className=\"rt-reset rt-SidebarSearchClear\"\n onClick={() => {\n onValueChange('');\n inputRef.current?.focus();\n }}\n aria-label=\"Clear search\"\n >\n <ClearIcon />\n </button>\n )}\n </div>\n {children && (\n <div id={resultsId} role=\"group\" aria-label=\"Search results\">\n {children}\n </div>\n )}\n </div>\n </Popover.Content>\n </Popover.Root>\n </div>\n );\n }\n\n // Expanded mode: inline input\n return (\n <div {...props} ref={forwardedRef} className={classNames('rt-SidebarSearch', 'rt-SidebarSearch--expanded', className)} role=\"search\">\n <div className=\"rt-SidebarSearchInputWrapper\">\n <SearchIcon className=\"rt-SidebarSearchIcon\" />\n <input\n ref={inputRef}\n type=\"search\"\n className=\"rt-SidebarSearchInput\"\n value={value}\n onChange={(e) => onValueChange(e.target.value)}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n aria-label={searchLabel}\n />\n {value && (\n <button\n type=\"button\"\n className=\"rt-reset rt-SidebarSearchClear\"\n onClick={() => {\n onValueChange('');\n inputRef.current?.focus();\n }}\n aria-label=\"Clear search\"\n >\n <ClearIcon />\n </button>\n )}\n </div>\n </div>\n );\n },\n);\nSidebarSearch.displayName = 'Sidebar.Search';\n\n// Export all components following shadcn's pattern\nexport {\n Sidebar as Root,\n SidebarContent as Content,\n SidebarHeader as Header,\n SidebarFooter as Footer,\n SidebarSeparator as Separator,\n SidebarMenu as Menu,\n SidebarMenuItem as MenuItem,\n SidebarMenuButton as MenuButton,\n SidebarMenuSub as MenuSub,\n SidebarMenuSubTrigger as MenuSubTrigger,\n SidebarMenuSubContent as MenuSubContent,\n SidebarGroup as Group,\n SidebarGroupLabel as GroupLabel,\n SidebarGroupContent as GroupContent,\n SidebarSearch as Search,\n};\n\n/**\n * Enhanced Sidebar Header and Footer Usage Examples:\n *\n * 1. Simple default container (backwards compatible):\n * <Sidebar.Header>\n * <Logo />\n * <span>App Name</span>\n * </Sidebar.Header>\n *\n * 2. Custom flex layout:\n * <Sidebar.Header className=\"rt-justify-between rt-gap-3\">\n * <Logo />\n * <Sidebar.MenuButton>\n * <SettingsIcon />\n * </Sidebar.MenuButton>\n * </Sidebar.Header>\n *\n * 3. Column layout for multiple rows:\n * <Sidebar.Header className=\"rt-flex-col rt-gap-2\" asContainer={false}>\n * <div className=\"rt-flex rt-items-center rt-gap-2\">\n * <Logo />\n * <span>App Name</span>\n * </div>\n * <Sidebar.MenuButton>\n * <UserAvatar />\n * <span>John Doe</span>\n * </Sidebar.MenuButton>\n * </Sidebar.Header>\n *\n * 4. Interactive footer with menu button:\n * <Sidebar.Footer>\n * <Sidebar.MenuButton>\n * <UserIcon />\n * <span>Settings</span>\n * <ChevronUpIcon />\n * </Sidebar.MenuButton>\n * </Sidebar.Footer>\n *\n * 5. Custom footer layout:\n * <Sidebar.Footer className=\"rt-justify-between\">\n * <span>v1.0.0</span>\n * <Sidebar.MenuButton>\n * <HelpIcon />\n * </Sidebar.MenuButton>\n * </Sidebar.Footer>\n *\n * Available utility classes:\n * - Layout: rt-flex-row, rt-flex-col\n * - Alignment: rt-items-center, rt-items-start, rt-items-end\n * - Justification: rt-justify-between, rt-justify-center, rt-justify-start, rt-justify-end\n * - Gap: rt-gap-1, rt-gap-2, rt-gap-3, rt-gap-4\n */\n\nexport type { SidebarProps as RootProps, SidebarContentProps as ContentProps, SidebarHeaderProps as HeaderProps, SidebarFooterProps as FooterProps, BadgeConfig };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["sidebar_exports", "__export", "SidebarContent", "SidebarFooter", "SidebarGroup", "SidebarGroupContent", "SidebarGroupLabel", "SidebarHeader", "SidebarMenu", "SidebarMenuButton", "SidebarMenuItem", "SidebarMenuSub", "SidebarMenuSubContent", "SidebarMenuSubTrigger", "Sidebar", "SidebarSearch", "SidebarSeparator", "React", "classNames", "Accordion", "SidebarVisualContext", "useSidebarVisual", "Sidebar", "props", "forwardedRef", "themeContext", "useThemeContext", "size", "sidebarPropDefs", "variant", "menuVariant", "layout", "presentation", "panelBackground", "color", "className", "children", "rootProps", "extractProps", "_", "__", "___", "safeRootProps", "resolvedColor", "resolvedLayout", "resolvedSize", "visualContextValue", "classNames", "SidebarContent", "role", "ariaLabel", "id", "visual", "ScrollArea", "SidebarHeader", "asContainer", "SidebarFooter", "SidebarSeparator", "Separator", "SidebarMenu", "SidebarMenuItem", "separateIconsAndLabels", "node", "icons", "labels", "child", "el", "wrapTextNodes", "index", "newChildren", "SidebarMenuButton", "asChild", "isActive", "shortcut", "badge", "onKeyDown", "sidebarSize", "isThinMode", "Comp", "Slot", "handleKeyDown", "event", "scope", "buttons", "next", "processedChildren", "slottedChildren", "onlyChild", "originalInnerChildren", "enhancedInnerChildren", "Badge", "Kbd", "label", "SidebarSubMenuModeContext", "SidebarMenuSub", "defaultOpen", "DropdownMenuRoot", "SidebarMenuSubTrigger", "DropdownMenuTrigger", "ThickChevronRightIcon", "SidebarMenuSubContent", "unwrapMenuButton", "n", "i", "normalized", "itemChildren", "content", "DropdownMenuItem", "dropdownSize", "DropdownMenuContent", "DropdownMenuGroup", "SidebarGroup", "SidebarGroupLabel", "SidebarGroupContent", "SearchIcon", "ClearIcon", "SidebarSearch", "value", "onValueChange", "placeholder", "isThin", "inputRef", "popoverRef", "resultsId", "valueRef", "onValueChangeRef", "searchLabel", "e", "handlePopoverKeyDown", "container", "resultsGroup", "items", "active", "isOnInput", "currentIndex", "PopoverRoot", "PopoverTrigger", "PopoverContent"]
|
|
7
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{a as U,b as _}from"./chunk-MN3XALXD.js";import{a as G}from"./chunk-GSTOGDAJ.js";import{a as q}from"./chunk-
|
|
1
|
+
import{a as U,b as _}from"./chunk-MN3XALXD.js";import{a as G}from"./chunk-GSTOGDAJ.js";import{a as q}from"./chunk-UBSLEGQZ.js";import{a as se}from"./chunk-OS3FCYZY.js";var ie={};se(ie,{Root:()=>Q,Slot:()=>$});import*as e from"react";import*as z from"react-dom";import Z from"classnames";import{composeRefs as J}from"radix-ui/internal";var Q=e.forwardRef((P,x)=>{let o=e.useRef(null),{children:h,className:E,color:w,radius:L,panelBackground:C,material:k,style:I,...s}=q(P,U,G),D=k||C,y=e.useId(),v=s.error||s.isInvalid,{"aria-describedby":g,"aria-labelledby":S}=s,f=e.useMemo(()=>{let i=[];return s.errorMessage&&i.push(y),g&&i.push(g),i.length>0?i.join(" "):void 0},[s.errorMessage,g,y]),n=e.useMemo(()=>({"aria-invalid":v,"aria-describedby":f,"aria-labelledby":S}),[v,f,S]),{error:N,errorMessage:V,isInvalid:j,required:m,"aria-describedby":p,"aria-labelledby":a,...b}=s,M=e.useCallback(i=>{let X=i.target;if(X.closest("input, button, a"))return;let d=o.current;if(!d)return;let A=X.closest(`
|
|
2
2
|
.rt-TextFieldSlot[data-side='right'],
|
|
3
3
|
.rt-TextFieldSlot:not([data-side='right']) ~ .rt-TextFieldSlot:not([data-side='left'])
|
|
4
4
|
`)?d.value.length:0;requestAnimationFrame(()=>{try{d.setSelectionRange(A,A)}catch{}d.focus()})},[]);return e.createElement("div",{"data-accent-color":w,"data-radius":L,"data-panel-background":D,"data-material":D,style:I,className:Z("rt-TextFieldRoot",E,{"rt-error":v}),onPointerDown:M},e.createElement("input",{spellCheck:"false",...b,...n,ref:J(o,x),className:"rt-reset rt-TextFieldInput"}),h,s.errorMessage&&e.createElement("div",{id:y,className:"rt-TextFieldErrorMessage",role:"alert","aria-live":"polite"},s.errorMessage))});Q.displayName="TextField.Root";var R=(()=>{if(typeof navigator>"u")return!1;let P=navigator.userAgent,x=/^((?!chrome|android).)*safari/i.test(P),o=/firefox/i.test(P);return x||o})(),$=e.forwardRef((P,x)=>{let{scrub:o,scrubValue:h,scrubStep:E=1,scrubSensitivity:w=1,scrubMin:L,scrubMax:C,scrubShiftMultiplier:k=10,scrubAltMultiplier:I=.1,onScrub:s,...D}=P,{className:y,color:v,side:g,...S}=q(D,_),f=e.useRef(null),[n,N]=e.useState(!1),[V,j]=e.useState({x:0,y:0}),m=e.useRef(0),p=e.useRef(0),a=e.useRef(0),b=e.useRef(null),M=e.useRef(0),i=e.useRef({scrubValue:h,scrubStep:E,scrubSensitivity:w,scrubMin:L,scrubMax:C,scrubShiftMultiplier:k,scrubAltMultiplier:I,onScrub:s});i.current={scrubValue:h,scrubStep:E,scrubSensitivity:w,scrubMin:L,scrubMax:C,scrubShiftMultiplier:k,scrubAltMultiplier:I,onScrub:s};let X=e.useCallback(t=>{if(!o||t.target.closest("input, button, a"))return;t.preventDefault(),m.current=0,p.current=h??0,a.current=t.clientX,j({x:t.clientX,y:t.clientY});let c=f.current;c&&(R?(b.current=t.pointerId,M.current=t.clientX,c.setPointerCapture(t.pointerId),N(!0)):c.requestPointerLock())},[o,h]);e.useEffect(()=>{if(R)return;let t=()=>{let r=document.pointerLockElement===f.current;N(r),r||(i.current.onScrub?.(0,!1),m.current=0,p.current=0)};return document.addEventListener("pointerlockchange",t),()=>{document.removeEventListener("pointerlockchange",t)}},[]);let d=e.useCallback((t,r,c,oe)=>{let l=i.current,H=window.innerWidth,O=window.innerHeight;a.current+=t,a.current>H?a.current=a.current%H:a.current<0&&(a.current=H+a.current%H),j(F=>{let u=F.y+r;return u>O?u=u%O:u<0&&(u=O+u%O),{x:a.current,y:u}}),m.current+=t;let W=m.current/l.scrubSensitivity;if(Math.abs(W)>=1){let F=1;c?F=l.scrubShiftMultiplier:oe&&(F=l.scrubAltMultiplier);let u=Math.trunc(W),K=u*l.scrubStep*F,Y=K;if(l.scrubMin!==void 0||l.scrubMax!==void 0){let ne=p.current+K,B=Math.max(l.scrubMin??-1/0,Math.min(l.scrubMax??1/0,ne));Y=B-p.current,p.current=B}else p.current+=K;Y!==0&&l.onScrub?.(Y,!0),m.current=(W-u)*l.scrubSensitivity}},[]),T=e.useCallback(()=>{i.current.onScrub?.(0,!1),m.current=0,p.current=0,b.current=null,N(!1)},[]),A=e.useCallback(t=>{if(!n||!R)return;let r=t.clientX-M.current;M.current=t.clientX,d(r,t.movementY,t.shiftKey,t.altKey)},[n,d]),ee=e.useCallback(t=>{if(!R||b.current!==t.pointerId)return;let r=f.current;r&&b.current!==null&&r.releasePointerCapture(b.current),T()},[T]),te=e.useCallback(()=>{R&&n&&T()},[n,T]);e.useEffect(()=>{if(!n||R)return;let t=c=>{d(c.movementX,c.movementY,c.shiftKey,c.altKey)},r=()=>{document.exitPointerLock()};return document.addEventListener("mousemove",t),document.addEventListener("mouseup",r),document.body.style.userSelect="none",()=>{document.removeEventListener("mousemove",t),document.removeEventListener("mouseup",r),document.body.style.userSelect=""}},[n,d]),e.useEffect(()=>{if(!n||!R)return;let t=document.createElement("style");return t.textContent="* { cursor: none !important; user-select: none !important; }",document.head.appendChild(t),()=>{document.head.removeChild(t)}},[n]);let re=n?z.createPortal(e.createElement("img",{className:"rt-TextFieldSlotScrubCursor",src:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='black' stroke='white' stroke-width='1' d='M0 12 L5 7 L5 10 L19 10 L19 7 L24 12 L19 17 L19 14 L5 14 L5 17 Z'/%3E%3C/svg%3E",alt:"",style:{position:"fixed",left:V.x,top:V.y,transform:"translate(-50%, -50%)",pointerEvents:"none",zIndex:99999,width:24,height:24},"aria-hidden":"true"}),document.body):null;return e.createElement("div",{"data-accent-color":v,"data-side":g,"data-scrub":o||void 0,"data-scrubbing":n||void 0,...S,ref:J(f,x),className:Z("rt-TextFieldSlot",y),onPointerDown:o?X:void 0,onPointerMove:o?A:void 0,onPointerUp:o?ee:void 0,onLostPointerCapture:o?te:void 0},S.children,re)});$.displayName="TextField.Slot";export{Q as a,$ as b,ie as c};
|
|
5
|
-
//# sourceMappingURL=chunk-
|
|
5
|
+
//# sourceMappingURL=chunk-W2LD2YE6.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as R}from"./chunk-VLTXI4A7.js";import{a as f}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as R}from"./chunk-VLTXI4A7.js";import{a as f}from"./chunk-5TAHT6VC.js";import{a as n}from"./chunk-GSTOGDAJ.js";import{a as u}from"./chunk-UBSLEGQZ.js";import{a as N}from"./chunk-OS3FCYZY.js";var _={};N(_,{Item:()=>x,Root:()=>y});import*as o from"react";import G from"classnames";import{Context as v}from"radix-ui/internal";import{RadioGroup as d}from"radix-ui";var P="RadioGroup",[S]=v.createContextScope(P,[d.createRadioGroupScope]),l=d.createRadioGroupScope(),[E,I]=S(P),y=o.forwardRef(({color:a=R.color.default,size:e=R.size.default,variant:r=R.variant.default,...t},i)=>{let{__scopeRadioGroup:p,className:s,...m}=u(t,n),C=l(p);return o.createElement(E,{scope:p,color:a,size:e,variant:r},o.createElement(d.Root,{...C,...m,ref:i,className:G("rt-RadioGroupRoot",s)}))});y.displayName="RadioGroup.Root";var x=o.forwardRef((a,e)=>{let{__scopeRadioGroup:r,children:t,className:i,style:p,...s}=a,{size:m}=I("RadioGroupItem",r);return t?o.createElement(f,{as:"label",size:m,className:G("rt-RadioGroupItem",i),style:p},o.createElement(c,{__scopeRadioGroup:r,...s,ref:e}),t&&o.createElement("span",{className:"rt-RadioGroupItemInner"},t)):o.createElement(c,{__scopeRadioGroup:r,...s,ref:e,className:i,style:p})});x.displayName="RadioGroup.Item";var c=o.forwardRef(({__scopeRadioGroup:a,...e},r)=>{let t=I("RadioGroupItemRadio",a),i=l(a),{color:p,className:s}=u({...e,...t},R,n);return o.createElement(d.Item,{...i,"data-accent-color":p,...e,asChild:!1,ref:r,className:G("rt-reset","rt-BaseRadioRoot",s)})});c.displayName="RadioGroup.ItemRadio";export{y as a,x as b,_ as c};
|
|
2
|
+
//# sourceMappingURL=chunk-WGWUEU4K.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as c}from"./chunk-CLMOWP5T.js";import{a as d}from"./chunk-GSTOGDAJ.js";import{a as l}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as c}from"./chunk-CLMOWP5T.js";import{a as d}from"./chunk-GSTOGDAJ.js";import{a as l}from"./chunk-UBSLEGQZ.js";import*as e from"react";import T from"classnames";var M=e.forwardRef((m,f)=>{let{className:x,color:y,radius:b,panelBackground:u,material:P,style:v,...r}=l(m,c,d),i=P||u,t=e.useId(),{"aria-describedby":o,"aria-labelledby":p}=r,s=r.error||r.isInvalid,n=e.useMemo(()=>{let a=[];return r.errorMessage&&a.push(t),o&&a.push(o),a.length>0?a.join(" "):void 0},[r.errorMessage,o,t]),A=e.useMemo(()=>({"aria-invalid":s,"aria-describedby":n,"aria-labelledby":p}),[s,n,p]),{error:R,errorMessage:D,isInvalid:I,required:h,"aria-describedby":N,"aria-labelledby":j,...g}=r;return e.createElement("div",{"data-accent-color":y,"data-radius":b,"data-panel-background":i,"data-material":i,className:T("rt-TextAreaRoot",x,{"rt-error":s}),style:v},e.createElement("textarea",{className:"rt-reset rt-TextAreaInput",ref:f,...g,...A}),r.errorMessage&&e.createElement("div",{id:t,className:"rt-TextAreaErrorMessage",role:"alert","aria-live":"polite"},r.errorMessage))});M.displayName="TextArea";export{M as a};
|
|
2
|
+
//# sourceMappingURL=chunk-WIDJYVZF.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as r}from"./chunk-BPVVFHYD.js";import{a as p}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as r}from"./chunk-BPVVFHYD.js";import{a as p}from"./chunk-5TAHT6VC.js";import{c as i}from"./chunk-SEY4NA45.js";import{a as e}from"./chunk-UBSLEGQZ.js";import*as o from"react";import v from"classnames";import{Tooltip as t}from"radix-ui";var u=o.forwardRef((n,s)=>{let{children:l,className:m,open:a,defaultOpen:f,onOpenChange:P,delayDuration:T,disableHoverableContent:c,content:d,container:R,forceMount:C,...y}=e(n,r),h={open:a,defaultOpen:f,onOpenChange:P,delayDuration:T,disableHoverableContent:c};return o.createElement(t.Root,{...h},o.createElement(t.Trigger,{asChild:!0},l),o.createElement(t.Portal,{container:R,forceMount:C},o.createElement(i,{asChild:!0},o.createElement(t.Content,{sideOffset:4,collisionPadding:10,...y,asChild:!1,ref:s,className:v("rt-TooltipContent",m)},o.createElement(p,{as:"p",className:"rt-TooltipText",size:"1"},d),o.createElement(t.Arrow,{className:"rt-TooltipArrow"})))))});u.displayName="Tooltip";export{u as a};
|
|
2
|
+
//# sourceMappingURL=chunk-WJBOOAIO.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as p}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as p}from"./chunk-GM7KMQDI.js";import{a as o}from"./chunk-UBSLEGQZ.js";import*as e from"react";import a from"classnames";import{Slot as P}from"radix-ui";var E=e.forwardRef((m,r)=>{let{asChild:t,className:s,...f}=o(m,p),n=t?P.Root:"em";return e.createElement(n,{...f,ref:r,className:a("rt-Em",s)})});E.displayName="Em";export{E as a};
|
|
2
|
+
//# sourceMappingURL=chunk-WQCB7KSH.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as t}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as t}from"./chunk-7FKKGUHK.js";import{a as p}from"./chunk-5TAHT6VC.js";import{a as e}from"./chunk-UBSLEGQZ.js";import*as o from"react";import P from"classnames";var c=o.forwardRef((s,n)=>{let{children:r,className:i,color:m,asChild:a,...f}=e(s,t);return o.createElement(p,{...f,"data-accent-color":m,ref:n,asChild:!0,className:P("rt-reset","rt-Link",i)},a?r:o.createElement("a",null,r))});c.displayName="Link";export{c as a};
|
|
2
|
+
//# sourceMappingURL=chunk-WZFVTC7P.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e={xs:"(min-width: 520px)",sm:"(min-width: 768px)",md:"(min-width: 1024px)",lg:"(min-width: 1280px)",xl:"(min-width: 1640px)"};export{e as a};
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
var e={xs:"(min-width: 520px)",sm:"(min-width: 768px)",md:"(min-width: 1024px)",lg:"(min-width: 1280px)",xl:"(min-width: 1640px)"},t=["initial","xs","sm","md","lg","xl"];export{e as a,t as b};
|
|
2
|
+
//# sourceMappingURL=chunk-YA5DF67M.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/shell.types.ts"],
|
|
4
|
+
"sourcesContent": ["import type * as React from 'react';\n\nexport type PresentationValue = 'fixed' | 'overlay' | 'stacked';\n\nexport type ResponsivePresentation = PresentationValue | Partial<Record<'initial' | 'xs' | 'sm' | 'md' | 'lg' | 'xl', PresentationValue>>;\n\nexport type PaneMode = 'expanded' | 'collapsed';\nexport type SidebarMode = 'collapsed' | 'thin' | 'expanded';\n\nexport type ResponsiveMode = PaneMode | Partial<Record<'initial' | 'xs' | 'sm' | 'md' | 'lg' | 'xl', PaneMode>>;\n\nexport type ResponsiveSidebarMode = SidebarMode | Partial<Record<'initial' | 'xs' | 'sm' | 'md' | 'lg' | 'xl', SidebarMode>>;\n\nexport type Responsive<T> = T | Partial<Record<'initial' | 'xs' | 'sm' | 'md' | 'lg' | 'xl', T>>;\n\nexport type PaneSizePersistence = {\n load?: () => number | Promise<number | undefined> | undefined;\n save?: (size: number) => void | Promise<void>;\n};\n\n/**\n * Why a pane's open state changed. Since 0.8.0 only a user action is reported:\n * `toggle` for a Trigger, a handle double-click or a drag past\n * `collapseThreshold`, and `dismiss` for Escape or a press on the scrim.\n * `init`, `responsive`, `panel` and `left` are kept in the types for\n * compatibility and are never sent.\n */\nexport type PaneOpenChangeReason = 'toggle' | 'dismiss' | 'init' | 'responsive';\n\nexport interface PaneBaseProps extends React.ComponentPropsWithoutRef<'div'> {\n presentation?: ResponsivePresentation;\n expandedSize?: number;\n minSize?: number;\n maxSize?: number;\n resizable?: boolean;\n collapsible?: boolean;\n /** @deprecated Use `onOpenChange`. Still called when a user's toggle or a controlled prop changes whether the pane is shown; never on mount or when the window crosses a breakpoint. */\n onExpand?: () => void;\n /** @deprecated Use `onOpenChange`. Still called when a user's toggle or a controlled prop changes whether the pane is shown; never on mount or when the window crosses a breakpoint. */\n onCollapse?: () => void;\n onResize?: (size: number) => void;\n onResizeStart?: (size: number) => void;\n onResizeEnd?: (size: number) => void;\n /** @deprecated Removed in 1.0. Snap in your own `onSizeChange` and pass `size`. */\n snapPoints?: number[];\n /** @deprecated Removed in 1.0, with `snapPoints`. */\n snapTolerance?: number;\n /** @deprecated Removed in 1.0. Close the pane from your own `onResizeEnd`. */\n collapseThreshold?: number;\n /** @deprecated Removed in 1.0. Keep the size in your own state with `size`/`onSizeChange`. */\n paneId?: string;\n /** @deprecated Removed in 1.0. Keep the size in your own state with `size`/`onSizeChange`. */\n persistence?: PaneSizePersistence;\n}\n\nexport const _BREAKPOINTS = {\n xs: '(min-width: 520px)',\n sm: '(min-width: 768px)',\n md: '(min-width: 1024px)',\n lg: '(min-width: 1280px)',\n xl: '(min-width: 1640px)',\n} as const;\n\nexport type Breakpoint = 'initial' | keyof typeof _BREAKPOINTS;\n\n/** Every breakpoint, smallest first. The stylesheet's @media blocks follow this order. */\nexport const SHELL_BREAKPOINTS: readonly Breakpoint[] = ['initial', 'xs', 'sm', 'md', 'lg', 'xl'];\n\nexport type PaneTarget = 'left' | 'rail' | 'panel' | 'sidebar' | 'inspector' | 'bottom';\n\n/** The panes a Trigger can drive. `left` is the deprecated name for `rail`. */\nexport type PaneName = Exclude<PaneTarget, 'left'>;\n\n/**\n * CSS custom property key type for type-safe style objects.\n * Allows any string prefixed with '--'.\n */\nexport type CSSCustomProperty = `--${string}`;\n\n/**\n * Style object that supports CSS custom properties.\n */\nexport type CSSPropertiesWithVars = React.CSSProperties & {\n [key: CSSCustomProperty]: string | number | undefined;\n};\n"],
|
|
5
|
+
"mappings": "AAuDO,IAAMA,EAAe,CAC1B,GAAI,qBACJ,GAAI,qBACJ,GAAI,sBACJ,GAAI,sBACJ,GAAI,qBACN,EAKaC,EAA2C,CAAC,UAAW,KAAM,KAAM,KAAM,KAAM,IAAI",
|
|
6
|
+
"names": ["_BREAKPOINTS", "SHELL_BREAKPOINTS"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as g,e as r}from"./chunk-HCNO7PX6.js";import{a as C,b as S,c as v}from"./chunk-GMHA5CFH.js";import{o as B}from"./chunk-A2XVR7GL.js";import{a as R,b as y}from"./chunk-BZZXXZ3O.js";import{a as b}from"./chunk-HWQ3NTJP.js";import{a as l,c as x,f as O,g as M}from"./chunk-3J6AUDID.js";import{a as h}from"./chunk-3XSB7YIM.js";import*as e from"react";import se from"classnames";import{useComposedRefs as ie}from"radix-ui/internal";var re={controlled:"open",default:"defaultOpen"},T=e.forwardRef((w,E)=>{let{className:H,presentation:N="fixed",defaultOpen:U,open:I,onOpenChange:V,expandedSize:t=200,minSize:p=100,maxSize:d=400,resizable:m=!1,collapsible:k=!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:re,id:X,controlled:l(I),defaultValue:l(U),presentationTable:f,builtIn:x,onChange:(ne,ae)=>V?.(ne!=="closed",{reason:ae}),onExpand:A,onCollapse:L,size:t});B("bottom",c),e.useEffect(()=>{(n!==void 0||a!==void 0||s!==void 0||i!==void 0)&&void 0},[n,a,s,i]);let z=e.useRef(null),Z=ie(E,o.setElement,z),ee=R({name:"bottom",elementId:o.id,elementRef:z,cssVarName:"--bottom-size",orientation:"horizontal",edge:"start",growth:O,expandedSize:t,minSize:p,maxSize:d,resizable:m,collapsible:k,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[h()]==="overlay",requestCollapse:()=>o.setValue("closed","toggle"),requestToggle:()=>o.toggle("toggle")}),{handles:P,content:oe}=y(_,r),te=m&&o.shown!==!1&&!o.overlaying?e.createElement(b.Provider,{value:ee},P.length>0?P:e.createElement(g,null)):null;return e.createElement("div",{...M(u),id:o.id,ref:Z,className:se("rt-ShellPane","rt-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:"rt-ShellBottomContent"},oe),te)});T.displayName="Shell.Bottom";T.Handle=r;export{T as a};
|
|
2
|
+
//# sourceMappingURL=chunk-YAQBIO2B.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/_internal/shell-bottom.tsx"],
|
|
4
|
+
"sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useComposedRefs } from 'radix-ui/internal';\nimport { PaneResizeContext } from './shell-resize.js';\nimport { BottomHandle, PaneHandle } from './shell-handles.js';\nimport { usePane, paneAttributes, usePresentationTable } from './shell-pane.js';\nimport { splitHandles, useResizablePane, type SizeChangeMeta } from './shell-resizable.js';\nimport { useInsetRegistration, warnOnce } from './shell-store.js';\nimport { bottomAnchoredGrowth, detailRest, toPaneValue, withoutRemovedPaneProps } from './shell-rest.js';\nimport { readBreakpoint } from '../../hooks/use-breakpoint.js';\nimport type { Breakpoint, CSSPropertiesWithVars, PaneBaseProps } from '../shell.types.js';\n\ntype BottomOpenChangeMeta = { reason: 'init' | 'toggle' | 'responsive' | 'dismiss' };\ntype BottomControlledProps = { open: boolean | Partial<Record<Breakpoint, boolean>>; onOpenChange?: (open: boolean, meta: BottomOpenChangeMeta) => void; defaultOpen?: never };\n/** Since 0.8.0 `defaultOpen` takes a responsive object here too, as the docs already said it did. */\ntype BottomUncontrolledProps = { defaultOpen?: boolean | Partial<Record<Breakpoint, boolean>>; onOpenChange?: (open: boolean, meta: BottomOpenChangeMeta) => void; open?: never };\ntype BottomSizeControlledProps = { size: number | string; defaultSize?: never };\ntype BottomSizeUncontrolledProps = { defaultSize?: number | string; size?: never };\ntype BottomPublicProps = PaneBaseProps &\n (BottomControlledProps | BottomUncontrolledProps) &\n (BottomSizeControlledProps | BottomSizeUncontrolledProps) & {\n onSizeChange?: (size: number, meta: SizeChangeMeta) => void;\n sizeUpdate?: 'throttle' | 'debounce';\n sizeUpdateMs?: number;\n /** When true, adds margin and triggers the gray backdrop on the Shell. */\n inset?: boolean;\n };\n\ntype BottomComponent = React.ForwardRefExoticComponent<BottomPublicProps & React.RefAttributes<HTMLDivElement>> & { Handle: typeof BottomHandle };\n\nconst BOTTOM_PROP_NAMES = { controlled: 'open', default: 'defaultOpen' };\n\nexport const Bottom = React.forwardRef<HTMLDivElement, BottomPublicProps>((props, ref) => {\n const {\n className,\n presentation = 'fixed',\n defaultOpen,\n open,\n onOpenChange,\n expandedSize = 200,\n minSize = 100,\n maxSize = 400,\n resizable = false,\n collapsible = true,\n onExpand,\n onCollapse,\n onResize,\n onResizeStart,\n onResizeEnd,\n snapPoints,\n snapTolerance,\n collapseThreshold,\n paneId,\n persistence,\n children,\n style,\n size,\n defaultSize,\n onSizeChange,\n sizeUpdate,\n sizeUpdateMs = 50,\n inset,\n id,\n ...domProps\n } = props;\n\n const { table, attributes } = usePresentationTable(presentation, 'fixed');\n const pane = usePane({\n name: 'bottom',\n label: 'Bottom',\n propNames: BOTTOM_PROP_NAMES,\n id,\n controlled: toPaneValue(open),\n defaultValue: toPaneValue(defaultOpen),\n presentationTable: table,\n builtIn: detailRest,\n onChange: (value, reason) => onOpenChange?.(value !== 'closed', { reason }),\n onExpand,\n onCollapse,\n size: expandedSize,\n });\n useInsetRegistration('bottom', inset);\n\n React.useEffect(() => {\n if (snapPoints !== undefined || collapseThreshold !== undefined || paneId !== undefined || persistence !== undefined) {\n warnOnce('Shell.Bottom: `snapPoints`, `collapseThreshold`, `paneId` and `persistence` are deprecated and are removed in 1.0. Keep the size in your own state with `size`/`onSizeChange`.');\n }\n }, [snapPoints, collapseThreshold, paneId, persistence]);\n\n const elementRef = React.useRef<HTMLElement | null>(null);\n const composedRef = useComposedRefs(ref, pane.setElement, elementRef);\n\n const resize = useResizablePane({\n name: 'bottom',\n elementId: pane.id,\n elementRef,\n cssVarName: '--bottom-size',\n orientation: 'horizontal',\n edge: 'start',\n growth: bottomAnchoredGrowth,\n expandedSize,\n minSize,\n maxSize,\n resizable,\n collapsible,\n size,\n defaultSize,\n onSizeChange,\n sizeUpdate,\n sizeUpdateMs,\n onResize,\n onResizeStart,\n onResizeEnd,\n snapPoints,\n snapTolerance,\n collapseThreshold,\n paneId,\n persistence,\n overlaying: pane.overlaying,\n overlayingNow: () => table[readBreakpoint()] === 'overlay',\n requestCollapse: () => pane.setValue('closed', 'toggle'),\n requestToggle: () => pane.toggle('toggle'),\n });\n\n const { handles, content } = splitHandles(children, BottomHandle);\n const handle = resizable && pane.shown !== false && !pane.overlaying ? <PaneResizeContext.Provider value={resize}>{handles.length > 0 ? handles : <PaneHandle />}</PaneResizeContext.Provider> : null;\n\n return (\n <div\n {...withoutRemovedPaneProps(domProps)}\n id={pane.id}\n ref={composedRef}\n className={classNames('rt-ShellPane', 'rt-ShellBottom', className)}\n {...paneAttributes(pane, attributes)}\n data-inset={inset || undefined}\n tabIndex={pane.overlaying ? -1 : domProps.tabIndex}\n style={\n {\n ...style,\n '--bottom-expanded-size': `${expandedSize}px`,\n '--bottom-min-size': `${minSize}px`,\n '--bottom-max-size': `${maxSize}px`,\n } as CSSPropertiesWithVars\n }\n >\n <div className=\"rt-ShellBottomContent\">{content}</div>\n {handle}\n </div>\n );\n}) as BottomComponent;\n\nBottom.displayName = 'Shell.Bottom';\nBottom.Handle = BottomHandle;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "classNames", "useComposedRefs", "BOTTOM_PROP_NAMES", "Bottom", "props", "ref", "className", "presentation", "defaultOpen", "open", "onOpenChange", "expandedSize", "minSize", "maxSize", "resizable", "collapsible", "onExpand", "onCollapse", "onResize", "onResizeStart", "onResizeEnd", "snapPoints", "snapTolerance", "collapseThreshold", "paneId", "persistence", "children", "style", "size", "defaultSize", "onSizeChange", "sizeUpdate", "sizeUpdateMs", "inset", "id", "domProps", "table", "attributes", "usePresentationTable", "pane", "usePane", "toPaneValue", "detailRest", "value", "reason", "useInsetRegistration", "elementRef", "composedRef", "useComposedRefs", "resize", "useResizablePane", "bottomAnchoredGrowth", "readBreakpoint", "handles", "content", "splitHandles", "BottomHandle", "handle", "PaneResizeContext", "PaneHandle", "withoutRemovedPaneProps", "classNames", "paneAttributes"]
|
|
7
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as s}from"./chunk-VK7RNXUO.js";import{a as n}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as s}from"./chunk-VK7RNXUO.js";import{a as n}from"./chunk-KV4SZP3F.js";import*as e from"react";import{Toggle as f}from"radix-ui";var m=e.forwardRef(({pressed:o,onPressedChange:r,defaultPressed:a,children:t,...g},p)=>{let l=e.useCallback(()=>typeof t=="string"?t:e.isValidElement(t)&&typeof t.props?.children=="string"?t.props.children:"Toggle button",[t]),{handlePressedChange:u}=s({pressed:o,onPressedChange:r,getAccessibleName:l,componentName:"ToggleButton"});return e.createElement(f.Root,{pressed:o,onPressedChange:u,defaultPressed:a,asChild:!0},e.createElement(n,{...g,ref:p},t))});m.displayName="ToggleButton";export{m as a};
|
|
2
|
+
//# sourceMappingURL=chunk-YG66IRW4.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as t}from"./chunk-FD2TR343.js";import{a as
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as t}from"./chunk-FD2TR343.js";import{a as s}from"./chunk-ZE2KAVXW.js";import{a as p}from"./chunk-WYADYDPN.js";import{b as e}from"./chunk-ZWZGUBL4.js";import{a as o}from"./chunk-NZJGC6ZW.js";import{c as r}from"./chunk-ZNK6AH2G.js";var f=["1","2","3","4","5","6","7","8","9"],n={...o,size:{type:"enum",className:"rt-r-size",values:f,responsive:!0},...t,...r,...e,...s,...p};export{n as a};
|
|
2
|
+
//# sourceMappingURL=chunk-YVSM2LGS.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as v}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as v}from"./chunk-ODCVOXEV.js";import{a as d,e as l,f as u,g as R}from"./chunk-V32EP3S7.js";import{b as P}from"./chunk-IX5HIHVI.js";import{a as f}from"./chunk-667BKCUG.js";import{b}from"./chunk-SEY4NA45.js";import{a as k}from"./chunk-F6V7GBNQ.js";import{a as h}from"./chunk-GSTOGDAJ.js";import{a as m}from"./chunk-UBSLEGQZ.js";import{a as z}from"./chunk-OS3FCYZY.js";var _={};z(_,{Item:()=>N,Root:()=>I});import*as o from"react";import x from"classnames";import{Context as D}from"radix-ui/internal";var y="CheckboxCards",[S]=D.createContextScope(y,[d]),G=d(),[B,E]=S(y),I=o.forwardRef((r,s)=>{let a=b(),c=r.panelBackground??a.panelBackground,{__scopeCheckboxCards:t,className:p,color:e,panelBackground:C,...i}=m(r,f,h),n=G(t);return o.createElement(B,{scope:t,size:r.size,variant:r.variant},o.createElement(v,{asChild:!0},o.createElement(l,{...n,"data-accent-color":e,"data-panel-background":c,...i,ref:s,className:x("rt-CheckboxCardsRoot",p)})))});I.displayName="CheckboxCards.Root";var N=o.forwardRef(({__scopeCheckboxCards:r,children:s,className:a,style:c,...t},p)=>{let e=E("CheckboxCardsItem",r),C=G(r),{className:i}=m({size:e?.size,variant:e?.variant||"solid"},k),n=e?.variant?`rt-variant-${e.variant}`:void 0,g=e?.size?`rt-r-size-${e.size}`:void 0;return o.createElement("label",{className:x("rt-BaseCard","rt-CheckboxCardsItem",n,g,a),style:c},s,o.createElement(u,{...C,...t,ref:p,className:x("rt-reset","rt-BaseCheckboxRoot","rt-CheckboxCardCheckbox",i)},o.createElement(R,{...C,asChild:!0,className:"rt-BaseCheckboxIndicator"},o.createElement(P,null))))});N.displayName="CheckboxCards.Item";export{I as a,N as b,_ as c};
|
|
2
|
+
//# sourceMappingURL=chunk-Z7AZNMNX.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as t}from"./chunk-SMGDH54W.js";import{b as s}from"./chunk-FWB47YCH.js";import{a as r}from"./chunk-K53W3ELO.js";import{a as e}from"./chunk-GSTOGDAJ.js";import{a as p}from"./chunk-UBSLEGQZ.js";import*as o from"react";import x from"classnames";var f=o.forwardRef((m,a)=>{let{className:l,asChild:n,as:i="div",...P}=p(m,t,r,e);return o.createElement(n?s:i,{...P,ref:a,className:x("rt-Flex",l)})});f.displayName="Flex";export{f as a};
|
|
2
|
+
//# sourceMappingURL=chunk-ZJ33QP5N.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as p}from"./chunk-NIX6Z3JG.js";import{a as t}from"./chunk-K53W3ELO.js";import{a as e}from"./chunk-GSTOGDAJ.js";import{a as r}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as p}from"./chunk-NIX6Z3JG.js";import{a as t}from"./chunk-K53W3ELO.js";import{a as e}from"./chunk-GSTOGDAJ.js";import{a as r}from"./chunk-UBSLEGQZ.js";import*as o from"react";import f from"classnames";import{Slot as P}from"radix-ui";var l=o.forwardRef((s,m)=>{let{asChild:i,className:n,...c}=r(s,p,t,e),a=i?P.Root:"section";return o.createElement(a,{...c,ref:m,className:f("rt-Section",n)})});l.displayName="Section";export{l as a};
|
|
2
|
+
//# sourceMappingURL=chunk-ZW26J2SA.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"../../chunk-
|
|
1
|
+
import{a}from"../../chunk-VTIL55SR.js";import"../../chunk-OQU2SKLN.js";import"../../chunk-3KB2XWBE.js";import"../../chunk-ZJ33QP5N.js";import"../../chunk-SMGDH54W.js";import"../../chunk-AGAQC4HH.js";import"../../chunk-5T6K7VPP.js";import"../../chunk-SNR5VFWG.js";import"../../chunk-FWB47YCH.js";import"../../chunk-K53W3ELO.js";import"../../chunk-TTFUM47A.js";import"../../chunk-VX44UTQ5.js";import"../../chunk-ERGJN7FJ.js";import"../../chunk-5TXQLK4G.js";import"../../chunk-JFWMAYEH.js";import"../../chunk-KRJTW535.js";import"../../chunk-GSTOGDAJ.js";import"../../chunk-UBSLEGQZ.js";import"../../chunk-AX5S56DS.js";import"../../chunk-E23RKOQJ.js";import"../../chunk-PBFSBHBS.js";import"../../chunk-WRWNN2NW.js";import"../../chunk-RZCX6IBE.js";import"../../chunk-QM3RCK5P.js";import"../../chunk-NZJGC6ZW.js";import"../../chunk-ZNK6AH2G.js";import"../../chunk-OS3FCYZY.js";export{a as BaseButton};
|
|
2
2
|
//# sourceMappingURL=base-button.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";import{a,b,c,d,e,f}from"../../chunk-
|
|
1
|
+
"use client";import{a,b,c,d,e,f}from"../../chunk-7PMMYHZV.js";import"../../chunk-JDWCQ2XP.js";import"../../chunk-ARIV4AT5.js";import"../../chunk-3XSB7YIM.js";import"../../chunk-YA5DF67M.js";import"../../chunk-GSTOGDAJ.js";import"../../chunk-UBSLEGQZ.js";import"../../chunk-AX5S56DS.js";import"../../chunk-E23RKOQJ.js";import"../../chunk-PBFSBHBS.js";import"../../chunk-WRWNN2NW.js";import"../../chunk-RZCX6IBE.js";import"../../chunk-QM3RCK5P.js";import"../../chunk-NZJGC6ZW.js";import"../../chunk-OS3FCYZY.js";export{f as MenuShortcut,d as getMenuAlignOffset,c as resolveMenuMaterial,a as resolveResponsiveValue,e as toAriaKeyShortcuts,b as useResolvedResponsiveValue};
|
|
2
2
|
//# sourceMappingURL=base-menu.utils.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";import{a,b,c,d}from"../../chunk-
|
|
1
|
+
"use client";import{a,b,c,d}from"../../chunk-UNWPH3SO.js";import"../../chunk-SEY4NA45.js";import"../../chunk-WAURCNAS.js";import"../../chunk-F22ZRNWL.js";import"../../chunk-XYVLQDGR.js";import"../../chunk-5TXQLK4G.js";import"../../chunk-KRJTW535.js";import"../../chunk-7PMMYHZV.js";import"../../chunk-JDWCQ2XP.js";import"../../chunk-ARIV4AT5.js";import"../../chunk-3XSB7YIM.js";import"../../chunk-YA5DF67M.js";import"../../chunk-GSTOGDAJ.js";import"../../chunk-UBSLEGQZ.js";import"../../chunk-AX5S56DS.js";import"../../chunk-E23RKOQJ.js";import"../../chunk-PBFSBHBS.js";import"../../chunk-WRWNN2NW.js";import"../../chunk-RZCX6IBE.js";import"../../chunk-QM3RCK5P.js";import"../../chunk-NZJGC6ZW.js";import"../../chunk-ZNK6AH2G.js";import"../../chunk-OS3FCYZY.js";export{c as MenuProvider,b as getMenuItemHeight,a as menuSizeToItemHeight,d as useMenuContext};
|
|
2
2
|
//# sourceMappingURL=menu-context.js.map
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { BottomHandle } from './shell-handles.js';
|
|
3
|
+
import { type SizeChangeMeta } from './shell-resizable.js';
|
|
3
4
|
import type { Breakpoint, PaneBaseProps } from '../shell.types.js';
|
|
4
5
|
type BottomOpenChangeMeta = {
|
|
5
|
-
reason: 'init' | 'toggle' | 'responsive';
|
|
6
|
+
reason: 'init' | 'toggle' | 'responsive' | 'dismiss';
|
|
6
7
|
};
|
|
7
8
|
type BottomControlledProps = {
|
|
8
9
|
open: boolean | Partial<Record<Breakpoint, boolean>>;
|
|
9
10
|
onOpenChange?: (open: boolean, meta: BottomOpenChangeMeta) => void;
|
|
10
11
|
defaultOpen?: never;
|
|
11
12
|
};
|
|
13
|
+
/** Since 0.8.0 `defaultOpen` takes a responsive object here too, as the docs already said it did. */
|
|
12
14
|
type BottomUncontrolledProps = {
|
|
13
|
-
defaultOpen?: boolean
|
|
15
|
+
defaultOpen?: boolean | Partial<Record<Breakpoint, boolean>>;
|
|
14
16
|
onOpenChange?: (open: boolean, meta: BottomOpenChangeMeta) => void;
|
|
15
17
|
open?: never;
|
|
16
18
|
};
|
|
@@ -22,14 +24,11 @@ type BottomSizeUncontrolledProps = {
|
|
|
22
24
|
defaultSize?: number | string;
|
|
23
25
|
size?: never;
|
|
24
26
|
};
|
|
25
|
-
type BottomSizeChangeMeta = {
|
|
26
|
-
reason: 'init' | 'resize' | 'controlled';
|
|
27
|
-
};
|
|
28
27
|
type BottomPublicProps = PaneBaseProps & (BottomControlledProps | BottomUncontrolledProps) & (BottomSizeControlledProps | BottomSizeUncontrolledProps) & {
|
|
29
|
-
onSizeChange?: (size: number, meta:
|
|
28
|
+
onSizeChange?: (size: number, meta: SizeChangeMeta) => void;
|
|
30
29
|
sizeUpdate?: 'throttle' | 'debounce';
|
|
31
30
|
sizeUpdateMs?: number;
|
|
32
|
-
/** When true, adds margin and triggers gray backdrop on Shell. */
|
|
31
|
+
/** When true, adds margin and triggers the gray backdrop on the Shell. */
|
|
33
32
|
inset?: boolean;
|
|
34
33
|
};
|
|
35
34
|
type BottomComponent = React.ForwardRefExoticComponent<BottomPublicProps & React.RefAttributes<HTMLDivElement>> & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell-bottom.d.ts","sourceRoot":"","sources":["../../../../src/components/_internal/shell-bottom.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shell-bottom.d.ts","sourceRoot":"","sources":["../../../../src/components/_internal/shell-bottom.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,YAAY,EAAc,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EAAkC,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI3F,OAAO,KAAK,EAAE,UAAU,EAAyB,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE1F,KAAK,oBAAoB,GAAG;IAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,YAAY,GAAG,SAAS,CAAA;CAAE,CAAC;AACrF,KAAK,qBAAqB,GAAG;IAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAAC,WAAW,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAC/K,qGAAqG;AACrG,KAAK,uBAAuB,GAAG;IAAE,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAAC,IAAI,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAClL,KAAK,yBAAyB,GAAG;IAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAChF,KAAK,2BAA2B,GAAG;IAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AACnF,KAAK,iBAAiB,GAAG,aAAa,GACpC,CAAC,qBAAqB,GAAG,uBAAuB,CAAC,GACjD,CAAC,yBAAyB,GAAG,2BAA2B,CAAC,GAAG;IAC1D,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IAC5D,UAAU,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEJ,KAAK,eAAe,GAAG,KAAK,CAAC,yBAAyB,CAAC,iBAAiB,GAAG,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,GAAG;IAAE,MAAM,EAAE,OAAO,YAAY,CAAA;CAAE,CAAC;AAIlJ,eAAO,MAAM,MAAM,EAqHb,eAAe,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"../../chunk-
|
|
1
|
+
"use client";import{a}from"../../chunk-YAQBIO2B.js";import"../../chunk-HCNO7PX6.js";import"../../chunk-GMHA5CFH.js";import"../../chunk-A2XVR7GL.js";import"../../chunk-BZZXXZ3O.js";import"../../chunk-2LYX5S7H.js";import"../../chunk-HWQ3NTJP.js";import"../../chunk-3J6AUDID.js";import"../../chunk-3XSB7YIM.js";import"../../chunk-YA5DF67M.js";import"../../chunk-OS3FCYZY.js";export{a as Bottom};
|
|
2
2
|
//# sourceMappingURL=shell-bottom.js.map
|
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* The resize handle: the WAI-ARIA window splitter. `role="separator"` with a
|
|
4
|
+
* value, focusable because it is operable, `aria-controls` naming its pane.
|
|
5
|
+
*
|
|
6
|
+
* A drag writes the size variable directly on the pane and sets no React
|
|
7
|
+
* state, so nothing re-renders per move. `onResize` is called at most once per
|
|
8
|
+
* animation frame, and once more with the final size when the drag ends. The
|
|
9
|
+
* direction and the ceiling are read once, when the drag starts.
|
|
10
|
+
*/
|
|
2
11
|
export declare const PaneHandle: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
3
12
|
export declare const PanelHandle: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
4
13
|
export declare const SidebarHandle: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell-handles.d.ts","sourceRoot":"","sources":["../../../../src/components/_internal/shell-handles.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"shell-handles.d.ts","sourceRoot":"","sources":["../../../../src/components/_internal/shell-handles.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU,mKAoTrB,CAAC;AAGH,eAAO,MAAM,WAAW,mKAA+H,CAAC;AAGxJ,eAAO,MAAM,aAAa,mKAA+H,CAAC;AAG1J,eAAO,MAAM,eAAe,mKAA+H,CAAC;AAG5J,eAAO,MAAM,YAAY,mKAA+H,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a,b,c,d,e}from"../../chunk-
|
|
1
|
+
import{a,b,c,d,e}from"../../chunk-HCNO7PX6.js";import"../../chunk-HWQ3NTJP.js";import"../../chunk-OS3FCYZY.js";export{e as BottomHandle,d as InspectorHandle,a as PaneHandle,b as PanelHandle,c as SidebarHandle};
|
|
2
2
|
//# sourceMappingURL=shell-handles.js.map
|