@dxos/react-ui-stack 0.8.2-main.f11618f → 0.8.2-staging.42af850
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 +484 -422
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs.map +3 -3
- package/dist/lib/node/index.cjs +472 -411
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/testing/index.cjs.map +3 -3
- package/dist/lib/node-esm/index.mjs +484 -422
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/testing/index.mjs.map +3 -3
- package/dist/types/src/components/{Stack.d.ts → Stack/Stack.d.ts} +4 -1
- package/dist/types/src/components/Stack/Stack.d.ts.map +1 -0
- package/dist/types/src/components/Stack/Stack.stories.d.ts +9 -0
- package/dist/types/src/components/Stack/Stack.stories.d.ts.map +1 -0
- package/dist/types/src/components/Stack/index.d.ts +2 -0
- package/dist/types/src/components/Stack/index.d.ts.map +1 -0
- package/dist/types/src/components/StackContext.d.ts +14 -10
- package/dist/types/src/components/StackContext.d.ts.map +1 -1
- package/dist/types/src/components/StackItem/MenuSignifier.d.ts.map +1 -0
- package/dist/types/src/components/{StackItem.d.ts → StackItem/StackItem.d.ts} +14 -5
- package/dist/types/src/components/StackItem/StackItem.d.ts.map +1 -0
- package/dist/types/src/components/StackItem/StackItem.stories.d.ts +8 -0
- package/dist/types/src/components/StackItem/StackItem.stories.d.ts.map +1 -0
- package/dist/types/src/components/StackItem/StackItemContent.d.ts.map +1 -0
- package/dist/types/src/components/StackItem/StackItemDragHandle.d.ts.map +1 -0
- package/dist/types/src/components/StackItem/StackItemHeading.d.ts.map +1 -0
- package/dist/types/src/components/StackItem/StackItemResizeHandle.d.ts.map +1 -0
- package/dist/types/src/components/StackItem/StackItemSigil.d.ts.map +1 -0
- package/dist/types/src/components/StackItem/index.d.ts +2 -0
- package/dist/types/src/components/StackItem/index.d.ts.map +1 -0
- package/dist/types/src/components/defs.d.ts +18 -0
- package/dist/types/src/components/defs.d.ts.map +1 -0
- package/dist/types/src/components/deprecated/LayoutControls.d.ts.map +1 -0
- package/dist/types/src/components/index.d.ts +1 -2
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/hooks/useStackDropForElements.d.ts +3 -4
- package/dist/types/src/hooks/useStackDropForElements.d.ts.map +1 -1
- package/dist/types/src/testing/stack-manager.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +21 -20
- package/src/components/{Stack.stories.tsx → Stack/Stack.stories.tsx} +29 -17
- package/src/components/{Stack.tsx → Stack/Stack.tsx} +37 -5
- package/src/components/Stack/index.ts +5 -0
- package/src/components/StackContext.tsx +21 -13
- package/src/components/StackItem/StackItem.stories.tsx +49 -0
- package/src/components/{StackItem.tsx → StackItem/StackItem.tsx} +90 -11
- package/src/components/{StackItemContent.tsx → StackItem/StackItemContent.tsx} +1 -1
- package/src/components/{StackItemDragHandle.tsx → StackItem/StackItemDragHandle.tsx} +1 -1
- package/src/components/{StackItemHeading.tsx → StackItem/StackItemHeading.tsx} +3 -2
- package/src/components/{StackItemResizeHandle.tsx → StackItem/StackItemResizeHandle.tsx} +1 -1
- package/src/components/{StackItemSigil.tsx → StackItem/StackItemSigil.tsx} +3 -15
- package/src/components/StackItem/index.ts +5 -0
- package/src/components/defs.ts +26 -0
- package/src/components/{LayoutControls.tsx → deprecated/LayoutControls.tsx} +3 -23
- package/src/components/index.ts +2 -2
- package/src/hooks/useStackDropForElements.ts +3 -4
- package/src/testing/stack-manager.ts +6 -6
- package/dist/types/src/components/LayoutControls.d.ts.map +0 -1
- package/dist/types/src/components/MenuSignifier.d.ts.map +0 -1
- package/dist/types/src/components/Stack.d.ts.map +0 -1
- package/dist/types/src/components/Stack.stories.d.ts +0 -8
- package/dist/types/src/components/Stack.stories.d.ts.map +0 -1
- package/dist/types/src/components/StackItem.d.ts.map +0 -1
- package/dist/types/src/components/StackItemContent.d.ts.map +0 -1
- package/dist/types/src/components/StackItemDragHandle.d.ts.map +0 -1
- package/dist/types/src/components/StackItemHeading.d.ts.map +0 -1
- package/dist/types/src/components/StackItemResizeHandle.d.ts.map +0 -1
- package/dist/types/src/components/StackItemSigil.d.ts.map +0 -1
- /package/dist/types/src/components/{MenuSignifier.d.ts → StackItem/MenuSignifier.d.ts} +0 -0
- /package/dist/types/src/components/{StackItemContent.d.ts → StackItem/StackItemContent.d.ts} +0 -0
- /package/dist/types/src/components/{StackItemDragHandle.d.ts → StackItem/StackItemDragHandle.d.ts} +0 -0
- /package/dist/types/src/components/{StackItemHeading.d.ts → StackItem/StackItemHeading.d.ts} +0 -0
- /package/dist/types/src/components/{StackItemResizeHandle.d.ts → StackItem/StackItemResizeHandle.d.ts} +0 -0
- /package/dist/types/src/components/{StackItemSigil.d.ts → StackItem/StackItemSigil.d.ts} +0 -0
- /package/dist/types/src/components/{LayoutControls.d.ts → deprecated/LayoutControls.d.ts} +0 -0
- /package/src/components/{MenuSignifier.tsx → StackItem/MenuSignifier.tsx} +0 -0
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import { combine } from '@atlaskit/pragmatic-drag-and-drop/combine';
|
|
6
6
|
import { draggable, dropTargetForElements } from '@atlaskit/pragmatic-drag-and-drop/element/adapter';
|
|
7
7
|
import { preserveOffsetOnSource } from '@atlaskit/pragmatic-drag-and-drop/element/preserve-offset-on-source';
|
|
8
|
-
import {
|
|
8
|
+
import { setCustomNativeDragPreview } from '@atlaskit/pragmatic-drag-and-drop/element/set-custom-native-drag-preview';
|
|
9
9
|
import {
|
|
10
10
|
attachClosestEdge,
|
|
11
11
|
extractClosestEdge,
|
|
@@ -13,13 +13,20 @@ import {
|
|
|
13
13
|
} from '@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge';
|
|
14
14
|
import { useFocusableGroup } from '@fluentui/react-tabster';
|
|
15
15
|
import { composeRefs } from '@radix-ui/react-compose-refs';
|
|
16
|
-
import React, {
|
|
16
|
+
import React, {
|
|
17
|
+
forwardRef,
|
|
18
|
+
useLayoutEffect,
|
|
19
|
+
useState,
|
|
20
|
+
type ComponentPropsWithRef,
|
|
21
|
+
useCallback,
|
|
22
|
+
type ReactNode,
|
|
23
|
+
} from 'react';
|
|
24
|
+
import { createPortal } from 'react-dom';
|
|
17
25
|
|
|
18
26
|
import { type ThemedClassName, ListItem } from '@dxos/react-ui';
|
|
19
27
|
import { resizeAttributes, sizeStyle } from '@dxos/react-ui-dnd';
|
|
20
28
|
import { mx } from '@dxos/react-ui-theme';
|
|
21
29
|
|
|
22
|
-
import { useStack, StackItemContext, type StackItemSize, type StackItemData } from './StackContext';
|
|
23
30
|
import { StackItemContent, type StackItemContentProps } from './StackItemContent';
|
|
24
31
|
import { StackItemDragHandle, type StackItemDragHandleProps } from './StackItemDragHandle';
|
|
25
32
|
import {
|
|
@@ -36,15 +43,19 @@ import {
|
|
|
36
43
|
type StackItemSigilButtonProps,
|
|
37
44
|
StackItemSigilButton,
|
|
38
45
|
} from './StackItemSigil';
|
|
46
|
+
import { useStack, StackItemContext, idle, type ItemDragState, useStackItem } from '../StackContext';
|
|
47
|
+
import { type StackItemSize, type StackItemData } from '../defs';
|
|
39
48
|
|
|
40
49
|
// NOTE: 48rem fills the screen on a MacbookPro with the sidebars closed.
|
|
41
50
|
export const DEFAULT_HORIZONTAL_SIZE = 48 satisfies StackItemSize;
|
|
42
51
|
export const DEFAULT_VERTICAL_SIZE = 'min-content' satisfies StackItemSize;
|
|
43
52
|
export const DEFAULT_EXTRINSIC_SIZE = DEFAULT_HORIZONTAL_SIZE satisfies StackItemSize;
|
|
44
53
|
|
|
45
|
-
|
|
54
|
+
type StackItemRootProps = ThemedClassName<ComponentPropsWithRef<'div'>> & {
|
|
46
55
|
item: Omit<StackItemData, 'type'>;
|
|
47
56
|
order?: number;
|
|
57
|
+
prevSiblingId?: string;
|
|
58
|
+
nextSiblingId?: string;
|
|
48
59
|
size?: StackItemSize;
|
|
49
60
|
onSizeChange?: (nextSize: StackItemSize) => void;
|
|
50
61
|
role?: 'article' | 'section';
|
|
@@ -62,6 +73,8 @@ const StackItemRoot = forwardRef<HTMLDivElement, StackItemRootProps>(
|
|
|
62
73
|
onSizeChange,
|
|
63
74
|
role,
|
|
64
75
|
order,
|
|
76
|
+
prevSiblingId,
|
|
77
|
+
nextSiblingId,
|
|
65
78
|
style,
|
|
66
79
|
disableRearrange,
|
|
67
80
|
focusIndicatorVariant = 'over-all',
|
|
@@ -72,6 +85,8 @@ const StackItemRoot = forwardRef<HTMLDivElement, StackItemRootProps>(
|
|
|
72
85
|
const [itemElement, itemRef] = useState<HTMLDivElement | null>(null);
|
|
73
86
|
const [selfDragHandleElement, selfDragHandleRef] = useState<HTMLDivElement | null>(null);
|
|
74
87
|
const [closestEdge, setEdge] = useState<Edge | null>(null);
|
|
88
|
+
const [sourceId, setSourceId] = useState<string | null>(null);
|
|
89
|
+
const [dragState, setDragState] = useState<ItemDragState>(idle);
|
|
75
90
|
const { orientation, rail, onRearrange } = useStack();
|
|
76
91
|
const [size = orientation === 'horizontal' ? DEFAULT_HORIZONTAL_SIZE : DEFAULT_VERTICAL_SIZE, setInternalSize] =
|
|
77
92
|
useState(propsSize);
|
|
@@ -104,18 +119,28 @@ const StackItemRoot = forwardRef<HTMLDivElement, StackItemRootProps>(
|
|
|
104
119
|
getInitialData: () => ({ id: item.id, type }),
|
|
105
120
|
onGenerateDragPreview: ({ nativeSetDragImage, source, location }) => {
|
|
106
121
|
document.body.setAttribute('data-drag-preview', 'true');
|
|
107
|
-
|
|
108
|
-
const
|
|
109
|
-
|
|
122
|
+
const offsetFn = preserveOffsetOnSource({ element: source.element, input: location.current.input });
|
|
123
|
+
const rect = source.element.getBoundingClientRect();
|
|
124
|
+
setCustomNativeDragPreview({
|
|
125
|
+
nativeSetDragImage,
|
|
126
|
+
getOffset: ({ container }) => {
|
|
127
|
+
return offsetFn({ container });
|
|
128
|
+
},
|
|
129
|
+
render: ({ container }) => {
|
|
130
|
+
container.style.width = rect.width + 'px';
|
|
131
|
+
setDragState({ type: 'preview', container, item });
|
|
132
|
+
return () => {};
|
|
133
|
+
},
|
|
110
134
|
});
|
|
111
|
-
nativeSetDragImage?.(source.element, x, y);
|
|
112
135
|
},
|
|
113
136
|
onDragStart: () => {
|
|
114
137
|
document.body.removeAttribute('data-drag-preview');
|
|
115
138
|
itemElement?.closest('[data-drag-autoscroll]')?.setAttribute('data-drag-autoscroll', 'active');
|
|
139
|
+
setDragState({ type: 'is-dragging', item });
|
|
116
140
|
},
|
|
117
141
|
onDrop: () => {
|
|
118
142
|
itemElement?.closest('[data-drag-autoscroll]')?.setAttribute('data-drag-autoscroll', 'idle');
|
|
143
|
+
setDragState(idle);
|
|
119
144
|
},
|
|
120
145
|
}),
|
|
121
146
|
dropTargetForElements({
|
|
@@ -129,16 +154,22 @@ const StackItemRoot = forwardRef<HTMLDivElement, StackItemRootProps>(
|
|
|
129
154
|
onDragEnter: ({ self, source }) => {
|
|
130
155
|
if (source.data.type === self.data.type) {
|
|
131
156
|
setEdge(extractClosestEdge(self.data));
|
|
157
|
+
setSourceId(source.data.id as string);
|
|
132
158
|
}
|
|
133
159
|
},
|
|
134
160
|
onDrag: ({ self, source }) => {
|
|
135
161
|
if (source.data.type === self.data.type) {
|
|
136
162
|
setEdge(extractClosestEdge(self.data));
|
|
163
|
+
setSourceId(source.data.id as string);
|
|
137
164
|
}
|
|
138
165
|
},
|
|
139
|
-
onDragLeave: () =>
|
|
166
|
+
onDragLeave: () => {
|
|
167
|
+
setEdge(null);
|
|
168
|
+
setSourceId(null);
|
|
169
|
+
},
|
|
140
170
|
onDrop: ({ self, source }) => {
|
|
141
171
|
setEdge(null);
|
|
172
|
+
setSourceId(null);
|
|
142
173
|
if (source.data.type === self.data.type) {
|
|
143
174
|
onRearrange(source.data as StackItemData, self.data as StackItemData, extractClosestEdge(self.data));
|
|
144
175
|
}
|
|
@@ -149,8 +180,42 @@ const StackItemRoot = forwardRef<HTMLDivElement, StackItemRootProps>(
|
|
|
149
180
|
|
|
150
181
|
const focusableGroupAttrs = useFocusableGroup({ tabBehavior: 'limited' });
|
|
151
182
|
|
|
183
|
+
// Determine if the drop would result in any changes
|
|
184
|
+
const shouldShowDropIndicator = () => {
|
|
185
|
+
if (!closestEdge || !sourceId) {
|
|
186
|
+
return false;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
// Don't show indicator when dragged item is over itself
|
|
190
|
+
if (sourceId === item.id) {
|
|
191
|
+
return false;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
// Don't show indicator when dragged item is over the trailing edge of its previous sibling
|
|
195
|
+
const isTrailingEdgeOfPrevSibling =
|
|
196
|
+
prevSiblingId !== undefined &&
|
|
197
|
+
sourceId === prevSiblingId &&
|
|
198
|
+
((orientation === 'horizontal' && closestEdge === 'left') ||
|
|
199
|
+
(orientation === 'vertical' && closestEdge === 'top'));
|
|
200
|
+
if (isTrailingEdgeOfPrevSibling) {
|
|
201
|
+
return false;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
// Don't show indicator when dragged item is over the leading edge of its next sibling
|
|
205
|
+
const isLeadingEdgeOfNextSibling =
|
|
206
|
+
nextSiblingId !== undefined &&
|
|
207
|
+
sourceId === nextSiblingId &&
|
|
208
|
+
((orientation === 'horizontal' && closestEdge === 'right') ||
|
|
209
|
+
(orientation === 'vertical' && closestEdge === 'bottom'));
|
|
210
|
+
if (isLeadingEdgeOfNextSibling) {
|
|
211
|
+
return false;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
return true;
|
|
215
|
+
};
|
|
216
|
+
|
|
152
217
|
return (
|
|
153
|
-
<StackItemContext.Provider value={{ selfDragHandleRef, size, setSize }}>
|
|
218
|
+
<StackItemContext.Provider value={{ selfDragHandleRef, size, setSize, state: dragState, setState: setDragState }}>
|
|
154
219
|
<Root
|
|
155
220
|
{...props}
|
|
156
221
|
tabIndex={0}
|
|
@@ -178,13 +243,24 @@ const StackItemRoot = forwardRef<HTMLDivElement, StackItemRootProps>(
|
|
|
178
243
|
ref={composedItemRef}
|
|
179
244
|
>
|
|
180
245
|
{children}
|
|
181
|
-
{
|
|
246
|
+
{shouldShowDropIndicator() && closestEdge && (
|
|
247
|
+
<ListItem.DropIndicator lineInset={8} terminalInset={-8} edge={closestEdge} />
|
|
248
|
+
)}
|
|
182
249
|
</Root>
|
|
183
250
|
</StackItemContext.Provider>
|
|
184
251
|
);
|
|
185
252
|
},
|
|
186
253
|
);
|
|
187
254
|
|
|
255
|
+
type StackItemDragPreviewProps = {
|
|
256
|
+
children: ({ item }: { item: any }) => ReactNode;
|
|
257
|
+
};
|
|
258
|
+
|
|
259
|
+
export const StackItemDragPreview = ({ children }: StackItemDragPreviewProps) => {
|
|
260
|
+
const { state } = useStackItem();
|
|
261
|
+
return state?.type === 'preview' ? createPortal(children({ item: state.item }), state.container) : null;
|
|
262
|
+
};
|
|
263
|
+
|
|
188
264
|
export const StackItem = {
|
|
189
265
|
Root: StackItemRoot,
|
|
190
266
|
Content: StackItemContent,
|
|
@@ -194,9 +270,11 @@ export const StackItem = {
|
|
|
194
270
|
DragHandle: StackItemDragHandle,
|
|
195
271
|
Sigil: StackItemSigil,
|
|
196
272
|
SigilButton: StackItemSigilButton,
|
|
273
|
+
DragPreview: StackItemDragPreview,
|
|
197
274
|
};
|
|
198
275
|
|
|
199
276
|
export type {
|
|
277
|
+
StackItemRootProps,
|
|
200
278
|
StackItemContentProps,
|
|
201
279
|
StackItemHeadingProps,
|
|
202
280
|
StackItemHeadingLabelProps,
|
|
@@ -205,4 +283,5 @@ export type {
|
|
|
205
283
|
StackItemSigilProps,
|
|
206
284
|
StackItemSigilButtonProps,
|
|
207
285
|
StackItemSigilAction,
|
|
286
|
+
StackItemDragPreviewProps,
|
|
208
287
|
};
|
|
@@ -7,7 +7,7 @@ import React, { type ComponentPropsWithoutRef, forwardRef } from 'react';
|
|
|
7
7
|
import { type ThemedClassName } from '@dxos/react-ui';
|
|
8
8
|
import { mx } from '@dxos/react-ui-theme';
|
|
9
9
|
|
|
10
|
-
import { useStack } from '
|
|
10
|
+
import { useStack } from '../StackContext';
|
|
11
11
|
|
|
12
12
|
export type StackItemContentProps = ThemedClassName<ComponentPropsWithoutRef<'div'>> & {
|
|
13
13
|
/**
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import { Slot } from '@radix-ui/react-slot';
|
|
6
6
|
import React, { type ComponentPropsWithoutRef } from 'react';
|
|
7
7
|
|
|
8
|
-
import { useStackItem } from '
|
|
8
|
+
import { useStackItem } from '../StackContext';
|
|
9
9
|
|
|
10
10
|
export type StackItemDragHandleProps = ComponentPropsWithoutRef<'button'> & { asChild: boolean };
|
|
11
11
|
|
|
@@ -9,7 +9,7 @@ import { type ThemedClassName } from '@dxos/react-ui';
|
|
|
9
9
|
import { useAttention, type AttendableId, type Related } from '@dxos/react-ui-attention';
|
|
10
10
|
import { mx } from '@dxos/react-ui-theme';
|
|
11
11
|
|
|
12
|
-
import { useStack } from '
|
|
12
|
+
import { useStack } from '../StackContext';
|
|
13
13
|
|
|
14
14
|
export type StackItemHeadingProps = ThemedClassName<ComponentPropsWithoutRef<'div'>>;
|
|
15
15
|
|
|
@@ -24,8 +24,9 @@ export const StackItemHeading = ({ children, classNames, ...props }: StackItemHe
|
|
|
24
24
|
tabIndex={0}
|
|
25
25
|
{...focusableGroupAttrs}
|
|
26
26
|
className={mx(
|
|
27
|
-
'flex items-center dx-focus-ring-inset-over-all relative !border-is-0',
|
|
27
|
+
'flex items-center dx-focus-ring-inset-over-all relative !border-is-0 bg-headerSurface border-transparent [[data-scroll-separator="true"]_&]:border-subduedSeparator',
|
|
28
28
|
orientation === 'horizontal' ? 'bs-[--rail-size]' : 'is-[--rail-size] flex-col',
|
|
29
|
+
orientation === 'horizontal' ? 'border-be' : 'border-ie',
|
|
29
30
|
classNames,
|
|
30
31
|
)}
|
|
31
32
|
>
|
|
@@ -6,8 +6,8 @@ import React from 'react';
|
|
|
6
6
|
|
|
7
7
|
import { ResizeHandle } from '@dxos/react-ui-dnd';
|
|
8
8
|
|
|
9
|
-
import { useStack, useStackItem } from './StackContext';
|
|
10
9
|
import { DEFAULT_EXTRINSIC_SIZE } from './StackItem';
|
|
10
|
+
import { useStack, useStackItem } from '../StackContext';
|
|
11
11
|
|
|
12
12
|
const MIN_WIDTH = 20;
|
|
13
13
|
const MIN_HEIGHT = 3;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Copyright 2024 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import React, { Fragment, type PropsWithChildren, forwardRef,
|
|
5
|
+
import React, { Fragment, type PropsWithChildren, forwardRef, useState } from 'react';
|
|
6
6
|
|
|
7
7
|
import { type ActionLike } from '@dxos/app-graph';
|
|
8
8
|
import { keySymbols } from '@dxos/keyboard';
|
|
@@ -12,7 +12,7 @@ import { descriptionText, mx } from '@dxos/react-ui-theme';
|
|
|
12
12
|
import { getHostPlatform } from '@dxos/util';
|
|
13
13
|
|
|
14
14
|
import { MenuSignifierHorizontal } from './MenuSignifier';
|
|
15
|
-
import { translationKey } from '
|
|
15
|
+
import { translationKey } from '../../translations';
|
|
16
16
|
|
|
17
17
|
export type KeyBinding = {
|
|
18
18
|
windows?: string;
|
|
@@ -62,7 +62,6 @@ export type StackItemSigilProps = PropsWithChildren<
|
|
|
62
62
|
export const StackItemSigil = forwardRef<HTMLButtonElement, StackItemSigilProps>(
|
|
63
63
|
({ actions: actionGroups, onAction, triggerLabel, attendableId, icon, related, children }, forwardedRef) => {
|
|
64
64
|
const { t } = useTranslation(translationKey);
|
|
65
|
-
const suppressNextTooltip = useRef(false);
|
|
66
65
|
|
|
67
66
|
const [optionsMenuOpen, setOptionsMenuOpen] = useState(false);
|
|
68
67
|
|
|
@@ -87,17 +86,7 @@ export const StackItemSigil = forwardRef<HTMLButtonElement, StackItemSigilProps>
|
|
|
87
86
|
}
|
|
88
87
|
|
|
89
88
|
return (
|
|
90
|
-
<DropdownMenu.Root
|
|
91
|
-
{...{
|
|
92
|
-
open: optionsMenuOpen,
|
|
93
|
-
onOpenChange: (nextOpen: boolean) => {
|
|
94
|
-
if (!nextOpen) {
|
|
95
|
-
suppressNextTooltip.current = true;
|
|
96
|
-
}
|
|
97
|
-
return setOptionsMenuOpen(nextOpen);
|
|
98
|
-
},
|
|
99
|
-
}}
|
|
100
|
-
>
|
|
89
|
+
<DropdownMenu.Root open={optionsMenuOpen} onOpenChange={setOptionsMenuOpen}>
|
|
101
90
|
<DropdownMenu.Trigger asChild ref={forwardedRef}>
|
|
102
91
|
{button}
|
|
103
92
|
</DropdownMenu.Trigger>
|
|
@@ -127,7 +116,6 @@ export const StackItemSigil = forwardRef<HTMLButtonElement, StackItemSigilProps>
|
|
|
127
116
|
}
|
|
128
117
|
event.stopPropagation();
|
|
129
118
|
// TODO(thure): Why does Dialog’s modal-ness cause issues if we don’t explicitly close the menu here?
|
|
130
|
-
suppressNextTooltip.current = true;
|
|
131
119
|
setOptionsMenuOpen(false);
|
|
132
120
|
onAction?.(action);
|
|
133
121
|
}}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2025 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import type { Edge } from '@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge';
|
|
6
|
+
|
|
7
|
+
import { type Size as DndSize } from '@dxos/react-ui-dnd';
|
|
8
|
+
|
|
9
|
+
import { type Orientation, type Size } from './Stack';
|
|
10
|
+
|
|
11
|
+
export type StackItemSize = DndSize;
|
|
12
|
+
|
|
13
|
+
export type StackItemData = { id: string; type: 'column' | 'card' };
|
|
14
|
+
|
|
15
|
+
export type StackItemRearrangeHandler<Data extends { id: string } = StackItemData> = (
|
|
16
|
+
source: Data,
|
|
17
|
+
target: Data,
|
|
18
|
+
closestEdge: Edge | null,
|
|
19
|
+
) => void;
|
|
20
|
+
|
|
21
|
+
export type StackContextValue = {
|
|
22
|
+
orientation: Orientation;
|
|
23
|
+
rail: boolean;
|
|
24
|
+
size: Size;
|
|
25
|
+
onRearrange?: StackItemRearrangeHandler;
|
|
26
|
+
};
|
|
@@ -4,17 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
import React, { forwardRef } from 'react';
|
|
6
6
|
|
|
7
|
-
import {
|
|
8
|
-
Button,
|
|
9
|
-
ButtonGroup,
|
|
10
|
-
type ButtonGroupProps,
|
|
11
|
-
type ButtonProps,
|
|
12
|
-
Icon,
|
|
13
|
-
Tooltip,
|
|
14
|
-
useTranslation,
|
|
15
|
-
} from '@dxos/react-ui';
|
|
7
|
+
import { ButtonGroup, type ButtonGroupProps, type ButtonProps, IconButton, useTranslation } from '@dxos/react-ui';
|
|
16
8
|
|
|
17
|
-
import { translationKey } from '
|
|
9
|
+
import { translationKey } from '../../translations';
|
|
18
10
|
|
|
19
11
|
export type LayoutControlEvent = 'solo' | 'close' | `${'pin' | 'increment'}-${'start' | 'end'}`;
|
|
20
12
|
export type LayoutControlHandler = (event: LayoutControlEvent) => void;
|
|
@@ -35,19 +27,7 @@ export type LayoutControlsProps = Omit<ButtonGroupProps, 'onClick'> & {
|
|
|
35
27
|
};
|
|
36
28
|
|
|
37
29
|
const LayoutControl = ({ icon, label, ...props }: Omit<ButtonProps, 'children'> & { label: string; icon: string }) => {
|
|
38
|
-
return
|
|
39
|
-
<Tooltip.Root>
|
|
40
|
-
<Tooltip.Trigger asChild>
|
|
41
|
-
<Button variant='ghost' {...props}>
|
|
42
|
-
<span className='sr-only'>{label}</span>
|
|
43
|
-
<Icon icon={icon} />
|
|
44
|
-
</Button>
|
|
45
|
-
</Tooltip.Trigger>
|
|
46
|
-
<Tooltip.Portal>
|
|
47
|
-
<Tooltip.Content side='bottom'>{label}</Tooltip.Content>
|
|
48
|
-
</Tooltip.Portal>
|
|
49
|
-
</Tooltip.Root>
|
|
50
|
-
);
|
|
30
|
+
return <IconButton iconOnly icon={icon} label={label} tooltipSide='bottom' variant='ghost' {...props} />;
|
|
51
31
|
};
|
|
52
32
|
|
|
53
33
|
export const LayoutControls = forwardRef<HTMLDivElement, LayoutControlsProps>(
|
package/src/components/index.ts
CHANGED
|
@@ -8,23 +8,22 @@ import { autoScrollForElements } from '@atlaskit/pragmatic-drag-and-drop-auto-sc
|
|
|
8
8
|
import { attachClosestEdge, extractClosestEdge } from '@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge';
|
|
9
9
|
import { useLayoutEffect, useState } from 'react';
|
|
10
10
|
|
|
11
|
-
import { type Orientation } from '../components
|
|
12
|
-
import { type StackItemRearrangeHandler, type StackItemData } from '../components/StackContext';
|
|
11
|
+
import { type StackItemRearrangeHandler, type StackItemData, type Orientation } from '../components';
|
|
13
12
|
|
|
14
13
|
/**
|
|
15
14
|
* Hook to handle drag and drop functionality for Stack components.
|
|
16
15
|
*/
|
|
17
16
|
export const useStackDropForElements = ({
|
|
17
|
+
id,
|
|
18
18
|
element,
|
|
19
19
|
selfDroppable,
|
|
20
20
|
orientation,
|
|
21
|
-
id,
|
|
22
21
|
onRearrange,
|
|
23
22
|
}: {
|
|
23
|
+
id?: string;
|
|
24
24
|
element: HTMLDivElement | null;
|
|
25
25
|
selfDroppable: boolean;
|
|
26
26
|
orientation: Orientation;
|
|
27
|
-
id?: string;
|
|
28
27
|
onRearrange?: StackItemRearrangeHandler;
|
|
29
28
|
}) => {
|
|
30
29
|
const [dropping, setDropping] = useState(false);
|
|
@@ -11,7 +11,7 @@ export class StackManager {
|
|
|
11
11
|
this._page = locator.page();
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
sections() {
|
|
14
|
+
sections(): Locator {
|
|
15
15
|
return this.locator.locator('section');
|
|
16
16
|
}
|
|
17
17
|
|
|
@@ -19,7 +19,7 @@ export class StackManager {
|
|
|
19
19
|
return this.locator.locator('section').evaluateAll((els) => els.map((el) => el.getAttribute('id')));
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
section(index: number) {
|
|
22
|
+
section(index: number): SectionManager {
|
|
23
23
|
return new SectionManager(this.locator.locator('section').nth(index));
|
|
24
24
|
}
|
|
25
25
|
}
|
|
@@ -31,21 +31,21 @@ export class SectionManager {
|
|
|
31
31
|
this._page = locator.page();
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
async id() {
|
|
34
|
+
async id(): Promise<string | null> {
|
|
35
35
|
return this.locator.getAttribute('id');
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
async remove() {
|
|
38
|
+
async remove(): Promise<void> {
|
|
39
39
|
await this.locator.getByTestId('section.drag-handle-menu-trigger').click();
|
|
40
40
|
await this._page.getByTestId('section.remove').click();
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
async navigateTo() {
|
|
43
|
+
async navigateTo(): Promise<void> {
|
|
44
44
|
await this.locator.getByTestId('section.drag-handle-menu-trigger').click();
|
|
45
45
|
await this._page.getByTestId('section.navigate-to').click();
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
async dragTo(target: Locator, offset: { x: number; y: number } = { x: 0, y: 0 }) {
|
|
48
|
+
async dragTo(target: Locator, offset: { x: number; y: number } = { x: 0, y: 0 }): Promise<void> {
|
|
49
49
|
const active = this.locator.getByTestId('section.drag-handle-menu-trigger');
|
|
50
50
|
const box = await target.boundingBox();
|
|
51
51
|
if (box) {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LayoutControls.d.ts","sourceRoot":"","sources":["../../../../src/components/LayoutControls.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAE1C,OAAO,EAGL,KAAK,gBAAgB,EAKtB,MAAM,gBAAgB,CAAC;AAIxB,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,OAAO,GAAG,GAAG,KAAK,GAAG,WAAW,IAAI,OAAO,GAAG,KAAK,EAAE,CAAC;AAChG,MAAM,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;AAEvE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,GAAG;IACpE,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,OAAO,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IACtC,KAAK,CAAC,EAAE,OAAO,GAAG,cAAc,GAAG,YAAY,CAAC;IAChD,YAAY,EAAE,kBAAkB,CAAC;IACjC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;CAChC,CAAC;AAkBF,eAAO,MAAM,cAAc,yGA4E1B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MenuSignifier.d.ts","sourceRoot":"","sources":["../../../../src/components/MenuSignifier.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,eAAO,MAAM,uBAAuB,yBAoBnC,CAAC;AAEF,eAAO,MAAM,qBAAqB,yBAIjC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Stack.d.ts","sourceRoot":"","sources":["../../../../src/components/Stack.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,EAAgC,KAAK,qBAAqB,EAAiC,MAAM,OAAO,CAAC;AAEvH,OAAO,EAAE,KAAK,eAAe,EAAY,MAAM,gBAAgB,CAAC;AAGhE,OAAO,EAAE,KAAK,iBAAiB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGtE,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,UAAU,CAAC;AACpD,MAAM,MAAM,IAAI,GAAG,WAAW,GAAG,SAAS,GAAG,qBAAqB,CAAC;AAEnE,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,GAC9F,OAAO,CAAC,iBAAiB,CAAC,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvD,eAAO,MAAM,kBAAkB,gFAAgF,CAAC;AAChH,eAAO,MAAM,gBAAgB,gFAAgF,CAAC;AAG9G,eAAO,MAAM,mCAAmC,2HAC0E,CAAC;AAC3H,eAAO,MAAM,iCAAiC,2HAC4E,CAAC;AAE3H,eAAO,MAAM,wBAAwB;;CAAqC,CAAC;AAE3E,eAAO,MAAM,KAAK,gGA8EjB,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,CAAC;AAExB,YAAY,EAAE,iBAAiB,EAAE,CAAC"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { type Meta, type StoryObj } from '@storybook/react';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
declare const StorybookStack: () => React.JSX.Element;
|
|
4
|
-
type Story = StoryObj<typeof StorybookStack>;
|
|
5
|
-
export declare const Default: Story;
|
|
6
|
-
declare const meta: Meta<typeof StorybookStack>;
|
|
7
|
-
export default meta;
|
|
8
|
-
//# sourceMappingURL=Stack.stories.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Stack.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/Stack.stories.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAgC,MAAM,OAAO,CAAC;AAuBrD,QAAA,MAAM,cAAc,yBAwFnB,CAAC;AAEF,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,cAAc,CAAC,CAAC;AAE7C,eAAO,MAAM,OAAO,EAAE,KAIrB,CAAC;AAEF,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,cAAc,CAKrC,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"StackItem.d.ts","sourceRoot":"","sources":["../../../../src/components/StackItem.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,EAAyC,KAAK,qBAAqB,EAAe,MAAM,OAAO,CAAC;AAE9G,OAAO,EAAE,KAAK,eAAe,EAAY,MAAM,gBAAgB,CAAC;AAIhE,OAAO,EAA8B,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpG,OAAO,EAAoB,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EAAuB,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAC3F,OAAO,EAGL,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,EAChC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAyB,KAAK,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AACjG,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAE/B,MAAM,kBAAkB,CAAC;AAG1B,eAAO,MAAM,uBAAuB,KAA6B,CAAC;AAClE,eAAO,MAAM,qBAAqB,gBAAwC,CAAC;AAC3E,eAAO,MAAM,sBAAsB,KAAkD,CAAC;AAEtF,MAAM,MAAM,kBAAkB,GAAG,eAAe,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,GAAG;IAC/E,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;IACjD,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,qBAAqB,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC;CAC9C,CAAC;AAuIF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;CASrB,CAAC;AAEF,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,0BAA0B,EAC1B,0BAA0B,EAC1B,wBAAwB,EACxB,mBAAmB,EACnB,yBAAyB,EACzB,oBAAoB,GACrB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"StackItemContent.d.ts","sourceRoot":"","sources":["../../../../src/components/StackItemContent.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAE,KAAK,wBAAwB,EAAc,MAAM,OAAO,CAAC;AAEzE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAKtD,MAAM,MAAM,qBAAqB,GAAG,eAAe,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,GAAG;IACrF;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;OAGG;IACH,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,GAAG,QAAQ,CAAC;CACzC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB;;;IAtB3B;;;OAGG;cACO,OAAO;IAEjB;;OAEG;gBACS,OAAO;IAEnB;;;OAGG;WACI,WAAW,GAAG,OAAO,GAAG,QAAQ;wCAmCxC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"StackItemDragHandle.d.ts","sourceRoot":"","sources":["../../../../src/components/StackItemDragHandle.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,EAAE,KAAK,wBAAwB,EAAE,MAAM,OAAO,CAAC;AAI7D,MAAM,MAAM,wBAAwB,GAAG,wBAAwB,CAAC,QAAQ,CAAC,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AAEjG,eAAO,MAAM,mBAAmB,0BAA2B,wBAAwB,sBAUlF,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"StackItemHeading.d.ts","sourceRoot":"","sources":["../../../../src/components/StackItemHeading.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,EAAE,KAAK,wBAAwB,EAAE,KAAK,qBAAqB,EAAc,MAAM,OAAO,CAAC;AAErG,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAgB,KAAK,YAAY,EAAE,KAAK,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAKzF,MAAM,MAAM,qBAAqB,GAAG,eAAe,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,CAAC;AAErF,eAAO,MAAM,gBAAgB,uCAAwC,qBAAqB,sBAmBzF,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,eAAe,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,GAAG,YAAY,GAAG,OAAO,CAAC;AAE/G,eAAO,MAAM,qBAAqB,oHAgBjC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"StackItemResizeHandle.d.ts","sourceRoot":"","sources":["../../../../src/components/StackItemResizeHandle.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAU1B,MAAM,MAAM,0BAA0B,GAAG,EAAE,CAAC;AAE5C,eAAO,MAAM,qBAAqB,yBAajC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"StackItemSigil.d.ts","sourceRoot":"","sources":["../../../../src/components/StackItemSigil.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAY,KAAK,iBAAiB,EAAgC,MAAM,OAAO,CAAC;AAE9F,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAU,KAAK,WAAW,EAAyD,MAAM,gBAAgB,CAAC;AACjH,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,OAAO,EAAgB,MAAM,0BAA0B,CAAC;AAOzF,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,YAAY,GAAG,MAAM,CAAC,CAAC;AAElF,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,GAClE,YAAY,GACZ,OAAO,GAAG;IACR,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEJ,eAAO,MAAM,oBAAoB,kHAiBhC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,iBAAiB,CACjD;IACE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,oBAAoB,EAAE,EAAE,CAAC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAC;CACnD,GAAG,OAAO,CACZ,CAAC;AAEF,eAAO,MAAM,cAAc;mBARR,MAAM;kBACP,MAAM;cACV,oBAAoB,EAAE,EAAE;UAC5B,MAAM;eACD,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI;;;2CAyGpD,CAAC"}
|
|
File without changes
|
/package/dist/types/src/components/{StackItemContent.d.ts → StackItem/StackItemContent.d.ts}
RENAMED
|
File without changes
|
/package/dist/types/src/components/{StackItemDragHandle.d.ts → StackItem/StackItemDragHandle.d.ts}
RENAMED
|
File without changes
|
/package/dist/types/src/components/{StackItemHeading.d.ts → StackItem/StackItemHeading.d.ts}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|