@womp/kookie-ui 0.34.0 → 0.34.2
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 +15 -4
- package/dist/cjs/components/_internal/pane-chrome.d.ts +1 -2
- package/dist/cjs/components/_internal/pane-chrome.d.ts.map +1 -1
- package/dist/cjs/components/_internal/pane-chrome.js.map +2 -2
- package/dist/cjs/components/_internal/shell-bottom.js +1 -1
- package/dist/cjs/components/_internal/shell-bottom.js.map +3 -3
- package/dist/cjs/components/_internal/shell-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.js +1 -1
- package/dist/cjs/components/_internal/shell-inspector.js.map +3 -3
- package/dist/cjs/components/_internal/shell-resizable.d.ts.map +1 -1
- package/dist/cjs/components/_internal/shell-resizable.js +1 -1
- package/dist/cjs/components/_internal/shell-resizable.js.map +3 -3
- package/dist/cjs/components/_internal/shell-resize.d.ts +2 -0
- package/dist/cjs/components/_internal/shell-resize.d.ts.map +1 -1
- package/dist/cjs/components/_internal/shell-resize.js.map +2 -2
- package/dist/cjs/components/_internal/shell-sidebar.js +1 -1
- package/dist/cjs/components/_internal/shell-sidebar.js.map +3 -3
- package/dist/cjs/components/avatar.d.ts.map +1 -1
- package/dist/cjs/components/avatar.js +1 -1
- package/dist/cjs/components/avatar.js.map +2 -2
- package/dist/cjs/components/button.js +1 -1
- package/dist/cjs/components/button.js.map +3 -3
- package/dist/cjs/components/chatbar.d.ts.map +1 -1
- package/dist/cjs/components/chatbar.js +1 -1
- package/dist/cjs/components/chatbar.js.map +3 -3
- package/dist/cjs/components/combobox.d.ts +16 -0
- package/dist/cjs/components/combobox.d.ts.map +1 -1
- package/dist/cjs/components/combobox.js +1 -1
- package/dist/cjs/components/combobox.js.map +2 -2
- package/dist/cjs/components/index.js +2 -2
- package/dist/cjs/components/index.js.map +3 -3
- package/dist/cjs/components/message-scroller.js +1 -1
- package/dist/cjs/components/message-scroller.js.map +3 -3
- package/dist/cjs/components/navbar.d.ts.map +1 -1
- package/dist/cjs/components/navbar.js +1 -1
- package/dist/cjs/components/navbar.js.map +3 -3
- package/dist/cjs/components/navigator.js +1 -1
- package/dist/cjs/components/navigator.js.map +3 -3
- package/dist/cjs/components/notice.js +1 -1
- package/dist/cjs/components/notice.js.map +3 -3
- package/dist/cjs/components/schemas/base-button.schema.d.ts +7 -0
- package/dist/cjs/components/schemas/base-button.schema.d.ts.map +1 -1
- package/dist/cjs/components/schemas/base-button.schema.js +1 -1
- package/dist/cjs/components/schemas/base-button.schema.js.map +2 -2
- package/dist/cjs/components/schemas/button.schema.d.ts +14 -0
- package/dist/cjs/components/schemas/button.schema.d.ts.map +1 -1
- package/dist/cjs/components/schemas/button.schema.js +1 -1
- package/dist/cjs/components/schemas/button.schema.js.map +2 -2
- package/dist/cjs/components/schemas/index.js +1 -1
- package/dist/cjs/components/schemas/index.js.map +2 -2
- package/dist/cjs/components/schemas/shell.schema.d.ts +7 -6
- 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 +2 -2
- package/dist/cjs/components/schemas/toggle.schema.d.ts +83 -77
- package/dist/cjs/components/schemas/toggle.schema.d.ts.map +1 -1
- package/dist/cjs/components/schemas/toggle.schema.js +1 -1
- package/dist/cjs/components/schemas/toggle.schema.js.map +2 -2
- package/dist/cjs/components/segmented-control.d.ts.map +1 -1
- package/dist/cjs/components/segmented-control.js +1 -1
- package/dist/cjs/components/segmented-control.js.map +3 -3
- package/dist/cjs/components/select.js +1 -1
- package/dist/cjs/components/select.js.map +2 -2
- package/dist/cjs/components/sheet.d.ts +2 -2
- package/dist/cjs/components/sheet.js.map +1 -1
- package/dist/cjs/components/shell.context.js.map +1 -1
- package/dist/cjs/components/shell.js +1 -1
- package/dist/cjs/components/shell.js.map +3 -3
- package/dist/cjs/components/sidebar.d.ts +1 -1
- 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/components/table.d.ts.map +1 -1
- package/dist/cjs/components/table.js +1 -1
- package/dist/cjs/components/table.js.map +3 -3
- package/dist/cjs/components/text-field.d.ts.map +1 -1
- package/dist/cjs/components/text-field.js +2 -2
- package/dist/cjs/components/text-field.js.map +3 -3
- package/dist/cjs/components/toggle.js +1 -1
- package/dist/cjs/components/toggle.js.map +3 -3
- package/dist/cjs/components/toolbar.js +1 -1
- package/dist/cjs/components/toolbar.js.map +3 -3
- package/dist/cjs/components/virtual-menu.d.ts.map +1 -1
- package/dist/cjs/components/virtual-menu.js +1 -1
- package/dist/cjs/components/virtual-menu.js.map +3 -3
- package/dist/cjs/helpers/index.js +3 -3
- package/dist/cjs/helpers/index.js.map +2 -2
- package/dist/cjs/helpers/map-prop-values.d.ts.map +1 -1
- package/dist/cjs/helpers/map-prop-values.js +1 -1
- package/dist/cjs/helpers/map-prop-values.js.map +2 -2
- package/dist/cjs/index.js +4 -4
- package/dist/cjs/index.js.map +3 -3
- package/dist/cjs/props/index.d.ts +6 -0
- package/dist/cjs/props/index.d.ts.map +1 -1
- package/dist/cjs/props/index.js +1 -1
- package/dist/cjs/props/index.js.map +4 -4
- package/dist/esm/chunk-25FNCKUM.js +2 -0
- package/dist/esm/chunk-25FNCKUM.js.map +7 -0
- package/dist/esm/{chunk-KDJM4NQQ.js → chunk-2WFN4D52.js} +2 -2
- package/dist/esm/chunk-4OJRLS5N.js +3 -0
- package/dist/esm/chunk-4OJRLS5N.js.map +7 -0
- package/dist/esm/chunk-4TTRPCGG.js +3 -0
- package/dist/esm/{chunk-QKCNGEX4.js.map → chunk-4TTRPCGG.js.map} +3 -3
- package/dist/esm/chunk-4X64QOAR.js +3 -0
- package/dist/esm/chunk-4X64QOAR.js.map +7 -0
- package/dist/esm/{chunk-L7PRLW6A.js → chunk-5APRBJRR.js} +2 -2
- package/dist/esm/{chunk-L7PRLW6A.js.map → chunk-5APRBJRR.js.map} +2 -2
- package/dist/esm/chunk-7HD5LS3M.js +3 -0
- package/dist/esm/chunk-7HD5LS3M.js.map +7 -0
- package/dist/esm/chunk-7ZOGH5NT.js +2 -0
- package/dist/esm/chunk-7ZOGH5NT.js.map +7 -0
- package/dist/esm/chunk-BJA75XKG.js +2 -0
- package/dist/esm/chunk-BJA75XKG.js.map +7 -0
- package/dist/esm/{chunk-NO2JCJWI.js → chunk-BJVXB3PN.js} +2 -2
- package/dist/esm/{chunk-BR6Z2CAE.js → chunk-C6VGCYFQ.js} +2 -2
- package/dist/esm/chunk-EZYXYLR2.js +2 -0
- package/dist/esm/chunk-EZYXYLR2.js.map +7 -0
- package/dist/esm/chunk-FTNZWAPB.js +3 -0
- package/dist/esm/{chunk-7QBNXNEN.js.map → chunk-FTNZWAPB.js.map} +3 -3
- package/dist/esm/{chunk-ZLGOZKB3.js → chunk-FYZXC7AL.js} +2 -2
- package/dist/esm/{chunk-XD676L6S.js → chunk-HQT32HQ6.js} +2 -2
- package/dist/esm/{chunk-XKYPJTRN.js → chunk-I5TPDYJO.js} +2 -2
- package/dist/esm/chunk-I77CYEBT.js +2 -0
- package/dist/esm/chunk-I77CYEBT.js.map +7 -0
- package/dist/esm/{chunk-API4DAPY.js → chunk-J7MIXG6M.js} +1 -1
- package/dist/esm/chunk-J7MIXG6M.js.map +7 -0
- package/dist/esm/{chunk-UMQOTGJC.js → chunk-M26LLCQC.js} +2 -2
- package/dist/esm/{chunk-WN3WMFAM.js → chunk-MLHS2GWL.js} +2 -2
- package/dist/esm/chunk-MPLBIPJ6.js +3 -0
- package/dist/esm/chunk-MPLBIPJ6.js.map +7 -0
- package/dist/esm/{chunk-WEBNIUEX.js → chunk-MXEOE4LA.js} +1 -1
- package/dist/esm/chunk-MXEOE4LA.js.map +7 -0
- package/dist/esm/chunk-OGVKMDO7.js +3 -0
- package/dist/esm/chunk-OGVKMDO7.js.map +7 -0
- package/dist/esm/{chunk-ODHCDJ3Y.js → chunk-PMXIQ5B4.js} +1 -1
- package/dist/esm/chunk-PMXIQ5B4.js.map +7 -0
- package/dist/esm/{chunk-LG5DPQ46.js → chunk-R4DMVTM3.js} +2 -2
- package/dist/esm/{chunk-LG5DPQ46.js.map → chunk-R4DMVTM3.js.map} +3 -3
- package/dist/esm/chunk-S6SEWECR.js +3 -0
- package/dist/esm/{chunk-5VYQDA5S.js.map → chunk-S6SEWECR.js.map} +3 -3
- package/dist/esm/{chunk-7YXHLU4C.js → chunk-TANYRHGP.js} +2 -2
- package/dist/esm/{chunk-INGT6DB6.js → chunk-TS4QCDSI.js} +1 -1
- package/dist/esm/chunk-TS4QCDSI.js.map +7 -0
- package/dist/esm/chunk-WYLIU3Q6.js +2 -0
- package/dist/esm/chunk-WYLIU3Q6.js.map +7 -0
- package/dist/esm/chunk-X4PWBFOT.js +3 -0
- package/dist/esm/chunk-X4PWBFOT.js.map +7 -0
- package/dist/esm/chunk-XFMAA4MD.js +3 -0
- package/dist/esm/chunk-XFMAA4MD.js.map +7 -0
- package/dist/esm/chunk-XGV7KNSE.js +3 -0
- package/dist/esm/chunk-XGV7KNSE.js.map +7 -0
- package/dist/esm/chunk-XOAOSRTH.js +3 -0
- package/dist/esm/chunk-XOAOSRTH.js.map +7 -0
- package/dist/esm/{chunk-YOTTLPJ3.js → chunk-Y5ITMKC6.js} +2 -2
- package/dist/esm/chunk-YLGIP3A5.js +6 -0
- package/dist/esm/chunk-YLGIP3A5.js.map +7 -0
- package/dist/esm/chunk-YLPCYCYA.js +3 -0
- package/dist/esm/chunk-YLPCYCYA.js.map +7 -0
- package/dist/esm/components/_internal/pane-chrome.d.ts +1 -2
- package/dist/esm/components/_internal/pane-chrome.d.ts.map +1 -1
- package/dist/esm/components/_internal/pane-chrome.js +1 -1
- package/dist/esm/components/_internal/shell-bottom.js +1 -1
- 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.js +1 -1
- package/dist/esm/components/_internal/shell-resizable.d.ts.map +1 -1
- package/dist/esm/components/_internal/shell-resizable.js +1 -1
- package/dist/esm/components/_internal/shell-resize.d.ts +2 -0
- 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-sidebar.js +1 -1
- package/dist/esm/components/accordion.props.js +1 -1
- package/dist/esm/components/accordion.props.js.map +4 -4
- package/dist/esm/components/avatar.d.ts.map +1 -1
- package/dist/esm/components/avatar.js +1 -1
- package/dist/esm/components/button.js +1 -1
- package/dist/esm/components/chatbar.d.ts.map +1 -1
- package/dist/esm/components/chatbar.js +1 -1
- package/dist/esm/components/combobox.d.ts +16 -0
- package/dist/esm/components/combobox.d.ts.map +1 -1
- package/dist/esm/components/combobox.js +1 -1
- package/dist/esm/components/combobox.props.js +1 -1
- package/dist/esm/components/combobox.props.js.map +4 -4
- package/dist/esm/components/image.props.js +1 -1
- package/dist/esm/components/image.props.js.map +4 -4
- package/dist/esm/components/index.js +1 -1
- package/dist/esm/components/message-scroller.js +1 -1
- package/dist/esm/components/navbar.d.ts.map +1 -1
- package/dist/esm/components/navbar.js +1 -1
- package/dist/esm/components/navbar.props.js +1 -1
- package/dist/esm/components/navbar.props.js.map +4 -4
- package/dist/esm/components/navigator.js +1 -1
- package/dist/esm/components/notice.js +1 -1
- package/dist/esm/components/schemas/base-button.schema.d.ts +7 -0
- package/dist/esm/components/schemas/base-button.schema.d.ts.map +1 -1
- package/dist/esm/components/schemas/base-button.schema.js +1 -1
- package/dist/esm/components/schemas/button.schema.d.ts +14 -0
- package/dist/esm/components/schemas/button.schema.d.ts.map +1 -1
- package/dist/esm/components/schemas/button.schema.js +1 -1
- package/dist/esm/components/schemas/index.js +1 -1
- package/dist/esm/components/schemas/shell.schema.d.ts +7 -6
- 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/schemas/toggle.schema.d.ts +83 -77
- package/dist/esm/components/schemas/toggle.schema.d.ts.map +1 -1
- package/dist/esm/components/schemas/toggle.schema.js +1 -1
- package/dist/esm/components/segmented-control.d.ts.map +1 -1
- package/dist/esm/components/segmented-control.js +1 -1
- package/dist/esm/components/select.js +1 -1
- package/dist/esm/components/sheet.d.ts +2 -2
- package/dist/esm/components/sheet.js +1 -1
- package/dist/esm/components/shell.context.js +1 -1
- package/dist/esm/components/shell.js +1 -1
- package/dist/esm/components/sidebar.d.ts +1 -1
- package/dist/esm/components/sidebar.d.ts.map +1 -1
- package/dist/esm/components/sidebar.js +1 -1
- package/dist/esm/components/table.d.ts.map +1 -1
- package/dist/esm/components/table.js +1 -1
- package/dist/esm/components/text-field.d.ts.map +1 -1
- package/dist/esm/components/text-field.js +1 -1
- package/dist/esm/components/toggle.js +1 -1
- package/dist/esm/components/toolbar.js +1 -1
- package/dist/esm/components/toolbar.props.js +1 -1
- package/dist/esm/components/toolbar.props.js.map +4 -4
- package/dist/esm/components/virtual-menu.d.ts.map +1 -1
- package/dist/esm/components/virtual-menu.js +1 -1
- package/dist/esm/helpers/index.js +1 -1
- package/dist/esm/helpers/map-prop-values.d.ts.map +1 -1
- package/dist/esm/helpers/map-prop-values.js +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/props/index.d.ts +6 -0
- package/dist/esm/props/index.d.ts.map +1 -1
- package/dist/esm/props/index.js +1 -1
- package/layout/utilities.css +810 -0
- package/layout.css +810 -0
- package/package.json +3 -4
- package/schemas/base-button.json +13 -0
- package/schemas/button.json +13 -0
- package/schemas/index.json +51 -12
- package/schemas/shell-bottom.json +2 -2
- package/schemas/shell-content.json +2 -2
- package/schemas/shell-header.json +4 -0
- package/schemas/shell-inspector.json +2 -2
- package/schemas/shell-panel.json +2 -2
- package/schemas/shell-rail.json +2 -2
- package/schemas/shell-sidebar.json +2 -2
- package/schemas/toggle.json +9 -0
- package/src/components/_internal/base-dialog.css +1 -1
- package/src/components/_internal/pane-chrome.tsx +2 -3
- package/src/components/_internal/shell-handles.tsx +3 -0
- package/src/components/_internal/shell-resizable.tsx +9 -0
- package/src/components/_internal/shell-resize.tsx +2 -0
- package/src/components/avatar.tsx +3 -1
- package/src/components/button.tsx +1 -1
- package/src/components/chatbar.tsx +2 -1
- package/src/components/combobox.tsx +2 -3
- package/src/components/navbar.tsx +3 -4
- package/src/components/navigator.css +4 -4
- package/src/components/schemas/base-button.schema.ts +7 -0
- package/src/components/schemas/shell.schema.ts +3 -2
- package/src/components/schemas/toggle.schema.ts +2 -1
- package/src/components/segmented-control.css +13 -0
- package/src/components/segmented-control.tsx +10 -2
- package/src/components/select.tsx +2 -2
- package/src/components/sheet.tsx +2 -2
- package/src/components/shell.context.tsx +1 -1
- package/src/components/sidebar.tsx +1 -1
- package/src/components/table.tsx +4 -1
- package/src/components/text-field.css +2 -2
- package/src/components/text-field.tsx +11 -4
- package/src/components/virtual-menu.tsx +8 -1
- package/src/helpers/map-prop-values.ts +0 -1
- package/src/props/index.ts +6 -0
- package/src/styles/utilities/inset.css +135 -0
- package/styles.css +825 -4
- package/utilities.css +810 -0
- package/dist/esm/chunk-3QWGSRYC.js +0 -3
- package/dist/esm/chunk-3QWGSRYC.js.map +0 -7
- package/dist/esm/chunk-5KQCG7AV.js +0 -3
- package/dist/esm/chunk-5KQCG7AV.js.map +0 -7
- package/dist/esm/chunk-5VYQDA5S.js +0 -3
- package/dist/esm/chunk-7QBNXNEN.js +0 -3
- package/dist/esm/chunk-API4DAPY.js.map +0 -7
- package/dist/esm/chunk-BQOFHLDP.js +0 -3
- package/dist/esm/chunk-BQOFHLDP.js.map +0 -7
- package/dist/esm/chunk-CZ24FOFS.js +0 -3
- package/dist/esm/chunk-CZ24FOFS.js.map +0 -7
- package/dist/esm/chunk-EERKYRYI.js +0 -3
- package/dist/esm/chunk-EERKYRYI.js.map +0 -7
- package/dist/esm/chunk-HZYE46V2.js +0 -2
- package/dist/esm/chunk-HZYE46V2.js.map +0 -7
- package/dist/esm/chunk-IN2WND4B.js +0 -3
- package/dist/esm/chunk-IN2WND4B.js.map +0 -7
- package/dist/esm/chunk-INGT6DB6.js.map +0 -7
- package/dist/esm/chunk-J6B7UCZN.js +0 -3
- package/dist/esm/chunk-J6B7UCZN.js.map +0 -7
- package/dist/esm/chunk-JQMWNI62.js +0 -3
- package/dist/esm/chunk-JQMWNI62.js.map +0 -7
- package/dist/esm/chunk-ODHCDJ3Y.js.map +0 -7
- package/dist/esm/chunk-QKCNGEX4.js +0 -3
- package/dist/esm/chunk-TMINGBSQ.js +0 -3
- package/dist/esm/chunk-TMINGBSQ.js.map +0 -7
- package/dist/esm/chunk-WEBNIUEX.js.map +0 -7
- package/dist/esm/chunk-XF6Z5NKE.js +0 -3
- package/dist/esm/chunk-XF6Z5NKE.js.map +0 -7
- package/dist/esm/chunk-Y44DYJA5.js +0 -6
- package/dist/esm/chunk-Y44DYJA5.js.map +0 -7
- /package/dist/esm/{chunk-KDJM4NQQ.js.map → chunk-2WFN4D52.js.map} +0 -0
- /package/dist/esm/{chunk-NO2JCJWI.js.map → chunk-BJVXB3PN.js.map} +0 -0
- /package/dist/esm/{chunk-BR6Z2CAE.js.map → chunk-C6VGCYFQ.js.map} +0 -0
- /package/dist/esm/{chunk-ZLGOZKB3.js.map → chunk-FYZXC7AL.js.map} +0 -0
- /package/dist/esm/{chunk-XD676L6S.js.map → chunk-HQT32HQ6.js.map} +0 -0
- /package/dist/esm/{chunk-XKYPJTRN.js.map → chunk-I5TPDYJO.js.map} +0 -0
- /package/dist/esm/{chunk-UMQOTGJC.js.map → chunk-M26LLCQC.js.map} +0 -0
- /package/dist/esm/{chunk-WN3WMFAM.js.map → chunk-MLHS2GWL.js.map} +0 -0
- /package/dist/esm/{chunk-7YXHLU4C.js.map → chunk-TANYRHGP.js.map} +0 -0
- /package/dist/esm/{chunk-YOTTLPJ3.js.map → chunk-Y5ITMKC6.js.map} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/components/_internal/shell-resizable.tsx", "../../../../src/helpers/normalize-to-px.ts"],
|
|
4
|
-
"sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport { useLayoutEffect } from 'radix-ui/internal';\nimport { normalizeToPx } from '../../helpers/normalize-to-px.js';\nimport type { PaneName, PaneSizePersistence } from '../shell.types.js';\nimport type { PaneResizeContextValue } from './shell-resize.js';\n\nexport type SizeChangeMeta = { reason: 'init' | 'resize' | 'controlled' };\n\nexport type ResizableOptions = {\n name: PaneName;\n /** The pane's element id, which the handle names in `aria-controls`. */\n elementId: string;\n elementRef: React.RefObject<HTMLElement | null>;\n cssVarName: string;\n orientation: 'vertical' | 'horizontal';\n edge: 'start' | 'end';\n growth: (isRtl: boolean) => 1 | -1;\n expandedSize: number;\n minSize: number;\n maxSize: number;\n resizable: boolean;\n collapsible: boolean;\n size: number | string | undefined;\n defaultSize: number | string | undefined;\n onSizeChange: ((size: number, meta: SizeChangeMeta) => void) | undefined;\n sizeUpdate: 'throttle' | 'debounce' | undefined;\n sizeUpdateMs: number;\n onResize: ((size: number) => void) | undefined;\n onResizeStart: ((size: number) => void) | undefined;\n onResizeEnd: ((size: number) => void) | undefined;\n snapPoints: number[] | undefined;\n snapTolerance: number | undefined;\n collapseThreshold: number | undefined;\n paneId: string | undefined;\n persistence: PaneSizePersistence | undefined;\n /** Whether the pane is presented as an overlay right now. An overlay keeps its designed size and persists nothing. */\n overlaying: boolean;\n /** The same question asked at effect time, for a pane whose presentation is learnt after its first render. */\n overlayingNow: () => boolean;\n requestCollapse: () => void;\n requestToggle: () => void;\n};\n\n/**\n * Clamps to [min, max]. When the two cross (an app passing a maximum computed\n * from a narrow window below its fixed minimum), the minimum wins, as it did\n * in 0.7.\n */\nconst clampTo = (value: number, min: number | undefined, max: number | undefined) => Math.max(min ?? value, Math.min(max ?? value, value));\n\n/**\n * The pane's starting size for the first render, so the server HTML already has it and the first\n * paint is right. Only a number can be known before the pane exists (a percentage needs the\n * Shell's width); the effects below still own the size after mount.\n */\nexport function useInitialPaneSize(size: number | string | undefined, defaultSize: number | string | undefined, minSize: number, maxSize: number) {\n const [initial] = React.useState(() => {\n const value = size ?? defaultSize;\n return typeof value === 'number' && Number.isFinite(value) ? `${clampTo(value, minSize, maxSize)}px` : undefined;\n });\n return initial;\n}\n\n/** Everything a resizable pane shares: size props, persistence, and the handle's context. */\nexport function useResizablePane(options: ResizableOptions): PaneResizeContextValue {\n const { name, elementRef, cssVarName, orientation, minSize, maxSize, resizable, size, defaultSize, paneId, persistence } = options;\n\n // The latest callbacks, so the size emitter does not change identity when a\n // consumer passes an inline function. A controlled `size` is reported again\n // only when the size, the minimum or the maximum changes.\n const latest = React.useRef(options);\n useLayoutEffect(() => {\n latest.current = options;\n });\n\n const debounceRef = React.useRef<ReturnType<typeof setTimeout> | null>(null);\n const throttleRef = React.useRef(0);\n React.useEffect(\n () => () => {\n if (debounceRef.current) clearTimeout(debounceRef.current);\n },\n [],\n );\n const emitSizeChange = React.useCallback((value: number, meta: SizeChangeMeta) => {\n const { onSizeChange, sizeUpdate, sizeUpdateMs } = latest.current;\n if (!onSizeChange) return;\n if (sizeUpdate === 'debounce') {\n if (debounceRef.current) clearTimeout(debounceRef.current);\n debounceRef.current = setTimeout(() => {\n debounceRef.current = null;\n latest.current.onSizeChange?.(value, meta);\n }, sizeUpdateMs);\n return;\n }\n if (sizeUpdate === 'throttle') {\n const now = Date.now();\n if (now - throttleRef.current < sizeUpdateMs) return;\n throttleRef.current = now;\n }\n onSizeChange(value, meta);\n }, []);\n\n const toPx = React.useCallback((value: number | string | undefined) => normalizeToPx(value, orientation === 'vertical' ? 'horizontal' : 'vertical'), [orientation]);\n\n /**\n * The one way a size reaches the pane: the size variable, and the value\n * every handle of this pane announces. Once anything but `expandedSize` has\n * written a size (a default, a controlled value, a persisted value or a\n * resize), the pane owns that size and a new `expandedSize` leaves it alone.\n */\n const ownedRef = React.useRef(false);\n const writeSize = React.useCallback(\n (value: number, own: boolean) => {\n const el = elementRef.current;\n if (!el) return;\n el.style.setProperty(cssVarName, `${value}px`);\n for (const handle of el.querySelectorAll(':scope > .kui-ShellResizer')) handle.setAttribute('aria-valuenow', String(Math.round(value)));\n if (own) ownedRef.current = true;\n },\n [elementRef, cssVarName],\n );\n\n // expandedSize: the size until something else sets one. Declared first, so\n // the effects below win on mount.\n useLayoutEffect(() => {\n if (!ownedRef.current) writeSize(options.expandedSize, false);\n }, [options.expandedSize, writeSize]);\n\n // defaultSize: applied once, on mount.\n useLayoutEffect(() => {\n if (size !== undefined || defaultSize === undefined) return;\n const px = toPx(defaultSize);\n if (typeof px !== 'number' || !Number.isFinite(px)) return;\n const clamped = clampTo(px, minSize, maxSize);\n writeSize(clamped, true);\n emitSizeChange(clamped, { reason: 'init' });\n // An uncontrolled initial value: applied on mount and never re-applied.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // Controlled size. A drag stands until the app passes a different value.\n // Not while the pane is an overlay: an overlay keeps its designed size, and\n // an app's frame-sized limits (a maximum taken from the window) would\n // otherwise squeeze the drawer and report the squeezed size back. The size\n // is applied again when the pane returns to the frame.\n useLayoutEffect(() => {\n if (size === undefined || latest.current.overlayingNow()) return;\n const px = toPx(size);\n if (typeof px !== 'number' || !Number.isFinite(px)) return;\n const clamped = clampTo(px, minSize, maxSize);\n writeSize(clamped, true);\n emitSizeChange(clamped, { reason: 'controlled' });\n }, [size, minSize, maxSize, options.overlaying, toPx, writeSize, emitSizeChange]);\n\n // A persistence adapter from `paneId` when none is given. A given one is read through\n // `latest`, so an inline object (the documented shape) does not reload the size every render.\n const hasPersistence = persistence !== undefined;\n const adapter = React.useMemo<PaneSizePersistence | undefined>(() => {\n if (hasPersistence) {\n return {\n load: () => latest.current.persistence?.load?.(),\n save: (value: number) => latest.current.persistence?.save?.(value),\n };\n }\n if (!paneId) return undefined;\n const key = `kookie-ui:shell:${name}:${paneId}`;\n return {\n load: () => {\n if (typeof window === 'undefined') return undefined;\n try {\n const stored = window.localStorage.getItem(key);\n return stored ? Number(stored) : undefined;\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') console.warn(`Shell.${name}: failed to load persisted size`, err);\n return undefined;\n }\n },\n save: (value: number) => {\n if (typeof window === 'undefined') return;\n try {\n window.localStorage.setItem(key, String(value));\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') console.warn(`Shell.${name}: failed to save persisted size`, err);\n }\n },\n };\n }, [name, paneId, hasPersistence]);\n\n // Persisted size, loaded in a layout effect and clamped, so a reload does\n // not paint the default and then jump. Only where the pane is in the frame:\n // an overlay keeps its designed size.\n useLayoutEffect(() => {\n if (!resizable || !adapter?.load || latest.current.overlayingNow()) return undefined;\n let mounted = true;\n const apply = (value: number | undefined) => {\n if (!mounted || typeof value !== 'number' || !Number.isFinite(value)) return;\n const clamped = clampTo(value, minSize, maxSize);\n writeSize(clamped, true);\n latest.current.onResize?.(clamped);\n };\n const loaded = adapter.load();\n if (loaded instanceof Promise) {\n loaded.then(apply).catch((err) => {\n if (process.env.NODE_ENV !== 'production') console.warn(`Shell.${name}: failed to load persisted size`, err);\n });\n } else {\n apply(loaded);\n }\n return () => {\n mounted = false;\n };\n }, [resizable, adapter, options.overlaying, writeSize, minSize, maxSize, name]);\n\n const onResize = React.useCallback((value: number) => latest.current.onResize?.(value), []);\n const onResizeStart = React.useCallback((value: number) => {\n // A resize makes the size the user's: a new expandedSize no longer moves it.\n ownedRef.current = true;\n latest.current.onResizeStart?.(value);\n }, []);\n const onResizeEnd = React.useCallback(\n (value: number) => {\n latest.current.onResizeEnd?.(value);\n emitSizeChange(value, { reason: 'resize' });\n adapter?.save?.(value);\n },\n [emitSizeChange, adapter],\n );\n const requestCollapse = React.useCallback(() => latest.current.requestCollapse(), []);\n const requestToggle = React.useCallback(() => latest.current.requestToggle(), []);\n\n return React.useMemo(\n () => ({\n containerRef: elementRef,\n controls: options.elementId,\n cssVarName,\n minSize,\n maxSize,\n defaultSize: options.expandedSize,\n orientation,\n edge: options.edge,\n growth: options.growth,\n onResize,\n onResizeStart,\n onResizeEnd,\n target: name,\n collapsible: options.collapsible,\n snapPoints: options.snapPoints,\n snapTolerance: options.snapTolerance ?? 8,\n collapseThreshold: options.collapseThreshold,\n requestCollapse,\n requestToggle,\n }),\n [\n elementRef,\n options.elementId,\n cssVarName,\n minSize,\n maxSize,\n options.expandedSize,\n orientation,\n options.edge,\n options.growth,\n onResize,\n onResizeStart,\n onResizeEnd,\n name,\n options.collapsible,\n options.snapPoints,\n options.snapTolerance,\n options.collapseThreshold,\n requestCollapse,\n requestToggle,\n ],\n );\n}\n\n/** Splits a pane's children into its handles and the rest. */\nexport function splitHandles(children: React.ReactNode, handleType: React.ElementType) {\n const all = React.Children.toArray(children);\n const handles = all.filter((el) => React.isValidElement(el) && el.type === handleType) as React.ReactElement[];\n const content = all.filter((el) => !(React.isValidElement(el) && el.type === handleType));\n return { handles, content };\n}\n", "/**\n * Normalize CSS length values to pixels.\n * Supports: px, rem, %, and bare numbers.\n *\n * @param value - The value to normalize (number, string, or undefined)\n * @param orientation - 'horizontal' for width-based % or 'vertical' for height-based %\n * @returns The value in pixels, or undefined if invalid\n */\nexport function normalizeToPx(\n value: number | string | undefined,\n orientation: 'horizontal' | 'vertical' = 'horizontal',\n): number | undefined {\n if (value == null) return undefined;\n if (typeof value === 'number' && Number.isFinite(value)) return value;\n\n const str = String(value).trim();\n if (!str) return undefined;\n\n // px: direct parse\n if (str.endsWith('px')) return Number.parseFloat(str);\n\n // rem: multiply by root font size\n if (str.endsWith('rem')) {\n const rem = Number.parseFloat(getComputedStyle(document.documentElement).fontSize || '16') || 16;\n return Number.parseFloat(str) * rem;\n }\n\n // %: calculate based on viewport dimension\n if (str.endsWith('%')) {\n const pct = Number.parseFloat(str);\n const base =\n orientation === 'horizontal'\n ? document.documentElement.clientWidth || window.innerWidth || 0\n : document.documentElement.clientHeight || window.innerHeight || 0;\n return (pct / 100) * base;\n }\n\n // Bare number-like string\n const n = Number.parseFloat(str);\n return Number.isFinite(n) ? n : undefined;\n}\n\n"],
|
|
5
|
-
"mappings": "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
|
|
6
|
-
"names": ["shell_resizable_exports", "__export", "splitHandles", "useInitialPaneSize", "useResizablePane", "__toCommonJS", "React", "import_internal", "normalizeToPx", "value", "orientation", "str", "rem", "pct", "base", "n", "clampTo", "value", "min", "max", "useInitialPaneSize", "size", "defaultSize", "minSize", "maxSize", "initial", "useResizablePane", "options", "name", "elementRef", "cssVarName", "orientation", "resizable", "paneId", "persistence", "latest", "debounceRef", "throttleRef", "emitSizeChange", "meta", "onSizeChange", "sizeUpdate", "sizeUpdateMs", "now", "toPx", "normalizeToPx", "ownedRef", "writeSize", "own", "el", "handle", "px", "clamped", "hasPersistence", "adapter", "key", "stored", "mounted", "apply", "loaded", "err", "onResize", "onResizeStart", "onResizeEnd", "requestCollapse", "requestToggle", "splitHandles", "children", "handleType", "all", "handles", "content"]
|
|
4
|
+
"sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport { useLayoutEffect } from 'radix-ui/internal';\nimport { normalizeToPx } from '../../helpers/normalize-to-px.js';\nimport type { PaneName, PaneSizePersistence } from '../shell.types.js';\nimport type { PaneResizeContextValue } from './shell-resize.js';\n\nexport type SizeChangeMeta = { reason: 'init' | 'resize' | 'controlled' };\n\nexport type ResizableOptions = {\n name: PaneName;\n /** The pane's element id, which the handle names in `aria-controls`. */\n elementId: string;\n elementRef: React.RefObject<HTMLElement | null>;\n cssVarName: string;\n orientation: 'vertical' | 'horizontal';\n edge: 'start' | 'end';\n growth: (isRtl: boolean) => 1 | -1;\n expandedSize: number;\n minSize: number;\n maxSize: number;\n resizable: boolean;\n collapsible: boolean;\n size: number | string | undefined;\n defaultSize: number | string | undefined;\n onSizeChange: ((size: number, meta: SizeChangeMeta) => void) | undefined;\n sizeUpdate: 'throttle' | 'debounce' | undefined;\n sizeUpdateMs: number;\n onResize: ((size: number) => void) | undefined;\n onResizeStart: ((size: number) => void) | undefined;\n onResizeEnd: ((size: number) => void) | undefined;\n snapPoints: number[] | undefined;\n snapTolerance: number | undefined;\n collapseThreshold: number | undefined;\n paneId: string | undefined;\n persistence: PaneSizePersistence | undefined;\n /** Whether the pane is presented as an overlay right now. An overlay keeps its designed size and persists nothing. */\n overlaying: boolean;\n /** The same question asked at effect time, for a pane whose presentation is learnt after its first render. */\n overlayingNow: () => boolean;\n requestCollapse: () => void;\n requestToggle: () => void;\n};\n\n/**\n * Clamps to [min, max]. When the two cross (an app passing a maximum computed\n * from a narrow window below its fixed minimum), the minimum wins, as it did\n * in 0.7.\n */\nconst clampTo = (value: number, min: number | undefined, max: number | undefined) => Math.max(min ?? value, Math.min(max ?? value, value));\n\n/**\n * The pane's starting size for the first render, so the server HTML already has it and the first\n * paint is right. Only a number can be known before the pane exists (a percentage needs the\n * Shell's width); the effects below still own the size after mount.\n */\nexport function useInitialPaneSize(size: number | string | undefined, defaultSize: number | string | undefined, minSize: number, maxSize: number) {\n const [initial] = React.useState(() => {\n const value = size ?? defaultSize;\n return typeof value === 'number' && Number.isFinite(value) ? `${clampTo(value, minSize, maxSize)}px` : undefined;\n });\n return initial;\n}\n\n/** Everything a resizable pane shares: size props, persistence, and the handle's context. */\nexport function useResizablePane(options: ResizableOptions): PaneResizeContextValue {\n const { name, elementRef, cssVarName, orientation, minSize, maxSize, resizable, size, defaultSize, paneId, persistence } = options;\n\n // The latest callbacks, so the size emitter does not change identity when a\n // consumer passes an inline function. A controlled `size` is reported again\n // only when the size, the minimum or the maximum changes.\n const latest = React.useRef(options);\n useLayoutEffect(() => {\n latest.current = options;\n });\n\n const debounceRef = React.useRef<ReturnType<typeof setTimeout> | null>(null);\n const throttleRef = React.useRef(0);\n React.useEffect(\n () => () => {\n if (debounceRef.current) clearTimeout(debounceRef.current);\n },\n [],\n );\n const emitSizeChange = React.useCallback((value: number, meta: SizeChangeMeta) => {\n const { onSizeChange, sizeUpdate, sizeUpdateMs } = latest.current;\n if (!onSizeChange) return;\n if (sizeUpdate === 'debounce') {\n if (debounceRef.current) clearTimeout(debounceRef.current);\n debounceRef.current = setTimeout(() => {\n debounceRef.current = null;\n latest.current.onSizeChange?.(value, meta);\n }, sizeUpdateMs);\n return;\n }\n if (sizeUpdate === 'throttle') {\n const now = Date.now();\n if (now - throttleRef.current < sizeUpdateMs) return;\n throttleRef.current = now;\n }\n onSizeChange(value, meta);\n }, []);\n\n const toPx = React.useCallback((value: number | string | undefined) => normalizeToPx(value, orientation === 'vertical' ? 'horizontal' : 'vertical'), [orientation]);\n\n /**\n * The one way a size reaches the pane: the size variable, and the value\n * every handle of this pane announces. Once anything but `expandedSize` has\n * written a size (a default, a controlled value, a persisted value or a\n * resize), the pane owns that size and a new `expandedSize` leaves it alone.\n */\n const ownedRef = React.useRef(false);\n const writeSize = React.useCallback(\n (value: number, own: boolean) => {\n const el = elementRef.current;\n if (!el) return;\n el.style.setProperty(cssVarName, `${value}px`);\n for (const handle of el.querySelectorAll(':scope > .kui-ShellResizer')) handle.setAttribute('aria-valuenow', String(Math.round(value)));\n if (own) ownedRef.current = true;\n },\n [elementRef, cssVarName],\n );\n\n // expandedSize: the size until something else sets one. Declared first, so\n // the effects below win on mount.\n useLayoutEffect(() => {\n if (!ownedRef.current) writeSize(options.expandedSize, false);\n }, [options.expandedSize, writeSize]);\n\n // defaultSize: applied once, on mount.\n useLayoutEffect(() => {\n if (size !== undefined || defaultSize === undefined) return;\n const px = toPx(defaultSize);\n if (typeof px !== 'number' || !Number.isFinite(px)) return;\n const clamped = clampTo(px, minSize, maxSize);\n writeSize(clamped, true);\n emitSizeChange(clamped, { reason: 'init' });\n // An uncontrolled initial value: applied on mount and never re-applied.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // Controlled size. A drag stands until the app passes a different value.\n // Not while the pane is an overlay: an overlay keeps its designed size, and\n // an app's frame-sized limits (a maximum taken from the window) would\n // otherwise squeeze the drawer and report the squeezed size back. The size\n // is applied again when the pane returns to the frame.\n useLayoutEffect(() => {\n if (size === undefined || latest.current.overlayingNow()) return;\n const px = toPx(size);\n if (typeof px !== 'number' || !Number.isFinite(px)) return;\n const clamped = clampTo(px, minSize, maxSize);\n writeSize(clamped, true);\n emitSizeChange(clamped, { reason: 'controlled' });\n }, [size, minSize, maxSize, options.overlaying, toPx, writeSize, emitSizeChange]);\n\n // A persistence adapter from `paneId` when none is given. A given one is read through\n // `latest`, so an inline object (the documented shape) does not reload the size every render.\n const hasPersistence = persistence !== undefined;\n const adapter = React.useMemo<PaneSizePersistence | undefined>(() => {\n if (hasPersistence) {\n return {\n load: () => latest.current.persistence?.load?.(),\n save: (value: number) => latest.current.persistence?.save?.(value),\n };\n }\n if (!paneId) return undefined;\n const key = `kookie-ui:shell:${name}:${paneId}`;\n return {\n load: () => {\n if (typeof window === 'undefined') return undefined;\n try {\n const stored = window.localStorage.getItem(key);\n return stored ? Number(stored) : undefined;\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') console.warn(`Shell.${name}: failed to load persisted size`, err);\n return undefined;\n }\n },\n save: (value: number) => {\n if (typeof window === 'undefined') return;\n try {\n window.localStorage.setItem(key, String(value));\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') console.warn(`Shell.${name}: failed to save persisted size`, err);\n }\n },\n };\n }, [name, paneId, hasPersistence]);\n\n // Persisted size, loaded in a layout effect and clamped, so a reload does\n // not paint the default and then jump. Only where the pane is in the frame:\n // an overlay keeps its designed size.\n useLayoutEffect(() => {\n if (!resizable || !adapter?.load || latest.current.overlayingNow()) return undefined;\n let mounted = true;\n const apply = (value: number | undefined) => {\n if (!mounted || typeof value !== 'number' || !Number.isFinite(value)) return;\n const clamped = clampTo(value, minSize, maxSize);\n writeSize(clamped, true);\n latest.current.onResize?.(clamped);\n };\n const loaded = adapter.load();\n if (loaded instanceof Promise) {\n loaded.then(apply).catch((err) => {\n if (process.env.NODE_ENV !== 'production') console.warn(`Shell.${name}: failed to load persisted size`, err);\n });\n } else {\n apply(loaded);\n }\n return () => {\n mounted = false;\n };\n }, [resizable, adapter, options.overlaying, writeSize, minSize, maxSize, name]);\n\n // What the handle announces before any effect has run: the same starting size the pane's\n // first render uses, so the server HTML already states a value.\n const [startSize] = React.useState(() => {\n const value = size ?? defaultSize;\n return typeof value === 'number' && Number.isFinite(value) ? clampTo(value, minSize, maxSize) : options.expandedSize;\n });\n\n const onResize = React.useCallback((value: number) => latest.current.onResize?.(value), []);\n const onResizeStart = React.useCallback((value: number) => {\n // A resize makes the size the user's: a new expandedSize no longer moves it.\n ownedRef.current = true;\n latest.current.onResizeStart?.(value);\n }, []);\n const onResizeEnd = React.useCallback(\n (value: number) => {\n latest.current.onResizeEnd?.(value);\n emitSizeChange(value, { reason: 'resize' });\n adapter?.save?.(value);\n },\n [emitSizeChange, adapter],\n );\n const requestCollapse = React.useCallback(() => latest.current.requestCollapse(), []);\n const requestToggle = React.useCallback(() => latest.current.requestToggle(), []);\n\n return React.useMemo(\n () => ({\n containerRef: elementRef,\n controls: options.elementId,\n cssVarName,\n minSize,\n maxSize,\n defaultSize: options.expandedSize,\n startSize,\n orientation,\n edge: options.edge,\n growth: options.growth,\n onResize,\n onResizeStart,\n onResizeEnd,\n target: name,\n collapsible: options.collapsible,\n snapPoints: options.snapPoints,\n snapTolerance: options.snapTolerance ?? 8,\n collapseThreshold: options.collapseThreshold,\n requestCollapse,\n requestToggle,\n }),\n [\n elementRef,\n options.elementId,\n cssVarName,\n minSize,\n maxSize,\n options.expandedSize,\n startSize,\n orientation,\n options.edge,\n options.growth,\n onResize,\n onResizeStart,\n onResizeEnd,\n name,\n options.collapsible,\n options.snapPoints,\n options.snapTolerance,\n options.collapseThreshold,\n requestCollapse,\n requestToggle,\n ],\n );\n}\n\n/** Splits a pane's children into its handles and the rest. */\nexport function splitHandles(children: React.ReactNode, handleType: React.ElementType) {\n const all = React.Children.toArray(children);\n const handles = all.filter((el) => React.isValidElement(el) && el.type === handleType) as React.ReactElement[];\n const content = all.filter((el) => !(React.isValidElement(el) && el.type === handleType));\n return { handles, content };\n}\n", "/**\n * Normalize CSS length values to pixels.\n * Supports: px, rem, %, and bare numbers.\n *\n * @param value - The value to normalize (number, string, or undefined)\n * @param orientation - 'horizontal' for width-based % or 'vertical' for height-based %\n * @returns The value in pixels, or undefined if invalid\n */\nexport function normalizeToPx(\n value: number | string | undefined,\n orientation: 'horizontal' | 'vertical' = 'horizontal',\n): number | undefined {\n if (value == null) return undefined;\n if (typeof value === 'number' && Number.isFinite(value)) return value;\n\n const str = String(value).trim();\n if (!str) return undefined;\n\n // px: direct parse\n if (str.endsWith('px')) return Number.parseFloat(str);\n\n // rem: multiply by root font size\n if (str.endsWith('rem')) {\n const rem = Number.parseFloat(getComputedStyle(document.documentElement).fontSize || '16') || 16;\n return Number.parseFloat(str) * rem;\n }\n\n // %: calculate based on viewport dimension\n if (str.endsWith('%')) {\n const pct = Number.parseFloat(str);\n const base =\n orientation === 'horizontal'\n ? document.documentElement.clientWidth || window.innerWidth || 0\n : document.documentElement.clientHeight || window.innerHeight || 0;\n return (pct / 100) * base;\n }\n\n // Bare number-like string\n const n = Number.parseFloat(str);\n return Number.isFinite(n) ? n : undefined;\n}\n\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["shell_resizable_exports", "__export", "splitHandles", "useInitialPaneSize", "useResizablePane", "__toCommonJS", "React", "import_internal", "normalizeToPx", "value", "orientation", "str", "rem", "pct", "base", "n", "clampTo", "value", "min", "max", "useInitialPaneSize", "size", "defaultSize", "minSize", "maxSize", "initial", "useResizablePane", "options", "name", "elementRef", "cssVarName", "orientation", "resizable", "paneId", "persistence", "latest", "debounceRef", "throttleRef", "emitSizeChange", "meta", "onSizeChange", "sizeUpdate", "sizeUpdateMs", "now", "toPx", "normalizeToPx", "ownedRef", "writeSize", "own", "el", "handle", "px", "clamped", "hasPersistence", "adapter", "key", "stored", "mounted", "apply", "loaded", "err", "startSize", "onResize", "onResizeStart", "onResizeEnd", "requestCollapse", "requestToggle", "splitHandles", "children", "handleType", "all", "handles", "content"]
|
|
7
7
|
}
|
|
@@ -8,6 +8,8 @@ export interface PaneResizeContextValue {
|
|
|
8
8
|
minSize: number;
|
|
9
9
|
maxSize: number;
|
|
10
10
|
defaultSize: number;
|
|
11
|
+
/** The size the pane starts at, for the handle's first `aria-valuenow`. */
|
|
12
|
+
startSize: number;
|
|
11
13
|
orientation: 'vertical' | 'horizontal';
|
|
12
14
|
edge: 'start' | 'end';
|
|
13
15
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell-resize.d.ts","sourceRoot":"","sources":["../../../../src/components/_internal/shell-resize.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAClD,wDAAwD;IACxD,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,UAAU,GAAG,YAAY,CAAC;IACvC,IAAI,EAAE,OAAO,GAAG,KAAK,CAAC;IACtB;;;;OAIG;IACH,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACnC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,MAAM,EAAE,QAAQ,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED,eAAO,MAAM,iBAAiB,8CAA2D,CAAC;AAE1F,wBAAgB,aAAa,2BAI5B"}
|
|
1
|
+
{"version":3,"file":"shell-resize.d.ts","sourceRoot":"","sources":["../../../../src/components/_internal/shell-resize.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAClD,wDAAwD;IACxD,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,UAAU,GAAG,YAAY,CAAC;IACvC,IAAI,EAAE,OAAO,GAAG,KAAK,CAAC;IACtB;;;;OAIG;IACH,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACnC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,MAAM,EAAE,QAAQ,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED,eAAO,MAAM,iBAAiB,8CAA2D,CAAC;AAE1F,wBAAgB,aAAa,2BAI5B"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/components/_internal/shell-resize.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nimport type { PaneName } from '../shell.types.js';\n\nexport interface PaneResizeContextValue {\n containerRef: React.RefObject<HTMLElement | null>;\n /** The pane the handle resizes, for `aria-controls`. */\n controls: string;\n cssVarName: string;\n minSize: number;\n maxSize: number;\n defaultSize: number;\n orientation: 'vertical' | 'horizontal';\n edge: 'start' | 'end';\n /**\n * +1 when moving the pointer toward the end of its axis grows the pane, -1\n * when it shrinks it. Read once when a drag starts, with the pane's\n * resolved direction, so no move pays for a style read.\n */\n growth: (isRtl: boolean) => 1 | -1;\n onResize?: (size: number) => void;\n onResizeStart?: (size: number) => void;\n onResizeEnd?: (size: number) => void;\n target: PaneName;\n collapsible: boolean;\n snapPoints?: number[];\n snapTolerance: number;\n collapseThreshold?: number;\n requestCollapse?: () => void;\n requestToggle?: () => void;\n}\n\nexport const PaneResizeContext = React.createContext<PaneResizeContextValue | null>(null);\n\nexport function usePaneResize() {\n const ctx = React.useContext(PaneResizeContext);\n if (!ctx) throw new Error('Shell.Handle must be used within a resizable pane');\n return ctx;\n}\n"],
|
|
5
|
-
"mappings": ";0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,uBAAAE,EAAA,kBAAAC,IAAA,eAAAC,EAAAJ,GAAA,IAAAK,EAAuB,
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nimport type { PaneName } from '../shell.types.js';\n\nexport interface PaneResizeContextValue {\n containerRef: React.RefObject<HTMLElement | null>;\n /** The pane the handle resizes, for `aria-controls`. */\n controls: string;\n cssVarName: string;\n minSize: number;\n maxSize: number;\n defaultSize: number;\n /** The size the pane starts at, for the handle's first `aria-valuenow`. */\n startSize: number;\n orientation: 'vertical' | 'horizontal';\n edge: 'start' | 'end';\n /**\n * +1 when moving the pointer toward the end of its axis grows the pane, -1\n * when it shrinks it. Read once when a drag starts, with the pane's\n * resolved direction, so no move pays for a style read.\n */\n growth: (isRtl: boolean) => 1 | -1;\n onResize?: (size: number) => void;\n onResizeStart?: (size: number) => void;\n onResizeEnd?: (size: number) => void;\n target: PaneName;\n collapsible: boolean;\n snapPoints?: number[];\n snapTolerance: number;\n collapseThreshold?: number;\n requestCollapse?: () => void;\n requestToggle?: () => void;\n}\n\nexport const PaneResizeContext = React.createContext<PaneResizeContextValue | null>(null);\n\nexport function usePaneResize() {\n const ctx = React.useContext(PaneResizeContext);\n if (!ctx) throw new Error('Shell.Handle must be used within a resizable pane');\n return ctx;\n}\n"],
|
|
5
|
+
"mappings": ";0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,uBAAAE,EAAA,kBAAAC,IAAA,eAAAC,EAAAJ,GAAA,IAAAK,EAAuB,oBAiCVH,EAA0B,gBAA6C,IAAI,EAEjF,SAASC,GAAgB,CAC9B,IAAMG,EAAY,aAAWJ,CAAiB,EAC9C,GAAI,CAACI,EAAK,MAAM,IAAI,MAAM,mDAAmD,EAC7E,OAAOA,CACT",
|
|
6
6
|
"names": ["shell_resize_exports", "__export", "PaneResizeContext", "usePaneResize", "__toCommonJS", "React", "ctx"]
|
|
7
7
|
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
"use strict";"use client";var nn=Object.create;var ye=Object.defineProperty;var rn=Object.getOwnPropertyDescriptor;var on=Object.getOwnPropertyNames;var an=Object.getPrototypeOf,sn=Object.prototype.hasOwnProperty;var ln=(e,t)=>{for(var n in t)ye(e,n,{get:t[n],enumerable:!0})},ot=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of on(t))!sn.call(e,o)&&o!==n&&ye(e,o,{get:()=>t[o],enumerable:!(r=rn(t,o))||r.enumerable});return e};var D=(e,t,n)=>(n=e!=null?nn(an(e)):{},ot(t||!e||!e.__esModule?ye(n,"default",{value:e,enumerable:!0}):n,e)),un=e=>ot(ye({},"__esModule",{value:!0}),e);var Qn={};ln(Qn,{Sidebar:()=>Xe});module.exports=un(Qn);var q=D(require("react")),Zt=D(require("classnames")),en=require("radix-ui/internal");var Se=D(require("react")),Be=Se.createContext(null);function it(){let e=Se.useContext(Be);if(!e)throw new Error("Shell.Handle must be used within a resizable pane");return e}var z=D(require("react")),at=require("radix-ui/internal"),st=D(require("classnames"));var oe=z.forwardRef(({className:e,children:t,...n},r)=>{let{containerRef:o,controls:a,cssVarName:i,minSize:c,maxSize:l,defaultSize:s,orientation:u,edge:b,growth:f,onResize:k,onResizeStart:F,onResizeEnd:B,snapPoints:N,snapTolerance:x,collapseThreshold:V,collapsible:j,target:W,requestCollapse:te,requestToggle:H}=it(),$=z.useRef(null),_=z.useCallback(d=>{$.current=d,typeof r=="function"?r(d):r&&(r.current=d)},[r]),w=z.useRef(null);z.useEffect(()=>()=>{w.current?.(),w.current=null},[]);let p=z.useCallback(()=>{let d=o.current;if(!d)return s;let y=Number.parseFloat(getComputedStyle(d).getPropertyValue(i));return Number.isFinite(y)?y:s},[o,i,s]),P=z.useCallback(()=>{let d=o.current,y=$.current,h=d?.closest(".kui-ShellRoot")?.getBoundingClientRect();if(!d||!h||!y)return l;let R=d.getBoundingClientRect(),O=y.getBoundingClientRect(),A=f(getComputedStyle(d).direction==="rtl"),v;u==="vertical"?v=A>0?h.right-R.left:R.right-h.left:v=A>0?h.bottom-R.top:R.bottom-h.top;let J=u==="vertical"?O.width:O.height;return!(h.width>0&&h.height>0)||!Number.isFinite(v)?l:Math.max(c,Math.min(l,Math.round(v-J)))},[o,f,l,c,u]),T=()=>{$.current?.setAttribute("aria-valuemax",String(P()))};(0,at.useLayoutEffect)(()=>{$.current?.setAttribute("aria-valuenow",String(Math.round(p())))},[p]);let C=(d,y)=>{d.style.setProperty(i,`${y}px`),$.current?.setAttribute("aria-valuenow",String(Math.round(y)))},U=W.charAt(0).toUpperCase()+W.slice(1);return z.createElement("div",{ref:_,className:(0,st.default)("kui-ShellResizer",e),"data-orientation":u,"data-edge":b,role:"separator",tabIndex:0,"aria-label":`Resize ${U} pane`,"aria-controls":a,"aria-orientation":u,"aria-valuemin":c,"aria-valuemax":l,...n,onPointerDown:d=>{n.onPointerDown?.(d);let y=o.current;if(!y||d.defaultPrevented||d.button!==0)return;d.preventDefault();let h=d.currentTarget,R=d.pointerId;w.current?.();try{h.setPointerCapture(R)}catch{}let O=getComputedStyle(y),A=Number.parseFloat(O.getPropertyValue(i)),v=Number.isFinite(A)?A:s,J=u==="vertical"?d.clientX:d.clientY,m=f(O.direction==="rtl"),K=P();h.setAttribute("aria-valuemax",String(K));let G=L=>Math.min(Math.max(L,c),K);y.setAttribute("data-resizing",""),h.setAttribute("data-dragging","");let Q=document.body,Ve=Q.style.cursor,Le=Q.style.userSelect;Q.style.cursor=u==="vertical"?"col-resize":"row-resize",Q.style.userSelect="none",F?.(v);let re=v,Me=v,Y=0,ce=null,Je=()=>{if(Y=0,ce===null)return;let L=ce;ce=null,k?.(L)},Ze=null,et=!1,tn=(L,se)=>{if(L.type===se)et=!0;else if(et)return!1;return!0},Z=L=>{if(!tn(L,"pointermove")||L===Ze)return;Ze=L;let se=u==="vertical"?L.clientX:L.clientY;Me=v+(se-J)*m,re=G(Me),C(y,re),ce=re,Y||(Y=requestAnimationFrame(Je))},be=()=>{Y&&cancelAnimationFrame(Y),Y=0;try{h.releasePointerCapture(R)}catch{}window.removeEventListener("pointermove",Z),document.removeEventListener("pointermove",Z),window.removeEventListener("mousemove",Z),document.removeEventListener("mousemove",Z),h.removeEventListener("pointermove",Z),window.removeEventListener("pointerup",I),document.removeEventListener("pointerup",I),window.removeEventListener("mouseup",I),document.removeEventListener("mouseup",I),window.removeEventListener("pointercancel",I),document.removeEventListener("pointercancel",I),window.removeEventListener("keydown",tt),h.removeEventListener("lostpointercapture",I),y.removeAttribute("data-resizing"),h.removeAttribute("data-dragging"),Q.style.cursor=Ve,Q.style.userSelect=Le,w.current=null},Ae=!1,I=()=>{if(Ae)return;if(Ae=!0,Y&&cancelAnimationFrame(Y),Je(),j&&typeof V=="number"&&Me<=V){C(y,v),k?.(v),be(),te?.(),B?.(v);return}let L=re;if(N&&N.length){let se=N.reduce((nt,rt)=>Math.abs(rt-re)<Math.abs(nt-re)?rt:nt,N[0]);Math.abs(se-re)<=x&&(L=G(se),C(y,L),k?.(L))}B?.(L),be()},tt=L=>{L.key==="Escape"&&(Y&&cancelAnimationFrame(Y),Y=0,ce=null,C(y,v),k?.(v),Ae=!0,B?.(v),be())};window.addEventListener("pointermove",Z),document.addEventListener("pointermove",Z),window.addEventListener("mousemove",Z),document.addEventListener("mousemove",Z),h.addEventListener("pointermove",Z),window.addEventListener("pointerup",I),document.addEventListener("pointerup",I),window.addEventListener("mouseup",I),document.addEventListener("mouseup",I),window.addEventListener("pointercancel",I),document.addEventListener("pointercancel",I),window.addEventListener("keydown",tt),h.addEventListener("lostpointercapture",I),w.current=be},onDoubleClick:d=>{n.onDoubleClick?.(d),!d.defaultPrevented&&j&&H?.()},onFocus:d=>{n.onFocus?.(d),T()},onKeyDown:d=>{n.onKeyDown?.(d);let y=o.current;if(!y||d.defaultPrevented)return;if(d.key==="Enter"){j&&H&&(d.preventDefault(),H());return}let h=p(),R=P(),O=v=>Math.min(Math.max(v,c),R),A;if(d.key==="Home")A=O(c);else if(d.key==="End")A=O(R);else{let v=u==="vertical"?d.key==="ArrowRight"?1:d.key==="ArrowLeft"?-1:0:d.key==="ArrowDown"?1:d.key==="ArrowUp"?-1:0;if(v===0)return;let J=d.shiftKey?32:8;A=O(h+v*J*f(getComputedStyle(y).direction==="rtl"))}d.preventDefault(),F?.(h),C(y,A),k?.(A),B?.(A)}},t)});oe.displayName="Shell.Handle";var cn=z.forwardRef((e,t)=>z.createElement(oe,{...e,ref:t}));cn.displayName="Shell.Panel.Handle";var he=z.forwardRef((e,t)=>z.createElement(oe,{...e,ref:t}));he.displayName="Shell.Sidebar.Handle";var dn=z.forwardRef((e,t)=>z.createElement(oe,{...e,ref:t}));dn.displayName="Shell.Inspector.Handle";var pn=z.forwardRef((e,t)=>z.createElement(oe,{...e,ref:t}));pn.displayName="Shell.Bottom.Handle";var E=D(require("react")),Pe=require("radix-ui/internal");var pe=D(require("react"));var lt={xs:"(min-width: 520px)",sm:"(min-width: 768px)",md:"(min-width: 1024px)",lg:"(min-width: 1280px)",xl:"(min-width: 1640px)"},ve=["initial","xs","sm","md","lg","xl"];var fn=Object.entries(lt),He=null,de=new Set,ie=null;function Oe(){return He??(He=fn.map(([e,t])=>[e,window.matchMedia(t)])),He}function xe(){let e="initial";for(let[t,n]of Oe())n.matches&&(e=t);return e}function Re(){let e=xe();e!==ie&&(ie=e,de.forEach(t=>t()))}function ut(e){if(typeof window>"u")return()=>{};if(de.size===0){ie=xe();for(let[,t]of Oe())typeof t.addEventListener=="function"?t.addEventListener("change",Re):t.addListener?.(Re)}return de.add(e),()=>{if(de.delete(e),!(de.size>0)){for(let[,t]of Oe())try{typeof t.removeEventListener=="function"?t.removeEventListener("change",Re):t.removeListener?.(Re)}catch{}ie=null}}}function mn(){return typeof window>"u"?"initial":(ie??(ie=xe()),ie)}function Pn(){return"initial"}function fe(){return typeof window>"u"?"initial":xe()}var gn=()=>!0,bn=()=>!1,ct=()=>()=>{},yn=()=>"initial";function dt(e=!0){let t=pe.useSyncExternalStore(e?ut:ct,e?mn:yn,Pn),n=pe.useSyncExternalStore(e?ut:ct,gn,bn);return pe.useMemo(()=>({breakpoint:t,ready:n}),[t,n])}var ee=D(require("react")),ft=require("radix-ui/internal");function pt(e){return typeof e=="object"&&e!==null}function me(e,t){let n={},r=null;for(let o of ve){if(e!==void 0&&!pt(e)){n[o]=e;continue}let a=pt(e)?e[o]:void 0;a!==void 0&&(r={value:a}),n[o]=r?r.value:t(o)}return n}function le(e){let t=e.initial;return ve.every(n=>e[n]===t)?t:void 0}function Fe(e,t){let n=le(t);if(n!==void 0)return{[`data-${e}`]:n};let r={};for(let o of ve)r[`data-${e}-${o}`]=t[o];return r}function $e(e){return typeof e=="object"&&e!==null?JSON.stringify(e):String(e)}var or=me("fixed",()=>"fixed");function Ie(e){e.version+=1;for(let t of e.listeners)t()}function Sn(e,t){return e.listeners.add(t),()=>{e.listeners.delete(t)}}var hn=ee.createContext(null);function mt(e){let t=ee.useContext(hn);if(!t)throw new Error(`${e} must be used within <Shell.Root>`);return t}function Pt(e,t){let n=ee.useCallback(r=>Sn(e,r),[e]);return ee.useSyncExternalStore(n,()=>e.peek===t,()=>!1)}var vn=ee.createContext(null);function gt(e,t){let n=ee.useContext(vn);if(!n)throw new Error("Shell panes must be used within <Shell.Root>");let{registerOffFrame:r,unregisterOffFrame:o}=n;(0,ft.useLayoutEffect)(()=>{if(!t)return r(e),()=>o(e)},[e,t,r,o])}var je=e=>typeof e=="object"&&e!==null;function xn(e){for(let t of["initial","xs","sm","md","lg","xl"]){let n=e[t];if(n!==void 0)return n}return"closed"}function bt(e){let{name:t,label:n,propNames:r,presentationTable:o,builtIn:a}=e,i=mt(`Shell.${n}`),c=E.useId(),l=e.id??`shell-${t}${c}`,s=e.controlled!==void 0,u=je(e.controlled);u&&(`${n}${r.controlled}${r.default}`,void 0);let b=u?e.controlled:void 0,f=b??(je(e.defaultValue)?e.defaultValue:void 0),k=$e(f),[F,B]=E.useState(()=>typeof e.defaultValue=="string"?e.defaultValue:"auto"),N=E.useMemo(()=>b?me(b,()=>xn(b)):me(f,m=>a(o[m])),[k,u,o,a]),x=F;s&&(x=b?"auto":e.controlled);let V=le(o)===void 0||x==="auto"&&le(N)===void 0,{breakpoint:j,ready:W}=dt(V),te=m=>{let K=le(m);return K!==void 0?K:W?m[j]:void 0},H=x==="auto"?te(N):x,$=te(o),_=$==="overlay",w=H===void 0?void 0:H!=="closed",p=w===!0&&_,P=e.defaultValue,T=E.useRef({state:x,value:H,autoTable:N,defaultValue:P,controlled:s,onChange:e.onChange,toggleNext:e.toggleNext});(0,Pe.useLayoutEffect)(()=>{T.current={state:x,value:H,autoTable:N,defaultValue:P,controlled:s,onChange:e.onChange,toggleNext:e.toggleNext}});let C=E.useCallback(()=>{let m=T.current;return m.value!==void 0?m.value:m.state==="auto"?m.autoTable[fe()]:void 0},[]),U=E.useCallback(()=>{let m=T.current;return typeof m.defaultValue=="string"?m.defaultValue:je(m.defaultValue)?m.autoTable[fe()]:void 0},[]),d=E.useCallback((m,K)=>{let G=T.current;C()!==m&&(G.onChange?.(m,K),G.controlled||B(m))},[C]),y=E.useCallback(m=>{let K=T.current,G=C()??"closed",Q=K.toggleNext?K.toggleNext(G,U()):G==="closed"?"open":"closed";d(Q,m)},[d,C,U]),h=E.useRef(null),R=E.useCallback(m=>{h.current=m},[]);(0,Pe.useLayoutEffect)(()=>{let m={name:t,id:l,el:h.current,value:H,presentation:$,presentationTable:o,overlayLive:p,size:e.size,setValue:d,toggle:y};return i.entries.set(t,m),Ie(i),()=>{i.entries.get(t)===m&&(i.entries.delete(t),Ie(i))}},[i,t,l,H,$,o,p,e.size,d,y]);let O=E.useRef({onExpand:e.onExpand,onCollapse:e.onCollapse});(0,Pe.useLayoutEffect)(()=>{O.current={onExpand:e.onExpand,onCollapse:e.onCollapse}});let A=E.useRef({state:x,shown:w});E.useEffect(()=>{let m=A.current;m.state!==x&&m.shown!==void 0&&w!==void 0&&m.shown!==w&&(w?O.current.onExpand?.():O.current.onCollapse?.()),A.current={state:x,shown:w}},[x,w]),(0,Pe.useLayoutEffect)(()=>{},[]);let v=E.useRef(s);E.useEffect(()=>{},[s,n,r.controlled]);let J=Pt(i,t)&&w===!1&&!_;return{store:i,id:l,state:x,value:H,shown:w,presentation:$,overlaying:_,overlayLive:p,peeking:J,ready:W,breakpoint:j,autoTable:N,setValue:d,toggle:y,defaultHereNow:U,setElement:R}}function yt(e,t){let{state:n,value:r,presentation:o,shown:a}=e;return{...t,"data-state":n,...n==="auto"?Fe("auto",e.autoTable):{},"data-presentation":o,"data-mode":r===void 0?void 0:r==="closed"?"collapsed":"expanded","data-open":o==="stacked"&&a?"":void 0,"data-peek":e.peeking?"":void 0}}function St(e,t){let n=$e(e),r=E.useMemo(()=>me(e,()=>t),[n,t]),o=E.useMemo(()=>le(r)===void 0?Fe("presentation",r):{},[r]);return{table:r,attributes:o}}var S=D(require("react")),ue=require("radix-ui/internal");function ht(e,t="horizontal"){if(e==null)return;if(typeof e=="number"&&Number.isFinite(e))return e;let n=String(e).trim();if(!n)return;if(n.endsWith("px"))return Number.parseFloat(n);if(n.endsWith("rem")){let o=Number.parseFloat(getComputedStyle(document.documentElement).fontSize||"16")||16;return Number.parseFloat(n)*o}if(n.endsWith("%")){let o=Number.parseFloat(n),a=t==="horizontal"?document.documentElement.clientWidth||window.innerWidth||0:document.documentElement.clientHeight||window.innerHeight||0;return o/100*a}let r=Number.parseFloat(n);return Number.isFinite(r)?r:void 0}var Ce=(e,t,n)=>Math.max(t??e,Math.min(n??e,e));function vt(e,t,n,r){let[o]=S.useState(()=>{let a=e??t;return typeof a=="number"&&Number.isFinite(a)?`${Ce(a,n,r)}px`:void 0});return o}function Rt(e){let{name:t,elementRef:n,cssVarName:r,orientation:o,minSize:a,maxSize:i,resizable:c,size:l,defaultSize:s,paneId:u,persistence:b}=e,f=S.useRef(e);(0,ue.useLayoutEffect)(()=>{f.current=e});let k=S.useRef(null),F=S.useRef(0);S.useEffect(()=>()=>{k.current&&clearTimeout(k.current)},[]);let B=S.useCallback((p,P)=>{let{onSizeChange:T,sizeUpdate:C,sizeUpdateMs:U}=f.current;if(T){if(C==="debounce"){k.current&&clearTimeout(k.current),k.current=setTimeout(()=>{k.current=null,f.current.onSizeChange?.(p,P)},U);return}if(C==="throttle"){let d=Date.now();if(d-F.current<U)return;F.current=d}T(p,P)}},[]),N=S.useCallback(p=>ht(p,o==="vertical"?"horizontal":"vertical"),[o]),x=S.useRef(!1),V=S.useCallback((p,P)=>{let T=n.current;if(T){T.style.setProperty(r,`${p}px`);for(let C of T.querySelectorAll(":scope > .kui-ShellResizer"))C.setAttribute("aria-valuenow",String(Math.round(p)));P&&(x.current=!0)}},[n,r]);(0,ue.useLayoutEffect)(()=>{x.current||V(e.expandedSize,!1)},[e.expandedSize,V]),(0,ue.useLayoutEffect)(()=>{if(l!==void 0||s===void 0)return;let p=N(s);if(typeof p!="number"||!Number.isFinite(p))return;let P=Ce(p,a,i);V(P,!0),B(P,{reason:"init"})},[]),(0,ue.useLayoutEffect)(()=>{if(l===void 0||f.current.overlayingNow())return;let p=N(l);if(typeof p!="number"||!Number.isFinite(p))return;let P=Ce(p,a,i);V(P,!0),B(P,{reason:"controlled"})},[l,a,i,e.overlaying,N,V,B]);let j=b!==void 0,W=S.useMemo(()=>{if(j)return{load:()=>f.current.persistence?.load?.(),save:P=>f.current.persistence?.save?.(P)};if(!u)return;let p=`kookie-ui:shell:${t}:${u}`;return{load:()=>{if(!(typeof window>"u"))try{let P=window.localStorage.getItem(p);return P?Number(P):void 0}catch{return}},save:P=>{if(!(typeof window>"u"))try{window.localStorage.setItem(p,String(P))}catch{}}}},[t,u,j]);(0,ue.useLayoutEffect)(()=>{if(!c||!W?.load||f.current.overlayingNow())return;let p=!0,P=C=>{if(!p||typeof C!="number"||!Number.isFinite(C))return;let U=Ce(C,a,i);V(U,!0),f.current.onResize?.(U)},T=W.load();return T instanceof Promise?T.then(P).catch(C=>{}):P(T),()=>{p=!1}},[c,W,e.overlaying,V,a,i,t]);let te=S.useCallback(p=>f.current.onResize?.(p),[]),H=S.useCallback(p=>{x.current=!0,f.current.onResizeStart?.(p)},[]),$=S.useCallback(p=>{f.current.onResizeEnd?.(p),B(p,{reason:"resize"}),W?.save?.(p)},[B,W]),_=S.useCallback(()=>f.current.requestCollapse(),[]),w=S.useCallback(()=>f.current.requestToggle(),[]);return S.useMemo(()=>({containerRef:n,controls:e.elementId,cssVarName:r,minSize:a,maxSize:i,defaultSize:e.expandedSize,orientation:o,edge:e.edge,growth:e.growth,onResize:te,onResizeStart:H,onResizeEnd:$,target:t,collapsible:e.collapsible,snapPoints:e.snapPoints,snapTolerance:e.snapTolerance??8,collapseThreshold:e.collapseThreshold,requestCollapse:_,requestToggle:w}),[n,e.elementId,r,a,i,e.expandedSize,o,e.edge,e.growth,te,H,$,t,e.collapsible,e.snapPoints,e.snapTolerance,e.collapseThreshold,_,w])}function xt(e,t){let n=S.Children.toArray(e),r=n.filter(a=>S.isValidElement(a)&&a.type===t),o=n.filter(a=>!(S.isValidElement(a)&&a.type===t));return{handles:r,content:o}}var Ct=e=>e==="overlay"?"closed":"open";var Et=e=>e?-1:1;function wt(e){if(!("height"in e)&&!("resizer"in e))return e;let{height:t,resizer:n,...r}=e;return r}var g=D(require("react")),ge=D(require("classnames"));var M=D(require("react")),$t=D(require("classnames")),ne=require("radix-ui"),It=require("radix-ui/internal");var Tt={asChild:{type:"boolean"}};var Cn=["none","small","medium","large","full"],zt={radius:{type:"enum",values:Cn,default:void 0}};var En=["vertical","horizontal","both"],Ee={...Tt,...zt,scrollbars:{type:"enum",values:En,default:"both"},fade:{type:"boolean",default:!1}};var we=D(require("react"));function We(e){let t=getComputedStyle(e);return{x:t.overflowX==="hidden"?0:Math.max(0,e.scrollWidth-e.clientWidth),y:t.overflowY==="hidden"?0:Math.max(0,e.scrollHeight-e.clientHeight)}}function kt(e){let[t,n]=we.useState(null);return we.useEffect(()=>{if(!e||!t)return;let r=0,o=()=>{r=0;let l=We(t),s=Math.max(0,t.scrollTop),u=Math.max(0,l.y-t.scrollTop);t.style.setProperty("--scroll-overflow-start",`${s}px`),t.style.setProperty("--scroll-overflow-end",`${u}px`);let b=Math.abs(t.scrollLeft),f=Math.max(0,l.x-b);t.style.setProperty("--scroll-overflow-x-start",`${b}px`),t.style.setProperty("--scroll-overflow-x-end",`${f}px`)},a=()=>{r||(r=requestAnimationFrame(o))};o(),t.addEventListener("scroll",a,{passive:!0});let i=typeof ResizeObserver>"u"?null:new ResizeObserver(a);i?.observe(t);for(let l of Array.from(t.children))i?.observe(l);let c=typeof MutationObserver>"u"?null:new MutationObserver(a);return c?.observe(t,{childList:!0}),()=>{r&&cancelAnimationFrame(r),t.removeEventListener("scroll",a),i?.disconnect(),c?.disconnect(),t.style.removeProperty("--scroll-overflow-start"),t.style.removeProperty("--scroll-overflow-end"),t.style.removeProperty("--scroll-overflow-x-start"),t.style.removeProperty("--scroll-overflow-x-end")}},[e,t]),n}var Te=D(require("react"));function Dt(){let[e,t]=Te.useState(null);return Te.useEffect(()=>{let n=e?.parentElement;if(!e||!n)return;let r=0,o=()=>{r=0;for(let i of n.querySelectorAll(":scope > .kui-ScrollAreaScrollbar > .kui-ScrollAreaThumb")){let c=i.parentElement,l=getComputedStyle(c);if(c.dataset.orientation==="horizontal"){let s=c.clientWidth-parseFloat(l.paddingLeft)-parseFloat(l.paddingRight),u=Nt(e.scrollLeft,e.scrollWidth-e.offsetWidth,s-i.offsetWidth);i.style.transform=`translate3d(${u}px, 0, 0)`}else{let s=c.clientHeight-parseFloat(l.paddingTop)-parseFloat(l.paddingBottom),u=Nt(e.scrollTop,e.scrollHeight-e.offsetHeight,s-i.offsetHeight);i.style.transform=`translate3d(0, ${u}px, 0)`}}},a=()=>{r||(r=requestAnimationFrame(o))};return e.addEventListener("scroll",a,{passive:!0}),()=>{r&&cancelAnimationFrame(r),e.removeEventListener("scroll",a)}},[e]),t}function Nt(e,t,n){return t<=0||n<=0?0:Math.min(Math.max(e,-t),t)/t*n}var ze=D(require("react"));function Vt(e,t){let{asChild:n,children:r}=e;if(!n)return typeof t=="function"?t(r):t;let o=ze.Children.only(r);return ze.cloneElement(o,{children:typeof t=="function"?t(o.props.children):t})}var Bt=D(require("classnames"));var wn=[],Tn=new Set;function zn(e){let t=Object.assign({},...e),n=[],r=[],o=new Set;for(let a in t){let i=t[a],c=i.values??wn,l={key:a,type:i.type,default:i.default,hasDefault:i.default!==void 0,responsive:"responsive"in i,className:i.className,customProperties:i.customProperties,parseValue:i.parseValue,values:c,valueSet:c.length>0?new Set(c):Tn,enumValueSet:i.type==="enum"?new Set([i.default,...c]):void 0};i.className?(n.push(l),o.add(a)):(l.hasDefault||i.type==="enum")&&r.push(l)}return{styling:n,passthrough:r,stylingKeys:o}}var kn={children:new WeakMap};function Lt(e){let t=kn;for(let n=0;n<e.length;n++){let r=e[n],o=t.children.get(r);o===void 0&&(o={children:new WeakMap},t.children.set(r,o)),t=o}return t.compiled??(t.compiled=zn(e))}var Nn=["initial","xs","sm","md","lg","xl"],Ue=new Set(Nn);function qe(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var Dn=new Set(["initial","xs","sm","md","lg","xl"]);function ae(e){if(typeof e!="object"||e===null)return!1;for(let t in e)if(Dn.has(t))return!0;return!1}function ke(e,t,n){return t!==void 0?t.has(n):e.includes(n)}function At({className:e,customProperties:t,...n}){let r=Ke({allowArbitraryValues:!0,className:e,...n}),o=Vn({customProperties:t,...n});return[r,o]}function Ke({allowArbitraryValues:e,value:t,className:n,propValues:r,propValueSet:o,parseValue:a=i=>i}){if(t){if(typeof t=="string")return ke(r,o,t)?Mt(n,t,a):e?n:void 0;if(ae(t)){let i=t,c=[];for(let l in i){if(!qe(i,l)||!Ue.has(l))continue;let s=i[l];if(s!==void 0){if(ke(r,o,s)){let u=Mt(n,s,a),b=l==="initial"?u:`${l}:${u}`;c.push(b)}else if(e){let u=l==="initial"?n:`${l}:${n}`;c.push(u)}}}return c.length>0?c.join(" "):""}if(e)return n}}function Mt(e,t,n){let r=e?"-":"",o=n(t),a=o?.startsWith("-"),i=a?"-":"",c=a?o?.substring(1):o;return`${i}${e}${r}${c}`}function Vn({customProperties:e,value:t,propValues:n,propValueSet:r,parseValue:o=a=>a}){if(!t||typeof t=="string"&&ke(n,r,t))return;let a;if(typeof t=="string"){let i=o(t);a={};for(let c of e)a[c]=i;return a}if(ae(t)){let i=t;for(let c in i){if(!qe(i,c)||!Ue.has(c))continue;let l=i[c];if(l===void 0||ke(n,r,l))continue;let s=o(l);a??(a={});for(let u of e){let b=c==="initial"?u:`${u}-${c}`;a[b]=s}}}return a??{}}function _e(...e){let t;for(let n of e)n&&(t===void 0&&(t={}),Object.assign(t,n));return t}function Ln(e,t){let n=e.initial,r=!1;return t.hasDefault&&n===void 0&&(n=t.default,r=!0),t.enumValueSet!==void 0&&!t.enumValueSet.has(n)&&(n=t.default,r=!0),r?{...e,initial:n}:e}function Ht(e,...t){let{styling:n,passthrough:r,stylingKeys:o}=Lt(t),a={};for(let l in e)o.has(l)||(a[l]=e[l]);for(let l=0;l<r.length;l++){let s=r[l],u=a[s.key];if(u===void 0){s.hasDefault&&(a[s.key]=s.default);continue}s.enumValueSet!==void 0&&!s.enumValueSet.has(u)&&!ae(u)&&(a[s.key]=s.default)}let i,c=[];for(let l=0;l<n.length;l++){let s=n[l],u=e[s.key];if(u===void 0&&s.hasDefault&&(u=s.default),s.enumValueSet!==void 0&&!s.enumValueSet.has(u)&&!ae(u)&&(u=s.default),!!u){if(ae(u)){if(!s.responsive)continue;u=Ln(u,s)}if(s.type==="enum"){let b=Ke({allowArbitraryValues:!1,value:u,className:s.className,propValues:s.values,propValueSet:s.valueSet,parseValue:s.parseValue});b&&c.push(b);continue}if(s.type==="string"||s.type==="enum | string"){let[b,f]=At({className:s.className,customProperties:s.customProperties,propValues:s.type==="string"?[]:s.values,propValueSet:s.type==="string"?void 0:s.valueSet,parseValue:s.parseValue,value:u});f&&(i=_e(i,f)),b&&c.push(b);continue}if(s.type==="boolean"){c.push(s.className);continue}}}return a.className=(0,Bt.default)(c.length>0?c.join(" "):void 0,e.className),a.style=_e(i,e.style),a}var Ot={width:{type:"string",className:"kui-r-w",customProperties:["--width"],responsive:!0},minWidth:{type:"string",className:"kui-r-min-w",customProperties:["--min-width"],responsive:!0},maxWidth:{type:"string",className:"kui-r-max-w",customProperties:["--max-width"],responsive:!0}};var Ft={height:{type:"string",className:"kui-r-h",customProperties:["--height"],responsive:!0},minHeight:{type:"string",className:"kui-r-min-h",customProperties:["--min-height"],responsive:!0},maxHeight:{type:"string",className:"kui-r-max-h",customProperties:["--max-height"],responsive:!0}};var Mn='[role="menu"], [role="listbox"]';function An(e,t){M.useEffect(()=>{if(!t||!e||e.closest(Mn))return;let n=0,r=()=>{n=0;let i=We(e);i.x>0||i.y>0?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")},o=()=>{n||(n=requestAnimationFrame(r))};r();let a=typeof ResizeObserver>"u"?null:new ResizeObserver(o);a?.observe(e);for(let i of Array.from(e.children))a?.observe(i);return()=>{n&&cancelAnimationFrame(n),a?.disconnect()}},[e,t])}var Ne=M.forwardRef((e,t)=>{let{asChild:n,children:r,className:o,style:a,type:i,scrollHideDelay:c=i!=="scroll"?0:void 0,dir:l,radius:s=Ee.radius.default,scrollbars:u=Ee.scrollbars.default,fade:b=Ee.fade.default,...f}=Ht(e,Ot,Ft),[k,F]=M.useState(null),B=kt(b),N=Dt(),x=(0,It.useComposedRefs)(t,B,N,F);An(k,f.tabIndex===void 0);let V=f["aria-label"]!==void 0||f["aria-labelledby"]!==void 0;return M.createElement(ne.ScrollArea.Root,{type:i,scrollHideDelay:c,dir:l,className:(0,$t.default)("kui-ScrollAreaRoot",o),"data-fade":b?"":void 0,style:a,asChild:n},Vt({asChild:n,children:r},j=>M.createElement(M.Fragment,null,M.createElement(ne.ScrollArea.Viewport,{role:V?"region":void 0,...f,ref:x,className:"kui-ScrollAreaViewport"},j),M.createElement("div",{className:"kui-ScrollAreaViewportFocusRing"}),u!=="vertical"?M.createElement(ne.ScrollArea.Scrollbar,{"data-radius":s,orientation:"horizontal",className:"kui-ScrollAreaScrollbar"},M.createElement(ne.ScrollArea.Thumb,{className:"kui-ScrollAreaThumb"})):null,u!=="horizontal"?M.createElement(ne.ScrollArea.Scrollbar,{"data-radius":s,orientation:"vertical",className:"kui-ScrollAreaScrollbar"},M.createElement(ne.ScrollArea.Thumb,{className:"kui-ScrollAreaThumb"})):null,u==="both"?M.createElement(ne.ScrollArea.Corner,{className:"kui-ScrollAreaCorner"}):null)))});Ne.displayName="ScrollArea";var jt=D(require("react")),De=jt.createContext(void 0);var Ut=D(require("react")),Bn="(max-width: 767.98px) and (pointer: coarse)",Wt,qt=()=>Wt??(Wt=window.matchMedia(Bn));function Hn(e,t){return typeof e.addEventListener=="function"?(e.addEventListener("change",t),()=>e.removeEventListener("change",t)):(e.addListener?.(t),()=>e.removeListener?.(t))}function On(e){return Hn(qt(),e)}function Kt(){return Ut.useSyncExternalStore(On,()=>qt().matches,()=>!1)}var _t=g.createContext(null);function Ge(){return g.useContext(_t)}var Qe=g.createContext("2"),Fn=g.createContext(!1),$n=g.createContext(!1);function Gt({children:e,presentation:t}){let n=g.useContext(Qe),r=g.useMemo(()=>({size:n,menuVariant:"soft",presentation:t}),[n,t]);return g.createElement(_t.Provider,{value:r},e)}function Ye(){let e=Ge(),t=g.useContext(Qe),n=e?.size??t,r=e?.menuVariant??"soft";return["kui-ShellPaneChrome",`kui-r-size-${n}`,`kui-menu-variant-${r}`]}var In={1:"2",2:"3",3:"4",4:"4"};function Qt(){let e=Ge(),t=g.useContext(Qe);return In[e?.size??t]}var jn=g.forwardRef(({className:e,float:t,children:n,...r},o)=>{let a=Ye(),i=Qt();return g.createElement("div",{...r,ref:o,"data-float":t||void 0,className:(0,ge.default)("kui-ShellPaneHeader","kui-SidebarHeader","kui-SidebarHeader--container",...a,e)},g.createElement(De.Provider,{value:i},n))});jn.displayName="Shell.PaneHeader";var Wn=g.forwardRef(({className:e,float:t,children:n,...r},o)=>{let a=Ye(),i=Qt();return g.createElement("div",{...r,ref:o,"data-float":t||void 0,className:(0,ge.default)("kui-ShellPaneFooter","kui-SidebarFooter","kui-SidebarFooter--container",...a,e)},g.createElement(De.Provider,{value:i},n))});Wn.displayName="Shell.PaneFooter";var Un=g.forwardRef(({className:e,style:t,dir:n,children:r,fade:o=!1,pane:a=!1,...i},c)=>{let l=Ye(),s=g.useContext(Fn),u=Ge(),b=s&&u===null&&!a,f=g.useContext($n),k=Kt();if(b){let F=i.tabIndex??(f&&k?-1:void 0);return g.createElement(Ne,{...i,tabIndex:F,ref:c,type:"hover",fade:o,className:"kui-ShellScroll"},g.createElement("div",{style:t,dir:n,className:(0,ge.default)("kui-ShellScrollContent",e)},r))}return g.createElement(Ne,{...i,ref:c,type:"hover",fade:o,className:"kui-ShellScroll"},g.createElement("div",{style:t,dir:n,className:(0,ge.default)("kui-BaseMenuContent","kui-SidebarContent",...l,e)},g.createElement(De.Provider,{value:null},g.createElement("div",{className:"kui-BaseMenuViewport"},r))))});Un.displayName="Shell.Scroll";var X=D(require("react")),qn=X.createContext(null);function Yt({children:e}){let t=X.useMemo(()=>({title:null,mirrors:new Set,collapsed:!1,listeners:new Set,version:0}),[]);return X.createElement(qn.Provider,{value:t},e)}var Xt=e=>e==="collapsed"?"closed":"open",Kn=e=>e==="closed"?"collapsed":"expanded";function Jt(e){if(e===void 0)return;if(typeof e=="string")return Xt(e);let t={};for(let[n,r]of Object.entries(e))r!==void 0&&(t[n]=Xt(r));return t}var _n={controlled:"state",default:"defaultState"},Gn={initial:"overlay",sm:"fixed"},Xe=q.forwardRef((e,t)=>{let{className:n,presentation:r=Gn,expandedSize:o=288,minSize:a=200,maxSize:i=400,resizable:c=!1,collapsible:l=!0,onExpand:s,onCollapse:u,onResize:b,onResizeStart:f,onResizeEnd:k,snapPoints:F,snapTolerance:B,collapseThreshold:N,paneId:x,persistence:V,children:j,style:W,state:te,defaultState:H,onStateChange:$,size:_,defaultSize:w,onSizeChange:p,sizeUpdate:P,sizeUpdateMs:T=50,flush:C=!0,id:U,...d}=e,{table:y,attributes:h}=St(r,"fixed"),R=bt({name:"sidebar",label:"Sidebar",propNames:_n,id:U,controlled:Jt(te),defaultValue:Jt(H),presentationTable:y,builtIn:Ct,onChange:(Ve,Le)=>$?.(Kn(Ve),{reason:Le}),onExpand:s,onCollapse:u,size:o});gt("sidebar",C),q.useEffect(()=>{(F!==void 0||N!==void 0||x!==void 0||V!==void 0)&&void 0},[F,N,x,V]);let O=q.useRef(null),A=(0,en.useComposedRefs)(t,R.setElement,O),v=Rt({name:"sidebar",elementId:R.id,elementRef:O,cssVarName:"--sidebar-size",orientation:"vertical",edge:"end",growth:Et,expandedSize:o,minSize:a,maxSize:i,resizable:c,collapsible:l,size:_,defaultSize:w,onSizeChange:p,sizeUpdate:P,sizeUpdateMs:T,onResize:b,onResizeStart:f,onResizeEnd:k,snapPoints:F,snapTolerance:B,collapseThreshold:N,paneId:x,persistence:V,overlaying:R.overlaying,overlayingNow:()=>y[fe()]==="overlay",requestCollapse:()=>R.setValue("closed","toggle"),requestToggle:()=>R.toggle("toggle")}),{handles:J,content:m}=xt(j,he),K=c&&R.value!=="closed"&&!R.overlaying?q.createElement(Be.Provider,{value:v},J.length>0?J:q.createElement(oe,null)):null,G=R.peeking?`var(--sidebar-size, ${o}px)`:void 0,Q=vt(_,w,a,i);return q.createElement("div",{...wt(d),role:d.role??"navigation",id:R.id,ref:A,className:(0,Zt.default)("kui-ShellPane","kui-ShellSidebar",n),...yt(R,h),"data-flush":C||void 0,tabIndex:R.overlaying?-1:d.tabIndex,style:{...W,"--sidebar-expanded-size":`${o}px`,...Q?{"--sidebar-size":Q}:{},"--sidebar-min-size":`${a}px`,"--sidebar-max-size":`${i}px`,...G?{"--peek-sidebar-width":G}:{}}},q.createElement("div",{className:"kui-ShellSidebarContent"},q.createElement(Gt,null,q.createElement(Yt,null,m))),K)});Xe.displayName="Shell.Sidebar";Xe.Handle=he;
|
|
2
|
+
"use strict";"use client";var rn=Object.create;var he=Object.defineProperty;var on=Object.getOwnPropertyDescriptor;var an=Object.getOwnPropertyNames;var sn=Object.getPrototypeOf,ln=Object.prototype.hasOwnProperty;var un=(e,t)=>{for(var n in t)he(e,n,{get:t[n],enumerable:!0})},ot=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of an(t))!ln.call(e,o)&&o!==n&&he(e,o,{get:()=>t[o],enumerable:!(r=on(t,o))||r.enumerable});return e};var z=(e,t,n)=>(n=e!=null?rn(sn(e)):{},ot(t||!e||!e.__esModule?he(n,"default",{value:e,enumerable:!0}):n,e)),cn=e=>ot(he({},"__esModule",{value:!0}),e);var Yn={};un(Yn,{Sidebar:()=>Xe});module.exports=cn(Yn);var K=z(require("react")),Zt=z(require("classnames")),en=require("radix-ui/internal");var ve=z(require("react")),Be=ve.createContext(null);function it(){let e=ve.useContext(Be);if(!e)throw new Error("Shell.Handle must be used within a resizable pane");return e}var w=z(require("react")),at=require("radix-ui/internal"),st=z(require("classnames"));var ie=w.forwardRef(({className:e,children:t,...n},r)=>{let{containerRef:o,controls:a,cssVarName:i,minSize:u,maxSize:l,defaultSize:s,startSize:d,orientation:f,edge:b,growth:k,onResize:N,onResizeStart:F,onResizeEnd:T,snapPoints:h,snapTolerance:L,collapseThreshold:_,collapsible:$,target:J,requestCollapse:I,requestToggle:q}=it(),O=w.useRef(null),M=w.useCallback(c=>{O.current=c,typeof r=="function"?r(c):r&&(r.current=c)},[r]),j=w.useRef(null);w.useEffect(()=>()=>{j.current?.(),j.current=null},[]);let p=w.useCallback(()=>{let c=o.current;if(!c)return s;let v=Number.parseFloat(getComputedStyle(c).getPropertyValue(i));return Number.isFinite(v)?v:s},[o,i,s]),g=w.useCallback(()=>{let c=o.current,v=O.current,P=c?.closest(".kui-ShellRoot")?.getBoundingClientRect();if(!c||!P||!v)return l;let B=c.getBoundingClientRect(),W=v.getBoundingClientRect(),H=k(getComputedStyle(c).direction==="rtl"),R;f==="vertical"?R=H>0?P.right-B.left:B.right-P.left:R=H>0?P.bottom-B.top:B.bottom-P.top;let m=f==="vertical"?W.width:W.height;return!(P.width>0&&P.height>0)||!Number.isFinite(R)?l:Math.max(u,Math.min(l,Math.round(R-m)))},[o,k,l,u,f]),C=()=>{O.current?.setAttribute("aria-valuemax",String(g()))};(0,at.useLayoutEffect)(()=>{O.current?.setAttribute("aria-valuenow",String(Math.round(p())))},[p]);let E=(c,v)=>{c.style.setProperty(i,`${v}px`),O.current?.setAttribute("aria-valuenow",String(Math.round(v)))},A=J.charAt(0).toUpperCase()+J.slice(1);return w.createElement("div",{ref:M,className:(0,st.default)("kui-ShellResizer",e),"data-orientation":f,"data-edge":b,role:"separator",tabIndex:0,"aria-label":`Resize ${A} pane`,"aria-controls":a,"aria-orientation":f,"aria-valuenow":Math.round(d),"aria-valuemin":u,"aria-valuemax":l,...n,onPointerDown:c=>{n.onPointerDown?.(c);let v=o.current;if(!v||c.defaultPrevented||c.button!==0)return;c.preventDefault();let P=c.currentTarget,B=c.pointerId;j.current?.();try{P.setPointerCapture(B)}catch{}let W=getComputedStyle(v),H=Number.parseFloat(W.getPropertyValue(i)),R=Number.isFinite(H)?H:s,m=f==="vertical"?c.clientX:c.clientY,G=k(W.direction==="rtl"),Q=g();P.setAttribute("aria-valuemax",String(Q));let re=D=>Math.min(Math.max(D,u),Q);v.setAttribute("data-resizing",""),P.setAttribute("data-dragging","");let te=document.body,Le=te.style.cursor,tn=te.style.userSelect;te.style.cursor=f==="vertical"?"col-resize":"row-resize",te.style.userSelect="none",F?.(R);let oe=R,Me=R,Y=0,de=null,Je=()=>{if(Y=0,de===null)return;let D=de;de=null,N?.(D)},Ze=null,et=!1,nn=(D,le)=>{if(D.type===le)et=!0;else if(et)return!1;return!0},Z=D=>{if(!nn(D,"pointermove")||D===Ze)return;Ze=D;let le=f==="vertical"?D.clientX:D.clientY;Me=R+(le-m)*G,oe=re(Me),E(v,oe),de=oe,Y||(Y=requestAnimationFrame(Je))},ye=()=>{Y&&cancelAnimationFrame(Y),Y=0;try{P.releasePointerCapture(B)}catch{}window.removeEventListener("pointermove",Z),document.removeEventListener("pointermove",Z),window.removeEventListener("mousemove",Z),document.removeEventListener("mousemove",Z),P.removeEventListener("pointermove",Z),window.removeEventListener("pointerup",U),document.removeEventListener("pointerup",U),window.removeEventListener("mouseup",U),document.removeEventListener("mouseup",U),window.removeEventListener("pointercancel",U),document.removeEventListener("pointercancel",U),window.removeEventListener("keydown",tt),P.removeEventListener("lostpointercapture",U),v.removeAttribute("data-resizing"),P.removeAttribute("data-dragging"),te.style.cursor=Le,te.style.userSelect=tn,j.current=null},Ae=!1,U=()=>{if(Ae)return;if(Ae=!0,Y&&cancelAnimationFrame(Y),Je(),$&&typeof _=="number"&&Me<=_){E(v,R),N?.(R),ye(),I?.(),T?.(R);return}let D=oe;if(h&&h.length){let le=h.reduce((nt,rt)=>Math.abs(rt-oe)<Math.abs(nt-oe)?rt:nt,h[0]);Math.abs(le-oe)<=L&&(D=re(le),E(v,D),N?.(D))}T?.(D),ye()},tt=D=>{D.key==="Escape"&&(Y&&cancelAnimationFrame(Y),Y=0,de=null,E(v,R),N?.(R),Ae=!0,T?.(R),ye())};window.addEventListener("pointermove",Z),document.addEventListener("pointermove",Z),window.addEventListener("mousemove",Z),document.addEventListener("mousemove",Z),P.addEventListener("pointermove",Z),window.addEventListener("pointerup",U),document.addEventListener("pointerup",U),window.addEventListener("mouseup",U),document.addEventListener("mouseup",U),window.addEventListener("pointercancel",U),document.addEventListener("pointercancel",U),window.addEventListener("keydown",tt),P.addEventListener("lostpointercapture",U),j.current=ye},onDoubleClick:c=>{n.onDoubleClick?.(c),!c.defaultPrevented&&$&&q?.()},onFocus:c=>{n.onFocus?.(c),C()},onKeyDown:c=>{n.onKeyDown?.(c);let v=o.current;if(!v||c.defaultPrevented)return;if(c.key==="Enter"){$&&q&&(c.preventDefault(),q());return}let P=p(),B=g(),W=R=>Math.min(Math.max(R,u),B),H;if(c.key==="Home")H=W(u);else if(c.key==="End")H=W(B);else{let R=f==="vertical"?c.key==="ArrowRight"?1:c.key==="ArrowLeft"?-1:0:c.key==="ArrowDown"?1:c.key==="ArrowUp"?-1:0;if(R===0)return;let m=c.shiftKey?32:8;H=W(P+R*m*k(getComputedStyle(v).direction==="rtl"))}c.preventDefault(),F?.(P),E(v,H),N?.(H),T?.(H)}},t)});ie.displayName="Shell.Handle";var dn=w.forwardRef((e,t)=>w.createElement(ie,{...e,ref:t}));dn.displayName="Shell.Panel.Handle";var Re=w.forwardRef((e,t)=>w.createElement(ie,{...e,ref:t}));Re.displayName="Shell.Sidebar.Handle";var pn=w.forwardRef((e,t)=>w.createElement(ie,{...e,ref:t}));pn.displayName="Shell.Inspector.Handle";var fn=w.forwardRef((e,t)=>w.createElement(ie,{...e,ref:t}));fn.displayName="Shell.Bottom.Handle";var x=z(require("react")),ge=require("radix-ui/internal");var fe=z(require("react"));var lt={xs:"(min-width: 520px)",sm:"(min-width: 768px)",md:"(min-width: 1024px)",lg:"(min-width: 1280px)",xl:"(min-width: 1640px)"},xe=["initial","xs","sm","md","lg","xl"];var mn=Object.entries(lt),He=null,pe=new Set,ae=null;function Oe(){return He??(He=mn.map(([e,t])=>[e,window.matchMedia(t)])),He}function Ee(){let e="initial";for(let[t,n]of Oe())n.matches&&(e=t);return e}function Ce(){let e=Ee();e!==ae&&(ae=e,pe.forEach(t=>t()))}function ut(e){if(typeof window>"u")return()=>{};if(pe.size===0){ae=Ee();for(let[,t]of Oe())typeof t.addEventListener=="function"?t.addEventListener("change",Ce):t.addListener?.(Ce)}return pe.add(e),()=>{if(pe.delete(e),!(pe.size>0)){for(let[,t]of Oe())try{typeof t.removeEventListener=="function"?t.removeEventListener("change",Ce):t.removeListener?.(Ce)}catch{}ae=null}}}function Pn(){return typeof window>"u"?"initial":(ae??(ae=Ee()),ae)}function gn(){return"initial"}function me(){return typeof window>"u"?"initial":Ee()}var bn=()=>!0,Sn=()=>!1,ct=()=>()=>{},yn=()=>"initial";function dt(e=!0){let t=fe.useSyncExternalStore(e?ut:ct,e?Pn:yn,gn),n=fe.useSyncExternalStore(e?ut:ct,bn,Sn);return fe.useMemo(()=>({breakpoint:t,ready:n}),[t,n])}var ee=z(require("react")),ft=require("radix-ui/internal");function pt(e){return typeof e=="object"&&e!==null}function Pe(e,t){let n={},r=null;for(let o of xe){if(e!==void 0&&!pt(e)){n[o]=e;continue}let a=pt(e)?e[o]:void 0;a!==void 0&&(r={value:a}),n[o]=r?r.value:t(o)}return n}function ue(e){let t=e.initial;return xe.every(n=>e[n]===t)?t:void 0}function Fe(e,t){let n=ue(t);if(n!==void 0)return{[`data-${e}`]:n};let r={};for(let o of xe)r[`data-${e}-${o}`]=t[o];return r}function $e(e){return typeof e=="object"&&e!==null?JSON.stringify(e):String(e)}var ir=Pe("fixed",()=>"fixed");function Ie(e){e.version+=1;for(let t of e.listeners)t()}function hn(e,t){return e.listeners.add(t),()=>{e.listeners.delete(t)}}var vn=ee.createContext(null);function mt(e){let t=ee.useContext(vn);if(!t)throw new Error(`${e} must be used within <Shell.Root>`);return t}function Pt(e,t){let n=ee.useCallback(r=>hn(e,r),[e]);return ee.useSyncExternalStore(n,()=>e.peek===t,()=>!1)}var Rn=ee.createContext(null);function gt(e,t){let n=ee.useContext(Rn);if(!n)throw new Error("Shell panes must be used within <Shell.Root>");let{registerOffFrame:r,unregisterOffFrame:o}=n;(0,ft.useLayoutEffect)(()=>{if(!t)return r(e),()=>o(e)},[e,t,r,o])}var je=e=>typeof e=="object"&&e!==null;function Cn(e){for(let t of["initial","xs","sm","md","lg","xl"]){let n=e[t];if(n!==void 0)return n}return"closed"}function bt(e){let{name:t,label:n,propNames:r,presentationTable:o,builtIn:a}=e,i=mt(`Shell.${n}`),u=x.useId(),l=e.id??`shell-${t}${u}`,s=e.controlled!==void 0,d=je(e.controlled);d&&(`${n}${r.controlled}${r.default}`,void 0);let f=d?e.controlled:void 0,b=f??(je(e.defaultValue)?e.defaultValue:void 0),k=$e(b),[N,F]=x.useState(()=>typeof e.defaultValue=="string"?e.defaultValue:"auto"),T=x.useMemo(()=>f?Pe(f,()=>Cn(f)):Pe(b,m=>a(o[m])),[k,d,o,a]),h=N;s&&(h=f?"auto":e.controlled);let L=ue(o)===void 0||h==="auto"&&ue(T)===void 0,{breakpoint:_,ready:$}=dt(L),J=m=>{let G=ue(m);return G!==void 0?G:$?m[_]:void 0},I=h==="auto"?J(T):h,q=J(o),O=q==="overlay",M=I===void 0?void 0:I!=="closed",j=M===!0&&O,p=e.defaultValue,g=x.useRef({state:h,value:I,autoTable:T,defaultValue:p,controlled:s,onChange:e.onChange,toggleNext:e.toggleNext});(0,ge.useLayoutEffect)(()=>{g.current={state:h,value:I,autoTable:T,defaultValue:p,controlled:s,onChange:e.onChange,toggleNext:e.toggleNext}});let C=x.useCallback(()=>{let m=g.current;return m.value!==void 0?m.value:m.state==="auto"?m.autoTable[me()]:void 0},[]),E=x.useCallback(()=>{let m=g.current;return typeof m.defaultValue=="string"?m.defaultValue:je(m.defaultValue)?m.autoTable[me()]:void 0},[]),A=x.useCallback((m,G)=>{let Q=g.current;C()!==m&&(Q.onChange?.(m,G),Q.controlled||F(m))},[C]),c=x.useCallback(m=>{let G=g.current,Q=C()??"closed",re=G.toggleNext?G.toggleNext(Q,E()):Q==="closed"?"open":"closed";A(re,m)},[A,C,E]),v=x.useRef(null),P=x.useCallback(m=>{v.current=m},[]);(0,ge.useLayoutEffect)(()=>{let m={name:t,id:l,el:v.current,value:I,presentation:q,presentationTable:o,overlayLive:j,size:e.size,setValue:A,toggle:c};return i.entries.set(t,m),Ie(i),()=>{i.entries.get(t)===m&&(i.entries.delete(t),Ie(i))}},[i,t,l,I,q,o,j,e.size,A,c]);let B=x.useRef({onExpand:e.onExpand,onCollapse:e.onCollapse});(0,ge.useLayoutEffect)(()=>{B.current={onExpand:e.onExpand,onCollapse:e.onCollapse}});let W=x.useRef({state:h,shown:M});x.useEffect(()=>{let m=W.current;m.state!==h&&m.shown!==void 0&&M!==void 0&&m.shown!==M&&(M?B.current.onExpand?.():B.current.onCollapse?.()),W.current={state:h,shown:M}},[h,M]),(0,ge.useLayoutEffect)(()=>{},[]);let H=x.useRef(s);x.useEffect(()=>{},[s,n,r.controlled]);let R=Pt(i,t)&&M===!1&&!O;return{store:i,id:l,state:h,value:I,shown:M,presentation:q,overlaying:O,overlayLive:j,peeking:R,ready:$,breakpoint:_,autoTable:T,setValue:A,toggle:c,defaultHereNow:E,setElement:P}}function St(e,t){let{state:n,value:r,presentation:o,shown:a}=e;return{...t,"data-state":n,...n==="auto"?Fe("auto",e.autoTable):{},"data-presentation":o,"data-mode":r===void 0?void 0:r==="closed"?"collapsed":"expanded","data-open":o==="stacked"&&a?"":void 0,"data-peek":e.peeking?"":void 0}}function yt(e,t){let n=$e(e),r=x.useMemo(()=>Pe(e,()=>t),[n,t]),o=x.useMemo(()=>ue(r)===void 0?Fe("presentation",r):{},[r]);return{table:r,attributes:o}}var y=z(require("react")),ce=require("radix-ui/internal");function ht(e,t="horizontal"){if(e==null)return;if(typeof e=="number"&&Number.isFinite(e))return e;let n=String(e).trim();if(!n)return;if(n.endsWith("px"))return Number.parseFloat(n);if(n.endsWith("rem")){let o=Number.parseFloat(getComputedStyle(document.documentElement).fontSize||"16")||16;return Number.parseFloat(n)*o}if(n.endsWith("%")){let o=Number.parseFloat(n),a=t==="horizontal"?document.documentElement.clientWidth||window.innerWidth||0:document.documentElement.clientHeight||window.innerHeight||0;return o/100*a}let r=Number.parseFloat(n);return Number.isFinite(r)?r:void 0}var be=(e,t,n)=>Math.max(t??e,Math.min(n??e,e));function vt(e,t,n,r){let[o]=y.useState(()=>{let a=e??t;return typeof a=="number"&&Number.isFinite(a)?`${be(a,n,r)}px`:void 0});return o}function Rt(e){let{name:t,elementRef:n,cssVarName:r,orientation:o,minSize:a,maxSize:i,resizable:u,size:l,defaultSize:s,paneId:d,persistence:f}=e,b=y.useRef(e);(0,ce.useLayoutEffect)(()=>{b.current=e});let k=y.useRef(null),N=y.useRef(0);y.useEffect(()=>()=>{k.current&&clearTimeout(k.current)},[]);let F=y.useCallback((p,g)=>{let{onSizeChange:C,sizeUpdate:E,sizeUpdateMs:A}=b.current;if(C){if(E==="debounce"){k.current&&clearTimeout(k.current),k.current=setTimeout(()=>{k.current=null,b.current.onSizeChange?.(p,g)},A);return}if(E==="throttle"){let c=Date.now();if(c-N.current<A)return;N.current=c}C(p,g)}},[]),T=y.useCallback(p=>ht(p,o==="vertical"?"horizontal":"vertical"),[o]),h=y.useRef(!1),L=y.useCallback((p,g)=>{let C=n.current;if(C){C.style.setProperty(r,`${p}px`);for(let E of C.querySelectorAll(":scope > .kui-ShellResizer"))E.setAttribute("aria-valuenow",String(Math.round(p)));g&&(h.current=!0)}},[n,r]);(0,ce.useLayoutEffect)(()=>{h.current||L(e.expandedSize,!1)},[e.expandedSize,L]),(0,ce.useLayoutEffect)(()=>{if(l!==void 0||s===void 0)return;let p=T(s);if(typeof p!="number"||!Number.isFinite(p))return;let g=be(p,a,i);L(g,!0),F(g,{reason:"init"})},[]),(0,ce.useLayoutEffect)(()=>{if(l===void 0||b.current.overlayingNow())return;let p=T(l);if(typeof p!="number"||!Number.isFinite(p))return;let g=be(p,a,i);L(g,!0),F(g,{reason:"controlled"})},[l,a,i,e.overlaying,T,L,F]);let _=f!==void 0,$=y.useMemo(()=>{if(_)return{load:()=>b.current.persistence?.load?.(),save:g=>b.current.persistence?.save?.(g)};if(!d)return;let p=`kookie-ui:shell:${t}:${d}`;return{load:()=>{if(!(typeof window>"u"))try{let g=window.localStorage.getItem(p);return g?Number(g):void 0}catch{return}},save:g=>{if(!(typeof window>"u"))try{window.localStorage.setItem(p,String(g))}catch{}}}},[t,d,_]);(0,ce.useLayoutEffect)(()=>{if(!u||!$?.load||b.current.overlayingNow())return;let p=!0,g=E=>{if(!p||typeof E!="number"||!Number.isFinite(E))return;let A=be(E,a,i);L(A,!0),b.current.onResize?.(A)},C=$.load();return C instanceof Promise?C.then(g).catch(E=>{}):g(C),()=>{p=!1}},[u,$,e.overlaying,L,a,i,t]);let[J]=y.useState(()=>{let p=l??s;return typeof p=="number"&&Number.isFinite(p)?be(p,a,i):e.expandedSize}),I=y.useCallback(p=>b.current.onResize?.(p),[]),q=y.useCallback(p=>{h.current=!0,b.current.onResizeStart?.(p)},[]),O=y.useCallback(p=>{b.current.onResizeEnd?.(p),F(p,{reason:"resize"}),$?.save?.(p)},[F,$]),M=y.useCallback(()=>b.current.requestCollapse(),[]),j=y.useCallback(()=>b.current.requestToggle(),[]);return y.useMemo(()=>({containerRef:n,controls:e.elementId,cssVarName:r,minSize:a,maxSize:i,defaultSize:e.expandedSize,startSize:J,orientation:o,edge:e.edge,growth:e.growth,onResize:I,onResizeStart:q,onResizeEnd:O,target:t,collapsible:e.collapsible,snapPoints:e.snapPoints,snapTolerance:e.snapTolerance??8,collapseThreshold:e.collapseThreshold,requestCollapse:M,requestToggle:j}),[n,e.elementId,r,a,i,e.expandedSize,J,o,e.edge,e.growth,I,q,O,t,e.collapsible,e.snapPoints,e.snapTolerance,e.collapseThreshold,M,j])}function xt(e,t){let n=y.Children.toArray(e),r=n.filter(a=>y.isValidElement(a)&&a.type===t),o=n.filter(a=>!(y.isValidElement(a)&&a.type===t));return{handles:r,content:o}}var Ct=e=>e==="overlay"?"closed":"open";var Et=e=>e?-1:1;function wt(e){if(!("height"in e)&&!("resizer"in e))return e;let{height:t,resizer:n,...r}=e;return r}var S=z(require("react")),Se=z(require("classnames"));var V=z(require("react")),$t=z(require("classnames")),ne=require("radix-ui"),It=require("radix-ui/internal");var Tt={asChild:{type:"boolean"}};var En=["none","small","medium","large","full"],zt={radius:{type:"enum",values:En,default:void 0}};var wn=["vertical","horizontal","both"],we={...Tt,...zt,scrollbars:{type:"enum",values:wn,default:"both"},fade:{type:"boolean",default:!1}};var Te=z(require("react"));function We(e){let t=getComputedStyle(e);return{x:t.overflowX==="hidden"?0:Math.max(0,e.scrollWidth-e.clientWidth),y:t.overflowY==="hidden"?0:Math.max(0,e.scrollHeight-e.clientHeight)}}function kt(e){let[t,n]=Te.useState(null);return Te.useEffect(()=>{if(!e||!t)return;let r=0,o=()=>{r=0;let l=We(t),s=Math.max(0,t.scrollTop),d=Math.max(0,l.y-t.scrollTop);t.style.setProperty("--scroll-overflow-start",`${s}px`),t.style.setProperty("--scroll-overflow-end",`${d}px`);let f=Math.abs(t.scrollLeft),b=Math.max(0,l.x-f);t.style.setProperty("--scroll-overflow-x-start",`${f}px`),t.style.setProperty("--scroll-overflow-x-end",`${b}px`)},a=()=>{r||(r=requestAnimationFrame(o))};o(),t.addEventListener("scroll",a,{passive:!0});let i=typeof ResizeObserver>"u"?null:new ResizeObserver(a);i?.observe(t);for(let l of Array.from(t.children))i?.observe(l);let u=typeof MutationObserver>"u"?null:new MutationObserver(a);return u?.observe(t,{childList:!0}),()=>{r&&cancelAnimationFrame(r),t.removeEventListener("scroll",a),i?.disconnect(),u?.disconnect(),t.style.removeProperty("--scroll-overflow-start"),t.style.removeProperty("--scroll-overflow-end"),t.style.removeProperty("--scroll-overflow-x-start"),t.style.removeProperty("--scroll-overflow-x-end")}},[e,t]),n}var ze=z(require("react"));function Dt(){let[e,t]=ze.useState(null);return ze.useEffect(()=>{let n=e?.parentElement;if(!e||!n)return;let r=0,o=()=>{r=0;for(let i of n.querySelectorAll(":scope > .kui-ScrollAreaScrollbar > .kui-ScrollAreaThumb")){let u=i.parentElement,l=getComputedStyle(u);if(u.dataset.orientation==="horizontal"){let s=u.clientWidth-parseFloat(l.paddingLeft)-parseFloat(l.paddingRight),d=Nt(e.scrollLeft,e.scrollWidth-e.offsetWidth,s-i.offsetWidth);i.style.transform=`translate3d(${d}px, 0, 0)`}else{let s=u.clientHeight-parseFloat(l.paddingTop)-parseFloat(l.paddingBottom),d=Nt(e.scrollTop,e.scrollHeight-e.offsetHeight,s-i.offsetHeight);i.style.transform=`translate3d(0, ${d}px, 0)`}}},a=()=>{r||(r=requestAnimationFrame(o))};return e.addEventListener("scroll",a,{passive:!0}),()=>{r&&cancelAnimationFrame(r),e.removeEventListener("scroll",a)}},[e]),t}function Nt(e,t,n){return t<=0||n<=0?0:Math.min(Math.max(e,-t),t)/t*n}var ke=z(require("react"));function Vt(e,t){let{asChild:n,children:r}=e;if(!n)return typeof t=="function"?t(r):t;let o=ke.Children.only(r);return ke.cloneElement(o,{children:typeof t=="function"?t(o.props.children):t})}var Bt=z(require("classnames"));var Tn=[],zn=new Set;function kn(e){let t=Object.assign({},...e),n=[],r=[],o=new Set;for(let a in t){let i=t[a],u=i.values??Tn,l={key:a,type:i.type,default:i.default,hasDefault:i.default!==void 0,responsive:"responsive"in i,className:i.className,customProperties:i.customProperties,parseValue:i.parseValue,values:u,valueSet:u.length>0?new Set(u):zn,enumValueSet:i.type==="enum"?new Set([i.default,...u]):void 0};i.className?(n.push(l),o.add(a)):(l.hasDefault||i.type==="enum")&&r.push(l)}return{styling:n,passthrough:r,stylingKeys:o}}var Nn={children:new WeakMap};function Lt(e){let t=Nn;for(let n=0;n<e.length;n++){let r=e[n],o=t.children.get(r);o===void 0&&(o={children:new WeakMap},t.children.set(r,o)),t=o}return t.compiled??(t.compiled=kn(e))}var Dn=["initial","xs","sm","md","lg","xl"],Ue=new Set(Dn);function qe(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var Vn=new Set(["initial","xs","sm","md","lg","xl"]);function se(e){if(typeof e!="object"||e===null)return!1;for(let t in e)if(Vn.has(t))return!0;return!1}function Ne(e,t,n){return t!==void 0?t.has(n):e.includes(n)}function At({className:e,customProperties:t,...n}){let r=Ke({allowArbitraryValues:!0,className:e,...n}),o=Ln({customProperties:t,...n});return[r,o]}function Ke({allowArbitraryValues:e,value:t,className:n,propValues:r,propValueSet:o,parseValue:a=i=>i}){if(t){if(typeof t=="string")return Ne(r,o,t)?Mt(n,t,a):e?n:void 0;if(se(t)){let i=t,u=[];for(let l in i){if(!qe(i,l)||!Ue.has(l))continue;let s=i[l];if(s!==void 0){if(Ne(r,o,s)){let d=Mt(n,s,a),f=l==="initial"?d:`${l}:${d}`;u.push(f)}else if(e){let d=l==="initial"?n:`${l}:${n}`;u.push(d)}}}return u.length>0?u.join(" "):""}if(e)return n}}function Mt(e,t,n){let r=e?"-":"",o=n(t),a=o?.startsWith("-"),i=a?"-":"",u=a?o?.substring(1):o;return`${i}${e}${r}${u}`}function Ln({customProperties:e,value:t,propValues:n,propValueSet:r,parseValue:o=a=>a}){if(!t||typeof t=="string"&&Ne(n,r,t))return;let a;if(typeof t=="string"){let i=o(t);a={};for(let u of e)a[u]=i;return a}if(se(t)){let i=t;for(let u in i){if(!qe(i,u)||!Ue.has(u))continue;let l=i[u];if(l===void 0||Ne(n,r,l))continue;let s=o(l);a??(a={});for(let d of e){let f=u==="initial"?d:`${d}-${u}`;a[f]=s}}}return a??{}}function _e(...e){let t;for(let n of e)n&&(t===void 0&&(t={}),Object.assign(t,n));return t}function Mn(e,t){let n=e.initial,r=!1;return t.hasDefault&&n===void 0&&(n=t.default,r=!0),t.enumValueSet!==void 0&&!t.enumValueSet.has(n)&&(n=t.default,r=!0),r?{...e,initial:n}:e}function Ht(e,...t){let{styling:n,passthrough:r,stylingKeys:o}=Lt(t),a={};for(let l in e)o.has(l)||(a[l]=e[l]);for(let l=0;l<r.length;l++){let s=r[l],d=a[s.key];if(d===void 0){s.hasDefault&&(a[s.key]=s.default);continue}s.enumValueSet!==void 0&&!s.enumValueSet.has(d)&&!se(d)&&(a[s.key]=s.default)}let i,u=[];for(let l=0;l<n.length;l++){let s=n[l],d=e[s.key];if(d===void 0&&s.hasDefault&&(d=s.default),s.enumValueSet!==void 0&&!s.enumValueSet.has(d)&&!se(d)&&(d=s.default),!!d){if(se(d)){if(!s.responsive)continue;d=Mn(d,s)}if(s.type==="enum"){let f=Ke({allowArbitraryValues:!1,value:d,className:s.className,propValues:s.values,propValueSet:s.valueSet,parseValue:s.parseValue});f&&u.push(f);continue}if(s.type==="string"||s.type==="enum | string"){let[f,b]=At({className:s.className,customProperties:s.customProperties,propValues:s.type==="string"?[]:s.values,propValueSet:s.type==="string"?void 0:s.valueSet,parseValue:s.parseValue,value:d});b&&(i=_e(i,b)),f&&u.push(f);continue}if(s.type==="boolean"){u.push(s.className);continue}}}return a.className=(0,Bt.default)(u.length>0?u.join(" "):void 0,e.className),a.style=_e(i,e.style),a}var Ot={width:{type:"string",className:"kui-r-w",customProperties:["--width"],responsive:!0},minWidth:{type:"string",className:"kui-r-min-w",customProperties:["--min-width"],responsive:!0},maxWidth:{type:"string",className:"kui-r-max-w",customProperties:["--max-width"],responsive:!0}};var Ft={height:{type:"string",className:"kui-r-h",customProperties:["--height"],responsive:!0},minHeight:{type:"string",className:"kui-r-min-h",customProperties:["--min-height"],responsive:!0},maxHeight:{type:"string",className:"kui-r-max-h",customProperties:["--max-height"],responsive:!0}};var An='[role="menu"], [role="listbox"]';function Bn(e,t){V.useEffect(()=>{if(!t||!e||e.closest(An))return;let n=0,r=()=>{n=0;let i=We(e);i.x>0||i.y>0?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")},o=()=>{n||(n=requestAnimationFrame(r))};r();let a=typeof ResizeObserver>"u"?null:new ResizeObserver(o);a?.observe(e);for(let i of Array.from(e.children))a?.observe(i);return()=>{n&&cancelAnimationFrame(n),a?.disconnect()}},[e,t])}var De=V.forwardRef((e,t)=>{let{asChild:n,children:r,className:o,style:a,type:i,scrollHideDelay:u=i!=="scroll"?0:void 0,dir:l,radius:s=we.radius.default,scrollbars:d=we.scrollbars.default,fade:f=we.fade.default,...b}=Ht(e,Ot,Ft),[k,N]=V.useState(null),F=kt(f),T=Dt(),h=(0,It.useComposedRefs)(t,F,T,N);Bn(k,b.tabIndex===void 0);let L=b["aria-label"]!==void 0||b["aria-labelledby"]!==void 0;return V.createElement(ne.ScrollArea.Root,{type:i,scrollHideDelay:u,dir:l,className:(0,$t.default)("kui-ScrollAreaRoot",o),"data-fade":f?"":void 0,style:a,asChild:n},Vt({asChild:n,children:r},_=>V.createElement(V.Fragment,null,V.createElement(ne.ScrollArea.Viewport,{role:L?"region":void 0,...b,ref:h,className:"kui-ScrollAreaViewport"},_),V.createElement("div",{className:"kui-ScrollAreaViewportFocusRing"}),d!=="vertical"?V.createElement(ne.ScrollArea.Scrollbar,{"data-radius":s,orientation:"horizontal",className:"kui-ScrollAreaScrollbar"},V.createElement(ne.ScrollArea.Thumb,{className:"kui-ScrollAreaThumb"})):null,d!=="horizontal"?V.createElement(ne.ScrollArea.Scrollbar,{"data-radius":s,orientation:"vertical",className:"kui-ScrollAreaScrollbar"},V.createElement(ne.ScrollArea.Thumb,{className:"kui-ScrollAreaThumb"})):null,d==="both"?V.createElement(ne.ScrollArea.Corner,{className:"kui-ScrollAreaCorner"}):null)))});De.displayName="ScrollArea";var jt=z(require("react")),Ve=jt.createContext(void 0);var Ut=z(require("react")),Hn="(max-width: 767.98px) and (pointer: coarse)",Wt,qt=()=>Wt??(Wt=window.matchMedia(Hn));function On(e,t){return typeof e.addEventListener=="function"?(e.addEventListener("change",t),()=>e.removeEventListener("change",t)):(e.addListener?.(t),()=>e.removeListener?.(t))}function Fn(e){return On(qt(),e)}function Kt(){return Ut.useSyncExternalStore(Fn,()=>qt().matches,()=>!1)}var _t=S.createContext(null);function Ge(){return S.useContext(_t)}var Qe=S.createContext("2"),$n=S.createContext(!1),In=S.createContext(!1);function Gt({children:e,presentation:t}){let n=S.useContext(Qe),r=S.useMemo(()=>({size:n,menuVariant:"soft",presentation:t}),[n,t]);return S.createElement(_t.Provider,{value:r},e)}function Ye(){let e=Ge(),t=S.useContext(Qe),n=e?.size??t,r=e?.menuVariant??"soft";return["kui-ShellPaneChrome",`kui-r-size-${n}`,`kui-menu-variant-${r}`]}var jn={1:"2",2:"3",3:"4",4:"4"};function Qt(){let e=Ge(),t=S.useContext(Qe);return jn[e?.size??t]}var Wn=S.forwardRef(({className:e,float:t,children:n,...r},o)=>{let a=Ye(),i=Qt();return S.createElement("div",{...r,ref:o,"data-float":t||void 0,className:(0,Se.default)("kui-ShellPaneHeader","kui-SidebarHeader","kui-SidebarHeader--container",...a,e)},S.createElement(Ve.Provider,{value:i},n))});Wn.displayName="Shell.PaneHeader";var Un=S.forwardRef(({className:e,float:t,children:n,...r},o)=>{let a=Ye(),i=Qt();return S.createElement("div",{...r,ref:o,"data-float":t||void 0,className:(0,Se.default)("kui-ShellPaneFooter","kui-SidebarFooter","kui-SidebarFooter--container",...a,e)},S.createElement(Ve.Provider,{value:i},n))});Un.displayName="Shell.PaneFooter";var qn=S.forwardRef(({className:e,style:t,dir:n,children:r,fade:o=!1,pane:a=!1,...i},u)=>{let l=Ye(),s=S.useContext($n),d=Ge(),f=s&&d===null&&!a,b=S.useContext(In),k=Kt();if(f){let N=i.tabIndex??(b&&k?-1:void 0);return S.createElement(De,{...i,tabIndex:N,ref:u,type:"hover",fade:o,className:"kui-ShellScroll"},S.createElement("div",{style:t,dir:n,className:(0,Se.default)("kui-ShellScrollContent",e)},r))}return S.createElement(De,{...i,ref:u,type:"hover",fade:o,className:"kui-ShellScroll"},S.createElement("div",{style:t,dir:n,className:(0,Se.default)("kui-BaseMenuContent","kui-SidebarContent",...l,e)},S.createElement(Ve.Provider,{value:null},S.createElement("div",{className:"kui-BaseMenuViewport"},r))))});qn.displayName="Shell.Scroll";var X=z(require("react")),Kn=X.createContext(null);function Yt({children:e}){let t=X.useMemo(()=>({title:null,mirrors:new Set,collapsed:!1,listeners:new Set,version:0}),[]);return X.createElement(Kn.Provider,{value:t},e)}var Xt=e=>e==="collapsed"?"closed":"open",_n=e=>e==="closed"?"collapsed":"expanded";function Jt(e){if(e===void 0)return;if(typeof e=="string")return Xt(e);let t={};for(let[n,r]of Object.entries(e))r!==void 0&&(t[n]=Xt(r));return t}var Gn={controlled:"state",default:"defaultState"},Qn={initial:"overlay",sm:"fixed"},Xe=K.forwardRef((e,t)=>{let{className:n,presentation:r=Qn,expandedSize:o=288,minSize:a=200,maxSize:i=400,resizable:u=!1,collapsible:l=!0,onExpand:s,onCollapse:d,onResize:f,onResizeStart:b,onResizeEnd:k,snapPoints:N,snapTolerance:F,collapseThreshold:T,paneId:h,persistence:L,children:_,style:$,state:J,defaultState:I,onStateChange:q,size:O,defaultSize:M,onSizeChange:j,sizeUpdate:p,sizeUpdateMs:g=50,flush:C=!0,id:E,...A}=e,{table:c,attributes:v}=yt(r,"fixed"),P=bt({name:"sidebar",label:"Sidebar",propNames:Gn,id:E,controlled:Jt(J),defaultValue:Jt(I),presentationTable:c,builtIn:Ct,onChange:(te,Le)=>q?.(_n(te),{reason:Le}),onExpand:s,onCollapse:d,size:o});gt("sidebar",C),K.useEffect(()=>{(N!==void 0||T!==void 0||h!==void 0||L!==void 0)&&void 0},[N,T,h,L]);let B=K.useRef(null),W=(0,en.useComposedRefs)(t,P.setElement,B),H=Rt({name:"sidebar",elementId:P.id,elementRef:B,cssVarName:"--sidebar-size",orientation:"vertical",edge:"end",growth:Et,expandedSize:o,minSize:a,maxSize:i,resizable:u,collapsible:l,size:O,defaultSize:M,onSizeChange:j,sizeUpdate:p,sizeUpdateMs:g,onResize:f,onResizeStart:b,onResizeEnd:k,snapPoints:N,snapTolerance:F,collapseThreshold:T,paneId:h,persistence:L,overlaying:P.overlaying,overlayingNow:()=>c[me()]==="overlay",requestCollapse:()=>P.setValue("closed","toggle"),requestToggle:()=>P.toggle("toggle")}),{handles:R,content:m}=xt(_,Re),G=u&&P.value!=="closed"&&!P.overlaying?K.createElement(Be.Provider,{value:H},R.length>0?R:K.createElement(ie,null)):null,Q=P.peeking?`var(--sidebar-size, ${o}px)`:void 0,re=vt(O,M,a,i);return K.createElement("div",{...wt(A),role:A.role??"navigation",id:P.id,ref:W,className:(0,Zt.default)("kui-ShellPane","kui-ShellSidebar",n),...St(P,v),"data-flush":C||void 0,tabIndex:P.overlaying?-1:A.tabIndex,style:{...$,"--sidebar-expanded-size":`${o}px`,...re?{"--sidebar-size":re}:{},"--sidebar-min-size":`${a}px`,"--sidebar-max-size":`${i}px`,...Q?{"--peek-sidebar-width":Q}:{}}},K.createElement("div",{className:"kui-ShellSidebarContent"},K.createElement(Gt,null,K.createElement(Yt,null,m))),G)});Xe.displayName="Shell.Sidebar";Xe.Handle=Re;
|
|
3
3
|
//# sourceMappingURL=shell-sidebar.js.map
|