@geneui/components 3.0.0-next-2fa65ce-08062026 → 3.0.0-next-fa6959e-02072026
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/Accordion.js +3 -3
- package/ActionableList.js +225 -67
- package/{ActionableListNodeWrapper-42ea60cf.js → ActionableListNodeWrapper-0a3308ca.js} +1 -1
- package/Banner.js +3 -3
- package/Breadcrumb.js +4 -4
- package/{ButtonGroup-f8e59eb9.js → ButtonGroup-ba146dcb.js} +1 -1
- package/ButtonGroup.js +3 -3
- package/ColorPicker.js +3 -3
- package/DataCard.js +3 -3
- package/DataCardList.js +3 -3
- package/DataTable.js +3 -3
- package/Drawer.js +3 -3
- package/Dropdown.js +3 -3
- package/Empty.js +3 -3
- package/GlobalHeader.js +4 -4
- package/Image.js +3 -3
- package/ImagePreview.helpers-6bd10e1c.js +212 -0
- package/ImagePreview.js +423 -0
- package/InteractiveCard.js +1 -1
- package/List.js +3 -3
- package/Menu.js +3 -3
- package/Modal.js +3 -3
- package/Navigation.js +3 -3
- package/Notification.js +3 -3
- package/OTPField.js +3 -3
- package/PageHeader.js +4 -4
- package/Pagination.js +3 -3
- package/Popover.js +3 -3
- package/PopoverConfirm.js +3 -3
- package/{Products-d6d5921f.js → Products-51b56aec.js} +2 -2
- package/Products.js +4 -4
- package/Profile.js +3 -3
- package/SegmentedControl.js +34 -94
- package/SplitButton.js +3 -3
- package/Switch.js +2 -2
- package/TransferList-55c2e836.js +4 -0
- package/TransferList.js +396 -0
- package/components/molecules/ActionableList/ActionableList.d.ts +1 -1
- package/components/molecules/ActionableList/ActionableList.helpers.d.ts +8 -1
- package/components/molecules/ActionableList/ActionableList.types.d.ts +55 -2
- package/components/molecules/ActionableList/ActionableListItem/ActionableListItem.d.ts +8 -0
- package/components/molecules/ActionableList/index.d.ts +1 -1
- package/components/molecules/ImagePreview/Controllers/Controllers.d.ts +54 -0
- package/components/molecules/ImagePreview/ImagePreview.d.ts +75 -0
- package/components/molecules/ImagePreview/ImagePreview.helpers.d.ts +13 -0
- package/components/molecules/ImagePreview/Magnifier/Magnifier.d.ts +45 -0
- package/components/molecules/ImagePreview/Magnifier/Magnifier.helpers.d.ts +27 -0
- package/components/molecules/ImagePreview/index.d.ts +1 -0
- package/components/molecules/Switch/Switch.d.ts +4 -0
- package/components/organisms/TransferList/TransferList.d.ts +8 -0
- package/components/organisms/TransferList/TransferList.helpers.d.ts +25 -0
- package/components/organisms/TransferList/TransferList.types.d.ts +62 -0
- package/components/organisms/TransferList/index.d.ts +2 -0
- package/{index-a46fb8ec.js → index-0446a4e6.js} +2 -2
- package/{index-3dc2323a.js → index-7aa2d261.js} +2 -2
- package/index.d.ts +2 -0
- package/index.js +11 -7
- package/package.json +1 -1
- package/{tslib.es6-f211516f.js → tslib.es6-4a42b189.js} +11 -1
package/Accordion.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { a as __rest } from './tslib.es6-4a42b189.js';
|
|
2
2
|
import React__default, { useContext, useState, useRef, useMemo } from 'react';
|
|
3
3
|
import { c as classNames } from './index-ce02421b.js';
|
|
4
4
|
import { n as nanoid } from './index-15303b91.js';
|
|
@@ -7,7 +7,7 @@ import { a as SvgChevronLeft, S as SvgChevronRight } from './ChevronRight-af87e2
|
|
|
7
7
|
import Button from './Button.js';
|
|
8
8
|
import { S as Scrollbar } from './index-4388be47.js';
|
|
9
9
|
import Text from './Text.js';
|
|
10
|
-
import { B as ButtonGroup } from './index-
|
|
10
|
+
import { B as ButtonGroup } from './index-0446a4e6.js';
|
|
11
11
|
import Tooltip from './Tooltip.js';
|
|
12
12
|
import { u as useEllipsisDetection } from './useEllipsisDetection-c5f9b175.js';
|
|
13
13
|
import { a as AccordionContext } from './Accordion-3e20a13f.js';
|
|
@@ -18,7 +18,7 @@ import './style-inject.es-746bb8ed.js';
|
|
|
18
18
|
import 'prop-types';
|
|
19
19
|
import 'react-dom';
|
|
20
20
|
import './useDebounceCallback-999deae7.js';
|
|
21
|
-
import './ButtonGroup-
|
|
21
|
+
import './ButtonGroup-ba146dcb.js';
|
|
22
22
|
import './index-7d785c81.js';
|
|
23
23
|
import './X-20da3b4a.js';
|
|
24
24
|
import './index-5becfc74.js';
|
package/ActionableList.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import React__default, { useContext, useState, useRef, useEffect, useMemo, useCallback } from 'react';
|
|
2
|
-
import { _ as _slicedToArray, d as dist, a as _toConsumableArray, g as getBindingsForBrokenDrags, m as monitorForElements, c as combine, b as dropTargetForElements, e as draggable, f as disableNativeDragPreview } from './ActionableListNodeWrapper-
|
|
1
|
+
import React__default, { useContext, useState, useRef, useEffect, useLayoutEffect, useMemo, useCallback } from 'react';
|
|
2
|
+
import { _ as _slicedToArray, d as dist, a as _toConsumableArray, g as getBindingsForBrokenDrags, m as monitorForElements, c as combine, b as dropTargetForElements, e as draggable, f as disableNativeDragPreview } from './ActionableListNodeWrapper-0a3308ca.js';
|
|
3
3
|
import { c as classNames } from './index-ce02421b.js';
|
|
4
4
|
import { S as SvgMagnifier } from './Magnifier-8df67f2d.js';
|
|
5
5
|
import Divider from './Divider.js';
|
|
@@ -7,18 +7,18 @@ import Loader from './Loader.js';
|
|
|
7
7
|
import { S as Scrollbar } from './index-4388be47.js';
|
|
8
8
|
import Text from './Text.js';
|
|
9
9
|
import Checkbox from './Checkbox.js';
|
|
10
|
-
import { E as Empty } from './index-
|
|
10
|
+
import { E as Empty } from './index-0446a4e6.js';
|
|
11
11
|
import TextField from './TextField.js';
|
|
12
|
+
import Tooltip from './Tooltip.js';
|
|
12
13
|
import { u as useDebouncedCallback } from './useDebounceCallback-999deae7.js';
|
|
14
|
+
import { u as useEllipsisDetection } from './useEllipsisDetection-c5f9b175.js';
|
|
13
15
|
import { S as SvgChevronDown } from './ChevronDown-ee53f094.js';
|
|
14
|
-
import { S as SvgChevronRight } from './ChevronRight-af87e2a4.js';
|
|
16
|
+
import { a as SvgChevronLeft, S as SvgChevronRight } from './ChevronRight-af87e2a4.js';
|
|
15
17
|
import { _ as _objectWithoutProperties, a as _extends } from './ActivityRecent-b88e2ba8.js';
|
|
16
18
|
import Button from './Button.js';
|
|
17
19
|
import Info from './Info.js';
|
|
18
20
|
import { createPortal } from 'react-dom';
|
|
19
21
|
import { a as GeneUIDesignSystemContext } from './index-9a69bcc6.js';
|
|
20
|
-
import Tooltip from './Tooltip.js';
|
|
21
|
-
import { u as useEllipsisDetection } from './useEllipsisDetection-c5f9b175.js';
|
|
22
22
|
import './style-inject.es-746bb8ed.js';
|
|
23
23
|
import 'prop-types';
|
|
24
24
|
import './index-15303b91.js';
|
|
@@ -33,8 +33,8 @@ import './index-7d785c81.js';
|
|
|
33
33
|
import './useWindowSize-6faa0d0f.js';
|
|
34
34
|
import './useDeviceInfo-8340f573.js';
|
|
35
35
|
import './Checkbox-11eae830.js';
|
|
36
|
-
import './ButtonGroup-
|
|
37
|
-
import './tslib.es6-
|
|
36
|
+
import './ButtonGroup-ba146dcb.js';
|
|
37
|
+
import './tslib.es6-4a42b189.js';
|
|
38
38
|
import './X-20da3b4a.js';
|
|
39
39
|
import './index-5becfc74.js';
|
|
40
40
|
import './regex-d4e84e78.js';
|
|
@@ -125,6 +125,7 @@ const isAnySelectionInSubtree = (item) => {
|
|
|
125
125
|
return children.some((child) => isAnySelectionInSubtree(child));
|
|
126
126
|
};
|
|
127
127
|
const nextLevel = (level) => Math.min(level + 1, ACTIONABLE_LIST_MAX_NESTED_LEVEL);
|
|
128
|
+
const isGroupItem = (item) => Array.isArray(item.children);
|
|
128
129
|
const mergeItemsFromProps = (incoming, previous) => {
|
|
129
130
|
const prevById = new Map();
|
|
130
131
|
const index = (nodes) => {
|
|
@@ -146,15 +147,30 @@ const mergeItemsFromProps = (incoming, previous) => {
|
|
|
146
147
|
else if (prev !== undefined && typeof prev.checked === "boolean") {
|
|
147
148
|
checked = prev.checked;
|
|
148
149
|
}
|
|
149
|
-
return Object.assign(Object.assign({}, node), { checked, children: ((_a = node.children)
|
|
150
|
+
return Object.assign(Object.assign({}, node), { checked, children: isGroupItem(node) ? merge((_a = node.children) !== null && _a !== void 0 ? _a : []) : undefined });
|
|
150
151
|
});
|
|
151
152
|
return merge(incoming);
|
|
152
153
|
};
|
|
153
154
|
const countAllItems = (items) => items.reduce((acc, item) => acc + 1 + countAllItems(item.children || []), 0);
|
|
155
|
+
/** Counts leaf nodes only — parent rows with children are grouping headers, not items. */
|
|
156
|
+
const countLeafItems = (items) => items.reduce((acc, item) => {
|
|
157
|
+
var _a;
|
|
158
|
+
if (isGroupItem(item))
|
|
159
|
+
return acc + countLeafItems((_a = item.children) !== null && _a !== void 0 ? _a : []);
|
|
160
|
+
return acc + 1;
|
|
161
|
+
}, 0);
|
|
154
162
|
const countCheckedItems = (items) => items.reduce((acc, item) => {
|
|
155
163
|
var _a;
|
|
156
|
-
|
|
157
|
-
|
|
164
|
+
if (isGroupItem(item))
|
|
165
|
+
return acc + countCheckedItems((_a = item.children) !== null && _a !== void 0 ? _a : []);
|
|
166
|
+
return acc + (item.checked ? 1 : 0);
|
|
167
|
+
}, 0);
|
|
168
|
+
/** Counts checked leaves in `items` whose ids are in `scopeLeafIds`. */
|
|
169
|
+
const countCheckedLeavesInScope = (items, scopeLeafIds) => items.reduce((acc, item) => {
|
|
170
|
+
var _a;
|
|
171
|
+
if (isGroupItem(item))
|
|
172
|
+
return acc + countCheckedLeavesInScope((_a = item.children) !== null && _a !== void 0 ? _a : [], scopeLeafIds);
|
|
173
|
+
return acc + (item.checked && scopeLeafIds.has(item.id) ? 1 : 0);
|
|
158
174
|
}, 0);
|
|
159
175
|
const findItemById = (nodes, targetId) => {
|
|
160
176
|
const direct = nodes.find((node) => node.id === targetId);
|
|
@@ -182,34 +198,46 @@ const applyCheckedToBranch = (item, checked) => {
|
|
|
182
198
|
var _a;
|
|
183
199
|
return (Object.assign(Object.assign({}, item), { checked, children: (_a = item.children) === null || _a === void 0 ? void 0 : _a.map((child) => applyCheckedToBranch(child, checked)) }));
|
|
184
200
|
};
|
|
201
|
+
const collectLeafIds = (items) => items.flatMap((item) => { var _a; return (isGroupItem(item) ? collectLeafIds((_a = item.children) !== null && _a !== void 0 ? _a : []) : [item.id]); });
|
|
202
|
+
const applyCheckedToLeavesById = (items, leafIds, checked) => items.map((item) => {
|
|
203
|
+
var _a;
|
|
204
|
+
if (isGroupItem(item)) {
|
|
205
|
+
return Object.assign(Object.assign({}, item), { children: applyCheckedToLeavesById((_a = item.children) !== null && _a !== void 0 ? _a : [], leafIds, checked) });
|
|
206
|
+
}
|
|
207
|
+
return leafIds.has(item.id) ? Object.assign(Object.assign({}, item), { checked }) : item;
|
|
208
|
+
});
|
|
185
209
|
const filterTree = (items, query) => {
|
|
186
210
|
const q = query.trim().toLowerCase();
|
|
187
211
|
if (!q)
|
|
188
212
|
return items;
|
|
189
213
|
return items.reduce((acc, item) => {
|
|
190
|
-
|
|
214
|
+
var _a;
|
|
215
|
+
const filteredChildren = isGroupItem(item) ? filterTree((_a = item.children) !== null && _a !== void 0 ? _a : [], q) : [];
|
|
191
216
|
if (item.title.toLowerCase().includes(q) || filteredChildren.length > 0) {
|
|
192
|
-
acc.push(Object.assign(Object.assign({}, item), { children: filteredChildren }));
|
|
217
|
+
acc.push(Object.assign(Object.assign({}, item), { children: isGroupItem(item) ? filteredChildren : undefined }));
|
|
193
218
|
}
|
|
194
219
|
return acc;
|
|
195
220
|
}, []);
|
|
196
221
|
};
|
|
197
|
-
const reorderSiblingsById = (items, sourceId, targetId) => {
|
|
222
|
+
const reorderSiblingsById = (items, sourceId, targetId, edge) => {
|
|
198
223
|
const si = items.findIndex((n) => n.id === sourceId);
|
|
199
224
|
const ti = items.findIndex((n) => n.id === targetId);
|
|
200
225
|
if (si < 0 || ti < 0 || si === ti)
|
|
201
226
|
return items;
|
|
202
|
-
|
|
227
|
+
let finishIndex = edge === "top" ? ti : ti + 1;
|
|
228
|
+
if (si < finishIndex)
|
|
229
|
+
finishIndex -= 1;
|
|
230
|
+
return reorder({ list: items, startIndex: si, finishIndex });
|
|
203
231
|
};
|
|
204
|
-
const reorderInTree = (items, sourceId, targetId) => {
|
|
205
|
-
const siblingResult = reorderSiblingsById(items, sourceId, targetId);
|
|
232
|
+
const reorderInTree = (items, sourceId, targetId, edge = "bottom") => {
|
|
233
|
+
const siblingResult = reorderSiblingsById(items, sourceId, targetId, edge);
|
|
206
234
|
if (siblingResult !== items)
|
|
207
235
|
return siblingResult;
|
|
208
236
|
return items.map((item) => {
|
|
209
237
|
var _a;
|
|
210
238
|
if (!((_a = item.children) === null || _a === void 0 ? void 0 : _a.length))
|
|
211
239
|
return item;
|
|
212
|
-
return Object.assign(Object.assign({}, item), { children: reorderInTree(item.children, sourceId, targetId) });
|
|
240
|
+
return Object.assign(Object.assign({}, item), { children: reorderInTree(item.children, sourceId, targetId, edge) });
|
|
213
241
|
});
|
|
214
242
|
};
|
|
215
243
|
const getExpandedIdsFromItems = (items, ids = new Set()) => {
|
|
@@ -405,7 +433,7 @@ const CustomDragLayer = () => {
|
|
|
405
433
|
React__default.createElement(ClonedNodeRenderer, { node: dragState.previewNode })), providerCurrent);
|
|
406
434
|
};
|
|
407
435
|
|
|
408
|
-
const ActionableListItem = ({ id, title, level, infoText, isExpandable = false, isExpanded = false, withCheckbox = false, checkboxChecked, checkboxIndeterminate, selectedCount = 0, totalCount = 0, descendantsSelectedCount = 0, descendantsTotalCount = 0, selectedLabel = "Selected", parentId = "root", isDraggable = false, dropGapEdge = null, expandAriaLabel = "Toggle nested items", onToggleExpand, onToggleCheck, onDragTargetChange, className }) => {
|
|
436
|
+
const ActionableListItem = ({ id, title, level, infoText, isExpandable = false, isExpandDisabled = false, isExpanded = false, withCheckbox = false, checkboxChecked, checkboxIndeterminate, selectedCount = 0, totalCount = 0, descendantsSelectedCount = 0, descendantsTotalCount = 0, selectedLabel = "Selected", parentId = "root", dragListId, isDraggable = false, dropGapEdge = null, expandAriaLabel = "Toggle nested items", onToggleExpand, onToggleCheck, onDragTargetChange, className }) => {
|
|
409
437
|
const rowRef = useRef(null);
|
|
410
438
|
const dragHandleRef = useRef(null);
|
|
411
439
|
const titleTextRef = useRef(null);
|
|
@@ -414,6 +442,8 @@ const ActionableListItem = ({ id, title, level, infoText, isExpandable = false,
|
|
|
414
442
|
const isTruncated = useEllipsisDetection(titleTextRef);
|
|
415
443
|
const isSelectedLabelTruncated = useEllipsisDetection(selectedLabelRef);
|
|
416
444
|
const [isDragging, setIsDragging] = useState(false);
|
|
445
|
+
const isRTLMode = typeof document !== "undefined" && document.dir === "rtl";
|
|
446
|
+
const collapsedExpandIcon = isRTLMode ? SvgChevronLeft : SvgChevronRight;
|
|
417
447
|
onDragTargetChangeRef.current = onDragTargetChange;
|
|
418
448
|
const computeEdge = (clientY) => {
|
|
419
449
|
const rowEl = rowRef.current;
|
|
@@ -446,12 +476,7 @@ const ActionableListItem = ({ id, title, level, infoText, isExpandable = false,
|
|
|
446
476
|
width: `${rect.width}px`,
|
|
447
477
|
height: `${rect.height}px`
|
|
448
478
|
});
|
|
449
|
-
return {
|
|
450
|
-
sourceId: id,
|
|
451
|
-
parentId,
|
|
452
|
-
previewNode: clone,
|
|
453
|
-
initialRect: rect
|
|
454
|
-
};
|
|
479
|
+
return Object.assign(Object.assign({ sourceId: id, parentId }, (dragListId ? { dragListId } : {})), { previewNode: clone, initialRect: rect });
|
|
455
480
|
},
|
|
456
481
|
onGenerateDragPreview: ({ nativeSetDragImage }) => {
|
|
457
482
|
disableNativeDragPreview({ nativeSetDragImage });
|
|
@@ -466,8 +491,15 @@ const ActionableListItem = ({ id, title, level, infoText, isExpandable = false,
|
|
|
466
491
|
}
|
|
467
492
|
}), dropTargetForElements({
|
|
468
493
|
element: rowEl,
|
|
469
|
-
getData: () => ({ targetId: id, parentId }),
|
|
470
|
-
canDrop: ({ source }) =>
|
|
494
|
+
getData: () => (Object.assign({ targetId: id, parentId }, (dragListId ? { targetListId: dragListId } : {}))),
|
|
495
|
+
canDrop: ({ source }) => {
|
|
496
|
+
const sourceListId = source.data.dragListId;
|
|
497
|
+
const sourceParentId = source.data.parentId;
|
|
498
|
+
if (dragListId && sourceListId && sourceListId !== dragListId) {
|
|
499
|
+
return parentId === "root";
|
|
500
|
+
}
|
|
501
|
+
return sourceParentId === parentId;
|
|
502
|
+
},
|
|
471
503
|
onDragEnter: ({ location }) => {
|
|
472
504
|
var _a;
|
|
473
505
|
(_a = onDragTargetChangeRef.current) === null || _a === void 0 ? void 0 : _a.call(onDragTargetChangeRef, computeEdge(location.current.input.clientY));
|
|
@@ -477,7 +509,7 @@ const ActionableListItem = ({ id, title, level, infoText, isExpandable = false,
|
|
|
477
509
|
(_a = onDragTargetChangeRef.current) === null || _a === void 0 ? void 0 : _a.call(onDragTargetChangeRef, computeEdge(location.current.input.clientY));
|
|
478
510
|
}
|
|
479
511
|
}));
|
|
480
|
-
}, [isDraggable, id, parentId]);
|
|
512
|
+
}, [isDraggable, id, parentId, dragListId]);
|
|
481
513
|
return (React__default.createElement("div", { ref: rowRef, className: classNames("actionableListItem", className, {
|
|
482
514
|
actionableListItem_nested: level > 1,
|
|
483
515
|
actionableListItem_draggable: isDraggable,
|
|
@@ -486,7 +518,7 @@ const ActionableListItem = ({ id, title, level, infoText, isExpandable = false,
|
|
|
486
518
|
actionableListItem_dropGapBottom: dropGapEdge === "bottom"
|
|
487
519
|
}) },
|
|
488
520
|
React__default.createElement(CustomDragLayer, null),
|
|
489
|
-
isExpandable && (React__default.createElement(Button, { size: "smallNudge", appearance: "secondary", layout: "text", Icon: isExpanded ? SvgChevronDown :
|
|
521
|
+
isExpandable && (React__default.createElement(Button, { size: "smallNudge", appearance: "secondary", layout: "text", Icon: isExpanded ? SvgChevronDown : collapsedExpandIcon, onClick: onToggleExpand, disabled: isExpandDisabled, "aria-label": expandAriaLabel, className: "actionableListItem__toggle" })),
|
|
490
522
|
withCheckbox && (React__default.createElement(Checkbox, { checked: resolvedCheckboxChecked, indeterminate: resolvedCheckboxIndeterminate, onChange: (event) => onToggleCheck === null || onToggleCheck === void 0 ? void 0 : onToggleCheck(event.target.checked), className: "actionableListItem__checkbox" })),
|
|
491
523
|
React__default.createElement(Tooltip, { text: title, isVisible: isTruncated },
|
|
492
524
|
React__default.createElement(Text, { ref: titleTextRef, as: "span", variant: "bodyMediumMedium", className: "actionableListItem__title ellipsis-text" }, title)),
|
|
@@ -505,45 +537,72 @@ const ActionableListNodeWrapper = ({ level, children }) => {
|
|
|
505
537
|
return React__default.createElement("div", { className: `actionableList__wrapper actionableList__wrapper_level_${level}` }, children);
|
|
506
538
|
};
|
|
507
539
|
|
|
508
|
-
const
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
540
|
+
const isDroppedOnOtherList = (location, listId) => location.current.dropTargets.some(({ data: { targetListId, isPanelDropTarget } }) => {
|
|
541
|
+
return typeof targetListId === "string" && targetListId !== listId && !isPanelDropTarget;
|
|
542
|
+
});
|
|
543
|
+
const RenderNode = ({ item, level, parentId, withCheckbox, isDraggable, dragListId, expandedIds, texts, dropGap, isSearchActive, onToggleExpand, onToggleCheck, onDragTargetChange }) => {
|
|
544
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
545
|
+
const isGroup = isGroupItem(item);
|
|
546
|
+
const childCount = (_b = (_a = item.children) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
|
|
547
|
+
const canExpand = isGroup && childCount > 0 && level < ACTIONABLE_LIST_MAX_NESTED_LEVEL;
|
|
512
548
|
const isExpanded = canExpand ? isSearchActive || expandedIds.has(item.id) : false;
|
|
513
549
|
const branchFullySelected = isSubtreeFullySelected(item);
|
|
514
550
|
const branchIndeterminate = !branchFullySelected && isAnySelectionInSubtree(item);
|
|
515
|
-
const directChildTotal = (
|
|
516
|
-
const directChildFullySelected = (
|
|
551
|
+
const directChildTotal = (_d = (_c = item.children) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 0;
|
|
552
|
+
const directChildFullySelected = (_f = (_e = item.children) === null || _e === void 0 ? void 0 : _e.filter((child) => isSubtreeFullySelected(child)).length) !== null && _f !== void 0 ? _f : 0;
|
|
517
553
|
const childLevel = nextLevel(level);
|
|
518
554
|
const dropGapEdge = (dropGap === null || dropGap === void 0 ? void 0 : dropGap.targetId) === item.id ? dropGap.edge : null;
|
|
519
555
|
return (React__default.createElement(React__default.Fragment, null,
|
|
520
|
-
React__default.createElement(ActionableListItem, Object.assign({ id: item.id, title: item.title, level: level, parentId: parentId, infoText: item.infoText, isExpandable:
|
|
556
|
+
React__default.createElement(ActionableListItem, Object.assign({ id: item.id, title: item.title, level: level, parentId: parentId, infoText: item.infoText, isExpandable: isGroup && level < ACTIONABLE_LIST_MAX_NESTED_LEVEL, isExpandDisabled: isGroup && childCount === 0, isExpanded: isExpanded, withCheckbox: withCheckbox }, (withCheckbox
|
|
521
557
|
? {
|
|
522
558
|
checkboxChecked: branchFullySelected,
|
|
523
559
|
checkboxIndeterminate: branchIndeterminate,
|
|
524
560
|
descendantsSelectedCount: directChildFullySelected,
|
|
525
561
|
descendantsTotalCount: directChildTotal
|
|
526
562
|
}
|
|
527
|
-
: {}), { selectedLabel: texts.selectedItemsLabel, isDraggable: isDraggable, dropGapEdge: dropGapEdge, expandAriaLabel: texts.expandButtonAriaLabel, onToggleExpand: () => onToggleExpand(item.id), onToggleCheck: (checked) => onToggleCheck(item.id, checked), onDragTargetChange: (edge) => onDragTargetChange(item.id, edge) })),
|
|
563
|
+
: {}), { selectedLabel: texts.selectedItemsLabel, isDraggable: isDraggable, dragListId: dragListId, dropGapEdge: dropGapEdge, expandAriaLabel: texts.expandButtonAriaLabel, onToggleExpand: () => onToggleExpand(item.id), onToggleCheck: (checked) => onToggleCheck(item.id, checked), onDragTargetChange: (edge) => onDragTargetChange(item.id, edge) })),
|
|
528
564
|
canExpand && isExpanded && (React__default.createElement("div", { className: "actionableList__children" },
|
|
529
|
-
React__default.createElement(ActionableListNodeWrapper, { level: childLevel }, (
|
|
565
|
+
React__default.createElement(ActionableListNodeWrapper, { level: childLevel }, (_g = item.children) === null || _g === void 0 ? void 0 : _g.map((child) => (React__default.createElement(RenderNode, { key: child.id, item: child, level: childLevel, parentId: item.id, withCheckbox: withCheckbox, isDraggable: isDraggable, dragListId: dragListId, expandedIds: expandedIds, texts: texts, dropGap: dropGap, isSearchActive: isSearchActive, onToggleExpand: onToggleExpand, onToggleCheck: onToggleCheck, onDragTargetChange: onDragTargetChange }))))))));
|
|
530
566
|
};
|
|
531
567
|
/**
|
|
532
568
|
* Actionable List component provides users with a highly interactive, multi-functional list of items, organized in a hierarchical structure that supports up to five levels of nested items.
|
|
533
569
|
*/
|
|
534
|
-
const ActionableList = ({ className, items = [], withCheckbox = false, draggable: isDraggable = false, loading = false, defaultExpandAll = false, texts, onItemsChange, onItemCheck, onSelectAllChange, onSearch }) => {
|
|
570
|
+
const ActionableList = ({ className, items = [], withCheckbox = false, draggable: isDraggable = false, dragListId, loading = false, defaultExpandAll = false, texts, onItemsChange, onItemCheck, onSelectAllChange, managedSelection = false, onCrossListDrop, delegateCrossListDrop = false, dropGapOutletRef, onSearch }) => {
|
|
571
|
+
var _a;
|
|
535
572
|
const mergedTexts = Object.assign(Object.assign({}, ACTIONABLE_LIST_DEFAULT_TEXTS), texts);
|
|
536
573
|
const wasExpansionToggledRef = useRef(false);
|
|
574
|
+
const bulkSelectedLabelRef = useRef(null);
|
|
575
|
+
const filteredItemsLabelRef = useRef(null);
|
|
576
|
+
const totalItemsLabelRef = useRef(null);
|
|
577
|
+
const isBulkSelectedLabelTruncated = useEllipsisDetection(bulkSelectedLabelRef, [
|
|
578
|
+
mergedTexts.bulkSelectedItemsLabel
|
|
579
|
+
]);
|
|
580
|
+
const isFilteredItemsLabelTruncated = useEllipsisDetection(filteredItemsLabelRef, [mergedTexts.filteredItemsLabel]);
|
|
581
|
+
const isTotalItemsLabelTruncated = useEllipsisDetection(totalItemsLabelRef, [mergedTexts.totalItemsLabel]);
|
|
537
582
|
const [localItems, setLocalItems] = useState(() => mergeItemsFromProps(items, []));
|
|
583
|
+
const workingItems = managedSelection ? items : localItems;
|
|
538
584
|
const [searchValue, setSearchValue] = useState("");
|
|
539
585
|
const [expandedIds, setExpandedIds] = useState(() => defaultExpandAll ? getExpandedIdsFromItems(items) : new Set());
|
|
540
586
|
const [dropGap, setDropGap] = useState(null);
|
|
587
|
+
const [isEmptyDropActive, setIsEmptyDropActive] = useState(false);
|
|
588
|
+
const emptyDropRef = useRef(null);
|
|
589
|
+
const listEndDropRef = useRef(null);
|
|
541
590
|
const handleDropReorderRef = useRef(() => { });
|
|
591
|
+
const onCrossListDropRef = useRef(onCrossListDrop);
|
|
542
592
|
const dropGapRef = useRef(dropGap);
|
|
543
593
|
dropGapRef.current = dropGap;
|
|
594
|
+
onCrossListDropRef.current = onCrossListDrop;
|
|
544
595
|
useEffect(() => {
|
|
596
|
+
if (!dropGapOutletRef)
|
|
597
|
+
return;
|
|
598
|
+
// eslint-disable-next-line no-param-reassign -- mirror drop gap for parent-coordinated cross-list DnD
|
|
599
|
+
dropGapOutletRef.current = dropGap;
|
|
600
|
+
}, [dropGap, dropGapOutletRef]);
|
|
601
|
+
useLayoutEffect(() => {
|
|
602
|
+
if (managedSelection)
|
|
603
|
+
return;
|
|
545
604
|
setLocalItems((prev) => mergeItemsFromProps(items, prev));
|
|
546
|
-
}, [items]);
|
|
605
|
+
}, [items, managedSelection]);
|
|
547
606
|
useEffect(() => {
|
|
548
607
|
if (wasExpansionToggledRef.current)
|
|
549
608
|
return;
|
|
@@ -553,16 +612,41 @@ const ActionableList = ({ className, items = [], withCheckbox = false, draggable
|
|
|
553
612
|
if (!isDraggable)
|
|
554
613
|
return () => undefined;
|
|
555
614
|
return monitorForElements({
|
|
556
|
-
onDrop: ({ source }) => {
|
|
615
|
+
onDrop: ({ source, location }) => {
|
|
557
616
|
const gap = dropGapRef.current;
|
|
558
|
-
setDropGap(null);
|
|
559
617
|
const { sourceId } = source.data;
|
|
560
|
-
|
|
561
|
-
|
|
618
|
+
const sourceListId = source.data.dragListId;
|
|
619
|
+
const isCrossList = Boolean(dragListId && typeof sourceListId === "string" && sourceListId !== dragListId);
|
|
620
|
+
if (isCrossList && delegateCrossListDrop) {
|
|
621
|
+
requestAnimationFrame(() => setDropGap(null));
|
|
622
|
+
return;
|
|
562
623
|
}
|
|
624
|
+
setDropGap(null);
|
|
625
|
+
if (typeof sourceId !== "string" || !gap || sourceId === gap.targetId)
|
|
626
|
+
return;
|
|
627
|
+
if (isCrossList) {
|
|
628
|
+
if (!dragListId ||
|
|
629
|
+
!location.current.dropTargets.some(({ data }) => data.targetListId === dragListId) ||
|
|
630
|
+
!onCrossListDropRef.current) {
|
|
631
|
+
return;
|
|
632
|
+
}
|
|
633
|
+
onCrossListDropRef.current({
|
|
634
|
+
sourceListId: sourceListId,
|
|
635
|
+
targetListId: dragListId,
|
|
636
|
+
sourceId,
|
|
637
|
+
targetId: gap.targetId,
|
|
638
|
+
edge: gap.edge
|
|
639
|
+
});
|
|
640
|
+
return;
|
|
641
|
+
}
|
|
642
|
+
if (dragListId && typeof sourceListId === "string" && sourceListId === dragListId) {
|
|
643
|
+
if (isDroppedOnOtherList(location, dragListId))
|
|
644
|
+
return;
|
|
645
|
+
}
|
|
646
|
+
handleDropReorderRef.current(sourceId, gap.targetId, gap.edge);
|
|
563
647
|
}
|
|
564
648
|
});
|
|
565
|
-
}, [isDraggable]);
|
|
649
|
+
}, [isDraggable, dragListId, delegateCrossListDrop]);
|
|
566
650
|
const { debouncedCallback, clearDebounce } = useDebouncedCallback((value) => {
|
|
567
651
|
if (typeof value !== "string")
|
|
568
652
|
return;
|
|
@@ -573,12 +657,17 @@ const ActionableList = ({ className, items = [], withCheckbox = false, draggable
|
|
|
573
657
|
setSearchValue(value);
|
|
574
658
|
debouncedCallback(value);
|
|
575
659
|
};
|
|
576
|
-
const filteredItems = useMemo(() => filterTree(
|
|
577
|
-
const
|
|
578
|
-
const
|
|
579
|
-
const
|
|
580
|
-
const
|
|
581
|
-
const
|
|
660
|
+
const filteredItems = useMemo(() => filterTree(workingItems, searchValue), [workingItems, searchValue]);
|
|
661
|
+
const isSearchActive = searchValue.trim().length > 0;
|
|
662
|
+
const filteredLeafIds = useMemo(() => new Set(collectLeafIds(filteredItems)), [filteredItems]);
|
|
663
|
+
const totalItemsCount = useMemo(() => countLeafItems(workingItems), [workingItems]);
|
|
664
|
+
const filteredItemsCount = useMemo(() => countLeafItems(filteredItems), [filteredItems]);
|
|
665
|
+
const selectedItemsCount = useMemo(() => countCheckedItems(workingItems), [workingItems]);
|
|
666
|
+
const selectedFilteredLeafCount = useMemo(() => countCheckedLeavesInScope(workingItems, filteredLeafIds), [workingItems, filteredLeafIds]);
|
|
667
|
+
const selectAllScopeLeafCount = isSearchActive ? filteredItemsCount : totalItemsCount;
|
|
668
|
+
const selectedScopeLeafCount = isSearchActive ? selectedFilteredLeafCount : selectedItemsCount;
|
|
669
|
+
const selectAllChecked = selectAllScopeLeafCount > 0 && selectedScopeLeafCount === selectAllScopeLeafCount;
|
|
670
|
+
const selectAllIndeterminate = selectedScopeLeafCount > 0 && selectedScopeLeafCount < selectAllScopeLeafCount;
|
|
582
671
|
const handleToggleExpand = (id) => {
|
|
583
672
|
wasExpansionToggledRef.current = true;
|
|
584
673
|
setExpandedIds((prev) => {
|
|
@@ -595,24 +684,30 @@ const ActionableList = ({ className, items = [], withCheckbox = false, draggable
|
|
|
595
684
|
onItemsChange === null || onItemsChange === void 0 ? void 0 : onItemsChange(nextItems);
|
|
596
685
|
};
|
|
597
686
|
const handleToggleCheck = (id, checked) => {
|
|
598
|
-
const nextItems = updateItemById(
|
|
599
|
-
|
|
687
|
+
const nextItems = updateItemById(workingItems, id, (item) => applyCheckedToBranch(item, checked));
|
|
688
|
+
if (!managedSelection) {
|
|
689
|
+
syncItems(nextItems);
|
|
690
|
+
}
|
|
600
691
|
const toggled = findItemById(nextItems, id);
|
|
601
692
|
if (toggled !== undefined) {
|
|
602
693
|
onItemCheck === null || onItemCheck === void 0 ? void 0 : onItemCheck(toggled, checked, nextItems);
|
|
603
694
|
}
|
|
604
695
|
};
|
|
605
696
|
const handleSelectAll = (checked) => {
|
|
606
|
-
if (
|
|
697
|
+
if (selectAllScopeLeafCount === 0)
|
|
607
698
|
return;
|
|
608
|
-
const
|
|
609
|
-
|
|
610
|
-
|
|
699
|
+
const scopeLeafIds = collectLeafIds(isSearchActive ? filteredItems : workingItems);
|
|
700
|
+
const targetLeafIds = new Set(scopeLeafIds);
|
|
701
|
+
const nextItems = applyCheckedToLeavesById(workingItems, targetLeafIds, checked);
|
|
702
|
+
onSelectAllChange === null || onSelectAllChange === void 0 ? void 0 : onSelectAllChange(checked, nextItems, scopeLeafIds);
|
|
703
|
+
if (!managedSelection) {
|
|
704
|
+
syncItems(nextItems);
|
|
705
|
+
}
|
|
611
706
|
};
|
|
612
|
-
const handleDropReorder = (sourceId, targetId) => {
|
|
707
|
+
const handleDropReorder = (sourceId, targetId, edge) => {
|
|
613
708
|
if (sourceId === targetId)
|
|
614
709
|
return;
|
|
615
|
-
syncItems(reorderInTree(
|
|
710
|
+
syncItems(reorderInTree(workingItems, sourceId, targetId, edge));
|
|
616
711
|
};
|
|
617
712
|
handleDropReorderRef.current = handleDropReorder;
|
|
618
713
|
const handleDragTargetChange = useCallback((targetId, edge) => {
|
|
@@ -622,31 +717,94 @@ const ActionableList = ({ className, items = [], withCheckbox = false, draggable
|
|
|
622
717
|
return { targetId, edge };
|
|
623
718
|
});
|
|
624
719
|
}, []);
|
|
625
|
-
const hasData =
|
|
626
|
-
const hasSearchResults =
|
|
720
|
+
const hasData = useMemo(() => countAllItems(workingItems) > 0, [workingItems]);
|
|
721
|
+
const hasSearchResults = useMemo(() => countAllItems(filteredItems) > 0, [filteredItems]);
|
|
722
|
+
const showEmptyDropZone = isDraggable && Boolean(dragListId) && Boolean(onCrossListDrop || delegateCrossListDrop) && !loading && !hasData;
|
|
723
|
+
useEffect(() => {
|
|
724
|
+
const element = emptyDropRef.current;
|
|
725
|
+
if (!element || !showEmptyDropZone)
|
|
726
|
+
return () => undefined;
|
|
727
|
+
return dropTargetForElements({
|
|
728
|
+
element,
|
|
729
|
+
getData: () => (Object.assign({ isEmptyListTarget: true }, (dragListId ? { targetListId: dragListId } : {}))),
|
|
730
|
+
canDrop: ({ source }) => {
|
|
731
|
+
const sourceListId = source.data.dragListId;
|
|
732
|
+
return typeof sourceListId === "string" && sourceListId !== dragListId;
|
|
733
|
+
},
|
|
734
|
+
onDragEnter: () => setIsEmptyDropActive(true),
|
|
735
|
+
onDragLeave: () => setIsEmptyDropActive(false),
|
|
736
|
+
onDrop: ({ source }) => {
|
|
737
|
+
setIsEmptyDropActive(false);
|
|
738
|
+
if (delegateCrossListDrop)
|
|
739
|
+
return;
|
|
740
|
+
const { sourceId } = source.data;
|
|
741
|
+
const sourceListId = source.data.dragListId;
|
|
742
|
+
if (typeof sourceId !== "string" ||
|
|
743
|
+
typeof sourceListId !== "string" ||
|
|
744
|
+
!dragListId ||
|
|
745
|
+
!onCrossListDropRef.current) {
|
|
746
|
+
return;
|
|
747
|
+
}
|
|
748
|
+
onCrossListDropRef.current({
|
|
749
|
+
sourceListId,
|
|
750
|
+
targetListId: dragListId,
|
|
751
|
+
sourceId,
|
|
752
|
+
isEmptyTarget: true
|
|
753
|
+
});
|
|
754
|
+
}
|
|
755
|
+
});
|
|
756
|
+
}, [showEmptyDropZone, dragListId, delegateCrossListDrop]);
|
|
757
|
+
const lastRootItemId = (_a = filteredItems[filteredItems.length - 1]) === null || _a === void 0 ? void 0 : _a.id;
|
|
758
|
+
useEffect(() => {
|
|
759
|
+
const element = listEndDropRef.current;
|
|
760
|
+
if (!element || !isDraggable || !hasSearchResults || !lastRootItemId)
|
|
761
|
+
return () => undefined;
|
|
762
|
+
const targetId = lastRootItemId;
|
|
763
|
+
return dropTargetForElements({
|
|
764
|
+
element,
|
|
765
|
+
getData: () => (Object.assign({ targetId, edge: "bottom" }, (dragListId ? { targetListId: dragListId } : {}))),
|
|
766
|
+
canDrop: ({ source }) => {
|
|
767
|
+
const sourceListId = source.data.dragListId;
|
|
768
|
+
const sourceParentId = source.data.parentId;
|
|
769
|
+
if (dragListId && typeof sourceListId === "string" && sourceListId !== dragListId) {
|
|
770
|
+
return sourceParentId === "root";
|
|
771
|
+
}
|
|
772
|
+
return sourceParentId === "root";
|
|
773
|
+
},
|
|
774
|
+
onDragEnter: () => handleDragTargetChange(targetId, "bottom"),
|
|
775
|
+
onDrag: () => handleDragTargetChange(targetId, "bottom")
|
|
776
|
+
});
|
|
777
|
+
}, [isDraggable, hasSearchResults, lastRootItemId, dragListId, handleDragTargetChange]);
|
|
627
778
|
return (React__default.createElement("div", { className: classNames("actionableList", className, { actionableList_hasDropGap: dropGap !== null }) },
|
|
628
779
|
React__default.createElement("div", { className: "actionableList__headerWrapper" },
|
|
629
780
|
React__default.createElement(TextField, { label: mergedTexts.searchLabel, placeholder: mergedTexts.searchPlaceholder, value: searchValue, onChange: (event) => handleSearchChange(event.target.value), IconBefore: SvgMagnifier, disabled: loading, className: "actionableList__search", clearable: true, onClear: () => handleSearchChange("") }),
|
|
630
781
|
!loading && (React__default.createElement("div", { className: "actionableList__statsRow" },
|
|
631
782
|
withCheckbox && (React__default.createElement("div", { className: "actionableList__bulkSelection" },
|
|
632
|
-
React__default.createElement(Checkbox, { checked: selectAllChecked, indeterminate: selectAllIndeterminate, disabled:
|
|
633
|
-
React__default.createElement(
|
|
783
|
+
React__default.createElement(Checkbox, { checked: selectAllChecked, indeterminate: selectAllIndeterminate, disabled: selectAllScopeLeafCount === 0, onChange: (event) => handleSelectAll(event.target.checked), className: "actionableList__selectAll" }),
|
|
784
|
+
React__default.createElement("div", { className: "actionableList__bulkSelectedLabelWrapper" },
|
|
785
|
+
React__default.createElement(Tooltip, { text: mergedTexts.bulkSelectedItemsLabel, isVisible: isBulkSelectedLabelTruncated },
|
|
786
|
+
React__default.createElement(Text, { ref: bulkSelectedLabelRef, as: "span", variant: "bodyMediumMedium", className: "actionableList__bulkSelectedLabel ellipsis-text" }, mergedTexts.bulkSelectedItemsLabel))),
|
|
634
787
|
React__default.createElement(Text, { as: "span", variant: "bodyMediumMedium", className: "actionableList__bulkSelectedCount" }, selectedItemsCount))),
|
|
635
788
|
React__default.createElement("div", { className: "actionableList__stats" },
|
|
636
|
-
React__default.createElement(
|
|
789
|
+
React__default.createElement(Tooltip, { text: mergedTexts.filteredItemsLabel, isVisible: isFilteredItemsLabelTruncated },
|
|
790
|
+
React__default.createElement(Text, { ref: filteredItemsLabelRef, as: "span", variant: "bodyMediumMedium", className: "actionableList__statsLabel ellipsis-text" }, mergedTexts.filteredItemsLabel)),
|
|
637
791
|
React__default.createElement(Text, { as: "span", variant: "bodyMediumMedium", className: "actionableList__statsCount" }, filteredItemsCount),
|
|
638
792
|
React__default.createElement(Divider, { direction: "vertical", className: "actionableList__statsDivider" }),
|
|
639
|
-
React__default.createElement(
|
|
793
|
+
React__default.createElement(Tooltip, { text: mergedTexts.totalItemsLabel, isVisible: isTotalItemsLabelTruncated },
|
|
794
|
+
React__default.createElement(Text, { ref: totalItemsLabelRef, as: "span", variant: "bodyMediumMedium", className: "actionableList__statsLabel ellipsis-text" }, mergedTexts.totalItemsLabel)),
|
|
640
795
|
React__default.createElement(Text, { as: "span", variant: "bodyMediumMedium", className: "actionableList__statsCount" }, totalItemsCount))))),
|
|
641
796
|
loading && (React__default.createElement("div", { className: "actionableList__state actionableList__state_loading" },
|
|
642
797
|
React__default.createElement(Loader, { text: mergedTexts.loadingTitle, size: "xLarge", textPosition: "below" }))),
|
|
643
798
|
React__default.createElement(Scrollbar, null, !loading && (React__default.createElement(React__default.Fragment, null,
|
|
644
|
-
!hasData && (React__default.createElement("div", { className: "actionableList__state"
|
|
799
|
+
!hasData && (React__default.createElement("div", { ref: showEmptyDropZone ? emptyDropRef : undefined, className: classNames("actionableList__state", {
|
|
800
|
+
actionableList__state_dropTarget: isEmptyDropActive
|
|
801
|
+
}) },
|
|
645
802
|
React__default.createElement(Empty, { size: "small", appearance: "noData", title: mergedTexts.noDataTitle, description: mergedTexts.noDataDescription, className: "actionableList__empty" }))),
|
|
646
803
|
hasData && !hasSearchResults && (React__default.createElement("div", { className: "actionableList__state" },
|
|
647
804
|
React__default.createElement(Empty, { size: "small", appearance: "noResult", title: mergedTexts.noResultsTitle, description: mergedTexts.noResultsDescription, className: "actionableList__empty" }))),
|
|
648
805
|
hasData && hasSearchResults && (React__default.createElement("div", { className: "actionableList__list" },
|
|
649
|
-
React__default.createElement(ActionableListNodeWrapper, { level: 1 }, filteredItems.map((item) => (React__default.createElement(RenderNode, { key: item.id, item: item, level: 1, parentId: "root", withCheckbox: withCheckbox, isDraggable: isDraggable, expandedIds: expandedIds, texts: mergedTexts, dropGap: dropGap, isSearchActive: searchValue.trim().length > 0, onToggleExpand: handleToggleExpand, onToggleCheck: handleToggleCheck, onDragTargetChange: handleDragTargetChange }))))
|
|
806
|
+
React__default.createElement(ActionableListNodeWrapper, { level: 1 }, filteredItems.map((item) => (React__default.createElement(RenderNode, { key: item.id, item: item, level: 1, parentId: "root", withCheckbox: withCheckbox, isDraggable: isDraggable, dragListId: dragListId, expandedIds: expandedIds, texts: mergedTexts, dropGap: dropGap, isSearchActive: searchValue.trim().length > 0, onToggleExpand: handleToggleExpand, onToggleCheck: handleToggleCheck, onDragTargetChange: handleDragTargetChange })))),
|
|
807
|
+
isDraggable && (React__default.createElement("div", { ref: listEndDropRef, className: "actionableList__listEndDrop", "aria-hidden": true })))))))));
|
|
650
808
|
};
|
|
651
809
|
|
|
652
810
|
export { ActionableList as default };
|
|
@@ -2105,7 +2105,7 @@ function draggable(args) {
|
|
|
2105
2105
|
|
|
2106
2106
|
/** Arguments given to all monitor feedback functions (eg `canMonitor()`) for a `monitorForElements` */
|
|
2107
2107
|
|
|
2108
|
-
var css_248z$2 = ".actionableList{display:flex;flex-direction:column;height:100%;width:100%}.actionableList__headerWrapper{display:flex;flex-direction:column;gap:var(--guit-ref-spacing-medium)}.actionableList__search{width:100%}.actionableList__statsRow{align-items:center;display:flex;flex-wrap:
|
|
2108
|
+
var css_248z$2 = ".actionableList{display:flex;flex-direction:column;height:100%;width:100%}.actionableList__headerWrapper{display:flex;flex-direction:column;gap:var(--guit-ref-spacing-medium)}.actionableList__search{width:100%}.actionableList__statsRow{align-items:center;display:flex;flex-wrap:nowrap;gap:var(--guit-ref-spacing-medium);justify-content:space-between;width:100%}.actionableList__bulkSelection{align-items:center;display:flex;flex-shrink:1;gap:var(--guit-ref-spacing-2xsmall);min-width:0}.actionableList__selectAll{flex-shrink:0}.actionableList__bulkSelectedLabelWrapper{flex:1 1 auto;min-width:0;overflow:hidden}.actionableList__checkbox{align-items:center;display:flex;flex-shrink:0;height:var(--guit-sem-dimension-height-small);justify-content:center;width:var(--guit-sem-dimension-width-small)}.actionableList__bulkSelectedLabel{color:var(--guit-sem-color-foreground-neutral-1);display:block;min-width:0}.actionableList__bulkSelectedCount{color:var(--guit-sem-color-foreground-neutral-2);flex-shrink:0}.actionableList__stats{-webkit-margin-start:auto;align-items:center;display:flex;flex-shrink:1;gap:var(--guit-ref-spacing-2xsmall);justify-content:flex-end;margin-inline-start:auto;min-width:0}.actionableList__statsLabel{color:var(--guit-sem-color-foreground-neutral-1);display:block;min-width:0}.actionableList__statsCount{color:var(--guit-sem-color-foreground-neutral-2);flex-shrink:0}.actionableList__statsDivider{flex-shrink:0;min-height:1.6rem}.actionableList__list{display:flex;flex-direction:column;min-height:100%;width:100%}.actionableList__listEndDrop{flex:1 1 auto;height:100%;width:100%}.actionableList__children{overflow:hidden;position:relative;width:100%}.actionableList__state{align-items:center;display:flex;justify-content:center;min-height:22.6rem;width:100%}.actionableList__state_dropTarget{background-color:var(--guit-sem-color-background-brand-1-subtle);border-radius:var(--guit-ref-radius-xsmall);outline:var(--guit-ref-border-width-thin) var(--guit-ref-border-style-solid) var(--guit-sem-color-border-brand-1);outline-offset:calc(var(--guit-ref-border-width-thin)*-1)}.actionableList__empty{width:100%}";
|
|
2109
2109
|
styleInject(css_248z$2);
|
|
2110
2110
|
|
|
2111
2111
|
// In order to disable the native drag preview you can
|
package/Banner.js
CHANGED
|
@@ -5,13 +5,13 @@ import { S as SvgInfo } from './Info-0f0741e0.js';
|
|
|
5
5
|
import { S as SvgX } from './X-20da3b4a.js';
|
|
6
6
|
import Button from './Button.js';
|
|
7
7
|
import Text from './Text.js';
|
|
8
|
-
import { B as ButtonGroup } from './index-
|
|
8
|
+
import { B as ButtonGroup } from './index-0446a4e6.js';
|
|
9
9
|
import { a as GeneUIDesignSystemContext } from './index-9a69bcc6.js';
|
|
10
10
|
import './Banner-09cf6dea.js';
|
|
11
11
|
import './Loader.js';
|
|
12
12
|
import './style-inject.es-746bb8ed.js';
|
|
13
|
-
import './ButtonGroup-
|
|
14
|
-
import './tslib.es6-
|
|
13
|
+
import './ButtonGroup-ba146dcb.js';
|
|
14
|
+
import './tslib.es6-4a42b189.js';
|
|
15
15
|
import './index-7d785c81.js';
|
|
16
16
|
import 'react-dom';
|
|
17
17
|
import './index-5becfc74.js';
|
package/Breadcrumb.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export { B as default } from './index-
|
|
1
|
+
export { B as default } from './index-7aa2d261.js';
|
|
2
2
|
import 'react';
|
|
3
3
|
import './index-ce02421b.js';
|
|
4
4
|
import './ActivityRecent-b88e2ba8.js';
|
|
5
|
-
import './index-
|
|
6
|
-
import './ButtonGroup-
|
|
7
|
-
import './tslib.es6-
|
|
5
|
+
import './index-0446a4e6.js';
|
|
6
|
+
import './ButtonGroup-ba146dcb.js';
|
|
7
|
+
import './tslib.es6-4a42b189.js';
|
|
8
8
|
import './Loader.js';
|
|
9
9
|
import './style-inject.es-746bb8ed.js';
|
|
10
10
|
import './index-7d785c81.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { a as __rest } from './tslib.es6-4a42b189.js';
|
|
2
2
|
import React__default, { forwardRef, useState, useContext, useRef, useImperativeHandle, useEffect, useLayoutEffect, createContext, useCallback, useMemo, Children, cloneElement } from 'react';
|
|
3
3
|
import { c as classNames } from './index-ce02421b.js';
|
|
4
4
|
import Loader from './Loader.js';
|
package/ButtonGroup.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { B as default } from './index-
|
|
2
|
-
import './ButtonGroup-
|
|
3
|
-
import './tslib.es6-
|
|
1
|
+
export { B as default } from './index-0446a4e6.js';
|
|
2
|
+
import './ButtonGroup-ba146dcb.js';
|
|
3
|
+
import './tslib.es6-4a42b189.js';
|
|
4
4
|
import 'react';
|
|
5
5
|
import './index-ce02421b.js';
|
|
6
6
|
import './Loader.js';
|
package/ColorPicker.js
CHANGED
|
@@ -2,8 +2,8 @@ import React__default, { useState, useEffect, useRef, useCallback, useContext, u
|
|
|
2
2
|
import { c as classNames } from './index-ce02421b.js';
|
|
3
3
|
import { _ as _objectWithoutProperties, a as _extends } from './ActivityRecent-b88e2ba8.js';
|
|
4
4
|
import Label from './Label.js';
|
|
5
|
-
import { P as Popover, a as PopoverBody } from './ButtonGroup-
|
|
6
|
-
import './tslib.es6-
|
|
5
|
+
import { P as Popover, a as PopoverBody } from './ButtonGroup-ba146dcb.js';
|
|
6
|
+
import './tslib.es6-4a42b189.js';
|
|
7
7
|
import './Button.js';
|
|
8
8
|
import './index-7d785c81.js';
|
|
9
9
|
import './Loader.js';
|
|
@@ -31,7 +31,7 @@ import './index-5becfc74.js';
|
|
|
31
31
|
import 'prop-types';
|
|
32
32
|
import './CaretDownFilled-924e7189.js';
|
|
33
33
|
import './Magnifier-8df67f2d.js';
|
|
34
|
-
import './index-
|
|
34
|
+
import './index-0446a4e6.js';
|
|
35
35
|
import './index-15303b91.js';
|
|
36
36
|
import './CheckMark-34798545.js';
|
|
37
37
|
import './ChevronRight-af87e2a4.js';
|