@dust-tt/sparkle 0.3.25 → 0.4.0
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.js +7 -7
- package/dist/esm/components/Avatar.js.map +1 -1
- package/dist/esm/components/Button.d.ts +2 -2
- package/dist/esm/components/Button.d.ts.map +1 -1
- package/dist/esm/components/Button.js +8 -0
- package/dist/esm/components/Button.js.map +1 -1
- package/dist/esm/components/ButtonGroup.d.ts +30 -0
- package/dist/esm/components/ButtonGroup.d.ts.map +1 -0
- package/dist/esm/components/ButtonGroup.js +90 -0
- package/dist/esm/components/ButtonGroup.js.map +1 -0
- package/dist/esm/components/Counter.d.ts +1 -1
- package/dist/esm/components/Counter.d.ts.map +1 -1
- package/dist/esm/components/Counter.js +6 -4
- package/dist/esm/components/Counter.js.map +1 -1
- package/dist/esm/components/IconButton.d.ts +2 -2
- package/dist/esm/components/IconButton.d.ts.map +1 -1
- package/dist/esm/components/IconButton.js +2 -0
- package/dist/esm/components/IconButton.js.map +1 -1
- package/dist/esm/components/SplitButton.d.ts.map +1 -1
- package/dist/esm/components/SplitButton.js +2 -0
- package/dist/esm/components/SplitButton.js.map +1 -1
- package/dist/esm/components/index.d.ts +2 -0
- package/dist/esm/components/index.d.ts.map +1 -1
- package/dist/esm/components/index.js +1 -0
- package/dist/esm/components/index.js.map +1 -1
- package/dist/esm/icons/actions/Noise.d.ts +5 -0
- package/dist/esm/icons/actions/Noise.d.ts.map +1 -0
- package/dist/esm/icons/actions/Noise.js +6 -0
- package/dist/esm/icons/actions/Noise.js.map +1 -0
- package/dist/esm/icons/actions/Speak.d.ts +5 -0
- package/dist/esm/icons/actions/Speak.d.ts.map +1 -0
- package/dist/esm/icons/actions/Speak.js +6 -0
- package/dist/esm/icons/actions/Speak.js.map +1 -0
- package/dist/esm/icons/actions/index.d.ts +2 -0
- package/dist/esm/icons/actions/index.d.ts.map +1 -1
- package/dist/esm/icons/actions/index.js +2 -0
- package/dist/esm/icons/actions/index.js.map +1 -1
- package/dist/esm/icons/app/Tools.js +1 -1
- package/dist/esm/icons/app/Tools.js.map +1 -1
- package/dist/esm/icons/src/actions/noise.svg +4 -0
- package/dist/esm/icons/src/actions/speak.svg +3 -0
- package/dist/esm/icons/src/app/tools.svg +1 -1
- package/dist/esm/logo/platforms/Ashby.d.ts +5 -0
- package/dist/esm/logo/platforms/Ashby.d.ts.map +1 -0
- package/dist/esm/logo/platforms/Ashby.js +7 -0
- package/dist/esm/logo/platforms/Ashby.js.map +1 -0
- package/dist/esm/logo/platforms/Canva.js +9 -9
- package/dist/esm/logo/platforms/Canva.js.map +1 -1
- package/dist/esm/logo/platforms/Front.d.ts +5 -0
- package/dist/esm/logo/platforms/Front.d.ts.map +1 -0
- package/dist/esm/logo/platforms/Front.js +7 -0
- package/dist/esm/logo/platforms/Front.js.map +1 -0
- package/dist/esm/logo/platforms/Gitlab.js +5 -5
- package/dist/esm/logo/platforms/Gitlab.js.map +1 -1
- package/dist/esm/logo/platforms/ValTown.d.ts.map +1 -1
- package/dist/esm/logo/platforms/ValTown.js +8 -8
- package/dist/esm/logo/platforms/ValTown.js.map +1 -1
- package/dist/esm/logo/platforms/index.d.ts +2 -0
- package/dist/esm/logo/platforms/index.d.ts.map +1 -1
- package/dist/esm/logo/platforms/index.js +2 -0
- package/dist/esm/logo/platforms/index.js.map +1 -1
- package/dist/esm/logo/src/platforms/Ashby.svg +4 -0
- package/dist/esm/logo/src/platforms/Canva.svg +15 -0
- package/dist/esm/logo/src/platforms/Front.svg +4 -0
- package/dist/esm/logo/src/platforms/Gitlab.svg +6 -0
- package/dist/esm/logo/src/platforms/ValTown.svg +10 -0
- package/dist/esm/stories/Button.stories.d.ts +1 -1
- package/dist/esm/stories/Button.stories.d.ts.map +1 -1
- package/dist/esm/stories/Button.stories.js +7 -19
- package/dist/esm/stories/Button.stories.js.map +1 -1
- package/dist/esm/stories/ButtonGroup.stories.d.ts +63 -0
- package/dist/esm/stories/ButtonGroup.stories.d.ts.map +1 -0
- package/dist/esm/stories/ButtonGroup.stories.js +113 -0
- package/dist/esm/stories/ButtonGroup.stories.js.map +1 -0
- package/dist/esm/stories/SplitButton.stories.d.ts.map +1 -1
- package/dist/esm/stories/SplitButton.stories.js +10 -2
- package/dist/esm/stories/SplitButton.stories.js.map +1 -1
- package/dist/sparkle.css +58 -10
- package/package.json +1 -1
- package/src/components/Avatar.tsx +7 -7
- package/src/components/Button.tsx +36 -0
- package/src/components/ButtonGroup.tsx +180 -0
- package/src/components/Counter.tsx +6 -4
- package/src/components/IconButton.tsx +12 -0
- package/src/components/SplitButton.tsx +2 -0
- package/src/components/index.ts +2 -0
- package/src/icons/actions/Noise.tsx +18 -0
- package/src/icons/actions/Speak.tsx +18 -0
- package/src/icons/actions/index.ts +2 -0
- package/src/icons/app/Tools.tsx +1 -1
- package/src/icons/src/actions/noise.svg +4 -0
- package/src/icons/src/actions/speak.svg +3 -0
- package/src/icons/src/app/tools.svg +1 -1
- package/src/logo/platforms/Ashby.tsx +21 -0
- package/src/logo/platforms/Canva.tsx +19 -19
- package/src/logo/platforms/Front.tsx +19 -0
- package/src/logo/platforms/Gitlab.tsx +9 -9
- package/src/logo/platforms/ValTown.tsx +17 -21
- package/src/logo/platforms/index.ts +2 -0
- package/src/logo/src/platforms/Ashby.svg +4 -0
- package/src/logo/src/platforms/Canva.svg +15 -0
- package/src/logo/src/platforms/Front.svg +4 -0
- package/src/logo/src/platforms/Gitlab.svg +6 -0
- package/src/logo/src/platforms/ValTown.svg +10 -0
- package/src/stories/Button.stories.tsx +19 -26
- package/src/stories/ButtonGroup.stories.tsx +174 -0
- package/src/stories/SplitButton.stories.tsx +92 -0
|
@@ -114,32 +114,25 @@ const ButtonBySize = ({
|
|
|
114
114
|
<h3 className="s-text-primary dark:s-text-primary-50">
|
|
115
115
|
{size?.toUpperCase()}
|
|
116
116
|
</h3>
|
|
117
|
-
<div className="s-flex s-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
</div>
|
|
137
|
-
<div className="s-flex s-items-center s-gap-4">
|
|
138
|
-
<Button size={size} icon={PlusIcon} label="Button" />
|
|
139
|
-
<Button size={size} variant="outline" icon={PlusIcon} label="Button" />
|
|
140
|
-
<Button size={size} variant="highlight" icon={PlusIcon} label="Button" />
|
|
141
|
-
<Button size={size} variant="warning" icon={PlusIcon} label="Button" />
|
|
142
|
-
<Button size={size} variant="ghost" icon={PlusIcon} label="Button" />
|
|
117
|
+
<div className="s-flex s-flex-col s-gap-4">
|
|
118
|
+
{BUTTON_VARIANTS.map((variant) => (
|
|
119
|
+
<div key={variant} className="s-flex s-flex-col s-gap-2">
|
|
120
|
+
<div className="s-text-sm s-font-medium s-text-primary dark:s-text-primary-night">
|
|
121
|
+
{variant}
|
|
122
|
+
</div>
|
|
123
|
+
<div className="s-flex s-items-center s-gap-4">
|
|
124
|
+
<Button size={size} variant={variant} label="Button" />
|
|
125
|
+
<Button size={size} variant={variant} label="Button" isLoading />
|
|
126
|
+
<Button
|
|
127
|
+
size={size}
|
|
128
|
+
variant={variant}
|
|
129
|
+
icon={PlusIcon}
|
|
130
|
+
label="Button"
|
|
131
|
+
/>
|
|
132
|
+
<Button size={size} variant={variant} label="Button" disabled />
|
|
133
|
+
</div>
|
|
134
|
+
</div>
|
|
135
|
+
))}
|
|
143
136
|
</div>
|
|
144
137
|
</>
|
|
145
138
|
);
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from "@storybook/react";
|
|
2
|
+
import React from "react";
|
|
3
|
+
|
|
4
|
+
import {
|
|
5
|
+
BUTTON_SIZES,
|
|
6
|
+
BUTTON_VARIANTS,
|
|
7
|
+
type ButtonVariantType,
|
|
8
|
+
} from "@sparkle/components/Button";
|
|
9
|
+
import type { ButtonGroupVariantType } from "@sparkle/components/ButtonGroup";
|
|
10
|
+
|
|
11
|
+
import {
|
|
12
|
+
Button,
|
|
13
|
+
ButtonGroup,
|
|
14
|
+
PlusIcon,
|
|
15
|
+
RobotIcon,
|
|
16
|
+
Separator,
|
|
17
|
+
} from "../index_with_tw_base";
|
|
18
|
+
|
|
19
|
+
const DEFAULT_CHILDREN = (
|
|
20
|
+
<>
|
|
21
|
+
<Button label="First" />
|
|
22
|
+
<Button label="Second" />
|
|
23
|
+
<Button label="Third" />
|
|
24
|
+
</>
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
const DISALLOWED_GROUP_VARIANTS: ButtonVariantType[] = [
|
|
28
|
+
"ghost",
|
|
29
|
+
"ghost-secondary",
|
|
30
|
+
"highlight",
|
|
31
|
+
"warning",
|
|
32
|
+
];
|
|
33
|
+
|
|
34
|
+
const BUTTON_GROUP_VARIANTS = BUTTON_VARIANTS.filter(
|
|
35
|
+
(variant) => !DISALLOWED_GROUP_VARIANTS.includes(variant)
|
|
36
|
+
) as ButtonGroupVariantType[];
|
|
37
|
+
|
|
38
|
+
const meta = {
|
|
39
|
+
title: "Primitives/ButtonGroup",
|
|
40
|
+
component: ButtonGroup,
|
|
41
|
+
tags: ["autodocs"],
|
|
42
|
+
argTypes: {
|
|
43
|
+
variant: {
|
|
44
|
+
description: "Variant applied to every child button",
|
|
45
|
+
control: { type: "select" },
|
|
46
|
+
options: BUTTON_GROUP_VARIANTS,
|
|
47
|
+
},
|
|
48
|
+
size: {
|
|
49
|
+
description: "Size applied to every child button",
|
|
50
|
+
control: { type: "select" },
|
|
51
|
+
options: BUTTON_SIZES.filter((size) => size !== "mini"),
|
|
52
|
+
},
|
|
53
|
+
orientation: {
|
|
54
|
+
description: "Stack buttons horizontally or vertically",
|
|
55
|
+
control: { type: "select" },
|
|
56
|
+
options: ["horizontal", "vertical"],
|
|
57
|
+
},
|
|
58
|
+
disabled: {
|
|
59
|
+
description: "Disable all buttons in the group",
|
|
60
|
+
control: "boolean",
|
|
61
|
+
},
|
|
62
|
+
removeGaps: {
|
|
63
|
+
description: "Remove gaps and merge button borders",
|
|
64
|
+
control: "boolean",
|
|
65
|
+
},
|
|
66
|
+
children: {
|
|
67
|
+
table: { disable: true },
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
args: {
|
|
71
|
+
children: DEFAULT_CHILDREN,
|
|
72
|
+
variant: "outline",
|
|
73
|
+
size: "sm",
|
|
74
|
+
orientation: "horizontal",
|
|
75
|
+
disabled: false,
|
|
76
|
+
removeGaps: true,
|
|
77
|
+
},
|
|
78
|
+
render: (args) => <ButtonGroup {...args} />,
|
|
79
|
+
} satisfies Meta<typeof ButtonGroup>;
|
|
80
|
+
|
|
81
|
+
export default meta;
|
|
82
|
+
|
|
83
|
+
type Story = StoryObj<typeof meta>;
|
|
84
|
+
|
|
85
|
+
export const Playground: Story = {};
|
|
86
|
+
|
|
87
|
+
export const WithIcons: Story = {
|
|
88
|
+
render: () => (
|
|
89
|
+
<ButtonGroup variant="outline" size="sm">
|
|
90
|
+
<Button icon={PlusIcon} label="Add" />
|
|
91
|
+
<Button icon={RobotIcon} label="Agent" />
|
|
92
|
+
<Button label="More" />
|
|
93
|
+
</ButtonGroup>
|
|
94
|
+
),
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
export const WithCounters: Story = {
|
|
98
|
+
render: () => (
|
|
99
|
+
<ButtonGroup variant="outline" size="sm">
|
|
100
|
+
<Button label="Inbox" isCounter counterValue="5" />
|
|
101
|
+
<Button label="Sent" isCounter counterValue="12" />
|
|
102
|
+
<Button label="Drafts" isCounter counterValue="3" />
|
|
103
|
+
</ButtonGroup>
|
|
104
|
+
),
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
export const Vertical: Story = {
|
|
108
|
+
render: () => (
|
|
109
|
+
<ButtonGroup variant="outline" size="sm" orientation="vertical">
|
|
110
|
+
<Button label="First" />
|
|
111
|
+
<Button label="Second" />
|
|
112
|
+
<Button label="Third" />
|
|
113
|
+
</ButtonGroup>
|
|
114
|
+
),
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
export const Disabled: Story = {
|
|
118
|
+
render: () => (
|
|
119
|
+
<ButtonGroup variant="outline" size="sm" disabled>
|
|
120
|
+
<Button label="First" />
|
|
121
|
+
<Button label="Second" />
|
|
122
|
+
<Button label="Third" />
|
|
123
|
+
</ButtonGroup>
|
|
124
|
+
),
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
export const WithGaps: Story = {
|
|
128
|
+
render: () => (
|
|
129
|
+
<ButtonGroup variant="outline" size="sm" removeGaps={false}>
|
|
130
|
+
<Button label="First" />
|
|
131
|
+
<Button label="Second" />
|
|
132
|
+
<Button label="Third" />
|
|
133
|
+
</ButtonGroup>
|
|
134
|
+
),
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
const ButtonGroupByVariant = ({
|
|
138
|
+
variant,
|
|
139
|
+
}: {
|
|
140
|
+
variant: ButtonGroupVariantType;
|
|
141
|
+
}) => (
|
|
142
|
+
<>
|
|
143
|
+
<Separator />
|
|
144
|
+
<h3 className="s-text-primary dark:s-text-primary-50">{variant}</h3>
|
|
145
|
+
<div className="s-flex s-items-center s-gap-4">
|
|
146
|
+
<ButtonGroup variant={variant} size="xs">
|
|
147
|
+
<Button label="One" />
|
|
148
|
+
<Button label="Two" />
|
|
149
|
+
<Button label="Three" />
|
|
150
|
+
</ButtonGroup>
|
|
151
|
+
<ButtonGroup variant={variant} size="sm">
|
|
152
|
+
<Button label="One" />
|
|
153
|
+
<Button label="Two" />
|
|
154
|
+
<Button label="Three" />
|
|
155
|
+
</ButtonGroup>
|
|
156
|
+
<ButtonGroup variant={variant} size="md">
|
|
157
|
+
<Button label="One" />
|
|
158
|
+
<Button label="Two" />
|
|
159
|
+
<Button label="Three" />
|
|
160
|
+
</ButtonGroup>
|
|
161
|
+
</div>
|
|
162
|
+
</>
|
|
163
|
+
);
|
|
164
|
+
|
|
165
|
+
export const Gallery: Story = {
|
|
166
|
+
args: meta.args,
|
|
167
|
+
render: () => (
|
|
168
|
+
<div className="s-flex s-flex-col s-gap-4">
|
|
169
|
+
{BUTTON_GROUP_VARIANTS.map((variant) => (
|
|
170
|
+
<ButtonGroupByVariant key={variant} variant={variant} />
|
|
171
|
+
))}
|
|
172
|
+
</div>
|
|
173
|
+
),
|
|
174
|
+
};
|
|
@@ -40,6 +40,38 @@ export const FlexSplitButtonVariants: Story = {
|
|
|
40
40
|
<Button size="mini" variant="outline" icon={ChevronDownIcon} />
|
|
41
41
|
}
|
|
42
42
|
/>
|
|
43
|
+
<FlexSplitButton
|
|
44
|
+
label="Send"
|
|
45
|
+
variant="highlight-secondary"
|
|
46
|
+
icon={ArrowUpIcon}
|
|
47
|
+
splitAction={
|
|
48
|
+
<Button
|
|
49
|
+
size="mini"
|
|
50
|
+
variant="highlight-secondary"
|
|
51
|
+
icon={ChevronDownIcon}
|
|
52
|
+
/>
|
|
53
|
+
}
|
|
54
|
+
/>
|
|
55
|
+
<FlexSplitButton
|
|
56
|
+
label="Send"
|
|
57
|
+
variant="warning"
|
|
58
|
+
icon={ArrowUpIcon}
|
|
59
|
+
splitAction={
|
|
60
|
+
<Button size="mini" variant="warning" icon={ChevronDownIcon} />
|
|
61
|
+
}
|
|
62
|
+
/>
|
|
63
|
+
<FlexSplitButton
|
|
64
|
+
label="Send"
|
|
65
|
+
variant="warning-secondary"
|
|
66
|
+
icon={ArrowUpIcon}
|
|
67
|
+
splitAction={
|
|
68
|
+
<Button
|
|
69
|
+
size="mini"
|
|
70
|
+
variant="warning-secondary"
|
|
71
|
+
icon={ChevronDownIcon}
|
|
72
|
+
/>
|
|
73
|
+
}
|
|
74
|
+
/>
|
|
43
75
|
<FlexSplitButton
|
|
44
76
|
label="Send"
|
|
45
77
|
variant="ghost"
|
|
@@ -48,6 +80,18 @@ export const FlexSplitButtonVariants: Story = {
|
|
|
48
80
|
<Button size="mini" variant="ghost" icon={ChevronDownIcon} />
|
|
49
81
|
}
|
|
50
82
|
/>
|
|
83
|
+
<FlexSplitButton
|
|
84
|
+
label="Send"
|
|
85
|
+
variant="ghost-secondary"
|
|
86
|
+
icon={ArrowUpIcon}
|
|
87
|
+
splitAction={
|
|
88
|
+
<Button
|
|
89
|
+
size="mini"
|
|
90
|
+
variant="ghost-secondary"
|
|
91
|
+
icon={ChevronDownIcon}
|
|
92
|
+
/>
|
|
93
|
+
}
|
|
94
|
+
/>
|
|
51
95
|
</div>
|
|
52
96
|
),
|
|
53
97
|
};
|
|
@@ -82,6 +126,41 @@ export const FlexSplitButtonLoading: Story = {
|
|
|
82
126
|
<Button size="mini" variant="outline" icon={ChevronDownIcon} />
|
|
83
127
|
}
|
|
84
128
|
/>
|
|
129
|
+
<FlexSplitButton
|
|
130
|
+
label="Sending"
|
|
131
|
+
variant="highlight-secondary"
|
|
132
|
+
icon={ArrowUpIcon}
|
|
133
|
+
isLoading
|
|
134
|
+
splitAction={
|
|
135
|
+
<Button
|
|
136
|
+
size="mini"
|
|
137
|
+
variant="highlight-secondary"
|
|
138
|
+
icon={ChevronDownIcon}
|
|
139
|
+
/>
|
|
140
|
+
}
|
|
141
|
+
/>
|
|
142
|
+
<FlexSplitButton
|
|
143
|
+
label="Sending"
|
|
144
|
+
variant="warning"
|
|
145
|
+
icon={ArrowUpIcon}
|
|
146
|
+
isLoading
|
|
147
|
+
splitAction={
|
|
148
|
+
<Button size="mini" variant="warning" icon={ChevronDownIcon} />
|
|
149
|
+
}
|
|
150
|
+
/>
|
|
151
|
+
<FlexSplitButton
|
|
152
|
+
label="Sending"
|
|
153
|
+
variant="warning-secondary"
|
|
154
|
+
icon={ArrowUpIcon}
|
|
155
|
+
isLoading
|
|
156
|
+
splitAction={
|
|
157
|
+
<Button
|
|
158
|
+
size="mini"
|
|
159
|
+
variant="warning-secondary"
|
|
160
|
+
icon={ChevronDownIcon}
|
|
161
|
+
/>
|
|
162
|
+
}
|
|
163
|
+
/>
|
|
85
164
|
<FlexSplitButton
|
|
86
165
|
label="Sending"
|
|
87
166
|
variant="ghost"
|
|
@@ -91,6 +170,19 @@ export const FlexSplitButtonLoading: Story = {
|
|
|
91
170
|
<Button size="mini" variant="ghost" icon={ChevronDownIcon} />
|
|
92
171
|
}
|
|
93
172
|
/>
|
|
173
|
+
<FlexSplitButton
|
|
174
|
+
label="Sending"
|
|
175
|
+
variant="ghost-secondary"
|
|
176
|
+
icon={ArrowUpIcon}
|
|
177
|
+
isLoading
|
|
178
|
+
splitAction={
|
|
179
|
+
<Button
|
|
180
|
+
size="mini"
|
|
181
|
+
variant="ghost-secondary"
|
|
182
|
+
icon={ChevronDownIcon}
|
|
183
|
+
/>
|
|
184
|
+
}
|
|
185
|
+
/>
|
|
94
186
|
</div>
|
|
95
187
|
),
|
|
96
188
|
};
|