@epicbagel/saas-kit 1.25.0 → 1.26.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/README.md +24 -0
- package/dist/chunk-HO6DRDGD.js +158 -0
- package/dist/chunk-NXFZULS3.js +58 -0
- package/dist/chunk-U7XNNLVP.cjs +58 -0
- package/dist/chunk-ZBWL7OUW.cjs +158 -0
- package/dist/primitives/board-view.cjs +3 -3
- package/dist/primitives/board-view.js +2 -2
- package/dist/primitives/chat-turn-navigator.cjs +16 -0
- package/dist/primitives/chat-turn-navigator.d.cts +40 -0
- package/dist/primitives/chat-turn-navigator.d.ts +40 -0
- package/dist/primitives/chat-turn-navigator.js +16 -0
- package/dist/primitives/chat.cjs +68 -22
- package/dist/primitives/chat.d.cts +44 -1
- package/dist/primitives/chat.d.ts +44 -1
- package/dist/primitives/chat.js +58 -12
- package/dist/primitives/notes.cjs +3 -3
- package/dist/primitives/notes.js +3 -3
- package/dist/primitives/person-avatar.cjs +4 -50
- package/dist/primitives/person-avatar.js +5 -51
- package/dist/primitives/resource-list.cjs +3 -3
- package/dist/primitives/resource-list.js +2 -2
- package/dist/primitives/workflow-assistant.cjs +73 -66
- package/dist/primitives/workflow-assistant.js +73 -66
- package/package.json +11 -1
- package/dist/{chunk-LQPJGZIE.js → chunk-JS6BLIWL.js} +3 -3
- package/dist/{chunk-FBVZRRA4.cjs → chunk-MOJHETNO.cjs} +2 -2
|
@@ -1,56 +1,10 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
import
|
|
8
|
-
cn
|
|
9
|
-
} from "../chunk-G6SRSWXB.js";
|
|
10
|
-
|
|
11
|
-
// src/primitives/person-avatar.tsx
|
|
12
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
13
|
-
function initials(name) {
|
|
14
|
-
const words = name.trim().split(/\s+/).filter(Boolean);
|
|
15
|
-
const first = words[0];
|
|
16
|
-
if (!first) return "?";
|
|
17
|
-
const last = words[words.length - 1];
|
|
18
|
-
if (words.length === 1 || !last) return first.slice(0, 2).toUpperCase();
|
|
19
|
-
return (first.charAt(0) + last.charAt(0)).toUpperCase();
|
|
20
|
-
}
|
|
21
|
-
function PersonAvatar({
|
|
22
|
-
name,
|
|
23
|
-
photoUrl,
|
|
24
|
-
size,
|
|
25
|
-
className,
|
|
26
|
-
fallbackClassName,
|
|
27
|
-
fallbackSize = "default"
|
|
28
|
-
}) {
|
|
29
|
-
return /* @__PURE__ */ jsxs(
|
|
30
|
-
Avatar,
|
|
31
|
-
{
|
|
32
|
-
className: cn("shrink-0 overflow-hidden rounded-full bg-muted", className),
|
|
33
|
-
style: size != null ? { width: size, height: size } : void 0,
|
|
34
|
-
children: [
|
|
35
|
-
photoUrl ? /* @__PURE__ */ jsx(
|
|
36
|
-
AvatarImage,
|
|
37
|
-
{
|
|
38
|
-
src: photoUrl,
|
|
39
|
-
alt: name,
|
|
40
|
-
className: "h-full w-full object-cover"
|
|
41
|
-
}
|
|
42
|
-
) : null,
|
|
43
|
-
/* @__PURE__ */ jsx(
|
|
44
|
-
AvatarFallback,
|
|
45
|
-
{
|
|
46
|
-
className: cn("h-full w-full font-medium", fallbackSize === "default" ? "text-xs" : "text-xl", fallbackClassName),
|
|
47
|
-
children: initials(name)
|
|
48
|
-
}
|
|
49
|
-
)
|
|
50
|
-
]
|
|
51
|
-
}
|
|
52
|
-
);
|
|
53
|
-
}
|
|
3
|
+
PersonAvatar,
|
|
4
|
+
initials
|
|
5
|
+
} from "../chunk-NXFZULS3.js";
|
|
6
|
+
import "../chunk-3OWGL4Q2.js";
|
|
7
|
+
import "../chunk-G6SRSWXB.js";
|
|
54
8
|
export {
|
|
55
9
|
PersonAvatar,
|
|
56
10
|
initials
|
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
"use client";
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var _chunkMOJHETNOcjs = require('../chunk-MOJHETNO.cjs');
|
|
6
6
|
require('../chunk-EUFV25KL.cjs');
|
|
7
7
|
require('../chunk-7YCKII7G.cjs');
|
|
8
8
|
require('../chunk-MW67PHAQ.cjs');
|
|
9
9
|
require('../chunk-PPX2VPGI.cjs');
|
|
10
10
|
require('../chunk-WNXVGUBF.cjs');
|
|
11
11
|
require('../chunk-IQZLUT2Y.cjs');
|
|
12
|
+
require('../chunk-LELBCBDT.cjs');
|
|
12
13
|
require('../chunk-U2NES7VR.cjs');
|
|
13
14
|
require('../chunk-JH4GAGOQ.cjs');
|
|
14
|
-
require('../chunk-LELBCBDT.cjs');
|
|
15
15
|
require('../chunk-YYFVG5A6.cjs');
|
|
16
16
|
require('../chunk-XLIAY56V.cjs');
|
|
17
17
|
require('../chunk-V5SPFLKW.cjs');
|
|
@@ -25,4 +25,4 @@ require('../chunk-KWLSBTB2.cjs');
|
|
|
25
25
|
require('../chunk-R35FT53G.cjs');
|
|
26
26
|
|
|
27
27
|
|
|
28
|
-
exports.ResourceList =
|
|
28
|
+
exports.ResourceList = _chunkMOJHETNOcjs.ResourceList;
|
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
"use client";
|
|
3
3
|
import {
|
|
4
4
|
ResourceList
|
|
5
|
-
} from "../chunk-
|
|
5
|
+
} from "../chunk-JS6BLIWL.js";
|
|
6
6
|
import "../chunk-43UMPZWD.js";
|
|
7
7
|
import "../chunk-EEHIMPD7.js";
|
|
8
8
|
import "../chunk-UFFHGKI7.js";
|
|
9
9
|
import "../chunk-G76JANB4.js";
|
|
10
10
|
import "../chunk-YG7FBJRM.js";
|
|
11
11
|
import "../chunk-E2TQMDO7.js";
|
|
12
|
+
import "../chunk-H2O6NMLZ.js";
|
|
12
13
|
import "../chunk-ZRLUUZHK.js";
|
|
13
14
|
import "../chunk-OICAYRVH.js";
|
|
14
|
-
import "../chunk-H2O6NMLZ.js";
|
|
15
15
|
import "../chunk-62UTAG2C.js";
|
|
16
16
|
import "../chunk-LELFPLTE.js";
|
|
17
17
|
import "../chunk-J6NXDZR5.js";
|
|
@@ -118,75 +118,82 @@ var WorkflowAssistant = _react.forwardRef.call(void 0, function WorkflowAssistan
|
|
|
118
118
|
]
|
|
119
119
|
}
|
|
120
120
|
);
|
|
121
|
-
return
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
121
|
+
return (
|
|
122
|
+
// On a phone the panel is a sheet docked to the bottom edge, like Drawer:
|
|
123
|
+
// its background runs under the home indicator (and a browser's floating
|
|
124
|
+
// toolbar) with its content kept above them. A floating card there left
|
|
125
|
+
// the page showing beneath it. From sm it is a card in the corner.
|
|
126
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
127
|
+
"aside",
|
|
128
|
+
{
|
|
129
|
+
ref,
|
|
130
|
+
"data-slot": "workflow-assistant",
|
|
131
|
+
"aria-labelledby": titleId,
|
|
132
|
+
className: _chunkKWLSBTB2cjs.cn.call(void 0,
|
|
133
|
+
"fixed inset-x-0 bottom-0 z-40 flex min-h-0 flex-col overflow-y-auto overscroll-contain rounded-t-[10px] border-t bg-background pb-[env(safe-area-inset-bottom)] shadow-[0_-8px_30px_rgb(0_0_0/0.12)]",
|
|
134
|
+
"sm:inset-x-auto sm:bottom-[calc(1rem+env(safe-area-inset-bottom))] sm:right-6 sm:w-[28rem] sm:rounded-2xl sm:border sm:pb-0 sm:shadow-xl md:right-8",
|
|
135
|
+
expanded && showingSummaries ? "h-[calc(100dvh-6rem)]" : "max-h-[min(36rem,70dvh)]",
|
|
136
|
+
className
|
|
137
|
+
),
|
|
138
|
+
children: [
|
|
139
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "sticky top-0 z-10 flex shrink-0 items-start gap-2 border-b bg-background p-3", children: [
|
|
140
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-w-0 flex-1", children: [
|
|
141
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { ref: heading, tabIndex: -1, id: titleId, className: "text-sm font-semibold outline-none", children: title }),
|
|
142
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { title: context, className: "mt-1 truncate text-xs text-muted-foreground", children: context })
|
|
143
|
+
] }),
|
|
144
|
+
onExpandedChange && showingSummaries && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
145
|
+
_chunkJDEXZGIYcjs.Button,
|
|
146
|
+
{
|
|
147
|
+
type: "button",
|
|
148
|
+
variant: "ghost",
|
|
149
|
+
size: "icon",
|
|
150
|
+
"aria-label": expanded ? _nullishCoalesce(_optionalChain([labels, 'optionalAccess', _15 => _15.collapse]), () => ( "Reduce panel")) : _nullishCoalesce(_optionalChain([labels, 'optionalAccess', _16 => _16.expand]), () => ( "Expand panel")),
|
|
151
|
+
onClick: () => onExpandedChange(!expanded),
|
|
152
|
+
children: expanded ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Minimize2, { "aria-hidden": "true" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Maximize2, { "aria-hidden": "true" })
|
|
153
|
+
}
|
|
154
|
+
),
|
|
155
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJDEXZGIYcjs.Button, { type: "button", variant: "ghost", size: "icon", "aria-label": _nullishCoalesce(_optionalChain([labels, 'optionalAccess', _17 => _17.minimize]), () => ( "Minimize voice review")), onClick: () => toggle(false), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronDown, { "aria-hidden": "true" }) })
|
|
137
156
|
] }),
|
|
138
|
-
|
|
139
|
-
|
|
157
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0", "data-slot": "workflow-assistant-voice", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
158
|
+
_chunkPNI354BYcjs.VoiceSessionControls,
|
|
140
159
|
{
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
size: "
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
160
|
+
...voiceSession,
|
|
161
|
+
disabled: Boolean(startDisabled),
|
|
162
|
+
size: "hero",
|
|
163
|
+
onEnd: () => {
|
|
164
|
+
_optionalChain([heading, 'access', _18 => _18.current, 'optionalAccess', _19 => _19.focus, 'call', _20 => _20()]);
|
|
165
|
+
voiceSession.onEnd();
|
|
166
|
+
},
|
|
167
|
+
actions: summaries.length > 0 ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
168
|
+
voiceSession.actions,
|
|
169
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
170
|
+
_chunkPNI354BYcjs.VoiceSessionAction,
|
|
171
|
+
{
|
|
172
|
+
label: showingSummaries ? _nullishCoalesce(_optionalChain([labels, 'optionalAccess', _21 => _21.hideSummaries]), () => ( "Hide actions")) : _nullishCoalesce(_optionalChain([labels, 'optionalAccess', _22 => _22.showSummaries]), () => ( "Show actions")),
|
|
173
|
+
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ListChecks, { "aria-hidden": "true" }),
|
|
174
|
+
"aria-expanded": showingSummaries,
|
|
175
|
+
"aria-controls": summariesId,
|
|
176
|
+
className: "aria-expanded:bg-muted",
|
|
177
|
+
onClick: () => setSummariesOpen(!showingSummaries)
|
|
178
|
+
}
|
|
179
|
+
)
|
|
180
|
+
] }) : voiceSession.actions,
|
|
181
|
+
className: _chunkKWLSBTB2cjs.cn.call(void 0, !active && "justify-center px-4 py-6 text-center")
|
|
147
182
|
}
|
|
148
|
-
),
|
|
149
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
...
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
voiceSession.actions,
|
|
163
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
164
|
-
_chunkPNI354BYcjs.VoiceSessionAction,
|
|
165
|
-
{
|
|
166
|
-
label: showingSummaries ? _nullishCoalesce(_optionalChain([labels, 'optionalAccess', _21 => _21.hideSummaries]), () => ( "Hide actions")) : _nullishCoalesce(_optionalChain([labels, 'optionalAccess', _22 => _22.showSummaries]), () => ( "Show actions")),
|
|
167
|
-
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ListChecks, { "aria-hidden": "true" }),
|
|
168
|
-
"aria-expanded": showingSummaries,
|
|
169
|
-
"aria-controls": summariesId,
|
|
170
|
-
className: "aria-expanded:bg-muted",
|
|
171
|
-
onClick: () => setSummariesOpen(!showingSummaries)
|
|
172
|
-
}
|
|
173
|
-
)
|
|
174
|
-
] }) : voiceSession.actions,
|
|
175
|
-
className: _chunkKWLSBTB2cjs.cn.call(void 0, !active && "justify-center px-4 py-6 text-center")
|
|
176
|
-
}
|
|
177
|
-
) }),
|
|
178
|
-
description && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0 px-4 py-3 text-sm text-muted-foreground", children: description }),
|
|
179
|
-
error && (voiceSession.state !== "error" || error !== voiceSession.error) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { role: "alert", className: "shrink-0 px-4 py-2 text-sm text-destructive", children: error }),
|
|
180
|
-
pending && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { role: "status", className: "shrink-0 px-4 py-2 text-sm text-muted-foreground", children: "Applying your instructions\u2026" }),
|
|
181
|
-
summaries.length > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "section", { id: summariesId, hidden: !showingSummaries, "aria-label": "Action summaries", className: "min-h-20 flex-1 overflow-y-auto border-t px-4 py-3", children: [
|
|
182
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "mb-3 text-xs font-medium text-muted-foreground", children: "Action summaries" }),
|
|
183
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "ol", { className: "space-y-3", "aria-live": "polite", "aria-relevant": "additions", children: [...summaries].reverse().map((summary) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "li", { className: "space-y-1 border-b pb-3 last:border-0 last:pb-0", children: [
|
|
184
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-xs text-muted-foreground", children: summary.context }),
|
|
185
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "whitespace-pre-wrap break-words text-sm", children: summary.body })
|
|
186
|
-
] }, summary.id)) })
|
|
187
|
-
] })
|
|
188
|
-
]
|
|
189
|
-
}
|
|
183
|
+
) }),
|
|
184
|
+
description && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0 px-4 py-3 text-sm text-muted-foreground", children: description }),
|
|
185
|
+
error && (voiceSession.state !== "error" || error !== voiceSession.error) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { role: "alert", className: "shrink-0 px-4 py-2 text-sm text-destructive", children: error }),
|
|
186
|
+
pending && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { role: "status", className: "shrink-0 px-4 py-2 text-sm text-muted-foreground", children: "Applying your instructions\u2026" }),
|
|
187
|
+
summaries.length > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "section", { id: summariesId, hidden: !showingSummaries, "aria-label": "Action summaries", className: "min-h-20 flex-1 overflow-y-auto border-t px-4 py-3", children: [
|
|
188
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "mb-3 text-xs font-medium text-muted-foreground", children: "Action summaries" }),
|
|
189
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "ol", { className: "space-y-3", "aria-live": "polite", "aria-relevant": "additions", children: [...summaries].reverse().map((summary) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "li", { className: "space-y-1 border-b pb-3 last:border-0 last:pb-0", children: [
|
|
190
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-xs text-muted-foreground", children: summary.context }),
|
|
191
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "whitespace-pre-wrap break-words text-sm", children: summary.body })
|
|
192
|
+
] }, summary.id)) })
|
|
193
|
+
] })
|
|
194
|
+
]
|
|
195
|
+
}
|
|
196
|
+
)
|
|
190
197
|
);
|
|
191
198
|
});
|
|
192
199
|
|
|
@@ -118,75 +118,82 @@ var WorkflowAssistant = forwardRef(function WorkflowAssistant2({
|
|
|
118
118
|
]
|
|
119
119
|
}
|
|
120
120
|
);
|
|
121
|
-
return
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
121
|
+
return (
|
|
122
|
+
// On a phone the panel is a sheet docked to the bottom edge, like Drawer:
|
|
123
|
+
// its background runs under the home indicator (and a browser's floating
|
|
124
|
+
// toolbar) with its content kept above them. A floating card there left
|
|
125
|
+
// the page showing beneath it. From sm it is a card in the corner.
|
|
126
|
+
/* @__PURE__ */ jsxs(
|
|
127
|
+
"aside",
|
|
128
|
+
{
|
|
129
|
+
ref,
|
|
130
|
+
"data-slot": "workflow-assistant",
|
|
131
|
+
"aria-labelledby": titleId,
|
|
132
|
+
className: cn(
|
|
133
|
+
"fixed inset-x-0 bottom-0 z-40 flex min-h-0 flex-col overflow-y-auto overscroll-contain rounded-t-[10px] border-t bg-background pb-[env(safe-area-inset-bottom)] shadow-[0_-8px_30px_rgb(0_0_0/0.12)]",
|
|
134
|
+
"sm:inset-x-auto sm:bottom-[calc(1rem+env(safe-area-inset-bottom))] sm:right-6 sm:w-[28rem] sm:rounded-2xl sm:border sm:pb-0 sm:shadow-xl md:right-8",
|
|
135
|
+
expanded && showingSummaries ? "h-[calc(100dvh-6rem)]" : "max-h-[min(36rem,70dvh)]",
|
|
136
|
+
className
|
|
137
|
+
),
|
|
138
|
+
children: [
|
|
139
|
+
/* @__PURE__ */ jsxs("div", { className: "sticky top-0 z-10 flex shrink-0 items-start gap-2 border-b bg-background p-3", children: [
|
|
140
|
+
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
141
|
+
/* @__PURE__ */ jsx("h2", { ref: heading, tabIndex: -1, id: titleId, className: "text-sm font-semibold outline-none", children: title }),
|
|
142
|
+
/* @__PURE__ */ jsx("p", { title: context, className: "mt-1 truncate text-xs text-muted-foreground", children: context })
|
|
143
|
+
] }),
|
|
144
|
+
onExpandedChange && showingSummaries && /* @__PURE__ */ jsx(
|
|
145
|
+
Button,
|
|
146
|
+
{
|
|
147
|
+
type: "button",
|
|
148
|
+
variant: "ghost",
|
|
149
|
+
size: "icon",
|
|
150
|
+
"aria-label": expanded ? labels?.collapse ?? "Reduce panel" : labels?.expand ?? "Expand panel",
|
|
151
|
+
onClick: () => onExpandedChange(!expanded),
|
|
152
|
+
children: expanded ? /* @__PURE__ */ jsx(Minimize2, { "aria-hidden": "true" }) : /* @__PURE__ */ jsx(Maximize2, { "aria-hidden": "true" })
|
|
153
|
+
}
|
|
154
|
+
),
|
|
155
|
+
/* @__PURE__ */ jsx(Button, { type: "button", variant: "ghost", size: "icon", "aria-label": labels?.minimize ?? "Minimize voice review", onClick: () => toggle(false), children: /* @__PURE__ */ jsx(ChevronDown, { "aria-hidden": "true" }) })
|
|
137
156
|
] }),
|
|
138
|
-
|
|
139
|
-
|
|
157
|
+
/* @__PURE__ */ jsx("div", { className: "shrink-0", "data-slot": "workflow-assistant-voice", children: /* @__PURE__ */ jsx(
|
|
158
|
+
VoiceSessionControls,
|
|
140
159
|
{
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
size: "
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
160
|
+
...voiceSession,
|
|
161
|
+
disabled: Boolean(startDisabled),
|
|
162
|
+
size: "hero",
|
|
163
|
+
onEnd: () => {
|
|
164
|
+
heading.current?.focus();
|
|
165
|
+
voiceSession.onEnd();
|
|
166
|
+
},
|
|
167
|
+
actions: summaries.length > 0 ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
168
|
+
voiceSession.actions,
|
|
169
|
+
/* @__PURE__ */ jsx(
|
|
170
|
+
VoiceSessionAction,
|
|
171
|
+
{
|
|
172
|
+
label: showingSummaries ? labels?.hideSummaries ?? "Hide actions" : labels?.showSummaries ?? "Show actions",
|
|
173
|
+
icon: /* @__PURE__ */ jsx(ListChecks, { "aria-hidden": "true" }),
|
|
174
|
+
"aria-expanded": showingSummaries,
|
|
175
|
+
"aria-controls": summariesId,
|
|
176
|
+
className: "aria-expanded:bg-muted",
|
|
177
|
+
onClick: () => setSummariesOpen(!showingSummaries)
|
|
178
|
+
}
|
|
179
|
+
)
|
|
180
|
+
] }) : voiceSession.actions,
|
|
181
|
+
className: cn(!active && "justify-center px-4 py-6 text-center")
|
|
147
182
|
}
|
|
148
|
-
),
|
|
149
|
-
/* @__PURE__ */ jsx(
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
...
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
voiceSession.actions,
|
|
163
|
-
/* @__PURE__ */ jsx(
|
|
164
|
-
VoiceSessionAction,
|
|
165
|
-
{
|
|
166
|
-
label: showingSummaries ? labels?.hideSummaries ?? "Hide actions" : labels?.showSummaries ?? "Show actions",
|
|
167
|
-
icon: /* @__PURE__ */ jsx(ListChecks, { "aria-hidden": "true" }),
|
|
168
|
-
"aria-expanded": showingSummaries,
|
|
169
|
-
"aria-controls": summariesId,
|
|
170
|
-
className: "aria-expanded:bg-muted",
|
|
171
|
-
onClick: () => setSummariesOpen(!showingSummaries)
|
|
172
|
-
}
|
|
173
|
-
)
|
|
174
|
-
] }) : voiceSession.actions,
|
|
175
|
-
className: cn(!active && "justify-center px-4 py-6 text-center")
|
|
176
|
-
}
|
|
177
|
-
) }),
|
|
178
|
-
description && /* @__PURE__ */ jsx("div", { className: "shrink-0 px-4 py-3 text-sm text-muted-foreground", children: description }),
|
|
179
|
-
error && (voiceSession.state !== "error" || error !== voiceSession.error) && /* @__PURE__ */ jsx("p", { role: "alert", className: "shrink-0 px-4 py-2 text-sm text-destructive", children: error }),
|
|
180
|
-
pending && /* @__PURE__ */ jsx("p", { role: "status", className: "shrink-0 px-4 py-2 text-sm text-muted-foreground", children: "Applying your instructions\u2026" }),
|
|
181
|
-
summaries.length > 0 && /* @__PURE__ */ jsxs("section", { id: summariesId, hidden: !showingSummaries, "aria-label": "Action summaries", className: "min-h-20 flex-1 overflow-y-auto border-t px-4 py-3", children: [
|
|
182
|
-
/* @__PURE__ */ jsx("h3", { className: "mb-3 text-xs font-medium text-muted-foreground", children: "Action summaries" }),
|
|
183
|
-
/* @__PURE__ */ jsx("ol", { className: "space-y-3", "aria-live": "polite", "aria-relevant": "additions", children: [...summaries].reverse().map((summary) => /* @__PURE__ */ jsxs("li", { className: "space-y-1 border-b pb-3 last:border-0 last:pb-0", children: [
|
|
184
|
-
/* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: summary.context }),
|
|
185
|
-
/* @__PURE__ */ jsx("p", { className: "whitespace-pre-wrap break-words text-sm", children: summary.body })
|
|
186
|
-
] }, summary.id)) })
|
|
187
|
-
] })
|
|
188
|
-
]
|
|
189
|
-
}
|
|
183
|
+
) }),
|
|
184
|
+
description && /* @__PURE__ */ jsx("div", { className: "shrink-0 px-4 py-3 text-sm text-muted-foreground", children: description }),
|
|
185
|
+
error && (voiceSession.state !== "error" || error !== voiceSession.error) && /* @__PURE__ */ jsx("p", { role: "alert", className: "shrink-0 px-4 py-2 text-sm text-destructive", children: error }),
|
|
186
|
+
pending && /* @__PURE__ */ jsx("p", { role: "status", className: "shrink-0 px-4 py-2 text-sm text-muted-foreground", children: "Applying your instructions\u2026" }),
|
|
187
|
+
summaries.length > 0 && /* @__PURE__ */ jsxs("section", { id: summariesId, hidden: !showingSummaries, "aria-label": "Action summaries", className: "min-h-20 flex-1 overflow-y-auto border-t px-4 py-3", children: [
|
|
188
|
+
/* @__PURE__ */ jsx("h3", { className: "mb-3 text-xs font-medium text-muted-foreground", children: "Action summaries" }),
|
|
189
|
+
/* @__PURE__ */ jsx("ol", { className: "space-y-3", "aria-live": "polite", "aria-relevant": "additions", children: [...summaries].reverse().map((summary) => /* @__PURE__ */ jsxs("li", { className: "space-y-1 border-b pb-3 last:border-0 last:pb-0", children: [
|
|
190
|
+
/* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: summary.context }),
|
|
191
|
+
/* @__PURE__ */ jsx("p", { className: "whitespace-pre-wrap break-words text-sm", children: summary.body })
|
|
192
|
+
] }, summary.id)) })
|
|
193
|
+
] })
|
|
194
|
+
]
|
|
195
|
+
}
|
|
196
|
+
)
|
|
190
197
|
);
|
|
191
198
|
});
|
|
192
199
|
export {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@epicbagel/saas-kit",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.26.0",
|
|
4
4
|
"description": "Accessible React primitives, layout components and design tokens for SaaS apps, built on Radix UI and Tailwind CSS v4.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"keywords": [
|
|
@@ -240,6 +240,16 @@
|
|
|
240
240
|
"default": "./dist/primitives/card.cjs"
|
|
241
241
|
}
|
|
242
242
|
},
|
|
243
|
+
"./primitives/chat-turn-navigator": {
|
|
244
|
+
"import": {
|
|
245
|
+
"types": "./dist/primitives/chat-turn-navigator.d.ts",
|
|
246
|
+
"default": "./dist/primitives/chat-turn-navigator.js"
|
|
247
|
+
},
|
|
248
|
+
"require": {
|
|
249
|
+
"types": "./dist/primitives/chat-turn-navigator.d.cts",
|
|
250
|
+
"default": "./dist/primitives/chat-turn-navigator.cjs"
|
|
251
|
+
}
|
|
252
|
+
},
|
|
243
253
|
"./primitives/chat": {
|
|
244
254
|
"import": {
|
|
245
255
|
"types": "./dist/primitives/chat.d.ts",
|
|
@@ -8,15 +8,15 @@ import {
|
|
|
8
8
|
import {
|
|
9
9
|
FilterBar
|
|
10
10
|
} from "./chunk-UFFHGKI7.js";
|
|
11
|
+
import {
|
|
12
|
+
Heading
|
|
13
|
+
} from "./chunk-H2O6NMLZ.js";
|
|
11
14
|
import {
|
|
12
15
|
Tooltip,
|
|
13
16
|
TooltipContent,
|
|
14
17
|
TooltipProvider,
|
|
15
18
|
TooltipTrigger
|
|
16
19
|
} from "./chunk-ZRLUUZHK.js";
|
|
17
|
-
import {
|
|
18
|
-
Heading
|
|
19
|
-
} from "./chunk-H2O6NMLZ.js";
|
|
20
20
|
import {
|
|
21
21
|
BoardColumnComponent,
|
|
22
22
|
MobileBoardView
|
|
@@ -10,13 +10,13 @@ var _chunk7YCKII7Gcjs = require('./chunk-7YCKII7G.cjs');
|
|
|
10
10
|
var _chunkMW67PHAQcjs = require('./chunk-MW67PHAQ.cjs');
|
|
11
11
|
|
|
12
12
|
|
|
13
|
+
var _chunkLELBCBDTcjs = require('./chunk-LELBCBDT.cjs');
|
|
13
14
|
|
|
14
15
|
|
|
15
16
|
|
|
16
|
-
var _chunkU2NES7VRcjs = require('./chunk-U2NES7VR.cjs');
|
|
17
17
|
|
|
18
18
|
|
|
19
|
-
var
|
|
19
|
+
var _chunkU2NES7VRcjs = require('./chunk-U2NES7VR.cjs');
|
|
20
20
|
|
|
21
21
|
|
|
22
22
|
|