react-grid-layout 1.5.3 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/README.md +1156 -442
  2. package/css/styles.css +5 -4
  3. package/dist/ResponsiveGridLayout-BkHF9YHa.d.mts +133 -0
  4. package/dist/ResponsiveGridLayout-CLn16-X3.d.ts +133 -0
  5. package/dist/calculate-DsVTldEE.d.ts +196 -0
  6. package/dist/calculate-DwbL1D06.d.mts +196 -0
  7. package/dist/chunk-2O3ZME4Q.mjs +703 -0
  8. package/dist/chunk-2O3ZME4Q.mjs.map +1 -0
  9. package/dist/chunk-526JND3R.mjs +3 -0
  10. package/dist/chunk-526JND3R.mjs.map +1 -0
  11. package/dist/chunk-7ELO5FRW.js +4 -0
  12. package/dist/chunk-7ELO5FRW.js.map +1 -0
  13. package/dist/chunk-AWM66AWF.mjs +422 -0
  14. package/dist/chunk-AWM66AWF.mjs.map +1 -0
  15. package/dist/chunk-BJFPTW5Q.js +449 -0
  16. package/dist/chunk-BJFPTW5Q.js.map +1 -0
  17. package/dist/chunk-FN6MIZ24.js +744 -0
  18. package/dist/chunk-FN6MIZ24.js.map +1 -0
  19. package/dist/chunk-GPZBANOK.js +435 -0
  20. package/dist/chunk-GPZBANOK.js.map +1 -0
  21. package/dist/chunk-LWF5EYMO.mjs +429 -0
  22. package/dist/chunk-LWF5EYMO.mjs.map +1 -0
  23. package/dist/chunk-MXXN7GUE.mjs +1408 -0
  24. package/dist/chunk-MXXN7GUE.mjs.map +1 -0
  25. package/dist/chunk-QRW3ND4U.js +1417 -0
  26. package/dist/chunk-QRW3ND4U.js.map +1 -0
  27. package/dist/core.d.mts +186 -0
  28. package/dist/core.d.ts +186 -0
  29. package/dist/core.js +274 -0
  30. package/dist/core.js.map +1 -0
  31. package/dist/core.mjs +5 -0
  32. package/dist/core.mjs.map +1 -0
  33. package/dist/extras.d.mts +208 -0
  34. package/dist/extras.d.ts +208 -0
  35. package/dist/extras.js +462 -0
  36. package/dist/extras.js.map +1 -0
  37. package/dist/extras.mjs +454 -0
  38. package/dist/extras.mjs.map +1 -0
  39. package/dist/index.d.mts +7 -0
  40. package/dist/index.d.ts +7 -0
  41. package/dist/index.js +154 -0
  42. package/dist/index.js.map +1 -0
  43. package/dist/index.mjs +7 -0
  44. package/dist/index.mjs.map +1 -0
  45. package/dist/legacy.d.mts +163 -0
  46. package/dist/legacy.d.ts +163 -0
  47. package/dist/legacy.js +320 -0
  48. package/dist/legacy.js.map +1 -0
  49. package/dist/legacy.mjs +308 -0
  50. package/dist/legacy.mjs.map +1 -0
  51. package/dist/position-C8a5g6bb.d.mts +324 -0
  52. package/dist/position-H8tBL91b.d.ts +324 -0
  53. package/dist/react.d.mts +357 -0
  54. package/dist/react.d.ts +357 -0
  55. package/dist/react.js +96 -0
  56. package/dist/react.js.map +1 -0
  57. package/dist/react.mjs +7 -0
  58. package/dist/react.mjs.map +1 -0
  59. package/dist/responsive-BB5d98xz.d.mts +145 -0
  60. package/dist/responsive-BXI-GCXG.d.ts +145 -0
  61. package/dist/types-CokovIMH.d.mts +469 -0
  62. package/dist/types-CokovIMH.d.ts +469 -0
  63. package/index-dev.js +24 -0
  64. package/package.json +133 -40
  65. package/.babelrc.js +0 -22
  66. package/.browserslistrc +0 -3
  67. package/.eslintignore +0 -4
  68. package/.flowconfig +0 -20
  69. package/.prettierignore +0 -4
  70. package/.prettierrc +0 -17
  71. package/CHANGELOG.md +0 -985
  72. package/build/GridItem.js +0 -638
  73. package/build/ReactGridLayout.js +0 -741
  74. package/build/ReactGridLayoutPropTypes.js +0 -210
  75. package/build/ResponsiveReactGridLayout.js +0 -297
  76. package/build/calculateUtils.js +0 -165
  77. package/build/components/WidthProvider.js +0 -115
  78. package/build/fastRGLPropsEqual.js +0 -5
  79. package/build/responsiveUtils.js +0 -101
  80. package/build/utils.js +0 -842
  81. package/dist/react-grid-layout.min.js +0 -2
  82. package/dist/react-grid-layout.min.js.map +0 -1
  83. package/index.js.flow +0 -8
  84. package/ip_fetcher +0 -0
  85. package/ip_fetcher.c +0 -47
  86. package/lib/GridItem.jsx +0 -689
  87. package/lib/ReactGridLayout.jsx +0 -855
  88. package/lib/ReactGridLayoutPropTypes.js +0 -241
  89. package/lib/ResponsiveReactGridLayout.jsx +0 -349
  90. package/lib/calculateUtils.js +0 -169
  91. package/lib/components/WidthProvider.jsx +0 -110
  92. package/lib/fastRGLPropsEqual.js +0 -46
  93. package/lib/responsiveUtils.js +0 -118
  94. package/lib/utils.js +0 -995
  95. package/yarn-error.log +0 -7780
package/dist/legacy.js ADDED
@@ -0,0 +1,320 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var chunkQRW3ND4U_js = require('./chunk-QRW3ND4U.js');
6
+ var chunkFN6MIZ24_js = require('./chunk-FN6MIZ24.js');
7
+ require('./chunk-BJFPTW5Q.js');
8
+ var react = require('react');
9
+ var jsxRuntime = require('react/jsx-runtime');
10
+ var clsx = require('clsx');
11
+
12
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
13
+
14
+ var clsx__default = /*#__PURE__*/_interopDefault(clsx);
15
+
16
+ function ReactGridLayout(props) {
17
+ const {
18
+ // Required
19
+ children,
20
+ width,
21
+ // Grid measurement
22
+ cols = 12,
23
+ rowHeight = 150,
24
+ maxRows = Infinity,
25
+ margin = [10, 10],
26
+ containerPadding = null,
27
+ // Layout data
28
+ layout,
29
+ droppingItem,
30
+ // Compaction
31
+ compactType: compactTypeProp,
32
+ preventCollision = false,
33
+ allowOverlap = false,
34
+ verticalCompact,
35
+ // Drag behavior
36
+ isDraggable = true,
37
+ isBounded = false,
38
+ draggableHandle,
39
+ draggableCancel,
40
+ // Resize behavior
41
+ isResizable = true,
42
+ resizeHandles = ["se"],
43
+ resizeHandle,
44
+ // Drop behavior
45
+ isDroppable = false,
46
+ // Position
47
+ useCSSTransforms = true,
48
+ transformScale = 1,
49
+ // Container props
50
+ autoSize,
51
+ className,
52
+ style,
53
+ innerRef,
54
+ // Callbacks
55
+ onLayoutChange,
56
+ onDragStart,
57
+ onDrag,
58
+ onDragStop,
59
+ onResizeStart,
60
+ onResize,
61
+ onResizeStop,
62
+ onDrop,
63
+ onDropDragOver
64
+ } = props;
65
+ let compactType = compactTypeProp === void 0 ? "vertical" : compactTypeProp;
66
+ if (verticalCompact === false) {
67
+ if (process.env["NODE_ENV"] !== "production") {
68
+ console.warn(
69
+ '`verticalCompact` on <ReactGridLayout> is deprecated and will be removed soon. Use `compactType`: "horizontal" | "vertical" | null.'
70
+ );
71
+ }
72
+ compactType = null;
73
+ }
74
+ const gridConfig = {
75
+ cols,
76
+ rowHeight,
77
+ maxRows,
78
+ margin,
79
+ containerPadding
80
+ };
81
+ const dragConfig = {
82
+ enabled: isDraggable,
83
+ bounded: isBounded,
84
+ handle: draggableHandle,
85
+ cancel: draggableCancel
86
+ };
87
+ const resizeConfig = {
88
+ enabled: isResizable,
89
+ handles: resizeHandles,
90
+ handleComponent: resizeHandle
91
+ };
92
+ const dropConfig = {
93
+ enabled: isDroppable
94
+ };
95
+ let positionStrategy;
96
+ if (!useCSSTransforms) {
97
+ positionStrategy = chunkFN6MIZ24_js.absoluteStrategy;
98
+ } else if (transformScale !== 1) {
99
+ positionStrategy = chunkFN6MIZ24_js.createScaledStrategy(transformScale);
100
+ } else {
101
+ positionStrategy = chunkFN6MIZ24_js.transformStrategy;
102
+ }
103
+ const compactor = chunkFN6MIZ24_js.getCompactor(compactType, allowOverlap, preventCollision);
104
+ const constraints = isBounded ? [...chunkFN6MIZ24_js.defaultConstraints, chunkFN6MIZ24_js.containerBounds] : chunkFN6MIZ24_js.defaultConstraints;
105
+ return /* @__PURE__ */ jsxRuntime.jsx(
106
+ chunkQRW3ND4U_js.GridLayout,
107
+ {
108
+ width,
109
+ gridConfig,
110
+ dragConfig,
111
+ resizeConfig,
112
+ dropConfig,
113
+ positionStrategy,
114
+ compactor,
115
+ constraints,
116
+ layout,
117
+ droppingItem,
118
+ autoSize,
119
+ className,
120
+ style,
121
+ innerRef,
122
+ onLayoutChange,
123
+ onDragStart,
124
+ onDrag,
125
+ onDragStop,
126
+ onResizeStart,
127
+ onResize,
128
+ onResizeStop,
129
+ onDrop,
130
+ onDropDragOver,
131
+ children
132
+ }
133
+ );
134
+ }
135
+ ReactGridLayout.displayName = "ReactGridLayout";
136
+ var ReactGridLayout_default = ReactGridLayout;
137
+ function ResponsiveReactGridLayout(props) {
138
+ const {
139
+ // Required
140
+ children,
141
+ width,
142
+ // Responsive-specific
143
+ breakpoint,
144
+ breakpoints,
145
+ cols,
146
+ layouts,
147
+ onBreakpointChange,
148
+ onLayoutChange,
149
+ onWidthChange,
150
+ // Grid measurement
151
+ rowHeight,
152
+ maxRows,
153
+ margin,
154
+ containerPadding,
155
+ // Layout data
156
+ droppingItem,
157
+ // Compaction
158
+ compactType: compactTypeProp,
159
+ preventCollision = false,
160
+ allowOverlap = false,
161
+ verticalCompact,
162
+ // Drag behavior
163
+ isDraggable = true,
164
+ isBounded = false,
165
+ draggableHandle,
166
+ draggableCancel,
167
+ // Resize behavior
168
+ isResizable = true,
169
+ resizeHandles = ["se"],
170
+ resizeHandle,
171
+ // Drop behavior
172
+ isDroppable = false,
173
+ // Position
174
+ useCSSTransforms = true,
175
+ transformScale = 1,
176
+ // Container props
177
+ autoSize,
178
+ className,
179
+ style,
180
+ innerRef,
181
+ // Callbacks
182
+ onDragStart,
183
+ onDrag,
184
+ onDragStop,
185
+ onResizeStart,
186
+ onResize,
187
+ onResizeStop,
188
+ onDrop,
189
+ onDropDragOver
190
+ } = props;
191
+ let compactType = compactTypeProp === void 0 ? "vertical" : compactTypeProp;
192
+ if (verticalCompact === false) {
193
+ if (process.env["NODE_ENV"] !== "production") {
194
+ console.warn(
195
+ '`verticalCompact` on <ResponsiveReactGridLayout> is deprecated and will be removed soon. Use `compactType`: "horizontal" | "vertical" | null.'
196
+ );
197
+ }
198
+ compactType = null;
199
+ }
200
+ const dragConfig = {
201
+ enabled: isDraggable,
202
+ bounded: isBounded,
203
+ handle: draggableHandle,
204
+ cancel: draggableCancel
205
+ };
206
+ const resizeConfig = {
207
+ enabled: isResizable,
208
+ handles: resizeHandles,
209
+ handleComponent: resizeHandle
210
+ };
211
+ const dropConfig = {
212
+ enabled: isDroppable
213
+ };
214
+ let positionStrategy;
215
+ if (!useCSSTransforms) {
216
+ positionStrategy = chunkFN6MIZ24_js.absoluteStrategy;
217
+ } else if (transformScale !== 1) {
218
+ positionStrategy = chunkFN6MIZ24_js.createScaledStrategy(transformScale);
219
+ } else {
220
+ positionStrategy = chunkFN6MIZ24_js.transformStrategy;
221
+ }
222
+ const compactor = chunkFN6MIZ24_js.getCompactor(compactType, allowOverlap, preventCollision);
223
+ return /* @__PURE__ */ jsxRuntime.jsx(
224
+ chunkQRW3ND4U_js.ResponsiveGridLayout,
225
+ {
226
+ width,
227
+ breakpoint,
228
+ breakpoints,
229
+ cols,
230
+ layouts,
231
+ rowHeight,
232
+ maxRows,
233
+ margin,
234
+ containerPadding,
235
+ compactor,
236
+ dragConfig,
237
+ resizeConfig,
238
+ dropConfig,
239
+ positionStrategy,
240
+ droppingItem,
241
+ autoSize,
242
+ className,
243
+ style,
244
+ innerRef,
245
+ onBreakpointChange,
246
+ onLayoutChange,
247
+ onWidthChange,
248
+ onDragStart,
249
+ onDrag,
250
+ onDragStop,
251
+ onResizeStart,
252
+ onResize,
253
+ onResizeStop,
254
+ onDrop,
255
+ onDropDragOver,
256
+ children
257
+ }
258
+ );
259
+ }
260
+ ResponsiveReactGridLayout.displayName = "ResponsiveReactGridLayout";
261
+ var ResponsiveReactGridLayout_default = ResponsiveReactGridLayout;
262
+ var layoutClassName = "react-grid-layout";
263
+ function WidthProvider(ComposedComponent) {
264
+ function WidthProviderWrapper(props) {
265
+ const { measureBeforeMount = false, className, style, ...rest } = props;
266
+ const [width, setWidth] = react.useState(1280);
267
+ const [mounted, setMounted] = react.useState(false);
268
+ const elementRef = react.useRef(null);
269
+ const resizeObserverRef = react.useRef(null);
270
+ react.useEffect(() => {
271
+ setMounted(true);
272
+ }, []);
273
+ react.useEffect(() => {
274
+ const node = elementRef.current;
275
+ if (!(node instanceof HTMLElement)) return;
276
+ const observer = new ResizeObserver((entries) => {
277
+ if (entries[0]) {
278
+ const newWidth = entries[0].contentRect.width;
279
+ setWidth(newWidth);
280
+ }
281
+ });
282
+ observer.observe(node);
283
+ resizeObserverRef.current = observer;
284
+ return () => {
285
+ observer.unobserve(node);
286
+ observer.disconnect();
287
+ };
288
+ }, [mounted]);
289
+ if (measureBeforeMount && !mounted) {
290
+ return /* @__PURE__ */ jsxRuntime.jsx(
291
+ "div",
292
+ {
293
+ className: clsx__default.default(className, layoutClassName),
294
+ style,
295
+ ref: elementRef
296
+ }
297
+ );
298
+ }
299
+ return /* @__PURE__ */ jsxRuntime.jsx(
300
+ ComposedComponent,
301
+ {
302
+ innerRef: elementRef,
303
+ className,
304
+ style,
305
+ ...rest,
306
+ width
307
+ }
308
+ );
309
+ }
310
+ WidthProviderWrapper.displayName = `WidthProvider(${ComposedComponent.displayName || ComposedComponent.name || "Component"})`;
311
+ return WidthProviderWrapper;
312
+ }
313
+
314
+ exports.ReactGridLayout = ReactGridLayout;
315
+ exports.Responsive = ResponsiveReactGridLayout_default;
316
+ exports.ResponsiveReactGridLayout = ResponsiveReactGridLayout;
317
+ exports.WidthProvider = WidthProvider;
318
+ exports.default = ReactGridLayout_default;
319
+ //# sourceMappingURL=legacy.js.map
320
+ //# sourceMappingURL=legacy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/legacy/ReactGridLayout.tsx","../src/legacy/ResponsiveReactGridLayout.tsx","../src/react/components/WidthProvider.tsx"],"names":["absoluteStrategy","createScaledStrategy","transformStrategy","getCompactor","defaultConstraints","containerBounds","jsx","GridLayout","ResponsiveGridLayout","useState","useRef","useEffect","clsx"],"mappings":"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","file":"legacy.js","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 LayoutConstraint\n} from \"../core/types.js\";\nimport { getCompactor } from \"../core/compactors.js\";\nimport {\n transformStrategy,\n absoluteStrategy,\n createScaledStrategy\n} from \"../core/position.js\";\nimport { defaultConstraints, containerBounds } from \"../core/constraints.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 // Build constraints array based on legacy props\n // When isBounded is true, add containerBounds constraint\n const constraints: LayoutConstraint[] = isBounded\n ? [...defaultConstraints, containerBounds]\n : defaultConstraints;\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 constraints={constraints}\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 // Set mounted state on first render\n useEffect(() => {\n setMounted(true);\n }, []);\n\n // Set up ResizeObserver - re-runs when mounted changes to observe the new element\n // This fixes measureBeforeMount where the ref changes from placeholder to composed component\n useEffect(() => {\n const node = elementRef.current;\n if (!(node instanceof HTMLElement)) return;\n\n const observer = new ResizeObserver(entries => {\n if (entries[0]) {\n const newWidth = entries[0].contentRect.width;\n setWidth(newWidth);\n }\n });\n\n observer.observe(node);\n resizeObserverRef.current = observer;\n\n return () => {\n observer.unobserve(node);\n observer.disconnect();\n };\n }, [mounted]);\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"]}
@@ -0,0 +1,308 @@
1
+ import { GridLayout, ResponsiveGridLayout } from './chunk-MXXN7GUE.mjs';
2
+ import { createScaledStrategy, getCompactor, defaultConstraints, containerBounds, absoluteStrategy, transformStrategy } from './chunk-2O3ZME4Q.mjs';
3
+ import './chunk-AWM66AWF.mjs';
4
+ import { useState, useRef, useEffect } from 'react';
5
+ import { jsx } from 'react/jsx-runtime';
6
+ import clsx from 'clsx';
7
+
8
+ function ReactGridLayout(props) {
9
+ const {
10
+ // Required
11
+ children,
12
+ width,
13
+ // Grid measurement
14
+ cols = 12,
15
+ rowHeight = 150,
16
+ maxRows = Infinity,
17
+ margin = [10, 10],
18
+ containerPadding = null,
19
+ // Layout data
20
+ layout,
21
+ droppingItem,
22
+ // Compaction
23
+ compactType: compactTypeProp,
24
+ preventCollision = false,
25
+ allowOverlap = false,
26
+ verticalCompact,
27
+ // Drag behavior
28
+ isDraggable = true,
29
+ isBounded = false,
30
+ draggableHandle,
31
+ draggableCancel,
32
+ // Resize behavior
33
+ isResizable = true,
34
+ resizeHandles = ["se"],
35
+ resizeHandle,
36
+ // Drop behavior
37
+ isDroppable = false,
38
+ // Position
39
+ useCSSTransforms = true,
40
+ transformScale = 1,
41
+ // Container props
42
+ autoSize,
43
+ className,
44
+ style,
45
+ innerRef,
46
+ // Callbacks
47
+ onLayoutChange,
48
+ onDragStart,
49
+ onDrag,
50
+ onDragStop,
51
+ onResizeStart,
52
+ onResize,
53
+ onResizeStop,
54
+ onDrop,
55
+ onDropDragOver
56
+ } = props;
57
+ let compactType = compactTypeProp === void 0 ? "vertical" : compactTypeProp;
58
+ if (verticalCompact === false) {
59
+ if (process.env["NODE_ENV"] !== "production") {
60
+ console.warn(
61
+ '`verticalCompact` on <ReactGridLayout> is deprecated and will be removed soon. Use `compactType`: "horizontal" | "vertical" | null.'
62
+ );
63
+ }
64
+ compactType = null;
65
+ }
66
+ const gridConfig = {
67
+ cols,
68
+ rowHeight,
69
+ maxRows,
70
+ margin,
71
+ containerPadding
72
+ };
73
+ const dragConfig = {
74
+ enabled: isDraggable,
75
+ bounded: isBounded,
76
+ handle: draggableHandle,
77
+ cancel: draggableCancel
78
+ };
79
+ const resizeConfig = {
80
+ enabled: isResizable,
81
+ handles: resizeHandles,
82
+ handleComponent: resizeHandle
83
+ };
84
+ const dropConfig = {
85
+ enabled: isDroppable
86
+ };
87
+ let positionStrategy;
88
+ if (!useCSSTransforms) {
89
+ positionStrategy = absoluteStrategy;
90
+ } else if (transformScale !== 1) {
91
+ positionStrategy = createScaledStrategy(transformScale);
92
+ } else {
93
+ positionStrategy = transformStrategy;
94
+ }
95
+ const compactor = getCompactor(compactType, allowOverlap, preventCollision);
96
+ const constraints = isBounded ? [...defaultConstraints, containerBounds] : defaultConstraints;
97
+ return /* @__PURE__ */ jsx(
98
+ GridLayout,
99
+ {
100
+ width,
101
+ gridConfig,
102
+ dragConfig,
103
+ resizeConfig,
104
+ dropConfig,
105
+ positionStrategy,
106
+ compactor,
107
+ constraints,
108
+ layout,
109
+ droppingItem,
110
+ autoSize,
111
+ className,
112
+ style,
113
+ innerRef,
114
+ onLayoutChange,
115
+ onDragStart,
116
+ onDrag,
117
+ onDragStop,
118
+ onResizeStart,
119
+ onResize,
120
+ onResizeStop,
121
+ onDrop,
122
+ onDropDragOver,
123
+ children
124
+ }
125
+ );
126
+ }
127
+ ReactGridLayout.displayName = "ReactGridLayout";
128
+ var ReactGridLayout_default = ReactGridLayout;
129
+ function ResponsiveReactGridLayout(props) {
130
+ const {
131
+ // Required
132
+ children,
133
+ width,
134
+ // Responsive-specific
135
+ breakpoint,
136
+ breakpoints,
137
+ cols,
138
+ layouts,
139
+ onBreakpointChange,
140
+ onLayoutChange,
141
+ onWidthChange,
142
+ // Grid measurement
143
+ rowHeight,
144
+ maxRows,
145
+ margin,
146
+ containerPadding,
147
+ // Layout data
148
+ droppingItem,
149
+ // Compaction
150
+ compactType: compactTypeProp,
151
+ preventCollision = false,
152
+ allowOverlap = false,
153
+ verticalCompact,
154
+ // Drag behavior
155
+ isDraggable = true,
156
+ isBounded = false,
157
+ draggableHandle,
158
+ draggableCancel,
159
+ // Resize behavior
160
+ isResizable = true,
161
+ resizeHandles = ["se"],
162
+ resizeHandle,
163
+ // Drop behavior
164
+ isDroppable = false,
165
+ // Position
166
+ useCSSTransforms = true,
167
+ transformScale = 1,
168
+ // Container props
169
+ autoSize,
170
+ className,
171
+ style,
172
+ innerRef,
173
+ // Callbacks
174
+ onDragStart,
175
+ onDrag,
176
+ onDragStop,
177
+ onResizeStart,
178
+ onResize,
179
+ onResizeStop,
180
+ onDrop,
181
+ onDropDragOver
182
+ } = props;
183
+ let compactType = compactTypeProp === void 0 ? "vertical" : compactTypeProp;
184
+ if (verticalCompact === false) {
185
+ if (process.env["NODE_ENV"] !== "production") {
186
+ console.warn(
187
+ '`verticalCompact` on <ResponsiveReactGridLayout> is deprecated and will be removed soon. Use `compactType`: "horizontal" | "vertical" | null.'
188
+ );
189
+ }
190
+ compactType = null;
191
+ }
192
+ const dragConfig = {
193
+ enabled: isDraggable,
194
+ bounded: isBounded,
195
+ handle: draggableHandle,
196
+ cancel: draggableCancel
197
+ };
198
+ const resizeConfig = {
199
+ enabled: isResizable,
200
+ handles: resizeHandles,
201
+ handleComponent: resizeHandle
202
+ };
203
+ const dropConfig = {
204
+ enabled: isDroppable
205
+ };
206
+ let positionStrategy;
207
+ if (!useCSSTransforms) {
208
+ positionStrategy = absoluteStrategy;
209
+ } else if (transformScale !== 1) {
210
+ positionStrategy = createScaledStrategy(transformScale);
211
+ } else {
212
+ positionStrategy = transformStrategy;
213
+ }
214
+ const compactor = getCompactor(compactType, allowOverlap, preventCollision);
215
+ return /* @__PURE__ */ jsx(
216
+ ResponsiveGridLayout,
217
+ {
218
+ width,
219
+ breakpoint,
220
+ breakpoints,
221
+ cols,
222
+ layouts,
223
+ rowHeight,
224
+ maxRows,
225
+ margin,
226
+ containerPadding,
227
+ compactor,
228
+ dragConfig,
229
+ resizeConfig,
230
+ dropConfig,
231
+ positionStrategy,
232
+ droppingItem,
233
+ autoSize,
234
+ className,
235
+ style,
236
+ innerRef,
237
+ onBreakpointChange,
238
+ onLayoutChange,
239
+ onWidthChange,
240
+ onDragStart,
241
+ onDrag,
242
+ onDragStop,
243
+ onResizeStart,
244
+ onResize,
245
+ onResizeStop,
246
+ onDrop,
247
+ onDropDragOver,
248
+ children
249
+ }
250
+ );
251
+ }
252
+ ResponsiveReactGridLayout.displayName = "ResponsiveReactGridLayout";
253
+ var ResponsiveReactGridLayout_default = ResponsiveReactGridLayout;
254
+ var layoutClassName = "react-grid-layout";
255
+ function WidthProvider(ComposedComponent) {
256
+ function WidthProviderWrapper(props) {
257
+ const { measureBeforeMount = false, className, style, ...rest } = props;
258
+ const [width, setWidth] = useState(1280);
259
+ const [mounted, setMounted] = useState(false);
260
+ const elementRef = useRef(null);
261
+ const resizeObserverRef = useRef(null);
262
+ useEffect(() => {
263
+ setMounted(true);
264
+ }, []);
265
+ useEffect(() => {
266
+ const node = elementRef.current;
267
+ if (!(node instanceof HTMLElement)) return;
268
+ const observer = new ResizeObserver((entries) => {
269
+ if (entries[0]) {
270
+ const newWidth = entries[0].contentRect.width;
271
+ setWidth(newWidth);
272
+ }
273
+ });
274
+ observer.observe(node);
275
+ resizeObserverRef.current = observer;
276
+ return () => {
277
+ observer.unobserve(node);
278
+ observer.disconnect();
279
+ };
280
+ }, [mounted]);
281
+ if (measureBeforeMount && !mounted) {
282
+ return /* @__PURE__ */ jsx(
283
+ "div",
284
+ {
285
+ className: clsx(className, layoutClassName),
286
+ style,
287
+ ref: elementRef
288
+ }
289
+ );
290
+ }
291
+ return /* @__PURE__ */ jsx(
292
+ ComposedComponent,
293
+ {
294
+ innerRef: elementRef,
295
+ className,
296
+ style,
297
+ ...rest,
298
+ width
299
+ }
300
+ );
301
+ }
302
+ WidthProviderWrapper.displayName = `WidthProvider(${ComposedComponent.displayName || ComposedComponent.name || "Component"})`;
303
+ return WidthProviderWrapper;
304
+ }
305
+
306
+ export { ReactGridLayout, ResponsiveReactGridLayout_default as Responsive, ResponsiveReactGridLayout, WidthProvider, ReactGridLayout_default as default };
307
+ //# sourceMappingURL=legacy.mjs.map
308
+ //# sourceMappingURL=legacy.mjs.map