@epicbagel/saas-kit 1.6.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 (81) hide show
  1. package/README.md +71 -1
  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/board-view.cjs +6 -6
  34. package/dist/primitives/board-view.js +5 -5
  35. package/dist/primitives/chat.cjs +127 -48
  36. package/dist/primitives/chat.d.cts +25 -3
  37. package/dist/primitives/chat.d.ts +25 -3
  38. package/dist/primitives/chat.js +122 -43
  39. package/dist/primitives/code-block.cjs +4 -4
  40. package/dist/primitives/code-block.js +3 -3
  41. package/dist/primitives/connection.cjs +6 -6
  42. package/dist/primitives/connection.js +7 -7
  43. package/dist/primitives/copy-button.cjs +3 -3
  44. package/dist/primitives/copy-button.js +2 -2
  45. package/dist/primitives/dictation-provider.cjs +8 -0
  46. package/dist/primitives/dictation-provider.d.cts +2 -0
  47. package/dist/primitives/dictation-provider.d.ts +2 -0
  48. package/dist/primitives/dictation-provider.js +8 -0
  49. package/dist/primitives/editable-list.cjs +1 -1
  50. package/dist/primitives/editable-list.js +1 -1
  51. package/dist/primitives/file-dropzone.cjs +3 -3
  52. package/dist/primitives/file-dropzone.js +2 -2
  53. package/dist/primitives/file-preview.cjs +6 -6
  54. package/dist/primitives/file-preview.js +5 -5
  55. package/dist/primitives/filter-bar.cjs +4 -4
  56. package/dist/primitives/filter-bar.js +3 -3
  57. package/dist/primitives/input-group.d.cts +1 -1
  58. package/dist/primitives/input-group.d.ts +1 -1
  59. package/dist/primitives/resource-list.cjs +6 -6
  60. package/dist/primitives/resource-list.js +5 -5
  61. package/dist/primitives/section.cjs +2 -2
  62. package/dist/primitives/section.js +3 -3
  63. package/dist/primitives/sheet.d.cts +1 -1
  64. package/dist/primitives/sheet.d.ts +1 -1
  65. package/dist/primitives/switch-field.cjs +2 -2
  66. package/dist/primitives/switch-field.js +3 -3
  67. package/dist/primitives/theme-selector.cjs +3 -3
  68. package/dist/primitives/theme-selector.js +4 -4
  69. package/dist/primitives/voice-dictation-button.cjs +3 -2
  70. package/dist/primitives/voice-dictation-button.js +2 -1
  71. package/dist/primitives/voice-session-controls.cjs +12 -0
  72. package/dist/primitives/voice-session-controls.d.cts +29 -0
  73. package/dist/primitives/voice-session-controls.d.ts +29 -0
  74. package/dist/primitives/voice-session-controls.js +12 -0
  75. package/package.json +51 -1
  76. package/dist/{chunk-HREEZUKL.js → chunk-DILYV4FI.js} +3 -3
  77. package/dist/{chunk-MU4F3DSW.cjs → chunk-FARCLWLU.cjs} +2 -2
  78. package/dist/{chunk-CRTH5GJ5.cjs → chunk-MW67PHAQ.cjs} +3 -3
  79. package/dist/{chunk-KNKV25WS.js → chunk-UFFHGKI7.js} +3 -3
  80. package/dist/{chunk-HBRVOGLA.js → chunk-WHDHUYS6.js} +3 -3
  81. package/dist/{chunk-Z3JJSNR5.cjs → chunk-ZLEM2SAU.cjs} +2 -2
@@ -0,0 +1,157 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }"use client";
2
+
3
+
4
+ var _chunkKWLSBTB2cjs = require('./chunk-KWLSBTB2.cjs');
5
+
6
+
7
+ var _chunk2BSFYU22cjs = require('./chunk-2BSFYU22.cjs');
8
+
9
+ // src/primitives/agent-audio-visualizer-bar.tsx
10
+
11
+
12
+
13
+
14
+
15
+ var _react = require('react'); var _react2 = _interopRequireDefault(_react);
16
+ var _classvarianceauthority = require('class-variance-authority');
17
+ var _jsxruntime = require('react/jsx-runtime');
18
+ function normalizeVolumeBands(bands, count) {
19
+ if (bands.length === count) return bands;
20
+ if (bands.length > count) return bands.slice(0, count);
21
+ const lastValue = _nullishCoalesce(bands[bands.length - 1], () => ( 0));
22
+ return [...bands, ...new Array(count - bands.length).fill(lastValue)];
23
+ }
24
+ function cloneSingleChild(children, props, key) {
25
+ return _react.Children.map(children, (child) => {
26
+ if (_react.isValidElement.call(void 0, child) && _react.Children.only(children)) {
27
+ const childProps = child.props;
28
+ if (childProps.className) {
29
+ props ??= {};
30
+ props.className = _chunkKWLSBTB2cjs.cn.call(void 0, childProps.className, props.className);
31
+ props.style = {
32
+ ...childProps.style,
33
+ ...props.style
34
+ };
35
+ }
36
+ return _react.cloneElement.call(void 0, child, { ...props, key: key ? String(key) : void 0 });
37
+ }
38
+ return child;
39
+ });
40
+ }
41
+ var AgentAudioVisualizerBarElementVariants = _classvarianceauthority.cva.call(void 0,
42
+ [
43
+ "rounded-full transition-colors duration-250 ease-linear motion-reduce:transition-none",
44
+ "bg-current/10 data-[lk-highlighted=true]:bg-current"
45
+ ],
46
+ {
47
+ variants: {
48
+ size: {
49
+ icon: "w-[4px] min-h-[4px]",
50
+ sm: "w-[8px] min-h-[8px]",
51
+ md: "w-[16px] min-h-[16px]",
52
+ lg: "w-[32px] min-h-[32px]",
53
+ xl: "w-[64px] min-h-[64px]"
54
+ }
55
+ },
56
+ defaultVariants: {
57
+ size: "md"
58
+ }
59
+ }
60
+ );
61
+ var AgentAudioVisualizerBarVariants = _classvarianceauthority.cva.call(void 0, "relative flex items-center justify-center", {
62
+ variants: {
63
+ size: {
64
+ icon: "h-[24px] gap-[2px]",
65
+ sm: "h-[56px] gap-[4px]",
66
+ md: "h-[112px] gap-[8px]",
67
+ lg: "h-[224px] gap-[16px]",
68
+ xl: "h-[448px] gap-[32px]"
69
+ }
70
+ },
71
+ defaultVariants: {
72
+ size: "md"
73
+ }
74
+ });
75
+ function AgentAudioVisualizerBar({
76
+ size = "md",
77
+ state = "connecting",
78
+ color,
79
+ barCount,
80
+ volumeBands,
81
+ className,
82
+ children,
83
+ style,
84
+ ...props
85
+ }) {
86
+ const _barCount = _react.useMemo.call(void 0, () => {
87
+ if (barCount && Number.isFinite(barCount)) {
88
+ return Math.max(1, Math.min(64, Math.floor(barCount)));
89
+ }
90
+ switch (size) {
91
+ case "icon":
92
+ case "sm":
93
+ return 3;
94
+ default:
95
+ return 5;
96
+ }
97
+ }, [barCount, size]);
98
+ const resolvedVolumeBands = normalizeVolumeBands(_nullishCoalesce(volumeBands, () => ( [])), _barCount).map((value) => Number.isFinite(value) ? Math.max(0, Math.min(1, value)) : 0);
99
+ const sequencerInterval = _react.useMemo.call(void 0, () => {
100
+ switch (state) {
101
+ case "connecting":
102
+ return 2e3 / _barCount;
103
+ case "initializing":
104
+ return 2e3;
105
+ case "listening":
106
+ return 500;
107
+ case "thinking":
108
+ return 150;
109
+ default:
110
+ return 1e3;
111
+ }
112
+ }, [state, _barCount]);
113
+ const highlightedIndices = _chunk2BSFYU22cjs.useAgentAudioVisualizerBarAnimator.call(void 0,
114
+ state,
115
+ _barCount,
116
+ sequencerInterval
117
+ );
118
+ const bands = _react.useMemo.call(void 0,
119
+ () => state === "speaking" ? resolvedVolumeBands : new Array(_barCount).fill(0),
120
+ [state, resolvedVolumeBands, _barCount]
121
+ );
122
+ if (children && Array.isArray(children)) {
123
+ throw new Error("AgentAudioVisualizerBar children must be a single element.");
124
+ }
125
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
126
+ "div",
127
+ {
128
+ "data-lk-state": state,
129
+ style: { ...style, color },
130
+ className: _chunkKWLSBTB2cjs.cn.call(void 0, AgentAudioVisualizerBarVariants({ size }), className),
131
+ ...props,
132
+ children: bands.map(
133
+ (band, idx) => children ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react2.default.Fragment, { children: cloneSingleChild(children, {
134
+ "data-lk-index": idx,
135
+ "data-lk-highlighted": highlightedIndices.includes(idx),
136
+ style: { height: `${band * 100}%` }
137
+ }) }, idx) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
138
+ "div",
139
+ {
140
+ "data-lk-index": idx,
141
+ "data-lk-highlighted": highlightedIndices.includes(idx),
142
+ style: { height: `${band * 100}%` },
143
+ className: _chunkKWLSBTB2cjs.cn.call(void 0, AgentAudioVisualizerBarElementVariants({ size }))
144
+ },
145
+ idx
146
+ )
147
+ )
148
+ }
149
+ );
150
+ }
151
+
152
+
153
+
154
+
155
+
156
+
157
+ exports.normalizeVolumeBands = normalizeVolumeBands; exports.AgentAudioVisualizerBarElementVariants = AgentAudioVisualizerBarElementVariants; exports.AgentAudioVisualizerBarVariants = AgentAudioVisualizerBarVariants; exports.AgentAudioVisualizerBar = AgentAudioVisualizerBar;
@@ -0,0 +1,8 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
+ "use client";
3
+
4
+
5
+ var _chunk2BSFYU22cjs = require('../chunk-2BSFYU22.cjs');
6
+
7
+
8
+ exports.useAgentAudioVisualizerBarAnimator = _chunk2BSFYU22cjs.useAgentAudioVisualizerBarAnimator;
@@ -0,0 +1,4 @@
1
+ type AgentVisualizerState = 'disconnected' | 'connecting' | 'initializing' | 'listening' | 'thinking' | 'speaking' | 'failed';
2
+ declare function useAgentAudioVisualizerBarAnimator(state: AgentVisualizerState | undefined, columns: number, interval: number): number[];
3
+
4
+ export { type AgentVisualizerState, useAgentAudioVisualizerBarAnimator };
@@ -0,0 +1,4 @@
1
+ type AgentVisualizerState = 'disconnected' | 'connecting' | 'initializing' | 'listening' | 'thinking' | 'speaking' | 'failed';
2
+ declare function useAgentAudioVisualizerBarAnimator(state: AgentVisualizerState | undefined, columns: number, interval: number): number[];
3
+
4
+ export { type AgentVisualizerState, useAgentAudioVisualizerBarAnimator };
@@ -0,0 +1,8 @@
1
+ "use client";
2
+ "use client";
3
+ import {
4
+ useAgentAudioVisualizerBarAnimator
5
+ } from "../chunk-GJ7S3L6R.js";
6
+ export {
7
+ useAgentAudioVisualizerBarAnimator
8
+ };
@@ -0,0 +1,10 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
+ "use client";
3
+
4
+
5
+
6
+ var _chunkO6F3LVZYcjs = require('../chunk-O6F3LVZY.cjs');
7
+
8
+
9
+
10
+ exports.DictationProvider = _chunkO6F3LVZYcjs.DictationProvider; exports.useDictation = _chunkO6F3LVZYcjs.useDictation;
@@ -0,0 +1,56 @@
1
+ import * as React from 'react';
2
+ import { ReactNode } from 'react';
3
+
4
+ interface DictationTranscribeOptions {
5
+ /** BCP-47 language requested by the control. */
6
+ language: string;
7
+ /** Cancel the upload/provider request when the control is dismissed. */
8
+ signal: AbortSignal;
9
+ }
10
+ /** The host authenticates this request; provider credentials never belong in the kit. */
11
+ type DictationTranscribe = (audio: Blob, options: DictationTranscribeOptions) => Promise<string>;
12
+ interface DictationProviderProps {
13
+ transcribe: DictationTranscribe;
14
+ /** Change when the acting user or workspace changes to discard its active take. */
15
+ scopeKey?: string;
16
+ children: ReactNode;
17
+ }
18
+ type DictationScope = {
19
+ current: {
20
+ key: string | undefined;
21
+ generation: number;
22
+ };
23
+ };
24
+ type DictationContextValue = {
25
+ transcribe: DictationTranscribe;
26
+ scope: DictationScope;
27
+ generation: number;
28
+ };
29
+ /** Use recorded audio + the host's API for every descendant dictation control. */
30
+ declare function DictationProvider({ transcribe, scopeKey, children }: DictationProviderProps): React.FunctionComponentElement<React.ProviderProps<DictationContextValue | null>>;
31
+ type DictationState = "idle" | "requesting" | "recording" | "transcribing" | "ready" | "error";
32
+ interface UseDictationOptions {
33
+ lang?: string;
34
+ /** Applies to native recognition. API capture finishes when stop is called. */
35
+ continuous?: boolean;
36
+ /** Native final chunks, or one complete API transcript. Do not also commit stop's result. */
37
+ onTranscript?: (text: string) => void;
38
+ }
39
+ interface DictationCapture {
40
+ state: DictationState;
41
+ supported: boolean;
42
+ transcript: string;
43
+ interimTranscript: string;
44
+ error: string | null;
45
+ canRetry: boolean;
46
+ start: () => Promise<void>;
47
+ /** Returns null on cancellation/failure; concurrent stops share one transcription. */
48
+ stop: () => Promise<string | null>;
49
+ /** Retries the same recorded take after an API failure. */
50
+ retry: () => Promise<string | null>;
51
+ cancel: () => void;
52
+ }
53
+ /** Shared microphone lifecycle. Without a provider, existing native dictation keeps working. */
54
+ declare function useDictation({ lang, continuous, onTranscript }?: UseDictationOptions): DictationCapture;
55
+
56
+ export { type DictationCapture, DictationProvider, type DictationProviderProps, type DictationState, type DictationTranscribe, type DictationTranscribeOptions, type UseDictationOptions, useDictation };
@@ -0,0 +1,56 @@
1
+ import * as React from 'react';
2
+ import { ReactNode } from 'react';
3
+
4
+ interface DictationTranscribeOptions {
5
+ /** BCP-47 language requested by the control. */
6
+ language: string;
7
+ /** Cancel the upload/provider request when the control is dismissed. */
8
+ signal: AbortSignal;
9
+ }
10
+ /** The host authenticates this request; provider credentials never belong in the kit. */
11
+ type DictationTranscribe = (audio: Blob, options: DictationTranscribeOptions) => Promise<string>;
12
+ interface DictationProviderProps {
13
+ transcribe: DictationTranscribe;
14
+ /** Change when the acting user or workspace changes to discard its active take. */
15
+ scopeKey?: string;
16
+ children: ReactNode;
17
+ }
18
+ type DictationScope = {
19
+ current: {
20
+ key: string | undefined;
21
+ generation: number;
22
+ };
23
+ };
24
+ type DictationContextValue = {
25
+ transcribe: DictationTranscribe;
26
+ scope: DictationScope;
27
+ generation: number;
28
+ };
29
+ /** Use recorded audio + the host's API for every descendant dictation control. */
30
+ declare function DictationProvider({ transcribe, scopeKey, children }: DictationProviderProps): React.FunctionComponentElement<React.ProviderProps<DictationContextValue | null>>;
31
+ type DictationState = "idle" | "requesting" | "recording" | "transcribing" | "ready" | "error";
32
+ interface UseDictationOptions {
33
+ lang?: string;
34
+ /** Applies to native recognition. API capture finishes when stop is called. */
35
+ continuous?: boolean;
36
+ /** Native final chunks, or one complete API transcript. Do not also commit stop's result. */
37
+ onTranscript?: (text: string) => void;
38
+ }
39
+ interface DictationCapture {
40
+ state: DictationState;
41
+ supported: boolean;
42
+ transcript: string;
43
+ interimTranscript: string;
44
+ error: string | null;
45
+ canRetry: boolean;
46
+ start: () => Promise<void>;
47
+ /** Returns null on cancellation/failure; concurrent stops share one transcription. */
48
+ stop: () => Promise<string | null>;
49
+ /** Retries the same recorded take after an API failure. */
50
+ retry: () => Promise<string | null>;
51
+ cancel: () => void;
52
+ }
53
+ /** Shared microphone lifecycle. Without a provider, existing native dictation keeps working. */
54
+ declare function useDictation({ lang, continuous, onTranscript }?: UseDictationOptions): DictationCapture;
55
+
56
+ export { type DictationCapture, DictationProvider, type DictationProviderProps, type DictationState, type DictationTranscribe, type DictationTranscribeOptions, type UseDictationOptions, useDictation };
@@ -0,0 +1,10 @@
1
+ "use client";
2
+ "use client";
3
+ import {
4
+ DictationProvider,
5
+ useDictation
6
+ } from "../chunk-M2ZNC3TK.js";
7
+ export {
8
+ DictationProvider,
9
+ useDictation
10
+ };
@@ -4,13 +4,13 @@
4
4
  var _chunkKGFL3VWYcjs = require('../chunk-KGFL3VWY.cjs');
5
5
 
6
6
 
7
+ var _chunkPQUSJEXLcjs = require('../chunk-PQUSJEXL.cjs');
8
+ require('../chunk-VGTINL5Q.cjs');
7
9
 
8
10
 
9
- var _chunkWABCLRBRcjs = require('../chunk-WABCLRBR.cjs');
10
11
 
11
12
 
12
- var _chunkPQUSJEXLcjs = require('../chunk-PQUSJEXL.cjs');
13
- require('../chunk-VGTINL5Q.cjs');
13
+ var _chunkWABCLRBRcjs = require('../chunk-WABCLRBR.cjs');
14
14
  require('../chunk-I6GUOEBO.cjs');
15
15
 
16
16
 
@@ -2,15 +2,15 @@
2
2
  import {
3
3
  ChipTabs
4
4
  } from "../chunk-QD63LB2F.js";
5
+ import {
6
+ Input
7
+ } from "../chunk-QMA3WVB7.js";
8
+ import "../chunk-H7TETFLB.js";
5
9
  import {
6
10
  Avatar,
7
11
  AvatarFallback,
8
12
  AvatarImage
9
13
  } from "../chunk-3OWGL4Q2.js";
10
- import {
11
- Input
12
- } from "../chunk-QMA3WVB7.js";
13
- import "../chunk-H7TETFLB.js";
14
14
  import "../chunk-D4ZL2OEQ.js";
15
15
  import {
16
16
  EmptyState
@@ -0,0 +1,16 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
+ "use client";
3
+
4
+
5
+
6
+
7
+
8
+ var _chunkXB2D4NQKcjs = require('../chunk-XB2D4NQK.cjs');
9
+ require('../chunk-KWLSBTB2.cjs');
10
+ require('../chunk-2BSFYU22.cjs');
11
+
12
+
13
+
14
+
15
+
16
+ exports.AgentAudioVisualizerBar = _chunkXB2D4NQKcjs.AgentAudioVisualizerBar; exports.AgentAudioVisualizerBarElementVariants = _chunkXB2D4NQKcjs.AgentAudioVisualizerBarElementVariants; exports.AgentAudioVisualizerBarVariants = _chunkXB2D4NQKcjs.AgentAudioVisualizerBarVariants; exports.normalizeVolumeBands = _chunkXB2D4NQKcjs.normalizeVolumeBands;
@@ -0,0 +1,75 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as class_variance_authority_types from 'class-variance-authority/types';
3
+ import { ReactNode, ComponentProps } from 'react';
4
+ import { VariantProps } from 'class-variance-authority';
5
+ import { AgentVisualizerState } from '../hooks/use-agent-audio-visualizer-bar.cjs';
6
+
7
+ /**
8
+ * Resizes an array of per-band volume values to exactly `count` entries.
9
+ * Excess values are trimmed from the end; if there are too few, the last
10
+ * value is duplicated to fill the remainder. An empty array is padded with 0s.
11
+ */
12
+ declare function normalizeVolumeBands(bands: number[], count: number): number[];
13
+ declare const AgentAudioVisualizerBarElementVariants: (props?: ({
14
+ size?: "sm" | "md" | "lg" | "xl" | "icon" | null | undefined;
15
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
16
+ declare const AgentAudioVisualizerBarVariants: (props?: ({
17
+ size?: "sm" | "md" | "lg" | "xl" | "icon" | null | undefined;
18
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
19
+ /**
20
+ * Props for the AgentAudioVisualizerBar component.
21
+ */
22
+ interface AgentAudioVisualizerBarProps {
23
+ /**
24
+ * The size of the visualizer.
25
+ * @defaultValue 'md'
26
+ */
27
+ size?: 'icon' | 'sm' | 'md' | 'lg' | 'xl';
28
+ /**
29
+ * The current state of the agent. Determines the animation pattern.
30
+ * @defaultValue 'connecting'
31
+ */
32
+ state?: AgentVisualizerState;
33
+ /**
34
+ * The color of the bars in hexidecimal format.
35
+ */
36
+ color?: `#${string}`;
37
+ /**
38
+ * The number of bars to display in the visualizer.
39
+ * If not provided, defaults based on size: 3 for 'icon'/'sm', 5 for others.
40
+ */
41
+ barCount?: number;
42
+ /**
43
+ * Volume values (0-1) to use supplied by the host audio transport.
44
+ * The volumeBands.length should match barCount.
45
+ */
46
+ volumeBands?: number[];
47
+ /**
48
+ * Additional CSS class names to apply to the container.
49
+ */
50
+ className?: string;
51
+ /**
52
+ * Custom div element to render as grid cells. Each child receives data-lk-index,
53
+ * data-lk-highlighted props and style props for height. Must be a single div element.
54
+ */
55
+ children?: ReactNode;
56
+ }
57
+ /**
58
+ * A bar-style audio visualizer that responds to agent state and audio levels.
59
+ * Displays animated bars that react to the current agent state (connecting, thinking, speaking, etc.)
60
+ * and audio volume when speaking.
61
+ *
62
+ * @extends ComponentProps<'div'>
63
+ *
64
+ * @example
65
+ * ```tsx
66
+ * <AgentAudioVisualizerBar
67
+ * size="md"
68
+ * state="speaking"
69
+ * volumeBands={volumeBands}
70
+ * />
71
+ * ```
72
+ */
73
+ declare function AgentAudioVisualizerBar({ size, state, color, barCount, volumeBands, className, children, style, ...props }: AgentAudioVisualizerBarProps & VariantProps<typeof AgentAudioVisualizerBarVariants> & ComponentProps<'div'>): react_jsx_runtime.JSX.Element;
74
+
75
+ export { AgentAudioVisualizerBar, AgentAudioVisualizerBarElementVariants, type AgentAudioVisualizerBarProps, AgentAudioVisualizerBarVariants, normalizeVolumeBands };
@@ -0,0 +1,75 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as class_variance_authority_types from 'class-variance-authority/types';
3
+ import { ReactNode, ComponentProps } from 'react';
4
+ import { VariantProps } from 'class-variance-authority';
5
+ import { AgentVisualizerState } from '../hooks/use-agent-audio-visualizer-bar.js';
6
+
7
+ /**
8
+ * Resizes an array of per-band volume values to exactly `count` entries.
9
+ * Excess values are trimmed from the end; if there are too few, the last
10
+ * value is duplicated to fill the remainder. An empty array is padded with 0s.
11
+ */
12
+ declare function normalizeVolumeBands(bands: number[], count: number): number[];
13
+ declare const AgentAudioVisualizerBarElementVariants: (props?: ({
14
+ size?: "sm" | "md" | "lg" | "xl" | "icon" | null | undefined;
15
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
16
+ declare const AgentAudioVisualizerBarVariants: (props?: ({
17
+ size?: "sm" | "md" | "lg" | "xl" | "icon" | null | undefined;
18
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
19
+ /**
20
+ * Props for the AgentAudioVisualizerBar component.
21
+ */
22
+ interface AgentAudioVisualizerBarProps {
23
+ /**
24
+ * The size of the visualizer.
25
+ * @defaultValue 'md'
26
+ */
27
+ size?: 'icon' | 'sm' | 'md' | 'lg' | 'xl';
28
+ /**
29
+ * The current state of the agent. Determines the animation pattern.
30
+ * @defaultValue 'connecting'
31
+ */
32
+ state?: AgentVisualizerState;
33
+ /**
34
+ * The color of the bars in hexidecimal format.
35
+ */
36
+ color?: `#${string}`;
37
+ /**
38
+ * The number of bars to display in the visualizer.
39
+ * If not provided, defaults based on size: 3 for 'icon'/'sm', 5 for others.
40
+ */
41
+ barCount?: number;
42
+ /**
43
+ * Volume values (0-1) to use supplied by the host audio transport.
44
+ * The volumeBands.length should match barCount.
45
+ */
46
+ volumeBands?: number[];
47
+ /**
48
+ * Additional CSS class names to apply to the container.
49
+ */
50
+ className?: string;
51
+ /**
52
+ * Custom div element to render as grid cells. Each child receives data-lk-index,
53
+ * data-lk-highlighted props and style props for height. Must be a single div element.
54
+ */
55
+ children?: ReactNode;
56
+ }
57
+ /**
58
+ * A bar-style audio visualizer that responds to agent state and audio levels.
59
+ * Displays animated bars that react to the current agent state (connecting, thinking, speaking, etc.)
60
+ * and audio volume when speaking.
61
+ *
62
+ * @extends ComponentProps<'div'>
63
+ *
64
+ * @example
65
+ * ```tsx
66
+ * <AgentAudioVisualizerBar
67
+ * size="md"
68
+ * state="speaking"
69
+ * volumeBands={volumeBands}
70
+ * />
71
+ * ```
72
+ */
73
+ declare function AgentAudioVisualizerBar({ size, state, color, barCount, volumeBands, className, children, style, ...props }: AgentAudioVisualizerBarProps & VariantProps<typeof AgentAudioVisualizerBarVariants> & ComponentProps<'div'>): react_jsx_runtime.JSX.Element;
74
+
75
+ export { AgentAudioVisualizerBar, AgentAudioVisualizerBarElementVariants, type AgentAudioVisualizerBarProps, AgentAudioVisualizerBarVariants, normalizeVolumeBands };
@@ -0,0 +1,16 @@
1
+ "use client";
2
+ "use client";
3
+ import {
4
+ AgentAudioVisualizerBar,
5
+ AgentAudioVisualizerBarElementVariants,
6
+ AgentAudioVisualizerBarVariants,
7
+ normalizeVolumeBands
8
+ } from "../chunk-VBKJXNEL.js";
9
+ import "../chunk-G6SRSWXB.js";
10
+ import "../chunk-GJ7S3L6R.js";
11
+ export {
12
+ AgentAudioVisualizerBar,
13
+ AgentAudioVisualizerBarElementVariants,
14
+ AgentAudioVisualizerBarVariants,
15
+ normalizeVolumeBands
16
+ };
@@ -2,10 +2,10 @@
2
2
  "use client";
3
3
 
4
4
 
5
- var _chunkT2ZFSPE4cjs = require('../chunk-T2ZFSPE4.cjs');
5
+ var _chunkKM5FHCXUcjs = require('../chunk-KM5FHCXU.cjs');
6
6
 
7
7
 
8
- var _chunkKM5FHCXUcjs = require('../chunk-KM5FHCXU.cjs');
8
+ var _chunkT2ZFSPE4cjs = require('../chunk-T2ZFSPE4.cjs');
9
9
  require('../chunk-LIUYHYFN.cjs');
10
10
  require('../chunk-JDEXZGIY.cjs');
11
11
  require('../chunk-KWLSBTB2.cjs');
@@ -1,11 +1,11 @@
1
1
  "use client";
2
2
  "use client";
3
- import {
4
- Icon
5
- } from "../chunk-KN4RPX35.js";
6
3
  import {
7
4
  DeleteConfirmationDialog
8
5
  } from "../chunk-WL73DFE3.js";
6
+ import {
7
+ Icon
8
+ } from "../chunk-KN4RPX35.js";
9
9
  import "../chunk-ZLU32SRP.js";
10
10
  import "../chunk-W326GKML.js";
11
11
  import "../chunk-G6SRSWXB.js";
@@ -2,27 +2,27 @@
2
2
  "use client";
3
3
 
4
4
 
5
- var _chunkQTWJQQDHcjs = require('../chunk-QTWJQQDH.cjs');
5
+ var _chunkFBVZRRA4cjs = require('../chunk-FBVZRRA4.cjs');
6
6
  require('../chunk-EUFV25KL.cjs');
7
7
  require('../chunk-7YCKII7G.cjs');
8
- require('../chunk-CRTH5GJ5.cjs');
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');
13
- require('../chunk-VOTCYG3F.cjs');
14
12
  require('../chunk-U2NES7VR.cjs');
15
13
  require('../chunk-JH4GAGOQ.cjs');
14
+ require('../chunk-LELBCBDT.cjs');
16
15
  require('../chunk-YYFVG5A6.cjs');
17
16
  require('../chunk-XLIAY56V.cjs');
18
17
  require('../chunk-V5SPFLKW.cjs');
18
+ require('../chunk-VOTCYG3F.cjs');
19
19
  require('../chunk-PQUSJEXL.cjs');
20
20
  require('../chunk-VGTINL5Q.cjs');
21
21
  require('../chunk-I6GUOEBO.cjs');
22
22
  require('../chunk-VBPPFC7X.cjs');
23
23
  require('../chunk-JDEXZGIY.cjs');
24
- require('../chunk-R35FT53G.cjs');
25
24
  require('../chunk-KWLSBTB2.cjs');
25
+ require('../chunk-R35FT53G.cjs');
26
26
 
27
27
  // src/primitives/board-view.tsx
28
28
  var _jsxruntime = require('react/jsx-runtime');
@@ -57,7 +57,7 @@ function BoardView({
57
57
  onSortChange
58
58
  }) {
59
59
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
60
- _chunkQTWJQQDHcjs.ResourceList,
60
+ _chunkFBVZRRA4cjs.ResourceList,
61
61
  {
62
62
  data,
63
63
  loading,
@@ -2,27 +2,27 @@
2
2
  "use client";
3
3
  import {
4
4
  ResourceList
5
- } from "../chunk-JN6JOSZG.js";
5
+ } from "../chunk-LQPJGZIE.js";
6
6
  import "../chunk-43UMPZWD.js";
7
7
  import "../chunk-EEHIMPD7.js";
8
- import "../chunk-KNKV25WS.js";
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";
13
- import "../chunk-H2CCBRVG.js";
14
12
  import "../chunk-ZRLUUZHK.js";
15
13
  import "../chunk-OICAYRVH.js";
14
+ import "../chunk-H2O6NMLZ.js";
16
15
  import "../chunk-62UTAG2C.js";
17
16
  import "../chunk-LELFPLTE.js";
18
17
  import "../chunk-J6NXDZR5.js";
18
+ import "../chunk-H2CCBRVG.js";
19
19
  import "../chunk-QMA3WVB7.js";
20
20
  import "../chunk-H7TETFLB.js";
21
21
  import "../chunk-D4ZL2OEQ.js";
22
22
  import "../chunk-YEW65ASC.js";
23
23
  import "../chunk-W326GKML.js";
24
- import "../chunk-PIU5SSUV.js";
25
24
  import "../chunk-G6SRSWXB.js";
25
+ import "../chunk-PIU5SSUV.js";
26
26
 
27
27
  // src/primitives/board-view.tsx
28
28
  import { jsx } from "react/jsx-runtime";