@dust-tt/sparkle 0.1.66-rc2 → 0.1.67

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.
@@ -7,7 +7,7 @@ export interface DropdownMenuProps {
7
7
  export declare function DropdownMenu({ children, className }: DropdownMenuProps): React.JSX.Element;
8
8
  export declare namespace DropdownMenu {
9
9
  var Button: ({ label, type, tooltip, icon, children, tooltipPosition, className, disabled, }: DropdownButtonProps) => React.JSX.Element;
10
- var Item: ({ label, href, disabled, key, imageUrl, onClick, }: DropdownItemProps) => React.JSX.Element;
10
+ var Item: ({ label, href, disabled, key, visual, onClick, }: DropdownItemProps) => React.JSX.Element;
11
11
  var Items: ({ origin, width, children, }: DropdownItemsProps) => React.JSX.Element;
12
12
  }
13
13
  export interface DropdownButtonProps {
@@ -25,7 +25,7 @@ interface DropdownItemProps {
25
25
  href?: string;
26
26
  disabled?: boolean;
27
27
  key?: string;
28
- imageUrl?: string;
28
+ visual?: string | React.ReactNode;
29
29
  onClick?: () => void;
30
30
  }
31
31
  interface DropdownItemsProps {
@@ -7,11 +7,11 @@ type ItemProps = {
7
7
  disabled?: boolean;
8
8
  label: string;
9
9
  icon?: ComponentType;
10
- imageUrl?: string;
10
+ visual?: string | React.ReactNode;
11
11
  className?: string;
12
12
  href?: string;
13
13
  };
14
- export declare function Item({ onClick, selected, size, disabled, variant, label, icon, imageUrl, className, href, }: ItemProps): React.JSX.Element;
14
+ export declare function Item({ onClick, selected, size, disabled, variant, label, icon, visual, className, href, }: ItemProps): React.JSX.Element;
15
15
  export declare namespace Item {
16
16
  var SectionHeader: ({ label }: ItemSectionHeaderProps) => React.JSX.Element;
17
17
  var List: ({ children, className }: ListItemProps) => React.JSX.Element;
package/dist/cjs/index.js CHANGED
@@ -520,18 +520,93 @@ function Tab(_a) {
520
520
  return tab.hideLabel ? (tab.label ? (React.createElement(React.Fragment, null,
521
521
  React.createElement("div", { key: "tab-".concat(i) },
522
522
  React.createElement(Tooltip, { label: tab.label }, content)),
523
- tab.hasSeparator && React.createElement("div", { className: "s-flex s-h-full s-grow" }))) : (React.createElement(React.Fragment, null,
523
+ tab.hasSeparator && (React.createElement("div", { className: "s-flex s-h-full s-grow", key: "sep-".concat(i) })))) : (React.createElement(React.Fragment, null,
524
524
  React.createElement("div", { key: "tab-".concat(i) }, content),
525
- tab.hasSeparator && React.createElement("div", { className: "s-flex s-h-full s-grow" })))) : (React.createElement(React.Fragment, null,
525
+ tab.hasSeparator && (React.createElement("div", { className: "s-flex s-h-full s-grow", key: "sep-".concat(i) }))))) : (React.createElement(React.Fragment, null,
526
526
  React.createElement("div", { key: "tab-".concat(i) }, content),
527
- tab.hasSeparator && React.createElement("div", { className: "s-flex s-h-full s-grow" })));
527
+ tab.hasSeparator && (React.createElement("div", { className: "s-flex s-h-full s-grow", key: "sep-".concat(i) }))));
528
528
  });
529
529
  };
530
530
  return (React.createElement("div", { className: "s-border-b s-border-structure-200 dark:s-border-structure-200-dark" },
531
531
  React.createElement("nav", { className: "-s-mb-px s-flex s-space-x-0", "aria-label": "Tabs" }, renderTabs())));
532
532
  }
533
533
 
534
+ var colors = [
535
+ "s-bg-red-300",
536
+ "s-bg-orange-300",
537
+ "s-bg-amber-300",
538
+ "s-bg-yellow-300",
539
+ "s-bg-lime-300",
540
+ "s-bg-green-300",
541
+ "s-bg-emerald-300",
542
+ "s-bg-teal-300",
543
+ "s-bg-cyan-300",
544
+ "s-bg-sky-300",
545
+ "s-bg-blue-300",
546
+ "s-bg-indigo-300",
547
+ "s-bg-violet-300",
548
+ "s-bg-purple-300",
549
+ "s-bg-fuchsia-300",
550
+ "s-bg-rose-300",
551
+ ];
552
+ var txtColors = [
553
+ "s-text-red-700",
554
+ "s-text-orange-700",
555
+ "s-text-amber-700",
556
+ "s-text-yellow-700",
557
+ "s-text-lime-700",
558
+ "s-text-green-700",
559
+ "s-text-emerald-700",
560
+ "s-text-teal-700",
561
+ "s-text-cyan-700",
562
+ "s-text-sky-700",
563
+ "s-text-blue-700",
564
+ "s-text-indigo-700",
565
+ "s-text-violet-700",
566
+ "s-text-purple-700",
567
+ "s-text-fuchsia-700",
568
+ "s-text-rose-700",
569
+ ];
534
570
  var sizeClasses$2 = {
571
+ xs: "s-h-6 s-w-6 s-rounded-full",
572
+ sm: "s-h-10 s-w-10 s-rounded-xl",
573
+ md: "s-h-16 s-w-16 s-rounded-2xl",
574
+ lg: "s-h-36 s-w-36 s-rounded-3xl",
575
+ full: "s-h-full s-w-full",
576
+ };
577
+ var textSize = {
578
+ xs: "s-text-xs",
579
+ sm: "s-text-base",
580
+ md: "s-text-3xl",
581
+ lg: "s-text-7xl",
582
+ full: "s-text-6xl",
583
+ };
584
+ function Avatar(_a) {
585
+ var _b = _a.size, size = _b === void 0 ? "sm" : _b, name = _a.name, visual = _a.visual, onClick = _a.onClick, _c = _a.busy, busy = _c === void 0 ? false : _c;
586
+ var getColor = function (name) {
587
+ var hash = 0;
588
+ for (var i = 0; i < name.length; i++) {
589
+ hash = name.charCodeAt(i) + ((hash << 5) - hash);
590
+ }
591
+ return colors[Math.abs(hash) % colors.length];
592
+ };
593
+ var getTextVariant = function (name) {
594
+ var hash = 0;
595
+ for (var i = 0; i < name.length; i++) {
596
+ hash = name.charCodeAt(i) + ((hash << 5) - hash);
597
+ }
598
+ return txtColors[Math.abs(hash) % txtColors.length];
599
+ };
600
+ var clickableStyles = onClick && !busy
601
+ ? "s-cursor-pointer hover:s-filter hover:s-brightness-110 active:s-brightness-90 s-transition s-duration-200 s-ease-out"
602
+ : "";
603
+ var busyStyles = busy ? "s-animate-breathing s-cursor-default" : "";
604
+ var avatarClass = classNames(sizeClasses$2[size], name ? getColor(name) : "s-bg-slate-200", "s-flex s-flex-shrink-0 s-items-center s-justify-center s-overflow-hidden", clickableStyles, busyStyles);
605
+ return (React.createElement("div", { className: avatarClass }, typeof visual === "string" ? (React.createElement("img", { src: visual, alt: name, className: classNames(sizeClasses$2[size], "s-object-cover") })) : visual ? (visual) : name ? (React.createElement("span", { className: classNames(getTextVariant(name), textSize[size], "s-select-none s-font-medium") }, name[0].toUpperCase())) : (React.createElement(SvgUser$1, { className: "s-h-1/2 s-w-1/2 s-opacity-20" }) // Default icon with size and slate-900 color
606
+ )));
607
+ }
608
+
609
+ var sizeClasses$1 = {
535
610
  sm: "s-py-2 s-text-sm s-font-normal",
536
611
  md: "s-py-3 s-text-sm s-font-semibold",
537
612
  };
@@ -555,11 +630,6 @@ var iconClasses$3 = {
555
630
  },
556
631
  },
557
632
  };
558
- var imageClasses = {
559
- default: {
560
- base: "s-h-5 s-w-5 s-rounded-full",
561
- },
562
- };
563
633
  var chevronClasses$1 = {
564
634
  default: {
565
635
  base: "s-text-element-600",
@@ -630,7 +700,7 @@ var stateClassesMD = {
630
700
  };
631
701
  function Item(_a) {
632
702
  var _b, _c, _d;
633
- var onClick = _a.onClick, _e = _a.selected, selected = _e === void 0 ? false : _e, _f = _a.size, size = _f === void 0 ? "sm" : _f, _g = _a.disabled, disabled = _g === void 0 ? false : _g, _h = _a.variant, variant = _h === void 0 ? "default" : _h, label = _a.label, icon = _a.icon, imageUrl = _a.imageUrl, _j = _a.className, className = _j === void 0 ? "" : _j, href = _a.href;
703
+ var onClick = _a.onClick, _e = _a.selected, selected = _e === void 0 ? false : _e, _f = _a.size, size = _f === void 0 ? "sm" : _f, _g = _a.disabled, disabled = _g === void 0 ? false : _g, _h = _a.variant, variant = _h === void 0 ? "default" : _h, label = _a.label, icon = _a.icon, visual = _a.visual, _j = _a.className, className = _j === void 0 ? "" : _j, href = _a.href;
634
704
  var components = React.useContext(SparkleContext).components;
635
705
  var currentStateClasses = size === "md"
636
706
  ? selected
@@ -645,18 +715,17 @@ function Item(_a) {
645
715
  var currentChevronClasses = selected
646
716
  ? chevronClasses$1.selected
647
717
  : chevronClasses$1.default;
648
- var itemClasses = classNames(baseClasses$3, sizeClasses$2[size], disabled ? "s-cursor-default" : currentStateClasses.base, disabled ? "s-cursor-default" : (_b = currentStateClasses.dark) === null || _b === void 0 ? void 0 : _b.base, disabled ? currentStateClasses.disabled : "", !selected && !disabled ? currentStateClasses.hover : "", !selected && !disabled ? (_c = currentStateClasses.dark) === null || _c === void 0 ? void 0 : _c.hover : "", !selected && !disabled ? currentStateClasses.active : "", !selected && !disabled ? (_d = currentStateClasses.dark) === null || _d === void 0 ? void 0 : _d.active : "", className);
718
+ var itemClasses = classNames(baseClasses$3, sizeClasses$1[size], disabled ? "s-cursor-default" : currentStateClasses.base, disabled ? "s-cursor-default" : (_b = currentStateClasses.dark) === null || _b === void 0 ? void 0 : _b.base, disabled ? currentStateClasses.disabled : "", !selected && !disabled ? currentStateClasses.hover : "", !selected && !disabled ? (_c = currentStateClasses.dark) === null || _c === void 0 ? void 0 : _c.hover : "", !selected && !disabled ? currentStateClasses.active : "", !selected && !disabled ? (_d = currentStateClasses.dark) === null || _d === void 0 ? void 0 : _d.active : "", className);
649
719
  var finalIconClasses = classNames(iconBaseClasses, currentIconClasses.base, !disabled ? currentIconClasses.hover : "", // Add condition here
650
720
  currentIconClasses.dark.base, !disabled ? currentIconClasses.dark.hover : "" // Add condition here
651
721
  );
652
- var finalImageClasses = classNames(imageClasses.default.base);
653
722
  var finalCevronClasses = classNames(iconBaseClasses, "s-flex-shrink-0", size === "sm" ? "s-text-transparent" : currentChevronClasses.base, !disabled ? currentChevronClasses.hover : "", // Add condition here
654
723
  currentChevronClasses.dark.base, !disabled ? currentChevronClasses.dark.hover : "" // Add condition here
655
724
  );
656
725
  var Link = href ? components.link : noHrefLink;
657
726
  return (React.createElement(Link, { className: itemClasses, onClick: selected || disabled ? undefined : onClick, "aria-label": label, href: href || "#" },
658
727
  icon && React.createElement(Icon, { visual: icon, className: finalIconClasses }),
659
- imageUrl && (React.createElement("img", { src: imageUrl, className: classNames(finalImageClasses) })),
728
+ visual && React.createElement(Avatar, { size: "xs", visual: visual }),
660
729
  React.createElement("span", { className: "s-grow s-truncate" }, label),
661
730
  variant === "default" && (React.createElement(Icon, { visual: SvgChevronRight$1, className: finalCevronClasses, size: "sm" }))));
662
731
  }
@@ -670,7 +739,7 @@ Item.List = function (_a) {
670
739
  React.createElement("div", { className: "s-flex s-w-full s-flex-col" }, children)));
671
740
  };
672
741
 
673
- var sizeClasses$1 = {
742
+ var sizeClasses = {
674
743
  sm: "s-py-1.5 s-text-xs s-font-medium s-px-3",
675
744
  md: "s-py-2 s-text-sm s-font-semibold s-px-3",
676
745
  };
@@ -689,7 +758,7 @@ function Chip(_a) {
689
758
  return "s-bg-violet-100 s-border-violet-200";
690
759
  }
691
760
  })();
692
- var ChipClasses = classNames(baseClasses$2, sizeClasses$1[size], backgroundColor, className);
761
+ var ChipClasses = classNames(baseClasses$2, sizeClasses[size], backgroundColor, className);
693
762
  return (React.createElement("div", { className: ChipClasses, "aria-label": label },
694
763
  label && (React.createElement("span", { className: "s-pointer s-grow s-cursor-default s-truncate" }, label)),
695
764
  children));
@@ -31782,9 +31851,9 @@ DropdownMenu.Button = function (_a) {
31782
31851
  React.createElement(Icon, { visual: type === "select" ? SvgChevronUpDown$1 : SvgChevronDown$1, size: "xs", className: finalChevronClasses })))));
31783
31852
  };
31784
31853
  DropdownMenu.Item = function (_a) {
31785
- var label = _a.label, href = _a.href, disabled = _a.disabled, _b = _a.key, key = _b === void 0 ? "" : _b, imageUrl = _a.imageUrl, onClick = _a.onClick;
31854
+ var label = _a.label, href = _a.href, disabled = _a.disabled, _b = _a.key, key = _b === void 0 ? "" : _b, visual = _a.visual, onClick = _a.onClick;
31786
31855
  return (React.createElement(it.Item, { disabled: disabled, key: key },
31787
- React.createElement(Item, { variant: "dropdown", size: "md", href: href, onClick: onClick, label: label, imageUrl: imageUrl })));
31856
+ React.createElement(Item, { variant: "dropdown", size: "md", href: href, onClick: onClick, label: label, visual: visual })));
31788
31857
  };
31789
31858
  DropdownMenu.Items = function (_a) {
31790
31859
  var _b = _a.origin, origin = _b === void 0 ? "topRight" : _b, _c = _a.width, width = _c === void 0 ? 160 : _c, children = _a.children;
@@ -32071,81 +32140,6 @@ function IconToggleButton(_a) {
32071
32140
  return tooltip ? (React.createElement(Tooltip, { label: tooltip, position: tooltipPosition }, IconButtonToggleContent)) : (IconButtonToggleContent);
32072
32141
  }
32073
32142
 
32074
- var colors = [
32075
- "s-bg-red-300",
32076
- "s-bg-orange-300",
32077
- "s-bg-amber-300",
32078
- "s-bg-yellow-300",
32079
- "s-bg-lime-300",
32080
- "s-bg-green-300",
32081
- "s-bg-emerald-300",
32082
- "s-bg-teal-300",
32083
- "s-bg-cyan-300",
32084
- "s-bg-sky-300",
32085
- "s-bg-blue-300",
32086
- "s-bg-indigo-300",
32087
- "s-bg-violet-300",
32088
- "s-bg-purple-300",
32089
- "s-bg-fuchsia-300",
32090
- "s-bg-rose-300",
32091
- ];
32092
- var txtColors = [
32093
- "s-text-red-700",
32094
- "s-text-orange-700",
32095
- "s-text-amber-700",
32096
- "s-text-yellow-700",
32097
- "s-text-lime-700",
32098
- "s-text-green-700",
32099
- "s-text-emerald-700",
32100
- "s-text-teal-700",
32101
- "s-text-cyan-700",
32102
- "s-text-sky-700",
32103
- "s-text-blue-700",
32104
- "s-text-indigo-700",
32105
- "s-text-violet-700",
32106
- "s-text-purple-700",
32107
- "s-text-fuchsia-700",
32108
- "s-text-rose-700",
32109
- ];
32110
- var sizeClasses = {
32111
- xs: "s-h-6 s-w-6 s-rounded-full",
32112
- sm: "s-h-10 s-w-10 s-rounded-xl",
32113
- md: "s-h-16 s-w-16 s-rounded-2xl",
32114
- lg: "s-h-36 s-w-36 s-rounded-3xl",
32115
- full: "s-h-full s-w-full",
32116
- };
32117
- var textSize = {
32118
- xs: "s-text-xs",
32119
- sm: "s-text-base",
32120
- md: "s-text-3xl",
32121
- lg: "s-text-7xl",
32122
- full: "s-text-6xl",
32123
- };
32124
- function Avatar(_a) {
32125
- var _b = _a.size, size = _b === void 0 ? "sm" : _b, name = _a.name, visual = _a.visual, onClick = _a.onClick, _c = _a.busy, busy = _c === void 0 ? false : _c;
32126
- var getColor = function (name) {
32127
- var hash = 0;
32128
- for (var i = 0; i < name.length; i++) {
32129
- hash = name.charCodeAt(i) + ((hash << 5) - hash);
32130
- }
32131
- return colors[Math.abs(hash) % colors.length];
32132
- };
32133
- var getTextVariant = function (name) {
32134
- var hash = 0;
32135
- for (var i = 0; i < name.length; i++) {
32136
- hash = name.charCodeAt(i) + ((hash << 5) - hash);
32137
- }
32138
- return txtColors[Math.abs(hash) % txtColors.length];
32139
- };
32140
- var clickableStyles = onClick && !busy
32141
- ? "s-cursor-pointer hover:s-filter hover:s-brightness-110 active:s-brightness-90 s-transition s-duration-200 s-ease-out"
32142
- : "";
32143
- var busyStyles = busy ? "s-animate-breathing s-cursor-default" : "";
32144
- var avatarClass = classNames(sizeClasses[size], name ? getColor(name) : "s-bg-slate-200", "s-flex s-flex-shrink-0 s-items-center s-justify-center s-overflow-hidden", clickableStyles, busyStyles);
32145
- return (React.createElement("div", { className: avatarClass }, typeof visual === "string" ? (React.createElement("img", { src: visual, alt: name, className: classNames(sizeClasses[size], "s-object-cover") })) : visual ? (visual) : name ? (React.createElement("span", { className: classNames(getTextVariant(name), textSize[size], "s-select-none s-font-medium") }, name[0].toUpperCase())) : (React.createElement(SvgUser$1, { className: "s-h-1/2 s-w-1/2 s-opacity-20" }) // Default icon with size and slate-900 color
32146
- )));
32147
- }
32148
-
32149
32143
  var Spinner = function (_a) {
32150
32144
  var _b = _a.size, size = _b === void 0 ? "md" : _b, _c = _a.variant, variant = _c === void 0 ? "lightGrey" : _c;
32151
32145
  var sizeClasses = {