@botiverse/raft-ui 0.18.0 → 0.20.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.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { cn } from "./cn.mjs";
2
- import { $ as MessageReactionTooltipMeta, $n as ThemeStateContext, $t as DropdownMenuRadioItem, A as messageEmbed, An as Badge, At as MessageItemContinuationTime, B as MessageReferencePending, Bn as DialogPortal, Bt as useOverflowTitle, C as MessageQuotedPreviewThread, Cn as CheckboxIndicator, Ct as MessageItemBody, D as MessageEmbedContent, Dn as TooltipPortal, Dt as MessageItemFooter, E as MessageEmbed, En as TooltipContent, Et as MessageItemEmbedded, F as MessageMultiSelectCheckbox, Fn as DialogDescription, Ft as AvatarBadge, G as MessageReactionCount, Gn as buttonVariants, Gt as DropdownMenuFooter, H as MessageReferenceUnavailable, Hn as DialogTitle, Ht as DropdownMenuCheckboxItem, I as MessageMultiSelectToolbar, In as DialogFooter, It as AvatarFallback, J as MessageReactionPickerContent, Jn as useParentOverlayKind, Jt as DropdownMenuItemLabel, K as MessageReactionErrorIndicator, Kn as Spinner, Kt as DropdownMenuItem, L as MessageReferenceChip, Ln as DialogHeader, Lt as AvatarGroup, M as MessageTextSelectionToolbarButton, Mn as DialogBody, Mt as MessageItem, N as MessageTextSelectionToolbarSeparator, Nn as DialogClose, Nt as searchHit, O as MessageEmbedFooter, On as TooltipProvider, Ot as MessageItemSearchMatch, P as MessageMultiSelect, Pn as DialogContent, Pt as Avatar, Q as MessageReactionTooltipContent, Qn as useTheme, Qt as DropdownMenuRadioGroup, R as MessageReferenceIndicator, Rn as DialogNav, Rt as AvatarGroupCount, S as MessageQuotedPreviewText, Sn as Checkbox, St as MessageItemAttachments, T as MessageQuotedPreviewUnavailable, Tn as Tooltip, Tt as MessageItemEdited, U as MessageReactionAddButton, Un as DialogTrigger, Ut as DropdownMenuCheckboxItemIndicator, V as MessageReferenceText, Vn as DialogSurface, Vt as DropdownMenu, W as MessageReactionChip, Wn as Button, Wt as DropdownMenuContent, X as MessageReactionQuickButton, Xn as resolveThemeScopeProps, Xt as DropdownMenuPopup, Y as MessageReactionPickerStatic, Yn as withOverlayLayer, Yt as DropdownMenuLabel, Z as MessageReactionQuickRow, Zn as useThemeScopeProps, Zt as DropdownMenuPortal, _ as MessageQuotedPreviewAuthorName, _n as ScrollAreaCorner, _t as MessageItemSender, an as DropdownMenuTrigger, at as MessageItemBadgeSeparator, b as MessageQuotedPreviewHeader, bn as ScrollAreaViewport, bt as MessageItemSenderGroup, c as MessageListHistoryLimited, cn as Panel, ct as MessageItemToolbar, d as MessageQuotedPreview, dn as PanelHeaderRoot, en as DropdownMenuRadioItemIndicator, er as tv, et as MessageReactionTooltipName, f as MessageQuotedPreviewAttachment, fn as PanelScrollContent, g as MessageQuotedPreviewAuthorMeta, gn as ScrollAreaContent, gt as MessageItemMeta, hn as ScrollArea, ht as MessageItemInlineStatus, in as DropdownMenuSubmenuTrigger, it as MessageItemBadge, j as MessageTextSelectionToolbar, jn as Dialog, jt as MessageItemGutter, k as MessageEmbedHeader, kn as TooltipTrigger, kt as MessageItemAvatarSlot, l as MessageListNotice, ln as PanelBody, lt as MessageItemToolbarButton, m as MessageQuotedPreviewAuthor, mn as PanelSection, mt as MessageItemHeader, n as useMouseOnlyPointerSensor, nn as DropdownMenuShortcut, nr as headEdgePull, nt as MessageReactionTooltipNames, on as Kbd, ot as MessageItemReadReceipt, p as MessageQuotedPreviewAttachments, pn as PanelScrollViewport, q as MessageReactionGlyph, qn as defaultNativeButton, qt as DropdownMenuItemCount, rn as DropdownMenuSubmenu, rr as headEdges, rt as MessageReactionTooltipSeparator, s as MessageListDateDivider, sn as KbdGroup, st as MessageItemSavedIndicator, t as useHoldThenMoveTouchSensor, tn as DropdownMenuSeparator, tr as controlIconInset, tt as MessageReactionTooltipNameText, u as MessageList, un as PanelFooter, v as MessageQuotedPreviewChannel, vn as ScrollAreaScrollbar, vt as MessageItemSenderBadges, w as MessageQuotedPreviewTimestamp, wn as PRESENCE_COLOR, wt as MessageItemContent, x as MessageQuotedPreviewLoading, xn as useMobileViewport, xt as MessageItemTime, y as MessageQuotedPreviewContent, yn as ScrollAreaThumb, yt as MessageItemSenderButton, z as MessageReferenceLabel, zn as DialogOverlay, zt as AvatarImage } from "./touch-drag-CbWqiMlZ.mjs";
2
+ import { $ as MessageReactionTooltipContent, $n as useTheme, $t as DropdownMenuRadioGroup, A as messageEmbed, An as TooltipTrigger, At as MessageItemAvatarSlot, B as MessageReferenceLabel, Bn as DialogOverlay, Bt as AvatarImage, C as MessageQuotedPreviewThread, Cn as Checkbox, Ct as MessageItemAttachments, D as MessageEmbedContent, Dn as TooltipContent, Dt as MessageItemEmbedded, E as MessageEmbed, En as Tooltip, Et as MessageItemEdited, F as MessageMultiSelectCheckbox, Fn as DialogContent, Ft as Avatar, G as MessageReactionChip, Gn as Button, Gt as DropdownMenuContent, H as MessageReferenceText, Hn as DialogSurface, Ht as DropdownMenu, I as MessageMultiSelectToolbar, In as DialogDescription, It as AvatarBadge, J as MessageReactionGlyph, Jn as defaultNativeButton, Jt as DropdownMenuItemCount, K as MessageReactionCount, Kn as buttonVariants, Kt as DropdownMenuFooter, L as MessageMultiSelectToolbarActions, Ln as DialogFooter, Lt as AvatarFallback, M as MessageTextSelectionToolbarButton, Mn as Dialog, Mt as MessageItemGutter, N as MessageTextSelectionToolbarSeparator, Nn as DialogBody, Nt as MessageItem, O as MessageEmbedFooter, On as TooltipPortal, Ot as MessageItemFooter, P as MessageMultiSelect, Pn as DialogClose, Pt as searchHit, Q as MessageReactionQuickRow, Qn as useThemeScopeProps, Qt as DropdownMenuPortal, R as MessageReferenceChip, Rn as DialogHeader, Rt as AvatarGroup, S as MessageQuotedPreviewText, Sn as useMobileViewport, St as MessageItemTime, T as MessageQuotedPreviewUnavailable, Tn as PRESENCE_COLOR, Tt as MessageItemContent, U as MessageReferenceUnavailable, Un as DialogTitle, Ut as DropdownMenuCheckboxItem, V as MessageReferencePending, Vn as DialogPortal, Vt as useOverflowTitle, W as MessageReactionAddButton, Wn as DialogTrigger, Wt as DropdownMenuCheckboxItemIndicator, X as MessageReactionPickerStatic, Xn as withOverlayLayer, Xt as DropdownMenuLabel, Y as MessageReactionPickerContent, Yn as useParentOverlayKind, Yt as DropdownMenuItemLabel, Z as MessageReactionQuickButton, Zn as resolveThemeScopeProps, Zt as DropdownMenuPopup, _ as MessageQuotedPreviewAuthorName, _n as ScrollAreaContent, _t as MessageItemMeta, an as DropdownMenuSubmenuTrigger, ar as decisionWidth, at as MessageItemBadge, b as MessageQuotedPreviewHeader, bn as ScrollAreaThumb, bt as MessageItemSenderButton, c as MessageListHistoryLimited, cn as KbdGroup, ct as MessageItemSavedIndicator, d as MessageQuotedPreview, dn as PanelFooter, en as DropdownMenuRadioItem, er as ThemeStateContext, et as MessageReactionTooltipMeta, f as MessageQuotedPreviewAttachment, fn as PanelHeaderRoot, g as MessageQuotedPreviewAuthorMeta, gn as ScrollArea, gt as MessageItemInlineStatus, hn as PanelSection, ht as MessageItemHeader, in as DropdownMenuSubmenu, ir as headEdges, it as MessageReactionTooltipSeparator, j as MessageTextSelectionToolbar, jn as Badge, jt as MessageItemContinuationTime, k as MessageEmbedHeader, kn as TooltipProvider, kt as MessageItemSearchMatch, l as MessageListNotice, ln as Panel, lt as MessageItemToolbar, m as MessageQuotedPreviewAuthor, mn as PanelScrollViewport, n as useMouseOnlyPointerSensor, nn as DropdownMenuSeparator, nr as controlIconInset, nt as MessageReactionTooltipNameText, on as DropdownMenuTrigger, ot as MessageItemBadgeSeparator, p as MessageQuotedPreviewAttachments, pn as PanelScrollContent, q as MessageReactionErrorIndicator, qn as Spinner, qt as DropdownMenuItem, rn as DropdownMenuShortcut, rr as headEdgePull, rt as MessageReactionTooltipNames, s as MessageListDateDivider, sn as Kbd, st as MessageItemReadReceipt, t as useHoldThenMoveTouchSensor, tn as DropdownMenuRadioItemIndicator, tr as tv, tt as MessageReactionTooltipName, u as MessageList, un as PanelBody, ut as MessageItemToolbarButton, v as MessageQuotedPreviewChannel, vn as ScrollAreaCorner, vt as MessageItemSender, w as MessageQuotedPreviewTimestamp, wn as CheckboxIndicator, wt as MessageItemBody, x as MessageQuotedPreviewLoading, xn as ScrollAreaViewport, xt as MessageItemSenderGroup, y as MessageQuotedPreviewContent, yn as ScrollAreaScrollbar, yt as MessageItemSenderBadges, z as MessageReferenceIndicator, zn as DialogNav, zt as AvatarGroupCount } from "./touch-drag-BA_Fxs2Z.mjs";
3
3
  import { Dialog as Dialog$1 } from "@base-ui/react/dialog";
4
4
  import { AlertTriangle, Bell, Check, CheckCircle2, ChevronDown, ChevronLeft, ChevronRight, Copy, FileText, Image, Info, Upload, X, Zap } from "lucide-react";
5
5
  import { Children, cloneElement, createContext, createElement, isValidElement, use, useCallback, useContext, useEffect, useId, useImperativeHandle, useLayoutEffect, useMemo, useRef, useState, useSyncExternalStore } from "react";
@@ -36,7 +36,8 @@ const alertDialog = tv({
36
36
  slots: {
37
37
  overlay: ["fixed inset-0 z-50 bg-layer-backdrop"],
38
38
  content: [
39
- "fixed top-1/2 left-1/2 z-50 grid w-[calc(100%-2rem)] max-w-[400px] -translate-1/2 outline-none",
39
+ "fixed top-1/2 left-1/2 z-50 grid w-[calc(100%-2rem)] -translate-1/2 outline-none",
40
+ decisionWidth,
40
41
  "overflow-clip rounded-dialog bg-layer-popover text-foreground",
41
42
  "shadow-float ring-1 ring-line-seam"
42
43
  ],
@@ -242,7 +243,7 @@ const panelHeader = tv({
242
243
  "max-md:**:data-[slot=panel-title]:text-foreground-on-frame",
243
244
  "max-md:**:data-[slot=panel-meta]:text-foreground-on-frame-muted",
244
245
  "max-md:**:data-[slot=panel-action]:text-foreground-on-frame",
245
- "max-md:**:data-[slot=panel-action]:hover:bg-fill-frame-pressed max-md:**:data-[slot=panel-action]:active:bg-fill-frame-pressed"
246
+ "max-md:**:data-[slot=panel-action]:hover:bg-fill-frame-medium max-md:**:data-[slot=panel-action]:active:bg-fill-frame-medium"
246
247
  ]
247
248
  }]
248
249
  });
@@ -1051,9 +1052,9 @@ const listRow = tv({
1051
1052
  },
1052
1053
  interactive: {
1053
1054
  true: { root: [
1054
- "not-disabled:not-aria-disabled:not-data-selected:hover:row-hover-overlay",
1055
- "not-disabled:not-aria-disabled:not-data-selected:active:press-overlay",
1056
- "not-data-selected:data-popup-open:row-open-overlay not-disabled:not-aria-disabled:not-data-selected:data-popup-open:hover:row-open-overlay"
1055
+ "not-disabled:not-aria-disabled:not-data-selected:hover:overlay-subtle",
1056
+ "not-disabled:not-aria-disabled:not-data-selected:active:overlay-medium",
1057
+ "not-data-selected:data-popup-open:overlay-subtle"
1057
1058
  ] },
1058
1059
  false: {}
1059
1060
  },
@@ -1305,7 +1306,7 @@ const appRail = tv({ slots: {
1305
1306
  "[&_svg]:shrink-0",
1306
1307
  "size-10 rounded-control border-[1.5px] border-transparent",
1307
1308
  "text-foreground-on-frame [&_svg]:size-5",
1308
- "hover:bg-fill-frame-pressed active:bg-fill-frame-pressed",
1309
+ "hover:bg-fill-frame-medium active:bg-fill-frame-medium",
1309
1310
  "data-[selected=true]:border-line-frame-active data-[selected=true]:bg-layer-frame-active",
1310
1311
  "data-[selected=true]:ring-[1.5px] data-[selected=true]:ring-sticker-edge",
1311
1312
  "data-[selected=true]:text-foreground-on-frame-active",
@@ -1968,7 +1969,11 @@ const sidebarItemRecipe = tv({
1968
1969
  },
1969
1970
  variants: {
1970
1971
  interactive: {
1971
- true: { sidebarItem: ["hover:bg-fill-row-hover active:bg-fill-pressed not-data-active:data-popup-open:bg-fill-row-open", "focus-visible:shadow-focus"] },
1972
+ true: { sidebarItem: [
1973
+ "hover:bg-fill-subtle active:bg-fill-medium not-data-active:data-popup-open:bg-fill-subtle",
1974
+ "data-active:active:overlay-sticker-medium",
1975
+ "focus-visible:shadow-focus"
1976
+ ] },
1972
1977
  false: { sidebarItem: "cursor-default" }
1973
1978
  },
1974
1979
  wrap: {
@@ -2618,13 +2623,13 @@ const contextMenu = tv({ slots: {
2618
2623
  content: [
2619
2624
  "flex flex-col max-h-(--available-height) overflow-hidden",
2620
2625
  "outline-none",
2621
- "min-w-60 gap-0 rounded-container bg-layer-popover p-1.5 text-foreground",
2626
+ "min-w-60 gap-0 rounded-container bg-layer-popover p-1 text-foreground",
2622
2627
  "shadow-float ring-1 ring-line-seam"
2623
2628
  ],
2624
2629
  item: [
2625
2630
  "flex w-full cursor-default select-none items-center",
2626
2631
  "text-left outline-none transition-colors",
2627
- "min-h-option gap-2.5 rounded-control px-2.5 py-option-inset",
2632
+ "min-h-option gap-2.5 rounded-chip px-2.5 py-option-inset",
2628
2633
  "font-sans text-callout font-medium text-foreground",
2629
2634
  "hover:bg-brand-soft data-highlighted:bg-brand-soft",
2630
2635
  "data-checked:font-bold",
@@ -2635,7 +2640,7 @@ const contextMenu = tv({ slots: {
2635
2640
  radioItem: [
2636
2641
  "flex w-full cursor-default select-none items-center",
2637
2642
  "text-left outline-none transition-colors",
2638
- "min-h-option gap-2.5 rounded-control px-2.5 py-option-inset",
2643
+ "min-h-option gap-2.5 rounded-chip px-2.5 py-option-inset",
2639
2644
  "font-sans text-callout font-medium text-foreground",
2640
2645
  "hover:bg-brand-soft data-highlighted:bg-brand-soft",
2641
2646
  "data-checked:font-bold",
@@ -2646,7 +2651,7 @@ const contextMenu = tv({ slots: {
2646
2651
  submenuTrigger: [
2647
2652
  "flex w-full cursor-default select-none items-center",
2648
2653
  "text-left outline-none transition-colors",
2649
- "min-h-option gap-2.5 rounded-control px-2.5 py-option-inset",
2654
+ "min-h-option gap-2.5 rounded-chip px-2.5 py-option-inset",
2650
2655
  "font-sans text-callout font-medium text-foreground",
2651
2656
  "hover:bg-brand-soft data-highlighted:bg-brand-soft data-popup-open:bg-brand-soft",
2652
2657
  "data-disabled:pointer-events-none data-disabled:text-foreground-disabled",
@@ -2661,7 +2666,7 @@ const contextMenu = tv({ slots: {
2661
2666
  "h-auto min-w-0 rounded-none bg-transparent p-0 shadow-none ring-0",
2662
2667
  "font-mono text-mono-meta font-normal text-foreground-hint"
2663
2668
  ],
2664
- separator: ["-mx-1.5 my-1.5 h-px border-0 bg-line-hairline"],
2669
+ separator: ["-mx-1 my-1 h-px border-0 bg-line-hairline"],
2665
2670
  indicator: ["pointer-events-none ml-auto flex shrink-0 items-center justify-center", "size-4 text-foreground [&_svg]:size-4"]
2666
2671
  } });
2667
2672
  function ContextMenu(props) {
@@ -2917,7 +2922,7 @@ const lightbox = tv({ slots: {
2917
2922
  "data-[disabled=true]:cursor-default",
2918
2923
  "[&_svg]:pointer-events-none [&_svg]:shrink-0",
2919
2924
  "size-11 rounded-control border-[1.5px] border-line-strong bg-layer-card text-foreground shadow-none",
2920
- "hover:bg-layer-card hover:press-overlay active:press-overlay",
2925
+ "hover:overlay-medium active:overlay-medium",
2921
2926
  "focus-visible:outline-transparent focus-visible:shadow-focus",
2922
2927
  "[&_svg]:size-5.5"
2923
2928
  ],
@@ -2925,11 +2930,18 @@ const lightbox = tv({ slots: {
2925
2930
  infoBar: [
2926
2931
  "pointer-events-auto flex items-center",
2927
2932
  "w-[clamp(144px,20vw,224px)] max-w-[calc(100vw-48px)] min-w-36",
2928
- "gap-2 rounded-container py-0.5 pr-0.5 pl-2.5",
2933
+ "gap-2 rounded-container py-1 pr-1 pl-2.5",
2929
2934
  "bg-layer-popover text-foreground shadow-float ring-1 ring-line-seam"
2930
2935
  ],
2931
2936
  infoTitle: ["min-w-0 flex-1 truncate", "font-sans text-footnote font-semibold text-foreground"],
2932
- infoActions: ["flex shrink-0 items-center", "gap-1"],
2937
+ infoActions: [
2938
+ "flex shrink-0 items-center",
2939
+ "gap-1",
2940
+ "*:data-[slot=button]:h-7 *:data-[slot=button]:w-auto *:data-[slot=button]:min-w-7",
2941
+ "*:data-[slot=button]:rounded-chip",
2942
+ "*:data-[slot=button]:after:inset-x-[-3px] *:data-[slot=button]:first:after:left-[-9.5px] *:data-[slot=button]:last:after:right-[-9.5px]",
2943
+ "pointer-coarse:*:data-[slot=button]:after:inset-y-[-9.5px]"
2944
+ ],
2933
2945
  thumbnailStrip: ["pointer-events-none absolute right-0 bottom-4 left-0 z-10", "flex items-center justify-center gap-1.5"],
2934
2946
  thumbnail: [
2935
2947
  "group/lightbox-thumb pointer-events-auto relative size-12 overflow-hidden",
@@ -3264,11 +3276,11 @@ const mobileNav = tv({ slots: {
3264
3276
  "*:relative *:z-10 [&_svg]:size-[22px] [&_svg]:stroke-2",
3265
3277
  "before:pointer-events-none before:absolute before:top-0 before:left-1/2 before:z-0 before:-translate-x-1/2",
3266
3278
  "before:h-[30px] before:w-14 before:rounded-control before:border-[1.5px] before:border-transparent before:content-['']",
3267
- "active:before:bg-fill-pressed",
3279
+ "active:before:bg-fill-medium",
3268
3280
  "data-[selected=true]:font-bold data-[selected=true]:text-foreground",
3269
3281
  "data-[selected=true]:[&_svg]:text-sticker-ink",
3270
3282
  "data-[selected=true]:before:border-sticker-ink data-[selected=true]:before:bg-brand data-[selected=true]:before:ring-[1.5px] data-[selected=true]:before:ring-sticker-edge",
3271
- "data-[selected=true]:active:before:press-overlay-sticker",
3283
+ "data-[selected=true]:active:before:overlay-sticker-medium",
3272
3284
  "rounded-control focus-visible:shadow-focus"
3273
3285
  ],
3274
3286
  itemLabel: ["min-w-0 truncate", "max-w-full"]
@@ -3345,16 +3357,16 @@ const popover = tv({ slots: {
3345
3357
  "rounded-container bg-layer-popover text-foreground",
3346
3358
  "shadow-float ring-1 ring-line-seam"
3347
3359
  ],
3348
- header: ["flex items-center justify-between px-3", "min-h-11 gap-2 py-1.5 pr-2 pl-4"],
3360
+ header: ["flex items-center justify-between px-3", "min-h-11 gap-2 py-1.5 pr-1.5 pl-4"],
3349
3361
  separator: ["border-t", "border-line-hairline"],
3350
3362
  title: ["m-0", "font-sans text-headline font-bold text-foreground"],
3351
3363
  description: ["m-0", "font-sans text-footnote text-foreground-muted"],
3352
3364
  close: [
3353
3365
  "inline-flex items-center justify-center",
3354
3366
  "outline-none transition-colors",
3355
- "h-8 min-w-8 rounded-control px-1.5",
3367
+ "h-8 min-w-8 rounded-chip px-1.5",
3356
3368
  "font-sans text-footnote font-bold text-foreground",
3357
- "hover:bg-fill-pressed active:bg-fill-pressed",
3369
+ "hover:bg-fill-medium active:bg-fill-medium",
3358
3370
  "focus-visible:shadow-focus",
3359
3371
  "[&_svg]:size-4.5"
3360
3372
  ],
@@ -3898,7 +3910,12 @@ const inputGroup = tv({
3898
3910
  variant: "default",
3899
3911
  align: "inline-end",
3900
3912
  class: {
3901
- addon: "pl-2",
3913
+ addon: [
3914
+ "pl-2",
3915
+ "*:data-[slot=button]:size-control-embedded *:data-[slot=button]:rounded-chip",
3916
+ "[&>[data-slot=button]_svg:not([class*='size-'])]:size-4",
3917
+ "[&>[data-slot=button]:last-child]:me-[calc(var(--control-embedded-inset)-0.75rem-1px)]"
3918
+ ],
3902
3919
  text: "pl-0.5"
3903
3920
  }
3904
3921
  }
@@ -3992,14 +4009,14 @@ const combobox = tv({
3992
4009
  "transition-[background-color,color] duration-100",
3993
4010
  "[&>svg]:shrink-0",
3994
4011
  "rounded-sticker text-foreground-hint opacity-100",
3995
- "hover:bg-transparent hover:text-foreground-hint",
3996
4012
  "[&>svg]:size-3.5 [&>svg]:stroke-2 [&>svg_*]:stroke-2"
3997
4013
  ],
3998
4014
  control: [
3999
4015
  "flex min-w-0 items-center gap-2",
4000
4016
  "outline-none",
4001
4017
  "[&>svg]:pointer-events-none [&>svg]:shrink-0",
4002
- "[&_[data-slot='combobox-clear']]:size-5 [&_[data-slot='combobox-clear']]:min-w-5 **:data-[slot='combobox-clear']:shrink-0",
4018
+ "**:data-[slot='combobox-clear']:size-control-embedded [&_[data-slot='combobox-clear']]:px-0 **:data-[slot='combobox-clear']:shrink-0",
4019
+ "[&>[data-slot=combobox-clear]:last-child]:me-[calc(var(--control-embedded-inset)-0.75rem-1px)]",
4003
4020
  "[&_[data-slot='combobox-trigger-indicator']]:size-4",
4004
4021
  "[&_[data-slot='combobox-trigger-indicator']>svg]:shrink-0",
4005
4022
  "min-h-control rounded-control border-[1.5px] border-line-field bg-layer-card px-3 py-0",
@@ -4027,11 +4044,11 @@ const combobox = tv({
4027
4044
  ],
4028
4045
  header: ["flex items-center justify-between px-3", "gap-2 py-1.5 pr-1.5 pl-4"],
4029
4046
  separator: ["h-px shrink-0 border-0", "bg-line-hairline"],
4030
- list: ["max-h-64 overflow-y-auto overscroll-contain", "flex flex-col p-1.5 scroll-py-1.5"],
4047
+ list: ["max-h-64 overflow-y-auto overscroll-contain", "flex flex-col p-1 scroll-py-1"],
4031
4048
  item: [
4032
4049
  "flex w-full shrink-0 cursor-default select-none items-center justify-between overflow-hidden",
4033
4050
  "text-left outline-none transition-colors",
4034
- "min-h-option gap-2.5 rounded-control px-2.5 py-option-inset",
4051
+ "min-h-option gap-2.5 rounded-chip px-2.5 py-option-inset",
4035
4052
  "font-sans text-callout font-medium text-foreground wrap-anywhere",
4036
4053
  "bg-transparent hover:bg-brand-soft data-highlighted:bg-brand-soft",
4037
4054
  "data-selected:font-bold",
@@ -4046,9 +4063,9 @@ const combobox = tv({
4046
4063
  "inline-flex items-center justify-center",
4047
4064
  "pointer-events-none opacity-0 outline-none transition-[background-color,color] duration-100",
4048
4065
  "data-visible:pointer-events-auto data-visible:opacity-100",
4049
- "h-7 min-w-0 rounded-control px-2",
4066
+ "h-7 min-w-0 rounded-chip px-2",
4050
4067
  "font-sans text-control font-semibold text-foreground-muted",
4051
- "hover:bg-fill-pressed hover:text-foreground active:bg-fill-pressed",
4068
+ "hover:bg-fill-medium hover:text-foreground active:bg-fill-medium",
4052
4069
  "focus-visible:shadow-focus",
4053
4070
  "[&>svg]:size-4 [&>svg]:stroke-2 [&>svg_*]:stroke-2"
4054
4071
  ],
@@ -4056,19 +4073,21 @@ const combobox = tv({
4056
4073
  groupLabel: ["py-2", "px-2.5 pt-2 pb-1 text-caption font-bold text-foreground-hint"],
4057
4074
  chips: [
4058
4075
  "flex flex-wrap items-center",
4059
- "min-h-control gap-1.5 rounded-control border-[1.5px] border-line-field bg-layer-card py-1.5 pr-3 pl-1.5",
4076
+ "min-h-control gap-1.5 rounded-control border-[1.5px] border-line-field bg-layer-card py-[calc(var(--control-embedded-inset)-1.5px)] pr-3 pl-[calc(var(--control-embedded-inset)-1px)]",
4077
+ "*:data-[slot=combobox-input]:h-control-embedded",
4060
4078
  "transition-shadow duration-90 ease-out has-focus-visible:shadow-focus"
4061
4079
  ],
4062
4080
  chip: [
4063
4081
  "inline-flex min-w-0 max-w-full items-center overflow-hidden",
4064
4082
  "[&>:not([data-slot=combobox-chip-remove])]:min-w-0 [&>:not([data-slot=combobox-chip-remove])]:truncate",
4065
- "h-7 gap-1.5 rounded-chip bg-fill-muted pr-0.5 pl-2",
4083
+ "h-control-embedded gap-1.5 rounded-chip bg-fill-muted pr-0.5 pl-2",
4066
4084
  "text-footnote font-semibold text-foreground"
4067
4085
  ],
4068
4086
  chipRemove: [
4069
4087
  "inline-flex shrink-0 items-center justify-center outline-none transition-colors",
4070
- "size-[22px] rounded-sticker text-foreground-hint",
4071
- "hover:bg-fill-pressed active:bg-fill-pressed focus-visible:shadow-focus",
4088
+ "size-[calc(var(--control-embedded-size)-4px)] rounded-sticker text-foreground-hint",
4089
+ "hover:bg-fill-medium active:bg-fill-medium",
4090
+ "focus-visible:keyboard:inset-ring-2 focus-visible:keyboard:inset-ring-foreground",
4072
4091
  "[&>svg]:size-3.5"
4073
4092
  ]
4074
4093
  },
@@ -4402,9 +4421,9 @@ const pickerTriggerButton = tv({ base: [
4402
4421
  "gap-1.5 rounded-control border-0 bg-transparent px-2.5 py-0",
4403
4422
  "font-sans text-control font-semibold text-foreground-muted",
4404
4423
  "inset-ring inset-ring-line-seam",
4405
- "hover:bg-fill-pressed active:bg-fill-pressed",
4424
+ "hover:bg-fill-medium active:bg-fill-medium",
4406
4425
  "data-has-value:bg-info-soft data-has-value:text-foreground data-has-value:inset-ring-0",
4407
- "data-has-value:hover:bg-info-soft data-has-value:hover:press-overlay data-has-value:active:press-overlay",
4426
+ "data-has-value:hover:bg-info-soft data-has-value:hover:overlay-medium data-has-value:active:overlay-medium",
4408
4427
  "data-invalid:inset-ring data-invalid:inset-ring-danger-strong",
4409
4428
  "focus-visible:shadow-focus",
4410
4429
  "disabled:bg-fill-muted disabled:text-foreground-disabled disabled:opacity-100 disabled:inset-ring-0",
@@ -4434,6 +4453,7 @@ const select = tv({
4434
4453
  "[&_[data-slot='select-trigger-content']_svg]:shrink-0",
4435
4454
  "h-control w-full gap-2 pr-3 pl-3.5",
4436
4455
  "border-[1.5px] border-line-field",
4456
+ "hover:bg-none",
4437
4457
  "text-subhead font-semibold text-foreground",
4438
4458
  "data-placeholder:font-medium data-placeholder:text-foreground-hint",
4439
4459
  "data-invalid:border-danger-strong data-invalid:hover:border-danger-strong",
@@ -4453,14 +4473,14 @@ const select = tv({
4453
4473
  "relative max-h-(--available-height) min-w-[max(var(--anchor-width),220px)] overflow-hidden",
4454
4474
  "max-w-[min(var(--available-width),max(var(--anchor-width),24rem))]",
4455
4475
  "outline-none",
4456
- "rounded-container bg-layer-popover p-1.5 text-foreground",
4476
+ "rounded-container bg-layer-popover p-1 text-foreground",
4457
4477
  "shadow-float ring-1 ring-line-seam"
4458
4478
  ],
4459
4479
  list: ["max-h-64 overflow-y-auto overscroll-contain scroll-py-6", "flex flex-col"],
4460
4480
  item: [
4461
4481
  "flex w-full shrink-0 cursor-default select-none items-center justify-between overflow-hidden",
4462
4482
  "text-left outline-none transition-colors",
4463
- "min-h-option flex-wrap gap-x-2.5 gap-y-0.5 rounded-control px-2.5 py-option-inset",
4483
+ "min-h-option flex-wrap gap-x-2.5 gap-y-0.5 rounded-chip px-2.5 py-option-inset",
4464
4484
  "text-callout font-medium text-foreground",
4465
4485
  "bg-transparent hover:bg-brand-soft data-highlighted:bg-brand-soft",
4466
4486
  "data-selected:font-bold data-selected:**:data-[slot='select-item-text']:font-bold",
@@ -4487,7 +4507,7 @@ const select = tv({
4487
4507
  label: ["m-0", "font-sans text-footnote font-semibold text-foreground-muted"],
4488
4508
  group: ["flex flex-col"],
4489
4509
  groupLabel: ["py-2", "px-2.5 pt-2 pb-1 text-caption font-bold text-foreground-hint"],
4490
- separator: ["h-px shrink-0 border-0", "-mx-1.5 my-1.5 bg-line-hairline"],
4510
+ separator: ["h-px shrink-0 border-0", "-mx-1 my-1 bg-line-hairline"],
4491
4511
  scrollArrow: [
4492
4512
  "absolute inset-x-0 z-10 flex h-6 w-full cursor-default items-center justify-center",
4493
4513
  "outline-none transition-colors",
@@ -4882,7 +4902,7 @@ function SwitchThumb({ className, ...props }) {
4882
4902
  //#region src/components/segmented-control/segmented-control.tsx
4883
4903
  const segmentedControl = tv({
4884
4904
  slots: {
4885
- root: ["inline-flex shrink-0 items-center", "w-fit flex-nowrap gap-0.5 rounded-[11px] bg-fill-muted p-[3px]"],
4905
+ root: ["inline-flex shrink-0 items-center", "w-fit flex-nowrap gap-[3px] rounded-[11px] bg-fill-muted p-[3px]"],
4886
4906
  item: [
4887
4907
  "inline-flex min-w-0 shrink-0 items-center gap-1.5",
4888
4908
  "outline-none disabled:pointer-events-none",
@@ -4890,9 +4910,9 @@ const segmentedControl = tv({
4890
4910
  "h-8 justify-center rounded-control border-[1.5px] border-transparent bg-transparent px-3",
4891
4911
  "font-sans text-callout font-semibold text-foreground-muted",
4892
4912
  "[&_svg:not([class*='size-'])]:size-4",
4893
- "hover:bg-fill-pressed",
4913
+ "hover:bg-fill-medium active:bg-fill-medium",
4894
4914
  "data-checked:border-sticker-ink data-checked:bg-brand data-checked:font-bold data-checked:text-sticker-ink data-checked:ring-[1.5px] data-checked:ring-sticker-edge",
4895
- "data-checked:hover:bg-brand data-checked:hover:press-overlay-sticker data-checked:active:press-overlay-sticker",
4915
+ "data-checked:hover:bg-brand data-checked:active:bg-brand data-checked:active:overlay-sticker-medium",
4896
4916
  "focus-visible:shadow-focus",
4897
4917
  "data-disabled:cursor-not-allowed data-disabled:text-foreground-disabled data-disabled:hover:bg-transparent"
4898
4918
  ],
@@ -4976,7 +4996,7 @@ const toggleGroup = tv({ slots: {
4976
4996
  "inline-flex max-w-full items-center",
4977
4997
  "data-[orientation=horizontal]:flex-row data-[orientation=horizontal]:flex-wrap",
4978
4998
  "data-[orientation=vertical]:flex-col data-[orientation=vertical]:items-stretch",
4979
- "gap-0.5 rounded-[11px] bg-fill-muted p-[3px]"
4999
+ "gap-[3px] rounded-[11px] bg-fill-muted p-[3px]"
4980
5000
  ],
4981
5001
  item: [
4982
5002
  "inline-flex h-8 min-w-0 shrink-0 items-center justify-center gap-1.5",
@@ -4987,9 +5007,9 @@ const toggleGroup = tv({ slots: {
4987
5007
  "rounded-control border-[1.5px] border-transparent bg-transparent px-3",
4988
5008
  "font-sans text-callout font-semibold text-foreground-muted",
4989
5009
  "[&_svg:not([class*='size-'])]:size-4",
4990
- "hover:bg-fill-pressed",
5010
+ "hover:bg-fill-medium active:bg-fill-medium",
4991
5011
  "data-pressed:border-sticker-ink data-pressed:bg-brand data-pressed:font-bold data-pressed:text-sticker-ink data-pressed:ring-[1.5px] data-pressed:ring-sticker-edge",
4992
- "data-pressed:hover:bg-brand data-pressed:hover:press-overlay-sticker data-pressed:active:press-overlay-sticker",
5012
+ "data-pressed:hover:bg-brand data-pressed:active:bg-brand data-pressed:active:overlay-sticker-medium",
4993
5013
  "focus-visible:shadow-focus",
4994
5014
  "data-disabled:opacity-100 data-disabled:text-foreground-disabled data-disabled:hover:bg-transparent"
4995
5015
  ],
@@ -5178,14 +5198,15 @@ const codeBlock = tv({ slots: {
5178
5198
  ],
5179
5199
  header: [
5180
5200
  "flex h-(--code-block-header-height) items-center",
5181
- "gap-2 border-b border-line-hairline pr-1 pl-3",
5201
+ "gap-2 border-b border-line-hairline pr-[calc(var(--control-embedded-inset)-1px)] pl-3",
5182
5202
  "font-mono text-mono-meta text-foreground-hint"
5183
5203
  ],
5184
5204
  title: ["min-w-0 flex-1 truncate font-mono", "text-mono-meta"],
5185
5205
  actions: [
5186
- "ml-auto flex items-center gap-2",
5187
- "[[data-slot=code-block-body]>&]:absolute [[data-slot=code-block-body]>&]:top-2",
5188
- "[[data-slot=code-block-body]>&]:right-2 [[data-slot=code-block-body]>&]:z-10"
5206
+ "ml-auto flex items-center gap-1",
5207
+ "[[data-slot=code-block-body]>&]:col-start-2 [[data-slot=code-block-body]>&]:row-start-1",
5208
+ "[[data-slot=code-block-body]>&]:z-10 [[data-slot=code-block-body]>&]:ml-3",
5209
+ "[[data-slot=code-block-body]>&]:my-[calc(var(--control-embedded-inset)-0.5rem-1px)] [[data-slot=code-block-body]>&]:mr-[calc(var(--control-embedded-inset)-0.75rem-1px)]"
5189
5210
  ],
5190
5211
  corner: [
5191
5212
  "pointer-events-none absolute z-20 size-1",
@@ -5194,7 +5215,9 @@ const codeBlock = tv({ slots: {
5194
5215
  "hidden"
5195
5216
  ],
5196
5217
  body: [
5197
- "relative min-w-0 overflow-x-auto p-4 font-mono",
5218
+ "relative grid min-w-0 grid-cols-[minmax(0,1fr)_auto] items-start *:col-start-1",
5219
+ "p-4 font-mono [&_pre]:overflow-x-auto",
5220
+ "[&_pre]:outline-none [&_pre]:focus-visible:keyboard:inset-ring-2 [&_pre]:focus-visible:keyboard:inset-ring-foreground",
5198
5221
  "px-3 py-2 text-mono-code text-foreground",
5199
5222
  "[&_pre_span]:text-(--shiki-light,currentColor)",
5200
5223
  "dark:[&_pre_span]:text-(--shiki-dark,currentColor)"
@@ -5203,8 +5226,8 @@ const codeBlock = tv({ slots: {
5203
5226
  "inline-flex shrink-0 items-center justify-center",
5204
5227
  "transition-[color,background-color,opacity]",
5205
5228
  "focus-visible:outline-none",
5206
- "size-8 rounded-control text-foreground",
5207
- "hover:bg-fill-pressed active:bg-fill-pressed",
5229
+ "size-8 rounded-chip text-foreground",
5230
+ "hover:bg-fill-medium active:bg-fill-medium",
5208
5231
  "focus-visible:ring-0 focus-visible:shadow-focus",
5209
5232
  "[&_svg:not([class*='size-'])]:size-4.5"
5210
5233
  ]
@@ -5260,7 +5283,7 @@ function CodeBlockTitle({ className, render, ...props }) {
5260
5283
  state: { slot: "code-block-title" }
5261
5284
  });
5262
5285
  }
5263
- /** Trailing action region. Placed inside the body it floats over the code panel. */
5286
+ /** Trailing action region. In the header it ends the header; in the body it takes a column of its own beside the code. */
5264
5287
  function CodeBlockActions({ className, render, ...props }) {
5265
5288
  const { actions } = codeBlock();
5266
5289
  const defaultProps = { className: actions({ className }) };
@@ -5285,7 +5308,10 @@ function CodeBlockAction({ className, render, ...props }) {
5285
5308
  state: { slot: "code-block-action" }
5286
5309
  });
5287
5310
  }
5288
- /** Inner code panel. Render the complete pre and code as children. */
5311
+ /**
5312
+ * Inner code panel. Render the code in a `CodeBlockPre` (or a complete pre
5313
+ * and code) as children.
5314
+ */
5289
5315
  function CodeBlockBody({ children, className, render, ...props }) {
5290
5316
  const { body, corner } = codeBlock();
5291
5317
  const defaultProps = {
@@ -5305,6 +5331,35 @@ function CodeBlockBody({ children, className, render, ...props }) {
5305
5331
  state: { slot: "code-block-body" }
5306
5332
  });
5307
5333
  }
5334
+ /**
5335
+ * The code's `pre`. A long line scrolls inside it; while it does, it is a
5336
+ * named region the keyboard can reach (`tabindex="0"`, `role="region"`, its
5337
+ * `aria-label`, "Code" by default), since Safari doesn't focus a scroller on
5338
+ * its own. Code that fits adds no Tab stop.
5339
+ */
5340
+ function CodeBlockPre({ render, ref, "aria-label": ariaLabel = "Code", ...props }) {
5341
+ const preRef = useRef(null);
5342
+ const [overflowing, setOverflowing] = useState(false);
5343
+ useEffect(() => {
5344
+ const pre = preRef.current;
5345
+ if (!pre) return;
5346
+ const observer = new ResizeObserver(() => setOverflowing(pre.scrollWidth > pre.clientWidth));
5347
+ observer.observe(pre);
5348
+ for (const child of pre.children) observer.observe(child);
5349
+ return () => observer.disconnect();
5350
+ }, []);
5351
+ return useRender({
5352
+ defaultTagName: "pre",
5353
+ render,
5354
+ ref: ref ? [preRef, ref] : preRef,
5355
+ props: mergeProps(overflowing ? {
5356
+ tabIndex: 0,
5357
+ role: "region",
5358
+ "aria-label": ariaLabel
5359
+ } : {}, props),
5360
+ state: { slot: "code-block-pre" }
5361
+ });
5362
+ }
5308
5363
  //#endregion
5309
5364
  //#region src/components/inline-code/inline-code.tsx
5310
5365
  const inlineCode = tv({
@@ -5683,7 +5738,7 @@ const messageSystem = tv({ slots: {
5683
5738
  "[&[data-panel-open]_[data-slot=system-message-group-chevron]]:-rotate-90",
5684
5739
  "h-7 gap-1 rounded-control px-2 py-0",
5685
5740
  "font-mono text-mono-meta text-foreground-hint",
5686
- "hover:bg-fill-pressed hover:text-foreground",
5741
+ "hover:bg-fill-medium hover:text-foreground active:bg-fill-medium",
5687
5742
  "outline-none focus-visible:shadow-focus"
5688
5743
  ],
5689
5744
  systemGroupSummary: ["truncate"],
@@ -5801,7 +5856,7 @@ const messageReplies = tv({ slots: {
5801
5856
  "group/message-replies flex min-w-0 w-full flex-col text-left",
5802
5857
  "transition-colors focus-visible:keyboard:outline-1 focus-visible:keyboard:outline-line-strong",
5803
5858
  "mt-2 max-w-[480px] gap-1 rounded-container border-0 px-2.5 py-2",
5804
- "bg-fill-muted text-foreground-muted hover:press-overlay active:press-overlay",
5859
+ "bg-fill-muted text-foreground-muted hover:overlay-subtle active:overlay-medium",
5805
5860
  "focus-visible:outline-none focus-visible:shadow-focus"
5806
5861
  ],
5807
5862
  summary: [
@@ -5919,8 +5974,8 @@ const messageActionCard = tv({
5919
5974
  "[&>svg]:transition-transform [&>svg]:duration-200 motion-reduce:[&>svg]:transition-none",
5920
5975
  "data-panel-open:[&>svg]:rotate-180",
5921
5976
  "focus-visible:keyboard:outline-2 focus-visible:keyboard:outline-offset-1",
5922
- "my-0 -mr-1 size-[27px] rounded-control text-foreground-muted",
5923
- "hover:bg-fill-pressed hover:text-foreground active:bg-fill-pressed",
5977
+ "my-0 -mr-1 size-[27px] rounded-chip text-foreground-muted",
5978
+ "hover:bg-fill-medium hover:text-foreground active:bg-fill-medium",
5924
5979
  "focus-visible:outline-none focus-visible:shadow-focus",
5925
5980
  "[&>svg]:size-4"
5926
5981
  ]
@@ -6267,14 +6322,14 @@ const messageAttachment = tv({ slots: {
6267
6322
  card: [
6268
6323
  "group/attachment relative inline-flex h-20 w-44 min-w-44 max-w-44 shrink-0 flex-col overflow-hidden",
6269
6324
  "text-left",
6270
- "rounded-container border border-line-hairline bg-layer-card py-2 pr-1.5 pl-2.5 text-foreground",
6271
- "outline-none hover:press-overlay active:press-overlay focus-visible:shadow-focus",
6325
+ "rounded-container border border-line-hairline bg-layer-card py-2 pr-[calc(var(--control-embedded-inset)-1px)] pl-2.5 text-foreground",
6326
+ "outline-none hover:overlay-subtle active:overlay-medium focus-visible:shadow-focus",
6272
6327
  "[&_[data-slot=message-attachment-action]_svg]:size-4"
6273
6328
  ],
6274
6329
  title: ["block w-full max-w-full shrink-0 truncate", "pr-1 font-sans text-callout font-semibold text-foreground"],
6275
6330
  meta: ["mt-auto flex w-full min-w-0 max-w-full items-center justify-between", "gap-2 font-mono text-mono-meta text-foreground-hint"],
6276
6331
  metaStart: "min-w-0 flex-1 truncate",
6277
- metaEnd: ["ml-auto inline-flex shrink-0 items-center gap-1", "[&_svg]:size-[10px] [&_svg]:shrink-0"],
6332
+ metaEnd: ["ml-auto inline-flex shrink-0 items-center gap-1 self-stretch", "[&_svg]:size-[10px] [&_svg]:shrink-0"],
6278
6333
  summary: [
6279
6334
  "mt-0.5 inline-flex shrink-0 items-center whitespace-nowrap",
6280
6335
  "[&_svg]:shrink-0",
@@ -6288,8 +6343,8 @@ const messageAttachment = tv({ slots: {
6288
6343
  "relative flex items-center justify-center",
6289
6344
  "before:absolute before:-inset-1 before:content-['']",
6290
6345
  "[&_svg]:shrink-0",
6291
- "-my-1 size-6 rounded-control text-foreground",
6292
- "outline-none hover:bg-fill-pressed active:bg-fill-pressed",
6346
+ "-mt-1 mb-[calc(var(--control-embedded-inset)-9px)] size-6 self-end rounded-chip text-foreground",
6347
+ "outline-none hover:bg-fill-medium active:bg-fill-medium",
6293
6348
  "focus-visible:shadow-focus",
6294
6349
  "[&_svg]:size-4"
6295
6350
  ]
@@ -6437,8 +6492,8 @@ const messageImageGallery = tv({
6437
6492
  "absolute z-10 hidden items-center justify-center",
6438
6493
  "focus:flex",
6439
6494
  "group-hover/img:flex",
6440
- "right-1.5 bottom-1.5 size-8 rounded-control border-[1.5px] border-line-strong",
6441
- "bg-layer-card text-foreground hover:press-overlay active:press-overlay",
6495
+ "right-[calc(var(--control-embedded-inset)-1px)] bottom-[calc(var(--control-embedded-inset)-1px)] size-8 rounded-chip border-[1.5px] border-line-strong",
6496
+ "bg-layer-card text-foreground hover:overlay-medium active:overlay-medium",
6442
6497
  "outline-none focus-visible:shadow-focus",
6443
6498
  "[&_svg]:size-4"
6444
6499
  ]
@@ -6661,8 +6716,8 @@ const messageVideoPreview = tv({ slots: {
6661
6716
  "transition-colors duration-150",
6662
6717
  "outline-[1px] outline-offset-2 outline-transparent focus-visible:keyboard:outline-foreground",
6663
6718
  "disabled:cursor-default [&_svg]:shrink-0",
6664
- "top-2 right-2 size-8 rounded-control border-[1.5px] border-line-strong",
6665
- "bg-layer-card text-foreground hover:bg-layer-card hover:text-foreground hover:press-overlay active:press-overlay",
6719
+ "top-[calc(var(--control-embedded-inset)-1px)] right-[calc(var(--control-embedded-inset)-1px)] size-8 rounded-chip border-[1.5px] border-line-strong",
6720
+ "bg-layer-card text-foreground hover:overlay-medium active:overlay-medium",
6666
6721
  "outline-none focus-visible:shadow-focus",
6667
6722
  "disabled:border-line-hairline disabled:bg-fill-muted disabled:bg-none disabled:text-foreground-disabled",
6668
6723
  "[&_svg]:size-4"
@@ -6815,8 +6870,8 @@ const messageForwardedBundleItem = tv({
6815
6870
  action: {
6816
6871
  static: {},
6817
6872
  interactive: { attachment: [
6818
- "cursor-pointer transition-colors hover:border-line-strong focus-visible:keyboard:outline-2 focus-visible:keyboard:outline-offset-2 focus-visible:keyboard:outline-line-strong",
6819
- "hover:press-overlay active:press-overlay",
6873
+ "cursor-pointer focus-visible:keyboard:outline-2 focus-visible:keyboard:outline-offset-2 focus-visible:keyboard:outline-line-strong",
6874
+ "hover:overlay-medium active:overlay-medium",
6820
6875
  "focus-visible:outline-none focus-visible:shadow-focus"
6821
6876
  ] }
6822
6877
  } },
@@ -8118,12 +8173,12 @@ function OtterIndicator({ status, className, ...props }) {
8118
8173
  const table = tv({ slots: {
8119
8174
  root: ["w-full border-collapse caption-bottom", "font-sans text-callout text-foreground"],
8120
8175
  header: [],
8121
- body: ["[&>tr:last-child>td]:border-b-0 [&>tr:last-child>th]:border-b-0", "[&>tr]:hover:bg-fill-row-hover"],
8176
+ body: ["[&>tr:last-child>td]:border-b-0 [&>tr:last-child>th]:border-b-0", "[&>tr]:hover:bg-fill-subtle [&>tr]:active:bg-fill-medium"],
8122
8177
  row: [
8123
- "not-aria-selected:not-data-[selected=true]:data-popup-open:bg-fill-row-open",
8124
- "not-aria-selected:not-data-[selected=true]:has-data-popup-open:bg-fill-row-open",
8125
- "aria-selected:bg-info-soft aria-selected:hover:bg-info-soft",
8126
- "data-[selected=true]:bg-info-soft data-[selected=true]:hover:bg-info-soft"
8178
+ "not-aria-selected:not-data-[selected=true]:data-popup-open:bg-fill-subtle",
8179
+ "not-aria-selected:not-data-[selected=true]:has-data-popup-open:bg-fill-subtle",
8180
+ "aria-selected:bg-info-soft aria-selected:hover:bg-info-soft aria-selected:active:bg-info-soft",
8181
+ "data-[selected=true]:bg-info-soft data-[selected=true]:hover:bg-info-soft data-[selected=true]:active:bg-info-soft"
8127
8182
  ],
8128
8183
  head: [
8129
8184
  "text-left whitespace-nowrap",
@@ -8485,8 +8540,8 @@ const files = tv({ slots: {
8485
8540
  "group/file-row flex w-full min-w-0 gap-3 px-3",
8486
8541
  "transition-colors",
8487
8542
  "items-center rounded-container border border-line-hairline bg-layer-card py-2.5 pr-1.5 pl-2.5 shadow-none",
8488
- "[@media(hover:hover)]:has-[[data-slot=file-row-open]:hover]:row-hover-overlay has-[[data-slot=file-row-open]:active]:press-overlay",
8489
- "has-data-popup-open:row-open-overlay",
8543
+ "[@media(hover:hover)]:has-[[data-slot=file-row-open]:hover]:overlay-subtle has-[[data-slot=file-row-open]:active]:overlay-medium",
8544
+ "has-data-popup-open:overlay-subtle",
8490
8545
  "has-[[data-slot=file-row-open]:focus-visible]:shadow-focus"
8491
8546
  ],
8492
8547
  rowOpen: [
@@ -8582,7 +8637,7 @@ function FileAction({ variant, size = "icon-sm", ...props }) {
8582
8637
  const composer = tv({ slots: {
8583
8638
  root: [
8584
8639
  "flex w-full flex-col gap-2 p-2",
8585
- "rounded-container border-[1.5px] px-3 pt-3 pb-2",
8640
+ "rounded-container border-[1.5px] px-3 pt-3 pb-[calc(var(--control-embedded-inset)-1px)]",
8586
8641
  "border-line-field bg-layer-card text-foreground shadow-none",
8587
8642
  "has-focus-visible:shadow-focus"
8588
8643
  ],
@@ -8593,16 +8648,16 @@ const composer = tv({ slots: {
8593
8648
  "font-sans text-body font-normal text-foreground",
8594
8649
  "placeholder:text-foreground-hint"
8595
8650
  ],
8596
- toolbar: ["flex items-center justify-between", "gap-2"],
8651
+ toolbar: ["flex items-center justify-between", "mx-[calc(var(--control-embedded-inset)-0.75rem-1px)] gap-2"],
8597
8652
  actions: ["flex items-center gap-2"],
8598
8653
  meta: ["flex items-center", "gap-2"],
8599
8654
  iconButton: [
8600
- "size-8 rounded-control text-foreground-muted",
8655
+ "size-8 rounded-chip text-foreground-muted",
8601
8656
  "disabled:border-transparent disabled:bg-transparent",
8602
8657
  "aria-disabled:border-transparent aria-disabled:bg-transparent",
8603
- "[[data-slot=composer-actions]:first-child>&:first-child]:ml-[-5px]",
8604
8658
  "[&_svg:not([class*='size-'])]:size-4.5"
8605
- ]
8659
+ ],
8660
+ submit: ["rounded-chip"]
8606
8661
  } });
8607
8662
  //#endregion
8608
8663
  //#region src/components/composer/composer.tsx
@@ -8677,9 +8732,11 @@ function ComposerIconButton({ className, ...props }) {
8677
8732
  ...props
8678
8733
  });
8679
8734
  }
8680
- function ComposerSubmit({ type = "submit", ...props }) {
8735
+ function ComposerSubmit({ type = "submit", className, ...props }) {
8736
+ const { submit } = composer();
8681
8737
  return /* @__PURE__ */ jsx(Button, {
8682
8738
  ...props,
8739
+ className: submit({ className }),
8683
8740
  type,
8684
8741
  variant: "accent"
8685
8742
  });
@@ -8708,7 +8765,7 @@ const composerAttachment = tv({
8708
8765
  ],
8709
8766
  attachmentsNav: [
8710
8767
  "absolute top-1/2 z-30 -translate-y-1/2",
8711
- "size-8 shadow-none",
8768
+ "size-8 rounded-chip shadow-none",
8712
8769
  "[&_svg:not([class*='size-'])]:size-4.5"
8713
8770
  ],
8714
8771
  attachment: ["group/composer-attachment relative", "[--ca-overlay-border:1px]"],
@@ -8754,7 +8811,7 @@ const composerAttachment = tv({
8754
8811
  "[&_svg]:shrink-0",
8755
8812
  "-top-1.5 -right-1.5 size-5 rounded-sticker border-[1.5px] border-line-strong",
8756
8813
  "bg-layer-card text-foreground opacity-100",
8757
- "hover:press-overlay active:press-overlay",
8814
+ "hover:overlay-medium active:overlay-medium",
8758
8815
  "outline-none focus-visible:shadow-focus",
8759
8816
  "disabled:cursor-not-allowed disabled:border-line-hairline disabled:bg-fill-muted disabled:text-foreground-disabled",
8760
8817
  "after:absolute after:-inset-3 after:content-['']",
@@ -9276,14 +9333,14 @@ const composerSuggestionList = tv({
9276
9333
  slots: {
9277
9334
  root: [
9278
9335
  "absolute inset-x-0 bottom-full w-auto overflow-y-auto",
9279
- "mb-2 max-h-60 overflow-x-hidden rounded-container p-1.5",
9336
+ "mb-2 max-h-60 overflow-x-hidden rounded-container p-1",
9280
9337
  "bg-layer-popover text-foreground ring-1 ring-line-seam shadow-float"
9281
9338
  ],
9282
9339
  group: ["flex flex-col"],
9283
9340
  groupLabel: ["py-1.5", "px-2.5 pt-2 pb-1 font-sans text-caption font-bold text-foreground-hint"],
9284
9341
  item: [
9285
9342
  "flex w-full items-center text-left",
9286
- "min-h-9 cursor-pointer gap-2.5 rounded-control px-2.5 py-1",
9343
+ "min-h-9 cursor-pointer gap-2.5 rounded-chip px-2.5 py-1",
9287
9344
  "font-sans text-callout font-medium text-foreground",
9288
9345
  "hover:bg-brand-soft data-[highlighted=true]:bg-brand-soft",
9289
9346
  "data-[disabled=true]:cursor-default data-[disabled=true]:text-foreground-disabled",
@@ -9297,7 +9354,7 @@ const composerSuggestionList = tv({
9297
9354
  },
9298
9355
  variants: {
9299
9356
  separated: {
9300
- true: { group: ["-mx-1.5 mt-1.5 border-t border-line-hairline px-1.5 pt-1.5"] },
9357
+ true: { group: ["-mx-1 mt-1 border-t border-line-hairline px-1 pt-1"] },
9301
9358
  false: {}
9302
9359
  },
9303
9360
  iconVariant: {
@@ -9707,24 +9764,30 @@ const banner = tv({
9707
9764
  "*:data-[slot=status]:mt-[calc((var(--text-callout--line-height)-9px)/2)] *:data-[slot=status]:self-start *:data-[slot=status]:justify-self-center",
9708
9765
  "has-[>svg]:[--banner-text-col:2]",
9709
9766
  "has-[>[data-slot=status]]:[--banner-text-col:2]",
9710
- "has-[>[data-slot=banner-title]]:[--banner-desc-row:2]"
9767
+ "has-[>[data-slot=banner-title]]:[--banner-desc-row:2]",
9768
+ "has-[>[data-slot=banner-description]]:[--banner-last-row:var(--banner-desc-row,1)]",
9769
+ "has-[>[data-banner-close]]:[--banner-action-end:span_2]"
9711
9770
  ],
9712
9771
  title: [
9713
- "min-w-0 text-foreground",
9772
+ "min-w-0 wrap-break-word text-foreground",
9714
9773
  "row-start-1 font-bold",
9715
- "col-start-(--banner-text-col,1)"
9774
+ "col-start-(--banner-text-col,1)",
9775
+ "@min-[452px]:has-[~[data-slot=banner-description]~[data-slot=banner-action]:not([data-wrap])]:col-end-[span_2]"
9716
9776
  ],
9717
9777
  description: [
9718
- "min-w-0 font-normal",
9778
+ "min-w-0 wrap-break-word font-normal",
9719
9779
  "text-foreground",
9720
9780
  "col-start-(--banner-text-col,1)",
9721
9781
  "row-start-(--banner-desc-row,1)"
9722
9782
  ],
9723
9783
  action: [
9724
- "shrink-0 self-start",
9725
- "mt-2 flex flex-wrap items-center gap-2",
9726
- "col-start-(--banner-text-col,1)"
9727
- ]
9784
+ "mt-2 flex shrink-0 flex-wrap items-center justify-end gap-2 self-start",
9785
+ "col-start-(--banner-text-col,1) col-end-(--banner-action-end,-1)",
9786
+ "@min-[452px]:not-data-wrap:col-start-[calc(var(--banner-text-col,1)+1)] @min-[452px]:not-data-wrap:col-end-auto",
9787
+ "@min-[452px]:not-data-wrap:row-start-(--banner-last-row,1)",
9788
+ "@min-[452px]:not-data-wrap:mt-0 @min-[452px]:not-data-wrap:h-lh @min-[452px]:not-data-wrap:flex-nowrap @min-[452px]:not-data-wrap:self-end"
9789
+ ],
9790
+ close: ["col-start-[calc(var(--banner-text-col,1)+1)] row-start-1 self-start", "-my-[calc((--spacing(8)-1lh)/2)] -me-icon-inset"]
9728
9791
  },
9729
9792
  variants: {
9730
9793
  status: {
@@ -9745,8 +9808,18 @@ const banner = tv({
9745
9808
  lg: { root: ["px-4 py-3.5"] }
9746
9809
  }
9747
9810
  },
9748
- defaultVariants: { size: "md" }
9811
+ defaultVariants: { size: "md" },
9812
+ compoundVariants: [{
9813
+ size: "sm",
9814
+ class: { root: "has-[>[data-slot=banner-action]]:py-[calc((--spacing(8)-1lh)/2+--spacing(1))]" }
9815
+ }]
9749
9816
  });
9817
+ /**
9818
+ * A short notice people read before they act, on a soft tint that says its
9819
+ * intent. Compose it from a leading icon, `BannerTitle`, `BannerDescription`,
9820
+ * and either `BannerAction` (its button) or `BannerClose` (a × when there is no
9821
+ * button).
9822
+ */
9750
9823
  function Banner({ status, size = "md", className, render, ...props }) {
9751
9824
  const { root } = banner({
9752
9825
  status,
@@ -9787,16 +9860,114 @@ function BannerDescription({ render, className, ...props }) {
9787
9860
  state: { slot: "banner-description" }
9788
9861
  });
9789
9862
  }
9790
- function BannerAction({ render, className, ...props }) {
9863
+ function lineCount(element) {
9864
+ const lineHeight = Number.parseFloat(getComputedStyle(element).lineHeight);
9865
+ if (!(lineHeight > 0)) return 1;
9866
+ return Math.round(element.getBoundingClientRect().height / lineHeight);
9867
+ }
9868
+ function contentWidth(element) {
9869
+ const range = document.createRange();
9870
+ range.selectNodeContents(element);
9871
+ return range.getBoundingClientRect().width;
9872
+ }
9873
+ function useWrapsBesideText(action) {
9874
+ const [wraps, setWraps] = useState(false);
9875
+ useLayoutEffect(() => {
9876
+ const root = action?.parentElement;
9877
+ if (!action || !root || typeof ResizeObserver === "undefined") return;
9878
+ const measure = () => {
9879
+ const text = root.querySelector(":scope > [data-slot=banner-description]") ?? root.querySelector(":scope > [data-slot=banner-title]");
9880
+ if (!text) {
9881
+ setWraps(false);
9882
+ return;
9883
+ }
9884
+ if (root.querySelector(":scope > [data-banner-close]")) {
9885
+ setWraps(true);
9886
+ return;
9887
+ }
9888
+ const lines = lineCount(text);
9889
+ if (!action.hasAttribute("data-wrap")) {
9890
+ if (lines > 1) setWraps(true);
9891
+ return;
9892
+ }
9893
+ if (lines > 1) return;
9894
+ const gap = Number.parseFloat(getComputedStyle(root).columnGap) || 0;
9895
+ if (contentWidth(text) + contentWidth(action) + gap + 1 <= text.getBoundingClientRect().width) setWraps(false);
9896
+ };
9897
+ let frame = 0;
9898
+ const schedule = () => {
9899
+ cancelAnimationFrame(frame);
9900
+ frame = requestAnimationFrame(measure);
9901
+ };
9902
+ measure();
9903
+ const resize = new ResizeObserver(schedule);
9904
+ resize.observe(root);
9905
+ for (const child of root.children) resize.observe(child);
9906
+ const mutation = new MutationObserver(schedule);
9907
+ mutation.observe(root, {
9908
+ childList: true,
9909
+ characterData: true,
9910
+ subtree: true
9911
+ });
9912
+ const fonts = typeof document.fonts === "undefined" ? void 0 : document.fonts;
9913
+ let live = true;
9914
+ fonts?.ready.then(() => {
9915
+ if (live) schedule();
9916
+ });
9917
+ fonts?.addEventListener("loadingdone", schedule);
9918
+ return () => {
9919
+ live = false;
9920
+ cancelAnimationFrame(frame);
9921
+ resize.disconnect();
9922
+ mutation.disconnect();
9923
+ fonts?.removeEventListener("loadingdone", schedule);
9924
+ };
9925
+ }, [action]);
9926
+ useLayoutEffect(() => {
9927
+ if (process.env.NODE_ENV === "production") return;
9928
+ if (action?.parentElement?.querySelector(":scope > [data-banner-close]")) console.warn("raft-ui: a Banner has both BannerAction and BannerClose. Use BannerClose only on a banner with no button; close one that has a button with a ghost Dismiss button in BannerAction.");
9929
+ }, [action]);
9930
+ return wraps;
9931
+ }
9932
+ /**
9933
+ * The banner's buttons: at the end of the last line of text, centered on it,
9934
+ * while the text fits beside them on one line; on a line of their own under the
9935
+ * text, aligned to the end, when it doesn't or the banner is narrower than
9936
+ * 480px.
9937
+ */
9938
+ function BannerAction({ render, className, ref, ...props }) {
9791
9939
  const { action } = banner();
9792
- const defaultProps = { className: action({ className }) };
9940
+ const [element, setElement] = useState(null);
9941
+ const wraps = useWrapsBesideText(element);
9942
+ const defaultProps = {
9943
+ className: action({ className }),
9944
+ ...wraps ? { "data-wrap": "" } : {}
9945
+ };
9793
9946
  return useRender({
9794
9947
  defaultTagName: "div",
9795
9948
  render,
9949
+ ref: ref ? [ref, setElement] : setElement,
9796
9950
  props: mergeProps(defaultProps, props),
9797
9951
  state: { slot: "banner-action" }
9798
9952
  });
9799
9953
  }
9954
+ /**
9955
+ * The × of a banner that has no button: a frameless icon button at the end of
9956
+ * the first line, centered on it, its icon box ending on the banner's padding.
9957
+ * Never put it in `BannerAction`.
9958
+ */
9959
+ function BannerClose({ className, children, "aria-label": ariaLabel = "Dismiss", ...props }) {
9960
+ const { close } = banner();
9961
+ return /* @__PURE__ */ jsx(Button, {
9962
+ ...props,
9963
+ variant: "ghost",
9964
+ size: "icon-sm",
9965
+ "aria-label": ariaLabel,
9966
+ "data-banner-close": "",
9967
+ className: close({ className }),
9968
+ children: children ?? /* @__PURE__ */ jsx(X, {})
9969
+ });
9970
+ }
9800
9971
  //#endregion
9801
9972
  //#region src/components/empty-state/empty-state.tsx
9802
9973
  const emptyState = tv({ slots: {
@@ -9903,7 +10074,7 @@ const notificationCenter = tv({
9903
10074
  "relative inline-flex size-10 items-center justify-center overflow-visible p-0",
9904
10075
  "rounded-control border-[1.5px] border-transparent bg-transparent text-foreground-on-frame",
9905
10076
  "select-none outline-none",
9906
- "hover:bg-fill-frame-pressed active:bg-fill-frame-pressed data-popup-open:bg-fill-frame-pressed",
10077
+ "hover:bg-fill-frame-medium active:bg-fill-frame-medium data-popup-open:bg-fill-frame-medium",
9907
10078
  "focus-visible:shadow-focus",
9908
10079
  "[&_svg]:size-5 [&_svg]:shrink-0"
9909
10080
  ],
@@ -10753,9 +10924,9 @@ const tabs = tv({
10753
10924
  tab: [
10754
10925
  "h-8 justify-center gap-1.5 rounded-control border-[1.5px] border-transparent px-3",
10755
10926
  "after:inset-x-0 after:-inset-y-1.5",
10756
- "hover:bg-fill-pressed active:bg-fill-pressed",
10927
+ "hover:bg-fill-medium active:bg-fill-medium",
10757
10928
  "data-active:border-sticker-ink data-active:bg-brand data-active:font-bold data-active:text-sticker-ink data-active:ring-[1.5px] data-active:ring-sticker-edge",
10758
- "data-active:active:press-overlay-sticker",
10929
+ "data-active:active:overlay-sticker-medium",
10759
10930
  "data-disabled:bg-transparent"
10760
10931
  ]
10761
10932
  },
@@ -11159,7 +11330,7 @@ const panelActionBase = tv({ base: [
11159
11330
  "px-2 md:pointer-fine:px-[5px]",
11160
11331
  "after:absolute after:-inset-control-hit",
11161
11332
  "text-foreground",
11162
- "hover:bg-fill-pressed active:bg-fill-pressed",
11333
+ "hover:bg-fill-medium active:bg-fill-medium",
11163
11334
  "focus-visible:shadow-focus",
11164
11335
  "[&>svg]:size-control-icon",
11165
11336
  controlIconInset
@@ -11172,7 +11343,7 @@ const panelAction = tv({
11172
11343
  "gap-1.5 text-control font-bold",
11173
11344
  "disabled:bg-transparent disabled:text-foreground-disabled disabled:opacity-100",
11174
11345
  "aria-pressed:border-sticker-ink aria-pressed:bg-brand aria-pressed:text-sticker-ink aria-pressed:ring-[1.5px] aria-pressed:ring-sticker-edge",
11175
- "aria-pressed:active:press-overlay-sticker"
11346
+ "aria-pressed:active:overlay-sticker-medium"
11176
11347
  ]
11177
11348
  });
11178
11349
  const panelToggleAction = tv({
@@ -11182,7 +11353,7 @@ const panelToggleAction = tv({
11182
11353
  "gap-1.5 text-control font-bold",
11183
11354
  "data-disabled:bg-transparent data-disabled:text-foreground-disabled data-disabled:opacity-100",
11184
11355
  "data-pressed:border-sticker-ink data-pressed:bg-brand data-pressed:text-sticker-ink data-pressed:ring-[1.5px] data-pressed:ring-sticker-edge",
11185
- "data-pressed:active:press-overlay-sticker"
11356
+ "data-pressed:active:overlay-sticker-medium"
11186
11357
  ]
11187
11358
  });
11188
11359
  //#endregion
@@ -11229,6 +11400,7 @@ function AppShellRoot({ className, defaultSidebarOpen = true, onSidebarOpenChang
11229
11400
  const { root } = appShell();
11230
11401
  const [uncontrolledSidebarOpen, setUncontrolledSidebarOpen] = useState(defaultSidebarOpen);
11231
11402
  const [sidebarWidth, setSidebarWidth] = useState(0);
11403
+ const [sidebarId, setSidebarId] = useState(void 0);
11232
11404
  const sidebarOpen = sidebarOpenProp ?? uncontrolledSidebarOpen;
11233
11405
  const setSidebarOpen = useCallback((open) => {
11234
11406
  if (sidebarOpenProp === void 0) setUncontrolledSidebarOpen(open);
@@ -11245,6 +11417,8 @@ function AppShellRoot({ className, defaultSidebarOpen = true, onSidebarOpenChang
11245
11417
  collapsible: sidebarCollapsible,
11246
11418
  open: sidebarOpen,
11247
11419
  setOpen: setSidebarOpen,
11420
+ sidebarId,
11421
+ setSidebarId,
11248
11422
  sidebarWidth,
11249
11423
  setSidebarWidth: setMeasuredSidebarWidth,
11250
11424
  toggle: toggleSidebar
@@ -11252,6 +11426,7 @@ function AppShellRoot({ className, defaultSidebarOpen = true, onSidebarOpenChang
11252
11426
  setMeasuredSidebarWidth,
11253
11427
  setSidebarOpen,
11254
11428
  sidebarCollapsible,
11429
+ sidebarId,
11255
11430
  sidebarOpen,
11256
11431
  sidebarWidth,
11257
11432
  toggleSidebar
@@ -11288,12 +11463,16 @@ function AppShellRailSlot({ className, render, ...props }) {
11288
11463
  props: mergeProps(defaultProps, props)
11289
11464
  });
11290
11465
  }
11291
- function AppShellSidebarSlot({ className, render, ...props }) {
11466
+ function AppShellSidebarSlot({ className, id: idProp, render, ...props }) {
11292
11467
  const { sidebarSlot } = appShell();
11293
11468
  const sidebar = useOptionalAppShellSidebar();
11294
11469
  const elementRef = useRef(null);
11295
11470
  const isCollapsible = sidebar?.collapsible ?? false;
11471
+ const collapsed = isCollapsible && !sidebar?.open;
11296
11472
  const setSidebarWidth = sidebar?.setSidebarWidth;
11473
+ const setSidebarId = sidebar?.setSidebarId;
11474
+ const generatedId = useId();
11475
+ const id = idProp ?? (isCollapsible ? generatedId : void 0);
11297
11476
  const setElementRef = useCallback((element) => {
11298
11477
  elementRef.current = element;
11299
11478
  }, []);
@@ -11306,22 +11485,34 @@ function AppShellSidebarSlot({ className, render, ...props }) {
11306
11485
  observer.observe(sidebarElement);
11307
11486
  return () => observer.disconnect();
11308
11487
  }, [isCollapsible, setSidebarWidth]);
11488
+ useLayoutEffect(() => {
11489
+ if (!isCollapsible || !setSidebarId) return;
11490
+ setSidebarId(id);
11491
+ return () => setSidebarId(void 0);
11492
+ }, [
11493
+ id,
11494
+ isCollapsible,
11495
+ setSidebarId
11496
+ ]);
11309
11497
  const defaultProps = {
11310
- "aria-hidden": sidebar?.collapsible && !sidebar.open ? true : void 0,
11498
+ "aria-hidden": collapsed ? true : void 0,
11311
11499
  "data-slot": "app-shell-sidebar-slot",
11500
+ id,
11501
+ inert: collapsed ? true : void 0,
11312
11502
  className: sidebarSlot({ className: cn(className, sidebar?.collapsible && [
11313
11503
  "will-change-[opacity]",
11314
11504
  "transition-opacity duration-160 ease-slide",
11315
11505
  "motion-reduce:transition-none",
11506
+ "group-data-[state=expanded]/app-shell:relative group-data-[state=expanded]/app-shell:z-1",
11316
11507
  "group-data-[state=collapsed]/app-shell:pointer-events-none",
11317
11508
  "group-data-[state=collapsed]/app-shell:opacity-0",
11318
11509
  "group-data-[state=collapsed]/app-shell:duration-120"
11319
- ]) }),
11320
- ref: setElementRef
11510
+ ]) })
11321
11511
  };
11322
11512
  return useRender({
11323
11513
  defaultTagName: "aside",
11324
11514
  render,
11515
+ ref: setElementRef,
11325
11516
  props: mergeProps(defaultProps, props)
11326
11517
  });
11327
11518
  }
@@ -11352,10 +11543,14 @@ function AppShellOverlaySlot({ className, render, ...props }) {
11352
11543
  function AppShellMainSlot({ className, overlay = false, render, ...props }) {
11353
11544
  const { mainSlot } = appShell({ overlay });
11354
11545
  const sidebar = useOptionalAppShellSidebar();
11546
+ const collapsible = sidebar?.collapsible ?? false;
11547
+ const sliding = useSidebarSlide(collapsible, sidebar?.open ?? true);
11355
11548
  const defaultProps = {
11356
11549
  "data-slot": "app-shell-main-slot",
11357
- className: mainSlot({ className: cn(className, sidebar?.collapsible && [
11358
- "absolute inset-y-0 right-0 left-0 z-45",
11550
+ "data-sliding": sliding.active ? "" : void 0,
11551
+ className: mainSlot({ className: cn(className, collapsible && [
11552
+ "absolute inset-y-0 right-0 left-0",
11553
+ "data-sliding:z-2",
11359
11554
  "transition-[left] duration-220 ease-slide",
11360
11555
  "motion-reduce:transition-none",
11361
11556
  "group-data-[state=collapsed]/app-shell:-left-(--app-shell-sidebar-width)"
@@ -11364,9 +11559,48 @@ function AppShellMainSlot({ className, overlay = false, render, ...props }) {
11364
11559
  return useRender({
11365
11560
  defaultTagName: "main",
11366
11561
  render,
11562
+ ref: sliding.ref,
11367
11563
  props: mergeProps(defaultProps, props)
11368
11564
  });
11369
11565
  }
11566
+ function useSidebarSlide(collapsible, open) {
11567
+ const elementRef = useRef(null);
11568
+ const [slide, setSlide] = useState({
11569
+ active: false,
11570
+ open
11571
+ });
11572
+ if (slide.open !== open) setSlide({
11573
+ active: collapsible,
11574
+ open
11575
+ });
11576
+ const active = slide.active;
11577
+ const ref = useCallback((element) => {
11578
+ elementRef.current = element;
11579
+ }, []);
11580
+ useEffect(() => {
11581
+ if (!active) return;
11582
+ const transitions = elementRef.current?.getAnimations?.().filter((animation) => "transitionProperty" in animation && animation.transitionProperty === "left" && animation.effect?.getComputedTiming().activeDuration !== 0) ?? [];
11583
+ let current = true;
11584
+ const settle = () => {
11585
+ if (current) setSlide((state) => state.open === open ? {
11586
+ active: false,
11587
+ open
11588
+ } : state);
11589
+ };
11590
+ if (transitions.length === 0) {
11591
+ settle();
11592
+ return;
11593
+ }
11594
+ Promise.allSettled(transitions.map((transition) => transition.finished)).then(settle);
11595
+ return () => {
11596
+ current = false;
11597
+ };
11598
+ }, [active, open]);
11599
+ return {
11600
+ active,
11601
+ ref
11602
+ };
11603
+ }
11370
11604
  function AppShellSidebarTrigger(props) {
11371
11605
  const sidebar = useOptionalAppShellSidebar();
11372
11606
  if (!sidebar?.collapsible) return null;
@@ -11376,11 +11610,12 @@ function AppShellSidebarTrigger(props) {
11376
11610
  });
11377
11611
  }
11378
11612
  function AppShellSidebarTriggerButton({ sidebar, className, children, onClick, render, ...props }) {
11379
- const label = sidebar.open ? "Collapse sidebar" : "Expand sidebar";
11613
+ const label = sidebar.open ? "Collapse Sidebar" : "Expand Sidebar";
11380
11614
  const defaultProps = {
11381
11615
  className: cn("group/app-shell-sidebar-trigger max-md:hidden", className),
11382
11616
  "aria-label": label,
11383
- "aria-pressed": sidebar.open,
11617
+ "aria-controls": sidebar.sidebarId,
11618
+ "aria-expanded": sidebar.open,
11384
11619
  "data-state": sidebar.open ? "expanded" : "collapsed",
11385
11620
  title: label,
11386
11621
  children,
@@ -11402,12 +11637,12 @@ const resizable = tv({ slots: {
11402
11637
  panel: ["min-h-0 min-w-0"],
11403
11638
  handle: [
11404
11639
  "right-0 z-10 cursor-ew-resize touch-none select-none",
11405
- "relative -ml-1.5 -mr-1.5 flex w-3 shrink-0 items-center justify-center",
11640
+ "relative -ml-1.5 -mr-1.5 flex w-3 shrink-0 items-center justify-center pointer-coarse:-ml-3 pointer-coarse:-mr-3 pointer-coarse:w-6",
11406
11641
  "before:pointer-events-none before:absolute before:transition-colors before:content-['']",
11407
11642
  "focus-visible:outline-none focus-visible:before:outline-2 focus-visible:before:outline-offset-2 focus-visible:before:outline-foreground",
11408
11643
  "data-[orientation=horizontal]:-mt-1.5 data-[orientation=horizontal]:-mb-1.5 data-[orientation=horizontal]:ml-0 data-[orientation=horizontal]:mr-0 data-[orientation=horizontal]:h-3 data-[orientation=horizontal]:w-full data-[orientation=horizontal]:cursor-ns-resize",
11409
11644
  "bg-transparent",
11410
- "before:top-0 before:left-[5px] before:h-full before:w-px before:translate-none before:rounded-none",
11645
+ "before:top-0 before:left-[5px] pointer-coarse:before:left-[11px] before:h-full before:w-px before:translate-none before:rounded-none",
11411
11646
  "before:bg-transparent",
11412
11647
  "hover:before:bg-foreground-muted",
11413
11648
  "data-[separator=active]:before:bg-foreground-muted",
@@ -12323,7 +12558,7 @@ const taskCardStatus = tv({ base: [
12323
12558
  "[&:not(:has([data-slot=task-card-status-label]))]:hidden",
12324
12559
  "**:data-[slot=task-card-status-label]:inline-flex **:data-[slot=task-card-status-label]:items-center [&_[data-slot=task-card-status-label]]:gap-1.5",
12325
12560
  "[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg]:size-3 [&_svg:not([data-slot=task-status-icon])]:-mx-0.5 [&_svg[data-slot=task-status-icon]]:size-[9px]",
12326
- "[button&]:cursor-pointer [button&]:enabled:hover:press-overlay [button&]:enabled:active:press-overlay",
12561
+ "[button&]:cursor-pointer [button&]:enabled:hover:overlay-medium [button&]:enabled:active:overlay-medium",
12327
12562
  "disabled:cursor-default disabled:opacity-100",
12328
12563
  "focus-visible:shadow-focus"
12329
12564
  ] });
@@ -12338,7 +12573,7 @@ const taskCard = tv({ slots: {
12338
12573
  "group-data-[dragging=true]/task-draggable:transform-none",
12339
12574
  "motion-reduce:transform-none motion-reduce:transition-none",
12340
12575
  "rounded-container border border-line-hairline bg-layer-card p-3 text-foreground shadow-none",
12341
- "data-[interactive=true]:hover:press-overlay data-[interactive=true]:active:press-overlay",
12576
+ "data-[interactive=true]:hover:overlay-subtle data-[interactive=true]:active:overlay-medium",
12342
12577
  "data-[disabled=true]:bg-fill-muted data-[disabled=true]:opacity-100",
12343
12578
  "group-data-[dragging=true]/task-draggable:shadow-float"
12344
12579
  ],
@@ -15460,8 +15695,7 @@ const taskChip = tv({
15460
15695
  "rounded-chip border-0",
15461
15696
  "font-sans font-semibold text-foreground",
15462
15697
  "[&>svg:not([data-slot=task-status-icon])]:-mx-0.5 [&>svg[data-slot=task-status-icon]]:size-[9px]",
15463
- "hover:brightness-100",
15464
- "[a,button]:cursor-pointer [a,button]:hover:press-overlay [a,button]:active:press-overlay",
15698
+ "[a,button]:cursor-pointer [a,button]:hover:overlay-medium [a,button]:active:overlay-medium",
15465
15699
  "focus-visible:outline-none focus-visible:shadow-focus"
15466
15700
  ] },
15467
15701
  variants: {
@@ -15493,7 +15727,7 @@ const taskChip = tv({
15493
15727
  ],
15494
15728
  class: { root: [
15495
15729
  "items-baseline gap-1.5 rounded-full border py-0 pr-2 pl-1 align-baseline",
15496
- "[font-size:inherit] leading-[1.2em] font-[450] hover:brightness-100",
15730
+ "[font-size:inherit] leading-[1.2em] font-[450]",
15497
15731
  "[&>svg]:size-[0.857em] [&>svg]:self-center"
15498
15732
  ] }
15499
15733
  },
@@ -15945,8 +16179,8 @@ const inboxItem = tv({
15945
16179
  "[[data-slot=inbox-item]+&]:before:block has-data-[slot=inbox-item-selection]:before:left-11",
15946
16180
  "has-data-[slot=inbox-item-leading]:before:left-16",
15947
16181
  "has-data-[slot=inbox-item-selection]:has-data-[slot=inbox-item-leading]:before:left-23",
15948
- "hover:bg-fill-row-hover",
15949
- "not-data-[active=true]:data-popup-open:bg-fill-row-open not-data-[active=true]:has-data-popup-open:bg-fill-row-open",
16182
+ "hover:bg-fill-subtle not-data-[active=true]:active:bg-fill-medium",
16183
+ "not-data-[active=true]:data-popup-open:bg-fill-subtle not-data-[active=true]:has-data-popup-open:bg-fill-subtle",
15950
16184
  "data-[active=true]:bg-info-soft data-[active=true]:hover:bg-info-soft",
15951
16185
  "data-disabled:pointer-events-none data-disabled:hover:bg-transparent",
15952
16186
  "has-[[data-slot=inbox-item-open]:focus-visible]:keyboard:inset-ring-2 has-[[data-slot=inbox-item-open]:focus-visible]:keyboard:inset-ring-foreground",
@@ -16027,7 +16261,7 @@ const inboxItem = tv({
16027
16261
  "[&>[data-slot=panel-toggle-action][data-pressed]]:border-transparent",
16028
16262
  "[&>[data-slot=panel-toggle-action][data-pressed]]:bg-transparent",
16029
16263
  "[&>[data-slot=panel-toggle-action][data-pressed]]:text-foreground",
16030
- "[&>[data-slot=panel-toggle-action][data-pressed]]:hover:bg-fill-pressed",
16264
+ "[&>[data-slot=panel-toggle-action][data-pressed]]:hover:bg-fill-medium [&>[data-slot=panel-toggle-action][data-pressed]]:active:bg-fill-medium",
16031
16265
  "pointer-coarse:gap-3",
16032
16266
  "pointer-coarse:*:data-[slot=panel-action]:after:absolute pointer-coarse:*:data-[slot=panel-action]:after:-inset-1.5",
16033
16267
  "pointer-coarse:*:data-[slot=panel-toggle-action]:after:absolute pointer-coarse:*:data-[slot=panel-toggle-action]:after:-inset-1.5"
@@ -16431,8 +16665,8 @@ const searchEntity = tv({ slots: {
16431
16665
  "relative rounded-none border-0 bg-transparent px-4 py-3 text-foreground shadow-none",
16432
16666
  "max-md:min-h-16",
16433
16667
  "not-first:before:absolute not-first:before:top-0 not-first:before:right-0 not-first:before:left-[55px] not-first:before:border-t not-first:before:border-line-hairline",
16434
- "hover:bg-fill-row-hover active:bg-fill-pressed",
16435
- "not-data-[selected=true]:data-popup-open:bg-fill-row-open",
16668
+ "hover:bg-fill-subtle active:bg-fill-medium",
16669
+ "not-data-[selected=true]:data-popup-open:bg-fill-subtle",
16436
16670
  "disabled:cursor-default disabled:hover:bg-transparent disabled:active:bg-transparent",
16437
16671
  "data-[selected=true]:bg-brand-soft data-[selected=true]:hover:bg-brand-soft",
16438
16672
  "outline-none focus-visible:keyboard:inset-ring-2 focus-visible:keyboard:inset-ring-foreground"
@@ -16571,8 +16805,8 @@ const searchMessage = tv({ slots: {
16571
16805
  "w-full text-left transition-colors",
16572
16806
  "relative block rounded-none border-0 bg-transparent px-4 py-3 text-foreground shadow-none",
16573
16807
  "not-first:before:absolute not-first:before:top-0 not-first:before:right-0 not-first:before:left-4 not-first:before:border-t not-first:before:border-line-hairline",
16574
- "hover:bg-fill-row-hover active:bg-fill-pressed",
16575
- "not-data-[selected=true]:data-popup-open:bg-fill-row-open",
16808
+ "hover:bg-fill-subtle active:bg-fill-medium",
16809
+ "not-data-[selected=true]:data-popup-open:bg-fill-subtle",
16576
16810
  "disabled:cursor-default disabled:hover:bg-transparent disabled:active:bg-transparent",
16577
16811
  "data-[selected=true]:bg-brand-soft data-[selected=true]:hover:bg-brand-soft",
16578
16812
  "outline-none focus-visible:keyboard:inset-ring-2 focus-visible:keyboard:inset-ring-foreground"
@@ -16804,7 +17038,7 @@ const searchTrigger = tv({ slots: {
16804
17038
  "rounded-control border-[1.5px] border-line-field bg-layer-card",
16805
17039
  "text-left font-sans text-body font-normal text-foreground-hint",
16806
17040
  "select-none outline-none transition-colors duration-100",
16807
- "hover:press-overlay active:press-overlay focus-visible:shadow-focus",
17041
+ "active:overlay-medium focus-visible:shadow-focus",
16808
17042
  "disabled:cursor-not-allowed disabled:border-line-hairline disabled:bg-fill-muted disabled:bg-none disabled:text-foreground-disabled",
16809
17043
  "aria-disabled:cursor-not-allowed aria-disabled:border-line-hairline aria-disabled:bg-fill-muted aria-disabled:bg-none aria-disabled:text-foreground-disabled",
16810
17044
  "[&_svg]:pointer-events-none [&_svg]:shrink-0 [&>svg:not([class*='size-'])]:size-[18px]"
@@ -17090,4 +17324,4 @@ function ThemeProvider({ mode, defaultMode = "light", onModeChange, storageKey,
17090
17324
  });
17091
17325
  }
17092
17326
  //#endregion
17093
- export { ActivityInboxControls, ActivityInboxLoadingMore, ActivityInboxPanel, ActivityInboxSelectionCount, ActivityInboxSelectionToolbar, ActivityInboxSidebar, ActivityInboxViewport, AlertDialog, AlertDialogAction, AlertDialogBody, AlertDialogCancel, AlertDialogClose, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AppRailFooter, AppRailHeader, AppRailItem, AppRailItemAttention, AppRailItemBadge, AppRailItemIcon, AppRailItemIndicator, AppRailItemLabel, AppRailNav, AppRailRoot, AppShellMainSlot, AppShellOverlaySlot, AppShellPanelSlot, AppShellRailSlot, AppShellRoot, AppShellSidebarSlot, AppShellSidebarTrigger, Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, Badge, Banner, BannerAction, BannerDescription, BannerTitle, Button, Card, CardContent, CardDescription, CardFooter, CardHeader, CardLeading, CardTitle, CardTrailing, ChatIcon, Checkbox, CheckboxIndicator, CodeBlock, CodeBlockAction, CodeBlockActions, CodeBlockBody, CodeBlockHeader, CodeBlockTitle, Combobox, ComboboxChip, ComboboxChipRemove, ComboboxChips, ComboboxClear, ComboboxCollection, ComboboxContent, ComboboxControl, ComboboxEmpty, ComboboxGroup, ComboboxGroupLabel, ComboboxHeader, ComboboxInput, ComboboxInputGroup, ComboboxItem, ComboboxItemIndicator, ComboboxLabel, ComboboxList, ComboboxPopup, ComboboxPortal, ComboboxRow, ComboboxSeparator, ComboboxTrigger, ComboboxTriggerCount, ComboboxTriggerIndicator, ComboboxValue, Composer, ComposerActions, ComposerAttachment, ComposerAttachmentBody, ComposerAttachmentFailedOverlay, ComposerAttachmentFile, ComposerAttachmentImage, ComposerAttachmentMeta, ComposerAttachmentRemove, ComposerAttachmentTitle, ComposerAttachmentUploadProgressBar, ComposerAttachmentUploadingOverlay, ComposerAttachments, ComposerAttachmentsScrollArea, ComposerDropOverlay, ComposerDropOverlayLabel, ComposerDropOverlayPrompt, ComposerIconButton, ComposerInput, ComposerMeta, ComposerRoot, ComposerSubmit, ComposerSuggestionAside, ComposerSuggestionContent, ComposerSuggestionGroup, ComposerSuggestionGroupLabel, ComposerSuggestionIcon, ComposerSuggestionList, ComposerSuggestionMeta, ComposerSuggestionOption, ComposerSuggestionTitle, ComposerToolbar, ComposerToolbarLabel, ContextMenu, ContextMenuCheckboxItem, ContextMenuCheckboxItemIndicator, ContextMenuContent, ContextMenuFooter, ContextMenuItem, ContextMenuItemLabel, ContextMenuLabel, ContextMenuPopup, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuRadioItemIndicator, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSubmenu, ContextMenuSubmenuTrigger, ContextMenuTrigger, ConversationPanelBody, ConversationPanelContent, ConversationPanelEmptyState, ConversationPanelEmptyStateBrand, ConversationPanelEmptyStateBrandMark, ConversationPanelFooter, ConversationPanelRoot, ConversationPanelTabs, CopyableCode, CopyableCodeAction, CopyableCodeRoot, DescriptionDetails, DescriptionItem, DescriptionList, DescriptionTerm, Dialog, DialogBody, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogNav, DialogOverlay, DialogPortal, DialogSurface, DialogTitle, DialogTrigger, DirectMessageIcon, Drawer, DrawerActions, DrawerBody, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuCheckboxItemIndicator, DropdownMenuContent, DropdownMenuFooter, DropdownMenuItem, DropdownMenuItemCount, DropdownMenuItemLabel, DropdownMenuLabel, DropdownMenuPopup, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuRadioItemIndicator, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSubmenu, DropdownMenuSubmenuTrigger, DropdownMenuTrigger, EmptyState, EmptyStateActions, EmptyStateContent, EmptyStateDescription, EmptyStateIcon, EmptyStateTitle, Field, FieldControl, FieldDescription, FieldError, FieldItem, FieldLabel, FieldValidity, FileAction, FileActions, FileContent, FileImage, FileMeta, FileMetaItem, FileName, FilePreview, FilePreviewBadge, FilePreviewCode, FilePreviewDocument, FilePreviewFile, FilePreviewMedia, FileRow, FileRowOpen, FileThumbnail, FilesList, FilesPanel, FilesViewport, FloatButton, FloatButtonGroup, FormSection, IconTile, InboxItem, InboxItemActions, InboxItemBody, InboxItemContent, InboxItemContext, InboxItemHeading, InboxItemHoverTarget, InboxItemLeading, InboxItemMarks, InboxItemMessage, InboxItemMetadata, InboxItemSelection, InboxItemSender, InboxItemSubtitle, InboxItemTimestamp, InboxItemTitle, InboxItemTrailing, InboxItemTrigger, InlineCode, Input, InputGroup, InputGroupAddon, InputGroupInput, Kbd, KbdGroup, Label, LabelAsterisk, LabelOptional, LabelSub, LegacyTaskPanelActions, LegacyTaskPanelBody, LegacyTaskPanelField, LegacyTaskPanelFieldLabel, LegacyTaskPanelFieldText, LegacyTaskPanelFieldTitle, LegacyTaskPanelHeader, LegacyTaskPanelIcon, LegacyTaskPanelMeta, LegacyTaskPanelMetaLabel, LegacyTaskPanelMetaRow, LegacyTaskPanelMetaValue, LegacyTaskPanelRoot, LegacyTaskPanelSection, LegacyTaskPanelStatus, LegacyTaskPanelTitle, LegacyTaskPanelTitleMeta, Lightbox, LightboxActions, LightboxClose, LightboxContent, LightboxHeader, LightboxHeaderLabel, LightboxHeaderMeta, LightboxInfoActions, LightboxInfoBar, LightboxInfoDock, LightboxInfoTitle, LightboxMedia, LightboxNavigationButton, LightboxPortal, LightboxStage, LightboxThumbnail, LightboxThumbnailStrip, LightboxTitle, LightboxToolbar, LightboxTrigger, ListRow, ListRowBody, ListRowBottom, ListRowChevron, ListRowDescription, ListRowGroup, ListRowIcon, ListRowMeta, ListRowTitle, ListRowTop, ListRowValue, LiveAgentActivityBar, LiveAgentActivityBarAvatar, LiveAgentActivityBarContent, LiveAgentActivityBarRow, LiveAgentActivityBarStatus, LiveAgentActivityBarText, MarkdownBlockquote, MarkdownCell, MarkdownCheckbox, MarkdownHeaderCell, MarkdownHeading, MarkdownImage, MarkdownInlineCode, MarkdownLink, MarkdownList, MarkdownListItem, MarkdownMark, MarkdownOrderedList, MarkdownParagraph, MarkdownRule, MarkdownTable, MarkdownTableRow, MarkdownTableScroll, MessageActionCard, MessageActionCardActions, MessageActionCardActionsNote, MessageActionCardCollapseTrigger, MessageActionCardCompletion, MessageActionCardContent, MessageActionCardHeader, MessageActionCardHeaderDescription, MessageActionCardHeaderIcon, MessageActionCardHeaderStatus, MessageActionCardHeaderTitle, MessageActionCardHint, MessageActionCardHintLabel, MessageActionCardNotice, MessageActionCardProperties, MessageActionCardProperty, MessageActionCardPropertyLabel, MessageActionCardPropertyValue, MessageActionCardScope, MessageActionCardScopeDescription, MessageActionCardScopeList, MessageActionCardScopeListLabel, MessageActionCardScopeListViewport, MessageActionCardScopeName, MessageActionCardStatus, MessageAttachmentAction, MessageAttachmentCard, MessageAttachmentCommentSummary, MessageAttachmentDiffAddition, MessageAttachmentDiffDeletion, MessageAttachmentDiffSummary, MessageAttachmentGroup, MessageAttachmentMeta, MessageAttachmentMetaEnd, MessageAttachmentMetaStart, MessageAttachmentSummary, MessageAttachmentTitle, MessageEmbed, MessageEmbedContent, MessageEmbedFooter, MessageEmbedHeader, MessageForwardedBundle, MessageForwardedBundleAttachment, MessageForwardedBundleAttachmentMeta, MessageForwardedBundleAttachmentName, MessageForwardedBundleAttachments, MessageForwardedBundleFooter, MessageForwardedBundleFooterAction, MessageForwardedBundleGallery, MessageForwardedBundleGalleryTile, MessageForwardedBundleHeader, MessageForwardedBundleHeaderContent, MessageForwardedBundleHeaderCount, MessageForwardedBundleHeaderLabel, MessageForwardedBundleItem, MessageForwardedBundleItemAuthor, MessageForwardedBundleItemContent, MessageForwardedBundleItemMeta, MessageForwardedBundleItems, MessageForwardedBundleSource, MessageForwardedBundleSourceLabel, MessageIcon, MessageImageGallery, MessageImageGalleryAction, MessageImageGalleryItem, MessageImageGalleryMedia, MessageImageGalleryOverlay, MessageImageGalleryPreview, MessageImageGalleryRow, MessageItem, MessageItemAttachments, MessageItemAvatarSlot, MessageItemBadge, MessageItemBadgeSeparator, MessageItemBody, MessageItemContent, MessageItemContinuationTime, MessageItemEdited, MessageItemEmbedded, MessageItemFooter, MessageItemGutter, MessageItemHeader, MessageItemInlineStatus, MessageItemMeta, MessageItemReadReceipt, MessageItemSavedIndicator, MessageItemSearchMatch, MessageItemSender, MessageItemSenderBadges, MessageItemSenderButton, MessageItemSenderGroup, MessageItemTime, MessageItemToolbar, MessageItemToolbarButton, MessageItemTranslationAction, MessageItemTranslationFailedStatus, MessageItemTranslationOriginal, MessageItemTranslationOriginalLabel, MessageItemTranslationProgressTrack, MessageItemTranslationRetryAction, MessageItemTranslationStatus, MessageList, MessageListDateDivider, MessageListHistoryLimited, MessageListNotice, MessageMultiSelect, MessageMultiSelectCheckbox, MessageMultiSelectToolbar, MessageQuotedPreview, MessageQuotedPreviewAttachment, MessageQuotedPreviewAttachments, MessageQuotedPreviewAuthor, MessageQuotedPreviewAuthorMeta, MessageQuotedPreviewAuthorName, MessageQuotedPreviewChannel, MessageQuotedPreviewContent, MessageQuotedPreviewHeader, MessageQuotedPreviewLoading, MessageQuotedPreviewText, MessageQuotedPreviewThread, MessageQuotedPreviewTimestamp, MessageQuotedPreviewUnavailable, MessageReactionAddButton, MessageReactionChip, MessageReactionCount, MessageReactionErrorIndicator, MessageReactionGlyph, MessageReactionPickerContent, MessageReactionPickerStatic, MessageReactionQuickButton, MessageReactionQuickRow, MessageReactionTooltipContent, MessageReactionTooltipMeta, MessageReactionTooltipName, MessageReactionTooltipNameText, MessageReactionTooltipNames, MessageReactionTooltipSeparator, MessageReferenceChip, MessageReferenceIndicator, MessageReferenceLabel, MessageReferencePending, MessageReferenceText, MessageReferenceUnavailable, MessageReplies, MessageRepliesItem, MessageRepliesItemContent, MessageRepliesItemSender, MessageRepliesItemTime, MessageRepliesSummary, MessageRepliesSummaryItem, MessageTextSelectionToolbar, MessageTextSelectionToolbarButton, MessageTextSelectionToolbarSeparator, MessageVideoPreview, MessageVideoPreviewAction, MessageVideoPreviewFailureAction, MessageVideoPreviewFailureContent, MessageVideoPreviewFailureIcon, MessageVideoPreviewFailureTitle, MessageVideoPreviewFallback, MessageVideoPreviewMedia, MobileNavItem, MobileNavLabel, MobileNavRoot, NotificationCenter, NotificationCenterActionButton, NotificationCenterCount, NotificationCenterEmptyState, NotificationCenterHeader, NotificationCenterItem, NotificationCenterItemActions, NotificationCenterItemBody, NotificationCenterItemContent, NotificationCenterItemIcon, NotificationCenterItemRow, NotificationCenterItemTitle, NotificationCenterList, NotificationCenterPopup, NotificationCenterScroller, NotificationCenterTitle, NotificationCenterTrigger, OtterIndicator, Panel, PanelAction, PanelActions, PanelActivity, PanelBody, PanelFooter, PanelHeader, PanelHeaderContent, PanelHeaderIcon, PanelHeaderRoot, PanelHeading, PanelMeta, PanelNotice, PanelNoticeActions, PanelNoticeContent, PanelScrollContent, PanelScrollViewport, PanelSection, PanelSectionHeader, PanelStatus, PanelTitle, PanelToggleAction, PickerTriggerButton, Popover, PopoverArrow, PopoverBackdrop, PopoverClose, PopoverContent, PopoverDescription, PopoverHeader, PopoverPopup, PopoverPortal, PopoverSeparator, PopoverTitle, PopoverTrigger, PopoverViewport, PreviewCard, PreviewCardArrow, PreviewCardContent, PreviewCardDescription, PreviewCardHeader, PreviewCardPopup, PreviewCardPortal, PreviewCardSeparator, PreviewCardTitle, PreviewCardTrigger, ProfilePanel, ProfilePanelBody, ProfilePanelHeader, ProfilePanelHeaderContent, ProfilePanelSection, Progress, ProgressHeader, ProgressIndicator, ProgressLabel, ProgressTrack, ProgressValue, RadioGroup, RadioGroupIndicator, RadioGroupItem, RaftLogo, RaftLogoLockup, RaftWordmark, ResizableGroup, ResizableHandle, ResizablePanel, SINGLE_IMAGE_MAX_HEIGHT, SINGLE_IMAGE_MAX_WIDTH, ScrollArea, ScrollAreaContent, ScrollAreaCorner, ScrollAreaScrollbar, ScrollAreaThumb, ScrollAreaViewport, SearchEntityResult, SearchEntityResultActivity, SearchEntityResultContent, SearchEntityResultDescription, SearchEntityResultHeader, SearchEntityResultIcon, SearchEntityResultLeading, SearchEntityResultTitle, SearchMessageResult, SearchMessageResultBody, SearchMessageResultHeader, SearchMessageResultMatch, SearchMessageResultMeta, SearchMessageResultSender, SearchMessageResultThreadMeta, SearchMessageResultTimestamp, SearchResultsList, SearchResultsSection, SearchResultsSectionHeading, SearchResultsSummary, SearchShellFilters, SearchShellRoot, SearchShellViewport, SearchThreadMessageResult, SearchThreadResult, SearchThreadResultHeader, SearchThreadResultMessages, SearchThreadResultMeta, SearchThreadResultTimestamp, SearchThreadResultTitle, SearchTrigger, SearchTriggerLabel, SearchTriggerShortcut, SegmentedControl, SegmentedControlCount, SegmentedControlItem, SegmentedControlLabel, Select, SelectArrow, SelectContent, SelectGroup, SelectGroupLabel, SelectIcon, SelectItem, SelectItemDescription, SelectItemIndicator, SelectItemLeading, SelectItemText, SelectLabel, SelectList, SelectPopup, SelectPortal, SelectScrollDownArrow, SelectScrollUpArrow, SelectSeparator, SelectTrigger, SelectValue, Separator, SidebarBody, SidebarContent, SidebarControl, SidebarGroupLabel, SidebarHeader, SidebarHeaderTitle, SidebarItem, SidebarItemAside, SidebarItemChannelIcon, SidebarItemContent, SidebarItemCount, SidebarItemCountSeparator, SidebarItemIcon, SidebarItemIndicator, SidebarItemMeta, SidebarItemMetaIcon, SidebarItemStatus, SidebarItemSubtitle, SidebarItemThreadCount, SidebarItemTitle, SidebarList, SidebarLiveActivity, SidebarMenu, SidebarMenuAside, SidebarMenuCount, SidebarMenuIcon, SidebarMenuTitle, SidebarRoot, SidebarSection, SidebarSectionAttention, SidebarSectionChevron, SidebarSectionControl, SidebarSectionControls, SidebarSectionCount, SidebarSectionDisclosure, SidebarSectionEmpty, SidebarSectionHeader, SidebarSectionTitle, SidebarSectionTrailing, Skeleton, SortableComposerAttachment, SortableComposerAttachments, SortableComposerAttachmentsScroll, SortableTabsList, SortableTabsTab, Spinner, Status, Step, Steps, Switch, SwitchThumb, SystemMessage, SystemMessageContent, SystemMessageGroup, SystemMessageGroupChevron, SystemMessageGroupDisclosure, SystemMessageGroupHeader, SystemMessageGroupPanel, SystemMessageGroupSummary, SystemMessageTime, TASK_STATUS_IDS, Table, TableBody, TableCaption, TableCell, TableColgroup, TableColumn, TableHead, TableHeader, TableRow, Tabs, TabsLabel, TabsList, TabsPanel, TabsTab, TaskBoardColumn, TaskBoardColumnBadge, TaskBoardColumnChevron, TaskBoardColumnCount, TaskBoardColumnEmpty, TaskBoardColumnEmptyAllowed, TaskBoardColumnEmptyBlocked, TaskBoardColumnEmptyIdle, TaskBoardColumnHeading, TaskBoardColumnItems, TaskBoardColumnPanel, TaskBoardColumnTrigger, TaskBoardRoot, TaskCard, TaskCardBody, TaskCardChannel, TaskCardDescription, TaskCardLegacy, TaskCardMeta, TaskCardNumber, TaskCardRow, TaskCardStatus, TaskCardTitle, TaskChip, TaskClosedIcon, TaskDndProvider, TaskDoneIcon, TaskDragOverlay, TaskDraggable, TaskDropPlaceholder, TaskDropZone, TaskInProgressIcon, TaskInReviewIcon, TaskListRoot, TaskLoadingList, TaskLoadingRow, TaskSection, TaskSectionBadge, TaskSectionChevron, TaskSectionCount, TaskSectionEmpty, TaskSectionHeading, TaskSectionItems, TaskSectionPanel, TaskSectionTrigger, TaskStatusBadge, TaskStatusIcon, TaskTodoIcon, TasksPanelEmpty, TasksPanelRoot, TasksPanelToolbar, TasksPanelToolbarFilters, TasksPanelToolbarGroup, TasksPanelToolbarLabel, TasksPanelToolbarNewTask, TasksPanelToolbarView, TasksPanelViewport, Text, TextHeading, TextLink, TextMono, TextSans, Textarea, TextareaCounter, TextareaGroup, ThemeProvider, ThreadIcon, ThreadPanelActions, ThreadPanelBody, ThreadPanelContent, ThreadPanelFooter, ThreadPanelHeader, ThreadPanelOriginalMessage, ThreadPanelReplyCount, ThreadPanelReplySummary, ThreadPanelRoot, ThreadPanelSearch, ThreadPanelSearchCount, ThreadPanelSearchTrailing, ThreadPanelTitle, ThreadPanelTitleMeta, Timeline, TimelineContent, TimelineItem, TimelineTime, TimelineTitle, ToastAction, ToastActions, ToastArrow, ToastBody, ToastClose, ToastContent, ToastDescription, ToastIcon, ToastPortal, ToastPositioner, ToastProgress, ToastProvider, ToastRoot, ToastTitle, ToastViewport, ToggleGroup, ToggleGroupItem, ToggleGroupLabel, Tooltip, TooltipContent, TooltipPortal, TooltipProvider, TooltipTrigger, VirtualList, WorkspaceButton, WorkspaceButtonName, buildMessageImageGalleryRows, buttonVariants, classifyMessageImageAspect, cn, createMessageTextSelectionAnchor, createToastManager, getTextSelectionFocusRect, installInputModality, taskStatusSoft, taskStatusStrong, textLinkVariants, toast, useComposerSuggestions, useOrderedTabs, useTheme, useToastManager };
17327
+ export { ActivityInboxControls, ActivityInboxLoadingMore, ActivityInboxPanel, ActivityInboxSelectionCount, ActivityInboxSelectionToolbar, ActivityInboxSidebar, ActivityInboxViewport, AlertDialog, AlertDialogAction, AlertDialogBody, AlertDialogCancel, AlertDialogClose, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AppRailFooter, AppRailHeader, AppRailItem, AppRailItemAttention, AppRailItemBadge, AppRailItemIcon, AppRailItemIndicator, AppRailItemLabel, AppRailNav, AppRailRoot, AppShellMainSlot, AppShellOverlaySlot, AppShellPanelSlot, AppShellRailSlot, AppShellRoot, AppShellSidebarSlot, AppShellSidebarTrigger, Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, Badge, Banner, BannerAction, BannerClose, BannerDescription, BannerTitle, Button, Card, CardContent, CardDescription, CardFooter, CardHeader, CardLeading, CardTitle, CardTrailing, ChatIcon, Checkbox, CheckboxIndicator, CodeBlock, CodeBlockAction, CodeBlockActions, CodeBlockBody, CodeBlockHeader, CodeBlockPre, CodeBlockTitle, Combobox, ComboboxChip, ComboboxChipRemove, ComboboxChips, ComboboxClear, ComboboxCollection, ComboboxContent, ComboboxControl, ComboboxEmpty, ComboboxGroup, ComboboxGroupLabel, ComboboxHeader, ComboboxInput, ComboboxInputGroup, ComboboxItem, ComboboxItemIndicator, ComboboxLabel, ComboboxList, ComboboxPopup, ComboboxPortal, ComboboxRow, ComboboxSeparator, ComboboxTrigger, ComboboxTriggerCount, ComboboxTriggerIndicator, ComboboxValue, Composer, ComposerActions, ComposerAttachment, ComposerAttachmentBody, ComposerAttachmentFailedOverlay, ComposerAttachmentFile, ComposerAttachmentImage, ComposerAttachmentMeta, ComposerAttachmentRemove, ComposerAttachmentTitle, ComposerAttachmentUploadProgressBar, ComposerAttachmentUploadingOverlay, ComposerAttachments, ComposerAttachmentsScrollArea, ComposerDropOverlay, ComposerDropOverlayLabel, ComposerDropOverlayPrompt, ComposerIconButton, ComposerInput, ComposerMeta, ComposerRoot, ComposerSubmit, ComposerSuggestionAside, ComposerSuggestionContent, ComposerSuggestionGroup, ComposerSuggestionGroupLabel, ComposerSuggestionIcon, ComposerSuggestionList, ComposerSuggestionMeta, ComposerSuggestionOption, ComposerSuggestionTitle, ComposerToolbar, ComposerToolbarLabel, ContextMenu, ContextMenuCheckboxItem, ContextMenuCheckboxItemIndicator, ContextMenuContent, ContextMenuFooter, ContextMenuItem, ContextMenuItemLabel, ContextMenuLabel, ContextMenuPopup, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuRadioItemIndicator, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSubmenu, ContextMenuSubmenuTrigger, ContextMenuTrigger, ConversationPanelBody, ConversationPanelContent, ConversationPanelEmptyState, ConversationPanelEmptyStateBrand, ConversationPanelEmptyStateBrandMark, ConversationPanelFooter, ConversationPanelRoot, ConversationPanelTabs, CopyableCode, CopyableCodeAction, CopyableCodeRoot, DescriptionDetails, DescriptionItem, DescriptionList, DescriptionTerm, Dialog, DialogBody, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogNav, DialogOverlay, DialogPortal, DialogSurface, DialogTitle, DialogTrigger, DirectMessageIcon, Drawer, DrawerActions, DrawerBody, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuCheckboxItemIndicator, DropdownMenuContent, DropdownMenuFooter, DropdownMenuItem, DropdownMenuItemCount, DropdownMenuItemLabel, DropdownMenuLabel, DropdownMenuPopup, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuRadioItemIndicator, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSubmenu, DropdownMenuSubmenuTrigger, DropdownMenuTrigger, EmptyState, EmptyStateActions, EmptyStateContent, EmptyStateDescription, EmptyStateIcon, EmptyStateTitle, Field, FieldControl, FieldDescription, FieldError, FieldItem, FieldLabel, FieldValidity, FileAction, FileActions, FileContent, FileImage, FileMeta, FileMetaItem, FileName, FilePreview, FilePreviewBadge, FilePreviewCode, FilePreviewDocument, FilePreviewFile, FilePreviewMedia, FileRow, FileRowOpen, FileThumbnail, FilesList, FilesPanel, FilesViewport, FloatButton, FloatButtonGroup, FormSection, IconTile, InboxItem, InboxItemActions, InboxItemBody, InboxItemContent, InboxItemContext, InboxItemHeading, InboxItemHoverTarget, InboxItemLeading, InboxItemMarks, InboxItemMessage, InboxItemMetadata, InboxItemSelection, InboxItemSender, InboxItemSubtitle, InboxItemTimestamp, InboxItemTitle, InboxItemTrailing, InboxItemTrigger, InlineCode, Input, InputGroup, InputGroupAddon, InputGroupInput, Kbd, KbdGroup, Label, LabelAsterisk, LabelOptional, LabelSub, LegacyTaskPanelActions, LegacyTaskPanelBody, LegacyTaskPanelField, LegacyTaskPanelFieldLabel, LegacyTaskPanelFieldText, LegacyTaskPanelFieldTitle, LegacyTaskPanelHeader, LegacyTaskPanelIcon, LegacyTaskPanelMeta, LegacyTaskPanelMetaLabel, LegacyTaskPanelMetaRow, LegacyTaskPanelMetaValue, LegacyTaskPanelRoot, LegacyTaskPanelSection, LegacyTaskPanelStatus, LegacyTaskPanelTitle, LegacyTaskPanelTitleMeta, Lightbox, LightboxActions, LightboxClose, LightboxContent, LightboxHeader, LightboxHeaderLabel, LightboxHeaderMeta, LightboxInfoActions, LightboxInfoBar, LightboxInfoDock, LightboxInfoTitle, LightboxMedia, LightboxNavigationButton, LightboxPortal, LightboxStage, LightboxThumbnail, LightboxThumbnailStrip, LightboxTitle, LightboxToolbar, LightboxTrigger, ListRow, ListRowBody, ListRowBottom, ListRowChevron, ListRowDescription, ListRowGroup, ListRowIcon, ListRowMeta, ListRowTitle, ListRowTop, ListRowValue, LiveAgentActivityBar, LiveAgentActivityBarAvatar, LiveAgentActivityBarContent, LiveAgentActivityBarRow, LiveAgentActivityBarStatus, LiveAgentActivityBarText, MarkdownBlockquote, MarkdownCell, MarkdownCheckbox, MarkdownHeaderCell, MarkdownHeading, MarkdownImage, MarkdownInlineCode, MarkdownLink, MarkdownList, MarkdownListItem, MarkdownMark, MarkdownOrderedList, MarkdownParagraph, MarkdownRule, MarkdownTable, MarkdownTableRow, MarkdownTableScroll, MessageActionCard, MessageActionCardActions, MessageActionCardActionsNote, MessageActionCardCollapseTrigger, MessageActionCardCompletion, MessageActionCardContent, MessageActionCardHeader, MessageActionCardHeaderDescription, MessageActionCardHeaderIcon, MessageActionCardHeaderStatus, MessageActionCardHeaderTitle, MessageActionCardHint, MessageActionCardHintLabel, MessageActionCardNotice, MessageActionCardProperties, MessageActionCardProperty, MessageActionCardPropertyLabel, MessageActionCardPropertyValue, MessageActionCardScope, MessageActionCardScopeDescription, MessageActionCardScopeList, MessageActionCardScopeListLabel, MessageActionCardScopeListViewport, MessageActionCardScopeName, MessageActionCardStatus, MessageAttachmentAction, MessageAttachmentCard, MessageAttachmentCommentSummary, MessageAttachmentDiffAddition, MessageAttachmentDiffDeletion, MessageAttachmentDiffSummary, MessageAttachmentGroup, MessageAttachmentMeta, MessageAttachmentMetaEnd, MessageAttachmentMetaStart, MessageAttachmentSummary, MessageAttachmentTitle, MessageEmbed, MessageEmbedContent, MessageEmbedFooter, MessageEmbedHeader, MessageForwardedBundle, MessageForwardedBundleAttachment, MessageForwardedBundleAttachmentMeta, MessageForwardedBundleAttachmentName, MessageForwardedBundleAttachments, MessageForwardedBundleFooter, MessageForwardedBundleFooterAction, MessageForwardedBundleGallery, MessageForwardedBundleGalleryTile, MessageForwardedBundleHeader, MessageForwardedBundleHeaderContent, MessageForwardedBundleHeaderCount, MessageForwardedBundleHeaderLabel, MessageForwardedBundleItem, MessageForwardedBundleItemAuthor, MessageForwardedBundleItemContent, MessageForwardedBundleItemMeta, MessageForwardedBundleItems, MessageForwardedBundleSource, MessageForwardedBundleSourceLabel, MessageIcon, MessageImageGallery, MessageImageGalleryAction, MessageImageGalleryItem, MessageImageGalleryMedia, MessageImageGalleryOverlay, MessageImageGalleryPreview, MessageImageGalleryRow, MessageItem, MessageItemAttachments, MessageItemAvatarSlot, MessageItemBadge, MessageItemBadgeSeparator, MessageItemBody, MessageItemContent, MessageItemContinuationTime, MessageItemEdited, MessageItemEmbedded, MessageItemFooter, MessageItemGutter, MessageItemHeader, MessageItemInlineStatus, MessageItemMeta, MessageItemReadReceipt, MessageItemSavedIndicator, MessageItemSearchMatch, MessageItemSender, MessageItemSenderBadges, MessageItemSenderButton, MessageItemSenderGroup, MessageItemTime, MessageItemToolbar, MessageItemToolbarButton, MessageItemTranslationAction, MessageItemTranslationFailedStatus, MessageItemTranslationOriginal, MessageItemTranslationOriginalLabel, MessageItemTranslationProgressTrack, MessageItemTranslationRetryAction, MessageItemTranslationStatus, MessageList, MessageListDateDivider, MessageListHistoryLimited, MessageListNotice, MessageMultiSelect, MessageMultiSelectCheckbox, MessageMultiSelectToolbar, MessageMultiSelectToolbarActions, MessageQuotedPreview, MessageQuotedPreviewAttachment, MessageQuotedPreviewAttachments, MessageQuotedPreviewAuthor, MessageQuotedPreviewAuthorMeta, MessageQuotedPreviewAuthorName, MessageQuotedPreviewChannel, MessageQuotedPreviewContent, MessageQuotedPreviewHeader, MessageQuotedPreviewLoading, MessageQuotedPreviewText, MessageQuotedPreviewThread, MessageQuotedPreviewTimestamp, MessageQuotedPreviewUnavailable, MessageReactionAddButton, MessageReactionChip, MessageReactionCount, MessageReactionErrorIndicator, MessageReactionGlyph, MessageReactionPickerContent, MessageReactionPickerStatic, MessageReactionQuickButton, MessageReactionQuickRow, MessageReactionTooltipContent, MessageReactionTooltipMeta, MessageReactionTooltipName, MessageReactionTooltipNameText, MessageReactionTooltipNames, MessageReactionTooltipSeparator, MessageReferenceChip, MessageReferenceIndicator, MessageReferenceLabel, MessageReferencePending, MessageReferenceText, MessageReferenceUnavailable, MessageReplies, MessageRepliesItem, MessageRepliesItemContent, MessageRepliesItemSender, MessageRepliesItemTime, MessageRepliesSummary, MessageRepliesSummaryItem, MessageTextSelectionToolbar, MessageTextSelectionToolbarButton, MessageTextSelectionToolbarSeparator, MessageVideoPreview, MessageVideoPreviewAction, MessageVideoPreviewFailureAction, MessageVideoPreviewFailureContent, MessageVideoPreviewFailureIcon, MessageVideoPreviewFailureTitle, MessageVideoPreviewFallback, MessageVideoPreviewMedia, MobileNavItem, MobileNavLabel, MobileNavRoot, NotificationCenter, NotificationCenterActionButton, NotificationCenterCount, NotificationCenterEmptyState, NotificationCenterHeader, NotificationCenterItem, NotificationCenterItemActions, NotificationCenterItemBody, NotificationCenterItemContent, NotificationCenterItemIcon, NotificationCenterItemRow, NotificationCenterItemTitle, NotificationCenterList, NotificationCenterPopup, NotificationCenterScroller, NotificationCenterTitle, NotificationCenterTrigger, OtterIndicator, Panel, PanelAction, PanelActions, PanelActivity, PanelBody, PanelFooter, PanelHeader, PanelHeaderContent, PanelHeaderIcon, PanelHeaderRoot, PanelHeading, PanelMeta, PanelNotice, PanelNoticeActions, PanelNoticeContent, PanelScrollContent, PanelScrollViewport, PanelSection, PanelSectionHeader, PanelStatus, PanelTitle, PanelToggleAction, PickerTriggerButton, Popover, PopoverArrow, PopoverBackdrop, PopoverClose, PopoverContent, PopoverDescription, PopoverHeader, PopoverPopup, PopoverPortal, PopoverSeparator, PopoverTitle, PopoverTrigger, PopoverViewport, PreviewCard, PreviewCardArrow, PreviewCardContent, PreviewCardDescription, PreviewCardHeader, PreviewCardPopup, PreviewCardPortal, PreviewCardSeparator, PreviewCardTitle, PreviewCardTrigger, ProfilePanel, ProfilePanelBody, ProfilePanelHeader, ProfilePanelHeaderContent, ProfilePanelSection, Progress, ProgressHeader, ProgressIndicator, ProgressLabel, ProgressTrack, ProgressValue, RadioGroup, RadioGroupIndicator, RadioGroupItem, RaftLogo, RaftLogoLockup, RaftWordmark, ResizableGroup, ResizableHandle, ResizablePanel, SINGLE_IMAGE_MAX_HEIGHT, SINGLE_IMAGE_MAX_WIDTH, ScrollArea, ScrollAreaContent, ScrollAreaCorner, ScrollAreaScrollbar, ScrollAreaThumb, ScrollAreaViewport, SearchEntityResult, SearchEntityResultActivity, SearchEntityResultContent, SearchEntityResultDescription, SearchEntityResultHeader, SearchEntityResultIcon, SearchEntityResultLeading, SearchEntityResultTitle, SearchMessageResult, SearchMessageResultBody, SearchMessageResultHeader, SearchMessageResultMatch, SearchMessageResultMeta, SearchMessageResultSender, SearchMessageResultThreadMeta, SearchMessageResultTimestamp, SearchResultsList, SearchResultsSection, SearchResultsSectionHeading, SearchResultsSummary, SearchShellFilters, SearchShellRoot, SearchShellViewport, SearchThreadMessageResult, SearchThreadResult, SearchThreadResultHeader, SearchThreadResultMessages, SearchThreadResultMeta, SearchThreadResultTimestamp, SearchThreadResultTitle, SearchTrigger, SearchTriggerLabel, SearchTriggerShortcut, SegmentedControl, SegmentedControlCount, SegmentedControlItem, SegmentedControlLabel, Select, SelectArrow, SelectContent, SelectGroup, SelectGroupLabel, SelectIcon, SelectItem, SelectItemDescription, SelectItemIndicator, SelectItemLeading, SelectItemText, SelectLabel, SelectList, SelectPopup, SelectPortal, SelectScrollDownArrow, SelectScrollUpArrow, SelectSeparator, SelectTrigger, SelectValue, Separator, SidebarBody, SidebarContent, SidebarControl, SidebarGroupLabel, SidebarHeader, SidebarHeaderTitle, SidebarItem, SidebarItemAside, SidebarItemChannelIcon, SidebarItemContent, SidebarItemCount, SidebarItemCountSeparator, SidebarItemIcon, SidebarItemIndicator, SidebarItemMeta, SidebarItemMetaIcon, SidebarItemStatus, SidebarItemSubtitle, SidebarItemThreadCount, SidebarItemTitle, SidebarList, SidebarLiveActivity, SidebarMenu, SidebarMenuAside, SidebarMenuCount, SidebarMenuIcon, SidebarMenuTitle, SidebarRoot, SidebarSection, SidebarSectionAttention, SidebarSectionChevron, SidebarSectionControl, SidebarSectionControls, SidebarSectionCount, SidebarSectionDisclosure, SidebarSectionEmpty, SidebarSectionHeader, SidebarSectionTitle, SidebarSectionTrailing, Skeleton, SortableComposerAttachment, SortableComposerAttachments, SortableComposerAttachmentsScroll, SortableTabsList, SortableTabsTab, Spinner, Status, Step, Steps, Switch, SwitchThumb, SystemMessage, SystemMessageContent, SystemMessageGroup, SystemMessageGroupChevron, SystemMessageGroupDisclosure, SystemMessageGroupHeader, SystemMessageGroupPanel, SystemMessageGroupSummary, SystemMessageTime, TASK_STATUS_IDS, Table, TableBody, TableCaption, TableCell, TableColgroup, TableColumn, TableHead, TableHeader, TableRow, Tabs, TabsLabel, TabsList, TabsPanel, TabsTab, TaskBoardColumn, TaskBoardColumnBadge, TaskBoardColumnChevron, TaskBoardColumnCount, TaskBoardColumnEmpty, TaskBoardColumnEmptyAllowed, TaskBoardColumnEmptyBlocked, TaskBoardColumnEmptyIdle, TaskBoardColumnHeading, TaskBoardColumnItems, TaskBoardColumnPanel, TaskBoardColumnTrigger, TaskBoardRoot, TaskCard, TaskCardBody, TaskCardChannel, TaskCardDescription, TaskCardLegacy, TaskCardMeta, TaskCardNumber, TaskCardRow, TaskCardStatus, TaskCardTitle, TaskChip, TaskClosedIcon, TaskDndProvider, TaskDoneIcon, TaskDragOverlay, TaskDraggable, TaskDropPlaceholder, TaskDropZone, TaskInProgressIcon, TaskInReviewIcon, TaskListRoot, TaskLoadingList, TaskLoadingRow, TaskSection, TaskSectionBadge, TaskSectionChevron, TaskSectionCount, TaskSectionEmpty, TaskSectionHeading, TaskSectionItems, TaskSectionPanel, TaskSectionTrigger, TaskStatusBadge, TaskStatusIcon, TaskTodoIcon, TasksPanelEmpty, TasksPanelRoot, TasksPanelToolbar, TasksPanelToolbarFilters, TasksPanelToolbarGroup, TasksPanelToolbarLabel, TasksPanelToolbarNewTask, TasksPanelToolbarView, TasksPanelViewport, Text, TextHeading, TextLink, TextMono, TextSans, Textarea, TextareaCounter, TextareaGroup, ThemeProvider, ThreadIcon, ThreadPanelActions, ThreadPanelBody, ThreadPanelContent, ThreadPanelFooter, ThreadPanelHeader, ThreadPanelOriginalMessage, ThreadPanelReplyCount, ThreadPanelReplySummary, ThreadPanelRoot, ThreadPanelSearch, ThreadPanelSearchCount, ThreadPanelSearchTrailing, ThreadPanelTitle, ThreadPanelTitleMeta, Timeline, TimelineContent, TimelineItem, TimelineTime, TimelineTitle, ToastAction, ToastActions, ToastArrow, ToastBody, ToastClose, ToastContent, ToastDescription, ToastIcon, ToastPortal, ToastPositioner, ToastProgress, ToastProvider, ToastRoot, ToastTitle, ToastViewport, ToggleGroup, ToggleGroupItem, ToggleGroupLabel, Tooltip, TooltipContent, TooltipPortal, TooltipProvider, TooltipTrigger, VirtualList, WorkspaceButton, WorkspaceButtonName, buildMessageImageGalleryRows, buttonVariants, classifyMessageImageAspect, cn, createMessageTextSelectionAnchor, createToastManager, getTextSelectionFocusRect, installInputModality, taskStatusSoft, taskStatusStrong, textLinkVariants, toast, useComposerSuggestions, useOrderedTabs, useTheme, useToastManager };