@dust-tt/sparkle 0.2.617-rc-1 → 0.2.617
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/index.js +1 -1
- package/dist/esm/components/Avatar.d.ts +1 -1
- package/dist/esm/components/Avatar.js +4 -4
- package/dist/esm/components/Avatar.js.map +1 -1
- package/dist/esm/components/Button.d.ts +3 -0
- package/dist/esm/components/Button.d.ts.map +1 -1
- package/dist/esm/components/Button.js +21 -10
- package/dist/esm/components/Button.js.map +1 -1
- package/dist/esm/components/Card.d.ts +1 -0
- package/dist/esm/components/Card.d.ts.map +1 -1
- package/dist/esm/components/ConversationMessage.d.ts +4 -0
- package/dist/esm/components/ConversationMessage.d.ts.map +1 -1
- package/dist/esm/components/ConversationMessage.js +9 -4
- package/dist/esm/components/ConversationMessage.js.map +1 -1
- package/dist/esm/components/DataTable.d.ts.map +1 -1
- package/dist/esm/components/DataTable.js +12 -50
- package/dist/esm/components/DataTable.js.map +1 -1
- package/dist/esm/components/NavigationList.d.ts +4 -1
- package/dist/esm/components/NavigationList.d.ts.map +1 -1
- package/dist/esm/components/NavigationList.js +2 -2
- package/dist/esm/components/NavigationList.js.map +1 -1
- package/dist/esm/components/ScrollArea.d.ts +1 -0
- package/dist/esm/components/ScrollArea.d.ts.map +1 -1
- package/dist/esm/components/ScrollArea.js +7 -4
- package/dist/esm/components/ScrollArea.js.map +1 -1
- package/dist/esm/components/Spinner.d.ts +1 -1
- package/dist/esm/components/Spinner.js +7 -7
- package/dist/esm/components/Spinner.js.map +1 -1
- package/dist/esm/components/ToolCard.d.ts +6 -0
- package/dist/esm/components/ToolCard.d.ts.map +1 -1
- package/dist/esm/components/ToolCard.js +18 -11
- package/dist/esm/components/ToolCard.js.map +1 -1
- package/dist/esm/components/Tooltip.d.ts.map +1 -1
- package/dist/esm/components/Tooltip.js.map +1 -1
- package/dist/esm/components/WindowUtility.d.ts +3 -2
- package/dist/esm/components/WindowUtility.d.ts.map +1 -1
- package/dist/esm/components/WindowUtility.js +25 -17
- package/dist/esm/components/WindowUtility.js.map +1 -1
- package/dist/esm/components/markdown/CodeBlock.d.ts +2 -1
- package/dist/esm/components/markdown/CodeBlock.d.ts.map +1 -1
- package/dist/esm/components/markdown/CodeBlock.js +9 -2
- package/dist/esm/components/markdown/CodeBlock.js.map +1 -1
- package/dist/esm/icons/app/Mic.d.ts +5 -0
- package/dist/esm/icons/app/Mic.d.ts.map +1 -0
- package/dist/esm/icons/app/Mic.js +6 -0
- package/dist/esm/icons/app/Mic.js.map +1 -0
- package/dist/esm/icons/app/index.d.ts +1 -0
- package/dist/esm/icons/app/index.d.ts.map +1 -1
- package/dist/esm/icons/app/index.js +1 -0
- package/dist/esm/icons/app/index.js.map +1 -1
- package/dist/esm/icons/src/app/mic.svg +3 -0
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/stories/Avatar.stories.js +4 -4
- package/dist/esm/stories/CodeBlock.stories.d.ts +17 -0
- package/dist/esm/stories/CodeBlock.stories.d.ts.map +1 -0
- package/dist/esm/stories/CodeBlock.stories.js +125 -0
- package/dist/esm/stories/CodeBlock.stories.js.map +1 -0
- package/dist/esm/stories/ConversationMessage.stories.d.ts.map +1 -1
- package/dist/esm/stories/ConversationMessage.stories.js +3 -3
- package/dist/esm/stories/ConversationMessage.stories.js.map +1 -1
- package/dist/esm/stories/MultiPageDialog.stories.js +1 -1
- package/dist/esm/stories/MultiPageDialog.stories.js.map +1 -1
- package/dist/esm/stories/Playground.stories.d.ts.map +1 -1
- package/dist/esm/stories/Playground.stories.js +166 -29
- package/dist/esm/stories/Playground.stories.js.map +1 -1
- package/dist/esm/stories/Spinner.stories.js +3 -3
- package/dist/esm/stories/ToolCard.stories.d.ts.map +1 -1
- package/dist/esm/stories/ToolCard.stories.js +14 -6
- package/dist/esm/stories/ToolCard.stories.js.map +1 -1
- package/dist/sparkle.css +100 -0
- package/package.json +1 -1
- package/src/components/Avatar.tsx +4 -4
- package/src/components/Button.tsx +35 -7
- package/src/components/ConversationMessage.tsx +26 -7
- package/src/components/DataTable.tsx +7 -46
- package/src/components/NavigationList.tsx +7 -2
- package/src/components/ScrollArea.tsx +9 -3
- package/src/components/Spinner.tsx +7 -7
- package/src/components/ToolCard.tsx +60 -35
- package/src/components/Tooltip.tsx +49 -38
- package/src/components/WindowUtility.tsx +11 -18
- package/src/components/markdown/CodeBlock.tsx +10 -0
- package/src/icons/app/Mic.tsx +18 -0
- package/src/icons/app/index.ts +1 -0
- package/src/icons/src/app/mic.svg +3 -0
- package/src/index.ts +1 -0
- package/src/stories/Avatar.stories.tsx +4 -4
- package/src/stories/CodeBlock.stories.tsx +361 -0
- package/src/stories/ConversationMessage.stories.tsx +6 -0
- package/src/stories/MultiPageDialog.stories.tsx +1 -1
- package/src/stories/Playground.stories.tsx +311 -56
- package/src/stories/Spinner.stories.tsx +3 -3
- package/src/stories/ToolCard.stories.tsx +49 -35
|
@@ -13,7 +13,7 @@ import animLightLG from "@sparkle/lottie/spinnerLightLG";
|
|
|
13
13
|
import animLightXS from "@sparkle/lottie/spinnerLightXS";
|
|
14
14
|
|
|
15
15
|
type SpinnerSizeType = (typeof SPINNER_SIZES)[number];
|
|
16
|
-
const SPINNER_SIZES = ["xs", "sm", "md", "lg", "xl", "
|
|
16
|
+
const SPINNER_SIZES = ["xs", "sm", "md", "lg", "xl", "2xl"] as const;
|
|
17
17
|
|
|
18
18
|
type SpinnerVariant =
|
|
19
19
|
| "mono"
|
|
@@ -43,7 +43,7 @@ const pxSizeClasses: Record<SpinnerSizeType, string> = {
|
|
|
43
43
|
md: "24",
|
|
44
44
|
lg: "32",
|
|
45
45
|
xl: "128",
|
|
46
|
-
|
|
46
|
+
"2xl": "192",
|
|
47
47
|
};
|
|
48
48
|
|
|
49
49
|
type LottieColorType = [number, number, number, number];
|
|
@@ -111,7 +111,7 @@ const Spinner: React.FC<SpinnerProps> = ({ size = "md", variant = "mono" }) => {
|
|
|
111
111
|
anim = animLightXS;
|
|
112
112
|
break;
|
|
113
113
|
case "xl":
|
|
114
|
-
case "
|
|
114
|
+
case "2xl":
|
|
115
115
|
anim = animLightLG;
|
|
116
116
|
break;
|
|
117
117
|
default:
|
|
@@ -139,7 +139,7 @@ const Spinner: React.FC<SpinnerProps> = ({ size = "md", variant = "mono" }) => {
|
|
|
139
139
|
anim = animColorXS;
|
|
140
140
|
break;
|
|
141
141
|
case "xl":
|
|
142
|
-
case "
|
|
142
|
+
case "2xl":
|
|
143
143
|
anim = animColorLG;
|
|
144
144
|
break;
|
|
145
145
|
default:
|
|
@@ -162,7 +162,7 @@ const Spinner: React.FC<SpinnerProps> = ({ size = "md", variant = "mono" }) => {
|
|
|
162
162
|
anim = animLightXS;
|
|
163
163
|
break;
|
|
164
164
|
case "xl":
|
|
165
|
-
case "
|
|
165
|
+
case "2xl":
|
|
166
166
|
anim = animLightLG;
|
|
167
167
|
break;
|
|
168
168
|
default:
|
|
@@ -185,7 +185,7 @@ const Spinner: React.FC<SpinnerProps> = ({ size = "md", variant = "mono" }) => {
|
|
|
185
185
|
anim = animDarkXS;
|
|
186
186
|
break;
|
|
187
187
|
case "xl":
|
|
188
|
-
case "
|
|
188
|
+
case "2xl":
|
|
189
189
|
anim = animDarkLG;
|
|
190
190
|
break;
|
|
191
191
|
default:
|
|
@@ -210,7 +210,7 @@ const Spinner: React.FC<SpinnerProps> = ({ size = "md", variant = "mono" }) => {
|
|
|
210
210
|
darkAnim = animDarkXS;
|
|
211
211
|
break;
|
|
212
212
|
case "xl":
|
|
213
|
-
case "
|
|
213
|
+
case "2xl":
|
|
214
214
|
lightAnim = animLightLG;
|
|
215
215
|
darkAnim = animDarkLG;
|
|
216
216
|
break;
|
|
@@ -15,10 +15,13 @@ export interface ToolCardProps {
|
|
|
15
15
|
isSelected: boolean;
|
|
16
16
|
canAdd: boolean;
|
|
17
17
|
cantAddReason?: string;
|
|
18
|
+
toolInfo?: { label: string; onClick: () => void };
|
|
18
19
|
onClick?: () => void;
|
|
19
20
|
className?: string;
|
|
21
|
+
cardContainerClassName?: string;
|
|
20
22
|
mountPortal?: boolean;
|
|
21
23
|
mountPortalContainer?: HTMLElement;
|
|
24
|
+
descriptionLineClamp?: number;
|
|
22
25
|
}
|
|
23
26
|
|
|
24
27
|
export const ToolCard = React.forwardRef<HTMLDivElement, ToolCardProps>(
|
|
@@ -30,10 +33,13 @@ export const ToolCard = React.forwardRef<HTMLDivElement, ToolCardProps>(
|
|
|
30
33
|
isSelected,
|
|
31
34
|
canAdd,
|
|
32
35
|
cantAddReason,
|
|
36
|
+
toolInfo,
|
|
33
37
|
onClick,
|
|
34
38
|
className,
|
|
39
|
+
cardContainerClassName,
|
|
35
40
|
mountPortal,
|
|
36
41
|
mountPortalContainer,
|
|
42
|
+
descriptionLineClamp = 2,
|
|
37
43
|
},
|
|
38
44
|
ref
|
|
39
45
|
) => {
|
|
@@ -43,44 +49,63 @@ export const ToolCard = React.forwardRef<HTMLDivElement, ToolCardProps>(
|
|
|
43
49
|
variant={isSelected ? "secondary" : "primary"}
|
|
44
50
|
onClick={onClick}
|
|
45
51
|
disabled={!canAdd}
|
|
46
|
-
|
|
52
|
+
containerClassName={cardContainerClassName}
|
|
53
|
+
className={cn("s-p-3", className)}
|
|
47
54
|
>
|
|
48
|
-
<div className="s-flex s-w-full s-flex-col">
|
|
49
|
-
<div className="s-
|
|
50
|
-
<div className="s-flex s-items-center s-gap-2">
|
|
51
|
-
<
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
<
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
{cantAddReason
|
|
55
|
+
<div className="s-flex s-h-full s-w-full s-flex-col s-justify-between">
|
|
56
|
+
<div className="s-flex s-flex-col">
|
|
57
|
+
<div className="s-mb-2 s-flex s-items-center s-justify-between s-gap-2">
|
|
58
|
+
<div className="s-flex s-items-center s-gap-2">
|
|
59
|
+
<Avatar icon={icon} size="sm" />
|
|
60
|
+
<span className="s-text-sm s-font-medium">{label}</span>
|
|
61
|
+
{isSelected && (
|
|
62
|
+
<Chip
|
|
63
|
+
size="xs"
|
|
64
|
+
color="green"
|
|
65
|
+
label="ADDED"
|
|
66
|
+
className={cn(FADE_TRANSITION_CLASSES, "s-opacity-100")}
|
|
67
|
+
/>
|
|
68
|
+
)}
|
|
69
|
+
</div>
|
|
70
|
+
<div className="s-flex s-flex-shrink-0 s-items-center s-gap-2">
|
|
71
|
+
{canAdd && (
|
|
72
|
+
<Button
|
|
73
|
+
size="xs"
|
|
74
|
+
variant="outline"
|
|
75
|
+
icon={PlusIcon}
|
|
76
|
+
label="Add"
|
|
77
|
+
className={cn(FADE_TRANSITION_CLASSES, "s-flex-shrink-0")}
|
|
78
|
+
/>
|
|
79
|
+
)}
|
|
80
|
+
{cantAddReason && (
|
|
81
|
+
<div className="s-flex-shrink-0 s-text-xs s-italic s-text-muted-foreground dark:s-text-muted-foreground-night">
|
|
82
|
+
{cantAddReason}
|
|
83
|
+
</div>
|
|
84
|
+
)}
|
|
74
85
|
</div>
|
|
75
|
-
|
|
86
|
+
</div>
|
|
87
|
+
<TruncatedText
|
|
88
|
+
className="s-text-sm s-text-muted-foreground dark:s-text-muted-foreground-night"
|
|
89
|
+
mountPortal={mountPortal}
|
|
90
|
+
mountPortalContainer={mountPortalContainer}
|
|
91
|
+
lineClamp={descriptionLineClamp}
|
|
92
|
+
>
|
|
93
|
+
{description}
|
|
94
|
+
</TruncatedText>
|
|
76
95
|
</div>
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
96
|
+
{toolInfo && (
|
|
97
|
+
<div>
|
|
98
|
+
<a
|
|
99
|
+
onClick={(e) => {
|
|
100
|
+
e.stopPropagation();
|
|
101
|
+
toolInfo.onClick();
|
|
102
|
+
}}
|
|
103
|
+
className="hover:s-underline-offset-2 dark:s-text-muted-foreground-night s-cursor-pointer s-text-sm s-font-semibold s-text-muted-foreground hover:s-text-highlight-light hover:s-underline dark:hover:s-text-highlight-light-night"
|
|
104
|
+
>
|
|
105
|
+
{toolInfo.label}
|
|
106
|
+
</a>
|
|
107
|
+
</div>
|
|
108
|
+
)}
|
|
84
109
|
</div>
|
|
85
110
|
</Card>
|
|
86
111
|
);
|
|
@@ -20,47 +20,58 @@ interface TooltipContentProps
|
|
|
20
20
|
const TooltipContent = React.forwardRef<
|
|
21
21
|
React.ElementRef<typeof TooltipPrimitive.Content>,
|
|
22
22
|
TooltipContentProps
|
|
23
|
-
>(
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
sideOffset=
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
23
|
+
>(
|
|
24
|
+
(
|
|
25
|
+
{
|
|
26
|
+
className,
|
|
27
|
+
sideOffset = 4,
|
|
28
|
+
mountPortal = true,
|
|
29
|
+
mountPortalContainer,
|
|
30
|
+
...props
|
|
31
|
+
},
|
|
32
|
+
ref
|
|
33
|
+
) => {
|
|
34
|
+
const content = (
|
|
35
|
+
<TooltipPrimitive.Content
|
|
36
|
+
ref={ref}
|
|
37
|
+
sideOffset={sideOffset}
|
|
38
|
+
className={classNames(
|
|
39
|
+
"s-z-50 s-max-w-sm s-overflow-hidden s-whitespace-pre-wrap s-break-words s-rounded-md s-border",
|
|
40
|
+
"s-bg-background dark:s-bg-background-night",
|
|
41
|
+
"s-text-foreground dark:s-text-foreground-night",
|
|
42
|
+
"s-border-border dark:s-border-border-night",
|
|
43
|
+
"s-px-3 s-py-1.5 s-text-sm s-shadow-md",
|
|
44
|
+
"s-animate-in s-fade-in-0 s-zoom-in-95",
|
|
45
|
+
"data-[state=closed]:s-animate-out data-[state=closed]:s-fade-out-0 data-[state=closed]:s-zoom-out-95 data-[side=bottom]:s-slide-in-from-top-2 data-[side=left]:s-slide-in-from-right-2 data-[side=right]:s-slide-in-from-left-2 data-[side=top]:s-slide-in-from-bottom-2",
|
|
46
|
+
className || ""
|
|
47
|
+
)}
|
|
48
|
+
{...props}
|
|
49
|
+
/>
|
|
50
|
+
);
|
|
41
51
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
52
|
+
const [container, setContainer] = useState<Element | undefined>(
|
|
53
|
+
mountPortalContainer
|
|
54
|
+
);
|
|
45
55
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
56
|
+
useEffect(() => {
|
|
57
|
+
if (mountPortal && !container) {
|
|
58
|
+
const dialogElements = document.querySelectorAll(
|
|
59
|
+
".s-sheet[role=dialog][data-state=open]"
|
|
60
|
+
);
|
|
61
|
+
const defaultContainer = dialogElements[dialogElements.length - 1];
|
|
62
|
+
setContainer(defaultContainer);
|
|
63
|
+
}
|
|
64
|
+
}, [mountPortal, container]);
|
|
55
65
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
}
|
|
66
|
+
return mountPortal ? (
|
|
67
|
+
<TooltipPrimitive.Portal container={container}>
|
|
68
|
+
{content}
|
|
69
|
+
</TooltipPrimitive.Portal>
|
|
70
|
+
) : (
|
|
71
|
+
content
|
|
72
|
+
);
|
|
73
|
+
}
|
|
74
|
+
);
|
|
64
75
|
|
|
65
76
|
interface TooltipProps extends TooltipContentProps {
|
|
66
77
|
trigger: React.ReactNode;
|
|
@@ -2,30 +2,25 @@ import { useEffect, useState } from "react";
|
|
|
2
2
|
|
|
3
3
|
// Define breakpoints
|
|
4
4
|
export const breakpoints = {
|
|
5
|
-
|
|
5
|
+
xxs: 0,
|
|
6
|
+
xs: 512,
|
|
6
7
|
sm: 640,
|
|
7
8
|
md: 768,
|
|
8
9
|
lg: 1024,
|
|
9
10
|
xl: 1280,
|
|
10
|
-
|
|
11
|
+
"2xl": 1536,
|
|
11
12
|
};
|
|
12
13
|
|
|
13
14
|
// Helper function to determine active breakpoint
|
|
14
15
|
function getActiveBreakpoint(width: number): keyof typeof breakpoints {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
if (width >= breakpoints.md) {
|
|
25
|
-
return "md";
|
|
26
|
-
}
|
|
27
|
-
if (width >= breakpoints.sm) {
|
|
28
|
-
return "sm";
|
|
16
|
+
const breakpointEntries = Object.entries(breakpoints) as [keyof typeof breakpoints, number][];
|
|
17
|
+
// Sort breakpoints from largest to smallest
|
|
18
|
+
const sortedBreakpoints = breakpointEntries.sort(([, a], [, b]) => b - a);
|
|
19
|
+
|
|
20
|
+
for (const [breakpoint, minWidth] of sortedBreakpoints) {
|
|
21
|
+
if (width >= minWidth) {
|
|
22
|
+
return breakpoint;
|
|
23
|
+
}
|
|
29
24
|
}
|
|
30
25
|
return "xs";
|
|
31
26
|
}
|
|
@@ -62,5 +57,3 @@ export function useWindowSize() {
|
|
|
62
57
|
|
|
63
58
|
return windowSize;
|
|
64
59
|
}
|
|
65
|
-
|
|
66
|
-
export default useWindowSize;
|
|
@@ -34,6 +34,7 @@ type CodeBlockProps = {
|
|
|
34
34
|
inline?: boolean;
|
|
35
35
|
variant?: "surface";
|
|
36
36
|
wrapLongLines?: boolean;
|
|
37
|
+
showLineNumber?: boolean;
|
|
37
38
|
};
|
|
38
39
|
|
|
39
40
|
export function CodeBlock({
|
|
@@ -42,6 +43,7 @@ export function CodeBlock({
|
|
|
42
43
|
inline,
|
|
43
44
|
variant = "surface",
|
|
44
45
|
wrapLongLines = false,
|
|
46
|
+
showLineNumber = false,
|
|
45
47
|
}: CodeBlockProps): JSX.Element {
|
|
46
48
|
const match = /language-(\w+)/.exec(className || "");
|
|
47
49
|
const language = match ? match[1] : "text";
|
|
@@ -63,6 +65,13 @@ export function CodeBlock({
|
|
|
63
65
|
backgroundColor: "transparent",
|
|
64
66
|
fontSize: "0.875rem",
|
|
65
67
|
},
|
|
68
|
+
"hljs-ln": {
|
|
69
|
+
color: "var(--s-muted-foreground)",
|
|
70
|
+
fontSize: "0.75rem",
|
|
71
|
+
paddingRight: "1em",
|
|
72
|
+
textAlign: "right",
|
|
73
|
+
userSelect: "none",
|
|
74
|
+
},
|
|
66
75
|
"hljs-keyword": {
|
|
67
76
|
// function, const, let, if, return
|
|
68
77
|
color: violet[500],
|
|
@@ -148,6 +157,7 @@ export function CodeBlock({
|
|
|
148
157
|
<div className="s-text-foreground dark:s-text-foreground-night">
|
|
149
158
|
<SyntaxHighlighter
|
|
150
159
|
wrapLongLines={wrapLongLines}
|
|
160
|
+
showLineNumbers={showLineNumber}
|
|
151
161
|
style={codeStyle}
|
|
152
162
|
language={languageToUse}
|
|
153
163
|
PreTag="div"
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { SVGProps } from "react";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
const SvgMic = (props: SVGProps<SVGSVGElement>) => (
|
|
4
|
+
<svg
|
|
5
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
6
|
+
width="1em"
|
|
7
|
+
height="1em"
|
|
8
|
+
fill="none"
|
|
9
|
+
viewBox="0 0 24 24"
|
|
10
|
+
{...props}
|
|
11
|
+
>
|
|
12
|
+
<path
|
|
13
|
+
fill="currentColor"
|
|
14
|
+
d="M12 1a5 5 0 0 1 5 5v4a5 5 0 0 1-10 0V6a5 5 0 0 1 5-5ZM3.055 11H5.07a7.002 7.002 0 0 0 13.858 0h2.016A9.004 9.004 0 0 1 13 18.945V23h-2v-4.055A9.004 9.004 0 0 1 3.055 11Z"
|
|
15
|
+
/>
|
|
16
|
+
</svg>
|
|
17
|
+
);
|
|
18
|
+
export default SvgMic;
|
package/src/icons/app/index.ts
CHANGED
|
@@ -93,6 +93,7 @@ export { default as LogoutIcon } from "./Logout";
|
|
|
93
93
|
export { default as MagicIcon } from "./Magic";
|
|
94
94
|
export { default as MagnifyingGlassIcon } from "./MagnifyingGlass";
|
|
95
95
|
export { default as MenuIcon } from "./Menu";
|
|
96
|
+
export { default as MicIcon } from "./Mic";
|
|
96
97
|
export { default as MoonIcon } from "./Moon";
|
|
97
98
|
export { default as MoreIcon } from "./More";
|
|
98
99
|
export { default as MovingMailIcon } from "./MovingMail";
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M11.9998 1C14.7612 1 16.9998 3.23858 16.9998 6V10C16.9998 12.7614 14.7612 15 11.9998 15C9.23833 15 6.99976 12.7614 6.99976 10V6C6.99976 3.23858 9.23833 1 11.9998 1ZM3.05469 11H5.07065C5.55588 14.3923 8.47329 17 11.9998 17C15.5262 17 18.4436 14.3923 18.9289 11H20.9448C20.4837 15.1716 17.1714 18.4839 12.9998 18.9451V23H10.9998V18.9451C6.82814 18.4839 3.51584 15.1716 3.05469 11Z" fill="#111418"/>
|
|
3
|
+
</svg>
|
package/src/index.ts
CHANGED
|
@@ -44,7 +44,7 @@ export const AvatarExample = () => (
|
|
|
44
44
|
<Avatar size="md" />
|
|
45
45
|
<Avatar size="lg" />
|
|
46
46
|
<Avatar size="xl" />
|
|
47
|
-
<Avatar size="
|
|
47
|
+
<Avatar size="2xl" />
|
|
48
48
|
</div>
|
|
49
49
|
<div>With name</div>
|
|
50
50
|
<div className="s-flex s-gap-4">
|
|
@@ -53,7 +53,7 @@ export const AvatarExample = () => (
|
|
|
53
53
|
<Avatar size="md" name="Aria Doe" />
|
|
54
54
|
<Avatar size="lg" name="Omar Doe" />
|
|
55
55
|
<Avatar size="xl" name="Omar Doe" />
|
|
56
|
-
<Avatar size="
|
|
56
|
+
<Avatar size="2xl" name="Omar Doe" />
|
|
57
57
|
</div>
|
|
58
58
|
<div>With emoji url</div>
|
|
59
59
|
<div className="s-flex s-gap-4">
|
|
@@ -69,7 +69,7 @@ export const AvatarExample = () => (
|
|
|
69
69
|
<Avatar size="md" emoji="😂" backgroundColor="s-bg-info-200" />
|
|
70
70
|
<Avatar size="lg" emoji="🧑🚀" backgroundColor="s-bg-gray-200" />
|
|
71
71
|
<Avatar size="xl" emoji="👕" backgroundColor="s-bg-blue-200" />
|
|
72
|
-
<Avatar size="
|
|
72
|
+
<Avatar size="2xl" emoji="👕" backgroundColor="s-bg-blue-200" />
|
|
73
73
|
</div>
|
|
74
74
|
<div className="s-flex s-gap-4">
|
|
75
75
|
<Avatar size="sm" name="Eleanor Wright" />
|
|
@@ -126,7 +126,7 @@ export const AvatarExample = () => (
|
|
|
126
126
|
<Avatar size="lg" icon={ActionFlagIcon} />
|
|
127
127
|
<Avatar size="lg" icon={SlackLogo} hexBgColor="#421D51" />
|
|
128
128
|
<Avatar size="xl" icon={ActionShirtIcon} />
|
|
129
|
-
<Avatar size="
|
|
129
|
+
<Avatar size="2xl" icon={StarStrokeIcon} />
|
|
130
130
|
</div>
|
|
131
131
|
<div className="heading-2xl">Tools example</div>
|
|
132
132
|
<div>Remote MCP Servers</div>
|