@dust-tt/sparkle 0.2.617-rc-1 → 0.2.618-rc-1

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 (104) hide show
  1. package/dist/cjs/index.js +1 -1
  2. package/dist/esm/components/Avatar.d.ts +1 -1
  3. package/dist/esm/components/Avatar.js +4 -4
  4. package/dist/esm/components/Avatar.js.map +1 -1
  5. package/dist/esm/components/Button.d.ts +3 -0
  6. package/dist/esm/components/Button.d.ts.map +1 -1
  7. package/dist/esm/components/Button.js +21 -10
  8. package/dist/esm/components/Button.js.map +1 -1
  9. package/dist/esm/components/Card.d.ts +1 -0
  10. package/dist/esm/components/Card.d.ts.map +1 -1
  11. package/dist/esm/components/ConversationMessage.d.ts +4 -0
  12. package/dist/esm/components/ConversationMessage.d.ts.map +1 -1
  13. package/dist/esm/components/ConversationMessage.js +9 -4
  14. package/dist/esm/components/ConversationMessage.js.map +1 -1
  15. package/dist/esm/components/DataTable.d.ts.map +1 -1
  16. package/dist/esm/components/DataTable.js +12 -50
  17. package/dist/esm/components/DataTable.js.map +1 -1
  18. package/dist/esm/components/Input.d.ts.map +1 -1
  19. package/dist/esm/components/Input.js +6 -2
  20. package/dist/esm/components/Input.js.map +1 -1
  21. package/dist/esm/components/NavigationList.d.ts +4 -1
  22. package/dist/esm/components/NavigationList.d.ts.map +1 -1
  23. package/dist/esm/components/NavigationList.js +2 -2
  24. package/dist/esm/components/NavigationList.js.map +1 -1
  25. package/dist/esm/components/ScrollArea.d.ts +1 -0
  26. package/dist/esm/components/ScrollArea.d.ts.map +1 -1
  27. package/dist/esm/components/ScrollArea.js +7 -4
  28. package/dist/esm/components/ScrollArea.js.map +1 -1
  29. package/dist/esm/components/Spinner.d.ts +1 -1
  30. package/dist/esm/components/Spinner.js +7 -7
  31. package/dist/esm/components/Spinner.js.map +1 -1
  32. package/dist/esm/components/TextArea.d.ts.map +1 -1
  33. package/dist/esm/components/TextArea.js +7 -3
  34. package/dist/esm/components/TextArea.js.map +1 -1
  35. package/dist/esm/components/ToolCard.d.ts +6 -0
  36. package/dist/esm/components/ToolCard.d.ts.map +1 -1
  37. package/dist/esm/components/ToolCard.js +18 -11
  38. package/dist/esm/components/ToolCard.js.map +1 -1
  39. package/dist/esm/components/Tooltip.d.ts.map +1 -1
  40. package/dist/esm/components/Tooltip.js.map +1 -1
  41. package/dist/esm/components/WindowUtility.d.ts +3 -2
  42. package/dist/esm/components/WindowUtility.d.ts.map +1 -1
  43. package/dist/esm/components/WindowUtility.js +25 -17
  44. package/dist/esm/components/WindowUtility.js.map +1 -1
  45. package/dist/esm/components/markdown/CodeBlock.d.ts +2 -1
  46. package/dist/esm/components/markdown/CodeBlock.d.ts.map +1 -1
  47. package/dist/esm/components/markdown/CodeBlock.js +9 -2
  48. package/dist/esm/components/markdown/CodeBlock.js.map +1 -1
  49. package/dist/esm/icons/app/Mic.d.ts +5 -0
  50. package/dist/esm/icons/app/Mic.d.ts.map +1 -0
  51. package/dist/esm/icons/app/Mic.js +6 -0
  52. package/dist/esm/icons/app/Mic.js.map +1 -0
  53. package/dist/esm/icons/app/index.d.ts +1 -0
  54. package/dist/esm/icons/app/index.d.ts.map +1 -1
  55. package/dist/esm/icons/app/index.js +1 -0
  56. package/dist/esm/icons/app/index.js.map +1 -1
  57. package/dist/esm/icons/src/app/mic.svg +3 -0
  58. package/dist/esm/index.d.ts +1 -0
  59. package/dist/esm/index.d.ts.map +1 -1
  60. package/dist/esm/index.js +1 -0
  61. package/dist/esm/index.js.map +1 -1
  62. package/dist/esm/stories/Avatar.stories.js +4 -4
  63. package/dist/esm/stories/CodeBlock.stories.d.ts +17 -0
  64. package/dist/esm/stories/CodeBlock.stories.d.ts.map +1 -0
  65. package/dist/esm/stories/CodeBlock.stories.js +125 -0
  66. package/dist/esm/stories/CodeBlock.stories.js.map +1 -0
  67. package/dist/esm/stories/ConversationMessage.stories.d.ts.map +1 -1
  68. package/dist/esm/stories/ConversationMessage.stories.js +3 -3
  69. package/dist/esm/stories/ConversationMessage.stories.js.map +1 -1
  70. package/dist/esm/stories/MultiPageDialog.stories.js +1 -1
  71. package/dist/esm/stories/MultiPageDialog.stories.js.map +1 -1
  72. package/dist/esm/stories/Playground.stories.d.ts.map +1 -1
  73. package/dist/esm/stories/Playground.stories.js +166 -29
  74. package/dist/esm/stories/Playground.stories.js.map +1 -1
  75. package/dist/esm/stories/Spinner.stories.js +3 -3
  76. package/dist/esm/stories/ToolCard.stories.d.ts.map +1 -1
  77. package/dist/esm/stories/ToolCard.stories.js +14 -6
  78. package/dist/esm/stories/ToolCard.stories.js.map +1 -1
  79. package/dist/sparkle.css +100 -0
  80. package/package.json +1 -1
  81. package/src/components/Avatar.tsx +4 -4
  82. package/src/components/Button.tsx +35 -7
  83. package/src/components/ConversationMessage.tsx +26 -7
  84. package/src/components/DataTable.tsx +7 -46
  85. package/src/components/Input.tsx +5 -2
  86. package/src/components/NavigationList.tsx +7 -2
  87. package/src/components/ScrollArea.tsx +9 -3
  88. package/src/components/Spinner.tsx +7 -7
  89. package/src/components/TextArea.tsx +7 -4
  90. package/src/components/ToolCard.tsx +60 -35
  91. package/src/components/Tooltip.tsx +49 -38
  92. package/src/components/WindowUtility.tsx +11 -18
  93. package/src/components/markdown/CodeBlock.tsx +10 -0
  94. package/src/icons/app/Mic.tsx +18 -0
  95. package/src/icons/app/index.ts +1 -0
  96. package/src/icons/src/app/mic.svg +3 -0
  97. package/src/index.ts +1 -0
  98. package/src/stories/Avatar.stories.tsx +4 -4
  99. package/src/stories/CodeBlock.stories.tsx +361 -0
  100. package/src/stories/ConversationMessage.stories.tsx +6 -0
  101. package/src/stories/MultiPageDialog.stories.tsx +1 -1
  102. package/src/stories/Playground.stories.tsx +311 -56
  103. package/src/stories/Spinner.stories.tsx +3 -3
  104. package/src/stories/ToolCard.stories.tsx +49 -35
@@ -1,34 +1,171 @@
1
- import React from "react";
2
- import { Button, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuShortcut, DropdownMenuTrigger, Label, Page, } from "../components";
3
- import { ActionMoonIcon, ActionSunIcon, LightModeIcon } from "../icons";
1
+ import { __read } from "tslib";
2
+ import React, { useEffect, useRef, useState } from "react";
3
+ import { ArrowUpIcon, AttachmentIcon, BoltIcon, Button, cn, MicIcon, PlusIcon, RainbowEffect, RobotIcon, SquareIcon, } from "../index_with_tw_base";
4
4
  export default {
5
- title: "Playground/Demo",
5
+ title: "Playground/Playground",
6
6
  };
7
7
  export var Demo = function () {
8
- return (React.createElement("div", { className: "s-flex s-h-full s-w-full s-cursor-pointer s-flex-col s-gap-2" },
9
- React.createElement(Page.Layout, { direction: "horizontal" },
10
- React.createElement(Page.Vertical, { sizing: "grow", align: "stretch", gap: "xs" },
11
- React.createElement(Label, null, "Theme"),
12
- React.createElement(DropdownMenu, null,
13
- React.createElement(DropdownMenuTrigger, { asChild: true },
14
- React.createElement(Button, { variant: "outline", icon: LightModeIcon, label: "light", isSelect: true, className: "s-w-fit" })),
15
- React.createElement(DropdownMenuContent, null,
16
- React.createElement(DropdownMenuItem, { icon: ActionSunIcon, label: "Light" }),
17
- React.createElement(DropdownMenuItem, { icon: ActionMoonIcon, label: "Dark" }),
18
- React.createElement(DropdownMenuItem, { icon: LightModeIcon, label: "System" })))),
19
- React.createElement(Page.Vertical, { sizing: "grow", align: "stretch", gap: "xs" },
20
- React.createElement(Label, null, "Keyboard Shortcuts"),
21
- React.createElement(DropdownMenu, null,
22
- React.createElement(DropdownMenuTrigger, { asChild: true },
23
- React.createElement("div", { className: "s-copy-sm s-flex s-items-center s-gap-2" },
24
- "Send message",
25
- React.createElement(Button, { variant: "outline", label: "Cmd+Enter (\u2318+\u21B5)", isSelect: true, className: "s-w-fit" }))),
26
- React.createElement(DropdownMenuContent, null,
27
- React.createElement(DropdownMenuItem, null,
28
- "Send message when pressing Enter",
29
- React.createElement(DropdownMenuShortcut, null, "\u21B5")),
30
- React.createElement(DropdownMenuItem, null,
31
- "Send message when pressing Cmd+Enter",
32
- React.createElement(DropdownMenuShortcut, null, "\u2318 + \u21B5"))))))));
8
+ var _a = __read(useState(false), 2), isFocused = _a[0], setIsFocused = _a[1];
9
+ var _b = __read(useState("idle"), 2), recordState = _b[0], setRecordState = _b[1];
10
+ var _c = __read(useState(false), 2), isPressAndHold = _c[0], setIsPressAndHold = _c[1];
11
+ var _d = __read(useState(0), 2), elapsedSeconds = _d[0], setElapsedSeconds = _d[1];
12
+ var divRef = useRef(null);
13
+ var recordButtonRef = useRef(null);
14
+ var mouseDownTimeRef = useRef(0);
15
+ useEffect(function () {
16
+ var handleClickOutside = function (event) {
17
+ if (divRef.current && !divRef.current.contains(event.target)) {
18
+ setIsFocused(false);
19
+ }
20
+ };
21
+ document.addEventListener("click", handleClickOutside);
22
+ return function () {
23
+ document.removeEventListener("click", handleClickOutside);
24
+ };
25
+ }, []);
26
+ // Timer effect for recording and press and hold states
27
+ useEffect(function () {
28
+ var interval = null;
29
+ if (recordState === "pressAndHold" || recordState === "recording") {
30
+ interval = setInterval(function () {
31
+ setElapsedSeconds(function (prev) { return prev + 1; });
32
+ }, 1000);
33
+ }
34
+ else {
35
+ // Reset timer when not recording or press and hold
36
+ setElapsedSeconds(0);
37
+ }
38
+ return function () {
39
+ if (interval) {
40
+ clearInterval(interval);
41
+ }
42
+ };
43
+ }, [recordState]);
44
+ var handleFocus = function () {
45
+ setIsFocused(true);
46
+ };
47
+ var formatTime = function (seconds) {
48
+ var mins = Math.floor(seconds / 60);
49
+ var secs = seconds % 60;
50
+ return "".concat(mins, ":").concat(secs.toString().padStart(2, "0"));
51
+ };
52
+ var handleRecordMouseDown = function () {
53
+ console.log("MouseDown - recordState:", recordState);
54
+ mouseDownTimeRef.current = Date.now();
55
+ if (recordState === "idle") {
56
+ setRecordState("pressAndHold");
57
+ setIsPressAndHold(true);
58
+ console.log("Set to pressAndHold, isPressAndHold = true");
59
+ }
60
+ };
61
+ var handleRecordMouseUp = function () {
62
+ var holdDuration = Date.now() - mouseDownTimeRef.current;
63
+ console.log("MouseUp - recordState:", recordState, "holdDuration:", holdDuration);
64
+ if (recordState === "pressAndHold") {
65
+ setRecordState("idle");
66
+ console.log("Set to idle from pressAndHold");
67
+ // If held for more than 200ms, it was a press-and-hold, so ignore the upcoming click
68
+ if (holdDuration > 200) {
69
+ console.log("Was press-and-hold, keeping isPressAndHold = true");
70
+ // Keep isPressAndHold true to ignore the click
71
+ }
72
+ else {
73
+ console.log("Was quick click, setting isPressAndHold = false");
74
+ setIsPressAndHold(false);
75
+ // For quick clicks, directly start recording
76
+ console.log("Starting recording from quick click");
77
+ setRecordState("recording");
78
+ }
79
+ }
80
+ };
81
+ var handleRecordClick = function () {
82
+ console.log("Click - recordState:", recordState, "isPressAndHold:", isPressAndHold);
83
+ // Handle stop recording
84
+ if (recordState === "recording") {
85
+ console.log("Setting to idle (stop recording)");
86
+ setRecordState("idle");
87
+ return;
88
+ }
89
+ // Only handle click if we're not in a press-and-hold sequence
90
+ if (!isPressAndHold) {
91
+ if (recordState === "idle") {
92
+ console.log("Setting to recording");
93
+ setRecordState("recording");
94
+ }
95
+ }
96
+ else {
97
+ console.log("Ignoring click - was press and hold");
98
+ // Reset the flag after ignoring the click
99
+ setIsPressAndHold(false);
100
+ }
101
+ };
102
+ var handleRecordMouseLeave = function () {
103
+ if (recordState === "pressAndHold") {
104
+ setRecordState("idle");
105
+ setIsPressAndHold(false);
106
+ }
107
+ };
108
+ return (React.createElement("div", { className: "s-flex s-h-[600px] s-w-full s-items-end s-justify-center s-border s-border-warning/20 sm:s-p-0 md:s-p-6" },
109
+ React.createElement("div", { className: "s-flex s-w-full s-max-w-[900px] s-flex-1 s-p-0" },
110
+ React.createElement(RainbowEffect, { containerClassName: "s-w-full", className: "s-w-full", size: isFocused ? "large" : "medium" },
111
+ React.createElement("div", { ref: divRef, onClick: handleFocus, className: cn("s-relative s-flex s-w-full s-flex-row", "s-border s-border-border/0 s-bg-primary-50 s-transition-all md:s-rounded-3xl", isFocused
112
+ ? "s-border-border md:s-ring-2 md:s-ring-highlight-300 md:s-ring-offset-2"
113
+ : "") },
114
+ React.createElement("div", { className: "s-flex s-w-full s-flex-col" },
115
+ React.createElement("div", { className: "s-h-full s-w-full s-p-5" }, "Ask a question"),
116
+ React.createElement("div", { className: "s-flex s-w-full s-gap-2 s-p-4" },
117
+ React.createElement(Button, { variant: "outline", icon: PlusIcon, size: "sm", tooltip: "Attach a document", className: "md:s-hidden" }),
118
+ React.createElement("div", { className: "s-hidden s-gap-0 md:s-flex" },
119
+ React.createElement(Button, { variant: "ghost", icon: AttachmentIcon, size: "xs", tooltip: "Attach a document" }),
120
+ React.createElement(Button, { variant: "ghost", icon: BoltIcon, size: "xs", tooltip: "Add functionality" }),
121
+ React.createElement(Button, { variant: "ghost", icon: RobotIcon, size: "xs", tooltip: "Mention an Agent" })),
122
+ React.createElement("div", { className: "s-grow" }),
123
+ React.createElement("div", { className: "s-flex s-items-center s-gap-2 md:s-gap-1" },
124
+ React.createElement("div", { id: "Recording", className: cn("s-duration-600 s-flex s-items-center s-justify-end s-gap-2 s-overflow-hidden s-px-2 s-transition-all s-ease-in-out", recordState === "pressAndHold" ||
125
+ recordState === "recording"
126
+ ? "s-w-24 s-opacity-100"
127
+ : "s-w-6 s-opacity-0") },
128
+ React.createElement("div", { className: "s-heading-xs s-font-mono" }, formatTime(elapsedSeconds)),
129
+ React.createElement("div", { className: "s-flex s-h-5 s-items-center s-gap-0.5" },
130
+ React.createElement("div", { className: "s-h-[22%] s-min-h-1 s-w-0.5 s-rounded-full s-bg-muted-foreground" }),
131
+ React.createElement("div", { className: "s-h-[33%] s-min-h-1 s-w-0.5 s-rounded-full s-bg-muted-foreground" }),
132
+ React.createElement("div", { className: "s-h-[18%] s-min-h-1 s-w-0.5 s-rounded-full s-bg-muted-foreground" }),
133
+ React.createElement("div", { className: "s-h-[64%] s-min-h-1 s-w-0.5 s-rounded-full s-bg-muted-foreground" }),
134
+ React.createElement("div", { className: "s-h-[98%] s-min-h-1 s-w-0.5 s-rounded-full s-bg-muted-foreground" }),
135
+ React.createElement("div", { className: "s-h-[56%] s-min-h-1 s-w-0.5 s-rounded-full s-bg-muted-foreground" }),
136
+ React.createElement("div", { className: "s-h-[6%] s-min-h-1 s-w-0.5 s-rounded-full s-bg-muted-foreground" }),
137
+ React.createElement("div", { className: "s-h-[34%] s-min-h-1 s-w-0.5 s-rounded-full s-bg-muted-foreground" }),
138
+ React.createElement("div", { className: "s-h-[76%] s-min-h-1 s-w-0.5 s-rounded-full s-bg-muted-foreground" }),
139
+ React.createElement("div", { className: "s-h-[46%] s-min-h-1 s-w-0.5 s-rounded-full s-bg-muted-foreground" }),
140
+ React.createElement("div", { className: "s-h-[12%] s-min-h-1 s-w-0.5 s-rounded-full s-bg-muted-foreground" }),
141
+ React.createElement("div", { className: "s-h-[22%] s-min-h-1 s-w-0.5 s-rounded-full s-bg-muted-foreground" }))),
142
+ React.createElement(Button, { id: recordState === "recording"
143
+ ? "Stop Recording Button"
144
+ : "Record Button", className: "s-hidden md:s-flex", ref: recordButtonRef, variant: recordState === "recording" ? "highlight" : "ghost", icon: recordState === "recording" ? SquareIcon : MicIcon, size: "xs", tooltip: recordState === "recording"
145
+ ? "Stop recording"
146
+ : recordState === "pressAndHold"
147
+ ? ""
148
+ : "Click, or Press & Hold to record", label: recordState === "recording" ? "Stop" : undefined, onClick: handleRecordClick, onMouseDown: recordState === "recording"
149
+ ? undefined
150
+ : handleRecordMouseDown, onMouseUp: recordState === "recording"
151
+ ? undefined
152
+ : handleRecordMouseUp, onMouseLeave: recordState === "recording"
153
+ ? undefined
154
+ : handleRecordMouseLeave }),
155
+ React.createElement(Button, { variant: "highlight", icon: ArrowUpIcon, size: "mini", tooltip: "Send message", isRounded: true, disabled: recordState === "recording", className: "s-hidden md:s-flex" }),
156
+ React.createElement(Button, { id: recordState === "recording"
157
+ ? "Stop Recording Button"
158
+ : "Record Button", className: "md:s-hidden", ref: recordButtonRef, variant: recordState === "recording" ? "highlight" : "ghost", icon: recordState === "recording" ? SquareIcon : MicIcon, size: "sm", tooltip: recordState === "recording"
159
+ ? "Stop recording"
160
+ : recordState === "pressAndHold"
161
+ ? ""
162
+ : "Click, or Press & Hold to record", label: recordState === "recording" ? "Stop" : undefined, onClick: handleRecordClick, onMouseDown: recordState === "recording"
163
+ ? undefined
164
+ : handleRecordMouseDown, onMouseUp: recordState === "recording"
165
+ ? undefined
166
+ : handleRecordMouseUp, onMouseLeave: recordState === "recording"
167
+ ? undefined
168
+ : handleRecordMouseLeave }),
169
+ React.createElement(Button, { variant: "highlight", icon: ArrowUpIcon, size: "sm", tooltip: "Send message", isRounded: true, disabled: recordState === "recording", className: "md:s-hidden" })))))))));
33
170
  };
34
171
  //# sourceMappingURL=Playground.stories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Playground.stories.js","sourceRoot":"","sources":["../../../src/stories/Playground.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EACL,MAAM,EACN,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,KAAK,EACL,IAAI,GACL,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE9E,eAAe;IACb,KAAK,EAAE,iBAAiB;CACzB,CAAC;AAEF,MAAM,CAAC,IAAM,IAAI,GAAG;IAClB,OAAO,CACL,6BAAK,SAAS,EAAC,8DAA8D;QAC3E,oBAAC,IAAI,CAAC,MAAM,IAAC,SAAS,EAAC,YAAY;YACjC,oBAAC,IAAI,CAAC,QAAQ,IAAC,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,SAAS,EAAC,GAAG,EAAC,IAAI;gBACnD,oBAAC,KAAK,gBAAc;gBACpB,oBAAC,YAAY;oBACX,oBAAC,mBAAmB,IAAC,OAAO;wBAC1B,oBAAC,MAAM,IACL,OAAO,EAAC,SAAS,EACjB,IAAI,EAAE,aAAa,EACnB,KAAK,EAAC,OAAO,EACb,QAAQ,QACR,SAAS,EAAC,SAAS,GACnB,CACkB;oBACtB,oBAAC,mBAAmB;wBAClB,oBAAC,gBAAgB,IAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAC,OAAO,GAAG;wBACvD,oBAAC,gBAAgB,IAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAC,MAAM,GAAG;wBACvD,oBAAC,gBAAgB,IAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAC,QAAQ,GAAG,CACpC,CACT,CACD;YAChB,oBAAC,IAAI,CAAC,QAAQ,IAAC,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,SAAS,EAAC,GAAG,EAAC,IAAI;gBACnD,oBAAC,KAAK,6BAA2B;gBACjC,oBAAC,YAAY;oBACX,oBAAC,mBAAmB,IAAC,OAAO;wBAC1B,6BAAK,SAAS,EAAC,yCAAyC;;4BAEtD,oBAAC,MAAM,IACL,OAAO,EAAC,SAAS,EACjB,KAAK,EAAC,2BAAiB,EACvB,QAAQ,QACR,SAAS,EAAC,SAAS,GACnB,CACE,CACc;oBACtB,oBAAC,mBAAmB;wBAClB,oBAAC,gBAAgB;;4BAEf,oBAAC,oBAAoB,iBAAyB,CAC7B;wBACnB,oBAAC,gBAAgB;;4BAEf,oBAAC,oBAAoB,0BAA6B,CACjC,CACC,CACT,CACD,CACJ,CACV,CACP,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"Playground.stories.js","sourceRoot":"","sources":["../../../src/stories/Playground.stories.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE3D,OAAO,EACL,WAAW,EACX,cAAc,EACd,QAAQ,EACR,MAAM,EACN,EAAE,EACF,OAAO,EACP,QAAQ,EACR,aAAa,EACb,SAAS,EACT,UAAU,GACX,MAAM,uBAAuB,CAAC;AAE/B,eAAe;IACb,KAAK,EAAE,uBAAuB;CAC/B,CAAC;AAEF,MAAM,CAAC,IAAM,IAAI,GAAG;IACZ,IAAA,KAAA,OAA4B,QAAQ,CAAC,KAAK,CAAC,IAAA,EAA1C,SAAS,QAAA,EAAE,YAAY,QAAmB,CAAC;IAC5C,IAAA,KAAA,OAAgC,QAAQ,CAE5C,MAAM,CAAC,IAAA,EAFF,WAAW,QAAA,EAAE,cAAc,QAEzB,CAAC;IACJ,IAAA,KAAA,OAAsC,QAAQ,CAAC,KAAK,CAAC,IAAA,EAApD,cAAc,QAAA,EAAE,iBAAiB,QAAmB,CAAC;IACtD,IAAA,KAAA,OAAsC,QAAQ,CAAC,CAAC,CAAC,IAAA,EAAhD,cAAc,QAAA,EAAE,iBAAiB,QAAe,CAAC;IACxD,IAAM,MAAM,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC5C,IAAM,eAAe,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAC;IACxD,IAAM,gBAAgB,GAAG,MAAM,CAAS,CAAC,CAAC,CAAC;IAE3C,SAAS,CAAC;QACR,IAAM,kBAAkB,GAAG,UAAC,KAAiB;YAC3C,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,EAAE,CAAC;gBACrE,YAAY,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;QACH,CAAC,CAAC;QAEF,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;QACvD,OAAO;YACL,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;QAC5D,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,uDAAuD;IACvD,SAAS,CAAC;QACR,IAAI,QAAQ,GAA0B,IAAI,CAAC;QAE3C,IAAI,WAAW,KAAK,cAAc,IAAI,WAAW,KAAK,WAAW,EAAE,CAAC;YAClE,QAAQ,GAAG,WAAW,CAAC;gBACrB,iBAAiB,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAC;YACxC,CAAC,EAAE,IAAI,CAAC,CAAC;QACX,CAAC;aAAM,CAAC;YACN,mDAAmD;YACnD,iBAAiB,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;QAED,OAAO;YACL,IAAI,QAAQ,EAAE,CAAC;gBACb,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,IAAM,WAAW,GAAG;QAClB,YAAY,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC,CAAC;IAEF,IAAM,UAAU,GAAG,UAAC,OAAe;QACjC,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QACtC,IAAM,IAAI,GAAG,OAAO,GAAG,EAAE,CAAC;QAC1B,OAAO,UAAG,IAAI,cAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAE,CAAC;IACvD,CAAC,CAAC;IAEF,IAAM,qBAAqB,GAAG;QAC5B,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,WAAW,CAAC,CAAC;QACrD,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACtC,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;YAC3B,cAAc,CAAC,cAAc,CAAC,CAAC;YAC/B,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC,CAAC;IAEF,IAAM,mBAAmB,GAAG;QAC1B,IAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC;QAC3D,OAAO,CAAC,GAAG,CACT,wBAAwB,EACxB,WAAW,EACX,eAAe,EACf,YAAY,CACb,CAAC;QACF,IAAI,WAAW,KAAK,cAAc,EAAE,CAAC;YACnC,cAAc,CAAC,MAAM,CAAC,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;YAC7C,qFAAqF;YACrF,IAAI,YAAY,GAAG,GAAG,EAAE,CAAC;gBACvB,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;gBACjE,+CAA+C;YACjD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;gBAC/D,iBAAiB,CAAC,KAAK,CAAC,CAAC;gBACzB,6CAA6C;gBAC7C,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;gBACnD,cAAc,CAAC,WAAW,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,IAAM,iBAAiB,GAAG;QACxB,OAAO,CAAC,GAAG,CACT,sBAAsB,EACtB,WAAW,EACX,iBAAiB,EACjB,cAAc,CACf,CAAC;QAEF,wBAAwB;QACxB,IAAI,WAAW,KAAK,WAAW,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;YAChD,cAAc,CAAC,MAAM,CAAC,CAAC;YACvB,OAAO;QACT,CAAC;QAED,8DAA8D;QAC9D,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;gBAC3B,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;gBACpC,cAAc,CAAC,WAAW,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;YACnD,0CAA0C;YAC1C,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC,CAAC;IAEF,IAAM,sBAAsB,GAAG;QAC7B,IAAI,WAAW,KAAK,cAAc,EAAE,CAAC;YACnC,cAAc,CAAC,MAAM,CAAC,CAAC;YACvB,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,6BAAK,SAAS,EAAC,yGAAyG;QACtH,6BAAK,SAAS,EAAC,gDAAgD;YAC7D,oBAAC,aAAa,IACZ,kBAAkB,EAAC,UAAU,EAC7B,SAAS,EAAC,UAAU,EACpB,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ;gBAEpC,6BACE,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,EAAE,CACX,uCAAuC,EACvC,8EAA8E,EAC9E,SAAS;wBACP,CAAC,CAAC,wEAAwE;wBAC1E,CAAC,CAAC,EAAE,CACP;oBAED,6BAAK,SAAS,EAAC,4BAA4B;wBACzC,6BAAK,SAAS,EAAC,yBAAyB,qBAAqB;wBAC7D,6BAAK,SAAS,EAAC,+BAA+B;4BAC5C,oBAAC,MAAM,IACL,OAAO,EAAC,SAAS,EACjB,IAAI,EAAE,QAAQ,EACd,IAAI,EAAC,IAAI,EACT,OAAO,EAAC,mBAAmB,EAC3B,SAAS,EAAC,aAAa,GACvB;4BACF,6BAAK,SAAS,EAAC,4BAA4B;gCACzC,oBAAC,MAAM,IACL,OAAO,EAAC,OAAO,EACf,IAAI,EAAE,cAAc,EACpB,IAAI,EAAC,IAAI,EACT,OAAO,EAAC,mBAAmB,GAC3B;gCACF,oBAAC,MAAM,IACL,OAAO,EAAC,OAAO,EACf,IAAI,EAAE,QAAQ,EACd,IAAI,EAAC,IAAI,EACT,OAAO,EAAC,mBAAmB,GAC3B;gCACF,oBAAC,MAAM,IACL,OAAO,EAAC,OAAO,EACf,IAAI,EAAE,SAAS,EACf,IAAI,EAAC,IAAI,EACT,OAAO,EAAC,kBAAkB,GAC1B,CACE;4BACN,6BAAK,SAAS,EAAC,QAAQ,GAAG;4BAC1B,6BAAK,SAAS,EAAC,0CAA0C;gCACvD,6BACE,EAAE,EAAC,WAAW,EACd,SAAS,EAAE,EAAE,CACX,oHAAoH,EACpH,WAAW,KAAK,cAAc;wCAC5B,WAAW,KAAK,WAAW;wCAC3B,CAAC,CAAC,sBAAsB;wCACxB,CAAC,CAAC,mBAAmB,CACxB;oCAED,6BAAK,SAAS,EAAC,0BAA0B,IACtC,UAAU,CAAC,cAAc,CAAC,CACvB;oCACN,6BAAK,SAAS,EAAC,uCAAuC;wCACpD,6BAAK,SAAS,EAAC,kEAAkE,GAAG;wCACpF,6BAAK,SAAS,EAAC,kEAAkE,GAAG;wCACpF,6BAAK,SAAS,EAAC,kEAAkE,GAAG;wCACpF,6BAAK,SAAS,EAAC,kEAAkE,GAAG;wCACpF,6BAAK,SAAS,EAAC,kEAAkE,GAAG;wCACpF,6BAAK,SAAS,EAAC,kEAAkE,GAAG;wCACpF,6BAAK,SAAS,EAAC,iEAAiE,GAAG;wCACnF,6BAAK,SAAS,EAAC,kEAAkE,GAAG;wCACpF,6BAAK,SAAS,EAAC,kEAAkE,GAAG;wCACpF,6BAAK,SAAS,EAAC,kEAAkE,GAAG;wCACpF,6BAAK,SAAS,EAAC,kEAAkE,GAAG;wCACpF,6BAAK,SAAS,EAAC,kEAAkE,GAAG,CAChF,CACF;gCAEN,oBAAC,MAAM,IACL,EAAE,EACA,WAAW,KAAK,WAAW;wCACzB,CAAC,CAAC,uBAAuB;wCACzB,CAAC,CAAC,eAAe,EAErB,SAAS,EAAC,oBAAoB,EAC9B,GAAG,EAAE,eAAe,EACpB,OAAO,EACL,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,EAErD,IAAI,EAAE,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,EACxD,IAAI,EAAC,IAAI,EACT,OAAO,EACL,WAAW,KAAK,WAAW;wCACzB,CAAC,CAAC,gBAAgB;wCAClB,CAAC,CAAC,WAAW,KAAK,cAAc;4CAC9B,CAAC,CAAC,EAAE;4CACJ,CAAC,CAAC,kCAAkC,EAE1C,KAAK,EAAE,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EACvD,OAAO,EAAE,iBAAiB,EAC1B,WAAW,EACT,WAAW,KAAK,WAAW;wCACzB,CAAC,CAAC,SAAS;wCACX,CAAC,CAAC,qBAAqB,EAE3B,SAAS,EACP,WAAW,KAAK,WAAW;wCACzB,CAAC,CAAC,SAAS;wCACX,CAAC,CAAC,mBAAmB,EAEzB,YAAY,EACV,WAAW,KAAK,WAAW;wCACzB,CAAC,CAAC,SAAS;wCACX,CAAC,CAAC,sBAAsB,GAE5B;gCACF,oBAAC,MAAM,IACL,OAAO,EAAC,WAAW,EACnB,IAAI,EAAE,WAAW,EACjB,IAAI,EAAC,MAAM,EACX,OAAO,EAAC,cAAc,EACtB,SAAS,QACT,QAAQ,EAAE,WAAW,KAAK,WAAW,EACrC,SAAS,EAAC,oBAAoB,GAC9B;gCAEF,oBAAC,MAAM,IACL,EAAE,EACA,WAAW,KAAK,WAAW;wCACzB,CAAC,CAAC,uBAAuB;wCACzB,CAAC,CAAC,eAAe,EAErB,SAAS,EAAC,aAAa,EACvB,GAAG,EAAE,eAAe,EACpB,OAAO,EACL,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,EAErD,IAAI,EAAE,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,EACxD,IAAI,EAAC,IAAI,EACT,OAAO,EACL,WAAW,KAAK,WAAW;wCACzB,CAAC,CAAC,gBAAgB;wCAClB,CAAC,CAAC,WAAW,KAAK,cAAc;4CAC9B,CAAC,CAAC,EAAE;4CACJ,CAAC,CAAC,kCAAkC,EAE1C,KAAK,EAAE,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EACvD,OAAO,EAAE,iBAAiB,EAC1B,WAAW,EACT,WAAW,KAAK,WAAW;wCACzB,CAAC,CAAC,SAAS;wCACX,CAAC,CAAC,qBAAqB,EAE3B,SAAS,EACP,WAAW,KAAK,WAAW;wCACzB,CAAC,CAAC,SAAS;wCACX,CAAC,CAAC,mBAAmB,EAEzB,YAAY,EACV,WAAW,KAAK,WAAW;wCACzB,CAAC,CAAC,SAAS;wCACX,CAAC,CAAC,sBAAsB,GAE5B;gCACF,oBAAC,MAAM,IACL,OAAO,EAAC,WAAW,EACnB,IAAI,EAAE,WAAW,EACjB,IAAI,EAAC,IAAI,EACT,OAAO,EAAC,cAAc,EACtB,SAAS,QACT,QAAQ,EAAE,WAAW,KAAK,WAAW,EACrC,SAAS,EAAC,aAAa,GACvB,CACE,CACF,CACF,CACF,CACQ,CACZ,CACF,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -50,11 +50,11 @@ export var SpinnerExample = function () {
50
50
  React.createElement("div", { className: "s-heading-base s-text-foreground dark:s-text-white" }, "Size = XXL"),
51
51
  React.createElement("div", { className: "s-flex s-gap-4" },
52
52
  React.createElement("div", { className: "s-p-20" },
53
- React.createElement(Spinner, { variant: "color", size: "xxl" })),
53
+ React.createElement(Spinner, { variant: "color", size: "2xl" })),
54
54
  React.createElement("div", { className: "s-p-20" },
55
- React.createElement(Spinner, { variant: "mono", size: "xxl" })),
55
+ React.createElement(Spinner, { variant: "mono", size: "2xl" })),
56
56
  React.createElement("div", { className: "s-p-20" },
57
- React.createElement(Spinner, { variant: "rose300", size: "xxl" })))));
57
+ React.createElement(Spinner, { variant: "rose300", size: "2xl" })))));
58
58
  };
59
59
  export var BasicSpinner = {
60
60
  args: {
@@ -1 +1 @@
1
- {"version":3,"file":"ToolCard.stories.d.ts","sourceRoot":"","sources":["../../../src/stories/ToolCard.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAI/C,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,QAAQ,CAG/B,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,eAAO,MAAM,QAAQ,yBAsCpB,CAAC"}
1
+ {"version":3,"file":"ToolCard.stories.d.ts","sourceRoot":"","sources":["../../../src/stories/ToolCard.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAI/C,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,QAAQ,CAG/B,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,eAAO,MAAM,QAAQ,yBAoDpB,CAAC"}
@@ -7,10 +7,18 @@ var meta = {
7
7
  component: ToolCard,
8
8
  };
9
9
  export default meta;
10
- export var Examples = function () { return (React.createElement("div", { className: "s-grid s-grid-cols-2 s-gap-3" },
11
- React.createElement(ToolCard, { icon: BookOpenIcon, label: "Image Generation", description: "Agent can generate images (GPT Image 1).", isSelected: false, canAdd: true, onClick: function () { return console.log("Add Image Generation"); } }),
12
- React.createElement(ToolCard, { icon: CommandLineIcon, label: "Reasoning", description: React.createElement(React.Fragment, null,
13
- "Agent can decide to trigger a reasoning model for complex tasks. Agent can decide to trigger a reasoning model for complex tasks. Agent can decide to trigger a reasoning model for complex tasks. Agent can decide to trigger a reasoning model for complex tasks. Agent can decide to trigger a reasoning model for complex tasks. Agent can decide to trigger a reasoning model for complex tasks.",
14
- " ",
15
- React.createElement(Hoverable, { href: "https://example.com/help", target: "_blank", rel: "noopener noreferrer", variant: "primary" }, "the docs")), isSelected: true, canAdd: false }))); };
10
+ export var Examples = function () { return (React.createElement("div", { className: "s-flex s-gap-3" },
11
+ React.createElement("div", { className: "s-w-80" },
12
+ React.createElement(ToolCard, { icon: BookOpenIcon, cardContainerClassName: "s-h-36", label: "Image Generation", description: "Agent can generate images (GPT Image 1).", isSelected: true, canAdd: true, onClick: function () { return console.log("Add Image Generation"); }, toolInfo: {
13
+ label: "Click here",
14
+ onClick: function () { return console.log("Click here"); },
15
+ } })),
16
+ React.createElement("div", { className: "s-w-80" },
17
+ React.createElement(ToolCard, { cardContainerClassName: "s-h-36", icon: CommandLineIcon, label: "Reasoning", description: React.createElement(React.Fragment, null,
18
+ "Agent can decide to trigger a reasoning model for complex tasks. Agent can decide to trigger a reasoning model for complex tasks. Agent can decide to trigger a reasoning model for complex tasks. Agent can decide to trigger a reasoning model for complex tasks. Agent can decide to trigger a reasoning model for complex tasks. Agent can decide to trigger a reasoning model for complex tasks.",
19
+ " ",
20
+ React.createElement(Hoverable, { href: "https://example.com/help", target: "_blank", rel: "noopener noreferrer", variant: "primary" }, "the docs")), isSelected: true, canAdd: false, toolInfo: {
21
+ label: "Click here",
22
+ onClick: function () { return console.log("Click here"); },
23
+ } })))); };
16
24
  //# sourceMappingURL=ToolCard.stories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToolCard.stories.js","sourceRoot":"","sources":["../../../src/stories/ToolCard.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEnE,IAAM,IAAI,GAA0B;IAClC,KAAK,EAAE,kBAAkB;IACzB,SAAS,EAAE,QAAQ;CACpB,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,MAAM,CAAC,IAAM,QAAQ,GAAG,cAAM,OAAA,CAC5B,6BAAK,SAAS,EAAC,8BAA8B;IAE3C,oBAAC,QAAQ,IACP,IAAI,EAAE,YAAY,EAClB,KAAK,EAAC,kBAAkB,EACxB,WAAW,EAAC,0CAA0C,EACtD,UAAU,EAAE,KAAK,EACjB,MAAM,EAAE,IAAI,EACZ,OAAO,EAAE,cAAM,OAAA,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,EAAnC,CAAmC,GAClD;IAGF,oBAAC,QAAQ,IACP,IAAI,EAAE,eAAe,EACrB,KAAK,EAAC,WAAW,EACjB,WAAW,EACT;;YAMyD,GAAG;YAC1D,oBAAC,SAAS,IACR,IAAI,EAAC,0BAA0B,EAC/B,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,EACzB,OAAO,EAAC,SAAS,eAGP,CACX,EAEL,UAAU,EAAE,IAAI,EAChB,MAAM,EAAE,KAAK,GACb,CACE,CACP,EAtC6B,CAsC7B,CAAC"}
1
+ {"version":3,"file":"ToolCard.stories.js","sourceRoot":"","sources":["../../../src/stories/ToolCard.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEnE,IAAM,IAAI,GAA0B;IAClC,KAAK,EAAE,kBAAkB;IACzB,SAAS,EAAE,QAAQ;CACpB,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,MAAM,CAAC,IAAM,QAAQ,GAAG,cAAM,OAAA,CAC5B,6BAAK,SAAS,EAAC,gBAAgB;IAE7B,6BAAK,SAAS,EAAC,QAAQ;QACrB,oBAAC,QAAQ,IACP,IAAI,EAAE,YAAY,EAClB,sBAAsB,EAAC,QAAQ,EAC/B,KAAK,EAAC,kBAAkB,EACxB,WAAW,EAAC,0CAA0C,EACtD,UAAU,QACV,MAAM,QACN,OAAO,EAAE,cAAM,OAAA,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,EAAnC,CAAmC,EAClD,QAAQ,EAAE;gBACR,KAAK,EAAE,YAAY;gBACnB,OAAO,EAAE,cAAM,OAAA,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAzB,CAAyB;aACzC,GACD,CACE;IAGN,6BAAK,SAAS,EAAC,QAAQ;QACrB,oBAAC,QAAQ,IACP,sBAAsB,EAAC,QAAQ,EAC/B,IAAI,EAAE,eAAe,EACrB,KAAK,EAAC,WAAW,EACjB,WAAW,EACT;;gBAMmE,GAAG;gBACpE,oBAAC,SAAS,IACR,IAAI,EAAC,0BAA0B,EAC/B,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,EACzB,OAAO,EAAC,SAAS,eAGP,CACX,EAEL,UAAU,QACV,MAAM,EAAE,KAAK,EACb,QAAQ,EAAE;gBACR,KAAK,EAAE,YAAY;gBACnB,OAAO,EAAE,cAAM,OAAA,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAzB,CAAyB;aACzC,GACD,CACE,CACF,CACP,EApD6B,CAoD7B,CAAC"}
package/dist/sparkle.css CHANGED
@@ -1407,6 +1407,10 @@ select {
1407
1407
  height: 100vh;
1408
1408
  }
1409
1409
 
1410
+ .s-h-\[12\%\] {
1411
+ height: 12%;
1412
+ }
1413
+
1410
1414
  .s-h-\[120px\] {
1411
1415
  height: 120px;
1412
1416
  }
@@ -1415,6 +1419,10 @@ select {
1415
1419
  height: 125px;
1416
1420
  }
1417
1421
 
1422
+ .s-h-\[18\%\] {
1423
+ height: 18%;
1424
+ }
1425
+
1418
1426
  .s-h-\[1px\] {
1419
1427
  height: 1px;
1420
1428
  }
@@ -1423,10 +1431,22 @@ select {
1423
1431
  height: 200px;
1424
1432
  }
1425
1433
 
1434
+ .s-h-\[22\%\] {
1435
+ height: 22%;
1436
+ }
1437
+
1426
1438
  .s-h-\[30\%\] {
1427
1439
  height: 30%;
1428
1440
  }
1429
1441
 
1442
+ .s-h-\[33\%\] {
1443
+ height: 33%;
1444
+ }
1445
+
1446
+ .s-h-\[34\%\] {
1447
+ height: 34%;
1448
+ }
1449
+
1430
1450
  .s-h-\[340px\] {
1431
1451
  height: 340px;
1432
1452
  }
@@ -1443,14 +1463,38 @@ select {
1443
1463
  height: 45%;
1444
1464
  }
1445
1465
 
1466
+ .s-h-\[46\%\] {
1467
+ height: 46%;
1468
+ }
1469
+
1470
+ .s-h-\[56\%\] {
1471
+ height: 56%;
1472
+ }
1473
+
1474
+ .s-h-\[6\%\] {
1475
+ height: 6%;
1476
+ }
1477
+
1446
1478
  .s-h-\[600px\] {
1447
1479
  height: 600px;
1448
1480
  }
1449
1481
 
1482
+ .s-h-\[64\%\] {
1483
+ height: 64%;
1484
+ }
1485
+
1450
1486
  .s-h-\[700px\] {
1451
1487
  height: 700px;
1452
1488
  }
1453
1489
 
1490
+ .s-h-\[76\%\] {
1491
+ height: 76%;
1492
+ }
1493
+
1494
+ .s-h-\[98\%\] {
1495
+ height: 98%;
1496
+ }
1497
+
1454
1498
  .s-h-fit {
1455
1499
  height: -moz-fit-content;
1456
1500
  height: fit-content;
@@ -1484,6 +1528,10 @@ select {
1484
1528
  min-height: 0px;
1485
1529
  }
1486
1530
 
1531
+ .s-min-h-1 {
1532
+ min-height: 0.25rem;
1533
+ }
1534
+
1487
1535
  .s-min-h-5 {
1488
1536
  min-height: 1.25rem;
1489
1537
  }
@@ -1798,6 +1846,10 @@ select {
1798
1846
  max-width: 80vh;
1799
1847
  }
1800
1848
 
1849
+ .s-max-w-\[900px\] {
1850
+ max-width: 900px;
1851
+ }
1852
+
1801
1853
  .s-max-w-full {
1802
1854
  max-width: 100%;
1803
1855
  }
@@ -2768,6 +2820,10 @@ select {
2768
2820
  border-color: rgb(248 166 180 / var(--tw-border-opacity));
2769
2821
  }
2770
2822
 
2823
+ .s-border-warning\/20 {
2824
+ border-color: rgb(225 67 34 / 0.2);
2825
+ }
2826
+
2771
2827
  .s-border-white\/30 {
2772
2828
  border-color: rgb(255 255 255 / 0.3);
2773
2829
  }
@@ -3293,6 +3349,11 @@ select {
3293
3349
  background-color: rgb(247 247 247 / var(--tw-bg-opacity));
3294
3350
  }
3295
3351
 
3352
+ .s-bg-muted-foreground {
3353
+ --tw-bg-opacity: 1;
3354
+ background-color: rgb(84 93 108 / var(--tw-bg-opacity));
3355
+ }
3356
+
3296
3357
  .s-bg-muted-foreground\/40 {
3297
3358
  background-color: rgb(84 93 108 / 0.4);
3298
3359
  }
@@ -8794,12 +8855,51 @@ select {
8794
8855
  .sm\:s-gap-3 {
8795
8856
  gap: 0.75rem;
8796
8857
  }
8858
+
8859
+ .sm\:s-p-0 {
8860
+ padding: 0px;
8861
+ }
8797
8862
  }
8798
8863
 
8799
8864
  @media (min-width: 768px) {
8865
+ .md\:s-flex {
8866
+ display: flex;
8867
+ }
8868
+
8869
+ .md\:s-hidden {
8870
+ display: none;
8871
+ }
8872
+
8800
8873
  .md\:s-min-w-\[450px\] {
8801
8874
  min-width: 450px;
8802
8875
  }
8876
+
8877
+ .md\:s-gap-1 {
8878
+ gap: 0.25rem;
8879
+ }
8880
+
8881
+ .md\:s-rounded-3xl {
8882
+ border-radius: 1.5rem;
8883
+ }
8884
+
8885
+ .md\:s-p-6 {
8886
+ padding: 1.5rem;
8887
+ }
8888
+
8889
+ .md\:s-ring-2 {
8890
+ --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
8891
+ --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
8892
+ box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
8893
+ }
8894
+
8895
+ .md\:s-ring-highlight-300 {
8896
+ --tw-ring-opacity: 1;
8897
+ --tw-ring-color: rgb(122 198 255 / var(--tw-ring-opacity));
8898
+ }
8899
+
8900
+ .md\:s-ring-offset-2 {
8901
+ --tw-ring-offset-width: 2px;
8902
+ }
8803
8903
  }
8804
8904
 
8805
8905
  @media (min-width: 1024px) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dust-tt/sparkle",
3
- "version": "0.2.617-rc-1",
3
+ "version": "0.2.618-rc-1",
4
4
  "scripts": {
5
5
  "build": "rm -rf dist && npm run tailwind && npm run build:esm && npm run build:cjs",
6
6
  "tailwind": "tailwindcss -i ./src/styles/tailwind.css -o dist/sparkle.css",
@@ -6,7 +6,7 @@ import { UserIcon } from "@sparkle/icons/app";
6
6
  import { getEmojiAndBackgroundFromUrl } from "@sparkle/lib/avatar/utils";
7
7
  import { cn } from "@sparkle/lib/utils";
8
8
 
9
- const AVATAR_SIZES = ["xs", "sm", "md", "lg", "xl", "xxl", "auto"] as const;
9
+ const AVATAR_SIZES = ["xs", "sm", "md", "lg", "xl", "2xl", "auto"] as const;
10
10
  type AvatarSizeType = (typeof AVATAR_SIZES)[number];
11
11
 
12
12
  const AVATAR_VARIANTS = ["default", "clickable", "disabled"] as const;
@@ -22,7 +22,7 @@ const avatarVariants = cva(
22
22
  md: "s-h-10 s-w-10",
23
23
  lg: "s-h-16 s-w-16",
24
24
  xl: "s-h-20 s-w-20",
25
- xxl: "s-h-36 s-w-36",
25
+ "2xl": "s-h-36 s-w-36",
26
26
  auto: "s-w-full s-relative",
27
27
  },
28
28
  variant: {
@@ -64,7 +64,7 @@ const avatarVariants = cva(
64
64
  },
65
65
  {
66
66
  rounded: false,
67
- size: "xxl",
67
+ size: "2xl",
68
68
  className: "s-rounded-[38px]",
69
69
  },
70
70
  {
@@ -89,7 +89,7 @@ const textVariants = cva("s-select-none s-font-semibold", {
89
89
  md: "s-text-base",
90
90
  lg: "s-text-3xl",
91
91
  xl: "s-text-5xl",
92
- xxl: "s-text-7xl",
92
+ "2xl": "s-text-7xl",
93
93
  auto: "s-text-xl",
94
94
  },
95
95
  },
@@ -100,16 +100,25 @@ const buttonVariants = cva(
100
100
  ),
101
101
  },
102
102
  size: {
103
- xmini: "s-h-6 s-w-6 s-rounded-lg s-label-xs s-gap-1 s-shrink-0",
104
- mini: "s-h-7 s-w-7 s-rounded-lg s-label-xs s-gap-1.5 s-shrink-0",
105
- xs: "s-h-7 s-px-2.5 s-rounded-lg s-label-xs s-gap-1.5 s-shrink-0",
106
- sm: "s-h-9 s-px-3 s-rounded-xl s-label-sm s-gap-2 s-shrink-0",
107
- md: "s-h-12 s-px-4 s-py-2 s-rounded-2xl s-label-base s-gap-2.5 s-shrink-0",
103
+ xmini: "s-h-6 s-w-6 s-label-xs s-gap-1 s-shrink-0",
104
+ mini: "s-h-7 s-w-7 s-label-xs s-gap-1.5 s-shrink-0",
105
+ xs: "s-h-7 s-px-2.5 s-label-xs s-gap-1.5 s-shrink-0",
106
+ sm: "s-h-9 s-px-3 s-label-sm s-gap-2 s-shrink-0",
107
+ md: "s-h-12 s-px-4 s-py-2 s-label-base s-gap-2.5 s-shrink-0",
108
+ },
109
+ rounded: {
110
+ xmini: "s-rounded-lg",
111
+ mini: "s-rounded-lg",
112
+ xs: "s-rounded-lg",
113
+ sm: "s-rounded-xl",
114
+ md: "s-rounded-2xl",
115
+ full: "s-rounded-full",
108
116
  },
109
117
  },
110
118
  defaultVariants: {
111
119
  variant: "primary",
112
120
  size: "sm",
121
+ rounded: "sm",
113
122
  },
114
123
  }
115
124
  );
@@ -153,14 +162,30 @@ export interface MetaButtonProps
153
162
  extends React.ButtonHTMLAttributes<HTMLButtonElement>,
154
163
  VariantProps<typeof buttonVariants> {
155
164
  asChild?: boolean;
165
+ isRounded?: boolean;
156
166
  }
157
167
 
158
168
  const MetaButton = React.forwardRef<HTMLButtonElement, MetaButtonProps>(
159
- ({ className, asChild = false, variant, size, children, ...props }, ref) => {
169
+ (
170
+ {
171
+ className,
172
+ asChild = false,
173
+ variant,
174
+ size,
175
+ isRounded,
176
+ children,
177
+ ...props
178
+ },
179
+ ref
180
+ ) => {
160
181
  const Comp = asChild ? Slot : "button";
182
+
183
+ // Determine rounded variant based on isRounded prop
184
+ const rounded = isRounded ? "full" : size;
185
+
161
186
  return (
162
187
  <Comp
163
- className={cn(buttonVariants({ variant, size, className }))}
188
+ className={cn(buttonVariants({ variant, size, rounded, className }))}
164
189
  ref={ref}
165
190
  {...props}
166
191
  >
@@ -199,6 +224,7 @@ type CommonButtonProps = Omit<MetaButtonProps, "children"> &
199
224
  tooltip?: string;
200
225
  isCounter?: boolean;
201
226
  counterValue?: string;
227
+ isRounded?: boolean;
202
228
  };
203
229
 
204
230
  export type MiniButtonProps = CommonButtonProps & {
@@ -230,6 +256,7 @@ const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(
230
256
  isCounter = false,
231
257
  counterValue,
232
258
  size = "sm",
259
+ isRounded = false,
233
260
  href,
234
261
  target,
235
262
  rel,
@@ -338,6 +365,7 @@ const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(
338
365
  ref={ref}
339
366
  size={size}
340
367
  variant={variant}
368
+ isRounded={isRounded}
341
369
  disabled={isLoading || props.disabled}
342
370
  className={cn(
343
371
  (isPulsing || isPulsingBriefly) && "s-animate-pulse",