@timbal-ai/timbal-react 0.7.1 → 0.8.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 +14 -0
- package/dist/app.esm.js +4 -4
- package/dist/chat.esm.js +3 -3
- package/dist/{chunk-EQC5JEDZ.esm.js → chunk-4AO3HCAR.esm.js} +4 -4
- package/dist/chunk-LSEUKTU5.esm.js +435 -0
- package/dist/{chunk-2XZ3S4OP.esm.js → chunk-QKO67F4V.esm.js} +39 -0
- package/dist/{chunk-RY3LB3JN.esm.js → chunk-VVTTLIGT.esm.js} +1 -1
- package/dist/{chunk-TDIJHV4I.esm.js → chunk-YNDXBN6C.esm.js} +1 -1
- package/dist/{chunk-7U2N6XZA.esm.js → chunk-ZEDE2TWQ.esm.js} +3 -3
- package/dist/{chunk-3WCG6ZRL.esm.js → chunk-ZG5NBHOS.esm.js} +2 -2
- package/dist/index.cjs +499 -0
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.esm.js +70 -6
- package/dist/studio.esm.js +5 -5
- package/dist/ui.cjs +507 -8
- package/dist/ui.d.cts +45 -2
- package/dist/ui.d.ts +45 -2
- package/dist/ui.esm.js +66 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to `@timbal-ai/timbal-react` are documented here.
|
|
4
4
|
|
|
5
|
+
## [0.8.0] — 2026-06-02
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- **Headless UI primitives** (`@timbal-ai/timbal-react/ui`, also re-exported from the root) — token-styled Radix wrappers so apps stop hand-rolling raw HTML:
|
|
10
|
+
- **`DropdownMenu`** family (`DropdownMenu`, `DropdownMenuTrigger`, `DropdownMenuContent`, `DropdownMenuItem`, `DropdownMenuCheckboxItem`, `DropdownMenuRadioGroup`/`DropdownMenuRadioItem`, `DropdownMenuLabel`, `DropdownMenuSeparator`, `DropdownMenuShortcut`, `DropdownMenuGroup`, `DropdownMenuSub`/`DropdownMenuSubTrigger`/`DropdownMenuSubContent`) — row actions and overflow menus.
|
|
11
|
+
- **`Popover`** family (`Popover`, `PopoverTrigger`, `PopoverContent`, `PopoverAnchor`) — filters, pickers, lightweight floating panels.
|
|
12
|
+
- **`Select`** family (`Select`, `SelectTrigger`, `SelectValue`, `SelectContent`, `SelectItem`, `SelectGroup`, `SelectLabel`, `SelectSeparator`, scroll buttons) — rich select beyond the native `FieldSelect`.
|
|
13
|
+
- **`DialogHeader`**, **`DialogFooter`**, **`DialogDescription`** added to the `Dialog` family so dialog layout no longer has to be hand-rolled.
|
|
14
|
+
|
|
15
|
+
All new primitives use the package design tokens (`bg-popover`, `border-border`, `shadow-card`, `focus:bg-accent`, …), portal above dialogs (`z-[80]`), and require no extra dependencies — `radix-ui` and `tw-animate-css` are already in the stack.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
5
19
|
## [0.7.1] — 2026-06-02
|
|
6
20
|
|
|
7
21
|
### Changed
|
package/dist/app.esm.js
CHANGED
|
@@ -56,18 +56,18 @@ import {
|
|
|
56
56
|
connectionRowListClass,
|
|
57
57
|
useAppCopilotContext,
|
|
58
58
|
useAppShellChat
|
|
59
|
-
} from "./chunk-
|
|
59
|
+
} from "./chunk-ZEDE2TWQ.esm.js";
|
|
60
60
|
import "./chunk-Z27GBSOT.esm.js";
|
|
61
61
|
import {
|
|
62
62
|
CHART_PALETTE,
|
|
63
63
|
ChartArtifactView,
|
|
64
64
|
LineAreaChart,
|
|
65
65
|
TimbalChat
|
|
66
|
-
} from "./chunk-
|
|
67
|
-
import "./chunk-
|
|
66
|
+
} from "./chunk-VVTTLIGT.esm.js";
|
|
67
|
+
import "./chunk-YNDXBN6C.esm.js";
|
|
68
68
|
import {
|
|
69
69
|
Button
|
|
70
|
-
} from "./chunk-
|
|
70
|
+
} from "./chunk-QKO67F4V.esm.js";
|
|
71
71
|
export {
|
|
72
72
|
APP_KIT_AGENT_INSTRUCTIONS,
|
|
73
73
|
AppChatPanel,
|
package/dist/chat.esm.js
CHANGED
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
} from "./chunk-KC5QLVUG.esm.js";
|
|
8
8
|
import {
|
|
9
9
|
WorkforceSelector
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-ZG5NBHOS.esm.js";
|
|
11
11
|
import {
|
|
12
12
|
Composer,
|
|
13
13
|
ComposerAddAttachment,
|
|
@@ -24,8 +24,8 @@ import {
|
|
|
24
24
|
useTimbalRuntime,
|
|
25
25
|
useTimbalStream,
|
|
26
26
|
useToolRunning
|
|
27
|
-
} from "./chunk-
|
|
28
|
-
import "./chunk-
|
|
27
|
+
} from "./chunk-VVTTLIGT.esm.js";
|
|
28
|
+
import "./chunk-QKO67F4V.esm.js";
|
|
29
29
|
export {
|
|
30
30
|
Composer,
|
|
31
31
|
ComposerAddAttachment,
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
} from "./chunk-Z27GBSOT.esm.js";
|
|
21
21
|
import {
|
|
22
22
|
WorkforceSelector
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-ZG5NBHOS.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-VVTTLIGT.esm.js";
|
|
47
47
|
import {
|
|
48
48
|
PillSegmentedTabs
|
|
49
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-YNDXBN6C.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-QKO67F4V.esm.js";
|
|
60
60
|
|
|
61
61
|
// src/hooks/use-workforces.ts
|
|
62
62
|
import { useEffect, useMemo, useRef, useState } from "react";
|
|
@@ -0,0 +1,435 @@
|
|
|
1
|
+
import {
|
|
2
|
+
cn
|
|
3
|
+
} from "./chunk-QKO67F4V.esm.js";
|
|
4
|
+
|
|
5
|
+
// src/ui/dropdown-menu.tsx
|
|
6
|
+
import { DropdownMenu as DropdownMenuPrimitive } from "radix-ui";
|
|
7
|
+
import { CheckIcon, ChevronRightIcon, CircleIcon } from "lucide-react";
|
|
8
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
+
function DropdownMenu({
|
|
10
|
+
...props
|
|
11
|
+
}) {
|
|
12
|
+
return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Root, { "data-slot": "dropdown-menu", ...props });
|
|
13
|
+
}
|
|
14
|
+
function DropdownMenuTrigger({
|
|
15
|
+
...props
|
|
16
|
+
}) {
|
|
17
|
+
return /* @__PURE__ */ jsx(
|
|
18
|
+
DropdownMenuPrimitive.Trigger,
|
|
19
|
+
{
|
|
20
|
+
"data-slot": "dropdown-menu-trigger",
|
|
21
|
+
...props
|
|
22
|
+
}
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
function DropdownMenuGroup({
|
|
26
|
+
...props
|
|
27
|
+
}) {
|
|
28
|
+
return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Group, { "data-slot": "dropdown-menu-group", ...props });
|
|
29
|
+
}
|
|
30
|
+
function DropdownMenuContent({
|
|
31
|
+
className,
|
|
32
|
+
sideOffset = 4,
|
|
33
|
+
...props
|
|
34
|
+
}) {
|
|
35
|
+
return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(
|
|
36
|
+
DropdownMenuPrimitive.Content,
|
|
37
|
+
{
|
|
38
|
+
"data-slot": "dropdown-menu-content",
|
|
39
|
+
sideOffset,
|
|
40
|
+
className: cn(
|
|
41
|
+
"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-[80] max-h-[var(--radix-dropdown-menu-content-available-height)] min-w-[8rem] origin-[var(--radix-dropdown-menu-content-transform-origin)] overflow-x-hidden overflow-y-auto rounded-lg border border-border p-1 shadow-card",
|
|
42
|
+
className
|
|
43
|
+
),
|
|
44
|
+
...props
|
|
45
|
+
}
|
|
46
|
+
) });
|
|
47
|
+
}
|
|
48
|
+
function DropdownMenuItem({
|
|
49
|
+
className,
|
|
50
|
+
inset,
|
|
51
|
+
variant = "default",
|
|
52
|
+
...props
|
|
53
|
+
}) {
|
|
54
|
+
return /* @__PURE__ */ jsx(
|
|
55
|
+
DropdownMenuPrimitive.Item,
|
|
56
|
+
{
|
|
57
|
+
"data-slot": "dropdown-menu-item",
|
|
58
|
+
"data-inset": inset,
|
|
59
|
+
"data-variant": variant,
|
|
60
|
+
className: cn(
|
|
61
|
+
"relative flex cursor-default items-center gap-2 rounded-md px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground",
|
|
62
|
+
className
|
|
63
|
+
),
|
|
64
|
+
...props
|
|
65
|
+
}
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
function DropdownMenuCheckboxItem({
|
|
69
|
+
className,
|
|
70
|
+
children,
|
|
71
|
+
checked,
|
|
72
|
+
...props
|
|
73
|
+
}) {
|
|
74
|
+
return /* @__PURE__ */ jsxs(
|
|
75
|
+
DropdownMenuPrimitive.CheckboxItem,
|
|
76
|
+
{
|
|
77
|
+
"data-slot": "dropdown-menu-checkbox-item",
|
|
78
|
+
className: cn(
|
|
79
|
+
"relative flex cursor-default items-center gap-2 rounded-md py-1.5 pr-2 pl-8 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
80
|
+
className
|
|
81
|
+
),
|
|
82
|
+
checked,
|
|
83
|
+
...props,
|
|
84
|
+
children: [
|
|
85
|
+
/* @__PURE__ */ jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, { className: "size-4" }) }) }),
|
|
86
|
+
children
|
|
87
|
+
]
|
|
88
|
+
}
|
|
89
|
+
);
|
|
90
|
+
}
|
|
91
|
+
function DropdownMenuRadioGroup({
|
|
92
|
+
...props
|
|
93
|
+
}) {
|
|
94
|
+
return /* @__PURE__ */ jsx(
|
|
95
|
+
DropdownMenuPrimitive.RadioGroup,
|
|
96
|
+
{
|
|
97
|
+
"data-slot": "dropdown-menu-radio-group",
|
|
98
|
+
...props
|
|
99
|
+
}
|
|
100
|
+
);
|
|
101
|
+
}
|
|
102
|
+
function DropdownMenuRadioItem({
|
|
103
|
+
className,
|
|
104
|
+
children,
|
|
105
|
+
...props
|
|
106
|
+
}) {
|
|
107
|
+
return /* @__PURE__ */ jsxs(
|
|
108
|
+
DropdownMenuPrimitive.RadioItem,
|
|
109
|
+
{
|
|
110
|
+
"data-slot": "dropdown-menu-radio-item",
|
|
111
|
+
className: cn(
|
|
112
|
+
"relative flex cursor-default items-center gap-2 rounded-md py-1.5 pr-2 pl-8 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
113
|
+
className
|
|
114
|
+
),
|
|
115
|
+
...props,
|
|
116
|
+
children: [
|
|
117
|
+
/* @__PURE__ */ jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(CircleIcon, { className: "size-2 fill-current" }) }) }),
|
|
118
|
+
children
|
|
119
|
+
]
|
|
120
|
+
}
|
|
121
|
+
);
|
|
122
|
+
}
|
|
123
|
+
function DropdownMenuLabel({
|
|
124
|
+
className,
|
|
125
|
+
inset,
|
|
126
|
+
...props
|
|
127
|
+
}) {
|
|
128
|
+
return /* @__PURE__ */ jsx(
|
|
129
|
+
DropdownMenuPrimitive.Label,
|
|
130
|
+
{
|
|
131
|
+
"data-slot": "dropdown-menu-label",
|
|
132
|
+
"data-inset": inset,
|
|
133
|
+
className: cn(
|
|
134
|
+
"px-2 py-1.5 text-xs font-medium text-muted-foreground data-[inset]:pl-8",
|
|
135
|
+
className
|
|
136
|
+
),
|
|
137
|
+
...props
|
|
138
|
+
}
|
|
139
|
+
);
|
|
140
|
+
}
|
|
141
|
+
function DropdownMenuSeparator({
|
|
142
|
+
className,
|
|
143
|
+
...props
|
|
144
|
+
}) {
|
|
145
|
+
return /* @__PURE__ */ jsx(
|
|
146
|
+
DropdownMenuPrimitive.Separator,
|
|
147
|
+
{
|
|
148
|
+
"data-slot": "dropdown-menu-separator",
|
|
149
|
+
className: cn("-mx-1 my-1 h-px bg-border", className),
|
|
150
|
+
...props
|
|
151
|
+
}
|
|
152
|
+
);
|
|
153
|
+
}
|
|
154
|
+
function DropdownMenuShortcut({
|
|
155
|
+
className,
|
|
156
|
+
...props
|
|
157
|
+
}) {
|
|
158
|
+
return /* @__PURE__ */ jsx(
|
|
159
|
+
"span",
|
|
160
|
+
{
|
|
161
|
+
"data-slot": "dropdown-menu-shortcut",
|
|
162
|
+
className: cn(
|
|
163
|
+
"ml-auto text-xs tracking-widest text-muted-foreground",
|
|
164
|
+
className
|
|
165
|
+
),
|
|
166
|
+
...props
|
|
167
|
+
}
|
|
168
|
+
);
|
|
169
|
+
}
|
|
170
|
+
function DropdownMenuSub({
|
|
171
|
+
...props
|
|
172
|
+
}) {
|
|
173
|
+
return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Sub, { "data-slot": "dropdown-menu-sub", ...props });
|
|
174
|
+
}
|
|
175
|
+
function DropdownMenuSubTrigger({
|
|
176
|
+
className,
|
|
177
|
+
inset,
|
|
178
|
+
children,
|
|
179
|
+
...props
|
|
180
|
+
}) {
|
|
181
|
+
return /* @__PURE__ */ jsxs(
|
|
182
|
+
DropdownMenuPrimitive.SubTrigger,
|
|
183
|
+
{
|
|
184
|
+
"data-slot": "dropdown-menu-sub-trigger",
|
|
185
|
+
"data-inset": inset,
|
|
186
|
+
className: cn(
|
|
187
|
+
"flex cursor-default items-center rounded-md px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground data-[inset]:pl-8",
|
|
188
|
+
className
|
|
189
|
+
),
|
|
190
|
+
...props,
|
|
191
|
+
children: [
|
|
192
|
+
children,
|
|
193
|
+
/* @__PURE__ */ jsx(ChevronRightIcon, { className: "ml-auto size-4" })
|
|
194
|
+
]
|
|
195
|
+
}
|
|
196
|
+
);
|
|
197
|
+
}
|
|
198
|
+
function DropdownMenuSubContent({
|
|
199
|
+
className,
|
|
200
|
+
...props
|
|
201
|
+
}) {
|
|
202
|
+
return /* @__PURE__ */ jsx(
|
|
203
|
+
DropdownMenuPrimitive.SubContent,
|
|
204
|
+
{
|
|
205
|
+
"data-slot": "dropdown-menu-sub-content",
|
|
206
|
+
className: cn(
|
|
207
|
+
"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-[80] min-w-[8rem] origin-[var(--radix-dropdown-menu-content-transform-origin)] overflow-hidden rounded-lg border border-border p-1 shadow-card",
|
|
208
|
+
className
|
|
209
|
+
),
|
|
210
|
+
...props
|
|
211
|
+
}
|
|
212
|
+
);
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
// src/ui/popover.tsx
|
|
216
|
+
import { Popover as PopoverPrimitive } from "radix-ui";
|
|
217
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
218
|
+
function Popover({
|
|
219
|
+
...props
|
|
220
|
+
}) {
|
|
221
|
+
return /* @__PURE__ */ jsx2(PopoverPrimitive.Root, { "data-slot": "popover", ...props });
|
|
222
|
+
}
|
|
223
|
+
function PopoverTrigger({
|
|
224
|
+
...props
|
|
225
|
+
}) {
|
|
226
|
+
return /* @__PURE__ */ jsx2(PopoverPrimitive.Trigger, { "data-slot": "popover-trigger", ...props });
|
|
227
|
+
}
|
|
228
|
+
function PopoverAnchor({
|
|
229
|
+
...props
|
|
230
|
+
}) {
|
|
231
|
+
return /* @__PURE__ */ jsx2(PopoverPrimitive.Anchor, { "data-slot": "popover-anchor", ...props });
|
|
232
|
+
}
|
|
233
|
+
function PopoverContent({
|
|
234
|
+
className,
|
|
235
|
+
align = "center",
|
|
236
|
+
sideOffset = 4,
|
|
237
|
+
...props
|
|
238
|
+
}) {
|
|
239
|
+
return /* @__PURE__ */ jsx2(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx2(
|
|
240
|
+
PopoverPrimitive.Content,
|
|
241
|
+
{
|
|
242
|
+
"data-slot": "popover-content",
|
|
243
|
+
align,
|
|
244
|
+
sideOffset,
|
|
245
|
+
className: cn(
|
|
246
|
+
"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-[80] w-72 origin-[var(--radix-popover-content-transform-origin)] rounded-xl border border-border p-4 shadow-card outline-hidden",
|
|
247
|
+
className
|
|
248
|
+
),
|
|
249
|
+
...props
|
|
250
|
+
}
|
|
251
|
+
) });
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
// src/ui/select.tsx
|
|
255
|
+
import { Select as SelectPrimitive } from "radix-ui";
|
|
256
|
+
import { CheckIcon as CheckIcon2, ChevronDownIcon, ChevronUpIcon } from "lucide-react";
|
|
257
|
+
import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
258
|
+
function Select({
|
|
259
|
+
...props
|
|
260
|
+
}) {
|
|
261
|
+
return /* @__PURE__ */ jsx3(SelectPrimitive.Root, { "data-slot": "select", ...props });
|
|
262
|
+
}
|
|
263
|
+
function SelectGroup({
|
|
264
|
+
...props
|
|
265
|
+
}) {
|
|
266
|
+
return /* @__PURE__ */ jsx3(SelectPrimitive.Group, { "data-slot": "select-group", ...props });
|
|
267
|
+
}
|
|
268
|
+
function SelectValue({
|
|
269
|
+
...props
|
|
270
|
+
}) {
|
|
271
|
+
return /* @__PURE__ */ jsx3(SelectPrimitive.Value, { "data-slot": "select-value", ...props });
|
|
272
|
+
}
|
|
273
|
+
function SelectTrigger({
|
|
274
|
+
className,
|
|
275
|
+
size = "default",
|
|
276
|
+
children,
|
|
277
|
+
...props
|
|
278
|
+
}) {
|
|
279
|
+
return /* @__PURE__ */ jsxs2(
|
|
280
|
+
SelectPrimitive.Trigger,
|
|
281
|
+
{
|
|
282
|
+
"data-slot": "select-trigger",
|
|
283
|
+
"data-size": size,
|
|
284
|
+
className: cn(
|
|
285
|
+
"flex w-fit items-center justify-between gap-2 rounded-lg border border-input bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/40 disabled:cursor-not-allowed disabled:opacity-50 data-[placeholder]:text-muted-foreground data-[size=default]:h-9 data-[size=sm]:h-8 *: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",
|
|
286
|
+
className
|
|
287
|
+
),
|
|
288
|
+
...props,
|
|
289
|
+
children: [
|
|
290
|
+
children,
|
|
291
|
+
/* @__PURE__ */ jsx3(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx3(ChevronDownIcon, { className: "size-4 opacity-50" }) })
|
|
292
|
+
]
|
|
293
|
+
}
|
|
294
|
+
);
|
|
295
|
+
}
|
|
296
|
+
function SelectContent({
|
|
297
|
+
className,
|
|
298
|
+
children,
|
|
299
|
+
position = "popper",
|
|
300
|
+
...props
|
|
301
|
+
}) {
|
|
302
|
+
return /* @__PURE__ */ jsx3(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs2(
|
|
303
|
+
SelectPrimitive.Content,
|
|
304
|
+
{
|
|
305
|
+
"data-slot": "select-content",
|
|
306
|
+
className: cn(
|
|
307
|
+
"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-[80] max-h-[var(--radix-select-content-available-height)] min-w-[8rem] origin-[var(--radix-select-content-transform-origin)] overflow-x-hidden overflow-y-auto rounded-lg border border-border shadow-card",
|
|
308
|
+
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",
|
|
309
|
+
className
|
|
310
|
+
),
|
|
311
|
+
position,
|
|
312
|
+
...props,
|
|
313
|
+
children: [
|
|
314
|
+
/* @__PURE__ */ jsx3(SelectScrollUpButton, {}),
|
|
315
|
+
/* @__PURE__ */ jsx3(
|
|
316
|
+
SelectPrimitive.Viewport,
|
|
317
|
+
{
|
|
318
|
+
className: cn(
|
|
319
|
+
"p-1",
|
|
320
|
+
position === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"
|
|
321
|
+
),
|
|
322
|
+
children
|
|
323
|
+
}
|
|
324
|
+
),
|
|
325
|
+
/* @__PURE__ */ jsx3(SelectScrollDownButton, {})
|
|
326
|
+
]
|
|
327
|
+
}
|
|
328
|
+
) });
|
|
329
|
+
}
|
|
330
|
+
function SelectLabel({
|
|
331
|
+
className,
|
|
332
|
+
...props
|
|
333
|
+
}) {
|
|
334
|
+
return /* @__PURE__ */ jsx3(
|
|
335
|
+
SelectPrimitive.Label,
|
|
336
|
+
{
|
|
337
|
+
"data-slot": "select-label",
|
|
338
|
+
className: cn("px-2 py-1.5 text-xs font-medium text-muted-foreground", className),
|
|
339
|
+
...props
|
|
340
|
+
}
|
|
341
|
+
);
|
|
342
|
+
}
|
|
343
|
+
function SelectItem({
|
|
344
|
+
className,
|
|
345
|
+
children,
|
|
346
|
+
...props
|
|
347
|
+
}) {
|
|
348
|
+
return /* @__PURE__ */ jsxs2(
|
|
349
|
+
SelectPrimitive.Item,
|
|
350
|
+
{
|
|
351
|
+
"data-slot": "select-item",
|
|
352
|
+
className: cn(
|
|
353
|
+
"relative flex w-full cursor-default items-center gap-2 rounded-md py-1.5 pr-8 pl-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground",
|
|
354
|
+
className
|
|
355
|
+
),
|
|
356
|
+
...props,
|
|
357
|
+
children: [
|
|
358
|
+
/* @__PURE__ */ jsx3("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx3(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx3(CheckIcon2, { className: "size-4" }) }) }),
|
|
359
|
+
/* @__PURE__ */ jsx3(SelectPrimitive.ItemText, { children })
|
|
360
|
+
]
|
|
361
|
+
}
|
|
362
|
+
);
|
|
363
|
+
}
|
|
364
|
+
function SelectSeparator({
|
|
365
|
+
className,
|
|
366
|
+
...props
|
|
367
|
+
}) {
|
|
368
|
+
return /* @__PURE__ */ jsx3(
|
|
369
|
+
SelectPrimitive.Separator,
|
|
370
|
+
{
|
|
371
|
+
"data-slot": "select-separator",
|
|
372
|
+
className: cn("-mx-1 my-1 h-px bg-border", className),
|
|
373
|
+
...props
|
|
374
|
+
}
|
|
375
|
+
);
|
|
376
|
+
}
|
|
377
|
+
function SelectScrollUpButton({
|
|
378
|
+
className,
|
|
379
|
+
...props
|
|
380
|
+
}) {
|
|
381
|
+
return /* @__PURE__ */ jsx3(
|
|
382
|
+
SelectPrimitive.ScrollUpButton,
|
|
383
|
+
{
|
|
384
|
+
"data-slot": "select-scroll-up-button",
|
|
385
|
+
className: cn("flex cursor-default items-center justify-center py-1", className),
|
|
386
|
+
...props,
|
|
387
|
+
children: /* @__PURE__ */ jsx3(ChevronUpIcon, { className: "size-4" })
|
|
388
|
+
}
|
|
389
|
+
);
|
|
390
|
+
}
|
|
391
|
+
function SelectScrollDownButton({
|
|
392
|
+
className,
|
|
393
|
+
...props
|
|
394
|
+
}) {
|
|
395
|
+
return /* @__PURE__ */ jsx3(
|
|
396
|
+
SelectPrimitive.ScrollDownButton,
|
|
397
|
+
{
|
|
398
|
+
"data-slot": "select-scroll-down-button",
|
|
399
|
+
className: cn("flex cursor-default items-center justify-center py-1", className),
|
|
400
|
+
...props,
|
|
401
|
+
children: /* @__PURE__ */ jsx3(ChevronDownIcon, { className: "size-4" })
|
|
402
|
+
}
|
|
403
|
+
);
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
export {
|
|
407
|
+
DropdownMenu,
|
|
408
|
+
DropdownMenuTrigger,
|
|
409
|
+
DropdownMenuGroup,
|
|
410
|
+
DropdownMenuContent,
|
|
411
|
+
DropdownMenuItem,
|
|
412
|
+
DropdownMenuCheckboxItem,
|
|
413
|
+
DropdownMenuRadioGroup,
|
|
414
|
+
DropdownMenuRadioItem,
|
|
415
|
+
DropdownMenuLabel,
|
|
416
|
+
DropdownMenuSeparator,
|
|
417
|
+
DropdownMenuShortcut,
|
|
418
|
+
DropdownMenuSub,
|
|
419
|
+
DropdownMenuSubTrigger,
|
|
420
|
+
DropdownMenuSubContent,
|
|
421
|
+
Popover,
|
|
422
|
+
PopoverTrigger,
|
|
423
|
+
PopoverAnchor,
|
|
424
|
+
PopoverContent,
|
|
425
|
+
Select,
|
|
426
|
+
SelectGroup,
|
|
427
|
+
SelectValue,
|
|
428
|
+
SelectTrigger,
|
|
429
|
+
SelectContent,
|
|
430
|
+
SelectLabel,
|
|
431
|
+
SelectItem,
|
|
432
|
+
SelectSeparator,
|
|
433
|
+
SelectScrollUpButton,
|
|
434
|
+
SelectScrollDownButton
|
|
435
|
+
};
|
|
@@ -381,6 +381,42 @@ function DialogTitle({
|
|
|
381
381
|
}
|
|
382
382
|
);
|
|
383
383
|
}
|
|
384
|
+
function DialogDescription({
|
|
385
|
+
className,
|
|
386
|
+
...props
|
|
387
|
+
}) {
|
|
388
|
+
return /* @__PURE__ */ jsx3(
|
|
389
|
+
DialogPrimitive.Description,
|
|
390
|
+
{
|
|
391
|
+
"data-slot": "dialog-description",
|
|
392
|
+
className: cn("text-sm text-muted-foreground", className),
|
|
393
|
+
...props
|
|
394
|
+
}
|
|
395
|
+
);
|
|
396
|
+
}
|
|
397
|
+
function DialogHeader({ className, ...props }) {
|
|
398
|
+
return /* @__PURE__ */ jsx3(
|
|
399
|
+
"div",
|
|
400
|
+
{
|
|
401
|
+
"data-slot": "dialog-header",
|
|
402
|
+
className: cn("flex flex-col gap-1.5 text-center sm:text-left", className),
|
|
403
|
+
...props
|
|
404
|
+
}
|
|
405
|
+
);
|
|
406
|
+
}
|
|
407
|
+
function DialogFooter({ className, ...props }) {
|
|
408
|
+
return /* @__PURE__ */ jsx3(
|
|
409
|
+
"div",
|
|
410
|
+
{
|
|
411
|
+
"data-slot": "dialog-footer",
|
|
412
|
+
className: cn(
|
|
413
|
+
"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",
|
|
414
|
+
className
|
|
415
|
+
),
|
|
416
|
+
...props
|
|
417
|
+
}
|
|
418
|
+
);
|
|
419
|
+
}
|
|
384
420
|
|
|
385
421
|
// src/ui/avatar.tsx
|
|
386
422
|
import { Avatar as AvatarPrimitive } from "radix-ui";
|
|
@@ -568,6 +604,9 @@ export {
|
|
|
568
604
|
DialogOverlay,
|
|
569
605
|
DialogContent,
|
|
570
606
|
DialogTitle,
|
|
607
|
+
DialogDescription,
|
|
608
|
+
DialogHeader,
|
|
609
|
+
DialogFooter,
|
|
571
610
|
Avatar,
|
|
572
611
|
AvatarImage,
|
|
573
612
|
AvatarFallback,
|
|
@@ -16,10 +16,10 @@ import {
|
|
|
16
16
|
studioSecondaryChromeClass,
|
|
17
17
|
studioTopbarPillHeightClass,
|
|
18
18
|
toNum
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-VVTTLIGT.esm.js";
|
|
20
20
|
import {
|
|
21
21
|
PillSegmentedTabs
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-YNDXBN6C.esm.js";
|
|
23
23
|
import {
|
|
24
24
|
Button,
|
|
25
25
|
Dialog,
|
|
@@ -31,7 +31,7 @@ import {
|
|
|
31
31
|
TIMBAL_V2_SWITCH_TRACK_OFF,
|
|
32
32
|
TimbalV2Button,
|
|
33
33
|
cn
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-QKO67F4V.esm.js";
|
|
35
35
|
|
|
36
36
|
// src/app/agent-instructions.ts
|
|
37
37
|
var APP_KIT_AGENT_INSTRUCTIONS = `
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
studioSecondaryChromeClass,
|
|
3
3
|
studioTopbarPillHeightClass
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-VVTTLIGT.esm.js";
|
|
5
5
|
import {
|
|
6
6
|
cn
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-QKO67F4V.esm.js";
|
|
8
8
|
|
|
9
9
|
// src/chat/workforce-selector.tsx
|
|
10
10
|
import { ChevronDownIcon } from "lucide-react";
|