@epicbagel/saas-kit 1.7.0 → 1.10.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.
Files changed (97) hide show
  1. package/README.md +60 -0
  2. package/THIRD_PARTY_NOTICES.md +14 -0
  3. package/dist/chunk-2BSFYU22.cjs +71 -0
  4. package/dist/{chunk-GTVSRRE3.cjs → chunk-BGCNGYPL.cjs} +2 -2
  5. package/dist/{chunk-QTWJQQDH.cjs → chunk-FBVZRRA4.cjs} +6 -6
  6. package/dist/chunk-GJ7S3L6R.js +71 -0
  7. package/dist/{chunk-LKPM6DQP.cjs → chunk-HTCW6AEH.cjs} +51 -72
  8. package/dist/{chunk-F3B4M6DU.js → chunk-HTPPNW74.js} +1 -1
  9. package/dist/chunk-KUG4ONYC.js +127 -0
  10. package/dist/{chunk-TI57GAQP.js → chunk-KWV5KTOA.js} +48 -69
  11. package/dist/{chunk-JN6JOSZG.js → chunk-LQPJGZIE.js} +7 -7
  12. package/dist/chunk-M2ZNC3TK.js +316 -0
  13. package/dist/chunk-O6F3LVZY.cjs +316 -0
  14. package/dist/chunk-UW67GSZ4.cjs +127 -0
  15. package/dist/chunk-VBKJXNEL.js +157 -0
  16. package/dist/chunk-XB2D4NQK.cjs +157 -0
  17. package/dist/hooks/use-agent-audio-visualizer-bar.cjs +8 -0
  18. package/dist/hooks/use-agent-audio-visualizer-bar.d.cts +4 -0
  19. package/dist/hooks/use-agent-audio-visualizer-bar.d.ts +4 -0
  20. package/dist/hooks/use-agent-audio-visualizer-bar.js +8 -0
  21. package/dist/hooks/use-dictation.cjs +10 -0
  22. package/dist/hooks/use-dictation.d.cts +56 -0
  23. package/dist/hooks/use-dictation.d.ts +56 -0
  24. package/dist/hooks/use-dictation.js +10 -0
  25. package/dist/primitives/activity-feed.cjs +3 -3
  26. package/dist/primitives/activity-feed.js +4 -4
  27. package/dist/primitives/agent-audio-visualizer-bar.cjs +16 -0
  28. package/dist/primitives/agent-audio-visualizer-bar.d.cts +75 -0
  29. package/dist/primitives/agent-audio-visualizer-bar.d.ts +75 -0
  30. package/dist/primitives/agent-audio-visualizer-bar.js +16 -0
  31. package/dist/primitives/archive-confirmation-dialog.cjs +2 -2
  32. package/dist/primitives/archive-confirmation-dialog.js +3 -3
  33. package/dist/primitives/attachment.d.cts +1 -1
  34. package/dist/primitives/attachment.d.ts +1 -1
  35. package/dist/primitives/badge.d.cts +1 -1
  36. package/dist/primitives/badge.d.ts +1 -1
  37. package/dist/primitives/board-view.cjs +6 -6
  38. package/dist/primitives/board-view.js +5 -5
  39. package/dist/primitives/bubble.d.cts +1 -1
  40. package/dist/primitives/bubble.d.ts +1 -1
  41. package/dist/primitives/button.d.cts +3 -3
  42. package/dist/primitives/button.d.ts +3 -3
  43. package/dist/primitives/chat.cjs +55 -24
  44. package/dist/primitives/chat.d.cts +6 -1
  45. package/dist/primitives/chat.d.ts +6 -1
  46. package/dist/primitives/chat.js +52 -21
  47. package/dist/primitives/code-block.cjs +4 -4
  48. package/dist/primitives/code-block.js +3 -3
  49. package/dist/primitives/connection.cjs +6 -6
  50. package/dist/primitives/connection.js +7 -7
  51. package/dist/primitives/copy-button.cjs +3 -3
  52. package/dist/primitives/copy-button.js +2 -2
  53. package/dist/primitives/dictation-provider.cjs +8 -0
  54. package/dist/primitives/dictation-provider.d.cts +2 -0
  55. package/dist/primitives/dictation-provider.d.ts +2 -0
  56. package/dist/primitives/dictation-provider.js +8 -0
  57. package/dist/primitives/editable-list.cjs +1 -1
  58. package/dist/primitives/editable-list.js +1 -1
  59. package/dist/primitives/file-dropzone.cjs +3 -3
  60. package/dist/primitives/file-dropzone.js +2 -2
  61. package/dist/primitives/file-preview.cjs +6 -6
  62. package/dist/primitives/file-preview.js +5 -5
  63. package/dist/primitives/filter-bar.cjs +4 -4
  64. package/dist/primitives/filter-bar.js +3 -3
  65. package/dist/primitives/input-group.d.cts +1 -1
  66. package/dist/primitives/input-group.d.ts +1 -1
  67. package/dist/primitives/item.d.cts +2 -2
  68. package/dist/primitives/item.d.ts +2 -2
  69. package/dist/primitives/resource-list.cjs +6 -6
  70. package/dist/primitives/resource-list.js +5 -5
  71. package/dist/primitives/section-header.d.cts +1 -1
  72. package/dist/primitives/section-header.d.ts +1 -1
  73. package/dist/primitives/section.cjs +2 -2
  74. package/dist/primitives/section.js +3 -3
  75. package/dist/primitives/sheet.d.cts +1 -1
  76. package/dist/primitives/sheet.d.ts +1 -1
  77. package/dist/primitives/switch-field.cjs +2 -2
  78. package/dist/primitives/switch-field.js +3 -3
  79. package/dist/primitives/theme-selector.cjs +3 -3
  80. package/dist/primitives/theme-selector.js +4 -4
  81. package/dist/primitives/toggle-group.d.cts +2 -2
  82. package/dist/primitives/toggle-group.d.ts +2 -2
  83. package/dist/primitives/toggle.d.cts +2 -2
  84. package/dist/primitives/toggle.d.ts +2 -2
  85. package/dist/primitives/voice-dictation-button.cjs +3 -2
  86. package/dist/primitives/voice-dictation-button.js +2 -1
  87. package/dist/primitives/voice-session-controls.cjs +12 -0
  88. package/dist/primitives/voice-session-controls.d.cts +29 -0
  89. package/dist/primitives/voice-session-controls.d.ts +29 -0
  90. package/dist/primitives/voice-session-controls.js +12 -0
  91. package/package.json +51 -1
  92. package/dist/{chunk-HREEZUKL.js → chunk-DILYV4FI.js} +3 -3
  93. package/dist/{chunk-MU4F3DSW.cjs → chunk-FARCLWLU.cjs} +2 -2
  94. package/dist/{chunk-CRTH5GJ5.cjs → chunk-MW67PHAQ.cjs} +3 -3
  95. package/dist/{chunk-KNKV25WS.js → chunk-UFFHGKI7.js} +3 -3
  96. package/dist/{chunk-HBRVOGLA.js → chunk-WHDHUYS6.js} +3 -3
  97. package/dist/{chunk-Z3JJSNR5.cjs → chunk-ZLEM2SAU.cjs} +2 -2
@@ -2,9 +2,10 @@
2
2
  "use client";
3
3
 
4
4
 
5
- var _chunkLKPM6DQPcjs = require('../chunk-LKPM6DQP.cjs');
5
+ var _chunkHTCW6AEHcjs = require('../chunk-HTCW6AEH.cjs');
6
6
  require('../chunk-JDEXZGIY.cjs');
7
7
  require('../chunk-KWLSBTB2.cjs');
8
+ require('../chunk-O6F3LVZY.cjs');
8
9
 
9
10
 
10
- exports.VoiceDictationButton = _chunkLKPM6DQPcjs.VoiceDictationButton;
11
+ exports.VoiceDictationButton = _chunkHTCW6AEHcjs.VoiceDictationButton;
@@ -2,9 +2,10 @@
2
2
  "use client";
3
3
  import {
4
4
  VoiceDictationButton
5
- } from "../chunk-TI57GAQP.js";
5
+ } from "../chunk-KWV5KTOA.js";
6
6
  import "../chunk-W326GKML.js";
7
7
  import "../chunk-G6SRSWXB.js";
8
+ import "../chunk-M2ZNC3TK.js";
8
9
  export {
9
10
  VoiceDictationButton
10
11
  };
@@ -0,0 +1,12 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
+ "use client";
3
+
4
+
5
+ var _chunkUW67GSZ4cjs = require('../chunk-UW67GSZ4.cjs');
6
+ require('../chunk-XB2D4NQK.cjs');
7
+ require('../chunk-JDEXZGIY.cjs');
8
+ require('../chunk-KWLSBTB2.cjs');
9
+ require('../chunk-2BSFYU22.cjs');
10
+
11
+
12
+ exports.VoiceSessionControls = _chunkUW67GSZ4cjs.VoiceSessionControls;
@@ -0,0 +1,29 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ type VoiceSessionState = "disconnected" | "connecting" | "listening" | "thinking" | "speaking" | "reconnecting" | "error";
4
+ interface VoiceAudioLevelsSource {
5
+ subscribe: (listener: () => void) => () => void;
6
+ getSnapshot: () => number[];
7
+ }
8
+ interface VoiceSessionControlsProps {
9
+ /** The host owns the connection, audio tracks and their cleanup. */
10
+ state: VoiceSessionState;
11
+ onStart: () => void;
12
+ onEnd: () => void;
13
+ muted?: boolean;
14
+ onMutedChange: (muted: boolean) => void;
15
+ /** Prevent starting a new session; ending an active session stays available. */
16
+ disabled?: boolean;
17
+ error?: string | null;
18
+ /** Audio levels supplied by the host; no media connection is created by the kit. */
19
+ volumeBands?: number[];
20
+ /** Optional external audio store, so level changes only re-render these controls. */
21
+ audioLevels?: VoiceAudioLevelsSource;
22
+ labels?: Partial<Record<VoiceSessionState | "start" | "end" | "mute" | "unmute" | "muted" | "retry", string>>;
23
+ size?: "icon" | "hero";
24
+ className?: string;
25
+ }
26
+ /** Transport-independent voice controls. The conversation stays visible while speaking. */
27
+ declare function VoiceSessionControls({ state, onStart, onEnd, muted, onMutedChange, disabled, error, volumeBands, audioLevels, labels, size, className, }: VoiceSessionControlsProps): react_jsx_runtime.JSX.Element;
28
+
29
+ export { type VoiceAudioLevelsSource, VoiceSessionControls, type VoiceSessionControlsProps, type VoiceSessionState };
@@ -0,0 +1,29 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ type VoiceSessionState = "disconnected" | "connecting" | "listening" | "thinking" | "speaking" | "reconnecting" | "error";
4
+ interface VoiceAudioLevelsSource {
5
+ subscribe: (listener: () => void) => () => void;
6
+ getSnapshot: () => number[];
7
+ }
8
+ interface VoiceSessionControlsProps {
9
+ /** The host owns the connection, audio tracks and their cleanup. */
10
+ state: VoiceSessionState;
11
+ onStart: () => void;
12
+ onEnd: () => void;
13
+ muted?: boolean;
14
+ onMutedChange: (muted: boolean) => void;
15
+ /** Prevent starting a new session; ending an active session stays available. */
16
+ disabled?: boolean;
17
+ error?: string | null;
18
+ /** Audio levels supplied by the host; no media connection is created by the kit. */
19
+ volumeBands?: number[];
20
+ /** Optional external audio store, so level changes only re-render these controls. */
21
+ audioLevels?: VoiceAudioLevelsSource;
22
+ labels?: Partial<Record<VoiceSessionState | "start" | "end" | "mute" | "unmute" | "muted" | "retry", string>>;
23
+ size?: "icon" | "hero";
24
+ className?: string;
25
+ }
26
+ /** Transport-independent voice controls. The conversation stays visible while speaking. */
27
+ declare function VoiceSessionControls({ state, onStart, onEnd, muted, onMutedChange, disabled, error, volumeBands, audioLevels, labels, size, className, }: VoiceSessionControlsProps): react_jsx_runtime.JSX.Element;
28
+
29
+ export { type VoiceAudioLevelsSource, VoiceSessionControls, type VoiceSessionControlsProps, type VoiceSessionState };
@@ -0,0 +1,12 @@
1
+ "use client";
2
+ "use client";
3
+ import {
4
+ VoiceSessionControls
5
+ } from "../chunk-KUG4ONYC.js";
6
+ import "../chunk-VBKJXNEL.js";
7
+ import "../chunk-W326GKML.js";
8
+ import "../chunk-G6SRSWXB.js";
9
+ import "../chunk-GJ7S3L6R.js";
10
+ export {
11
+ VoiceSessionControls
12
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@epicbagel/saas-kit",
3
- "version": "1.7.0",
3
+ "version": "1.10.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": [
@@ -50,6 +50,16 @@
50
50
  "default": "./dist/primitives/activity-log.cjs"
51
51
  }
52
52
  },
53
+ "./primitives/agent-audio-visualizer-bar": {
54
+ "import": {
55
+ "types": "./dist/primitives/agent-audio-visualizer-bar.d.ts",
56
+ "default": "./dist/primitives/agent-audio-visualizer-bar.js"
57
+ },
58
+ "require": {
59
+ "types": "./dist/primitives/agent-audio-visualizer-bar.d.cts",
60
+ "default": "./dist/primitives/agent-audio-visualizer-bar.cjs"
61
+ }
62
+ },
53
63
  "./primitives/agent-comment": {
54
64
  "import": {
55
65
  "types": "./dist/primitives/agent-comment.d.ts",
@@ -410,6 +420,16 @@
410
420
  "default": "./dist/primitives/dialog.cjs"
411
421
  }
412
422
  },
423
+ "./primitives/dictation-provider": {
424
+ "import": {
425
+ "types": "./dist/primitives/dictation-provider.d.ts",
426
+ "default": "./dist/primitives/dictation-provider.js"
427
+ },
428
+ "require": {
429
+ "types": "./dist/primitives/dictation-provider.d.cts",
430
+ "default": "./dist/primitives/dictation-provider.cjs"
431
+ }
432
+ },
413
433
  "./primitives/document-preview": {
414
434
  "import": {
415
435
  "types": "./dist/primitives/document-preview.d.ts",
@@ -1240,6 +1260,26 @@
1240
1260
  "default": "./dist/primitives/voice-dictation-button.cjs"
1241
1261
  }
1242
1262
  },
1263
+ "./primitives/voice-session-controls": {
1264
+ "import": {
1265
+ "types": "./dist/primitives/voice-session-controls.d.ts",
1266
+ "default": "./dist/primitives/voice-session-controls.js"
1267
+ },
1268
+ "require": {
1269
+ "types": "./dist/primitives/voice-session-controls.d.cts",
1270
+ "default": "./dist/primitives/voice-session-controls.cjs"
1271
+ }
1272
+ },
1273
+ "./hooks/use-agent-audio-visualizer-bar": {
1274
+ "import": {
1275
+ "types": "./dist/hooks/use-agent-audio-visualizer-bar.d.ts",
1276
+ "default": "./dist/hooks/use-agent-audio-visualizer-bar.js"
1277
+ },
1278
+ "require": {
1279
+ "types": "./dist/hooks/use-agent-audio-visualizer-bar.d.cts",
1280
+ "default": "./dist/hooks/use-agent-audio-visualizer-bar.cjs"
1281
+ }
1282
+ },
1243
1283
  "./hooks/use-copy-to-clipboard": {
1244
1284
  "import": {
1245
1285
  "types": "./dist/hooks/use-copy-to-clipboard.d.ts",
@@ -1250,6 +1290,16 @@
1250
1290
  "default": "./dist/hooks/use-copy-to-clipboard.cjs"
1251
1291
  }
1252
1292
  },
1293
+ "./hooks/use-dictation": {
1294
+ "import": {
1295
+ "types": "./dist/hooks/use-dictation.d.ts",
1296
+ "default": "./dist/hooks/use-dictation.js"
1297
+ },
1298
+ "require": {
1299
+ "types": "./dist/hooks/use-dictation.d.cts",
1300
+ "default": "./dist/hooks/use-dictation.cjs"
1301
+ }
1302
+ },
1253
1303
  "./hooks/use-layout-preference": {
1254
1304
  "import": {
1255
1305
  "types": "./dist/hooks/use-layout-preference.d.ts",
@@ -2,12 +2,12 @@
2
2
  import {
3
3
  Button
4
4
  } from "./chunk-W326GKML.js";
5
- import {
6
- useCopyToClipboard
7
- } from "./chunk-ZWZAAGQF.js";
8
5
  import {
9
6
  cn
10
7
  } from "./chunk-G6SRSWXB.js";
8
+ import {
9
+ useCopyToClipboard
10
+ } from "./chunk-ZWZAAGQF.js";
11
11
 
12
12
  // src/primitives/copy-button.tsx
13
13
  import { forwardRef } from "react";
@@ -4,10 +4,10 @@
4
4
  var _chunkJDEXZGIYcjs = require('./chunk-JDEXZGIY.cjs');
5
5
 
6
6
 
7
- var _chunk4LXN6GLZcjs = require('./chunk-4LXN6GLZ.cjs');
7
+ var _chunkKWLSBTB2cjs = require('./chunk-KWLSBTB2.cjs');
8
8
 
9
9
 
10
- var _chunkKWLSBTB2cjs = require('./chunk-KWLSBTB2.cjs');
10
+ var _chunk4LXN6GLZcjs = require('./chunk-4LXN6GLZ.cjs');
11
11
 
12
12
  // src/primitives/copy-button.tsx
13
13
  var _react = require('react');
@@ -15,9 +15,6 @@ var _chunkWNXVGUBFcjs = require('./chunk-WNXVGUBF.cjs');
15
15
  var _chunkIQZLUT2Ycjs = require('./chunk-IQZLUT2Y.cjs');
16
16
 
17
17
 
18
- var _chunkVOTCYG3Fcjs = require('./chunk-VOTCYG3F.cjs');
19
-
20
-
21
18
  var _chunkJH4GAGOQcjs = require('./chunk-JH4GAGOQ.cjs');
22
19
 
23
20
 
@@ -28,6 +25,9 @@ var _chunkJH4GAGOQcjs = require('./chunk-JH4GAGOQ.cjs');
28
25
  var _chunkV5SPFLKWcjs = require('./chunk-V5SPFLKW.cjs');
29
26
 
30
27
 
28
+ var _chunkVOTCYG3Fcjs = require('./chunk-VOTCYG3F.cjs');
29
+
30
+
31
31
  var _chunkPQUSJEXLcjs = require('./chunk-PQUSJEXL.cjs');
32
32
 
33
33
 
@@ -13,9 +13,6 @@ import {
13
13
  import {
14
14
  Label
15
15
  } from "./chunk-E2TQMDO7.js";
16
- import {
17
- Calendar
18
- } from "./chunk-H2CCBRVG.js";
19
16
  import {
20
17
  Checkbox
21
18
  } from "./chunk-OICAYRVH.js";
@@ -26,6 +23,9 @@ import {
26
23
  SelectTrigger,
27
24
  SelectValue
28
25
  } from "./chunk-J6NXDZR5.js";
26
+ import {
27
+ Calendar
28
+ } from "./chunk-H2CCBRVG.js";
29
29
  import {
30
30
  Input
31
31
  } from "./chunk-QMA3WVB7.js";
@@ -1,12 +1,12 @@
1
1
  "use client";
2
- import {
3
- Text
4
- } from "./chunk-EIY5LLSP.js";
5
2
  import {
6
3
  Tooltip,
7
4
  TooltipContent,
8
5
  TooltipTrigger
9
6
  } from "./chunk-ZRLUUZHK.js";
7
+ import {
8
+ Text
9
+ } from "./chunk-EIY5LLSP.js";
10
10
  import {
11
11
  Button
12
12
  } from "./chunk-W326GKML.js";
@@ -1,12 +1,12 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }"use client";
2
2
 
3
3
 
4
- var _chunk373W6VADcjs = require('./chunk-373W6VAD.cjs');
5
4
 
6
5
 
6
+ var _chunkU2NES7VRcjs = require('./chunk-U2NES7VR.cjs');
7
7
 
8
8
 
9
- var _chunkU2NES7VRcjs = require('./chunk-U2NES7VR.cjs');
9
+ var _chunk373W6VADcjs = require('./chunk-373W6VAD.cjs');
10
10
 
11
11
 
12
12
  var _chunkJDEXZGIYcjs = require('./chunk-JDEXZGIY.cjs');