@refraction-ui/react 0.12.3 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -6046,19 +6046,33 @@ function InlineEditor({
6046
6046
  InlineEditor.displayName = "InlineEditor";
6047
6047
 
6048
6048
  // ../input/dist/index.js
6049
+ function resolveAriaInvalid(ariaInvalid, validationState) {
6050
+ if (ariaInvalid !== void 0) {
6051
+ return ariaInvalid;
6052
+ }
6053
+ if (validationState === "invalid") {
6054
+ return true;
6055
+ }
6056
+ if (validationState === "valid") {
6057
+ return false;
6058
+ }
6059
+ return void 0;
6060
+ }
6049
6061
  function createInput(props = {}) {
6050
6062
  const {
6051
6063
  disabled = false,
6052
6064
  readOnly = false,
6053
6065
  required = false,
6054
- "aria-invalid": ariaInvalid
6066
+ "aria-invalid": ariaInvalid,
6067
+ validationState
6055
6068
  } = props;
6069
+ const resolvedInvalid = resolveAriaInvalid(ariaInvalid, validationState);
6056
6070
  const ariaProps = {};
6057
6071
  if (disabled) {
6058
6072
  ariaProps["aria-disabled"] = true;
6059
6073
  }
6060
- if (ariaInvalid) {
6061
- ariaProps["aria-invalid"] = true;
6074
+ if (resolvedInvalid !== void 0) {
6075
+ ariaProps["aria-invalid"] = resolvedInvalid;
6062
6076
  }
6063
6077
  if (required) {
6064
6078
  ariaProps["aria-required"] = true;
@@ -6070,7 +6084,7 @@ function createInput(props = {}) {
6070
6084
  if (readOnly) {
6071
6085
  dataAttributes["data-readonly"] = "";
6072
6086
  }
6073
- if (ariaInvalid) {
6087
+ if (resolvedInvalid === true) {
6074
6088
  dataAttributes["data-invalid"] = "";
6075
6089
  }
6076
6090
  return {
@@ -6085,22 +6099,58 @@ var inputVariants = cva({
6085
6099
  sm: "h-8 text-xs",
6086
6100
  default: "h-9",
6087
6101
  lg: "h-10 text-base"
6102
+ },
6103
+ validationState: {
6104
+ valid: "border-green-500 focus-visible:ring-green-500",
6105
+ invalid: "border-destructive focus-visible:ring-destructive"
6088
6106
  }
6089
6107
  },
6090
6108
  defaultVariants: {
6091
6109
  size: "default"
6092
6110
  }
6093
6111
  });
6112
+ var CheckIcon = /* @__PURE__ */ jsx(
6113
+ "svg",
6114
+ {
6115
+ "aria-hidden": "true",
6116
+ viewBox: "0 0 24 24",
6117
+ fill: "none",
6118
+ stroke: "currentColor",
6119
+ strokeWidth: "2",
6120
+ strokeLinecap: "round",
6121
+ strokeLinejoin: "round",
6122
+ className: "pointer-events-none absolute right-3 top-1/2 size-4 -translate-y-1/2 text-green-500",
6123
+ children: /* @__PURE__ */ jsx("polyline", { points: "20 6 9 17 4 12" })
6124
+ }
6125
+ );
6094
6126
  var Input = React11.forwardRef(
6095
- ({ type = "text", size, className, disabled, readOnly, required, "aria-invalid": ariaInvalid, ...props }, ref) => {
6127
+ ({
6128
+ type = "text",
6129
+ size,
6130
+ className,
6131
+ disabled,
6132
+ readOnly,
6133
+ required,
6134
+ validationState,
6135
+ leadingIcon,
6136
+ "aria-invalid": ariaInvalid,
6137
+ ...props
6138
+ }, ref) => {
6096
6139
  const api = createInput({
6097
6140
  disabled,
6098
6141
  readOnly,
6099
6142
  required,
6100
- "aria-invalid": ariaInvalid === true ? true : void 0
6143
+ "aria-invalid": ariaInvalid === void 0 ? void 0 : ariaInvalid === true || ariaInvalid === "true",
6144
+ validationState
6101
6145
  });
6102
- const classes = cn(inputVariants({ size }), className);
6103
- return /* @__PURE__ */ jsx(
6146
+ const hasWrapper = leadingIcon != null || validationState != null;
6147
+ const classes = cn(
6148
+ inputVariants({ size, validationState }),
6149
+ leadingIcon != null && "pl-9",
6150
+ validationState === "valid" && "pr-9",
6151
+ className
6152
+ );
6153
+ const inputEl = /* @__PURE__ */ jsx(
6104
6154
  "input",
6105
6155
  {
6106
6156
  ref,
@@ -6114,6 +6164,21 @@ var Input = React11.forwardRef(
6114
6164
  ...props
6115
6165
  }
6116
6166
  );
6167
+ if (!hasWrapper) {
6168
+ return inputEl;
6169
+ }
6170
+ return /* @__PURE__ */ jsxs("div", { className: "relative", children: [
6171
+ leadingIcon != null && /* @__PURE__ */ jsx(
6172
+ "span",
6173
+ {
6174
+ "aria-hidden": "true",
6175
+ className: "pointer-events-none absolute left-3 top-1/2 flex size-4 -translate-y-1/2 items-center justify-center text-muted-foreground",
6176
+ children: leadingIcon
6177
+ }
6178
+ ),
6179
+ inputEl,
6180
+ validationState === "valid" && CheckIcon
6181
+ ] });
6117
6182
  }
6118
6183
  );
6119
6184
  Input.displayName = "Input";
@@ -17025,6 +17090,590 @@ function useTrackEvent(options) {
17025
17090
  );
17026
17091
  }
17027
17092
 
17028
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, AltHintState, AnalyticsProvider, AnimatedText, AppShell, AuthGuard, AuthProvider, Avatar2 as Avatar, AvatarFallback, AvatarGroup, AvatarImage, Badge, BadgeDisplay, BottomNav, Breadcrumbs, Button, CATEGORY_LABELS, Calendar, CalendarHeader, Callout, CalloutContent, CalloutDescription, CalloutIcon, CalloutTitle, Card, CardContent, CardDescription, CardFooter, CardGrid, CardHeader, CardTitle, Carousel, CarouselContent, CarouselItem, CarouselTrigger, Chat, Checkbox, CodeBlock, CodeBlockContent, CodeBlockHeader, CodeEditor, Collapsible, CollapsibleContent, CollapsibleTrigger, Combobox, ComboboxContent, ComboboxEmpty, ComboboxInput, ComboboxItem, ComboboxList, ComboboxTrigger, Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, Composer, ContentProtection, CookieConsent, DEFAULT_CATEGORIES, DEFAULT_VOICE_PILL_POSITION, DEFAULT_VOICE_PILL_SPEAKER, DEFAULT_WAVEFORM_BAR_COUNT, DEFAULT_WAVEFORM_COLOR, DEFAULT_WAVEFORM_HEIGHT, DEFAULT_WAVEFORM_INTENSITY, DEFAULT_WAVEFORM_SMOOTHING, DataTable, DatePicker, DeviceFrame, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, EMOJI_CATEGORIES, EMOJI_DATA, EmojiPicker, FeedbackButton, FeedbackDialog, FileTree, FileUpload, Footer, IconSystem, InlineEditor, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InstallPrompt, KeyboardShortcut, LanguageSelector, LinkCard, MarkdownRenderer, MobileNav, MobileNavContent, MobileNavLink, MobileNavTrigger, Navbar, OtpInput, STATUS_COLORS as PRESENCE_STATUS_COLORS, STATUS_LABELS as PRESENCE_STATUS_LABELS, Pagination, Payment, Popover, PopoverClose, PopoverContent, PopoverTrigger, PresenceIndicator, ProgressBar, RadioGroup, RadioItem, ReactionBar, ResizableDivider, ResizableLayout, ResizablePane, SANE_DEFAULTS, STATUS_INDICATOR_COLORS as STATUS_COLORS, STATUS_INDICATOR_LABELS as STATUS_LABELS, SearchBar, SearchResultItem, SearchResults, Select, SelectContent, SelectItem, SelectTrigger, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetTitle, SheetTrigger, ShortcutBadge, ShortcutContext, ShortcutHint, ShortcutProvider, ShortcutRegistry, Sidebar, Skeleton, SkeletonText, SkipToContent, SlideViewer, StatsGrid, StatusIndicator, Step, StepContent, StepDescription, StepIndicator, StepTitle, Steps, Switch, TableOfContents, Tabs, TabsContent, TabsList, TabsTrigger, TelemetryErrorBoundary, TelemetryProvider, Textarea, ThreadView, Toast, ToastProvider, Toaster, Tooltip, TooltipContent, TooltipTrigger, TypewriterText, VersionSelector, VideoPlayer, VoicePill, Waveform, altHintState, animatedTextVariants, avatarFallbackVariants, avatarImageVariants, avatarTokens, avatarVariants, badgeGridVariants, badgeItemVariants, badgeVariants, bottomNavTabVariants, bottomNavVariants, breadcrumbItemVariants, breadcrumbSeparatorStyles, breadcrumbsVariants, buttonTokens, buttonVariants, calendarVariants, canAccessAdmin, canAccessReviewer, cardContentVariants, cardDescriptionVariants, cardFooterVariants, cardHeaderVariants, cardTitleVariants, cardTokens, cardVariants, cellVariants, checkIconPath, checkboxTokens, checkboxVariants, clampVoicePillIntensity, codeEditorTokens, codeEditorVariants, collapsibleContentVariants, comboboxContentVariants, comboboxEmptyVariants, comboboxInputVariants, comboboxItemVariants, comboboxListVariants, comboboxTriggerVariants, commandGroupVariants, commandInputVariants, commandItemVariants, commandVariants, contentProtectionVariants, controlsVariants, createAnalytics, createAppInsightsSink, createConsoleSink, createConversation, createCookieConsent, createGA4ClientSdkSink, createGA4HttpSink, createGA4Sink, createIntensitySamples, createPostHogClientSdkSink, createPostHogHttpSink, createPostHogSink, createSilentSamples, createTelemetry, createVoicePill, createWaveform, dayVariants, deviceFrameVariants, dialogContentVariants, drawWaveform, editorVariants, emojiPickerContainerStyles, emojiPickerEmojiButtonStyles, emojiPickerGridStyles, feedbackDialogVariants, fileUploadDropZoneVariants, fileUploadFileItemStyles, fileUploadFileListStyles, findMessage, footerVariants, formatFileSize, formatRelativeTime, formatShortcut, formatTimestamp, getAssignableRoles, getDefaultPortal, getInitials, getReplyCount, getVoicePillAriaLabel, getVoicePillInitials, getVoicePillPosition, getVoicePillPulseStyle, getVoicePillSpeakerKey, getVoicePillSpeakerLabel, getWaveformPeak, globalShortcutRegistry, hasAllRoles, hasAnyRole, hasRole, headerVariants, indeterminateIconPath, inputGroupAddonVariants, inputGroupButtonVariants, inputGroupTokens, inputGroupVariants, inputVariants, installPromptVariants, isWaveformSampleInput, latestBadgeVariants, markdownRendererTokens, menuContentVariants, menuItemVariants, mobileNavContentVariants, mobileNavLinkVariants, mobileNavTokens, mobileNavTriggerVariants, mobileNavVariants, navLinkVariants, navbarVariants, normalizeBarCount, normalizeIntensity, normalizeSmoothing, normalizeWaveformConfig, normalizeWaveformSamples, optionVariants, otpInputContainerVariants, otpInputSlotVariants, otpInputTokens, overlayStyles, overlayVariants, playerVariants, popoverContentVariants, prepareWaveformCanvas, previewVariants, progressBarVariants, proseVariants, radioCircleVariants, radioGroupVariants, radioItemVariants, reactionAddButtonStyles, reactionBarStyles, reactionCountStyles, reactionEmojiStyles, reactionPillVariants, resampleWaveformSamples, resizableDividerVariants, resizableLayoutTokens, resizableLayoutVariants, resizablePaneVariants, rootIdOf, rowVariants, scaleWaveformSamples, searchBarVariants, searchResultVariants, selectContentVariants, selectItemVariants, selectMainTimeline, selectReplies, selectRoots, selectThreadMessages, selectTimelineFromState, selectTokens, selectTriggerVariants, selectorVariants, sheetContentVariants, sheetOverlayStyles, shortcutBadgeStyles, shortcutKeyStyles, shortcutSeparatorStyles, sidebarItemVariants, sidebarVariants, skeletonVariants, slideTypeBadgeVariants, slideViewerProgressBarVariants, slideViewerTokens, slideViewerVariants, smoothWaveformSamples, startSessionReplay, statCardVariants, statsGridVariants, statusContainerStyles, statusDotVariants, statusLabelStyles, statusPulseVariants, switchThumbVariants, switchTokens, switchVariants, tableVariants, tabsListVariants, tabsTriggerVariants, textareaVariants, threadAuthorStyles, threadAvatarStyles, threadBodyStyles, threadContainerStyles, threadContentStyles, threadMessageStyles, threadReactionsStyles, threadTimestampStyles, toCssDimension, toastVariants, toolbarVariants, tooltipContentVariants, typewriterVariants, useAnalytics, useAuth, useConversation, useCookieConsent, useLogger, useShortcut, useSpan, useTelemetry, useToast, useTrackEvent, versionSelectorOptionVariants, versionSelectorVariants, voicePillAvatarStyles, voicePillAvatarWrapStyles, voicePillLabelStyles, voicePillMuteButtonStyles, voicePillPositionVariants, voicePillPulseRingStyles, voicePillRootStyles, voicePillSpeakerStyles, voicePillSubStyles, voicePillTextStyles, voicePillTokens, watermarkVariants, waveformCanvasVariants, waveformVariants };
17093
+ // ../segmented-control/dist/index.js
17094
+ function createSegmentedControl(props = {}) {
17095
+ const { value, size = "md" } = props;
17096
+ const ariaProps = {
17097
+ role: "radiogroup"
17098
+ };
17099
+ const dataAttributes = {
17100
+ "data-size": size
17101
+ };
17102
+ if (value !== void 0) {
17103
+ dataAttributes["data-value"] = value;
17104
+ }
17105
+ return { ariaProps, dataAttributes };
17106
+ }
17107
+ function getNextSegmentIndex(current, key, count) {
17108
+ if (count <= 0) return current;
17109
+ switch (key) {
17110
+ case "ArrowRight":
17111
+ case "ArrowDown":
17112
+ return (current + 1) % count;
17113
+ case "ArrowLeft":
17114
+ case "ArrowUp":
17115
+ return (current - 1 + count) % count;
17116
+ case "Home":
17117
+ return 0;
17118
+ case "End":
17119
+ return count - 1;
17120
+ default:
17121
+ return current;
17122
+ }
17123
+ }
17124
+ var segmentedControlVariants = cva({
17125
+ base: "inline-flex items-center gap-1 rounded-lg bg-muted p-1",
17126
+ variants: {
17127
+ size: {
17128
+ sm: "",
17129
+ md: ""
17130
+ }
17131
+ },
17132
+ defaultVariants: {
17133
+ size: "md"
17134
+ }
17135
+ });
17136
+ var segmentedControlItemVariants = cva({
17137
+ base: [
17138
+ "inline-flex items-center justify-center gap-1.5 rounded-md font-medium",
17139
+ "whitespace-nowrap transition-colors",
17140
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
17141
+ "focus-visible:ring-offset-2 focus-visible:ring-offset-muted"
17142
+ ].join(" "),
17143
+ variants: {
17144
+ size: {
17145
+ sm: "px-2.5 py-1 text-xs",
17146
+ md: "px-3 py-1.5 text-sm"
17147
+ },
17148
+ state: {
17149
+ checked: "bg-background text-foreground shadow-sm",
17150
+ unchecked: "text-muted-foreground hover:text-foreground"
17151
+ }
17152
+ },
17153
+ defaultVariants: {
17154
+ size: "md",
17155
+ state: "unchecked"
17156
+ }
17157
+ });
17158
+ var SegmentedControlContext = React11.createContext(null);
17159
+ function useSegmentedControlContext(component) {
17160
+ const ctx = React11.useContext(SegmentedControlContext);
17161
+ if (!ctx) {
17162
+ throw new Error(`<${component}> must be used within <SegmentedControl>`);
17163
+ }
17164
+ return ctx;
17165
+ }
17166
+ var SegmentedControl = React11.forwardRef(
17167
+ ({
17168
+ value: valueProp,
17169
+ defaultValue,
17170
+ onValueChange,
17171
+ size = "md",
17172
+ className,
17173
+ children,
17174
+ ...props
17175
+ }, ref) => {
17176
+ const isControlled = valueProp !== void 0;
17177
+ const [internalValue, setInternalValue] = React11.useState(defaultValue);
17178
+ const value = isControlled ? valueProp : internalValue;
17179
+ const itemsRef = React11.useRef([]);
17180
+ const select = React11.useCallback(
17181
+ (next) => {
17182
+ if (!isControlled) setInternalValue(next);
17183
+ onValueChange?.(next);
17184
+ },
17185
+ [isControlled, onValueChange]
17186
+ );
17187
+ const register = React11.useCallback((itemValue, focus) => {
17188
+ const entry = { value: itemValue, focus };
17189
+ itemsRef.current.push(entry);
17190
+ return () => {
17191
+ itemsRef.current = itemsRef.current.filter((e) => e !== entry);
17192
+ };
17193
+ }, []);
17194
+ const move = React11.useCallback(
17195
+ (from, key) => {
17196
+ const items = itemsRef.current;
17197
+ const currentIndex = items.findIndex((e) => e.value === from);
17198
+ if (currentIndex === -1) return;
17199
+ const targetIndex = getNextSegmentIndex(currentIndex, key, items.length);
17200
+ if (targetIndex === currentIndex) return;
17201
+ const target = items[targetIndex];
17202
+ select(target.value);
17203
+ target.focus();
17204
+ },
17205
+ [select]
17206
+ );
17207
+ const ctx = React11.useMemo(
17208
+ () => ({ value, size, select, register, move }),
17209
+ [value, size, select, register, move]
17210
+ );
17211
+ const api = createSegmentedControl({ value, size });
17212
+ return /* @__PURE__ */ jsx(SegmentedControlContext.Provider, { value: ctx, children: /* @__PURE__ */ jsx(
17213
+ "div",
17214
+ {
17215
+ ref,
17216
+ className: cn(segmentedControlVariants({ size }), className),
17217
+ ...api.ariaProps,
17218
+ ...api.dataAttributes,
17219
+ ...props,
17220
+ children
17221
+ }
17222
+ ) });
17223
+ }
17224
+ );
17225
+ SegmentedControl.displayName = "SegmentedControl";
17226
+ var SegmentedControlItem = React11.forwardRef(({ value, className, children, onKeyDown, onClick, ...props }, ref) => {
17227
+ const ctx = useSegmentedControlContext("SegmentedControlItem");
17228
+ const selected = ctx.value === value;
17229
+ const internalRef = React11.useRef(null);
17230
+ const mergedRef = React11.useCallback(
17231
+ (node) => {
17232
+ internalRef.current = node;
17233
+ if (typeof ref === "function") ref(node);
17234
+ else if (ref) ref.current = node;
17235
+ },
17236
+ [ref]
17237
+ );
17238
+ React11.useEffect(() => {
17239
+ return ctx.register(value, () => internalRef.current?.focus());
17240
+ }, [ctx, value]);
17241
+ const handleKeyDown = (event) => {
17242
+ onKeyDown?.(event);
17243
+ if (event.defaultPrevented) return;
17244
+ switch (event.key) {
17245
+ case "ArrowRight":
17246
+ case "ArrowDown":
17247
+ case "ArrowLeft":
17248
+ case "ArrowUp":
17249
+ case "Home":
17250
+ case "End":
17251
+ event.preventDefault();
17252
+ ctx.move(value, event.key);
17253
+ break;
17254
+ case " ":
17255
+ case "Enter":
17256
+ event.preventDefault();
17257
+ ctx.select(value);
17258
+ break;
17259
+ }
17260
+ };
17261
+ const handleClick = (event) => {
17262
+ onClick?.(event);
17263
+ if (event.defaultPrevented) return;
17264
+ ctx.select(value);
17265
+ };
17266
+ return /* @__PURE__ */ jsx(
17267
+ "button",
17268
+ {
17269
+ ref: mergedRef,
17270
+ type: "button",
17271
+ role: "radio",
17272
+ "aria-checked": selected,
17273
+ tabIndex: selected ? 0 : -1,
17274
+ "data-state": selected ? "checked" : "unchecked",
17275
+ className: cn(
17276
+ segmentedControlItemVariants({
17277
+ size: ctx.size,
17278
+ state: selected ? "checked" : "unchecked"
17279
+ }),
17280
+ className
17281
+ ),
17282
+ onKeyDown: handleKeyDown,
17283
+ onClick: handleClick,
17284
+ ...props,
17285
+ children
17286
+ }
17287
+ );
17288
+ });
17289
+ SegmentedControlItem.displayName = "SegmentedControlItem";
17290
+
17291
+ // ../password-input/dist/index.js
17292
+ var DEFAULT_REVEAL_LABEL = "Show password";
17293
+ var DEFAULT_HIDE_LABEL = "Hide password";
17294
+ function createPasswordInput(props = {}) {
17295
+ const {
17296
+ revealed = false,
17297
+ revealLabel = DEFAULT_REVEAL_LABEL,
17298
+ hideLabel = DEFAULT_HIDE_LABEL
17299
+ } = props;
17300
+ return {
17301
+ inputType: revealed ? "text" : "password",
17302
+ toggleLabel: revealed ? hideLabel : revealLabel,
17303
+ togglePressed: revealed
17304
+ };
17305
+ }
17306
+ var passwordToggleVariants = cva({
17307
+ base: "absolute right-2 top-1/2 flex size-7 -translate-y-1/2 items-center justify-center rounded-md text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"
17308
+ });
17309
+ var EyeIcon = /* @__PURE__ */ jsxs(
17310
+ "svg",
17311
+ {
17312
+ "aria-hidden": "true",
17313
+ viewBox: "0 0 24 24",
17314
+ fill: "none",
17315
+ stroke: "currentColor",
17316
+ strokeWidth: "2",
17317
+ strokeLinecap: "round",
17318
+ strokeLinejoin: "round",
17319
+ className: "size-4",
17320
+ children: [
17321
+ /* @__PURE__ */ jsx("path", { d: "M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z" }),
17322
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "3" })
17323
+ ]
17324
+ }
17325
+ );
17326
+ var EyeOffIcon = /* @__PURE__ */ jsxs(
17327
+ "svg",
17328
+ {
17329
+ "aria-hidden": "true",
17330
+ viewBox: "0 0 24 24",
17331
+ fill: "none",
17332
+ stroke: "currentColor",
17333
+ strokeWidth: "2",
17334
+ strokeLinecap: "round",
17335
+ strokeLinejoin: "round",
17336
+ className: "size-4",
17337
+ children: [
17338
+ /* @__PURE__ */ jsx("path", { d: "M9.88 9.88a3 3 0 1 0 4.24 4.24" }),
17339
+ /* @__PURE__ */ jsx("path", { d: "M10.73 5.08A10.43 10.43 0 0 1 12 5c7 0 10 7 10 7a13.16 13.16 0 0 1-1.67 2.68" }),
17340
+ /* @__PURE__ */ jsx("path", { d: "M6.61 6.61A13.526 13.526 0 0 0 2 12s3 7 10 7a9.74 9.74 0 0 0 5.39-1.61" }),
17341
+ /* @__PURE__ */ jsx("line", { x1: "2", x2: "22", y1: "2", y2: "22" })
17342
+ ]
17343
+ }
17344
+ );
17345
+ var PasswordInput = React11.forwardRef(
17346
+ ({ revealLabel = "Show password", hideLabel = "Hide password", className, ...props }, ref) => {
17347
+ const [revealed, setRevealed] = React11.useState(false);
17348
+ const { inputType, toggleLabel, togglePressed } = createPasswordInput({
17349
+ revealed,
17350
+ revealLabel,
17351
+ hideLabel
17352
+ });
17353
+ return /* @__PURE__ */ jsxs("div", { className: "relative", children: [
17354
+ /* @__PURE__ */ jsx(
17355
+ Input,
17356
+ {
17357
+ ref,
17358
+ type: inputType,
17359
+ className: cn("pr-10", className),
17360
+ ...props
17361
+ }
17362
+ ),
17363
+ /* @__PURE__ */ jsx(
17364
+ "button",
17365
+ {
17366
+ type: "button",
17367
+ "aria-label": toggleLabel,
17368
+ "aria-pressed": togglePressed,
17369
+ onClick: () => setRevealed((v) => !v),
17370
+ className: passwordToggleVariants(),
17371
+ children: revealed ? EyeOffIcon : EyeIcon
17372
+ }
17373
+ )
17374
+ ] });
17375
+ }
17376
+ );
17377
+ PasswordInput.displayName = "PasswordInput";
17378
+
17379
+ // ../social-auth-button/dist/index.js
17380
+ var PROVIDER_LABELS = {
17381
+ google: "Continue with Google",
17382
+ github: "Continue with GitHub",
17383
+ microsoft: "Continue with Microsoft",
17384
+ apple: "Continue with Apple"
17385
+ };
17386
+ var PROVIDER_MONO = {
17387
+ google: false,
17388
+ github: true,
17389
+ microsoft: false,
17390
+ apple: true
17391
+ };
17392
+ function createSocialAuthButton(props) {
17393
+ const { provider } = props;
17394
+ return {
17395
+ dataAttributes: { "data-provider": provider },
17396
+ label: PROVIDER_LABELS[provider],
17397
+ mono: PROVIDER_MONO[provider]
17398
+ };
17399
+ }
17400
+ var socialAuthButtonVariants = cva({
17401
+ base: "relative"
17402
+ });
17403
+ var socialAuthRowVariants = cva({
17404
+ base: "grid grid-cols-1 sm:grid-cols-2 gap-3"
17405
+ });
17406
+ var lastUsedBadgeVariants = cva({
17407
+ base: "absolute -top-2 -right-2 rounded-full bg-primary text-primary-foreground text-[10px] px-1.5"
17408
+ });
17409
+ var baseProps = {
17410
+ width: 18,
17411
+ height: 18,
17412
+ viewBox: "0 0 24 24",
17413
+ xmlns: "http://www.w3.org/2000/svg",
17414
+ "aria-hidden": true
17415
+ };
17416
+ function GoogleIcon({ mono, ...props }) {
17417
+ if (mono) {
17418
+ return /* @__PURE__ */ jsx("svg", { ...baseProps, ...props, children: /* @__PURE__ */ jsx(
17419
+ "path",
17420
+ {
17421
+ fill: "currentColor",
17422
+ d: "M21.35 11.1H12v2.92h5.35c-.23 1.4-1.65 4.1-5.35 4.1a5.99 5.99 0 0 1 0-11.98c1.71 0 2.86.73 3.52 1.36l2.4-2.31C16.46 3.7 14.43 2.8 12 2.8a9.2 9.2 0 1 0 0 18.4c5.31 0 8.82-3.73 8.82-8.99 0-.6-.07-1.06-.17-1.51Z"
17423
+ }
17424
+ ) });
17425
+ }
17426
+ return /* @__PURE__ */ jsxs("svg", { ...baseProps, ...props, children: [
17427
+ /* @__PURE__ */ jsx(
17428
+ "path",
17429
+ {
17430
+ fill: "#4285F4",
17431
+ d: "M21.35 11.1H12v2.92h5.35c-.23 1.4-1.65 4.1-5.35 4.1a5.99 5.99 0 0 1 0-11.98c1.71 0 2.86.73 3.52 1.36l2.4-2.31C16.46 3.7 14.43 2.8 12 2.8a9.2 9.2 0 0 0 0 18.4c5.31 0 8.82-3.73 8.82-8.99 0-.6-.07-1.06-.17-1.51Z"
17432
+ }
17433
+ ),
17434
+ /* @__PURE__ */ jsx(
17435
+ "path",
17436
+ {
17437
+ fill: "#34A853",
17438
+ d: "M3.88 7.55l2.41 1.77C6.93 7.76 8.32 6.74 10 6.4l-.34-2.85C7.06 4.02 4.93 5.5 3.88 7.55Z",
17439
+ opacity: 0
17440
+ }
17441
+ ),
17442
+ /* @__PURE__ */ jsx(
17443
+ "path",
17444
+ {
17445
+ fill: "#FBBC05",
17446
+ d: "M12 21.2c2.43 0 4.46-.8 5.95-2.18l-2.74-2.13c-.74.5-1.74.86-3.21.86-2.66 0-4.92-1.79-5.73-4.2l-2.84 2.18A9.2 9.2 0 0 0 12 21.2Z",
17447
+ opacity: 0
17448
+ }
17449
+ )
17450
+ ] });
17451
+ }
17452
+ function GitHubIcon({ mono: _mono, ...props }) {
17453
+ return /* @__PURE__ */ jsx("svg", { ...baseProps, ...props, children: /* @__PURE__ */ jsx(
17454
+ "path",
17455
+ {
17456
+ fill: "currentColor",
17457
+ d: "M12 2a10 10 0 0 0-3.16 19.49c.5.09.68-.22.68-.48l-.01-1.7c-2.78.6-3.37-1.34-3.37-1.34-.45-1.16-1.11-1.46-1.11-1.46-.91-.62.07-.61.07-.61 1 .07 1.53 1.03 1.53 1.03.9 1.53 2.36 1.09 2.94.83.09-.65.35-1.09.63-1.34-2.22-.25-4.55-1.11-4.55-4.94 0-1.09.39-1.98 1.03-2.68-.1-.25-.45-1.27.1-2.65 0 0 .84-.27 2.75 1.02a9.6 9.6 0 0 1 5 0c1.91-1.29 2.75-1.02 2.75-1.02.55 1.38.2 2.4.1 2.65.64.7 1.03 1.59 1.03 2.68 0 3.84-2.34 4.69-4.57 4.94.36.31.68.92.68 1.85l-.01 2.74c0 .27.18.58.69.48A10 10 0 0 0 12 2Z"
17458
+ }
17459
+ ) });
17460
+ }
17461
+ function MicrosoftIcon({ mono, ...props }) {
17462
+ if (mono) {
17463
+ return /* @__PURE__ */ jsxs("svg", { ...baseProps, ...props, children: [
17464
+ /* @__PURE__ */ jsx("path", { fill: "currentColor", d: "M3 3h8v8H3z" }),
17465
+ /* @__PURE__ */ jsx("path", { fill: "currentColor", d: "M13 3h8v8h-8z", opacity: 0.7 }),
17466
+ /* @__PURE__ */ jsx("path", { fill: "currentColor", d: "M3 13h8v8H3z", opacity: 0.7 }),
17467
+ /* @__PURE__ */ jsx("path", { fill: "currentColor", d: "M13 13h8v8h-8z", opacity: 0.4 })
17468
+ ] });
17469
+ }
17470
+ return /* @__PURE__ */ jsxs("svg", { ...baseProps, ...props, children: [
17471
+ /* @__PURE__ */ jsx("path", { fill: "#F25022", d: "M3 3h8v8H3z" }),
17472
+ /* @__PURE__ */ jsx("path", { fill: "#7FBA00", d: "M13 3h8v8h-8z" }),
17473
+ /* @__PURE__ */ jsx("path", { fill: "#00A4EF", d: "M3 13h8v8H3z" }),
17474
+ /* @__PURE__ */ jsx("path", { fill: "#FFB900", d: "M13 13h8v8h-8z" })
17475
+ ] });
17476
+ }
17477
+ function AppleIcon({ mono: _mono, ...props }) {
17478
+ return /* @__PURE__ */ jsx("svg", { ...baseProps, ...props, children: /* @__PURE__ */ jsx(
17479
+ "path",
17480
+ {
17481
+ fill: "currentColor",
17482
+ d: "M16.37 12.78c-.03-2.62 2.14-3.88 2.24-3.94-1.22-1.79-3.12-2.03-3.79-2.06-1.61-.16-3.15.95-3.97.95-.82 0-2.08-.93-3.42-.9-1.76.03-3.39 1.02-4.29 2.6-1.83 3.18-.47 7.88 1.31 10.46.87 1.26 1.91 2.67 3.27 2.62 1.31-.05 1.81-.85 3.4-.85 1.58 0 2.03.85 3.42.82 1.41-.02 2.31-1.28 3.17-2.55.99-1.46 1.4-2.88 1.42-2.95-.03-.01-2.73-1.05-2.76-4.15M13.9 5.1c.72-.88 1.21-2.09 1.08-3.3-1.04.04-2.3.69-3.04 1.56-.66.77-1.24 2.01-1.09 3.19 1.16.09 2.34-.59 3.05-1.45"
17483
+ }
17484
+ ) });
17485
+ }
17486
+ var PROVIDER_ICONS = {
17487
+ google: GoogleIcon,
17488
+ github: GitHubIcon,
17489
+ microsoft: MicrosoftIcon,
17490
+ apple: AppleIcon
17491
+ };
17492
+ var SocialAuthButton = React11.forwardRef(({ provider, lastUsed, loading, disabled, className, ...props }, ref) => {
17493
+ const { label, mono, dataAttributes } = createSocialAuthButton({ provider });
17494
+ const Icon = PROVIDER_ICONS[provider];
17495
+ return /* @__PURE__ */ jsxs("div", { className: socialAuthButtonVariants(), children: [
17496
+ /* @__PURE__ */ jsxs(
17497
+ Button,
17498
+ {
17499
+ ref,
17500
+ variant: "outline",
17501
+ loading,
17502
+ disabled,
17503
+ className: cn("w-full justify-center gap-2", className),
17504
+ ...dataAttributes,
17505
+ ...props,
17506
+ children: [
17507
+ !loading && /* @__PURE__ */ jsx(Icon, { mono, className: "shrink-0" }),
17508
+ label
17509
+ ]
17510
+ }
17511
+ ),
17512
+ lastUsed && /* @__PURE__ */ jsx("span", { className: lastUsedBadgeVariants(), children: "Last used" })
17513
+ ] });
17514
+ });
17515
+ SocialAuthButton.displayName = "SocialAuthButton";
17516
+ var SocialAuthRow = React11.forwardRef(
17517
+ ({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(
17518
+ "div",
17519
+ {
17520
+ ref,
17521
+ className: cn(socialAuthRowVariants(), className),
17522
+ ...props,
17523
+ children
17524
+ }
17525
+ )
17526
+ );
17527
+ SocialAuthRow.displayName = "SocialAuthRow";
17528
+
17529
+ // ../separator/dist/index.js
17530
+ function createSeparator(props = {}) {
17531
+ const { orientation = "horizontal", decorative = true } = props;
17532
+ const ariaProps = decorative ? { role: "none" } : { role: "separator", "aria-orientation": orientation };
17533
+ const dataAttributes = {
17534
+ "data-orientation": orientation
17535
+ };
17536
+ return {
17537
+ ariaProps,
17538
+ dataAttributes
17539
+ };
17540
+ }
17541
+ var separatorVariants = cva({
17542
+ base: "",
17543
+ variants: {
17544
+ orientation: {
17545
+ horizontal: "h-px w-full bg-border",
17546
+ vertical: "w-px h-full bg-border"
17547
+ },
17548
+ labeled: {
17549
+ true: "flex items-center",
17550
+ false: ""
17551
+ }
17552
+ },
17553
+ defaultVariants: {
17554
+ orientation: "horizontal",
17555
+ labeled: "false"
17556
+ }
17557
+ });
17558
+ var separatorLineClass = "h-px flex-1 bg-border";
17559
+ var separatorLabelClass = "px-3 text-xs uppercase tracking-wide text-muted-foreground";
17560
+ var Separator = React11.forwardRef(
17561
+ ({
17562
+ orientation = "horizontal",
17563
+ label,
17564
+ decorative = true,
17565
+ className,
17566
+ ...props
17567
+ }, ref) => {
17568
+ if (orientation === "horizontal" && label != null) {
17569
+ return /* @__PURE__ */ jsxs(
17570
+ "div",
17571
+ {
17572
+ ref,
17573
+ role: "none",
17574
+ className: cn(separatorVariants({ labeled: "true" }), className),
17575
+ ...props,
17576
+ children: [
17577
+ /* @__PURE__ */ jsx("span", { className: separatorLineClass }),
17578
+ /* @__PURE__ */ jsx("span", { className: separatorLabelClass, children: label }),
17579
+ /* @__PURE__ */ jsx("span", { className: separatorLineClass })
17580
+ ]
17581
+ }
17582
+ );
17583
+ }
17584
+ const { ariaProps, dataAttributes } = createSeparator({
17585
+ orientation,
17586
+ decorative
17587
+ });
17588
+ return /* @__PURE__ */ jsx(
17589
+ "div",
17590
+ {
17591
+ ref,
17592
+ className: cn(separatorVariants({ orientation }), className),
17593
+ ...ariaProps,
17594
+ ...dataAttributes,
17595
+ ...props
17596
+ }
17597
+ );
17598
+ }
17599
+ );
17600
+ Separator.displayName = "Separator";
17601
+
17602
+ // ../empty-state/dist/index.js
17603
+ function createEmptyState(options = {}) {
17604
+ const { tone = "neutral" } = options;
17605
+ const dataAttributes = {
17606
+ "data-tone": tone
17607
+ };
17608
+ return {
17609
+ dataAttributes
17610
+ };
17611
+ }
17612
+ var emptyStateVariants = cva({
17613
+ base: "flex flex-col items-center text-center gap-3 p-8",
17614
+ variants: {
17615
+ bordered: {
17616
+ true: "rounded-xl border border-border bg-card",
17617
+ false: ""
17618
+ }
17619
+ },
17620
+ defaultVariants: {
17621
+ bordered: "false"
17622
+ }
17623
+ });
17624
+ var emptyStateIconChipVariants = cva({
17625
+ base: "flex size-12 items-center justify-center rounded-full",
17626
+ variants: {
17627
+ tone: {
17628
+ neutral: "bg-muted text-muted-foreground",
17629
+ success: "bg-green-500/10 text-green-600",
17630
+ warning: "bg-yellow-500/10 text-yellow-600",
17631
+ danger: "bg-destructive/10 text-destructive"
17632
+ }
17633
+ },
17634
+ defaultVariants: {
17635
+ tone: "neutral"
17636
+ }
17637
+ });
17638
+ var emptyStateTitleClass = "text-lg font-semibold text-foreground";
17639
+ var emptyStateDescriptionClass = "text-sm text-muted-foreground";
17640
+ var emptyStateActionsClass = "flex items-center justify-center gap-2";
17641
+ var EmptyState = React11.forwardRef(
17642
+ ({
17643
+ icon,
17644
+ tone = "neutral",
17645
+ title,
17646
+ description,
17647
+ actions,
17648
+ bordered = false,
17649
+ className,
17650
+ ...props
17651
+ }, ref) => {
17652
+ const api = createEmptyState({ tone });
17653
+ return /* @__PURE__ */ jsxs(
17654
+ "div",
17655
+ {
17656
+ ref,
17657
+ className: cn(
17658
+ emptyStateVariants({ bordered: bordered ? "true" : "false" }),
17659
+ className
17660
+ ),
17661
+ ...api.dataAttributes,
17662
+ ...props,
17663
+ children: [
17664
+ icon != null && /* @__PURE__ */ jsx("div", { "aria-hidden": "true", className: emptyStateIconChipVariants({ tone }), children: icon }),
17665
+ /* @__PURE__ */ jsx("h3", { className: emptyStateTitleClass, children: title }),
17666
+ description != null && /* @__PURE__ */ jsx("p", { className: emptyStateDescriptionClass, children: description }),
17667
+ actions != null && /* @__PURE__ */ jsx("div", { className: emptyStateActionsClass, children: actions })
17668
+ ]
17669
+ }
17670
+ );
17671
+ }
17672
+ );
17673
+ EmptyState.displayName = "EmptyState";
17674
+ var ConfirmationCard = React11.forwardRef(({ bordered = true, ...props }, ref) => /* @__PURE__ */ jsx(EmptyState, { ref, bordered, ...props }));
17675
+ ConfirmationCard.displayName = "ConfirmationCard";
17676
+
17677
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, AltHintState, AnalyticsProvider, AnimatedText, AppShell, AuthGuard, AuthProvider, Avatar2 as Avatar, AvatarFallback, AvatarGroup, AvatarImage, Badge, BadgeDisplay, BottomNav, Breadcrumbs, Button, CATEGORY_LABELS, Calendar, CalendarHeader, Callout, CalloutContent, CalloutDescription, CalloutIcon, CalloutTitle, Card, CardContent, CardDescription, CardFooter, CardGrid, CardHeader, CardTitle, Carousel, CarouselContent, CarouselItem, CarouselTrigger, Chat, Checkbox, CodeBlock, CodeBlockContent, CodeBlockHeader, CodeEditor, Collapsible, CollapsibleContent, CollapsibleTrigger, Combobox, ComboboxContent, ComboboxEmpty, ComboboxInput, ComboboxItem, ComboboxList, ComboboxTrigger, Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, Composer, ConfirmationCard, ContentProtection, CookieConsent, DEFAULT_CATEGORIES, DEFAULT_VOICE_PILL_POSITION, DEFAULT_VOICE_PILL_SPEAKER, DEFAULT_WAVEFORM_BAR_COUNT, DEFAULT_WAVEFORM_COLOR, DEFAULT_WAVEFORM_HEIGHT, DEFAULT_WAVEFORM_INTENSITY, DEFAULT_WAVEFORM_SMOOTHING, DataTable, DatePicker, DeviceFrame, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, EMOJI_CATEGORIES, EMOJI_DATA, EmojiPicker, EmptyState, FeedbackButton, FeedbackDialog, FileTree, FileUpload, Footer, IconSystem, InlineEditor, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InstallPrompt, KeyboardShortcut, LanguageSelector, LinkCard, MarkdownRenderer, MobileNav, MobileNavContent, MobileNavLink, MobileNavTrigger, Navbar, OtpInput, STATUS_COLORS as PRESENCE_STATUS_COLORS, STATUS_LABELS as PRESENCE_STATUS_LABELS, Pagination, PasswordInput, Payment, Popover, PopoverClose, PopoverContent, PopoverTrigger, PresenceIndicator, ProgressBar, RadioGroup, RadioItem, ReactionBar, ResizableDivider, ResizableLayout, ResizablePane, SANE_DEFAULTS, STATUS_INDICATOR_COLORS as STATUS_COLORS, STATUS_INDICATOR_LABELS as STATUS_LABELS, SearchBar, SearchResultItem, SearchResults, SegmentedControl, SegmentedControlItem, Select, SelectContent, SelectItem, SelectTrigger, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetTitle, SheetTrigger, ShortcutBadge, ShortcutContext, ShortcutHint, ShortcutProvider, ShortcutRegistry, Sidebar, Skeleton, SkeletonText, SkipToContent, SlideViewer, SocialAuthButton, SocialAuthRow, StatsGrid, StatusIndicator, Step, StepContent, StepDescription, StepIndicator, StepTitle, Steps, Switch, TableOfContents, Tabs, TabsContent, TabsList, TabsTrigger, TelemetryErrorBoundary, TelemetryProvider, Textarea, ThreadView, Toast, ToastProvider, Toaster, Tooltip, TooltipContent, TooltipTrigger, TypewriterText, VersionSelector, VideoPlayer, VoicePill, Waveform, altHintState, animatedTextVariants, avatarFallbackVariants, avatarImageVariants, avatarTokens, avatarVariants, badgeGridVariants, badgeItemVariants, badgeVariants, bottomNavTabVariants, bottomNavVariants, breadcrumbItemVariants, breadcrumbSeparatorStyles, breadcrumbsVariants, buttonTokens, buttonVariants, calendarVariants, canAccessAdmin, canAccessReviewer, cardContentVariants, cardDescriptionVariants, cardFooterVariants, cardHeaderVariants, cardTitleVariants, cardTokens, cardVariants, cellVariants, checkIconPath, checkboxTokens, checkboxVariants, clampVoicePillIntensity, codeEditorTokens, codeEditorVariants, collapsibleContentVariants, comboboxContentVariants, comboboxEmptyVariants, comboboxInputVariants, comboboxItemVariants, comboboxListVariants, comboboxTriggerVariants, commandGroupVariants, commandInputVariants, commandItemVariants, commandVariants, contentProtectionVariants, controlsVariants, createAnalytics, createAppInsightsSink, createConsoleSink, createConversation, createCookieConsent, createGA4ClientSdkSink, createGA4HttpSink, createGA4Sink, createIntensitySamples, createPostHogClientSdkSink, createPostHogHttpSink, createPostHogSink, createSegmentedControl, createSilentSamples, createTelemetry, createVoicePill, createWaveform, dayVariants, deviceFrameVariants, dialogContentVariants, drawWaveform, editorVariants, emojiPickerContainerStyles, emojiPickerEmojiButtonStyles, emojiPickerGridStyles, feedbackDialogVariants, fileUploadDropZoneVariants, fileUploadFileItemStyles, fileUploadFileListStyles, findMessage, footerVariants, formatFileSize, formatRelativeTime, formatShortcut, formatTimestamp, getAssignableRoles, getDefaultPortal, getInitials, getNextSegmentIndex, getReplyCount, getVoicePillAriaLabel, getVoicePillInitials, getVoicePillPosition, getVoicePillPulseStyle, getVoicePillSpeakerKey, getVoicePillSpeakerLabel, getWaveformPeak, globalShortcutRegistry, hasAllRoles, hasAnyRole, hasRole, headerVariants, indeterminateIconPath, inputGroupAddonVariants, inputGroupButtonVariants, inputGroupTokens, inputGroupVariants, inputVariants, installPromptVariants, isWaveformSampleInput, latestBadgeVariants, markdownRendererTokens, menuContentVariants, menuItemVariants, mobileNavContentVariants, mobileNavLinkVariants, mobileNavTokens, mobileNavTriggerVariants, mobileNavVariants, navLinkVariants, navbarVariants, normalizeBarCount, normalizeIntensity, normalizeSmoothing, normalizeWaveformConfig, normalizeWaveformSamples, optionVariants, otpInputContainerVariants, otpInputSlotVariants, otpInputTokens, overlayStyles, overlayVariants, playerVariants, popoverContentVariants, prepareWaveformCanvas, previewVariants, progressBarVariants, proseVariants, radioCircleVariants, radioGroupVariants, radioItemVariants, reactionAddButtonStyles, reactionBarStyles, reactionCountStyles, reactionEmojiStyles, reactionPillVariants, resampleWaveformSamples, resizableDividerVariants, resizableLayoutTokens, resizableLayoutVariants, resizablePaneVariants, rootIdOf, rowVariants, scaleWaveformSamples, searchBarVariants, searchResultVariants, segmentedControlItemVariants, segmentedControlVariants, selectContentVariants, selectItemVariants, selectMainTimeline, selectReplies, selectRoots, selectThreadMessages, selectTimelineFromState, selectTokens, selectTriggerVariants, selectorVariants, sheetContentVariants, sheetOverlayStyles, shortcutBadgeStyles, shortcutKeyStyles, shortcutSeparatorStyles, sidebarItemVariants, sidebarVariants, skeletonVariants, slideTypeBadgeVariants, slideViewerProgressBarVariants, slideViewerTokens, slideViewerVariants, smoothWaveformSamples, startSessionReplay, statCardVariants, statsGridVariants, statusContainerStyles, statusDotVariants, statusLabelStyles, statusPulseVariants, switchThumbVariants, switchTokens, switchVariants, tableVariants, tabsListVariants, tabsTriggerVariants, textareaVariants, threadAuthorStyles, threadAvatarStyles, threadBodyStyles, threadContainerStyles, threadContentStyles, threadMessageStyles, threadReactionsStyles, threadTimestampStyles, toCssDimension, toastVariants, toolbarVariants, tooltipContentVariants, typewriterVariants, useAnalytics, useAuth, useConversation, useCookieConsent, useLogger, useShortcut, useSpan, useTelemetry, useToast, useTrackEvent, versionSelectorOptionVariants, versionSelectorVariants, voicePillAvatarStyles, voicePillAvatarWrapStyles, voicePillLabelStyles, voicePillMuteButtonStyles, voicePillPositionVariants, voicePillPulseRingStyles, voicePillRootStyles, voicePillSpeakerStyles, voicePillSubStyles, voicePillTextStyles, voicePillTokens, watermarkVariants, waveformCanvasVariants, waveformVariants };
17029
17678
  //# sourceMappingURL=index.js.map
17030
17679
  //# sourceMappingURL=index.js.map