@kushagradhawan/kookie-ui 0.1.56 → 0.1.58
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components.css +166 -41
- package/dist/cjs/components/_internal/shell-bottom.d.ts.map +1 -1
- package/dist/cjs/components/_internal/shell-bottom.js +1 -1
- package/dist/cjs/components/_internal/shell-bottom.js.map +3 -3
- package/dist/cjs/components/_internal/shell-inspector.d.ts.map +1 -1
- package/dist/cjs/components/_internal/shell-inspector.js +1 -1
- package/dist/cjs/components/_internal/shell-inspector.js.map +3 -3
- package/dist/cjs/components/_internal/shell-sidebar.js +1 -1
- package/dist/cjs/components/_internal/shell-sidebar.js.map +3 -3
- package/dist/cjs/components/chatbar.d.ts.map +1 -1
- package/dist/cjs/components/chatbar.js.map +2 -2
- package/dist/cjs/components/icons.d.ts +1 -1
- package/dist/cjs/components/icons.d.ts.map +1 -1
- package/dist/cjs/components/icons.js.map +2 -2
- package/dist/cjs/components/schemas/shell.schema.d.ts +2 -2
- package/dist/cjs/components/schemas/shell.schema.d.ts.map +1 -1
- package/dist/cjs/components/schemas/shell.schema.js +1 -1
- package/dist/cjs/components/schemas/shell.schema.js.map +3 -3
- package/dist/cjs/components/shell.d.ts.map +1 -1
- package/dist/cjs/components/shell.js +1 -1
- package/dist/cjs/components/shell.js.map +3 -3
- package/dist/cjs/components/theme.props.d.ts +1 -1
- package/dist/cjs/components/theme.props.js +1 -1
- package/dist/cjs/components/theme.props.js.map +2 -2
- package/dist/cjs/helpers/font-config.d.ts +10 -0
- package/dist/cjs/helpers/font-config.d.ts.map +1 -1
- package/dist/cjs/helpers/font-config.js +2 -2
- package/dist/cjs/helpers/font-config.js.map +2 -2
- package/dist/esm/components/_internal/shell-bottom.d.ts.map +1 -1
- package/dist/esm/components/_internal/shell-bottom.js +1 -1
- package/dist/esm/components/_internal/shell-bottom.js.map +3 -3
- package/dist/esm/components/_internal/shell-inspector.d.ts.map +1 -1
- package/dist/esm/components/_internal/shell-inspector.js +1 -1
- package/dist/esm/components/_internal/shell-inspector.js.map +3 -3
- package/dist/esm/components/_internal/shell-sidebar.js +1 -1
- package/dist/esm/components/_internal/shell-sidebar.js.map +3 -3
- package/dist/esm/components/chatbar.d.ts.map +1 -1
- package/dist/esm/components/chatbar.js.map +2 -2
- package/dist/esm/components/icons.d.ts +1 -1
- package/dist/esm/components/icons.d.ts.map +1 -1
- package/dist/esm/components/icons.js.map +2 -2
- package/dist/esm/components/schemas/shell.schema.d.ts +2 -2
- package/dist/esm/components/schemas/shell.schema.d.ts.map +1 -1
- package/dist/esm/components/schemas/shell.schema.js.map +3 -3
- package/dist/esm/components/shell.d.ts.map +1 -1
- package/dist/esm/components/shell.js +1 -1
- package/dist/esm/components/shell.js.map +3 -3
- package/dist/esm/components/theme.props.d.ts +1 -1
- package/dist/esm/components/theme.props.js +1 -1
- package/dist/esm/components/theme.props.js.map +2 -2
- package/dist/esm/helpers/font-config.d.ts +10 -0
- package/dist/esm/helpers/font-config.d.ts.map +1 -1
- package/dist/esm/helpers/font-config.js +2 -2
- package/dist/esm/helpers/font-config.js.map +2 -2
- package/package.json +1 -1
- package/schemas/base-button.json +1 -1
- package/schemas/button.json +1 -1
- package/schemas/icon-button.json +1 -1
- package/schemas/index.json +6 -6
- package/schemas/toggle-button.json +1 -1
- package/schemas/toggle-icon-button.json +1 -1
- package/src/components/_internal/base-sidebar-menu.css +19 -4
- package/src/components/_internal/shell-bottom.tsx +14 -13
- package/src/components/_internal/shell-inspector.tsx +13 -11
- package/src/components/_internal/shell-sidebar.tsx +12 -12
- package/src/components/chatbar.tsx +0 -1
- package/src/components/icons.tsx +19 -87
- package/src/components/schemas/shell.schema.ts +10 -33
- package/src/components/separator.css +1 -1
- package/src/components/shell.tsx +32 -24
- package/src/components/sidebar.css +32 -6
- package/src/components/theme.props.tsx +1 -1
- package/src/helpers/font-config.ts +35 -8
- package/src/styles/fonts.css +11 -15
- package/src/styles/tokens/typography.css +17 -7
- package/styles.css +182 -47
- package/tokens/base.css +12 -3
- package/tokens.css +12 -3
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/icons.tsx"],
|
|
4
|
-
"sourcesContent": ["import React from 'react';\n\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\n\ntype IconElement = React.ElementRef<'svg'>;\ninterface IconProps extends ComponentPropsWithout<'svg', RemovedProps | 'children'> {}\n\nconst ThickDividerHorizontalIcon = React.forwardRef<IconElement, IconProps>(
|
|
5
|
-
"mappings": "AAAA,OAAOA,MAAW,QAOlB,MAAMC,EAA6BD,EAAM,
|
|
4
|
+
"sourcesContent": ["import React from 'react';\n\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\n\ntype IconElement = React.ElementRef<'svg'>;\ninterface IconProps extends ComponentPropsWithout<'svg', RemovedProps | 'children'> {}\n\nconst ThickDividerHorizontalIcon = React.forwardRef<IconElement, IconProps>((props, forwardedRef) => {\n return (\n <svg width=\"9\" height=\"9\" viewBox=\"0 0 9 9\" fill=\"currentcolor\" xmlns=\"http://www.w3.org/2000/svg\" {...props} ref={forwardedRef}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M0.75 4.5C0.75 4.08579 1.08579 3.75 1.5 3.75H7.5C7.91421 3.75 8.25 4.08579 8.25 4.5C8.25 4.91421 7.91421 5.25 7.5 5.25H1.5C1.08579 5.25 0.75 4.91421 0.75 4.5Z\"\n />\n </svg>\n );\n});\n\nThickDividerHorizontalIcon.displayName = 'ThickDividerHorizontalIcon';\n\nconst ThickCheckIcon = React.forwardRef<IconElement, IconProps>((props, forwardedRef) => {\n return (\n <svg width=\"9\" height=\"9\" viewBox=\"0 0 9 9\" fill=\"currentcolor\" xmlns=\"http://www.w3.org/2000/svg\" {...props} ref={forwardedRef}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M8.53547 0.62293C8.88226 0.849446 8.97976 1.3142 8.75325 1.66099L4.5083 8.1599C4.38833 8.34356 4.19397 8.4655 3.9764 8.49358C3.75883 8.52167 3.53987 8.45309 3.3772 8.30591L0.616113 5.80777C0.308959 5.52987 0.285246 5.05559 0.563148 4.74844C0.84105 4.44128 1.31533 4.41757 1.62249 4.69547L3.73256 6.60459L7.49741 0.840706C7.72393 0.493916 8.18868 0.396414 8.53547 0.62293Z\"\n />\n </svg>\n );\n});\nThickCheckIcon.displayName = 'ThickCheckIcon';\n\nconst ChevronDownIcon = React.forwardRef<IconElement, IconProps>((props, forwardedRef) => {\n return (\n <svg width=\"9\" height=\"9\" viewBox=\"0 0 9 9\" fill=\"currentcolor\" xmlns=\"http://www.w3.org/2000/svg\" {...props} ref={forwardedRef}>\n <path d=\"M0.135232 3.15803C0.324102 2.95657 0.640521 2.94637 0.841971 3.13523L4.5 6.56464L8.158 3.13523C8.3595 2.94637 8.6759 2.95657 8.8648 3.15803C9.0536 3.35949 9.0434 3.67591 8.842 3.86477L4.84197 7.6148C4.64964 7.7951 4.35036 7.7951 4.15803 7.6148L0.158031 3.86477C-0.0434285 3.67591 -0.0536285 3.35949 0.135232 3.15803Z\" />\n </svg>\n );\n});\nChevronDownIcon.displayName = 'ChevronDownIcon';\n\nconst ThickChevronRightIcon = React.forwardRef<IconElement, IconProps>((props, forwardedRef) => {\n return (\n <svg width=\"9\" height=\"9\" viewBox=\"0 0 9 9\" fill=\"currentcolor\" xmlns=\"http://www.w3.org/2000/svg\" {...props} ref={forwardedRef}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M3.23826 0.201711C3.54108 -0.0809141 4.01567 -0.0645489 4.29829 0.238264L7.79829 3.98826C8.06724 4.27642 8.06724 4.72359 7.79829 5.01174L4.29829 8.76174C4.01567 9.06455 3.54108 9.08092 3.23826 8.79829C2.93545 8.51567 2.91909 8.04108 3.20171 7.73826L6.22409 4.5L3.20171 1.26174C2.91909 0.958928 2.93545 0.484337 3.23826 0.201711Z\"\n />\n </svg>\n );\n});\nThickChevronRightIcon.displayName = 'ThickChevronRightIcon';\n\nconst ThickDotIcon = React.forwardRef<IconElement, IconProps>((props, forwardedRef) => {\n return (\n <svg width=\"9\" height=\"9\" viewBox=\"0 0 9 9\" fill=\"currentcolor\" xmlns=\"http://www.w3.org/2000/svg\" {...props} ref={forwardedRef}>\n <circle cx=\"4.5\" cy=\"4.5\" r=\"2\" />\n </svg>\n );\n});\nThickDotIcon.displayName = 'ThickDotIcon';\n\nexport { ChevronDownIcon, ThickCheckIcon, ThickChevronRightIcon, ThickDividerHorizontalIcon, ThickDotIcon };\nexport type { IconProps };\n\n// Additional minimal icons\nconst CloseIcon = React.forwardRef<IconElement, IconProps>((_props, _forwardedRef) => {\n return (\n <svg\n {..._props}\n ref={_forwardedRef}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M18 6 6 18\" />\n <path d=\"m6 6 12 12\" />\n </svg>\n );\n});\nCloseIcon.displayName = 'CloseIcon';\n\nconst PaperclipIcon = React.forwardRef<IconElement, IconProps>((props, forwardedRef) => {\n return (\n <svg\n {...props}\n ref={forwardedRef}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551\" />\n </svg>\n );\n});\nPaperclipIcon.displayName = 'PaperclipIcon';\n\nconst FileIcon = React.forwardRef<IconElement, IconProps>((_props, _forwardedRef) => {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\" />\n <path d=\"M14 2v4a2 2 0 0 0 2 2h4\" />\n </svg>\n );\n});\nFileIcon.displayName = 'FileIcon';\n\nconst FileTextIcon = React.forwardRef<IconElement, IconProps>((_props, _forwardedRef) => {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\" />\n <path d=\"M14 2v4a2 2 0 0 0 2 2h4\" />\n <path d=\"M10 9H8\" />\n <path d=\"M16 13H8\" />\n <path d=\"M16 17H8\" />\n </svg>\n );\n});\nFileTextIcon.displayName = 'FileTextIcon';\n\nexport { CloseIcon, PaperclipIcon, FileIcon, FileTextIcon };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["React", "ThickDividerHorizontalIcon", "props", "forwardedRef", "ThickCheckIcon", "ChevronDownIcon", "ThickChevronRightIcon", "ThickDotIcon", "CloseIcon", "_props", "_forwardedRef", "PaperclipIcon", "FileIcon", "FileTextIcon"]
|
|
7
7
|
}
|
|
@@ -21,7 +21,7 @@ import { z } from 'zod';
|
|
|
21
21
|
declare const PaneModeSchema: z.ZodEnum<["expanded", "collapsed"]>;
|
|
22
22
|
declare const SidebarModeSchema: z.ZodEnum<["collapsed", "thin", "expanded"]>;
|
|
23
23
|
declare const PresentationValueSchema: z.ZodEnum<["fixed", "overlay", "stacked"]>;
|
|
24
|
-
declare const
|
|
24
|
+
declare const _BreakpointSchema: z.ZodEnum<["initial", "xs", "sm", "md", "lg", "xl"]>;
|
|
25
25
|
declare const PaneTargetSchema: z.ZodEnum<["left", "rail", "panel", "sidebar", "inspector", "bottom"]>;
|
|
26
26
|
declare const TriggerActionSchema: z.ZodEnum<["toggle", "expand", "collapse"]>;
|
|
27
27
|
declare const ResponsiveModeSchema: z.ZodUnion<[z.ZodEnum<["expanded", "collapsed"]>, z.ZodObject<{
|
|
@@ -990,7 +990,7 @@ export type ShellHandleProps = z.infer<typeof ShellHandleSchema>;
|
|
|
990
990
|
export type PaneMode = z.infer<typeof PaneModeSchema>;
|
|
991
991
|
export type SidebarMode = z.infer<typeof SidebarModeSchema>;
|
|
992
992
|
export type PresentationValue = z.infer<typeof PresentationValueSchema>;
|
|
993
|
-
export type Breakpoint = z.infer<typeof
|
|
993
|
+
export type Breakpoint = z.infer<typeof _BreakpointSchema>;
|
|
994
994
|
export type PaneTarget = z.infer<typeof PaneTargetSchema>;
|
|
995
995
|
export type TriggerAction = z.infer<typeof TriggerActionSchema>;
|
|
996
996
|
export type ResponsiveMode = z.infer<typeof ResponsiveModeSchema>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell.schema.d.ts","sourceRoot":"","sources":["../../../../src/components/schemas/shell.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;;;;;;;;GAkBG;AAGH,QAAA,MAAM,cAAc,sCAAgE,CAAC;AACrF,QAAA,MAAM,iBAAiB,8CAA2E,CAAC;AACnG,QAAA,MAAM,uBAAuB,
|
|
1
|
+
{"version":3,"file":"shell.schema.d.ts","sourceRoot":"","sources":["../../../../src/components/schemas/shell.schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/components/schemas/shell.schema.ts"],
|
|
4
|
-
"sourcesContent": ["import { z } from 'zod';\n\n/**\n * Shell Zod schema - Single source of truth for Shell component props\n *\n * The Shell component is a layout engine that provides structural patterns for building\n * application interfaces. It manages layout state, composition rules, and responsive\n * behavior across seven core slots.\n *\n * @example\n * ```tsx\n * // Basic shell validation\n * const props = ShellRootSchema.parse({ height: 'full' });\n *\n * // Shell with responsive sidebar\n * const sidebarProps = ShellSidebarSchema.parse({\n * defaultMode: { initial: 'collapsed', md: 'expanded' },\n * presentation: { initial: 'overlay', lg: 'fixed' }\n * });\n * ```\n */\n\n// Common types\nconst PaneModeSchema = z.enum(['expanded', 'collapsed']).describe('Pane state mode');\nconst SidebarModeSchema = z.enum(['collapsed', 'thin', 'expanded']).describe('Sidebar state mode');\nconst PresentationValueSchema = z\n .enum(['fixed', 'overlay', 'stacked'])\n .describe('Presentation mode');\nconst BreakpointSchema = z\n .enum(['initial', 'xs', 'sm', 'md', 'lg', 'xl'])\n .describe('Responsive breakpoint');\nconst PaneTargetSchema = z\n .enum(['left', 'rail', 'panel', 'sidebar', 'inspector', 'bottom'])\n .describe('Pane target');\nconst TriggerActionSchema = z.enum(['toggle', 'expand', 'collapse']).describe('Trigger action');\n\n// Responsive schemas\nconst ResponsiveModeSchema = z\n .union([\n PaneModeSchema,\n z.object({\n initial: PaneModeSchema.optional(),\n xs: PaneModeSchema.optional(),\n sm: PaneModeSchema.optional(),\n md: PaneModeSchema.optional(),\n lg: PaneModeSchema.optional(),\n xl: PaneModeSchema.optional(),\n }),\n ])\n .describe('Responsive pane mode configuration');\n\nconst ResponsiveSidebarModeSchema = z\n .union([\n SidebarModeSchema,\n z.object({\n initial: SidebarModeSchema.optional(),\n xs: SidebarModeSchema.optional(),\n sm: SidebarModeSchema.optional(),\n md: SidebarModeSchema.optional(),\n lg: SidebarModeSchema.optional(),\n xl: SidebarModeSchema.optional(),\n }),\n ])\n .describe('Responsive sidebar mode configuration');\n\nconst ResponsivePresentationSchema = z\n .union([\n PresentationValueSchema,\n z.object({\n initial: PresentationValueSchema.optional(),\n xs: PresentationValueSchema.optional(),\n sm: PresentationValueSchema.optional(),\n md: PresentationValueSchema.optional(),\n lg: PresentationValueSchema.optional(),\n xl: PresentationValueSchema.optional(),\n }),\n ])\n .describe('Responsive presentation configuration');\n\n// Size persistence adapter\nconst PaneSizePersistenceSchema = z\n .object({\n load: z\n .function()\n .returns(z.union([z.number(), z.promise(z.number()), z.undefined()]))\n .optional(),\n save: z\n .function()\n .args(z.number())\n .returns(z.union([z.void(), z.promise(z.void())]))\n .optional(),\n })\n .describe('Size persistence adapter');\n\n// Common pane props\nconst PanePropsSchema = z\n .object({\n presentation: ResponsivePresentationSchema.optional(),\n mode: PaneModeSchema.optional(),\n defaultMode: ResponsiveModeSchema.optional(),\n onModeChange: z.function().args(PaneModeSchema).returns(z.void()).optional(),\n expandedSize: z.number().optional(),\n minSize: z.number().optional(),\n maxSize: z.number().optional(),\n resizable: z.boolean().optional(),\n collapsible: z.boolean().optional(),\n onExpand: z.function().returns(z.void()).optional(),\n onCollapse: z.function().returns(z.void()).optional(),\n onResize: z.function().args(z.number()).returns(z.void()).optional(),\n resizer: z.any().optional(),\n onResizeStart: z.function().args(z.number()).returns(z.void()).optional(),\n onResizeEnd: z.function().args(z.number()).returns(z.void()).optional(),\n snapPoints: z.array(z.number()).optional(),\n snapTolerance: z.number().optional(),\n collapseThreshold: z.number().optional(),\n paneId: z.string().optional(),\n persistence: PaneSizePersistenceSchema.optional(),\n className: z.string().optional(),\n style: z.record(z.string(), z.union([z.string(), z.number()])).optional(),\n children: z.any().optional(),\n })\n .strict();\n\n/**\n * Shell.Root component schema\n */\nexport const ShellRootSchema = z\n .object({\n height: z\n .union([z.literal('full'), z.literal('auto'), z.string(), z.number()])\n .default('full')\n .describe('Height of the shell container'),\n className: z.string().optional().describe('Additional CSS class name'),\n style: z\n .record(z.string(), z.union([z.string(), z.number()]))\n .optional()\n .describe('Inline styles'),\n children: z.any().optional().describe('Shell components'),\n })\n .strict();\n\n/**\n * Shell.Header component schema\n */\nexport const ShellHeaderSchema = z\n .object({\n height: z.union([z.string(), z.number()]).default(64).describe('Height of the header'),\n className: z.string().optional().describe('Additional CSS class name'),\n style: z\n .record(z.string(), z.union([z.string(), z.number()]))\n .optional()\n .describe('Inline styles'),\n children: z.any().optional().describe('Header content'),\n })\n .strict();\n\n/**\n * Shell.Rail component schema\n */\nexport const ShellRailSchema = z\n .object({\n presentation: ResponsivePresentationSchema.optional(),\n mode: PaneModeSchema.optional(),\n defaultMode: ResponsiveModeSchema.optional(),\n onModeChange: z.function().args(PaneModeSchema).returns(z.void()).optional(),\n expandedSize: z.number().default(64).describe('Default width in pixels'),\n collapsible: z.boolean().optional(),\n onExpand: z.function().returns(z.void()).optional(),\n onCollapse: z.function().returns(z.void()).optional(),\n className: z.string().optional().describe('Additional CSS class name'),\n style: z\n .record(z.string(), z.union([z.string(), z.number()]))\n .optional()\n .describe('Inline styles'),\n children: z.any().optional().describe('Rail content'),\n })\n .strict();\n\n/**\n * Shell.Panel component schema\n */\nexport const ShellPanelSchema = PanePropsSchema.extend({\n expandedSize: z.number().default(288).describe('Default width in pixels'),\n minSize: z.number().default(200).describe('Minimum width when resizing'),\n maxSize: z.number().default(800).describe('Maximum width when resizing'),\n resizable: z.boolean().default(false).describe('Whether the panel can be resized'),\n collapsible: z\n .boolean()\n .default(true)\n .describe('Whether the panel can be collapsed via resize handle'),\n}).strict();\n\n/**\n * Shell.Sidebar component schema\n */\nexport const ShellSidebarSchema = PanePropsSchema.extend({\n mode: SidebarModeSchema.optional(),\n defaultMode: ResponsiveSidebarModeSchema.default('expanded').describe('Initial sidebar mode'),\n expandedSize: z.number().default(288).describe('Default width in pixels'),\n minSize: z.number().default(200).describe('Minimum width when resizing'),\n maxSize: z.number().default(400).describe('Maximum width when resizing'),\n thinSize: z.number().default(64).describe('Width in thin mode'),\n toggleModes: z.enum(['both', 'single']).optional().describe('Available modes in toggle sequence'),\n resizable: z.boolean().default(false).describe('Whether the sidebar can be resized'),\n collapsible: z\n .boolean()\n .default(true)\n .describe('Whether the sidebar can be collapsed via resize handle'),\n}).strict();\n\n/**\n * Shell.Content component schema\n */\nexport const ShellContentSchema = z\n .object({\n className: z.string().optional().describe('Additional CSS class name'),\n style: z\n .record(z.string(), z.union([z.string(), z.number()]))\n .optional()\n .describe('Inline styles'),\n children: z.any().optional().describe('Main content'),\n })\n .strict();\n\n/**\n * Shell.Inspector component schema\n */\nexport const ShellInspectorSchema = PanePropsSchema.extend({\n presentation: ResponsivePresentationSchema.default({ initial: 'overlay', lg: 'fixed' }).describe(\n 'Presentation mode',\n ),\n expandedSize: z.number().default(320).describe('Default width in pixels'),\n minSize: z.number().default(200).describe('Minimum width when resizing'),\n maxSize: z.number().default(500).describe('Maximum width when resizing'),\n resizable: z.boolean().default(false).describe('Whether the inspector can be resized'),\n collapsible: z\n .boolean()\n .default(true)\n .describe('Whether the inspector can be collapsed via resize handle'),\n}).strict();\n\n/**\n * Shell.Bottom component schema\n */\nexport const ShellBottomSchema = PanePropsSchema.extend({\n presentation: ResponsivePresentationSchema.default('fixed').describe('Presentation mode'),\n expandedSize: z.number().default(200).describe('Default height in pixels'),\n minSize: z.number().default(100).describe('Minimum height when resizing'),\n maxSize: z.number().default(400).describe('Maximum height when resizing'),\n resizable: z.boolean().default(false).describe('Whether the bottom panel can be resized'),\n collapsible: z\n .boolean()\n .default(true)\n .describe('Whether the bottom panel can be collapsed via resize handle'),\n}).strict();\n\n/**\n * Shell.Trigger component schema\n */\nexport const ShellTriggerSchema = z\n .object({\n target: PaneTargetSchema.describe('Which pane to control'),\n action: TriggerActionSchema.default('toggle').describe('Action to perform'),\n peekOnHover: z\n .boolean()\n .default(false)\n .describe('Whether to show peek preview on hover when collapsed'),\n className: z.string().optional().describe('Additional CSS class name'),\n style: z\n .record(z.string(), z.union([z.string(), z.number()]))\n .optional()\n .describe('Inline styles'),\n children: z.any().optional().describe('Trigger content'),\n onClick: z.function().optional().describe('Click handler'),\n onMouseEnter: z.function().optional().describe('Mouse enter handler'),\n onMouseLeave: z.function().optional().describe('Mouse leave handler'),\n 'aria-label': z.string().optional().describe('ARIA label for accessibility'),\n 'aria-labelledby': z.string().optional().describe('ARIA labelled by reference'),\n 'aria-describedby': z.string().optional().describe('ARIA described by reference'),\n })\n .strict();\n\n/**\n * Shell.Handle component schema (for resize handles)\n */\nexport const ShellHandleSchema = z\n .object({\n className: z.string().optional().describe('Additional CSS class name'),\n style: z\n .record(z.string(), z.union([z.string(), z.number()]))\n .optional()\n .describe('Inline styles'),\n children: z.any().optional().describe('Handle content'),\n })\n .strict();\n\n// Type exports\nexport type ShellRootProps = z.infer<typeof ShellRootSchema>;\nexport type ShellHeaderProps = z.infer<typeof ShellHeaderSchema>;\nexport type ShellRailProps = z.infer<typeof ShellRailSchema>;\nexport type ShellPanelProps = z.infer<typeof ShellPanelSchema>;\nexport type ShellSidebarProps = z.infer<typeof ShellSidebarSchema>;\nexport type ShellContentProps = z.infer<typeof ShellContentSchema>;\nexport type ShellInspectorProps = z.infer<typeof ShellInspectorSchema>;\nexport type ShellBottomProps = z.infer<typeof ShellBottomSchema>;\nexport type ShellTriggerProps = z.infer<typeof ShellTriggerSchema>;\nexport type ShellHandleProps = z.infer<typeof ShellHandleSchema>;\n\n// Common type exports\nexport type PaneMode = z.infer<typeof PaneModeSchema>;\nexport type SidebarMode = z.infer<typeof SidebarModeSchema>;\nexport type PresentationValue = z.infer<typeof PresentationValueSchema>;\nexport type Breakpoint = z.infer<typeof BreakpointSchema>;\nexport type PaneTarget = z.infer<typeof PaneTargetSchema>;\nexport type TriggerAction = z.infer<typeof TriggerActionSchema>;\nexport type ResponsiveMode = z.infer<typeof ResponsiveModeSchema>;\nexport type ResponsiveSidebarMode = z.infer<typeof ResponsiveSidebarModeSchema>;\nexport type ResponsivePresentation = z.infer<typeof ResponsivePresentationSchema>;\nexport type PaneSizePersistence = z.infer<typeof PaneSizePersistenceSchema>;\n\n/**\n * Development-only helper to validate and normalize Shell props\n * This function should only be used in development mode\n *\n * @param props - Props to validate and normalize\n * @returns Validated and normalized props\n *\n * @example\n * ```tsx\n * // In development, this will validate props and show helpful errors\n * const validatedProps = parseShellRootProps({ height: 'invalid' });\n * // Throws validation errors for invalid values\n * ```\n */\nexport function parseShellRootProps(props: unknown): ShellRootProps {\n if (process.env.NODE_ENV === 'development') {\n return ShellRootSchema.parse(props);\n }\n return props as ShellRootProps;\n}\n\nexport function parseShellHeaderProps(props: unknown): ShellHeaderProps {\n if (process.env.NODE_ENV === 'development') {\n return ShellHeaderSchema.parse(props);\n }\n return props as ShellHeaderProps;\n}\n\nexport function parseShellRailProps(props: unknown): ShellRailProps {\n if (process.env.NODE_ENV === 'development') {\n return ShellRailSchema.parse(props);\n }\n return props as ShellRailProps;\n}\n\nexport function parseShellPanelProps(props: unknown): ShellPanelProps {\n if (process.env.NODE_ENV === 'development') {\n return ShellPanelSchema.parse(props);\n }\n return props as ShellPanelProps;\n}\n\nexport function parseShellSidebarProps(props: unknown): ShellSidebarProps {\n if (process.env.NODE_ENV === 'development') {\n return ShellSidebarSchema.parse(props);\n }\n return props as ShellSidebarProps;\n}\n\nexport function parseShellContentProps(props: unknown): ShellContentProps {\n if (process.env.NODE_ENV === 'development') {\n return ShellContentSchema.parse(props);\n }\n return props as ShellContentProps;\n}\n\nexport function parseShellInspectorProps(props: unknown): ShellInspectorProps {\n if (process.env.NODE_ENV === 'development') {\n return ShellInspectorSchema.parse(props);\n }\n return props as ShellInspectorProps;\n}\n\nexport function parseShellBottomProps(props: unknown): ShellBottomProps {\n if (process.env.NODE_ENV === 'development') {\n return ShellBottomSchema.parse(props);\n }\n return props as ShellBottomProps;\n}\n\nexport function parseShellTriggerProps(props: unknown): ShellTriggerProps {\n if (process.env.NODE_ENV === 'development') {\n return ShellTriggerSchema.parse(props);\n }\n return props as ShellTriggerProps;\n}\n\nexport function parseShellHandleProps(props: unknown): ShellHandleProps {\n if (process.env.NODE_ENV === 'development') {\n return ShellHandleSchema.parse(props);\n }\n return props as ShellHandleProps;\n}\n"],
|
|
5
|
-
"mappings": "AAAA,OAAS,KAAAA,MAAS,MAuBlB,MAAMC,EAAiBD,EAAE,KAAK,CAAC,WAAY,WAAW,CAAC,EAAE,SAAS,iBAAiB,EAC7EE,EAAoBF,EAAE,KAAK,CAAC,YAAa,OAAQ,UAAU,CAAC,EAAE,SAAS,oBAAoB,EAC3FG,EAA0BH,
|
|
6
|
-
"names": ["z", "PaneModeSchema", "SidebarModeSchema", "PresentationValueSchema", "
|
|
4
|
+
"sourcesContent": ["import { z } from 'zod';\n\n/**\n * Shell Zod schema - Single source of truth for Shell component props\n *\n * The Shell component is a layout engine that provides structural patterns for building\n * application interfaces. It manages layout state, composition rules, and responsive\n * behavior across seven core slots.\n *\n * @example\n * ```tsx\n * // Basic shell validation\n * const props = ShellRootSchema.parse({ height: 'full' });\n *\n * // Shell with responsive sidebar\n * const sidebarProps = ShellSidebarSchema.parse({\n * defaultMode: { initial: 'collapsed', md: 'expanded' },\n * presentation: { initial: 'overlay', lg: 'fixed' }\n * });\n * ```\n */\n\n// Common types\nconst PaneModeSchema = z.enum(['expanded', 'collapsed']).describe('Pane state mode');\nconst SidebarModeSchema = z.enum(['collapsed', 'thin', 'expanded']).describe('Sidebar state mode');\nconst PresentationValueSchema = z.enum(['fixed', 'overlay', 'stacked']).describe('Presentation mode');\nconst _BreakpointSchema = z.enum(['initial', 'xs', 'sm', 'md', 'lg', 'xl']).describe('Responsive breakpoint');\nconst PaneTargetSchema = z.enum(['left', 'rail', 'panel', 'sidebar', 'inspector', 'bottom']).describe('Pane target');\nconst TriggerActionSchema = z.enum(['toggle', 'expand', 'collapse']).describe('Trigger action');\n\n// Responsive schemas\nconst ResponsiveModeSchema = z\n .union([\n PaneModeSchema,\n z.object({\n initial: PaneModeSchema.optional(),\n xs: PaneModeSchema.optional(),\n sm: PaneModeSchema.optional(),\n md: PaneModeSchema.optional(),\n lg: PaneModeSchema.optional(),\n xl: PaneModeSchema.optional(),\n }),\n ])\n .describe('Responsive pane mode configuration');\n\nconst ResponsiveSidebarModeSchema = z\n .union([\n SidebarModeSchema,\n z.object({\n initial: SidebarModeSchema.optional(),\n xs: SidebarModeSchema.optional(),\n sm: SidebarModeSchema.optional(),\n md: SidebarModeSchema.optional(),\n lg: SidebarModeSchema.optional(),\n xl: SidebarModeSchema.optional(),\n }),\n ])\n .describe('Responsive sidebar mode configuration');\n\nconst ResponsivePresentationSchema = z\n .union([\n PresentationValueSchema,\n z.object({\n initial: PresentationValueSchema.optional(),\n xs: PresentationValueSchema.optional(),\n sm: PresentationValueSchema.optional(),\n md: PresentationValueSchema.optional(),\n lg: PresentationValueSchema.optional(),\n xl: PresentationValueSchema.optional(),\n }),\n ])\n .describe('Responsive presentation configuration');\n\n// Size persistence adapter\nconst PaneSizePersistenceSchema = z\n .object({\n load: z\n .function()\n .returns(z.union([z.number(), z.promise(z.number()), z.undefined()]))\n .optional(),\n save: z\n .function()\n .args(z.number())\n .returns(z.union([z.void(), z.promise(z.void())]))\n .optional(),\n })\n .describe('Size persistence adapter');\n\n// Common pane props\nconst PanePropsSchema = z\n .object({\n presentation: ResponsivePresentationSchema.optional(),\n mode: PaneModeSchema.optional(),\n defaultMode: ResponsiveModeSchema.optional(),\n onModeChange: z.function().args(PaneModeSchema).returns(z.void()).optional(),\n expandedSize: z.number().optional(),\n minSize: z.number().optional(),\n maxSize: z.number().optional(),\n resizable: z.boolean().optional(),\n collapsible: z.boolean().optional(),\n onExpand: z.function().returns(z.void()).optional(),\n onCollapse: z.function().returns(z.void()).optional(),\n onResize: z.function().args(z.number()).returns(z.void()).optional(),\n resizer: z.any().optional(),\n onResizeStart: z.function().args(z.number()).returns(z.void()).optional(),\n onResizeEnd: z.function().args(z.number()).returns(z.void()).optional(),\n snapPoints: z.array(z.number()).optional(),\n snapTolerance: z.number().optional(),\n collapseThreshold: z.number().optional(),\n paneId: z.string().optional(),\n persistence: PaneSizePersistenceSchema.optional(),\n className: z.string().optional(),\n style: z.record(z.string(), z.union([z.string(), z.number()])).optional(),\n children: z.any().optional(),\n })\n .strict();\n\n/**\n * Shell.Root component schema\n */\nexport const ShellRootSchema = z\n .object({\n height: z\n .union([z.literal('full'), z.literal('auto'), z.string(), z.number()])\n .default('full')\n .describe('Height of the shell container'),\n className: z.string().optional().describe('Additional CSS class name'),\n style: z\n .record(z.string(), z.union([z.string(), z.number()]))\n .optional()\n .describe('Inline styles'),\n children: z.any().optional().describe('Shell components'),\n })\n .strict();\n\n/**\n * Shell.Header component schema\n */\nexport const ShellHeaderSchema = z\n .object({\n height: z.union([z.string(), z.number()]).default(64).describe('Height of the header'),\n className: z.string().optional().describe('Additional CSS class name'),\n style: z\n .record(z.string(), z.union([z.string(), z.number()]))\n .optional()\n .describe('Inline styles'),\n children: z.any().optional().describe('Header content'),\n })\n .strict();\n\n/**\n * Shell.Rail component schema\n */\nexport const ShellRailSchema = z\n .object({\n presentation: ResponsivePresentationSchema.optional(),\n mode: PaneModeSchema.optional(),\n defaultMode: ResponsiveModeSchema.optional(),\n onModeChange: z.function().args(PaneModeSchema).returns(z.void()).optional(),\n expandedSize: z.number().default(64).describe('Default width in pixels'),\n collapsible: z.boolean().optional(),\n onExpand: z.function().returns(z.void()).optional(),\n onCollapse: z.function().returns(z.void()).optional(),\n className: z.string().optional().describe('Additional CSS class name'),\n style: z\n .record(z.string(), z.union([z.string(), z.number()]))\n .optional()\n .describe('Inline styles'),\n children: z.any().optional().describe('Rail content'),\n })\n .strict();\n\n/**\n * Shell.Panel component schema\n */\nexport const ShellPanelSchema = PanePropsSchema.extend({\n expandedSize: z.number().default(288).describe('Default width in pixels'),\n minSize: z.number().default(200).describe('Minimum width when resizing'),\n maxSize: z.number().default(800).describe('Maximum width when resizing'),\n resizable: z.boolean().default(false).describe('Whether the panel can be resized'),\n collapsible: z.boolean().default(true).describe('Whether the panel can be collapsed via resize handle'),\n}).strict();\n\n/**\n * Shell.Sidebar component schema\n */\nexport const ShellSidebarSchema = PanePropsSchema.extend({\n mode: SidebarModeSchema.optional(),\n defaultMode: ResponsiveSidebarModeSchema.default('expanded').describe('Initial sidebar mode'),\n expandedSize: z.number().default(288).describe('Default width in pixels'),\n minSize: z.number().default(200).describe('Minimum width when resizing'),\n maxSize: z.number().default(400).describe('Maximum width when resizing'),\n thinSize: z.number().default(64).describe('Width in thin mode'),\n toggleModes: z.enum(['both', 'single']).optional().describe('Available modes in toggle sequence'),\n resizable: z.boolean().default(false).describe('Whether the sidebar can be resized'),\n collapsible: z.boolean().default(true).describe('Whether the sidebar can be collapsed via resize handle'),\n}).strict();\n\n/**\n * Shell.Content component schema\n */\nexport const ShellContentSchema = z\n .object({\n className: z.string().optional().describe('Additional CSS class name'),\n style: z\n .record(z.string(), z.union([z.string(), z.number()]))\n .optional()\n .describe('Inline styles'),\n children: z.any().optional().describe('Main content'),\n })\n .strict();\n\n/**\n * Shell.Inspector component schema\n */\nexport const ShellInspectorSchema = PanePropsSchema.extend({\n presentation: ResponsivePresentationSchema.default({ initial: 'overlay', lg: 'fixed' }).describe('Presentation mode'),\n expandedSize: z.number().default(320).describe('Default width in pixels'),\n minSize: z.number().default(200).describe('Minimum width when resizing'),\n maxSize: z.number().default(500).describe('Maximum width when resizing'),\n resizable: z.boolean().default(false).describe('Whether the inspector can be resized'),\n collapsible: z.boolean().default(true).describe('Whether the inspector can be collapsed via resize handle'),\n}).strict();\n\n/**\n * Shell.Bottom component schema\n */\nexport const ShellBottomSchema = PanePropsSchema.extend({\n presentation: ResponsivePresentationSchema.default('fixed').describe('Presentation mode'),\n expandedSize: z.number().default(200).describe('Default height in pixels'),\n minSize: z.number().default(100).describe('Minimum height when resizing'),\n maxSize: z.number().default(400).describe('Maximum height when resizing'),\n resizable: z.boolean().default(false).describe('Whether the bottom panel can be resized'),\n collapsible: z.boolean().default(true).describe('Whether the bottom panel can be collapsed via resize handle'),\n}).strict();\n\n/**\n * Shell.Trigger component schema\n */\nexport const ShellTriggerSchema = z\n .object({\n target: PaneTargetSchema.describe('Which pane to control'),\n action: TriggerActionSchema.default('toggle').describe('Action to perform'),\n peekOnHover: z.boolean().default(false).describe('Whether to show peek preview on hover when collapsed'),\n className: z.string().optional().describe('Additional CSS class name'),\n style: z\n .record(z.string(), z.union([z.string(), z.number()]))\n .optional()\n .describe('Inline styles'),\n children: z.any().optional().describe('Trigger content'),\n onClick: z.function().optional().describe('Click handler'),\n onMouseEnter: z.function().optional().describe('Mouse enter handler'),\n onMouseLeave: z.function().optional().describe('Mouse leave handler'),\n 'aria-label': z.string().optional().describe('ARIA label for accessibility'),\n 'aria-labelledby': z.string().optional().describe('ARIA labelled by reference'),\n 'aria-describedby': z.string().optional().describe('ARIA described by reference'),\n })\n .strict();\n\n/**\n * Shell.Handle component schema (for resize handles)\n */\nexport const ShellHandleSchema = z\n .object({\n className: z.string().optional().describe('Additional CSS class name'),\n style: z\n .record(z.string(), z.union([z.string(), z.number()]))\n .optional()\n .describe('Inline styles'),\n children: z.any().optional().describe('Handle content'),\n })\n .strict();\n\n// Type exports\nexport type ShellRootProps = z.infer<typeof ShellRootSchema>;\nexport type ShellHeaderProps = z.infer<typeof ShellHeaderSchema>;\nexport type ShellRailProps = z.infer<typeof ShellRailSchema>;\nexport type ShellPanelProps = z.infer<typeof ShellPanelSchema>;\nexport type ShellSidebarProps = z.infer<typeof ShellSidebarSchema>;\nexport type ShellContentProps = z.infer<typeof ShellContentSchema>;\nexport type ShellInspectorProps = z.infer<typeof ShellInspectorSchema>;\nexport type ShellBottomProps = z.infer<typeof ShellBottomSchema>;\nexport type ShellTriggerProps = z.infer<typeof ShellTriggerSchema>;\nexport type ShellHandleProps = z.infer<typeof ShellHandleSchema>;\n\n// Common type exports\nexport type PaneMode = z.infer<typeof PaneModeSchema>;\nexport type SidebarMode = z.infer<typeof SidebarModeSchema>;\nexport type PresentationValue = z.infer<typeof PresentationValueSchema>;\nexport type Breakpoint = z.infer<typeof _BreakpointSchema>;\nexport type PaneTarget = z.infer<typeof PaneTargetSchema>;\nexport type TriggerAction = z.infer<typeof TriggerActionSchema>;\nexport type ResponsiveMode = z.infer<typeof ResponsiveModeSchema>;\nexport type ResponsiveSidebarMode = z.infer<typeof ResponsiveSidebarModeSchema>;\nexport type ResponsivePresentation = z.infer<typeof ResponsivePresentationSchema>;\nexport type PaneSizePersistence = z.infer<typeof PaneSizePersistenceSchema>;\n\n/**\n * Development-only helper to validate and normalize Shell props\n * This function should only be used in development mode\n *\n * @param props - Props to validate and normalize\n * @returns Validated and normalized props\n *\n * @example\n * ```tsx\n * // In development, this will validate props and show helpful errors\n * const validatedProps = parseShellRootProps({ height: 'invalid' });\n * // Throws validation errors for invalid values\n * ```\n */\nexport function parseShellRootProps(props: unknown): ShellRootProps {\n if (process.env.NODE_ENV === 'development') {\n return ShellRootSchema.parse(props);\n }\n return props as ShellRootProps;\n}\n\nexport function parseShellHeaderProps(props: unknown): ShellHeaderProps {\n if (process.env.NODE_ENV === 'development') {\n return ShellHeaderSchema.parse(props);\n }\n return props as ShellHeaderProps;\n}\n\nexport function parseShellRailProps(props: unknown): ShellRailProps {\n if (process.env.NODE_ENV === 'development') {\n return ShellRailSchema.parse(props);\n }\n return props as ShellRailProps;\n}\n\nexport function parseShellPanelProps(props: unknown): ShellPanelProps {\n if (process.env.NODE_ENV === 'development') {\n return ShellPanelSchema.parse(props);\n }\n return props as ShellPanelProps;\n}\n\nexport function parseShellSidebarProps(props: unknown): ShellSidebarProps {\n if (process.env.NODE_ENV === 'development') {\n return ShellSidebarSchema.parse(props);\n }\n return props as ShellSidebarProps;\n}\n\nexport function parseShellContentProps(props: unknown): ShellContentProps {\n if (process.env.NODE_ENV === 'development') {\n return ShellContentSchema.parse(props);\n }\n return props as ShellContentProps;\n}\n\nexport function parseShellInspectorProps(props: unknown): ShellInspectorProps {\n if (process.env.NODE_ENV === 'development') {\n return ShellInspectorSchema.parse(props);\n }\n return props as ShellInspectorProps;\n}\n\nexport function parseShellBottomProps(props: unknown): ShellBottomProps {\n if (process.env.NODE_ENV === 'development') {\n return ShellBottomSchema.parse(props);\n }\n return props as ShellBottomProps;\n}\n\nexport function parseShellTriggerProps(props: unknown): ShellTriggerProps {\n if (process.env.NODE_ENV === 'development') {\n return ShellTriggerSchema.parse(props);\n }\n return props as ShellTriggerProps;\n}\n\nexport function parseShellHandleProps(props: unknown): ShellHandleProps {\n if (process.env.NODE_ENV === 'development') {\n return ShellHandleSchema.parse(props);\n }\n return props as ShellHandleProps;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["z", "PaneModeSchema", "SidebarModeSchema", "PresentationValueSchema", "_BreakpointSchema", "PaneTargetSchema", "TriggerActionSchema", "ResponsiveModeSchema", "ResponsiveSidebarModeSchema", "ResponsivePresentationSchema", "PaneSizePersistenceSchema", "PanePropsSchema", "ShellRootSchema", "ShellHeaderSchema", "ShellRailSchema", "ShellPanelSchema", "ShellSidebarSchema", "ShellContentSchema", "ShellInspectorSchema", "ShellBottomSchema", "ShellTriggerSchema", "ShellHandleSchema", "parseShellRootProps", "props", "parseShellHeaderProps", "parseShellRailProps", "parseShellPanelProps", "parseShellSidebarProps", "parseShellContentProps", "parseShellInspectorProps", "parseShellBottomProps", "parseShellTriggerProps", "parseShellHandleProps"]
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../../src/components/shell.tsx"],"names":[],"mappings":"AA2BA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,yBAAyB,EAAsB,MAAM,kBAAkB,CAAC;AAGjF,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,KAAK,EAAqB,sBAAsB,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,EAAc,UAAU,EAAc,MAAM,kBAAkB,CAAC;AAElK,OAAO,EAEL,QAAQ,EAUT,MAAM,oBAAoB,CAAC;AAkL5B,UAAU,cAAe,SAAQ,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC;IACpE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;CAC5C;AAED,QAAA,MAAM,IAAI,
|
|
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 J from"classnames";import*as de from"./sheet.js";import{VisuallyHidden as Se}from"./visually-hidden.js";import{useResponsivePresentation as Me,useResponsiveValue as Te}from"./shell.hooks.js";import{PaneResizeContext as Oe}from"./_internal/shell-resize.js";import{PaneHandle as Le,PanelHandle as se}from"./_internal/shell-handles.js";import{Sidebar as ie}from"./_internal/shell-sidebar.js";import{Bottom as ye}from"./_internal/shell-bottom.js";import{Inspector as Pe}from"./_internal/shell-inspector.js";import{_BREAKPOINTS as _e}from"./shell.types.js";import{ShellProvider as ke,useShell as ae,LeftModeContext as Ne,PanelModeContext as De,SidebarModeContext as we,InspectorModeContext as Ae,BottomModeContext as Be,PresentationContext as He,PeekContext as ze,ActionsContext as Ie,CompositionContext as Ve}from"./shell.context.js";function Fe(){const[o,d]=e.useState("initial"),[s,h]=e.useState(!1);return e.useEffect(()=>{if(typeof window>"u")return;const y=Object.entries(_e).map(([p,n])=>[p,window.matchMedia(n)]),c=()=>{const p=y.filter(([,r])=>r.matches).map(([r])=>r),n=p[p.length-1]??"initial";d(n),h(!0)};c();const i=[];return y.forEach(([,p])=>{const n=p;typeof n.addEventListener=="function"&&typeof n.removeEventListener=="function"?(n.addEventListener("change",c),i.push(()=>n.removeEventListener?.("change",c))):typeof n.addListener=="function"&&typeof n.removeListener=="function"&&(n.addListener(c),i.push(()=>n.removeListener?.(c)))}),()=>{i.forEach(p=>{try{p()}catch{}})}},[]),{bp:o,ready:s}}function We(o,d){switch(d.type){case"SET_LEFT_MODE":return d.mode==="collapsed"?{...o,leftMode:"collapsed",panelMode:"collapsed"}:{...o,leftMode:d.mode};case"SET_PANEL_MODE":return d.mode==="expanded"&&o.leftMode!=="expanded"?{...o,leftMode:"expanded",panelMode:"expanded"}:{...o,panelMode:d.mode};case"SET_SIDEBAR_MODE":return{...o,sidebarMode:d.mode};case"SET_INSPECTOR_MODE":return{...o,inspectorMode:d.mode};case"SET_BOTTOM_MODE":return{...o,bottomMode:d.mode};case"TOGGLE_PANE":{switch(d.target){case"left":case"rail":return{...o,leftMode:o.leftMode==="expanded"?"collapsed":"expanded",panelMode:o.leftMode==="expanded"?"collapsed":o.panelMode};case"panel":return o.leftMode==="collapsed"?{...o,leftMode:"expanded",panelMode:"expanded"}:{...o,panelMode:o.panelMode==="expanded"?"collapsed":"expanded"};case"sidebar":{const s=o.sidebarMode==="collapsed"?"expanded":o.sidebarMode==="expanded"?"collapsed":"expanded";return{...o,sidebarMode:s}}case"inspector":return{...o,inspectorMode:o.inspectorMode==="expanded"?"collapsed":"expanded"};case"bottom":return{...o,bottomMode:o.bottomMode==="expanded"?"collapsed":"expanded"};default:return o}return o}case"EXPAND_PANE":{switch(d.target){case"left":case"rail":return{...o,leftMode:"expanded"};case"panel":return{...o,leftMode:"expanded",panelMode:"expanded"};case"sidebar":return{...o,sidebarMode:"expanded"};case"inspector":return{...o,inspectorMode:"expanded"};case"bottom":return{...o,bottomMode:"expanded"};default:return o}return o}case"COLLAPSE_PANE":{switch(d.target){case"left":case"rail":return{...o,leftMode:"collapsed",panelMode:"collapsed"};case"panel":return{...o,panelMode:"collapsed"};case"sidebar":return{...o,sidebarMode:"collapsed"};case"inspector":return{...o,inspectorMode:"collapsed"};case"bottom":return{...o,bottomMode:"collapsed"};default:return o}return o}}return o}const be=e.forwardRef(({className:o,children:d,height:s="full",...h},v)=>{const{bp:y,ready:c}=Fe(),i=e.Children.toArray(d),p=i.some(t=>e.isValidElement(t)&&t.type?.displayName==="Shell.Panel"&&!!t.props?.defaultOpen),n=i.some(t=>e.isValidElement(t)&&t.type?.displayName==="Shell.Rail"&&!!t.props?.defaultOpen),[r,P]=e.useReducer(We,{leftMode:p||n?"expanded":"collapsed",panelMode:p?"expanded":"collapsed",sidebarMode:"expanded",inspectorMode:"collapsed",bottomMode:"collapsed"}),k=e.useCallback(t=>P({type:"SET_LEFT_MODE",mode:t}),[]),T=e.useCallback(t=>P({type:"SET_PANEL_MODE",mode:t}),[]),E=e.useCallback(t=>P({type:"SET_SIDEBAR_MODE",mode:t}),[]),$=e.useCallback(t=>P({type:"SET_INSPECTOR_MODE",mode:t}),[]),N=e.useCallback(t=>P({type:"SET_BOTTOM_MODE",mode:t}),[]),[R,B]=e.useState(!1),[x,W]=e.useState(!1),ne=e.useRef(t=>t==="collapsed"?"thin":t==="thin"?"expanded":"collapsed"),q=e.useCallback(t=>{ne.current=t},[]);e.useEffect(()=>{x&&R&&console.warn("Shell: Sidebar cannot coexist with Rail or Panel. Use either Rail+Panel OR Sidebar.")},[x,R]);const[D,Y]=e.useState(void 0),G=e.useCallback(t=>Y(t),[]),te=e.useRef(64),V=e.useRef(288),b=e.useCallback(t=>{te.current=t},[]),l=e.useCallback(t=>{V.current=t},[]),H=e.useMemo(()=>{const t=e.Children.toArray(d),w=(_,oe)=>e.isValidElement(_)&&(_.type===oe||_.type?.displayName===oe.displayName);return t.some(_=>w(_,ee)||w(_,A))},[d]),O=e.useMemo(()=>{const t=e.Children.toArray(d),w=(_,oe)=>e.isValidElement(_)&&(_.type===oe||_.type?.displayName===oe.displayName);return t.some(_=>w(_,ie))},[d]),g=e.useCallback(t=>{if(t==="sidebar"){const w=ne.current(r.sidebarMode);E(w);return}P({type:"TOGGLE_PANE",target:t})},[r.sidebarMode]),f=e.useCallback(t=>{if(t==="sidebar")return E("expanded");P({type:"EXPAND_PANE",target:t})},[]),F=e.useCallback(t=>{if(t==="sidebar")return E("collapsed");P({type:"COLLAPSE_PANE",target:t})},[]),Q=e.useMemo(()=>({leftMode:r.leftMode,setLeftMode:k,panelMode:r.panelMode,setPanelMode:T,sidebarMode:r.sidebarMode,setSidebarMode:E,inspectorMode:r.inspectorMode,setInspectorMode:$,bottomMode:r.bottomMode,setBottomMode:N,hasLeft:R,setHasLeft:B,hasSidebar:x,setHasSidebar:W,currentBreakpoint:y,currentBreakpointReady:c,leftResolvedPresentation:D,togglePane:g,expandPane:f,collapsePane:F,setSidebarToggleComputer:q,onLeftPres:G,onRailDefaults:b,onPanelDefaults:l}),[r.leftMode,r.panelMode,r.sidebarMode,r.inspectorMode,r.bottomMode,R,x,y,c,D,g,f,F,q,G,b,l]),S=e.Children.toArray(d),L=(t,w)=>e.isValidElement(t)&&(t.type===w||t.type?.displayName===w.displayName),C=S.filter(t=>L(t,pe)),z=S.filter(t=>L(t,ee)),U=S.filter(t=>L(t,A)),j=S.filter(t=>L(t,ie)),I=S.filter(t=>L(t,ce)),le=S.filter(t=>L(t,Pe)),fe=S.filter(t=>L(t,ye)),re=z[0]?.props?.open;e.useEffect(()=>{if(typeof re>"u")return;k(!!re?"expanded":"collapsed")},[re]);const me=e.useMemo(()=>s==="full"?{height:"100vh"}:s==="auto"?{height:"auto"}:typeof s=="string"?{height:s}:typeof s=="number"?{height:`${s}px`}:{},[s]),[X,K]=e.useState(null),a=e.useCallback(t=>K(t),[]),u=e.useCallback(()=>K(null),[]),m=e.useMemo(()=>({currentBreakpoint:y,currentBreakpointReady:c,leftResolvedPresentation:D}),[y,c,D]),M=e.useMemo(()=>({leftMode:r.leftMode,setLeftMode:k}),[r.leftMode,k]),Z=e.useMemo(()=>({panelMode:r.panelMode,setPanelMode:T}),[r.panelMode,T]),he=e.useMemo(()=>({sidebarMode:r.sidebarMode,setSidebarMode:E}),[r.sidebarMode,E]),ve=e.useMemo(()=>({inspectorMode:r.inspectorMode,setInspectorMode:$}),[r.inspectorMode,$]),Ce=e.useMemo(()=>({bottomMode:r.bottomMode,setBottomMode:N}),[r.bottomMode,N]),Re=e.useMemo(()=>({hasLeft:R,setHasLeft:B,hasSidebar:x,setHasSidebar:W}),[R,B,x,W]),ge=e.useMemo(()=>({peekTarget:X,setPeekTarget:K,peekPane:a,clearPeek:u}),[X,K,a,u]),xe=e.useMemo(()=>({togglePane:g,expandPane:f,collapsePane:F,setSidebarToggleComputer:q}),[g,f,F,q]);return e.createElement("div",{...h,ref:v,className:J("rt-ShellRoot",o),style:{...me,...h.style}},e.createElement(ke,{value:{...Q,peekTarget:X,setPeekTarget:K,peekPane:a,clearPeek:u}},e.createElement(He.Provider,{value:m},e.createElement(Ne.Provider,{value:M},e.createElement(De.Provider,{value:Z},e.createElement(we.Provider,{value:he},e.createElement(Ae.Provider,{value:ve},e.createElement(Be.Provider,{value:Ce},e.createElement(Ve.Provider,{value:Re},e.createElement(ze.Provider,{value:ge},e.createElement(Ie.Provider,{value:xe},C,e.createElement("div",{className:"rt-ShellBody","data-peek-target":X??void 0,style:X==="rail"||X==="panel"?{"--peek-rail-width":`${te.current}px`}:void 0},H&&!O?(()=>{const t=z[0],w=t?{onOpenChange:t.props?.onOpenChange,open:t.props?.open,defaultOpen:t.props?.defaultOpen,presentation:t.props?.presentation,collapsible:t.props?.collapsible,onExpand:t.props?.onExpand,onCollapse:t.props?.onCollapse}:{defaultOpen:p?!0:void 0};return e.createElement(ue,{...w},z,U)})():j,I,le),fe)))))))))))});be.displayName="Shell.Root";const pe=e.forwardRef(({className:o,height:d=64,style:s,...h},v)=>e.createElement("header",{...h,ref:v,className:J("rt-ShellHeader",o),style:{...s,"--shell-header-height":`${d}px`}}));pe.displayName="Shell.Header";const ue=e.forwardRef(({className:o,presentation:d={initial:"fixed",sm:"fixed"},collapsible:s=!0,onExpand:h,onCollapse:v,children:y,style:c,...i},p)=>{const n=ae(),r=Me(d),P=r==="overlay",k=r==="stacked",T=e.useRef(null);e.useEffect(()=>{n.onLeftPres?.(r)},[n,r]);const E=e.useCallback(b=>{T.current=b,typeof p=="function"?p(b):p&&(p.current=b)},[p]);e.useEffect(()=>(n.setHasLeft(!0),()=>n.setHasLeft(!1)),[n]);const $=e.useRef(null),N=e.useRef(null),R=e.useRef(!1),B=Te(i.defaultOpen),x=e.useRef(!1);e.useEffect(()=>{if(x.current||!n.currentBreakpointReady||typeof i.open<"u"||typeof i.defaultOpen>"u")return;x.current=!0;const b=!!B;n.setLeftMode(b?"expanded":"collapsed"),i.onOpenChange?.(b,{reason:"init"})},[n.currentBreakpointReady,i.open,i.defaultOpen,B]),e.useEffect(()=>{if(typeof i.open<"u"){const b=!!i.open;n.setLeftMode(b?"expanded":"collapsed");return}},[n,i.open]),e.useEffect(()=>{typeof i.open<"u"||(!R.current&&B&&n.leftMode==="expanded"&&(i.onOpenChange?.(!0,{reason:"init"}),R.current=!0),N.current!==null&&N.current!==n.leftMode&&i.onOpenChange?.(n.leftMode==="expanded",{reason:"toggle"}),N.current=n.leftMode)},[n.leftMode,B]),e.useEffect(()=>{n.leftMode==="expanded"?h?.():v?.()},[n.leftMode,h,v]);const W=n.leftMode==="expanded";if(P){const b=n.leftMode==="expanded",l=e.Children.toArray(y),H=(C,z)=>e.isValidElement(C)&&C.type===z,O=l.find(C=>H(C,ee)),g=l.find(C=>H(C,A)),f=typeof O?.props?.expandedSize=="number"?O.props.expandedSize:64,F=typeof g?.props?.expandedSize=="number"?g.props.expandedSize:288,Q=!!O,S=!!g,L=(Q?f:0)+(n.panelMode==="expanded"&&S?F:0);return e.createElement(de.Root,{open:b,onOpenChange:C=>n.setLeftMode(C?"expanded":"collapsed")},e.createElement(de.Content,{side:"start",style:{padding:0},width:{initial:`${L}px`}},e.createElement(Se,null,e.createElement(de.Title,null,"Navigation")),e.createElement("div",{className:"rt-ShellLeft"},y)))}if(k){const b=n.leftMode==="expanded",l=e.Children.toArray(y),H=(I,le)=>e.isValidElement(I)&&I.type===le,O=l.find(I=>H(I,ee)),g=l.find(I=>H(I,A)),f=typeof O?.props?.expandedSize=="number"?O.props.expandedSize:64,F=typeof g?.props?.expandedSize=="number"?g.props.expandedSize:288,Q=!!O,L=!!g&&(n.panelMode==="expanded"||n.peekTarget==="panel"),{open:C,defaultOpen:z,onOpenChange:U,...j}=i;return e.createElement("div",{...j,ref:E,className:J("rt-ShellLeft",o),"data-mode":n.leftMode,"data-peek":n.peekTarget==="left"||n.peekTarget==="rail"||n.peekTarget==="panel"||void 0,"data-presentation":r,style:{...c},"data-open":b||void 0},y)}const{open:ne,defaultOpen:q,onOpenChange:D,mode:Y,defaultMode:G,onModeChange:te,...V}=i;return e.createElement("div",{...V,ref:E,className:J("rt-ShellLeft",o),"data-mode":n.leftMode,"data-peek":n.peekTarget==="left"||n.peekTarget==="rail"||n.peekTarget==="panel"||void 0,"data-presentation":r,style:{...c}},y)});ue.displayName="Shell.Left";const ee=e.forwardRef(({className:o,presentation:d,expandedSize:s=64,collapsible:h,onExpand:v,onCollapse:y,children:c,style:i,...p},n)=>{const r=ae(),P=e.useRef(null);e.useEffect(()=>{const R=typeof p.open<"u";if(P.current===null){P.current=R;return}P.current!==R&&(console.warn("Shell.Rail: Switching between controlled and uncontrolled `open` is not supported."),P.current=R)},[p.open]),e.useEffect(()=>{r.onRailDefaults?.(s)},[r,s]);const k=r.leftMode==="expanded",{defaultOpen:T,open:E,onOpenChange:$,...N}=p;return e.createElement("div",{...N,ref:n,className:J("rt-ShellRail",o),"data-mode":r.leftMode,"data-peek":r.currentBreakpointReady&&r.leftResolvedPresentation!=="overlay"&&r.peekTarget==="rail"||void 0,style:{...i,"--rail-size":`${s}px`}},e.createElement("div",{className:"rt-ShellRailContent","data-visible":r.currentBreakpointReady&&(k||r.leftResolvedPresentation!=="overlay"&&r.peekTarget==="rail")||void 0},c))});ee.displayName="Shell.Rail";const A=e.forwardRef(({className:o,defaultOpen:d,open:s,onOpenChange:h,size:v,defaultSize:y,expandedSize:c=288,minSize:i,maxSize:p,resizable:n,collapsible:r=!0,onExpand:P,onCollapse:k,onResize:T,onResizeStart:E,onResizeEnd:$,snapPoints:N,snapTolerance:R,collapseThreshold:B,paneId:x,persistence:W,children:ne,style:q,onSizeChange:D,sizeUpdate:Y,sizeUpdateMs:G=50,...te},V)=>{const b=e.useMemo(()=>{if(!D)return()=>{};if(Y==="debounce"){let a=null;return(m,M)=>{a&&clearTimeout(a),a=setTimeout(()=>{D?.(m,M)},G)}}if(Y==="throttle"){let a=0;return(u,m)=>{const M=Date.now();M-a>=G&&(a=M,D?.(u,m))}}return(a,u)=>D?.(a,u)},[D,Y,G]),l=ae(),H=e.useRef(null),O=e.useRef(null),g=e.useRef(!1);e.useEffect(()=>{typeof s>"u"&&typeof d=="boolean"&&(d?(l.setLeftMode("expanded"),l.setPanelMode("expanded")):l.setPanelMode("collapsed"))},[]),e.useEffect(()=>{typeof s>"u"||(s?(l.leftMode!=="expanded"&&l.setLeftMode("expanded"),l.panelMode!=="expanded"&&l.setPanelMode("expanded")):l.panelMode!=="collapsed"&&l.setPanelMode("collapsed"))},[s,l.leftMode,l.panelMode]),e.useEffect(()=>{const a=typeof s<"u";A._wasControlled=A._wasControlled??a,A._wasControlled!==a&&(console.warn("Shell.Panel: Switching between controlled and uncontrolled `open` is not supported."),A._wasControlled=a)},[s]),e.useEffect(()=>{g.current||typeof s>"u"&&d&&l.panelMode==="expanded"&&(h?.(!0,{reason:"init"}),g.current=!0)},[]),e.useEffect(()=>{l.onPanelDefaults?.(c)},[l,c]);const f=e.useRef(null),F=e.useCallback(a=>{f.current=a,typeof V=="function"?V(a):V&&(V.current=a)},[V]),Q=e.Children.toArray(ne),S=Q.filter(a=>e.isValidElement(a)&&a.type===se),L=Q.filter(a=>!(e.isValidElement(a)&&a.type===se)),C=l.leftResolvedPresentation==="overlay",z=e.useCallback(a=>{if(a==null)return;if(typeof a=="number"&&Number.isFinite(a))return a;const u=String(a).trim();if(!u)return;if(u.endsWith("px"))return Number.parseFloat(u);if(u.endsWith("rem")){const M=Number.parseFloat(getComputedStyle(document.documentElement).fontSize||"16")||16;return Number.parseFloat(u)*M}if(u.endsWith("%")){const M=Number.parseFloat(u),Z=document.documentElement.clientWidth||window.innerWidth||0;return M/100*Z}const m=Number.parseFloat(u);return Number.isFinite(m)?m:void 0},[]),U=e.useMemo(()=>{if(!x||W)return W;const a=`kookie-ui:shell:panel:${x}`;return{load:()=>{if(typeof window>"u")return;const m=window.localStorage.getItem(a);return m?Number(m):void 0},save:m=>{typeof window>"u"||window.localStorage.setItem(a,String(m))}}},[x,W]);e.useEffect(()=>{let a=!0;return(async()=>{if(!n||!U?.load||C)return;const u=await U.load();a&&typeof u=="number"&&f.current&&(f.current.style.setProperty("--panel-size",`${u}px`),T?.(u))})(),()=>{a=!1}},[n,U,T,C]),e.useEffect(()=>{f.current&&C&&f.current.style.setProperty("--panel-size",`${c}px`)},[C,c]),e.useEffect(()=>{if(f.current&&typeof v>"u"&&typeof y<"u"){const a=z(y);if(typeof a=="number"&&Number.isFinite(a)){const M=Math.min((typeof p=="number"?p:void 0)??a,Math.max((typeof i=="number"?i:void 0)??a,a));f.current.style.setProperty("--panel-size",`${M}px`),b(M,{reason:"init"})}}},[]),e.useEffect(()=>{if(!f.current||typeof v>"u")return;const a=z(v);if(typeof a=="number"&&Number.isFinite(a)){const M=Math.min((typeof p=="number"?p:void 0)??a,Math.max((typeof i=="number"?i:void 0)??a,a));f.current.style.setProperty("--panel-size",`${M}px`),b(M,{reason:"controlled"})}},[v,i,p,z]),e.useEffect(()=>{if(f.current&&l.leftResolvedPresentation!=="overlay"&&l.leftMode==="expanded"&&l.panelMode==="expanded"){const a=f.current.parentElement||null;try{a?.style.removeProperty("width")}catch{}}},[l.leftResolvedPresentation,l.leftMode,l.panelMode]);const j=l.leftMode==="expanded"&&l.panelMode==="expanded";e.useEffect(()=>{const a=H.current,u=O.current;if(a!==null&&a!==l.panelMode){const m=l.panelMode==="expanded";let M="toggle";u!==l.leftMode&&l.leftMode==="collapsed"&&!m&&(M="left"),h?.(m,{reason:M})}H.current=l.panelMode,O.current=l.leftMode},[l.panelMode,l.leftMode,h]);const I=n&&l.leftResolvedPresentation!=="overlay"&&j?e.createElement(Oe.Provider,{value:{containerRef:f,cssVarName:"--panel-size",minSize:typeof i=="number"?i:100,maxSize:typeof p=="number"?p:800,defaultSize:c,orientation:"vertical",edge:"end",computeNext:(a,u,m)=>{const M=getComputedStyle(f.current).direction==="rtl",Z=a-u;return m+(M?-Z:Z)},onResize:T,onResizeStart:a=>{const m=f.current?.parentElement;try{m?.style.removeProperty("width")}catch{}E?.(a)},onResizeEnd:a=>{$?.(a),b(a,{reason:"resize"}),U?.save?.(a)},target:"panel",collapsible:!!r,snapPoints:N,snapTolerance:R??8,collapseThreshold:B,requestCollapse:()=>l.setPanelMode("collapsed"),requestToggle:()=>l.togglePane("panel")}},S.length>0?S.map((a,u)=>e.cloneElement(a,{key:a.key??u})):e.createElement(Le,null)):null,{defaultOpen:le,open:fe,onOpenChange:re,size:me,defaultSize:X,...K}=te;return e.createElement("div",{...K,ref:F,className:J("rt-ShellPanel",o),"data-mode":l.panelMode,"data-visible":l.currentBreakpointReady&&(j||l.leftResolvedPresentation!=="overlay"&&l.peekTarget==="panel")||void 0,"data-peek":l.currentBreakpointReady&&l.leftResolvedPresentation!=="overlay"&&l.peekTarget==="panel"||void 0,style:{...q,"--panel-size":`${c}px`}},e.createElement("div",{className:"rt-ShellPanelContent","data-visible":j||void 0},L),I)});A.displayName="Shell.Panel",A.Handle=se;const ce=e.forwardRef(({className:o,...d},s)=>e.createElement("main",{...d,ref:s,className:J("rt-ShellContent",o)}));ce.displayName="Shell.Content";const Ee=e.forwardRef(({target:o,action:d="toggle",peekOnHover:s,onClick:h,onMouseEnter:v,onMouseLeave:y,children:c,...i},p)=>{const n=ae(),r=e.useCallback(E=>{switch(h?.(E),n.peekTarget===o&&n.clearPeek(),d){case"toggle":n.togglePane(o);break;case"expand":n.expandPane(o);break;case"collapse":n.collapsePane(o);break}},[n,o,d,h]),P=(()=>{switch(o){case"left":case"rail":return n.leftMode==="collapsed";case"panel":return n.leftMode==="collapsed"||n.panelMode==="collapsed";case"sidebar":return n.sidebarMode==="collapsed";case"inspector":return n.inspectorMode==="collapsed";case"bottom":return n.bottomMode==="collapsed"}})(),k=e.useCallback(E=>{v?.(E),!(!s||!P)&&n.peekPane(o)},[v,s,P,n,o]),T=e.useCallback(E=>{y?.(E),s&&n.peekTarget===o&&n.clearPeek()},[y,s,n,o]);return e.createElement("button",{...i,ref:p,onClick:r,onMouseEnter:k,onMouseLeave:T,"data-shell-trigger":o,"data-shell-action":d},c)});Ee.displayName="Shell.Trigger";export{ye as Bottom,ce as Content,pe as Header,Pe as Inspector,ue as Left,A as Panel,ee as Rail,be as Root,ie as Sidebar,Ee as Trigger,Me as useResponsivePresentation,ae as useShell};
|
|
1
|
+
"use client";import*as e from"react";import Y from"classnames";import*as de from"./sheet.js";import{VisuallyHidden as Se}from"./visually-hidden.js";import{useResponsivePresentation as Me,useResponsiveValue as Te}from"./shell.hooks.js";import{PaneResizeContext as Oe}from"./_internal/shell-resize.js";import{PaneHandle as Le,PanelHandle as ie}from"./_internal/shell-handles.js";import{Sidebar as pe}from"./_internal/shell-sidebar.js";import{Bottom as ye}from"./_internal/shell-bottom.js";import{Inspector as Pe}from"./_internal/shell-inspector.js";import{_BREAKPOINTS as _e}from"./shell.types.js";import{ShellProvider as ke,useShell as le,LeftModeContext as Ne,PanelModeContext as De,SidebarModeContext as we,InspectorModeContext as Ae,BottomModeContext as Be,PresentationContext as He,PeekContext as ze,ActionsContext as Ie,CompositionContext as Ve}from"./shell.context.js";function Fe(){const[o,s]=e.useState("initial"),[d,E]=e.useState(!1);return e.useEffect(()=>{if(typeof window>"u")return;const P=Object.entries(_e).map(([i,n])=>[i,window.matchMedia(n)]),f=()=>{const i=P.filter(([,l])=>l.matches).map(([l])=>l),n=i[i.length-1]??"initial";s(n),E(!0)};f();const c=[];return P.forEach(([,i])=>{const n=i;typeof n.addEventListener=="function"&&typeof n.removeEventListener=="function"?(n.addEventListener("change",f),c.push(()=>n.removeEventListener?.("change",f))):typeof n.addListener=="function"&&typeof n.removeListener=="function"&&(n.addListener(f),c.push(()=>n.removeListener?.(f)))}),()=>{c.forEach(i=>{try{i()}catch{}})}},[]),{bp:o,ready:d}}function We(o,s){switch(s.type){case"SET_LEFT_MODE":return s.mode==="collapsed"?{...o,leftMode:"collapsed",panelMode:"collapsed"}:{...o,leftMode:s.mode};case"SET_PANEL_MODE":return s.mode==="expanded"&&o.leftMode!=="expanded"?{...o,leftMode:"expanded",panelMode:"expanded"}:{...o,panelMode:s.mode};case"SET_SIDEBAR_MODE":return{...o,sidebarMode:s.mode};case"SET_INSPECTOR_MODE":return{...o,inspectorMode:s.mode};case"SET_BOTTOM_MODE":return{...o,bottomMode:s.mode};case"TOGGLE_PANE":{switch(s.target){case"left":case"rail":return{...o,leftMode:o.leftMode==="expanded"?"collapsed":"expanded",panelMode:o.leftMode==="expanded"?"collapsed":o.panelMode};case"panel":return o.leftMode==="collapsed"?{...o,leftMode:"expanded",panelMode:"expanded"}:{...o,panelMode:o.panelMode==="expanded"?"collapsed":"expanded"};case"sidebar":{const d=o.sidebarMode==="collapsed"?"expanded":o.sidebarMode==="expanded"?"collapsed":"expanded";return{...o,sidebarMode:d}}case"inspector":return{...o,inspectorMode:o.inspectorMode==="expanded"?"collapsed":"expanded"};case"bottom":return{...o,bottomMode:o.bottomMode==="expanded"?"collapsed":"expanded"};default:return o}return o}case"EXPAND_PANE":{switch(s.target){case"left":case"rail":return{...o,leftMode:"expanded"};case"panel":return{...o,leftMode:"expanded",panelMode:"expanded"};case"sidebar":return{...o,sidebarMode:"expanded"};case"inspector":return{...o,inspectorMode:"expanded"};case"bottom":return{...o,bottomMode:"expanded"};default:return o}return o}case"COLLAPSE_PANE":{switch(s.target){case"left":case"rail":return{...o,leftMode:"collapsed",panelMode:"collapsed"};case"panel":return{...o,panelMode:"collapsed"};case"sidebar":return{...o,sidebarMode:"collapsed"};case"inspector":return{...o,inspectorMode:"collapsed"};case"bottom":return{...o,bottomMode:"collapsed"};default:return o}return o}}return o}const be=e.forwardRef(({className:o,children:s,height:d="full",...E},v)=>{const{bp:P,ready:f}=Fe(),c=e.Children.toArray(s),i=c.some(t=>e.isValidElement(t)&&t.type?.displayName==="Shell.Panel"&&!!t.props?.defaultOpen),n=c.some(t=>e.isValidElement(t)&&t.type?.displayName==="Shell.Rail"&&!!t.props?.defaultOpen),[l,b]=e.useReducer(We,{leftMode:i||n?"expanded":"collapsed",panelMode:i?"expanded":"collapsed",sidebarMode:"expanded",inspectorMode:"collapsed",bottomMode:"collapsed"}),x=e.useCallback(t=>b({type:"SET_LEFT_MODE",mode:t}),[]),S=e.useCallback(t=>b({type:"SET_PANEL_MODE",mode:t}),[]),m=e.useCallback(t=>b({type:"SET_SIDEBAR_MODE",mode:t}),[]),W=e.useCallback(t=>b({type:"SET_INSPECTOR_MODE",mode:t}),[]),k=e.useCallback(t=>b({type:"SET_BOTTOM_MODE",mode:t}),[]),[R,H]=e.useState(!1),[T,O]=e.useState(!1),Q=e.useRef(t=>t==="collapsed"?"thin":t==="thin"?"expanded":"collapsed"),U=e.useCallback(t=>{Q.current=t},[]);e.useEffect(()=>{T&&R&&console.warn("Shell: Sidebar cannot coexist with Rail or Panel. Use either Rail+Panel OR Sidebar.")},[T,R]);const[w,Z]=e.useState(void 0),j=e.useCallback(t=>Z(t),[]),oe=e.useRef(64),$=e.useRef(288),q=e.useCallback(t=>{oe.current=t},[]),r=e.useCallback(t=>{$.current=t},[]),h=e.useMemo(()=>{const t=e.Children.toArray(s),A=(D,ae)=>e.isValidElement(D)&&(D.type===ae||D.type?.displayName===ae.displayName);return t.some(D=>A(D,te)||A(D,B))},[s]),z=e.useMemo(()=>{const t=e.Children.toArray(s),A=(D,ae)=>e.isValidElement(D)&&(D.type===ae||D.type?.displayName===ae.displayName);return t.some(D=>A(D,pe))},[s]),L=e.useCallback(t=>{if(t==="sidebar"){const A=Q.current(l.sidebarMode);m(A);return}b({type:"TOGGLE_PANE",target:t})},[l.sidebarMode,m]),u=e.useCallback(t=>{if(t==="sidebar")return m("expanded");b({type:"EXPAND_PANE",target:t})},[m]),g=e.useCallback(t=>{if(t==="sidebar")return m("collapsed");b({type:"COLLAPSE_PANE",target:t})},[m]),X=e.useMemo(()=>({leftMode:l.leftMode,setLeftMode:x,panelMode:l.panelMode,setPanelMode:S,sidebarMode:l.sidebarMode,setSidebarMode:m,inspectorMode:l.inspectorMode,setInspectorMode:W,bottomMode:l.bottomMode,setBottomMode:k,hasLeft:R,setHasLeft:H,hasSidebar:T,setHasSidebar:O,currentBreakpoint:P,currentBreakpointReady:f,leftResolvedPresentation:w,togglePane:L,expandPane:u,collapsePane:g,setSidebarToggleComputer:U,onLeftPres:j,onRailDefaults:q,onPanelDefaults:r}),[l.leftMode,x,l.panelMode,S,l.sidebarMode,m,l.inspectorMode,W,l.bottomMode,k,R,T,P,f,w,L,u,g,U,j,q,r]),_=e.Children.toArray(s),N=(t,A)=>e.isValidElement(t)&&(t.type===A||t.type?.displayName===A.displayName),V=_.filter(t=>N(t,ce)),I=_.filter(t=>N(t,te)),C=_.filter(t=>N(t,B)),G=_.filter(t=>N(t,pe)),re=_.filter(t=>N(t,fe)),se=_.filter(t=>N(t,Pe)),F=_.filter(t=>N(t,ye)),ee=I[0]?.props?.open;e.useEffect(()=>{if(typeof ee>"u")return;x(!!ee?"expanded":"collapsed")},[ee,x]);const me=e.useMemo(()=>d==="full"?{height:"100vh"}:d==="auto"?{height:"auto"}:typeof d=="string"?{height:d}:typeof d=="number"?{height:`${d}px`}:{},[d]),[K,J]=e.useState(null),a=e.useCallback(t=>J(t),[]),p=e.useCallback(()=>J(null),[]),M=e.useMemo(()=>({currentBreakpoint:P,currentBreakpointReady:f,leftResolvedPresentation:w}),[P,f,w]),y=e.useMemo(()=>({leftMode:l.leftMode,setLeftMode:x}),[l.leftMode,x]),ne=e.useMemo(()=>({panelMode:l.panelMode,setPanelMode:S}),[l.panelMode,S]),he=e.useMemo(()=>({sidebarMode:l.sidebarMode,setSidebarMode:m}),[l.sidebarMode,m]),ve=e.useMemo(()=>({inspectorMode:l.inspectorMode,setInspectorMode:W}),[l.inspectorMode,W]),Ce=e.useMemo(()=>({bottomMode:l.bottomMode,setBottomMode:k}),[l.bottomMode,k]),Re=e.useMemo(()=>({hasLeft:R,setHasLeft:H,hasSidebar:T,setHasSidebar:O}),[R,H,T,O]),ge=e.useMemo(()=>({peekTarget:K,setPeekTarget:J,peekPane:a,clearPeek:p}),[K,J,a,p]),xe=e.useMemo(()=>({togglePane:L,expandPane:u,collapsePane:g,setSidebarToggleComputer:U}),[L,u,g,U]);return e.createElement("div",{...E,ref:v,className:Y("rt-ShellRoot",o),style:{...me,...E.style}},e.createElement(ke,{value:{...X,peekTarget:K,setPeekTarget:J,peekPane:a,clearPeek:p}},e.createElement(He.Provider,{value:M},e.createElement(Ne.Provider,{value:y},e.createElement(De.Provider,{value:ne},e.createElement(we.Provider,{value:he},e.createElement(Ae.Provider,{value:ve},e.createElement(Be.Provider,{value:Ce},e.createElement(Ve.Provider,{value:Re},e.createElement(ze.Provider,{value:ge},e.createElement(Ie.Provider,{value:xe},V,e.createElement("div",{className:"rt-ShellBody","data-peek-target":K??void 0,style:K==="rail"||K==="panel"?{"--peek-rail-width":`${oe.current}px`}:void 0},h&&!z?(()=>{const t=I[0],A=t?{onOpenChange:t.props?.onOpenChange,open:t.props?.open,defaultOpen:t.props?.defaultOpen,presentation:t.props?.presentation,collapsible:t.props?.collapsible,onExpand:t.props?.onExpand,onCollapse:t.props?.onCollapse}:{defaultOpen:i?!0:void 0};return e.createElement(ue,{...A},I,C)})():G,re,se),F)))))))))))});be.displayName="Shell.Root";const ce=e.forwardRef(({className:o,height:s=64,style:d,...E},v)=>e.createElement("header",{...E,ref:v,className:Y("rt-ShellHeader",o),style:{...d,"--shell-header-height":`${s}px`}}));ce.displayName="Shell.Header";const ue=e.forwardRef(({className:o,presentation:s={initial:"fixed",sm:"fixed"},collapsible:d=!0,onExpand:E,onCollapse:v,children:P,style:f,...c},i)=>{const n=le(),l=Me(s),b=l==="overlay",x=l==="stacked",S=e.useRef(null);e.useEffect(()=>{n.onLeftPres?.(l)},[n,l]);const m=e.useCallback(h=>{S.current=h,typeof i=="function"?i(h):i&&(i.current=h)},[i]);e.useEffect(()=>(n.setHasLeft(!0),()=>n.setHasLeft(!1)),[n]);const W=e.useRef(null),k=e.useRef(null),R=e.useRef(!1),H=Te(c.defaultOpen),T=e.useRef(!1),O=c.open,Q=c.defaultOpen;e.useEffect(()=>{if(T.current||!n.currentBreakpointReady||typeof O<"u"||typeof Q>"u")return;T.current=!0;const h=!!H;n.setLeftMode(h?"expanded":"collapsed"),c.onOpenChange?.(h,{reason:"init"})},[n,O,Q,H,c]),e.useEffect(()=>{if(typeof O<"u"){const h=!!O;n.setLeftMode(h?"expanded":"collapsed");return}},[n,O]),e.useEffect(()=>{typeof c.open<"u"||(!R.current&&H&&n.leftMode==="expanded"&&(c.onOpenChange?.(!0,{reason:"init"}),R.current=!0),k.current!==null&&k.current!==n.leftMode&&c.onOpenChange?.(n.leftMode==="expanded",{reason:"toggle"}),k.current=n.leftMode)},[n,H,c]),e.useEffect(()=>{n.leftMode==="expanded"?E?.():v?.()},[n.leftMode,E,v]);const U=n.leftMode==="expanded";if(b){const h=n.leftMode==="expanded",z=e.Children.toArray(P),L=(C,G)=>e.isValidElement(C)&&C.type===G,u=z.find(C=>L(C,te)),g=z.find(C=>L(C,B)),X=typeof u?.props?.expandedSize=="number"?u.props.expandedSize:64,_=typeof g?.props?.expandedSize=="number"?g.props.expandedSize:288,N=!!u,V=!!g,I=(N?X:0)+(n.panelMode==="expanded"&&V?_:0);return e.createElement(de.Root,{open:h,onOpenChange:C=>n.setLeftMode(C?"expanded":"collapsed")},e.createElement(de.Content,{side:"start",style:{padding:0},width:{initial:`${I}px`}},e.createElement(Se,null,e.createElement(de.Title,null,"Navigation")),e.createElement("div",{className:"rt-ShellLeft"},P)))}if(x){const h=n.leftMode==="expanded",z=e.Children.toArray(P),L=(F,ee)=>e.isValidElement(F)&&F.type===ee,u=z.find(F=>L(F,te)),g=z.find(F=>L(F,B)),X=typeof u?.props?.expandedSize=="number"?u.props.expandedSize:64,_=typeof g?.props?.expandedSize=="number"?g.props.expandedSize:288,N=!!u,I=!!g&&(n.panelMode==="expanded"||n.peekTarget==="panel"),{open:C,defaultOpen:G,onOpenChange:re,...se}=c;return e.createElement("div",{...se,ref:m,className:Y("rt-ShellLeft",o),"data-mode":n.leftMode,"data-peek":n.peekTarget==="left"||n.peekTarget==="rail"||n.peekTarget==="panel"||void 0,"data-presentation":l,style:{...f},"data-open":h||void 0},P)}const{open:w,defaultOpen:Z,onOpenChange:j,mode:oe,defaultMode:$,onModeChange:q,...r}=c;return e.createElement("div",{...r,ref:m,className:Y("rt-ShellLeft",o),"data-mode":n.leftMode,"data-peek":n.peekTarget==="left"||n.peekTarget==="rail"||n.peekTarget==="panel"||void 0,"data-presentation":l,style:{...f}},P)});ue.displayName="Shell.Left";const te=e.forwardRef(({className:o,presentation:s,expandedSize:d=64,collapsible:E,onExpand:v,onCollapse:P,children:f,style:c,...i},n)=>{const l=le(),b=e.useRef(null);e.useEffect(()=>{const R=typeof i.open<"u";if(b.current===null){b.current=R;return}b.current!==R&&(console.warn("Shell.Rail: Switching between controlled and uncontrolled `open` is not supported."),b.current=R)},[i.open]),e.useEffect(()=>{l.onRailDefaults?.(d)},[l,d]);const x=l.leftMode==="expanded",{defaultOpen:S,open:m,onOpenChange:W,...k}=i;return e.createElement("div",{...k,ref:n,className:Y("rt-ShellRail",o),"data-mode":l.leftMode,"data-peek":l.currentBreakpointReady&&l.leftResolvedPresentation!=="overlay"&&l.peekTarget==="rail"||void 0,style:{...c,"--rail-size":`${d}px`}},e.createElement("div",{className:"rt-ShellRailContent","data-visible":l.currentBreakpointReady&&(x||l.leftResolvedPresentation!=="overlay"&&l.peekTarget==="rail")||void 0},f))});te.displayName="Shell.Rail";const B=e.forwardRef(({className:o,defaultOpen:s,open:d,onOpenChange:E,size:v,defaultSize:P,expandedSize:f=288,minSize:c,maxSize:i,resizable:n,collapsible:l=!0,onExpand:b,onCollapse:x,onResize:S,onResizeStart:m,onResizeEnd:W,snapPoints:k,snapTolerance:R,collapseThreshold:H,paneId:T,persistence:O,children:Q,style:U,onSizeChange:w,sizeUpdate:Z,sizeUpdateMs:j=50,...oe},$)=>{const q=e.useMemo(()=>{if(!w)return()=>{};if(Z==="debounce"){let a=null;return(M,y)=>{a&&clearTimeout(a),a=setTimeout(()=>{w?.(M,y)},j)}}if(Z==="throttle"){let a=0;return(p,M)=>{const y=Date.now();y-a>=j&&(a=y,w?.(p,M))}}return(a,p)=>w?.(a,p)},[w,Z,j]),r=le(),h=e.useRef(null),z=e.useRef(null),L=e.useRef(!1);e.useEffect(()=>{typeof d>"u"&&typeof s=="boolean"&&(s?(r.setLeftMode("expanded"),r.setPanelMode("expanded")):r.setPanelMode("collapsed"))},[]),e.useEffect(()=>{typeof d>"u"||(d?(r.leftMode!=="expanded"&&r.setLeftMode("expanded"),r.panelMode!=="expanded"&&r.setPanelMode("expanded")):r.panelMode!=="collapsed"&&r.setPanelMode("collapsed"))},[r,d]),e.useEffect(()=>{const a=typeof d<"u";B._wasControlled=B._wasControlled??a,B._wasControlled!==a&&(console.warn("Shell.Panel: Switching between controlled and uncontrolled `open` is not supported."),B._wasControlled=a)},[d]),e.useEffect(()=>{L.current||typeof d>"u"&&s&&r.panelMode==="expanded"&&(E?.(!0,{reason:"init"}),L.current=!0)},[]),e.useEffect(()=>{r.onPanelDefaults?.(f)},[r,f]);const u=e.useRef(null),g=e.useCallback(a=>{u.current=a,typeof $=="function"?$(a):$&&($.current=a)},[$]),X=e.Children.toArray(Q),_=X.filter(a=>e.isValidElement(a)&&a.type===ie),N=X.filter(a=>!(e.isValidElement(a)&&a.type===ie)),V=r.leftResolvedPresentation==="overlay",I=e.useCallback(a=>{if(a==null)return;if(typeof a=="number"&&Number.isFinite(a))return a;const p=String(a).trim();if(!p)return;if(p.endsWith("px"))return Number.parseFloat(p);if(p.endsWith("rem")){const y=Number.parseFloat(getComputedStyle(document.documentElement).fontSize||"16")||16;return Number.parseFloat(p)*y}if(p.endsWith("%")){const y=Number.parseFloat(p),ne=document.documentElement.clientWidth||window.innerWidth||0;return y/100*ne}const M=Number.parseFloat(p);return Number.isFinite(M)?M:void 0},[]),C=e.useMemo(()=>{if(!T||O)return O;const a=`kookie-ui:shell:panel:${T}`;return{load:()=>{if(typeof window>"u")return;const M=window.localStorage.getItem(a);return M?Number(M):void 0},save:M=>{typeof window>"u"||window.localStorage.setItem(a,String(M))}}},[T,O]);e.useEffect(()=>{let a=!0;return(async()=>{if(!n||!C?.load||V)return;const p=await C.load();a&&typeof p=="number"&&u.current&&(u.current.style.setProperty("--panel-size",`${p}px`),S?.(p))})(),()=>{a=!1}},[n,C,S,V]),e.useEffect(()=>{u.current&&V&&u.current.style.setProperty("--panel-size",`${f}px`)},[V,f]),e.useEffect(()=>{if(u.current&&typeof v>"u"&&typeof P<"u"){const a=I(P);if(typeof a=="number"&&Number.isFinite(a)){const y=Math.min((typeof i=="number"?i:void 0)??a,Math.max((typeof c=="number"?c:void 0)??a,a));u.current.style.setProperty("--panel-size",`${y}px`),q(y,{reason:"init"})}}},[]),e.useEffect(()=>{if(!u.current||typeof v>"u")return;const a=I(v);if(typeof a=="number"&&Number.isFinite(a)){const y=Math.min((typeof i=="number"?i:void 0)??a,Math.max((typeof c=="number"?c:void 0)??a,a));u.current.style.setProperty("--panel-size",`${y}px`),q(y,{reason:"controlled"})}},[v,c,i,I,q]),e.useEffect(()=>{if(u.current&&r.leftResolvedPresentation!=="overlay"&&r.leftMode==="expanded"&&r.panelMode==="expanded"){const a=u.current.parentElement||null;try{a?.style.removeProperty("width")}catch{}}},[r.leftResolvedPresentation,r.leftMode,r.panelMode]);const G=r.leftMode==="expanded"&&r.panelMode==="expanded";e.useEffect(()=>{const a=h.current,p=z.current;if(a!==null&&a!==r.panelMode){const M=r.panelMode==="expanded";let y="toggle";p!==r.leftMode&&r.leftMode==="collapsed"&&!M&&(y="left"),E?.(M,{reason:y})}h.current=r.panelMode,z.current=r.leftMode},[r.panelMode,r.leftMode,E]);const re=n&&r.leftResolvedPresentation!=="overlay"&&G?e.createElement(Oe.Provider,{value:{containerRef:u,cssVarName:"--panel-size",minSize:typeof c=="number"?c:100,maxSize:typeof i=="number"?i:800,defaultSize:f,orientation:"vertical",edge:"end",computeNext:(a,p,M)=>{const y=getComputedStyle(u.current).direction==="rtl",ne=a-p;return M+(y?-ne:ne)},onResize:S,onResizeStart:a=>{const M=u.current?.parentElement;try{M?.style.removeProperty("width")}catch{}m?.(a)},onResizeEnd:a=>{W?.(a),q(a,{reason:"resize"}),C?.save?.(a)},target:"panel",collapsible:!!l,snapPoints:k,snapTolerance:R??8,collapseThreshold:H,requestCollapse:()=>r.setPanelMode("collapsed"),requestToggle:()=>r.togglePane("panel")}},_.length>0?_.map((a,p)=>e.cloneElement(a,{key:a.key??p})):e.createElement(Le,null)):null,{defaultOpen:se,open:F,onOpenChange:ee,size:me,defaultSize:K,...J}=oe;return e.createElement("div",{...J,ref:g,className:Y("rt-ShellPanel",o),"data-mode":r.panelMode,"data-visible":r.currentBreakpointReady&&(G||r.leftResolvedPresentation!=="overlay"&&r.peekTarget==="panel")||void 0,"data-peek":r.currentBreakpointReady&&r.leftResolvedPresentation!=="overlay"&&r.peekTarget==="panel"||void 0,style:{...U,"--panel-size":`${f}px`}},e.createElement("div",{className:"rt-ShellPanelContent","data-visible":G||void 0},N),re)});B.displayName="Shell.Panel",B.Handle=ie;const fe=e.forwardRef(({className:o,...s},d)=>e.createElement("main",{...s,ref:d,className:Y("rt-ShellContent",o)}));fe.displayName="Shell.Content";const Ee=e.forwardRef(({target:o,action:s="toggle",peekOnHover:d,onClick:E,onMouseEnter:v,onMouseLeave:P,children:f,...c},i)=>{const n=le(),l=e.useCallback(m=>{switch(E?.(m),n.peekTarget===o&&n.clearPeek(),s){case"toggle":n.togglePane(o);break;case"expand":n.expandPane(o);break;case"collapse":n.collapsePane(o);break}},[n,o,s,E]),b=(()=>{switch(o){case"left":case"rail":return n.leftMode==="collapsed";case"panel":return n.leftMode==="collapsed"||n.panelMode==="collapsed";case"sidebar":return n.sidebarMode==="collapsed";case"inspector":return n.inspectorMode==="collapsed";case"bottom":return n.bottomMode==="collapsed"}})(),x=e.useCallback(m=>{v?.(m),!(!d||!b)&&n.peekPane(o)},[v,d,b,n,o]),S=e.useCallback(m=>{P?.(m),d&&n.peekTarget===o&&n.clearPeek()},[P,d,n,o]);return e.createElement("button",{...c,ref:i,onClick:l,onMouseEnter:x,onMouseLeave:S,"data-shell-trigger":o,"data-shell-action":s},f)});Ee.displayName="Shell.Trigger";export{ye as Bottom,fe as Content,ce as Header,Pe as Inspector,ue as Left,B as Panel,te as Rail,be as Root,pe as Sidebar,Ee as Trigger,Me as useResponsivePresentation,le as useShell};
|
|
2
2
|
//# sourceMappingURL=shell.js.map
|