@dxos/react-ui-dnd 0.8.3 → 0.8.4-main.2e9d522
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/index.mjs +9 -7
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +9 -7
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/types/src/components/ResizeHandle.d.ts +3 -3
- package/dist/types/src/components/ResizeHandle.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -1
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -10
- package/src/components/ResizeHandle.tsx +6 -4
- package/src/index.ts +1 -1
- package/dist/lib/node/index.cjs +0 -170
- package/dist/lib/node/index.cjs.map +0 -7
- package/dist/lib/node/meta.json +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/react-ui-dnd",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.4-main.2e9d522",
|
|
4
4
|
"description": "Drag and drop components.",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -17,11 +17,7 @@
|
|
|
17
17
|
},
|
|
18
18
|
"types": "dist/types/src/index.d.ts",
|
|
19
19
|
"typesVersions": {
|
|
20
|
-
"*": {
|
|
21
|
-
"testing": [
|
|
22
|
-
"dist/types/src/testing/index.d.ts"
|
|
23
|
-
]
|
|
24
|
-
}
|
|
20
|
+
"*": {}
|
|
25
21
|
},
|
|
26
22
|
"files": [
|
|
27
23
|
"dist",
|
|
@@ -38,14 +34,14 @@
|
|
|
38
34
|
"react": "~18.2.0",
|
|
39
35
|
"react-dom": "~18.2.0",
|
|
40
36
|
"vite": "5.4.7",
|
|
41
|
-
"@dxos/react-ui": "0.8.
|
|
42
|
-
"@dxos/react-ui-theme": "0.8.
|
|
37
|
+
"@dxos/react-ui": "0.8.4-main.2e9d522",
|
|
38
|
+
"@dxos/react-ui-theme": "0.8.4-main.2e9d522"
|
|
43
39
|
},
|
|
44
40
|
"peerDependencies": {
|
|
45
41
|
"react": "~18.2.0",
|
|
46
42
|
"react-dom": "~18.2.0",
|
|
47
|
-
"@dxos/react-ui
|
|
48
|
-
"@dxos/react-ui": "0.8.
|
|
43
|
+
"@dxos/react-ui": "0.8.4-main.2e9d522",
|
|
44
|
+
"@dxos/react-ui-theme": "0.8.4-main.2e9d522"
|
|
49
45
|
},
|
|
50
46
|
"publishConfig": {
|
|
51
47
|
"access": "public"
|
|
@@ -42,18 +42,18 @@ const RESIZE_SUBJECT = 'data-dx-resize-subject';
|
|
|
42
42
|
const RESIZE_SUBJECT_DRAGGING = 'data-dx-resizing';
|
|
43
43
|
|
|
44
44
|
export const resizeAttributes = {
|
|
45
|
-
|
|
45
|
+
[RESIZE_SUBJECT]: true,
|
|
46
46
|
};
|
|
47
47
|
|
|
48
48
|
export type ResizeHandleProps = ThemedClassName<{
|
|
49
49
|
side: Side;
|
|
50
|
+
iconPosition?: 'start' | 'center' | 'end';
|
|
50
51
|
defaultSize?: Size;
|
|
51
52
|
fallbackSize: number;
|
|
52
53
|
size?: Size;
|
|
53
54
|
minSize: number;
|
|
54
55
|
maxSize?: number;
|
|
55
56
|
unit?: 'rem';
|
|
56
|
-
iconPosition?: 'start' | 'center' | 'end';
|
|
57
57
|
onSizeChange?: (nextSize: Size, commit?: boolean) => void;
|
|
58
58
|
}>;
|
|
59
59
|
|
|
@@ -63,14 +63,14 @@ export const ResizeHandle = ({
|
|
|
63
63
|
iconPosition = 'start',
|
|
64
64
|
defaultSize,
|
|
65
65
|
fallbackSize,
|
|
66
|
-
size:
|
|
66
|
+
size: _size,
|
|
67
67
|
minSize,
|
|
68
68
|
maxSize,
|
|
69
69
|
onSizeChange,
|
|
70
70
|
}: ResizeHandleProps) => {
|
|
71
71
|
const buttonRef = useRef<HTMLButtonElement>(null);
|
|
72
72
|
const [size = 'min-content', setSize] = useControllableState({
|
|
73
|
-
prop:
|
|
73
|
+
prop: _size,
|
|
74
74
|
defaultProp: defaultSize,
|
|
75
75
|
onChange: onSizeChange,
|
|
76
76
|
});
|
|
@@ -102,6 +102,8 @@ export const ResizeHandle = ({
|
|
|
102
102
|
: dragStartSize.current;
|
|
103
103
|
buttonRef.current?.closest(`[${RESIZE_SUBJECT}]`)?.setAttribute(RESIZE_SUBJECT_DRAGGING, 'true');
|
|
104
104
|
},
|
|
105
|
+
// NOTE: Throttling here doesn't prevent the warning:
|
|
106
|
+
// Measure loop restarted more than 5 times
|
|
105
107
|
onDrag: ({ location }) => {
|
|
106
108
|
if (typeof dragStartSize.current !== 'number') {
|
|
107
109
|
return;
|
package/src/index.ts
CHANGED
package/dist/lib/node/index.cjs
DELETED
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __create = Object.create;
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __export = (target, all) => {
|
|
9
|
-
for (var name in all)
|
|
10
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
-
};
|
|
12
|
-
var __copyProps = (to, from, except, desc) => {
|
|
13
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
-
for (let key of __getOwnPropNames(from))
|
|
15
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
-
}
|
|
18
|
-
return to;
|
|
19
|
-
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
-
mod
|
|
27
|
-
));
|
|
28
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var node_exports = {};
|
|
30
|
-
__export(node_exports, {
|
|
31
|
-
REM: () => REM,
|
|
32
|
-
ResizeHandle: () => ResizeHandle,
|
|
33
|
-
resizeAttributes: () => resizeAttributes,
|
|
34
|
-
sizeStyle: () => sizeStyle
|
|
35
|
-
});
|
|
36
|
-
module.exports = __toCommonJS(node_exports);
|
|
37
|
-
var import_tracking = require("@preact-signals/safe-react/tracking");
|
|
38
|
-
var import_adapter = require("@atlaskit/pragmatic-drag-and-drop/element/adapter");
|
|
39
|
-
var import_disable_native_drag_preview = require("@atlaskit/pragmatic-drag-and-drop/element/disable-native-drag-preview");
|
|
40
|
-
var import_prevent_unhandled = require("@atlaskit/pragmatic-drag-and-drop/prevent-unhandled");
|
|
41
|
-
var import_react_use_controllable_state = require("@radix-ui/react-use-controllable-state");
|
|
42
|
-
var import_react = __toESM(require("react"));
|
|
43
|
-
var import_react_ui = require("@dxos/react-ui");
|
|
44
|
-
var import_react_ui_theme = require("@dxos/react-ui-theme");
|
|
45
|
-
var sizeStyle = (size, sideOrOrientation, calcSize) => {
|
|
46
|
-
let sizeProperty = "inlineSize";
|
|
47
|
-
switch (sideOrOrientation) {
|
|
48
|
-
case "vertical":
|
|
49
|
-
case "block-start":
|
|
50
|
-
case "block-end":
|
|
51
|
-
sizeProperty = "blockSize";
|
|
52
|
-
}
|
|
53
|
-
return {
|
|
54
|
-
[sizeProperty]: size === "min-content" ? calcSize ? "var(--dx-calc-min)" : "min-content" : `${size}rem`
|
|
55
|
-
};
|
|
56
|
-
};
|
|
57
|
-
var REM = parseFloat(getComputedStyle(document.documentElement).fontSize);
|
|
58
|
-
var measureSubject = (element, fallbackSize) => {
|
|
59
|
-
const stackItemElement = element.closest("[data-dx-resize-subject]");
|
|
60
|
-
return stackItemElement?.getBoundingClientRect() ?? {
|
|
61
|
-
width: fallbackSize,
|
|
62
|
-
height: fallbackSize
|
|
63
|
-
};
|
|
64
|
-
};
|
|
65
|
-
var getNextSize = (startSize, location, client, side, minSize, maxSize) => {
|
|
66
|
-
return Math.min(maxSize ?? Infinity, Math.max(minSize, startSize + (location.current.input[client] - location.initial.input[client]) / REM * (side.endsWith("end") ? 1 : -1)));
|
|
67
|
-
};
|
|
68
|
-
var RESIZE_SUBJECT = "data-dx-resize-subject";
|
|
69
|
-
var RESIZE_SUBJECT_DRAGGING = "data-dx-resizing";
|
|
70
|
-
var resizeAttributes = {
|
|
71
|
-
"data-dx-resize-subject": true
|
|
72
|
-
};
|
|
73
|
-
var ResizeHandle = ({ classNames, side, iconPosition = "start", defaultSize, fallbackSize, size: propsSize, minSize, maxSize, onSizeChange }) => {
|
|
74
|
-
var _effect = (0, import_tracking.useSignals)();
|
|
75
|
-
try {
|
|
76
|
-
const buttonRef = (0, import_react.useRef)(null);
|
|
77
|
-
const [size = "min-content", setSize] = (0, import_react_use_controllable_state.useControllableState)({
|
|
78
|
-
prop: propsSize,
|
|
79
|
-
defaultProp: defaultSize,
|
|
80
|
-
onChange: onSizeChange
|
|
81
|
-
});
|
|
82
|
-
const dragStartSize = (0, import_react.useRef)(size);
|
|
83
|
-
const elevation = (0, import_react_ui.useElevationContext)();
|
|
84
|
-
const orientation = side.startsWith("inline") ? "horizontal" : "vertical";
|
|
85
|
-
const client = orientation === "horizontal" ? "clientX" : "clientY";
|
|
86
|
-
(0, import_react.useLayoutEffect)(() => {
|
|
87
|
-
if (!buttonRef.current) {
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
return (0, import_adapter.draggable)({
|
|
91
|
-
element: buttonRef.current,
|
|
92
|
-
onGenerateDragPreview: ({ nativeSetDragImage }) => {
|
|
93
|
-
(0, import_disable_native_drag_preview.disableNativeDragPreview)({
|
|
94
|
-
nativeSetDragImage
|
|
95
|
-
});
|
|
96
|
-
import_prevent_unhandled.preventUnhandled.start();
|
|
97
|
-
},
|
|
98
|
-
onDragStart: () => {
|
|
99
|
-
dragStartSize.current = dragStartSize.current === "min-content" ? measureSubject(buttonRef.current, fallbackSize)[orientation === "horizontal" ? "width" : "height"] / REM : dragStartSize.current;
|
|
100
|
-
buttonRef.current?.closest(`[${RESIZE_SUBJECT}]`)?.setAttribute(RESIZE_SUBJECT_DRAGGING, "true");
|
|
101
|
-
},
|
|
102
|
-
onDrag: ({ location }) => {
|
|
103
|
-
if (typeof dragStartSize.current !== "number") {
|
|
104
|
-
return;
|
|
105
|
-
}
|
|
106
|
-
setSize(getNextSize(dragStartSize.current, location, client, side, minSize, maxSize));
|
|
107
|
-
},
|
|
108
|
-
onDrop: ({ location }) => {
|
|
109
|
-
if (typeof dragStartSize.current !== "number") {
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
112
|
-
const nextSize = getNextSize(dragStartSize.current, location, client, side, minSize, maxSize);
|
|
113
|
-
setSize(nextSize);
|
|
114
|
-
onSizeChange?.(nextSize, true);
|
|
115
|
-
dragStartSize.current = nextSize;
|
|
116
|
-
buttonRef.current?.closest(`[${RESIZE_SUBJECT}]`)?.removeAttribute(RESIZE_SUBJECT_DRAGGING);
|
|
117
|
-
}
|
|
118
|
-
});
|
|
119
|
-
}, [
|
|
120
|
-
// Note that `size` should not be a dependency here since dragging this adjusts the size.
|
|
121
|
-
minSize,
|
|
122
|
-
maxSize
|
|
123
|
-
]);
|
|
124
|
-
return /* @__PURE__ */ import_react.default.createElement("button", {
|
|
125
|
-
ref: buttonRef,
|
|
126
|
-
"data-side": side,
|
|
127
|
-
className: (0, import_react_ui_theme.mx)("group absolute flex focus-visible:outline-none", (0, import_react_ui_theme.surfaceZIndex)({
|
|
128
|
-
elevation,
|
|
129
|
-
level: "tooltip"
|
|
130
|
-
}), orientation === "horizontal" ? 'cursor-col-resize is-4 inset-block-0 data-[side="inline-end"]:inline-end-0 data-[side="inline-end"]:before:inline-end-0 data-[side="inline-start"]:inline-start-0 data-[side="inline-start"]:before:inline-start-0 !border-lb-0 before:inset-block-0 before:is-1' : 'cursor-row-resize bs-4 inset-inline-0 data-[side="block-end"]:block-end-0 data-[side="block-end"]:before:block-end-0 data-[side="block-start"]:block-start-0 data-[side="block-start"]:before:block-start-0 !border-li-0 before:inset-inline-0 before:bs-1', orientation === "horizontal" ? iconPosition === "end" ? "align-end" : iconPosition === "center" ? "align-center" : "align-start" : iconPosition === "end" ? "justify-end" : iconPosition === "center" ? "justify-center" : "justify-start", "before:transition-opacity before:duration-100 before:ease-in-out before:opacity-0 hover:before:opacity-100 focus-visible:before:opacity-100 active:before:opacity-100", "before:absolute before:block before:bg-neutralFocusIndicator", classNames)
|
|
131
|
-
}, /* @__PURE__ */ import_react.default.createElement("div", {
|
|
132
|
-
role: "none",
|
|
133
|
-
"data-side": side,
|
|
134
|
-
className: (0, import_react_ui_theme.mx)("grid place-items-center group-hover:opacity-0 group-focus-visible:opacity-0 group-active:opacity-0", orientation === "horizontal" ? "bs-[--rail-size] is-4" : "is-[--rail-size] bs-4")
|
|
135
|
-
}, /* @__PURE__ */ import_react.default.createElement(DragHandleSignifier, {
|
|
136
|
-
side
|
|
137
|
-
})));
|
|
138
|
-
} finally {
|
|
139
|
-
_effect.f();
|
|
140
|
-
}
|
|
141
|
-
};
|
|
142
|
-
var DragHandleSignifier = ({ side }) => {
|
|
143
|
-
var _effect = (0, import_tracking.useSignals)();
|
|
144
|
-
try {
|
|
145
|
-
return /* @__PURE__ */ import_react.default.createElement("svg", {
|
|
146
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
147
|
-
viewBox: "0 0 256 256",
|
|
148
|
-
fill: "currentColor",
|
|
149
|
-
className: (0, import_react_ui_theme.mx)("shrink-0 bs-4 is-4 text-unAccent", side === "block-end" ? "rotate-90" : side === "block-start" ? "-rotate-90" : side === "inline-start" && "rotate-180")
|
|
150
|
-
}, /* @__PURE__ */ import_react.default.createElement("path", {
|
|
151
|
-
d: "M256,64c-8.8,0-16-7.2-16-16s7.2-16,16-16v32Z"
|
|
152
|
-
}), /* @__PURE__ */ import_react.default.createElement("path", {
|
|
153
|
-
d: "M256,120c-8.8,0-16-7.2-16-16s7.2-16,16-16v32Z"
|
|
154
|
-
}), /* @__PURE__ */ import_react.default.createElement("path", {
|
|
155
|
-
d: "M256,176c-8.8,0-16-7.2-16-16s7.2-16,16-16v32Z"
|
|
156
|
-
}), /* @__PURE__ */ import_react.default.createElement("path", {
|
|
157
|
-
d: "M256,232c-8.8,0-16-7.2-16-16s7.2-16,16-16v32Z"
|
|
158
|
-
}));
|
|
159
|
-
} finally {
|
|
160
|
-
_effect.f();
|
|
161
|
-
}
|
|
162
|
-
};
|
|
163
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
164
|
-
0 && (module.exports = {
|
|
165
|
-
REM,
|
|
166
|
-
ResizeHandle,
|
|
167
|
-
resizeAttributes,
|
|
168
|
-
sizeStyle
|
|
169
|
-
});
|
|
170
|
-
//# sourceMappingURL=index.cjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/ResizeHandle.tsx", "../../../src/util/sizeStyle.ts", "../../../src/util/rem.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { draggable } from '@atlaskit/pragmatic-drag-and-drop/element/adapter';\nimport { disableNativeDragPreview } from '@atlaskit/pragmatic-drag-and-drop/element/disable-native-drag-preview';\nimport { preventUnhandled } from '@atlaskit/pragmatic-drag-and-drop/prevent-unhandled';\nimport { type DragLocationHistory } from '@atlaskit/pragmatic-drag-and-drop/types';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport React, { useLayoutEffect, useRef } from 'react';\n\nimport { type ThemedClassName, useElevationContext } from '@dxos/react-ui';\nimport { mx, surfaceZIndex } from '@dxos/react-ui-theme';\n\nimport { type Size, type Side } from '../types';\nimport { REM } from '../util';\n\nconst measureSubject = (element: HTMLButtonElement, fallbackSize: number): { width: number; height: number } => {\n const stackItemElement = element.closest('[data-dx-resize-subject]');\n return stackItemElement?.getBoundingClientRect() ?? { width: fallbackSize, height: fallbackSize };\n};\n\nconst getNextSize = (\n startSize: number,\n location: DragLocationHistory,\n client: 'clientX' | 'clientY',\n side: Side,\n minSize: number,\n maxSize: number | undefined,\n) => {\n return Math.min(\n maxSize ?? Infinity,\n Math.max(\n minSize,\n startSize +\n ((location.current.input[client] - location.initial.input[client]) / REM) * (side.endsWith('end') ? 1 : -1),\n ),\n );\n};\n\nconst RESIZE_SUBJECT = 'data-dx-resize-subject';\nconst RESIZE_SUBJECT_DRAGGING = 'data-dx-resizing';\n\nexport const resizeAttributes = {\n 'data-dx-resize-subject': true,\n};\n\nexport type ResizeHandleProps = ThemedClassName<{\n side: Side;\n defaultSize?: Size;\n fallbackSize: number;\n size?: Size;\n minSize: number;\n maxSize?: number;\n unit?: 'rem';\n iconPosition?: 'start' | 'center' | 'end';\n onSizeChange?: (nextSize: Size, commit?: boolean) => void;\n}>;\n\nexport const ResizeHandle = ({\n classNames,\n side,\n iconPosition = 'start',\n defaultSize,\n fallbackSize,\n size: propsSize,\n minSize,\n maxSize,\n onSizeChange,\n}: ResizeHandleProps) => {\n const buttonRef = useRef<HTMLButtonElement>(null);\n const [size = 'min-content', setSize] = useControllableState({\n prop: propsSize,\n defaultProp: defaultSize,\n onChange: onSizeChange,\n });\n const dragStartSize = useRef<Size>(size);\n const elevation = useElevationContext();\n\n const orientation = side.startsWith('inline') ? 'horizontal' : 'vertical';\n const client = orientation === 'horizontal' ? 'clientX' : 'clientY';\n\n useLayoutEffect(() => {\n if (!buttonRef.current) {\n return;\n }\n\n // TODO(thure): This should handle StackItem state vs local state better.\n return draggable({\n element: buttonRef.current,\n onGenerateDragPreview: ({ nativeSetDragImage }) => {\n // We will be moving the line to indicate a drag; we can disable the native drag preview.\n disableNativeDragPreview({ nativeSetDragImage });\n // We don't want any native drop animation for when the user does not drop on a drop target.\n // We want the drag to finish immediately.\n preventUnhandled.start();\n },\n onDragStart: () => {\n dragStartSize.current =\n dragStartSize.current === 'min-content'\n ? measureSubject(buttonRef.current!, fallbackSize)[orientation === 'horizontal' ? 'width' : 'height'] / REM\n : dragStartSize.current;\n buttonRef.current?.closest(`[${RESIZE_SUBJECT}]`)?.setAttribute(RESIZE_SUBJECT_DRAGGING, 'true');\n },\n onDrag: ({ location }) => {\n if (typeof dragStartSize.current !== 'number') {\n return;\n }\n setSize(getNextSize(dragStartSize.current, location, client, side, minSize, maxSize));\n },\n onDrop: ({ location }) => {\n if (typeof dragStartSize.current !== 'number') {\n return;\n }\n const nextSize = getNextSize(dragStartSize.current, location, client, side, minSize, maxSize);\n setSize(nextSize);\n onSizeChange?.(nextSize, true);\n dragStartSize.current = nextSize;\n buttonRef.current?.closest(`[${RESIZE_SUBJECT}]`)?.removeAttribute(RESIZE_SUBJECT_DRAGGING);\n },\n });\n }, [\n // Note that `size` should not be a dependency here since dragging this adjusts the size.\n minSize,\n maxSize,\n ]);\n\n return (\n <button\n ref={buttonRef}\n data-side={side}\n className={mx(\n 'group absolute flex focus-visible:outline-none',\n surfaceZIndex({ elevation, level: 'tooltip' }),\n orientation === 'horizontal'\n ? 'cursor-col-resize is-4 inset-block-0 data-[side=\"inline-end\"]:inline-end-0 data-[side=\"inline-end\"]:before:inline-end-0 data-[side=\"inline-start\"]:inline-start-0 data-[side=\"inline-start\"]:before:inline-start-0 !border-lb-0 before:inset-block-0 before:is-1'\n : 'cursor-row-resize bs-4 inset-inline-0 data-[side=\"block-end\"]:block-end-0 data-[side=\"block-end\"]:before:block-end-0 data-[side=\"block-start\"]:block-start-0 data-[side=\"block-start\"]:before:block-start-0 !border-li-0 before:inset-inline-0 before:bs-1',\n orientation === 'horizontal'\n ? iconPosition === 'end'\n ? 'align-end'\n : iconPosition === 'center'\n ? 'align-center'\n : 'align-start'\n : iconPosition === 'end'\n ? 'justify-end'\n : iconPosition === 'center'\n ? 'justify-center'\n : 'justify-start',\n 'before:transition-opacity before:duration-100 before:ease-in-out before:opacity-0 hover:before:opacity-100 focus-visible:before:opacity-100 active:before:opacity-100',\n 'before:absolute before:block before:bg-neutralFocusIndicator',\n classNames,\n )}\n >\n <div\n role='none'\n data-side={side}\n className={mx(\n 'grid place-items-center group-hover:opacity-0 group-focus-visible:opacity-0 group-active:opacity-0',\n orientation === 'horizontal' ? 'bs-[--rail-size] is-4' : 'is-[--rail-size] bs-4',\n )}\n >\n <DragHandleSignifier side={side} />\n </div>\n </button>\n );\n};\n\nconst DragHandleSignifier = ({ side }: Pick<ResizeHandleProps, 'side'>) => {\n return (\n <svg\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 256 256'\n fill='currentColor'\n className={mx(\n 'shrink-0 bs-4 is-4 text-unAccent',\n side === 'block-end'\n ? 'rotate-90'\n : side === 'block-start'\n ? '-rotate-90'\n : side === 'inline-start' && 'rotate-180',\n )}\n >\n {/* two pips: <path d='M256,120c-8.8,0-16-7.2-16-16v-56c0-8.8,7.2-16,16-16v88Z' />\n <path d='M256,232c-8.8,0-16-7.2-16-16v-56c0-8.8,7.2-16,16-16v88Z' /> */}\n <path d='M256,64c-8.8,0-16-7.2-16-16s7.2-16,16-16v32Z' />\n <path d='M256,120c-8.8,0-16-7.2-16-16s7.2-16,16-16v32Z' />\n <path d='M256,176c-8.8,0-16-7.2-16-16s7.2-16,16-16v32Z' />\n <path d='M256,232c-8.8,0-16-7.2-16-16s7.2-16,16-16v32Z' />\n </svg>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type ResizeHandleProps } from '../components';\nimport { type Size } from '../types';\n\nexport const sizeStyle = (\n size: Size,\n sideOrOrientation: ResizeHandleProps['side'] | 'horizontal' | 'vertical',\n // TODO(thure): This is an experimental feature under evaluation; remove if the default should become `true`.\n calcSize?: boolean,\n) => {\n let sizeProperty = 'inlineSize';\n switch (sideOrOrientation) {\n case 'vertical':\n case 'block-start':\n case 'block-end':\n sizeProperty = 'blockSize';\n }\n return { [sizeProperty]: size === 'min-content' ? (calcSize ? 'var(--dx-calc-min)' : 'min-content') : `${size}rem` };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nexport const REM = parseFloat(getComputedStyle(document.documentElement).fontSize);\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["sizeStyle", "size", "sideOrOrientation", "calcSize", "sizeProperty", "REM", "parseFloat", "getComputedStyle", "document", "documentElement", "fontSize", "measureSubject", "element", "fallbackSize", "stackItemElement", "closest", "getBoundingClientRect", "width", "height", "getNextSize", "startSize", "location", "client", "side", "minSize", "maxSize", "Math", "min", "Infinity", "max", "current", "input", "initial", "endsWith", "RESIZE_SUBJECT", "RESIZE_SUBJECT_DRAGGING", "resizeAttributes", "ResizeHandle", "classNames", "iconPosition", "defaultSize", "propsSize", "onSizeChange", "buttonRef", "useRef", "setSize", "useControllableState", "prop", "defaultProp", "onChange", "dragStartSize", "elevation", "useElevationContext", "orientation", "startsWith", "useLayoutEffect", "draggable", "onGenerateDragPreview", "nativeSetDragImage", "disableNativeDragPreview", "preventUnhandled", "start", "onDragStart", "setAttribute", "onDrag", "onDrop", "nextSize", "removeAttribute", "React", "button", "ref", "data-side", "className", "mx", "surfaceZIndex", "level", "div", "role", "DragHandleSignifier", "svg", "xmlns", "viewBox", "fill", "path", "d"]
|
|
7
|
-
}
|
package/dist/lib/node/meta.json
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"inputs":{"packages/ui/react-ui-dnd/src/util/sizeStyle.ts":{"bytes":2175,"imports":[],"format":"esm"},"packages/ui/react-ui-dnd/src/util/rem.ts":{"bytes":763,"imports":[],"format":"esm"},"packages/ui/react-ui-dnd/src/util/index.ts":{"bytes":549,"imports":[{"path":"packages/ui/react-ui-dnd/src/util/sizeStyle.ts","kind":"import-statement","original":"./sizeStyle"},{"path":"packages/ui/react-ui-dnd/src/util/rem.ts","kind":"import-statement","original":"./rem"}],"format":"esm"},"packages/ui/react-ui-dnd/src/components/ResizeHandle.tsx":{"bytes":22003,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/element/adapter","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/element/disable-native-drag-preview","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/prevent-unhandled","kind":"import-statement","external":true},{"path":"@radix-ui/react-use-controllable-state","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-dnd/src/util/index.ts","kind":"import-statement","original":"../util"}],"format":"esm"},"packages/ui/react-ui-dnd/src/components/index.ts":{"bytes":487,"imports":[{"path":"packages/ui/react-ui-dnd/src/components/ResizeHandle.tsx","kind":"import-statement","original":"./ResizeHandle"}],"format":"esm"},"packages/ui/react-ui-dnd/src/types.ts":{"bytes":572,"imports":[],"format":"esm"},"packages/ui/react-ui-dnd/src/index.ts":{"bytes":631,"imports":[{"path":"packages/ui/react-ui-dnd/src/components/index.ts","kind":"import-statement","original":"./components"},{"path":"packages/ui/react-ui-dnd/src/types.ts","kind":"import-statement","original":"./types"},{"path":"packages/ui/react-ui-dnd/src/util/index.ts","kind":"import-statement","original":"./util"}],"format":"esm"}},"outputs":{"packages/ui/react-ui-dnd/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":12481},"packages/ui/react-ui-dnd/dist/lib/node/index.cjs":{"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/element/adapter","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/element/disable-native-drag-preview","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/prevent-unhandled","kind":"import-statement","external":true},{"path":"@radix-ui/react-use-controllable-state","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"exports":["REM","ResizeHandle","resizeAttributes","sizeStyle"],"entryPoint":"packages/ui/react-ui-dnd/src/index.ts","inputs":{"packages/ui/react-ui-dnd/src/components/ResizeHandle.tsx":{"bytesInOutput":6015},"packages/ui/react-ui-dnd/src/util/sizeStyle.ts":{"bytesInOutput":355},"packages/ui/react-ui-dnd/src/util/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-dnd/src/util/rem.ts":{"bytesInOutput":75},"packages/ui/react-ui-dnd/src/components/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-dnd/src/index.ts":{"bytesInOutput":0}},"bytes":6764}}}
|