@yamada-ui/resizable 1.1.0 → 1.1.1-dev-20240614135711
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/dist/{chunk-76SDRAIF.mjs → chunk-IIKCEUSE.mjs} +7 -13
 - package/dist/{chunk-76SDRAIF.mjs.map → chunk-IIKCEUSE.mjs.map} +1 -1
 - package/dist/{chunk-MGDZDA72.mjs → chunk-OC4OPFF5.mjs} +2 -2
 - package/dist/{chunk-DU66FMGZ.mjs → chunk-YFQD6ESN.mjs} +2 -2
 - package/dist/{chunk-KSNUAKK5.mjs → chunk-YY2FCE3J.mjs} +2 -2
 - package/dist/index.js +6 -12
 - package/dist/index.js.map +1 -1
 - package/dist/index.mjs +4 -4
 - package/dist/resizable-item.js +2 -4
 - package/dist/resizable-item.js.map +1 -1
 - package/dist/resizable-item.mjs +2 -2
 - package/dist/resizable-trigger.js +2 -4
 - package/dist/resizable-trigger.js.map +1 -1
 - package/dist/resizable-trigger.mjs +2 -2
 - package/dist/resizable.js +2 -4
 - package/dist/resizable.js.map +1 -1
 - package/dist/resizable.mjs +2 -2
 - package/dist/use-resizable.js +6 -12
 - package/dist/use-resizable.js.map +1 -1
 - package/dist/use-resizable.mjs +1 -1
 - package/package.json +3 -3
 - /package/dist/{chunk-MGDZDA72.mjs.map → chunk-OC4OPFF5.mjs.map} +0 -0
 - /package/dist/{chunk-DU66FMGZ.mjs.map → chunk-YFQD6ESN.mjs.map} +0 -0
 - /package/dist/{chunk-KSNUAKK5.mjs.map → chunk-YY2FCE3J.mjs.map} +0 -0
 
| 
         @@ -47,11 +47,9 @@ var useResizable = ({ 
     | 
|
| 
       47 
47 
     | 
    
         
             
                [id, direction, groupProps, storageKey, keyboardStep, onLayout, storage]
         
     | 
| 
       48 
48 
     | 
    
         
             
              );
         
     | 
| 
       49 
49 
     | 
    
         
             
              useEffect(() => {
         
     | 
| 
       50 
     | 
    
         
            -
                if (!id)
         
     | 
| 
       51 
     | 
    
         
            -
                  return;
         
     | 
| 
      
 50 
     | 
    
         
            +
                if (!id) return;
         
     | 
| 
       52 
51 
     | 
    
         
             
                const el = getPanelGroupElement(id);
         
     | 
| 
       53 
     | 
    
         
            -
                if (ref)
         
     | 
| 
       54 
     | 
    
         
            -
                  ref.current = el;
         
     | 
| 
      
 52 
     | 
    
         
            +
                if (ref) ref.current = el;
         
     | 
| 
       55 
53 
     | 
    
         
             
              }, [ref, id]);
         
     | 
| 
       56 
54 
     | 
    
         
             
              return {
         
     | 
| 
       57 
55 
     | 
    
         
             
                isDisabled,
         
     | 
| 
         @@ -117,11 +115,9 @@ var useResizableItem = ({ 
     | 
|
| 
       117 
115 
     | 
    
         
             
                [innerProps]
         
     | 
| 
       118 
116 
     | 
    
         
             
              );
         
     | 
| 
       119 
117 
     | 
    
         
             
              useEffect(() => {
         
     | 
| 
       120 
     | 
    
         
            -
                if (!id)
         
     | 
| 
       121 
     | 
    
         
            -
                  return;
         
     | 
| 
      
 118 
     | 
    
         
            +
                if (!id) return;
         
     | 
| 
       122 
119 
     | 
    
         
             
                const el = getPanelElement(id);
         
     | 
| 
       123 
     | 
    
         
            -
                if (ref)
         
     | 
| 
       124 
     | 
    
         
            -
                  ref.current = el;
         
     | 
| 
      
 120 
     | 
    
         
            +
                if (ref) ref.current = el;
         
     | 
| 
       125 
121 
     | 
    
         
             
              }, [ref, id]);
         
     | 
| 
       126 
122 
     | 
    
         
             
              return {
         
     | 
| 
       127 
123 
     | 
    
         
             
                getPanelProps,
         
     | 
| 
         @@ -167,11 +163,9 @@ var useResizableTrigger = ({ 
     | 
|
| 
       167 
163 
     | 
    
         
             
                [isActive]
         
     | 
| 
       168 
164 
     | 
    
         
             
              );
         
     | 
| 
       169 
165 
     | 
    
         
             
              useEffect(() => {
         
     | 
| 
       170 
     | 
    
         
            -
                if (!id)
         
     | 
| 
       171 
     | 
    
         
            -
                  return;
         
     | 
| 
      
 166 
     | 
    
         
            +
                if (!id) return;
         
     | 
| 
       172 
167 
     | 
    
         
             
                const el = getResizeHandleElement(id);
         
     | 
| 
       173 
     | 
    
         
            -
                if (ref)
         
     | 
| 
       174 
     | 
    
         
            -
                  ref.current = el;
         
     | 
| 
      
 168 
     | 
    
         
            +
                if (ref) ref.current = el;
         
     | 
| 
       175 
169 
     | 
    
         
             
              }, [ref, id]);
         
     | 
| 
       176 
170 
     | 
    
         
             
              return {
         
     | 
| 
       177 
171 
     | 
    
         
             
                getTriggerProps,
         
     | 
| 
         @@ -186,4 +180,4 @@ export { 
     | 
|
| 
       186 
180 
     | 
    
         
             
              useResizableItem,
         
     | 
| 
       187 
181 
     | 
    
         
             
              useResizableTrigger
         
     | 
| 
       188 
182 
     | 
    
         
             
            };
         
     | 
| 
       189 
     | 
    
         
            -
            //# sourceMappingURL=chunk- 
     | 
| 
      
 183 
     | 
    
         
            +
            //# sourceMappingURL=chunk-IIKCEUSE.mjs.map
         
     | 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"sources":["../src/use-resizable.ts"],"sourcesContent":["import type { CSSUIObject, HTMLUIProps, UIPropGetter } from \"@yamada-ui/core\"\nimport type { PropGetter } from \"@yamada-ui/utils\"\nimport { createContext, dataAttr, handlerAll } from \"@yamada-ui/utils\"\nimport type { ForwardedRef, RefObject } from \"react\"\nimport { useCallback, useEffect, useId, useState } from \"react\"\nimport {\n  getPanelElement,\n  getPanelGroupElement,\n  getResizeHandleElement,\n} from \"react-resizable-panels\"\nimport type {\n  PanelResizeHandleProps,\n  PanelGroupProps,\n  PanelProps,\n  PanelGroupOnLayout,\n  PanelGroupStorage,\n  ImperativePanelHandle,\n} from \"react-resizable-panels\"\n\ntype GroupPropGetter = (props?: Partial<PanelGroupProps>) => PanelGroupProps\ntype ItemPropGetter = (props?: HTMLUIProps<\"div\"> & PanelProps) => PanelProps\ntype TriggerPropGetter = (\n  props?: PanelResizeHandleProps,\n) => PanelResizeHandleProps\n\ntype As = { as?: keyof HTMLElementTagNameMap }\n\ntype ResizableGroupProps = Omit<\n  Partial<PanelGroupProps>,\n  \"id\" | \"tagName\" | \"children\"\n> &\n  As\ntype ResizableItemProps = Omit<PanelProps, \"id\" | \"tagName\" | \"children\"> & As\ntype ResizableTriggerProps = Omit<\n  PanelResizeHandleProps,\n  \"id\" | \"tagName\" | \"children\"\n> &\n  As\n\nexport type ResizableStorage = PanelGroupStorage\nexport type ResizableItemControl = ImperativePanelHandle\n\ntype ResizableContext = {\n  isDisabled: boolean\n  styles: Record<string, CSSUIObject>\n}\n\nexport const [ResizableProvider, useResizableContext] =\n  createContext<ResizableContext>({\n    name: \"ResizableContext\",\n    errorMessage: `useResizableContext returned is 'undefined'. Seems you forgot to wrap the components in \"<Resizable />\"`,\n  })\n\nexport type UseResizableProps = {\n  /**\n   * id assigned to resizable element.\n   */\n  id?: string\n  /**\n   * Ref for resizable element.\n   */\n  ref?: ForwardedRef<HTMLElement>\n  /**\n   * The direction of the resizable.\n   *\n   * @default \"horizontal\"\n   */\n  direction?: \"horizontal\" | \"vertical\"\n  /**\n   * If `true`, the resizable trigger will be disabled.\n   */\n  isDisabled?: boolean\n  /**\n   * Unit to resize by keyboard operation.\n   *\n   * @default 10\n   */\n  keyboardStep?: number\n  /**\n   * Key of value saved in storage.\n   * By default, it is saved to `local storage`.\n   */\n  storageKey?: string\n  /**\n   * A callback that gets and sets a value in custom storage.\n   */\n  storage?: PanelGroupStorage\n  /**\n   * The callback invoked when resizable items are resized.\n   */\n  onLayout?: PanelGroupOnLayout\n  /**\n   * Props for resizable component.\n   */\n  groupProps?: ResizableGroupProps\n}\n\nexport const useResizable = ({\n  id,\n  direction = \"horizontal\",\n  storageKey,\n  keyboardStep,\n  isDisabled = false,\n  onLayout,\n  storage,\n  ref,\n  groupProps,\n  ...rest\n}: UseResizableProps) => {\n  id ??= useId()\n\n  const getContainerProps: PropGetter = useCallback(\n    (props = {}, ref = null) => ({ ...props, ref, ...rest }),\n    [rest],\n  )\n\n  const getGroupProps: GroupPropGetter = useCallback(\n    (props = {}) => {\n      const { as, ...rest } = groupProps ?? {}\n\n      return {\n        ...props,\n        id,\n        direction,\n        tagName: as,\n        autoSaveId: storageKey,\n        keyboardResizeBy: keyboardStep,\n        onLayout,\n        storage,\n        ...rest,\n      }\n    },\n    [id, direction, groupProps, storageKey, keyboardStep, onLayout, storage],\n  )\n\n  useEffect(() => {\n    if (!id) return\n\n    const el = getPanelGroupElement(id)\n\n    // @ts-expect-error\n    if (ref) ref.current = el\n  }, [ref, id])\n\n  return {\n    isDisabled,\n    getContainerProps,\n    getGroupProps,\n  }\n}\n\nexport type UseResizableReturn = ReturnType<typeof useResizable>\n\ntype UseResizableItemOptions = {\n  /**\n   * id assigned to resizable item element.\n   */\n  id?: string\n  /**\n   * Ref for resizable item element.\n   */\n  ref?: ForwardedRef<HTMLElement>\n  /**\n   * If `true`, the resizable item can be collapsed.\n   *\n   * @default false\n   */\n  collapsible?: boolean\n  /**\n   * The collapsed size of the resizable item.\n   */\n  collapsedSize?: number\n  /**\n   * The initial size of the resizable item.\n   */\n  defaultSize?: number\n  /**\n   * The minimum allowed value of the resizable item.\n   */\n  minSize?: number\n  /**\n   * The maximum allowed value of the resizable item.\n   */\n  maxSize?: number\n  /**\n   * The callback invoked when resizable item are collapsed.\n   */\n  onCollapse?: () => void\n  /**\n   * The callback invoked when resizable item are expanded.\n   */\n  onExpand?: () => void\n  /**\n   * The callback invoked when resizable item are resized.\n   */\n  onResize?: (size: number, prevSize: number | undefined) => void\n  /**\n   * Order for the resizable item.\n   */\n  order?: number\n  /**\n   * Ref of the resizable item callback.\n   */\n  controlRef?: RefObject<ResizableItemControl>\n  /**\n   * Props for resizable item container element.\n   */\n  containerProps?: Omit<HTMLUIProps<\"div\">, \"as\"> & ResizableItemProps\n}\n\nexport type UseResizableItemProps = Omit<\n  HTMLUIProps<\"div\">,\n  keyof UseResizableItemOptions\n> &\n  UseResizableItemOptions\n\nexport const useResizableItem = ({\n  id,\n  ref,\n  collapsedSize,\n  collapsible,\n  defaultSize,\n  maxSize,\n  minSize,\n  onCollapse,\n  onExpand,\n  onResize,\n  order,\n  controlRef,\n  containerProps,\n  ...innerProps\n}: UseResizableItemProps) => {\n  id ??= useId()\n\n  const getPanelProps: ItemPropGetter = useCallback(\n    (props = {}) => {\n      const { as, ...rest } = containerProps ?? {}\n\n      return {\n        ...props,\n        ref: controlRef,\n        id,\n        tagName: as,\n        collapsible,\n        defaultSize,\n        maxSize,\n        minSize,\n        collapsedSize,\n        onCollapse,\n        onExpand,\n        onResize,\n        order,\n        ...(collapsible ? { \"aria-labelledby\": id } : { \"aria-label\": id }),\n        ...rest,\n      }\n    },\n    [\n      id,\n      controlRef,\n      containerProps,\n      collapsedSize,\n      collapsible,\n      defaultSize,\n      maxSize,\n      minSize,\n      onCollapse,\n      onExpand,\n      onResize,\n      order,\n    ],\n  )\n\n  const getItemProps: UIPropGetter = useCallback(\n    (props = {}, ref = null) => ({ ...props, ref, ...innerProps }),\n    [innerProps],\n  )\n\n  useEffect(() => {\n    if (!id) return\n\n    const el = getPanelElement(id)\n\n    // @ts-expect-error\n    if (ref) ref.current = el\n  }, [ref, id])\n\n  return {\n    getPanelProps,\n    getItemProps,\n  }\n}\n\nexport type UseResizableItemReturn = ReturnType<typeof useResizableItem>\n\ntype UseResizableTriggerOptions = {\n  /**\n   * id assigned to resizable trigger element.\n   */\n  id?: string\n  /**\n   * Ref for resizable trigger element.\n   */\n  ref?: ForwardedRef<HTMLElement>\n  /**\n   * If `true`, the resizable trigger will be disabled.\n   *\n   * @default false\n   */\n  isDisabled?: boolean\n  /**\n   * The callback invoked when resizable trigger are dragged.\n   */\n  onDragging?: (isDragging: boolean) => void\n}\n\nexport type UseResizableTriggerProps = HTMLUIProps<\"div\"> &\n  ResizableTriggerProps &\n  UseResizableTriggerOptions\n\nexport const useResizableTrigger = ({\n  id,\n  ref,\n  as,\n  disabled,\n  isDisabled,\n  onDragging,\n  ...rest\n}: UseResizableTriggerProps) => {\n  id ??= useId()\n\n  const { isDisabled: isGroupDisabled } = useResizableContext()\n  const [isActive, setIsActive] = useState<boolean>(false)\n\n  const trulyDisabled = disabled || isDisabled || isGroupDisabled\n\n  const getTriggerProps: TriggerPropGetter = useCallback(\n    (props = {}) => ({\n      ...props,\n      id,\n      tagName: as,\n      disabled: trulyDisabled,\n      onDragging: handlerAll(onDragging, (isActive) => setIsActive(isActive)),\n      ...rest,\n      \"data-active\": dataAttr(isActive),\n      style: {\n        ...props.style,\n        ...rest.style,\n        ...(trulyDisabled ? { cursor: \"default\" } : {}),\n      },\n    }),\n    [id, as, trulyDisabled, onDragging, rest, isActive],\n  )\n\n  const getIconProps: UIPropGetter = useCallback(\n    (props = {}, ref = null) => ({\n      ...props,\n      ref,\n      \"data-active\": dataAttr(isActive),\n    }),\n    [isActive],\n  )\n\n  useEffect(() => {\n    if (!id) return\n\n    const el = getResizeHandleElement(id)\n\n    // @ts-expect-error\n    if (ref) ref.current = el\n  }, [ref, id])\n\n  return {\n    getTriggerProps,\n    getIconProps,\n  }\n}\n\nexport type UseResizableTriggerReturn = ReturnType<typeof useResizableTrigger>\n"],"mappings":"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","names":["ref","rest","isActive"]}
         
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"sources":["../src/use-resizable.ts"],"sourcesContent":["import type { CSSUIObject, HTMLUIProps, UIPropGetter } from \"@yamada-ui/core\"\nimport type { PropGetter } from \"@yamada-ui/utils\"\nimport { createContext, dataAttr, handlerAll } from \"@yamada-ui/utils\"\nimport type { ForwardedRef, RefObject } from \"react\"\nimport { useCallback, useEffect, useId, useState } from \"react\"\nimport {\n  getPanelElement,\n  getPanelGroupElement,\n  getResizeHandleElement,\n} from \"react-resizable-panels\"\nimport type {\n  PanelResizeHandleProps,\n  PanelGroupProps,\n  PanelProps,\n  PanelGroupOnLayout,\n  PanelGroupStorage,\n  ImperativePanelHandle,\n} from \"react-resizable-panels\"\n\ntype GroupPropGetter = (props?: Partial<PanelGroupProps>) => PanelGroupProps\ntype ItemPropGetter = (props?: HTMLUIProps<\"div\"> & PanelProps) => PanelProps\ntype TriggerPropGetter = (\n  props?: PanelResizeHandleProps,\n) => PanelResizeHandleProps\n\ntype As = { as?: keyof HTMLElementTagNameMap }\n\ntype ResizableGroupProps = Omit<\n  Partial<PanelGroupProps>,\n  \"id\" | \"tagName\" | \"children\"\n> &\n  As\ntype ResizableItemProps = Omit<PanelProps, \"id\" | \"tagName\" | \"children\"> & As\ntype ResizableTriggerProps = Omit<\n  PanelResizeHandleProps,\n  \"id\" | \"tagName\" | \"children\"\n> &\n  As\n\nexport type ResizableStorage = PanelGroupStorage\nexport type ResizableItemControl = ImperativePanelHandle\n\ntype ResizableContext = {\n  isDisabled: boolean\n  styles: Record<string, CSSUIObject>\n}\n\nexport const [ResizableProvider, useResizableContext] =\n  createContext<ResizableContext>({\n    name: \"ResizableContext\",\n    errorMessage: `useResizableContext returned is 'undefined'. Seems you forgot to wrap the components in \"<Resizable />\"`,\n  })\n\nexport type UseResizableProps = {\n  /**\n   * id assigned to resizable element.\n   */\n  id?: string\n  /**\n   * Ref for resizable element.\n   */\n  ref?: ForwardedRef<HTMLElement>\n  /**\n   * The direction of the resizable.\n   *\n   * @default \"horizontal\"\n   */\n  direction?: \"horizontal\" | \"vertical\"\n  /**\n   * If `true`, the resizable trigger will be disabled.\n   */\n  isDisabled?: boolean\n  /**\n   * Unit to resize by keyboard operation.\n   *\n   * @default 10\n   */\n  keyboardStep?: number\n  /**\n   * Key of value saved in storage.\n   * By default, it is saved to `local storage`.\n   */\n  storageKey?: string\n  /**\n   * A callback that gets and sets a value in custom storage.\n   */\n  storage?: PanelGroupStorage\n  /**\n   * The callback invoked when resizable items are resized.\n   */\n  onLayout?: PanelGroupOnLayout\n  /**\n   * Props for resizable component.\n   */\n  groupProps?: ResizableGroupProps\n}\n\nexport const useResizable = ({\n  id,\n  direction = \"horizontal\",\n  storageKey,\n  keyboardStep,\n  isDisabled = false,\n  onLayout,\n  storage,\n  ref,\n  groupProps,\n  ...rest\n}: UseResizableProps) => {\n  id ??= useId()\n\n  const getContainerProps: PropGetter = useCallback(\n    (props = {}, ref = null) => ({ ...props, ref, ...rest }),\n    [rest],\n  )\n\n  const getGroupProps: GroupPropGetter = useCallback(\n    (props = {}) => {\n      const { as, ...rest } = groupProps ?? {}\n\n      return {\n        ...props,\n        id,\n        direction,\n        tagName: as,\n        autoSaveId: storageKey,\n        keyboardResizeBy: keyboardStep,\n        onLayout,\n        storage,\n        ...rest,\n      }\n    },\n    [id, direction, groupProps, storageKey, keyboardStep, onLayout, storage],\n  )\n\n  useEffect(() => {\n    if (!id) return\n\n    const el = getPanelGroupElement(id)\n\n    // @ts-expect-error\n    if (ref) ref.current = el\n  }, [ref, id])\n\n  return {\n    isDisabled,\n    getContainerProps,\n    getGroupProps,\n  }\n}\n\nexport type UseResizableReturn = ReturnType<typeof useResizable>\n\ntype UseResizableItemOptions = {\n  /**\n   * id assigned to resizable item element.\n   */\n  id?: string\n  /**\n   * Ref for resizable item element.\n   */\n  ref?: ForwardedRef<HTMLElement>\n  /**\n   * If `true`, the resizable item can be collapsed.\n   *\n   * @default false\n   */\n  collapsible?: boolean\n  /**\n   * The collapsed size of the resizable item.\n   */\n  collapsedSize?: number\n  /**\n   * The initial size of the resizable item.\n   */\n  defaultSize?: number\n  /**\n   * The minimum allowed value of the resizable item.\n   */\n  minSize?: number\n  /**\n   * The maximum allowed value of the resizable item.\n   */\n  maxSize?: number\n  /**\n   * The callback invoked when resizable item are collapsed.\n   */\n  onCollapse?: () => void\n  /**\n   * The callback invoked when resizable item are expanded.\n   */\n  onExpand?: () => void\n  /**\n   * The callback invoked when resizable item are resized.\n   */\n  onResize?: (size: number, prevSize: number | undefined) => void\n  /**\n   * Order for the resizable item.\n   */\n  order?: number\n  /**\n   * Ref of the resizable item callback.\n   */\n  controlRef?: RefObject<ResizableItemControl>\n  /**\n   * Props for resizable item container element.\n   */\n  containerProps?: Omit<HTMLUIProps<\"div\">, \"as\"> & ResizableItemProps\n}\n\nexport type UseResizableItemProps = Omit<\n  HTMLUIProps<\"div\">,\n  keyof UseResizableItemOptions\n> &\n  UseResizableItemOptions\n\nexport const useResizableItem = ({\n  id,\n  ref,\n  collapsedSize,\n  collapsible,\n  defaultSize,\n  maxSize,\n  minSize,\n  onCollapse,\n  onExpand,\n  onResize,\n  order,\n  controlRef,\n  containerProps,\n  ...innerProps\n}: UseResizableItemProps) => {\n  id ??= useId()\n\n  const getPanelProps: ItemPropGetter = useCallback(\n    (props = {}) => {\n      const { as, ...rest } = containerProps ?? {}\n\n      return {\n        ...props,\n        ref: controlRef,\n        id,\n        tagName: as,\n        collapsible,\n        defaultSize,\n        maxSize,\n        minSize,\n        collapsedSize,\n        onCollapse,\n        onExpand,\n        onResize,\n        order,\n        ...(collapsible ? { \"aria-labelledby\": id } : { \"aria-label\": id }),\n        ...rest,\n      }\n    },\n    [\n      id,\n      controlRef,\n      containerProps,\n      collapsedSize,\n      collapsible,\n      defaultSize,\n      maxSize,\n      minSize,\n      onCollapse,\n      onExpand,\n      onResize,\n      order,\n    ],\n  )\n\n  const getItemProps: UIPropGetter = useCallback(\n    (props = {}, ref = null) => ({ ...props, ref, ...innerProps }),\n    [innerProps],\n  )\n\n  useEffect(() => {\n    if (!id) return\n\n    const el = getPanelElement(id)\n\n    // @ts-expect-error\n    if (ref) ref.current = el\n  }, [ref, id])\n\n  return {\n    getPanelProps,\n    getItemProps,\n  }\n}\n\nexport type UseResizableItemReturn = ReturnType<typeof useResizableItem>\n\ntype UseResizableTriggerOptions = {\n  /**\n   * id assigned to resizable trigger element.\n   */\n  id?: string\n  /**\n   * Ref for resizable trigger element.\n   */\n  ref?: ForwardedRef<HTMLElement>\n  /**\n   * If `true`, the resizable trigger will be disabled.\n   *\n   * @default false\n   */\n  isDisabled?: boolean\n  /**\n   * The callback invoked when resizable trigger are dragged.\n   */\n  onDragging?: (isDragging: boolean) => void\n}\n\nexport type UseResizableTriggerProps = HTMLUIProps<\"div\"> &\n  ResizableTriggerProps &\n  UseResizableTriggerOptions\n\nexport const useResizableTrigger = ({\n  id,\n  ref,\n  as,\n  disabled,\n  isDisabled,\n  onDragging,\n  ...rest\n}: UseResizableTriggerProps) => {\n  id ??= useId()\n\n  const { isDisabled: isGroupDisabled } = useResizableContext()\n  const [isActive, setIsActive] = useState<boolean>(false)\n\n  const trulyDisabled = disabled || isDisabled || isGroupDisabled\n\n  const getTriggerProps: TriggerPropGetter = useCallback(\n    (props = {}) => ({\n      ...props,\n      id,\n      tagName: as,\n      disabled: trulyDisabled,\n      onDragging: handlerAll(onDragging, (isActive) => setIsActive(isActive)),\n      ...rest,\n      \"data-active\": dataAttr(isActive),\n      style: {\n        ...props.style,\n        ...rest.style,\n        ...(trulyDisabled ? { cursor: \"default\" } : {}),\n      },\n    }),\n    [id, as, trulyDisabled, onDragging, rest, isActive],\n  )\n\n  const getIconProps: UIPropGetter = useCallback(\n    (props = {}, ref = null) => ({\n      ...props,\n      ref,\n      \"data-active\": dataAttr(isActive),\n    }),\n    [isActive],\n  )\n\n  useEffect(() => {\n    if (!id) return\n\n    const el = getResizeHandleElement(id)\n\n    // @ts-expect-error\n    if (ref) ref.current = el\n  }, [ref, id])\n\n  return {\n    getTriggerProps,\n    getIconProps,\n  }\n}\n\nexport type UseResizableTriggerReturn = ReturnType<typeof useResizableTrigger>\n"],"mappings":"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","names":["ref","rest","isActive"]}
         
     | 
| 
         @@ -2,7 +2,7 @@ 
     | 
|
| 
       2 
2 
     | 
    
         
             
            import {
         
     | 
| 
       3 
3 
     | 
    
         
             
              useResizableContext,
         
     | 
| 
       4 
4 
     | 
    
         
             
              useResizableItem
         
     | 
| 
       5 
     | 
    
         
            -
            } from "./chunk- 
     | 
| 
      
 5 
     | 
    
         
            +
            } from "./chunk-IIKCEUSE.mjs";
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         
             
            // src/resizable-item.tsx
         
     | 
| 
       8 
8 
     | 
    
         
             
            import { ui, forwardRef } from "@yamada-ui/core";
         
     | 
| 
         @@ -72,4 +72,4 @@ var ResizableItem = forwardRef( 
     | 
|
| 
       72 
72 
     | 
    
         
             
            export {
         
     | 
| 
       73 
73 
     | 
    
         
             
              ResizableItem
         
     | 
| 
       74 
74 
     | 
    
         
             
            };
         
     | 
| 
       75 
     | 
    
         
            -
            //# sourceMappingURL=chunk- 
     | 
| 
      
 75 
     | 
    
         
            +
            //# sourceMappingURL=chunk-OC4OPFF5.mjs.map
         
     | 
| 
         @@ -2,7 +2,7 @@ 
     | 
|
| 
       2 
2 
     | 
    
         
             
            import {
         
     | 
| 
       3 
3 
     | 
    
         
             
              ResizableProvider,
         
     | 
| 
       4 
4 
     | 
    
         
             
              useResizable
         
     | 
| 
       5 
     | 
    
         
            -
            } from "./chunk- 
     | 
| 
      
 5 
     | 
    
         
            +
            } from "./chunk-IIKCEUSE.mjs";
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         
             
            // src/resizable.tsx
         
     | 
| 
       8 
8 
     | 
    
         
             
            import {
         
     | 
| 
         @@ -41,4 +41,4 @@ var Resizable = forwardRef( 
     | 
|
| 
       41 
41 
     | 
    
         
             
            export {
         
     | 
| 
       42 
42 
     | 
    
         
             
              Resizable
         
     | 
| 
       43 
43 
     | 
    
         
             
            };
         
     | 
| 
       44 
     | 
    
         
            -
            //# sourceMappingURL=chunk- 
     | 
| 
      
 44 
     | 
    
         
            +
            //# sourceMappingURL=chunk-YFQD6ESN.mjs.map
         
     | 
| 
         @@ -2,7 +2,7 @@ 
     | 
|
| 
       2 
2 
     | 
    
         
             
            import {
         
     | 
| 
       3 
3 
     | 
    
         
             
              useResizableContext,
         
     | 
| 
       4 
4 
     | 
    
         
             
              useResizableTrigger
         
     | 
| 
       5 
     | 
    
         
            -
            } from "./chunk- 
     | 
| 
      
 5 
     | 
    
         
            +
            } from "./chunk-IIKCEUSE.mjs";
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         
             
            // src/resizable-trigger.tsx
         
     | 
| 
       8 
8 
     | 
    
         
             
            import { ui, forwardRef } from "@yamada-ui/core";
         
     | 
| 
         @@ -103,4 +103,4 @@ export { 
     | 
|
| 
       103 
103 
     | 
    
         
             
              ResizableTrigger,
         
     | 
| 
       104 
104 
     | 
    
         
             
              ResizableTriggerIcon
         
     | 
| 
       105 
105 
     | 
    
         
             
            };
         
     | 
| 
       106 
     | 
    
         
            -
            //# sourceMappingURL=chunk- 
     | 
| 
      
 106 
     | 
    
         
            +
            //# sourceMappingURL=chunk-YY2FCE3J.mjs.map
         
     | 
    
        package/dist/index.js
    CHANGED
    
    | 
         @@ -76,11 +76,9 @@ var useResizable = ({ 
     | 
|
| 
       76 
76 
     | 
    
         
             
                [id, direction, groupProps, storageKey, keyboardStep, onLayout, storage]
         
     | 
| 
       77 
77 
     | 
    
         
             
              );
         
     | 
| 
       78 
78 
     | 
    
         
             
              (0, import_react.useEffect)(() => {
         
     | 
| 
       79 
     | 
    
         
            -
                if (!id)
         
     | 
| 
       80 
     | 
    
         
            -
                  return;
         
     | 
| 
      
 79 
     | 
    
         
            +
                if (!id) return;
         
     | 
| 
       81 
80 
     | 
    
         
             
                const el = (0, import_react_resizable_panels.getPanelGroupElement)(id);
         
     | 
| 
       82 
     | 
    
         
            -
                if (ref)
         
     | 
| 
       83 
     | 
    
         
            -
                  ref.current = el;
         
     | 
| 
      
 81 
     | 
    
         
            +
                if (ref) ref.current = el;
         
     | 
| 
       84 
82 
     | 
    
         
             
              }, [ref, id]);
         
     | 
| 
       85 
83 
     | 
    
         
             
              return {
         
     | 
| 
       86 
84 
     | 
    
         
             
                isDisabled,
         
     | 
| 
         @@ -146,11 +144,9 @@ var useResizableItem = ({ 
     | 
|
| 
       146 
144 
     | 
    
         
             
                [innerProps]
         
     | 
| 
       147 
145 
     | 
    
         
             
              );
         
     | 
| 
       148 
146 
     | 
    
         
             
              (0, import_react.useEffect)(() => {
         
     | 
| 
       149 
     | 
    
         
            -
                if (!id)
         
     | 
| 
       150 
     | 
    
         
            -
                  return;
         
     | 
| 
      
 147 
     | 
    
         
            +
                if (!id) return;
         
     | 
| 
       151 
148 
     | 
    
         
             
                const el = (0, import_react_resizable_panels.getPanelElement)(id);
         
     | 
| 
       152 
     | 
    
         
            -
                if (ref)
         
     | 
| 
       153 
     | 
    
         
            -
                  ref.current = el;
         
     | 
| 
      
 149 
     | 
    
         
            +
                if (ref) ref.current = el;
         
     | 
| 
       154 
150 
     | 
    
         
             
              }, [ref, id]);
         
     | 
| 
       155 
151 
     | 
    
         
             
              return {
         
     | 
| 
       156 
152 
     | 
    
         
             
                getPanelProps,
         
     | 
| 
         @@ -196,11 +192,9 @@ var useResizableTrigger = ({ 
     | 
|
| 
       196 
192 
     | 
    
         
             
                [isActive]
         
     | 
| 
       197 
193 
     | 
    
         
             
              );
         
     | 
| 
       198 
194 
     | 
    
         
             
              (0, import_react.useEffect)(() => {
         
     | 
| 
       199 
     | 
    
         
            -
                if (!id)
         
     | 
| 
       200 
     | 
    
         
            -
                  return;
         
     | 
| 
      
 195 
     | 
    
         
            +
                if (!id) return;
         
     | 
| 
       201 
196 
     | 
    
         
             
                const el = (0, import_react_resizable_panels.getResizeHandleElement)(id);
         
     | 
| 
       202 
     | 
    
         
            -
                if (ref)
         
     | 
| 
       203 
     | 
    
         
            -
                  ref.current = el;
         
     | 
| 
      
 197 
     | 
    
         
            +
                if (ref) ref.current = el;
         
     | 
| 
       204 
198 
     | 
    
         
             
              }, [ref, id]);
         
     | 
| 
       205 
199 
     | 
    
         
             
              return {
         
     | 
| 
       206 
200 
     | 
    
         
             
                getTriggerProps,
         
     | 
    
        package/dist/index.js.map
    CHANGED
    
    | 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"sources":["../src/index.ts","../src/resizable.tsx","../src/use-resizable.ts","../src/resizable-item.tsx","../src/resizable-trigger.tsx"],"sourcesContent":["export { Resizable } from \"./resizable\"\nexport type { ResizableProps } from \"./resizable\"\nexport { ResizableItem } from \"./resizable-item\"\nexport type { ResizableItemProps } from \"./resizable-item\"\nexport { ResizableTrigger, ResizableTriggerIcon } from \"./resizable-trigger\"\nexport type {\n  ResizableTriggerProps,\n  ResizableTriggerIconProps,\n} from \"./resizable-trigger\"\nexport type { ResizableStorage, ResizableItemControl } from \"./use-resizable\"\n","import type { CSSUIObject, HTMLUIProps, ThemeProps } from \"@yamada-ui/core\"\nimport {\n  ui,\n  forwardRef,\n  useMultiComponentStyle,\n  omitThemeProps,\n} from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport type { ForwardedRef } from \"react\"\nimport { PanelGroup } from \"react-resizable-panels\"\nimport type { UseResizableProps } from \"./use-resizable\"\nimport { ResizableProvider, useResizable } from \"./use-resizable\"\n\ntype ResizableOptions = {\n  /**\n   * Ref for resizable container element.\n   */\n  containerRef?: ForwardedRef<HTMLDivElement>\n}\n\n/**\n * `Resizable` is accessible resizable panel groups and layouts with keyboard support.\n *\n * @see Docs https://yamada-ui.com/components/data-display/resizable\n */\nexport type ResizableProps = Omit<HTMLUIProps<\"div\">, \"direction\"> &\n  ThemeProps<\"Resizable\"> &\n  Omit<UseResizableProps, \"ref\"> &\n  ResizableOptions\n\nexport const Resizable = forwardRef<ResizableProps, \"div\">(\n  ({ direction = \"horizontal\", ...props }, ref) => {\n    const [styles, mergedProps] = useMultiComponentStyle(\"Resizable\", {\n      direction,\n      ...props,\n    })\n    const { className, children, containerRef, ...computedProps } =\n      omitThemeProps(mergedProps)\n    const { getContainerProps, getGroupProps, ...rest } = useResizable({\n      ref,\n      ...computedProps,\n    })\n\n    const css: CSSUIObject = { w: \"100%\", h: \"100%\", ...styles.container }\n\n    return (\n      <ResizableProvider value={{ styles, ...rest }}>\n        <ui.div\n          className={cx(\"ui-resizable\", className)}\n          __css={css}\n          {...getContainerProps({}, containerRef)}\n        >\n          <PanelGroup {...getGroupProps()}>{children}</PanelGroup>\n        </ui.div>\n      </ResizableProvider>\n    )\n  },\n)\n","import type { CSSUIObject, HTMLUIProps, UIPropGetter } from \"@yamada-ui/core\"\nimport type { PropGetter } from \"@yamada-ui/utils\"\nimport { createContext, dataAttr, handlerAll } from \"@yamada-ui/utils\"\nimport type { ForwardedRef, RefObject } from \"react\"\nimport { useCallback, useEffect, useId, useState } from \"react\"\nimport {\n  getPanelElement,\n  getPanelGroupElement,\n  getResizeHandleElement,\n} from \"react-resizable-panels\"\nimport type {\n  PanelResizeHandleProps,\n  PanelGroupProps,\n  PanelProps,\n  PanelGroupOnLayout,\n  PanelGroupStorage,\n  ImperativePanelHandle,\n} from \"react-resizable-panels\"\n\ntype GroupPropGetter = (props?: Partial<PanelGroupProps>) => PanelGroupProps\ntype ItemPropGetter = (props?: HTMLUIProps<\"div\"> & PanelProps) => PanelProps\ntype TriggerPropGetter = (\n  props?: PanelResizeHandleProps,\n) => PanelResizeHandleProps\n\ntype As = { as?: keyof HTMLElementTagNameMap }\n\ntype ResizableGroupProps = Omit<\n  Partial<PanelGroupProps>,\n  \"id\" | \"tagName\" | \"children\"\n> &\n  As\ntype ResizableItemProps = Omit<PanelProps, \"id\" | \"tagName\" | \"children\"> & As\ntype ResizableTriggerProps = Omit<\n  PanelResizeHandleProps,\n  \"id\" | \"tagName\" | \"children\"\n> &\n  As\n\nexport type ResizableStorage = PanelGroupStorage\nexport type ResizableItemControl = ImperativePanelHandle\n\ntype ResizableContext = {\n  isDisabled: boolean\n  styles: Record<string, CSSUIObject>\n}\n\nexport const [ResizableProvider, useResizableContext] =\n  createContext<ResizableContext>({\n    name: \"ResizableContext\",\n    errorMessage: `useResizableContext returned is 'undefined'. Seems you forgot to wrap the components in \"<Resizable />\"`,\n  })\n\nexport type UseResizableProps = {\n  /**\n   * id assigned to resizable element.\n   */\n  id?: string\n  /**\n   * Ref for resizable element.\n   */\n  ref?: ForwardedRef<HTMLElement>\n  /**\n   * The direction of the resizable.\n   *\n   * @default \"horizontal\"\n   */\n  direction?: \"horizontal\" | \"vertical\"\n  /**\n   * If `true`, the resizable trigger will be disabled.\n   */\n  isDisabled?: boolean\n  /**\n   * Unit to resize by keyboard operation.\n   *\n   * @default 10\n   */\n  keyboardStep?: number\n  /**\n   * Key of value saved in storage.\n   * By default, it is saved to `local storage`.\n   */\n  storageKey?: string\n  /**\n   * A callback that gets and sets a value in custom storage.\n   */\n  storage?: PanelGroupStorage\n  /**\n   * The callback invoked when resizable items are resized.\n   */\n  onLayout?: PanelGroupOnLayout\n  /**\n   * Props for resizable component.\n   */\n  groupProps?: ResizableGroupProps\n}\n\nexport const useResizable = ({\n  id,\n  direction = \"horizontal\",\n  storageKey,\n  keyboardStep,\n  isDisabled = false,\n  onLayout,\n  storage,\n  ref,\n  groupProps,\n  ...rest\n}: UseResizableProps) => {\n  id ??= useId()\n\n  const getContainerProps: PropGetter = useCallback(\n    (props = {}, ref = null) => ({ ...props, ref, ...rest }),\n    [rest],\n  )\n\n  const getGroupProps: GroupPropGetter = useCallback(\n    (props = {}) => {\n      const { as, ...rest } = groupProps ?? {}\n\n      return {\n        ...props,\n        id,\n        direction,\n        tagName: as,\n        autoSaveId: storageKey,\n        keyboardResizeBy: keyboardStep,\n        onLayout,\n        storage,\n        ...rest,\n      }\n    },\n    [id, direction, groupProps, storageKey, keyboardStep, onLayout, storage],\n  )\n\n  useEffect(() => {\n    if (!id) return\n\n    const el = getPanelGroupElement(id)\n\n    // @ts-expect-error\n    if (ref) ref.current = el\n  }, [ref, id])\n\n  return {\n    isDisabled,\n    getContainerProps,\n    getGroupProps,\n  }\n}\n\nexport type UseResizableReturn = ReturnType<typeof useResizable>\n\ntype UseResizableItemOptions = {\n  /**\n   * id assigned to resizable item element.\n   */\n  id?: string\n  /**\n   * Ref for resizable item element.\n   */\n  ref?: ForwardedRef<HTMLElement>\n  /**\n   * If `true`, the resizable item can be collapsed.\n   *\n   * @default false\n   */\n  collapsible?: boolean\n  /**\n   * The collapsed size of the resizable item.\n   */\n  collapsedSize?: number\n  /**\n   * The initial size of the resizable item.\n   */\n  defaultSize?: number\n  /**\n   * The minimum allowed value of the resizable item.\n   */\n  minSize?: number\n  /**\n   * The maximum allowed value of the resizable item.\n   */\n  maxSize?: number\n  /**\n   * The callback invoked when resizable item are collapsed.\n   */\n  onCollapse?: () => void\n  /**\n   * The callback invoked when resizable item are expanded.\n   */\n  onExpand?: () => void\n  /**\n   * The callback invoked when resizable item are resized.\n   */\n  onResize?: (size: number, prevSize: number | undefined) => void\n  /**\n   * Order for the resizable item.\n   */\n  order?: number\n  /**\n   * Ref of the resizable item callback.\n   */\n  controlRef?: RefObject<ResizableItemControl>\n  /**\n   * Props for resizable item container element.\n   */\n  containerProps?: Omit<HTMLUIProps<\"div\">, \"as\"> & ResizableItemProps\n}\n\nexport type UseResizableItemProps = Omit<\n  HTMLUIProps<\"div\">,\n  keyof UseResizableItemOptions\n> &\n  UseResizableItemOptions\n\nexport const useResizableItem = ({\n  id,\n  ref,\n  collapsedSize,\n  collapsible,\n  defaultSize,\n  maxSize,\n  minSize,\n  onCollapse,\n  onExpand,\n  onResize,\n  order,\n  controlRef,\n  containerProps,\n  ...innerProps\n}: UseResizableItemProps) => {\n  id ??= useId()\n\n  const getPanelProps: ItemPropGetter = useCallback(\n    (props = {}) => {\n      const { as, ...rest } = containerProps ?? {}\n\n      return {\n        ...props,\n        ref: controlRef,\n        id,\n        tagName: as,\n        collapsible,\n        defaultSize,\n        maxSize,\n        minSize,\n        collapsedSize,\n        onCollapse,\n        onExpand,\n        onResize,\n        order,\n        ...(collapsible ? { \"aria-labelledby\": id } : { \"aria-label\": id }),\n        ...rest,\n      }\n    },\n    [\n      id,\n      controlRef,\n      containerProps,\n      collapsedSize,\n      collapsible,\n      defaultSize,\n      maxSize,\n      minSize,\n      onCollapse,\n      onExpand,\n      onResize,\n      order,\n    ],\n  )\n\n  const getItemProps: UIPropGetter = useCallback(\n    (props = {}, ref = null) => ({ ...props, ref, ...innerProps }),\n    [innerProps],\n  )\n\n  useEffect(() => {\n    if (!id) return\n\n    const el = getPanelElement(id)\n\n    // @ts-expect-error\n    if (ref) ref.current = el\n  }, [ref, id])\n\n  return {\n    getPanelProps,\n    getItemProps,\n  }\n}\n\nexport type UseResizableItemReturn = ReturnType<typeof useResizableItem>\n\ntype UseResizableTriggerOptions = {\n  /**\n   * id assigned to resizable trigger element.\n   */\n  id?: string\n  /**\n   * Ref for resizable trigger element.\n   */\n  ref?: ForwardedRef<HTMLElement>\n  /**\n   * If `true`, the resizable trigger will be disabled.\n   *\n   * @default false\n   */\n  isDisabled?: boolean\n  /**\n   * The callback invoked when resizable trigger are dragged.\n   */\n  onDragging?: (isDragging: boolean) => void\n}\n\nexport type UseResizableTriggerProps = HTMLUIProps<\"div\"> &\n  ResizableTriggerProps &\n  UseResizableTriggerOptions\n\nexport const useResizableTrigger = ({\n  id,\n  ref,\n  as,\n  disabled,\n  isDisabled,\n  onDragging,\n  ...rest\n}: UseResizableTriggerProps) => {\n  id ??= useId()\n\n  const { isDisabled: isGroupDisabled } = useResizableContext()\n  const [isActive, setIsActive] = useState<boolean>(false)\n\n  const trulyDisabled = disabled || isDisabled || isGroupDisabled\n\n  const getTriggerProps: TriggerPropGetter = useCallback(\n    (props = {}) => ({\n      ...props,\n      id,\n      tagName: as,\n      disabled: trulyDisabled,\n      onDragging: handlerAll(onDragging, (isActive) => setIsActive(isActive)),\n      ...rest,\n      \"data-active\": dataAttr(isActive),\n      style: {\n        ...props.style,\n        ...rest.style,\n        ...(trulyDisabled ? { cursor: \"default\" } : {}),\n      },\n    }),\n    [id, as, trulyDisabled, onDragging, rest, isActive],\n  )\n\n  const getIconProps: UIPropGetter = useCallback(\n    (props = {}, ref = null) => ({\n      ...props,\n      ref,\n      \"data-active\": dataAttr(isActive),\n    }),\n    [isActive],\n  )\n\n  useEffect(() => {\n    if (!id) return\n\n    const el = getResizeHandleElement(id)\n\n    // @ts-expect-error\n    if (ref) ref.current = el\n  }, [ref, id])\n\n  return {\n    getTriggerProps,\n    getIconProps,\n  }\n}\n\nexport type UseResizableTriggerReturn = ReturnType<typeof useResizableTrigger>\n","import type { CSSUIObject } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport type { ForwardedRef } from \"react\"\nimport { Panel } from \"react-resizable-panels\"\nimport type { UseResizableItemProps } from \"./use-resizable\"\nimport { useResizableContext, useResizableItem } from \"./use-resizable\"\n\nconst panelProps = new Set([\"order\"])\n\nconst UIPanel = ui(Panel, { disableStyleProp: (prop) => panelProps.has(prop) })\n\ntype ResizableItemOptions = {\n  /**\n   * Ref for resizable item inner element.\n   */\n  innerRef?: ForwardedRef<HTMLDivElement>\n}\n\nexport type ResizableItemProps = Omit<UseResizableItemProps, \"ref\"> &\n  ResizableItemOptions\n\nexport const ResizableItem = forwardRef<ResizableItemProps, \"div\">(\n  (\n    {\n      className,\n      children,\n      innerRef,\n      w,\n      width,\n      minW,\n      minWidth,\n      maxW,\n      maxWidth,\n      h,\n      height,\n      minH,\n      minHeight,\n      maxH,\n      maxHeight,\n      boxSize,\n      ...rest\n    },\n    ref,\n  ) => {\n    const { styles } = useResizableContext()\n    const { getPanelProps, getItemProps } = useResizableItem({\n      ref,\n      ...rest,\n    })\n\n    const css: CSSUIObject = { boxSize: \"100%\", ...styles.item }\n\n    return (\n      <UIPanel\n        {...getPanelProps({\n          w,\n          width,\n          minW,\n          minWidth,\n          maxW,\n          maxWidth,\n          h,\n          height,\n          minH,\n          minHeight,\n          maxH,\n          maxHeight,\n          boxSize,\n        })}\n      >\n        <ui.div\n          className={cx(\"ui-resizable__item\", className)}\n          __css={css}\n          {...getItemProps({}, innerRef)}\n        >\n          {children}\n        </ui.div>\n      </UIPanel>\n    )\n  },\n)\n","import type { CSSUIObject, HTMLUIProps } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport type { IconProps } from \"@yamada-ui/icon\"\nimport { Icon } from \"@yamada-ui/icon\"\nimport { cx } from \"@yamada-ui/utils\"\nimport type { FC, ReactElement } from \"react\"\nimport { PanelResizeHandle } from \"react-resizable-panels\"\nimport type { UseResizableTriggerProps } from \"./use-resizable\"\nimport { useResizableContext, useResizableTrigger } from \"./use-resizable\"\n\ntype ResizableTriggerOptions = {\n  /**\n   * The resizable trigger icon to use.\n   */\n  icon?: ReactElement\n  /**\n   * Props for resizable trigger icon component.\n   */\n  iconProps?: HTMLUIProps<\"div\">\n}\n\nexport type ResizableTriggerProps = Omit<HTMLUIProps<\"div\">, \"as\"> &\n  Omit<UseResizableTriggerProps, \"ref\"> &\n  ResizableTriggerOptions\n\nexport const ResizableTrigger = forwardRef<ResizableTriggerProps, \"div\", false>(\n  ({ className, icon, children, iconProps, ...rest }, ref) => {\n    const { styles } = useResizableContext()\n    const { getTriggerProps, getIconProps } = useResizableTrigger({\n      ref,\n      ...rest,\n    })\n\n    const css: CSSUIObject = { position: \"relative\", ...styles.trigger }\n\n    return (\n      <ui.div\n        as={PanelResizeHandle}\n        className={cx(\"ui-resizable__trigger\", className)}\n        __css={css}\n        {...getTriggerProps()}\n      >\n        {icon ? (\n          <ui.div\n            className=\"ui-resizable__trigger__icon\"\n            __css={{\n              position: \"absolute\",\n              top: \"50%\",\n              left: \"50%\",\n              transform: \"auto\",\n              translateY: \"-50%\",\n              translateX: \"-50%\",\n              display: \"flex\",\n              justifyContent: \"center\",\n              alignItems: \"center\",\n              ...styles.icon,\n            }}\n            {...getIconProps(iconProps)}\n          >\n            {icon}\n          </ui.div>\n        ) : null}\n\n        {children}\n      </ui.div>\n    )\n  },\n)\n\nexport type ResizableTriggerIconProps = IconProps\n\nexport const ResizableTriggerIcon: FC<ResizableTriggerIconProps> = (rest) => {\n  return (\n    <Icon viewBox=\"0 0 23 39\" w=\"0.5rem\" h=\"1rem\" {...rest}>\n      <path\n        d=\"M 5 0 C 7.761 0 10 2.239 10 5 C 10 7.761 7.761 10 5 10 C 2.239 10 0 7.761 0 5 C 0 2.239 2.239 0 5 0 Z\"\n        fill=\"currentColor\"\n      />\n\n      <path\n        d=\"M 19 0 C 21.761 0 24 2.239 24 5 C 24 7.761 21.761 10 19 10 C 16.239 10 14 7.761 14 5 C 14 2.239 16.239 0 19 0 Z\"\n        fill=\"currentColor\"\n      />\n\n      <path\n        d=\"M 19 14 C 21.761 14 24 16.239 24 19 C 24 21.761 21.761 24 19 24 C 16.239 24 14 21.761 14 19 C 14 16.239 16.239 14 19 14 Z\"\n        fill=\"currentColor\"\n      />\n\n      <path\n        d=\"M 5 14 C 7.761 14 10 16.239 10 19 C 10 21.761 7.761 24 5 24 C 2.239 24 0 21.761 0 19 C 0 16.239 2.239 14 5 14 Z\"\n        fill=\"currentColor\"\n      />\n\n      <path\n        d=\"M 5 28 C 7.761 28 10 30.239 10 33 C 10 35.761 7.761 38 5 38 C 2.239 38 0 35.761 0 33 C 0 30.239 2.239 28 5 28 Z\"\n        fill=\"currentColor\"\n      />\n\n      <path\n        d=\"M 19 28 C 21.761 28 24 30.239 24 33 C 24 35.761 21.761 38 19 38 C 16.239 38 14 35.761 14 33 C 14 30.239 16.239 28 19 28 Z\"\n        fill=\"currentColor\"\n      />\n    </Icon>\n  )\n}\n"],"mappings":"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","names":["import_utils","import_react_resizable_panels","ref","rest","isActive","import_core","import_utils","import_react_resizable_panels","import_jsx_runtime","import_core","import_utils","import_react_resizable_panels","import_jsx_runtime"]}
         
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"sources":["../src/index.ts","../src/resizable.tsx","../src/use-resizable.ts","../src/resizable-item.tsx","../src/resizable-trigger.tsx"],"sourcesContent":["export { Resizable } from \"./resizable\"\nexport type { ResizableProps } from \"./resizable\"\nexport { ResizableItem } from \"./resizable-item\"\nexport type { ResizableItemProps } from \"./resizable-item\"\nexport { ResizableTrigger, ResizableTriggerIcon } from \"./resizable-trigger\"\nexport type {\n  ResizableTriggerProps,\n  ResizableTriggerIconProps,\n} from \"./resizable-trigger\"\nexport type { ResizableStorage, ResizableItemControl } from \"./use-resizable\"\n","import type { CSSUIObject, HTMLUIProps, ThemeProps } from \"@yamada-ui/core\"\nimport {\n  ui,\n  forwardRef,\n  useMultiComponentStyle,\n  omitThemeProps,\n} from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport type { ForwardedRef } from \"react\"\nimport { PanelGroup } from \"react-resizable-panels\"\nimport type { UseResizableProps } from \"./use-resizable\"\nimport { ResizableProvider, useResizable } from \"./use-resizable\"\n\ntype ResizableOptions = {\n  /**\n   * Ref for resizable container element.\n   */\n  containerRef?: ForwardedRef<HTMLDivElement>\n}\n\n/**\n * `Resizable` is accessible resizable panel groups and layouts with keyboard support.\n *\n * @see Docs https://yamada-ui.com/components/data-display/resizable\n */\nexport type ResizableProps = Omit<HTMLUIProps<\"div\">, \"direction\"> &\n  ThemeProps<\"Resizable\"> &\n  Omit<UseResizableProps, \"ref\"> &\n  ResizableOptions\n\nexport const Resizable = forwardRef<ResizableProps, \"div\">(\n  ({ direction = \"horizontal\", ...props }, ref) => {\n    const [styles, mergedProps] = useMultiComponentStyle(\"Resizable\", {\n      direction,\n      ...props,\n    })\n    const { className, children, containerRef, ...computedProps } =\n      omitThemeProps(mergedProps)\n    const { getContainerProps, getGroupProps, ...rest } = useResizable({\n      ref,\n      ...computedProps,\n    })\n\n    const css: CSSUIObject = { w: \"100%\", h: \"100%\", ...styles.container }\n\n    return (\n      <ResizableProvider value={{ styles, ...rest }}>\n        <ui.div\n          className={cx(\"ui-resizable\", className)}\n          __css={css}\n          {...getContainerProps({}, containerRef)}\n        >\n          <PanelGroup {...getGroupProps()}>{children}</PanelGroup>\n        </ui.div>\n      </ResizableProvider>\n    )\n  },\n)\n","import type { CSSUIObject, HTMLUIProps, UIPropGetter } from \"@yamada-ui/core\"\nimport type { PropGetter } from \"@yamada-ui/utils\"\nimport { createContext, dataAttr, handlerAll } from \"@yamada-ui/utils\"\nimport type { ForwardedRef, RefObject } from \"react\"\nimport { useCallback, useEffect, useId, useState } from \"react\"\nimport {\n  getPanelElement,\n  getPanelGroupElement,\n  getResizeHandleElement,\n} from \"react-resizable-panels\"\nimport type {\n  PanelResizeHandleProps,\n  PanelGroupProps,\n  PanelProps,\n  PanelGroupOnLayout,\n  PanelGroupStorage,\n  ImperativePanelHandle,\n} from \"react-resizable-panels\"\n\ntype GroupPropGetter = (props?: Partial<PanelGroupProps>) => PanelGroupProps\ntype ItemPropGetter = (props?: HTMLUIProps<\"div\"> & PanelProps) => PanelProps\ntype TriggerPropGetter = (\n  props?: PanelResizeHandleProps,\n) => PanelResizeHandleProps\n\ntype As = { as?: keyof HTMLElementTagNameMap }\n\ntype ResizableGroupProps = Omit<\n  Partial<PanelGroupProps>,\n  \"id\" | \"tagName\" | \"children\"\n> &\n  As\ntype ResizableItemProps = Omit<PanelProps, \"id\" | \"tagName\" | \"children\"> & As\ntype ResizableTriggerProps = Omit<\n  PanelResizeHandleProps,\n  \"id\" | \"tagName\" | \"children\"\n> &\n  As\n\nexport type ResizableStorage = PanelGroupStorage\nexport type ResizableItemControl = ImperativePanelHandle\n\ntype ResizableContext = {\n  isDisabled: boolean\n  styles: Record<string, CSSUIObject>\n}\n\nexport const [ResizableProvider, useResizableContext] =\n  createContext<ResizableContext>({\n    name: \"ResizableContext\",\n    errorMessage: `useResizableContext returned is 'undefined'. Seems you forgot to wrap the components in \"<Resizable />\"`,\n  })\n\nexport type UseResizableProps = {\n  /**\n   * id assigned to resizable element.\n   */\n  id?: string\n  /**\n   * Ref for resizable element.\n   */\n  ref?: ForwardedRef<HTMLElement>\n  /**\n   * The direction of the resizable.\n   *\n   * @default \"horizontal\"\n   */\n  direction?: \"horizontal\" | \"vertical\"\n  /**\n   * If `true`, the resizable trigger will be disabled.\n   */\n  isDisabled?: boolean\n  /**\n   * Unit to resize by keyboard operation.\n   *\n   * @default 10\n   */\n  keyboardStep?: number\n  /**\n   * Key of value saved in storage.\n   * By default, it is saved to `local storage`.\n   */\n  storageKey?: string\n  /**\n   * A callback that gets and sets a value in custom storage.\n   */\n  storage?: PanelGroupStorage\n  /**\n   * The callback invoked when resizable items are resized.\n   */\n  onLayout?: PanelGroupOnLayout\n  /**\n   * Props for resizable component.\n   */\n  groupProps?: ResizableGroupProps\n}\n\nexport const useResizable = ({\n  id,\n  direction = \"horizontal\",\n  storageKey,\n  keyboardStep,\n  isDisabled = false,\n  onLayout,\n  storage,\n  ref,\n  groupProps,\n  ...rest\n}: UseResizableProps) => {\n  id ??= useId()\n\n  const getContainerProps: PropGetter = useCallback(\n    (props = {}, ref = null) => ({ ...props, ref, ...rest }),\n    [rest],\n  )\n\n  const getGroupProps: GroupPropGetter = useCallback(\n    (props = {}) => {\n      const { as, ...rest } = groupProps ?? {}\n\n      return {\n        ...props,\n        id,\n        direction,\n        tagName: as,\n        autoSaveId: storageKey,\n        keyboardResizeBy: keyboardStep,\n        onLayout,\n        storage,\n        ...rest,\n      }\n    },\n    [id, direction, groupProps, storageKey, keyboardStep, onLayout, storage],\n  )\n\n  useEffect(() => {\n    if (!id) return\n\n    const el = getPanelGroupElement(id)\n\n    // @ts-expect-error\n    if (ref) ref.current = el\n  }, [ref, id])\n\n  return {\n    isDisabled,\n    getContainerProps,\n    getGroupProps,\n  }\n}\n\nexport type UseResizableReturn = ReturnType<typeof useResizable>\n\ntype UseResizableItemOptions = {\n  /**\n   * id assigned to resizable item element.\n   */\n  id?: string\n  /**\n   * Ref for resizable item element.\n   */\n  ref?: ForwardedRef<HTMLElement>\n  /**\n   * If `true`, the resizable item can be collapsed.\n   *\n   * @default false\n   */\n  collapsible?: boolean\n  /**\n   * The collapsed size of the resizable item.\n   */\n  collapsedSize?: number\n  /**\n   * The initial size of the resizable item.\n   */\n  defaultSize?: number\n  /**\n   * The minimum allowed value of the resizable item.\n   */\n  minSize?: number\n  /**\n   * The maximum allowed value of the resizable item.\n   */\n  maxSize?: number\n  /**\n   * The callback invoked when resizable item are collapsed.\n   */\n  onCollapse?: () => void\n  /**\n   * The callback invoked when resizable item are expanded.\n   */\n  onExpand?: () => void\n  /**\n   * The callback invoked when resizable item are resized.\n   */\n  onResize?: (size: number, prevSize: number | undefined) => void\n  /**\n   * Order for the resizable item.\n   */\n  order?: number\n  /**\n   * Ref of the resizable item callback.\n   */\n  controlRef?: RefObject<ResizableItemControl>\n  /**\n   * Props for resizable item container element.\n   */\n  containerProps?: Omit<HTMLUIProps<\"div\">, \"as\"> & ResizableItemProps\n}\n\nexport type UseResizableItemProps = Omit<\n  HTMLUIProps<\"div\">,\n  keyof UseResizableItemOptions\n> &\n  UseResizableItemOptions\n\nexport const useResizableItem = ({\n  id,\n  ref,\n  collapsedSize,\n  collapsible,\n  defaultSize,\n  maxSize,\n  minSize,\n  onCollapse,\n  onExpand,\n  onResize,\n  order,\n  controlRef,\n  containerProps,\n  ...innerProps\n}: UseResizableItemProps) => {\n  id ??= useId()\n\n  const getPanelProps: ItemPropGetter = useCallback(\n    (props = {}) => {\n      const { as, ...rest } = containerProps ?? {}\n\n      return {\n        ...props,\n        ref: controlRef,\n        id,\n        tagName: as,\n        collapsible,\n        defaultSize,\n        maxSize,\n        minSize,\n        collapsedSize,\n        onCollapse,\n        onExpand,\n        onResize,\n        order,\n        ...(collapsible ? { \"aria-labelledby\": id } : { \"aria-label\": id }),\n        ...rest,\n      }\n    },\n    [\n      id,\n      controlRef,\n      containerProps,\n      collapsedSize,\n      collapsible,\n      defaultSize,\n      maxSize,\n      minSize,\n      onCollapse,\n      onExpand,\n      onResize,\n      order,\n    ],\n  )\n\n  const getItemProps: UIPropGetter = useCallback(\n    (props = {}, ref = null) => ({ ...props, ref, ...innerProps }),\n    [innerProps],\n  )\n\n  useEffect(() => {\n    if (!id) return\n\n    const el = getPanelElement(id)\n\n    // @ts-expect-error\n    if (ref) ref.current = el\n  }, [ref, id])\n\n  return {\n    getPanelProps,\n    getItemProps,\n  }\n}\n\nexport type UseResizableItemReturn = ReturnType<typeof useResizableItem>\n\ntype UseResizableTriggerOptions = {\n  /**\n   * id assigned to resizable trigger element.\n   */\n  id?: string\n  /**\n   * Ref for resizable trigger element.\n   */\n  ref?: ForwardedRef<HTMLElement>\n  /**\n   * If `true`, the resizable trigger will be disabled.\n   *\n   * @default false\n   */\n  isDisabled?: boolean\n  /**\n   * The callback invoked when resizable trigger are dragged.\n   */\n  onDragging?: (isDragging: boolean) => void\n}\n\nexport type UseResizableTriggerProps = HTMLUIProps<\"div\"> &\n  ResizableTriggerProps &\n  UseResizableTriggerOptions\n\nexport const useResizableTrigger = ({\n  id,\n  ref,\n  as,\n  disabled,\n  isDisabled,\n  onDragging,\n  ...rest\n}: UseResizableTriggerProps) => {\n  id ??= useId()\n\n  const { isDisabled: isGroupDisabled } = useResizableContext()\n  const [isActive, setIsActive] = useState<boolean>(false)\n\n  const trulyDisabled = disabled || isDisabled || isGroupDisabled\n\n  const getTriggerProps: TriggerPropGetter = useCallback(\n    (props = {}) => ({\n      ...props,\n      id,\n      tagName: as,\n      disabled: trulyDisabled,\n      onDragging: handlerAll(onDragging, (isActive) => setIsActive(isActive)),\n      ...rest,\n      \"data-active\": dataAttr(isActive),\n      style: {\n        ...props.style,\n        ...rest.style,\n        ...(trulyDisabled ? { cursor: \"default\" } : {}),\n      },\n    }),\n    [id, as, trulyDisabled, onDragging, rest, isActive],\n  )\n\n  const getIconProps: UIPropGetter = useCallback(\n    (props = {}, ref = null) => ({\n      ...props,\n      ref,\n      \"data-active\": dataAttr(isActive),\n    }),\n    [isActive],\n  )\n\n  useEffect(() => {\n    if (!id) return\n\n    const el = getResizeHandleElement(id)\n\n    // @ts-expect-error\n    if (ref) ref.current = el\n  }, [ref, id])\n\n  return {\n    getTriggerProps,\n    getIconProps,\n  }\n}\n\nexport type UseResizableTriggerReturn = ReturnType<typeof useResizableTrigger>\n","import type { CSSUIObject } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport type { ForwardedRef } from \"react\"\nimport { Panel } from \"react-resizable-panels\"\nimport type { UseResizableItemProps } from \"./use-resizable\"\nimport { useResizableContext, useResizableItem } from \"./use-resizable\"\n\nconst panelProps = new Set([\"order\"])\n\nconst UIPanel = ui(Panel, { disableStyleProp: (prop) => panelProps.has(prop) })\n\ntype ResizableItemOptions = {\n  /**\n   * Ref for resizable item inner element.\n   */\n  innerRef?: ForwardedRef<HTMLDivElement>\n}\n\nexport type ResizableItemProps = Omit<UseResizableItemProps, \"ref\"> &\n  ResizableItemOptions\n\nexport const ResizableItem = forwardRef<ResizableItemProps, \"div\">(\n  (\n    {\n      className,\n      children,\n      innerRef,\n      w,\n      width,\n      minW,\n      minWidth,\n      maxW,\n      maxWidth,\n      h,\n      height,\n      minH,\n      minHeight,\n      maxH,\n      maxHeight,\n      boxSize,\n      ...rest\n    },\n    ref,\n  ) => {\n    const { styles } = useResizableContext()\n    const { getPanelProps, getItemProps } = useResizableItem({\n      ref,\n      ...rest,\n    })\n\n    const css: CSSUIObject = { boxSize: \"100%\", ...styles.item }\n\n    return (\n      <UIPanel\n        {...getPanelProps({\n          w,\n          width,\n          minW,\n          minWidth,\n          maxW,\n          maxWidth,\n          h,\n          height,\n          minH,\n          minHeight,\n          maxH,\n          maxHeight,\n          boxSize,\n        })}\n      >\n        <ui.div\n          className={cx(\"ui-resizable__item\", className)}\n          __css={css}\n          {...getItemProps({}, innerRef)}\n        >\n          {children}\n        </ui.div>\n      </UIPanel>\n    )\n  },\n)\n","import type { CSSUIObject, HTMLUIProps } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport type { IconProps } from \"@yamada-ui/icon\"\nimport { Icon } from \"@yamada-ui/icon\"\nimport { cx } from \"@yamada-ui/utils\"\nimport type { FC, ReactElement } from \"react\"\nimport { PanelResizeHandle } from \"react-resizable-panels\"\nimport type { UseResizableTriggerProps } from \"./use-resizable\"\nimport { useResizableContext, useResizableTrigger } from \"./use-resizable\"\n\ntype ResizableTriggerOptions = {\n  /**\n   * The resizable trigger icon to use.\n   */\n  icon?: ReactElement\n  /**\n   * Props for resizable trigger icon component.\n   */\n  iconProps?: HTMLUIProps<\"div\">\n}\n\nexport type ResizableTriggerProps = Omit<HTMLUIProps<\"div\">, \"as\"> &\n  Omit<UseResizableTriggerProps, \"ref\"> &\n  ResizableTriggerOptions\n\nexport const ResizableTrigger = forwardRef<ResizableTriggerProps, \"div\", false>(\n  ({ className, icon, children, iconProps, ...rest }, ref) => {\n    const { styles } = useResizableContext()\n    const { getTriggerProps, getIconProps } = useResizableTrigger({\n      ref,\n      ...rest,\n    })\n\n    const css: CSSUIObject = { position: \"relative\", ...styles.trigger }\n\n    return (\n      <ui.div\n        as={PanelResizeHandle}\n        className={cx(\"ui-resizable__trigger\", className)}\n        __css={css}\n        {...getTriggerProps()}\n      >\n        {icon ? (\n          <ui.div\n            className=\"ui-resizable__trigger__icon\"\n            __css={{\n              position: \"absolute\",\n              top: \"50%\",\n              left: \"50%\",\n              transform: \"auto\",\n              translateY: \"-50%\",\n              translateX: \"-50%\",\n              display: \"flex\",\n              justifyContent: \"center\",\n              alignItems: \"center\",\n              ...styles.icon,\n            }}\n            {...getIconProps(iconProps)}\n          >\n            {icon}\n          </ui.div>\n        ) : null}\n\n        {children}\n      </ui.div>\n    )\n  },\n)\n\nexport type ResizableTriggerIconProps = IconProps\n\nexport const ResizableTriggerIcon: FC<ResizableTriggerIconProps> = (rest) => {\n  return (\n    <Icon viewBox=\"0 0 23 39\" w=\"0.5rem\" h=\"1rem\" {...rest}>\n      <path\n        d=\"M 5 0 C 7.761 0 10 2.239 10 5 C 10 7.761 7.761 10 5 10 C 2.239 10 0 7.761 0 5 C 0 2.239 2.239 0 5 0 Z\"\n        fill=\"currentColor\"\n      />\n\n      <path\n        d=\"M 19 0 C 21.761 0 24 2.239 24 5 C 24 7.761 21.761 10 19 10 C 16.239 10 14 7.761 14 5 C 14 2.239 16.239 0 19 0 Z\"\n        fill=\"currentColor\"\n      />\n\n      <path\n        d=\"M 19 14 C 21.761 14 24 16.239 24 19 C 24 21.761 21.761 24 19 24 C 16.239 24 14 21.761 14 19 C 14 16.239 16.239 14 19 14 Z\"\n        fill=\"currentColor\"\n      />\n\n      <path\n        d=\"M 5 14 C 7.761 14 10 16.239 10 19 C 10 21.761 7.761 24 5 24 C 2.239 24 0 21.761 0 19 C 0 16.239 2.239 14 5 14 Z\"\n        fill=\"currentColor\"\n      />\n\n      <path\n        d=\"M 5 28 C 7.761 28 10 30.239 10 33 C 10 35.761 7.761 38 5 38 C 2.239 38 0 35.761 0 33 C 0 30.239 2.239 28 5 28 Z\"\n        fill=\"currentColor\"\n      />\n\n      <path\n        d=\"M 19 28 C 21.761 28 24 30.239 24 33 C 24 35.761 21.761 38 19 38 C 16.239 38 14 35.761 14 33 C 14 30.239 16.239 28 19 28 Z\"\n        fill=\"currentColor\"\n      />\n    </Icon>\n  )\n}\n"],"mappings":"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","names":["import_utils","import_react_resizable_panels","ref","rest","isActive","import_core","import_utils","import_react_resizable_panels","import_jsx_runtime","import_core","import_utils","import_react_resizable_panels","import_jsx_runtime"]}
         
     | 
    
        package/dist/index.mjs
    CHANGED
    
    | 
         @@ -1,15 +1,15 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            "use client"
         
     | 
| 
       2 
2 
     | 
    
         
             
            import {
         
     | 
| 
       3 
3 
     | 
    
         
             
              ResizableItem
         
     | 
| 
       4 
     | 
    
         
            -
            } from "./chunk- 
     | 
| 
      
 4 
     | 
    
         
            +
            } from "./chunk-OC4OPFF5.mjs";
         
     | 
| 
       5 
5 
     | 
    
         
             
            import {
         
     | 
| 
       6 
6 
     | 
    
         
             
              ResizableTrigger,
         
     | 
| 
       7 
7 
     | 
    
         
             
              ResizableTriggerIcon
         
     | 
| 
       8 
     | 
    
         
            -
            } from "./chunk- 
     | 
| 
      
 8 
     | 
    
         
            +
            } from "./chunk-YY2FCE3J.mjs";
         
     | 
| 
       9 
9 
     | 
    
         
             
            import {
         
     | 
| 
       10 
10 
     | 
    
         
             
              Resizable
         
     | 
| 
       11 
     | 
    
         
            -
            } from "./chunk- 
     | 
| 
       12 
     | 
    
         
            -
            import "./chunk- 
     | 
| 
      
 11 
     | 
    
         
            +
            } from "./chunk-YFQD6ESN.mjs";
         
     | 
| 
      
 12 
     | 
    
         
            +
            import "./chunk-IIKCEUSE.mjs";
         
     | 
| 
       13 
13 
     | 
    
         
             
            export {
         
     | 
| 
       14 
14 
     | 
    
         
             
              Resizable,
         
     | 
| 
       15 
15 
     | 
    
         
             
              ResizableItem,
         
     | 
    
        package/dist/resizable-item.js
    CHANGED
    
    | 
         @@ -94,11 +94,9 @@ var useResizableItem = ({ 
     | 
|
| 
       94 
94 
     | 
    
         
             
                [innerProps]
         
     | 
| 
       95 
95 
     | 
    
         
             
              );
         
     | 
| 
       96 
96 
     | 
    
         
             
              (0, import_react.useEffect)(() => {
         
     | 
| 
       97 
     | 
    
         
            -
                if (!id)
         
     | 
| 
       98 
     | 
    
         
            -
                  return;
         
     | 
| 
      
 97 
     | 
    
         
            +
                if (!id) return;
         
     | 
| 
       99 
98 
     | 
    
         
             
                const el = (0, import_react_resizable_panels.getPanelElement)(id);
         
     | 
| 
       100 
     | 
    
         
            -
                if (ref)
         
     | 
| 
       101 
     | 
    
         
            -
                  ref.current = el;
         
     | 
| 
      
 99 
     | 
    
         
            +
                if (ref) ref.current = el;
         
     | 
| 
       102 
100 
     | 
    
         
             
              }, [ref, id]);
         
     | 
| 
       103 
101 
     | 
    
         
             
              return {
         
     | 
| 
       104 
102 
     | 
    
         
             
                getPanelProps,
         
     | 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"sources":["../src/resizable-item.tsx","../src/use-resizable.ts"],"sourcesContent":["import type { CSSUIObject } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport type { ForwardedRef } from \"react\"\nimport { Panel } from \"react-resizable-panels\"\nimport type { UseResizableItemProps } from \"./use-resizable\"\nimport { useResizableContext, useResizableItem } from \"./use-resizable\"\n\nconst panelProps = new Set([\"order\"])\n\nconst UIPanel = ui(Panel, { disableStyleProp: (prop) => panelProps.has(prop) })\n\ntype ResizableItemOptions = {\n  /**\n   * Ref for resizable item inner element.\n   */\n  innerRef?: ForwardedRef<HTMLDivElement>\n}\n\nexport type ResizableItemProps = Omit<UseResizableItemProps, \"ref\"> &\n  ResizableItemOptions\n\nexport const ResizableItem = forwardRef<ResizableItemProps, \"div\">(\n  (\n    {\n      className,\n      children,\n      innerRef,\n      w,\n      width,\n      minW,\n      minWidth,\n      maxW,\n      maxWidth,\n      h,\n      height,\n      minH,\n      minHeight,\n      maxH,\n      maxHeight,\n      boxSize,\n      ...rest\n    },\n    ref,\n  ) => {\n    const { styles } = useResizableContext()\n    const { getPanelProps, getItemProps } = useResizableItem({\n      ref,\n      ...rest,\n    })\n\n    const css: CSSUIObject = { boxSize: \"100%\", ...styles.item }\n\n    return (\n      <UIPanel\n        {...getPanelProps({\n          w,\n          width,\n          minW,\n          minWidth,\n          maxW,\n          maxWidth,\n          h,\n          height,\n          minH,\n          minHeight,\n          maxH,\n          maxHeight,\n          boxSize,\n        })}\n      >\n        <ui.div\n          className={cx(\"ui-resizable__item\", className)}\n          __css={css}\n          {...getItemProps({}, innerRef)}\n        >\n          {children}\n        </ui.div>\n      </UIPanel>\n    )\n  },\n)\n","import type { CSSUIObject, HTMLUIProps, UIPropGetter } from \"@yamada-ui/core\"\nimport type { PropGetter } from \"@yamada-ui/utils\"\nimport { createContext, dataAttr, handlerAll } from \"@yamada-ui/utils\"\nimport type { ForwardedRef, RefObject } from \"react\"\nimport { useCallback, useEffect, useId, useState } from \"react\"\nimport {\n  getPanelElement,\n  getPanelGroupElement,\n  getResizeHandleElement,\n} from \"react-resizable-panels\"\nimport type {\n  PanelResizeHandleProps,\n  PanelGroupProps,\n  PanelProps,\n  PanelGroupOnLayout,\n  PanelGroupStorage,\n  ImperativePanelHandle,\n} from \"react-resizable-panels\"\n\ntype GroupPropGetter = (props?: Partial<PanelGroupProps>) => PanelGroupProps\ntype ItemPropGetter = (props?: HTMLUIProps<\"div\"> & PanelProps) => PanelProps\ntype TriggerPropGetter = (\n  props?: PanelResizeHandleProps,\n) => PanelResizeHandleProps\n\ntype As = { as?: keyof HTMLElementTagNameMap }\n\ntype ResizableGroupProps = Omit<\n  Partial<PanelGroupProps>,\n  \"id\" | \"tagName\" | \"children\"\n> &\n  As\ntype ResizableItemProps = Omit<PanelProps, \"id\" | \"tagName\" | \"children\"> & As\ntype ResizableTriggerProps = Omit<\n  PanelResizeHandleProps,\n  \"id\" | \"tagName\" | \"children\"\n> &\n  As\n\nexport type ResizableStorage = PanelGroupStorage\nexport type ResizableItemControl = ImperativePanelHandle\n\ntype ResizableContext = {\n  isDisabled: boolean\n  styles: Record<string, CSSUIObject>\n}\n\nexport const [ResizableProvider, useResizableContext] =\n  createContext<ResizableContext>({\n    name: \"ResizableContext\",\n    errorMessage: `useResizableContext returned is 'undefined'. Seems you forgot to wrap the components in \"<Resizable />\"`,\n  })\n\nexport type UseResizableProps = {\n  /**\n   * id assigned to resizable element.\n   */\n  id?: string\n  /**\n   * Ref for resizable element.\n   */\n  ref?: ForwardedRef<HTMLElement>\n  /**\n   * The direction of the resizable.\n   *\n   * @default \"horizontal\"\n   */\n  direction?: \"horizontal\" | \"vertical\"\n  /**\n   * If `true`, the resizable trigger will be disabled.\n   */\n  isDisabled?: boolean\n  /**\n   * Unit to resize by keyboard operation.\n   *\n   * @default 10\n   */\n  keyboardStep?: number\n  /**\n   * Key of value saved in storage.\n   * By default, it is saved to `local storage`.\n   */\n  storageKey?: string\n  /**\n   * A callback that gets and sets a value in custom storage.\n   */\n  storage?: PanelGroupStorage\n  /**\n   * The callback invoked when resizable items are resized.\n   */\n  onLayout?: PanelGroupOnLayout\n  /**\n   * Props for resizable component.\n   */\n  groupProps?: ResizableGroupProps\n}\n\nexport const useResizable = ({\n  id,\n  direction = \"horizontal\",\n  storageKey,\n  keyboardStep,\n  isDisabled = false,\n  onLayout,\n  storage,\n  ref,\n  groupProps,\n  ...rest\n}: UseResizableProps) => {\n  id ??= useId()\n\n  const getContainerProps: PropGetter = useCallback(\n    (props = {}, ref = null) => ({ ...props, ref, ...rest }),\n    [rest],\n  )\n\n  const getGroupProps: GroupPropGetter = useCallback(\n    (props = {}) => {\n      const { as, ...rest } = groupProps ?? {}\n\n      return {\n        ...props,\n        id,\n        direction,\n        tagName: as,\n        autoSaveId: storageKey,\n        keyboardResizeBy: keyboardStep,\n        onLayout,\n        storage,\n        ...rest,\n      }\n    },\n    [id, direction, groupProps, storageKey, keyboardStep, onLayout, storage],\n  )\n\n  useEffect(() => {\n    if (!id) return\n\n    const el = getPanelGroupElement(id)\n\n    // @ts-expect-error\n    if (ref) ref.current = el\n  }, [ref, id])\n\n  return {\n    isDisabled,\n    getContainerProps,\n    getGroupProps,\n  }\n}\n\nexport type UseResizableReturn = ReturnType<typeof useResizable>\n\ntype UseResizableItemOptions = {\n  /**\n   * id assigned to resizable item element.\n   */\n  id?: string\n  /**\n   * Ref for resizable item element.\n   */\n  ref?: ForwardedRef<HTMLElement>\n  /**\n   * If `true`, the resizable item can be collapsed.\n   *\n   * @default false\n   */\n  collapsible?: boolean\n  /**\n   * The collapsed size of the resizable item.\n   */\n  collapsedSize?: number\n  /**\n   * The initial size of the resizable item.\n   */\n  defaultSize?: number\n  /**\n   * The minimum allowed value of the resizable item.\n   */\n  minSize?: number\n  /**\n   * The maximum allowed value of the resizable item.\n   */\n  maxSize?: number\n  /**\n   * The callback invoked when resizable item are collapsed.\n   */\n  onCollapse?: () => void\n  /**\n   * The callback invoked when resizable item are expanded.\n   */\n  onExpand?: () => void\n  /**\n   * The callback invoked when resizable item are resized.\n   */\n  onResize?: (size: number, prevSize: number | undefined) => void\n  /**\n   * Order for the resizable item.\n   */\n  order?: number\n  /**\n   * Ref of the resizable item callback.\n   */\n  controlRef?: RefObject<ResizableItemControl>\n  /**\n   * Props for resizable item container element.\n   */\n  containerProps?: Omit<HTMLUIProps<\"div\">, \"as\"> & ResizableItemProps\n}\n\nexport type UseResizableItemProps = Omit<\n  HTMLUIProps<\"div\">,\n  keyof UseResizableItemOptions\n> &\n  UseResizableItemOptions\n\nexport const useResizableItem = ({\n  id,\n  ref,\n  collapsedSize,\n  collapsible,\n  defaultSize,\n  maxSize,\n  minSize,\n  onCollapse,\n  onExpand,\n  onResize,\n  order,\n  controlRef,\n  containerProps,\n  ...innerProps\n}: UseResizableItemProps) => {\n  id ??= useId()\n\n  const getPanelProps: ItemPropGetter = useCallback(\n    (props = {}) => {\n      const { as, ...rest } = containerProps ?? {}\n\n      return {\n        ...props,\n        ref: controlRef,\n        id,\n        tagName: as,\n        collapsible,\n        defaultSize,\n        maxSize,\n        minSize,\n        collapsedSize,\n        onCollapse,\n        onExpand,\n        onResize,\n        order,\n        ...(collapsible ? { \"aria-labelledby\": id } : { \"aria-label\": id }),\n        ...rest,\n      }\n    },\n    [\n      id,\n      controlRef,\n      containerProps,\n      collapsedSize,\n      collapsible,\n      defaultSize,\n      maxSize,\n      minSize,\n      onCollapse,\n      onExpand,\n      onResize,\n      order,\n    ],\n  )\n\n  const getItemProps: UIPropGetter = useCallback(\n    (props = {}, ref = null) => ({ ...props, ref, ...innerProps }),\n    [innerProps],\n  )\n\n  useEffect(() => {\n    if (!id) return\n\n    const el = getPanelElement(id)\n\n    // @ts-expect-error\n    if (ref) ref.current = el\n  }, [ref, id])\n\n  return {\n    getPanelProps,\n    getItemProps,\n  }\n}\n\nexport type UseResizableItemReturn = ReturnType<typeof useResizableItem>\n\ntype UseResizableTriggerOptions = {\n  /**\n   * id assigned to resizable trigger element.\n   */\n  id?: string\n  /**\n   * Ref for resizable trigger element.\n   */\n  ref?: ForwardedRef<HTMLElement>\n  /**\n   * If `true`, the resizable trigger will be disabled.\n   *\n   * @default false\n   */\n  isDisabled?: boolean\n  /**\n   * The callback invoked when resizable trigger are dragged.\n   */\n  onDragging?: (isDragging: boolean) => void\n}\n\nexport type UseResizableTriggerProps = HTMLUIProps<\"div\"> &\n  ResizableTriggerProps &\n  UseResizableTriggerOptions\n\nexport const useResizableTrigger = ({\n  id,\n  ref,\n  as,\n  disabled,\n  isDisabled,\n  onDragging,\n  ...rest\n}: UseResizableTriggerProps) => {\n  id ??= useId()\n\n  const { isDisabled: isGroupDisabled } = useResizableContext()\n  const [isActive, setIsActive] = useState<boolean>(false)\n\n  const trulyDisabled = disabled || isDisabled || isGroupDisabled\n\n  const getTriggerProps: TriggerPropGetter = useCallback(\n    (props = {}) => ({\n      ...props,\n      id,\n      tagName: as,\n      disabled: trulyDisabled,\n      onDragging: handlerAll(onDragging, (isActive) => setIsActive(isActive)),\n      ...rest,\n      \"data-active\": dataAttr(isActive),\n      style: {\n        ...props.style,\n        ...rest.style,\n        ...(trulyDisabled ? { cursor: \"default\" } : {}),\n      },\n    }),\n    [id, as, trulyDisabled, onDragging, rest, isActive],\n  )\n\n  const getIconProps: UIPropGetter = useCallback(\n    (props = {}, ref = null) => ({\n      ...props,\n      ref,\n      \"data-active\": dataAttr(isActive),\n    }),\n    [isActive],\n  )\n\n  useEffect(() => {\n    if (!id) return\n\n    const el = getResizeHandleElement(id)\n\n    // @ts-expect-error\n    if (ref) ref.current = el\n  }, [ref, id])\n\n  return {\n    getTriggerProps,\n    getIconProps,\n  }\n}\n\nexport type UseResizableTriggerReturn = ReturnType<typeof useResizableTrigger>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,kBAA+B;AAC/B,IAAAA,gBAAmB;AAEnB,IAAAC,iCAAsB;;;ACFtB,mBAAoD;AAEpD,mBAAwD;AACxD,oCAIO;AAsCA,IAAM,CAAC,mBAAmB,mBAAmB,QAClD,4BAAgC;AAAA,EAC9B,MAAM;AAAA,EACN,cAAc;AAChB,CAAC;AAqKI,IAAM,mBAAmB,CAAC;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAA6B;AAC3B,6BAAO,oBAAM;AAEb,QAAM,oBAAgC;AAAA,IACpC,CAAC,QAAQ,CAAC,MAAM;AACd,YAAM,EAAE,IAAI,GAAG,KAAK,IAAI,0CAAkB,CAAC;AAE3C,aAAO;AAAA,QACL,GAAG;AAAA,QACH,KAAK;AAAA,QACL;AAAA,QACA,SAAS;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,GAAI,cAAc,EAAE,mBAAmB,GAAG,IAAI,EAAE,cAAc,GAAG;AAAA,QACjE,GAAG;AAAA,MACL;AAAA,IACF;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,QAAM,mBAA6B;AAAA,IACjC,CAAC,QAAQ,CAAC,GAAGC,OAAM,UAAU,EAAE,GAAG,OAAO,KAAAA,MAAK,GAAG,WAAW;AAAA,IAC5D,CAAC,UAAU;AAAA,EACb;AAEA,8BAAU,MAAM;AACd,QAAI,CAAC;AAAI;AAET,UAAM,SAAK,+CAAgB,EAAE;AAG7B,QAAI;AAAK,UAAI,UAAU;AAAA,EACzB,GAAG,CAAC,KAAK,EAAE,CAAC;AAEZ,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;;;AD3NQ;AA/DR,IAAM,aAAa,oBAAI,IAAI,CAAC,OAAO,CAAC;AAEpC,IAAM,cAAU,gBAAG,sCAAO,EAAE,kBAAkB,CAAC,SAAS,WAAW,IAAI,IAAI,EAAE,CAAC;AAYvE,IAAM,oBAAgB;AAAA,EAC3B,CACE;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,GACA,QACG;AACH,UAAM,EAAE,OAAO,IAAI,oBAAoB;AACvC,UAAM,EAAE,eAAe,aAAa,IAAI,iBAAiB;AAAA,MACvD;AAAA,MACA,GAAG;AAAA,IACL,CAAC;AAED,UAAM,MAAmB,EAAE,SAAS,QAAQ,GAAG,OAAO,KAAK;AAE3D,WACE;AAAA,MAAC;AAAA;AAAA,QACE,GAAG,cAAc;AAAA,UAChB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC;AAAA,QAED;AAAA,UAAC,eAAG;AAAA,UAAH;AAAA,YACC,eAAW,kBAAG,sBAAsB,SAAS;AAAA,YAC7C,OAAO;AAAA,YACN,GAAG,aAAa,CAAC,GAAG,QAAQ;AAAA,YAE5B;AAAA;AAAA,QACH;AAAA;AAAA,IACF;AAAA,EAEJ;AACF;","names":["import_utils","import_react_resizable_panels","ref"]}
         
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"sources":["../src/resizable-item.tsx","../src/use-resizable.ts"],"sourcesContent":["import type { CSSUIObject } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport type { ForwardedRef } from \"react\"\nimport { Panel } from \"react-resizable-panels\"\nimport type { UseResizableItemProps } from \"./use-resizable\"\nimport { useResizableContext, useResizableItem } from \"./use-resizable\"\n\nconst panelProps = new Set([\"order\"])\n\nconst UIPanel = ui(Panel, { disableStyleProp: (prop) => panelProps.has(prop) })\n\ntype ResizableItemOptions = {\n  /**\n   * Ref for resizable item inner element.\n   */\n  innerRef?: ForwardedRef<HTMLDivElement>\n}\n\nexport type ResizableItemProps = Omit<UseResizableItemProps, \"ref\"> &\n  ResizableItemOptions\n\nexport const ResizableItem = forwardRef<ResizableItemProps, \"div\">(\n  (\n    {\n      className,\n      children,\n      innerRef,\n      w,\n      width,\n      minW,\n      minWidth,\n      maxW,\n      maxWidth,\n      h,\n      height,\n      minH,\n      minHeight,\n      maxH,\n      maxHeight,\n      boxSize,\n      ...rest\n    },\n    ref,\n  ) => {\n    const { styles } = useResizableContext()\n    const { getPanelProps, getItemProps } = useResizableItem({\n      ref,\n      ...rest,\n    })\n\n    const css: CSSUIObject = { boxSize: \"100%\", ...styles.item }\n\n    return (\n      <UIPanel\n        {...getPanelProps({\n          w,\n          width,\n          minW,\n          minWidth,\n          maxW,\n          maxWidth,\n          h,\n          height,\n          minH,\n          minHeight,\n          maxH,\n          maxHeight,\n          boxSize,\n        })}\n      >\n        <ui.div\n          className={cx(\"ui-resizable__item\", className)}\n          __css={css}\n          {...getItemProps({}, innerRef)}\n        >\n          {children}\n        </ui.div>\n      </UIPanel>\n    )\n  },\n)\n","import type { CSSUIObject, HTMLUIProps, UIPropGetter } from \"@yamada-ui/core\"\nimport type { PropGetter } from \"@yamada-ui/utils\"\nimport { createContext, dataAttr, handlerAll } from \"@yamada-ui/utils\"\nimport type { ForwardedRef, RefObject } from \"react\"\nimport { useCallback, useEffect, useId, useState } from \"react\"\nimport {\n  getPanelElement,\n  getPanelGroupElement,\n  getResizeHandleElement,\n} from \"react-resizable-panels\"\nimport type {\n  PanelResizeHandleProps,\n  PanelGroupProps,\n  PanelProps,\n  PanelGroupOnLayout,\n  PanelGroupStorage,\n  ImperativePanelHandle,\n} from \"react-resizable-panels\"\n\ntype GroupPropGetter = (props?: Partial<PanelGroupProps>) => PanelGroupProps\ntype ItemPropGetter = (props?: HTMLUIProps<\"div\"> & PanelProps) => PanelProps\ntype TriggerPropGetter = (\n  props?: PanelResizeHandleProps,\n) => PanelResizeHandleProps\n\ntype As = { as?: keyof HTMLElementTagNameMap }\n\ntype ResizableGroupProps = Omit<\n  Partial<PanelGroupProps>,\n  \"id\" | \"tagName\" | \"children\"\n> &\n  As\ntype ResizableItemProps = Omit<PanelProps, \"id\" | \"tagName\" | \"children\"> & As\ntype ResizableTriggerProps = Omit<\n  PanelResizeHandleProps,\n  \"id\" | \"tagName\" | \"children\"\n> &\n  As\n\nexport type ResizableStorage = PanelGroupStorage\nexport type ResizableItemControl = ImperativePanelHandle\n\ntype ResizableContext = {\n  isDisabled: boolean\n  styles: Record<string, CSSUIObject>\n}\n\nexport const [ResizableProvider, useResizableContext] =\n  createContext<ResizableContext>({\n    name: \"ResizableContext\",\n    errorMessage: `useResizableContext returned is 'undefined'. Seems you forgot to wrap the components in \"<Resizable />\"`,\n  })\n\nexport type UseResizableProps = {\n  /**\n   * id assigned to resizable element.\n   */\n  id?: string\n  /**\n   * Ref for resizable element.\n   */\n  ref?: ForwardedRef<HTMLElement>\n  /**\n   * The direction of the resizable.\n   *\n   * @default \"horizontal\"\n   */\n  direction?: \"horizontal\" | \"vertical\"\n  /**\n   * If `true`, the resizable trigger will be disabled.\n   */\n  isDisabled?: boolean\n  /**\n   * Unit to resize by keyboard operation.\n   *\n   * @default 10\n   */\n  keyboardStep?: number\n  /**\n   * Key of value saved in storage.\n   * By default, it is saved to `local storage`.\n   */\n  storageKey?: string\n  /**\n   * A callback that gets and sets a value in custom storage.\n   */\n  storage?: PanelGroupStorage\n  /**\n   * The callback invoked when resizable items are resized.\n   */\n  onLayout?: PanelGroupOnLayout\n  /**\n   * Props for resizable component.\n   */\n  groupProps?: ResizableGroupProps\n}\n\nexport const useResizable = ({\n  id,\n  direction = \"horizontal\",\n  storageKey,\n  keyboardStep,\n  isDisabled = false,\n  onLayout,\n  storage,\n  ref,\n  groupProps,\n  ...rest\n}: UseResizableProps) => {\n  id ??= useId()\n\n  const getContainerProps: PropGetter = useCallback(\n    (props = {}, ref = null) => ({ ...props, ref, ...rest }),\n    [rest],\n  )\n\n  const getGroupProps: GroupPropGetter = useCallback(\n    (props = {}) => {\n      const { as, ...rest } = groupProps ?? {}\n\n      return {\n        ...props,\n        id,\n        direction,\n        tagName: as,\n        autoSaveId: storageKey,\n        keyboardResizeBy: keyboardStep,\n        onLayout,\n        storage,\n        ...rest,\n      }\n    },\n    [id, direction, groupProps, storageKey, keyboardStep, onLayout, storage],\n  )\n\n  useEffect(() => {\n    if (!id) return\n\n    const el = getPanelGroupElement(id)\n\n    // @ts-expect-error\n    if (ref) ref.current = el\n  }, [ref, id])\n\n  return {\n    isDisabled,\n    getContainerProps,\n    getGroupProps,\n  }\n}\n\nexport type UseResizableReturn = ReturnType<typeof useResizable>\n\ntype UseResizableItemOptions = {\n  /**\n   * id assigned to resizable item element.\n   */\n  id?: string\n  /**\n   * Ref for resizable item element.\n   */\n  ref?: ForwardedRef<HTMLElement>\n  /**\n   * If `true`, the resizable item can be collapsed.\n   *\n   * @default false\n   */\n  collapsible?: boolean\n  /**\n   * The collapsed size of the resizable item.\n   */\n  collapsedSize?: number\n  /**\n   * The initial size of the resizable item.\n   */\n  defaultSize?: number\n  /**\n   * The minimum allowed value of the resizable item.\n   */\n  minSize?: number\n  /**\n   * The maximum allowed value of the resizable item.\n   */\n  maxSize?: number\n  /**\n   * The callback invoked when resizable item are collapsed.\n   */\n  onCollapse?: () => void\n  /**\n   * The callback invoked when resizable item are expanded.\n   */\n  onExpand?: () => void\n  /**\n   * The callback invoked when resizable item are resized.\n   */\n  onResize?: (size: number, prevSize: number | undefined) => void\n  /**\n   * Order for the resizable item.\n   */\n  order?: number\n  /**\n   * Ref of the resizable item callback.\n   */\n  controlRef?: RefObject<ResizableItemControl>\n  /**\n   * Props for resizable item container element.\n   */\n  containerProps?: Omit<HTMLUIProps<\"div\">, \"as\"> & ResizableItemProps\n}\n\nexport type UseResizableItemProps = Omit<\n  HTMLUIProps<\"div\">,\n  keyof UseResizableItemOptions\n> &\n  UseResizableItemOptions\n\nexport const useResizableItem = ({\n  id,\n  ref,\n  collapsedSize,\n  collapsible,\n  defaultSize,\n  maxSize,\n  minSize,\n  onCollapse,\n  onExpand,\n  onResize,\n  order,\n  controlRef,\n  containerProps,\n  ...innerProps\n}: UseResizableItemProps) => {\n  id ??= useId()\n\n  const getPanelProps: ItemPropGetter = useCallback(\n    (props = {}) => {\n      const { as, ...rest } = containerProps ?? {}\n\n      return {\n        ...props,\n        ref: controlRef,\n        id,\n        tagName: as,\n        collapsible,\n        defaultSize,\n        maxSize,\n        minSize,\n        collapsedSize,\n        onCollapse,\n        onExpand,\n        onResize,\n        order,\n        ...(collapsible ? { \"aria-labelledby\": id } : { \"aria-label\": id }),\n        ...rest,\n      }\n    },\n    [\n      id,\n      controlRef,\n      containerProps,\n      collapsedSize,\n      collapsible,\n      defaultSize,\n      maxSize,\n      minSize,\n      onCollapse,\n      onExpand,\n      onResize,\n      order,\n    ],\n  )\n\n  const getItemProps: UIPropGetter = useCallback(\n    (props = {}, ref = null) => ({ ...props, ref, ...innerProps }),\n    [innerProps],\n  )\n\n  useEffect(() => {\n    if (!id) return\n\n    const el = getPanelElement(id)\n\n    // @ts-expect-error\n    if (ref) ref.current = el\n  }, [ref, id])\n\n  return {\n    getPanelProps,\n    getItemProps,\n  }\n}\n\nexport type UseResizableItemReturn = ReturnType<typeof useResizableItem>\n\ntype UseResizableTriggerOptions = {\n  /**\n   * id assigned to resizable trigger element.\n   */\n  id?: string\n  /**\n   * Ref for resizable trigger element.\n   */\n  ref?: ForwardedRef<HTMLElement>\n  /**\n   * If `true`, the resizable trigger will be disabled.\n   *\n   * @default false\n   */\n  isDisabled?: boolean\n  /**\n   * The callback invoked when resizable trigger are dragged.\n   */\n  onDragging?: (isDragging: boolean) => void\n}\n\nexport type UseResizableTriggerProps = HTMLUIProps<\"div\"> &\n  ResizableTriggerProps &\n  UseResizableTriggerOptions\n\nexport const useResizableTrigger = ({\n  id,\n  ref,\n  as,\n  disabled,\n  isDisabled,\n  onDragging,\n  ...rest\n}: UseResizableTriggerProps) => {\n  id ??= useId()\n\n  const { isDisabled: isGroupDisabled } = useResizableContext()\n  const [isActive, setIsActive] = useState<boolean>(false)\n\n  const trulyDisabled = disabled || isDisabled || isGroupDisabled\n\n  const getTriggerProps: TriggerPropGetter = useCallback(\n    (props = {}) => ({\n      ...props,\n      id,\n      tagName: as,\n      disabled: trulyDisabled,\n      onDragging: handlerAll(onDragging, (isActive) => setIsActive(isActive)),\n      ...rest,\n      \"data-active\": dataAttr(isActive),\n      style: {\n        ...props.style,\n        ...rest.style,\n        ...(trulyDisabled ? { cursor: \"default\" } : {}),\n      },\n    }),\n    [id, as, trulyDisabled, onDragging, rest, isActive],\n  )\n\n  const getIconProps: UIPropGetter = useCallback(\n    (props = {}, ref = null) => ({\n      ...props,\n      ref,\n      \"data-active\": dataAttr(isActive),\n    }),\n    [isActive],\n  )\n\n  useEffect(() => {\n    if (!id) return\n\n    const el = getResizeHandleElement(id)\n\n    // @ts-expect-error\n    if (ref) ref.current = el\n  }, [ref, id])\n\n  return {\n    getTriggerProps,\n    getIconProps,\n  }\n}\n\nexport type UseResizableTriggerReturn = ReturnType<typeof useResizableTrigger>\n"],"mappings":"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","names":["import_utils","import_react_resizable_panels","ref"]}
         
     | 
    
        package/dist/resizable-item.mjs
    CHANGED
    
    
| 
         @@ -77,11 +77,9 @@ var useResizableTrigger = ({ 
     | 
|
| 
       77 
77 
     | 
    
         
             
                [isActive]
         
     | 
| 
       78 
78 
     | 
    
         
             
              );
         
     | 
| 
       79 
79 
     | 
    
         
             
              (0, import_react.useEffect)(() => {
         
     | 
| 
       80 
     | 
    
         
            -
                if (!id)
         
     | 
| 
       81 
     | 
    
         
            -
                  return;
         
     | 
| 
      
 80 
     | 
    
         
            +
                if (!id) return;
         
     | 
| 
       82 
81 
     | 
    
         
             
                const el = (0, import_react_resizable_panels.getResizeHandleElement)(id);
         
     | 
| 
       83 
     | 
    
         
            -
                if (ref)
         
     | 
| 
       84 
     | 
    
         
            -
                  ref.current = el;
         
     | 
| 
      
 82 
     | 
    
         
            +
                if (ref) ref.current = el;
         
     | 
| 
       85 
83 
     | 
    
         
             
              }, [ref, id]);
         
     | 
| 
       86 
84 
     | 
    
         
             
              return {
         
     | 
| 
       87 
85 
     | 
    
         
             
                getTriggerProps,
         
     | 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"sources":["../src/resizable-trigger.tsx","../src/use-resizable.ts"],"sourcesContent":["import type { CSSUIObject, HTMLUIProps } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport type { IconProps } from \"@yamada-ui/icon\"\nimport { Icon } from \"@yamada-ui/icon\"\nimport { cx } from \"@yamada-ui/utils\"\nimport type { FC, ReactElement } from \"react\"\nimport { PanelResizeHandle } from \"react-resizable-panels\"\nimport type { UseResizableTriggerProps } from \"./use-resizable\"\nimport { useResizableContext, useResizableTrigger } from \"./use-resizable\"\n\ntype ResizableTriggerOptions = {\n  /**\n   * The resizable trigger icon to use.\n   */\n  icon?: ReactElement\n  /**\n   * Props for resizable trigger icon component.\n   */\n  iconProps?: HTMLUIProps<\"div\">\n}\n\nexport type ResizableTriggerProps = Omit<HTMLUIProps<\"div\">, \"as\"> &\n  Omit<UseResizableTriggerProps, \"ref\"> &\n  ResizableTriggerOptions\n\nexport const ResizableTrigger = forwardRef<ResizableTriggerProps, \"div\", false>(\n  ({ className, icon, children, iconProps, ...rest }, ref) => {\n    const { styles } = useResizableContext()\n    const { getTriggerProps, getIconProps } = useResizableTrigger({\n      ref,\n      ...rest,\n    })\n\n    const css: CSSUIObject = { position: \"relative\", ...styles.trigger }\n\n    return (\n      <ui.div\n        as={PanelResizeHandle}\n        className={cx(\"ui-resizable__trigger\", className)}\n        __css={css}\n        {...getTriggerProps()}\n      >\n        {icon ? (\n          <ui.div\n            className=\"ui-resizable__trigger__icon\"\n            __css={{\n              position: \"absolute\",\n              top: \"50%\",\n              left: \"50%\",\n              transform: \"auto\",\n              translateY: \"-50%\",\n              translateX: \"-50%\",\n              display: \"flex\",\n              justifyContent: \"center\",\n              alignItems: \"center\",\n              ...styles.icon,\n            }}\n            {...getIconProps(iconProps)}\n          >\n            {icon}\n          </ui.div>\n        ) : null}\n\n        {children}\n      </ui.div>\n    )\n  },\n)\n\nexport type ResizableTriggerIconProps = IconProps\n\nexport const ResizableTriggerIcon: FC<ResizableTriggerIconProps> = (rest) => {\n  return (\n    <Icon viewBox=\"0 0 23 39\" w=\"0.5rem\" h=\"1rem\" {...rest}>\n      <path\n        d=\"M 5 0 C 7.761 0 10 2.239 10 5 C 10 7.761 7.761 10 5 10 C 2.239 10 0 7.761 0 5 C 0 2.239 2.239 0 5 0 Z\"\n        fill=\"currentColor\"\n      />\n\n      <path\n        d=\"M 19 0 C 21.761 0 24 2.239 24 5 C 24 7.761 21.761 10 19 10 C 16.239 10 14 7.761 14 5 C 14 2.239 16.239 0 19 0 Z\"\n        fill=\"currentColor\"\n      />\n\n      <path\n        d=\"M 19 14 C 21.761 14 24 16.239 24 19 C 24 21.761 21.761 24 19 24 C 16.239 24 14 21.761 14 19 C 14 16.239 16.239 14 19 14 Z\"\n        fill=\"currentColor\"\n      />\n\n      <path\n        d=\"M 5 14 C 7.761 14 10 16.239 10 19 C 10 21.761 7.761 24 5 24 C 2.239 24 0 21.761 0 19 C 0 16.239 2.239 14 5 14 Z\"\n        fill=\"currentColor\"\n      />\n\n      <path\n        d=\"M 5 28 C 7.761 28 10 30.239 10 33 C 10 35.761 7.761 38 5 38 C 2.239 38 0 35.761 0 33 C 0 30.239 2.239 28 5 28 Z\"\n        fill=\"currentColor\"\n      />\n\n      <path\n        d=\"M 19 28 C 21.761 28 24 30.239 24 33 C 24 35.761 21.761 38 19 38 C 16.239 38 14 35.761 14 33 C 14 30.239 16.239 28 19 28 Z\"\n        fill=\"currentColor\"\n      />\n    </Icon>\n  )\n}\n","import type { CSSUIObject, HTMLUIProps, UIPropGetter } from \"@yamada-ui/core\"\nimport type { PropGetter } from \"@yamada-ui/utils\"\nimport { createContext, dataAttr, handlerAll } from \"@yamada-ui/utils\"\nimport type { ForwardedRef, RefObject } from \"react\"\nimport { useCallback, useEffect, useId, useState } from \"react\"\nimport {\n  getPanelElement,\n  getPanelGroupElement,\n  getResizeHandleElement,\n} from \"react-resizable-panels\"\nimport type {\n  PanelResizeHandleProps,\n  PanelGroupProps,\n  PanelProps,\n  PanelGroupOnLayout,\n  PanelGroupStorage,\n  ImperativePanelHandle,\n} from \"react-resizable-panels\"\n\ntype GroupPropGetter = (props?: Partial<PanelGroupProps>) => PanelGroupProps\ntype ItemPropGetter = (props?: HTMLUIProps<\"div\"> & PanelProps) => PanelProps\ntype TriggerPropGetter = (\n  props?: PanelResizeHandleProps,\n) => PanelResizeHandleProps\n\ntype As = { as?: keyof HTMLElementTagNameMap }\n\ntype ResizableGroupProps = Omit<\n  Partial<PanelGroupProps>,\n  \"id\" | \"tagName\" | \"children\"\n> &\n  As\ntype ResizableItemProps = Omit<PanelProps, \"id\" | \"tagName\" | \"children\"> & As\ntype ResizableTriggerProps = Omit<\n  PanelResizeHandleProps,\n  \"id\" | \"tagName\" | \"children\"\n> &\n  As\n\nexport type ResizableStorage = PanelGroupStorage\nexport type ResizableItemControl = ImperativePanelHandle\n\ntype ResizableContext = {\n  isDisabled: boolean\n  styles: Record<string, CSSUIObject>\n}\n\nexport const [ResizableProvider, useResizableContext] =\n  createContext<ResizableContext>({\n    name: \"ResizableContext\",\n    errorMessage: `useResizableContext returned is 'undefined'. Seems you forgot to wrap the components in \"<Resizable />\"`,\n  })\n\nexport type UseResizableProps = {\n  /**\n   * id assigned to resizable element.\n   */\n  id?: string\n  /**\n   * Ref for resizable element.\n   */\n  ref?: ForwardedRef<HTMLElement>\n  /**\n   * The direction of the resizable.\n   *\n   * @default \"horizontal\"\n   */\n  direction?: \"horizontal\" | \"vertical\"\n  /**\n   * If `true`, the resizable trigger will be disabled.\n   */\n  isDisabled?: boolean\n  /**\n   * Unit to resize by keyboard operation.\n   *\n   * @default 10\n   */\n  keyboardStep?: number\n  /**\n   * Key of value saved in storage.\n   * By default, it is saved to `local storage`.\n   */\n  storageKey?: string\n  /**\n   * A callback that gets and sets a value in custom storage.\n   */\n  storage?: PanelGroupStorage\n  /**\n   * The callback invoked when resizable items are resized.\n   */\n  onLayout?: PanelGroupOnLayout\n  /**\n   * Props for resizable component.\n   */\n  groupProps?: ResizableGroupProps\n}\n\nexport const useResizable = ({\n  id,\n  direction = \"horizontal\",\n  storageKey,\n  keyboardStep,\n  isDisabled = false,\n  onLayout,\n  storage,\n  ref,\n  groupProps,\n  ...rest\n}: UseResizableProps) => {\n  id ??= useId()\n\n  const getContainerProps: PropGetter = useCallback(\n    (props = {}, ref = null) => ({ ...props, ref, ...rest }),\n    [rest],\n  )\n\n  const getGroupProps: GroupPropGetter = useCallback(\n    (props = {}) => {\n      const { as, ...rest } = groupProps ?? {}\n\n      return {\n        ...props,\n        id,\n        direction,\n        tagName: as,\n        autoSaveId: storageKey,\n        keyboardResizeBy: keyboardStep,\n        onLayout,\n        storage,\n        ...rest,\n      }\n    },\n    [id, direction, groupProps, storageKey, keyboardStep, onLayout, storage],\n  )\n\n  useEffect(() => {\n    if (!id) return\n\n    const el = getPanelGroupElement(id)\n\n    // @ts-expect-error\n    if (ref) ref.current = el\n  }, [ref, id])\n\n  return {\n    isDisabled,\n    getContainerProps,\n    getGroupProps,\n  }\n}\n\nexport type UseResizableReturn = ReturnType<typeof useResizable>\n\ntype UseResizableItemOptions = {\n  /**\n   * id assigned to resizable item element.\n   */\n  id?: string\n  /**\n   * Ref for resizable item element.\n   */\n  ref?: ForwardedRef<HTMLElement>\n  /**\n   * If `true`, the resizable item can be collapsed.\n   *\n   * @default false\n   */\n  collapsible?: boolean\n  /**\n   * The collapsed size of the resizable item.\n   */\n  collapsedSize?: number\n  /**\n   * The initial size of the resizable item.\n   */\n  defaultSize?: number\n  /**\n   * The minimum allowed value of the resizable item.\n   */\n  minSize?: number\n  /**\n   * The maximum allowed value of the resizable item.\n   */\n  maxSize?: number\n  /**\n   * The callback invoked when resizable item are collapsed.\n   */\n  onCollapse?: () => void\n  /**\n   * The callback invoked when resizable item are expanded.\n   */\n  onExpand?: () => void\n  /**\n   * The callback invoked when resizable item are resized.\n   */\n  onResize?: (size: number, prevSize: number | undefined) => void\n  /**\n   * Order for the resizable item.\n   */\n  order?: number\n  /**\n   * Ref of the resizable item callback.\n   */\n  controlRef?: RefObject<ResizableItemControl>\n  /**\n   * Props for resizable item container element.\n   */\n  containerProps?: Omit<HTMLUIProps<\"div\">, \"as\"> & ResizableItemProps\n}\n\nexport type UseResizableItemProps = Omit<\n  HTMLUIProps<\"div\">,\n  keyof UseResizableItemOptions\n> &\n  UseResizableItemOptions\n\nexport const useResizableItem = ({\n  id,\n  ref,\n  collapsedSize,\n  collapsible,\n  defaultSize,\n  maxSize,\n  minSize,\n  onCollapse,\n  onExpand,\n  onResize,\n  order,\n  controlRef,\n  containerProps,\n  ...innerProps\n}: UseResizableItemProps) => {\n  id ??= useId()\n\n  const getPanelProps: ItemPropGetter = useCallback(\n    (props = {}) => {\n      const { as, ...rest } = containerProps ?? {}\n\n      return {\n        ...props,\n        ref: controlRef,\n        id,\n        tagName: as,\n        collapsible,\n        defaultSize,\n        maxSize,\n        minSize,\n        collapsedSize,\n        onCollapse,\n        onExpand,\n        onResize,\n        order,\n        ...(collapsible ? { \"aria-labelledby\": id } : { \"aria-label\": id }),\n        ...rest,\n      }\n    },\n    [\n      id,\n      controlRef,\n      containerProps,\n      collapsedSize,\n      collapsible,\n      defaultSize,\n      maxSize,\n      minSize,\n      onCollapse,\n      onExpand,\n      onResize,\n      order,\n    ],\n  )\n\n  const getItemProps: UIPropGetter = useCallback(\n    (props = {}, ref = null) => ({ ...props, ref, ...innerProps }),\n    [innerProps],\n  )\n\n  useEffect(() => {\n    if (!id) return\n\n    const el = getPanelElement(id)\n\n    // @ts-expect-error\n    if (ref) ref.current = el\n  }, [ref, id])\n\n  return {\n    getPanelProps,\n    getItemProps,\n  }\n}\n\nexport type UseResizableItemReturn = ReturnType<typeof useResizableItem>\n\ntype UseResizableTriggerOptions = {\n  /**\n   * id assigned to resizable trigger element.\n   */\n  id?: string\n  /**\n   * Ref for resizable trigger element.\n   */\n  ref?: ForwardedRef<HTMLElement>\n  /**\n   * If `true`, the resizable trigger will be disabled.\n   *\n   * @default false\n   */\n  isDisabled?: boolean\n  /**\n   * The callback invoked when resizable trigger are dragged.\n   */\n  onDragging?: (isDragging: boolean) => void\n}\n\nexport type UseResizableTriggerProps = HTMLUIProps<\"div\"> &\n  ResizableTriggerProps &\n  UseResizableTriggerOptions\n\nexport const useResizableTrigger = ({\n  id,\n  ref,\n  as,\n  disabled,\n  isDisabled,\n  onDragging,\n  ...rest\n}: UseResizableTriggerProps) => {\n  id ??= useId()\n\n  const { isDisabled: isGroupDisabled } = useResizableContext()\n  const [isActive, setIsActive] = useState<boolean>(false)\n\n  const trulyDisabled = disabled || isDisabled || isGroupDisabled\n\n  const getTriggerProps: TriggerPropGetter = useCallback(\n    (props = {}) => ({\n      ...props,\n      id,\n      tagName: as,\n      disabled: trulyDisabled,\n      onDragging: handlerAll(onDragging, (isActive) => setIsActive(isActive)),\n      ...rest,\n      \"data-active\": dataAttr(isActive),\n      style: {\n        ...props.style,\n        ...rest.style,\n        ...(trulyDisabled ? { cursor: \"default\" } : {}),\n      },\n    }),\n    [id, as, trulyDisabled, onDragging, rest, isActive],\n  )\n\n  const getIconProps: UIPropGetter = useCallback(\n    (props = {}, ref = null) => ({\n      ...props,\n      ref,\n      \"data-active\": dataAttr(isActive),\n    }),\n    [isActive],\n  )\n\n  useEffect(() => {\n    if (!id) return\n\n    const el = getResizeHandleElement(id)\n\n    // @ts-expect-error\n    if (ref) ref.current = el\n  }, [ref, id])\n\n  return {\n    getTriggerProps,\n    getIconProps,\n  }\n}\n\nexport type UseResizableTriggerReturn = ReturnType<typeof useResizableTrigger>\n"],"mappings":"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","names":["import_utils","import_react_resizable_panels","isActive","ref"]}
         
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"sources":["../src/resizable-trigger.tsx","../src/use-resizable.ts"],"sourcesContent":["import type { CSSUIObject, HTMLUIProps } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport type { IconProps } from \"@yamada-ui/icon\"\nimport { Icon } from \"@yamada-ui/icon\"\nimport { cx } from \"@yamada-ui/utils\"\nimport type { FC, ReactElement } from \"react\"\nimport { PanelResizeHandle } from \"react-resizable-panels\"\nimport type { UseResizableTriggerProps } from \"./use-resizable\"\nimport { useResizableContext, useResizableTrigger } from \"./use-resizable\"\n\ntype ResizableTriggerOptions = {\n  /**\n   * The resizable trigger icon to use.\n   */\n  icon?: ReactElement\n  /**\n   * Props for resizable trigger icon component.\n   */\n  iconProps?: HTMLUIProps<\"div\">\n}\n\nexport type ResizableTriggerProps = Omit<HTMLUIProps<\"div\">, \"as\"> &\n  Omit<UseResizableTriggerProps, \"ref\"> &\n  ResizableTriggerOptions\n\nexport const ResizableTrigger = forwardRef<ResizableTriggerProps, \"div\", false>(\n  ({ className, icon, children, iconProps, ...rest }, ref) => {\n    const { styles } = useResizableContext()\n    const { getTriggerProps, getIconProps } = useResizableTrigger({\n      ref,\n      ...rest,\n    })\n\n    const css: CSSUIObject = { position: \"relative\", ...styles.trigger }\n\n    return (\n      <ui.div\n        as={PanelResizeHandle}\n        className={cx(\"ui-resizable__trigger\", className)}\n        __css={css}\n        {...getTriggerProps()}\n      >\n        {icon ? (\n          <ui.div\n            className=\"ui-resizable__trigger__icon\"\n            __css={{\n              position: \"absolute\",\n              top: \"50%\",\n              left: \"50%\",\n              transform: \"auto\",\n              translateY: \"-50%\",\n              translateX: \"-50%\",\n              display: \"flex\",\n              justifyContent: \"center\",\n              alignItems: \"center\",\n              ...styles.icon,\n            }}\n            {...getIconProps(iconProps)}\n          >\n            {icon}\n          </ui.div>\n        ) : null}\n\n        {children}\n      </ui.div>\n    )\n  },\n)\n\nexport type ResizableTriggerIconProps = IconProps\n\nexport const ResizableTriggerIcon: FC<ResizableTriggerIconProps> = (rest) => {\n  return (\n    <Icon viewBox=\"0 0 23 39\" w=\"0.5rem\" h=\"1rem\" {...rest}>\n      <path\n        d=\"M 5 0 C 7.761 0 10 2.239 10 5 C 10 7.761 7.761 10 5 10 C 2.239 10 0 7.761 0 5 C 0 2.239 2.239 0 5 0 Z\"\n        fill=\"currentColor\"\n      />\n\n      <path\n        d=\"M 19 0 C 21.761 0 24 2.239 24 5 C 24 7.761 21.761 10 19 10 C 16.239 10 14 7.761 14 5 C 14 2.239 16.239 0 19 0 Z\"\n        fill=\"currentColor\"\n      />\n\n      <path\n        d=\"M 19 14 C 21.761 14 24 16.239 24 19 C 24 21.761 21.761 24 19 24 C 16.239 24 14 21.761 14 19 C 14 16.239 16.239 14 19 14 Z\"\n        fill=\"currentColor\"\n      />\n\n      <path\n        d=\"M 5 14 C 7.761 14 10 16.239 10 19 C 10 21.761 7.761 24 5 24 C 2.239 24 0 21.761 0 19 C 0 16.239 2.239 14 5 14 Z\"\n        fill=\"currentColor\"\n      />\n\n      <path\n        d=\"M 5 28 C 7.761 28 10 30.239 10 33 C 10 35.761 7.761 38 5 38 C 2.239 38 0 35.761 0 33 C 0 30.239 2.239 28 5 28 Z\"\n        fill=\"currentColor\"\n      />\n\n      <path\n        d=\"M 19 28 C 21.761 28 24 30.239 24 33 C 24 35.761 21.761 38 19 38 C 16.239 38 14 35.761 14 33 C 14 30.239 16.239 28 19 28 Z\"\n        fill=\"currentColor\"\n      />\n    </Icon>\n  )\n}\n","import type { CSSUIObject, HTMLUIProps, UIPropGetter } from \"@yamada-ui/core\"\nimport type { PropGetter } from \"@yamada-ui/utils\"\nimport { createContext, dataAttr, handlerAll } from \"@yamada-ui/utils\"\nimport type { ForwardedRef, RefObject } from \"react\"\nimport { useCallback, useEffect, useId, useState } from \"react\"\nimport {\n  getPanelElement,\n  getPanelGroupElement,\n  getResizeHandleElement,\n} from \"react-resizable-panels\"\nimport type {\n  PanelResizeHandleProps,\n  PanelGroupProps,\n  PanelProps,\n  PanelGroupOnLayout,\n  PanelGroupStorage,\n  ImperativePanelHandle,\n} from \"react-resizable-panels\"\n\ntype GroupPropGetter = (props?: Partial<PanelGroupProps>) => PanelGroupProps\ntype ItemPropGetter = (props?: HTMLUIProps<\"div\"> & PanelProps) => PanelProps\ntype TriggerPropGetter = (\n  props?: PanelResizeHandleProps,\n) => PanelResizeHandleProps\n\ntype As = { as?: keyof HTMLElementTagNameMap }\n\ntype ResizableGroupProps = Omit<\n  Partial<PanelGroupProps>,\n  \"id\" | \"tagName\" | \"children\"\n> &\n  As\ntype ResizableItemProps = Omit<PanelProps, \"id\" | \"tagName\" | \"children\"> & As\ntype ResizableTriggerProps = Omit<\n  PanelResizeHandleProps,\n  \"id\" | \"tagName\" | \"children\"\n> &\n  As\n\nexport type ResizableStorage = PanelGroupStorage\nexport type ResizableItemControl = ImperativePanelHandle\n\ntype ResizableContext = {\n  isDisabled: boolean\n  styles: Record<string, CSSUIObject>\n}\n\nexport const [ResizableProvider, useResizableContext] =\n  createContext<ResizableContext>({\n    name: \"ResizableContext\",\n    errorMessage: `useResizableContext returned is 'undefined'. Seems you forgot to wrap the components in \"<Resizable />\"`,\n  })\n\nexport type UseResizableProps = {\n  /**\n   * id assigned to resizable element.\n   */\n  id?: string\n  /**\n   * Ref for resizable element.\n   */\n  ref?: ForwardedRef<HTMLElement>\n  /**\n   * The direction of the resizable.\n   *\n   * @default \"horizontal\"\n   */\n  direction?: \"horizontal\" | \"vertical\"\n  /**\n   * If `true`, the resizable trigger will be disabled.\n   */\n  isDisabled?: boolean\n  /**\n   * Unit to resize by keyboard operation.\n   *\n   * @default 10\n   */\n  keyboardStep?: number\n  /**\n   * Key of value saved in storage.\n   * By default, it is saved to `local storage`.\n   */\n  storageKey?: string\n  /**\n   * A callback that gets and sets a value in custom storage.\n   */\n  storage?: PanelGroupStorage\n  /**\n   * The callback invoked when resizable items are resized.\n   */\n  onLayout?: PanelGroupOnLayout\n  /**\n   * Props for resizable component.\n   */\n  groupProps?: ResizableGroupProps\n}\n\nexport const useResizable = ({\n  id,\n  direction = \"horizontal\",\n  storageKey,\n  keyboardStep,\n  isDisabled = false,\n  onLayout,\n  storage,\n  ref,\n  groupProps,\n  ...rest\n}: UseResizableProps) => {\n  id ??= useId()\n\n  const getContainerProps: PropGetter = useCallback(\n    (props = {}, ref = null) => ({ ...props, ref, ...rest }),\n    [rest],\n  )\n\n  const getGroupProps: GroupPropGetter = useCallback(\n    (props = {}) => {\n      const { as, ...rest } = groupProps ?? {}\n\n      return {\n        ...props,\n        id,\n        direction,\n        tagName: as,\n        autoSaveId: storageKey,\n        keyboardResizeBy: keyboardStep,\n        onLayout,\n        storage,\n        ...rest,\n      }\n    },\n    [id, direction, groupProps, storageKey, keyboardStep, onLayout, storage],\n  )\n\n  useEffect(() => {\n    if (!id) return\n\n    const el = getPanelGroupElement(id)\n\n    // @ts-expect-error\n    if (ref) ref.current = el\n  }, [ref, id])\n\n  return {\n    isDisabled,\n    getContainerProps,\n    getGroupProps,\n  }\n}\n\nexport type UseResizableReturn = ReturnType<typeof useResizable>\n\ntype UseResizableItemOptions = {\n  /**\n   * id assigned to resizable item element.\n   */\n  id?: string\n  /**\n   * Ref for resizable item element.\n   */\n  ref?: ForwardedRef<HTMLElement>\n  /**\n   * If `true`, the resizable item can be collapsed.\n   *\n   * @default false\n   */\n  collapsible?: boolean\n  /**\n   * The collapsed size of the resizable item.\n   */\n  collapsedSize?: number\n  /**\n   * The initial size of the resizable item.\n   */\n  defaultSize?: number\n  /**\n   * The minimum allowed value of the resizable item.\n   */\n  minSize?: number\n  /**\n   * The maximum allowed value of the resizable item.\n   */\n  maxSize?: number\n  /**\n   * The callback invoked when resizable item are collapsed.\n   */\n  onCollapse?: () => void\n  /**\n   * The callback invoked when resizable item are expanded.\n   */\n  onExpand?: () => void\n  /**\n   * The callback invoked when resizable item are resized.\n   */\n  onResize?: (size: number, prevSize: number | undefined) => void\n  /**\n   * Order for the resizable item.\n   */\n  order?: number\n  /**\n   * Ref of the resizable item callback.\n   */\n  controlRef?: RefObject<ResizableItemControl>\n  /**\n   * Props for resizable item container element.\n   */\n  containerProps?: Omit<HTMLUIProps<\"div\">, \"as\"> & ResizableItemProps\n}\n\nexport type UseResizableItemProps = Omit<\n  HTMLUIProps<\"div\">,\n  keyof UseResizableItemOptions\n> &\n  UseResizableItemOptions\n\nexport const useResizableItem = ({\n  id,\n  ref,\n  collapsedSize,\n  collapsible,\n  defaultSize,\n  maxSize,\n  minSize,\n  onCollapse,\n  onExpand,\n  onResize,\n  order,\n  controlRef,\n  containerProps,\n  ...innerProps\n}: UseResizableItemProps) => {\n  id ??= useId()\n\n  const getPanelProps: ItemPropGetter = useCallback(\n    (props = {}) => {\n      const { as, ...rest } = containerProps ?? {}\n\n      return {\n        ...props,\n        ref: controlRef,\n        id,\n        tagName: as,\n        collapsible,\n        defaultSize,\n        maxSize,\n        minSize,\n        collapsedSize,\n        onCollapse,\n        onExpand,\n        onResize,\n        order,\n        ...(collapsible ? { \"aria-labelledby\": id } : { \"aria-label\": id }),\n        ...rest,\n      }\n    },\n    [\n      id,\n      controlRef,\n      containerProps,\n      collapsedSize,\n      collapsible,\n      defaultSize,\n      maxSize,\n      minSize,\n      onCollapse,\n      onExpand,\n      onResize,\n      order,\n    ],\n  )\n\n  const getItemProps: UIPropGetter = useCallback(\n    (props = {}, ref = null) => ({ ...props, ref, ...innerProps }),\n    [innerProps],\n  )\n\n  useEffect(() => {\n    if (!id) return\n\n    const el = getPanelElement(id)\n\n    // @ts-expect-error\n    if (ref) ref.current = el\n  }, [ref, id])\n\n  return {\n    getPanelProps,\n    getItemProps,\n  }\n}\n\nexport type UseResizableItemReturn = ReturnType<typeof useResizableItem>\n\ntype UseResizableTriggerOptions = {\n  /**\n   * id assigned to resizable trigger element.\n   */\n  id?: string\n  /**\n   * Ref for resizable trigger element.\n   */\n  ref?: ForwardedRef<HTMLElement>\n  /**\n   * If `true`, the resizable trigger will be disabled.\n   *\n   * @default false\n   */\n  isDisabled?: boolean\n  /**\n   * The callback invoked when resizable trigger are dragged.\n   */\n  onDragging?: (isDragging: boolean) => void\n}\n\nexport type UseResizableTriggerProps = HTMLUIProps<\"div\"> &\n  ResizableTriggerProps &\n  UseResizableTriggerOptions\n\nexport const useResizableTrigger = ({\n  id,\n  ref,\n  as,\n  disabled,\n  isDisabled,\n  onDragging,\n  ...rest\n}: UseResizableTriggerProps) => {\n  id ??= useId()\n\n  const { isDisabled: isGroupDisabled } = useResizableContext()\n  const [isActive, setIsActive] = useState<boolean>(false)\n\n  const trulyDisabled = disabled || isDisabled || isGroupDisabled\n\n  const getTriggerProps: TriggerPropGetter = useCallback(\n    (props = {}) => ({\n      ...props,\n      id,\n      tagName: as,\n      disabled: trulyDisabled,\n      onDragging: handlerAll(onDragging, (isActive) => setIsActive(isActive)),\n      ...rest,\n      \"data-active\": dataAttr(isActive),\n      style: {\n        ...props.style,\n        ...rest.style,\n        ...(trulyDisabled ? { cursor: \"default\" } : {}),\n      },\n    }),\n    [id, as, trulyDisabled, onDragging, rest, isActive],\n  )\n\n  const getIconProps: UIPropGetter = useCallback(\n    (props = {}, ref = null) => ({\n      ...props,\n      ref,\n      \"data-active\": dataAttr(isActive),\n    }),\n    [isActive],\n  )\n\n  useEffect(() => {\n    if (!id) return\n\n    const el = getResizeHandleElement(id)\n\n    // @ts-expect-error\n    if (ref) ref.current = el\n  }, [ref, id])\n\n  return {\n    getTriggerProps,\n    getIconProps,\n  }\n}\n\nexport type UseResizableTriggerReturn = ReturnType<typeof useResizableTrigger>\n"],"mappings":"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","names":["import_utils","import_react_resizable_panels","isActive","ref"]}
         
     | 
    
        package/dist/resizable.js
    CHANGED
    
    | 
         @@ -71,11 +71,9 @@ var useResizable = ({ 
     | 
|
| 
       71 
71 
     | 
    
         
             
                [id, direction, groupProps, storageKey, keyboardStep, onLayout, storage]
         
     | 
| 
       72 
72 
     | 
    
         
             
              );
         
     | 
| 
       73 
73 
     | 
    
         
             
              (0, import_react.useEffect)(() => {
         
     | 
| 
       74 
     | 
    
         
            -
                if (!id)
         
     | 
| 
       75 
     | 
    
         
            -
                  return;
         
     | 
| 
      
 74 
     | 
    
         
            +
                if (!id) return;
         
     | 
| 
       76 
75 
     | 
    
         
             
                const el = (0, import_react_resizable_panels.getPanelGroupElement)(id);
         
     | 
| 
       77 
     | 
    
         
            -
                if (ref)
         
     | 
| 
       78 
     | 
    
         
            -
                  ref.current = el;
         
     | 
| 
      
 76 
     | 
    
         
            +
                if (ref) ref.current = el;
         
     | 
| 
       79 
77 
     | 
    
         
             
              }, [ref, id]);
         
     | 
| 
       80 
78 
     | 
    
         
             
              return {
         
     | 
| 
       81 
79 
     | 
    
         
             
                isDisabled,
         
     | 
    
        package/dist/resizable.js.map
    CHANGED
    
    | 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"sources":["../src/resizable.tsx","../src/use-resizable.ts"],"sourcesContent":["import type { CSSUIObject, HTMLUIProps, ThemeProps } from \"@yamada-ui/core\"\nimport {\n  ui,\n  forwardRef,\n  useMultiComponentStyle,\n  omitThemeProps,\n} from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport type { ForwardedRef } from \"react\"\nimport { PanelGroup } from \"react-resizable-panels\"\nimport type { UseResizableProps } from \"./use-resizable\"\nimport { ResizableProvider, useResizable } from \"./use-resizable\"\n\ntype ResizableOptions = {\n  /**\n   * Ref for resizable container element.\n   */\n  containerRef?: ForwardedRef<HTMLDivElement>\n}\n\n/**\n * `Resizable` is accessible resizable panel groups and layouts with keyboard support.\n *\n * @see Docs https://yamada-ui.com/components/data-display/resizable\n */\nexport type ResizableProps = Omit<HTMLUIProps<\"div\">, \"direction\"> &\n  ThemeProps<\"Resizable\"> &\n  Omit<UseResizableProps, \"ref\"> &\n  ResizableOptions\n\nexport const Resizable = forwardRef<ResizableProps, \"div\">(\n  ({ direction = \"horizontal\", ...props }, ref) => {\n    const [styles, mergedProps] = useMultiComponentStyle(\"Resizable\", {\n      direction,\n      ...props,\n    })\n    const { className, children, containerRef, ...computedProps } =\n      omitThemeProps(mergedProps)\n    const { getContainerProps, getGroupProps, ...rest } = useResizable({\n      ref,\n      ...computedProps,\n    })\n\n    const css: CSSUIObject = { w: \"100%\", h: \"100%\", ...styles.container }\n\n    return (\n      <ResizableProvider value={{ styles, ...rest }}>\n        <ui.div\n          className={cx(\"ui-resizable\", className)}\n          __css={css}\n          {...getContainerProps({}, containerRef)}\n        >\n          <PanelGroup {...getGroupProps()}>{children}</PanelGroup>\n        </ui.div>\n      </ResizableProvider>\n    )\n  },\n)\n","import type { CSSUIObject, HTMLUIProps, UIPropGetter } from \"@yamada-ui/core\"\nimport type { PropGetter } from \"@yamada-ui/utils\"\nimport { createContext, dataAttr, handlerAll } from \"@yamada-ui/utils\"\nimport type { ForwardedRef, RefObject } from \"react\"\nimport { useCallback, useEffect, useId, useState } from \"react\"\nimport {\n  getPanelElement,\n  getPanelGroupElement,\n  getResizeHandleElement,\n} from \"react-resizable-panels\"\nimport type {\n  PanelResizeHandleProps,\n  PanelGroupProps,\n  PanelProps,\n  PanelGroupOnLayout,\n  PanelGroupStorage,\n  ImperativePanelHandle,\n} from \"react-resizable-panels\"\n\ntype GroupPropGetter = (props?: Partial<PanelGroupProps>) => PanelGroupProps\ntype ItemPropGetter = (props?: HTMLUIProps<\"div\"> & PanelProps) => PanelProps\ntype TriggerPropGetter = (\n  props?: PanelResizeHandleProps,\n) => PanelResizeHandleProps\n\ntype As = { as?: keyof HTMLElementTagNameMap }\n\ntype ResizableGroupProps = Omit<\n  Partial<PanelGroupProps>,\n  \"id\" | \"tagName\" | \"children\"\n> &\n  As\ntype ResizableItemProps = Omit<PanelProps, \"id\" | \"tagName\" | \"children\"> & As\ntype ResizableTriggerProps = Omit<\n  PanelResizeHandleProps,\n  \"id\" | \"tagName\" | \"children\"\n> &\n  As\n\nexport type ResizableStorage = PanelGroupStorage\nexport type ResizableItemControl = ImperativePanelHandle\n\ntype ResizableContext = {\n  isDisabled: boolean\n  styles: Record<string, CSSUIObject>\n}\n\nexport const [ResizableProvider, useResizableContext] =\n  createContext<ResizableContext>({\n    name: \"ResizableContext\",\n    errorMessage: `useResizableContext returned is 'undefined'. Seems you forgot to wrap the components in \"<Resizable />\"`,\n  })\n\nexport type UseResizableProps = {\n  /**\n   * id assigned to resizable element.\n   */\n  id?: string\n  /**\n   * Ref for resizable element.\n   */\n  ref?: ForwardedRef<HTMLElement>\n  /**\n   * The direction of the resizable.\n   *\n   * @default \"horizontal\"\n   */\n  direction?: \"horizontal\" | \"vertical\"\n  /**\n   * If `true`, the resizable trigger will be disabled.\n   */\n  isDisabled?: boolean\n  /**\n   * Unit to resize by keyboard operation.\n   *\n   * @default 10\n   */\n  keyboardStep?: number\n  /**\n   * Key of value saved in storage.\n   * By default, it is saved to `local storage`.\n   */\n  storageKey?: string\n  /**\n   * A callback that gets and sets a value in custom storage.\n   */\n  storage?: PanelGroupStorage\n  /**\n   * The callback invoked when resizable items are resized.\n   */\n  onLayout?: PanelGroupOnLayout\n  /**\n   * Props for resizable component.\n   */\n  groupProps?: ResizableGroupProps\n}\n\nexport const useResizable = ({\n  id,\n  direction = \"horizontal\",\n  storageKey,\n  keyboardStep,\n  isDisabled = false,\n  onLayout,\n  storage,\n  ref,\n  groupProps,\n  ...rest\n}: UseResizableProps) => {\n  id ??= useId()\n\n  const getContainerProps: PropGetter = useCallback(\n    (props = {}, ref = null) => ({ ...props, ref, ...rest }),\n    [rest],\n  )\n\n  const getGroupProps: GroupPropGetter = useCallback(\n    (props = {}) => {\n      const { as, ...rest } = groupProps ?? {}\n\n      return {\n        ...props,\n        id,\n        direction,\n        tagName: as,\n        autoSaveId: storageKey,\n        keyboardResizeBy: keyboardStep,\n        onLayout,\n        storage,\n        ...rest,\n      }\n    },\n    [id, direction, groupProps, storageKey, keyboardStep, onLayout, storage],\n  )\n\n  useEffect(() => {\n    if (!id) return\n\n    const el = getPanelGroupElement(id)\n\n    // @ts-expect-error\n    if (ref) ref.current = el\n  }, [ref, id])\n\n  return {\n    isDisabled,\n    getContainerProps,\n    getGroupProps,\n  }\n}\n\nexport type UseResizableReturn = ReturnType<typeof useResizable>\n\ntype UseResizableItemOptions = {\n  /**\n   * id assigned to resizable item element.\n   */\n  id?: string\n  /**\n   * Ref for resizable item element.\n   */\n  ref?: ForwardedRef<HTMLElement>\n  /**\n   * If `true`, the resizable item can be collapsed.\n   *\n   * @default false\n   */\n  collapsible?: boolean\n  /**\n   * The collapsed size of the resizable item.\n   */\n  collapsedSize?: number\n  /**\n   * The initial size of the resizable item.\n   */\n  defaultSize?: number\n  /**\n   * The minimum allowed value of the resizable item.\n   */\n  minSize?: number\n  /**\n   * The maximum allowed value of the resizable item.\n   */\n  maxSize?: number\n  /**\n   * The callback invoked when resizable item are collapsed.\n   */\n  onCollapse?: () => void\n  /**\n   * The callback invoked when resizable item are expanded.\n   */\n  onExpand?: () => void\n  /**\n   * The callback invoked when resizable item are resized.\n   */\n  onResize?: (size: number, prevSize: number | undefined) => void\n  /**\n   * Order for the resizable item.\n   */\n  order?: number\n  /**\n   * Ref of the resizable item callback.\n   */\n  controlRef?: RefObject<ResizableItemControl>\n  /**\n   * Props for resizable item container element.\n   */\n  containerProps?: Omit<HTMLUIProps<\"div\">, \"as\"> & ResizableItemProps\n}\n\nexport type UseResizableItemProps = Omit<\n  HTMLUIProps<\"div\">,\n  keyof UseResizableItemOptions\n> &\n  UseResizableItemOptions\n\nexport const useResizableItem = ({\n  id,\n  ref,\n  collapsedSize,\n  collapsible,\n  defaultSize,\n  maxSize,\n  minSize,\n  onCollapse,\n  onExpand,\n  onResize,\n  order,\n  controlRef,\n  containerProps,\n  ...innerProps\n}: UseResizableItemProps) => {\n  id ??= useId()\n\n  const getPanelProps: ItemPropGetter = useCallback(\n    (props = {}) => {\n      const { as, ...rest } = containerProps ?? {}\n\n      return {\n        ...props,\n        ref: controlRef,\n        id,\n        tagName: as,\n        collapsible,\n        defaultSize,\n        maxSize,\n        minSize,\n        collapsedSize,\n        onCollapse,\n        onExpand,\n        onResize,\n        order,\n        ...(collapsible ? { \"aria-labelledby\": id } : { \"aria-label\": id }),\n        ...rest,\n      }\n    },\n    [\n      id,\n      controlRef,\n      containerProps,\n      collapsedSize,\n      collapsible,\n      defaultSize,\n      maxSize,\n      minSize,\n      onCollapse,\n      onExpand,\n      onResize,\n      order,\n    ],\n  )\n\n  const getItemProps: UIPropGetter = useCallback(\n    (props = {}, ref = null) => ({ ...props, ref, ...innerProps }),\n    [innerProps],\n  )\n\n  useEffect(() => {\n    if (!id) return\n\n    const el = getPanelElement(id)\n\n    // @ts-expect-error\n    if (ref) ref.current = el\n  }, [ref, id])\n\n  return {\n    getPanelProps,\n    getItemProps,\n  }\n}\n\nexport type UseResizableItemReturn = ReturnType<typeof useResizableItem>\n\ntype UseResizableTriggerOptions = {\n  /**\n   * id assigned to resizable trigger element.\n   */\n  id?: string\n  /**\n   * Ref for resizable trigger element.\n   */\n  ref?: ForwardedRef<HTMLElement>\n  /**\n   * If `true`, the resizable trigger will be disabled.\n   *\n   * @default false\n   */\n  isDisabled?: boolean\n  /**\n   * The callback invoked when resizable trigger are dragged.\n   */\n  onDragging?: (isDragging: boolean) => void\n}\n\nexport type UseResizableTriggerProps = HTMLUIProps<\"div\"> &\n  ResizableTriggerProps &\n  UseResizableTriggerOptions\n\nexport const useResizableTrigger = ({\n  id,\n  ref,\n  as,\n  disabled,\n  isDisabled,\n  onDragging,\n  ...rest\n}: UseResizableTriggerProps) => {\n  id ??= useId()\n\n  const { isDisabled: isGroupDisabled } = useResizableContext()\n  const [isActive, setIsActive] = useState<boolean>(false)\n\n  const trulyDisabled = disabled || isDisabled || isGroupDisabled\n\n  const getTriggerProps: TriggerPropGetter = useCallback(\n    (props = {}) => ({\n      ...props,\n      id,\n      tagName: as,\n      disabled: trulyDisabled,\n      onDragging: handlerAll(onDragging, (isActive) => setIsActive(isActive)),\n      ...rest,\n      \"data-active\": dataAttr(isActive),\n      style: {\n        ...props.style,\n        ...rest.style,\n        ...(trulyDisabled ? { cursor: \"default\" } : {}),\n      },\n    }),\n    [id, as, trulyDisabled, onDragging, rest, isActive],\n  )\n\n  const getIconProps: UIPropGetter = useCallback(\n    (props = {}, ref = null) => ({\n      ...props,\n      ref,\n      \"data-active\": dataAttr(isActive),\n    }),\n    [isActive],\n  )\n\n  useEffect(() => {\n    if (!id) return\n\n    const el = getResizeHandleElement(id)\n\n    // @ts-expect-error\n    if (ref) ref.current = el\n  }, [ref, id])\n\n  return {\n    getTriggerProps,\n    getIconProps,\n  }\n}\n\nexport type UseResizableTriggerReturn = ReturnType<typeof useResizableTrigger>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,kBAKO;AACP,IAAAA,gBAAmB;AAEnB,IAAAC,iCAA2B;;;ACP3B,mBAAoD;AAEpD,mBAAwD;AACxD,oCAIO;AAsCA,IAAM,CAAC,mBAAmB,mBAAmB,QAClD,4BAAgC;AAAA,EAC9B,MAAM;AAAA,EACN,cAAc;AAChB,CAAC;AA8CI,IAAM,eAAe,CAAC;AAAA,EAC3B;AAAA,EACA,YAAY;AAAA,EACZ;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAyB;AACvB,6BAAO,oBAAM;AAEb,QAAM,wBAAgC;AAAA,IACpC,CAAC,QAAQ,CAAC,GAAGC,OAAM,UAAU,EAAE,GAAG,OAAO,KAAAA,MAAK,GAAG,KAAK;AAAA,IACtD,CAAC,IAAI;AAAA,EACP;AAEA,QAAM,oBAAiC;AAAA,IACrC,CAAC,QAAQ,CAAC,MAAM;AACd,YAAM,EAAE,IAAI,GAAGC,MAAK,IAAI,kCAAc,CAAC;AAEvC,aAAO;AAAA,QACL,GAAG;AAAA,QACH;AAAA,QACA;AAAA,QACA,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,kBAAkB;AAAA,QAClB;AAAA,QACA;AAAA,QACA,GAAGA;AAAA,MACL;AAAA,IACF;AAAA,IACA,CAAC,IAAI,WAAW,YAAY,YAAY,cAAc,UAAU,OAAO;AAAA,EACzE;AAEA,8BAAU,MAAM;AACd,QAAI,CAAC;AAAI;AAET,UAAM,SAAK,oDAAqB,EAAE;AAGlC,QAAI;AAAK,UAAI,UAAU;AAAA,EACzB,GAAG,CAAC,KAAK,EAAE,CAAC;AAEZ,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;;;ADjGU;AAtBH,IAAM,gBAAY;AAAA,EACvB,CAAC,EAAE,YAAY,cAAc,GAAG,MAAM,GAAG,QAAQ;AAC/C,UAAM,CAAC,QAAQ,WAAW,QAAI,oCAAuB,aAAa;AAAA,MAChE;AAAA,MACA,GAAG;AAAA,IACL,CAAC;AACD,UAAM,EAAE,WAAW,UAAU,cAAc,GAAG,cAAc,QAC1D,4BAAe,WAAW;AAC5B,UAAM,EAAE,mBAAmB,eAAe,GAAG,KAAK,IAAI,aAAa;AAAA,MACjE;AAAA,MACA,GAAG;AAAA,IACL,CAAC;AAED,UAAM,MAAmB,EAAE,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,UAAU;AAErE,WACE,4CAAC,qBAAkB,OAAO,EAAE,QAAQ,GAAG,KAAK,GAC1C;AAAA,MAAC,eAAG;AAAA,MAAH;AAAA,QACC,eAAW,kBAAG,gBAAgB,SAAS;AAAA,QACvC,OAAO;AAAA,QACN,GAAG,kBAAkB,CAAC,GAAG,YAAY;AAAA,QAEtC,sDAAC,6CAAY,GAAG,cAAc,GAAI,UAAS;AAAA;AAAA,IAC7C,GACF;AAAA,EAEJ;AACF;","names":["import_utils","import_react_resizable_panels","ref","rest"]}
         
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"sources":["../src/resizable.tsx","../src/use-resizable.ts"],"sourcesContent":["import type { CSSUIObject, HTMLUIProps, ThemeProps } from \"@yamada-ui/core\"\nimport {\n  ui,\n  forwardRef,\n  useMultiComponentStyle,\n  omitThemeProps,\n} from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport type { ForwardedRef } from \"react\"\nimport { PanelGroup } from \"react-resizable-panels\"\nimport type { UseResizableProps } from \"./use-resizable\"\nimport { ResizableProvider, useResizable } from \"./use-resizable\"\n\ntype ResizableOptions = {\n  /**\n   * Ref for resizable container element.\n   */\n  containerRef?: ForwardedRef<HTMLDivElement>\n}\n\n/**\n * `Resizable` is accessible resizable panel groups and layouts with keyboard support.\n *\n * @see Docs https://yamada-ui.com/components/data-display/resizable\n */\nexport type ResizableProps = Omit<HTMLUIProps<\"div\">, \"direction\"> &\n  ThemeProps<\"Resizable\"> &\n  Omit<UseResizableProps, \"ref\"> &\n  ResizableOptions\n\nexport const Resizable = forwardRef<ResizableProps, \"div\">(\n  ({ direction = \"horizontal\", ...props }, ref) => {\n    const [styles, mergedProps] = useMultiComponentStyle(\"Resizable\", {\n      direction,\n      ...props,\n    })\n    const { className, children, containerRef, ...computedProps } =\n      omitThemeProps(mergedProps)\n    const { getContainerProps, getGroupProps, ...rest } = useResizable({\n      ref,\n      ...computedProps,\n    })\n\n    const css: CSSUIObject = { w: \"100%\", h: \"100%\", ...styles.container }\n\n    return (\n      <ResizableProvider value={{ styles, ...rest }}>\n        <ui.div\n          className={cx(\"ui-resizable\", className)}\n          __css={css}\n          {...getContainerProps({}, containerRef)}\n        >\n          <PanelGroup {...getGroupProps()}>{children}</PanelGroup>\n        </ui.div>\n      </ResizableProvider>\n    )\n  },\n)\n","import type { CSSUIObject, HTMLUIProps, UIPropGetter } from \"@yamada-ui/core\"\nimport type { PropGetter } from \"@yamada-ui/utils\"\nimport { createContext, dataAttr, handlerAll } from \"@yamada-ui/utils\"\nimport type { ForwardedRef, RefObject } from \"react\"\nimport { useCallback, useEffect, useId, useState } from \"react\"\nimport {\n  getPanelElement,\n  getPanelGroupElement,\n  getResizeHandleElement,\n} from \"react-resizable-panels\"\nimport type {\n  PanelResizeHandleProps,\n  PanelGroupProps,\n  PanelProps,\n  PanelGroupOnLayout,\n  PanelGroupStorage,\n  ImperativePanelHandle,\n} from \"react-resizable-panels\"\n\ntype GroupPropGetter = (props?: Partial<PanelGroupProps>) => PanelGroupProps\ntype ItemPropGetter = (props?: HTMLUIProps<\"div\"> & PanelProps) => PanelProps\ntype TriggerPropGetter = (\n  props?: PanelResizeHandleProps,\n) => PanelResizeHandleProps\n\ntype As = { as?: keyof HTMLElementTagNameMap }\n\ntype ResizableGroupProps = Omit<\n  Partial<PanelGroupProps>,\n  \"id\" | \"tagName\" | \"children\"\n> &\n  As\ntype ResizableItemProps = Omit<PanelProps, \"id\" | \"tagName\" | \"children\"> & As\ntype ResizableTriggerProps = Omit<\n  PanelResizeHandleProps,\n  \"id\" | \"tagName\" | \"children\"\n> &\n  As\n\nexport type ResizableStorage = PanelGroupStorage\nexport type ResizableItemControl = ImperativePanelHandle\n\ntype ResizableContext = {\n  isDisabled: boolean\n  styles: Record<string, CSSUIObject>\n}\n\nexport const [ResizableProvider, useResizableContext] =\n  createContext<ResizableContext>({\n    name: \"ResizableContext\",\n    errorMessage: `useResizableContext returned is 'undefined'. Seems you forgot to wrap the components in \"<Resizable />\"`,\n  })\n\nexport type UseResizableProps = {\n  /**\n   * id assigned to resizable element.\n   */\n  id?: string\n  /**\n   * Ref for resizable element.\n   */\n  ref?: ForwardedRef<HTMLElement>\n  /**\n   * The direction of the resizable.\n   *\n   * @default \"horizontal\"\n   */\n  direction?: \"horizontal\" | \"vertical\"\n  /**\n   * If `true`, the resizable trigger will be disabled.\n   */\n  isDisabled?: boolean\n  /**\n   * Unit to resize by keyboard operation.\n   *\n   * @default 10\n   */\n  keyboardStep?: number\n  /**\n   * Key of value saved in storage.\n   * By default, it is saved to `local storage`.\n   */\n  storageKey?: string\n  /**\n   * A callback that gets and sets a value in custom storage.\n   */\n  storage?: PanelGroupStorage\n  /**\n   * The callback invoked when resizable items are resized.\n   */\n  onLayout?: PanelGroupOnLayout\n  /**\n   * Props for resizable component.\n   */\n  groupProps?: ResizableGroupProps\n}\n\nexport const useResizable = ({\n  id,\n  direction = \"horizontal\",\n  storageKey,\n  keyboardStep,\n  isDisabled = false,\n  onLayout,\n  storage,\n  ref,\n  groupProps,\n  ...rest\n}: UseResizableProps) => {\n  id ??= useId()\n\n  const getContainerProps: PropGetter = useCallback(\n    (props = {}, ref = null) => ({ ...props, ref, ...rest }),\n    [rest],\n  )\n\n  const getGroupProps: GroupPropGetter = useCallback(\n    (props = {}) => {\n      const { as, ...rest } = groupProps ?? {}\n\n      return {\n        ...props,\n        id,\n        direction,\n        tagName: as,\n        autoSaveId: storageKey,\n        keyboardResizeBy: keyboardStep,\n        onLayout,\n        storage,\n        ...rest,\n      }\n    },\n    [id, direction, groupProps, storageKey, keyboardStep, onLayout, storage],\n  )\n\n  useEffect(() => {\n    if (!id) return\n\n    const el = getPanelGroupElement(id)\n\n    // @ts-expect-error\n    if (ref) ref.current = el\n  }, [ref, id])\n\n  return {\n    isDisabled,\n    getContainerProps,\n    getGroupProps,\n  }\n}\n\nexport type UseResizableReturn = ReturnType<typeof useResizable>\n\ntype UseResizableItemOptions = {\n  /**\n   * id assigned to resizable item element.\n   */\n  id?: string\n  /**\n   * Ref for resizable item element.\n   */\n  ref?: ForwardedRef<HTMLElement>\n  /**\n   * If `true`, the resizable item can be collapsed.\n   *\n   * @default false\n   */\n  collapsible?: boolean\n  /**\n   * The collapsed size of the resizable item.\n   */\n  collapsedSize?: number\n  /**\n   * The initial size of the resizable item.\n   */\n  defaultSize?: number\n  /**\n   * The minimum allowed value of the resizable item.\n   */\n  minSize?: number\n  /**\n   * The maximum allowed value of the resizable item.\n   */\n  maxSize?: number\n  /**\n   * The callback invoked when resizable item are collapsed.\n   */\n  onCollapse?: () => void\n  /**\n   * The callback invoked when resizable item are expanded.\n   */\n  onExpand?: () => void\n  /**\n   * The callback invoked when resizable item are resized.\n   */\n  onResize?: (size: number, prevSize: number | undefined) => void\n  /**\n   * Order for the resizable item.\n   */\n  order?: number\n  /**\n   * Ref of the resizable item callback.\n   */\n  controlRef?: RefObject<ResizableItemControl>\n  /**\n   * Props for resizable item container element.\n   */\n  containerProps?: Omit<HTMLUIProps<\"div\">, \"as\"> & ResizableItemProps\n}\n\nexport type UseResizableItemProps = Omit<\n  HTMLUIProps<\"div\">,\n  keyof UseResizableItemOptions\n> &\n  UseResizableItemOptions\n\nexport const useResizableItem = ({\n  id,\n  ref,\n  collapsedSize,\n  collapsible,\n  defaultSize,\n  maxSize,\n  minSize,\n  onCollapse,\n  onExpand,\n  onResize,\n  order,\n  controlRef,\n  containerProps,\n  ...innerProps\n}: UseResizableItemProps) => {\n  id ??= useId()\n\n  const getPanelProps: ItemPropGetter = useCallback(\n    (props = {}) => {\n      const { as, ...rest } = containerProps ?? {}\n\n      return {\n        ...props,\n        ref: controlRef,\n        id,\n        tagName: as,\n        collapsible,\n        defaultSize,\n        maxSize,\n        minSize,\n        collapsedSize,\n        onCollapse,\n        onExpand,\n        onResize,\n        order,\n        ...(collapsible ? { \"aria-labelledby\": id } : { \"aria-label\": id }),\n        ...rest,\n      }\n    },\n    [\n      id,\n      controlRef,\n      containerProps,\n      collapsedSize,\n      collapsible,\n      defaultSize,\n      maxSize,\n      minSize,\n      onCollapse,\n      onExpand,\n      onResize,\n      order,\n    ],\n  )\n\n  const getItemProps: UIPropGetter = useCallback(\n    (props = {}, ref = null) => ({ ...props, ref, ...innerProps }),\n    [innerProps],\n  )\n\n  useEffect(() => {\n    if (!id) return\n\n    const el = getPanelElement(id)\n\n    // @ts-expect-error\n    if (ref) ref.current = el\n  }, [ref, id])\n\n  return {\n    getPanelProps,\n    getItemProps,\n  }\n}\n\nexport type UseResizableItemReturn = ReturnType<typeof useResizableItem>\n\ntype UseResizableTriggerOptions = {\n  /**\n   * id assigned to resizable trigger element.\n   */\n  id?: string\n  /**\n   * Ref for resizable trigger element.\n   */\n  ref?: ForwardedRef<HTMLElement>\n  /**\n   * If `true`, the resizable trigger will be disabled.\n   *\n   * @default false\n   */\n  isDisabled?: boolean\n  /**\n   * The callback invoked when resizable trigger are dragged.\n   */\n  onDragging?: (isDragging: boolean) => void\n}\n\nexport type UseResizableTriggerProps = HTMLUIProps<\"div\"> &\n  ResizableTriggerProps &\n  UseResizableTriggerOptions\n\nexport const useResizableTrigger = ({\n  id,\n  ref,\n  as,\n  disabled,\n  isDisabled,\n  onDragging,\n  ...rest\n}: UseResizableTriggerProps) => {\n  id ??= useId()\n\n  const { isDisabled: isGroupDisabled } = useResizableContext()\n  const [isActive, setIsActive] = useState<boolean>(false)\n\n  const trulyDisabled = disabled || isDisabled || isGroupDisabled\n\n  const getTriggerProps: TriggerPropGetter = useCallback(\n    (props = {}) => ({\n      ...props,\n      id,\n      tagName: as,\n      disabled: trulyDisabled,\n      onDragging: handlerAll(onDragging, (isActive) => setIsActive(isActive)),\n      ...rest,\n      \"data-active\": dataAttr(isActive),\n      style: {\n        ...props.style,\n        ...rest.style,\n        ...(trulyDisabled ? { cursor: \"default\" } : {}),\n      },\n    }),\n    [id, as, trulyDisabled, onDragging, rest, isActive],\n  )\n\n  const getIconProps: UIPropGetter = useCallback(\n    (props = {}, ref = null) => ({\n      ...props,\n      ref,\n      \"data-active\": dataAttr(isActive),\n    }),\n    [isActive],\n  )\n\n  useEffect(() => {\n    if (!id) return\n\n    const el = getResizeHandleElement(id)\n\n    // @ts-expect-error\n    if (ref) ref.current = el\n  }, [ref, id])\n\n  return {\n    getTriggerProps,\n    getIconProps,\n  }\n}\n\nexport type UseResizableTriggerReturn = ReturnType<typeof useResizableTrigger>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,kBAKO;AACP,IAAAA,gBAAmB;AAEnB,IAAAC,iCAA2B;;;ACP3B,mBAAoD;AAEpD,mBAAwD;AACxD,oCAIO;AAsCA,IAAM,CAAC,mBAAmB,mBAAmB,QAClD,4BAAgC;AAAA,EAC9B,MAAM;AAAA,EACN,cAAc;AAChB,CAAC;AA8CI,IAAM,eAAe,CAAC;AAAA,EAC3B;AAAA,EACA,YAAY;AAAA,EACZ;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAyB;AACvB,6BAAO,oBAAM;AAEb,QAAM,wBAAgC;AAAA,IACpC,CAAC,QAAQ,CAAC,GAAGC,OAAM,UAAU,EAAE,GAAG,OAAO,KAAAA,MAAK,GAAG,KAAK;AAAA,IACtD,CAAC,IAAI;AAAA,EACP;AAEA,QAAM,oBAAiC;AAAA,IACrC,CAAC,QAAQ,CAAC,MAAM;AACd,YAAM,EAAE,IAAI,GAAGC,MAAK,IAAI,kCAAc,CAAC;AAEvC,aAAO;AAAA,QACL,GAAG;AAAA,QACH;AAAA,QACA;AAAA,QACA,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,kBAAkB;AAAA,QAClB;AAAA,QACA;AAAA,QACA,GAAGA;AAAA,MACL;AAAA,IACF;AAAA,IACA,CAAC,IAAI,WAAW,YAAY,YAAY,cAAc,UAAU,OAAO;AAAA,EACzE;AAEA,8BAAU,MAAM;AACd,QAAI,CAAC,GAAI;AAET,UAAM,SAAK,oDAAqB,EAAE;AAGlC,QAAI,IAAK,KAAI,UAAU;AAAA,EACzB,GAAG,CAAC,KAAK,EAAE,CAAC;AAEZ,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;;;ADjGU;AAtBH,IAAM,gBAAY;AAAA,EACvB,CAAC,EAAE,YAAY,cAAc,GAAG,MAAM,GAAG,QAAQ;AAC/C,UAAM,CAAC,QAAQ,WAAW,QAAI,oCAAuB,aAAa;AAAA,MAChE;AAAA,MACA,GAAG;AAAA,IACL,CAAC;AACD,UAAM,EAAE,WAAW,UAAU,cAAc,GAAG,cAAc,QAC1D,4BAAe,WAAW;AAC5B,UAAM,EAAE,mBAAmB,eAAe,GAAG,KAAK,IAAI,aAAa;AAAA,MACjE;AAAA,MACA,GAAG;AAAA,IACL,CAAC;AAED,UAAM,MAAmB,EAAE,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,UAAU;AAErE,WACE,4CAAC,qBAAkB,OAAO,EAAE,QAAQ,GAAG,KAAK,GAC1C;AAAA,MAAC,eAAG;AAAA,MAAH;AAAA,QACC,eAAW,kBAAG,gBAAgB,SAAS;AAAA,QACvC,OAAO;AAAA,QACN,GAAG,kBAAkB,CAAC,GAAG,YAAY;AAAA,QAEtC,sDAAC,6CAAY,GAAG,cAAc,GAAI,UAAS;AAAA;AAAA,IAC7C,GACF;AAAA,EAEJ;AACF;","names":["import_utils","import_react_resizable_panels","ref","rest"]}
         
     | 
    
        package/dist/resizable.mjs
    CHANGED
    
    
    
        package/dist/use-resizable.js
    CHANGED
    
    | 
         @@ -70,11 +70,9 @@ var useResizable = ({ 
     | 
|
| 
       70 
70 
     | 
    
         
             
                [id, direction, groupProps, storageKey, keyboardStep, onLayout, storage]
         
     | 
| 
       71 
71 
     | 
    
         
             
              );
         
     | 
| 
       72 
72 
     | 
    
         
             
              (0, import_react.useEffect)(() => {
         
     | 
| 
       73 
     | 
    
         
            -
                if (!id)
         
     | 
| 
       74 
     | 
    
         
            -
                  return;
         
     | 
| 
      
 73 
     | 
    
         
            +
                if (!id) return;
         
     | 
| 
       75 
74 
     | 
    
         
             
                const el = (0, import_react_resizable_panels.getPanelGroupElement)(id);
         
     | 
| 
       76 
     | 
    
         
            -
                if (ref)
         
     | 
| 
       77 
     | 
    
         
            -
                  ref.current = el;
         
     | 
| 
      
 75 
     | 
    
         
            +
                if (ref) ref.current = el;
         
     | 
| 
       78 
76 
     | 
    
         
             
              }, [ref, id]);
         
     | 
| 
       79 
77 
     | 
    
         
             
              return {
         
     | 
| 
       80 
78 
     | 
    
         
             
                isDisabled,
         
     | 
| 
         @@ -140,11 +138,9 @@ var useResizableItem = ({ 
     | 
|
| 
       140 
138 
     | 
    
         
             
                [innerProps]
         
     | 
| 
       141 
139 
     | 
    
         
             
              );
         
     | 
| 
       142 
140 
     | 
    
         
             
              (0, import_react.useEffect)(() => {
         
     | 
| 
       143 
     | 
    
         
            -
                if (!id)
         
     | 
| 
       144 
     | 
    
         
            -
                  return;
         
     | 
| 
      
 141 
     | 
    
         
            +
                if (!id) return;
         
     | 
| 
       145 
142 
     | 
    
         
             
                const el = (0, import_react_resizable_panels.getPanelElement)(id);
         
     | 
| 
       146 
     | 
    
         
            -
                if (ref)
         
     | 
| 
       147 
     | 
    
         
            -
                  ref.current = el;
         
     | 
| 
      
 143 
     | 
    
         
            +
                if (ref) ref.current = el;
         
     | 
| 
       148 
144 
     | 
    
         
             
              }, [ref, id]);
         
     | 
| 
       149 
145 
     | 
    
         
             
              return {
         
     | 
| 
       150 
146 
     | 
    
         
             
                getPanelProps,
         
     | 
| 
         @@ -190,11 +186,9 @@ var useResizableTrigger = ({ 
     | 
|
| 
       190 
186 
     | 
    
         
             
                [isActive]
         
     | 
| 
       191 
187 
     | 
    
         
             
              );
         
     | 
| 
       192 
188 
     | 
    
         
             
              (0, import_react.useEffect)(() => {
         
     | 
| 
       193 
     | 
    
         
            -
                if (!id)
         
     | 
| 
       194 
     | 
    
         
            -
                  return;
         
     | 
| 
      
 189 
     | 
    
         
            +
                if (!id) return;
         
     | 
| 
       195 
190 
     | 
    
         
             
                const el = (0, import_react_resizable_panels.getResizeHandleElement)(id);
         
     | 
| 
       196 
     | 
    
         
            -
                if (ref)
         
     | 
| 
       197 
     | 
    
         
            -
                  ref.current = el;
         
     | 
| 
      
 191 
     | 
    
         
            +
                if (ref) ref.current = el;
         
     | 
| 
       198 
192 
     | 
    
         
             
              }, [ref, id]);
         
     | 
| 
       199 
193 
     | 
    
         
             
              return {
         
     | 
| 
       200 
194 
     | 
    
         
             
                getTriggerProps,
         
     | 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"sources":["../src/use-resizable.ts"],"sourcesContent":["import type { CSSUIObject, HTMLUIProps, UIPropGetter } from \"@yamada-ui/core\"\nimport type { PropGetter } from \"@yamada-ui/utils\"\nimport { createContext, dataAttr, handlerAll } from \"@yamada-ui/utils\"\nimport type { ForwardedRef, RefObject } from \"react\"\nimport { useCallback, useEffect, useId, useState } from \"react\"\nimport {\n  getPanelElement,\n  getPanelGroupElement,\n  getResizeHandleElement,\n} from \"react-resizable-panels\"\nimport type {\n  PanelResizeHandleProps,\n  PanelGroupProps,\n  PanelProps,\n  PanelGroupOnLayout,\n  PanelGroupStorage,\n  ImperativePanelHandle,\n} from \"react-resizable-panels\"\n\ntype GroupPropGetter = (props?: Partial<PanelGroupProps>) => PanelGroupProps\ntype ItemPropGetter = (props?: HTMLUIProps<\"div\"> & PanelProps) => PanelProps\ntype TriggerPropGetter = (\n  props?: PanelResizeHandleProps,\n) => PanelResizeHandleProps\n\ntype As = { as?: keyof HTMLElementTagNameMap }\n\ntype ResizableGroupProps = Omit<\n  Partial<PanelGroupProps>,\n  \"id\" | \"tagName\" | \"children\"\n> &\n  As\ntype ResizableItemProps = Omit<PanelProps, \"id\" | \"tagName\" | \"children\"> & As\ntype ResizableTriggerProps = Omit<\n  PanelResizeHandleProps,\n  \"id\" | \"tagName\" | \"children\"\n> &\n  As\n\nexport type ResizableStorage = PanelGroupStorage\nexport type ResizableItemControl = ImperativePanelHandle\n\ntype ResizableContext = {\n  isDisabled: boolean\n  styles: Record<string, CSSUIObject>\n}\n\nexport const [ResizableProvider, useResizableContext] =\n  createContext<ResizableContext>({\n    name: \"ResizableContext\",\n    errorMessage: `useResizableContext returned is 'undefined'. Seems you forgot to wrap the components in \"<Resizable />\"`,\n  })\n\nexport type UseResizableProps = {\n  /**\n   * id assigned to resizable element.\n   */\n  id?: string\n  /**\n   * Ref for resizable element.\n   */\n  ref?: ForwardedRef<HTMLElement>\n  /**\n   * The direction of the resizable.\n   *\n   * @default \"horizontal\"\n   */\n  direction?: \"horizontal\" | \"vertical\"\n  /**\n   * If `true`, the resizable trigger will be disabled.\n   */\n  isDisabled?: boolean\n  /**\n   * Unit to resize by keyboard operation.\n   *\n   * @default 10\n   */\n  keyboardStep?: number\n  /**\n   * Key of value saved in storage.\n   * By default, it is saved to `local storage`.\n   */\n  storageKey?: string\n  /**\n   * A callback that gets and sets a value in custom storage.\n   */\n  storage?: PanelGroupStorage\n  /**\n   * The callback invoked when resizable items are resized.\n   */\n  onLayout?: PanelGroupOnLayout\n  /**\n   * Props for resizable component.\n   */\n  groupProps?: ResizableGroupProps\n}\n\nexport const useResizable = ({\n  id,\n  direction = \"horizontal\",\n  storageKey,\n  keyboardStep,\n  isDisabled = false,\n  onLayout,\n  storage,\n  ref,\n  groupProps,\n  ...rest\n}: UseResizableProps) => {\n  id ??= useId()\n\n  const getContainerProps: PropGetter = useCallback(\n    (props = {}, ref = null) => ({ ...props, ref, ...rest }),\n    [rest],\n  )\n\n  const getGroupProps: GroupPropGetter = useCallback(\n    (props = {}) => {\n      const { as, ...rest } = groupProps ?? {}\n\n      return {\n        ...props,\n        id,\n        direction,\n        tagName: as,\n        autoSaveId: storageKey,\n        keyboardResizeBy: keyboardStep,\n        onLayout,\n        storage,\n        ...rest,\n      }\n    },\n    [id, direction, groupProps, storageKey, keyboardStep, onLayout, storage],\n  )\n\n  useEffect(() => {\n    if (!id) return\n\n    const el = getPanelGroupElement(id)\n\n    // @ts-expect-error\n    if (ref) ref.current = el\n  }, [ref, id])\n\n  return {\n    isDisabled,\n    getContainerProps,\n    getGroupProps,\n  }\n}\n\nexport type UseResizableReturn = ReturnType<typeof useResizable>\n\ntype UseResizableItemOptions = {\n  /**\n   * id assigned to resizable item element.\n   */\n  id?: string\n  /**\n   * Ref for resizable item element.\n   */\n  ref?: ForwardedRef<HTMLElement>\n  /**\n   * If `true`, the resizable item can be collapsed.\n   *\n   * @default false\n   */\n  collapsible?: boolean\n  /**\n   * The collapsed size of the resizable item.\n   */\n  collapsedSize?: number\n  /**\n   * The initial size of the resizable item.\n   */\n  defaultSize?: number\n  /**\n   * The minimum allowed value of the resizable item.\n   */\n  minSize?: number\n  /**\n   * The maximum allowed value of the resizable item.\n   */\n  maxSize?: number\n  /**\n   * The callback invoked when resizable item are collapsed.\n   */\n  onCollapse?: () => void\n  /**\n   * The callback invoked when resizable item are expanded.\n   */\n  onExpand?: () => void\n  /**\n   * The callback invoked when resizable item are resized.\n   */\n  onResize?: (size: number, prevSize: number | undefined) => void\n  /**\n   * Order for the resizable item.\n   */\n  order?: number\n  /**\n   * Ref of the resizable item callback.\n   */\n  controlRef?: RefObject<ResizableItemControl>\n  /**\n   * Props for resizable item container element.\n   */\n  containerProps?: Omit<HTMLUIProps<\"div\">, \"as\"> & ResizableItemProps\n}\n\nexport type UseResizableItemProps = Omit<\n  HTMLUIProps<\"div\">,\n  keyof UseResizableItemOptions\n> &\n  UseResizableItemOptions\n\nexport const useResizableItem = ({\n  id,\n  ref,\n  collapsedSize,\n  collapsible,\n  defaultSize,\n  maxSize,\n  minSize,\n  onCollapse,\n  onExpand,\n  onResize,\n  order,\n  controlRef,\n  containerProps,\n  ...innerProps\n}: UseResizableItemProps) => {\n  id ??= useId()\n\n  const getPanelProps: ItemPropGetter = useCallback(\n    (props = {}) => {\n      const { as, ...rest } = containerProps ?? {}\n\n      return {\n        ...props,\n        ref: controlRef,\n        id,\n        tagName: as,\n        collapsible,\n        defaultSize,\n        maxSize,\n        minSize,\n        collapsedSize,\n        onCollapse,\n        onExpand,\n        onResize,\n        order,\n        ...(collapsible ? { \"aria-labelledby\": id } : { \"aria-label\": id }),\n        ...rest,\n      }\n    },\n    [\n      id,\n      controlRef,\n      containerProps,\n      collapsedSize,\n      collapsible,\n      defaultSize,\n      maxSize,\n      minSize,\n      onCollapse,\n      onExpand,\n      onResize,\n      order,\n    ],\n  )\n\n  const getItemProps: UIPropGetter = useCallback(\n    (props = {}, ref = null) => ({ ...props, ref, ...innerProps }),\n    [innerProps],\n  )\n\n  useEffect(() => {\n    if (!id) return\n\n    const el = getPanelElement(id)\n\n    // @ts-expect-error\n    if (ref) ref.current = el\n  }, [ref, id])\n\n  return {\n    getPanelProps,\n    getItemProps,\n  }\n}\n\nexport type UseResizableItemReturn = ReturnType<typeof useResizableItem>\n\ntype UseResizableTriggerOptions = {\n  /**\n   * id assigned to resizable trigger element.\n   */\n  id?: string\n  /**\n   * Ref for resizable trigger element.\n   */\n  ref?: ForwardedRef<HTMLElement>\n  /**\n   * If `true`, the resizable trigger will be disabled.\n   *\n   * @default false\n   */\n  isDisabled?: boolean\n  /**\n   * The callback invoked when resizable trigger are dragged.\n   */\n  onDragging?: (isDragging: boolean) => void\n}\n\nexport type UseResizableTriggerProps = HTMLUIProps<\"div\"> &\n  ResizableTriggerProps &\n  UseResizableTriggerOptions\n\nexport const useResizableTrigger = ({\n  id,\n  ref,\n  as,\n  disabled,\n  isDisabled,\n  onDragging,\n  ...rest\n}: UseResizableTriggerProps) => {\n  id ??= useId()\n\n  const { isDisabled: isGroupDisabled } = useResizableContext()\n  const [isActive, setIsActive] = useState<boolean>(false)\n\n  const trulyDisabled = disabled || isDisabled || isGroupDisabled\n\n  const getTriggerProps: TriggerPropGetter = useCallback(\n    (props = {}) => ({\n      ...props,\n      id,\n      tagName: as,\n      disabled: trulyDisabled,\n      onDragging: handlerAll(onDragging, (isActive) => setIsActive(isActive)),\n      ...rest,\n      \"data-active\": dataAttr(isActive),\n      style: {\n        ...props.style,\n        ...rest.style,\n        ...(trulyDisabled ? { cursor: \"default\" } : {}),\n      },\n    }),\n    [id, as, trulyDisabled, onDragging, rest, isActive],\n  )\n\n  const getIconProps: UIPropGetter = useCallback(\n    (props = {}, ref = null) => ({\n      ...props,\n      ref,\n      \"data-active\": dataAttr(isActive),\n    }),\n    [isActive],\n  )\n\n  useEffect(() => {\n    if (!id) return\n\n    const el = getResizeHandleElement(id)\n\n    // @ts-expect-error\n    if (ref) ref.current = el\n  }, [ref, id])\n\n  return {\n    getTriggerProps,\n    getIconProps,\n  }\n}\n\nexport type UseResizableTriggerReturn = ReturnType<typeof useResizableTrigger>\n"],"mappings":"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","names":["ref","rest","isActive"]}
         
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"sources":["../src/use-resizable.ts"],"sourcesContent":["import type { CSSUIObject, HTMLUIProps, UIPropGetter } from \"@yamada-ui/core\"\nimport type { PropGetter } from \"@yamada-ui/utils\"\nimport { createContext, dataAttr, handlerAll } from \"@yamada-ui/utils\"\nimport type { ForwardedRef, RefObject } from \"react\"\nimport { useCallback, useEffect, useId, useState } from \"react\"\nimport {\n  getPanelElement,\n  getPanelGroupElement,\n  getResizeHandleElement,\n} from \"react-resizable-panels\"\nimport type {\n  PanelResizeHandleProps,\n  PanelGroupProps,\n  PanelProps,\n  PanelGroupOnLayout,\n  PanelGroupStorage,\n  ImperativePanelHandle,\n} from \"react-resizable-panels\"\n\ntype GroupPropGetter = (props?: Partial<PanelGroupProps>) => PanelGroupProps\ntype ItemPropGetter = (props?: HTMLUIProps<\"div\"> & PanelProps) => PanelProps\ntype TriggerPropGetter = (\n  props?: PanelResizeHandleProps,\n) => PanelResizeHandleProps\n\ntype As = { as?: keyof HTMLElementTagNameMap }\n\ntype ResizableGroupProps = Omit<\n  Partial<PanelGroupProps>,\n  \"id\" | \"tagName\" | \"children\"\n> &\n  As\ntype ResizableItemProps = Omit<PanelProps, \"id\" | \"tagName\" | \"children\"> & As\ntype ResizableTriggerProps = Omit<\n  PanelResizeHandleProps,\n  \"id\" | \"tagName\" | \"children\"\n> &\n  As\n\nexport type ResizableStorage = PanelGroupStorage\nexport type ResizableItemControl = ImperativePanelHandle\n\ntype ResizableContext = {\n  isDisabled: boolean\n  styles: Record<string, CSSUIObject>\n}\n\nexport const [ResizableProvider, useResizableContext] =\n  createContext<ResizableContext>({\n    name: \"ResizableContext\",\n    errorMessage: `useResizableContext returned is 'undefined'. Seems you forgot to wrap the components in \"<Resizable />\"`,\n  })\n\nexport type UseResizableProps = {\n  /**\n   * id assigned to resizable element.\n   */\n  id?: string\n  /**\n   * Ref for resizable element.\n   */\n  ref?: ForwardedRef<HTMLElement>\n  /**\n   * The direction of the resizable.\n   *\n   * @default \"horizontal\"\n   */\n  direction?: \"horizontal\" | \"vertical\"\n  /**\n   * If `true`, the resizable trigger will be disabled.\n   */\n  isDisabled?: boolean\n  /**\n   * Unit to resize by keyboard operation.\n   *\n   * @default 10\n   */\n  keyboardStep?: number\n  /**\n   * Key of value saved in storage.\n   * By default, it is saved to `local storage`.\n   */\n  storageKey?: string\n  /**\n   * A callback that gets and sets a value in custom storage.\n   */\n  storage?: PanelGroupStorage\n  /**\n   * The callback invoked when resizable items are resized.\n   */\n  onLayout?: PanelGroupOnLayout\n  /**\n   * Props for resizable component.\n   */\n  groupProps?: ResizableGroupProps\n}\n\nexport const useResizable = ({\n  id,\n  direction = \"horizontal\",\n  storageKey,\n  keyboardStep,\n  isDisabled = false,\n  onLayout,\n  storage,\n  ref,\n  groupProps,\n  ...rest\n}: UseResizableProps) => {\n  id ??= useId()\n\n  const getContainerProps: PropGetter = useCallback(\n    (props = {}, ref = null) => ({ ...props, ref, ...rest }),\n    [rest],\n  )\n\n  const getGroupProps: GroupPropGetter = useCallback(\n    (props = {}) => {\n      const { as, ...rest } = groupProps ?? {}\n\n      return {\n        ...props,\n        id,\n        direction,\n        tagName: as,\n        autoSaveId: storageKey,\n        keyboardResizeBy: keyboardStep,\n        onLayout,\n        storage,\n        ...rest,\n      }\n    },\n    [id, direction, groupProps, storageKey, keyboardStep, onLayout, storage],\n  )\n\n  useEffect(() => {\n    if (!id) return\n\n    const el = getPanelGroupElement(id)\n\n    // @ts-expect-error\n    if (ref) ref.current = el\n  }, [ref, id])\n\n  return {\n    isDisabled,\n    getContainerProps,\n    getGroupProps,\n  }\n}\n\nexport type UseResizableReturn = ReturnType<typeof useResizable>\n\ntype UseResizableItemOptions = {\n  /**\n   * id assigned to resizable item element.\n   */\n  id?: string\n  /**\n   * Ref for resizable item element.\n   */\n  ref?: ForwardedRef<HTMLElement>\n  /**\n   * If `true`, the resizable item can be collapsed.\n   *\n   * @default false\n   */\n  collapsible?: boolean\n  /**\n   * The collapsed size of the resizable item.\n   */\n  collapsedSize?: number\n  /**\n   * The initial size of the resizable item.\n   */\n  defaultSize?: number\n  /**\n   * The minimum allowed value of the resizable item.\n   */\n  minSize?: number\n  /**\n   * The maximum allowed value of the resizable item.\n   */\n  maxSize?: number\n  /**\n   * The callback invoked when resizable item are collapsed.\n   */\n  onCollapse?: () => void\n  /**\n   * The callback invoked when resizable item are expanded.\n   */\n  onExpand?: () => void\n  /**\n   * The callback invoked when resizable item are resized.\n   */\n  onResize?: (size: number, prevSize: number | undefined) => void\n  /**\n   * Order for the resizable item.\n   */\n  order?: number\n  /**\n   * Ref of the resizable item callback.\n   */\n  controlRef?: RefObject<ResizableItemControl>\n  /**\n   * Props for resizable item container element.\n   */\n  containerProps?: Omit<HTMLUIProps<\"div\">, \"as\"> & ResizableItemProps\n}\n\nexport type UseResizableItemProps = Omit<\n  HTMLUIProps<\"div\">,\n  keyof UseResizableItemOptions\n> &\n  UseResizableItemOptions\n\nexport const useResizableItem = ({\n  id,\n  ref,\n  collapsedSize,\n  collapsible,\n  defaultSize,\n  maxSize,\n  minSize,\n  onCollapse,\n  onExpand,\n  onResize,\n  order,\n  controlRef,\n  containerProps,\n  ...innerProps\n}: UseResizableItemProps) => {\n  id ??= useId()\n\n  const getPanelProps: ItemPropGetter = useCallback(\n    (props = {}) => {\n      const { as, ...rest } = containerProps ?? {}\n\n      return {\n        ...props,\n        ref: controlRef,\n        id,\n        tagName: as,\n        collapsible,\n        defaultSize,\n        maxSize,\n        minSize,\n        collapsedSize,\n        onCollapse,\n        onExpand,\n        onResize,\n        order,\n        ...(collapsible ? { \"aria-labelledby\": id } : { \"aria-label\": id }),\n        ...rest,\n      }\n    },\n    [\n      id,\n      controlRef,\n      containerProps,\n      collapsedSize,\n      collapsible,\n      defaultSize,\n      maxSize,\n      minSize,\n      onCollapse,\n      onExpand,\n      onResize,\n      order,\n    ],\n  )\n\n  const getItemProps: UIPropGetter = useCallback(\n    (props = {}, ref = null) => ({ ...props, ref, ...innerProps }),\n    [innerProps],\n  )\n\n  useEffect(() => {\n    if (!id) return\n\n    const el = getPanelElement(id)\n\n    // @ts-expect-error\n    if (ref) ref.current = el\n  }, [ref, id])\n\n  return {\n    getPanelProps,\n    getItemProps,\n  }\n}\n\nexport type UseResizableItemReturn = ReturnType<typeof useResizableItem>\n\ntype UseResizableTriggerOptions = {\n  /**\n   * id assigned to resizable trigger element.\n   */\n  id?: string\n  /**\n   * Ref for resizable trigger element.\n   */\n  ref?: ForwardedRef<HTMLElement>\n  /**\n   * If `true`, the resizable trigger will be disabled.\n   *\n   * @default false\n   */\n  isDisabled?: boolean\n  /**\n   * The callback invoked when resizable trigger are dragged.\n   */\n  onDragging?: (isDragging: boolean) => void\n}\n\nexport type UseResizableTriggerProps = HTMLUIProps<\"div\"> &\n  ResizableTriggerProps &\n  UseResizableTriggerOptions\n\nexport const useResizableTrigger = ({\n  id,\n  ref,\n  as,\n  disabled,\n  isDisabled,\n  onDragging,\n  ...rest\n}: UseResizableTriggerProps) => {\n  id ??= useId()\n\n  const { isDisabled: isGroupDisabled } = useResizableContext()\n  const [isActive, setIsActive] = useState<boolean>(false)\n\n  const trulyDisabled = disabled || isDisabled || isGroupDisabled\n\n  const getTriggerProps: TriggerPropGetter = useCallback(\n    (props = {}) => ({\n      ...props,\n      id,\n      tagName: as,\n      disabled: trulyDisabled,\n      onDragging: handlerAll(onDragging, (isActive) => setIsActive(isActive)),\n      ...rest,\n      \"data-active\": dataAttr(isActive),\n      style: {\n        ...props.style,\n        ...rest.style,\n        ...(trulyDisabled ? { cursor: \"default\" } : {}),\n      },\n    }),\n    [id, as, trulyDisabled, onDragging, rest, isActive],\n  )\n\n  const getIconProps: UIPropGetter = useCallback(\n    (props = {}, ref = null) => ({\n      ...props,\n      ref,\n      \"data-active\": dataAttr(isActive),\n    }),\n    [isActive],\n  )\n\n  useEffect(() => {\n    if (!id) return\n\n    const el = getResizeHandleElement(id)\n\n    // @ts-expect-error\n    if (ref) ref.current = el\n  }, [ref, id])\n\n  return {\n    getTriggerProps,\n    getIconProps,\n  }\n}\n\nexport type UseResizableTriggerReturn = ReturnType<typeof useResizableTrigger>\n"],"mappings":"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","names":["ref","rest","isActive"]}
         
     | 
    
        package/dist/use-resizable.mjs
    CHANGED
    
    
    
        package/package.json
    CHANGED
    
    | 
         @@ -1,6 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            {
         
     | 
| 
       2 
2 
     | 
    
         
             
              "name": "@yamada-ui/resizable",
         
     | 
| 
       3 
     | 
    
         
            -
              "version": "1.1. 
     | 
| 
      
 3 
     | 
    
         
            +
              "version": "1.1.1-dev-20240614135711",
         
     | 
| 
       4 
4 
     | 
    
         
             
              "description": "Yamada UI resizable component",
         
     | 
| 
       5 
5 
     | 
    
         
             
              "keywords": [
         
     | 
| 
       6 
6 
     | 
    
         
             
                "yamada",
         
     | 
| 
         @@ -37,8 +37,8 @@ 
     | 
|
| 
       37 
37 
     | 
    
         
             
              },
         
     | 
| 
       38 
38 
     | 
    
         
             
              "dependencies": {
         
     | 
| 
       39 
39 
     | 
    
         
             
                "react-resizable-panels": "^2.0.8",
         
     | 
| 
       40 
     | 
    
         
            -
                "@yamada-ui/core": "1.7. 
     | 
| 
       41 
     | 
    
         
            -
                "@yamada-ui/icon": "1.0. 
     | 
| 
      
 40 
     | 
    
         
            +
                "@yamada-ui/core": "1.7.2-dev-20240614135711",
         
     | 
| 
      
 41 
     | 
    
         
            +
                "@yamada-ui/icon": "1.0.28-dev-20240614135711",
         
     | 
| 
       42 
42 
     | 
    
         
             
                "@yamada-ui/utils": "1.2.1"
         
     | 
| 
       43 
43 
     | 
    
         
             
              },
         
     | 
| 
       44 
44 
     | 
    
         
             
              "devDependencies": {
         
     | 
| 
         
            File without changes
         
     | 
| 
         
            File without changes
         
     | 
| 
         
            File without changes
         
     |