@kushagradhawan/kookie-ui 0.1.71 → 0.1.72

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 (96) hide show
  1. package/README.md +4 -0
  2. package/components.css +63 -380
  3. package/dist/cjs/components/_internal/base-button.d.ts.map +1 -1
  4. package/dist/cjs/components/_internal/base-button.js +1 -1
  5. package/dist/cjs/components/_internal/base-button.js.map +3 -3
  6. package/dist/cjs/components/button.d.ts.map +1 -1
  7. package/dist/cjs/components/button.js +1 -1
  8. package/dist/cjs/components/button.js.map +3 -3
  9. package/dist/cjs/components/chatbar.d.ts.map +1 -1
  10. package/dist/cjs/components/chatbar.js.map +2 -2
  11. package/dist/cjs/components/icon-button.d.ts.map +1 -1
  12. package/dist/cjs/components/icon-button.js +2 -2
  13. package/dist/cjs/components/icon-button.js.map +3 -3
  14. package/dist/cjs/components/shell.d.ts.map +1 -1
  15. package/dist/cjs/components/shell.js +1 -1
  16. package/dist/cjs/components/shell.js.map +3 -3
  17. package/dist/cjs/components/toggle-button.d.ts.map +1 -1
  18. package/dist/cjs/components/toggle-button.js +1 -1
  19. package/dist/cjs/components/toggle-button.js.map +3 -3
  20. package/dist/cjs/components/toggle-icon-button.d.ts.map +1 -1
  21. package/dist/cjs/components/toggle-icon-button.js +1 -1
  22. package/dist/cjs/components/toggle-icon-button.js.map +3 -3
  23. package/dist/cjs/hooks/index.d.ts +2 -0
  24. package/dist/cjs/hooks/index.d.ts.map +1 -1
  25. package/dist/cjs/hooks/index.js +1 -1
  26. package/dist/cjs/hooks/index.js.map +3 -3
  27. package/dist/cjs/hooks/use-live-announcer.d.ts.map +1 -1
  28. package/dist/cjs/hooks/use-live-announcer.js +2 -2
  29. package/dist/cjs/hooks/use-live-announcer.js.map +3 -3
  30. package/dist/cjs/hooks/use-toggle-state.d.ts +37 -0
  31. package/dist/cjs/hooks/use-toggle-state.d.ts.map +1 -0
  32. package/dist/cjs/hooks/use-toggle-state.js +2 -0
  33. package/dist/cjs/hooks/use-toggle-state.js.map +7 -0
  34. package/dist/cjs/hooks/use-tooltip-wrapper.d.ts +29 -0
  35. package/dist/cjs/hooks/use-tooltip-wrapper.d.ts.map +1 -0
  36. package/dist/cjs/hooks/use-tooltip-wrapper.js +2 -0
  37. package/dist/cjs/hooks/use-tooltip-wrapper.js.map +7 -0
  38. package/dist/esm/components/_internal/base-button.d.ts.map +1 -1
  39. package/dist/esm/components/_internal/base-button.js +1 -1
  40. package/dist/esm/components/_internal/base-button.js.map +3 -3
  41. package/dist/esm/components/button.d.ts.map +1 -1
  42. package/dist/esm/components/button.js +1 -1
  43. package/dist/esm/components/button.js.map +3 -3
  44. package/dist/esm/components/chatbar.d.ts.map +1 -1
  45. package/dist/esm/components/chatbar.js.map +2 -2
  46. package/dist/esm/components/icon-button.d.ts.map +1 -1
  47. package/dist/esm/components/icon-button.js +2 -2
  48. package/dist/esm/components/icon-button.js.map +3 -3
  49. package/dist/esm/components/shell.d.ts.map +1 -1
  50. package/dist/esm/components/shell.js +1 -1
  51. package/dist/esm/components/shell.js.map +3 -3
  52. package/dist/esm/components/toggle-button.d.ts.map +1 -1
  53. package/dist/esm/components/toggle-button.js +1 -1
  54. package/dist/esm/components/toggle-button.js.map +3 -3
  55. package/dist/esm/components/toggle-icon-button.d.ts.map +1 -1
  56. package/dist/esm/components/toggle-icon-button.js +1 -1
  57. package/dist/esm/components/toggle-icon-button.js.map +3 -3
  58. package/dist/esm/hooks/index.d.ts +2 -0
  59. package/dist/esm/hooks/index.d.ts.map +1 -1
  60. package/dist/esm/hooks/index.js +1 -1
  61. package/dist/esm/hooks/index.js.map +3 -3
  62. package/dist/esm/hooks/use-live-announcer.d.ts.map +1 -1
  63. package/dist/esm/hooks/use-live-announcer.js +2 -2
  64. package/dist/esm/hooks/use-live-announcer.js.map +3 -3
  65. package/dist/esm/hooks/use-toggle-state.d.ts +37 -0
  66. package/dist/esm/hooks/use-toggle-state.d.ts.map +1 -0
  67. package/dist/esm/hooks/use-toggle-state.js +2 -0
  68. package/dist/esm/hooks/use-toggle-state.js.map +7 -0
  69. package/dist/esm/hooks/use-tooltip-wrapper.d.ts +29 -0
  70. package/dist/esm/hooks/use-tooltip-wrapper.d.ts.map +1 -0
  71. package/dist/esm/hooks/use-tooltip-wrapper.js +2 -0
  72. package/dist/esm/hooks/use-tooltip-wrapper.js.map +7 -0
  73. package/package.json +4 -4
  74. package/schemas/base-button.json +1 -1
  75. package/schemas/button.json +1 -1
  76. package/schemas/icon-button.json +1 -1
  77. package/schemas/index.json +6 -6
  78. package/schemas/toggle-button.json +1 -1
  79. package/schemas/toggle-icon-button.json +1 -1
  80. package/src/components/_internal/base-button.css +136 -614
  81. package/src/components/_internal/base-button.tsx +15 -13
  82. package/src/components/button.tsx +13 -42
  83. package/src/components/chatbar.tsx +1 -13
  84. package/src/components/icon-button.tsx +20 -44
  85. package/src/components/image.css +10 -8
  86. package/src/components/shell.tsx +13 -9
  87. package/src/components/toggle-button.tsx +30 -59
  88. package/src/components/toggle-icon-button.tsx +29 -51
  89. package/src/hooks/index.ts +2 -0
  90. package/src/hooks/use-live-announcer.ts +34 -7
  91. package/src/hooks/use-toggle-state.ts +72 -0
  92. package/src/hooks/use-tooltip-wrapper.ts +28 -0
  93. package/src/styles/tokens/color.css +11 -1
  94. package/styles.css +70 -381
  95. package/tokens/base.css +7 -1
  96. package/tokens.css +7 -1
@@ -1,5 +1,5 @@
1
- "use strict";var v=Object.create;var i=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var g=Object.getPrototypeOf,T=Object.prototype.hasOwnProperty;var x=(t,e)=>{for(var o in e)i(t,o,{get:e[o],enumerable:!0})},u=(t,e,o,l)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of E(e))!T.call(t,n)&&n!==o&&i(t,n,{get:()=>e[n],enumerable:!(l=w(e,n))||l.enumerable});return t};var d=(t,e,o)=>(o=t!=null?v(g(t)):{},u(e||!t||!t.__esModule?i(o,"default",{value:t,enumerable:!0}):o,t)),A=t=>u(i({},"__esModule",{value:!0}),t);var N={};x(N,{IconButton:()=>c});module.exports=A(N);var r=d(require("react")),m=d(require("classnames")),B=require("./_internal/base-button.js"),y=require("./tooltip.js");const c=r.forwardRef(({className:t,tooltip:e,tooltipSide:o="top",tooltipAlign:l="center",tooltipDelayDuration:n,tooltipDisableHoverableContent:I,...a},f)=>{const s=r.useId(),P="aria-label"in a&&a["aria-label"],R="aria-labelledby"in a&&a["aria-labelledby"],h="children"in a&&a.children;if(!P&&!R&&!h)throw new Error(`IconButton: Icon buttons must have an accessible name. Please provide either:
1
+ "use strict";var g=Object.create;var l=Object.defineProperty;var E=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var N=Object.getPrototypeOf,T=Object.prototype.hasOwnProperty;var x=(e,t)=>{for(var o in t)l(e,o,{get:t[o],enumerable:!0})},p=(e,t,o,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of w(t))!T.call(e,n)&&n!==o&&l(e,n,{get:()=>t[n],enumerable:!(a=E(t,n))||a.enumerable});return e};var b=(e,t,o)=>(o=e!=null?g(N(e)):{},p(t||!e||!e.__esModule?l(o,"default",{value:e,enumerable:!0}):o,e)),A=e=>p(l({},"__esModule",{value:!0}),e);var O={};x(O,{IconButton:()=>s});module.exports=A(O);var i=b(require("react")),u=b(require("classnames")),m=require("./_internal/base-button.js"),d=require("./tooltip.js"),B=require("../hooks/use-tooltip-wrapper.js");const s=i.forwardRef(({className:e,tooltip:t,tooltipSide:o="top",tooltipAlign:a="center",tooltipDelayDuration:n,tooltipDisableHoverableContent:y,...r},f)=>{const{tooltipId:I,hasTooltip:P,accessibilityProps:R}=(0,B.useTooltipWrapper)(t),h="aria-label"in r&&r["aria-label"],v="aria-labelledby"in r&&r["aria-labelledby"],C="children"in r&&r.children;!h&&!v&&!C&&console.error(`IconButton: Icon buttons must have an accessible name. Please provide either:
2
2
  - aria-label prop with descriptive text
3
3
  - aria-labelledby prop referencing a label element
4
- - or visible text children`);const p=!!e,C=r.useMemo(()=>p?{"aria-describedby":s}:{},[p,s]),b=r.createElement(B.BaseButton,{...a,...C,ref:f,className:(0,m.default)("rt-IconButton",t)});return e?r.createElement(y.Tooltip,{content:e,side:o,align:l,delayDuration:n,disableHoverableContent:I,id:s},b):b});c.displayName="IconButton";
4
+ - or visible text children`);const c=i.createElement(m.BaseButton,{...r,...R,ref:f,className:(0,u.default)("rt-IconButton",e)});return P?i.createElement(d.Tooltip,{content:t,side:o,align:a,delayDuration:n,disableHoverableContent:y,id:I},c):c});s.displayName="IconButton";
5
5
  //# sourceMappingURL=icon-button.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/icon-button.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nimport classNames from 'classnames';\n\nimport { BaseButton } from './_internal/base-button.js';\nimport { Tooltip } from './tooltip.js';\nimport type { BaseButtonProps } from './_internal/base-button.js';\n\ntype IconButtonElement = React.ElementRef<typeof BaseButton>;\n\n/**\n * Required accessibility props for icon buttons\n * Icon buttons must have an accessible name to meet WCAG guidelines\n *\n * Three ways to provide accessibility:\n * 1. aria-label: Direct descriptive text\n * 2. aria-labelledby: Reference to a label element\n * 3. children: Visible text content (fallback)\n */\ntype AccessibilityProps =\n | { 'aria-label': string; 'aria-labelledby'?: never }\n | { 'aria-label'?: never; 'aria-labelledby': string }\n | { 'aria-label'?: never; 'aria-labelledby'?: never; children: React.ReactNode };\n\n/**\n * Tooltip configuration props that can be passed to IconButton\n * These props are forwarded to the underlying Tooltip component\n */\ninterface IconButtonTooltipProps {\n /** Content to display in the tooltip on hover/focus */\n tooltip?: React.ReactNode;\n /** Side of the button where the tooltip should appear */\n tooltipSide?: 'top' | 'right' | 'bottom' | 'left';\n /** Alignment of the tooltip relative to the button */\n tooltipAlign?: 'start' | 'center' | 'end';\n /** Delay before showing the tooltip (in milliseconds) */\n tooltipDelayDuration?: number;\n /** Whether to disable hoverable content behavior */\n tooltipDisableHoverableContent?: boolean;\n}\n\n/**\n * Core IconButton props excluding the 'as' prop for polymorphic behavior\n * Combines BaseButton props with accessibility requirements and tooltip functionality\n */\ntype IconButtonOwnProps = Omit<BaseButtonProps, 'as'> & AccessibilityProps & IconButtonTooltipProps;\n\n/**\n * Polymorphic IconButton props that support rendering as different HTML elements\n * @template C - The element type to render as (defaults to 'button')\n */\ntype IconButtonProps<C extends React.ElementType = 'button'> = IconButtonOwnProps & {\n /** Element type to render as (e.g., 'a', 'span', etc.) */\n as?: C;\n} & Omit<React.ComponentPropsWithoutRef<C>, keyof IconButtonOwnProps>;\n\n/**\n * IconButton component type that supports polymorphic rendering\n * @template C - The element type to render as\n */\ntype IconButtonComponent = <C extends React.ElementType = 'button'>(\n props: IconButtonProps<C> & { ref?: React.ForwardedRef<IconButtonElement> },\n) => React.ReactElement | null;\n\n/**\n * IconButton component for compact, accessible icon-only interactions\n *\n * The IconButton component extends Button with specialized behavior for visual symbols.\n * It enforces accessibility requirements, provides automatic square sizing, and includes\n * built-in tooltip integration. Icon buttons are essential for space-efficient interfaces\n * while maintaining accessibility compliance.\n *\n * Key features:\n * - Enforced accessibility requirements (aria-label, aria-labelledby, or children)\n * - Automatic square aspect ratios for consistent visual alignment\n * - Built-in tooltip support for context and guidance\n * - Same variant and size system as Button for consistency\n * - Runtime validation for accessibility compliance\n *\n * @example\n * ```tsx\n * // Basic icon button with aria-label\n * <IconButton aria-label=\"Settings\">\n * <Settings />\n * </IconButton>\n *\n * // Icon button with tooltip\n * <IconButton aria-label=\"Save\" tooltip=\"Save your progress\">\n * <Save />\n * </IconButton>\n *\n * // Icon button with aria-labelledby\n * <IconButton aria-labelledby=\"settings-label\">\n * <Settings />\n * </IconButton>\n * <span id=\"settings-label\">Open settings panel</span>\n *\n * // Icon button with visible text (fallback)\n * <IconButton>\n * <Settings />\n * Settings\n * </IconButton>\n * ```\n */\nconst IconButton = React.forwardRef(\n (\n {\n className,\n tooltip,\n tooltipSide = 'top',\n tooltipAlign = 'center',\n tooltipDelayDuration,\n tooltipDisableHoverableContent,\n ...props\n }: IconButtonProps,\n forwardedRef: React.ForwardedRef<IconButtonElement>,\n ) => {\n // Generate unique ID for tooltip accessibility\n const tooltipId = React.useId();\n // Runtime accessibility validation to ensure WCAG compliance\n // This helps catch accessibility issues during development\n const hasAriaLabel = 'aria-label' in props && props['aria-label'];\n const hasAriaLabelledBy = 'aria-labelledby' in props && props['aria-labelledby'];\n const hasChildren = 'children' in props && props.children;\n\n // Throw descriptive error if no accessible name is provided\n if (!hasAriaLabel && !hasAriaLabelledBy && !hasChildren) {\n throw new Error(\n 'IconButton: Icon buttons must have an accessible name. Please provide either:' +\n '\\n- aria-label prop with descriptive text' +\n '\\n- aria-labelledby prop referencing a label element' +\n '\\n- or visible text children',\n );\n }\n\n // Prepare accessibility props for tooltip integration\n const hasTooltip = Boolean(tooltip);\n const tooltipAccessibilityProps = React.useMemo(\n () => (hasTooltip ? { 'aria-describedby': tooltipId } : {}),\n [hasTooltip, tooltipId],\n );\n\n // Create the base icon button element with accessibility props\n const iconButton = (\n <BaseButton\n {...props}\n {...tooltipAccessibilityProps}\n ref={forwardedRef}\n className={classNames('rt-IconButton', className)}\n />\n );\n\n // If no tooltip is provided, return the icon button as-is for better performance\n if (!tooltip) {\n return iconButton;\n }\n\n // Wrap with Tooltip when tooltip content is provided\n // This creates a compound component that handles both button and tooltip functionality\n return (\n <Tooltip\n content={tooltip}\n side={tooltipSide}\n align={tooltipAlign}\n delayDuration={tooltipDelayDuration}\n disableHoverableContent={tooltipDisableHoverableContent}\n id={tooltipId}\n >\n {iconButton}\n </Tooltip>\n );\n },\n) as IconButtonComponent & { displayName?: string };\n\nIconButton.displayName = 'IconButton';\n\nexport { IconButton };\nexport type { IconButtonProps };\n"],
5
- "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,gBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAuB,oBACvBC,EAAuB,yBAEvBC,EAA2B,sCAC3BC,EAAwB,wBAmGxB,MAAML,EAAaE,EAAM,WACvB,CACE,CACE,UAAAI,EACA,QAAAC,EACA,YAAAC,EAAc,MACd,aAAAC,EAAe,SACf,qBAAAC,EACA,+BAAAC,EACA,GAAGC,CACL,EACAC,IACG,CAEH,MAAMC,EAAYZ,EAAM,MAAM,EAGxBa,EAAe,eAAgBH,GAASA,EAAM,YAAY,EAC1DI,EAAoB,oBAAqBJ,GAASA,EAAM,iBAAiB,EACzEK,EAAc,aAAcL,GAASA,EAAM,SAGjD,GAAI,CAACG,GAAgB,CAACC,GAAqB,CAACC,EAC1C,MAAM,IAAI,MACR;AAAA;AAAA;AAAA,2BAIF,EAIF,MAAMC,EAAa,EAAQX,EACrBY,EAA4BjB,EAAM,QACtC,IAAOgB,EAAa,CAAE,mBAAoBJ,CAAU,EAAI,CAAC,EACzD,CAACI,EAAYJ,CAAS,CACxB,EAGMM,EACJlB,EAAA,cAAC,cACE,GAAGU,EACH,GAAGO,EACJ,IAAKN,EACL,aAAW,EAAAQ,SAAW,gBAAiBf,CAAS,EAClD,EAIF,OAAKC,EAOHL,EAAA,cAAC,WACC,QAASK,EACT,KAAMC,EACN,MAAOC,EACP,cAAeC,EACf,wBAAyBC,EACzB,GAAIG,GAEHM,CACH,EAfOA,CAiBX,CACF,EAEApB,EAAW,YAAc",
6
- "names": ["icon_button_exports", "__export", "IconButton", "__toCommonJS", "React", "import_classnames", "import_base_button", "import_tooltip", "className", "tooltip", "tooltipSide", "tooltipAlign", "tooltipDelayDuration", "tooltipDisableHoverableContent", "props", "forwardedRef", "tooltipId", "hasAriaLabel", "hasAriaLabelledBy", "hasChildren", "hasTooltip", "tooltipAccessibilityProps", "iconButton", "classNames"]
4
+ "sourcesContent": ["import * as React from 'react';\nimport classNames from 'classnames';\n\nimport { BaseButton } from './_internal/base-button.js';\nimport { Tooltip } from './tooltip.js';\nimport { useTooltipWrapper } from '../hooks/use-tooltip-wrapper.js';\nimport type { BaseButtonProps } from './_internal/base-button.js';\n\ntype IconButtonElement = React.ElementRef<typeof BaseButton>;\n\n/**\n * Required accessibility props for icon buttons\n * Icon buttons must have an accessible name to meet WCAG guidelines\n *\n * Three ways to provide accessibility:\n * 1. aria-label: Direct descriptive text\n * 2. aria-labelledby: Reference to a label element\n * 3. children: Visible text content (fallback)\n */\ntype AccessibilityProps =\n | { 'aria-label': string; 'aria-labelledby'?: never }\n | { 'aria-label'?: never; 'aria-labelledby': string }\n | { 'aria-label'?: never; 'aria-labelledby'?: never; children: React.ReactNode };\n\n/**\n * Tooltip configuration props that can be passed to IconButton\n * These props are forwarded to the underlying Tooltip component\n */\ninterface IconButtonTooltipProps {\n /** Content to display in the tooltip on hover/focus */\n tooltip?: React.ReactNode;\n /** Side of the button where the tooltip should appear */\n tooltipSide?: 'top' | 'right' | 'bottom' | 'left';\n /** Alignment of the tooltip relative to the button */\n tooltipAlign?: 'start' | 'center' | 'end';\n /** Delay before showing the tooltip (in milliseconds) */\n tooltipDelayDuration?: number;\n /** Whether to disable hoverable content behavior */\n tooltipDisableHoverableContent?: boolean;\n}\n\n/**\n * Core IconButton props excluding the 'as' prop for polymorphic behavior\n * Combines BaseButton props with accessibility requirements and tooltip functionality\n */\ntype IconButtonOwnProps = Omit<BaseButtonProps, 'as'> & AccessibilityProps & IconButtonTooltipProps;\n\n/**\n * Polymorphic IconButton props that support rendering as different HTML elements\n * @template C - The element type to render as (defaults to 'button')\n */\ntype IconButtonProps<C extends React.ElementType = 'button'> = IconButtonOwnProps & {\n /** Element type to render as (e.g., 'a', 'span', etc.) */\n as?: C;\n} & Omit<React.ComponentPropsWithoutRef<C>, keyof IconButtonOwnProps>;\n\n/**\n * IconButton component type that supports polymorphic rendering\n * @template C - The element type to render as\n */\ntype IconButtonComponent = <C extends React.ElementType = 'button'>(props: IconButtonProps<C> & { ref?: React.ForwardedRef<IconButtonElement> }) => React.ReactElement | null;\n\n/**\n * IconButton component for compact, accessible icon-only interactions\n *\n * The IconButton component extends Button with specialized behavior for visual symbols.\n * It enforces accessibility requirements, provides automatic square sizing, and includes\n * built-in tooltip integration. Icon buttons are essential for space-efficient interfaces\n * while maintaining accessibility compliance.\n *\n * Key features:\n * - Enforced accessibility requirements (aria-label, aria-labelledby, or children)\n * - Automatic square aspect ratios for consistent visual alignment\n * - Built-in tooltip support for context and guidance\n * - Same variant and size system as Button for consistency\n * - Runtime validation for accessibility compliance\n *\n * @example\n * ```tsx\n * // Basic icon button with aria-label\n * <IconButton aria-label=\"Settings\">\n * <Settings />\n * </IconButton>\n *\n * // Icon button with tooltip\n * <IconButton aria-label=\"Save\" tooltip=\"Save your progress\">\n * <Save />\n * </IconButton>\n *\n * // Icon button with aria-labelledby\n * <IconButton aria-labelledby=\"settings-label\">\n * <Settings />\n * </IconButton>\n * <span id=\"settings-label\">Open settings panel</span>\n *\n * // Icon button with visible text (fallback)\n * <IconButton>\n * <Settings />\n * Settings\n * </IconButton>\n * ```\n */\nconst IconButton = React.forwardRef(\n (\n { className, tooltip, tooltipSide = 'top', tooltipAlign = 'center', tooltipDelayDuration, tooltipDisableHoverableContent, ...props }: IconButtonProps,\n forwardedRef: React.ForwardedRef<IconButtonElement>,\n ) => {\n // Use shared tooltip wrapper hook for accessibility props\n const { tooltipId, hasTooltip, accessibilityProps: tooltipAccessibilityProps } = useTooltipWrapper(tooltip);\n\n // Runtime accessibility validation to ensure WCAG compliance\n // This helps catch accessibility issues during development\n const hasAriaLabel = 'aria-label' in props && props['aria-label'];\n const hasAriaLabelledBy = 'aria-labelledby' in props && props['aria-labelledby'];\n const hasChildren = 'children' in props && props.children;\n\n // Validate accessible name - throw in development, log error in production\n if (!hasAriaLabel && !hasAriaLabelledBy && !hasChildren) {\n const errorMessage =\n 'IconButton: Icon buttons must have an accessible name. Please provide either:' +\n '\\n- aria-label prop with descriptive text' +\n '\\n- aria-labelledby prop referencing a label element' +\n '\\n- or visible text children';\n\n if (process.env.NODE_ENV === 'development') {\n throw new Error(errorMessage);\n } else {\n console.error(errorMessage);\n }\n }\n\n // Create the base icon button element with accessibility props\n const iconButton = <BaseButton {...props} {...tooltipAccessibilityProps} ref={forwardedRef} className={classNames('rt-IconButton', className)} />;\n\n // If no tooltip is provided, return the icon button as-is for better performance\n if (!hasTooltip) {\n return iconButton;\n }\n\n // Wrap with Tooltip when tooltip content is provided\n // This creates a compound component that handles both button and tooltip functionality\n return (\n <Tooltip content={tooltip} side={tooltipSide} align={tooltipAlign} delayDuration={tooltipDelayDuration} disableHoverableContent={tooltipDisableHoverableContent} id={tooltipId}>\n {iconButton}\n </Tooltip>\n );\n },\n) as IconButtonComponent & { displayName?: string };\n\nIconButton.displayName = 'IconButton';\n\nexport { IconButton };\nexport type { IconButtonProps };\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,gBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAuB,oBACvBC,EAAuB,yBAEvBC,EAA2B,sCAC3BC,EAAwB,wBACxBC,EAAkC,2CAiGlC,MAAMN,EAAaE,EAAM,WACvB,CACE,CAAE,UAAAK,EAAW,QAAAC,EAAS,YAAAC,EAAc,MAAO,aAAAC,EAAe,SAAU,qBAAAC,EAAsB,+BAAAC,EAAgC,GAAGC,CAAM,EACnIC,IACG,CAEH,KAAM,CAAE,UAAAC,EAAW,WAAAC,EAAY,mBAAoBC,CAA0B,KAAI,qBAAkBT,CAAO,EAIpGU,EAAe,eAAgBL,GAASA,EAAM,YAAY,EAC1DM,EAAoB,oBAAqBN,GAASA,EAAM,iBAAiB,EACzEO,EAAc,aAAcP,GAASA,EAAM,SAG7C,CAACK,GAAgB,CAACC,GAAqB,CAACC,GAUxC,QAAQ,MARR;AAAA;AAAA;AAAA,2BAQ0B,EAK9B,MAAMC,EAAanB,EAAA,cAAC,cAAY,GAAGW,EAAQ,GAAGI,EAA2B,IAAKH,EAAc,aAAW,EAAAQ,SAAW,gBAAiBf,CAAS,EAAG,EAG/I,OAAKS,EAOHd,EAAA,cAAC,WAAQ,QAASM,EAAS,KAAMC,EAAa,MAAOC,EAAc,cAAeC,EAAsB,wBAAyBC,EAAgC,GAAIG,GAClKM,CACH,EAROA,CAUX,CACF,EAEArB,EAAW,YAAc",
6
+ "names": ["icon_button_exports", "__export", "IconButton", "__toCommonJS", "React", "import_classnames", "import_base_button", "import_tooltip", "import_use_tooltip_wrapper", "className", "tooltip", "tooltipSide", "tooltipAlign", "tooltipDelayDuration", "tooltipDisableHoverableContent", "props", "forwardedRef", "tooltipId", "hasTooltip", "tooltipAccessibilityProps", "hasAriaLabel", "hasAriaLabelledBy", "hasChildren", "iconButton", "classNames"]
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 strict";"use client";var Be=Object.create;var me=Object.defineProperty;var He=Object.getOwnPropertyDescriptor;var Ve=Object.getOwnPropertyNames;var Ie=Object.getPrototypeOf,Fe=Object.prototype.hasOwnProperty;var Ue=(n,a)=>{for(var d in a)me(n,d,{get:a[d],enumerable:!0})},xe=(n,a,d,y)=>{if(a&&typeof a=="object"||typeof a=="function")for(let u of Ve(a))!Fe.call(n,u)&&u!==d&&me(n,u,{get:()=>a[u],enumerable:!(y=He(a,u))||y.enumerable});return n};var Ee=(n,a,d)=>(d=n!=null?Be(Ie(n)):{},xe(a||!n||!n.__esModule?me(d,"default",{value:n,enumerable:!0}):d,n)),We=n=>xe(me({},"__esModule",{value:!0}),n);var je={};Ue(je,{Bottom:()=>ce.Bottom,Content:()=>pe,Header:()=>ye,Inspector:()=>ue.Inspector,Left:()=>ie,Panel:()=>D,Rail:()=>Q,Root:()=>Ce,Sidebar:()=>ne.Sidebar,Trigger:()=>ve,useResponsivePresentation:()=>oe.useResponsivePresentation,useShell:()=>c.useShell});module.exports=We(je);var e=Ee(require("react")),G=Ee(require("classnames")),Se=Ee(require("./sheet.js")),Re=require("./visually-hidden.js"),oe=require("./shell.hooks.js"),ge=require("./_internal/shell-resize.js"),te=require("./_internal/shell-handles.js"),ae=require("./_internal/shell-prop-helpers.js"),ne=require("./_internal/shell-sidebar.js"),ce=require("./_internal/shell-bottom.js"),ue=require("./_internal/shell-inspector.js"),Te=require("./shell.types.js"),c=require("./shell.context.js");function $e(){const[n,a]=e.useState("initial"),[d,y]=e.useState(!1);return e.useEffect(()=>{if(typeof window>"u")return;const x=Object.entries(Te._BREAKPOINTS).map(([f,r])=>[f,window.matchMedia(r)]),E=()=>{const f=x.filter(([,m])=>m.matches).map(([m])=>m),r=f[f.length-1]??"initial";a(r),y(!0)};E();const S=[];return x.forEach(([,f])=>{const r=f;typeof r.addEventListener=="function"&&typeof r.removeEventListener=="function"?(r.addEventListener("change",E),S.push(()=>r.removeEventListener?.("change",E))):typeof r.addListener=="function"&&typeof r.removeListener=="function"&&(r.addListener(E),S.push(()=>r.removeListener?.(E)))}),()=>{S.forEach(f=>{try{f()}catch{}})}},[]),{bp:n,ready:d}}const Me=Symbol("rtShellSlot");function Y(n,a){return n[Me]=a,n}function Xe(n,a){if(!e.isValidElement(n))return!1;const d=n.type;if(d===a)return!0;const y=a?.[Me];return!!(d?.[Me]&&y&&d[Me]===y)}Y(ne.Sidebar,"Shell.Sidebar"),Y(ue.Inspector,"Shell.Inspector"),Y(ce.Bottom,"Shell.Bottom");function qe(n,a){switch(a.type){case"SET_LEFT_MODE":return a.mode==="collapsed"?{...n,leftMode:"collapsed",panelMode:"collapsed"}:{...n,leftMode:a.mode};case"SET_PANEL_MODE":return a.mode==="expanded"&&n.leftMode!=="expanded"?{...n,leftMode:"expanded",panelMode:"expanded"}:{...n,panelMode:a.mode};case"SET_SIDEBAR_MODE":return{...n,sidebarMode:a.mode};case"SET_INSPECTOR_MODE":return{...n,inspectorMode:a.mode};case"SET_BOTTOM_MODE":return{...n,bottomMode:a.mode};case"TOGGLE_PANE":{switch(a.target){case"left":case"rail":return{...n,leftMode:n.leftMode==="expanded"?"collapsed":"expanded",panelMode:n.leftMode==="expanded"?"collapsed":n.panelMode};case"panel":return n.leftMode==="collapsed"?{...n,leftMode:"expanded",panelMode:"expanded"}:{...n,panelMode:n.panelMode==="expanded"?"collapsed":"expanded"};case"sidebar":{const d=n.sidebarMode==="collapsed"?"expanded":n.sidebarMode==="expanded"?"collapsed":"expanded";return{...n,sidebarMode:d}}case"inspector":return{...n,inspectorMode:n.inspectorMode==="expanded"?"collapsed":"expanded"};case"bottom":return{...n,bottomMode:n.bottomMode==="expanded"?"collapsed":"expanded"};default:return n}return n}case"EXPAND_PANE":{switch(a.target){case"left":case"rail":return{...n,leftMode:"expanded"};case"panel":return{...n,leftMode:"expanded",panelMode:"expanded"};case"sidebar":return{...n,sidebarMode:"expanded"};case"inspector":return{...n,inspectorMode:"expanded"};case"bottom":return{...n,bottomMode:"expanded"};default:return n}return n}case"COLLAPSE_PANE":{switch(a.target){case"left":case"rail":return{...n,leftMode:"collapsed",panelMode:"collapsed"};case"panel":return{...n,panelMode:"collapsed"};case"sidebar":return{...n,sidebarMode:"collapsed"};case"inspector":return{...n,inspectorMode:"collapsed"};case"bottom":return{...n,bottomMode:"collapsed"};default:return n}return n}}return n}const Ce=e.forwardRef(({className:n,children:a,height:d="full",...y},u)=>{const{bp:x,ready:E}=$e(),S=e.Children.toArray(a),f=S.some(t=>e.isValidElement(t)&&t.type?.displayName==="Shell.Panel"&&!!t.props?.defaultOpen),r=S.some(t=>e.isValidElement(t)&&t.type?.displayName==="Shell.Rail"&&!!t.props?.defaultOpen),m=S.some(t=>e.isValidElement(t)&&t.type?.displayName==="Shell.Inspector"&&!!t.props?.defaultOpen),O=S.some(t=>e.isValidElement(t)&&t.type?.displayName==="Shell.Inspector"&&typeof t.props?.open<"u"&&!!t.props?.open),[i,R]=e.useReducer(qe,{leftMode:f||r?"expanded":"collapsed",panelMode:f?"expanded":"collapsed",sidebarMode:"expanded",inspectorMode:m||O?"expanded":"collapsed",bottomMode:"collapsed"}),l=e.useCallback(t=>R({type:"SET_LEFT_MODE",mode:t}),[]),C=e.useCallback(t=>R({type:"SET_PANEL_MODE",mode:t}),[]),g=e.useCallback(t=>R({type:"SET_SIDEBAR_MODE",mode:t}),[]),L=e.useCallback(t=>R({type:"SET_INSPECTOR_MODE",mode:t}),[]),W=e.useCallback(t=>R({type:"SET_BOTTOM_MODE",mode:t}),[]),[w,I]=e.useState(!1),[A,F]=e.useState(!1),J=e.useRef(t=>t==="collapsed"?"thin":t==="thin"?"expanded":"collapsed"),j=e.useCallback(t=>{J.current=t},[]);e.useEffect(()=>{A&&w&&console.warn("Shell: Sidebar cannot coexist with Rail or Panel. Use either Rail+Panel OR Sidebar.")},[A,w]);const[v,B]=e.useState(void 0),z=e.useCallback(t=>B(t),[]),k=e.useRef(64),T=e.useRef(288),s=e.useCallback(t=>{k.current=t},[]),$=e.useCallback(t=>{T.current=t},[]),K=e.useMemo(()=>{const t=e.Children.toArray(a),V=(_,de)=>e.isValidElement(_)&&(_.type===de||_.type?.displayName===de.displayName);return t.some(_=>V(_,Q)||V(_,D))},[a]),X=e.useMemo(()=>{const t=e.Children.toArray(a),V=(_,de)=>e.isValidElement(_)&&(_.type===de||_.type?.displayName===de.displayName);return t.some(_=>V(_,ne.Sidebar))},[a]),P=e.useCallback(t=>{if(t==="sidebar"){const V=J.current(i.sidebarMode);g(V);return}R({type:"TOGGLE_PANE",target:t})},[i.sidebarMode,g]),b=e.useCallback(t=>{if(t==="sidebar")return g("expanded");R({type:"EXPAND_PANE",target:t})},[g]),H=e.useCallback(t=>{if(t==="sidebar")return g("collapsed");R({type:"COLLAPSE_PANE",target:t})},[g]),fe=e.useMemo(()=>({leftMode:i.leftMode,setLeftMode:l,panelMode:i.panelMode,setPanelMode:C,sidebarMode:i.sidebarMode,setSidebarMode:g,inspectorMode:i.inspectorMode,setInspectorMode:L,bottomMode:i.bottomMode,setBottomMode:W,hasLeft:w,setHasLeft:I,hasSidebar:A,setHasSidebar:F,currentBreakpoint:x,currentBreakpointReady:E,leftResolvedPresentation:v,togglePane:P,expandPane:b,collapsePane:H,setSidebarToggleComputer:j,onLeftPres:z,onRailDefaults:s,onPanelDefaults:$}),[i.leftMode,l,i.panelMode,C,i.sidebarMode,g,i.inspectorMode,L,i.bottomMode,W,w,A,x,E,v,P,b,H,j,z,s,$]),U=e.Children.toArray(a),N=(t,V)=>e.isValidElement(t)&&(t.type===V||t.type?.displayName===V.displayName),le=U.filter(t=>N(t,ye)),q=U.filter(t=>N(t,Q)),re=U.filter(t=>N(t,D)),Pe=U.filter(t=>N(t,ne.Sidebar)),o=U.filter(t=>N(t,pe)),p=U.filter(t=>N(t,ue.Inspector)),h=U.filter(t=>N(t,ce.Bottom)),M=q[0]?.props?.open;e.useEffect(()=>{if(typeof M>"u")return;l(!!M?"expanded":"collapsed")},[M,l]);const Z=e.useMemo(()=>d==="full"?{height:"100vh"}:d==="auto"?{height:"auto"}:typeof d=="string"?{height:d}:typeof d=="number"?{height:`${d}px`}:{},[d]),[ee,se]=e.useState(null),be=e.useCallback(t=>se(t),[]),he=e.useCallback(()=>se(null),[]),Oe=e.useMemo(()=>({currentBreakpoint:x,currentBreakpointReady:E,leftResolvedPresentation:v}),[x,E,v]),Le=e.useMemo(()=>({leftMode:i.leftMode,setLeftMode:l}),[i.leftMode,l]),ze=e.useMemo(()=>({panelMode:i.panelMode,setPanelMode:C}),[i.panelMode,C]),ke=e.useMemo(()=>({sidebarMode:i.sidebarMode,setSidebarMode:g}),[i.sidebarMode,g]),Ne=e.useMemo(()=>({inspectorMode:i.inspectorMode,setInspectorMode:L}),[i.inspectorMode,L]),_e=e.useMemo(()=>({bottomMode:i.bottomMode,setBottomMode:W}),[i.bottomMode,W]),De=e.useMemo(()=>({hasLeft:w,setHasLeft:I,hasSidebar:A,setHasSidebar:F}),[w,I,A,F]),we=e.useMemo(()=>({peekTarget:ee,setPeekTarget:se,peekPane:be,clearPeek:he}),[ee,se,be,he]),Ae=e.useMemo(()=>({togglePane:P,expandPane:b,collapsePane:H,setSidebarToggleComputer:j}),[P,b,H,j]);return e.createElement("div",{...y,ref:u,className:(0,G.default)("rt-ShellRoot",n),style:{...Z,...y.style}},e.createElement(c.ShellProvider,{value:{...fe,peekTarget:ee,setPeekTarget:se,peekPane:be,clearPeek:he}},e.createElement(c.PresentationContext.Provider,{value:Oe},e.createElement(c.LeftModeContext.Provider,{value:Le},e.createElement(c.PanelModeContext.Provider,{value:ze},e.createElement(c.SidebarModeContext.Provider,{value:ke},e.createElement(c.InspectorModeContext.Provider,{value:Ne},e.createElement(c.BottomModeContext.Provider,{value:_e},e.createElement(c.CompositionContext.Provider,{value:De},e.createElement(c.PeekContext.Provider,{value:we},e.createElement(c.ActionsContext.Provider,{value:Ae},le,e.createElement("div",{className:"rt-ShellBody","data-peek-target":ee??void 0,style:ee==="rail"||ee==="panel"?{"--peek-rail-width":`${k.current}px`}:void 0},K&&!X?(()=>{const t=q[0],V=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:f?!0:void 0};return e.createElement(ie,{...V},q,re)})():Pe,o,p),h)))))))))))});Ce.displayName="Shell.Root";const ye=e.forwardRef(({className:n,height:a=64,style:d,...y},u)=>e.createElement("header",{...y,ref:u,className:(0,G.default)("rt-ShellHeader",n),style:{...d,"--shell-header-height":`${a}px`}}));ye.displayName="Shell.Header";const Ge=["open","defaultOpen","onOpenChange","mode","defaultMode","onModeChange"],ie=e.forwardRef((n,a)=>{const{className:d,presentation:y={initial:"fixed",sm:"fixed"},collapsible:u=!0,onExpand:x,onCollapse:E,children:S,style:f,...r}=n,m=r.open,O=r.defaultOpen,i=r.onOpenChange,R=(0,ae.omitPaneProps)(r,Ge),l=(0,c.useShell)(),C=(0,oe.useResponsivePresentation)(y),g=C==="overlay",L=C==="stacked",W=e.useRef(null);e.useEffect(()=>{l.onLeftPres?.(C)},[l,C]);const w=e.useCallback(v=>{W.current=v,typeof a=="function"?a(v):a&&(a.current=v)},[a]);e.useEffect(()=>(l.setHasLeft(!0),()=>l.setHasLeft(!1)),[l]);const I=e.useRef(null),A=e.useRef(!1),F=e.useMemo(()=>{if(!(typeof m>"u"))return m?"expanded":"collapsed"},[m]),J=e.useMemo(()=>(0,ae.mapResponsiveBooleanToPaneMode)(O),[O]);(0,oe.useResponsiveInitialState)({controlledValue:F,defaultValue:J,currentValue:l.leftMode,setValue:l.setLeftMode,breakpointReady:l.currentBreakpointReady,onInit:v=>i?.(v==="expanded",{reason:"init"})}),e.useEffect(()=>{typeof m<"u"||(I.current!==null&&I.current!==l.leftMode&&i?.(l.leftMode==="expanded",{reason:"toggle"}),I.current=l.leftMode)},[l,i,m]),e.useEffect(()=>{l.leftMode==="expanded"?x?.():E?.()},[l.leftMode,x,E]);const j=l.leftMode==="expanded";if(g){const v=l.leftMode==="expanded",B=e.Children.toArray(S),z=(b,H)=>e.isValidElement(b)&&b.type===H,k=B.find(b=>z(b,Q)),T=B.find(b=>z(b,D)),s=typeof k?.props?.expandedSize=="number"?k.props.expandedSize:64,$=typeof T?.props?.expandedSize=="number"?T.props.expandedSize:288,K=!!k,X=!!T,P=(K?s:0)+(l.panelMode==="expanded"&&X?$:0);return e.createElement(Se.Root,{open:v,onOpenChange:b=>l.setLeftMode(b?"expanded":"collapsed")},e.createElement(Se.Content,{side:"start",style:{padding:0},width:{initial:`${P}px`}},e.createElement(Re.VisuallyHidden,null,e.createElement(Se.Title,null,"Navigation")),e.createElement("div",{className:"rt-ShellLeft"},S)))}if(L){const v=l.leftMode==="expanded",B=e.Children.toArray(S),z=(b,H)=>e.isValidElement(b)&&b.type===H,k=B.find(b=>z(b,Q)),T=B.find(b=>z(b,D)),s=typeof k?.props?.expandedSize=="number"?k.props.expandedSize:64,$=typeof T?.props?.expandedSize=="number"?T.props.expandedSize:288,K=!!k,P=!!T&&(l.panelMode==="expanded"||l.peekTarget==="panel");return e.createElement("div",{...R,ref:w,className:(0,G.default)("rt-ShellLeft",d),"data-mode":l.leftMode,"data-peek":l.peekTarget==="left"||l.peekTarget==="rail"||l.peekTarget==="panel"||void 0,"data-presentation":C,style:{...f},"data-open":v||void 0},S)}return e.createElement("div",{...R,ref:w,className:(0,G.default)("rt-ShellLeft",d),"data-mode":l.leftMode,"data-peek":l.peekTarget==="left"||l.peekTarget==="rail"||l.peekTarget==="panel"||void 0,"data-presentation":C,style:{...f}},S)});ie.displayName="Shell.Left",Y(ie,"Shell.Left");const Q=e.forwardRef((n,a)=>{const{className:d,presentation:y,expandedSize:u=64,collapsible:x,onExpand:E,onCollapse:S,children:f,style:r,open:m,defaultOpen:O,onOpenChange:i,...R}=n,l=(0,c.useShell)(),C=e.useRef(null);e.useEffect(()=>{const L=typeof m<"u";if(C.current===null){C.current=L;return}C.current!==L&&(console.warn("Shell.Rail: Switching between controlled and uncontrolled `open` is not supported."),C.current=L)},[m]),e.useEffect(()=>{l.onRailDefaults?.(u)},[l,u]);const g=l.leftMode==="expanded";return e.createElement("div",{...R,ref:a,className:(0,G.default)("rt-ShellRail",d),"data-mode":l.leftMode,"data-peek":l.currentBreakpointReady&&l.leftResolvedPresentation!=="overlay"&&l.peekTarget==="rail"||void 0,style:{...r,"--rail-size":`${u}px`}},e.createElement("div",{className:"rt-ShellRailContent","data-visible":l.currentBreakpointReady&&(g||l.leftResolvedPresentation!=="overlay"&&l.peekTarget==="rail")||void 0},f))});Q.displayName="Shell.Rail",Y(Q,"Shell.Rail");const Qe=["className","children","defaultOpen","open","onOpenChange","size","defaultSize","onSizeChange","sizeUpdate","sizeUpdateMs","style"],D=Y(e.forwardRef((n,a)=>{const{className:d,defaultOpen:y,open:u,onOpenChange:x,size:E,defaultSize:S,expandedSize:f=288,minSize:r,maxSize:m,resizable:O,collapsible:i=!0,onExpand:R,onCollapse:l,onResize:C,onResizeStart:g,onResizeEnd:L,snapPoints:W,snapTolerance:w,collapseThreshold:I,paneId:A,persistence:F,children:J,style:j,onSizeChange:v,sizeUpdate:B,sizeUpdateMs:z=50}=n,k=(0,ae.extractPaneDomProps)(n,Qe),T=e.useMemo(()=>{if(!v)return()=>{};if(B==="debounce"){let o=null;return(h,M)=>{o&&clearTimeout(o),o=setTimeout(()=>{v?.(h,M)},z)}}if(B==="throttle"){let o=0;return(p,h)=>{const M=Date.now();M-o>=z&&(o=M,v?.(p,h))}}return(o,p)=>v?.(o,p)},[v,B,z]),s=(0,c.useShell)(),$=e.useRef(null),K=e.useRef(null),X=e.useRef(!1);e.useEffect(()=>{typeof u>"u"&&typeof y=="boolean"&&(y?(s.setLeftMode("expanded"),s.setPanelMode("expanded")):s.setPanelMode("collapsed"))},[]),e.useEffect(()=>{typeof u>"u"||(u?(s.leftMode!=="expanded"&&s.setLeftMode("expanded"),s.panelMode!=="expanded"&&s.setPanelMode("expanded")):s.panelMode!=="collapsed"&&s.setPanelMode("collapsed"))},[s,u]),e.useEffect(()=>{const o=typeof u<"u";D._wasControlled=D._wasControlled??o,D._wasControlled!==o&&(console.warn("Shell.Panel: Switching between controlled and uncontrolled `open` is not supported."),D._wasControlled=o)},[u]),e.useEffect(()=>{X.current||typeof u>"u"&&y&&s.panelMode==="expanded"&&(x?.(!0,{reason:"init"}),X.current=!0)},[]),e.useEffect(()=>{s.onPanelDefaults?.(f)},[s,f]);const P=e.useRef(null),b=e.useCallback(o=>{P.current=o,typeof a=="function"?a(o):a&&(a.current=o)},[a]),H=e.Children.toArray(J),fe=H.filter(o=>e.isValidElement(o)&&o.type===te.PanelHandle),U=H.filter(o=>!(e.isValidElement(o)&&o.type===te.PanelHandle)),N=s.leftResolvedPresentation==="overlay",le=e.useCallback(o=>{if(o==null)return;if(typeof o=="number"&&Number.isFinite(o))return o;const p=String(o).trim();if(!p)return;if(p.endsWith("px"))return Number.parseFloat(p);if(p.endsWith("rem")){const M=Number.parseFloat(getComputedStyle(document.documentElement).fontSize||"16")||16;return Number.parseFloat(p)*M}if(p.endsWith("%")){const M=Number.parseFloat(p),Z=document.documentElement.clientWidth||window.innerWidth||0;return M/100*Z}const h=Number.parseFloat(p);return Number.isFinite(h)?h:void 0},[]),q=e.useMemo(()=>{if(!A||F)return F;const o=`kookie-ui:shell:panel:${A}`;return{load:()=>{if(typeof window>"u")return;const h=window.localStorage.getItem(o);return h?Number(h):void 0},save:h=>{typeof window>"u"||window.localStorage.setItem(o,String(h))}}},[A,F]);e.useEffect(()=>{let o=!0;return(async()=>{if(!O||!q?.load||N)return;const p=await q.load();o&&typeof p=="number"&&P.current&&(P.current.style.setProperty("--panel-size",`${p}px`),C?.(p))})(),()=>{o=!1}},[O,q,C,N]),e.useEffect(()=>{P.current&&N&&P.current.style.setProperty("--panel-size",`${f}px`)},[N,f]),e.useEffect(()=>{if(P.current&&typeof E>"u"&&typeof S<"u"){const o=le(S);if(typeof o=="number"&&Number.isFinite(o)){const M=Math.min((typeof m=="number"?m:void 0)??o,Math.max((typeof r=="number"?r:void 0)??o,o));P.current.style.setProperty("--panel-size",`${M}px`),T(M,{reason:"init"})}}},[]),e.useEffect(()=>{if(!P.current||typeof E>"u")return;const o=le(E);if(typeof o=="number"&&Number.isFinite(o)){const M=Math.min((typeof m=="number"?m:void 0)??o,Math.max((typeof r=="number"?r:void 0)??o,o));P.current.style.setProperty("--panel-size",`${M}px`),T(M,{reason:"controlled"})}},[E,r,m,le,T]),e.useEffect(()=>{if(P.current&&s.leftResolvedPresentation!=="overlay"&&s.leftMode==="expanded"&&s.panelMode==="expanded"){const o=P.current.parentElement||null;try{o?.style.removeProperty("width")}catch{}}},[s.leftResolvedPresentation,s.leftMode,s.panelMode]);const re=s.leftMode==="expanded"&&s.panelMode==="expanded";e.useEffect(()=>{const o=$.current,p=K.current;if(o!==null&&o!==s.panelMode){const h=s.panelMode==="expanded";let M="toggle";p!==s.leftMode&&s.leftMode==="collapsed"&&!h&&(M="left"),x?.(h,{reason:M})}$.current=s.panelMode,K.current=s.leftMode},[s.panelMode,s.leftMode,x]);const Pe=O&&s.leftResolvedPresentation!=="overlay"&&re?e.createElement(ge.PaneResizeContext.Provider,{value:{containerRef:P,cssVarName:"--panel-size",minSize:typeof r=="number"?r:100,maxSize:typeof m=="number"?m:800,defaultSize:f,orientation:"vertical",edge:"end",computeNext:(o,p,h)=>{const M=getComputedStyle(P.current).direction==="rtl",Z=o-p;return h+(M?-Z:Z)},onResize:C,onResizeStart:o=>{const h=P.current?.parentElement;try{h?.style.removeProperty("width")}catch{}g?.(o)},onResizeEnd:o=>{L?.(o),T(o,{reason:"resize"}),q?.save?.(o)},target:"panel",collapsible:!!i,snapPoints:W,snapTolerance:w??8,collapseThreshold:I,requestCollapse:()=>s.setPanelMode("collapsed"),requestToggle:()=>s.togglePane("panel")}},fe.length>0?fe.map((o,p)=>e.cloneElement(o,{key:o.key??p})):e.createElement(te.PaneHandle,null)):null;return e.createElement("div",{...k,ref:b,className:(0,G.default)("rt-ShellPanel",d),"data-mode":s.panelMode,"data-visible":s.currentBreakpointReady&&(re||s.leftResolvedPresentation!=="overlay"&&s.peekTarget==="panel")||void 0,"data-peek":s.currentBreakpointReady&&s.leftResolvedPresentation!=="overlay"&&s.peekTarget==="panel"||void 0,style:{...j,"--panel-size":`${f}px`}},e.createElement("div",{className:"rt-ShellPanelContent","data-visible":re||void 0},U),Pe)}),"Shell.Panel");D.displayName="Shell.Panel",D.Handle=te.PanelHandle;const pe=e.forwardRef(({className:n,...a},d)=>e.createElement("main",{...a,ref:d,className:(0,G.default)("rt-ShellContent",n)}));pe.displayName="Shell.Content",Y(pe,"Shell.Content");const ve=e.forwardRef(({target:n,action:a="toggle",peekOnHover:d,onClick:y,onMouseEnter:u,onMouseLeave:x,children:E,...S},f)=>{const r=(0,c.useShell)(),m=e.useCallback(l=>{switch(y?.(l),r.peekTarget===n&&r.clearPeek(),a){case"toggle":r.togglePane(n);break;case"expand":r.expandPane(n);break;case"collapse":r.collapsePane(n);break}},[r,n,a,y]),O=(()=>{switch(n){case"left":case"rail":return r.leftMode==="collapsed";case"panel":return r.leftMode==="collapsed"||r.panelMode==="collapsed";case"sidebar":return r.sidebarMode==="collapsed";case"inspector":return r.inspectorMode==="collapsed";case"bottom":return r.bottomMode==="collapsed"}})(),i=e.useCallback(l=>{u?.(l),!(!d||!O)&&r.peekPane(n)},[u,d,O,r,n]),R=e.useCallback(l=>{x?.(l),d&&r.peekTarget===n&&r.clearPeek()},[x,d,r,n]);return e.createElement("button",{...S,ref:f,onClick:m,onMouseEnter:i,onMouseLeave:R,"data-shell-trigger":n,"data-shell-action":a},E)});ve.displayName="Shell.Trigger";
1
+ "use strict";"use client";var He=Object.create;var ye=Object.defineProperty;var Ve=Object.getOwnPropertyDescriptor;var Ie=Object.getOwnPropertyNames;var Fe=Object.getPrototypeOf,Ue=Object.prototype.hasOwnProperty;var We=(n,a)=>{for(var d in a)ye(n,d,{get:a[d],enumerable:!0})},xe=(n,a,d,y)=>{if(a&&typeof a=="object"||typeof a=="function")for(let u of Ie(a))!Ue.call(n,u)&&u!==d&&ye(n,u,{get:()=>a[u],enumerable:!(y=Ve(a,u))||y.enumerable});return n};var Ee=(n,a,d)=>(d=n!=null?He(Fe(n)):{},xe(a||!n||!n.__esModule?ye(d,"default",{value:n,enumerable:!0}):d,n)),$e=n=>xe(ye({},"__esModule",{value:!0}),n);var Ke={};We(Ke,{Bottom:()=>ue.Bottom,Content:()=>ce,Header:()=>he,Inspector:()=>fe.Inspector,Left:()=>pe,Panel:()=>D,Rail:()=>Q,Root:()=>Ce,Sidebar:()=>te.Sidebar,Trigger:()=>ve,useResponsivePresentation:()=>ae.useResponsivePresentation,useShell:()=>c.useShell});module.exports=$e(Ke);var e=Ee(require("react")),G=Ee(require("classnames")),Se=Ee(require("./sheet.js")),Re=require("./visually-hidden.js"),ae=require("./shell.hooks.js"),ge=require("./_internal/shell-resize.js"),oe=require("./_internal/shell-handles.js"),le=require("./_internal/shell-prop-helpers.js"),te=require("./_internal/shell-sidebar.js"),ue=require("./_internal/shell-bottom.js"),fe=require("./_internal/shell-inspector.js"),Te=require("./shell.types.js"),c=require("./shell.context.js");function qe(){const[n,a]=e.useState("initial"),[d,y]=e.useState(!1);return e.useEffect(()=>{if(typeof window>"u")return;const x=Object.entries(Te._BREAKPOINTS).map(([f,r])=>[f,window.matchMedia(r)]),E=()=>{const f=x.filter(([,m])=>m.matches).map(([m])=>m),r=f[f.length-1]??"initial";a(r),y(!0)};E();const S=[];return x.forEach(([,f])=>{const r=f;typeof r.addEventListener=="function"&&typeof r.removeEventListener=="function"?(r.addEventListener("change",E),S.push(()=>r.removeEventListener?.("change",E))):typeof r.addListener=="function"&&typeof r.removeListener=="function"&&(r.addListener(E),S.push(()=>r.removeListener?.(E)))}),()=>{S.forEach(f=>{try{f()}catch{}})}},[]),{bp:n,ready:d}}const Pe=Symbol("rtShellSlot");function J(n,a){return n[Pe]=a,n}function Ye(n,a){if(!e.isValidElement(n))return!1;const d=n.type;if(d===a)return!0;const y=a?.[Pe];return!!(d?.[Pe]&&y&&d[Pe]===y)}J(te.Sidebar,"Shell.Sidebar"),J(fe.Inspector,"Shell.Inspector"),J(ue.Bottom,"Shell.Bottom");function Ge(n,a){switch(a.type){case"SET_LEFT_MODE":return a.mode==="collapsed"?{...n,leftMode:"collapsed",panelMode:"collapsed"}:{...n,leftMode:a.mode};case"SET_PANEL_MODE":return a.mode==="expanded"&&n.leftMode!=="expanded"?{...n,leftMode:"expanded",panelMode:"expanded"}:{...n,panelMode:a.mode};case"SET_SIDEBAR_MODE":return{...n,sidebarMode:a.mode};case"SET_INSPECTOR_MODE":return{...n,inspectorMode:a.mode};case"SET_BOTTOM_MODE":return{...n,bottomMode:a.mode};case"TOGGLE_PANE":{switch(a.target){case"left":case"rail":return{...n,leftMode:n.leftMode==="expanded"?"collapsed":"expanded",panelMode:n.leftMode==="expanded"?"collapsed":n.panelMode};case"panel":return n.leftMode==="collapsed"?{...n,leftMode:"expanded",panelMode:"expanded"}:{...n,panelMode:n.panelMode==="expanded"?"collapsed":"expanded"};case"sidebar":{const d=n.sidebarMode==="collapsed"?"expanded":n.sidebarMode==="expanded"?"collapsed":"expanded";return{...n,sidebarMode:d}}case"inspector":return{...n,inspectorMode:n.inspectorMode==="expanded"?"collapsed":"expanded"};case"bottom":return{...n,bottomMode:n.bottomMode==="expanded"?"collapsed":"expanded"};default:return n}return n}case"EXPAND_PANE":{switch(a.target){case"left":case"rail":return{...n,leftMode:"expanded"};case"panel":return{...n,leftMode:"expanded",panelMode:"expanded"};case"sidebar":return{...n,sidebarMode:"expanded"};case"inspector":return{...n,inspectorMode:"expanded"};case"bottom":return{...n,bottomMode:"expanded"};default:return n}return n}case"COLLAPSE_PANE":{switch(a.target){case"left":case"rail":return{...n,leftMode:"collapsed",panelMode:"collapsed"};case"panel":return{...n,panelMode:"collapsed"};case"sidebar":return{...n,sidebarMode:"collapsed"};case"inspector":return{...n,inspectorMode:"collapsed"};case"bottom":return{...n,bottomMode:"collapsed"};default:return n}return n}}return n}const Ce=e.forwardRef(({className:n,children:a,height:d="full",...y},u)=>{const{bp:x,ready:E}=qe(),S=e.Children.toArray(a),f=S.some(t=>e.isValidElement(t)&&t.type?.displayName==="Shell.Panel"&&!!t.props?.defaultOpen),r=S.some(t=>e.isValidElement(t)&&t.type?.displayName==="Shell.Rail"&&!!t.props?.defaultOpen),m=S.some(t=>e.isValidElement(t)&&t.type?.displayName==="Shell.Inspector"&&!!t.props?.defaultOpen),O=S.some(t=>e.isValidElement(t)&&t.type?.displayName==="Shell.Inspector"&&typeof t.props?.open<"u"&&!!t.props?.open),[i,R]=e.useReducer(Ge,{leftMode:f||r?"expanded":"collapsed",panelMode:f?"expanded":"collapsed",sidebarMode:"expanded",inspectorMode:m||O?"expanded":"collapsed",bottomMode:"collapsed"}),l=e.useCallback(t=>R({type:"SET_LEFT_MODE",mode:t}),[]),C=e.useCallback(t=>R({type:"SET_PANEL_MODE",mode:t}),[]),g=e.useCallback(t=>R({type:"SET_SIDEBAR_MODE",mode:t}),[]),L=e.useCallback(t=>R({type:"SET_INSPECTOR_MODE",mode:t}),[]),W=e.useCallback(t=>R({type:"SET_BOTTOM_MODE",mode:t}),[]),[w,I]=e.useState(!1),[A,F]=e.useState(!1),Z=e.useRef(t=>t==="collapsed"?"thin":t==="thin"?"expanded":"collapsed"),j=e.useCallback(t=>{Z.current=t},[]);e.useEffect(()=>{A&&w&&console.warn("Shell: Sidebar cannot coexist with Rail or Panel. Use either Rail+Panel OR Sidebar.")},[A,w]);const[v,B]=e.useState(void 0),z=e.useCallback(t=>B(t),[]),k=e.useRef(64),T=e.useRef(288),s=e.useCallback(t=>{k.current=t},[]),$=e.useCallback(t=>{T.current=t},[]),K=e.useMemo(()=>{const t=e.Children.toArray(a),V=(_,ie)=>e.isValidElement(_)&&(_.type===ie||_.type?.displayName===ie.displayName);return t.some(_=>V(_,Q)||V(_,D))},[a]),X=e.useMemo(()=>{const t=e.Children.toArray(a),V=(_,ie)=>e.isValidElement(_)&&(_.type===ie||_.type?.displayName===ie.displayName);return t.some(_=>V(_,te.Sidebar))},[a]),P=e.useCallback(t=>{if(t==="sidebar"){const V=Z.current(i.sidebarMode);g(V);return}R({type:"TOGGLE_PANE",target:t})},[i.sidebarMode,g]),h=e.useCallback(t=>{if(t==="sidebar")return g("expanded");R({type:"EXPAND_PANE",target:t})},[g]),H=e.useCallback(t=>{if(t==="sidebar")return g("collapsed");R({type:"COLLAPSE_PANE",target:t})},[g]),re=e.useMemo(()=>({leftMode:i.leftMode,setLeftMode:l,panelMode:i.panelMode,setPanelMode:C,sidebarMode:i.sidebarMode,setSidebarMode:g,inspectorMode:i.inspectorMode,setInspectorMode:L,bottomMode:i.bottomMode,setBottomMode:W,hasLeft:w,setHasLeft:I,hasSidebar:A,setHasSidebar:F,currentBreakpoint:x,currentBreakpointReady:E,leftResolvedPresentation:v,togglePane:P,expandPane:h,collapsePane:H,setSidebarToggleComputer:j,onLeftPres:z,onRailDefaults:s,onPanelDefaults:$}),[i.leftMode,l,i.panelMode,C,i.sidebarMode,g,i.inspectorMode,L,i.bottomMode,W,w,A,x,E,v,P,h,H,j,z,s,$]),U=e.Children.toArray(a),N=(t,V)=>e.isValidElement(t)&&(t.type===V||t.type?.displayName===V.displayName),se=U.filter(t=>N(t,he)),q=U.filter(t=>N(t,Q)),de=U.filter(t=>N(t,D)),be=U.filter(t=>N(t,te.Sidebar)),o=U.filter(t=>N(t,ce)),p=U.filter(t=>N(t,fe.Inspector)),b=U.filter(t=>N(t,ue.Bottom)),M=q[0]?.props?.open;e.useEffect(()=>{if(typeof M>"u")return;l(!!M?"expanded":"collapsed")},[M,l]);const ee=e.useMemo(()=>d==="full"?{height:"100vh"}:d==="auto"?{height:"auto"}:typeof d=="string"?{height:d}:typeof d=="number"?{height:`${d}px`}:{},[d]),[Y,ne]=e.useState(null),me=e.useCallback(t=>ne(t),[]),Me=e.useCallback(()=>ne(null),[]),Oe=e.useMemo(()=>({currentBreakpoint:x,currentBreakpointReady:E,leftResolvedPresentation:v}),[x,E,v]),Le=e.useMemo(()=>({leftMode:i.leftMode,setLeftMode:l}),[i.leftMode,l]),ze=e.useMemo(()=>({panelMode:i.panelMode,setPanelMode:C}),[i.panelMode,C]),ke=e.useMemo(()=>({sidebarMode:i.sidebarMode,setSidebarMode:g}),[i.sidebarMode,g]),Ne=e.useMemo(()=>({inspectorMode:i.inspectorMode,setInspectorMode:L}),[i.inspectorMode,L]),_e=e.useMemo(()=>({bottomMode:i.bottomMode,setBottomMode:W}),[i.bottomMode,W]),De=e.useMemo(()=>({hasLeft:w,setHasLeft:I,hasSidebar:A,setHasSidebar:F}),[w,I,A,F]),we=e.useMemo(()=>({peekTarget:Y,setPeekTarget:ne,peekPane:me,clearPeek:Me}),[Y,ne,me,Me]),Ae=e.useMemo(()=>({togglePane:P,expandPane:h,collapsePane:H,setSidebarToggleComputer:j}),[P,h,H,j]),Be=e.useMemo(()=>({...re,peekTarget:Y,setPeekTarget:ne,peekPane:me,clearPeek:Me}),[re,Y,ne,me,Me]);return e.createElement("div",{...y,ref:u,className:(0,G.default)("rt-ShellRoot",n),style:{...ee,...y.style}},e.createElement(c.ShellProvider,{value:Be},e.createElement(c.PresentationContext.Provider,{value:Oe},e.createElement(c.LeftModeContext.Provider,{value:Le},e.createElement(c.PanelModeContext.Provider,{value:ze},e.createElement(c.SidebarModeContext.Provider,{value:ke},e.createElement(c.InspectorModeContext.Provider,{value:Ne},e.createElement(c.BottomModeContext.Provider,{value:_e},e.createElement(c.CompositionContext.Provider,{value:De},e.createElement(c.PeekContext.Provider,{value:we},e.createElement(c.ActionsContext.Provider,{value:Ae},se,e.createElement("div",{className:"rt-ShellBody","data-peek-target":Y??void 0,style:Y==="rail"||Y==="panel"?{"--peek-rail-width":`${k.current}px`}:void 0},K&&!X?(()=>{const t=q[0],V=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:f?!0:void 0};return e.createElement(pe,{...V},q,de)})():be,o,p),b)))))))))))});Ce.displayName="Shell.Root";const he=e.forwardRef(({className:n,height:a=64,style:d,...y},u)=>e.createElement("header",{...y,ref:u,className:(0,G.default)("rt-ShellHeader",n),style:{...d,"--shell-header-height":`${a}px`}}));he.displayName="Shell.Header";const Qe=["open","defaultOpen","onOpenChange","mode","defaultMode","onModeChange"],pe=e.forwardRef((n,a)=>{const{className:d,presentation:y={initial:"fixed",sm:"fixed"},collapsible:u=!0,onExpand:x,onCollapse:E,children:S,style:f,...r}=n,m=r.open,O=r.defaultOpen,i=r.onOpenChange,R=(0,le.omitPaneProps)(r,Qe),l=(0,c.useShell)(),C=(0,ae.useResponsivePresentation)(y),g=C==="overlay",L=C==="stacked",W=e.useRef(null);e.useEffect(()=>{l.onLeftPres?.(C)},[l,C]);const w=e.useCallback(v=>{W.current=v,typeof a=="function"?a(v):a&&(a.current=v)},[a]);e.useEffect(()=>(l.setHasLeft(!0),()=>l.setHasLeft(!1)),[l]);const I=e.useRef(null),A=e.useRef(!1),F=e.useMemo(()=>{if(!(typeof m>"u"))return m?"expanded":"collapsed"},[m]),Z=e.useMemo(()=>(0,le.mapResponsiveBooleanToPaneMode)(O),[O]);(0,ae.useResponsiveInitialState)({controlledValue:F,defaultValue:Z,currentValue:l.leftMode,setValue:l.setLeftMode,breakpointReady:l.currentBreakpointReady,onInit:v=>i?.(v==="expanded",{reason:"init"})}),e.useEffect(()=>{typeof m<"u"||(I.current!==null&&I.current!==l.leftMode&&i?.(l.leftMode==="expanded",{reason:"toggle"}),I.current=l.leftMode)},[l,i,m]),e.useEffect(()=>{l.leftMode==="expanded"?x?.():E?.()},[l.leftMode,x,E]);const j=l.leftMode==="expanded";if(g){const v=l.leftMode==="expanded",B=e.Children.toArray(S),z=(h,H)=>e.isValidElement(h)&&h.type===H,k=B.find(h=>z(h,Q)),T=B.find(h=>z(h,D)),s=typeof k?.props?.expandedSize=="number"?k.props.expandedSize:64,$=typeof T?.props?.expandedSize=="number"?T.props.expandedSize:288,K=!!k,X=!!T,P=(K?s:0)+(l.panelMode==="expanded"&&X?$:0);return e.createElement(Se.Root,{open:v,onOpenChange:h=>l.setLeftMode(h?"expanded":"collapsed")},e.createElement(Se.Content,{side:"start",style:{padding:0},width:{initial:`${P}px`}},e.createElement(Re.VisuallyHidden,null,e.createElement(Se.Title,null,"Navigation")),e.createElement("div",{className:"rt-ShellLeft"},S)))}if(L){const v=l.leftMode==="expanded",B=e.Children.toArray(S),z=(h,H)=>e.isValidElement(h)&&h.type===H,k=B.find(h=>z(h,Q)),T=B.find(h=>z(h,D)),s=typeof k?.props?.expandedSize=="number"?k.props.expandedSize:64,$=typeof T?.props?.expandedSize=="number"?T.props.expandedSize:288,K=!!k,P=!!T&&(l.panelMode==="expanded"||l.peekTarget==="panel");return e.createElement("div",{...R,ref:w,className:(0,G.default)("rt-ShellLeft",d),"data-mode":l.leftMode,"data-peek":l.peekTarget==="left"||l.peekTarget==="rail"||l.peekTarget==="panel"||void 0,"data-presentation":C,style:{...f},"data-open":v||void 0},S)}return e.createElement("div",{...R,ref:w,className:(0,G.default)("rt-ShellLeft",d),"data-mode":l.leftMode,"data-peek":l.peekTarget==="left"||l.peekTarget==="rail"||l.peekTarget==="panel"||void 0,"data-presentation":C,style:{...f}},S)});pe.displayName="Shell.Left",J(pe,"Shell.Left");const Q=e.forwardRef((n,a)=>{const{className:d,presentation:y,expandedSize:u=64,collapsible:x,onExpand:E,onCollapse:S,children:f,style:r,open:m,defaultOpen:O,onOpenChange:i,...R}=n,l=(0,c.useShell)(),C=e.useRef(null);e.useEffect(()=>{const L=typeof m<"u";if(C.current===null){C.current=L;return}C.current!==L&&(console.warn("Shell.Rail: Switching between controlled and uncontrolled `open` is not supported."),C.current=L)},[m]),e.useEffect(()=>{l.onRailDefaults?.(u)},[l,u]);const g=l.leftMode==="expanded";return e.createElement("div",{...R,ref:a,className:(0,G.default)("rt-ShellRail",d),"data-mode":l.leftMode,"data-peek":l.currentBreakpointReady&&l.leftResolvedPresentation!=="overlay"&&l.peekTarget==="rail"||void 0,style:{...r,"--rail-size":`${u}px`}},e.createElement("div",{className:"rt-ShellRailContent","data-visible":l.currentBreakpointReady&&(g||l.leftResolvedPresentation!=="overlay"&&l.peekTarget==="rail")||void 0},f))});Q.displayName="Shell.Rail",J(Q,"Shell.Rail");const je=["className","children","defaultOpen","open","onOpenChange","size","defaultSize","onSizeChange","sizeUpdate","sizeUpdateMs","style"],D=J(e.forwardRef((n,a)=>{const{className:d,defaultOpen:y,open:u,onOpenChange:x,size:E,defaultSize:S,expandedSize:f=288,minSize:r,maxSize:m,resizable:O,collapsible:i=!0,onExpand:R,onCollapse:l,onResize:C,onResizeStart:g,onResizeEnd:L,snapPoints:W,snapTolerance:w,collapseThreshold:I,paneId:A,persistence:F,children:Z,style:j,onSizeChange:v,sizeUpdate:B,sizeUpdateMs:z=50}=n,k=(0,le.extractPaneDomProps)(n,je),T=e.useMemo(()=>{if(!v)return()=>{};if(B==="debounce"){let o=null;return(b,M)=>{o&&clearTimeout(o),o=setTimeout(()=>{v?.(b,M)},z)}}if(B==="throttle"){let o=0;return(p,b)=>{const M=Date.now();M-o>=z&&(o=M,v?.(p,b))}}return(o,p)=>v?.(o,p)},[v,B,z]),s=(0,c.useShell)(),$=e.useRef(null),K=e.useRef(null),X=e.useRef(!1);e.useEffect(()=>{typeof u>"u"&&typeof y=="boolean"&&(y?(s.setLeftMode("expanded"),s.setPanelMode("expanded")):s.setPanelMode("collapsed"))},[]),e.useEffect(()=>{typeof u>"u"||(u?(s.leftMode!=="expanded"&&s.setLeftMode("expanded"),s.panelMode!=="expanded"&&s.setPanelMode("expanded")):s.panelMode!=="collapsed"&&s.setPanelMode("collapsed"))},[s,u]),e.useEffect(()=>{const o=typeof u<"u";D._wasControlled=D._wasControlled??o,D._wasControlled!==o&&(console.warn("Shell.Panel: Switching between controlled and uncontrolled `open` is not supported."),D._wasControlled=o)},[u]),e.useEffect(()=>{X.current||typeof u>"u"&&y&&s.panelMode==="expanded"&&(x?.(!0,{reason:"init"}),X.current=!0)},[]),e.useEffect(()=>{s.onPanelDefaults?.(f)},[s,f]);const P=e.useRef(null),h=e.useCallback(o=>{P.current=o,typeof a=="function"?a(o):a&&(a.current=o)},[a]),H=e.Children.toArray(Z),re=H.filter(o=>e.isValidElement(o)&&o.type===oe.PanelHandle),U=H.filter(o=>!(e.isValidElement(o)&&o.type===oe.PanelHandle)),N=s.leftResolvedPresentation==="overlay",se=e.useCallback(o=>{if(o==null)return;if(typeof o=="number"&&Number.isFinite(o))return o;const p=String(o).trim();if(!p)return;if(p.endsWith("px"))return Number.parseFloat(p);if(p.endsWith("rem")){const M=Number.parseFloat(getComputedStyle(document.documentElement).fontSize||"16")||16;return Number.parseFloat(p)*M}if(p.endsWith("%")){const M=Number.parseFloat(p),ee=document.documentElement.clientWidth||window.innerWidth||0;return M/100*ee}const b=Number.parseFloat(p);return Number.isFinite(b)?b:void 0},[]),q=e.useMemo(()=>{if(!A||F)return F;const o=`kookie-ui:shell:panel:${A}`;return{load:()=>{if(typeof window>"u")return;const b=window.localStorage.getItem(o);return b?Number(b):void 0},save:b=>{typeof window>"u"||window.localStorage.setItem(o,String(b))}}},[A,F]);e.useEffect(()=>{let o=!0;return(async()=>{if(!O||!q?.load||N)return;const p=await q.load();o&&typeof p=="number"&&P.current&&(P.current.style.setProperty("--panel-size",`${p}px`),C?.(p))})(),()=>{o=!1}},[O,q,C,N]),e.useEffect(()=>{P.current&&N&&P.current.style.setProperty("--panel-size",`${f}px`)},[N,f]),e.useEffect(()=>{if(P.current&&typeof E>"u"&&typeof S<"u"){const o=se(S);if(typeof o=="number"&&Number.isFinite(o)){const M=Math.min((typeof m=="number"?m:void 0)??o,Math.max((typeof r=="number"?r:void 0)??o,o));P.current.style.setProperty("--panel-size",`${M}px`),T(M,{reason:"init"})}}},[]),e.useEffect(()=>{if(!P.current||typeof E>"u")return;const o=se(E);if(typeof o=="number"&&Number.isFinite(o)){const M=Math.min((typeof m=="number"?m:void 0)??o,Math.max((typeof r=="number"?r:void 0)??o,o));P.current.style.setProperty("--panel-size",`${M}px`),T(M,{reason:"controlled"})}},[E,r,m,se,T]),e.useEffect(()=>{if(P.current&&s.leftResolvedPresentation!=="overlay"&&s.leftMode==="expanded"&&s.panelMode==="expanded"){const o=P.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=$.current,p=K.current;if(o!==null&&o!==s.panelMode){const b=s.panelMode==="expanded";let M="toggle";p!==s.leftMode&&s.leftMode==="collapsed"&&!b&&(M="left"),x?.(b,{reason:M})}$.current=s.panelMode,K.current=s.leftMode},[s.panelMode,s.leftMode,x]);const be=O&&s.leftResolvedPresentation!=="overlay"&&de?e.createElement(ge.PaneResizeContext.Provider,{value:{containerRef:P,cssVarName:"--panel-size",minSize:typeof r=="number"?r:100,maxSize:typeof m=="number"?m:800,defaultSize:f,orientation:"vertical",edge:"end",computeNext:(o,p,b)=>{const M=getComputedStyle(P.current).direction==="rtl",ee=o-p;return b+(M?-ee:ee)},onResize:C,onResizeStart:o=>{const b=P.current?.parentElement;try{b?.style.removeProperty("width")}catch{}g?.(o)},onResizeEnd:o=>{L?.(o),T(o,{reason:"resize"}),q?.save?.(o)},target:"panel",collapsible:!!i,snapPoints:W,snapTolerance:w??8,collapseThreshold:I,requestCollapse:()=>s.setPanelMode("collapsed"),requestToggle:()=>s.togglePane("panel")}},re.length>0?re.map((o,p)=>e.cloneElement(o,{key:o.key??p})):e.createElement(oe.PaneHandle,null)):null;return e.createElement("div",{...k,ref:h,className:(0,G.default)("rt-ShellPanel",d),"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:{...j,"--panel-size":`${f}px`}},e.createElement("div",{className:"rt-ShellPanelContent","data-visible":de||void 0},U),be)}),"Shell.Panel");D.displayName="Shell.Panel",D.Handle=oe.PanelHandle;const ce=e.forwardRef(({className:n,...a},d)=>e.createElement("main",{...a,ref:d,className:(0,G.default)("rt-ShellContent",n)}));ce.displayName="Shell.Content",J(ce,"Shell.Content");const ve=e.forwardRef(({target:n,action:a="toggle",peekOnHover:d,onClick:y,onMouseEnter:u,onMouseLeave:x,children:E,...S},f)=>{const r=(0,c.useShell)(),m=e.useCallback(l=>{switch(y?.(l),r.peekTarget===n&&r.clearPeek(),a){case"toggle":r.togglePane(n);break;case"expand":r.expandPane(n);break;case"collapse":r.collapsePane(n);break}},[r,n,a,y]),O=(()=>{switch(n){case"left":case"rail":return r.leftMode==="collapsed";case"panel":return r.leftMode==="collapsed"||r.panelMode==="collapsed";case"sidebar":return r.sidebarMode==="collapsed";case"inspector":return r.inspectorMode==="collapsed";case"bottom":return r.bottomMode==="collapsed"}})(),i=e.useCallback(l=>{u?.(l),!(!d||!O)&&r.peekPane(n)},[u,d,O,r,n]),R=e.useCallback(l=>{x?.(l),d&&r.peekTarget===n&&r.clearPeek()},[x,d,r,n]);return e.createElement("button",{...S,ref:f,onClick:m,onMouseEnter:i,onMouseLeave:R,"data-shell-trigger":n,"data-shell-action":a},E)});ve.displayName="Shell.Trigger";
2
2
  //# sourceMappingURL=shell.js.map