@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.
- package/dist/cjs/components/DropdownMenu.d.ts +2 -2
- package/dist/cjs/components/Item.d.ts +2 -2
- package/dist/cjs/index.js +85 -91
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/stories/Item.stories.d.ts +1 -1
- package/dist/esm/components/DropdownMenu.d.ts +2 -2
- package/dist/esm/components/Item.d.ts +2 -2
- package/dist/esm/index.js +85 -91
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/stories/Item.stories.d.ts +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -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,
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
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,
|
|
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$
|
|
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
|
-
|
|
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
|
|
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
|
|
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,
|
|
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,
|
|
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 = {
|