@timbal-ai/timbal-react 1.5.0 → 1.6.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/CHANGELOG.md +17 -1
- package/README.md +25 -0
- package/dist/app.cjs +855 -640
- package/dist/app.d.cts +4 -4
- package/dist/app.d.ts +4 -4
- package/dist/app.esm.js +6 -6
- package/dist/{chart-artifact-2OTDTRwM.d.ts → chart-artifact-C2pZQsaP.d.ts} +81 -29
- package/dist/{chart-artifact-CS3qyGIY.d.cts → chart-artifact-VAqgH-My.d.cts} +81 -29
- package/dist/{chat-ClmzWzCX.d.cts → chat-DDsp-Vzz.d.cts} +1 -1
- package/dist/{chat-ClmzWzCX.d.ts → chat-DDsp-Vzz.d.ts} +1 -1
- package/dist/chat.cjs +26 -26
- package/dist/chat.d.cts +3 -3
- package/dist/chat.d.ts +3 -3
- package/dist/chat.esm.js +3 -3
- package/dist/{chunk-TZI3ID3C.esm.js → chunk-24B4I4XC.esm.js} +3 -3
- package/dist/{chunk-SZDYIRMB.esm.js → chunk-6SQMTBPL.esm.js} +618 -530
- package/dist/{chunk-QIABF4KB.esm.js → chunk-ELEY66OH.esm.js} +2 -2
- package/dist/{chunk-WMKPT5BV.esm.js → chunk-HSL36SJ4.esm.js} +6 -6
- package/dist/chunk-JJOO4PR5.esm.js +391 -0
- package/dist/{chunk-AZL2WANO.esm.js → chunk-MBS7XHV2.esm.js} +28 -28
- package/dist/{chunk-5ECRZ5O7.esm.js → chunk-NO5AWNWT.esm.js} +224 -57
- package/dist/{chunk-ZNYAETFD.esm.js → chunk-R4RQT2XQ.esm.js} +2 -2
- package/dist/{chunk-JYDJRGDE.esm.js → chunk-TMP7RIA7.esm.js} +2 -2
- package/dist/{chunk-IGHBLJV3.esm.js → chunk-WQIQW7EM.esm.js} +3 -2
- package/dist/{chunk-B4XAC4G7.esm.js → chunk-YYEI6XME.esm.js} +361 -527
- package/dist/{circular-progress-CDsJwIPF.d.cts → circular-progress-B9nnwzCu.d.cts} +1 -1
- package/dist/{circular-progress-CDsJwIPF.d.ts → circular-progress-B9nnwzCu.d.ts} +1 -1
- package/dist/index.cjs +1327 -852
- package/dist/index.d.cts +9 -8
- package/dist/index.d.ts +9 -8
- package/dist/index.esm.js +40 -20
- package/dist/{kanban-U5xNe9py.d.cts → kanban-FFBeaZPS.d.cts} +4 -4
- package/dist/{kanban-U5xNe9py.d.ts → kanban-FFBeaZPS.d.ts} +4 -4
- package/dist/{layout-B8r6Jbat.d.ts → layout-CuKeSY74.d.ts} +1 -1
- package/dist/{layout-Cu7Ijn04.d.cts → layout-PzVwkJyL.d.cts} +1 -1
- package/dist/site.cjs +71 -0
- package/dist/site.d.cts +15 -1
- package/dist/site.d.ts +15 -1
- package/dist/site.esm.js +12 -311
- package/dist/studio.cjs +31 -31
- package/dist/studio.d.cts +2 -2
- package/dist/studio.d.ts +2 -2
- package/dist/studio.esm.js +7 -7
- package/dist/{timbal-v2-button-B7vPs7gg.d.ts → timbal-v2-button-DCAZNyUx.d.cts} +1 -1
- package/dist/{timbal-v2-button-B7vPs7gg.d.cts → timbal-v2-button-DCAZNyUx.d.ts} +1 -1
- package/dist/ui.cjs +77 -77
- package/dist/ui.d.cts +3 -3
- package/dist/ui.d.ts +3 -3
- package/dist/ui.esm.js +15 -15
- package/dist/{welcome-NXZlcihe.d.cts → welcome-B00oH5Io.d.cts} +1 -1
- package/dist/{welcome-DduQAC4K.d.ts → welcome-DU-4NTjZ.d.ts} +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
|
+
controlClass,
|
|
3
|
+
overlayItemClass,
|
|
2
4
|
overlayListPanelClass,
|
|
3
5
|
overlaySurfaceClass
|
|
4
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-MBS7XHV2.esm.js";
|
|
5
7
|
import {
|
|
6
8
|
cn
|
|
7
9
|
} from "./chunk-EDEKQYSU.esm.js";
|
|
@@ -47,7 +49,7 @@ function CopyButton({
|
|
|
47
49
|
"inline-flex items-center justify-center gap-1.5 rounded-md text-sm font-medium text-muted-foreground transition-colors",
|
|
48
50
|
"hover:bg-accent hover:text-foreground data-[copied=true]:text-emerald-600 dark:data-[copied=true]:text-emerald-400",
|
|
49
51
|
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-foreground/15",
|
|
50
|
-
children ? "h-
|
|
52
|
+
children ? "h-7 px-1.5" : "size-7",
|
|
51
53
|
className
|
|
52
54
|
),
|
|
53
55
|
...props,
|
|
@@ -90,23 +92,178 @@ function Checkbox({
|
|
|
90
92
|
);
|
|
91
93
|
}
|
|
92
94
|
|
|
95
|
+
// src/ui/select.tsx
|
|
96
|
+
import { Select as SelectPrimitive } from "radix-ui";
|
|
97
|
+
import { CheckIcon as CheckIcon3, ChevronDownIcon, ChevronUpIcon } from "lucide-react";
|
|
98
|
+
import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
99
|
+
function Select({
|
|
100
|
+
...props
|
|
101
|
+
}) {
|
|
102
|
+
return /* @__PURE__ */ jsx3(SelectPrimitive.Root, { "data-slot": "select", ...props });
|
|
103
|
+
}
|
|
104
|
+
function SelectGroup({
|
|
105
|
+
...props
|
|
106
|
+
}) {
|
|
107
|
+
return /* @__PURE__ */ jsx3(SelectPrimitive.Group, { "data-slot": "select-group", ...props });
|
|
108
|
+
}
|
|
109
|
+
function SelectValue({
|
|
110
|
+
...props
|
|
111
|
+
}) {
|
|
112
|
+
return /* @__PURE__ */ jsx3(SelectPrimitive.Value, { "data-slot": "select-value", ...props });
|
|
113
|
+
}
|
|
114
|
+
function SelectTrigger({
|
|
115
|
+
className,
|
|
116
|
+
size = "default",
|
|
117
|
+
children,
|
|
118
|
+
...props
|
|
119
|
+
}) {
|
|
120
|
+
return /* @__PURE__ */ jsxs2(
|
|
121
|
+
SelectPrimitive.Trigger,
|
|
122
|
+
{
|
|
123
|
+
"data-slot": "select-trigger",
|
|
124
|
+
"data-size": size,
|
|
125
|
+
className: cn(
|
|
126
|
+
controlClass({ size }),
|
|
127
|
+
"flex w-fit items-center justify-between gap-2 whitespace-nowrap *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground",
|
|
128
|
+
className
|
|
129
|
+
),
|
|
130
|
+
...props,
|
|
131
|
+
children: [
|
|
132
|
+
children,
|
|
133
|
+
/* @__PURE__ */ jsx3(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx3(ChevronDownIcon, { className: "size-4 opacity-50" }) })
|
|
134
|
+
]
|
|
135
|
+
}
|
|
136
|
+
);
|
|
137
|
+
}
|
|
138
|
+
function SelectContent({
|
|
139
|
+
className,
|
|
140
|
+
children,
|
|
141
|
+
position = "popper",
|
|
142
|
+
...props
|
|
143
|
+
}) {
|
|
144
|
+
return /* @__PURE__ */ jsx3(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs2(
|
|
145
|
+
SelectPrimitive.Content,
|
|
146
|
+
{
|
|
147
|
+
"data-slot": "select-content",
|
|
148
|
+
className: cn(
|
|
149
|
+
overlayListPanelClass,
|
|
150
|
+
"relative max-h-[var(--radix-select-content-available-height)] min-w-[8rem] origin-[var(--radix-select-content-transform-origin)] overflow-x-hidden overflow-y-auto",
|
|
151
|
+
position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
|
|
152
|
+
className
|
|
153
|
+
),
|
|
154
|
+
position,
|
|
155
|
+
...props,
|
|
156
|
+
children: [
|
|
157
|
+
/* @__PURE__ */ jsx3(SelectScrollUpButton, {}),
|
|
158
|
+
/* @__PURE__ */ jsx3(
|
|
159
|
+
SelectPrimitive.Viewport,
|
|
160
|
+
{
|
|
161
|
+
className: cn(
|
|
162
|
+
"p-1",
|
|
163
|
+
position === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"
|
|
164
|
+
),
|
|
165
|
+
children
|
|
166
|
+
}
|
|
167
|
+
),
|
|
168
|
+
/* @__PURE__ */ jsx3(SelectScrollDownButton, {})
|
|
169
|
+
]
|
|
170
|
+
}
|
|
171
|
+
) });
|
|
172
|
+
}
|
|
173
|
+
function SelectLabel({
|
|
174
|
+
className,
|
|
175
|
+
...props
|
|
176
|
+
}) {
|
|
177
|
+
return /* @__PURE__ */ jsx3(
|
|
178
|
+
SelectPrimitive.Label,
|
|
179
|
+
{
|
|
180
|
+
"data-slot": "select-label",
|
|
181
|
+
className: cn("px-2 py-1.5 text-xs font-medium text-muted-foreground", className),
|
|
182
|
+
...props
|
|
183
|
+
}
|
|
184
|
+
);
|
|
185
|
+
}
|
|
186
|
+
function SelectItem({
|
|
187
|
+
className,
|
|
188
|
+
children,
|
|
189
|
+
...props
|
|
190
|
+
}) {
|
|
191
|
+
return /* @__PURE__ */ jsxs2(
|
|
192
|
+
SelectPrimitive.Item,
|
|
193
|
+
{
|
|
194
|
+
"data-slot": "select-item",
|
|
195
|
+
className: cn(
|
|
196
|
+
overlayItemClass,
|
|
197
|
+
"w-full py-1 pr-8 pl-2 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",
|
|
198
|
+
className
|
|
199
|
+
),
|
|
200
|
+
...props,
|
|
201
|
+
children: [
|
|
202
|
+
/* @__PURE__ */ jsx3("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx3(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx3(CheckIcon3, { className: "size-4" }) }) }),
|
|
203
|
+
/* @__PURE__ */ jsx3(SelectPrimitive.ItemText, { children })
|
|
204
|
+
]
|
|
205
|
+
}
|
|
206
|
+
);
|
|
207
|
+
}
|
|
208
|
+
function SelectSeparator({
|
|
209
|
+
className,
|
|
210
|
+
...props
|
|
211
|
+
}) {
|
|
212
|
+
return /* @__PURE__ */ jsx3(
|
|
213
|
+
SelectPrimitive.Separator,
|
|
214
|
+
{
|
|
215
|
+
"data-slot": "select-separator",
|
|
216
|
+
className: cn("-mx-1 my-1 h-px bg-border", className),
|
|
217
|
+
...props
|
|
218
|
+
}
|
|
219
|
+
);
|
|
220
|
+
}
|
|
221
|
+
function SelectScrollUpButton({
|
|
222
|
+
className,
|
|
223
|
+
...props
|
|
224
|
+
}) {
|
|
225
|
+
return /* @__PURE__ */ jsx3(
|
|
226
|
+
SelectPrimitive.ScrollUpButton,
|
|
227
|
+
{
|
|
228
|
+
"data-slot": "select-scroll-up-button",
|
|
229
|
+
className: cn("flex cursor-default items-center justify-center py-1", className),
|
|
230
|
+
...props,
|
|
231
|
+
children: /* @__PURE__ */ jsx3(ChevronUpIcon, { className: "size-4" })
|
|
232
|
+
}
|
|
233
|
+
);
|
|
234
|
+
}
|
|
235
|
+
function SelectScrollDownButton({
|
|
236
|
+
className,
|
|
237
|
+
...props
|
|
238
|
+
}) {
|
|
239
|
+
return /* @__PURE__ */ jsx3(
|
|
240
|
+
SelectPrimitive.ScrollDownButton,
|
|
241
|
+
{
|
|
242
|
+
"data-slot": "select-scroll-down-button",
|
|
243
|
+
className: cn("flex cursor-default items-center justify-center py-1", className),
|
|
244
|
+
...props,
|
|
245
|
+
children: /* @__PURE__ */ jsx3(ChevronDownIcon, { className: "size-4" })
|
|
246
|
+
}
|
|
247
|
+
);
|
|
248
|
+
}
|
|
249
|
+
|
|
93
250
|
// src/ui/popover.tsx
|
|
94
251
|
import { Popover as PopoverPrimitive } from "radix-ui";
|
|
95
|
-
import { jsx as
|
|
252
|
+
import { jsx as jsx4 } from "react/jsx-runtime";
|
|
96
253
|
function Popover({
|
|
97
254
|
...props
|
|
98
255
|
}) {
|
|
99
|
-
return /* @__PURE__ */
|
|
256
|
+
return /* @__PURE__ */ jsx4(PopoverPrimitive.Root, { "data-slot": "popover", ...props });
|
|
100
257
|
}
|
|
101
258
|
function PopoverTrigger({
|
|
102
259
|
...props
|
|
103
260
|
}) {
|
|
104
|
-
return /* @__PURE__ */
|
|
261
|
+
return /* @__PURE__ */ jsx4(PopoverPrimitive.Trigger, { "data-slot": "popover-trigger", ...props });
|
|
105
262
|
}
|
|
106
263
|
function PopoverAnchor({
|
|
107
264
|
...props
|
|
108
265
|
}) {
|
|
109
|
-
return /* @__PURE__ */
|
|
266
|
+
return /* @__PURE__ */ jsx4(PopoverPrimitive.Anchor, { "data-slot": "popover-anchor", ...props });
|
|
110
267
|
}
|
|
111
268
|
function PopoverContent({
|
|
112
269
|
className,
|
|
@@ -115,7 +272,7 @@ function PopoverContent({
|
|
|
115
272
|
variant = "default",
|
|
116
273
|
...props
|
|
117
274
|
}) {
|
|
118
|
-
return /* @__PURE__ */
|
|
275
|
+
return /* @__PURE__ */ jsx4(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx4(
|
|
119
276
|
PopoverPrimitive.Content,
|
|
120
277
|
{
|
|
121
278
|
"data-slot": "popover-content",
|
|
@@ -128,7 +285,7 @@ function PopoverContent({
|
|
|
128
285
|
"min-w-[8rem] origin-[var(--radix-popover-content-transform-origin)]"
|
|
129
286
|
) : cn(
|
|
130
287
|
overlaySurfaceClass,
|
|
131
|
-
"w-72 origin-[var(--radix-popover-content-transform-origin)] rounded-xl p-
|
|
288
|
+
"w-72 origin-[var(--radix-popover-content-transform-origin)] rounded-xl p-3 outline-hidden"
|
|
132
289
|
),
|
|
133
290
|
className
|
|
134
291
|
),
|
|
@@ -138,9 +295,9 @@ function PopoverContent({
|
|
|
138
295
|
}
|
|
139
296
|
|
|
140
297
|
// src/ui/skeleton.tsx
|
|
141
|
-
import { jsx as
|
|
298
|
+
import { jsx as jsx5 } from "react/jsx-runtime";
|
|
142
299
|
function Skeleton({ className, ...props }) {
|
|
143
|
-
return /* @__PURE__ */
|
|
300
|
+
return /* @__PURE__ */ jsx5(
|
|
144
301
|
"div",
|
|
145
302
|
{
|
|
146
303
|
"data-slot": "skeleton",
|
|
@@ -153,7 +310,7 @@ function Skeleton({ className, ...props }) {
|
|
|
153
310
|
// src/ui/untitled-button.tsx
|
|
154
311
|
import { cva } from "class-variance-authority";
|
|
155
312
|
import { Slot } from "radix-ui";
|
|
156
|
-
import { jsx as
|
|
313
|
+
import { jsx as jsx6, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
157
314
|
var SOLID_SKEUOMORPHIC_SHADOW = "shadow-skeuomorphic-solid";
|
|
158
315
|
var BORDERED_SKEUOMORPHIC_SHADOW = "shadow-skeuomorphic-bordered";
|
|
159
316
|
var untitledButtonVariants = cva(
|
|
@@ -236,10 +393,10 @@ var untitledButtonVariants = cva(
|
|
|
236
393
|
)
|
|
237
394
|
},
|
|
238
395
|
size: {
|
|
239
|
-
sm: "h-
|
|
240
|
-
md: "h-
|
|
241
|
-
lg: "h-
|
|
242
|
-
xl: "h-
|
|
396
|
+
sm: "h-8 gap-1 rounded-md px-2.5 text-xs",
|
|
397
|
+
md: "h-9 gap-1.5 rounded-lg px-3 text-sm",
|
|
398
|
+
lg: "h-10 gap-1.5 rounded-lg px-3.5 text-sm",
|
|
399
|
+
xl: "h-11 gap-2 rounded-lg px-4 text-base"
|
|
243
400
|
}
|
|
244
401
|
},
|
|
245
402
|
defaultVariants: {
|
|
@@ -264,7 +421,7 @@ function UntitledButton({
|
|
|
264
421
|
const isDisabled = disabled || isLoading;
|
|
265
422
|
const classes = cn(untitledButtonVariants({ color, size }), className);
|
|
266
423
|
if (asChild) {
|
|
267
|
-
return /* @__PURE__ */
|
|
424
|
+
return /* @__PURE__ */ jsx6(
|
|
268
425
|
Slot.Root,
|
|
269
426
|
{
|
|
270
427
|
className: classes,
|
|
@@ -275,7 +432,7 @@ function UntitledButton({
|
|
|
275
432
|
}
|
|
276
433
|
);
|
|
277
434
|
}
|
|
278
|
-
return /* @__PURE__ */
|
|
435
|
+
return /* @__PURE__ */ jsxs3(
|
|
279
436
|
"button",
|
|
280
437
|
{
|
|
281
438
|
type,
|
|
@@ -284,7 +441,7 @@ function UntitledButton({
|
|
|
284
441
|
className: classes,
|
|
285
442
|
...props,
|
|
286
443
|
children: [
|
|
287
|
-
isLoading ? /* @__PURE__ */
|
|
444
|
+
isLoading ? /* @__PURE__ */ jsx6(
|
|
288
445
|
"span",
|
|
289
446
|
{
|
|
290
447
|
"aria-hidden": true,
|
|
@@ -300,7 +457,7 @@ function UntitledButton({
|
|
|
300
457
|
|
|
301
458
|
// src/ui/banner.tsx
|
|
302
459
|
import { XIcon } from "lucide-react";
|
|
303
|
-
import { jsx as
|
|
460
|
+
import { jsx as jsx7, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
304
461
|
var bannerSoftClass = {
|
|
305
462
|
default: "border-border/50 bg-muted/30 text-foreground/90 dark:bg-muted/15",
|
|
306
463
|
primary: "border-primary/15 bg-primary/5 text-primary-800 dark:text-primary-200 [&_[data-banner-icon]]:text-primary",
|
|
@@ -345,7 +502,7 @@ function Banner({
|
|
|
345
502
|
}) {
|
|
346
503
|
const isSolid = variant === "solid";
|
|
347
504
|
const isSingleLine = !title;
|
|
348
|
-
return /* @__PURE__ */
|
|
505
|
+
return /* @__PURE__ */ jsxs4(
|
|
349
506
|
"div",
|
|
350
507
|
{
|
|
351
508
|
"data-slot": "banner",
|
|
@@ -360,7 +517,7 @@ function Banner({
|
|
|
360
517
|
),
|
|
361
518
|
...props,
|
|
362
519
|
children: [
|
|
363
|
-
icon ? /* @__PURE__ */
|
|
520
|
+
icon ? /* @__PURE__ */ jsx7(
|
|
364
521
|
"span",
|
|
365
522
|
{
|
|
366
523
|
"data-banner-icon": true,
|
|
@@ -371,9 +528,9 @@ function Banner({
|
|
|
371
528
|
children: icon
|
|
372
529
|
}
|
|
373
530
|
) : null,
|
|
374
|
-
/* @__PURE__ */
|
|
375
|
-
title ? /* @__PURE__ */
|
|
376
|
-
children ? /* @__PURE__ */
|
|
531
|
+
/* @__PURE__ */ jsxs4("div", { className: "min-w-0 flex-1", children: [
|
|
532
|
+
title ? /* @__PURE__ */ jsx7("p", { className: "font-medium tracking-tight", children: title }) : null,
|
|
533
|
+
children ? /* @__PURE__ */ jsx7(
|
|
377
534
|
"div",
|
|
378
535
|
{
|
|
379
536
|
className: cn(
|
|
@@ -384,8 +541,8 @@ function Banner({
|
|
|
384
541
|
}
|
|
385
542
|
) : null
|
|
386
543
|
] }),
|
|
387
|
-
actions ? /* @__PURE__ */
|
|
388
|
-
onDismiss ? /* @__PURE__ */
|
|
544
|
+
actions ? /* @__PURE__ */ jsx7("div", { className: "flex shrink-0 items-center gap-2", children: actions }) : null,
|
|
545
|
+
onDismiss ? /* @__PURE__ */ jsx7(
|
|
389
546
|
"button",
|
|
390
547
|
{
|
|
391
548
|
type: "button",
|
|
@@ -396,7 +553,7 @@ function Banner({
|
|
|
396
553
|
isSingleLine ? "self-center" : "-mt-0.5",
|
|
397
554
|
isSolid ? "opacity-80 hover:bg-background/15 hover:opacity-100" : "text-muted-foreground hover:bg-foreground/10 hover:text-foreground"
|
|
398
555
|
),
|
|
399
|
-
children: /* @__PURE__ */
|
|
556
|
+
children: /* @__PURE__ */ jsx7(XIcon, { className: "size-4", "aria-hidden": true })
|
|
400
557
|
}
|
|
401
558
|
) : null
|
|
402
559
|
]
|
|
@@ -405,7 +562,7 @@ function Banner({
|
|
|
405
562
|
}
|
|
406
563
|
|
|
407
564
|
// src/ui/timeline.tsx
|
|
408
|
-
import { jsx as
|
|
565
|
+
import { jsx as jsx8, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
409
566
|
var timelineRowGap = {
|
|
410
567
|
sm: "pb-4",
|
|
411
568
|
default: "pb-6"
|
|
@@ -438,16 +595,16 @@ var toneStyles = {
|
|
|
438
595
|
}
|
|
439
596
|
};
|
|
440
597
|
function Timeline({ items, size = "default", className, ...props }) {
|
|
441
|
-
return /* @__PURE__ */
|
|
598
|
+
return /* @__PURE__ */ jsx8("ol", { "data-slot": "timeline", className: cn("flex flex-col", className), ...props, children: items.map((item, index) => {
|
|
442
599
|
const last = index === items.length - 1;
|
|
443
600
|
const tone = item.tone ?? "default";
|
|
444
601
|
const styles = toneStyles[tone];
|
|
445
|
-
return /* @__PURE__ */
|
|
602
|
+
return /* @__PURE__ */ jsxs5(
|
|
446
603
|
"li",
|
|
447
604
|
{
|
|
448
605
|
className: cn("relative flex gap-3.5 last:pb-0", timelineRowGap[size]),
|
|
449
606
|
children: [
|
|
450
|
-
!last ? /* @__PURE__ */
|
|
607
|
+
!last ? /* @__PURE__ */ jsx8(
|
|
451
608
|
"span",
|
|
452
609
|
{
|
|
453
610
|
"aria-hidden": true,
|
|
@@ -457,7 +614,7 @@ function Timeline({ items, size = "default", className, ...props }) {
|
|
|
457
614
|
)
|
|
458
615
|
}
|
|
459
616
|
) : null,
|
|
460
|
-
/* @__PURE__ */
|
|
617
|
+
/* @__PURE__ */ jsx8("div", { className: "relative flex w-5 shrink-0 justify-center pt-0.5", children: /* @__PURE__ */ jsx8(
|
|
461
618
|
"span",
|
|
462
619
|
{
|
|
463
620
|
className: cn(
|
|
@@ -465,7 +622,7 @@ function Timeline({ items, size = "default", className, ...props }) {
|
|
|
465
622
|
styles.border,
|
|
466
623
|
item.icon ? "size-6" : "size-4"
|
|
467
624
|
),
|
|
468
|
-
children: item.icon ? /* @__PURE__ */
|
|
625
|
+
children: item.icon ? /* @__PURE__ */ jsx8("div", { className: cn("text-xs", styles.icon), children: item.icon }) : /* @__PURE__ */ jsx8(
|
|
469
626
|
"span",
|
|
470
627
|
{
|
|
471
628
|
className: cn(
|
|
@@ -476,12 +633,12 @@ function Timeline({ items, size = "default", className, ...props }) {
|
|
|
476
633
|
)
|
|
477
634
|
}
|
|
478
635
|
) }),
|
|
479
|
-
/* @__PURE__ */
|
|
480
|
-
/* @__PURE__ */
|
|
481
|
-
/* @__PURE__ */
|
|
482
|
-
item.meta ? /* @__PURE__ */
|
|
636
|
+
/* @__PURE__ */ jsxs5("div", { className: "min-w-0 flex-1 pb-0.5", children: [
|
|
637
|
+
/* @__PURE__ */ jsxs5("div", { className: "flex items-start justify-between gap-2", children: [
|
|
638
|
+
/* @__PURE__ */ jsx8("p", { className: "text-sm font-normal text-foreground", children: item.title }),
|
|
639
|
+
item.meta ? /* @__PURE__ */ jsx8("span", { className: "shrink-0 text-xs text-muted-foreground tabular-nums", children: item.meta }) : null
|
|
483
640
|
] }),
|
|
484
|
-
item.description ? /* @__PURE__ */
|
|
641
|
+
item.description ? /* @__PURE__ */ jsx8("p", { className: "mt-0.5 text-[13px] leading-relaxed text-muted-foreground", children: item.description }) : null
|
|
485
642
|
] })
|
|
486
643
|
]
|
|
487
644
|
},
|
|
@@ -511,7 +668,7 @@ import {
|
|
|
511
668
|
} from "@dnd-kit/sortable";
|
|
512
669
|
import { CSS } from "@dnd-kit/utilities";
|
|
513
670
|
import { GripVerticalIcon } from "lucide-react";
|
|
514
|
-
import { jsx as
|
|
671
|
+
import { jsx as jsx9, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
515
672
|
var columnTitleToneClass = {
|
|
516
673
|
default: "text-foreground",
|
|
517
674
|
primary: "text-blue-600 dark:text-blue-400",
|
|
@@ -573,7 +730,7 @@ function SortableCard({
|
|
|
573
730
|
transition
|
|
574
731
|
};
|
|
575
732
|
const dragHandleProps = disabled ? void 0 : { ...attributes, ...listeners };
|
|
576
|
-
return /* @__PURE__ */
|
|
733
|
+
return /* @__PURE__ */ jsxs6(
|
|
577
734
|
"div",
|
|
578
735
|
{
|
|
579
736
|
ref: setNodeRef,
|
|
@@ -588,7 +745,7 @@ function SortableCard({
|
|
|
588
745
|
className
|
|
589
746
|
),
|
|
590
747
|
children: [
|
|
591
|
-
!disabled && dragHandle === "auto" ? /* @__PURE__ */
|
|
748
|
+
!disabled && dragHandle === "auto" ? /* @__PURE__ */ jsx9(
|
|
592
749
|
"button",
|
|
593
750
|
{
|
|
594
751
|
type: "button",
|
|
@@ -596,7 +753,7 @@ function SortableCard({
|
|
|
596
753
|
className: "absolute right-1.5 top-1.5 z-10 grid size-6 cursor-grab touch-none place-items-center rounded-md text-muted-foreground/40 opacity-0 transition hover:bg-foreground/5 hover:text-foreground focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-foreground/15 group-hover/kanban-card:opacity-100 active:cursor-grabbing",
|
|
597
754
|
...attributes,
|
|
598
755
|
...listeners,
|
|
599
|
-
children: /* @__PURE__ */
|
|
756
|
+
children: /* @__PURE__ */ jsx9(GripVerticalIcon, { className: "size-4", "aria-hidden": true })
|
|
600
757
|
}
|
|
601
758
|
) : null,
|
|
602
759
|
renderCard(card, { column, isDragging, isOverlay: false, dragHandleProps })
|
|
@@ -620,7 +777,7 @@ function KanbanColumnView({
|
|
|
620
777
|
}) {
|
|
621
778
|
const tone = column.tone ?? "default";
|
|
622
779
|
const { setNodeRef, isOver } = useDroppable({ id: column.id, disabled });
|
|
623
|
-
return /* @__PURE__ */
|
|
780
|
+
return /* @__PURE__ */ jsxs6(
|
|
624
781
|
"div",
|
|
625
782
|
{
|
|
626
783
|
"data-slot": "kanban-column",
|
|
@@ -630,9 +787,9 @@ function KanbanColumnView({
|
|
|
630
787
|
className
|
|
631
788
|
),
|
|
632
789
|
children: [
|
|
633
|
-
renderColumnHeader ? renderColumnHeader(column) : /* @__PURE__ */
|
|
634
|
-
/* @__PURE__ */
|
|
635
|
-
/* @__PURE__ */
|
|
790
|
+
renderColumnHeader ? renderColumnHeader(column) : /* @__PURE__ */ jsxs6("div", { className: "flex flex-col gap-0.5 px-1 pb-0.5", children: [
|
|
791
|
+
/* @__PURE__ */ jsxs6("div", { className: "flex items-center gap-2", children: [
|
|
792
|
+
/* @__PURE__ */ jsx9(
|
|
636
793
|
"h3",
|
|
637
794
|
{
|
|
638
795
|
className: cn(
|
|
@@ -642,12 +799,12 @@ function KanbanColumnView({
|
|
|
642
799
|
children: column.title
|
|
643
800
|
}
|
|
644
801
|
),
|
|
645
|
-
/* @__PURE__ */
|
|
646
|
-
column.action ? /* @__PURE__ */
|
|
802
|
+
/* @__PURE__ */ jsx9("span", { className: "shrink-0 text-xs font-normal tabular-nums text-muted-foreground/60", children: column.cards.length }),
|
|
803
|
+
column.action ? /* @__PURE__ */ jsx9("div", { className: "shrink-0", children: column.action }) : null
|
|
647
804
|
] }),
|
|
648
|
-
column.description ? /* @__PURE__ */
|
|
805
|
+
column.description ? /* @__PURE__ */ jsx9("p", { className: "truncate text-xs text-muted-foreground", children: column.description }) : null
|
|
649
806
|
] }),
|
|
650
|
-
/* @__PURE__ */
|
|
807
|
+
/* @__PURE__ */ jsx9(SortableContext, { items: cardIds, strategy: verticalListSortingStrategy, children: /* @__PURE__ */ jsx9(
|
|
651
808
|
"div",
|
|
652
809
|
{
|
|
653
810
|
ref: setNodeRef,
|
|
@@ -657,9 +814,9 @@ function KanbanColumnView({
|
|
|
657
814
|
densityListClass[density],
|
|
658
815
|
isOver && "bg-muted/50"
|
|
659
816
|
),
|
|
660
|
-
children: column.cards.length === 0 ? /* @__PURE__ */
|
|
817
|
+
children: column.cards.length === 0 ? /* @__PURE__ */ jsx9("div", { className: "flex flex-1 items-center justify-center rounded-xl border border-dashed border-border/60 px-2 py-8 text-center text-xs text-muted-foreground/70", children: emptyColumnLabel ?? "Drop here" }) : column.cards.map((card) => {
|
|
661
818
|
const id = getCardId(card);
|
|
662
|
-
return /* @__PURE__ */
|
|
819
|
+
return /* @__PURE__ */ jsx9(
|
|
663
820
|
SortableCard,
|
|
664
821
|
{
|
|
665
822
|
card,
|
|
@@ -677,7 +834,7 @@ function KanbanColumnView({
|
|
|
677
834
|
})
|
|
678
835
|
}
|
|
679
836
|
) }),
|
|
680
|
-
column.footer ? /* @__PURE__ */
|
|
837
|
+
column.footer ? /* @__PURE__ */ jsx9("div", { className: "px-0.5 pt-0.5", children: column.footer }) : null
|
|
681
838
|
]
|
|
682
839
|
}
|
|
683
840
|
);
|
|
@@ -816,7 +973,7 @@ function Kanban({
|
|
|
816
973
|
onColumnsChange?.(next);
|
|
817
974
|
}
|
|
818
975
|
};
|
|
819
|
-
return /* @__PURE__ */
|
|
976
|
+
return /* @__PURE__ */ jsxs6(
|
|
820
977
|
DndContext,
|
|
821
978
|
{
|
|
822
979
|
sensors,
|
|
@@ -830,7 +987,7 @@ function Kanban({
|
|
|
830
987
|
if (isControlled) setInternal(cloneColumns(columnsProp));
|
|
831
988
|
},
|
|
832
989
|
children: [
|
|
833
|
-
/* @__PURE__ */
|
|
990
|
+
/* @__PURE__ */ jsx9(
|
|
834
991
|
"div",
|
|
835
992
|
{
|
|
836
993
|
"data-slot": "kanban",
|
|
@@ -841,7 +998,7 @@ function Kanban({
|
|
|
841
998
|
density === "compact" ? "gap-3" : "gap-4",
|
|
842
999
|
className
|
|
843
1000
|
),
|
|
844
|
-
children: columns.map((column) => /* @__PURE__ */
|
|
1001
|
+
children: columns.map((column) => /* @__PURE__ */ jsx9(
|
|
845
1002
|
KanbanColumnView,
|
|
846
1003
|
{
|
|
847
1004
|
column,
|
|
@@ -861,7 +1018,7 @@ function Kanban({
|
|
|
861
1018
|
))
|
|
862
1019
|
}
|
|
863
1020
|
),
|
|
864
|
-
/* @__PURE__ */
|
|
1021
|
+
/* @__PURE__ */ jsx9(DragOverlay, { children: activeCard ? /* @__PURE__ */ jsx9(
|
|
865
1022
|
"div",
|
|
866
1023
|
{
|
|
867
1024
|
"data-slot": "kanban-card-overlay",
|
|
@@ -886,6 +1043,16 @@ function Kanban({
|
|
|
886
1043
|
export {
|
|
887
1044
|
CopyButton,
|
|
888
1045
|
Checkbox,
|
|
1046
|
+
Select,
|
|
1047
|
+
SelectGroup,
|
|
1048
|
+
SelectValue,
|
|
1049
|
+
SelectTrigger,
|
|
1050
|
+
SelectContent,
|
|
1051
|
+
SelectLabel,
|
|
1052
|
+
SelectItem,
|
|
1053
|
+
SelectSeparator,
|
|
1054
|
+
SelectScrollUpButton,
|
|
1055
|
+
SelectScrollDownButton,
|
|
889
1056
|
Popover,
|
|
890
1057
|
PopoverTrigger,
|
|
891
1058
|
PopoverAnchor,
|
|
@@ -27,10 +27,10 @@ var pillSegmentedTrackFlushClass = cn(
|
|
|
27
27
|
"h-[var(--studio-chrome-pill-height)] items-center gap-0.5 overflow-visible p-0.5"
|
|
28
28
|
);
|
|
29
29
|
var pillSegmentedSegmentClass = cn(
|
|
30
|
-
"relative flex items-center gap-1.5 rounded-full px-
|
|
30
|
+
"relative flex items-center gap-1.5 rounded-full px-3 py-1 text-xs font-normal transition-colors"
|
|
31
31
|
);
|
|
32
32
|
var pillSegmentedFlushSegmentClass = cn(
|
|
33
|
-
"relative box-border inline-flex h-
|
|
33
|
+
"relative box-border inline-flex h-8 min-h-8 items-center justify-center gap-1.5 rounded-full px-3 py-0",
|
|
34
34
|
"text-sm font-normal leading-tight transition-colors"
|
|
35
35
|
);
|
|
36
36
|
var pillSegmentedActiveIndicatorClass = cn(
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
studioTopbarPillHeightClass
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-WQIQW7EM.esm.js";
|
|
4
4
|
import {
|
|
5
5
|
controlSurfaceClass
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-MBS7XHV2.esm.js";
|
|
7
7
|
import {
|
|
8
8
|
cn
|
|
9
9
|
} from "./chunk-EDEKQYSU.esm.js";
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
TooltipContent,
|
|
23
23
|
TooltipProvider,
|
|
24
24
|
TooltipTrigger
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-MBS7XHV2.esm.js";
|
|
26
26
|
import {
|
|
27
27
|
cn
|
|
28
28
|
} from "./chunk-EDEKQYSU.esm.js";
|
|
@@ -1824,7 +1824,7 @@ var BadgeNode = ({ node }) => {
|
|
|
1824
1824
|
"span",
|
|
1825
1825
|
{
|
|
1826
1826
|
className: cn(
|
|
1827
|
-
"aui-ui-badge inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium",
|
|
1827
|
+
"aui-ui-badge inline-flex w-fit shrink-0 items-center rounded-full px-2 py-0.5 text-xs font-medium",
|
|
1828
1828
|
BADGE_TONE[node.tone ?? "default"],
|
|
1829
1829
|
node.className
|
|
1830
1830
|
),
|
|
@@ -4374,6 +4374,7 @@ export {
|
|
|
4374
4374
|
toNum,
|
|
4375
4375
|
monotoneLinePath,
|
|
4376
4376
|
monotoneAreaPath,
|
|
4377
|
+
formatCompact,
|
|
4377
4378
|
TooltipIconButton,
|
|
4378
4379
|
UserMessageAttachments,
|
|
4379
4380
|
ComposerAttachments,
|