@timbal-ai/timbal-react 0.8.0 → 0.8.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.
- package/CHANGELOG.md +15 -0
- package/README.md +51 -5
- package/dist/app.cjs +1750 -1157
- package/dist/app.d.cts +2 -2
- package/dist/app.d.ts +2 -2
- package/dist/app.esm.js +27 -5
- package/dist/{button-CIKzUrJI.d.cts → button-ClSgD6OF.d.cts} +1 -1
- package/dist/{button-CIKzUrJI.d.ts → button-ClSgD6OF.d.ts} +1 -1
- package/dist/{chart-artifact-C2m891nx.d.cts → chart-artifact-DWkqIAK5.d.cts} +165 -1
- package/dist/{chart-artifact-CqqhdSR9.d.ts → chart-artifact-DwfRtQWL.d.ts} +165 -1
- package/dist/chat.esm.js +3 -3
- package/dist/{chunk-VVTTLIGT.esm.js → chunk-5ZKLPWVN.esm.js} +1 -1
- package/dist/{chunk-ZG5NBHOS.esm.js → chunk-CFU3YDTV.esm.js} +2 -2
- package/dist/{chunk-ZEDE2TWQ.esm.js → chunk-GBBLAM3G.esm.js} +954 -378
- package/dist/{chunk-YNDXBN6C.esm.js → chunk-OISVICYF.esm.js} +1 -1
- package/dist/{chunk-LSEUKTU5.esm.js → chunk-P4SN7M67.esm.js} +1 -1
- package/dist/{chunk-Z27GBSOT.esm.js → chunk-QIABF4KB.esm.js} +53 -51
- package/dist/{chunk-QKO67F4V.esm.js → chunk-QVAUCVQA.esm.js} +93 -93
- package/dist/{chunk-4AO3HCAR.esm.js → chunk-VWHHKAHN.esm.js} +5 -5
- package/dist/index.cjs +1006 -418
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.esm.js +30 -8
- package/dist/studio.cjs +3 -1
- package/dist/studio.esm.js +6 -6
- package/dist/ui.d.cts +1 -1
- package/dist/ui.d.ts +1 -1
- package/dist/ui.esm.js +3 -3
- package/package.json +1 -1
|
@@ -1,3 +1,48 @@
|
|
|
1
|
+
// src/design/tokens.ts
|
|
2
|
+
var SIDEBAR_WIDTH_PX = 224;
|
|
3
|
+
var SIDEBAR_WIDTH_COLLAPSED_PX = 52;
|
|
4
|
+
var SIDEBAR_MOBILE_PX = 272;
|
|
5
|
+
var SIDEBAR_GAP_PX = 12;
|
|
6
|
+
var SIDEBAR_CONTENT_GAP_PX = 8;
|
|
7
|
+
var TOPBAR_GAP_PX = 8;
|
|
8
|
+
var TOPBAR_HEIGHT_PX = 48;
|
|
9
|
+
var PILL_HEIGHT_PX = 40;
|
|
10
|
+
var SIDEBAR_INSET_PX_EXPANDED = SIDEBAR_GAP_PX + SIDEBAR_WIDTH_PX + SIDEBAR_CONTENT_GAP_PX;
|
|
11
|
+
var SIDEBAR_INSET_PX_COLLAPSED = SIDEBAR_GAP_PX + SIDEBAR_WIDTH_COLLAPSED_PX + SIDEBAR_CONTENT_GAP_PX;
|
|
12
|
+
var px = (n) => `${n / 16}rem`;
|
|
13
|
+
var SIDEBAR_WIDTH = px(SIDEBAR_WIDTH_PX);
|
|
14
|
+
var SIDEBAR_WIDTH_COLLAPSED = px(SIDEBAR_WIDTH_COLLAPSED_PX);
|
|
15
|
+
var SIDEBAR_GAP = px(SIDEBAR_GAP_PX);
|
|
16
|
+
var SIDEBAR_CONTENT_GAP = px(SIDEBAR_CONTENT_GAP_PX);
|
|
17
|
+
var TOPBAR_GAP = px(TOPBAR_GAP_PX);
|
|
18
|
+
var TOPBAR_HEIGHT = px(TOPBAR_HEIGHT_PX);
|
|
19
|
+
var PILL_HEIGHT = px(PILL_HEIGHT_PX);
|
|
20
|
+
var SIDEBAR_INSET_EXPANDED = px(SIDEBAR_INSET_PX_EXPANDED);
|
|
21
|
+
var SIDEBAR_INSET_COLLAPSED = px(SIDEBAR_INSET_PX_COLLAPSED);
|
|
22
|
+
var studioChromeShellStyle = {
|
|
23
|
+
"--studio-topbar-gap": TOPBAR_GAP,
|
|
24
|
+
"--studio-topbar-height": TOPBAR_HEIGHT,
|
|
25
|
+
"--studio-chrome-pill-height": PILL_HEIGHT,
|
|
26
|
+
"--studio-inset-top": `calc(${TOPBAR_GAP} + ${TOPBAR_HEIGHT})`,
|
|
27
|
+
"--studio-sidebar-gap": SIDEBAR_GAP,
|
|
28
|
+
"--studio-sidebar-width": SIDEBAR_WIDTH,
|
|
29
|
+
"--studio-sidebar-width-collapsed": SIDEBAR_WIDTH_COLLAPSED,
|
|
30
|
+
"--studio-sidebar-content-gap": SIDEBAR_CONTENT_GAP,
|
|
31
|
+
"--studio-inset-left": SIDEBAR_INSET_EXPANDED,
|
|
32
|
+
"--studio-inset-left-collapsed": SIDEBAR_INSET_COLLAPSED
|
|
33
|
+
};
|
|
34
|
+
var STORAGE_KEYS = {
|
|
35
|
+
sidebarCollapsed: "timbal-studio-sidebar-collapsed",
|
|
36
|
+
/** Used by `ModeToggle` in uncontrolled mode (`localStorage`). */
|
|
37
|
+
theme: "timbal-theme",
|
|
38
|
+
/** Used by the theme preset picker to remember the selected brand preset. */
|
|
39
|
+
themePreset: "timbal-theme-preset"
|
|
40
|
+
};
|
|
41
|
+
var DOM_IDS = {
|
|
42
|
+
sidebarRuntimeAnchor: "timbal-studio-sidebar-runtime-anchor",
|
|
43
|
+
topbarBrandAnchor: "timbal-studio-topbar-brand-anchor"
|
|
44
|
+
};
|
|
45
|
+
|
|
1
46
|
// src/design/sidebar-motion.ts
|
|
2
47
|
var STUDIO_SIDEBAR_EASE_ENTER = [0, 0, 0.2, 1];
|
|
3
48
|
var STUDIO_SIDEBAR_EASE_EXIT = [0.4, 0, 1, 1];
|
|
@@ -66,49 +111,6 @@ function studioSidebarBackdropTransition(reduced) {
|
|
|
66
111
|
return { duration: 0.16, ease: STUDIO_SIDEBAR_EASE_EXIT };
|
|
67
112
|
}
|
|
68
113
|
|
|
69
|
-
// src/design/tokens.ts
|
|
70
|
-
var SIDEBAR_WIDTH_PX = 224;
|
|
71
|
-
var SIDEBAR_WIDTH_COLLAPSED_PX = 52;
|
|
72
|
-
var SIDEBAR_MOBILE_PX = 272;
|
|
73
|
-
var SIDEBAR_GAP_PX = 12;
|
|
74
|
-
var SIDEBAR_CONTENT_GAP_PX = 8;
|
|
75
|
-
var TOPBAR_GAP_PX = 8;
|
|
76
|
-
var TOPBAR_HEIGHT_PX = 48;
|
|
77
|
-
var PILL_HEIGHT_PX = 40;
|
|
78
|
-
var SIDEBAR_INSET_PX_EXPANDED = SIDEBAR_GAP_PX + SIDEBAR_WIDTH_PX + SIDEBAR_CONTENT_GAP_PX;
|
|
79
|
-
var SIDEBAR_INSET_PX_COLLAPSED = SIDEBAR_GAP_PX + SIDEBAR_WIDTH_COLLAPSED_PX + SIDEBAR_CONTENT_GAP_PX;
|
|
80
|
-
var px = (n) => `${n / 16}rem`;
|
|
81
|
-
var SIDEBAR_WIDTH = px(SIDEBAR_WIDTH_PX);
|
|
82
|
-
var SIDEBAR_WIDTH_COLLAPSED = px(SIDEBAR_WIDTH_COLLAPSED_PX);
|
|
83
|
-
var SIDEBAR_GAP = px(SIDEBAR_GAP_PX);
|
|
84
|
-
var SIDEBAR_CONTENT_GAP = px(SIDEBAR_CONTENT_GAP_PX);
|
|
85
|
-
var TOPBAR_GAP = px(TOPBAR_GAP_PX);
|
|
86
|
-
var TOPBAR_HEIGHT = px(TOPBAR_HEIGHT_PX);
|
|
87
|
-
var PILL_HEIGHT = px(PILL_HEIGHT_PX);
|
|
88
|
-
var SIDEBAR_INSET_EXPANDED = px(SIDEBAR_INSET_PX_EXPANDED);
|
|
89
|
-
var SIDEBAR_INSET_COLLAPSED = px(SIDEBAR_INSET_PX_COLLAPSED);
|
|
90
|
-
var studioChromeShellStyle = {
|
|
91
|
-
"--studio-topbar-gap": TOPBAR_GAP,
|
|
92
|
-
"--studio-topbar-height": TOPBAR_HEIGHT,
|
|
93
|
-
"--studio-chrome-pill-height": PILL_HEIGHT,
|
|
94
|
-
"--studio-inset-top": `calc(${TOPBAR_GAP} + ${TOPBAR_HEIGHT})`,
|
|
95
|
-
"--studio-sidebar-gap": SIDEBAR_GAP,
|
|
96
|
-
"--studio-sidebar-width": SIDEBAR_WIDTH,
|
|
97
|
-
"--studio-sidebar-width-collapsed": SIDEBAR_WIDTH_COLLAPSED,
|
|
98
|
-
"--studio-sidebar-content-gap": SIDEBAR_CONTENT_GAP,
|
|
99
|
-
"--studio-inset-left": SIDEBAR_INSET_EXPANDED,
|
|
100
|
-
"--studio-inset-left-collapsed": SIDEBAR_INSET_COLLAPSED
|
|
101
|
-
};
|
|
102
|
-
var STORAGE_KEYS = {
|
|
103
|
-
sidebarCollapsed: "timbal-studio-sidebar-collapsed",
|
|
104
|
-
/** Used by `ModeToggle` in uncontrolled mode (`localStorage`). */
|
|
105
|
-
theme: "timbal-theme"
|
|
106
|
-
};
|
|
107
|
-
var DOM_IDS = {
|
|
108
|
-
sidebarRuntimeAnchor: "timbal-studio-sidebar-runtime-anchor",
|
|
109
|
-
topbarBrandAnchor: "timbal-studio-topbar-brand-anchor"
|
|
110
|
-
};
|
|
111
|
-
|
|
112
114
|
// src/layout/shell-inset-context.tsx
|
|
113
115
|
import { createContext, useContext } from "react";
|
|
114
116
|
var ShellInsetContext = createContext(null);
|
|
@@ -118,6 +120,14 @@ function useShellInsetReporter() {
|
|
|
118
120
|
}
|
|
119
121
|
|
|
120
122
|
export {
|
|
123
|
+
SIDEBAR_WIDTH_PX,
|
|
124
|
+
SIDEBAR_WIDTH_COLLAPSED_PX,
|
|
125
|
+
SIDEBAR_MOBILE_PX,
|
|
126
|
+
SIDEBAR_INSET_PX_EXPANDED,
|
|
127
|
+
SIDEBAR_INSET_PX_COLLAPSED,
|
|
128
|
+
studioChromeShellStyle,
|
|
129
|
+
STORAGE_KEYS,
|
|
130
|
+
DOM_IDS,
|
|
121
131
|
STUDIO_SIDEBAR_ENTRIES_OUT_S,
|
|
122
132
|
STUDIO_SIDEBAR_WIDTH_S,
|
|
123
133
|
STUDIO_SIDEBAR_EXPAND_REVEAL_FRAC,
|
|
@@ -127,14 +137,6 @@ export {
|
|
|
127
137
|
studioSidebarWidthTransition,
|
|
128
138
|
studioSidebarDrawerTransition,
|
|
129
139
|
studioSidebarBackdropTransition,
|
|
130
|
-
SIDEBAR_WIDTH_PX,
|
|
131
|
-
SIDEBAR_WIDTH_COLLAPSED_PX,
|
|
132
|
-
SIDEBAR_MOBILE_PX,
|
|
133
|
-
SIDEBAR_INSET_PX_EXPANDED,
|
|
134
|
-
SIDEBAR_INSET_PX_COLLAPSED,
|
|
135
|
-
studioChromeShellStyle,
|
|
136
|
-
STORAGE_KEYS,
|
|
137
|
-
DOM_IDS,
|
|
138
140
|
ShellInsetProvider,
|
|
139
141
|
useShellInsetReporter
|
|
140
142
|
};
|
|
@@ -242,14 +242,83 @@ var TimbalV2Button = React.forwardRef(function TimbalV2Button2({
|
|
|
242
242
|
);
|
|
243
243
|
});
|
|
244
244
|
|
|
245
|
+
// src/ui/button.tsx
|
|
246
|
+
import { cva } from "class-variance-authority";
|
|
247
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
248
|
+
var LEGACY_SIZE_TO_V2 = {
|
|
249
|
+
default: "md",
|
|
250
|
+
xs: "xs",
|
|
251
|
+
sm: "sm",
|
|
252
|
+
lg: "lg",
|
|
253
|
+
icon: "sm",
|
|
254
|
+
"icon-xs": "xs",
|
|
255
|
+
"icon-sm": "sm",
|
|
256
|
+
"icon-lg": "lg"
|
|
257
|
+
};
|
|
258
|
+
var buttonVariants = cva(
|
|
259
|
+
"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0",
|
|
260
|
+
{
|
|
261
|
+
variants: {
|
|
262
|
+
variant: {
|
|
263
|
+
default: "",
|
|
264
|
+
destructive: "",
|
|
265
|
+
outline: "",
|
|
266
|
+
secondary: "",
|
|
267
|
+
ghost: "",
|
|
268
|
+
link: ""
|
|
269
|
+
},
|
|
270
|
+
size: {
|
|
271
|
+
default: "",
|
|
272
|
+
xs: "",
|
|
273
|
+
sm: "",
|
|
274
|
+
lg: "",
|
|
275
|
+
icon: "",
|
|
276
|
+
"icon-xs": "",
|
|
277
|
+
"icon-sm": "",
|
|
278
|
+
"icon-lg": ""
|
|
279
|
+
}
|
|
280
|
+
},
|
|
281
|
+
defaultVariants: {
|
|
282
|
+
variant: "default",
|
|
283
|
+
size: "default"
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
);
|
|
287
|
+
function Button({
|
|
288
|
+
className,
|
|
289
|
+
variant = "default",
|
|
290
|
+
size = "default",
|
|
291
|
+
asChild = false,
|
|
292
|
+
...props
|
|
293
|
+
}) {
|
|
294
|
+
const v2Variant = TIMBAL_V2_FROM_LEGACY_BUTTON[variant ?? "default"];
|
|
295
|
+
const v2Size = LEGACY_SIZE_TO_V2[size ?? "default"];
|
|
296
|
+
const isIconOnly = typeof size === "string" && size.startsWith("icon");
|
|
297
|
+
return /* @__PURE__ */ jsx2(
|
|
298
|
+
TimbalV2Button,
|
|
299
|
+
{
|
|
300
|
+
"data-slot": "button",
|
|
301
|
+
"data-variant": variant,
|
|
302
|
+
"data-size": size,
|
|
303
|
+
variant: v2Variant,
|
|
304
|
+
size: v2Size,
|
|
305
|
+
shape: "pill",
|
|
306
|
+
isIconOnly,
|
|
307
|
+
asChild,
|
|
308
|
+
className: cn(buttonVariants({ variant, size, className })),
|
|
309
|
+
...props
|
|
310
|
+
}
|
|
311
|
+
);
|
|
312
|
+
}
|
|
313
|
+
|
|
245
314
|
// src/ui/tooltip.tsx
|
|
246
315
|
import { Tooltip as TooltipPrimitive } from "radix-ui";
|
|
247
|
-
import { jsx as
|
|
316
|
+
import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
248
317
|
function TooltipProvider({
|
|
249
318
|
delayDuration = 0,
|
|
250
319
|
...props
|
|
251
320
|
}) {
|
|
252
|
-
return /* @__PURE__ */
|
|
321
|
+
return /* @__PURE__ */ jsx3(
|
|
253
322
|
TooltipPrimitive.Provider,
|
|
254
323
|
{
|
|
255
324
|
"data-slot": "tooltip-provider",
|
|
@@ -261,12 +330,12 @@ function TooltipProvider({
|
|
|
261
330
|
function Tooltip({
|
|
262
331
|
...props
|
|
263
332
|
}) {
|
|
264
|
-
return /* @__PURE__ */
|
|
333
|
+
return /* @__PURE__ */ jsx3(TooltipPrimitive.Root, { "data-slot": "tooltip", ...props });
|
|
265
334
|
}
|
|
266
335
|
function TooltipTrigger({
|
|
267
336
|
...props
|
|
268
337
|
}) {
|
|
269
|
-
return /* @__PURE__ */
|
|
338
|
+
return /* @__PURE__ */ jsx3(TooltipPrimitive.Trigger, { "data-slot": "tooltip-trigger", ...props });
|
|
270
339
|
}
|
|
271
340
|
function TooltipContent({
|
|
272
341
|
className,
|
|
@@ -274,7 +343,7 @@ function TooltipContent({
|
|
|
274
343
|
children,
|
|
275
344
|
...props
|
|
276
345
|
}) {
|
|
277
|
-
return /* @__PURE__ */
|
|
346
|
+
return /* @__PURE__ */ jsx3(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsxs2(
|
|
278
347
|
TooltipPrimitive.Content,
|
|
279
348
|
{
|
|
280
349
|
"data-slot": "tooltip-content",
|
|
@@ -286,7 +355,7 @@ function TooltipContent({
|
|
|
286
355
|
...props,
|
|
287
356
|
children: [
|
|
288
357
|
children,
|
|
289
|
-
/* @__PURE__ */
|
|
358
|
+
/* @__PURE__ */ jsx3(TooltipPrimitive.Arrow, { className: "bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]" })
|
|
290
359
|
]
|
|
291
360
|
}
|
|
292
361
|
) });
|
|
@@ -295,32 +364,32 @@ function TooltipContent({
|
|
|
295
364
|
// src/ui/dialog.tsx
|
|
296
365
|
import { XIcon } from "lucide-react";
|
|
297
366
|
import { Dialog as DialogPrimitive } from "radix-ui";
|
|
298
|
-
import { jsx as
|
|
367
|
+
import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
299
368
|
function Dialog({
|
|
300
369
|
...props
|
|
301
370
|
}) {
|
|
302
|
-
return /* @__PURE__ */
|
|
371
|
+
return /* @__PURE__ */ jsx4(DialogPrimitive.Root, { "data-slot": "dialog", ...props });
|
|
303
372
|
}
|
|
304
373
|
function DialogTrigger({
|
|
305
374
|
...props
|
|
306
375
|
}) {
|
|
307
|
-
return /* @__PURE__ */
|
|
376
|
+
return /* @__PURE__ */ jsx4(DialogPrimitive.Trigger, { "data-slot": "dialog-trigger", ...props });
|
|
308
377
|
}
|
|
309
378
|
function DialogPortal({
|
|
310
379
|
...props
|
|
311
380
|
}) {
|
|
312
|
-
return /* @__PURE__ */
|
|
381
|
+
return /* @__PURE__ */ jsx4(DialogPrimitive.Portal, { "data-slot": "dialog-portal", ...props });
|
|
313
382
|
}
|
|
314
383
|
function DialogClose({
|
|
315
384
|
...props
|
|
316
385
|
}) {
|
|
317
|
-
return /* @__PURE__ */
|
|
386
|
+
return /* @__PURE__ */ jsx4(DialogPrimitive.Close, { "data-slot": "dialog-close", ...props });
|
|
318
387
|
}
|
|
319
388
|
function DialogOverlay({
|
|
320
389
|
className,
|
|
321
390
|
...props
|
|
322
391
|
}) {
|
|
323
|
-
return /* @__PURE__ */
|
|
392
|
+
return /* @__PURE__ */ jsx4(
|
|
324
393
|
DialogPrimitive.Overlay,
|
|
325
394
|
{
|
|
326
395
|
"data-slot": "dialog-overlay",
|
|
@@ -339,7 +408,7 @@ function DialogContent({
|
|
|
339
408
|
...props
|
|
340
409
|
}) {
|
|
341
410
|
return /* @__PURE__ */ jsxs3(DialogPortal, { "data-slot": "dialog-portal", children: [
|
|
342
|
-
/* @__PURE__ */
|
|
411
|
+
/* @__PURE__ */ jsx4(DialogOverlay, {}),
|
|
343
412
|
/* @__PURE__ */ jsxs3(
|
|
344
413
|
DialogPrimitive.Content,
|
|
345
414
|
{
|
|
@@ -358,8 +427,8 @@ function DialogContent({
|
|
|
358
427
|
"data-slot": "dialog-close",
|
|
359
428
|
className: "ring-offset-background focus:ring-ring data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-[opacity,background-color] hover:bg-ghost-fill-hover hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
360
429
|
children: [
|
|
361
|
-
/* @__PURE__ */
|
|
362
|
-
/* @__PURE__ */
|
|
430
|
+
/* @__PURE__ */ jsx4(XIcon, {}),
|
|
431
|
+
/* @__PURE__ */ jsx4("span", { className: "sr-only", children: "Close" })
|
|
363
432
|
]
|
|
364
433
|
}
|
|
365
434
|
)
|
|
@@ -372,7 +441,7 @@ function DialogTitle({
|
|
|
372
441
|
className,
|
|
373
442
|
...props
|
|
374
443
|
}) {
|
|
375
|
-
return /* @__PURE__ */
|
|
444
|
+
return /* @__PURE__ */ jsx4(
|
|
376
445
|
DialogPrimitive.Title,
|
|
377
446
|
{
|
|
378
447
|
"data-slot": "dialog-title",
|
|
@@ -385,7 +454,7 @@ function DialogDescription({
|
|
|
385
454
|
className,
|
|
386
455
|
...props
|
|
387
456
|
}) {
|
|
388
|
-
return /* @__PURE__ */
|
|
457
|
+
return /* @__PURE__ */ jsx4(
|
|
389
458
|
DialogPrimitive.Description,
|
|
390
459
|
{
|
|
391
460
|
"data-slot": "dialog-description",
|
|
@@ -395,7 +464,7 @@ function DialogDescription({
|
|
|
395
464
|
);
|
|
396
465
|
}
|
|
397
466
|
function DialogHeader({ className, ...props }) {
|
|
398
|
-
return /* @__PURE__ */
|
|
467
|
+
return /* @__PURE__ */ jsx4(
|
|
399
468
|
"div",
|
|
400
469
|
{
|
|
401
470
|
"data-slot": "dialog-header",
|
|
@@ -405,7 +474,7 @@ function DialogHeader({ className, ...props }) {
|
|
|
405
474
|
);
|
|
406
475
|
}
|
|
407
476
|
function DialogFooter({ className, ...props }) {
|
|
408
|
-
return /* @__PURE__ */
|
|
477
|
+
return /* @__PURE__ */ jsx4(
|
|
409
478
|
"div",
|
|
410
479
|
{
|
|
411
480
|
"data-slot": "dialog-footer",
|
|
@@ -420,13 +489,13 @@ function DialogFooter({ className, ...props }) {
|
|
|
420
489
|
|
|
421
490
|
// src/ui/avatar.tsx
|
|
422
491
|
import { Avatar as AvatarPrimitive } from "radix-ui";
|
|
423
|
-
import { jsx as
|
|
492
|
+
import { jsx as jsx5 } from "react/jsx-runtime";
|
|
424
493
|
function Avatar({
|
|
425
494
|
className,
|
|
426
495
|
size = "default",
|
|
427
496
|
...props
|
|
428
497
|
}) {
|
|
429
|
-
return /* @__PURE__ */
|
|
498
|
+
return /* @__PURE__ */ jsx5(
|
|
430
499
|
AvatarPrimitive.Root,
|
|
431
500
|
{
|
|
432
501
|
"data-slot": "avatar",
|
|
@@ -443,7 +512,7 @@ function AvatarImage({
|
|
|
443
512
|
className,
|
|
444
513
|
...props
|
|
445
514
|
}) {
|
|
446
|
-
return /* @__PURE__ */
|
|
515
|
+
return /* @__PURE__ */ jsx5(
|
|
447
516
|
AvatarPrimitive.Image,
|
|
448
517
|
{
|
|
449
518
|
"data-slot": "avatar-image",
|
|
@@ -456,7 +525,7 @@ function AvatarFallback({
|
|
|
456
525
|
className,
|
|
457
526
|
...props
|
|
458
527
|
}) {
|
|
459
|
-
return /* @__PURE__ */
|
|
528
|
+
return /* @__PURE__ */ jsx5(
|
|
460
529
|
AvatarPrimitive.Fallback,
|
|
461
530
|
{
|
|
462
531
|
"data-slot": "avatar-fallback",
|
|
@@ -469,75 +538,6 @@ function AvatarFallback({
|
|
|
469
538
|
);
|
|
470
539
|
}
|
|
471
540
|
|
|
472
|
-
// src/ui/button.tsx
|
|
473
|
-
import { cva } from "class-variance-authority";
|
|
474
|
-
import { jsx as jsx5 } from "react/jsx-runtime";
|
|
475
|
-
var LEGACY_SIZE_TO_V2 = {
|
|
476
|
-
default: "md",
|
|
477
|
-
xs: "xs",
|
|
478
|
-
sm: "sm",
|
|
479
|
-
lg: "lg",
|
|
480
|
-
icon: "sm",
|
|
481
|
-
"icon-xs": "xs",
|
|
482
|
-
"icon-sm": "sm",
|
|
483
|
-
"icon-lg": "lg"
|
|
484
|
-
};
|
|
485
|
-
var buttonVariants = cva(
|
|
486
|
-
"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0",
|
|
487
|
-
{
|
|
488
|
-
variants: {
|
|
489
|
-
variant: {
|
|
490
|
-
default: "",
|
|
491
|
-
destructive: "",
|
|
492
|
-
outline: "",
|
|
493
|
-
secondary: "",
|
|
494
|
-
ghost: "",
|
|
495
|
-
link: ""
|
|
496
|
-
},
|
|
497
|
-
size: {
|
|
498
|
-
default: "",
|
|
499
|
-
xs: "",
|
|
500
|
-
sm: "",
|
|
501
|
-
lg: "",
|
|
502
|
-
icon: "",
|
|
503
|
-
"icon-xs": "",
|
|
504
|
-
"icon-sm": "",
|
|
505
|
-
"icon-lg": ""
|
|
506
|
-
}
|
|
507
|
-
},
|
|
508
|
-
defaultVariants: {
|
|
509
|
-
variant: "default",
|
|
510
|
-
size: "default"
|
|
511
|
-
}
|
|
512
|
-
}
|
|
513
|
-
);
|
|
514
|
-
function Button({
|
|
515
|
-
className,
|
|
516
|
-
variant = "default",
|
|
517
|
-
size = "default",
|
|
518
|
-
asChild = false,
|
|
519
|
-
...props
|
|
520
|
-
}) {
|
|
521
|
-
const v2Variant = TIMBAL_V2_FROM_LEGACY_BUTTON[variant ?? "default"];
|
|
522
|
-
const v2Size = LEGACY_SIZE_TO_V2[size ?? "default"];
|
|
523
|
-
const isIconOnly = typeof size === "string" && size.startsWith("icon");
|
|
524
|
-
return /* @__PURE__ */ jsx5(
|
|
525
|
-
TimbalV2Button,
|
|
526
|
-
{
|
|
527
|
-
"data-slot": "button",
|
|
528
|
-
"data-variant": variant,
|
|
529
|
-
"data-size": size,
|
|
530
|
-
variant: v2Variant,
|
|
531
|
-
size: v2Size,
|
|
532
|
-
shape: "pill",
|
|
533
|
-
isIconOnly,
|
|
534
|
-
asChild,
|
|
535
|
-
className: cn(buttonVariants({ variant, size, className })),
|
|
536
|
-
...props
|
|
537
|
-
}
|
|
538
|
-
);
|
|
539
|
-
}
|
|
540
|
-
|
|
541
541
|
// src/ui/shimmer.tsx
|
|
542
542
|
import { motion } from "motion/react";
|
|
543
543
|
import {
|
|
@@ -593,6 +593,7 @@ export {
|
|
|
593
593
|
TIMBAL_V2_SECONDARY_CHROME,
|
|
594
594
|
TIMBAL_V2_LOGO_TILE,
|
|
595
595
|
TimbalV2Button,
|
|
596
|
+
Button,
|
|
596
597
|
TooltipProvider,
|
|
597
598
|
Tooltip,
|
|
598
599
|
TooltipTrigger,
|
|
@@ -610,6 +611,5 @@ export {
|
|
|
610
611
|
Avatar,
|
|
611
612
|
AvatarImage,
|
|
612
613
|
AvatarFallback,
|
|
613
|
-
Button,
|
|
614
614
|
Shimmer
|
|
615
615
|
};
|
|
@@ -17,10 +17,10 @@ import {
|
|
|
17
17
|
studioSidebarEntryItemVariants,
|
|
18
18
|
studioSidebarWidthTransition,
|
|
19
19
|
useShellInsetReporter
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-QIABF4KB.esm.js";
|
|
21
21
|
import {
|
|
22
22
|
WorkforceSelector
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-CFU3YDTV.esm.js";
|
|
24
24
|
import {
|
|
25
25
|
Composer,
|
|
26
26
|
TimbalChat,
|
|
@@ -43,10 +43,10 @@ import {
|
|
|
43
43
|
studioTopbarIconPillClass,
|
|
44
44
|
studioTopbarPillHeightClass,
|
|
45
45
|
useTimbalRuntime
|
|
46
|
-
} from "./chunk-
|
|
46
|
+
} from "./chunk-5ZKLPWVN.esm.js";
|
|
47
47
|
import {
|
|
48
48
|
PillSegmentedTabs
|
|
49
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-OISVICYF.esm.js";
|
|
50
50
|
import {
|
|
51
51
|
Avatar,
|
|
52
52
|
AvatarFallback,
|
|
@@ -56,7 +56,7 @@ import {
|
|
|
56
56
|
TooltipContent,
|
|
57
57
|
TooltipTrigger,
|
|
58
58
|
cn
|
|
59
|
-
} from "./chunk-
|
|
59
|
+
} from "./chunk-QVAUCVQA.esm.js";
|
|
60
60
|
|
|
61
61
|
// src/hooks/use-workforces.ts
|
|
62
62
|
import { useEffect, useMemo, useRef, useState } from "react";
|