@kushagradhawan/kookie-ui 0.1.123 → 0.1.125

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.
Files changed (66) hide show
  1. package/dist/cjs/components/_internal/shell-bottom.d.ts.map +1 -1
  2. package/dist/cjs/components/_internal/shell-bottom.js +1 -1
  3. package/dist/cjs/components/_internal/shell-bottom.js.map +2 -2
  4. package/dist/cjs/components/_internal/shell-handles.js +1 -1
  5. package/dist/cjs/components/_internal/shell-handles.js.map +2 -2
  6. package/dist/cjs/components/_internal/shell-inspector.d.ts.map +1 -1
  7. package/dist/cjs/components/_internal/shell-inspector.js +1 -1
  8. package/dist/cjs/components/_internal/shell-inspector.js.map +2 -2
  9. package/dist/cjs/components/_internal/shell-prop-helpers.js.map +2 -2
  10. package/dist/cjs/components/_internal/shell-sidebar.d.ts.map +1 -1
  11. package/dist/cjs/components/_internal/shell-sidebar.js +1 -1
  12. package/dist/cjs/components/_internal/shell-sidebar.js.map +2 -2
  13. package/dist/cjs/components/combobox.d.ts.map +1 -1
  14. package/dist/cjs/components/combobox.js +1 -1
  15. package/dist/cjs/components/combobox.js.map +3 -3
  16. package/dist/cjs/components/shell.context.d.ts +2 -0
  17. package/dist/cjs/components/shell.context.d.ts.map +1 -1
  18. package/dist/cjs/components/shell.context.js +1 -1
  19. package/dist/cjs/components/shell.context.js.map +2 -2
  20. package/dist/cjs/components/shell.d.ts.map +1 -1
  21. package/dist/cjs/components/shell.js +1 -1
  22. package/dist/cjs/components/shell.js.map +3 -3
  23. package/dist/cjs/components/shell.types.d.ts +11 -0
  24. package/dist/cjs/components/shell.types.d.ts.map +1 -1
  25. package/dist/cjs/components/shell.types.js +1 -1
  26. package/dist/cjs/components/shell.types.js.map +1 -1
  27. package/dist/esm/components/_internal/shell-bottom.d.ts.map +1 -1
  28. package/dist/esm/components/_internal/shell-bottom.js +1 -1
  29. package/dist/esm/components/_internal/shell-bottom.js.map +2 -2
  30. package/dist/esm/components/_internal/shell-handles.js +1 -1
  31. package/dist/esm/components/_internal/shell-handles.js.map +2 -2
  32. package/dist/esm/components/_internal/shell-inspector.d.ts.map +1 -1
  33. package/dist/esm/components/_internal/shell-inspector.js +1 -1
  34. package/dist/esm/components/_internal/shell-inspector.js.map +2 -2
  35. package/dist/esm/components/_internal/shell-prop-helpers.js.map +2 -2
  36. package/dist/esm/components/_internal/shell-sidebar.d.ts.map +1 -1
  37. package/dist/esm/components/_internal/shell-sidebar.js +1 -1
  38. package/dist/esm/components/_internal/shell-sidebar.js.map +2 -2
  39. package/dist/esm/components/combobox.d.ts.map +1 -1
  40. package/dist/esm/components/combobox.js +1 -1
  41. package/dist/esm/components/combobox.js.map +3 -3
  42. package/dist/esm/components/shell.context.d.ts +2 -0
  43. package/dist/esm/components/shell.context.d.ts.map +1 -1
  44. package/dist/esm/components/shell.context.js.map +2 -2
  45. package/dist/esm/components/shell.d.ts.map +1 -1
  46. package/dist/esm/components/shell.js +1 -1
  47. package/dist/esm/components/shell.js.map +3 -3
  48. package/dist/esm/components/shell.types.d.ts +11 -0
  49. package/dist/esm/components/shell.types.d.ts.map +1 -1
  50. package/dist/esm/components/shell.types.js.map +1 -1
  51. package/package.json +1 -1
  52. package/schemas/base-button.json +1 -1
  53. package/schemas/button.json +1 -1
  54. package/schemas/icon-button.json +1 -1
  55. package/schemas/index.json +6 -6
  56. package/schemas/toggle-button.json +1 -1
  57. package/schemas/toggle-icon-button.json +1 -1
  58. package/src/components/_internal/shell-bottom.tsx +5 -5
  59. package/src/components/_internal/shell-handles.tsx +26 -26
  60. package/src/components/_internal/shell-inspector.tsx +5 -5
  61. package/src/components/_internal/shell-prop-helpers.ts +1 -1
  62. package/src/components/_internal/shell-sidebar.tsx +10 -10
  63. package/src/components/combobox.tsx +176 -80
  64. package/src/components/shell.context.tsx +12 -10
  65. package/src/components/shell.tsx +21 -20
  66. package/src/components/shell.types.ts +13 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/shell.context.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nimport type { Breakpoint, PresentationValue, SidebarMode, PaneMode, PaneTarget } from './shell.types.js';\n\nexport interface ShellContextValue {\n // Pane states\n leftMode: PaneMode;\n setLeftMode: (mode: PaneMode) => void;\n panelMode: PaneMode; // Panel state within left container\n setPanelMode: (mode: PaneMode) => void;\n sidebarMode: SidebarMode;\n setSidebarMode: (mode: SidebarMode) => void;\n inspectorMode: PaneMode;\n setInspectorMode: (mode: PaneMode) => void;\n bottomMode: PaneMode;\n setBottomMode: (mode: PaneMode) => void;\n\n // Peek state (layout-only, ephemeral)\n peekTarget: PaneTarget | null;\n setPeekTarget: (target: PaneTarget | null) => void;\n peekPane: (target: PaneTarget) => void;\n clearPeek: () => void;\n\n // Composition detection\n hasLeft: boolean;\n setHasLeft: (has: boolean) => void;\n hasSidebar: boolean;\n setHasSidebar: (has: boolean) => void;\n\n // Presentation resolution\n currentBreakpoint: Breakpoint;\n currentBreakpointReady: boolean;\n leftResolvedPresentation?: PresentationValue;\n\n // Actions\n togglePane: (target: PaneTarget) => void;\n expandPane: (target: PaneTarget) => void;\n collapsePane: (target: PaneTarget) => void;\n // Toggle customization\n setSidebarToggleComputer?: (fn: (current: SidebarMode) => SidebarMode) => void;\n // Dev-only hooks for presentation warnings\n onLeftPres?: (p: PresentationValue) => void;\n // Sizing info for overlay grouping\n onLeftDefaults?: (size: number) => void;\n}\n\nconst ShellContext = React.createContext<ShellContextValue | null>(null);\n\n/** @internal Shell root context. Prefer slice hooks (useSidebarMode, useShellActions, etc.). */\nexport function useShell() {\n const ctx = React.useContext(ShellContext);\n if (!ctx) throw new Error('Shell components must be used within <Shell.Root>');\n return ctx;\n}\n\nexport function ShellProvider({ value, children }: { value: ShellContextValue; children: React.ReactNode }) {\n return <ShellContext.Provider value={value}>{children}</ShellContext.Provider>;\n}\n\n// Phase 7: Split contexts for render isolation\n\n// Pane mode slice contexts\ntype ModeSetter<T> = (mode: T) => void;\n\nexport const LeftModeContext = React.createContext<{ leftMode: PaneMode; setLeftMode: ModeSetter<PaneMode> } | null>(null as any);\nexport function useLeftMode() {\n const ctx = React.useContext(LeftModeContext);\n if (!ctx) throw new Error('useLeftMode must be used within Shell.Root');\n return ctx;\n}\n\nexport const PanelModeContext = React.createContext<{ panelMode: PaneMode; setPanelMode: ModeSetter<PaneMode> } | null>(null as any);\nexport function usePanelMode() {\n const ctx = React.useContext(PanelModeContext);\n if (!ctx) throw new Error('usePanelMode must be used within Shell.Root');\n return ctx;\n}\n\nexport const SidebarModeContext = React.createContext<{ sidebarMode: SidebarMode; setSidebarMode: ModeSetter<SidebarMode> } | null>(null as any);\nexport function useSidebarMode() {\n const ctx = React.useContext(SidebarModeContext);\n if (!ctx) throw new Error('useSidebarMode must be used within Shell.Root');\n return ctx;\n}\n\nexport const InspectorModeContext = React.createContext<{ inspectorMode: PaneMode; setInspectorMode: ModeSetter<PaneMode> } | null>(null as any);\nexport function useInspectorMode() {\n const ctx = React.useContext(InspectorModeContext);\n if (!ctx) throw new Error('useInspectorMode must be used within Shell.Root');\n return ctx;\n}\n\nexport const BottomModeContext = React.createContext<{ bottomMode: PaneMode; setBottomMode: ModeSetter<PaneMode> } | null>(null as any);\nexport function useBottomMode() {\n const ctx = React.useContext(BottomModeContext);\n if (!ctx) throw new Error('useBottomMode must be used within Shell.Root');\n return ctx;\n}\n\n// Presentation slice\nexport const PresentationContext = React.createContext<{ currentBreakpoint: Breakpoint; currentBreakpointReady: boolean; leftResolvedPresentation?: PresentationValue } | null>(null as any);\nexport function usePresentation() {\n const ctx = React.useContext(PresentationContext);\n if (!ctx) throw new Error('usePresentation must be used within Shell.Root');\n return ctx;\n}\n\n// Peek slice\nexport const PeekContext = React.createContext<{ peekTarget: PaneTarget | null; setPeekTarget: (t: PaneTarget | null) => void; peekPane: (t: PaneTarget) => void; clearPeek: () => void } | null>(\n null as any,\n);\nexport function usePeek() {\n const ctx = React.useContext(PeekContext);\n if (!ctx) throw new Error('usePeek must be used within Shell.Root');\n return ctx;\n}\n\n// Actions slice (stable callbacks)\nexport const ActionsContext = React.createContext<{\n togglePane: (t: PaneTarget) => void;\n expandPane: (t: PaneTarget) => void;\n collapsePane: (t: PaneTarget) => void;\n setSidebarToggleComputer?: (fn: (current: SidebarMode) => SidebarMode) => void;\n} | null>(null as any);\nexport function useShellActions() {\n const ctx = React.useContext(ActionsContext);\n if (!ctx) throw new Error('useShellActions must be used within Shell.Root');\n return ctx;\n}\n\n// Composition slice\nexport const CompositionContext = React.createContext<{ hasLeft: boolean; setHasLeft: (v: boolean) => void; hasSidebar: boolean; setHasSidebar: (v: boolean) => void } | null>(null as any);\nexport function useComposition() {\n const ctx = React.useContext(CompositionContext);\n if (!ctx) throw new Error('useComposition must be used within Shell.Root');\n return ctx;\n}\n\n// Inset slice - tracks which panes have inset for gray backdrop\nexport type InsetPaneId = 'left' | 'sidebar' | 'content' | 'inspector' | 'bottom';\nexport const InsetContext = React.createContext<{\n insetPanes: Set<InsetPaneId>;\n registerInset: (id: InsetPaneId) => void;\n unregisterInset: (id: InsetPaneId) => void;\n hasAnyInset: boolean;\n} | null>(null as any);\nexport function useInset() {\n const ctx = React.useContext(InsetContext);\n if (!ctx) throw new Error('useInset must be used within Shell.Root');\n return ctx;\n}\n"],
5
- "mappings": "AAAA,UAAYA,MAAW,QA6CvB,MAAMC,EAAeD,EAAM,cAAwC,IAAI,EAGhE,SAASE,GAAW,CACzB,MAAMC,EAAMH,EAAM,WAAWC,CAAY,EACzC,GAAI,CAACE,EAAK,MAAM,IAAI,MAAM,mDAAmD,EAC7E,OAAOA,CACT,CAEO,SAASC,EAAc,CAAE,MAAAC,EAAO,SAAAC,CAAS,EAA4D,CAC1G,OAAON,EAAA,cAACC,EAAa,SAAb,CAAsB,MAAOI,GAAQC,CAAS,CACxD,CAOO,MAAMC,EAAkBP,EAAM,cAAgF,IAAW,EACzH,SAASQ,GAAc,CAC5B,MAAML,EAAMH,EAAM,WAAWO,CAAe,EAC5C,GAAI,CAACJ,EAAK,MAAM,IAAI,MAAM,4CAA4C,EACtE,OAAOA,CACT,CAEO,MAAMM,EAAmBT,EAAM,cAAkF,IAAW,EAC5H,SAASU,GAAe,CAC7B,MAAMP,EAAMH,EAAM,WAAWS,CAAgB,EAC7C,GAAI,CAACN,EAAK,MAAM,IAAI,MAAM,6CAA6C,EACvE,OAAOA,CACT,CAEO,MAAMQ,EAAqBX,EAAM,cAA4F,IAAW,EACxI,SAASY,GAAiB,CAC/B,MAAMT,EAAMH,EAAM,WAAWW,CAAkB,EAC/C,GAAI,CAACR,EAAK,MAAM,IAAI,MAAM,+CAA+C,EACzE,OAAOA,CACT,CAEO,MAAMU,EAAuBb,EAAM,cAA0F,IAAW,EACxI,SAASc,GAAmB,CACjC,MAAMX,EAAMH,EAAM,WAAWa,CAAoB,EACjD,GAAI,CAACV,EAAK,MAAM,IAAI,MAAM,iDAAiD,EAC3E,OAAOA,CACT,CAEO,MAAMY,EAAoBf,EAAM,cAAoF,IAAW,EAC/H,SAASgB,GAAgB,CAC9B,MAAMb,EAAMH,EAAM,WAAWe,CAAiB,EAC9C,GAAI,CAACZ,EAAK,MAAM,IAAI,MAAM,8CAA8C,EACxE,OAAOA,CACT,CAGO,MAAMc,EAAsBjB,EAAM,cAAuI,IAAW,EACpL,SAASkB,GAAkB,CAChC,MAAMf,EAAMH,EAAM,WAAWiB,CAAmB,EAChD,GAAI,CAACd,EAAK,MAAM,IAAI,MAAM,gDAAgD,EAC1E,OAAOA,CACT,CAGO,MAAMgB,EAAcnB,EAAM,cAC/B,IACF,EACO,SAASoB,GAAU,CACxB,MAAMjB,EAAMH,EAAM,WAAWmB,CAAW,EACxC,GAAI,CAAChB,EAAK,MAAM,IAAI,MAAM,wCAAwC,EAClE,OAAOA,CACT,CAGO,MAAMkB,EAAiBrB,EAAM,cAK1B,IAAW,EACd,SAASsB,GAAkB,CAChC,MAAMnB,EAAMH,EAAM,WAAWqB,CAAc,EAC3C,GAAI,CAAClB,EAAK,MAAM,IAAI,MAAM,gDAAgD,EAC1E,OAAOA,CACT,CAGO,MAAMoB,EAAqBvB,EAAM,cAAuI,IAAW,EACnL,SAASwB,GAAiB,CAC/B,MAAMrB,EAAMH,EAAM,WAAWuB,CAAkB,EAC/C,GAAI,CAACpB,EAAK,MAAM,IAAI,MAAM,+CAA+C,EACzE,OAAOA,CACT,CAIO,MAAMsB,EAAezB,EAAM,cAKxB,IAAW,EACd,SAAS0B,GAAW,CACzB,MAAMvB,EAAMH,EAAM,WAAWyB,CAAY,EACzC,GAAI,CAACtB,EAAK,MAAM,IAAI,MAAM,yCAAyC,EACnE,OAAOA,CACT",
4
+ "sourcesContent": ["import * as React from 'react';\nimport type { Breakpoint, PresentationValue, SidebarMode, PaneMode, PaneTarget } from './shell.types.js';\n\nexport interface ShellContextValue {\n // Pane states\n leftMode: PaneMode;\n setLeftMode: (mode: PaneMode) => void;\n panelMode: PaneMode; // Panel state within left container\n setPanelMode: (mode: PaneMode) => void;\n sidebarMode: SidebarMode;\n setSidebarMode: (mode: SidebarMode) => void;\n inspectorMode: PaneMode;\n setInspectorMode: (mode: PaneMode) => void;\n bottomMode: PaneMode;\n setBottomMode: (mode: PaneMode) => void;\n\n // Peek state (layout-only, ephemeral)\n peekTarget: PaneTarget | null;\n setPeekTarget: (target: PaneTarget | null) => void;\n peekPane: (target: PaneTarget) => void;\n clearPeek: () => void;\n\n // Composition detection\n hasLeft: boolean;\n setHasLeft: (has: boolean) => void;\n hasSidebar: boolean;\n setHasSidebar: (has: boolean) => void;\n\n // Presentation resolution\n currentBreakpoint: Breakpoint;\n currentBreakpointReady: boolean;\n leftResolvedPresentation?: PresentationValue;\n\n // Actions\n togglePane: (target: PaneTarget) => void;\n expandPane: (target: PaneTarget) => void;\n collapsePane: (target: PaneTarget) => void;\n // Toggle customization\n setSidebarToggleComputer?: (fn: (current: SidebarMode) => SidebarMode) => void;\n // Dev-only hooks for presentation warnings\n onLeftPres?: (p: PresentationValue) => void;\n // Sizing info for overlay grouping\n onLeftDefaults?: (size: number) => void;\n onRailDefaults?: (size: number) => void;\n onPanelDefaults?: (size: number) => void;\n}\n\nconst ShellContext = React.createContext<ShellContextValue | null>(null);\n\n/** @internal Shell root context. Prefer slice hooks (useSidebarMode, useShellActions, etc.). */\nexport function useShell() {\n const ctx = React.useContext(ShellContext);\n if (!ctx) throw new Error('Shell components must be used within <Shell.Root>');\n return ctx;\n}\n\nexport function ShellProvider({ value, children }: { value: ShellContextValue; children: React.ReactNode }) {\n return <ShellContext.Provider value={value}>{children}</ShellContext.Provider>;\n}\n\n// Phase 7: Split contexts for render isolation\n\n// Pane mode slice contexts\ntype ModeSetter<T> = (mode: T) => void;\n\nexport const LeftModeContext = React.createContext<{ leftMode: PaneMode; setLeftMode: ModeSetter<PaneMode> } | null>(null);\nexport function useLeftMode() {\n const ctx = React.useContext(LeftModeContext);\n if (!ctx) throw new Error('useLeftMode must be used within Shell.Root');\n return ctx;\n}\n\nexport const PanelModeContext = React.createContext<{ panelMode: PaneMode; setPanelMode: ModeSetter<PaneMode> } | null>(null);\nexport function usePanelMode() {\n const ctx = React.useContext(PanelModeContext);\n if (!ctx) throw new Error('usePanelMode must be used within Shell.Root');\n return ctx;\n}\n\nexport const SidebarModeContext = React.createContext<{ sidebarMode: SidebarMode; setSidebarMode: ModeSetter<SidebarMode> } | null>(null);\nexport function useSidebarMode() {\n const ctx = React.useContext(SidebarModeContext);\n if (!ctx) throw new Error('useSidebarMode must be used within Shell.Root');\n return ctx;\n}\n\nexport const InspectorModeContext = React.createContext<{ inspectorMode: PaneMode; setInspectorMode: ModeSetter<PaneMode> } | null>(null);\nexport function useInspectorMode() {\n const ctx = React.useContext(InspectorModeContext);\n if (!ctx) throw new Error('useInspectorMode must be used within Shell.Root');\n return ctx;\n}\n\nexport const BottomModeContext = React.createContext<{ bottomMode: PaneMode; setBottomMode: ModeSetter<PaneMode> } | null>(null);\nexport function useBottomMode() {\n const ctx = React.useContext(BottomModeContext);\n if (!ctx) throw new Error('useBottomMode must be used within Shell.Root');\n return ctx;\n}\n\n// Presentation slice\nexport const PresentationContext = React.createContext<{ currentBreakpoint: Breakpoint; currentBreakpointReady: boolean; leftResolvedPresentation?: PresentationValue } | null>(null);\nexport function usePresentation() {\n const ctx = React.useContext(PresentationContext);\n if (!ctx) throw new Error('usePresentation must be used within Shell.Root');\n return ctx;\n}\n\n// Peek slice\nexport const PeekContext = React.createContext<{ peekTarget: PaneTarget | null; setPeekTarget: (t: PaneTarget | null) => void; peekPane: (t: PaneTarget) => void; clearPeek: () => void } | null>(\n null,\n);\nexport function usePeek() {\n const ctx = React.useContext(PeekContext);\n if (!ctx) throw new Error('usePeek must be used within Shell.Root');\n return ctx;\n}\n\n// Actions slice (stable callbacks)\nexport const ActionsContext = React.createContext<{\n togglePane: (t: PaneTarget) => void;\n expandPane: (t: PaneTarget) => void;\n collapsePane: (t: PaneTarget) => void;\n setSidebarToggleComputer?: (fn: (current: SidebarMode) => SidebarMode) => void;\n} | null>(null);\nexport function useShellActions() {\n const ctx = React.useContext(ActionsContext);\n if (!ctx) throw new Error('useShellActions must be used within Shell.Root');\n return ctx;\n}\n\n// Composition slice\nexport const CompositionContext = React.createContext<{ hasLeft: boolean; setHasLeft: (v: boolean) => void; hasSidebar: boolean; setHasSidebar: (v: boolean) => void } | null>(null);\nexport function useComposition() {\n const ctx = React.useContext(CompositionContext);\n if (!ctx) throw new Error('useComposition must be used within Shell.Root');\n return ctx;\n}\n\n// Inset slice - tracks which panes have inset for gray backdrop\nexport type InsetPaneId = 'left' | 'sidebar' | 'content' | 'inspector' | 'bottom';\nexport const InsetContext = React.createContext<{\n insetPanes: Set<InsetPaneId>;\n registerInset: (id: InsetPaneId) => void;\n unregisterInset: (id: InsetPaneId) => void;\n hasAnyInset: boolean;\n} | null>(null);\nexport function useInset() {\n const ctx = React.useContext(InsetContext);\n if (!ctx) throw new Error('useInset must be used within Shell.Root');\n return ctx;\n}\n"],
5
+ "mappings": "AAAA,UAAYA,MAAW,QA+CvB,MAAMC,EAAeD,EAAM,cAAwC,IAAI,EAGhE,SAASE,GAAW,CACzB,MAAMC,EAAMH,EAAM,WAAWC,CAAY,EACzC,GAAI,CAACE,EAAK,MAAM,IAAI,MAAM,mDAAmD,EAC7E,OAAOA,CACT,CAEO,SAASC,EAAc,CAAE,MAAAC,EAAO,SAAAC,CAAS,EAA4D,CAC1G,OAAON,EAAA,cAACC,EAAa,SAAb,CAAsB,MAAOI,GAAQC,CAAS,CACxD,CAOO,MAAMC,EAAkBP,EAAM,cAAgF,IAAI,EAClH,SAASQ,GAAc,CAC5B,MAAML,EAAMH,EAAM,WAAWO,CAAe,EAC5C,GAAI,CAACJ,EAAK,MAAM,IAAI,MAAM,4CAA4C,EACtE,OAAOA,CACT,CAEO,MAAMM,EAAmBT,EAAM,cAAkF,IAAI,EACrH,SAASU,GAAe,CAC7B,MAAMP,EAAMH,EAAM,WAAWS,CAAgB,EAC7C,GAAI,CAACN,EAAK,MAAM,IAAI,MAAM,6CAA6C,EACvE,OAAOA,CACT,CAEO,MAAMQ,EAAqBX,EAAM,cAA4F,IAAI,EACjI,SAASY,GAAiB,CAC/B,MAAMT,EAAMH,EAAM,WAAWW,CAAkB,EAC/C,GAAI,CAACR,EAAK,MAAM,IAAI,MAAM,+CAA+C,EACzE,OAAOA,CACT,CAEO,MAAMU,EAAuBb,EAAM,cAA0F,IAAI,EACjI,SAASc,GAAmB,CACjC,MAAMX,EAAMH,EAAM,WAAWa,CAAoB,EACjD,GAAI,CAACV,EAAK,MAAM,IAAI,MAAM,iDAAiD,EAC3E,OAAOA,CACT,CAEO,MAAMY,EAAoBf,EAAM,cAAoF,IAAI,EACxH,SAASgB,GAAgB,CAC9B,MAAMb,EAAMH,EAAM,WAAWe,CAAiB,EAC9C,GAAI,CAACZ,EAAK,MAAM,IAAI,MAAM,8CAA8C,EACxE,OAAOA,CACT,CAGO,MAAMc,EAAsBjB,EAAM,cAAuI,IAAI,EAC7K,SAASkB,GAAkB,CAChC,MAAMf,EAAMH,EAAM,WAAWiB,CAAmB,EAChD,GAAI,CAACd,EAAK,MAAM,IAAI,MAAM,gDAAgD,EAC1E,OAAOA,CACT,CAGO,MAAMgB,EAAcnB,EAAM,cAC/B,IACF,EACO,SAASoB,GAAU,CACxB,MAAMjB,EAAMH,EAAM,WAAWmB,CAAW,EACxC,GAAI,CAAChB,EAAK,MAAM,IAAI,MAAM,wCAAwC,EAClE,OAAOA,CACT,CAGO,MAAMkB,EAAiBrB,EAAM,cAK1B,IAAI,EACP,SAASsB,GAAkB,CAChC,MAAMnB,EAAMH,EAAM,WAAWqB,CAAc,EAC3C,GAAI,CAAClB,EAAK,MAAM,IAAI,MAAM,gDAAgD,EAC1E,OAAOA,CACT,CAGO,MAAMoB,EAAqBvB,EAAM,cAAuI,IAAI,EAC5K,SAASwB,GAAiB,CAC/B,MAAMrB,EAAMH,EAAM,WAAWuB,CAAkB,EAC/C,GAAI,CAACpB,EAAK,MAAM,IAAI,MAAM,+CAA+C,EACzE,OAAOA,CACT,CAIO,MAAMsB,EAAezB,EAAM,cAKxB,IAAI,EACP,SAAS0B,GAAW,CACzB,MAAMvB,EAAMH,EAAM,WAAWyB,CAAY,EACzC,GAAI,CAACtB,EAAK,MAAM,IAAI,MAAM,yCAAyC,EACnE,OAAOA,CACT",
6
6
  "names": ["React", "ShellContext", "useShell", "ctx", "ShellProvider", "value", "children", "LeftModeContext", "useLeftMode", "PanelModeContext", "usePanelMode", "SidebarModeContext", "useSidebarMode", "InspectorModeContext", "useInspectorMode", "BottomModeContext", "useBottomMode", "PresentationContext", "usePresentation", "PeekContext", "usePeek", "ActionsContext", "useShellActions", "CompositionContext", "useComposition", "InsetContext", "useInset"]
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../../src/components/shell.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../../src/components/shell.tsx"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use client";import*as e from"react";import X from"classnames";import*as he from"./sheet.js";import{VisuallyHidden as $e}from"./visually-hidden.js";import{useResponsivePresentation as Oe,useResponsiveInitialState as Le}from"./shell.hooks.js";import{PaneResizeContext as We}from"./_internal/shell-resize.js";import{PaneHandle as qe,PanelHandle as Se}from"./_internal/shell-handles.js";import{omitPaneProps as Ge,extractPaneDomProps as Qe,mapResponsiveBooleanToPaneMode as Ee}from"./_internal/shell-prop-helpers.js";import{Sidebar as ue}from"./_internal/shell-sidebar.js";import{Bottom as ve}from"./_internal/shell-bottom.js";import{Inspector as Ce}from"./_internal/shell-inspector.js";import{_BREAKPOINTS as Ke}from"./shell.types.js";import{normalizeToPx as Xe}from"../helpers/normalize-to-px.js";import{ShellProvider as Ye,useShell as ie,LeftModeContext as Je,PanelModeContext as Ze,SidebarModeContext as en,InspectorModeContext as nn,BottomModeContext as tn,PresentationContext as on,PeekContext as an,ActionsContext as ln,CompositionContext as sn,InsetContext as rn,useInset as ke}from"./shell.context.js";function dn(){const[t,a]=e.useState("initial"),[i,C]=e.useState(!1);return e.useEffect(()=>{if(typeof window>"u")return;const P=Object.entries(Ke).map(([f,l])=>[f,window.matchMedia(l)]),S=()=>{const f=P.filter(([,c])=>c.matches).map(([c])=>c),l=f[f.length-1]??"initial";a(l),C(!0)};S();const b=[];return P.forEach(([,f])=>{const l=f;typeof l.addEventListener=="function"&&typeof l.removeEventListener=="function"?(l.addEventListener("change",S),b.push(()=>l.removeEventListener?.("change",S))):typeof l.addListener=="function"&&typeof l.removeListener=="function"&&(l.addListener(S),b.push(()=>l.removeListener?.(S)))}),()=>{b.forEach(f=>{try{f()}catch{}})}},[]),{bp:t,ready:i}}const fe=Symbol("rtShellSlot");function Y(t,a){return t[fe]=a,t}function Rn(t,a){if(!e.isValidElement(t))return!1;const i=t.type;if(i===a)return!0;const C=a?.[fe];return!!(i?.[fe]&&C&&i[fe]===C)}Y(ue,"Shell.Sidebar"),Y(Ce,"Shell.Inspector"),Y(ve,"Shell.Bottom");function pn(t,a){switch(a.type){case"SET_LEFT_MODE":return a.mode==="collapsed"?{...t,leftMode:"collapsed",panelMode:"collapsed"}:{...t,leftMode:a.mode};case"SET_PANEL_MODE":return a.mode==="expanded"&&t.leftMode!=="expanded"?{...t,leftMode:"expanded",panelMode:"expanded"}:{...t,panelMode:a.mode};case"SET_SIDEBAR_MODE":return{...t,sidebarMode:a.mode};case"SET_INSPECTOR_MODE":return{...t,inspectorMode:a.mode};case"SET_BOTTOM_MODE":return{...t,bottomMode:a.mode};case"TOGGLE_PANE":{switch(a.target){case"left":case"rail":return{...t,leftMode:t.leftMode==="expanded"?"collapsed":"expanded",panelMode:t.leftMode==="expanded"?"collapsed":t.panelMode};case"panel":return t.leftMode==="collapsed"?{...t,leftMode:"expanded",panelMode:"expanded"}:{...t,panelMode:t.panelMode==="expanded"?"collapsed":"expanded"};case"sidebar":{const i=t.sidebarMode==="collapsed"?"expanded":t.sidebarMode==="expanded"?"collapsed":"expanded";return{...t,sidebarMode:i}}case"inspector":return{...t,inspectorMode:t.inspectorMode==="expanded"?"collapsed":"expanded"};case"bottom":return{...t,bottomMode:t.bottomMode==="expanded"?"collapsed":"expanded"};default:return t}return t}case"EXPAND_PANE":{switch(a.target){case"left":case"rail":return{...t,leftMode:"expanded"};case"panel":return{...t,leftMode:"expanded",panelMode:"expanded"};case"sidebar":return{...t,sidebarMode:"expanded"};case"inspector":return{...t,inspectorMode:"expanded"};case"bottom":return{...t,bottomMode:"expanded"};default:return t}return t}case"COLLAPSE_PANE":{switch(a.target){case"left":case"rail":return{...t,leftMode:"collapsed",panelMode:"collapsed"};case"panel":return{...t,panelMode:"collapsed"};case"sidebar":return{...t,sidebarMode:"collapsed"};case"inspector":return{...t,inspectorMode:"collapsed"};case"bottom":return{...t,bottomMode:"collapsed"};default:return t}return t}}return t}const ze=e.forwardRef(({className:t,children:a,height:i="full",...C},M)=>{const{bp:P,ready:S}=dn(),b=e.Children.toArray(a),f=b.some(n=>e.isValidElement(n)&&n.type?.displayName==="Shell.Panel"&&!!n.props?.defaultOpen),l=b.find(n=>e.isValidElement(n)&&n.type?.displayName==="Shell.Rail"),c=l?l.props?.defaultOpen:void 0,z=l?c===void 0?!0:typeof c=="boolean"?c:typeof c=="object"?c.initial??Object.values(c)[0]??!0:!0:!1,j=b.some(n=>e.isValidElement(n)&&n.type?.displayName==="Shell.Inspector"&&!!n.props?.defaultOpen),_=b.some(n=>e.isValidElement(n)&&n.type?.displayName==="Shell.Inspector"&&typeof n.props?.open<"u"&&!!n.props?.open),h=()=>{const n=b.find(u=>e.isValidElement(u)&&u.type?.displayName==="Shell.Sidebar");if(!n)return"expanded";const d=n.props;if(typeof d?.state<"u"){if(typeof d.state=="string")return d.state;if(typeof d.state=="object")return d.state.initial??Object.values(d.state)[0]??"expanded"}if(typeof d?.defaultState<"u"){if(typeof d.defaultState=="string")return d.defaultState;if(typeof d.defaultState=="object")return d.defaultState.initial??Object.values(d.defaultState)[0]??"expanded"}return"expanded"},L=()=>{const n=b.find(u=>e.isValidElement(u)&&u.type?.displayName==="Shell.Bottom");if(!n)return"collapsed";const d=n.props;if(typeof d?.open<"u"){if(typeof d.open=="boolean")return d.open?"expanded":"collapsed";if(typeof d.open=="object")return d.open.initial??Object.values(d.open)[0]?"expanded":"collapsed"}return typeof d?.defaultOpen<"u"&&d.defaultOpen?"expanded":"collapsed"},[p,r]=e.useReducer(pn,{leftMode:f||z?"expanded":"collapsed",panelMode:f?"expanded":"collapsed",sidebarMode:h(),inspectorMode:j||_?"expanded":"collapsed",bottomMode:L()}),g=e.useCallback(n=>r({type:"SET_LEFT_MODE",mode:n}),[]),F=e.useCallback(n=>r({type:"SET_PANEL_MODE",mode:n}),[]),k=e.useCallback(n=>r({type:"SET_SIDEBAR_MODE",mode:n}),[]),w=e.useCallback(n=>r({type:"SET_INSPECTOR_MODE",mode:n}),[]),A=e.useCallback(n=>r({type:"SET_BOTTOM_MODE",mode:n}),[]),[D,ee]=e.useState(!1),[T,I]=e.useState(!1),$=e.useRef(n=>n==="collapsed"?"thin":n==="thin"?"expanded":"collapsed"),R=e.useCallback(n=>{$.current=n},[]);e.useEffect(()=>{T&&D&&console.warn("Shell: Sidebar cannot coexist with Rail or Panel. Use either Rail+Panel OR Sidebar.")},[T,D]);const[x,B]=e.useState(void 0),s=e.useCallback(n=>B(n),[]),N=e.useRef(64),W=e.useRef(288),ne=e.useCallback(n=>{N.current=n},[]),q=e.useCallback(n=>{W.current=n},[]),te=e.useMemo(()=>{const n=e.Children.toArray(a),d=(u,K)=>e.isValidElement(u)&&(u.type===K||u.type?.displayName===K.displayName);return n.some(u=>d(u,J)||d(u,Z))},[a]),oe=e.useMemo(()=>{const n=e.Children.toArray(a),d=(u,K)=>e.isValidElement(u)&&(u.type===K||u.type?.displayName===K.displayName);return n.some(u=>d(u,ue))},[a]),m=e.useCallback(n=>{if(n==="sidebar"){const d=$.current(p.sidebarMode);k(d);return}r({type:"TOGGLE_PANE",target:n})},[p.sidebarMode,k]),y=e.useCallback(n=>{if(n==="sidebar")return k("expanded");r({type:"EXPAND_PANE",target:n})},[k]),ae=e.useCallback(n=>{if(n==="sidebar")return k("collapsed");r({type:"COLLAPSE_PANE",target:n})},[k]),re=e.useMemo(()=>({leftMode:p.leftMode,setLeftMode:g,panelMode:p.panelMode,setPanelMode:F,sidebarMode:p.sidebarMode,setSidebarMode:k,inspectorMode:p.inspectorMode,setInspectorMode:w,bottomMode:p.bottomMode,setBottomMode:A,hasLeft:D,setHasLeft:ee,hasSidebar:T,setHasSidebar:I,currentBreakpoint:P,currentBreakpointReady:S,leftResolvedPresentation:x,togglePane:m,expandPane:y,collapsePane:ae,setSidebarToggleComputer:R,onLeftPres:s,onRailDefaults:ne,onPanelDefaults:q}),[p.leftMode,g,p.panelMode,F,p.sidebarMode,k,p.inspectorMode,w,p.bottomMode,A,D,T,P,S,x,m,y,ae,R,s,ne,q]),H=e.Children.toArray(a),U=(n,d)=>e.isValidElement(n)&&(n.type===d||n.type?.displayName===d.displayName),le=H.filter(n=>U(n,xe)),G=H.filter(n=>U(n,J)),Q=H.filter(n=>U(n,Z)),de=H.filter(n=>U(n,ue)),ye=H.filter(n=>U(n,Me)),o=H.filter(n=>U(n,Ce)),E=H.filter(n=>U(n,ve)),v=G[0]?.props?.open;e.useEffect(()=>{if(typeof v>"u")return;g(!!v?"expanded":"collapsed")},[v,g]);const O=e.useMemo(()=>i==="full"?{height:"100vh"}:i==="auto"?{height:"auto"}:typeof i=="string"?{height:i}:typeof i=="number"?{height:`${i}px`}:{},[i]),[V,se]=e.useState(null),pe=e.useCallback(n=>se(n),[]),ce=e.useCallback(()=>se(null),[]),_e=e.useMemo(()=>({currentBreakpoint:P,currentBreakpointReady:S,leftResolvedPresentation:x}),[P,S,x]),De=e.useMemo(()=>({leftMode:p.leftMode,setLeftMode:g}),[p.leftMode,g]),Be=e.useMemo(()=>({panelMode:p.panelMode,setPanelMode:F}),[p.panelMode,F]),Ae=e.useMemo(()=>({sidebarMode:p.sidebarMode,setSidebarMode:k}),[p.sidebarMode,k]),we=e.useMemo(()=>({inspectorMode:p.inspectorMode,setInspectorMode:w}),[p.inspectorMode,w]),Ie=e.useMemo(()=>({bottomMode:p.bottomMode,setBottomMode:A}),[p.bottomMode,A]),He=e.useMemo(()=>({hasLeft:D,setHasLeft:ee,hasSidebar:T,setHasSidebar:I}),[D,ee,T,I]),[Pe,Re]=e.useState(new Set),ge=e.useCallback(n=>{Re(d=>{if(d.has(n))return d;const u=new Set(d);return u.add(n),u})},[]),Te=e.useCallback(n=>{Re(d=>{if(!d.has(n))return d;const u=new Set(d);return u.delete(n),u})},[]),be=Pe.size>0,Ve=e.useMemo(()=>({insetPanes:Pe,registerInset:ge,unregisterInset:Te,hasAnyInset:be}),[Pe,ge,Te,be]),je=e.useMemo(()=>({peekTarget:V,setPeekTarget:se,peekPane:pe,clearPeek:ce}),[V,se,pe,ce]),Ue=e.useMemo(()=>({togglePane:m,expandPane:y,collapsePane:ae,setSidebarToggleComputer:R}),[m,y,ae,R]),Fe=e.useMemo(()=>({...re,peekTarget:V,setPeekTarget:se,peekPane:pe,clearPeek:ce}),[re,V,se,pe,ce]);return e.createElement("div",{...C,ref:M,className:X("rt-ShellRoot",t),style:{...O,...C.style}},e.createElement(Ye,{value:Fe},e.createElement(on.Provider,{value:_e},e.createElement(Je.Provider,{value:De},e.createElement(Ze.Provider,{value:Be},e.createElement(en.Provider,{value:Ae},e.createElement(nn.Provider,{value:we},e.createElement(tn.Provider,{value:Ie},e.createElement(sn.Provider,{value:He},e.createElement(an.Provider,{value:je},e.createElement(ln.Provider,{value:Ue},e.createElement(rn.Provider,{value:Ve},le,e.createElement("div",{className:"rt-ShellBody","data-peek-target":V??void 0,"data-has-inset":be||void 0,style:V==="rail"||V==="panel"?{"--peek-rail-width":`${N.current}px`}:void 0},te&&!oe?(()=>{const n=G[0],d=Q[0],u=!!n?.props?.inset||!!d?.props?.inset,K=n?{onOpenChange:n.props?.onOpenChange,open:n.props?.open,defaultOpen:n.props?.defaultOpen,presentation:n.props?.presentation,collapsible:n.props?.collapsible,onExpand:n.props?.onExpand,onCollapse:n.props?.onCollapse,inset:u}:{defaultOpen:f?!0:void 0,inset:u};return e.createElement(me,{...K},G,Q)})():de,ye,o),E))))))))))))});ze.displayName="Shell.Root";const xe=e.forwardRef(({className:t,height:a=64,style:i,...C},M)=>e.createElement("header",{...C,ref:M,className:X("rt-ShellHeader",t),style:{...i,"--shell-header-height":`${a}px`}}));xe.displayName="Shell.Header";const cn=["open","defaultOpen","onOpenChange","mode","defaultMode","onModeChange"],me=e.forwardRef((t,a)=>{const{className:i,presentation:C={initial:"fixed",sm:"fixed"},collapsible:M=!0,onExpand:P,onCollapse:S,children:b,style:f,inset:l,...c}=t,{registerInset:z,unregisterInset:j}=ke();e.useEffect(()=>{if(l)return z("left"),()=>j("left")},[l,z,j]);const _=c.open,h=c.defaultOpen,L=c.onOpenChange,p=Ge(c,cn),r=ie(),g=Oe(C),F=g==="overlay",k=g==="stacked",w=e.useRef(null);e.useEffect(()=>{r.onLeftPres?.(g)},[r,g]);const A=e.useCallback(R=>{w.current=R,typeof a=="function"?a(R):a&&(a.current=R)},[a]);e.useEffect(()=>(r.setHasLeft(!0),()=>r.setHasLeft(!1)),[r]);const D=e.useRef(null),ee=e.useRef(!1),T=e.useMemo(()=>{if(!(typeof _>"u"))return _?"expanded":"collapsed"},[_]),I=e.useMemo(()=>Ee(h),[h]);Le({controlledValue:T,defaultValue:I,currentValue:r.leftMode,setValue:r.setLeftMode,breakpointReady:r.currentBreakpointReady,onInit:R=>L?.(R==="expanded",{reason:"init"})}),e.useEffect(()=>{typeof _<"u"||(D.current!==null&&D.current!==r.leftMode&&L?.(r.leftMode==="expanded",{reason:"toggle"}),D.current=r.leftMode)},[r,L,_]),e.useEffect(()=>{r.leftMode==="expanded"?P?.():S?.()},[r.leftMode,P,S]);const $=r.leftMode==="expanded";if(F){const R=r.leftMode==="expanded",x=e.Children.toArray(b),B=(m,y)=>e.isValidElement(m)&&m.type===y,s=x.find(m=>B(m,J)),N=x.find(m=>B(m,Z)),W=typeof s?.props?.expandedSize=="number"?s.props.expandedSize:64,ne=typeof N?.props?.expandedSize=="number"?N.props.expandedSize:288,q=!!s,te=!!N,oe=(q?W:0)+(r.panelMode==="expanded"&&te?ne:0);return e.createElement(he.Root,{open:R,onOpenChange:m=>r.setLeftMode(m?"expanded":"collapsed")},e.createElement(he.Content,{side:"start",style:{padding:0},width:{initial:`${oe}px`}},e.createElement($e,null,e.createElement(he.Title,null,"Navigation")),e.createElement("div",{className:"rt-ShellLeft"},b)))}if(k){const R=r.leftMode==="expanded",x=e.Children.toArray(b),B=(m,y)=>e.isValidElement(m)&&m.type===y,s=x.find(m=>B(m,J)),N=x.find(m=>B(m,Z)),W=typeof s?.props?.expandedSize=="number"?s.props.expandedSize:64,ne=typeof N?.props?.expandedSize=="number"?N.props.expandedSize:288,q=!!s,oe=!!N&&(r.panelMode==="expanded"||r.peekTarget==="panel");return e.createElement("div",{...p,ref:A,className:X("rt-ShellLeft",i),"data-mode":r.leftMode,"data-peek":r.peekTarget==="left"||r.peekTarget==="rail"||r.peekTarget==="panel"||void 0,"data-presentation":g,"data-inset":l||void 0,style:{...f},"data-open":R||void 0},b)}return e.createElement("div",{...p,ref:A,className:X("rt-ShellLeft",i),"data-mode":r.leftMode,"data-peek":r.peekTarget==="left"||r.peekTarget==="rail"||r.peekTarget==="panel"||void 0,"data-presentation":g,"data-inset":l||void 0,style:{...f}},b)});me.displayName="Shell.Left",Y(me,"Shell.Left");const J=e.forwardRef((t,a)=>{const{className:i,presentation:C,expandedSize:M=64,collapsible:P,onExpand:S,onCollapse:b,children:f,style:l,open:c,defaultOpen:z,onOpenChange:j,..._}=t,h=ie(),L=e.useRef(null);e.useEffect(()=>{const r=typeof c<"u";if(L.current===null){L.current=r;return}L.current!==r&&(console.warn("Shell.Rail: Switching between controlled and uncontrolled `open` is not supported."),L.current=r)},[c]),e.useEffect(()=>{h.onRailDefaults?.(M)},[h,M]);const p=h.leftMode==="expanded";return e.createElement("div",{..._,ref:a,className:X("rt-ShellRail",i),"data-mode":h.leftMode,"data-peek":h.currentBreakpointReady&&h.leftResolvedPresentation!=="overlay"&&h.peekTarget==="rail"||void 0,style:{...l,"--rail-size":`${M}px`}},e.createElement("div",{className:"rt-ShellRailContent","data-visible":h.currentBreakpointReady&&(p||h.leftResolvedPresentation!=="overlay"&&h.peekTarget==="rail")||void 0},f))});J.displayName="Shell.Rail",Y(J,"Shell.Rail");const un=["className","children","defaultOpen","open","onOpenChange","size","defaultSize","onSizeChange","sizeUpdate","sizeUpdateMs","style"],Z=Y(e.forwardRef((t,a)=>{const{className:i,defaultOpen:C,open:M,onOpenChange:P,size:S,defaultSize:b,expandedSize:f=288,minSize:l,maxSize:c,resizable:z,collapsible:j=!0,onExpand:_,onCollapse:h,onResize:L,onResizeStart:p,onResizeEnd:r,snapPoints:g,snapTolerance:F,collapseThreshold:k,paneId:w,persistence:A,children:D,style:ee,onSizeChange:T,sizeUpdate:I,sizeUpdateMs:$=50}=t,R=Qe(t,un),x=e.useRef(null);e.useEffect(()=>()=>{x.current&&(clearTimeout(x.current),x.current=null)},[T,I,$]);const B=e.useMemo(()=>{if(!T)return()=>{};if(I==="debounce")return(E,v)=>{x.current&&clearTimeout(x.current),x.current=setTimeout(()=>{T?.(E,v),x.current=null},$)};if(I==="throttle"){let o=0;return(E,v)=>{const O=Date.now();O-o>=$&&(o=O,T?.(E,v))}}return(o,E)=>T?.(o,E)},[T,I,$]),s=ie(),N=e.useRef(null),W=e.useRef(null),ne=e.useRef(!1),q=e.useMemo(()=>Ee(M),[M]),te=e.useMemo(()=>Ee(C),[C]),oe=typeof M=="object"&&M!==null;Le({controlledValue:q,defaultValue:te,currentValue:s.panelMode,setValue:o=>{o==="expanded"&&s.leftMode!=="expanded"&&s.setLeftMode("expanded"),s.setPanelMode(o)},breakpointReady:s.currentBreakpointReady,controlledIsResponsive:oe,onResponsiveChange:o=>P?.(o==="expanded",{reason:"responsive"}),onInit:o=>{typeof M>"u"&&P?.(o==="expanded",{reason:"init"})}});const m=e.useRef(null);e.useEffect(()=>{const o=typeof M<"u";if(m.current===null){m.current=o;return}m.current!==o&&(console.warn("Shell.Panel: Switching between controlled and uncontrolled `open` is not supported."),m.current=o)},[M]),e.useEffect(()=>{s.onPanelDefaults?.(f)},[s,f]);const y=e.useRef(null),ae=e.useCallback(o=>{y.current=o,typeof a=="function"?a(o):a&&(a.current=o)},[a]),re=e.Children.toArray(D),H=re.filter(o=>e.isValidElement(o)&&o.type===Se),U=re.filter(o=>!(e.isValidElement(o)&&o.type===Se)),le=s.leftResolvedPresentation==="overlay",G=e.useCallback(o=>Xe(o,"horizontal"),[]),Q=e.useMemo(()=>{if(!w||A)return A;const o=`kookie-ui:shell:panel:${w}`;return{load:()=>{if(typeof window>"u")return;const v=window.localStorage.getItem(o);return v?Number(v):void 0},save:v=>{typeof window>"u"||window.localStorage.setItem(o,String(v))}}},[w,A]);e.useEffect(()=>{let o=!0;return(async()=>{if(!z||!Q?.load||le)return;const E=await Q.load();o&&typeof E=="number"&&y.current&&(y.current.style.setProperty("--panel-size",`${E}px`),L?.(E))})(),()=>{o=!1}},[z,Q,L,le]),e.useEffect(()=>{y.current&&le&&y.current.style.setProperty("--panel-size",`${f}px`)},[le,f]),e.useEffect(()=>{if(y.current&&typeof S>"u"&&typeof b<"u"){const o=G(b);if(typeof o=="number"&&Number.isFinite(o)){const O=Math.min((typeof c=="number"?c:void 0)??o,Math.max((typeof l=="number"?l:void 0)??o,o));y.current.style.setProperty("--panel-size",`${O}px`),B(O,{reason:"init"})}}},[]),e.useEffect(()=>{if(!y.current||typeof S>"u")return;const o=G(S);if(typeof o=="number"&&Number.isFinite(o)){const O=Math.min((typeof c=="number"?c:void 0)??o,Math.max((typeof l=="number"?l:void 0)??o,o));y.current.style.setProperty("--panel-size",`${O}px`),B(O,{reason:"controlled"})}},[S,l,c,G,B]),e.useEffect(()=>{if(y.current&&s.leftResolvedPresentation!=="overlay"&&s.leftMode==="expanded"&&s.panelMode==="expanded"){const o=y.current.parentElement||null;try{o?.style.removeProperty("width")}catch{}}},[s.leftResolvedPresentation,s.leftMode,s.panelMode]);const de=s.leftMode==="expanded"&&s.panelMode==="expanded";e.useEffect(()=>{const o=N.current,E=W.current;if(o!==null&&o!==s.panelMode){const v=s.panelMode==="expanded";let O="toggle";E!==s.leftMode&&s.leftMode==="collapsed"&&!v&&(O="left"),P?.(v,{reason:O})}N.current=s.panelMode,W.current=s.leftMode},[s.panelMode,s.leftMode,P]);const ye=z&&s.leftResolvedPresentation!=="overlay"&&de?e.createElement(We.Provider,{value:{containerRef:y,cssVarName:"--panel-size",minSize:typeof l=="number"?l:100,maxSize:typeof c=="number"?c:800,defaultSize:f,orientation:"vertical",edge:"end",computeNext:(o,E,v)=>{const O=getComputedStyle(y.current).direction==="rtl",V=o-E;return v+(O?-V:V)},onResize:L,onResizeStart:o=>{const v=y.current?.parentElement;try{v?.style.removeProperty("width")}catch{}p?.(o)},onResizeEnd:o=>{r?.(o),B(o,{reason:"resize"}),Q?.save?.(o)},target:"panel",collapsible:!!j,snapPoints:g,snapTolerance:F??8,collapseThreshold:k,requestCollapse:()=>s.setPanelMode("collapsed"),requestToggle:()=>s.togglePane("panel")}},H.length>0?H.map((o,E)=>e.cloneElement(o,{key:o.key??E})):e.createElement(qe,null)):null;return e.createElement("div",{...R,ref:ae,className:X("rt-ShellPanel",i),"data-mode":s.panelMode,"data-visible":s.currentBreakpointReady&&(de||s.leftResolvedPresentation!=="overlay"&&s.peekTarget==="panel")||void 0,"data-peek":s.currentBreakpointReady&&s.leftResolvedPresentation!=="overlay"&&s.peekTarget==="panel"||void 0,style:{...ee,"--panel-size":`${f}px`}},e.createElement("div",{className:"rt-ShellPanelContent","data-visible":de||void 0},U),ye)}),"Shell.Panel");Z.displayName="Shell.Panel",Z.Handle=Se;const Me=e.forwardRef(({className:t,inset:a,...i},C)=>{const{registerInset:M,unregisterInset:P}=ke();return e.useEffect(()=>{if(a)return M("content"),()=>P("content")},[a,M,P]),e.createElement("main",{...i,ref:C,className:X("rt-ShellContent",t),"data-inset":a||void 0})});Me.displayName="Shell.Content",Y(Me,"Shell.Content");const Ne=e.forwardRef(({target:t,action:a="toggle",peekOnHover:i,onClick:C,onMouseEnter:M,onMouseLeave:P,children:S,...b},f)=>{const l=ie(),c=e.useCallback(h=>{switch(C?.(h),l.peekTarget===t&&l.clearPeek(),a){case"toggle":l.togglePane(t);break;case"expand":l.expandPane(t);break;case"collapse":l.collapsePane(t);break}},[l,t,a,C]),z=(()=>{switch(t){case"left":case"rail":return l.leftMode==="collapsed";case"panel":return l.leftMode==="collapsed"||l.panelMode==="collapsed";case"sidebar":return l.sidebarMode==="collapsed";case"inspector":return l.inspectorMode==="collapsed";case"bottom":return l.bottomMode==="collapsed"}})(),j=e.useCallback(h=>{M?.(h),!(!i||!z)&&l.peekPane(t)},[M,i,z,l,t]),_=e.useCallback(h=>{P?.(h),i&&l.peekTarget===t&&l.clearPeek()},[P,i,l,t]);return e.createElement("button",{...b,ref:f,onClick:c,onMouseEnter:j,onMouseLeave:_,"data-shell-trigger":t,"data-shell-action":a,"aria-expanded":!z},S)});Ne.displayName="Shell.Trigger";export{ve as Bottom,Me as Content,xe as Header,Ce as Inspector,me as Left,Z as Panel,J as Rail,ze as Root,ue as Sidebar,Ne as Trigger,Oe as useResponsivePresentation,ie as useShell};
1
+ "use client";import*as e from"react";import X from"classnames";import*as he from"./sheet.js";import{VisuallyHidden as Fe}from"./visually-hidden.js";import{useResponsivePresentation as Oe,useResponsiveInitialState as Le}from"./shell.hooks.js";import{PaneResizeContext as $e}from"./_internal/shell-resize.js";import{PaneHandle as Ge,PanelHandle as Se}from"./_internal/shell-handles.js";import{omitPaneProps as Qe,extractPaneDomProps as qe,mapResponsiveBooleanToPaneMode as Ee}from"./_internal/shell-prop-helpers.js";import{Sidebar as ue}from"./_internal/shell-sidebar.js";import{Bottom as Ce}from"./_internal/shell-bottom.js";import{Inspector as ve}from"./_internal/shell-inspector.js";import{_BREAKPOINTS as Ke}from"./shell.types.js";import{normalizeToPx as Xe}from"../helpers/normalize-to-px.js";import{ShellProvider as Ye,useShell as ie,LeftModeContext as Je,PanelModeContext as Ze,SidebarModeContext as en,InspectorModeContext as nn,BottomModeContext as tn,PresentationContext as on,PeekContext as an,ActionsContext as ln,CompositionContext as rn,InsetContext as sn,useInset as ke}from"./shell.context.js";function dn(){const[t,l]=e.useState("initial"),[i,v]=e.useState(!1);return e.useEffect(()=>{if(typeof window>"u")return;const y=Object.entries(Ke).map(([m,a])=>[m,window.matchMedia(a)]),S=m=>{const a=y.filter(([,R])=>R.matches).map(([R])=>R),u=a[a.length-1]??"initial";l(u),v(!0)};S();const b=[];return y.forEach(([,m])=>{const a=m;typeof a.addEventListener=="function"&&typeof a.removeEventListener=="function"?(a.addEventListener("change",S),b.push(()=>a.removeEventListener?.("change",S))):typeof a.addListener=="function"&&typeof a.removeListener=="function"&&(a.addListener(S),b.push(()=>a.removeListener?.(S)))}),()=>{b.forEach(m=>{try{m()}catch{}})}},[]),{bp:t,ready:i}}const fe=Symbol("rtShellSlot");function Y(t,l){return t[fe]=l,t}function Rn(t,l){if(!e.isValidElement(t))return!1;const i=t.type;if(i===l)return!0;const v=l?.[fe];return!!(i?.[fe]&&v&&i[fe]===v)}Y(ue,"Shell.Sidebar"),Y(ve,"Shell.Inspector"),Y(Ce,"Shell.Bottom");function pn(t,l){switch(l.type){case"SET_LEFT_MODE":return l.mode==="collapsed"?{...t,leftMode:"collapsed",panelMode:"collapsed"}:{...t,leftMode:l.mode};case"SET_PANEL_MODE":return l.mode==="expanded"&&t.leftMode!=="expanded"?{...t,leftMode:"expanded",panelMode:"expanded"}:{...t,panelMode:l.mode};case"SET_SIDEBAR_MODE":return{...t,sidebarMode:l.mode};case"SET_INSPECTOR_MODE":return{...t,inspectorMode:l.mode};case"SET_BOTTOM_MODE":return{...t,bottomMode:l.mode};case"TOGGLE_PANE":{switch(l.target){case"left":case"rail":return{...t,leftMode:t.leftMode==="expanded"?"collapsed":"expanded",panelMode:t.leftMode==="expanded"?"collapsed":t.panelMode};case"panel":return t.leftMode==="collapsed"?{...t,leftMode:"expanded",panelMode:"expanded"}:{...t,panelMode:t.panelMode==="expanded"?"collapsed":"expanded"};case"sidebar":{const i=t.sidebarMode==="collapsed"?"expanded":t.sidebarMode==="expanded"?"collapsed":"expanded";return{...t,sidebarMode:i}}case"inspector":return{...t,inspectorMode:t.inspectorMode==="expanded"?"collapsed":"expanded"};case"bottom":return{...t,bottomMode:t.bottomMode==="expanded"?"collapsed":"expanded"};default:return t}return t}case"EXPAND_PANE":{switch(l.target){case"left":case"rail":return{...t,leftMode:"expanded"};case"panel":return{...t,leftMode:"expanded",panelMode:"expanded"};case"sidebar":return{...t,sidebarMode:"expanded"};case"inspector":return{...t,inspectorMode:"expanded"};case"bottom":return{...t,bottomMode:"expanded"};default:return t}return t}case"COLLAPSE_PANE":{switch(l.target){case"left":case"rail":return{...t,leftMode:"collapsed",panelMode:"collapsed"};case"panel":return{...t,panelMode:"collapsed"};case"sidebar":return{...t,sidebarMode:"collapsed"};case"inspector":return{...t,inspectorMode:"collapsed"};case"bottom":return{...t,bottomMode:"collapsed"};default:return t}return t}}return t}const ze=e.forwardRef(({className:t,children:l,height:i="full",...v},M)=>{const{bp:y,ready:S}=dn(),b=e.Children.toArray(l),m=b.some(n=>e.isValidElement(n)&&n.type?.displayName==="Shell.Panel"&&!!n.props?.defaultOpen),a=b.find(n=>e.isValidElement(n)&&n.type?.displayName==="Shell.Rail"),u=a?a.props?.defaultOpen:void 0,R=a?u===void 0?!0:typeof u=="boolean"?u:typeof u=="object"?u.initial??Object.values(u)[0]??!0:!0:!1,j=b.some(n=>e.isValidElement(n)&&n.type?.displayName==="Shell.Inspector"&&!!n.props?.defaultOpen),_=b.some(n=>e.isValidElement(n)&&n.type?.displayName==="Shell.Inspector"&&typeof n.props?.open<"u"&&!!n.props?.open),h=()=>{const n=b.find(c=>e.isValidElement(c)&&c.type?.displayName==="Shell.Sidebar");if(!n)return"expanded";const d=n.props;if(typeof d?.state<"u"){if(typeof d.state=="string")return d.state;if(typeof d.state=="object")return d.state.initial??Object.values(d.state)[0]??"expanded"}if(typeof d?.defaultState<"u"){if(typeof d.defaultState=="string")return d.defaultState;if(typeof d.defaultState=="object")return d.defaultState.initial??Object.values(d.defaultState)[0]??"expanded"}return"expanded"},k=()=>{const n=b.find(c=>e.isValidElement(c)&&c.type?.displayName==="Shell.Bottom");if(!n)return"collapsed";const d=n.props;if(typeof d?.open<"u"){if(typeof d.open=="boolean")return d.open?"expanded":"collapsed";if(typeof d.open=="object")return d.open.initial??Object.values(d.open)[0]?"expanded":"collapsed"}return typeof d?.defaultOpen<"u"&&d.defaultOpen?"expanded":"collapsed"},[p,s]=e.useReducer(pn,{leftMode:m||R?"expanded":"collapsed",panelMode:m?"expanded":"collapsed",sidebarMode:h(),inspectorMode:j||_?"expanded":"collapsed",bottomMode:k()}),T=e.useCallback(n=>s({type:"SET_LEFT_MODE",mode:n}),[]),W=e.useCallback(n=>s({type:"SET_PANEL_MODE",mode:n}),[]),z=e.useCallback(n=>s({type:"SET_SIDEBAR_MODE",mode:n}),[]),w=e.useCallback(n=>s({type:"SET_INSPECTOR_MODE",mode:n}),[]),A=e.useCallback(n=>s({type:"SET_BOTTOM_MODE",mode:n}),[]),[D,ee]=e.useState(!1),[O,I]=e.useState(!1),F=e.useRef(n=>n==="collapsed"?"thin":n==="thin"?"expanded":"collapsed"),g=e.useCallback(n=>{F.current=n},[]);e.useEffect(()=>{O&&D&&console.warn("Shell: Sidebar cannot coexist with Rail or Panel. Use either Rail+Panel OR Sidebar.")},[O,D]);const[x,B]=e.useState(void 0),r=e.useCallback(n=>B(n),[]),N=e.useRef(64),$=e.useRef(288),ne=e.useCallback(n=>{N.current=n},[]),G=e.useCallback(n=>{$.current=n},[]),te=e.useMemo(()=>{const n=e.Children.toArray(l),d=(c,K)=>e.isValidElement(c)&&(c.type===K||c.type?.displayName===K.displayName);return n.some(c=>d(c,J)||d(c,Z))},[l]),oe=e.useMemo(()=>{const n=e.Children.toArray(l),d=(c,K)=>e.isValidElement(c)&&(c.type===K||c.type?.displayName===K.displayName);return n.some(c=>d(c,ue))},[l]),f=e.useCallback(n=>{if(n==="sidebar"){const d=F.current(p.sidebarMode);z(d);return}s({type:"TOGGLE_PANE",target:n})},[p.sidebarMode,z]),P=e.useCallback(n=>{if(n==="sidebar")return z("expanded");s({type:"EXPAND_PANE",target:n})},[z]),ae=e.useCallback(n=>{if(n==="sidebar")return z("collapsed");s({type:"COLLAPSE_PANE",target:n})},[z]),se=e.useMemo(()=>({leftMode:p.leftMode,setLeftMode:T,panelMode:p.panelMode,setPanelMode:W,sidebarMode:p.sidebarMode,setSidebarMode:z,inspectorMode:p.inspectorMode,setInspectorMode:w,bottomMode:p.bottomMode,setBottomMode:A,hasLeft:D,setHasLeft:ee,hasSidebar:O,setHasSidebar:I,currentBreakpoint:y,currentBreakpointReady:S,leftResolvedPresentation:x,togglePane:f,expandPane:P,collapsePane:ae,setSidebarToggleComputer:g,onLeftPres:r,onRailDefaults:ne,onPanelDefaults:G}),[p.leftMode,T,p.panelMode,W,p.sidebarMode,z,p.inspectorMode,w,p.bottomMode,A,D,O,y,S,x,f,P,ae,g,r,ne,G]),V=e.Children.toArray(l),U=(n,d)=>e.isValidElement(n)&&(n.type===d||n.type?.displayName===d.displayName),le=V.filter(n=>U(n,xe)),Q=V.filter(n=>U(n,J)),q=V.filter(n=>U(n,Z)),de=V.filter(n=>U(n,ue)),Pe=V.filter(n=>U(n,Me)),o=V.filter(n=>U(n,ve)),E=V.filter(n=>U(n,Ce)),C=Q[0]?.props?.open;e.useEffect(()=>{if(typeof C>"u")return;T(!!C?"expanded":"collapsed")},[C,T]);const L=e.useMemo(()=>i==="full"?{height:"100vh"}:i==="auto"?{height:"auto"}:typeof i=="string"?{height:i}:typeof i=="number"?{height:`${i}px`}:{},[i]),[H,re]=e.useState(null),pe=e.useCallback(n=>re(n),[]),ce=e.useCallback(()=>re(null),[]),_e=e.useMemo(()=>({currentBreakpoint:y,currentBreakpointReady:S,leftResolvedPresentation:x}),[y,S,x]),De=e.useMemo(()=>({leftMode:p.leftMode,setLeftMode:T}),[p.leftMode,T]),Be=e.useMemo(()=>({panelMode:p.panelMode,setPanelMode:W}),[p.panelMode,W]),Ae=e.useMemo(()=>({sidebarMode:p.sidebarMode,setSidebarMode:z}),[p.sidebarMode,z]),we=e.useMemo(()=>({inspectorMode:p.inspectorMode,setInspectorMode:w}),[p.inspectorMode,w]),Ie=e.useMemo(()=>({bottomMode:p.bottomMode,setBottomMode:A}),[p.bottomMode,A]),Ve=e.useMemo(()=>({hasLeft:D,setHasLeft:ee,hasSidebar:O,setHasSidebar:I}),[D,ee,O,I]),[ye,Re]=e.useState(new Set),ge=e.useCallback(n=>{Re(d=>{if(d.has(n))return d;const c=new Set(d);return c.add(n),c})},[]),Te=e.useCallback(n=>{Re(d=>{if(!d.has(n))return d;const c=new Set(d);return c.delete(n),c})},[]),be=ye.size>0,He=e.useMemo(()=>({insetPanes:ye,registerInset:ge,unregisterInset:Te,hasAnyInset:be}),[ye,ge,Te,be]),je=e.useMemo(()=>({peekTarget:H,setPeekTarget:re,peekPane:pe,clearPeek:ce}),[H,re,pe,ce]),Ue=e.useMemo(()=>({togglePane:f,expandPane:P,collapsePane:ae,setSidebarToggleComputer:g}),[f,P,ae,g]),We=e.useMemo(()=>({...se,peekTarget:H,setPeekTarget:re,peekPane:pe,clearPeek:ce}),[se,H,re,pe,ce]);return e.createElement("div",{...v,ref:M,className:X("rt-ShellRoot",t),style:{...L,...v.style}},e.createElement(Ye,{value:We},e.createElement(on.Provider,{value:_e},e.createElement(Je.Provider,{value:De},e.createElement(Ze.Provider,{value:Be},e.createElement(en.Provider,{value:Ae},e.createElement(nn.Provider,{value:we},e.createElement(tn.Provider,{value:Ie},e.createElement(rn.Provider,{value:Ve},e.createElement(an.Provider,{value:je},e.createElement(ln.Provider,{value:Ue},e.createElement(sn.Provider,{value:He},le,e.createElement("div",{className:"rt-ShellBody","data-peek-target":H??void 0,"data-has-inset":be||void 0,style:H==="rail"||H==="panel"?{"--peek-rail-width":`${N.current}px`}:void 0},te&&!oe?(()=>{const n=Q[0],d=q[0],c=!!n?.props?.inset||!!d?.props?.inset,K=n?{onOpenChange:n.props?.onOpenChange,open:n.props?.open,defaultOpen:n.props?.defaultOpen,presentation:n.props?.presentation,collapsible:n.props?.collapsible,onExpand:n.props?.onExpand,onCollapse:n.props?.onCollapse,inset:c}:{defaultOpen:m?!0:void 0,inset:c};return e.createElement(me,{...K},Q,q)})():de,Pe,o),E))))))))))))});ze.displayName="Shell.Root";const xe=e.forwardRef(({className:t,height:l=64,style:i,...v},M)=>e.createElement("header",{...v,ref:M,className:X("rt-ShellHeader",t),style:{...i,"--shell-header-height":`${l}px`}}));xe.displayName="Shell.Header";const cn=["open","defaultOpen","onOpenChange","mode","defaultMode","onModeChange"],me=e.forwardRef((t,l)=>{const{className:i,presentation:v={initial:"fixed",sm:"fixed"},collapsible:M=!0,onExpand:y,onCollapse:S,children:b,style:m,inset:a,...u}=t,{registerInset:R,unregisterInset:j}=ke();e.useEffect(()=>{if(a)return R("left"),()=>j("left")},[a,R,j]);const _=u.open,h=u.defaultOpen,k=u.onOpenChange,p=Qe(u,cn),s=ie(),T=Oe(v),W=T==="overlay",z=T==="stacked",w=e.useRef(null);e.useEffect(()=>{s.onLeftPres?.(T)},[s,T]);const A=e.useCallback(g=>{w.current=g,typeof l=="function"?l(g):l&&(l.current=g)},[l]);e.useEffect(()=>(s.setHasLeft(!0),()=>s.setHasLeft(!1)),[s]);const D=e.useRef(null),ee=e.useRef(!1),O=e.useMemo(()=>{if(!(typeof _>"u"))return _?"expanded":"collapsed"},[_]),I=e.useMemo(()=>Ee(h),[h]);Le({controlledValue:O,defaultValue:I,currentValue:s.leftMode,setValue:s.setLeftMode,breakpointReady:s.currentBreakpointReady,onInit:g=>k?.(g==="expanded",{reason:"init"})}),e.useEffect(()=>{typeof _<"u"||(D.current!==null&&D.current!==s.leftMode&&k?.(s.leftMode==="expanded",{reason:"toggle"}),D.current=s.leftMode)},[s,k,_]),e.useEffect(()=>{s.leftMode==="expanded"?y?.():S?.()},[s.leftMode,y,S]);const F=s.leftMode==="expanded";if(W){const g=s.leftMode==="expanded",x=e.Children.toArray(b),B=(f,P)=>e.isValidElement(f)&&f.type===P,r=x.find(f=>B(f,J)),N=x.find(f=>B(f,Z)),$=typeof r?.props?.expandedSize=="number"?r.props.expandedSize:64,ne=typeof N?.props?.expandedSize=="number"?N.props.expandedSize:288,G=!!r,te=!!N,oe=(G?$:0)+(s.panelMode==="expanded"&&te?ne:0);return e.createElement(he.Root,{open:g,onOpenChange:f=>s.setLeftMode(f?"expanded":"collapsed")},e.createElement(he.Content,{side:"start",style:{padding:0},width:{initial:`${oe}px`}},e.createElement(Fe,null,e.createElement(he.Title,null,"Navigation")),e.createElement("div",{className:"rt-ShellLeft"},b)))}if(z){const g=s.leftMode==="expanded",x=e.Children.toArray(b),B=(f,P)=>e.isValidElement(f)&&f.type===P,r=x.find(f=>B(f,J)),N=x.find(f=>B(f,Z)),$=typeof r?.props?.expandedSize=="number"?r.props.expandedSize:64,ne=typeof N?.props?.expandedSize=="number"?N.props.expandedSize:288,G=!!r,oe=!!N&&(s.panelMode==="expanded"||s.peekTarget==="panel");return e.createElement("div",{...p,ref:A,className:X("rt-ShellLeft",i),"data-mode":s.leftMode,"data-peek":s.peekTarget==="left"||s.peekTarget==="rail"||s.peekTarget==="panel"||void 0,"data-presentation":T,"data-inset":a||void 0,style:{...m},"data-open":g||void 0},b)}return e.createElement("div",{...p,ref:A,className:X("rt-ShellLeft",i),"data-mode":s.leftMode,"data-peek":s.peekTarget==="left"||s.peekTarget==="rail"||s.peekTarget==="panel"||void 0,"data-presentation":T,"data-inset":a||void 0,style:{...m}},b)});me.displayName="Shell.Left",Y(me,"Shell.Left");const J=e.forwardRef((t,l)=>{const{className:i,presentation:v,expandedSize:M=64,collapsible:y,onExpand:S,onCollapse:b,children:m,style:a,open:u,defaultOpen:R,onOpenChange:j,..._}=t,h=ie(),k=e.useRef(null);e.useEffect(()=>{const s=typeof u<"u";if(k.current===null){k.current=s;return}k.current!==s&&(console.warn("Shell.Rail: Switching between controlled and uncontrolled `open` is not supported."),k.current=s)},[u]),e.useEffect(()=>{h.onRailDefaults?.(M)},[h,M]);const p=h.leftMode==="expanded";return e.createElement("div",{..._,ref:l,className:X("rt-ShellRail",i),"data-mode":h.leftMode,"data-peek":h.currentBreakpointReady&&h.leftResolvedPresentation!=="overlay"&&h.peekTarget==="rail"||void 0,style:{...a,"--rail-size":`${M}px`}},e.createElement("div",{className:"rt-ShellRailContent","data-visible":h.currentBreakpointReady&&(p||h.leftResolvedPresentation!=="overlay"&&h.peekTarget==="rail")||void 0},m))});J.displayName="Shell.Rail",Y(J,"Shell.Rail");const un=["className","children","defaultOpen","open","onOpenChange","size","defaultSize","onSizeChange","sizeUpdate","sizeUpdateMs","style"],Z=Y(e.forwardRef((t,l)=>{const{className:i,defaultOpen:v,open:M,onOpenChange:y,size:S,defaultSize:b,expandedSize:m=288,minSize:a,maxSize:u,resizable:R,collapsible:j=!0,onExpand:_,onCollapse:h,onResize:k,onResizeStart:p,onResizeEnd:s,snapPoints:T,snapTolerance:W,collapseThreshold:z,paneId:w,persistence:A,children:D,style:ee,onSizeChange:O,sizeUpdate:I,sizeUpdateMs:F=50}=t,g=qe(t,un),x=e.useRef(null);e.useEffect(()=>()=>{x.current&&(clearTimeout(x.current),x.current=null)},[O,I,F]);const B=e.useMemo(()=>{if(!O)return()=>{};if(I==="debounce")return(E,C)=>{x.current&&clearTimeout(x.current),x.current=setTimeout(()=>{O?.(E,C),x.current=null},F)};if(I==="throttle"){let o=0;return(E,C)=>{const L=Date.now();L-o>=F&&(o=L,O?.(E,C))}}return(o,E)=>O?.(o,E)},[O,I,F]),r=ie(),N=e.useRef(null),$=e.useRef(null),ne=e.useRef(!1),G=e.useMemo(()=>Ee(M),[M]),te=e.useMemo(()=>Ee(v),[v]),oe=typeof M=="object"&&M!==null;Le({controlledValue:G,defaultValue:te,currentValue:r.panelMode,setValue:o=>{o==="expanded"&&r.leftMode!=="expanded"&&r.setLeftMode("expanded"),r.setPanelMode(o)},breakpointReady:r.currentBreakpointReady,controlledIsResponsive:oe,onResponsiveChange:o=>y?.(o==="expanded",{reason:"responsive"}),onInit:o=>{typeof M>"u"&&y?.(o==="expanded",{reason:"init"})}});const f=e.useRef(null);e.useEffect(()=>{const o=typeof M<"u";if(f.current===null){f.current=o;return}f.current!==o&&(console.warn("Shell.Panel: Switching between controlled and uncontrolled `open` is not supported."),f.current=o)},[M]),e.useEffect(()=>{r.onPanelDefaults?.(m)},[r,m]);const P=e.useRef(null),ae=e.useCallback(o=>{P.current=o,typeof l=="function"?l(o):l&&(l.current=o)},[l]),se=e.Children.toArray(D),V=se.filter(o=>e.isValidElement(o)&&o.type===Se),U=se.filter(o=>!(e.isValidElement(o)&&o.type===Se)),le=r.leftResolvedPresentation==="overlay",Q=e.useCallback(o=>Xe(o,"horizontal"),[]),q=e.useMemo(()=>{if(!w||A)return A;const o=`kookie-ui:shell:panel:${w}`;return{load:()=>{if(typeof window>"u")return;const C=window.localStorage.getItem(o);return C?Number(C):void 0},save:C=>{typeof window>"u"||window.localStorage.setItem(o,String(C))}}},[w,A]);e.useEffect(()=>{let o=!0;return(async()=>{if(!R||!q?.load||le)return;const E=await q.load();o&&typeof E=="number"&&P.current&&(P.current.style.setProperty("--panel-size",`${E}px`),k?.(E))})(),()=>{o=!1}},[R,q,k,le]),e.useEffect(()=>{P.current&&le&&P.current.style.setProperty("--panel-size",`${m}px`)},[le,m]),e.useEffect(()=>{if(P.current&&typeof S>"u"&&typeof b<"u"){const o=Q(b);if(typeof o=="number"&&Number.isFinite(o)){const L=Math.min((typeof u=="number"?u:void 0)??o,Math.max((typeof a=="number"?a:void 0)??o,o));P.current.style.setProperty("--panel-size",`${L}px`),B(L,{reason:"init"})}}},[]),e.useEffect(()=>{if(!P.current||typeof S>"u")return;const o=Q(S);if(typeof o=="number"&&Number.isFinite(o)){const L=Math.min((typeof u=="number"?u:void 0)??o,Math.max((typeof a=="number"?a:void 0)??o,o));P.current.style.setProperty("--panel-size",`${L}px`),B(L,{reason:"controlled"})}},[S,a,u,Q,B]),e.useEffect(()=>{if(P.current&&r.leftResolvedPresentation!=="overlay"&&r.leftMode==="expanded"&&r.panelMode==="expanded"){const o=P.current.parentElement||null;try{o?.style.removeProperty("width")}catch{}}},[r.leftResolvedPresentation,r.leftMode,r.panelMode]);const de=r.leftMode==="expanded"&&r.panelMode==="expanded";e.useEffect(()=>{const o=N.current,E=$.current;if(o!==null&&o!==r.panelMode){const C=r.panelMode==="expanded";let L="toggle";E!==r.leftMode&&r.leftMode==="collapsed"&&!C&&(L="left"),y?.(C,{reason:L})}N.current=r.panelMode,$.current=r.leftMode},[r.panelMode,r.leftMode,y]);const Pe=R&&r.leftResolvedPresentation!=="overlay"&&de?e.createElement($e.Provider,{value:{containerRef:P,cssVarName:"--panel-size",minSize:typeof a=="number"?a:100,maxSize:typeof u=="number"?u:800,defaultSize:m,orientation:"vertical",edge:"end",computeNext:(o,E,C)=>{const L=getComputedStyle(P.current).direction==="rtl",H=o-E;return C+(L?-H:H)},onResize:k,onResizeStart:o=>{const C=P.current?.parentElement;try{C?.style.removeProperty("width")}catch{}p?.(o)},onResizeEnd:o=>{s?.(o),B(o,{reason:"resize"}),q?.save?.(o)},target:"panel",collapsible:!!j,snapPoints:T,snapTolerance:W??8,collapseThreshold:z,requestCollapse:()=>r.setPanelMode("collapsed"),requestToggle:()=>r.togglePane("panel")}},V.length>0?V.map((o,E)=>e.cloneElement(o,{key:o.key??E})):e.createElement(Ge,null)):null;return e.createElement("div",{...g,ref:ae,className:X("rt-ShellPanel",i),"data-mode":r.panelMode,"data-visible":r.currentBreakpointReady&&(de||r.leftResolvedPresentation!=="overlay"&&r.peekTarget==="panel")||void 0,"data-peek":r.currentBreakpointReady&&r.leftResolvedPresentation!=="overlay"&&r.peekTarget==="panel"||void 0,style:{...ee,"--panel-size":`${m}px`}},e.createElement("div",{className:"rt-ShellPanelContent","data-visible":de||void 0},U),Pe)}),"Shell.Panel");Z.displayName="Shell.Panel",Z.Handle=Se;const Me=e.forwardRef(({className:t,inset:l,...i},v)=>{const{registerInset:M,unregisterInset:y}=ke();return e.useEffect(()=>{if(l)return M("content"),()=>y("content")},[l,M,y]),e.createElement("main",{...i,ref:v,className:X("rt-ShellContent",t),"data-inset":l||void 0})});Me.displayName="Shell.Content",Y(Me,"Shell.Content");const Ne=e.forwardRef(({target:t,action:l="toggle",peekOnHover:i,onClick:v,onMouseEnter:M,onMouseLeave:y,children:S,...b},m)=>{const a=ie(),u=e.useCallback(h=>{switch(v?.(h),a.peekTarget===t&&a.clearPeek(),l){case"toggle":a.togglePane(t);break;case"expand":a.expandPane(t);break;case"collapse":a.collapsePane(t);break}},[a,t,l,v]),R=(()=>{switch(t){case"left":case"rail":return a.leftMode==="collapsed";case"panel":return a.leftMode==="collapsed"||a.panelMode==="collapsed";case"sidebar":return a.sidebarMode==="collapsed";case"inspector":return a.inspectorMode==="collapsed";case"bottom":return a.bottomMode==="collapsed"}})(),j=e.useCallback(h=>{M?.(h),!(!i||!R)&&a.peekPane(t)},[M,i,R,a,t]),_=e.useCallback(h=>{y?.(h),i&&a.peekTarget===t&&a.clearPeek()},[y,i,a,t]);return e.createElement("button",{...b,ref:m,onClick:u,onMouseEnter:j,onMouseLeave:_,"data-shell-trigger":t,"data-shell-action":l,"aria-expanded":!R},S)});Ne.displayName="Shell.Trigger";export{Ce as Bottom,Me as Content,xe as Header,ve as Inspector,me as Left,Z as Panel,J as Rail,ze as Root,ue as Sidebar,Ne as Trigger,Oe as useResponsivePresentation,ie as useShell};
2
2
  //# sourceMappingURL=shell.js.map