@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
@@ -1,5 +1,8 @@
1
1
  "use client";
2
2
  "use client";
3
+ import {
4
+ VoiceSessionControls
5
+ } from "../chunk-KUG4ONYC.js";
3
6
  import {
4
7
  Trace,
5
8
  TraceLine,
@@ -7,11 +10,15 @@ import {
7
10
  } from "../chunk-Z45YKVAM.js";
8
11
  import {
9
12
  VoiceDictationButton
10
- } from "../chunk-TI57GAQP.js";
13
+ } from "../chunk-KWV5KTOA.js";
11
14
  import {
12
15
  Suggestion,
13
16
  Suggestions
14
17
  } from "../chunk-IJG2B3Y2.js";
18
+ import {
19
+ Marker,
20
+ MarkerContent
21
+ } from "../chunk-IW4ZIXXG.js";
15
22
  import {
16
23
  MessageScroller,
17
24
  MessageScrollerButton,
@@ -26,10 +33,6 @@ import {
26
33
  MessageActions,
27
34
  MessageContent
28
35
  } from "../chunk-H4XH2PPU.js";
29
- import {
30
- Marker,
31
- MarkerContent
32
- } from "../chunk-IW4ZIXXG.js";
33
36
  import {
34
37
  InputGroup,
35
38
  InputGroupAddon,
@@ -39,7 +42,7 @@ import "../chunk-6FC65AZQ.js";
39
42
  import {
40
43
  FileDropArea,
41
44
  FileDropzone
42
- } from "../chunk-HBRVOGLA.js";
45
+ } from "../chunk-WHDHUYS6.js";
43
46
  import {
44
47
  LazyMarkdown
45
48
  } from "../chunk-VY5U4VGV.js";
@@ -50,6 +53,7 @@ import {
50
53
  DropdownMenuItem,
51
54
  DropdownMenuTrigger
52
55
  } from "../chunk-V4LE2HWP.js";
56
+ import "../chunk-ZRLUUZHK.js";
53
57
  import {
54
58
  Bubble,
55
59
  BubbleContent
@@ -67,26 +71,28 @@ import {
67
71
  AttachmentTitle,
68
72
  AttachmentTrigger
69
73
  } from "../chunk-CYDICVH2.js";
70
- import "../chunk-ZRLUUZHK.js";
71
74
  import {
72
75
  ActionDock
73
76
  } from "../chunk-42RTTHND.js";
74
77
  import "../chunk-QMA3WVB7.js";
78
+ import "../chunk-VBKJXNEL.js";
75
79
  import {
76
80
  Button
77
81
  } from "../chunk-W326GKML.js";
82
+ import {
83
+ cn
84
+ } from "../chunk-G6SRSWXB.js";
85
+ import "../chunk-GJ7S3L6R.js";
78
86
  import {
79
87
  useCopyToClipboard
80
88
  } from "../chunk-ZWZAAGQF.js";
89
+ import "../chunk-M2ZNC3TK.js";
81
90
  import {
82
91
  useIsMobile
83
92
  } from "../chunk-PIU5SSUV.js";
84
93
  import {
85
94
  formatRelativeLong
86
95
  } from "../chunk-CS7DM3NV.js";
87
- import {
88
- cn
89
- } from "../chunk-G6SRSWXB.js";
90
96
 
91
97
  // src/primitives/chat.tsx
92
98
  import {
@@ -372,6 +378,7 @@ function ChatInput({
372
378
  size = "md",
373
379
  uploadingLabel,
374
380
  voice = true,
381
+ voiceSession,
375
382
  voiceTitle,
376
383
  voiceLang,
377
384
  submitLabel,
@@ -397,6 +404,7 @@ function ChatInput({
397
404
  const isDisabled = pending || disabled;
398
405
  const attachmentsReady = attachments.length > 0 && attachments.every((item) => item.state !== "uploading");
399
406
  const canSubmit = !isDisabled && (Boolean(value.trim()) || attachmentsReady);
407
+ const liveVoiceActive = voiceSession && voiceSession.state !== "disconnected" && voiceSession.state !== "error";
400
408
  const submit = () => {
401
409
  const trimmed = value.trim();
402
410
  if (!trimmed && !attachmentsReady || isDisabled) return;
@@ -457,6 +465,7 @@ function ChatInput({
457
465
  className
458
466
  ),
459
467
  children: [
468
+ liveVoiceActive && /* @__PURE__ */ jsx(InputGroupAddon, { align: "block-start", className: "w-full border-b border-border", children: /* @__PURE__ */ jsx(VoiceSessionControls, { ...voiceSession }) }),
460
469
  attachments.length > 0 && /* @__PURE__ */ jsx(
461
470
  ChatAttachmentList,
462
471
  {
@@ -523,12 +532,21 @@ function ChatInput({
523
532
  addFilesLabel
524
533
  ] }) })
525
534
  ] }),
535
+ helperText ? /* @__PURE__ */ jsx(
536
+ "span",
537
+ {
538
+ "data-slot": "chat-input-helper",
539
+ className: cn("min-w-0 flex-1 truncate px-1 text-center text-xs font-normal text-muted-foreground sm:px-2 sm:text-sm", compact && "hidden"),
540
+ children: helperText
541
+ }
542
+ ) : /* @__PURE__ */ jsx("div", { className: compact ? "hidden" : "flex-1" }),
526
543
  voice && /* @__PURE__ */ jsx(
527
544
  VoiceDictationButton,
528
545
  {
529
546
  size: "icon",
530
547
  title: voiceTitle,
531
548
  lang: voiceLang,
549
+ disabled: Boolean(isDisabled || liveVoiceActive),
532
550
  onCommit: (text) => onSend(text),
533
551
  className: cn(
534
552
  spacious && "border-transparent bg-transparent shadow-none hover:bg-muted",
@@ -537,14 +555,7 @@ function ChatInput({
537
555
  )
538
556
  }
539
557
  ),
540
- helperText ? /* @__PURE__ */ jsx(
541
- "span",
542
- {
543
- "data-slot": "chat-input-helper",
544
- className: cn("min-w-0 flex-1 truncate px-1 text-center text-xs font-normal text-muted-foreground sm:px-2 sm:text-sm", compact && "hidden"),
545
- children: helperText
546
- }
547
- ) : /* @__PURE__ */ jsx("div", { className: compact ? "hidden" : "flex-1" }),
558
+ voiceSession && !liveVoiceActive && /* @__PURE__ */ jsx(VoiceSessionControls, { ...voiceSession, disabled: voiceSession.disabled || isDisabled }),
548
559
  submitLabel ? /* @__PURE__ */ jsxs(
549
560
  Button,
550
561
  {
@@ -593,6 +604,8 @@ function ChatInput({
593
604
  }
594
605
  function VoiceHero({
595
606
  onSubmit,
607
+ voice,
608
+ voiceSession,
596
609
  voiceTitle,
597
610
  voiceLang,
598
611
  onSwitchToText,
@@ -600,7 +613,19 @@ function VoiceHero({
600
613
  switchLabel
601
614
  }) {
602
615
  return /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-5 py-6", children: [
603
- /* @__PURE__ */ jsx(
616
+ voiceSession ? /* @__PURE__ */ jsxs(Fragment, { children: [
617
+ /* @__PURE__ */ jsx(VoiceSessionControls, { ...voiceSession, size: "hero" }),
618
+ voice && /* @__PURE__ */ jsx(
619
+ VoiceDictationButton,
620
+ {
621
+ size: "icon",
622
+ title: voiceTitle,
623
+ lang: voiceLang,
624
+ onCommit: onSubmit,
625
+ disabled: Boolean(voiceSession.disabled || voiceSession.state !== "disconnected" && voiceSession.state !== "error")
626
+ }
627
+ )
628
+ ] }) : /* @__PURE__ */ jsx(
604
629
  VoiceDictationButton,
605
630
  {
606
631
  size: "lg",
@@ -629,27 +654,40 @@ var EXAMPLE_PROMPT_LAYOUTS = {
629
654
  row: "row",
630
655
  cards: "grid"
631
656
  };
632
- function ExamplePrompts({
633
- prompts,
657
+ function ChatSuggestions({
658
+ slot,
659
+ items,
634
660
  onSelect,
635
- label = "Try",
661
+ label,
662
+ showLabel = true,
636
663
  variant = "chips",
664
+ disabled = false,
637
665
  className
638
666
  }) {
639
667
  const labelId = useId();
640
- if (prompts.length === 0) return null;
668
+ if (items.length === 0) return null;
641
669
  const cards = variant === "cards";
642
- return /* @__PURE__ */ jsxs("div", { "data-slot": "chat-examples", "data-variant": variant, className: cn(cards ? "mt-4" : "mt-3", className), children: [
643
- /* @__PURE__ */ jsx("p", { id: labelId, "data-slot": "chat-examples-label", className: "mb-2 text-left text-xs text-muted-foreground", children: label }),
644
- /* @__PURE__ */ jsx(Suggestions, { role: "group", "aria-labelledby": labelId, layout: EXAMPLE_PROMPT_LAYOUTS[variant], children: prompts.map((prompt) => /* @__PURE__ */ jsx(
645
- Suggestion,
670
+ return /* @__PURE__ */ jsxs("div", { "data-slot": slot, "data-variant": variant, className, children: [
671
+ showLabel && /* @__PURE__ */ jsx("p", { id: labelId, "data-slot": `${slot}-label`, className: "mb-2 text-left text-xs text-muted-foreground", children: label }),
672
+ /* @__PURE__ */ jsx(
673
+ Suggestions,
646
674
  {
647
- suggestion: prompt,
648
- onClick: onSelect,
649
- className: cards ? "h-auto min-h-12 px-3 py-2.5 text-xs" : void 0
650
- },
651
- prompt
652
- )) })
675
+ role: "group",
676
+ "aria-labelledby": showLabel ? labelId : void 0,
677
+ "aria-label": showLabel ? void 0 : label,
678
+ layout: EXAMPLE_PROMPT_LAYOUTS[variant],
679
+ children: items.map((item) => /* @__PURE__ */ jsx(
680
+ Suggestion,
681
+ {
682
+ suggestion: item,
683
+ onClick: onSelect,
684
+ disabled,
685
+ className: cards ? "h-auto min-h-12 px-3 py-2.5 text-xs" : void 0
686
+ },
687
+ item
688
+ ))
689
+ }
690
+ )
653
691
  ] });
654
692
  }
655
693
  function ExamplePromptsLoading({ label, className }) {
@@ -693,6 +731,8 @@ var Chat = forwardRef(function Chat2({
693
731
  examplePromptsVariant = "chips",
694
732
  examplePromptsLoading = false,
695
733
  examplePromptsLoadingLabel = "Loading suggestions\u2026",
734
+ replySuggestions = [],
735
+ replySuggestionsLabel = "Suggested replies",
696
736
  compactEmptyState = false,
697
737
  defaultMode,
698
738
  placeholder = "Type your message\u2026",
@@ -715,6 +755,7 @@ var Chat = forwardRef(function Chat2({
715
755
  fileDropLabel,
716
756
  fileDropDescription,
717
757
  voice = true,
758
+ voiceSession,
718
759
  voiceTitle,
719
760
  activeVoiceTitle,
720
761
  voiceLang,
@@ -738,7 +779,15 @@ var Chat = forwardRef(function Chat2({
738
779
  const inputRef = useRef(null);
739
780
  const conversationStarted = messages.length > 0;
740
781
  const [userMode, setUserMode] = useState(null);
741
- const mode = userMode ?? defaultMode ?? (isMobile ? "voice" : "text");
782
+ const mode = !voice && !voiceSession ? "text" : userMode ?? defaultMode ?? (isMobile ? "voice" : "text");
783
+ const reportSendError = useCallback(
784
+ (cause) => {
785
+ if (onSendError) onSendError(cause);
786
+ else if (typeof globalThis.reportError === "function") globalThis.reportError(cause);
787
+ else console.error(cause);
788
+ },
789
+ [onSendError]
790
+ );
742
791
  const send = useCallback(
743
792
  async (text, sentAttachments = attachments) => {
744
793
  const trimmed = text.trim();
@@ -751,13 +800,24 @@ var Chat = forwardRef(function Chat2({
751
800
  setInput((current) => current ? current : trimmed);
752
801
  if (mode === "voice") setUserMode("text");
753
802
  }
754
- if (onSendError) onSendError(cause);
755
- else if (typeof globalThis.reportError === "function") globalThis.reportError(cause);
756
- else console.error(cause);
803
+ reportSendError(cause);
804
+ }
805
+ window.setTimeout(() => inputRef.current?.focus(), 0);
806
+ },
807
+ [attachments, mode, onSend, pending, reportSendError]
808
+ );
809
+ const sendSuggestion = useCallback(
810
+ async (text) => {
811
+ const trimmed = text.trim();
812
+ if (!trimmed || pending) return;
813
+ try {
814
+ await onSend(trimmed, []);
815
+ } catch (cause) {
816
+ reportSendError(cause);
757
817
  }
758
818
  window.setTimeout(() => inputRef.current?.focus(), 0);
759
819
  },
760
- [attachments, mode, onSend, onSendError, pending]
820
+ [onSend, pending, reportSendError]
761
821
  );
762
822
  useImperativeHandle(
763
823
  ref,
@@ -777,7 +837,8 @@ var Chat = forwardRef(function Chat2({
777
837
  const application = layout === "application";
778
838
  const workspace = layout === "workspace";
779
839
  const showEmptyFileDropzone = emptyFileDropzone && Boolean(onFilesSelected) && attachments.length === 0;
780
- const showEmptyPending = !conversationStarted && pending && Boolean(emptyPendingContent);
840
+ const liveVoiceActive = voiceSession && voiceSession.state !== "disconnected" && voiceSession.state !== "error";
841
+ const showEmptyPending = !conversationStarted && pending && Boolean(emptyPendingContent) && !liveVoiceActive;
781
842
  return /* @__PURE__ */ jsx(
782
843
  FileDropArea,
783
844
  {
@@ -862,6 +923,8 @@ var Chat = forwardRef(function Chat2({
862
923
  VoiceHero,
863
924
  {
864
925
  onSubmit: (text) => void send(text),
926
+ voice,
927
+ voiceSession: voiceSession ? { ...voiceSession, disabled: voiceSession.disabled || pending } : void 0,
865
928
  voiceTitle,
866
929
  voiceLang,
867
930
  label: voiceHeroLabel,
@@ -878,6 +941,7 @@ var Chat = forwardRef(function Chat2({
878
941
  placeholder,
879
942
  size: showEmptyFileDropzone || application && isMobile ? "md" : "lg",
880
943
  voice,
944
+ voiceSession,
881
945
  voiceTitle,
882
946
  voiceLang,
883
947
  submitLabel,
@@ -898,12 +962,14 @@ var Chat = forwardRef(function Chat2({
898
962
  error && /* @__PURE__ */ jsx(ChatError, { children: error }),
899
963
  !pending && examplePromptsLoading && /* @__PURE__ */ jsx(ExamplePromptsLoading, { label: examplePromptsLoadingLabel }),
900
964
  !pending && !examplePromptsLoading && examplePrompts.length > 0 && /* @__PURE__ */ jsx(
901
- ExamplePrompts,
965
+ ChatSuggestions,
902
966
  {
903
- prompts: examplePrompts,
904
- onSelect: (p) => void send(p),
967
+ slot: "chat-examples",
968
+ items: examplePrompts,
969
+ onSelect: (prompt) => void sendSuggestion(prompt),
905
970
  label: examplePromptsLabel,
906
- variant: examplePromptsVariant
971
+ variant: examplePromptsVariant,
972
+ className: examplePromptsVariant === "cards" ? "mt-4" : "mt-3"
907
973
  }
908
974
  ),
909
975
  emptyFooter && /* @__PURE__ */ jsx("div", { "data-slot": "chat-empty-footer", className: "mt-5", children: emptyFooter })
@@ -946,6 +1012,18 @@ var Chat = forwardRef(function Chat2({
946
1012
  workspace && mobileCompactComposer && "max-md:pb-[max(0.75rem,env(safe-area-inset-bottom))] max-md:pt-3"
947
1013
  ),
948
1014
  children: [
1015
+ /* @__PURE__ */ jsx(
1016
+ ChatSuggestions,
1017
+ {
1018
+ slot: "chat-replies",
1019
+ items: replySuggestions,
1020
+ onSelect: (reply) => void sendSuggestion(reply),
1021
+ label: replySuggestionsLabel,
1022
+ showLabel: false,
1023
+ disabled: pending,
1024
+ className: cn("mb-3", workspace && "mx-auto max-w-3xl")
1025
+ }
1026
+ ),
949
1027
  /* @__PURE__ */ jsx(
950
1028
  ChatInput,
951
1029
  {
@@ -956,6 +1034,7 @@ var Chat = forwardRef(function Chat2({
956
1034
  placeholder: activePlaceholder,
957
1035
  size: composerAppearance === "spacious" ? "lg" : "sm",
958
1036
  voice,
1037
+ voiceSession,
959
1038
  voiceTitle: activeVoiceTitle ?? voiceTitle,
960
1039
  voiceLang,
961
1040
  inputRef,
@@ -1,11 +1,11 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
2
 
3
3
 
4
- var _chunkGTVSRRE3cjs = require('../chunk-GTVSRRE3.cjs');
5
- require('../chunk-MU4F3DSW.cjs');
4
+ var _chunkBGCNGYPLcjs = require('../chunk-BGCNGYPL.cjs');
5
+ require('../chunk-FARCLWLU.cjs');
6
6
  require('../chunk-JDEXZGIY.cjs');
7
- require('../chunk-4LXN6GLZ.cjs');
8
7
  require('../chunk-KWLSBTB2.cjs');
8
+ require('../chunk-4LXN6GLZ.cjs');
9
9
 
10
10
 
11
- exports.CodeBlock = _chunkGTVSRRE3cjs.CodeBlock;
11
+ exports.CodeBlock = _chunkBGCNGYPLcjs.CodeBlock;
@@ -1,11 +1,11 @@
1
1
  "use client";
2
2
  import {
3
3
  CodeBlock
4
- } from "../chunk-F3B4M6DU.js";
5
- import "../chunk-HREEZUKL.js";
4
+ } from "../chunk-HTPPNW74.js";
5
+ import "../chunk-DILYV4FI.js";
6
6
  import "../chunk-W326GKML.js";
7
- import "../chunk-ZWZAAGQF.js";
8
7
  import "../chunk-G6SRSWXB.js";
8
+ import "../chunk-ZWZAAGQF.js";
9
9
  export {
10
10
  CodeBlock
11
11
  };
@@ -12,13 +12,17 @@ var _chunk6YXKFVZUcjs = require('../chunk-6YXKFVZU.cjs');
12
12
 
13
13
 
14
14
  var _chunkWDXEJDMOcjs = require('../chunk-WDXEJDMO.cjs');
15
+ require('../chunk-ZAITUDYD.cjs');
16
+
17
+
18
+ var _chunk373W6VADcjs = require('../chunk-373W6VAD.cjs');
15
19
 
16
20
 
17
21
  var _chunkCTYOW3V2cjs = require('../chunk-CTYOW3V2.cjs');
18
- require('../chunk-ZAITUDYD.cjs');
19
22
 
20
23
 
21
- var _chunk373W6VADcjs = require('../chunk-373W6VAD.cjs');
24
+
25
+ var _chunk667ZCM4Xcjs = require('../chunk-667ZCM4X.cjs');
22
26
  require('../chunk-I6GUOEBO.cjs');
23
27
 
24
28
 
@@ -35,10 +39,6 @@ var _chunkLIUYHYFNcjs = require('../chunk-LIUYHYFN.cjs');
35
39
  var _chunkJDEXZGIYcjs = require('../chunk-JDEXZGIY.cjs');
36
40
 
37
41
 
38
-
39
- var _chunk667ZCM4Xcjs = require('../chunk-667ZCM4X.cjs');
40
-
41
-
42
42
  var _chunkKWLSBTB2cjs = require('../chunk-KWLSBTB2.cjs');
43
43
 
44
44
  // src/primitives/connection.tsx
@@ -12,13 +12,17 @@ import {
12
12
  DialogHeader,
13
13
  DialogTitle
14
14
  } from "../chunk-3QT5VYZ3.js";
15
- import {
16
- Callout
17
- } from "../chunk-GL5CV4FF.js";
18
15
  import "../chunk-V4LE2HWP.js";
19
16
  import {
20
17
  Text
21
18
  } from "../chunk-EIY5LLSP.js";
19
+ import {
20
+ Callout
21
+ } from "../chunk-GL5CV4FF.js";
22
+ import {
23
+ Alert,
24
+ AlertDescription
25
+ } from "../chunk-R4AIM3BQ.js";
22
26
  import "../chunk-D4ZL2OEQ.js";
23
27
  import {
24
28
  AlertDialog,
@@ -33,10 +37,6 @@ import {
33
37
  import {
34
38
  buttonVariants
35
39
  } from "../chunk-W326GKML.js";
36
- import {
37
- Alert,
38
- AlertDescription
39
- } from "../chunk-R4AIM3BQ.js";
40
40
  import {
41
41
  cn
42
42
  } from "../chunk-G6SRSWXB.js";
@@ -1,10 +1,10 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
2
 
3
3
 
4
- var _chunkMU4F3DSWcjs = require('../chunk-MU4F3DSW.cjs');
4
+ var _chunkFARCLWLUcjs = require('../chunk-FARCLWLU.cjs');
5
5
  require('../chunk-JDEXZGIY.cjs');
6
- require('../chunk-4LXN6GLZ.cjs');
7
6
  require('../chunk-KWLSBTB2.cjs');
7
+ require('../chunk-4LXN6GLZ.cjs');
8
8
 
9
9
 
10
- exports.CopyButton = _chunkMU4F3DSWcjs.CopyButton;
10
+ exports.CopyButton = _chunkFARCLWLUcjs.CopyButton;
@@ -1,10 +1,10 @@
1
1
  "use client";
2
2
  import {
3
3
  CopyButton
4
- } from "../chunk-HREEZUKL.js";
4
+ } from "../chunk-DILYV4FI.js";
5
5
  import "../chunk-W326GKML.js";
6
- import "../chunk-ZWZAAGQF.js";
7
6
  import "../chunk-G6SRSWXB.js";
7
+ import "../chunk-ZWZAAGQF.js";
8
8
  export {
9
9
  CopyButton
10
10
  };
@@ -0,0 +1,8 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
+ "use client";
3
+
4
+
5
+ var _chunkO6F3LVZYcjs = require('../chunk-O6F3LVZY.cjs');
6
+
7
+
8
+ exports.DictationProvider = _chunkO6F3LVZYcjs.DictationProvider;
@@ -0,0 +1,2 @@
1
+ export { DictationProvider, DictationProviderProps, DictationTranscribe, DictationTranscribeOptions } from '../hooks/use-dictation.cjs';
2
+ import 'react';
@@ -0,0 +1,2 @@
1
+ export { DictationProvider, DictationProviderProps, DictationTranscribe, DictationTranscribeOptions } from '../hooks/use-dictation.js';
2
+ import 'react';
@@ -0,0 +1,8 @@
1
+ "use client";
2
+ "use client";
3
+ import {
4
+ DictationProvider
5
+ } from "../chunk-M2ZNC3TK.js";
6
+ export {
7
+ DictationProvider
8
+ };
@@ -5,13 +5,13 @@ var _chunkW5I4FN7Gcjs = require('../chunk-W5I4FN7G.cjs');
5
5
 
6
6
 
7
7
  var _chunk373W6VADcjs = require('../chunk-373W6VAD.cjs');
8
+ require('../chunk-EJP2L5QV.cjs');
8
9
 
9
10
 
10
11
  var _chunkPQUSJEXLcjs = require('../chunk-PQUSJEXL.cjs');
11
12
 
12
13
 
13
14
  var _chunkJDEXZGIYcjs = require('../chunk-JDEXZGIY.cjs');
14
- require('../chunk-EJP2L5QV.cjs');
15
15
 
16
16
 
17
17
  var _chunkKWLSBTB2cjs = require('../chunk-KWLSBTB2.cjs');
@@ -5,13 +5,13 @@ import {
5
5
  import {
6
6
  Text
7
7
  } from "../chunk-EIY5LLSP.js";
8
+ import "../chunk-F7JHSZNT.js";
8
9
  import {
9
10
  Input
10
11
  } from "../chunk-QMA3WVB7.js";
11
12
  import {
12
13
  Button
13
14
  } from "../chunk-W326GKML.js";
14
- import "../chunk-F7JHSZNT.js";
15
15
  import {
16
16
  cn
17
17
  } from "../chunk-G6SRSWXB.js";
@@ -5,9 +5,9 @@
5
5
 
6
6
 
7
7
 
8
- var _chunkZ3JJSNR5cjs = require('../chunk-Z3JJSNR5.cjs');
9
- require('../chunk-373W6VAD.cjs');
8
+ var _chunkZLEM2SAUcjs = require('../chunk-ZLEM2SAU.cjs');
10
9
  require('../chunk-U2NES7VR.cjs');
10
+ require('../chunk-373W6VAD.cjs');
11
11
  require('../chunk-JDEXZGIY.cjs');
12
12
  require('../chunk-KWLSBTB2.cjs');
13
13
 
@@ -15,4 +15,4 @@ require('../chunk-KWLSBTB2.cjs');
15
15
 
16
16
 
17
17
 
18
- exports.FileDropArea = _chunkZ3JJSNR5cjs.FileDropArea; exports.FileDropzone = _chunkZ3JJSNR5cjs.FileDropzone; exports.installFileDropGuard = _chunkZ3JJSNR5cjs.installFileDropGuard; exports.useFileDropGuard = _chunkZ3JJSNR5cjs.useFileDropGuard;
18
+ exports.FileDropArea = _chunkZLEM2SAUcjs.FileDropArea; exports.FileDropzone = _chunkZLEM2SAUcjs.FileDropzone; exports.installFileDropGuard = _chunkZLEM2SAUcjs.installFileDropGuard; exports.useFileDropGuard = _chunkZLEM2SAUcjs.useFileDropGuard;
@@ -5,9 +5,9 @@ import {
5
5
  FileDropzone,
6
6
  installFileDropGuard,
7
7
  useFileDropGuard
8
- } from "../chunk-HBRVOGLA.js";
9
- import "../chunk-EIY5LLSP.js";
8
+ } from "../chunk-WHDHUYS6.js";
10
9
  import "../chunk-ZRLUUZHK.js";
10
+ import "../chunk-EIY5LLSP.js";
11
11
  import "../chunk-W326GKML.js";
12
12
  import "../chunk-G6SRSWXB.js";
13
13
  export {
@@ -14,14 +14,14 @@ require('../chunk-2BHI5ZWJ.cjs');
14
14
  require('../chunk-WDXEJDMO.cjs');
15
15
 
16
16
 
17
- var _chunkGTVSRRE3cjs = require('../chunk-GTVSRRE3.cjs');
18
- require('../chunk-MU4F3DSW.cjs');
19
-
20
-
21
17
  var _chunkKENBU3NVcjs = require('../chunk-KENBU3NV.cjs');
22
18
  require('../chunk-ELPV44S6.cjs');
23
19
 
24
20
 
21
+ var _chunkBGCNGYPLcjs = require('../chunk-BGCNGYPL.cjs');
22
+ require('../chunk-FARCLWLU.cjs');
23
+
24
+
25
25
  var _chunk373W6VADcjs = require('../chunk-373W6VAD.cjs');
26
26
 
27
27
 
@@ -29,8 +29,8 @@ var _chunkT2ZFSPE4cjs = require('../chunk-T2ZFSPE4.cjs');
29
29
 
30
30
 
31
31
  var _chunkJDEXZGIYcjs = require('../chunk-JDEXZGIY.cjs');
32
- require('../chunk-4LXN6GLZ.cjs');
33
32
  require('../chunk-KWLSBTB2.cjs');
33
+ require('../chunk-4LXN6GLZ.cjs');
34
34
 
35
35
  // src/primitives/file-preview.tsx
36
36
  var _lucidereact = require('lucide-react');
@@ -281,7 +281,7 @@ function FilePreviewBody({
281
281
  kind === "markdown" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkKENBU3NVcjs.LazyMarkdown, { components: { a: NewTabLink, ...markdownComponents }, children: text.text }) : (
282
282
  // The theme's relaxed leading is a fixed 1.8rem, which spaces a
283
283
  // file's small monospace lines apart; read it at 20px lines.
284
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGTVSRRE3cjs.CodeBlock, { wrap: true, className: "[&>pre]:leading-5", children: text.text })
284
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBGCNGYPLcjs.CodeBlock, { wrap: true, className: "[&>pre]:leading-5", children: text.text })
285
285
  )
286
286
  ] });
287
287
  }
@@ -12,14 +12,14 @@ import {
12
12
  import "../chunk-JTI4244T.js";
13
13
  import "../chunk-4HWCNRK4.js";
14
14
  import "../chunk-3QT5VYZ3.js";
15
- import {
16
- CodeBlock
17
- } from "../chunk-F3B4M6DU.js";
18
- import "../chunk-HREEZUKL.js";
19
15
  import {
20
16
  LazyMarkdown
21
17
  } from "../chunk-VY5U4VGV.js";
22
18
  import "../chunk-INNGGLMZ.js";
19
+ import {
20
+ CodeBlock
21
+ } from "../chunk-HTPPNW74.js";
22
+ import "../chunk-DILYV4FI.js";
23
23
  import {
24
24
  Text
25
25
  } from "../chunk-EIY5LLSP.js";
@@ -29,8 +29,8 @@ import {
29
29
  import {
30
30
  Button
31
31
  } from "../chunk-W326GKML.js";
32
- import "../chunk-ZWZAAGQF.js";
33
32
  import "../chunk-G6SRSWXB.js";
33
+ import "../chunk-ZWZAAGQF.js";
34
34
 
35
35
  // src/primitives/file-preview.tsx
36
36
  import { Download, FileQuestion, FileWarning, Loader2 } from "lucide-react";
@@ -2,19 +2,19 @@
2
2
  "use client";
3
3
 
4
4
 
5
- var _chunkCRTH5GJ5cjs = require('../chunk-CRTH5GJ5.cjs');
5
+ var _chunkMW67PHAQcjs = require('../chunk-MW67PHAQ.cjs');
6
6
  require('../chunk-PPX2VPGI.cjs');
7
7
  require('../chunk-WNXVGUBF.cjs');
8
8
  require('../chunk-IQZLUT2Y.cjs');
9
- require('../chunk-VOTCYG3F.cjs');
10
9
  require('../chunk-JH4GAGOQ.cjs');
11
10
  require('../chunk-V5SPFLKW.cjs');
11
+ require('../chunk-VOTCYG3F.cjs');
12
12
  require('../chunk-PQUSJEXL.cjs');
13
13
  require('../chunk-VGTINL5Q.cjs');
14
14
  require('../chunk-I6GUOEBO.cjs');
15
15
  require('../chunk-JDEXZGIY.cjs');
16
- require('../chunk-R35FT53G.cjs');
17
16
  require('../chunk-KWLSBTB2.cjs');
17
+ require('../chunk-R35FT53G.cjs');
18
18
 
19
19
 
20
- exports.FilterBar = _chunkCRTH5GJ5cjs.FilterBar;
20
+ exports.FilterBar = _chunkMW67PHAQcjs.FilterBar;