@dust-tt/sparkle 0.2.162 → 0.2.163

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.
@@ -6,9 +6,9 @@ export interface TreeProps {
6
6
  }
7
7
  export declare function Tree({ children, isLoading }: TreeProps): React.JSX.Element;
8
8
  export declare namespace Tree {
9
- var Item: ({ label, type, className, variant, visual, checkbox, onChevronClick, collapsed, children, actions, }: TreeItemProps) => React.JSX.Element;
9
+ var Item: ({ label, type, className, variant, visual, checkbox, onChevronClick, collapsed, defaultCollapsed, actions, renderTreeItems, children, }: TreeItemPropsWithChildren | TreeItemPropsWithRender) => React.JSX.Element;
10
10
  }
11
- export interface TreeItemProps {
11
+ interface TreeItemProps {
12
12
  label?: string;
13
13
  type?: "node" | "item" | "leaf";
14
14
  variant?: "file" | "folder" | "database" | "channel";
@@ -16,7 +16,16 @@ export interface TreeItemProps {
16
16
  checkbox?: CheckboxProps;
17
17
  onChevronClick?: () => void;
18
18
  collapsed?: boolean;
19
+ defaultCollapsed?: boolean;
19
20
  className?: string;
20
21
  actions?: React.ReactNode;
22
+ }
23
+ export interface TreeItemPropsWithChildren extends TreeItemProps {
24
+ renderTreeItems?: never;
21
25
  children?: React.ReactNode;
22
26
  }
27
+ export interface TreeItemPropsWithRender extends TreeItemProps {
28
+ renderTreeItems: () => React.ReactNode;
29
+ children?: never;
30
+ }
31
+ export {};
package/dist/cjs/index.js CHANGED
@@ -76007,10 +76007,25 @@ var visualTable = {
76007
76007
  channel: SvgChatBubbleBottomCenterText,
76008
76008
  };
76009
76009
  Tree.Item = function (_a) {
76010
- var label = _a.label, _b = _a.type, type = _b === void 0 ? "node" : _b, _c = _a.className, className = _c === void 0 ? "" : _c, _d = _a.variant, variant = _d === void 0 ? "file" : _d, visual = _a.visual, checkbox = _a.checkbox, onChevronClick = _a.onChevronClick, collapsed = _a.collapsed, children = _a.children, actions = _a.actions;
76010
+ var label = _a.label, _b = _a.type, type = _b === void 0 ? "node" : _b, _c = _a.className, className = _c === void 0 ? "" : _c, _d = _a.variant, variant = _d === void 0 ? "file" : _d, visual = _a.visual, checkbox = _a.checkbox, onChevronClick = _a.onChevronClick, collapsed = _a.collapsed, defaultCollapsed = _a.defaultCollapsed, actions = _a.actions, renderTreeItems = _a.renderTreeItems, children = _a.children;
76011
+ var _e = __read(React.useState(defaultCollapsed !== null && defaultCollapsed !== void 0 ? defaultCollapsed : true), 2), collapsedState = _e[0], setCollapsedState = _e[1];
76012
+ var isControlledCollapse = collapsed !== undefined;
76013
+ var effectiveCollapsed = isControlledCollapse ? collapsed : collapsedState;
76014
+ var effectiveOnChevronClick = isControlledCollapse
76015
+ ? onChevronClick
76016
+ : function () { return setCollapsedState(!collapsedState); };
76017
+ var getChildren = function () {
76018
+ if (effectiveCollapsed) {
76019
+ return [];
76020
+ }
76021
+ return typeof renderTreeItems === "function" ? renderTreeItems() : children;
76022
+ };
76023
+ var childrenToRender = getChildren();
76011
76024
  return (React.createElement(React.Fragment, null,
76012
76025
  React.createElement("div", { className: classNames(className ? className : "", "s-flex s-flex-row s-items-center s-gap-4 s-py-1") },
76013
- type === "node" && (React.createElement(IconButton, { icon: children && !collapsed ? SvgChevronDown : SvgChevronRight, size: "sm", variant: "secondary", onClick: onChevronClick })),
76026
+ type === "node" && (React.createElement(IconButton, { icon: childrenToRender && !effectiveCollapsed
76027
+ ? SvgChevronDown
76028
+ : SvgChevronRight, size: "sm", variant: "secondary", onClick: effectiveOnChevronClick })),
76014
76029
  type === "leaf" && React.createElement("div", { className: "s-w-5" }),
76015
76030
  checkbox && React.createElement(Checkbox, __assign({}, checkbox)),
76016
76031
  React.createElement("div", { className: "s-flex s-w-full s-items-center s-gap-1.5 s-text-sm s-font-medium s-text-element-900" },
@@ -76018,7 +76033,7 @@ Tree.Item = function (_a) {
76018
76033
  visual ? (visual) : (React.createElement(Icon, { visual: visualTable[variant], size: "sm", className: "s-flex-shrink-0 s-text-element-700" })),
76019
76034
  React.createElement("div", { className: "s-truncate" }, label),
76020
76035
  actions && React.createElement("div", { className: "s-inline-block s-pl-5" }, actions)))),
76021
- React.Children.count(children) > 0 && (React.createElement("div", { className: "s-pl-5" }, !collapsed && children))));
76036
+ React.Children.count(childrenToRender) > 0 && (React.createElement("div", { className: "s-pl-5" }, childrenToRender))));
76022
76037
  };
76023
76038
 
76024
76039
  var baseClasses = "s-transition-all s-ease-out s-duration-300 s-cursor-pointer hover:s-scale-110";