{"version":3,"file":"DraggablePanel.mjs","names":[],"sources":["../../../src/base-ui/DraggablePanel/DraggablePanel.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport { memo, useCallback } from 'react';\n\nimport {\n  DraggablePanelContent,\n  DraggablePanelHandle,\n  DraggablePanelRoot,\n  DraggablePanelToggle,\n} from './atoms';\nimport { AXES } from './core/axes';\nimport type { DraggablePanelProps, DraggablePanelSize } from './type';\n\nconst toNumber = (value: number | string | undefined) =>\n  typeof value === 'number' ? Math.max(value, 0) : undefined;\n\nconst DraggablePanel = memo<DraggablePanelProps>(\n  ({\n    backgroundColor,\n    children,\n    className,\n    classNames,\n    collapseThreshold,\n    defaultExpand,\n    defaultSize,\n    expand,\n    expandable = true,\n    maxHeight,\n    maxWidth,\n    minHeight,\n    minWidth,\n    mode = 'fixed',\n    onExpandChange,\n    onSizeChange,\n    onSizeDragging,\n    placement = 'right',\n    showBorder = true,\n    showHandleWhenCollapsed,\n    showHandleWideArea = true,\n    size,\n    style,\n    styles: customStyles,\n    ...rest\n  }) => {\n    const { vertical } = AXES[placement];\n\n    const toSize = useCallback(\n      (value: number): DraggablePanelSize =>\n        vertical ? { height: value, width: '100%' } : { height: '100%', width: value },\n      [vertical],\n    );\n    const toDelta = useCallback(\n      (value: number): DraggablePanelSize =>\n        vertical ? { height: value, width: 0 } : { height: 0, width: value },\n      [vertical],\n    );\n\n    const handleSizeChange = useCallback(\n      (next: number, delta: number) => onSizeChange?.(toDelta(delta), toSize(next)),\n      [onSizeChange, toDelta, toSize],\n    );\n    const handleSizeDragging = useCallback(\n      (next: number, delta: number) => onSizeDragging?.(toDelta(delta), toSize(next)),\n      [onSizeDragging, toDelta, toSize],\n    );\n\n    return (\n      <DraggablePanelRoot\n        backgroundColor={backgroundColor}\n        className={className}\n        collapseThreshold={collapseThreshold}\n        defaultExpand={defaultExpand}\n        defaultSize={toNumber(vertical ? defaultSize?.height : defaultSize?.width)}\n        expand={expand}\n        expandable={expandable}\n        max={toNumber(vertical ? maxHeight : maxWidth)}\n        min={toNumber(vertical ? minHeight : minWidth) ?? 0}\n        mode={mode}\n        placement={placement}\n        showBorder={showBorder}\n        size={toNumber(vertical ? size?.height : size?.width)}\n        onExpandChange={onExpandChange}\n        onSizeChange={handleSizeChange}\n        onSizeDragging={handleSizeDragging}\n        {...rest}\n      >\n        <DraggablePanelToggle showHandleWhenCollapsed={showHandleWhenCollapsed} />\n        <DraggablePanelContent\n          className={cx(classNames?.content)}\n          style={{ ...customStyles?.content, ...style }}\n        >\n          {children}\n        </DraggablePanelContent>\n        <DraggablePanelHandle wideArea={showHandleWideArea} />\n      </DraggablePanelRoot>\n    );\n  },\n);\n\nDraggablePanel.displayName = 'DraggablePanel';\n\nexport default DraggablePanel;\n"],"mappings":";;;;;;;AAcA,MAAM,YAAY,UAChB,OAAO,UAAU,WAAW,KAAK,IAAI,OAAO,CAAC,IAAI,KAAA;AAEnD,MAAM,iBAAiB,MACpB,EACC,iBACA,UACA,WACA,YACA,mBACA,eACA,aACA,QACA,aAAa,MACb,WACA,UACA,WACA,UACA,OAAO,SACP,gBACA,cACA,gBACA,YAAY,SACZ,aAAa,MACb,yBACA,qBAAqB,MACrB,MACA,OACA,QAAQ,cACR,GAAG,WACC;CACJ,MAAM,EAAE,aAAa,KAAK;CAE1B,MAAM,SAAS,aACZ,UACC,WAAW;EAAE,QAAQ;EAAO,OAAO;CAAO,IAAI;EAAE,QAAQ;EAAQ,OAAO;CAAM,GAC/E,CAAC,QAAQ,CACX;CACA,MAAM,UAAU,aACb,UACC,WAAW;EAAE,QAAQ;EAAO,OAAO;CAAE,IAAI;EAAE,QAAQ;EAAG,OAAO;CAAM,GACrE,CAAC,QAAQ,CACX;CAEA,MAAM,mBAAmB,aACtB,MAAc,UAAkB,eAAe,QAAQ,KAAK,GAAG,OAAO,IAAI,CAAC,GAC5E;EAAC;EAAc;EAAS;CAAM,CAChC;CACA,MAAM,qBAAqB,aACxB,MAAc,UAAkB,iBAAiB,QAAQ,KAAK,GAAG,OAAO,IAAI,CAAC,GAC9E;EAAC;EAAgB;EAAS;CAAM,CAClC;CAEA,OACE,qBAAC,oBAAD;EACmB;EACN;EACQ;EACJ;EACf,aAAa,SAAS,WAAW,aAAa,SAAS,aAAa,KAAK;EACjE;EACI;EACZ,KAAK,SAAS,WAAW,YAAY,QAAQ;EAC7C,KAAK,SAAS,WAAW,YAAY,QAAQ,KAAK;EAC5C;EACK;EACC;EACZ,MAAM,SAAS,WAAW,MAAM,SAAS,MAAM,KAAK;EACpC;EAChB,cAAc;EACd,gBAAgB;EAChB,GAAI;EAjBN,UAAA;GAmBE,oBAAC,sBAAD,EAA+C,wBAA0B,CAAA;GACzE,oBAAC,uBAAD;IACE,WAAW,GAAG,YAAY,OAAO;IACjC,OAAO;KAAE,GAAG,cAAc;KAAS,GAAG;IAAM;IAE3C;GACoB,CAAA;GACvB,oBAAC,sBAAD,EAAsB,UAAU,mBAAqB,CAAA;EACnC;;AAExB,CACF;AAEA,eAAe,cAAc"}