@refraction-ui/react 0.12.2 → 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.
Files changed (44) hide show
  1. package/dist/{applicationinsights-web-62HUCH3W.js → applicationinsights-web-H7OBLIVJ.js} +199 -68
  2. package/dist/applicationinsights-web-H7OBLIVJ.js.map +1 -0
  3. package/dist/index.cjs +900 -83
  4. package/dist/index.cjs.map +1 -1
  5. package/dist/index.d.cts +5 -0
  6. package/dist/index.d.ts +5 -0
  7. package/dist/index.js +692 -17
  8. package/dist/index.js.map +1 -1
  9. package/dist/internal/button/index.d.cts +12 -3
  10. package/dist/internal/button/index.d.ts +12 -3
  11. package/dist/internal/empty-state/index.d.cts +39 -0
  12. package/dist/internal/empty-state/index.d.ts +39 -0
  13. package/dist/internal/input/index.d.cts +19 -1
  14. package/dist/internal/input/index.d.ts +19 -1
  15. package/dist/internal/react-empty-state/index.d.cts +36 -0
  16. package/dist/internal/react-empty-state/index.d.ts +36 -0
  17. package/dist/internal/react-input/index.d.cts +16 -0
  18. package/dist/internal/react-input/index.d.ts +16 -0
  19. package/dist/internal/react-password-input/index.d.cts +26 -0
  20. package/dist/internal/react-password-input/index.d.ts +26 -0
  21. package/dist/internal/react-segmented-control/index.d.cts +38 -0
  22. package/dist/internal/react-segmented-control/index.d.ts +38 -0
  23. package/dist/internal/react-separator/index.d.cts +29 -0
  24. package/dist/internal/react-separator/index.d.ts +29 -0
  25. package/dist/internal/react-social-auth-button/index.d.cts +31 -0
  26. package/dist/internal/react-social-auth-button/index.d.ts +31 -0
  27. package/dist/internal/react-status-indicator/index.d.cts +5 -18
  28. package/dist/internal/react-status-indicator/index.d.ts +5 -18
  29. package/dist/internal/react-theme/index.d.cts +19 -1
  30. package/dist/internal/react-theme/index.d.ts +19 -1
  31. package/dist/internal/segmented-control/index.d.cts +56 -0
  32. package/dist/internal/segmented-control/index.d.ts +56 -0
  33. package/dist/internal/separator/index.d.cts +55 -0
  34. package/dist/internal/separator/index.d.ts +55 -0
  35. package/dist/internal/social-auth-button/index.d.cts +47 -0
  36. package/dist/internal/social-auth-button/index.d.ts +47 -0
  37. package/dist/internal/theme/index.d.cts +35 -1
  38. package/dist/internal/theme/index.d.ts +35 -1
  39. package/dist/theme.cjs +27 -4
  40. package/dist/theme.cjs.map +1 -1
  41. package/dist/theme.js +27 -4
  42. package/dist/theme.js.map +1 -1
  43. package/package.json +25 -20
  44. package/dist/applicationinsights-web-62HUCH3W.js.map +0 -1
package/dist/index.js CHANGED
@@ -662,6 +662,13 @@ var Breadcrumbs = React11.forwardRef(
662
662
  Breadcrumbs.displayName = "Breadcrumbs";
663
663
 
664
664
  // ../button/dist/index.js
665
+ var BUTTON_VARIANT_ALIASES = {
666
+ primary: "default"
667
+ };
668
+ function resolveButtonVariant(variant) {
669
+ if (!variant) return variant;
670
+ return BUTTON_VARIANT_ALIASES[variant] ?? variant;
671
+ }
665
672
  function createButton(props = {}) {
666
673
  const { disabled = false, loading = false } = props;
667
674
  const isInteractive = !disabled && !loading;
@@ -710,6 +717,10 @@ var buttonVariants = cva({
710
717
  variants: {
711
718
  variant: {
712
719
  default: "bg-primary text-primary-foreground shadow hover:bg-primary/90",
720
+ // Alias for `default` — see resolveButtonVariant + issue #201. Same classes
721
+ // so styling stays identical even if a consumer reaches into `buttonVariants`
722
+ // directly without going through resolveButtonVariant.
723
+ primary: "bg-primary text-primary-foreground shadow hover:bg-primary/90",
713
724
  destructive: "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",
714
725
  outline: "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",
715
726
  secondary: "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",
@@ -1019,8 +1030,9 @@ function ShortcutBadge({ keys, platform = true, className }) {
1019
1030
  ShortcutBadge.displayName = "ShortcutBadge";
1020
1031
  var Button = React11.forwardRef(
1021
1032
  ({ variant, size, loading, asChild, className, disabled, children, shortcut, action, ...props }, ref) => {
1033
+ const resolvedVariant = resolveButtonVariant(variant);
1022
1034
  const api = createButton({ disabled, loading, type: props.type });
1023
- const classes = cn(buttonVariants({ variant, size }), className);
1035
+ const classes = cn(buttonVariants({ variant: resolvedVariant, size }), className);
1024
1036
  const internalRef = React11.useRef(null);
1025
1037
  const mergedRef = React11.useCallback(
1026
1038
  (node) => {
@@ -6034,19 +6046,33 @@ function InlineEditor({
6034
6046
  InlineEditor.displayName = "InlineEditor";
6035
6047
 
6036
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
+ }
6037
6061
  function createInput(props = {}) {
6038
6062
  const {
6039
6063
  disabled = false,
6040
6064
  readOnly = false,
6041
6065
  required = false,
6042
- "aria-invalid": ariaInvalid
6066
+ "aria-invalid": ariaInvalid,
6067
+ validationState
6043
6068
  } = props;
6069
+ const resolvedInvalid = resolveAriaInvalid(ariaInvalid, validationState);
6044
6070
  const ariaProps = {};
6045
6071
  if (disabled) {
6046
6072
  ariaProps["aria-disabled"] = true;
6047
6073
  }
6048
- if (ariaInvalid) {
6049
- ariaProps["aria-invalid"] = true;
6074
+ if (resolvedInvalid !== void 0) {
6075
+ ariaProps["aria-invalid"] = resolvedInvalid;
6050
6076
  }
6051
6077
  if (required) {
6052
6078
  ariaProps["aria-required"] = true;
@@ -6058,7 +6084,7 @@ function createInput(props = {}) {
6058
6084
  if (readOnly) {
6059
6085
  dataAttributes["data-readonly"] = "";
6060
6086
  }
6061
- if (ariaInvalid) {
6087
+ if (resolvedInvalid === true) {
6062
6088
  dataAttributes["data-invalid"] = "";
6063
6089
  }
6064
6090
  return {
@@ -6073,22 +6099,58 @@ var inputVariants = cva({
6073
6099
  sm: "h-8 text-xs",
6074
6100
  default: "h-9",
6075
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"
6076
6106
  }
6077
6107
  },
6078
6108
  defaultVariants: {
6079
6109
  size: "default"
6080
6110
  }
6081
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
+ );
6082
6126
  var Input = React11.forwardRef(
6083
- ({ 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) => {
6084
6139
  const api = createInput({
6085
6140
  disabled,
6086
6141
  readOnly,
6087
6142
  required,
6088
- "aria-invalid": ariaInvalid === true ? true : void 0
6143
+ "aria-invalid": ariaInvalid === void 0 ? void 0 : ariaInvalid === true || ariaInvalid === "true",
6144
+ validationState
6089
6145
  });
6090
- const classes = cn(inputVariants({ size }), className);
6091
- 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(
6092
6154
  "input",
6093
6155
  {
6094
6156
  ref,
@@ -6102,6 +6164,21 @@ var Input = React11.forwardRef(
6102
6164
  ...props
6103
6165
  }
6104
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
+ ] });
6105
6182
  }
6106
6183
  );
6107
6184
  Input.displayName = "Input";
@@ -14014,22 +14091,36 @@ var statusPulseVariants = cva({
14014
14091
  }
14015
14092
  });
14016
14093
  var statusLabelStyles = "text-sm text-muted-foreground";
14017
-
14018
- // ../react-status-indicator/dist/index.js
14094
+ function deriveAriaLabel(label, children, fallback) {
14095
+ if (label) return label;
14096
+ if (typeof children === "string" || typeof children === "number") {
14097
+ return String(children);
14098
+ }
14099
+ return fallback;
14100
+ }
14019
14101
  function StatusIndicator({
14020
14102
  type,
14021
14103
  label,
14104
+ children,
14022
14105
  pulse,
14023
14106
  showLabel = true,
14024
14107
  className
14025
14108
  }) {
14026
14109
  const api = createStatusIndicator({ type, label, pulse });
14110
+ const ariaLabel = deriveAriaLabel(label, children, api.label);
14111
+ const visibleLabel = label ?? children ?? api.label;
14027
14112
  const dotClassName = api.pulse ? statusPulseVariants({ type }) : statusDotVariants({ type });
14028
- return React11.createElement(
14113
+ return /* @__PURE__ */ jsxs(
14029
14114
  "span",
14030
- { ...api.ariaProps, className: cn(statusContainerStyles, className) },
14031
- React11.createElement("span", { className: dotClassName }),
14032
- showLabel && React11.createElement("span", { className: statusLabelStyles }, api.label)
14115
+ {
14116
+ ...api.ariaProps,
14117
+ "aria-label": ariaLabel,
14118
+ className: cn(statusContainerStyles, className),
14119
+ children: [
14120
+ /* @__PURE__ */ jsx("span", { className: dotClassName }),
14121
+ showLabel && /* @__PURE__ */ jsx("span", { className: statusLabelStyles, children: visibleLabel })
14122
+ ]
14123
+ }
14033
14124
  );
14034
14125
  }
14035
14126
  StatusIndicator.displayName = "StatusIndicator";
@@ -16462,7 +16553,7 @@ function createClientSdkSink(opts) {
16462
16553
  }
16463
16554
  const mod = await import(
16464
16555
  /* @vite-ignore */
16465
- './applicationinsights-web-62HUCH3W.js'
16556
+ './applicationinsights-web-H7OBLIVJ.js'
16466
16557
  );
16467
16558
  const ai = new mod.ApplicationInsights({
16468
16559
  config: {
@@ -16999,6 +17090,590 @@ function useTrackEvent(options) {
16999
17090
  );
17000
17091
  }
17001
17092
 
17002
- 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 };
17003
17678
  //# sourceMappingURL=index.js.map
17004
17679
  //# sourceMappingURL=index.js.map