maquinaweb-ui 2.47.7 → 2.48.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/container-animation.d.ts +2 -2
- package/dist/input-suggest.d.ts +2 -2
- package/dist/kanban-dnd.d.ts +146 -0
- package/dist/kanban-dnd.d.ts.map +1 -0
- package/dist/kanban-dnd.js +673 -0
- package/dist/kanban-dnd.js.map +1 -0
- package/dist/page-header.d.ts +2 -2
- package/dist/remote-selector.d.ts +3 -3
- package/dist/text-field.d.ts +5 -5
- package/dist/toggle-field.d.ts +2 -2
- package/dist/toggle-field.d.ts.map +1 -1
- package/package.json +25 -6
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ComponentProps, ElementType } from "react";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react_jsx_runtime5 from "react/jsx-runtime";
|
|
3
3
|
|
|
4
4
|
//#region src/components/container-animation/container-animation.d.ts
|
|
5
5
|
type ContainerAnimationProps<T extends ElementType = 'div'> = ComponentProps<'div'> & ComponentProps<T> & {
|
|
@@ -23,7 +23,7 @@ declare const ContainerAnimation: <T extends ElementType = "div">({
|
|
|
23
23
|
distance,
|
|
24
24
|
hideNotInView,
|
|
25
25
|
...props
|
|
26
|
-
}: ContainerAnimationProps<T>) =>
|
|
26
|
+
}: ContainerAnimationProps<T>) => react_jsx_runtime5.JSX.Element;
|
|
27
27
|
//#endregion
|
|
28
28
|
export { ContainerAnimation, type ContainerAnimationProps };
|
|
29
29
|
//# sourceMappingURL=container-animation.d.ts.map
|
package/dist/input-suggest.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { n as Options, t as Mask } from "./with-mask-Chm8kVE1.js";
|
|
2
2
|
import { FieldPath, FieldValues, UseControllerProps } from "react-hook-form";
|
|
3
3
|
import { Dispatch, SetStateAction } from "react";
|
|
4
|
-
import * as
|
|
4
|
+
import * as react_jsx_runtime4 from "react/jsx-runtime";
|
|
5
5
|
import { PopoverProps } from "@radix-ui/react-popover";
|
|
6
6
|
|
|
7
7
|
//#region src/components/input-suggest/input-suggest.d.ts
|
|
@@ -71,7 +71,7 @@ declare function InputSuggest<TFieldValues extends FieldValues = FieldValues, TF
|
|
|
71
71
|
debounceTime,
|
|
72
72
|
maxWait,
|
|
73
73
|
...props
|
|
74
|
-
}: InputSuggestProps<TFieldValues, TFieldName> & PopoverProps):
|
|
74
|
+
}: InputSuggestProps<TFieldValues, TFieldName> & PopoverProps): react_jsx_runtime4.JSX.Element;
|
|
75
75
|
//#endregion
|
|
76
76
|
export { InputSuggest, type InputSuggestProps };
|
|
77
77
|
//# sourceMappingURL=input-suggest.d.ts.map
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { Dispatch, ReactNode, RefObject, SetStateAction } from "react";
|
|
2
|
+
import * as react_jsx_runtime13 from "react/jsx-runtime";
|
|
3
|
+
|
|
4
|
+
//#region src/components/kanban-dnd/types.d.ts
|
|
5
|
+
type KanbanSelectableItem = {
|
|
6
|
+
id: string | number;
|
|
7
|
+
element?: HTMLElement | null;
|
|
8
|
+
};
|
|
9
|
+
type KanbanOverflow = {
|
|
10
|
+
forLeftEdge?: {
|
|
11
|
+
left: number;
|
|
12
|
+
top: number;
|
|
13
|
+
bottom: number;
|
|
14
|
+
};
|
|
15
|
+
forRightEdge?: {
|
|
16
|
+
right: number;
|
|
17
|
+
top: number;
|
|
18
|
+
bottom: number;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
type KanbanDropZoneProps = {
|
|
22
|
+
children: ReactNode;
|
|
23
|
+
id: string;
|
|
24
|
+
className?: string;
|
|
25
|
+
isOverClassName?: string;
|
|
26
|
+
};
|
|
27
|
+
type UseKanbanColumnDnDProps = {
|
|
28
|
+
columnId: string;
|
|
29
|
+
elementRef: RefObject<HTMLElement | null>;
|
|
30
|
+
dragHandleRef?: RefObject<HTMLElement | null>;
|
|
31
|
+
};
|
|
32
|
+
type KanbanCardItemProps = {
|
|
33
|
+
id: string;
|
|
34
|
+
children?: ReactNode;
|
|
35
|
+
className?: string;
|
|
36
|
+
getSelectedCardIds?: () => string[];
|
|
37
|
+
getSelectableItems?: () => KanbanSelectableItem[];
|
|
38
|
+
};
|
|
39
|
+
type KanbanDndMonitorProps<TColumn> = {
|
|
40
|
+
children?: ReactNode;
|
|
41
|
+
setColumns: Dispatch<SetStateAction<TColumn[]>>;
|
|
42
|
+
getColumnId?: (column: TColumn) => string;
|
|
43
|
+
moveCards?: (columns: TColumn[], cardIds: string[], targetColumnId: string) => TColumn[];
|
|
44
|
+
getCardsFromColumn?: (column: TColumn) => unknown[];
|
|
45
|
+
setCardsInColumn?: (column: TColumn, cards: unknown[]) => TColumn;
|
|
46
|
+
getCardId?: (card: unknown) => string;
|
|
47
|
+
getSelectedCardIds?: () => string[];
|
|
48
|
+
setSelectedCardIds?: (cardIds: string[]) => void;
|
|
49
|
+
addSelectedCardId?: (cardId: string) => void;
|
|
50
|
+
clearSelectedCards?: () => void;
|
|
51
|
+
setIsDragging?: (isDragging: boolean) => void;
|
|
52
|
+
onCardsMove?: (args: {
|
|
53
|
+
cardIds: string[];
|
|
54
|
+
targetColumnId: string;
|
|
55
|
+
}) => void;
|
|
56
|
+
onColumnReorder?: (args: {
|
|
57
|
+
columnId: string;
|
|
58
|
+
order: number;
|
|
59
|
+
}) => void;
|
|
60
|
+
scrollContainerId?: string;
|
|
61
|
+
autoScrollOverflow?: KanbanOverflow;
|
|
62
|
+
isAutoScrollEnabled?: boolean;
|
|
63
|
+
renderIdleLayer?: ReactNode;
|
|
64
|
+
onSelectionChange?: (cardIds: string[]) => void;
|
|
65
|
+
};
|
|
66
|
+
type KanbanSelectorProps = {
|
|
67
|
+
dragAreaId?: string;
|
|
68
|
+
autoScrollMargin?: number;
|
|
69
|
+
ignoredSlots?: string[];
|
|
70
|
+
};
|
|
71
|
+
//#endregion
|
|
72
|
+
//#region src/components/kanban-dnd/context.d.ts
|
|
73
|
+
declare function useKanbanSelection(): {
|
|
74
|
+
selectedCardIds: string[];
|
|
75
|
+
isSelected: (cardId: string) => boolean;
|
|
76
|
+
setSelectedCardIds: (cardIds: string[]) => void;
|
|
77
|
+
addSelectedCardId: (cardId: string) => void;
|
|
78
|
+
clearSelectedCards: () => void;
|
|
79
|
+
toggleSelectedCardId: (cardId: string) => void;
|
|
80
|
+
};
|
|
81
|
+
//#endregion
|
|
82
|
+
//#region src/components/kanban-dnd/kanban-card-item.d.ts
|
|
83
|
+
declare function KanbanCardItem({
|
|
84
|
+
id,
|
|
85
|
+
children,
|
|
86
|
+
className,
|
|
87
|
+
getSelectedCardIds,
|
|
88
|
+
getSelectableItems
|
|
89
|
+
}: KanbanCardItemProps): react_jsx_runtime13.JSX.Element;
|
|
90
|
+
//#endregion
|
|
91
|
+
//#region src/components/kanban-dnd/kanban-dnd-monitor.d.ts
|
|
92
|
+
declare function KanbanDndMonitor<TColumn>({
|
|
93
|
+
onCardsMove,
|
|
94
|
+
onColumnReorder,
|
|
95
|
+
scrollContainerId,
|
|
96
|
+
setColumns,
|
|
97
|
+
children,
|
|
98
|
+
getColumnId,
|
|
99
|
+
moveCards,
|
|
100
|
+
getCardsFromColumn,
|
|
101
|
+
setCardsInColumn,
|
|
102
|
+
getCardId,
|
|
103
|
+
getSelectedCardIds,
|
|
104
|
+
setSelectedCardIds,
|
|
105
|
+
addSelectedCardId,
|
|
106
|
+
clearSelectedCards,
|
|
107
|
+
onSelectionChange,
|
|
108
|
+
setIsDragging,
|
|
109
|
+
autoScrollOverflow,
|
|
110
|
+
isAutoScrollEnabled,
|
|
111
|
+
renderIdleLayer
|
|
112
|
+
}: KanbanDndMonitorProps<TColumn>): react_jsx_runtime13.JSX.Element;
|
|
113
|
+
//#endregion
|
|
114
|
+
//#region src/components/kanban-dnd/kanban-dropzone.d.ts
|
|
115
|
+
declare function KanbanDropZone({
|
|
116
|
+
children,
|
|
117
|
+
id,
|
|
118
|
+
className,
|
|
119
|
+
isOverClassName
|
|
120
|
+
}: KanbanDropZoneProps): react_jsx_runtime13.JSX.Element;
|
|
121
|
+
//#endregion
|
|
122
|
+
//#region src/components/kanban-dnd/kanban-selector.d.ts
|
|
123
|
+
declare function KanbanSelector({
|
|
124
|
+
dragAreaId,
|
|
125
|
+
autoScrollMargin,
|
|
126
|
+
ignoredSlots
|
|
127
|
+
}: KanbanSelectorProps): react_jsx_runtime13.JSX.Element | null;
|
|
128
|
+
//#endregion
|
|
129
|
+
//#region src/components/kanban-dnd/move-cards.d.ts
|
|
130
|
+
type MoveCardsResolvers<TColumn, TCard> = {
|
|
131
|
+
getColumnId: (column: TColumn) => string;
|
|
132
|
+
getCards: (column: TColumn) => TCard[];
|
|
133
|
+
setCards: (column: TColumn, cards: TCard[]) => TColumn;
|
|
134
|
+
getCardId: (card: TCard) => string;
|
|
135
|
+
};
|
|
136
|
+
declare function moveCardsInColumns<TColumn, TCard>(columns: TColumn[], cardIds: string[], targetColumnId: string, resolvers?: Partial<MoveCardsResolvers<TColumn, TCard>>): TColumn[];
|
|
137
|
+
//#endregion
|
|
138
|
+
//#region src/components/kanban-dnd/use-kanban-column-dnd.d.ts
|
|
139
|
+
declare function useKanbanColumnDnD({
|
|
140
|
+
columnId,
|
|
141
|
+
elementRef,
|
|
142
|
+
dragHandleRef
|
|
143
|
+
}: UseKanbanColumnDnDProps): void;
|
|
144
|
+
//#endregion
|
|
145
|
+
export { KanbanCardItem, type KanbanCardItemProps, KanbanDndMonitor, type KanbanDndMonitorProps, KanbanDropZone, type KanbanDropZoneProps, type KanbanOverflow, type KanbanSelectableItem, KanbanSelector, type KanbanSelectorProps, type UseKanbanColumnDnDProps, moveCardsInColumns, useKanbanColumnDnD, useKanbanSelection };
|
|
146
|
+
//# sourceMappingURL=kanban-dnd.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kanban-dnd.d.ts","names":[],"sources":["../src/components/kanban-dnd/types.ts","../src/components/kanban-dnd/context.tsx","../src/components/kanban-dnd/kanban-card-item.tsx","../src/components/kanban-dnd/kanban-dnd-monitor.tsx","../src/components/kanban-dnd/kanban-dropzone.tsx","../src/components/kanban-dnd/kanban-selector.tsx","../src/components/kanban-dnd/move-cards.ts","../src/components/kanban-dnd/use-kanban-column-dnd.ts"],"sourcesContent":[],"mappings":"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"}
|
|
@@ -0,0 +1,673 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
import { t as cn } from "./utils-C8_amEgK.js";
|
|
5
|
+
import { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
|
|
6
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
import { draggable, dropTargetForElements, monitorForElements } from "@atlaskit/pragmatic-drag-and-drop/element/adapter";
|
|
8
|
+
import { preserveOffsetOnSource } from "@atlaskit/pragmatic-drag-and-drop/element/preserve-offset-on-source";
|
|
9
|
+
import { setCustomNativeDragPreview } from "@atlaskit/pragmatic-drag-and-drop/element/set-custom-native-drag-preview";
|
|
10
|
+
import { combine } from "@atlaskit/pragmatic-drag-and-drop/combine";
|
|
11
|
+
import { reorder } from "@atlaskit/pragmatic-drag-and-drop/reorder";
|
|
12
|
+
import { autoScrollForElements } from "@atlaskit/pragmatic-drag-and-drop-auto-scroll/element";
|
|
13
|
+
import { unsafeOverflowAutoScrollForElements } from "@atlaskit/pragmatic-drag-and-drop-auto-scroll/unsafe-overflow/element";
|
|
14
|
+
import { boxesIntersect, useSelectionContainer } from "@air/react-drag-to-select";
|
|
15
|
+
|
|
16
|
+
//#region src/components/kanban-dnd/context.tsx
|
|
17
|
+
const KanbanDndContext = createContext(null);
|
|
18
|
+
function KanbanDndProvider({ children, value }) {
|
|
19
|
+
return /* @__PURE__ */ jsx(KanbanDndContext.Provider, {
|
|
20
|
+
value,
|
|
21
|
+
children
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
function useKanbanDndContext() {
|
|
25
|
+
return useContext(KanbanDndContext);
|
|
26
|
+
}
|
|
27
|
+
function useKanbanSelection() {
|
|
28
|
+
const context = useKanbanDndContext();
|
|
29
|
+
if (!context) return {
|
|
30
|
+
selectedCardIds: [],
|
|
31
|
+
isSelected: () => false,
|
|
32
|
+
setSelectedCardIds: () => {},
|
|
33
|
+
addSelectedCardId: () => {},
|
|
34
|
+
clearSelectedCards: () => {},
|
|
35
|
+
toggleSelectedCardId: () => {}
|
|
36
|
+
};
|
|
37
|
+
const selectedCardIds = context.getSelectedCardIds();
|
|
38
|
+
return {
|
|
39
|
+
selectedCardIds,
|
|
40
|
+
isSelected: (cardId) => selectedCardIds.includes(cardId),
|
|
41
|
+
setSelectedCardIds: context.setSelectedCardIds,
|
|
42
|
+
addSelectedCardId: context.addSelectedCardId,
|
|
43
|
+
clearSelectedCards: context.clearSelectedCards,
|
|
44
|
+
toggleSelectedCardId: context.toggleSelectedCardId
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
//#endregion
|
|
49
|
+
//#region src/components/kanban-dnd/constants.ts
|
|
50
|
+
const PREVIEW_STACK_LIMIT = 10;
|
|
51
|
+
const PREVIEW_STACK_X_OFFSET = 10;
|
|
52
|
+
const PREVIEW_STACK_Y_OFFSET = 8;
|
|
53
|
+
const PREVIEW_STACK_MIN_OPACITY = .75;
|
|
54
|
+
const STACKED_CLONE_BASE_STYLE = {
|
|
55
|
+
pointerEvents: "none",
|
|
56
|
+
margin: "0",
|
|
57
|
+
width: "100%",
|
|
58
|
+
top: "0",
|
|
59
|
+
left: "0"
|
|
60
|
+
};
|
|
61
|
+
const DEFAULT_AUTO_SCROLL_OVERFLOW = {
|
|
62
|
+
forLeftEdge: {
|
|
63
|
+
left: 320,
|
|
64
|
+
top: 160,
|
|
65
|
+
bottom: 160
|
|
66
|
+
},
|
|
67
|
+
forRightEdge: {
|
|
68
|
+
right: 160,
|
|
69
|
+
top: 120,
|
|
70
|
+
bottom: 120
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
//#endregion
|
|
75
|
+
//#region src/components/kanban-dnd/utils.ts
|
|
76
|
+
function applyStyles(element, styles) {
|
|
77
|
+
Object.assign(element.style, styles);
|
|
78
|
+
}
|
|
79
|
+
function getTargetColumnId(dropTargets, targetType) {
|
|
80
|
+
const target = dropTargets.find((item) => item.data.type === targetType);
|
|
81
|
+
return target ? String(target.data.columnId ?? "") : "";
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
//#endregion
|
|
85
|
+
//#region src/components/kanban-dnd/drag-preview.ts
|
|
86
|
+
function createStackedClone(original, index) {
|
|
87
|
+
const clone = original.cloneNode(true);
|
|
88
|
+
const xOffset = index * PREVIEW_STACK_X_OFFSET;
|
|
89
|
+
const yOffset = index * PREVIEW_STACK_Y_OFFSET;
|
|
90
|
+
const opacity = Math.max(1 - index * .1, PREVIEW_STACK_MIN_OPACITY);
|
|
91
|
+
applyStyles(clone, {
|
|
92
|
+
...STACKED_CLONE_BASE_STYLE,
|
|
93
|
+
position: index === 0 ? "relative" : "absolute",
|
|
94
|
+
transform: `translate(${xOffset}px, ${yOffset}px)`,
|
|
95
|
+
opacity: String(opacity)
|
|
96
|
+
});
|
|
97
|
+
return clone;
|
|
98
|
+
}
|
|
99
|
+
function createFallbackClone(sourceElement) {
|
|
100
|
+
const fallback = sourceElement.cloneNode(true);
|
|
101
|
+
applyStyles(fallback, {
|
|
102
|
+
pointerEvents: "none",
|
|
103
|
+
margin: "0"
|
|
104
|
+
});
|
|
105
|
+
return fallback;
|
|
106
|
+
}
|
|
107
|
+
function buildDragPreview({ cardId, sourceElement, getSelectableItems, getSelectedCardIds }) {
|
|
108
|
+
const selectedIds = getSelectedCardIds?.() ?? [];
|
|
109
|
+
const idsToPreview = Array.from(new Set([...selectedIds, String(cardId)]));
|
|
110
|
+
const root = document.createElement("div");
|
|
111
|
+
applyStyles(root, { position: "relative" });
|
|
112
|
+
const selectableItems = getSelectableItems?.() ?? [];
|
|
113
|
+
const itemElementById = new Map(selectableItems.filter((item) => item.element).map((item) => [String(item.id), item.element]));
|
|
114
|
+
idsToPreview.slice(0, PREVIEW_STACK_LIMIT).forEach((previewId, index) => {
|
|
115
|
+
const original = itemElementById.get(String(previewId));
|
|
116
|
+
if (!original) return;
|
|
117
|
+
root.appendChild(createStackedClone(original, index));
|
|
118
|
+
});
|
|
119
|
+
if (!root.childElementCount) root.appendChild(createFallbackClone(sourceElement));
|
|
120
|
+
return root;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
//#endregion
|
|
124
|
+
//#region src/components/kanban-dnd/kanban-card-item.tsx
|
|
125
|
+
function KanbanCardItem({ id, children, className, getSelectedCardIds, getSelectableItems }) {
|
|
126
|
+
const ref = useRef(null);
|
|
127
|
+
const context = useKanbanDndContext();
|
|
128
|
+
const getSelectedCardIdsSafe = getSelectedCardIds ?? context?.getSelectedCardIds;
|
|
129
|
+
const getSelectableItemsSafe = getSelectableItems ?? context?.getSelectableItems;
|
|
130
|
+
useEffect(() => {
|
|
131
|
+
context?.registerSelectableItem(String(id), ref.current);
|
|
132
|
+
return () => {
|
|
133
|
+
context?.registerSelectableItem(String(id), null);
|
|
134
|
+
};
|
|
135
|
+
}, [context, id]);
|
|
136
|
+
useEffect(() => {
|
|
137
|
+
const element = ref.current;
|
|
138
|
+
if (!element) return;
|
|
139
|
+
return draggable({
|
|
140
|
+
element,
|
|
141
|
+
getInitialData: () => ({
|
|
142
|
+
type: "card",
|
|
143
|
+
cardId: String(id)
|
|
144
|
+
}),
|
|
145
|
+
onGenerateDragPreview: ({ nativeSetDragImage, source, location }) => {
|
|
146
|
+
setCustomNativeDragPreview({
|
|
147
|
+
getOffset: preserveOffsetOnSource({
|
|
148
|
+
element: source.element,
|
|
149
|
+
input: location.current.input
|
|
150
|
+
}),
|
|
151
|
+
render({ container }) {
|
|
152
|
+
const root = buildDragPreview({
|
|
153
|
+
cardId: String(id),
|
|
154
|
+
sourceElement: source.element,
|
|
155
|
+
getSelectableItems: getSelectableItemsSafe,
|
|
156
|
+
getSelectedCardIds: getSelectedCardIdsSafe
|
|
157
|
+
});
|
|
158
|
+
container.appendChild(root);
|
|
159
|
+
return () => {
|
|
160
|
+
if (root.parentElement === container) container.removeChild(root);
|
|
161
|
+
};
|
|
162
|
+
},
|
|
163
|
+
nativeSetDragImage
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
});
|
|
167
|
+
}, [
|
|
168
|
+
getSelectableItemsSafe,
|
|
169
|
+
getSelectedCardIdsSafe,
|
|
170
|
+
id
|
|
171
|
+
]);
|
|
172
|
+
return /* @__PURE__ */ jsx("div", {
|
|
173
|
+
className,
|
|
174
|
+
"data-draggable": "true",
|
|
175
|
+
id: `kanban-card-item-${id}`,
|
|
176
|
+
ref,
|
|
177
|
+
suppressHydrationWarning: true,
|
|
178
|
+
children
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
//#endregion
|
|
183
|
+
//#region src/components/kanban-dnd/move-cards.ts
|
|
184
|
+
function hasObjectValue(value) {
|
|
185
|
+
return typeof value === "object" && value !== null;
|
|
186
|
+
}
|
|
187
|
+
function defaultGetColumnId$1(column) {
|
|
188
|
+
if (!hasObjectValue(column)) return "";
|
|
189
|
+
const id = column.id;
|
|
190
|
+
return id === void 0 || id === null ? "" : String(id);
|
|
191
|
+
}
|
|
192
|
+
function defaultGetCards(column) {
|
|
193
|
+
if (!hasObjectValue(column)) return [];
|
|
194
|
+
const cards = column.cards;
|
|
195
|
+
return Array.isArray(cards) ? cards : [];
|
|
196
|
+
}
|
|
197
|
+
function defaultSetCards(column, cards) {
|
|
198
|
+
if (!hasObjectValue(column)) return column;
|
|
199
|
+
return {
|
|
200
|
+
...column,
|
|
201
|
+
cards
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
function defaultGetCardId(card) {
|
|
205
|
+
if (!hasObjectValue(card)) return "";
|
|
206
|
+
const id = card.id;
|
|
207
|
+
return id === void 0 || id === null ? "" : String(id);
|
|
208
|
+
}
|
|
209
|
+
function moveCardsInColumns(columns, cardIds, targetColumnId, resolvers = {}) {
|
|
210
|
+
const getColumnId = resolvers.getColumnId ?? defaultGetColumnId$1;
|
|
211
|
+
const getCards = resolvers.getCards ?? defaultGetCards;
|
|
212
|
+
const setCards = resolvers.setCards ?? defaultSetCards;
|
|
213
|
+
const getCardId = resolvers.getCardId ?? defaultGetCardId;
|
|
214
|
+
const selectedIds = new Set(cardIds);
|
|
215
|
+
if (selectedIds.size === 0) return columns;
|
|
216
|
+
const cardsToMove = columns.flatMap((column) => getCards(column).filter((card) => selectedIds.has(getCardId(card))));
|
|
217
|
+
if (cardsToMove.length === 0) return columns;
|
|
218
|
+
return columns.map((column) => {
|
|
219
|
+
const currentCards = getCards(column);
|
|
220
|
+
if (getColumnId(column) === targetColumnId) {
|
|
221
|
+
const existingIds = new Set(currentCards.map((card) => getCardId(card)));
|
|
222
|
+
const incomingCards = cardsToMove.filter((card) => !existingIds.has(getCardId(card)));
|
|
223
|
+
return setCards(column, [...currentCards, ...incomingCards]);
|
|
224
|
+
}
|
|
225
|
+
return setCards(column, currentCards.filter((card) => !selectedIds.has(getCardId(card))));
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
//#endregion
|
|
230
|
+
//#region src/components/kanban-dnd/kanban-dnd-monitor.tsx
|
|
231
|
+
function defaultGetColumnId(column) {
|
|
232
|
+
const id = column?.id;
|
|
233
|
+
return id === void 0 || id === null ? "" : String(id);
|
|
234
|
+
}
|
|
235
|
+
function KanbanDndMonitor({ onCardsMove, onColumnReorder, scrollContainerId, setColumns, children, getColumnId, moveCards, getCardsFromColumn, setCardsInColumn, getCardId, getSelectedCardIds, setSelectedCardIds, addSelectedCardId, clearSelectedCards, onSelectionChange, setIsDragging, autoScrollOverflow, isAutoScrollEnabled = true, renderIdleLayer }) {
|
|
236
|
+
const [isDragging, setLocalIsDragging] = useState(false);
|
|
237
|
+
const [internalSelectedCardIds, setInternalSelectedCardIds] = useState([]);
|
|
238
|
+
const selectableItemMapRef = useRef(/* @__PURE__ */ new Map());
|
|
239
|
+
const getColumnIdSafe = useCallback((column) => getColumnId ? getColumnId(column) : defaultGetColumnId(column), [getColumnId]);
|
|
240
|
+
const getSelectedCardIdsSafe = useCallback(() => getSelectedCardIds?.() ?? internalSelectedCardIds, [getSelectedCardIds, internalSelectedCardIds]);
|
|
241
|
+
const addSelectedCardIdSafe = useCallback((cardId) => {
|
|
242
|
+
if (addSelectedCardId) {
|
|
243
|
+
addSelectedCardId(cardId);
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
setInternalSelectedCardIds((prev) => prev.includes(cardId) ? prev : [...prev, cardId]);
|
|
247
|
+
}, [addSelectedCardId]);
|
|
248
|
+
const clearSelectedCardsSafe = useCallback(() => {
|
|
249
|
+
if (clearSelectedCards) {
|
|
250
|
+
clearSelectedCards();
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
253
|
+
setInternalSelectedCardIds([]);
|
|
254
|
+
}, [clearSelectedCards]);
|
|
255
|
+
const setSelectedCardIdsSafe = useCallback((cardIds) => {
|
|
256
|
+
if (setSelectedCardIds) {
|
|
257
|
+
setSelectedCardIds(cardIds);
|
|
258
|
+
return;
|
|
259
|
+
}
|
|
260
|
+
if (getSelectedCardIds && clearSelectedCards && addSelectedCardId) {
|
|
261
|
+
clearSelectedCards();
|
|
262
|
+
cardIds.forEach((cardId) => addSelectedCardId(cardId));
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
265
|
+
setInternalSelectedCardIds(cardIds);
|
|
266
|
+
}, [
|
|
267
|
+
addSelectedCardId,
|
|
268
|
+
clearSelectedCards,
|
|
269
|
+
getSelectedCardIds,
|
|
270
|
+
setSelectedCardIds
|
|
271
|
+
]);
|
|
272
|
+
const toggleSelectedCardIdSafe = useCallback((cardId) => {
|
|
273
|
+
if (getSelectedCardIdsSafe().includes(cardId)) {
|
|
274
|
+
if (!getSelectedCardIds) setInternalSelectedCardIds((prev) => prev.filter((id) => id !== cardId));
|
|
275
|
+
return;
|
|
276
|
+
}
|
|
277
|
+
addSelectedCardIdSafe(cardId);
|
|
278
|
+
}, [
|
|
279
|
+
addSelectedCardIdSafe,
|
|
280
|
+
getSelectedCardIds,
|
|
281
|
+
getSelectedCardIdsSafe
|
|
282
|
+
]);
|
|
283
|
+
const registerSelectableItem = useCallback((id, element) => {
|
|
284
|
+
if (!element) {
|
|
285
|
+
selectableItemMapRef.current.delete(id);
|
|
286
|
+
return;
|
|
287
|
+
}
|
|
288
|
+
selectableItemMapRef.current.set(id, element);
|
|
289
|
+
}, []);
|
|
290
|
+
const getSelectableItems = useCallback(() => Array.from(selectableItemMapRef.current.entries()).map(([id, element]) => ({
|
|
291
|
+
id,
|
|
292
|
+
element
|
|
293
|
+
})), []);
|
|
294
|
+
useEffect(() => {
|
|
295
|
+
onSelectionChange?.(getSelectedCardIdsSafe());
|
|
296
|
+
}, [
|
|
297
|
+
getSelectedCardIdsSafe,
|
|
298
|
+
internalSelectedCardIds,
|
|
299
|
+
onSelectionChange
|
|
300
|
+
]);
|
|
301
|
+
const contextValue = useMemo(() => ({
|
|
302
|
+
isDragging,
|
|
303
|
+
getSelectedCardIds: getSelectedCardIdsSafe,
|
|
304
|
+
setSelectedCardIds: setSelectedCardIdsSafe,
|
|
305
|
+
addSelectedCardId: addSelectedCardIdSafe,
|
|
306
|
+
clearSelectedCards: clearSelectedCardsSafe,
|
|
307
|
+
toggleSelectedCardId: toggleSelectedCardIdSafe,
|
|
308
|
+
registerSelectableItem,
|
|
309
|
+
getSelectableItems
|
|
310
|
+
}), [
|
|
311
|
+
addSelectedCardIdSafe,
|
|
312
|
+
clearSelectedCardsSafe,
|
|
313
|
+
getSelectableItems,
|
|
314
|
+
getSelectedCardIdsSafe,
|
|
315
|
+
isDragging,
|
|
316
|
+
registerSelectableItem,
|
|
317
|
+
setSelectedCardIdsSafe,
|
|
318
|
+
toggleSelectedCardIdSafe
|
|
319
|
+
]);
|
|
320
|
+
const finishDrag = () => {
|
|
321
|
+
setLocalIsDragging(false);
|
|
322
|
+
setTimeout(() => {
|
|
323
|
+
setIsDragging?.(false);
|
|
324
|
+
clearSelectedCardsSafe();
|
|
325
|
+
}, 100);
|
|
326
|
+
};
|
|
327
|
+
const startDrag = (source) => {
|
|
328
|
+
if (source.data.type !== "column" && source.data.type !== "card") return;
|
|
329
|
+
if (source.data.type === "card") {
|
|
330
|
+
const cardId = String(source.data.cardId ?? "");
|
|
331
|
+
if (!getSelectedCardIdsSafe().includes(cardId)) addSelectedCardIdSafe(cardId);
|
|
332
|
+
}
|
|
333
|
+
setIsDragging?.(true);
|
|
334
|
+
setLocalIsDragging(true);
|
|
335
|
+
};
|
|
336
|
+
const dropColumn = (sourceColumnId, targetColumnId) => {
|
|
337
|
+
if (!sourceColumnId || sourceColumnId === targetColumnId) return;
|
|
338
|
+
let nextOrder = null;
|
|
339
|
+
setColumns((prev) => {
|
|
340
|
+
const oldIndex = prev.findIndex((col) => getColumnIdSafe(col) === sourceColumnId);
|
|
341
|
+
const newIndex = prev.findIndex((col) => getColumnIdSafe(col) === targetColumnId);
|
|
342
|
+
if (oldIndex < 0 || newIndex < 0 || oldIndex === newIndex) return prev;
|
|
343
|
+
nextOrder = newIndex + 1;
|
|
344
|
+
return reorder({
|
|
345
|
+
list: prev,
|
|
346
|
+
startIndex: oldIndex,
|
|
347
|
+
finishIndex: newIndex
|
|
348
|
+
});
|
|
349
|
+
});
|
|
350
|
+
if (nextOrder !== null) onColumnReorder?.({
|
|
351
|
+
columnId: sourceColumnId,
|
|
352
|
+
order: nextOrder
|
|
353
|
+
});
|
|
354
|
+
};
|
|
355
|
+
const dropCard = (cardId, targetColumnId) => {
|
|
356
|
+
if (!cardId || !targetColumnId) return;
|
|
357
|
+
const selectedIds = getSelectedCardIdsSafe();
|
|
358
|
+
const idsToMove = selectedIds.length > 0 ? selectedIds : [cardId];
|
|
359
|
+
setColumns((prev) => {
|
|
360
|
+
if (moveCards) return moveCards(prev, idsToMove, targetColumnId);
|
|
361
|
+
return moveCardsInColumns(prev, idsToMove, targetColumnId, {
|
|
362
|
+
getColumnId: getColumnIdSafe,
|
|
363
|
+
getCards: getCardsFromColumn,
|
|
364
|
+
setCards: setCardsInColumn,
|
|
365
|
+
getCardId
|
|
366
|
+
});
|
|
367
|
+
});
|
|
368
|
+
onCardsMove?.({
|
|
369
|
+
cardIds: idsToMove,
|
|
370
|
+
targetColumnId
|
|
371
|
+
});
|
|
372
|
+
};
|
|
373
|
+
useEffect(() => {
|
|
374
|
+
const monitorCleanup = monitorForElements({
|
|
375
|
+
onDragStart: ({ source }) => startDrag(source),
|
|
376
|
+
onDrop: ({ source, location }) => {
|
|
377
|
+
const dropTargets = location.current.dropTargets;
|
|
378
|
+
if (source.data.type === "column") {
|
|
379
|
+
dropColumn(String(source.data.columnId ?? ""), getTargetColumnId(dropTargets, "column"));
|
|
380
|
+
finishDrag();
|
|
381
|
+
return;
|
|
382
|
+
}
|
|
383
|
+
if (source.data.type === "card") {
|
|
384
|
+
dropCard(String(source.data.cardId ?? ""), getTargetColumnId(dropTargets, "column-drop"));
|
|
385
|
+
finishDrag();
|
|
386
|
+
return;
|
|
387
|
+
}
|
|
388
|
+
finishDrag();
|
|
389
|
+
}
|
|
390
|
+
});
|
|
391
|
+
if (!isAutoScrollEnabled || !scrollContainerId) return monitorCleanup;
|
|
392
|
+
const scrollContainer = document.getElementById(scrollContainerId);
|
|
393
|
+
if (!scrollContainer) return monitorCleanup;
|
|
394
|
+
return combine(monitorCleanup, autoScrollForElements({
|
|
395
|
+
element: scrollContainer,
|
|
396
|
+
canScroll: ({ source }) => source.data.type === "card" || source.data.type === "column",
|
|
397
|
+
getAllowedAxis: () => "horizontal"
|
|
398
|
+
}), unsafeOverflowAutoScrollForElements({
|
|
399
|
+
element: scrollContainer,
|
|
400
|
+
canScroll: ({ source }) => source.data.type === "card" || source.data.type === "column",
|
|
401
|
+
getAllowedAxis: () => "horizontal",
|
|
402
|
+
getOverflow: () => autoScrollOverflow ?? DEFAULT_AUTO_SCROLL_OVERFLOW
|
|
403
|
+
}));
|
|
404
|
+
}, [
|
|
405
|
+
addSelectedCardIdSafe,
|
|
406
|
+
autoScrollOverflow,
|
|
407
|
+
clearSelectedCardsSafe,
|
|
408
|
+
getCardId,
|
|
409
|
+
getCardsFromColumn,
|
|
410
|
+
getColumnIdSafe,
|
|
411
|
+
getSelectedCardIdsSafe,
|
|
412
|
+
isAutoScrollEnabled,
|
|
413
|
+
moveCards,
|
|
414
|
+
onCardsMove,
|
|
415
|
+
onColumnReorder,
|
|
416
|
+
setCardsInColumn,
|
|
417
|
+
scrollContainerId,
|
|
418
|
+
setSelectedCardIds,
|
|
419
|
+
setColumns,
|
|
420
|
+
setIsDragging
|
|
421
|
+
]);
|
|
422
|
+
return /* @__PURE__ */ jsx(KanbanDndProvider, {
|
|
423
|
+
value: contextValue,
|
|
424
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
425
|
+
className: "contain-layout h-full",
|
|
426
|
+
id: "draggable-area",
|
|
427
|
+
children: [!isDragging && renderIdleLayer, children]
|
|
428
|
+
})
|
|
429
|
+
});
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
//#endregion
|
|
433
|
+
//#region src/components/kanban-dnd/kanban-dropzone.tsx
|
|
434
|
+
function KanbanDropZone({ children, id, className, isOverClassName }) {
|
|
435
|
+
const [isOver, setIsOver] = useState(false);
|
|
436
|
+
const ref = useRef(null);
|
|
437
|
+
useEffect(() => {
|
|
438
|
+
const element = ref.current;
|
|
439
|
+
if (!element) return;
|
|
440
|
+
return dropTargetForElements({
|
|
441
|
+
element,
|
|
442
|
+
canDrop: ({ source }) => source.data.type === "card",
|
|
443
|
+
getData: () => ({
|
|
444
|
+
type: "column-drop",
|
|
445
|
+
columnId: String(id)
|
|
446
|
+
}),
|
|
447
|
+
onDragEnter: () => setIsOver(true),
|
|
448
|
+
onDragLeave: () => setIsOver(false),
|
|
449
|
+
onDrop: () => setIsOver(false)
|
|
450
|
+
});
|
|
451
|
+
}, [id]);
|
|
452
|
+
return /* @__PURE__ */ jsx("div", {
|
|
453
|
+
className: cn("border flex-1 border-transparent rounded-xl transition-colors", isOver && (isOverClassName ?? "border-border"), className),
|
|
454
|
+
id: `kanban-drop-zone-${id}`,
|
|
455
|
+
ref,
|
|
456
|
+
children
|
|
457
|
+
});
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
//#endregion
|
|
461
|
+
//#region src/components/kanban-dnd/kanban-selector.tsx
|
|
462
|
+
const DEFAULT_DRAG_AREA_ID = "draggable-area";
|
|
463
|
+
const DEFAULT_AUTO_SCROLL_MARGIN = 120;
|
|
464
|
+
const DEFAULT_IGNORED_SLOTS = [
|
|
465
|
+
"sheet-content",
|
|
466
|
+
"popover-content",
|
|
467
|
+
"select-content",
|
|
468
|
+
"dialog-content",
|
|
469
|
+
"dialog-overlay"
|
|
470
|
+
];
|
|
471
|
+
const clampDelta = (delta, current, max) => delta > 0 ? Math.min(delta, max - current) : Math.max(delta, -current);
|
|
472
|
+
const edgeDelta = (pointer, start, end, margin, dt) => {
|
|
473
|
+
if (pointer < start + margin) return (pointer - (start + margin)) / margin * dt;
|
|
474
|
+
if (pointer > end - margin) return (pointer - (end - margin)) / margin * dt;
|
|
475
|
+
return 0;
|
|
476
|
+
};
|
|
477
|
+
function findScrollable(node, axis) {
|
|
478
|
+
if (!node) return null;
|
|
479
|
+
const style = window.getComputedStyle(node);
|
|
480
|
+
const canScrollX = /(auto|scroll)/.test(style.overflowX) && node.scrollWidth > node.clientWidth;
|
|
481
|
+
const canScrollY = /(auto|scroll)/.test(style.overflowY) && node.scrollHeight > node.clientHeight;
|
|
482
|
+
if (axis === "x" && canScrollX || axis === "y" && canScrollY) return node;
|
|
483
|
+
return findScrollable(node.parentElement, axis);
|
|
484
|
+
}
|
|
485
|
+
function getContainerBounds(container) {
|
|
486
|
+
if (!container || container === document.documentElement || container === document.body) return {
|
|
487
|
+
left: 0,
|
|
488
|
+
right: window.innerWidth,
|
|
489
|
+
top: 0,
|
|
490
|
+
bottom: window.innerHeight
|
|
491
|
+
};
|
|
492
|
+
const rect = container.getBoundingClientRect();
|
|
493
|
+
return {
|
|
494
|
+
left: Math.max(0, rect.left),
|
|
495
|
+
right: Math.min(window.innerWidth, rect.right),
|
|
496
|
+
top: Math.max(0, rect.top),
|
|
497
|
+
bottom: Math.min(window.innerHeight, rect.bottom)
|
|
498
|
+
};
|
|
499
|
+
}
|
|
500
|
+
function shouldStartSelecting(target, ignoredSlots) {
|
|
501
|
+
if (!(target instanceof Element)) return false;
|
|
502
|
+
return !(target.closest("[data-draggable=\"true\"]") || ignoredSlots.some((slot) => target.closest(`[data-slot="${slot}"]`)));
|
|
503
|
+
}
|
|
504
|
+
function useAutoScroll({ isSelectingRef, dragAreaId, autoScrollMargin }) {
|
|
505
|
+
useEffect(() => {
|
|
506
|
+
let raf = 0;
|
|
507
|
+
let lastTime = performance.now();
|
|
508
|
+
const pos = {
|
|
509
|
+
x: 0,
|
|
510
|
+
y: 0
|
|
511
|
+
};
|
|
512
|
+
let xContainer = null;
|
|
513
|
+
let yContainer = null;
|
|
514
|
+
let xMax = 0;
|
|
515
|
+
let yMax = 0;
|
|
516
|
+
let useWindowY = false;
|
|
517
|
+
const onMove = (e) => (pos.x = e.clientX, pos.y = e.clientY);
|
|
518
|
+
window.addEventListener("pointermove", onMove, { passive: true });
|
|
519
|
+
const reset = () => {
|
|
520
|
+
xContainer = null;
|
|
521
|
+
yContainer = null;
|
|
522
|
+
xMax = 0;
|
|
523
|
+
yMax = 0;
|
|
524
|
+
useWindowY = false;
|
|
525
|
+
};
|
|
526
|
+
const step = (time) => {
|
|
527
|
+
const dt = time - lastTime;
|
|
528
|
+
lastTime = time;
|
|
529
|
+
if (!isSelectingRef.current) {
|
|
530
|
+
reset();
|
|
531
|
+
raf = requestAnimationFrame(step);
|
|
532
|
+
return;
|
|
533
|
+
}
|
|
534
|
+
if (!xContainer && !yContainer && xMax === 0 && yMax === 0) {
|
|
535
|
+
const startNode = document.getElementById(dragAreaId)?.parentElement ?? null;
|
|
536
|
+
xContainer = findScrollable(startNode, "x");
|
|
537
|
+
yContainer = findScrollable(startNode, "y");
|
|
538
|
+
useWindowY = !yContainer;
|
|
539
|
+
xMax = xContainer ? xContainer.scrollWidth - xContainer.clientWidth : 0;
|
|
540
|
+
yMax = useWindowY ? document.documentElement.scrollHeight - window.innerHeight : yContainer ? yContainer.scrollHeight - yContainer.clientHeight : 0;
|
|
541
|
+
}
|
|
542
|
+
const xBounds = getContainerBounds(xContainer);
|
|
543
|
+
const yBounds = useWindowY ? {
|
|
544
|
+
top: 0,
|
|
545
|
+
bottom: window.innerHeight
|
|
546
|
+
} : getContainerBounds(yContainer);
|
|
547
|
+
const dx = edgeDelta(pos.x, xBounds.left, xBounds.right, autoScrollMargin, dt);
|
|
548
|
+
const dy = edgeDelta(pos.y, yBounds.top, yBounds.bottom, autoScrollMargin, dt);
|
|
549
|
+
let didScroll = false;
|
|
550
|
+
if (dx && xContainer && xMax > 0) {
|
|
551
|
+
const clampedDx = clampDelta(dx, xContainer.scrollLeft, xMax);
|
|
552
|
+
if (clampedDx) {
|
|
553
|
+
xContainer.scrollBy(clampedDx, 0);
|
|
554
|
+
didScroll = true;
|
|
555
|
+
}
|
|
556
|
+
}
|
|
557
|
+
if (dy && yMax > 0) {
|
|
558
|
+
if (useWindowY) {
|
|
559
|
+
const clampedDy = clampDelta(dy, window.scrollY || document.documentElement.scrollTop, yMax);
|
|
560
|
+
if (clampedDy) {
|
|
561
|
+
window.scrollBy(0, clampedDy);
|
|
562
|
+
didScroll = true;
|
|
563
|
+
}
|
|
564
|
+
} else if (yContainer) {
|
|
565
|
+
const clampedDy = clampDelta(dy, yContainer.scrollTop, yMax);
|
|
566
|
+
if (clampedDy) {
|
|
567
|
+
yContainer.scrollBy(0, clampedDy);
|
|
568
|
+
didScroll = true;
|
|
569
|
+
}
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
if (didScroll) document.body.dispatchEvent(new MouseEvent("mousemove", {
|
|
573
|
+
clientX: pos.x,
|
|
574
|
+
clientY: pos.y,
|
|
575
|
+
bubbles: true,
|
|
576
|
+
cancelable: true
|
|
577
|
+
}));
|
|
578
|
+
raf = requestAnimationFrame(step);
|
|
579
|
+
};
|
|
580
|
+
raf = requestAnimationFrame(step);
|
|
581
|
+
return () => {
|
|
582
|
+
window.removeEventListener("pointermove", onMove);
|
|
583
|
+
cancelAnimationFrame(raf);
|
|
584
|
+
};
|
|
585
|
+
}, [
|
|
586
|
+
autoScrollMargin,
|
|
587
|
+
dragAreaId,
|
|
588
|
+
isSelectingRef
|
|
589
|
+
]);
|
|
590
|
+
}
|
|
591
|
+
function KanbanSelector({ dragAreaId = DEFAULT_DRAG_AREA_ID, autoScrollMargin = DEFAULT_AUTO_SCROLL_MARGIN, ignoredSlots = DEFAULT_IGNORED_SLOTS }) {
|
|
592
|
+
const context = useKanbanDndContext();
|
|
593
|
+
const isSelectingRef = useRef(false);
|
|
594
|
+
useAutoScroll({
|
|
595
|
+
isSelectingRef,
|
|
596
|
+
dragAreaId,
|
|
597
|
+
autoScrollMargin
|
|
598
|
+
});
|
|
599
|
+
const { DragSelection } = useSelectionContainer({
|
|
600
|
+
shouldStartSelecting: useMemo(() => (target) => shouldStartSelecting(target, ignoredSlots), [ignoredSlots]),
|
|
601
|
+
onSelectionChange: (selection) => {
|
|
602
|
+
if (!context) return;
|
|
603
|
+
const selectedIds = [];
|
|
604
|
+
context.getSelectableItems().forEach((item) => {
|
|
605
|
+
if (!item.element) return;
|
|
606
|
+
const rect = item.element.getBoundingClientRect();
|
|
607
|
+
if (boxesIntersect(selection, {
|
|
608
|
+
...rect,
|
|
609
|
+
left: rect.left + window.scrollX,
|
|
610
|
+
top: rect.top,
|
|
611
|
+
width: rect.width,
|
|
612
|
+
height: rect.height
|
|
613
|
+
})) selectedIds.push(String(item.id));
|
|
614
|
+
});
|
|
615
|
+
context.setSelectedCardIds(selectedIds);
|
|
616
|
+
},
|
|
617
|
+
onSelectionEnd: () => {
|
|
618
|
+
isSelectingRef.current = false;
|
|
619
|
+
},
|
|
620
|
+
onSelectionStart: () => {
|
|
621
|
+
isSelectingRef.current = true;
|
|
622
|
+
},
|
|
623
|
+
selectionProps: { style: {
|
|
624
|
+
pointerEvents: "none",
|
|
625
|
+
position: "fixed",
|
|
626
|
+
inset: 0,
|
|
627
|
+
zIndex: 50
|
|
628
|
+
} }
|
|
629
|
+
});
|
|
630
|
+
useEffect(() => {
|
|
631
|
+
if (!context) return;
|
|
632
|
+
const handlePointerUp = (e) => {
|
|
633
|
+
const target = e.target;
|
|
634
|
+
if (!isSelectingRef.current && !context.isDragging && !target?.closest("[data-draggable=\"true\"]")) context.clearSelectedCards();
|
|
635
|
+
};
|
|
636
|
+
document.addEventListener("pointerup", handlePointerUp);
|
|
637
|
+
return () => document.removeEventListener("pointerup", handlePointerUp);
|
|
638
|
+
}, [context]);
|
|
639
|
+
if (!context) return null;
|
|
640
|
+
return /* @__PURE__ */ jsx(DragSelection, {});
|
|
641
|
+
}
|
|
642
|
+
|
|
643
|
+
//#endregion
|
|
644
|
+
//#region src/components/kanban-dnd/use-kanban-column-dnd.ts
|
|
645
|
+
function useKanbanColumnDnD({ columnId, elementRef, dragHandleRef }) {
|
|
646
|
+
useEffect(() => {
|
|
647
|
+
const element = elementRef.current;
|
|
648
|
+
if (!element) return;
|
|
649
|
+
return combine(draggable({
|
|
650
|
+
element,
|
|
651
|
+
dragHandle: dragHandleRef?.current ?? void 0,
|
|
652
|
+
getInitialData: () => ({
|
|
653
|
+
type: "column",
|
|
654
|
+
columnId: String(columnId)
|
|
655
|
+
})
|
|
656
|
+
}), dropTargetForElements({
|
|
657
|
+
element,
|
|
658
|
+
canDrop: ({ source }) => source.data.type === "column" && String(source.data.columnId) !== String(columnId),
|
|
659
|
+
getData: () => ({
|
|
660
|
+
type: "column",
|
|
661
|
+
columnId: String(columnId)
|
|
662
|
+
})
|
|
663
|
+
}));
|
|
664
|
+
}, [
|
|
665
|
+
columnId,
|
|
666
|
+
dragHandleRef,
|
|
667
|
+
elementRef
|
|
668
|
+
]);
|
|
669
|
+
}
|
|
670
|
+
|
|
671
|
+
//#endregion
|
|
672
|
+
export { KanbanCardItem, KanbanDndMonitor, KanbanDropZone, KanbanSelector, moveCardsInColumns, useKanbanColumnDnD, useKanbanSelection };
|
|
673
|
+
//# sourceMappingURL=kanban-dnd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kanban-dnd.js","names":["STACKED_CLONE_BASE_STYLE: Partial<CSSStyleDeclaration>","defaultGetColumnId","nextOrder: number | null","xContainer: HTMLElement | null","yContainer: HTMLElement | null","selectedIds: string[]"],"sources":["../src/components/kanban-dnd/context.tsx","../src/components/kanban-dnd/constants.ts","../src/components/kanban-dnd/utils.ts","../src/components/kanban-dnd/drag-preview.ts","../src/components/kanban-dnd/kanban-card-item.tsx","../src/components/kanban-dnd/move-cards.ts","../src/components/kanban-dnd/kanban-dnd-monitor.tsx","../src/components/kanban-dnd/kanban-dropzone.tsx","../src/components/kanban-dnd/kanban-selector.tsx","../src/components/kanban-dnd/use-kanban-column-dnd.ts"],"sourcesContent":["'use client';\n\nimport { createContext, useContext } from 'react';\n\nimport type { KanbanSelectableItem } from './types';\n\ntype KanbanDndContextValue = {\n isDragging: boolean;\n getSelectedCardIds: () => string[];\n setSelectedCardIds: (cardIds: string[]) => void;\n addSelectedCardId: (cardId: string) => void;\n clearSelectedCards: () => void;\n toggleSelectedCardId: (cardId: string) => void;\n registerSelectableItem: (id: string, element: HTMLElement | null) => void;\n getSelectableItems: () => KanbanSelectableItem[];\n};\n\nconst KanbanDndContext = createContext<KanbanDndContextValue | null>(null);\n\nexport function KanbanDndProvider({\n children,\n value,\n}: {\n children: React.ReactNode;\n value: KanbanDndContextValue;\n}) {\n return (\n <KanbanDndContext.Provider value={value}>\n {children}\n </KanbanDndContext.Provider>\n );\n}\n\nexport function useKanbanDndContext() {\n return useContext(KanbanDndContext);\n}\n\nexport function useKanbanSelection() {\n const context = useKanbanDndContext();\n\n if (!context) {\n return {\n selectedCardIds: [] as string[],\n isSelected: () => false,\n setSelectedCardIds: () => {},\n addSelectedCardId: () => {},\n clearSelectedCards: () => {},\n toggleSelectedCardId: () => {},\n };\n }\n\n const selectedCardIds = context.getSelectedCardIds();\n\n return {\n selectedCardIds,\n isSelected: (cardId: string) => selectedCardIds.includes(cardId),\n setSelectedCardIds: context.setSelectedCardIds,\n addSelectedCardId: context.addSelectedCardId,\n clearSelectedCards: context.clearSelectedCards,\n toggleSelectedCardId: context.toggleSelectedCardId,\n };\n}\n","export const PREVIEW_STACK_LIMIT = 10;\nexport const PREVIEW_STACK_X_OFFSET = 10;\nexport const PREVIEW_STACK_Y_OFFSET = 8;\nexport const PREVIEW_STACK_MIN_OPACITY = 0.75;\n\nexport const STACKED_CLONE_BASE_STYLE: Partial<CSSStyleDeclaration> = {\n pointerEvents: 'none',\n margin: '0',\n width: '100%',\n top: '0',\n left: '0',\n};\n\nexport const DEFAULT_AUTO_SCROLL_OVERFLOW = {\n forLeftEdge: {\n left: 320,\n top: 160,\n bottom: 160,\n },\n forRightEdge: {\n right: 160,\n top: 120,\n bottom: 120,\n },\n};\n","import type { DropTarget } from './types';\n\nexport function applyStyles(\n element: HTMLElement,\n styles: Partial<CSSStyleDeclaration>\n) {\n Object.assign(element.style, styles);\n}\n\nexport function getTargetColumnId(\n dropTargets: DropTarget[],\n targetType: string\n) {\n const target = dropTargets.find((item) => item.data.type === targetType);\n return target ? String(target.data.columnId ?? '') : '';\n}\n","import {\n PREVIEW_STACK_LIMIT,\n PREVIEW_STACK_MIN_OPACITY,\n PREVIEW_STACK_X_OFFSET,\n PREVIEW_STACK_Y_OFFSET,\n STACKED_CLONE_BASE_STYLE,\n} from './constants';\nimport type { KanbanSelectableItem } from './types';\nimport { applyStyles } from './utils';\n\nfunction createStackedClone(original: HTMLElement, index: number) {\n const clone = original.cloneNode(true) as HTMLElement;\n const xOffset = index * PREVIEW_STACK_X_OFFSET;\n const yOffset = index * PREVIEW_STACK_Y_OFFSET;\n const opacity = Math.max(1 - index * 0.1, PREVIEW_STACK_MIN_OPACITY);\n\n applyStyles(clone, {\n ...STACKED_CLONE_BASE_STYLE,\n position: index === 0 ? 'relative' : 'absolute',\n transform: `translate(${xOffset}px, ${yOffset}px)`,\n opacity: String(opacity),\n });\n\n return clone;\n}\n\nfunction createFallbackClone(sourceElement: HTMLElement) {\n const fallback = sourceElement.cloneNode(true) as HTMLElement;\n\n applyStyles(fallback, {\n pointerEvents: 'none',\n margin: '0',\n });\n\n return fallback;\n}\n\nexport function buildDragPreview({\n cardId,\n sourceElement,\n getSelectableItems,\n getSelectedCardIds,\n}: {\n cardId: string;\n sourceElement: HTMLElement;\n getSelectableItems?: () => KanbanSelectableItem[];\n getSelectedCardIds?: () => string[];\n}) {\n const selectedIds = getSelectedCardIds?.() ?? [];\n const idsToPreview = Array.from(new Set([...selectedIds, String(cardId)]));\n const root = document.createElement('div');\n\n applyStyles(root, {\n position: 'relative',\n });\n\n const selectableItems = getSelectableItems?.() ?? [];\n const itemElementById = new Map(\n selectableItems\n .filter((item) => item.element)\n .map((item) => [String(item.id), item.element as HTMLElement])\n );\n\n idsToPreview.slice(0, PREVIEW_STACK_LIMIT).forEach((previewId, index) => {\n const original = itemElementById.get(String(previewId));\n if (!original) return;\n\n root.appendChild(createStackedClone(original, index));\n });\n\n if (!root.childElementCount) {\n root.appendChild(createFallbackClone(sourceElement));\n }\n\n return root;\n}\n","'use client';\n\nimport { useEffect, useRef } from 'react';\n\nimport { draggable } from '@atlaskit/pragmatic-drag-and-drop/element/adapter';\nimport { preserveOffsetOnSource } from '@atlaskit/pragmatic-drag-and-drop/element/preserve-offset-on-source';\nimport { setCustomNativeDragPreview } from '@atlaskit/pragmatic-drag-and-drop/element/set-custom-native-drag-preview';\nimport { useKanbanDndContext } from './context';\nimport { buildDragPreview } from './drag-preview';\nimport type { KanbanCardItemProps } from './types';\n\nexport function KanbanCardItem({\n id,\n children,\n className,\n getSelectedCardIds,\n getSelectableItems,\n}: KanbanCardItemProps) {\n const ref = useRef<HTMLDivElement>(null);\n const context = useKanbanDndContext();\n\n const getSelectedCardIdsSafe =\n getSelectedCardIds ?? context?.getSelectedCardIds;\n const getSelectableItemsSafe =\n getSelectableItems ?? context?.getSelectableItems;\n\n useEffect(() => {\n context?.registerSelectableItem(String(id), ref.current);\n\n return () => {\n context?.registerSelectableItem(String(id), null);\n };\n }, [context, id]);\n\n useEffect(() => {\n const element = ref.current;\n if (!element) return;\n\n return draggable({\n element,\n getInitialData: () => ({\n type: 'card',\n cardId: String(id),\n }),\n onGenerateDragPreview: ({ nativeSetDragImage, source, location }) => {\n setCustomNativeDragPreview({\n getOffset: preserveOffsetOnSource({\n element: source.element,\n input: location.current.input,\n }),\n render({ container }) {\n const root = buildDragPreview({\n cardId: String(id),\n sourceElement: source.element,\n getSelectableItems: getSelectableItemsSafe,\n getSelectedCardIds: getSelectedCardIdsSafe,\n });\n\n container.appendChild(root);\n\n return () => {\n if (root.parentElement === container) {\n container.removeChild(root);\n }\n };\n },\n nativeSetDragImage,\n });\n },\n });\n }, [getSelectableItemsSafe, getSelectedCardIdsSafe, id]);\n\n return (\n <div\n className={className}\n data-draggable=\"true\"\n id={`kanban-card-item-${id}`}\n ref={ref}\n suppressHydrationWarning\n >\n {children}\n </div>\n );\n}\n","type AnyObject = Record<string, unknown>;\n\ntype MoveCardsResolvers<TColumn, TCard> = {\n getColumnId: (column: TColumn) => string;\n getCards: (column: TColumn) => TCard[];\n setCards: (column: TColumn, cards: TCard[]) => TColumn;\n getCardId: (card: TCard) => string;\n};\n\nfunction hasObjectValue(value: unknown): value is AnyObject {\n return typeof value === 'object' && value !== null;\n}\n\nfunction defaultGetColumnId<TColumn>(column: TColumn): string {\n if (!hasObjectValue(column)) return '';\n const id = column.id;\n return id === undefined || id === null ? '' : String(id);\n}\n\nfunction defaultGetCards<TColumn, TCard>(column: TColumn): TCard[] {\n if (!hasObjectValue(column)) return [];\n const cards = column.cards;\n return Array.isArray(cards) ? (cards as TCard[]) : [];\n}\n\nfunction defaultSetCards<TColumn, TCard>(\n column: TColumn,\n cards: TCard[]\n): TColumn {\n if (!hasObjectValue(column)) return column;\n return { ...column, cards } as TColumn;\n}\n\nfunction defaultGetCardId<TCard>(card: TCard): string {\n if (!hasObjectValue(card)) return '';\n const id = card.id;\n return id === undefined || id === null ? '' : String(id);\n}\n\nexport function moveCardsInColumns<TColumn, TCard>(\n columns: TColumn[],\n cardIds: string[],\n targetColumnId: string,\n resolvers: Partial<MoveCardsResolvers<TColumn, TCard>> = {}\n): TColumn[] {\n const getColumnId = resolvers.getColumnId ?? defaultGetColumnId<TColumn>;\n const getCards = resolvers.getCards ?? defaultGetCards<TColumn, TCard>;\n const setCards = resolvers.setCards ?? defaultSetCards<TColumn, TCard>;\n const getCardId = resolvers.getCardId ?? defaultGetCardId<TCard>;\n\n const selectedIds = new Set(cardIds);\n if (selectedIds.size === 0) return columns;\n\n const cardsToMove = columns.flatMap((column) =>\n getCards(column).filter((card) => selectedIds.has(getCardId(card)))\n );\n\n if (cardsToMove.length === 0) return columns;\n\n return columns.map((column) => {\n const currentCards = getCards(column);\n\n if (getColumnId(column) === targetColumnId) {\n const existingIds = new Set(currentCards.map((card) => getCardId(card)));\n const incomingCards = cardsToMove.filter(\n (card) => !existingIds.has(getCardId(card))\n );\n return setCards(column, [...currentCards, ...incomingCards]);\n }\n\n return setCards(\n column,\n currentCards.filter((card) => !selectedIds.has(getCardId(card)))\n );\n });\n}\n","'use client';\n\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { combine } from '@atlaskit/pragmatic-drag-and-drop/combine';\nimport { monitorForElements } from '@atlaskit/pragmatic-drag-and-drop/element/adapter';\nimport { reorder } from '@atlaskit/pragmatic-drag-and-drop/reorder';\nimport { autoScrollForElements } from '@atlaskit/pragmatic-drag-and-drop-auto-scroll/element';\nimport { unsafeOverflowAutoScrollForElements } from '@atlaskit/pragmatic-drag-and-drop-auto-scroll/unsafe-overflow/element';\nimport { DEFAULT_AUTO_SCROLL_OVERFLOW } from './constants';\nimport { KanbanDndProvider } from './context';\nimport { moveCardsInColumns } from './move-cards';\nimport type { DropTarget, KanbanDndMonitorProps } from './types';\nimport { getTargetColumnId } from './utils';\n\nfunction defaultGetColumnId<TColumn>(column: TColumn): string {\n const maybeColumn = column as Record<string, unknown>;\n const id = maybeColumn?.id;\n return id === undefined || id === null ? '' : String(id);\n}\n\nexport function KanbanDndMonitor<TColumn>({\n onCardsMove,\n onColumnReorder,\n scrollContainerId,\n setColumns,\n children,\n getColumnId,\n moveCards,\n getCardsFromColumn,\n setCardsInColumn,\n getCardId,\n getSelectedCardIds,\n setSelectedCardIds,\n addSelectedCardId,\n clearSelectedCards,\n onSelectionChange,\n setIsDragging,\n autoScrollOverflow,\n isAutoScrollEnabled = true,\n renderIdleLayer,\n}: KanbanDndMonitorProps<TColumn>) {\n const [isDragging, setLocalIsDragging] = useState(false);\n const [internalSelectedCardIds, setInternalSelectedCardIds] = useState<\n string[]\n >([]);\n const selectableItemMapRef = useRef(new Map<string, HTMLElement>());\n const getColumnIdSafe = useCallback(\n (column: TColumn) =>\n getColumnId ? getColumnId(column) : defaultGetColumnId(column),\n [getColumnId]\n );\n\n const getSelectedCardIdsSafe = useCallback(\n () => getSelectedCardIds?.() ?? internalSelectedCardIds,\n [getSelectedCardIds, internalSelectedCardIds]\n );\n\n const addSelectedCardIdSafe = useCallback(\n (cardId: string) => {\n if (addSelectedCardId) {\n addSelectedCardId(cardId);\n return;\n }\n\n setInternalSelectedCardIds((prev) =>\n prev.includes(cardId) ? prev : [...prev, cardId]\n );\n },\n [addSelectedCardId]\n );\n\n const clearSelectedCardsSafe = useCallback(() => {\n if (clearSelectedCards) {\n clearSelectedCards();\n return;\n }\n\n setInternalSelectedCardIds([]);\n }, [clearSelectedCards]);\n\n const setSelectedCardIdsSafe = useCallback(\n (cardIds: string[]) => {\n if (setSelectedCardIds) {\n setSelectedCardIds(cardIds);\n return;\n }\n\n if (getSelectedCardIds && clearSelectedCards && addSelectedCardId) {\n clearSelectedCards();\n cardIds.forEach((cardId) => addSelectedCardId(cardId));\n return;\n }\n\n setInternalSelectedCardIds(cardIds);\n },\n [\n addSelectedCardId,\n clearSelectedCards,\n getSelectedCardIds,\n setSelectedCardIds,\n ]\n );\n\n const toggleSelectedCardIdSafe = useCallback(\n (cardId: string) => {\n const selectedIds = getSelectedCardIdsSafe();\n if (selectedIds.includes(cardId)) {\n if (!getSelectedCardIds) {\n setInternalSelectedCardIds((prev) =>\n prev.filter((id) => id !== cardId)\n );\n }\n return;\n }\n\n addSelectedCardIdSafe(cardId);\n },\n [addSelectedCardIdSafe, getSelectedCardIds, getSelectedCardIdsSafe]\n );\n\n const registerSelectableItem = useCallback(\n (id: string, element: HTMLElement | null) => {\n if (!element) {\n selectableItemMapRef.current.delete(id);\n return;\n }\n\n selectableItemMapRef.current.set(id, element);\n },\n []\n );\n\n const getSelectableItems = useCallback(\n () =>\n Array.from(selectableItemMapRef.current.entries()).map(\n ([id, element]) => ({\n id,\n element,\n })\n ),\n []\n );\n\n useEffect(() => {\n onSelectionChange?.(getSelectedCardIdsSafe());\n }, [getSelectedCardIdsSafe, internalSelectedCardIds, onSelectionChange]);\n\n const contextValue = useMemo(\n () => ({\n isDragging,\n getSelectedCardIds: getSelectedCardIdsSafe,\n setSelectedCardIds: setSelectedCardIdsSafe,\n addSelectedCardId: addSelectedCardIdSafe,\n clearSelectedCards: clearSelectedCardsSafe,\n toggleSelectedCardId: toggleSelectedCardIdSafe,\n registerSelectableItem,\n getSelectableItems,\n }),\n [\n addSelectedCardIdSafe,\n clearSelectedCardsSafe,\n getSelectableItems,\n getSelectedCardIdsSafe,\n isDragging,\n registerSelectableItem,\n setSelectedCardIdsSafe,\n toggleSelectedCardIdSafe,\n ]\n );\n\n const finishDrag = () => {\n setLocalIsDragging(false);\n setTimeout(() => {\n setIsDragging?.(false);\n clearSelectedCardsSafe();\n }, 100);\n };\n\n const startDrag = (source: { data: Record<string, unknown> }) => {\n if (source.data.type !== 'column' && source.data.type !== 'card') return;\n\n if (source.data.type === 'card') {\n const cardId = String(source.data.cardId ?? '');\n const selectedIds = getSelectedCardIdsSafe();\n if (!selectedIds.includes(cardId)) {\n addSelectedCardIdSafe(cardId);\n }\n }\n\n setIsDragging?.(true);\n setLocalIsDragging(true);\n };\n\n const dropColumn = (sourceColumnId: string, targetColumnId: string) => {\n if (!sourceColumnId || sourceColumnId === targetColumnId) return;\n\n let nextOrder: number | null = null;\n\n setColumns((prev) => {\n const oldIndex = prev.findIndex(\n (col) => getColumnIdSafe(col) === sourceColumnId\n );\n const newIndex = prev.findIndex(\n (col) => getColumnIdSafe(col) === targetColumnId\n );\n\n if (oldIndex < 0 || newIndex < 0 || oldIndex === newIndex) {\n return prev;\n }\n\n nextOrder = newIndex + 1;\n return reorder({\n list: prev,\n startIndex: oldIndex,\n finishIndex: newIndex,\n });\n });\n\n if (nextOrder !== null) {\n onColumnReorder?.({ columnId: sourceColumnId, order: nextOrder });\n }\n };\n\n const dropCard = (cardId: string, targetColumnId: string) => {\n if (!cardId || !targetColumnId) return;\n\n const selectedIds = getSelectedCardIdsSafe();\n const idsToMove = selectedIds.length > 0 ? selectedIds : [cardId];\n\n setColumns((prev) => {\n if (moveCards) {\n return moveCards(prev, idsToMove, targetColumnId);\n }\n\n return moveCardsInColumns(prev, idsToMove, targetColumnId, {\n getColumnId: getColumnIdSafe,\n getCards: getCardsFromColumn as\n | ((column: TColumn) => unknown[])\n | undefined,\n setCards: setCardsInColumn as\n | ((column: TColumn, cards: unknown[]) => TColumn)\n | undefined,\n getCardId,\n });\n });\n onCardsMove?.({ cardIds: idsToMove, targetColumnId });\n };\n\n useEffect(() => {\n const monitorCleanup = monitorForElements({\n onDragStart: ({ source }) => startDrag(source),\n onDrop: ({ source, location }) => {\n const dropTargets = location.current.dropTargets as DropTarget[];\n\n if (source.data.type === 'column') {\n dropColumn(\n String(source.data.columnId ?? ''),\n getTargetColumnId(dropTargets, 'column')\n );\n finishDrag();\n return;\n }\n\n if (source.data.type === 'card') {\n dropCard(\n String(source.data.cardId ?? ''),\n getTargetColumnId(dropTargets, 'column-drop')\n );\n finishDrag();\n return;\n }\n\n finishDrag();\n },\n });\n\n if (!isAutoScrollEnabled || !scrollContainerId) {\n return monitorCleanup;\n }\n\n const scrollContainer = document.getElementById(scrollContainerId);\n if (!scrollContainer) {\n return monitorCleanup;\n }\n\n return combine(\n monitorCleanup,\n autoScrollForElements({\n element: scrollContainer,\n canScroll: ({ source }) =>\n source.data.type === 'card' || source.data.type === 'column',\n getAllowedAxis: () => 'horizontal',\n }),\n unsafeOverflowAutoScrollForElements({\n element: scrollContainer,\n canScroll: ({ source }) =>\n source.data.type === 'card' || source.data.type === 'column',\n getAllowedAxis: () => 'horizontal',\n getOverflow: () => autoScrollOverflow ?? DEFAULT_AUTO_SCROLL_OVERFLOW,\n })\n );\n }, [\n addSelectedCardIdSafe,\n autoScrollOverflow,\n clearSelectedCardsSafe,\n getCardId,\n getCardsFromColumn,\n getColumnIdSafe,\n getSelectedCardIdsSafe,\n isAutoScrollEnabled,\n moveCards,\n onCardsMove,\n onColumnReorder,\n setCardsInColumn,\n scrollContainerId,\n setSelectedCardIds,\n setColumns,\n setIsDragging,\n ]);\n\n return (\n <KanbanDndProvider value={contextValue}>\n <div className=\"contain-layout h-full\" id=\"draggable-area\">\n {!isDragging && renderIdleLayer}\n {children}\n </div>\n </KanbanDndProvider>\n );\n}\n","'use client';\n\nimport { useEffect, useRef, useState } from 'react';\n\nimport { cn } from '@/lib/utils';\nimport { dropTargetForElements } from '@atlaskit/pragmatic-drag-and-drop/element/adapter';\nimport type { KanbanDropZoneProps } from './types';\n\nexport function KanbanDropZone({\n children,\n id,\n className,\n isOverClassName,\n}: KanbanDropZoneProps) {\n const [isOver, setIsOver] = useState(false);\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const element = ref.current;\n if (!element) return;\n\n return dropTargetForElements({\n element,\n canDrop: ({ source }) => source.data.type === 'card',\n getData: () => ({\n type: 'column-drop',\n columnId: String(id),\n }),\n onDragEnter: () => setIsOver(true),\n onDragLeave: () => setIsOver(false),\n onDrop: () => setIsOver(false),\n });\n }, [id]);\n\n return (\n <div\n className={cn(\n 'border flex-1 border-transparent rounded-xl transition-colors',\n isOver && (isOverClassName ?? 'border-border'),\n className\n )}\n id={`kanban-drop-zone-${id}`}\n ref={ref}\n >\n {children}\n </div>\n );\n}\n","'use client';\n\nimport type { MutableRefObject } from 'react';\nimport { useEffect, useMemo, useRef } from 'react';\n\nimport {\n boxesIntersect,\n useSelectionContainer,\n} from '@air/react-drag-to-select';\nimport { useKanbanDndContext } from './context';\nimport type { KanbanSelectorProps } from './types';\n\nconst DEFAULT_DRAG_AREA_ID = 'draggable-area';\nconst DEFAULT_AUTO_SCROLL_MARGIN = 120;\nconst DEFAULT_IGNORED_SLOTS = [\n 'sheet-content',\n 'popover-content',\n 'select-content',\n 'dialog-content',\n 'dialog-overlay',\n];\n\nconst clampDelta = (delta: number, current: number, max: number) =>\n delta > 0 ? Math.min(delta, max - current) : Math.max(delta, -current);\n\nconst edgeDelta = (\n pointer: number,\n start: number,\n end: number,\n margin: number,\n dt: number\n) => {\n if (pointer < start + margin)\n return ((pointer - (start + margin)) / margin) * dt;\n if (pointer > end - margin) return ((pointer - (end - margin)) / margin) * dt;\n return 0;\n};\n\nfunction findScrollable(\n node: HTMLElement | null,\n axis: 'x' | 'y'\n): HTMLElement | null {\n if (!node) return null;\n\n const style = window.getComputedStyle(node);\n const canScrollX =\n /(auto|scroll)/.test(style.overflowX) &&\n node.scrollWidth > node.clientWidth;\n const canScrollY =\n /(auto|scroll)/.test(style.overflowY) &&\n node.scrollHeight > node.clientHeight;\n\n if ((axis === 'x' && canScrollX) || (axis === 'y' && canScrollY)) return node;\n return findScrollable(node.parentElement, axis);\n}\n\nfunction getContainerBounds(container: HTMLElement | null) {\n if (\n !container ||\n container === document.documentElement ||\n container === document.body\n ) {\n return {\n left: 0,\n right: window.innerWidth,\n top: 0,\n bottom: window.innerHeight,\n };\n }\n\n const rect = container.getBoundingClientRect();\n return {\n left: Math.max(0, rect.left),\n right: Math.min(window.innerWidth, rect.right),\n top: Math.max(0, rect.top),\n bottom: Math.min(window.innerHeight, rect.bottom),\n };\n}\n\nfunction shouldStartSelecting(\n target: EventTarget | null,\n ignoredSlots: string[]\n): boolean {\n if (!(target instanceof Element)) return false;\n\n return !(\n target.closest('[data-draggable=\"true\"]') ||\n ignoredSlots.some((slot) => target.closest(`[data-slot=\"${slot}\"]`))\n );\n}\n\nfunction useAutoScroll({\n isSelectingRef,\n dragAreaId,\n autoScrollMargin,\n}: {\n isSelectingRef: MutableRefObject<boolean>;\n dragAreaId: string;\n autoScrollMargin: number;\n}) {\n useEffect(() => {\n let raf = 0;\n let lastTime = performance.now();\n const pos = { x: 0, y: 0 };\n let xContainer: HTMLElement | null = null;\n let yContainer: HTMLElement | null = null;\n let xMax = 0;\n let yMax = 0;\n let useWindowY = false;\n\n const onMove = (e: PointerEvent) => (\n (pos.x = e.clientX), (pos.y = e.clientY)\n );\n\n window.addEventListener('pointermove', onMove, { passive: true });\n\n const reset = () => {\n xContainer = null;\n yContainer = null;\n xMax = 0;\n yMax = 0;\n useWindowY = false;\n };\n\n const step = (time: number) => {\n const dt = time - lastTime;\n lastTime = time;\n\n if (!isSelectingRef.current) {\n reset();\n raf = requestAnimationFrame(step);\n return;\n }\n\n if (!xContainer && !yContainer && xMax === 0 && yMax === 0) {\n const startNode =\n document.getElementById(dragAreaId)?.parentElement ?? null;\n xContainer = findScrollable(startNode, 'x');\n yContainer = findScrollable(startNode, 'y');\n useWindowY = !yContainer;\n xMax = xContainer ? xContainer.scrollWidth - xContainer.clientWidth : 0;\n yMax = useWindowY\n ? document.documentElement.scrollHeight - window.innerHeight\n : yContainer\n ? yContainer.scrollHeight - yContainer.clientHeight\n : 0;\n }\n\n const xBounds = getContainerBounds(xContainer);\n const yBounds = useWindowY\n ? { top: 0, bottom: window.innerHeight }\n : getContainerBounds(yContainer);\n\n const dx = edgeDelta(\n pos.x,\n xBounds.left,\n xBounds.right,\n autoScrollMargin,\n dt\n );\n const dy = edgeDelta(\n pos.y,\n yBounds.top,\n yBounds.bottom,\n autoScrollMargin,\n dt\n );\n\n let didScroll = false;\n\n if (dx && xContainer && xMax > 0) {\n const clampedDx = clampDelta(dx, xContainer.scrollLeft, xMax);\n if (clampedDx) {\n xContainer.scrollBy(clampedDx, 0);\n didScroll = true;\n }\n }\n\n if (dy && yMax > 0) {\n if (useWindowY) {\n const clampedDy = clampDelta(\n dy,\n window.scrollY || document.documentElement.scrollTop,\n yMax\n );\n if (clampedDy) {\n window.scrollBy(0, clampedDy);\n didScroll = true;\n }\n } else if (yContainer) {\n const clampedDy = clampDelta(dy, yContainer.scrollTop, yMax);\n if (clampedDy) {\n yContainer.scrollBy(0, clampedDy);\n didScroll = true;\n }\n }\n }\n\n if (didScroll) {\n document.body.dispatchEvent(\n new MouseEvent('mousemove', {\n clientX: pos.x,\n clientY: pos.y,\n bubbles: true,\n cancelable: true,\n })\n );\n }\n\n raf = requestAnimationFrame(step);\n };\n\n raf = requestAnimationFrame(step);\n\n return () => {\n window.removeEventListener('pointermove', onMove);\n cancelAnimationFrame(raf);\n };\n }, [autoScrollMargin, dragAreaId, isSelectingRef]);\n}\n\nexport function KanbanSelector({\n dragAreaId = DEFAULT_DRAG_AREA_ID,\n autoScrollMargin = DEFAULT_AUTO_SCROLL_MARGIN,\n ignoredSlots = DEFAULT_IGNORED_SLOTS,\n}: KanbanSelectorProps) {\n const context = useKanbanDndContext();\n const isSelectingRef = useRef(false);\n\n useAutoScroll({ isSelectingRef, dragAreaId, autoScrollMargin });\n\n const shouldStart = useMemo(\n () => (target: EventTarget | null) =>\n shouldStartSelecting(target, ignoredSlots),\n [ignoredSlots]\n );\n\n const { DragSelection } = useSelectionContainer({\n shouldStartSelecting: shouldStart,\n onSelectionChange: (selection: Parameters<typeof boxesIntersect>[0]) => {\n if (!context) return;\n\n const selectedIds: string[] = [];\n\n context.getSelectableItems().forEach((item) => {\n if (!item.element) return;\n\n const rect = item.element.getBoundingClientRect();\n const cardRect = {\n ...rect,\n left: rect.left + window.scrollX,\n top: rect.top,\n width: rect.width,\n height: rect.height,\n };\n\n if (boxesIntersect(selection, cardRect)) {\n selectedIds.push(String(item.id));\n }\n });\n\n context.setSelectedCardIds(selectedIds);\n },\n onSelectionEnd: () => {\n isSelectingRef.current = false;\n },\n onSelectionStart: () => {\n isSelectingRef.current = true;\n },\n selectionProps: {\n style: {\n pointerEvents: 'none',\n position: 'fixed',\n inset: 0,\n zIndex: 50,\n },\n },\n });\n\n useEffect(() => {\n if (!context) return;\n\n const handlePointerUp = (e: PointerEvent) => {\n const target = e.target as Element | null;\n if (\n !isSelectingRef.current &&\n !context.isDragging &&\n !target?.closest('[data-draggable=\"true\"]')\n ) {\n context.clearSelectedCards();\n }\n };\n\n document.addEventListener('pointerup', handlePointerUp);\n return () => document.removeEventListener('pointerup', handlePointerUp);\n }, [context]);\n\n if (!context) return null;\n\n return <DragSelection />;\n}\n","'use client';\n\nimport { useEffect } from 'react';\n\nimport { combine } from '@atlaskit/pragmatic-drag-and-drop/combine';\nimport {\n draggable,\n dropTargetForElements,\n} from '@atlaskit/pragmatic-drag-and-drop/element/adapter';\nimport type { UseKanbanColumnDnDProps } from './types';\n\nexport function useKanbanColumnDnD({\n columnId,\n elementRef,\n dragHandleRef,\n}: UseKanbanColumnDnDProps) {\n useEffect(() => {\n const element = elementRef.current;\n if (!element) return;\n\n return combine(\n draggable({\n element,\n dragHandle: dragHandleRef?.current ?? undefined,\n getInitialData: () => ({\n type: 'column',\n columnId: String(columnId),\n }),\n }),\n dropTargetForElements({\n element,\n canDrop: ({ source }) =>\n source.data.type === 'column' &&\n String(source.data.columnId) !== String(columnId),\n getData: () => ({\n type: 'column',\n columnId: String(columnId),\n }),\n })\n );\n }, [columnId, dragHandleRef, elementRef]);\n}\n"],"mappings":"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"}
|
package/dist/page-header.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime8 from "react/jsx-runtime";
|
|
2
2
|
|
|
3
3
|
//#region src/components/page-header/page-header.d.ts
|
|
4
4
|
interface PageHeaderProps {
|
|
@@ -10,7 +10,7 @@ declare function PageHeader({
|
|
|
10
10
|
title,
|
|
11
11
|
help,
|
|
12
12
|
description
|
|
13
|
-
}: PageHeaderProps):
|
|
13
|
+
}: PageHeaderProps): react_jsx_runtime8.JSX.Element;
|
|
14
14
|
//#endregion
|
|
15
15
|
export { PageHeader, type PageHeaderProps };
|
|
16
16
|
//# sourceMappingURL=page-header.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FieldPath, FieldPathValue, FieldValues, UseControllerProps } from "react-hook-form";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react_jsx_runtime6 from "react/jsx-runtime";
|
|
3
3
|
import { Options } from "nuqs";
|
|
4
4
|
import { PopoverProps } from "@radix-ui/react-popover";
|
|
5
5
|
|
|
@@ -76,7 +76,7 @@ declare function RemoteSelectorField<T, TFieldValues extends FieldValues = Field
|
|
|
76
76
|
...props
|
|
77
77
|
}: RemoteSelectorFieldProps<TFieldValues, TFieldName> & BaseRemoteSelectorProps<T> & {
|
|
78
78
|
withPortal?: boolean;
|
|
79
|
-
}):
|
|
79
|
+
}): react_jsx_runtime6.JSX.Element;
|
|
80
80
|
interface RemoteSelectorQueryProps<T> extends BaseRemoteSelectorProps<T> {
|
|
81
81
|
name: string;
|
|
82
82
|
defaultValue?: string;
|
|
@@ -96,7 +96,7 @@ declare function RemoteSelectorQuery<T>({
|
|
|
96
96
|
fieldLabel,
|
|
97
97
|
type,
|
|
98
98
|
...props
|
|
99
|
-
}: RemoteSelectorQueryProps<T>):
|
|
99
|
+
}: RemoteSelectorQueryProps<T>): react_jsx_runtime6.JSX.Element;
|
|
100
100
|
//#endregion
|
|
101
101
|
export { type BaseRemoteSelectorProps, RemoteSelectorField as RemoteSelector, RemoteSelectorField, type RemoteSelectorFieldProps, RemoteSelectorQuery, type RemoteSelectorQueryProps, type TUseData };
|
|
102
102
|
//# sourceMappingURL=remote-selector.d.ts.map
|
package/dist/text-field.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as Options$1 } from "./with-mask-Chm8kVE1.js";
|
|
2
2
|
import { FieldPath, FieldPathValue, FieldValues, UseControllerProps } from "react-hook-form";
|
|
3
|
-
import * as
|
|
3
|
+
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
4
4
|
import { Options } from "nuqs";
|
|
5
5
|
|
|
6
6
|
//#region src/components/text-field/TextField.d.ts
|
|
@@ -57,7 +57,7 @@ declare function InputText({
|
|
|
57
57
|
name,
|
|
58
58
|
onChange,
|
|
59
59
|
...props
|
|
60
|
-
}: InputTextProps):
|
|
60
|
+
}: InputTextProps): react_jsx_runtime0.JSX.Element;
|
|
61
61
|
interface TextFieldProps<TFieldValues extends FieldValues = FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> extends UseControllerProps<TFieldValues, TFieldName> {
|
|
62
62
|
disabled?: boolean;
|
|
63
63
|
required?: boolean;
|
|
@@ -75,7 +75,7 @@ declare function TextField<TFieldValues extends FieldValues = FieldValues, TFiel
|
|
|
75
75
|
transform,
|
|
76
76
|
prefix,
|
|
77
77
|
...props
|
|
78
|
-
}: TextFieldProps<TFieldValues, TFieldName> & Omit<InputTextProps, 'onChange'>):
|
|
78
|
+
}: TextFieldProps<TFieldValues, TFieldName> & Omit<InputTextProps, 'onChange'>): react_jsx_runtime0.JSX.Element;
|
|
79
79
|
interface QueryTextFieldProps extends Omit<InputTextProps, 'onChange'> {
|
|
80
80
|
name: string;
|
|
81
81
|
defaultValue?: string;
|
|
@@ -87,7 +87,7 @@ declare function QueryTextField({
|
|
|
87
87
|
defaultValue,
|
|
88
88
|
options,
|
|
89
89
|
...props
|
|
90
|
-
}: QueryTextFieldProps):
|
|
90
|
+
}: QueryTextFieldProps): react_jsx_runtime0.JSX.Element;
|
|
91
91
|
interface CookieTextFieldProps extends InputTextProps {
|
|
92
92
|
name: string;
|
|
93
93
|
maxAge?: number;
|
|
@@ -97,7 +97,7 @@ declare function CookieTextField({
|
|
|
97
97
|
maxAge,
|
|
98
98
|
onChange,
|
|
99
99
|
...inputProps
|
|
100
|
-
}: CookieTextFieldProps):
|
|
100
|
+
}: CookieTextFieldProps): react_jsx_runtime0.JSX.Element;
|
|
101
101
|
//#endregion
|
|
102
102
|
export { CookieTextField, type CookieTextFieldProps, InputText, type InputTextProps, QueryTextField, type QueryTextFieldProps, TextField, type TextFieldProps };
|
|
103
103
|
//# sourceMappingURL=text-field.d.ts.map
|
package/dist/toggle-field.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React$1 from "react";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react_jsx_runtime10 from "react/jsx-runtime";
|
|
3
3
|
import { Item, Root } from "@radix-ui/react-toggle-group";
|
|
4
4
|
import { VariantProps } from "class-variance-authority";
|
|
5
5
|
import * as class_variance_authority_types0 from "class-variance-authority/types";
|
|
@@ -28,7 +28,7 @@ declare function ToggleGroup({
|
|
|
28
28
|
transition,
|
|
29
29
|
activeClassName,
|
|
30
30
|
...props
|
|
31
|
-
}: ToggleGroupProps):
|
|
31
|
+
}: ToggleGroupProps): react_jsx_runtime10.JSX.Element;
|
|
32
32
|
//#endregion
|
|
33
33
|
//#region src/components/toggle-field/ToggleField.d.ts
|
|
34
34
|
type ToggleOption = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toggle-field.d.ts","names":[],"sources":["../src/components/toggle-field/ToggleGroup.tsx","../src/components/toggle-field/ToggleField.tsx"],"sourcesContent":[],"mappings":";;;;;;;;cAiBa,sBAuCX;;;;EAvCW,SAAA,CAAA,EAAA,YA8BZ,GAAA,UAAA,GAAA,IAAA,GAAA,SAAA;AAAC,CAAA,GAAD,+BAAA,CAAA,SASC,CAAA,GAAA,SAAA,EAAA,GAAA,MAAA;cAPI,mBA4Be,EAAA,CAAA,KAAS,CAAT,EAAA,CAAA;EAA+B,SAAA,CAAA,EAAA,YAAA,GAAA,UAAA,GAAA,IAAA,GAAA,SAAA;CAA5B,GArBtB,+BAAA,CAAA,SAqB4B,CAAA,GAAA,SAAA,EAAA,GAAA,MAAA;KAAzB,gBAAA,GAAmB,OAAA,CAAM,cACH,CAAA,OADyB,IACzB,CAAA,GAAzB,IAAyB,CAApB,YAAoB,CAAA,OAAA,cAAA,CAAA,EAAA,MAAA,CAAA,GACzB,YADyB,CAAA,OACL,mBADK,CAAA,GAAA;EAApB,UAAA,CAAA,EAEU,UAFV;EAAL,eAAA,CAAA,EAAA,MAAA;CACoB;iBAKb,WAAA,CALP;EAAA,SAAA;EAAA,OAAA;EAAA,SAAA;EAAA,IAAA;EAAA,QAAA;EAAA,UAAA;EAAA,eAAA;EAAA,GAAA;AAAA,CAAA,EAcC,gBAdD,CAAA,EAciB,
|
|
1
|
+
{"version":3,"file":"toggle-field.d.ts","names":[],"sources":["../src/components/toggle-field/ToggleGroup.tsx","../src/components/toggle-field/ToggleField.tsx"],"sourcesContent":[],"mappings":";;;;;;;;cAiBa,sBAuCX;;;;EAvCW,SAAA,CAAA,EAAA,YA8BZ,GAAA,UAAA,GAAA,IAAA,GAAA,SAAA;AAAC,CAAA,GAAD,+BAAA,CAAA,SASC,CAAA,GAAA,SAAA,EAAA,GAAA,MAAA;cAPI,mBA4Be,EAAA,CAAA,KAAS,CAAT,EAAA,CAAA;EAA+B,SAAA,CAAA,EAAA,YAAA,GAAA,UAAA,GAAA,IAAA,GAAA,SAAA;CAA5B,GArBtB,+BAAA,CAAA,SAqB4B,CAAA,GAAA,SAAA,EAAA,GAAA,MAAA;KAAzB,gBAAA,GAAmB,OAAA,CAAM,cACH,CAAA,OADyB,IACzB,CAAA,GAAzB,IAAyB,CAApB,YAAoB,CAAA,OAAA,cAAA,CAAA,EAAA,MAAA,CAAA,GACzB,YADyB,CAAA,OACL,mBADK,CAAA,GAAA;EAApB,UAAA,CAAA,EAEU,UAFV;EAAL,eAAA,CAAA,EAAA,MAAA;CACoB;iBAKb,WAAA,CALP;EAAA,SAAA;EAAA,OAAA;EAAA,SAAA;EAAA,IAAA;EAAA,QAAA;EAAA,UAAA;EAAA,eAAA;EAAA,GAAA;AAAA,CAAA,EAcC,gBAdD,CAAA,EAciB,mBAAA,CAAA,GAAA,CAAA,OAdjB;;;KCrEU,YAAA;;kBAAgD,KAAA,CAAM;;KAEtD,gBAAA,GAAmB,KAC7B,KAAA,CAAM,sBAAsB;;WAInB;EDAE,IAAA,CAAA,EAAA,QAAA,GA8BZ,UAAA;EAEK,IAAA,EAAA,MAAA;EA4BD,YAAA,CAAA,ECzDY,YDyDI,GCzDW,YDyDX,EAAA;EAA+B,kBAAA,CAAA,EAAA,OAAA;CAA5B;cCrDlB,WDsDqB,ECtDR,KAAA,CAAM,EDsDE,CCtDC,gBDsDD,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "maquinaweb-ui",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.48.0",
|
|
4
4
|
"description": "A minimal React component library",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -13,6 +13,10 @@
|
|
|
13
13
|
"import": "./dist/remote-selector.js",
|
|
14
14
|
"types": "./dist/remote-selector.d.ts"
|
|
15
15
|
},
|
|
16
|
+
"./kanban-dnd": {
|
|
17
|
+
"import": "./dist/kanban-dnd.js",
|
|
18
|
+
"types": "./dist/kanban-dnd.d.ts"
|
|
19
|
+
},
|
|
16
20
|
"./split-text-poor": {
|
|
17
21
|
"import": "./dist/split-text-poor.js",
|
|
18
22
|
"types": "./dist/split-text-poor.d.ts"
|
|
@@ -62,10 +66,22 @@
|
|
|
62
66
|
]
|
|
63
67
|
},
|
|
64
68
|
"peerDependencies": {
|
|
69
|
+
"@air/react-drag-to-select": "^5.0.5",
|
|
70
|
+
"@atlaskit/pragmatic-drag-and-drop": "^1.7.9",
|
|
71
|
+
"@atlaskit/pragmatic-drag-and-drop-auto-scroll": "^2.1.5",
|
|
65
72
|
"react": "^18.0.0 || ^19.0.0",
|
|
66
73
|
"react-dom": "^18.0.0 || ^19.0.0"
|
|
67
74
|
},
|
|
68
75
|
"peerDependenciesMeta": {
|
|
76
|
+
"@air/react-drag-to-select": {
|
|
77
|
+
"optional": true
|
|
78
|
+
},
|
|
79
|
+
"@atlaskit/pragmatic-drag-and-drop": {
|
|
80
|
+
"optional": true
|
|
81
|
+
},
|
|
82
|
+
"@atlaskit/pragmatic-drag-and-drop-auto-scroll": {
|
|
83
|
+
"optional": true
|
|
84
|
+
},
|
|
69
85
|
"react-hook-form": {
|
|
70
86
|
"optional": true
|
|
71
87
|
},
|
|
@@ -102,13 +118,16 @@
|
|
|
102
118
|
"use-debounce": "^10.0.6"
|
|
103
119
|
},
|
|
104
120
|
"devDependencies": {
|
|
121
|
+
"@air/react-drag-to-select": "^5.0.5",
|
|
105
122
|
"@biomejs/biome": "^2.3.2",
|
|
123
|
+
"@atlaskit/pragmatic-drag-and-drop": "^1.7.9",
|
|
124
|
+
"@atlaskit/pragmatic-drag-and-drop-auto-scroll": "^2.1.5",
|
|
106
125
|
"@semantic-release/changelog": "^6.0.3",
|
|
107
126
|
"@semantic-release/git": "^10.0.1",
|
|
108
127
|
"@tailwindcss/postcss": "^4.1.16",
|
|
109
128
|
"@types/inputmask": "^5.0.7",
|
|
110
|
-
"@types/react": "^19.2.
|
|
111
|
-
"@types/react-dom": "^19.2.
|
|
129
|
+
"@types/react": "^19.2.14",
|
|
130
|
+
"@types/react-dom": "^19.2.3",
|
|
112
131
|
"cmdk": "^1.1.1",
|
|
113
132
|
"concurrently": "^9.0.0",
|
|
114
133
|
"cookies-next": "^6.1.1",
|
|
@@ -119,12 +138,12 @@
|
|
|
119
138
|
"motion": "^12.23.22",
|
|
120
139
|
"next": "^16.2.0-canary.35",
|
|
121
140
|
"nuqs": "^2.7.0",
|
|
122
|
-
"react": "^19.2.
|
|
141
|
+
"react": "^19.2.4",
|
|
123
142
|
"react-cosmos": "^7.0.0",
|
|
124
143
|
"react-cosmos-next": "^7.0.0",
|
|
125
144
|
"react-cosmos-plugin-open-fixture": "^7.0.0",
|
|
126
|
-
"react-dom": "^19.2.
|
|
127
|
-
"react-hook-form": "^7.
|
|
145
|
+
"react-dom": "^19.2.4",
|
|
146
|
+
"react-hook-form": "^7.71.2",
|
|
128
147
|
"tailwindcss": "^4.1.14",
|
|
129
148
|
"tsdown": "^0.15.6",
|
|
130
149
|
"tw-animate-css": "^1.4.0",
|