@dxos/react-ui-mosaic 0.8.4-main.d05673bc65 → 0.8.4-main.fcc0d83b33
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/lib/browser/{chunk-75KCPN67.mjs → chunk-HOLJERCP.mjs} +229 -230
- package/dist/lib/browser/chunk-HOLJERCP.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +51 -69
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/playwright/index.mjs +18 -8
- package/dist/lib/browser/playwright/index.mjs.map +3 -3
- package/dist/lib/browser/testing/index.mjs +14 -10
- package/dist/lib/browser/testing/index.mjs.map +3 -3
- package/dist/lib/browser/translations.mjs +18 -0
- package/dist/lib/browser/translations.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-XYWWHOXN.mjs → chunk-RNSOVDUU.mjs} +229 -230
- package/dist/lib/node-esm/chunk-RNSOVDUU.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +51 -69
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/playwright/index.mjs +18 -8
- package/dist/lib/node-esm/playwright/index.mjs.map +3 -3
- package/dist/lib/node-esm/testing/index.mjs +14 -10
- package/dist/lib/node-esm/testing/index.mjs.map +3 -3
- package/dist/lib/node-esm/translations.mjs +20 -0
- package/dist/lib/node-esm/translations.mjs.map +7 -0
- package/dist/types/src/components/Board/Board.d.ts +14 -7
- package/dist/types/src/components/Board/Board.d.ts.map +1 -1
- package/dist/types/src/components/Board/Board.stories.d.ts +5 -5
- package/dist/types/src/components/Board/Board.stories.d.ts.map +1 -1
- package/dist/types/src/components/Board/Column.d.ts +9 -9
- package/dist/types/src/components/Board/Column.d.ts.map +1 -1
- package/dist/types/src/components/Board/Item.d.ts +3 -0
- package/dist/types/src/components/Board/Item.d.ts.map +1 -1
- package/dist/types/src/components/Focus/Focus.d.ts +1 -25
- package/dist/types/src/components/Focus/Focus.d.ts.map +1 -1
- package/dist/types/src/components/Mosaic/Container.d.ts +15 -11
- package/dist/types/src/components/Mosaic/Container.d.ts.map +1 -1
- package/dist/types/src/components/Mosaic/Mosaic.d.ts +12 -25
- package/dist/types/src/components/Mosaic/Mosaic.d.ts.map +1 -1
- package/dist/types/src/components/Mosaic/Placeholder.d.ts +8 -8
- package/dist/types/src/components/Mosaic/Placeholder.d.ts.map +1 -1
- package/dist/types/src/components/Mosaic/Root.d.ts +5 -6
- package/dist/types/src/components/Mosaic/Root.d.ts.map +1 -1
- package/dist/types/src/components/Mosaic/Stack.d.ts +13 -7
- package/dist/types/src/components/Mosaic/Stack.d.ts.map +1 -1
- package/dist/types/src/components/Mosaic/Stack.stories.d.ts +11 -0
- package/dist/types/src/components/Mosaic/Stack.stories.d.ts.map +1 -1
- package/dist/types/src/components/Mosaic/Tile.d.ts +16 -10
- package/dist/types/src/components/Mosaic/Tile.d.ts.map +1 -1
- package/dist/types/src/components/Mosaic/extension.d.ts.map +1 -1
- package/dist/types/src/components/Mosaic/styles.d.ts.map +1 -1
- package/dist/types/src/components/Mosaic/types.d.ts.map +1 -1
- package/dist/types/src/hooks/useContainerDebug.d.ts.map +1 -1
- package/dist/types/src/hooks/useDefaultColumnEventHandler.d.ts.map +1 -1
- package/dist/types/src/hooks/useEventHandlerAdapter.d.ts +1 -1
- package/dist/types/src/hooks/useEventHandlerAdapter.d.ts.map +1 -1
- package/dist/types/src/hooks/useVisibleItems.d.ts.map +1 -1
- package/dist/types/src/playwright/board-manager.d.ts.map +1 -1
- package/dist/types/src/playwright/playwright.config.d.ts.map +1 -1
- package/dist/types/src/testing/CardContainer.d.ts.map +1 -1
- package/dist/types/src/testing/DefaultStackTile.d.ts.map +1 -1
- package/dist/types/src/testing/types.d.ts +3 -3
- package/dist/types/src/translations.d.ts +3 -3
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +36 -37
- package/src/AUDIT.md +106 -0
- package/src/components/Board/Board.stories.tsx +23 -22
- package/src/components/Board/Board.tsx +6 -8
- package/src/components/Board/Column.tsx +43 -41
- package/src/components/Board/Item.tsx +25 -25
- package/src/components/Focus/Focus.tsx +2 -102
- package/src/components/Mosaic/Container.tsx +51 -23
- package/src/components/Mosaic/Placeholder.tsx +1 -1
- package/src/components/Mosaic/Root.tsx +199 -205
- package/src/components/Mosaic/Stack.stories.tsx +125 -69
- package/src/components/Mosaic/Stack.tsx +162 -52
- package/src/components/Mosaic/Tile.tsx +41 -34
- package/src/hooks/useContainerDebug.tsx +2 -2
- package/src/hooks/useDefaultColumnEventHandler.ts +0 -1
- package/src/hooks/useEventHandlerAdapter.ts +1 -1
- package/src/playwright/board-manager.ts +18 -13
- package/src/playwright/smoke.spec.ts +10 -5
- package/src/testing/CardContainer.tsx +2 -2
- package/src/testing/DefaultStackTile.tsx +23 -20
- package/src/translations.ts +3 -3
- package/dist/lib/browser/chunk-75KCPN67.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-XYWWHOXN.mjs.map +0 -7
|
@@ -22,56 +22,7 @@ var useVisibleItems = ({ id, items, dragging, getId }) => {
|
|
|
22
22
|
};
|
|
23
23
|
|
|
24
24
|
// src/components/Focus/Focus.tsx
|
|
25
|
-
import {
|
|
26
|
-
import { useComposedRefs } from "@radix-ui/react-compose-refs";
|
|
27
|
-
import { Primitive } from "@radix-ui/react-primitive";
|
|
28
|
-
import { Slot } from "@radix-ui/react-slot";
|
|
29
|
-
import React, { createContext, forwardRef, useContext, useRef, useState } from "react";
|
|
30
|
-
import { composableProps, mx } from "@dxos/ui-theme";
|
|
31
|
-
var FOCUS_STATE_ATTR = "focus-state";
|
|
32
|
-
var FocusContext = /* @__PURE__ */ createContext({});
|
|
33
|
-
var useFocus = () => useContext(FocusContext);
|
|
34
|
-
var Group = /* @__PURE__ */ forwardRef(({ children, asChild, orientation = "vertical", ...props }, forwardedRef) => {
|
|
35
|
-
const { className, ...rest } = composableProps(props);
|
|
36
|
-
const Comp = asChild ? Slot : Primitive.div;
|
|
37
|
-
const rootRef = useRef(null);
|
|
38
|
-
const composedRef = useComposedRefs(rootRef, forwardedRef);
|
|
39
|
-
const focusableGroupAttrs = useFocusableGroup({
|
|
40
|
-
tabBehavior: "limited-trap-focus"
|
|
41
|
-
});
|
|
42
|
-
const arrowNavigationAttrs = useArrowNavigationGroup({
|
|
43
|
-
axis: orientation,
|
|
44
|
-
memorizeCurrent: true
|
|
45
|
-
});
|
|
46
|
-
const tabsterAttrs = useMergedTabsterAttributes_unstable(focusableGroupAttrs, arrowNavigationAttrs);
|
|
47
|
-
const [state, setState] = useState();
|
|
48
|
-
return /* @__PURE__ */ React.createElement(FocusContext.Provider, {
|
|
49
|
-
value: {
|
|
50
|
-
setFocus: setState
|
|
51
|
-
}
|
|
52
|
-
}, /* @__PURE__ */ React.createElement(Comp, {
|
|
53
|
-
...rest,
|
|
54
|
-
...tabsterAttrs,
|
|
55
|
-
...state && {
|
|
56
|
-
[`data-${FOCUS_STATE_ATTR}`]: state
|
|
57
|
-
},
|
|
58
|
-
tabIndex: 0,
|
|
59
|
-
className: mx([
|
|
60
|
-
// TODO(burdon): Option for border/rounded; ring/outline vs border?
|
|
61
|
-
"outline-hidden border border-separator md:rounded-xs",
|
|
62
|
-
// Focus (e.g., via tabster).
|
|
63
|
-
"focus:!border-accent-surface",
|
|
64
|
-
// Active (e.g., drop target).
|
|
65
|
-
"data-[focus-state=active]:border-neutral-focus-indicator",
|
|
66
|
-
// Error
|
|
67
|
-
"data-[focus-state=error]:border-rose-500"
|
|
68
|
-
], className),
|
|
69
|
-
ref: composedRef
|
|
70
|
-
}, children));
|
|
71
|
-
});
|
|
72
|
-
var Focus = {
|
|
73
|
-
Group
|
|
74
|
-
};
|
|
25
|
+
import { Focus, useFocus } from "@dxos/react-ui";
|
|
75
26
|
|
|
76
27
|
// src/components/Mosaic/styles.ts
|
|
77
28
|
var styles = {
|
|
@@ -109,23 +60,22 @@ var getSourceData = (source) => {
|
|
|
109
60
|
// src/components/Mosaic/Root.tsx
|
|
110
61
|
import { combine } from "@atlaskit/pragmatic-drag-and-drop/combine";
|
|
111
62
|
import { monitorForElements } from "@atlaskit/pragmatic-drag-and-drop/element/adapter";
|
|
112
|
-
import { useComposedRefs
|
|
113
|
-
import { createContext
|
|
114
|
-
import { Primitive
|
|
115
|
-
import { Slot
|
|
116
|
-
import
|
|
63
|
+
import { useComposedRefs } from "@radix-ui/react-compose-refs";
|
|
64
|
+
import { createContext } from "@radix-ui/react-context";
|
|
65
|
+
import { Primitive } from "@radix-ui/react-primitive";
|
|
66
|
+
import { Slot } from "@radix-ui/react-slot";
|
|
67
|
+
import React, { forwardRef, useCallback, useEffect, useRef, useState } from "react";
|
|
117
68
|
import { log } from "@dxos/log";
|
|
118
|
-
import { mx as mx2 } from "@dxos/ui-theme";
|
|
119
69
|
var __dxlog_file = "/__w/dxos/dxos/packages/ui/react-ui-mosaic/src/components/Mosaic/Root.tsx";
|
|
120
|
-
var [MosaicRootContextProvider, useMosaicRootContext] =
|
|
70
|
+
var [MosaicRootContextProvider, useMosaicRootContext] = createContext("MosaicRoot");
|
|
121
71
|
var MOSAIC_ROOT_NAME = "Mosaic.Root";
|
|
122
72
|
var MOSAIC_ROOT_DEBUG_ATTR = "mosaic-debug";
|
|
123
|
-
var MosaicRoot = /* @__PURE__ */
|
|
124
|
-
const rootRef =
|
|
125
|
-
const composedRef =
|
|
126
|
-
const Comp = asChild ?
|
|
127
|
-
const [handlers, setHandlers] =
|
|
128
|
-
const [dragging, setDragging] =
|
|
73
|
+
var MosaicRoot = /* @__PURE__ */ forwardRef(({ children, asChild, debug }, forwardedRef) => {
|
|
74
|
+
const rootRef = useRef(null);
|
|
75
|
+
const composedRef = useComposedRefs(rootRef, forwardedRef);
|
|
76
|
+
const Comp = asChild ? Slot : Primitive.div;
|
|
77
|
+
const [handlers, setHandlers] = useState({});
|
|
78
|
+
const [dragging, setDragging] = useState();
|
|
129
79
|
const getSourceHandler = useCallback((source) => {
|
|
130
80
|
const data = source.data;
|
|
131
81
|
return {
|
|
@@ -170,7 +120,7 @@ var MosaicRoot = /* @__PURE__ */ forwardRef2(({ classNames, children, asChild, d
|
|
|
170
120
|
source: {
|
|
171
121
|
data: sourceData,
|
|
172
122
|
handler: handlers[sourceData.containerId],
|
|
173
|
-
//
|
|
123
|
+
// TODO(burdon): Check id matches.
|
|
174
124
|
container: location.initial.dropTargets.find((target) => target.data.type === "container")?.element
|
|
175
125
|
},
|
|
176
126
|
target: targetData && {
|
|
@@ -200,12 +150,7 @@ var MosaicRoot = /* @__PURE__ */ forwardRef2(({ classNames, children, asChild, d
|
|
|
200
150
|
log("Root.onDragStart", {
|
|
201
151
|
source: source.data,
|
|
202
152
|
location: location.current.dropTargets.map((target) => target.data)
|
|
203
|
-
}, {
|
|
204
|
-
F: __dxlog_file,
|
|
205
|
-
L: 149,
|
|
206
|
-
S: void 0,
|
|
207
|
-
C: (f, a) => f(...a)
|
|
208
|
-
});
|
|
153
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 96, S: void 0 });
|
|
209
154
|
handleChange({
|
|
210
155
|
source,
|
|
211
156
|
location
|
|
@@ -219,12 +164,7 @@ var MosaicRoot = /* @__PURE__ */ forwardRef2(({ classNames, children, asChild, d
|
|
|
219
164
|
log("Root.onDropTargetChange", {
|
|
220
165
|
source: source.data,
|
|
221
166
|
location: location.current.dropTargets.map((target) => target.data)
|
|
222
|
-
}, {
|
|
223
|
-
F: __dxlog_file,
|
|
224
|
-
L: 162,
|
|
225
|
-
S: void 0,
|
|
226
|
-
C: (f, a) => f(...a)
|
|
227
|
-
});
|
|
167
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 109, S: void 0 });
|
|
228
168
|
if (location.current.dropTargets.length === 0) {
|
|
229
169
|
noTargetTimeout = setTimeout(() => setDragging(void 0), 1e3);
|
|
230
170
|
} else {
|
|
@@ -258,33 +198,18 @@ var MosaicRoot = /* @__PURE__ */ forwardRef2(({ classNames, children, asChild, d
|
|
|
258
198
|
log.info("Root.onDrop", {
|
|
259
199
|
source: source.data,
|
|
260
200
|
location: location.current.dropTargets.map((target) => target.data)
|
|
261
|
-
}, {
|
|
262
|
-
F: __dxlog_file,
|
|
263
|
-
L: 191,
|
|
264
|
-
S: void 0,
|
|
265
|
-
C: (f, a) => f(...a)
|
|
266
|
-
});
|
|
201
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 142, S: void 0 });
|
|
267
202
|
const { data: sourceData, handler: sourceHandler } = getSourceHandler(source);
|
|
268
203
|
if (!sourceHandler) {
|
|
269
204
|
log.warn("invalid source", {
|
|
270
205
|
source: sourceData,
|
|
271
206
|
handlers: Object.keys(handlers)
|
|
272
|
-
}, {
|
|
273
|
-
F: __dxlog_file,
|
|
274
|
-
L: 199,
|
|
275
|
-
S: void 0,
|
|
276
|
-
C: (f, a) => f(...a)
|
|
277
|
-
});
|
|
207
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 149, S: void 0 });
|
|
278
208
|
return;
|
|
279
209
|
}
|
|
280
210
|
try {
|
|
281
211
|
if (location.current.dropTargets.length === 0) {
|
|
282
|
-
log.info("cancelled", void 0, {
|
|
283
|
-
F: __dxlog_file,
|
|
284
|
-
L: 214,
|
|
285
|
-
S: void 0,
|
|
286
|
-
C: (f, a) => f(...a)
|
|
287
|
-
});
|
|
212
|
+
log.info("cancelled", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 163, S: void 0 });
|
|
288
213
|
} else {
|
|
289
214
|
const { data: targetData, handler: targetHandler } = getTargetHandler(location);
|
|
290
215
|
if (!targetHandler) {
|
|
@@ -292,12 +217,7 @@ var MosaicRoot = /* @__PURE__ */ forwardRef2(({ classNames, children, asChild, d
|
|
|
292
217
|
source: sourceData,
|
|
293
218
|
location,
|
|
294
219
|
handlers: Object.keys(handlers)
|
|
295
|
-
}, {
|
|
296
|
-
F: __dxlog_file,
|
|
297
|
-
L: 219,
|
|
298
|
-
S: void 0,
|
|
299
|
-
C: (f, a) => f(...a)
|
|
300
|
-
});
|
|
220
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 168, S: void 0 });
|
|
301
221
|
return;
|
|
302
222
|
}
|
|
303
223
|
if (sourceHandler === targetHandler) {
|
|
@@ -309,12 +229,7 @@ var MosaicRoot = /* @__PURE__ */ forwardRef2(({ classNames, children, asChild, d
|
|
|
309
229
|
if (!sourceHandler.onTake) {
|
|
310
230
|
log.warn("invalid source", {
|
|
311
231
|
source: sourceData
|
|
312
|
-
}, {
|
|
313
|
-
F: __dxlog_file,
|
|
314
|
-
L: 235,
|
|
315
|
-
S: void 0,
|
|
316
|
-
C: (f, a) => f(...a)
|
|
317
|
-
});
|
|
232
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 183, S: void 0 });
|
|
318
233
|
return;
|
|
319
234
|
}
|
|
320
235
|
sourceHandler.onTake?.({
|
|
@@ -341,7 +256,7 @@ var MosaicRoot = /* @__PURE__ */ forwardRef2(({ classNames, children, asChild, d
|
|
|
341
256
|
getSourceHandler,
|
|
342
257
|
getTargetHandler
|
|
343
258
|
]);
|
|
344
|
-
return /* @__PURE__ */
|
|
259
|
+
return /* @__PURE__ */ React.createElement(MosaicRootContextProvider, {
|
|
345
260
|
containers: handlers,
|
|
346
261
|
addContainer: (container) => setHandlers((containers) => ({
|
|
347
262
|
...containers,
|
|
@@ -354,8 +269,8 @@ var MosaicRoot = /* @__PURE__ */ forwardRef2(({ classNames, children, asChild, d
|
|
|
354
269
|
};
|
|
355
270
|
}),
|
|
356
271
|
dragging
|
|
357
|
-
}, /* @__PURE__ */
|
|
358
|
-
className:
|
|
272
|
+
}, /* @__PURE__ */ React.createElement(Comp, {
|
|
273
|
+
className: "contents group",
|
|
359
274
|
[`data-${MOSAIC_ROOT_DEBUG_ATTR}`]: debug,
|
|
360
275
|
ref: composedRef
|
|
361
276
|
}, children));
|
|
@@ -363,39 +278,52 @@ var MosaicRoot = /* @__PURE__ */ forwardRef2(({ classNames, children, asChild, d
|
|
|
363
278
|
MosaicRoot.displayName = MOSAIC_ROOT_NAME;
|
|
364
279
|
|
|
365
280
|
// src/components/Mosaic/Container.tsx
|
|
281
|
+
import { autoScrollForElements } from "@atlaskit/pragmatic-drag-and-drop-auto-scroll/element";
|
|
366
282
|
import { combine as combine2 } from "@atlaskit/pragmatic-drag-and-drop/combine";
|
|
367
283
|
import { dropTargetForElements } from "@atlaskit/pragmatic-drag-and-drop/element/adapter";
|
|
368
|
-
import {
|
|
369
|
-
import {
|
|
370
|
-
import {
|
|
371
|
-
import {
|
|
372
|
-
import { Slot as Slot3 } from "@radix-ui/react-slot";
|
|
284
|
+
import { useComposedRefs as useComposedRefs2 } from "@radix-ui/react-compose-refs";
|
|
285
|
+
import { createContext as createContext2 } from "@radix-ui/react-context";
|
|
286
|
+
import { Primitive as Primitive2 } from "@radix-ui/react-primitive";
|
|
287
|
+
import { Slot as Slot2 } from "@radix-ui/react-slot";
|
|
373
288
|
import { bind } from "bind-event-listener";
|
|
374
|
-
import
|
|
375
|
-
import {
|
|
289
|
+
import React2, { useCallback as useCallback2, useEffect as useEffect2, useMemo as useMemo2, useRef as useRef2, useState as useState2 } from "react";
|
|
290
|
+
import { composable, composableProps } from "@dxos/ui-theme";
|
|
376
291
|
import { isTruthy } from "@dxos/util";
|
|
377
292
|
var MOSAIC_CONTAINER_NAME = "Mosaic.Container";
|
|
378
|
-
var [MosaicContainerContextProvider, useMosaicContainerContext] =
|
|
293
|
+
var [MosaicContainerContextProvider, useMosaicContainerContext] = createContext2("MosaicContainer");
|
|
379
294
|
var MOSAIC_CONTAINER_STATE_ATTR = "mosaic-container-state";
|
|
380
295
|
var MOSAIC_CONTAINER_PLACEHOLDER_WIDTH = "--mosaic-placeholder-width";
|
|
381
296
|
var MOSAIC_CONTAINER_PLACEHOLDER_HEIGHT = "--mosaic-placeholder-height";
|
|
382
297
|
var counter = 0;
|
|
383
|
-
var MosaicContainer =
|
|
384
|
-
const
|
|
385
|
-
const
|
|
386
|
-
const
|
|
387
|
-
const composedRef = useComposedRefs3(rootRef, forwardedRef);
|
|
298
|
+
var MosaicContainer = composable(({ children, eventHandler: eventHandlerProp, orientation = "vertical", asChild, autoScroll: autoscrollElement, withFocus, currentId, onCurrentChange, debug, ...props }, forwardedRef) => {
|
|
299
|
+
const Comp = asChild ? Slot2 : Primitive2.div;
|
|
300
|
+
const rootRef = useRef2(null);
|
|
301
|
+
const composedRef = useComposedRefs2(rootRef, forwardedRef);
|
|
388
302
|
const eventHandler = useMemo2(() => eventHandlerProp ?? {
|
|
389
303
|
id: `mosaic-container-${counter++}`
|
|
390
304
|
}, [
|
|
391
305
|
eventHandlerProp
|
|
392
306
|
]);
|
|
393
307
|
const { dragging } = useMosaicRootContext(MOSAIC_CONTAINER_NAME);
|
|
394
|
-
const [state, setState] =
|
|
308
|
+
const [state, setState] = useState2({
|
|
395
309
|
type: "idle"
|
|
396
310
|
});
|
|
397
|
-
const [activeLocation, setActiveLocation] =
|
|
398
|
-
const [scrolling, setScrolling] =
|
|
311
|
+
const [activeLocation, setActiveLocation] = useState2();
|
|
312
|
+
const [scrolling, setScrolling] = useState2(false);
|
|
313
|
+
const setCurrentId = useCallback2((id) => onCurrentChange?.(id), [
|
|
314
|
+
onCurrentChange
|
|
315
|
+
]);
|
|
316
|
+
const scrollToRef = useRef2(void 0);
|
|
317
|
+
const registerScrollTo = useCallback2((fn) => {
|
|
318
|
+
scrollToRef.current = fn;
|
|
319
|
+
}, []);
|
|
320
|
+
useEffect2(() => {
|
|
321
|
+
if (currentId) {
|
|
322
|
+
scrollToRef.current?.(currentId);
|
|
323
|
+
}
|
|
324
|
+
}, [
|
|
325
|
+
currentId
|
|
326
|
+
]);
|
|
399
327
|
const { setFocus } = useFocus();
|
|
400
328
|
useEffect2(() => {
|
|
401
329
|
if (withFocus) {
|
|
@@ -530,7 +458,7 @@ var MosaicContainer = /* @__PURE__ */ forwardRef3(({ children, eventHandler: eve
|
|
|
530
458
|
data,
|
|
531
459
|
autoscrollElement
|
|
532
460
|
]);
|
|
533
|
-
return /* @__PURE__ */
|
|
461
|
+
return /* @__PURE__ */ React2.createElement(MosaicContainerContextProvider, {
|
|
534
462
|
id: eventHandler.id,
|
|
535
463
|
eventHandler,
|
|
536
464
|
orientation,
|
|
@@ -538,14 +466,18 @@ var MosaicContainer = /* @__PURE__ */ forwardRef3(({ children, eventHandler: eve
|
|
|
538
466
|
dragging: state.type === "active" ? dragging : void 0,
|
|
539
467
|
scrolling,
|
|
540
468
|
activeLocation,
|
|
541
|
-
setActiveLocation
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
469
|
+
setActiveLocation,
|
|
470
|
+
currentId,
|
|
471
|
+
setCurrentId,
|
|
472
|
+
registerScrollTo
|
|
473
|
+
}, /* @__PURE__ */ React2.createElement(Comp, {
|
|
474
|
+
...composableProps(props, {
|
|
475
|
+
classNames: "h-full",
|
|
476
|
+
style: {
|
|
477
|
+
[MOSAIC_CONTAINER_PLACEHOLDER_WIDTH]: state.type === "active" && state.bounds ? `${state.bounds.width}px` : "0px",
|
|
478
|
+
[MOSAIC_CONTAINER_PLACEHOLDER_HEIGHT]: state.type === "active" && state.bounds ? `${state.bounds.height}px` : "0px"
|
|
479
|
+
}
|
|
480
|
+
}),
|
|
549
481
|
[`data-${MOSAIC_CONTAINER_STATE_ATTR}`]: state.type,
|
|
550
482
|
ref: composedRef
|
|
551
483
|
}, children), debug?.());
|
|
@@ -553,28 +485,27 @@ var MosaicContainer = /* @__PURE__ */ forwardRef3(({ children, eventHandler: eve
|
|
|
553
485
|
MosaicContainer.displayName = MOSAIC_CONTAINER_NAME;
|
|
554
486
|
|
|
555
487
|
// src/components/Mosaic/Tile.tsx
|
|
488
|
+
import { attachClosestEdge, extractClosestEdge } from "@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge";
|
|
556
489
|
import { combine as combine3 } from "@atlaskit/pragmatic-drag-and-drop/combine";
|
|
557
490
|
import { draggable, dropTargetForElements as dropTargetForElements2 } from "@atlaskit/pragmatic-drag-and-drop/element/adapter";
|
|
558
491
|
import { preserveOffsetOnSource } from "@atlaskit/pragmatic-drag-and-drop/element/preserve-offset-on-source";
|
|
559
492
|
import { setCustomNativeDragPreview } from "@atlaskit/pragmatic-drag-and-drop/element/set-custom-native-drag-preview";
|
|
560
|
-
import { attachClosestEdge, extractClosestEdge } from "@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge";
|
|
561
493
|
import { composeRefs } from "@radix-ui/react-compose-refs";
|
|
562
|
-
import { createContext as
|
|
563
|
-
import { Primitive as
|
|
564
|
-
import { Slot as
|
|
565
|
-
import
|
|
494
|
+
import { createContext as createContext3 } from "@radix-ui/react-context";
|
|
495
|
+
import { Primitive as Primitive3 } from "@radix-ui/react-primitive";
|
|
496
|
+
import { Slot as Slot3 } from "@radix-ui/react-slot";
|
|
497
|
+
import React3, { useLayoutEffect, useMemo as useMemo3, useRef as useRef3, useState as useState3 } from "react";
|
|
566
498
|
import { createPortal } from "react-dom";
|
|
567
|
-
import { composableProps as
|
|
499
|
+
import { composableProps as composableProps2, slottable } from "@dxos/ui-theme";
|
|
568
500
|
var MOSAIC_TILE_NAME = "Mosaic.Tile";
|
|
569
|
-
var [MosaicTileContextProvider, useMosaicTileContext] =
|
|
501
|
+
var [MosaicTileContextProvider, useMosaicTileContext] = createContext3("MosaicTile");
|
|
570
502
|
var MOSAIC_TILE_STATE_ATTR = "mosaic-tile-state";
|
|
571
|
-
var MosaicTile =
|
|
572
|
-
const
|
|
573
|
-
const
|
|
574
|
-
const rootRef = useRef4(null);
|
|
503
|
+
var MosaicTile = slottable(({ children, asChild, dragHandle, allowedEdges: allowedEdgesProp, location, id, data: dataProp, draggable: draggableProp, current: _current, debug: _, ...props }, forwardedRef) => {
|
|
504
|
+
const Comp = asChild ? Slot3 : Primitive3.div;
|
|
505
|
+
const rootRef = useRef3(null);
|
|
575
506
|
const composedRef = composeRefs(rootRef, forwardedRef);
|
|
576
507
|
const { id: containerId, eventHandler, orientation, scrolling, setActiveLocation } = useMosaicContainerContext(MOSAIC_TILE_NAME);
|
|
577
|
-
const [state, setState] =
|
|
508
|
+
const [state, setState] = useState3({
|
|
578
509
|
type: "idle"
|
|
579
510
|
});
|
|
580
511
|
const allowedEdges = useMemo3(() => allowedEdgesProp || (orientation === "vertical" ? [
|
|
@@ -600,7 +531,7 @@ var MosaicTile = /* @__PURE__ */ forwardRef4(({ children, asChild, dragHandle, a
|
|
|
600
531
|
]);
|
|
601
532
|
useLayoutEffect(() => {
|
|
602
533
|
const root = rootRef.current;
|
|
603
|
-
if (!root || !containerId || scrolling) {
|
|
534
|
+
if (!draggableProp || !root || !containerId || scrolling) {
|
|
604
535
|
return;
|
|
605
536
|
}
|
|
606
537
|
const handleChange = ({ self, source }) => {
|
|
@@ -694,6 +625,8 @@ var MosaicTile = /* @__PURE__ */ forwardRef4(({ children, asChild, dragHandle, a
|
|
|
694
625
|
);
|
|
695
626
|
}, [
|
|
696
627
|
rootRef,
|
|
628
|
+
forwardedRef,
|
|
629
|
+
containerId,
|
|
697
630
|
dragHandle,
|
|
698
631
|
eventHandler,
|
|
699
632
|
data,
|
|
@@ -701,19 +634,22 @@ var MosaicTile = /* @__PURE__ */ forwardRef4(({ children, asChild, dragHandle, a
|
|
|
701
634
|
allowedEdges,
|
|
702
635
|
setActiveLocation
|
|
703
636
|
]);
|
|
704
|
-
|
|
637
|
+
const { className, ...rest } = composableProps2(props, {
|
|
638
|
+
classNames: "relative outline-none"
|
|
639
|
+
});
|
|
640
|
+
return /* @__PURE__ */ React3.createElement(MosaicTileContextProvider, {
|
|
705
641
|
state
|
|
706
|
-
}, /* @__PURE__ */
|
|
642
|
+
}, /* @__PURE__ */ React3.createElement(Comp, {
|
|
707
643
|
...rest,
|
|
644
|
+
"data-object-id": id,
|
|
708
645
|
[`data-${MOSAIC_TILE_STATE_ATTR}`]: state.type,
|
|
709
646
|
role: "listitem",
|
|
710
|
-
className
|
|
647
|
+
className,
|
|
711
648
|
ref: composedRef
|
|
712
|
-
}, children), state.type === "preview" && /* @__PURE__ */ createPortal(/* @__PURE__ */
|
|
649
|
+
}, children), state.type === "preview" && /* @__PURE__ */ createPortal(/* @__PURE__ */ React3.createElement(Comp, {
|
|
713
650
|
// NOTE: Use to control appearance while dragging.
|
|
714
651
|
[`data-${MOSAIC_TILE_STATE_ATTR}`]: state.type,
|
|
715
|
-
|
|
716
|
-
className: mx4("relative", className),
|
|
652
|
+
className,
|
|
717
653
|
style: {
|
|
718
654
|
width: `${state.rect.width}px`,
|
|
719
655
|
height: `${state.rect.height}px`
|
|
@@ -723,18 +659,18 @@ var MosaicTile = /* @__PURE__ */ forwardRef4(({ children, asChild, dragHandle, a
|
|
|
723
659
|
MosaicTile.displayName = MOSAIC_TILE_NAME;
|
|
724
660
|
|
|
725
661
|
// src/components/Mosaic/Placeholder.tsx
|
|
726
|
-
import { dropTargetForElements as dropTargetForElements3 } from "@atlaskit/pragmatic-drag-and-drop/element/adapter";
|
|
727
662
|
import { DropIndicator as NaturalDropIndicator } from "@atlaskit/pragmatic-drag-and-drop-react-drop-indicator/box";
|
|
728
|
-
import {
|
|
729
|
-
import {
|
|
730
|
-
import
|
|
731
|
-
import {
|
|
663
|
+
import { dropTargetForElements as dropTargetForElements3 } from "@atlaskit/pragmatic-drag-and-drop/element/adapter";
|
|
664
|
+
import { Primitive as Primitive4 } from "@radix-ui/react-primitive";
|
|
665
|
+
import { Slot as Slot4 } from "@radix-ui/react-slot";
|
|
666
|
+
import React4, { useLayoutEffect as useLayoutEffect2, useMemo as useMemo4, useRef as useRef4 } from "react";
|
|
667
|
+
import { mx } from "@dxos/ui-theme";
|
|
732
668
|
var MOSAIC_PLACEHOLDER_NAME = "Mosaic.Placeholder";
|
|
733
669
|
var MOSAIC_PLACEHOLDER_ORIENTATION_ATTR = "mosaic-placeholder-orientation";
|
|
734
670
|
var MOSAIC_PLACEHOLDER_STATE_ATTR = "mosaic-placeholder-state";
|
|
735
671
|
var MosaicPlaceholder = ({ classNames, children, asChild, orientation = "vertical", location }) => {
|
|
736
|
-
const rootRef =
|
|
737
|
-
const Comp = asChild ?
|
|
672
|
+
const rootRef = useRef4(null);
|
|
673
|
+
const Comp = asChild ? Slot4 : Primitive4.div;
|
|
738
674
|
const { id: containerId, eventHandler, scrolling, activeLocation, setActiveLocation } = useMosaicContainerContext(MOSAIC_PLACEHOLDER_NAME);
|
|
739
675
|
const data = useMemo4(() => ({
|
|
740
676
|
type: "placeholder",
|
|
@@ -774,11 +710,11 @@ var MosaicPlaceholder = ({ classNames, children, asChild, orientation = "vertica
|
|
|
774
710
|
scrolling,
|
|
775
711
|
setActiveLocation
|
|
776
712
|
]);
|
|
777
|
-
return /* @__PURE__ */
|
|
713
|
+
return /* @__PURE__ */ React4.createElement(Comp, {
|
|
778
714
|
[`data-${MOSAIC_PLACEHOLDER_ORIENTATION_ATTR}`]: orientation,
|
|
779
715
|
[`data-${MOSAIC_PLACEHOLDER_STATE_ATTR}`]: data.location === activeLocation ? "active" : "idle",
|
|
780
716
|
role: "none",
|
|
781
|
-
className:
|
|
717
|
+
className: mx("relative", classNames),
|
|
782
718
|
ref: rootRef
|
|
783
719
|
}, children);
|
|
784
720
|
};
|
|
@@ -786,7 +722,7 @@ MosaicPlaceholder.displayName = MOSAIC_PLACEHOLDER_NAME;
|
|
|
786
722
|
var DROP_INDICATOR_NAME = "Mosaic.DropIndicator";
|
|
787
723
|
var MosaicDropIndicator = (props) => {
|
|
788
724
|
const { state } = useMosaicTileContext(DROP_INDICATOR_NAME);
|
|
789
|
-
return state.type === "target" && state.closestEdge ? /* @__PURE__ */
|
|
725
|
+
return state.type === "target" && state.closestEdge ? /* @__PURE__ */ React4.createElement(NaturalDropIndicator, {
|
|
790
726
|
...props,
|
|
791
727
|
edge: state.closestEdge
|
|
792
728
|
}) : null;
|
|
@@ -794,56 +730,66 @@ var MosaicDropIndicator = (props) => {
|
|
|
794
730
|
MosaicDropIndicator.displayName = DROP_INDICATOR_NAME;
|
|
795
731
|
|
|
796
732
|
// src/components/Mosaic/Stack.tsx
|
|
733
|
+
import { useComposedRefs as useComposedRefs3 } from "@radix-ui/react-compose-refs";
|
|
797
734
|
import { useVirtualizer } from "@tanstack/react-virtual";
|
|
798
|
-
import
|
|
735
|
+
import React5, { forwardRef as forwardRef2, Fragment, useCallback as useCallback3, useEffect as useEffect3, useRef as useRef5 } from "react";
|
|
799
736
|
import { invariant } from "@dxos/invariant";
|
|
800
|
-
import { composableProps as
|
|
737
|
+
import { composable as composable2, composableProps as composableProps3, mx as mx2 } from "@dxos/ui-theme";
|
|
801
738
|
var __dxlog_file2 = "/__w/dxos/dxos/packages/ui/react-ui-mosaic/src/components/Mosaic/Stack.tsx";
|
|
802
739
|
var MOSAIC_STACK_NAME = "MosaicStack";
|
|
803
|
-
var MosaicStackInner =
|
|
804
|
-
const {
|
|
805
|
-
invariant(Tile, void 0, {
|
|
806
|
-
F: __dxlog_file2,
|
|
807
|
-
L: 63,
|
|
808
|
-
S: void 0,
|
|
809
|
-
A: [
|
|
810
|
-
"Tile",
|
|
811
|
-
""
|
|
812
|
-
]
|
|
813
|
-
});
|
|
814
|
-
const { id, orientation = orientationProp, dragging } = useMosaicContainerContext(MOSAIC_STACK_NAME);
|
|
740
|
+
var MosaicStackInner = composable2(({ orientation: orientationProp = "vertical", getId, items, scrollIntoView = true, Tile, draggable: draggable2 = true, debug, ...props }, forwardedRef) => {
|
|
741
|
+
const { id, orientation = orientationProp, dragging, currentId, registerScrollTo } = useMosaicContainerContext(MOSAIC_STACK_NAME);
|
|
815
742
|
const visibleItems = useVisibleItems({
|
|
816
743
|
id,
|
|
817
744
|
items,
|
|
818
745
|
dragging: dragging?.source.data,
|
|
819
746
|
getId
|
|
820
747
|
});
|
|
821
|
-
invariant(orientation === "vertical" || orientation === "horizontal", `Invalid orientation: ${orientation}`, {
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
748
|
+
invariant(orientation === "vertical" || orientation === "horizontal", `Invalid orientation: ${orientation}`, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 45, S: void 0, A: ["orientation === 'vertical' || orientation === 'horizontal'", "`Invalid orientation: ${orientation}`"] });
|
|
749
|
+
const rootRef = useRef5(null);
|
|
750
|
+
const scrollToId = useCallback3((targetId) => {
|
|
751
|
+
if (!scrollIntoView) {
|
|
752
|
+
return;
|
|
753
|
+
}
|
|
754
|
+
const el = rootRef.current?.querySelector(`[data-object-id="${CSS.escape(targetId)}"]`);
|
|
755
|
+
el?.scrollIntoView({
|
|
756
|
+
block: "nearest",
|
|
757
|
+
behavior: "smooth"
|
|
758
|
+
});
|
|
759
|
+
}, [
|
|
760
|
+
scrollIntoView
|
|
761
|
+
]);
|
|
762
|
+
useEffect3(() => {
|
|
763
|
+
registerScrollTo(scrollToId);
|
|
764
|
+
return () => registerScrollTo(void 0);
|
|
765
|
+
}, [
|
|
766
|
+
registerScrollTo,
|
|
767
|
+
scrollToId
|
|
768
|
+
]);
|
|
769
|
+
const composedRef = useComposedRefs3(rootRef, forwardedRef);
|
|
770
|
+
return /* @__PURE__ */ React5.createElement("div", {
|
|
771
|
+
...composableProps3(props, {
|
|
772
|
+
role: "list",
|
|
773
|
+
classNames: [
|
|
774
|
+
"flex",
|
|
775
|
+
orientation === "horizontal" && "h-full [&>*]:shrink-0",
|
|
776
|
+
orientation === "vertical" && "flex-col"
|
|
777
|
+
]
|
|
778
|
+
}),
|
|
779
|
+
ref: composedRef
|
|
780
|
+
}, draggable2 && /* @__PURE__ */ React5.createElement(InternalPlaceholder, {
|
|
836
781
|
orientation,
|
|
837
782
|
location: 0.5
|
|
838
|
-
}), visibleItems?.map((item, index) => /* @__PURE__ */
|
|
783
|
+
}), visibleItems?.map((item, index) => /* @__PURE__ */ React5.createElement(Fragment, {
|
|
839
784
|
key: getId(item)
|
|
840
|
-
}, /* @__PURE__ */
|
|
785
|
+
}, /* @__PURE__ */ React5.createElement(Tile, {
|
|
841
786
|
id: getId(item),
|
|
842
787
|
data: item,
|
|
843
788
|
location: index + 1,
|
|
844
789
|
draggable: draggable2,
|
|
790
|
+
current: getId(item) === currentId,
|
|
845
791
|
debug
|
|
846
|
-
}), /* @__PURE__ */
|
|
792
|
+
}), draggable2 && /* @__PURE__ */ React5.createElement(InternalPlaceholder, {
|
|
847
793
|
orientation,
|
|
848
794
|
location: index + 1.5
|
|
849
795
|
}))));
|
|
@@ -851,36 +797,86 @@ var MosaicStackInner = /* @__PURE__ */ forwardRef5(({ role = "list", orientation
|
|
|
851
797
|
MosaicStackInner.displayName = MOSAIC_STACK_NAME;
|
|
852
798
|
var MosaicStack = MosaicStackInner;
|
|
853
799
|
var MOSAIC_VIRTUAL_STACK_NAME = "MosaicVirtualStack";
|
|
854
|
-
var MosaicVirtualStackInner = /* @__PURE__ */
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
F: __dxlog_file2,
|
|
858
|
-
L: 128,
|
|
859
|
-
S: void 0,
|
|
860
|
-
A: [
|
|
861
|
-
"Tile",
|
|
862
|
-
""
|
|
863
|
-
]
|
|
864
|
-
});
|
|
865
|
-
const { id, dragging } = useMosaicContainerContext(MOSAIC_VIRTUAL_STACK_NAME);
|
|
800
|
+
var MosaicVirtualStackInner = /* @__PURE__ */ forwardRef2(({ orientation = "vertical", getId, items, scrollIntoView = true, Tile, estimateSize, getScrollElement, overscan = 8, gap, onChange, draggable: draggable2 = true, debug, ...props }, forwardedRef) => {
|
|
801
|
+
invariant(Tile, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 101, S: void 0, A: ["Tile", ""] });
|
|
802
|
+
const { id, dragging, currentId, registerScrollTo } = useMosaicContainerContext(MOSAIC_VIRTUAL_STACK_NAME);
|
|
866
803
|
const visibleItems = useVisibleItems({
|
|
867
804
|
id,
|
|
868
805
|
items,
|
|
869
806
|
dragging: dragging?.source.data,
|
|
870
807
|
getId
|
|
871
808
|
});
|
|
809
|
+
const wrappedEstimateSize = draggable2 ? (index) => index % 2 === 0 ? 0 : estimateSize(Math.floor(index / 2)) : estimateSize;
|
|
872
810
|
const virtualizer = useVirtualizer({
|
|
873
|
-
|
|
874
|
-
|
|
811
|
+
// NOTE: When draggable we double the number of items to allow for placeholders.
|
|
812
|
+
count: draggable2 ? visibleItems.length * 2 + 1 : visibleItems.length,
|
|
813
|
+
estimateSize: wrappedEstimateSize,
|
|
814
|
+
gap,
|
|
815
|
+
// Key measurements by stable item ID so the size cache survives scrolling;
|
|
816
|
+
// without this, measurements are indexed by position and are lost when items reorder.
|
|
817
|
+
getItemKey: draggable2 ? (index) => index % 2 === 0 ? `ph-${index}` : getId(visibleItems[Math.floor(index / 2)]) : (index) => getId(visibleItems[index]),
|
|
875
818
|
getScrollElement,
|
|
876
819
|
overscan,
|
|
877
820
|
onChange
|
|
878
821
|
});
|
|
822
|
+
const scrollToId = useCallback3((targetId) => {
|
|
823
|
+
const itemIndex = visibleItems.findIndex((item) => getId(item) === targetId);
|
|
824
|
+
if (itemIndex >= 0) {
|
|
825
|
+
if (!scrollIntoView) {
|
|
826
|
+
return;
|
|
827
|
+
}
|
|
828
|
+
const virtualIndex = draggable2 ? itemIndex * 2 + 1 : itemIndex;
|
|
829
|
+
virtualizer.scrollToIndex(virtualIndex, {
|
|
830
|
+
align: "start",
|
|
831
|
+
behavior: "smooth"
|
|
832
|
+
});
|
|
833
|
+
}
|
|
834
|
+
}, [
|
|
835
|
+
visibleItems,
|
|
836
|
+
getId,
|
|
837
|
+
draggable2,
|
|
838
|
+
virtualizer,
|
|
839
|
+
scrollIntoView
|
|
840
|
+
]);
|
|
841
|
+
useEffect3(() => {
|
|
842
|
+
registerScrollTo(scrollToId);
|
|
843
|
+
return () => registerScrollTo(void 0);
|
|
844
|
+
}, [
|
|
845
|
+
registerScrollTo,
|
|
846
|
+
scrollToId
|
|
847
|
+
]);
|
|
879
848
|
const virtualItems = virtualizer.getVirtualItems();
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
849
|
+
const getData = (index) => {
|
|
850
|
+
if (draggable2) {
|
|
851
|
+
if (index % 2 === 0) {
|
|
852
|
+
return {
|
|
853
|
+
location: Math.floor(index / 2) + 0.5
|
|
854
|
+
};
|
|
855
|
+
} else {
|
|
856
|
+
return {
|
|
857
|
+
data: visibleItems[Math.floor(index / 2)],
|
|
858
|
+
location: Math.floor(index / 2) + 1
|
|
859
|
+
};
|
|
860
|
+
}
|
|
861
|
+
} else {
|
|
862
|
+
return {
|
|
863
|
+
data: visibleItems[index],
|
|
864
|
+
location: index + 1
|
|
865
|
+
};
|
|
866
|
+
}
|
|
867
|
+
};
|
|
868
|
+
return /* @__PURE__ */ React5.createElement("div", {
|
|
869
|
+
...composableProps3(props, {
|
|
870
|
+
role: "list",
|
|
871
|
+
classNames: [
|
|
872
|
+
// shrink-0 is required: this div sets an explicit height via inline style (getTotalSize).
|
|
873
|
+
// Without it, a parent flex container (e.g. ScrollArea.Viewport) would shrink this div
|
|
874
|
+
// to the viewport height, collapsing the scroll content and causing scrollbar drift.
|
|
875
|
+
"flex shrink-0",
|
|
876
|
+
orientation === "horizontal" && "h-full [&>*]:shrink-0",
|
|
877
|
+
orientation === "vertical" && "flex-col"
|
|
878
|
+
]
|
|
879
|
+
}),
|
|
884
880
|
style: {
|
|
885
881
|
position: "relative",
|
|
886
882
|
...orientation === "vertical" ? {
|
|
@@ -892,43 +888,46 @@ var MosaicVirtualStackInner = /* @__PURE__ */ forwardRef5(({ role = "list", orie
|
|
|
892
888
|
}
|
|
893
889
|
},
|
|
894
890
|
ref: forwardedRef
|
|
895
|
-
}, virtualItems.map((
|
|
896
|
-
const data =
|
|
897
|
-
return /* @__PURE__ */
|
|
898
|
-
key
|
|
899
|
-
"data-index":
|
|
891
|
+
}, virtualItems.map(({ key, index, start }) => {
|
|
892
|
+
const { data, location } = getData(index);
|
|
893
|
+
return /* @__PURE__ */ React5.createElement("div", {
|
|
894
|
+
key,
|
|
895
|
+
"data-index": index,
|
|
900
896
|
style: {
|
|
901
897
|
position: "absolute",
|
|
902
898
|
top: 0,
|
|
903
899
|
left: 0,
|
|
904
900
|
...orientation === "vertical" ? {
|
|
905
901
|
width: "100%",
|
|
906
|
-
transform: `translateY(${
|
|
902
|
+
transform: `translateY(${start}px)`
|
|
907
903
|
} : {
|
|
908
904
|
height: "100%",
|
|
909
|
-
transform: `translateX(${
|
|
905
|
+
transform: `translateX(${start}px)`
|
|
910
906
|
}
|
|
911
907
|
},
|
|
912
908
|
ref: virtualizer.measureElement
|
|
913
|
-
},
|
|
914
|
-
orientation,
|
|
915
|
-
location: Math.floor(virtualItem.index / 2) + 0.5
|
|
916
|
-
}) : /* @__PURE__ */ React6.createElement(Tile, {
|
|
909
|
+
}, data ? /* @__PURE__ */ React5.createElement(Tile, {
|
|
917
910
|
id: getId(data),
|
|
918
911
|
data,
|
|
919
|
-
location
|
|
912
|
+
location,
|
|
913
|
+
draggable: draggable2,
|
|
914
|
+
current: getId(data) === currentId,
|
|
920
915
|
debug
|
|
916
|
+
}) : /* @__PURE__ */ React5.createElement(InternalPlaceholder, {
|
|
917
|
+
orientation,
|
|
918
|
+
location
|
|
921
919
|
}));
|
|
922
920
|
}));
|
|
923
921
|
});
|
|
924
922
|
MosaicVirtualStackInner.displayName = MOSAIC_VIRTUAL_STACK_NAME;
|
|
925
923
|
var MosaicVirtualStack = MosaicVirtualStackInner;
|
|
924
|
+
MosaicVirtualStack[/* @__PURE__ */ Symbol.for("dxos.composable")] = true;
|
|
926
925
|
var InternalPlaceholder = (props) => {
|
|
927
|
-
return /* @__PURE__ */
|
|
926
|
+
return /* @__PURE__ */ React5.createElement(MosaicPlaceholder, {
|
|
928
927
|
...props,
|
|
929
928
|
classNames: styles.placeholder.root
|
|
930
|
-
}, /* @__PURE__ */
|
|
931
|
-
className:
|
|
929
|
+
}, /* @__PURE__ */ React5.createElement("div", {
|
|
930
|
+
className: mx2("flex h-full bg-base-surface border border-dashed border-separator rounded-xs", styles.placeholder.content)
|
|
932
931
|
}));
|
|
933
932
|
};
|
|
934
933
|
InternalPlaceholder.displayName = "InternalPlaceholder";
|
|
@@ -946,8 +945,8 @@ var Mosaic = {
|
|
|
946
945
|
|
|
947
946
|
export {
|
|
948
947
|
useVisibleItems,
|
|
949
|
-
useFocus,
|
|
950
948
|
Focus,
|
|
949
|
+
useFocus,
|
|
951
950
|
styles,
|
|
952
951
|
getSourceData,
|
|
953
952
|
useMosaicRootContext,
|
|
@@ -955,4 +954,4 @@ export {
|
|
|
955
954
|
useMosaicTileContext,
|
|
956
955
|
Mosaic
|
|
957
956
|
};
|
|
958
|
-
//# sourceMappingURL=chunk-
|
|
957
|
+
//# sourceMappingURL=chunk-HOLJERCP.mjs.map
|