@dust-tt/sparkle 0.2.288 → 0.2.289-rc-2

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.
Files changed (57) hide show
  1. package/dist/cjs/index.js +59763 -59984
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/esm/components/Breadcrumbs.d.ts.map +1 -1
  4. package/dist/esm/components/Breadcrumbs.js +7 -4
  5. package/dist/esm/components/Breadcrumbs.js.map +1 -1
  6. package/dist/esm/components/Button.d.ts +1 -1
  7. package/dist/esm/components/Button.d.ts.map +1 -1
  8. package/dist/esm/components/Button.js +3 -3
  9. package/dist/esm/components/Button.js.map +1 -1
  10. package/dist/esm/components/DataTable.d.ts +3 -3
  11. package/dist/esm/components/DataTable.d.ts.map +1 -1
  12. package/dist/esm/components/DataTable.js +5 -4
  13. package/dist/esm/components/DataTable.js.map +1 -1
  14. package/dist/esm/components/IconButton.d.ts +3 -3
  15. package/dist/esm/components/IconButton.d.ts.map +1 -1
  16. package/dist/esm/components/IconButton.js +9 -12
  17. package/dist/esm/components/IconButton.js.map +1 -1
  18. package/dist/esm/components/NewDropdown.d.ts +1 -1
  19. package/dist/esm/components/NewDropdown.d.ts.map +1 -1
  20. package/dist/esm/components/index.d.ts +1 -1
  21. package/dist/esm/components/index.d.ts.map +1 -1
  22. package/dist/esm/components/index.js +0 -1
  23. package/dist/esm/components/index.js.map +1 -1
  24. package/dist/esm/stories/DataTable.stories.d.ts.map +1 -1
  25. package/dist/esm/stories/DataTable.stories.js +1 -1
  26. package/dist/esm/stories/DataTable.stories.js.map +1 -1
  27. package/dist/esm/stories/IconButton.stories.d.ts +11 -2
  28. package/dist/esm/stories/IconButton.stories.d.ts.map +1 -1
  29. package/dist/esm/stories/IconButton.stories.js +0 -3
  30. package/dist/esm/stories/IconButton.stories.js.map +1 -1
  31. package/dist/esm/stories/Item.stories.d.ts.map +1 -1
  32. package/dist/esm/stories/Item.stories.js +24 -18
  33. package/dist/esm/stories/Item.stories.js.map +1 -1
  34. package/dist/esm/stories/Tabs.stories.d.ts.map +1 -1
  35. package/dist/esm/stories/Tabs.stories.js.map +1 -1
  36. package/dist/sparkle.css +0 -106
  37. package/package.json +1 -1
  38. package/src/components/Breadcrumbs.tsx +26 -19
  39. package/src/components/Button.tsx +4 -4
  40. package/src/components/DataTable.tsx +22 -15
  41. package/src/components/IconButton.tsx +44 -46
  42. package/src/components/NewDropdown.tsx +1 -1
  43. package/src/components/index.ts +1 -1
  44. package/src/stories/DataTable.stories.tsx +6 -3
  45. package/src/stories/IconButton.stories.tsx +0 -3
  46. package/src/stories/Item.stories.tsx +70 -52
  47. package/src/stories/Tabs.stories.tsx +6 -1
  48. package/dist/esm/components/DropdownMenu.d.ts +0 -59
  49. package/dist/esm/components/DropdownMenu.d.ts.map +0 -1
  50. package/dist/esm/components/DropdownMenu.js +0 -214
  51. package/dist/esm/components/DropdownMenu.js.map +0 -1
  52. package/dist/esm/stories/DropdownMenu.stories.d.ts +0 -9
  53. package/dist/esm/stories/DropdownMenu.stories.d.ts.map +0 -1
  54. package/dist/esm/stories/DropdownMenu.stories.js +0 -223
  55. package/dist/esm/stories/DropdownMenu.stories.js.map +0 -1
  56. package/src/components/DropdownMenu.tsx +0 -521
  57. package/src/stories/DropdownMenu.stories.tsx +0 -518
@@ -1,518 +0,0 @@
1
- import type { Meta } from "@storybook/react";
2
- import React, { useState } from "react";
3
-
4
- import {
5
- Avatar,
6
- Button,
7
- ChatBubbleBottomCenterTextIcon,
8
- ClipboardIcon,
9
- DocumentDuplicateIcon,
10
- DropdownMenu,
11
- EyeIcon,
12
- ListAddIcon,
13
- ListIcon,
14
- ListRemoveIcon,
15
- LockIcon,
16
- PencilSquareIcon,
17
- PlanetIcon,
18
- PlusIcon,
19
- RobotIcon,
20
- Searchbar,
21
- SliderToggle,
22
- TrashIcon,
23
- UserGroupIcon,
24
- } from "../index_with_tw_base";
25
-
26
- const meta = {
27
- title: "Components/DropdownMenu",
28
- component: DropdownMenu,
29
- } satisfies Meta<typeof DropdownMenu>;
30
-
31
- export default meta;
32
-
33
- export const DropdownExample = () => {
34
- const [inputValue, setInputValue] = useState("");
35
-
36
- const handleChange = (value: string) => {
37
- setInputValue(value);
38
- };
39
-
40
- const [isToggled, setIsToggled] = useState(false);
41
-
42
- const handleToggle = () => {
43
- setIsToggled((prevState) => !prevState);
44
- };
45
-
46
- return (
47
- <>
48
- <div className="s-flex s-gap-6">
49
- <div className="s-text-sm">Action</div>
50
- <DropdownMenu>
51
- <DropdownMenu.Button
52
- label="Action"
53
- onClick={() => console.log("CLICK")}
54
- />
55
- <DropdownMenu.Items width={220}>
56
- <DropdownMenu.SectionHeader label="Edition" />
57
- <DropdownMenu.Item
58
- label="Edit"
59
- link={{ href: "#" }}
60
- icon={PencilSquareIcon}
61
- />
62
- <DropdownMenu.Item
63
- label="Duplicate (New)"
64
- link={{ href: "#" }}
65
- icon={ClipboardIcon}
66
- />
67
- <DropdownMenu.Item
68
- label="Archive"
69
- link={{ href: "#" }}
70
- icon={TrashIcon}
71
- variant="warning"
72
- />
73
- <DropdownMenu.Item
74
- label="Dust site"
75
- link={{ href: "https://dust.tt", target: "_blank" }}
76
- icon={EyeIcon}
77
- />
78
- <DropdownMenu.SectionHeader label="Sharing" />
79
- <DropdownMenu.Item
80
- label="Company Assistant"
81
- link={{ href: "#" }}
82
- icon={PlanetIcon}
83
- />
84
- <DropdownMenu.Item
85
- label="Shared Assistant"
86
- link={{ href: "#" }}
87
- selected
88
- icon={UserGroupIcon}
89
- />
90
- <DropdownMenu.Item
91
- label="Personal Assistant"
92
- link={{ href: "#" }}
93
- icon={LockIcon}
94
- />
95
- <DropdownMenu.SectionHeader label="My Assistants" />
96
- <DropdownMenu.Item
97
- label="Add to my list"
98
- link={{ href: "#" }}
99
- icon={ListAddIcon}
100
- />
101
- <DropdownMenu.Item
102
- label="Remove from my list"
103
- link={{ href: "#" }}
104
- icon={ListRemoveIcon}
105
- />
106
- </DropdownMenu.Items>
107
- </DropdownMenu>
108
- </div>
109
- <div className="s-h-12" />
110
-
111
- <div className="s-flex s-gap-6 s-pb-8">
112
- <div className="s-text-sm">Custom Dropdown:</div>
113
- <DropdownMenu>
114
- <DropdownMenu.Button>
115
- <Button label="Advanced settings" variant="outline" size="sm" />
116
- </DropdownMenu.Button>
117
- <DropdownMenu.Items width={300} overflow="visible">
118
- <div className="s-flex s-flex-col s-gap-4">
119
- <div className="s-flex s-flex-row s-items-center s-gap-2">
120
- <div className="s-grow s-text-sm s-text-element-900">
121
- Model selection:
122
- </div>
123
- <DropdownMenu>
124
- <DropdownMenu.Button>
125
- <Button label="GPT4" variant="outline" size="sm" />
126
- </DropdownMenu.Button>
127
- <DropdownMenu.Items origin="topRight">
128
- {["GPT4", "GPT3", "GPT2", "GPT1"].map((item) => (
129
- <DropdownMenu.Item
130
- key={item}
131
- label={item}
132
- onClick={() => {
133
- // setGenerationSettings({
134
- // ...generationSettings,
135
- // model: item,
136
- // });
137
- }}
138
- />
139
- ))}
140
- </DropdownMenu.Items>
141
- </DropdownMenu>
142
- </div>
143
- <div className="s-flex s-flex-row s-items-center s-gap-2">
144
- <div className="s-grow s-text-sm s-text-element-900">
145
- Creativity level:
146
- </div>
147
- <DropdownMenu>
148
- <DropdownMenu.Button>
149
- <Button label="Balanced" variant="outline" size="sm" />
150
- </DropdownMenu.Button>
151
- <DropdownMenu.Items origin="topRight">
152
- {["Deterministic", "Factual", "Balanced", "Creative"].map(
153
- (item) => (
154
- <DropdownMenu.Item
155
- key={item}
156
- label={item}
157
- onClick={() => {
158
- // setGenerationSettings({
159
- // ...generationSettings,
160
- // model: item,
161
- // });
162
- }}
163
- />
164
- )
165
- )}
166
- </DropdownMenu.Items>
167
- </DropdownMenu>
168
- </div>
169
- </div>
170
- </DropdownMenu.Items>
171
- </DropdownMenu>
172
- </div>
173
-
174
- <div className="s-flex s-gap-6">
175
- <div className="s-text-sm">Assistant selector menu example:</div>
176
- <DropdownMenu>
177
- {({ close }) => (
178
- <>
179
- <DropdownMenu.Button icon={RobotIcon} />
180
- <DropdownMenu.Items
181
- width={240}
182
- origin="topRight"
183
- topBar={
184
- <div className="s-flex s-flex-grow s-flex-row s-border-b s-border-structure-50 s-p-2">
185
- <Searchbar
186
- placeholder="Placeholder"
187
- size="xs"
188
- name="input"
189
- value={inputValue}
190
- onChange={handleChange}
191
- className="s-w-full"
192
- ></Searchbar>
193
- </div>
194
- }
195
- bottomBar={
196
- <div className="s-flex s-border-t s-border-structure-50 s-p-2">
197
- <Button
198
- label="Manage"
199
- variant="outline"
200
- size="xs"
201
- icon={ListIcon}
202
- />
203
- <div className="s-flex-grow" />
204
- <Button
205
- label="New"
206
- variant="outline"
207
- size="xs"
208
- icon={PlusIcon}
209
- onClick={close}
210
- />
211
- </div>
212
- }
213
- >
214
- <DropdownMenu.Item
215
- label="@gpt4"
216
- visual="https://dust.tt/static/systemavatar/gpt4_avatar_full.png"
217
- />
218
- <DropdownMenu.Item
219
- label="@slack"
220
- visual="https://dust.tt/static/systemavatar/slack_avatar_full.png"
221
- />
222
- <DropdownMenu.Item
223
- label="@gpt4"
224
- visual="https://dust.tt/static/systemavatar/gpt4_avatar_full.png"
225
- />
226
- <DropdownMenu.Item
227
- label="@slack"
228
- visual="https://dust.tt/static/systemavatar/slack_avatar_full.png"
229
- />
230
- <DropdownMenu.Item
231
- label="@gpt4"
232
- visual="https://dust.tt/static/systemavatar/gpt4_avatar_full.png"
233
- />
234
- <DropdownMenu.Item
235
- label="@slack"
236
- visual="https://dust.tt/static/systemavatar/slack_avatar_full.png"
237
- />
238
- <DropdownMenu.Item
239
- label="@gpt4"
240
- visual="https://dust.tt/static/systemavatar/gpt4_avatar_full.png"
241
- />
242
- <DropdownMenu.Item
243
- label="@slack"
244
- visual="https://dust.tt/static/systemavatar/slack_avatar_full.png"
245
- />
246
- <DropdownMenu.Item
247
- label="@gpt4"
248
- visual="https://dust.tt/static/systemavatar/gpt4_avatar_full.png"
249
- />
250
- <DropdownMenu.Item
251
- label="@slack"
252
- visual="https://dust.tt/static/systemavatar/slack_avatar_full.png"
253
- />
254
- <DropdownMenu.Item
255
- label="@gpt4"
256
- visual="https://dust.tt/static/systemavatar/gpt4_avatar_full.png"
257
- />
258
- <DropdownMenu.Item
259
- label="@slack"
260
- visual="https://dust.tt/static/systemavatar/slack_avatar_full.png"
261
- />
262
- <DropdownMenu.Item
263
- label="@gpt4"
264
- visual="https://dust.tt/static/systemavatar/gpt4_avatar_full.png"
265
- />
266
- <DropdownMenu.Item
267
- label="@slack"
268
- visual="https://dust.tt/static/systemavatar/slack_avatar_full.png"
269
- />
270
- <DropdownMenu.Item
271
- label="@gpt4"
272
- visual="https://dust.tt/static/systemavatar/gpt4_avatar_full.png"
273
- />
274
- <DropdownMenu.Item
275
- label="@slack"
276
- visual="https://dust.tt/static/systemavatar/slack_avatar_full.png"
277
- />
278
- <DropdownMenu.Item
279
- label="@gpt4"
280
- visual="https://dust.tt/static/systemavatar/gpt4_avatar_full.png"
281
- />
282
- <DropdownMenu.Item
283
- label="@slack"
284
- visual="https://dust.tt/static/systemavatar/slack_avatar_full.png"
285
- />
286
- </DropdownMenu.Items>
287
- </>
288
- )}
289
- </DropdownMenu>
290
- </div>
291
- <div className="s-h-12" />
292
- <div className="s-flex s-gap-6">
293
- <div className="s-text-sm">Long items small width</div>
294
- <DropdownMenu>
295
- <DropdownMenu.Button
296
- icon={ChatBubbleBottomCenterTextIcon}
297
- tooltip="Moonlab"
298
- tooltipPosition="bottom"
299
- />
300
- <DropdownMenu.Items origin="topLeft" width={120}>
301
- <DropdownMenu.Item label="item 1 is longish" link={{ href: "#" }} />
302
- <DropdownMenu.Item
303
- label="item 2 is also longer"
304
- link={{ href: "#" }}
305
- />
306
- <DropdownMenu.Item
307
- label="item with a long title because it is long"
308
- link={{ href: "#" }}
309
- />
310
- </DropdownMenu.Items>
311
- </DropdownMenu>
312
- </div>
313
- <div className="s-h-12" />
314
- <div className="s-flex s-gap-6">
315
- <div className="s-text-sm">Top right menu</div>
316
- <DropdownMenu>
317
- <DropdownMenu.Button label="Moonlab" icon={PlanetIcon} />
318
- <DropdownMenu.Items>
319
- <DropdownMenu.Item label="item 1" link={{ href: "#" }} />
320
- <DropdownMenu.Item label="item 2" link={{ href: "#" }} />
321
- </DropdownMenu.Items>
322
- </DropdownMenu>
323
- </div>
324
- <div className="s-h-12" />
325
- <div className="s-flex s-gap-6">
326
- <div className="s-text-sm">Top right menu</div>
327
- <DropdownMenu>
328
- <DropdownMenu.Button label="Moonlab" icon={PlanetIcon} size="md" />
329
- <DropdownMenu.Items>
330
- <DropdownMenu.Item label="item 1" link={{ href: "#" }} />
331
- <DropdownMenu.Item label="item 2" link={{ href: "#" }} />
332
- </DropdownMenu.Items>
333
- </DropdownMenu>
334
- </div>
335
- <div className="s-h-12" />
336
- <div className="s-flex s-gap-6">
337
- <div className="s-text-sm">Top left menu</div>
338
- <DropdownMenu>
339
- <DropdownMenu.Button
340
- icon={ChatBubbleBottomCenterTextIcon}
341
- tooltip="Moonlab"
342
- tooltipPosition="bottom"
343
- />
344
- <DropdownMenu.Items origin="topLeft">
345
- <DropdownMenu.Item label="item 1" link={{ href: "#" }} />
346
- <DropdownMenu.Item label="item 2" link={{ href: "#" }} />
347
- <DropdownMenu.Item
348
- label="item 2 with a long title because it is long"
349
- link={{ href: "#" }}
350
- />
351
- </DropdownMenu.Items>
352
- </DropdownMenu>
353
- </div>
354
- <div className="s-h-12" />
355
- <div className="s-flex s-gap-6">
356
- <div className="s-text-sm">Bottom left menu</div>
357
- <DropdownMenu>
358
- <DropdownMenu.Button icon={ChatBubbleBottomCenterTextIcon} />
359
- <DropdownMenu.Items origin="bottomLeft">
360
- <DropdownMenu.Item label="item 1" link={{ href: "#" }} />
361
- <DropdownMenu.Item label="item 2" link={{ href: "#" }} />
362
- </DropdownMenu.Items>
363
- </DropdownMenu>
364
- </div>
365
- <div className="s-h-12" />
366
- <div className="s-flex s-gap-6">
367
- <div className="s-text-sm">Bottom right menu</div>
368
- <DropdownMenu>
369
- <DropdownMenu.Button icon={ChatBubbleBottomCenterTextIcon} />
370
- <DropdownMenu.Items origin="bottomRight">
371
- <DropdownMenu.Item label="item 1" link={{ href: "#" }} />
372
- <DropdownMenu.Item label="item 2" link={{ href: "#" }} />
373
- </DropdownMenu.Items>
374
- </DropdownMenu>
375
- </div>
376
- <div className="s-h-12" />
377
- <div className="s-flex s-gap-6">
378
- <div className="s-text-sm">Disabled</div>
379
- <DropdownMenu>
380
- <DropdownMenu.Button
381
- label="Moonlab"
382
- icon={ChatBubbleBottomCenterTextIcon}
383
- disabled
384
- />
385
- <DropdownMenu.Items>
386
- <DropdownMenu.Item label="item 1" link={{ href: "#" }} />
387
- <DropdownMenu.Item label="item 2" link={{ href: "#" }} />
388
- </DropdownMenu.Items>
389
- </DropdownMenu>
390
- </div>
391
- <div className="s-h-12" />
392
- <div className="s-flex s-gap-6">
393
- <div className="s-text-sm">Type = Select</div>
394
- <DropdownMenu>
395
- <DropdownMenu.Button type="select" label="Every 6 months" />
396
- <DropdownMenu.Items origin="topRight">
397
- <DropdownMenu.Item label="item 1" link={{ href: "#" }} />
398
- <DropdownMenu.Item label="item 2" link={{ href: "#" }} />
399
- </DropdownMenu.Items>
400
- </DropdownMenu>
401
- </div>
402
-
403
- <div className="s-h-12" />
404
- <div className="s-flex s-gap-6">
405
- <div className="s-text-sm">With custom button</div>
406
- <DropdownMenu>
407
- <DropdownMenu.Button>
408
- <Avatar name="Dust" size="lg" onClick={() => ""} />
409
- </DropdownMenu.Button>
410
- <DropdownMenu.Items origin="topRight">
411
- {["item 1", "item 2", "item 3"].map((item) => (
412
- <DropdownMenu.Item label={item} link={{ href: "#" }} key={item} />
413
- ))}
414
- </DropdownMenu.Items>
415
- </DropdownMenu>
416
- </div>
417
- <div className="s-h-12" />
418
- <div className="s-flex s-gap-6">
419
- <div className="s-text-sm">With visuals in items</div>
420
- <DropdownMenu>
421
- <DropdownMenu.Button icon={RobotIcon} />
422
- <DropdownMenu.Items origin="topRight">
423
- <DropdownMenu.Item
424
- label="@gpt4"
425
- visual="https://dust.tt/static/systemavatar/gpt4_avatar_full.png"
426
- />
427
- <DropdownMenu.Item
428
- label="@slack"
429
- visual="https://dust.tt/static/systemavatar/slack_avatar_full.png"
430
- />
431
- </DropdownMenu.Items>
432
- </DropdownMenu>
433
- </div>
434
- <div className="s-h-12" />
435
- <div className="s-flex s-gap-6">
436
- <div className="s-text-sm">With custom menu</div>
437
- <DropdownMenu>
438
- <DropdownMenu.Button icon={RobotIcon} />
439
- <DropdownMenu.Items origin="topRight">
440
- <div className="s-flex s-flex-col s-gap-2">
441
- testing custom stuff
442
- <Button label="hello" />
443
- <SliderToggle selected={isToggled} onClick={handleToggle} />
444
- </div>
445
- </DropdownMenu.Items>
446
- </DropdownMenu>
447
- <DropdownMenu>
448
- <DropdownMenu.Button>
449
- <Button
450
- variant="outline"
451
- size="xs"
452
- icon={EyeIcon}
453
- label="See the error"
454
- />
455
- </DropdownMenu.Button>
456
- <div className="relative bottom-6 z-30">
457
- <DropdownMenu.Items origin="topLeft" width={320}>
458
- <div className="text-sm font-normal text-warning-800">
459
- Hello error messange!
460
- </div>
461
- <div className="self-end">
462
- <Button
463
- variant="outline"
464
- size="xs"
465
- icon={DocumentDuplicateIcon}
466
- label="Copy"
467
- onClick={() =>
468
- void navigator.clipboard.writeText("Hello error messange!")
469
- }
470
- />
471
- </div>
472
- </DropdownMenu.Items>
473
- </div>
474
- </DropdownMenu>
475
- </div>
476
- <div className="s-h-12" />
477
- <div className="s-flex s-gap-6">
478
- <div className="s-text-sm">With nested dropdown</div>
479
- <DropdownMenu>
480
- <DropdownMenu.Button icon={RobotIcon} />
481
- <DropdownMenu.Items origin="topRight" overflow="visible">
482
- <DropdownMenu>
483
- <DropdownMenu.Button label="Nested" />
484
- <DropdownMenu.Items origin="topRight">
485
- <DropdownMenu.Item label="item 1" link={{ href: "#" }} />
486
- <DropdownMenu.Item label="item 2" link={{ href: "#" }} />
487
- </DropdownMenu.Items>
488
- </DropdownMenu>
489
- </DropdownMenu.Items>
490
- </DropdownMenu>
491
- </div>
492
- <div className="w-full s-flex s-justify-end s-gap-6">
493
- <div className="s-text-sm">Auto menu</div>
494
- <DropdownMenu>
495
- <DropdownMenu.Button label="Moonlab" icon={PlanetIcon} />
496
- <DropdownMenu.Items origin="auto">
497
- <DropdownMenu.Item label="item 1" link={{ href: "#" }} />
498
- <DropdownMenu.Item label="item 2" link={{ href: "#" }} />
499
- </DropdownMenu.Items>
500
- </DropdownMenu>
501
- </div>
502
-
503
- <div className="s-flex s-gap-6">
504
- <div className="s-text-sm">Don't close on escape or space</div>
505
- <DropdownMenu>
506
- <DropdownMenu.Button icon={RobotIcon} />
507
- <DropdownMenu.Items
508
- origin="topRight"
509
- onKeyDown={(e) => e.preventDefault()}
510
- >
511
- <DropdownMenu.Item label="@gpt4" />
512
- <DropdownMenu.Item label="@slack" />
513
- </DropdownMenu.Items>
514
- </DropdownMenu>
515
- </div>
516
- </>
517
- );
518
- };