@q9labsai/chalk-react 4.0.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 (169) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +99 -0
  3. package/dist/__tests__/setup.d.ts +2 -0
  4. package/dist/__tests__/setup.d.ts.map +1 -0
  5. package/dist/bindings/context.d.ts +9 -0
  6. package/dist/bindings/context.d.ts.map +1 -0
  7. package/dist/bindings/hooks.d.ts +11 -0
  8. package/dist/bindings/hooks.d.ts.map +1 -0
  9. package/dist/chunk-HCTXF323.js +6207 -0
  10. package/dist/chunk-ZEZLA34O.js +210 -0
  11. package/dist/components/admission-panel/AdmissionPanel.d.ts +16 -0
  12. package/dist/components/admission-panel/AdmissionPanel.d.ts.map +1 -0
  13. package/dist/components/atomic/AudioIndicator.d.ts +11 -0
  14. package/dist/components/atomic/AudioIndicator.d.ts.map +1 -0
  15. package/dist/components/atomic/Avatar.d.ts +14 -0
  16. package/dist/components/atomic/Avatar.d.ts.map +1 -0
  17. package/dist/components/atomic/CaptionLine.d.ts +10 -0
  18. package/dist/components/atomic/CaptionLine.d.ts.map +1 -0
  19. package/dist/components/atomic/ConnectionQuality.d.ts +9 -0
  20. package/dist/components/atomic/ConnectionQuality.d.ts.map +1 -0
  21. package/dist/components/atomic/HandRaiseIndicator.d.ts +11 -0
  22. package/dist/components/atomic/HandRaiseIndicator.d.ts.map +1 -0
  23. package/dist/components/atomic/NameTag.d.ts +9 -0
  24. package/dist/components/atomic/NameTag.d.ts.map +1 -0
  25. package/dist/components/atomic/ReactionBubble.d.ts +11 -0
  26. package/dist/components/atomic/ReactionBubble.d.ts.map +1 -0
  27. package/dist/components/atomic/ReleaseBadge.d.ts +7 -0
  28. package/dist/components/atomic/ReleaseBadge.d.ts.map +1 -0
  29. package/dist/components/atomic/StatusBadge.d.ts +9 -0
  30. package/dist/components/atomic/StatusBadge.d.ts.map +1 -0
  31. package/dist/components/atomic/TourHighlight.d.ts +10 -0
  32. package/dist/components/atomic/TourHighlight.d.ts.map +1 -0
  33. package/dist/components/atomic/TourTooltip.d.ts +16 -0
  34. package/dist/components/atomic/TourTooltip.d.ts.map +1 -0
  35. package/dist/components/atomic/TranscriptLine.d.ts +20 -0
  36. package/dist/components/atomic/TranscriptLine.d.ts.map +1 -0
  37. package/dist/components/atomic/VolumeSlider.d.ts +13 -0
  38. package/dist/components/atomic/VolumeSlider.d.ts.map +1 -0
  39. package/dist/components/atomic/Waveform.d.ts +10 -0
  40. package/dist/components/atomic/Waveform.d.ts.map +1 -0
  41. package/dist/components/atomic/WhatsNewTrigger.d.ts +22 -0
  42. package/dist/components/atomic/WhatsNewTrigger.d.ts.map +1 -0
  43. package/dist/components/atomic/index.d.ts +19 -0
  44. package/dist/components/atomic/index.d.ts.map +1 -0
  45. package/dist/components/audio-output/AudioOutput.d.ts +29 -0
  46. package/dist/components/audio-output/AudioOutput.d.ts.map +1 -0
  47. package/dist/components/chalk/Chalk.d.ts +53 -0
  48. package/dist/components/chalk/Chalk.d.ts.map +1 -0
  49. package/dist/components/composite/BackgroundEffectsPicker.d.ts +21 -0
  50. package/dist/components/composite/BackgroundEffectsPicker.d.ts.map +1 -0
  51. package/dist/components/composite/ChatPanel.d.ts +15 -0
  52. package/dist/components/composite/ChatPanel.d.ts.map +1 -0
  53. package/dist/components/composite/CommandErrorAlert.d.ts +6 -0
  54. package/dist/components/composite/CommandErrorAlert.d.ts.map +1 -0
  55. package/dist/components/composite/DeviceSelector.d.ts +19 -0
  56. package/dist/components/composite/DeviceSelector.d.ts.map +1 -0
  57. package/dist/components/composite/MessageBubble.d.ts +23 -0
  58. package/dist/components/composite/MessageBubble.d.ts.map +1 -0
  59. package/dist/components/composite/NoiseSuppressionToggle.d.ts +11 -0
  60. package/dist/components/composite/NoiseSuppressionToggle.d.ts.map +1 -0
  61. package/dist/components/composite/ReactionPicker.d.ts +16 -0
  62. package/dist/components/composite/ReactionPicker.d.ts.map +1 -0
  63. package/dist/components/composite/ReactionsOverlay.d.ts +7 -0
  64. package/dist/components/composite/ReactionsOverlay.d.ts.map +1 -0
  65. package/dist/components/composite/ScreenShareView.d.ts +13 -0
  66. package/dist/components/composite/ScreenShareView.d.ts.map +1 -0
  67. package/dist/components/composite/SettingsDialog.d.ts +82 -0
  68. package/dist/components/composite/SettingsDialog.d.ts.map +1 -0
  69. package/dist/components/composite/SettingsPanel.d.ts +17 -0
  70. package/dist/components/composite/SettingsPanel.d.ts.map +1 -0
  71. package/dist/components/composite/chat-file-upload.d.ts +7 -0
  72. package/dist/components/composite/chat-file-upload.d.ts.map +1 -0
  73. package/dist/components/composite/chat-panel-model.d.ts +13 -0
  74. package/dist/components/composite/chat-panel-model.d.ts.map +1 -0
  75. package/dist/components/composite/chat-types.d.ts +3 -0
  76. package/dist/components/composite/chat-types.d.ts.map +1 -0
  77. package/dist/components/control-bar/ControlBar.d.ts +30 -0
  78. package/dist/components/control-bar/ControlBar.d.ts.map +1 -0
  79. package/dist/components/control-bar/control-bar-button.d.ts +24 -0
  80. package/dist/components/control-bar/control-bar-button.d.ts.map +1 -0
  81. package/dist/components/device-popover/DevicePopover.d.ts +27 -0
  82. package/dist/components/device-popover/DevicePopover.d.ts.map +1 -0
  83. package/dist/components/entrance/Entrance.d.ts +21 -0
  84. package/dist/components/entrance/Entrance.d.ts.map +1 -0
  85. package/dist/components/entrance/EntranceSurface.d.ts +23 -0
  86. package/dist/components/entrance/EntranceSurface.d.ts.map +1 -0
  87. package/dist/components/index.d.ts +22 -0
  88. package/dist/components/index.d.ts.map +1 -0
  89. package/dist/components/index.js +26 -0
  90. package/dist/components/invite-dialog/InviteDialog.d.ts +13 -0
  91. package/dist/components/invite-dialog/InviteDialog.d.ts.map +1 -0
  92. package/dist/components/join-failed-screen/JoinFailedScreen.d.ts +15 -0
  93. package/dist/components/join-failed-screen/JoinFailedScreen.d.ts.map +1 -0
  94. package/dist/components/lazy.d.ts +11 -0
  95. package/dist/components/lazy.d.ts.map +1 -0
  96. package/dist/components/leave-dialog/LeaveDialog.d.ts +13 -0
  97. package/dist/components/leave-dialog/LeaveDialog.d.ts.map +1 -0
  98. package/dist/components/media-request-dialog/MediaRequestDialog.d.ts +9 -0
  99. package/dist/components/media-request-dialog/MediaRequestDialog.d.ts.map +1 -0
  100. package/dist/components/participant-grid/ParticipantGrid.d.ts +34 -0
  101. package/dist/components/participant-grid/ParticipantGrid.d.ts.map +1 -0
  102. package/dist/components/participant-tile/ParticipantTile.d.ts +31 -0
  103. package/dist/components/participant-tile/ParticipantTile.d.ts.map +1 -0
  104. package/dist/components/participants-panel/ParticipantsPanel.d.ts +28 -0
  105. package/dist/components/participants-panel/ParticipantsPanel.d.ts.map +1 -0
  106. package/dist/components/participants-panel/index.d.ts +3 -0
  107. package/dist/components/participants-panel/index.d.ts.map +1 -0
  108. package/dist/components/participants-panel/participant-options-menu.d.ts +17 -0
  109. package/dist/components/participants-panel/participant-options-menu.d.ts.map +1 -0
  110. package/dist/components/participants-panel/participant-row.d.ts +21 -0
  111. package/dist/components/participants-panel/participant-row.d.ts.map +1 -0
  112. package/dist/components/participants-panel/participant-volume-context.d.ts +9 -0
  113. package/dist/components/participants-panel/participant-volume-context.d.ts.map +1 -0
  114. package/dist/components/reconnecting-overlay/ReconnectingOverlay.d.ts +12 -0
  115. package/dist/components/reconnecting-overlay/ReconnectingOverlay.d.ts.map +1 -0
  116. package/dist/components/space-header/SpaceHeader.d.ts +16 -0
  117. package/dist/components/space-header/SpaceHeader.d.ts.map +1 -0
  118. package/dist/components/space-info-dialog/SpaceInfoDialog.d.ts +23 -0
  119. package/dist/components/space-info-dialog/SpaceInfoDialog.d.ts.map +1 -0
  120. package/dist/components/space-view/SpaceView.d.ts +59 -0
  121. package/dist/components/space-view/SpaceView.d.ts.map +1 -0
  122. package/dist/components/theme.d.ts +114 -0
  123. package/dist/components/theme.d.ts.map +1 -0
  124. package/dist/components/toast-stack/ToastStack.d.ts +28 -0
  125. package/dist/components/toast-stack/ToastStack.d.ts.map +1 -0
  126. package/dist/components/transcript-panel/TranscriptPanel.d.ts +28 -0
  127. package/dist/components/transcript-panel/TranscriptPanel.d.ts.map +1 -0
  128. package/dist/components/ui/index.d.ts +2 -0
  129. package/dist/components/ui/index.d.ts.map +1 -0
  130. package/dist/components/ui/index.js +3 -0
  131. package/dist/components/whiteboard-view/WhiteboardView.d.ts +7 -0
  132. package/dist/components/whiteboard-view/WhiteboardView.d.ts.map +1 -0
  133. package/dist/index.d.ts +10 -0
  134. package/dist/index.d.ts.map +1 -0
  135. package/dist/index.js +30 -0
  136. package/dist/internal/episode-diagnostic-render-observer.d.ts +2 -0
  137. package/dist/internal/episode-diagnostic-render-observer.d.ts.map +1 -0
  138. package/dist/internal/thumbnail.d.ts +11 -0
  139. package/dist/internal/thumbnail.d.ts.map +1 -0
  140. package/dist/internal/useHaptics.d.ts +9 -0
  141. package/dist/internal/useHaptics.d.ts.map +1 -0
  142. package/dist/internal/useMediaQuery.d.ts +7 -0
  143. package/dist/internal/useMediaQuery.d.ts.map +1 -0
  144. package/dist/public-surface.contract.d.ts +21 -0
  145. package/dist/public-surface.contract.d.ts.map +1 -0
  146. package/dist/selectors/space-selectors.d.ts +11 -0
  147. package/dist/selectors/space-selectors.d.ts.map +1 -0
  148. package/dist/test-support/preview-client.d.ts +11 -0
  149. package/dist/test-support/preview-client.d.ts.map +1 -0
  150. package/dist/test-support/preview-fixtures.d.ts +43 -0
  151. package/dist/test-support/preview-fixtures.d.ts.map +1 -0
  152. package/dist/test-support/test-client.d.ts +8 -0
  153. package/dist/test-support/test-client.d.ts.map +1 -0
  154. package/dist/theme.d.ts +66 -0
  155. package/dist/theme.d.ts.map +1 -0
  156. package/dist/utils/cn.d.ts +3 -0
  157. package/dist/utils/cn.d.ts.map +1 -0
  158. package/dist/utils/colorGenerator.d.ts +60 -0
  159. package/dist/utils/colorGenerator.d.ts.map +1 -0
  160. package/dist/utils/icons.d.ts +73 -0
  161. package/dist/utils/icons.d.ts.map +1 -0
  162. package/dist/utils/index.d.ts +4 -0
  163. package/dist/utils/index.d.ts.map +1 -0
  164. package/dist/utils/index.js +33 -0
  165. package/dist/utils/theme.d.ts +14 -0
  166. package/dist/utils/theme.d.ts.map +1 -0
  167. package/dist/whiteboard/wire-adapters.d.ts +6 -0
  168. package/dist/whiteboard/wire-adapters.d.ts.map +1 -0
  169. package/package.json +107 -0
@@ -0,0 +1,210 @@
1
+ // src/utils/cn.ts
2
+ import { clsx } from "clsx";
3
+ import { twMerge } from "tailwind-merge";
4
+ function cn(...inputs) {
5
+ return twMerge(clsx(inputs));
6
+ }
7
+
8
+ // src/utils/colorGenerator.ts
9
+ var PARTICIPANT_GRADIENT_PRESETS = [
10
+ { id: "aurora", label: "Aurora", from: "#0ea5e9", to: "#22c55e" },
11
+ { id: "ember", label: "Ember", from: "#f97316", to: "#ef4444" },
12
+ { id: "orchid", label: "Orchid", from: "#a855f7", to: "#ec4899" },
13
+ { id: "cobalt", label: "Cobalt", from: "#2563eb", to: "#14b8a6" },
14
+ { id: "gold", label: "Gold", from: "#eab308", to: "#f97316" },
15
+ { id: "slate", label: "Slate", from: "#64748b", to: "#94a3b8" }
16
+ ];
17
+ var AUTO_PALETTE = [
18
+ ["#315f72", "#dcebef"],
19
+ ["#5c6650", "#e3eadf"],
20
+ ["#6b5b4f", "#ece3dc"],
21
+ ["#64576b", "#e8e0ea"],
22
+ ["#49645d", "#dfeae6"],
23
+ ["#665d42", "#ebe6d6"],
24
+ ["#4d5d73", "#e1e6ec"],
25
+ ["#6d5158", "#eee0e3"]
26
+ ];
27
+ function hashIdentity(identity) {
28
+ let hash = 2166136261;
29
+ for (const char of identity.trim().toLowerCase() || "chalk") {
30
+ hash ^= char.charCodeAt(0);
31
+ hash = Math.imul(hash, 16777619);
32
+ }
33
+ return hash >>> 0;
34
+ }
35
+ function resolveGradient(identity = "chalk", preference) {
36
+ if (preference?.mode === "custom" && preference.from && preference.to) {
37
+ return [preference.from, preference.to];
38
+ }
39
+ return AUTO_PALETTE[hashIdentity(identity) % AUTO_PALETTE.length] ?? ["#64748b", "#94a3b8"];
40
+ }
41
+ function getParticipantInitial(name) {
42
+ return (name?.trim()?.[0] ?? "?").toUpperCase();
43
+ }
44
+ function getParticipantInitials(name) {
45
+ const parts = (name ?? "").trim().split(/\s+/).filter(Boolean);
46
+ const first = parts[0]?.[0] ?? getParticipantInitial(name);
47
+ const second = parts[1]?.[0] ?? "";
48
+ return (parts.length > 1 ? first + second : first).toUpperCase();
49
+ }
50
+ function getParticipantColor(identity = "chalk", preference) {
51
+ const [primary, secondary] = resolveGradient(identity, preference);
52
+ return {
53
+ primary,
54
+ secondary,
55
+ text: "#ffffff",
56
+ gradientEnd: secondary
57
+ };
58
+ }
59
+ function getParticipantGradient(identity = "chalk", preference) {
60
+ const [primary, secondary] = resolveGradient(identity, preference);
61
+ return `linear-gradient(135deg, ${primary}, ${secondary})`;
62
+ }
63
+ function getParticipantAvatarGradient(identity = "chalk", preference) {
64
+ return getParticipantGradient(identity, preference);
65
+ }
66
+ function getParticipantBorder(identity = "chalk", preference) {
67
+ return getParticipantColor(identity, preference).primary;
68
+ }
69
+ function getParticipantThemeVariables(identity = "chalk", preference) {
70
+ const colors = getParticipantColor(identity, preference);
71
+ return {
72
+ "--primary": colors.primary,
73
+ "--ring": colors.primary,
74
+ "--chalk-accent": colors.primary,
75
+ "--chalk-accent-2": colors.secondary
76
+ };
77
+ }
78
+ function getParticipantAvatarRecipe(identity = "chalk", preference) {
79
+ const colors = getParticipantColor(identity, preference);
80
+ const avatarGradient = getParticipantGradient(identity, preference);
81
+ return {
82
+ initials: getParticipantInitials(identity),
83
+ gradient: avatarGradient,
84
+ avatarGradient,
85
+ darkerAvatarGradient: `linear-gradient(135deg, ${colors.primary}, #111827)`,
86
+ color: colors.primary,
87
+ border: colors.primary,
88
+ facehashColors: [colors.primary, colors.secondary, "#f8fafc"]
89
+ };
90
+ }
91
+
92
+ // src/utils/theme.ts
93
+ var THEME_ATTRIBUTE_NAMES = ["data-chalk-theme", "data-theme"];
94
+ var SYSTEM_DARK_QUERY = "(prefers-color-scheme: dark)";
95
+ var normalizeTheme = (value) => {
96
+ if (value === "dark" || value === "light") {
97
+ return value;
98
+ }
99
+ return null;
100
+ };
101
+ var resolveThemeFromElement = (element) => {
102
+ if (!element) return null;
103
+ for (const attributeName of THEME_ATTRIBUTE_NAMES) {
104
+ const attributeTheme = normalizeTheme(element.getAttribute(attributeName));
105
+ if (attributeTheme) return attributeTheme;
106
+ }
107
+ const classList = element.classList;
108
+ if (classList.contains("dark")) return "dark";
109
+ if (classList.contains("light")) return "light";
110
+ return null;
111
+ };
112
+ var resolveThemeFromDocument = ({ defaultTheme = "light", allowSystem = true } = {}) => {
113
+ if (typeof document === "undefined") return defaultTheme;
114
+ const explicitTheme = resolveThemeFromElement(document.documentElement) ?? resolveThemeFromElement(document.body);
115
+ if (explicitTheme) return explicitTheme;
116
+ if (allowSystem && typeof window !== "undefined" && typeof window.matchMedia === "function") {
117
+ return window.matchMedia(SYSTEM_DARK_QUERY).matches ? "dark" : "light";
118
+ }
119
+ return defaultTheme;
120
+ };
121
+ var resolvePortalThemeFromDocument = ({ defaultTheme = "light", allowSystem = true } = {}) => {
122
+ if (typeof document === "undefined") return defaultTheme;
123
+ const portalTheme = normalizeTheme(document.querySelector("[data-chalk-theme]")?.getAttribute("data-chalk-theme"));
124
+ if (portalTheme) return portalTheme;
125
+ return resolveThemeFromDocument({ defaultTheme, allowSystem });
126
+ };
127
+ var applyThemeToDocument = (theme) => {
128
+ if (typeof document === "undefined") return;
129
+ const root = document.documentElement;
130
+ root.classList.remove("light", "dark");
131
+ root.classList.add(theme);
132
+ for (const element of [root, document.body]) {
133
+ if (!element) continue;
134
+ for (const attributeName of THEME_ATTRIBUTE_NAMES) {
135
+ if (element.hasAttribute(attributeName)) {
136
+ element.setAttribute(attributeName, theme);
137
+ }
138
+ }
139
+ }
140
+ };
141
+ var subscribeToThemeChanges = (onThemeChange, { defaultTheme = "light", allowSystem = true, attributes = ["class", ...THEME_ATTRIBUTE_NAMES] } = {}) => {
142
+ if (typeof document === "undefined") return () => {
143
+ };
144
+ let lastTheme = resolveThemeFromDocument({ defaultTheme, allowSystem });
145
+ const emitTheme = () => {
146
+ lastTheme = resolveThemeFromDocument({ defaultTheme, allowSystem });
147
+ onThemeChange(lastTheme);
148
+ };
149
+ const emitThemeIfChanged = () => {
150
+ const nextTheme = resolveThemeFromDocument({ defaultTheme, allowSystem });
151
+ if (nextTheme !== lastTheme) {
152
+ lastTheme = nextTheme;
153
+ onThemeChange(nextTheme);
154
+ }
155
+ };
156
+ emitTheme();
157
+ const observer = new MutationObserver((mutations) => {
158
+ for (const mutation of mutations) {
159
+ if (mutation.type === "attributes" && attributes.includes(mutation.attributeName ?? "")) {
160
+ emitTheme();
161
+ return;
162
+ }
163
+ }
164
+ });
165
+ const observerOptions = {
166
+ attributes: true,
167
+ attributeFilter: [...attributes]
168
+ };
169
+ observer.observe(document.documentElement, observerOptions);
170
+ if (document.body) {
171
+ observer.observe(document.body, observerOptions);
172
+ }
173
+ const intervalId = window.setInterval(emitThemeIfChanged, 250);
174
+ let mediaQueryList = null;
175
+ let removeSystemListener = () => {
176
+ };
177
+ if (allowSystem && typeof window !== "undefined" && typeof window.matchMedia === "function") {
178
+ mediaQueryList = window.matchMedia(SYSTEM_DARK_QUERY);
179
+ const handleChange = () => emitTheme();
180
+ if (typeof mediaQueryList.addEventListener === "function") {
181
+ mediaQueryList.addEventListener("change", handleChange);
182
+ removeSystemListener = () => mediaQueryList?.removeEventListener("change", handleChange);
183
+ } else if (typeof mediaQueryList.addListener === "function") {
184
+ mediaQueryList.addListener(handleChange);
185
+ removeSystemListener = () => mediaQueryList?.removeListener(handleChange);
186
+ }
187
+ }
188
+ return () => {
189
+ observer.disconnect();
190
+ removeSystemListener();
191
+ window.clearInterval(intervalId);
192
+ };
193
+ };
194
+
195
+ export {
196
+ cn,
197
+ PARTICIPANT_GRADIENT_PRESETS,
198
+ getParticipantInitial,
199
+ getParticipantInitials,
200
+ getParticipantColor,
201
+ getParticipantGradient,
202
+ getParticipantAvatarGradient,
203
+ getParticipantBorder,
204
+ getParticipantThemeVariables,
205
+ getParticipantAvatarRecipe,
206
+ resolveThemeFromDocument,
207
+ resolvePortalThemeFromDocument,
208
+ applyThemeToDocument,
209
+ subscribeToThemeChanges
210
+ };
@@ -0,0 +1,16 @@
1
+ import React from "react";
2
+ export interface AdmissionParticipant {
3
+ id: string;
4
+ displayName: string;
5
+ avatarUrl?: string;
6
+ joinedAt?: Date;
7
+ }
8
+ export interface AdmissionPanelProps {
9
+ loading?: boolean;
10
+ className?: string;
11
+ }
12
+ export declare function AdmissionPanel(props: AdmissionPanelProps): React.JSX.Element;
13
+ export declare namespace AdmissionPanel {
14
+ var displayName: string;
15
+ }
16
+ //# sourceMappingURL=AdmissionPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AdmissionPanel.d.ts","sourceRoot":"","sources":["../../../src/components/admission-panel/AdmissionPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAOnD,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAwGD,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAoB5E;yBApBe,cAAc"}
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ interface AudioIndicatorProps {
3
+ level?: number;
4
+ muted?: boolean;
5
+ size?: "sm" | "md" | "lg";
6
+ variant?: "bars" | "icon" | "dot";
7
+ className?: string;
8
+ }
9
+ export declare const AudioIndicator: React.MemoExoticComponent<({ level, muted, size, variant, className }: AudioIndicatorProps) => import("react/jsx-runtime").JSX.Element>;
10
+ export {};
11
+ //# sourceMappingURL=AudioIndicator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AudioIndicator.d.ts","sourceRoot":"","sources":["../../../src/components/atomic/AudioIndicator.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,UAAU,mBAAmB;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAQD,eAAO,MAAM,cAAc,yEAAuF,mBAAmB,6CAoDnI,CAAC"}
@@ -0,0 +1,14 @@
1
+ import React from "react";
2
+ import { type ParticipantGradientPreference } from "../../utils/colorGenerator";
3
+ export interface AvatarProps {
4
+ name: string;
5
+ src?: string;
6
+ size?: "xs" | "sm" | "md" | "lg" | "xl" | "2xl";
7
+ status?: "online" | "away" | "busy" | "offline";
8
+ className?: string;
9
+ style?: React.CSSProperties;
10
+ gradientPreference?: ParticipantGradientPreference;
11
+ generated?: boolean;
12
+ }
13
+ export declare const Avatar: React.MemoExoticComponent<({ name, src, size, status, className, style, gradientPreference, generated }: AvatarProps) => import("react/jsx-runtime").JSX.Element>;
14
+ //# sourceMappingURL=Avatar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../../src/components/atomic/Avatar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAG5D,OAAO,EAA8B,KAAK,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAc5G,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC;IAChD,MAAM,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,kBAAkB,CAAC,EAAE,6BAA6B,CAAC;IACnD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAkBD,eAAO,MAAM,MAAM,2GAA2G,WAAW,6CAqCvI,CAAC"}
@@ -0,0 +1,10 @@
1
+ import React from "react";
2
+ export interface CaptionLineProps {
3
+ text: string;
4
+ speaker?: string;
5
+ position?: "top" | "bottom";
6
+ maxLines?: number;
7
+ className?: string;
8
+ }
9
+ export declare const CaptionLine: React.NamedExoticComponent<CaptionLineProps>;
10
+ //# sourceMappingURL=CaptionLine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CaptionLine.d.ts","sourceRoot":"","sources":["../../../src/components/atomic/CaptionLine.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,WAAW,8CAqBtB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ export interface ConnectionQualityProps {
3
+ quality: 1 | 2 | 3 | 4;
4
+ showLabel?: boolean;
5
+ size?: "sm" | "md";
6
+ className?: string;
7
+ }
8
+ export declare const ConnectionQuality: React.MemoExoticComponent<({ quality, showLabel, size, className }: ConnectionQualityProps) => import("react/jsx-runtime").JSX.Element>;
9
+ //# sourceMappingURL=ConnectionQuality.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConnectionQuality.d.ts","sourceRoot":"","sources":["../../../src/components/atomic/ConnectionQuality.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAgBD,eAAO,MAAM,iBAAiB,sEAAuE,sBAAsB,6CAuBzH,CAAC"}
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ interface HandRaiseIndicatorProps {
3
+ raised: boolean;
4
+ animated?: boolean;
5
+ position?: "top-left" | "top-right" | "bottom-left" | "bottom-right";
6
+ size?: "sm" | "md" | "lg";
7
+ className?: string;
8
+ }
9
+ export declare const HandRaiseIndicator: React.MemoExoticComponent<({ raised, animated, position, size, className }: HandRaiseIndicatorProps) => import("react/jsx-runtime").JSX.Element | null>;
10
+ export {};
11
+ //# sourceMappingURL=HandRaiseIndicator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HandRaiseIndicator.d.ts","sourceRoot":"","sources":["../../../src/components/atomic/HandRaiseIndicator.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,UAAU,uBAAuB;IAC/B,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,CAAC;IACrE,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAqBD,eAAO,MAAM,kBAAkB,8EAA4F,uBAAuB,oDAqBhJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ export interface NameTagProps {
3
+ name: string;
4
+ isLocal?: boolean;
5
+ size?: "sm" | "md" | "lg";
6
+ className?: string;
7
+ }
8
+ export declare const NameTag: React.MemoExoticComponent<({ name, isLocal, size, className }: NameTagProps) => import("react/jsx-runtime").JSX.Element>;
9
+ //# sourceMappingURL=NameTag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NameTag.d.ts","sourceRoot":"","sources":["../../../src/components/atomic/NameTag.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAQD,eAAO,MAAM,OAAO,iEAAkE,YAAY,6CAOhG,CAAC"}
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ interface ReactionBubbleProps {
3
+ emoji: string;
4
+ participantName?: string;
5
+ onComplete?: () => void;
6
+ duration?: number;
7
+ className?: string;
8
+ }
9
+ export declare const ReactionBubble: React.MemoExoticComponent<({ emoji, participantName, onComplete, duration: baseDuration, className }: ReactionBubbleProps) => import("react/jsx-runtime").JSX.Element | null>;
10
+ export {};
11
+ //# sourceMappingURL=ReactionBubble.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReactionBubble.d.ts","sourceRoot":"","sources":["../../../src/components/atomic/ReactionBubble.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAM5D,UAAU,mBAAmB;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAiCD,eAAO,MAAM,cAAc,wGAAiG,mBAAmB,oDA0E7I,CAAC"}
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ export interface ReleaseBadgeProps {
3
+ type: "major" | "minor" | "patch";
4
+ className?: string;
5
+ }
6
+ export declare const ReleaseBadge: React.NamedExoticComponent<ReleaseBadgeProps>;
7
+ //# sourceMappingURL=ReleaseBadge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReleaseBadge.d.ts","sourceRoot":"","sources":["../../../src/components/atomic/ReleaseBadge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAiBD,eAAO,MAAM,YAAY,+CAIvB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ export interface StatusBadgeProps {
3
+ status: "recording" | "live" | "transcribing" | "connecting" | "reconnecting";
4
+ pulse?: boolean;
5
+ size?: "sm" | "md";
6
+ className?: string;
7
+ }
8
+ export declare const StatusBadge: React.MemoExoticComponent<({ status, pulse, size, className }: StatusBadgeProps) => import("react/jsx-runtime").JSX.Element>;
9
+ //# sourceMappingURL=StatusBadge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusBadge.d.ts","sourceRoot":"","sources":["../../../src/components/atomic/StatusBadge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,WAAW,GAAG,MAAM,GAAG,cAAc,GAAG,YAAY,GAAG,cAAc,CAAC;IAC9E,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAmCD,eAAO,MAAM,WAAW,iEAAkE,gBAAgB,6CAUxG,CAAC"}
@@ -0,0 +1,10 @@
1
+ import React from "react";
2
+ export interface TourHighlightProps {
3
+ targetSelector: string;
4
+ padding?: number;
5
+ borderRadius?: number;
6
+ onClickOutside?: () => void;
7
+ className?: string;
8
+ }
9
+ export declare const TourHighlight: React.NamedExoticComponent<TourHighlightProps>;
10
+ //# sourceMappingURL=TourHighlight.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TourHighlight.d.ts","sourceRoot":"","sources":["../../../src/components/atomic/TourHighlight.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAInD,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,aAAa,gDA6DxB,CAAC"}
@@ -0,0 +1,16 @@
1
+ import React from "react";
2
+ export interface TourTooltipProps {
3
+ title: string;
4
+ description: string;
5
+ step: number;
6
+ totalSteps: number;
7
+ placement?: "top" | "bottom" | "left" | "right";
8
+ onNext?: () => void;
9
+ onPrev?: () => void;
10
+ onSkip?: () => void;
11
+ showSkip?: boolean;
12
+ showProgress?: boolean;
13
+ className?: string;
14
+ }
15
+ export declare const TourTooltip: React.NamedExoticComponent<TourTooltipProps>;
16
+ //# sourceMappingURL=TourTooltip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TourTooltip.d.ts","sourceRoot":"","sources":["../../../src/components/atomic/TourTooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAKjD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IAChD,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,WAAW,8CAiFtB,CAAC"}
@@ -0,0 +1,20 @@
1
+ import React from "react";
2
+ export interface TranscriptLineProps {
3
+ speaker: string;
4
+ speakerId: string;
5
+ text: string;
6
+ timestamp: Date;
7
+ isInterim?: boolean;
8
+ confidence?: number;
9
+ showTimestamp?: boolean;
10
+ showSpeaker?: boolean;
11
+ speakerColor?: string;
12
+ isLocalParticipant?: boolean;
13
+ showAvatar?: boolean;
14
+ showHeader?: boolean;
15
+ searchHighlight?: string;
16
+ isCurrentMatch?: boolean;
17
+ className?: string;
18
+ }
19
+ export declare const TranscriptLine: React.NamedExoticComponent<TranscriptLineProps>;
20
+ //# sourceMappingURL=TranscriptLine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TranscriptLine.d.ts","sourceRoot":"","sources":["../../../src/components/atomic/TranscriptLine.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAK9D,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAiCD,eAAO,MAAM,cAAc,iDAmF1B,CAAC"}
@@ -0,0 +1,13 @@
1
+ import React from "react";
2
+ export interface VolumeSliderProps {
3
+ value: number;
4
+ onChange: (value: number) => void;
5
+ muted?: boolean;
6
+ onMuteToggle?: () => void;
7
+ showValue?: boolean;
8
+ size?: "sm" | "md";
9
+ orientation?: "horizontal" | "vertical";
10
+ className?: string;
11
+ }
12
+ export declare const VolumeSlider: React.NamedExoticComponent<VolumeSliderProps>;
13
+ //# sourceMappingURL=VolumeSlider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VolumeSlider.d.ts","sourceRoot":"","sources":["../../../src/components/atomic/VolumeSlider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,YAAY,+CAmCvB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import React from "react";
2
+ export interface WaveformProps {
3
+ levels: number[];
4
+ color?: string;
5
+ animated?: boolean;
6
+ barCount?: number;
7
+ className?: string;
8
+ }
9
+ export declare const Waveform: React.MemoExoticComponent<({ levels, color, animated, barCount, className }: WaveformProps) => import("react/jsx-runtime").JSX.Element>;
10
+ //# sourceMappingURL=Waveform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Waveform.d.ts","sourceRoot":"","sources":["../../../src/components/atomic/Waveform.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,QAAQ,+EAAmG,aAAa,6CA6BnI,CAAC"}
@@ -0,0 +1,22 @@
1
+ import React from "react";
2
+ export interface WhatsNewTriggerProps {
3
+ /** Whether there's unseen content */
4
+ hasUnseen?: boolean;
5
+ /** Click handler */
6
+ onClick?: () => void;
7
+ /** Additional class names */
8
+ className?: string;
9
+ /** Size variant */
10
+ size?: "sm" | "md";
11
+ }
12
+ /**
13
+ * Trigger button for What's New dialog with notification badge
14
+ *
15
+ * @example
16
+ * ```tsx
17
+ * const { hasSeen, open } = useWhatsNew();
18
+ * <WhatsNewTrigger hasUnseen={!hasSeen} onClick={open} />
19
+ * ```
20
+ */
21
+ export declare const WhatsNewTrigger: React.NamedExoticComponent<WhatsNewTriggerProps>;
22
+ //# sourceMappingURL=WhatsNewTrigger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WhatsNewTrigger.d.ts","sourceRoot":"","sources":["../../../src/components/atomic/WhatsNewTrigger.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,WAAW,oBAAoB;IACnC,qCAAqC;IACrC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oBAAoB;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB;IACnB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,kDAoB1B,CAAC"}
@@ -0,0 +1,19 @@
1
+ export * from "../audio-output/AudioOutput";
2
+ export * from "../control-bar/control-bar-button";
3
+ export * from "../participant-tile/ParticipantTile";
4
+ export * from "./AudioIndicator";
5
+ export * from "./Avatar";
6
+ export * from "./CaptionLine";
7
+ export * from "./ConnectionQuality";
8
+ export * from "./HandRaiseIndicator";
9
+ export * from "./NameTag";
10
+ export * from "./ReactionBubble";
11
+ export * from "./ReleaseBadge";
12
+ export * from "./StatusBadge";
13
+ export * from "./TourHighlight";
14
+ export * from "./TourTooltip";
15
+ export * from "./TranscriptLine";
16
+ export * from "./VolumeSlider";
17
+ export * from "./Waveform";
18
+ export * from "./WhatsNewTrigger";
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/atomic/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * AudioOutput - Renders hidden audio elements for remote participants
3
+ *
4
+ * WebRTC audio tracks must be attached to HTML audio elements to be heard.
5
+ * This component creates and manages audio elements for all remote participants.
6
+ *
7
+ * Usage: Place once in your space component, passing all remote participants.
8
+ */
9
+ export interface AudioParticipant {
10
+ id: string;
11
+ audioTrack?: MediaStreamTrack | null;
12
+ screenShareAudioTrack?: MediaStreamTrack | null;
13
+ isLocal?: boolean;
14
+ }
15
+ export interface AudioOutputProps {
16
+ /** All participants - will filter to remote participants with audio tracks */
17
+ participants?: AudioParticipant[];
18
+ /** Volume level 0-1 (default: 1) */
19
+ volume?: number;
20
+ /** Selected audio output device id for routing playback via setSinkId (when supported). */
21
+ audioOutputDeviceId?: string;
22
+ /** Per-participant volume override (0-1). Takes precedence over volume prop. */
23
+ getParticipantVolume?: (participantId: string) => number;
24
+ }
25
+ export declare function AudioOutput({ participants, volume, audioOutputDeviceId, getParticipantVolume }: AudioOutputProps): null;
26
+ export declare namespace AudioOutput {
27
+ var displayName: string;
28
+ }
29
+ //# sourceMappingURL=AudioOutput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AudioOutput.d.ts","sourceRoot":"","sources":["../../../src/components/audio-output/AudioOutput.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACrC,qBAAqB,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAChD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,8EAA8E;IAC9E,YAAY,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAClC,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2FAA2F;IAC3F,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gFAAgF;IAChF,oBAAoB,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,MAAM,CAAC;CAC1D;AAWD,wBAAgB,WAAW,CAAC,EAAE,YAAY,EAAE,MAAU,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,EAAE,gBAAgB,QAsSpH;yBAtSe,WAAW"}
@@ -0,0 +1,53 @@
1
+ import { type ChatUploadFile, type ClientEventMap, type GetAccess, type SpaceClient } from "@q9labsai/chalk-client";
2
+ import type React from "react";
3
+ import { type ChalkTheme } from "../../theme";
4
+ export type SpaceLayout = "focus" | "grid" | "presentation";
5
+ export type ChalkFeatures = {
6
+ readonly chat?: boolean;
7
+ readonly participants?: boolean;
8
+ readonly admission?: boolean;
9
+ readonly screenShare?: boolean;
10
+ readonly whiteboard?: boolean;
11
+ readonly reactions?: boolean;
12
+ readonly handRaise?: boolean;
13
+ readonly info?: boolean;
14
+ readonly settings?: boolean;
15
+ };
16
+ type SpaceIntegration = {
17
+ readonly client: SpaceClient;
18
+ readonly space?: never;
19
+ readonly getAccess?: never;
20
+ } | {
21
+ readonly client?: never;
22
+ readonly space: string;
23
+ readonly getAccess: GetAccess;
24
+ };
25
+ type SpaceEventCallbacks = {
26
+ readonly onJoined?: () => void;
27
+ readonly onLeft?: () => void;
28
+ readonly onEpisodeEnded?: (event: ClientEventMap["episodeEnded"]) => void;
29
+ readonly onParticipantJoined?: (event: ClientEventMap["participantJoined"]) => void;
30
+ readonly onParticipantLeft?: (event: ClientEventMap["participantLeft"]) => void;
31
+ readonly onScreenShareStarted?: (event: ClientEventMap["screenShareStarted"]) => void;
32
+ readonly onScreenShareStopped?: (event: ClientEventMap["screenShareStopped"]) => void;
33
+ readonly onError?: (event: ClientEventMap["error"]) => void;
34
+ };
35
+ export type ChalkProps = SpaceIntegration & SpaceEventCallbacks & {
36
+ readonly entrance?: boolean;
37
+ readonly defaults?: {
38
+ readonly microphone?: boolean;
39
+ readonly camera?: boolean;
40
+ };
41
+ readonly displayName?: string;
42
+ readonly features?: ChalkFeatures;
43
+ readonly theme?: ChalkTheme;
44
+ readonly pickChatFiles?: () => Promise<readonly ChatUploadFile[]>;
45
+ readonly logoUrl?: string;
46
+ readonly spaceName?: string;
47
+ readonly inviteLink?: string;
48
+ readonly layout?: SpaceLayout;
49
+ readonly onLayoutChange?: (layout: SpaceLayout) => void;
50
+ };
51
+ export declare function Chalk(props: ChalkProps): React.JSX.Element;
52
+ export {};
53
+ //# sourceMappingURL=Chalk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Chalk.d.ts","sourceRoot":"","sources":["../../../src/components/chalk/Chalk.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import React from "react";
2
+ import { type ParticipantGradientPreference } from "../../utils/colorGenerator";
3
+ export interface BackgroundEffect {
4
+ id: string;
5
+ type: "none" | "blur" | "image";
6
+ name: string;
7
+ thumbnail?: string;
8
+ value?: string;
9
+ }
10
+ export interface BackgroundEffectsPickerProps {
11
+ effects: BackgroundEffect[];
12
+ selectedEffectId?: string;
13
+ onSelect: (effectId: string) => void;
14
+ onCustomUpload?: (file: File) => void;
15
+ disabled?: boolean;
16
+ participantColorSeed?: string;
17
+ participantGradientPreference?: ParticipantGradientPreference;
18
+ className?: string;
19
+ }
20
+ export declare const BackgroundEffectsPicker: React.MemoExoticComponent<({ effects, selectedEffectId, onSelect, onCustomUpload, disabled, participantColorSeed, participantGradientPreference, className }: BackgroundEffectsPickerProps) => import("react/jsx-runtime").JSX.Element>;
21
+ //# sourceMappingURL=BackgroundEffectsPicker.d.ts.map