{"version":3,"sources":["../src/legacy/ReactGridLayout.tsx","../src/legacy/ResponsiveReactGridLayout.tsx","../src/react/components/WidthProvider.tsx"],"names":["jsx","node"],"mappings":"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","file":"legacy.mjs","sourcesContent":["/**\n * Legacy ReactGridLayout wrapper\n *\n * This component wraps the new TypeScript GridLayout to provide\n * backwards compatibility with the v1 API by converting flat props\n * to the new composable interface format.\n */\n\nimport React from \"react\";\nimport {\n  GridLayout,\n  type GridLayoutProps\n} from \"../react/components/GridLayout.js\";\nimport type {\n  Layout,\n  LayoutItem,\n  CompactType,\n  ResizeHandleAxis,\n  GridConfig,\n  DragConfig,\n  ResizeConfig,\n  DropConfig,\n  PositionStrategy\n} from \"../core/types.js\";\nimport { getCompactor } from \"../core/compactors.js\";\nimport {\n  transformStrategy,\n  absoluteStrategy,\n  createScaledStrategy\n} from \"../core/position.js\";\n\n// ============================================================================\n// Legacy Props Interface\n// ============================================================================\n\n/**\n * Legacy props interface for backwards compatibility with v1 API.\n * These flat props are converted to composable interfaces internally.\n */\nexport interface LegacyReactGridLayoutProps {\n  // Required\n  children: React.ReactNode;\n  width: number;\n\n  // Grid measurement (→ gridConfig)\n  cols?: number;\n  rowHeight?: number;\n  maxRows?: number;\n  margin?: readonly [number, number];\n  containerPadding?: readonly [number, number] | null;\n\n  // Layout data\n  layout?: Layout;\n  droppingItem?: LayoutItem;\n\n  // Compaction (→ compactor)\n  compactType?: CompactType;\n  preventCollision?: boolean;\n  allowOverlap?: boolean;\n  /** @deprecated Use compactType instead */\n  verticalCompact?: boolean;\n\n  // Drag behavior (→ dragConfig)\n  isDraggable?: boolean;\n  isBounded?: boolean;\n  draggableHandle?: string;\n  draggableCancel?: string;\n\n  // Resize behavior (→ resizeConfig)\n  isResizable?: boolean;\n  resizeHandles?: ResizeHandleAxis[];\n  resizeHandle?:\n    | React.ReactElement\n    | ((\n        axis: ResizeHandleAxis,\n        ref: React.Ref<HTMLElement>\n      ) => React.ReactElement);\n\n  // Drop behavior (→ dropConfig)\n  isDroppable?: boolean;\n\n  // Position (→ positionStrategy)\n  useCSSTransforms?: boolean;\n  transformScale?: number;\n\n  // Container props (passed through)\n  autoSize?: boolean;\n  className?: string;\n  style?: React.CSSProperties;\n  innerRef?: React.Ref<HTMLDivElement>;\n\n  // Callbacks (passed through)\n  onLayoutChange?: (layout: Layout) => void;\n  onDragStart?: GridLayoutProps[\"onDragStart\"];\n  onDrag?: GridLayoutProps[\"onDrag\"];\n  onDragStop?: GridLayoutProps[\"onDragStop\"];\n  onResizeStart?: GridLayoutProps[\"onResizeStart\"];\n  onResize?: GridLayoutProps[\"onResize\"];\n  onResizeStop?: GridLayoutProps[\"onResizeStop\"];\n  onDrop?: (layout: Layout, item: LayoutItem | undefined, e: Event) => void;\n  onDropDragOver?: (\n    e: React.DragEvent\n  ) => { w?: number; h?: number } | false | void;\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * ReactGridLayout - Legacy wrapper component\n *\n * Converts v1 flat props to v2 composable interfaces for backwards compatibility.\n */\nfunction ReactGridLayout(props: LegacyReactGridLayoutProps) {\n  const {\n    // Required\n    children,\n    width,\n\n    // Grid measurement\n    cols = 12,\n    rowHeight = 150,\n    maxRows = Infinity,\n    margin = [10, 10],\n    containerPadding = null,\n\n    // Layout data\n    layout,\n    droppingItem,\n\n    // Compaction\n    compactType: compactTypeProp,\n    preventCollision = false,\n    allowOverlap = false,\n    verticalCompact,\n\n    // Drag behavior\n    isDraggable = true,\n    isBounded = false,\n    draggableHandle,\n    draggableCancel,\n\n    // Resize behavior\n    isResizable = true,\n    resizeHandles = [\"se\"],\n    resizeHandle,\n\n    // Drop behavior\n    isDroppable = false,\n\n    // Position\n    useCSSTransforms = true,\n    transformScale = 1,\n\n    // Container props\n    autoSize,\n    className,\n    style,\n    innerRef,\n\n    // Callbacks\n    onLayoutChange,\n    onDragStart,\n    onDrag,\n    onDragStop,\n    onResizeStart,\n    onResize,\n    onResizeStop,\n    onDrop,\n    onDropDragOver\n  } = props;\n\n  // Handle deprecated verticalCompact prop\n  let compactType: CompactType =\n    compactTypeProp === undefined ? \"vertical\" : compactTypeProp;\n  if (verticalCompact === false) {\n    if (process.env[\"NODE_ENV\"] !== \"production\") {\n      console.warn(\n        \"`verticalCompact` on <ReactGridLayout> is deprecated and will be removed soon. \" +\n          'Use `compactType`: \"horizontal\" | \"vertical\" | null.'\n      );\n    }\n    compactType = null;\n  }\n\n  // Convert flat props to composable interfaces\n\n  const gridConfig: Partial<GridConfig> = {\n    cols,\n    rowHeight,\n    maxRows,\n    margin,\n    containerPadding\n  };\n\n  const dragConfig: Partial<DragConfig> = {\n    enabled: isDraggable,\n    bounded: isBounded,\n    handle: draggableHandle,\n    cancel: draggableCancel\n  };\n\n  const resizeConfig: Partial<ResizeConfig> = {\n    enabled: isResizable,\n    handles: resizeHandles,\n    handleComponent: resizeHandle\n  };\n\n  const dropConfig: Partial<DropConfig> = {\n    enabled: isDroppable\n  };\n\n  // Build position strategy\n  let positionStrategy: PositionStrategy;\n  if (!useCSSTransforms) {\n    positionStrategy = absoluteStrategy;\n  } else if (transformScale !== 1) {\n    positionStrategy = createScaledStrategy(transformScale);\n  } else {\n    positionStrategy = transformStrategy;\n  }\n\n  // Get compactor from type and options\n  const compactor = getCompactor(compactType, allowOverlap, preventCollision);\n\n  return (\n    <GridLayout\n      width={width}\n      gridConfig={gridConfig}\n      dragConfig={dragConfig}\n      resizeConfig={resizeConfig}\n      dropConfig={dropConfig}\n      positionStrategy={positionStrategy}\n      compactor={compactor}\n      layout={layout}\n      droppingItem={droppingItem}\n      autoSize={autoSize}\n      className={className}\n      style={style}\n      innerRef={innerRef}\n      onLayoutChange={onLayoutChange}\n      onDragStart={onDragStart}\n      onDrag={onDrag}\n      onDragStop={onDragStop}\n      onResizeStart={onResizeStart}\n      onResize={onResize}\n      onResizeStop={onResizeStop}\n      onDrop={onDrop}\n      onDropDragOver={onDropDragOver}\n    >\n      {children}\n    </GridLayout>\n  );\n}\n\n// Static properties for backwards compatibility\nReactGridLayout.displayName = \"ReactGridLayout\";\n\nexport default ReactGridLayout;\nexport { ReactGridLayout };\n","/**\n * Legacy ResponsiveReactGridLayout wrapper\n *\n * This component wraps the new TypeScript ResponsiveGridLayout to provide\n * backwards compatibility with the v1 API by converting flat props\n * to the new composable interface format.\n */\n\nimport React from \"react\";\nimport {\n  ResponsiveGridLayout,\n  type ResponsiveGridLayoutProps\n} from \"../react/components/ResponsiveGridLayout.js\";\nimport type {\n  Layout,\n  LayoutItem,\n  CompactType,\n  Breakpoint,\n  Breakpoints,\n  ResponsiveLayouts,\n  ResizeHandleAxis,\n  DragConfig,\n  ResizeConfig,\n  DropConfig,\n  PositionStrategy\n} from \"../core/types.js\";\nimport { getCompactor } from \"../core/compactors.js\";\nimport {\n  transformStrategy,\n  absoluteStrategy,\n  createScaledStrategy\n} from \"../core/position.js\";\n\n// ============================================================================\n// Legacy Props Interface\n// ============================================================================\n\n/**\n * Legacy props interface for backwards compatibility with v1 API.\n * These flat props are converted to composable interfaces internally.\n */\nexport interface LegacyResponsiveReactGridLayoutProps<\n  B extends Breakpoint = string\n> {\n  // Required\n  children: React.ReactNode;\n  width: number;\n\n  // Responsive-specific\n  breakpoint?: B;\n  breakpoints?: Breakpoints<B>;\n  cols?: Breakpoints<B>;\n  layouts?: ResponsiveLayouts<B>;\n  onBreakpointChange?: (newBreakpoint: B, cols: number) => void;\n  onLayoutChange?: (layout: Layout, layouts: ResponsiveLayouts<B>) => void;\n  onWidthChange?: (\n    containerWidth: number,\n    margin: readonly [number, number],\n    cols: number,\n    containerPadding: readonly [number, number] | null\n  ) => void;\n\n  // Grid measurement\n  rowHeight?: number;\n  maxRows?: number;\n  margin?:\n    | readonly [number, number]\n    | Partial<Record<B, readonly [number, number]>>;\n  containerPadding?:\n    | readonly [number, number]\n    | Partial<Record<B, readonly [number, number] | null>>\n    | null;\n\n  // Layout data\n  droppingItem?: LayoutItem;\n\n  // Compaction (→ compactor)\n  compactType?: CompactType;\n  preventCollision?: boolean;\n  allowOverlap?: boolean;\n  /** @deprecated Use compactType instead */\n  verticalCompact?: boolean;\n\n  // Drag behavior (→ dragConfig)\n  isDraggable?: boolean;\n  isBounded?: boolean;\n  draggableHandle?: string;\n  draggableCancel?: string;\n\n  // Resize behavior (→ resizeConfig)\n  isResizable?: boolean;\n  resizeHandles?: ResizeHandleAxis[];\n  resizeHandle?:\n    | React.ReactElement\n    | ((\n        axis: ResizeHandleAxis,\n        ref: React.Ref<HTMLElement>\n      ) => React.ReactElement);\n\n  // Drop behavior (→ dropConfig)\n  isDroppable?: boolean;\n\n  // Position (→ positionStrategy)\n  useCSSTransforms?: boolean;\n  transformScale?: number;\n\n  // Container props (passed through)\n  autoSize?: boolean;\n  className?: string;\n  style?: React.CSSProperties;\n  innerRef?: React.Ref<HTMLDivElement>;\n\n  // Callbacks (passed through)\n  onDragStart?: ResponsiveGridLayoutProps<B>[\"onDragStart\"];\n  onDrag?: ResponsiveGridLayoutProps<B>[\"onDrag\"];\n  onDragStop?: ResponsiveGridLayoutProps<B>[\"onDragStop\"];\n  onResizeStart?: ResponsiveGridLayoutProps<B>[\"onResizeStart\"];\n  onResize?: ResponsiveGridLayoutProps<B>[\"onResize\"];\n  onResizeStop?: ResponsiveGridLayoutProps<B>[\"onResizeStop\"];\n  onDrop?: (layout: Layout, item: LayoutItem | undefined, e: Event) => void;\n  onDropDragOver?: (\n    e: React.DragEvent\n  ) => { w?: number; h?: number } | false | void;\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * ResponsiveReactGridLayout - Legacy wrapper component\n *\n * Converts v1 flat props to v2 composable interfaces for backwards compatibility.\n */\nfunction ResponsiveReactGridLayout<B extends Breakpoint = string>(\n  props: LegacyResponsiveReactGridLayoutProps<B>\n) {\n  const {\n    // Required\n    children,\n    width,\n\n    // Responsive-specific\n    breakpoint,\n    breakpoints,\n    cols,\n    layouts,\n    onBreakpointChange,\n    onLayoutChange,\n    onWidthChange,\n\n    // Grid measurement\n    rowHeight,\n    maxRows,\n    margin,\n    containerPadding,\n\n    // Layout data\n    droppingItem,\n\n    // Compaction\n    compactType: compactTypeProp,\n    preventCollision = false,\n    allowOverlap = false,\n    verticalCompact,\n\n    // Drag behavior\n    isDraggable = true,\n    isBounded = false,\n    draggableHandle,\n    draggableCancel,\n\n    // Resize behavior\n    isResizable = true,\n    resizeHandles = [\"se\"],\n    resizeHandle,\n\n    // Drop behavior\n    isDroppable = false,\n\n    // Position\n    useCSSTransforms = true,\n    transformScale = 1,\n\n    // Container props\n    autoSize,\n    className,\n    style,\n    innerRef,\n\n    // Callbacks\n    onDragStart,\n    onDrag,\n    onDragStop,\n    onResizeStart,\n    onResize,\n    onResizeStop,\n    onDrop,\n    onDropDragOver\n  } = props;\n\n  // Handle deprecated verticalCompact prop\n  let compactType: CompactType =\n    compactTypeProp === undefined ? \"vertical\" : compactTypeProp;\n  if (verticalCompact === false) {\n    if (process.env[\"NODE_ENV\"] !== \"production\") {\n      console.warn(\n        \"`verticalCompact` on <ResponsiveReactGridLayout> is deprecated and will be removed soon. \" +\n          'Use `compactType`: \"horizontal\" | \"vertical\" | null.'\n      );\n    }\n    compactType = null;\n  }\n\n  // Convert flat props to composable interfaces\n\n  const dragConfig: Partial<DragConfig> = {\n    enabled: isDraggable,\n    bounded: isBounded,\n    handle: draggableHandle,\n    cancel: draggableCancel\n  };\n\n  const resizeConfig: Partial<ResizeConfig> = {\n    enabled: isResizable,\n    handles: resizeHandles,\n    handleComponent: resizeHandle\n  };\n\n  const dropConfig: Partial<DropConfig> = {\n    enabled: isDroppable\n  };\n\n  // Build position strategy\n  let positionStrategy: PositionStrategy;\n  if (!useCSSTransforms) {\n    positionStrategy = absoluteStrategy;\n  } else if (transformScale !== 1) {\n    positionStrategy = createScaledStrategy(transformScale);\n  } else {\n    positionStrategy = transformStrategy;\n  }\n\n  // Get compactor from type and options\n  const compactor = getCompactor(compactType, allowOverlap, preventCollision);\n\n  return (\n    <ResponsiveGridLayout<B>\n      width={width}\n      breakpoint={breakpoint}\n      breakpoints={breakpoints}\n      cols={cols}\n      layouts={layouts}\n      rowHeight={rowHeight}\n      maxRows={maxRows}\n      margin={margin}\n      containerPadding={containerPadding}\n      compactor={compactor}\n      dragConfig={dragConfig}\n      resizeConfig={resizeConfig}\n      dropConfig={dropConfig}\n      positionStrategy={positionStrategy}\n      droppingItem={droppingItem}\n      autoSize={autoSize}\n      className={className}\n      style={style}\n      innerRef={innerRef}\n      onBreakpointChange={onBreakpointChange}\n      onLayoutChange={onLayoutChange}\n      onWidthChange={onWidthChange}\n      onDragStart={onDragStart}\n      onDrag={onDrag}\n      onDragStop={onDragStop}\n      onResizeStart={onResizeStart}\n      onResize={onResize}\n      onResizeStop={onResizeStop}\n      onDrop={onDrop}\n      onDropDragOver={onDropDragOver}\n    >\n      {children}\n    </ResponsiveGridLayout>\n  );\n}\n\n// Static properties for backwards compatibility\nResponsiveReactGridLayout.displayName = \"ResponsiveReactGridLayout\";\n\nexport default ResponsiveReactGridLayout;\nexport { ResponsiveReactGridLayout, ResponsiveReactGridLayout as Responsive };\n","/**\n * WidthProvider HOC\n *\n * A Higher-Order Component that provides width measurement to grid layouts.\n * This wraps any component and provides the container width as a prop.\n */\n\nimport React, { useState, useRef, useEffect, type ComponentType } from \"react\";\nimport clsx from \"clsx\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface WidthProviderProps {\n  /** If true, will not render children until mounted */\n  measureBeforeMount?: boolean;\n  /** Additional class name */\n  className?: string;\n  /** Additional styles */\n  style?: React.CSSProperties;\n}\n\ntype WithWidthProps<P> = Omit<P, \"width\"> & WidthProviderProps;\n\n// ============================================================================\n// Constants\n// ============================================================================\n\nconst layoutClassName = \"react-grid-layout\";\n\n// ============================================================================\n// WidthProvider HOC\n// ============================================================================\n\n/**\n * WidthProvider - HOC that provides container width\n *\n * A simple HOC that provides facility for listening to container resizes.\n * Wraps the provided component and passes down a `width` prop.\n *\n * @example\n * ```tsx\n * import { GridLayout, WidthProvider } from 'react-grid-layout';\n *\n * const GridLayoutWithWidth = WidthProvider(GridLayout);\n *\n * function MyGrid() {\n *   return (\n *     <GridLayoutWithWidth cols={12} rowHeight={30}>\n *       <div key=\"a\">a</div>\n *     </GridLayoutWithWidth>\n *   );\n * }\n * ```\n */\nexport function WidthProvider<P extends { width: number }>(\n  ComposedComponent: ComponentType<P>\n): ComponentType<WithWidthProps<P>> {\n  function WidthProviderWrapper(props: WithWidthProps<P>) {\n    const { measureBeforeMount = false, className, style, ...rest } = props;\n\n    const [width, setWidth] = useState(1280);\n    const [mounted, setMounted] = useState(false);\n    const elementRef = useRef<HTMLDivElement>(null);\n    const resizeObserverRef = useRef<ResizeObserver | null>(null);\n\n    useEffect(() => {\n      setMounted(true);\n\n      // Set up ResizeObserver\n      resizeObserverRef.current = new ResizeObserver(entries => {\n        const node = elementRef.current;\n        if (node instanceof HTMLElement && entries[0]) {\n          const newWidth = entries[0].contentRect.width;\n          setWidth(newWidth);\n        }\n      });\n\n      const node = elementRef.current;\n      if (node instanceof HTMLElement) {\n        resizeObserverRef.current.observe(node);\n      }\n\n      return () => {\n        if (node instanceof HTMLElement && resizeObserverRef.current) {\n          resizeObserverRef.current.unobserve(node);\n        }\n        resizeObserverRef.current?.disconnect();\n      };\n    }, []);\n\n    // If measureBeforeMount is true and not yet mounted, render placeholder\n    if (measureBeforeMount && !mounted) {\n      return (\n        <div\n          className={clsx(className, layoutClassName)}\n          style={style}\n          ref={elementRef}\n        />\n      );\n    }\n\n    return (\n      <ComposedComponent\n        innerRef={elementRef}\n        className={className}\n        style={style}\n        {...(rest as unknown as P)}\n        width={width}\n      />\n    );\n  }\n\n  WidthProviderWrapper.displayName = `WidthProvider(${ComposedComponent.displayName || ComposedComponent.name || \"Component\"})`;\n\n  return WidthProviderWrapper;\n}\n\nexport default WidthProvider;\n"]}