sellmate-design-system-react 9.0.0-beta.5 → 9.0.0-beta.6
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/components/STree/README.md +1 -0
- package/dist/components/STree/STree.d.ts +2 -0
- package/dist/index.cjs +73 -9
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +73 -9
- package/dist/index.js.map +1 -1
- package/dist/llms-full.txt +1 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -4595,18 +4595,19 @@ function collectSelectableIds(node) {
|
|
|
4595
4595
|
function toSelectedSet(value) {
|
|
4596
4596
|
return new Set(value ?? []);
|
|
4597
4597
|
}
|
|
4598
|
-
|
|
4599
|
-
|
|
4600
|
-
|
|
4598
|
+
var TREE_ALL_NODE = { id: "__all__", label: "\uC804\uCCB4" };
|
|
4599
|
+
function getSelectionState(node, selectedSet, cascadeSelection) {
|
|
4600
|
+
if (!cascadeSelection) {
|
|
4601
|
+
return { selected: selectedSet.has(node.id), indeterminate: false };
|
|
4601
4602
|
}
|
|
4602
4603
|
const selectableChildren = (node.children ?? []).filter(
|
|
4603
4604
|
(child) => collectSelectableIds(child).length > 0
|
|
4604
4605
|
);
|
|
4605
4606
|
if (selectableChildren.length === 0) {
|
|
4606
|
-
return { selected:
|
|
4607
|
+
return { selected: selectedSet.has(node.id), indeterminate: false };
|
|
4607
4608
|
}
|
|
4608
4609
|
const childStates = selectableChildren.map(
|
|
4609
|
-
(child) => getSelectionState(child, selectedSet)
|
|
4610
|
+
(child) => getSelectionState(child, selectedSet, cascadeSelection)
|
|
4610
4611
|
);
|
|
4611
4612
|
const selectedCount = childStates.filter((state2) => state2.selected).length;
|
|
4612
4613
|
return {
|
|
@@ -4651,6 +4652,40 @@ function TreeConnector({
|
|
|
4651
4652
|
] })
|
|
4652
4653
|
] });
|
|
4653
4654
|
}
|
|
4655
|
+
function STreeAllItem({
|
|
4656
|
+
selected,
|
|
4657
|
+
indeterminate,
|
|
4658
|
+
border,
|
|
4659
|
+
onSelect
|
|
4660
|
+
}) {
|
|
4661
|
+
const checkboxValue = indeterminate ? null : selected;
|
|
4662
|
+
return /* @__PURE__ */ jsx(
|
|
4663
|
+
"div",
|
|
4664
|
+
{
|
|
4665
|
+
role: "treeitem",
|
|
4666
|
+
"aria-level": 1,
|
|
4667
|
+
"aria-selected": selected,
|
|
4668
|
+
onClick: onSelect,
|
|
4669
|
+
className: cn(
|
|
4670
|
+
"group/tree-item box-border flex h-[32px] w-full cursor-pointer items-center overflow-hidden bg-(--cmp-tree-item-bg-default) px-(--cmp-tree-item-paddingX) text-left hover:bg-(--cmp-tree-item-bg-hover)",
|
|
4671
|
+
border && "border-b border-(--cmp-tree-item-border-default)"
|
|
4672
|
+
),
|
|
4673
|
+
children: /* @__PURE__ */ jsxs("div", { className: "box-border flex h-full min-w-0 flex-1 items-center gap-(--cmp-tree-item-contentGap) py-(--cmp-tree-item-paddingY)", children: [
|
|
4674
|
+
/* @__PURE__ */ jsx("span", { onClick: (event) => event.stopPropagation(), className: "flex shrink-0", children: /* @__PURE__ */ jsx(SCheckbox, { value: checkboxValue, onValueChange: () => onSelect() }) }),
|
|
4675
|
+
/* @__PURE__ */ jsx(
|
|
4676
|
+
"span",
|
|
4677
|
+
{
|
|
4678
|
+
className: cn(
|
|
4679
|
+
"block min-w-0 flex-1 truncate text-[14px] leading-[24px]",
|
|
4680
|
+
selected || indeterminate ? "font-bold text-(--cmp-tree-item-text-selected)" : "font-medium text-(--cmp-tree-item-text-default)"
|
|
4681
|
+
),
|
|
4682
|
+
children: "\uC804\uCCB4"
|
|
4683
|
+
}
|
|
4684
|
+
)
|
|
4685
|
+
] })
|
|
4686
|
+
}
|
|
4687
|
+
);
|
|
4688
|
+
}
|
|
4654
4689
|
var STreeItemImpl = /* @__PURE__ */ forwardRef(function STreeItem({
|
|
4655
4690
|
node,
|
|
4656
4691
|
depth = 1,
|
|
@@ -4783,6 +4818,7 @@ var STreeImpl = /* @__PURE__ */ forwardRef(function STree({
|
|
|
4783
4818
|
expandedIds,
|
|
4784
4819
|
defaultExpandedIds,
|
|
4785
4820
|
selectable = true,
|
|
4821
|
+
useAll = false,
|
|
4786
4822
|
cascadeSelection = true,
|
|
4787
4823
|
guideline = true,
|
|
4788
4824
|
border = true,
|
|
@@ -4801,6 +4837,11 @@ var STreeImpl = /* @__PURE__ */ forwardRef(function STree({
|
|
|
4801
4837
|
const currentExpandedIds = expandedIds ?? internalExpandedIds;
|
|
4802
4838
|
const selectedSet = useMemo(() => toSelectedSet(currentValue), [currentValue]);
|
|
4803
4839
|
const expandedSet = useMemo(() => new Set(currentExpandedIds), [currentExpandedIds]);
|
|
4840
|
+
const selectableIds = useMemo(() => items.flatMap(collectSelectableIds), [items]);
|
|
4841
|
+
const allSelected = selectableIds.length > 0 && selectableIds.every((id) => selectedSet.has(id));
|
|
4842
|
+
const someSelected = selectableIds.some((id) => selectedSet.has(id));
|
|
4843
|
+
const allIndeterminate = someSelected && !allSelected;
|
|
4844
|
+
const showAllItem = selectable && useAll;
|
|
4804
4845
|
const updateExpanded = (node) => {
|
|
4805
4846
|
const next = new Set(currentExpandedIds);
|
|
4806
4847
|
if (next.has(node.id)) next.delete(node.id);
|
|
@@ -4812,7 +4853,7 @@ var STreeImpl = /* @__PURE__ */ forwardRef(function STree({
|
|
|
4812
4853
|
const updateSelected = (node) => {
|
|
4813
4854
|
if (node.disabled) return;
|
|
4814
4855
|
const targetIds = cascadeSelection ? collectSelectableIds(node) : [node.id];
|
|
4815
|
-
const everySelected = getSelectionState(node, selectedSet).selected;
|
|
4856
|
+
const everySelected = getSelectionState(node, selectedSet, cascadeSelection).selected;
|
|
4816
4857
|
const next = new Set(selectedSet);
|
|
4817
4858
|
targetIds.forEach((id) => {
|
|
4818
4859
|
if (everySelected) next.delete(id);
|
|
@@ -4822,10 +4863,22 @@ var STreeImpl = /* @__PURE__ */ forwardRef(function STree({
|
|
|
4822
4863
|
if (value === void 0) setInternalValue(orderedIds);
|
|
4823
4864
|
onValueChange?.(orderedIds, node);
|
|
4824
4865
|
};
|
|
4866
|
+
const updateAllSelected = (event) => {
|
|
4867
|
+
event?.stopPropagation();
|
|
4868
|
+
if (selectableIds.length === 0) return;
|
|
4869
|
+
const next = new Set(selectedSet);
|
|
4870
|
+
selectableIds.forEach((id) => {
|
|
4871
|
+
if (allSelected) next.delete(id);
|
|
4872
|
+
else next.add(id);
|
|
4873
|
+
});
|
|
4874
|
+
const orderedIds = collectIds(items).filter((id) => next.has(id));
|
|
4875
|
+
if (value === void 0) setInternalValue(orderedIds);
|
|
4876
|
+
onValueChange?.(orderedIds, TREE_ALL_NODE);
|
|
4877
|
+
};
|
|
4825
4878
|
const renderNodes = (nodes, depth = 1, ancestorLast = []) => nodes.map((node, index) => {
|
|
4826
4879
|
const isLast = index === nodes.length - 1;
|
|
4827
4880
|
const isExpanded = expandedSet.has(node.id);
|
|
4828
|
-
const { selected, indeterminate } = getSelectionState(node, selectedSet);
|
|
4881
|
+
const { selected, indeterminate } = getSelectionState(node, selectedSet, cascadeSelection);
|
|
4829
4882
|
return /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
4830
4883
|
/* @__PURE__ */ jsx(
|
|
4831
4884
|
STreeItem2,
|
|
@@ -4859,14 +4912,25 @@ var STreeImpl = /* @__PURE__ */ forwardRef(function STree({
|
|
|
4859
4912
|
) : null
|
|
4860
4913
|
] }, node.id);
|
|
4861
4914
|
});
|
|
4862
|
-
return /* @__PURE__ */
|
|
4915
|
+
return /* @__PURE__ */ jsxs(
|
|
4863
4916
|
"div",
|
|
4864
4917
|
{
|
|
4865
4918
|
ref,
|
|
4866
4919
|
role: "tree",
|
|
4867
4920
|
className: cn("flex w-full flex-col items-start bg-(--cmp-tree-item-bg-default)", className),
|
|
4868
4921
|
...rest,
|
|
4869
|
-
children:
|
|
4922
|
+
children: [
|
|
4923
|
+
showAllItem && /* @__PURE__ */ jsx(
|
|
4924
|
+
STreeAllItem,
|
|
4925
|
+
{
|
|
4926
|
+
selected: allSelected,
|
|
4927
|
+
indeterminate: allIndeterminate,
|
|
4928
|
+
border,
|
|
4929
|
+
onSelect: updateAllSelected
|
|
4930
|
+
}
|
|
4931
|
+
),
|
|
4932
|
+
renderNodes(items)
|
|
4933
|
+
]
|
|
4870
4934
|
}
|
|
4871
4935
|
);
|
|
4872
4936
|
});
|