@botiverse/raft-ui 0.9.4 → 0.9.6

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/CHANGELOG.md CHANGED
@@ -1,3 +1,20 @@
1
+ ## [0.9.6](https://github.com/botiverse/raft-design/compare/v0.9.5...v0.9.6) (2026-10-20)
2
+
3
+ ### Added
4
+
5
+ - `installInputModality()` and the `InputModality` type: raft-ui records whether the person last used the keyboard, a pointer, or a screen reader's virtual cursor, on `<html data-input-modality>`. `ThemeProvider` installs it for you (with the default `syncDom`); an app without `ThemeProvider` calls it once on the client. ([#598](https://github.com/botiverse/raft-design/pull/598))
6
+ - `toast.add/info/success/warning/error(title, { leading })` puts a node, such as a person's avatar, in `ToastIcon` in place of the status pixel. It is `aria-hidden` and still shows with `icon: false`. Calls without `leading` render exactly as before. ([#599](https://github.com/botiverse/raft-design/pull/599))
7
+
8
+ ### Changed
9
+
10
+ - Focus rings show only after keyboard navigation. A click, a tap, typing, or focus moved by a click no longer draws the ring, including on text fields (the caret marks them). Tab, F6, arrow keys outside a text field, and keys that move focus out of a text field (Esc closing a dialog, Enter submitting) still do, and so does focus a screen reader moves or that arrives with no input before it. Without the tracker installed every ring shows as before. Rings drawn with `shadow-focus` follow this automatically; other indicators take the new `keyboard:` variant, and groups ring on `has-focus-visible` instead of `focus-within`. ([#598](https://github.com/botiverse/raft-design/pull/598))
11
+
12
+ ## [0.9.5](https://github.com/botiverse/raft-design/compare/v0.9.4...v0.9.5) (2026-10-20)
13
+
14
+ ### Fixed
15
+
16
+ - On a touch screen, a tap no longer leaves a hover highlight on: `TableBody` rows, an `InboxItem`'s pressed toggle action, the Activity inbox sort button and a `FileRow` (when its `FileRowOpen` is hovered) now only show their hover on devices that can hover. With a mouse they look and behave as before. ([#596](https://github.com/botiverse/raft-design/pull/596))
17
+
1
18
  ## [0.9.4](https://github.com/botiverse/raft-design/compare/v0.9.3...v0.9.4) (2026-10-20)
2
19
 
3
20
  ### Changed
@@ -16,14 +16,12 @@
16
16
  outline: 0;
17
17
  background: var(--layer-card);
18
18
  color: var(--foreground);
19
- box-shadow: none;
20
19
  font-size: 16px;
21
20
  line-height: 24px;
22
21
  transition: box-shadow 90ms ease-out;
23
22
  }
24
- .r-combobox-select__control:focus-within {
25
- box-shadow: var(--focus-ring);
26
- }
23
+ /* The control's ring is a utility on it (combobox-select.tsx): it rings when
24
+ something inside has keyboard focus, a has-selector, and src CSS has none. */
27
25
  .r-combobox-select__input {
28
26
  box-sizing: border-box;
29
27
  min-width: 3rem;
@@ -171,7 +171,8 @@
171
171
  transform: var(--r-float-button-transform-active);
172
172
  }
173
173
 
174
- &:focus-visible {
174
+ /* Keyboard focus only: no ring after a click or a tap (styles.css). */
175
+ &:focus-visible:not(:where(:root[data-input-modality="pointer"] *)) {
175
176
  outline: var(--r-float-button-outline);
176
177
  outline-offset: var(--r-float-button-outline-offset);
177
178
  }
@@ -233,7 +233,8 @@
233
233
  &:focus-visible {
234
234
  outline: none;
235
235
  }
236
- &:focus-visible::after {
236
+ /* Keyboard focus only: no ring after a click or a tap (styles.css). */
237
+ &:focus-visible:not(:where(:root[data-input-modality="pointer"] *))::after {
237
238
  outline: var(--r-steps-focus-outline);
238
239
  }
239
240
  &:disabled {
@@ -265,6 +265,9 @@
265
265
  --elevation-float:
266
266
  0 1px 0 oklch(0.1813 0.005 17.62 / 0.039), 0 12px 32px -12px oklch(0.1813 0.005 17.62 / 0.322);
267
267
  --elevation-sticker: 4px 4px 0 oklch(0.1813 0.005 17.62);
268
+ /* The focus indicator. It shows only after keyboard navigation: styles.css
269
+ empties it while the root carries data-input-modality="pointer", which
270
+ installInputModality sets after a click or a tap. */
268
271
  --focus-ring: 0 0 0 2px oklch(1 0 0), 0 0 0 4px oklch(0.1813 0.005 17.62);
269
272
  --field-font-size: 16px;
270
273
  --field-font-weight: 400;
package/dist/index.d.mts CHANGED
@@ -4324,6 +4324,7 @@ type ToastData = {
4324
4324
  hasIcon?: boolean;
4325
4325
  hasProgress?: boolean;
4326
4326
  contentClassName?: string;
4327
+ leading?: ReactNode;
4327
4328
  };
4328
4329
  type ToastObject<Data extends object = object> = Toast.Root.ToastObject<Data>;
4329
4330
  type ToastCommandOptions<Data extends object = ToastData> = Omit<Partial<ToastObject<Data>>, "actionProps" | "data" | "title" | "type"> & {
@@ -4333,7 +4334,15 @@ type ToastCommandOptions<Data extends object = ToastData> = Omit<Partial<ToastOb
4333
4334
  };
4334
4335
  contentClassName?: string;
4335
4336
  dismissible?: boolean;
4337
+ /** Show the status pixel for the intent in `ToastIcon`. Defaults to `true`. */
4336
4338
  icon?: boolean;
4339
+ /**
4340
+ * Replaces the status pixel in `ToastIcon` with this node, such as an xs
4341
+ * `Avatar` for the person or agent the toast is about. Rendered
4342
+ * hidden from assistive technology: the title must already carry the name.
4343
+ * Shown even when `icon` is `false`.
4344
+ */
4345
+ leading?: ReactNode;
4337
4346
  progress?: boolean;
4338
4347
  };
4339
4348
  export declare const toast: {
@@ -5215,8 +5224,11 @@ interface ThemeProviderProps {
5215
5224
  storageKey?: string;
5216
5225
  /**
5217
5226
  * Put the resolved mode on `document.documentElement` (`.light` / `.dark`
5218
- * and `color-scheme`). Defaults to true for the app-level provider; set it to
5219
- * false for nested previews and islands that must not touch the page root.
5227
+ * and `color-scheme`), and track the input modality there
5228
+ * (`data-input-modality`, see `installInputModality`), which keeps focus
5229
+ * rings to keyboard navigation. Defaults to true for the app-level provider;
5230
+ * set it to false for nested previews and islands that must not touch the
5231
+ * page root.
5220
5232
  */
5221
5233
  syncDom?: boolean;
5222
5234
  children: ReactNode;
@@ -5227,4 +5239,40 @@ export declare function ThemeProvider({ mode, defaultMode, onModeChange, storage
5227
5239
  /** Read and update the colour mode. */
5228
5240
  export declare function useTheme(): ThemeState;
5229
5241
  //#endregion
5230
- export { type AlertDialogActionProps, type AlertDialogBodyProps, type AlertDialogCancelProps, type AlertDialogCloseProps, type AlertDialogContentProps, type AlertDialogDescriptionProps, type AlertDialogFooterProps, type AlertDialogHeaderProps, type AlertDialogOverlayProps, type AlertDialogPortalProps, type AlertDialogProps, type AlertDialogTitleProps, type AlertDialogTriggerProps, type AppRailFooterProps, type AppRailHeaderProps, type AppRailItemAttentionProps, type AppRailItemBadgeProps, type AppRailItemIconProps, type AppRailItemIndicatorProps, type AppRailItemLabelProps, type AppRailItemProps, type AppRailNavProps, type AppRailRootProps, type AppShellMainSlotProps, type AppShellOverlaySlotProps, type AppShellPanelSlotProps, type AppShellRailSlotProps, type AppShellRootProps, type AppShellSidebarSlotProps, type AppShellSidebarTriggerProps, type AvatarBadgeOffset, type AvatarBadgeProps, type AvatarFallbackProps, type AvatarGroupCountProps, type AvatarGroupProps, type AvatarImageProps, type AvatarProps, type AvatarSize, type BadgeProps, type BannerActionProps, type BannerDescriptionProps, type BannerProps, type BannerStatus, type BannerTitleProps, Button, type ButtonProps, type CardContentProps, type CardDescriptionProps, type CardFooterProps, type CardHeaderProps, type CardLeadingProps, type CardProps, type CardTitleProps, type CardTrailingProps, type CheckboxIndicatorProps, type CheckboxProps, type CodeBlockActionProps, type CodeBlockActionsProps, type CodeBlockBodyProps, type CodeBlockHeaderProps, type CodeBlockProps, type CodeBlockTitleProps, type ComboboxChipProps, type ComboboxChipRemoveProps, type ComboboxChipsProps, type ComboboxClearProps, type ComboboxCollectionProps, type ComboboxContentProps, type ComboboxControlProps, type ComboboxEmptyProps, type ComboboxGroupLabelProps, type ComboboxGroupProps, type ComboboxHeaderProps, type ComboboxInputGroupProps, type ComboboxInputProps, type ComboboxItemIndicatorProps, type ComboboxItemProps, type ComboboxLabelProps, type ComboboxListProps, type ComboboxPopupProps, type ComboboxPortalProps, type ComboboxProps, type ComboboxRowProps, type ComboboxSeparatorProps, type ComboboxTriggerCountProps, type ComboboxTriggerIndicatorProps, type ComboboxTriggerProps, type ComboboxValueProps, type ComposerActionsProps, type ComposerAttachmentBodyProps, type ComposerAttachmentFailedOverlayProps, type ComposerAttachmentFileProps, type ComposerAttachmentImageProps, type ComposerAttachmentMetaProps, type ComposerAttachmentProps, type ComposerAttachmentRemoveProps, type ComposerAttachmentTitleProps, type ComposerAttachmentUploadProgressBarProps, type ComposerAttachmentUploadingOverlayProps, type ComposerAttachmentsProps, type ComposerAttachmentsScrollAreaProps, type ComposerDropOverlayLabelProps, type ComposerDropOverlayPromptProps, type ComposerDropOverlayProps, type ComposerIconButtonProps, type ComposerInputProps, type ComposerMetaProps, type ComposerProps, type ComposerRootProps, type ComposerSubmitProps, type ComposerSuggestionAsideProps, type ComposerSuggestionContentProps, type ComposerSuggestionGroupLabelProps, type ComposerSuggestionGroupProps, type ComposerSuggestionIconProps, type ComposerSuggestionListProps, type ComposerSuggestionMetaProps, type ComposerSuggestionOptionProps, type ComposerSuggestionTitleProps, type ComposerSuggestionTriggerMatch, type ComposerSuggestionsInputProps, type ComposerSuggestionsListProps, type ComposerSuggestionsOptionProps, type ComposerToolbarLabelProps, type ComposerToolbarProps, type ContextMenuCheckboxItemIndicatorProps, type ContextMenuCheckboxItemProps, type ContextMenuContentProps, type ContextMenuFooterProps, type ContextMenuItemLabelProps, type ContextMenuItemProps, type ContextMenuLabelProps, type ContextMenuPopupProps, type ContextMenuPortalProps, type ContextMenuProps, type ContextMenuRadioGroupProps, type ContextMenuRadioItemIndicatorProps, type ContextMenuRadioItemProps, type ContextMenuSeparatorProps, type ContextMenuShortcutProps, type ContextMenuSubmenuProps, type ContextMenuSubmenuTriggerProps, type ContextMenuTriggerProps, type ConversationIconProps, type ConversationPanelBodyProps, type ConversationPanelContentProps, type ConversationPanelEmptyStateBrandMarkProps, type ConversationPanelEmptyStateBrandProps, type ConversationPanelEmptyStateProps, type ConversationPanelFooterProps, type ConversationPanelRootProps, type ConversationPanelTabsProps, type CopyableCodeActionProps, type CopyableCodeProps, type CopyableCodeRootProps, type DescriptionDetailsProps, type DescriptionItemProps, type DescriptionListDirection, type DescriptionListProps, type DescriptionTermProps, Dialog, DialogBody, type DialogBodyProps, DialogClose, type DialogCloseProps, DialogContent, type DialogContentProps, DialogDescription, type DialogDescriptionProps, DialogFooter, type DialogFooterProps, DialogHeader, type DialogHeaderProps, DialogNav, type DialogNavProps, DialogOverlay, type DialogOverlayProps, DialogPortal, type DialogPortalProps, type DialogProps, DialogSurface, type DialogSurfaceProps, DialogTitle, type DialogTitleProps, DialogTrigger, type DialogTriggerProps, type DrawerActionsProps, type DrawerBodyProps, type DrawerCloseProps, type DrawerContentProps, type DrawerDescriptionProps, type DrawerFooterProps, type DrawerHeaderProps, type DrawerOverlayProps, type DrawerPortalProps, type DrawerProps, type DrawerTitleProps, type DrawerTriggerProps, type DropdownMenuCheckboxItemIndicatorProps, type DropdownMenuCheckboxItemProps, type DropdownMenuContentProps, type DropdownMenuFooterProps, type DropdownMenuItemCountProps, type DropdownMenuItemLabelProps, type DropdownMenuItemProps, type DropdownMenuLabelProps, type DropdownMenuPopupProps, type DropdownMenuPortalProps, type DropdownMenuProps, type DropdownMenuRadioGroupProps, type DropdownMenuRadioItemIndicatorProps, type DropdownMenuRadioItemProps, type DropdownMenuSeparatorProps, type DropdownMenuShortcutProps, type DropdownMenuSubmenuProps, type DropdownMenuSubmenuTriggerProps, type DropdownMenuTriggerProps, type EmptyStateActionsProps, type EmptyStateContentProps, type EmptyStateDescriptionProps, type EmptyStateIconProps, type EmptyStateProps, type EmptyStateTitleProps, type FieldControlProps, type FieldDescriptionProps, type FieldErrorProps, type FieldItemProps, type FieldLabelProps, type FieldProps, type FieldValidityProps, type FilePreviewBadgeProps, type FilePreviewCodeProps, type FilePreviewDocumentProps, type FilePreviewFileProps, type FilePreviewMediaProps, type FilePreviewProps, type FloatButtonGroupDirection, type FloatButtonGroupProps, type FloatButtonOffset, type FloatButtonPosition, type FloatButtonProps, type FloatButtonShape, type FloatButtonSide, type FloatButtonSize, type FloatButtonVariant, type FormSectionProps, type IconTileProps, type InboxItemActionsProps, type InboxItemBodyProps, type InboxItemContentProps, type InboxItemContextProps, type InboxItemDensity, type InboxItemHeadingProps, type InboxItemHoverTargetProps, type InboxItemLeadingProps, type InboxItemMarksProps, type InboxItemMessageProps, type InboxItemMetadataProps, type InboxItemProps, type InboxItemSelectionProps, type InboxItemSenderProps, type InboxItemSubtitleProps, type InboxItemTimestampProps, type InboxItemTitleProps, type InboxItemTrailingProps, type InboxItemTriggerProps, type InlineCodeProps, type InputGroupAddonProps, type InputGroupAddonTextProps, type InputGroupInputProps, type InputGroupProps, type InputProps, type KbdGroupProps, type KbdProps, type LabelAsteriskProps, type LabelOptionalProps, type LabelProps, type LabelSubProps, type LegacyTaskPanelActionsProps, type LegacyTaskPanelBodyProps, type LegacyTaskPanelFieldLabelProps, type LegacyTaskPanelFieldProps, type LegacyTaskPanelFieldTextProps, type LegacyTaskPanelFieldTitleProps, type LegacyTaskPanelHeaderProps, type LegacyTaskPanelIconProps, type LegacyTaskPanelMetaLabelProps, type LegacyTaskPanelMetaProps, type LegacyTaskPanelMetaRowProps, type LegacyTaskPanelMetaValueProps, type LegacyTaskPanelRootProps, type LegacyTaskPanelSectionProps, type LegacyTaskPanelStatusProps, type LegacyTaskPanelTitleMetaProps, type LegacyTaskPanelTitleProps, type LightboxActionsProps, type LightboxCloseProps, type LightboxContentProps, type LightboxHeaderLabelProps, type LightboxHeaderMetaProps, type LightboxHeaderProps, type LightboxInfoActionsProps, type LightboxInfoBarProps, type LightboxInfoDockProps, type LightboxInfoTitleProps, type LightboxMediaProps, type LightboxNavigationButtonProps, type LightboxPortalProps, type LightboxProps, type LightboxStageProps, type LightboxThumbnailProps, type LightboxThumbnailStripProps, type LightboxTitleProps, type LightboxToolbarProps, type LightboxTriggerProps, type ListRowBodyProps, type ListRowBottomProps, type ListRowChevronProps, type ListRowDescriptionProps, type ListRowGroupProps, type ListRowIconProps, type ListRowMetaProps, type ListRowProps, type ListRowTitleProps, type ListRowTopProps, type ListRowValueProps, type LiveAgentActivityBarAvatarProps, type LiveAgentActivityBarContentProps, type LiveAgentActivityBarProps, type LiveAgentActivityBarRowProps, type LiveAgentActivityBarStatusProps, type LiveAgentActivityBarTextProps, type MarkdownBlockquoteProps, type MarkdownCellProps, type MarkdownCheckboxProps, type MarkdownHeaderCellProps, type MarkdownHeadingLevel, type MarkdownHeadingProps, type MarkdownImageProps, type MarkdownInlineCodeProps, type MarkdownLinkProps, type MarkdownListItemProps, type MarkdownListProps, type MarkdownMarkProps, type MarkdownOrderedListProps, type MarkdownParagraphProps, type MarkdownRuleProps, type MarkdownTableProps, type MarkdownTableRowProps, type MarkdownTableScrollProps, type MessageActionCardActionsNoteProps, type MessageActionCardActionsProps, type MessageActionCardCollapseTriggerProps, type MessageActionCardCompletionProps, type MessageActionCardContentProps, type MessageActionCardHeaderDescriptionProps, type MessageActionCardHeaderIconProps, type MessageActionCardHeaderProps, type MessageActionCardHeaderStatusProps, type MessageActionCardHeaderTitleProps, type MessageActionCardHintLabelProps, type MessageActionCardHintProps, type MessageActionCardNoticeProps, type MessageActionCardPropertiesProps, type MessageActionCardPropertyLabelProps, type MessageActionCardPropertyProps, type MessageActionCardPropertyValueProps, type MessageActionCardProps, type MessageActionCardScopeDescriptionProps, type MessageActionCardScopeListLabelProps, type MessageActionCardScopeListProps, type MessageActionCardScopeListViewportProps, type MessageActionCardScopeNameProps, type MessageActionCardScopeProps, type MessageActionCardStatusProps, type MessageAttachmentActionProps, type MessageAttachmentCardProps, type MessageAttachmentCommentSummaryProps, type MessageAttachmentDiffAdditionProps, type MessageAttachmentDiffDeletionProps, type MessageAttachmentDiffSummaryProps, type MessageAttachmentGroupProps, type MessageAttachmentMetaEndProps, type MessageAttachmentMetaProps, type MessageAttachmentMetaStartProps, type MessageAttachmentSummaryProps, type MessageAttachmentTitleProps, type MessageEmbedContentProps, type MessageEmbedFooterProps, type MessageEmbedHeaderProps, type MessageEmbedProps, type MessageForwardedBundleAttachmentMetaProps, type MessageForwardedBundleAttachmentNameProps, type MessageForwardedBundleAttachmentProps, type MessageForwardedBundleAttachmentsProps, type MessageForwardedBundleFooterActionProps, type MessageForwardedBundleFooterProps, type MessageForwardedBundleGalleryProps, type MessageForwardedBundleGalleryTileProps, type MessageForwardedBundleHeaderContentProps, type MessageForwardedBundleHeaderCountProps, type MessageForwardedBundleHeaderLabelProps, type MessageForwardedBundleHeaderProps, type MessageForwardedBundleItemAuthorProps, type MessageForwardedBundleItemContentProps, type MessageForwardedBundleItemMetaProps, type MessageForwardedBundleItemProps, type MessageForwardedBundleItemsProps, type MessageForwardedBundleProps, type MessageForwardedBundleSourceLabelProps, type MessageForwardedBundleSourceProps, type MessageImageGalleryActionProps, type MessageImageGalleryAspectKind, type MessageImageGalleryFit, type MessageImageGalleryImage, type MessageImageGalleryItemLayout, type MessageImageGalleryItemProps, type MessageImageGalleryMediaProps, type MessageImageGalleryOverlayProps, type MessageImageGalleryPreviewProps, type MessageImageGalleryProps, type MessageImageGalleryRowData, type MessageImageGalleryRowProps, type MessageItemAttachmentsProps, type MessageItemAvatarSlotProps, type MessageItemBadgeProps, type MessageItemBadgeSeparatorProps, type MessageItemBadgeStatus, type MessageItemBodyProps, type MessageItemContentProps, type MessageItemContinuationTimeProps, type MessageItemEmbeddedProps, type MessageItemFooterProps, type MessageItemGutterProps, type MessageItemHeaderProps, type MessageItemInlineStatusProps, type MessageItemMetaProps, type MessageItemProps, type MessageItemReadReceiptProps, type MessageItemSavedIndicatorProps, type MessageItemSearchMatchProps, type MessageItemSenderBadgesProps, type MessageItemSenderButtonProps, type MessageItemSenderProps, type MessageItemTimeProps, type MessageItemToolbarButtonProps, type MessageItemToolbarProps, type MessageItemTranslationActionProps, type MessageItemTranslationFailedStatusProps, type MessageItemTranslationOriginalLabelProps, type MessageItemTranslationOriginalProps, type MessageItemTranslationProgressTrackProps, type MessageItemTranslationRetryActionProps, type MessageItemTranslationStatusProps, type MessageListDateDividerProps, type MessageListHistoryLimitedProps, type MessageListNoticeProps, type MessageListProps, type MessageMultiSelectCheckboxProps, type MessageMultiSelectProps, type MessageMultiSelectToolbarProps, type MessageQuotedPreviewAttachmentProps, type MessageQuotedPreviewAttachmentsProps, type MessageQuotedPreviewAuthorMetaProps, type MessageQuotedPreviewAuthorNameProps, type MessageQuotedPreviewAuthorProps, type MessageQuotedPreviewChannelProps, type MessageQuotedPreviewContentProps, type MessageQuotedPreviewHeaderProps, type MessageQuotedPreviewLoadingProps, type MessageQuotedPreviewProps, type MessageQuotedPreviewTextProps, type MessageQuotedPreviewThreadProps, type MessageQuotedPreviewTimestampProps, type MessageQuotedPreviewUnavailableProps, type MessageReactionAddButtonProps, type MessageReactionChipProps, type MessageReactionCountProps, type MessageReactionErrorIndicatorProps, type MessageReactionGlyphProps, type MessageReactionPickerContentProps, type MessageReactionPickerStaticProps, type MessageReactionQuickButtonProps, type MessageReactionQuickRowProps, type MessageReactionTooltipContentProps, type MessageReactionTooltipMetaProps, type MessageReactionTooltipNameProps, type MessageReactionTooltipNameTextProps, type MessageReactionTooltipNamesProps, type MessageReactionTooltipSeparatorProps, type MessageReferenceChipProps, type MessageReferenceChipVariant, type MessageReferenceIndicatorProps, type MessageReferenceLabelProps, type MessageReferencePendingProps, type MessageReferenceTextProps, type MessageReferenceTextVariant, type MessageReferenceUnavailableProps, type MessageRepliesItemContentProps, type MessageRepliesItemProps, type MessageRepliesItemSenderProps, type MessageRepliesItemTimeProps, type MessageRepliesProps, type MessageRepliesSummaryItemProps, type MessageRepliesSummaryProps, type MessageTextSelectionAnchor, type MessageTextSelectionToolbarButtonProps, type MessageTextSelectionToolbarProps, type MessageTextSelectionToolbarSeparatorProps, type MessageVideoPreviewActionProps, type MessageVideoPreviewFailureActionProps, type MessageVideoPreviewFailureContentProps, type MessageVideoPreviewFailureIconProps, type MessageVideoPreviewFailureTitleProps, type MessageVideoPreviewFallbackProps, type MessageVideoPreviewMediaProps, type MessageVideoPreviewProps, type MobileNavItemProps, type MobileNavLabelProps, type MobileNavRootProps, type NotificationCenterActionButtonProps, type NotificationCenterCountProps, type NotificationCenterEmptyStateProps, type NotificationCenterHeaderProps, type NotificationCenterItemActionsProps, type NotificationCenterItemBodyProps, type NotificationCenterItemContentProps, type NotificationCenterItemIconProps, type NotificationCenterItemProps, type NotificationCenterItemRowProps, type NotificationCenterItemTitleProps, type NotificationCenterListProps, type NotificationCenterPopupProps, type NotificationCenterPortalProps, type NotificationCenterProps, type NotificationCenterScrollerProps, type NotificationCenterTitleProps, type NotificationCenterTriggerProps, type OrderedTabItem, type OtterIndicatorProps, type PanelActionProps, type PanelActionsProps, type PanelActivityProps, type PanelBodyProps, type PanelEdge, type PanelFooterProps, type PanelHeaderContentProps, type PanelHeaderIconProps, type PanelHeaderProps, type PanelHeaderRootProps, type PanelHeadingProps, type PanelMetaProps, type PanelNoticeActionsProps, type PanelNoticeContentProps, type PanelNoticeProps, type PanelNoticeStatus, type PanelProps, type PanelScrollContentProps, type PanelScrollViewportProps, type PanelSectionHeaderProps, type PanelSectionProps, type PanelStatusProps, type PanelTitleProps, type PanelToggleActionProps, type PickerTriggerButtonProps, type PopoverArrowProps, type PopoverBackdropProps, type PopoverCloseProps, type PopoverContentProps, type PopoverDescriptionProps, type PopoverHeaderProps, type PopoverPopupProps, type PopoverPortalProps, type PopoverProps, type PopoverSeparatorProps, type PopoverTitleProps, type PopoverTriggerProps, type PopoverViewportProps, type Presence, type PreviewCardArrowProps, type PreviewCardContentProps, type PreviewCardDescriptionProps, type PreviewCardHeaderProps, type PreviewCardPopupProps, type PreviewCardPortalProps, type PreviewCardProps, type PreviewCardSeparatorProps, type PreviewCardTitleProps, type PreviewCardTriggerProps, type ProfilePanelBodyProps, type ProfilePanelHeaderContentProps, type ProfilePanelHeaderProps, type ProfilePanelProps, type ProfilePanelSectionProps, type ProgressHeaderProps, type ProgressIndicatorProps, type ProgressLabelProps, type ProgressProps, type ProgressTrackProps, type ProgressValueProps, type RadioGroupIndicatorProps, type RadioGroupItemProps, type RadioGroupProps, type RaftLogoLockupProps, type RaftLogoProps, type RaftWordmarkProps, type ResizableGroupProps, type ResizableHandleProps, type ResizablePanelProps, type ResolvedThemeMode, type RowTone, type ScrollAreaContentProps, type ScrollAreaCornerProps, type ScrollAreaProps, type ScrollAreaScrollbarProps, type ScrollAreaThumbProps, type ScrollAreaViewportProps, type SegmentedControlCountProps, type SegmentedControlIconsOnlyBelow, type SegmentedControlItemProps, type SegmentedControlLabelProps, type SegmentedControlProps, type SelectArrowProps, type SelectContentProps, type SelectGroupLabelProps, type SelectGroupProps, type SelectIconProps, type SelectItemDescriptionProps, type SelectItemIndicatorProps, type SelectItemLeadingProps, type SelectItemProps, type SelectItemTextProps, type SelectLabelProps, type SelectListProps, type SelectPopupProps, type SelectPortalProps, type SelectProps, type SelectScrollDownArrowProps, type SelectScrollUpArrowProps, type SelectSeparatorProps, type SelectTriggerProps, type SelectValueProps, type SeparatorProps, type SidebarBodyProps, type SidebarContentProps, type SidebarControlProps, type SidebarGroupLabelProps, type SidebarHeaderProps, type SidebarHeaderTitleProps, type SidebarItemAsideProps, type SidebarItemChannelIconProps, type SidebarItemContentProps, type SidebarItemCountProps, type SidebarItemCountSeparatorProps, type SidebarItemIconProps, type SidebarItemIndicatorProps, type SidebarItemMetaIconProps, type SidebarItemMetaProps, type SidebarItemProps, type SidebarItemStatusProps, type SidebarItemSubtitleProps, type SidebarItemThreadCountProps, type SidebarItemTitleProps, type SidebarListProps, type SidebarLiveActivityProps, type SidebarMenuAsideProps, type SidebarMenuCountProps, type SidebarMenuIconProps, type SidebarMenuProps, type SidebarMenuTitleProps, type SidebarRootProps, type SidebarSectionAttentionProps, type SidebarSectionChevronProps, type SidebarSectionControlProps, type SidebarSectionControlsProps, type SidebarSectionCountProps, type SidebarSectionDisclosureProps, type SidebarSectionEmptyProps, type SidebarSectionHeaderProps, type SidebarSectionProps, type SidebarSectionTitleProps, type SidebarSectionTrailingProps, type SkeletonProps, type SkeletonVariant, type SortableComposerAttachmentProps, type SortableComposerAttachmentsProps, type SortableTabsListProps, type SortableTabsTabProps, type SpinnerProps, type StatusProps, type StepProps, type StepStatus, type StepsProps, type SwitchProps, type SwitchThumbProps, type SystemMessageContentProps, type SystemMessageGroupChevronProps, type SystemMessageGroupDisclosureProps, type SystemMessageGroupHeaderProps, type SystemMessageGroupPanelProps, type SystemMessageGroupProps, type SystemMessageGroupSummaryProps, type SystemMessageProps, type SystemMessageTimeProps, type TableBodyProps, type TableCaptionProps, type TableCellProps, type TableColgroupProps, type TableColumnProps, type TableHeadProps, type TableHeaderProps, type TableProps, type TableRowProps, type TabsLabelProps, type TabsListProps, type TabsPanelProps, type TabsPlacement, type TabsProps, type TabsTabProps, type TaskBoardColumnBadgeProps, type TaskBoardColumnChevronProps, type TaskBoardColumnCountProps, type TaskBoardColumnEmptyAllowedProps, type TaskBoardColumnEmptyBlockedProps, type TaskBoardColumnEmptyIdleProps, type TaskBoardColumnEmptyProps, type TaskBoardColumnHeadingProps, type TaskBoardColumnItemsProps, type TaskBoardColumnPanelProps, type TaskBoardColumnProps, type TaskBoardColumnTriggerProps, type TaskBoardRootProps, type TaskCardBodyProps, type TaskCardChannelProps, type TaskCardDescriptionProps, type TaskCardLegacyProps, type TaskCardMetaProps, type TaskCardNumberProps, type TaskCardProps, type TaskCardRowProps, type TaskCardStatusProps, type TaskCardTitleProps, type TaskChipProps, type TaskChipSize, type TaskChipVariant, type TaskDndAccessibility, type TaskDndProviderProps, type TaskDragOverlayProps, type TaskDraggableProps, type TaskDropData, type TaskDropPlaceholderProps, type TaskDropPlacement, type TaskDropState, type TaskDropZoneProps, type TaskDropZoneState, type TaskListRootProps, type TaskLoadingListProps, type TaskLoadingRowProps, type TaskMoveDetails, type TaskSectionBadgeProps, type TaskSectionChevronProps, type TaskSectionCountProps, type TaskSectionEmptyProps, type TaskSectionHeadingProps, type TaskSectionItemsProps, type TaskSectionPanelProps, type TaskSectionProps, type TaskSectionTriggerProps, type TaskStatusBadgeProps, type TaskStatusId, type TasksPanelEmptyProps, type TasksPanelRootProps, type TasksPanelToolbarFiltersProps, type TasksPanelToolbarGroupProps, type TasksPanelToolbarLabelProps, type TasksPanelToolbarNewTaskProps, type TasksPanelToolbarProps, type TasksPanelToolbarViewProps, type TasksPanelViewportProps, type TextHeadingProps, type TextLinkProps, type TextMonoProps, type TextSansProps, type TextareaCounterProps, type TextareaGroupProps, type TextareaProps, type ThemeMode, type ThemeProviderProps, type ThemeState, type ThreadPanelActionsProps, type ThreadPanelBodyProps, type ThreadPanelContentProps, type ThreadPanelFooterProps, type ThreadPanelHeaderProps, type ThreadPanelOriginalMessageProps, type ThreadPanelReplyCountProps, type ThreadPanelReplySummaryProps, type ThreadPanelRootProps, type ThreadPanelSearchCountProps, type ThreadPanelSearchProps, type ThreadPanelSearchTrailingProps, type ThreadPanelTitleMetaProps, type ThreadPanelTitleProps, type TimelineContentProps, type TimelineItemPlacement, type TimelineItemProps, type TimelineItemVariant, type TimelineLineType, type TimelineProps, type TimelineSize, type TimelineTimeProps, type TimelineTitleProps, type ToastActionProps, type ToastActionsProps, type ToastArrowProps, type ToastBodyProps, type ToastCloseProps, type ToastContentProps, type ToastData, type ToastDescriptionProps, type ToastIconProps, type ToastIntent, type ToastObject, type ToastPortalProps, type ToastPositionerProps, type ToastProgressProps, type ToastProviderProps, type ToastRootProps, type ToastTitleProps, type ToastViewportProps, type ToggleGroupItemProps, type ToggleGroupLabelProps, type ToggleGroupProps, type TooltipContentProps, type TooltipPortalProps, type TooltipProps, type TooltipProviderProps, type TooltipTriggerProps, type UseComposerSuggestionsParams, buttonVariants, cn };
5242
+ //#region src/lib/input-modality.d.ts
5243
+ /**
5244
+ * Input modality: whether the person last moved through the page with a
5245
+ * pointer, with the keyboard, or by a virtual cursor (a screen reader). raft-ui shows a focus indicator only after
5246
+ * keyboard navigation (design/foundations/states.md#focus): styles.css clears
5247
+ * `--focus-ring` and the `keyboard:` variant stops matching while the root
5248
+ * carries `data-input-modality="pointer"`. With no attribute (no script, or
5249
+ * the tracker not installed) every focus indicator shows, as it did before.
5250
+ */
5251
+ type InputModality = "pointer" | "keyboard" | "virtual";
5252
+ /**
5253
+ * Track the input modality on `doc.documentElement` as
5254
+ * `data-input-modality="pointer" | "keyboard" | "virtual"`. Only `pointer`
5255
+ * hides focus rings, so every uncertain case keeps them visible:
5256
+ *
5257
+ * - **Unknown at first.** No attribute until there is evidence, so a keyboard
5258
+ * user who hasn't pressed Tab yet still sees focus moved by code. The first
5259
+ * real mouse movement or press makes it `pointer`.
5260
+ * - **Keyboard**: Tab and F6 anywhere; the arrows, Home, End, Page Up, Page
5261
+ * Down, Enter, Space and Esc outside a text field. Inside a text field those
5262
+ * keys edit and leave the modality alone, unless focus leaves the field
5263
+ * right after (Esc closing a dialog, Enter submitting): then it is
5264
+ * `keyboard`. Typing and Cmd or Ctrl shortcuts never count; a shortcut that
5265
+ * moves focus to a control is caught by the next rule.
5266
+ * - **Virtual**: focus that arrives with no key or pointer press just before
5267
+ * it (a screen reader's browse cursor, a timer), and a screen reader's
5268
+ * synthesized pointer press. Rings show.
5269
+ * - **Pointer**: a real pointer press, or real pointer movement while the
5270
+ * modality is still unknown or virtual.
5271
+ *
5272
+ * `ThemeProvider` calls this for you. Installing twice adds no second set of
5273
+ * listeners. Returns a function that undoes this installation; the listeners
5274
+ * and the attribute go once every installation is undone.
5275
+ */
5276
+ export declare function installInputModality(doc?: Document): () => void;
5277
+ //#endregion
5278
+ export { type AlertDialogActionProps, type AlertDialogBodyProps, type AlertDialogCancelProps, type AlertDialogCloseProps, type AlertDialogContentProps, type AlertDialogDescriptionProps, type AlertDialogFooterProps, type AlertDialogHeaderProps, type AlertDialogOverlayProps, type AlertDialogPortalProps, type AlertDialogProps, type AlertDialogTitleProps, type AlertDialogTriggerProps, type AppRailFooterProps, type AppRailHeaderProps, type AppRailItemAttentionProps, type AppRailItemBadgeProps, type AppRailItemIconProps, type AppRailItemIndicatorProps, type AppRailItemLabelProps, type AppRailItemProps, type AppRailNavProps, type AppRailRootProps, type AppShellMainSlotProps, type AppShellOverlaySlotProps, type AppShellPanelSlotProps, type AppShellRailSlotProps, type AppShellRootProps, type AppShellSidebarSlotProps, type AppShellSidebarTriggerProps, type AvatarBadgeOffset, type AvatarBadgeProps, type AvatarFallbackProps, type AvatarGroupCountProps, type AvatarGroupProps, type AvatarImageProps, type AvatarProps, type AvatarSize, type BadgeProps, type BannerActionProps, type BannerDescriptionProps, type BannerProps, type BannerStatus, type BannerTitleProps, Button, type ButtonProps, type CardContentProps, type CardDescriptionProps, type CardFooterProps, type CardHeaderProps, type CardLeadingProps, type CardProps, type CardTitleProps, type CardTrailingProps, type CheckboxIndicatorProps, type CheckboxProps, type CodeBlockActionProps, type CodeBlockActionsProps, type CodeBlockBodyProps, type CodeBlockHeaderProps, type CodeBlockProps, type CodeBlockTitleProps, type ComboboxChipProps, type ComboboxChipRemoveProps, type ComboboxChipsProps, type ComboboxClearProps, type ComboboxCollectionProps, type ComboboxContentProps, type ComboboxControlProps, type ComboboxEmptyProps, type ComboboxGroupLabelProps, type ComboboxGroupProps, type ComboboxHeaderProps, type ComboboxInputGroupProps, type ComboboxInputProps, type ComboboxItemIndicatorProps, type ComboboxItemProps, type ComboboxLabelProps, type ComboboxListProps, type ComboboxPopupProps, type ComboboxPortalProps, type ComboboxProps, type ComboboxRowProps, type ComboboxSeparatorProps, type ComboboxTriggerCountProps, type ComboboxTriggerIndicatorProps, type ComboboxTriggerProps, type ComboboxValueProps, type ComposerActionsProps, type ComposerAttachmentBodyProps, type ComposerAttachmentFailedOverlayProps, type ComposerAttachmentFileProps, type ComposerAttachmentImageProps, type ComposerAttachmentMetaProps, type ComposerAttachmentProps, type ComposerAttachmentRemoveProps, type ComposerAttachmentTitleProps, type ComposerAttachmentUploadProgressBarProps, type ComposerAttachmentUploadingOverlayProps, type ComposerAttachmentsProps, type ComposerAttachmentsScrollAreaProps, type ComposerDropOverlayLabelProps, type ComposerDropOverlayPromptProps, type ComposerDropOverlayProps, type ComposerIconButtonProps, type ComposerInputProps, type ComposerMetaProps, type ComposerProps, type ComposerRootProps, type ComposerSubmitProps, type ComposerSuggestionAsideProps, type ComposerSuggestionContentProps, type ComposerSuggestionGroupLabelProps, type ComposerSuggestionGroupProps, type ComposerSuggestionIconProps, type ComposerSuggestionListProps, type ComposerSuggestionMetaProps, type ComposerSuggestionOptionProps, type ComposerSuggestionTitleProps, type ComposerSuggestionTriggerMatch, type ComposerSuggestionsInputProps, type ComposerSuggestionsListProps, type ComposerSuggestionsOptionProps, type ComposerToolbarLabelProps, type ComposerToolbarProps, type ContextMenuCheckboxItemIndicatorProps, type ContextMenuCheckboxItemProps, type ContextMenuContentProps, type ContextMenuFooterProps, type ContextMenuItemLabelProps, type ContextMenuItemProps, type ContextMenuLabelProps, type ContextMenuPopupProps, type ContextMenuPortalProps, type ContextMenuProps, type ContextMenuRadioGroupProps, type ContextMenuRadioItemIndicatorProps, type ContextMenuRadioItemProps, type ContextMenuSeparatorProps, type ContextMenuShortcutProps, type ContextMenuSubmenuProps, type ContextMenuSubmenuTriggerProps, type ContextMenuTriggerProps, type ConversationIconProps, type ConversationPanelBodyProps, type ConversationPanelContentProps, type ConversationPanelEmptyStateBrandMarkProps, type ConversationPanelEmptyStateBrandProps, type ConversationPanelEmptyStateProps, type ConversationPanelFooterProps, type ConversationPanelRootProps, type ConversationPanelTabsProps, type CopyableCodeActionProps, type CopyableCodeProps, type CopyableCodeRootProps, type DescriptionDetailsProps, type DescriptionItemProps, type DescriptionListDirection, type DescriptionListProps, type DescriptionTermProps, Dialog, DialogBody, type DialogBodyProps, DialogClose, type DialogCloseProps, DialogContent, type DialogContentProps, DialogDescription, type DialogDescriptionProps, DialogFooter, type DialogFooterProps, DialogHeader, type DialogHeaderProps, DialogNav, type DialogNavProps, DialogOverlay, type DialogOverlayProps, DialogPortal, type DialogPortalProps, type DialogProps, DialogSurface, type DialogSurfaceProps, DialogTitle, type DialogTitleProps, DialogTrigger, type DialogTriggerProps, type DrawerActionsProps, type DrawerBodyProps, type DrawerCloseProps, type DrawerContentProps, type DrawerDescriptionProps, type DrawerFooterProps, type DrawerHeaderProps, type DrawerOverlayProps, type DrawerPortalProps, type DrawerProps, type DrawerTitleProps, type DrawerTriggerProps, type DropdownMenuCheckboxItemIndicatorProps, type DropdownMenuCheckboxItemProps, type DropdownMenuContentProps, type DropdownMenuFooterProps, type DropdownMenuItemCountProps, type DropdownMenuItemLabelProps, type DropdownMenuItemProps, type DropdownMenuLabelProps, type DropdownMenuPopupProps, type DropdownMenuPortalProps, type DropdownMenuProps, type DropdownMenuRadioGroupProps, type DropdownMenuRadioItemIndicatorProps, type DropdownMenuRadioItemProps, type DropdownMenuSeparatorProps, type DropdownMenuShortcutProps, type DropdownMenuSubmenuProps, type DropdownMenuSubmenuTriggerProps, type DropdownMenuTriggerProps, type EmptyStateActionsProps, type EmptyStateContentProps, type EmptyStateDescriptionProps, type EmptyStateIconProps, type EmptyStateProps, type EmptyStateTitleProps, type FieldControlProps, type FieldDescriptionProps, type FieldErrorProps, type FieldItemProps, type FieldLabelProps, type FieldProps, type FieldValidityProps, type FilePreviewBadgeProps, type FilePreviewCodeProps, type FilePreviewDocumentProps, type FilePreviewFileProps, type FilePreviewMediaProps, type FilePreviewProps, type FloatButtonGroupDirection, type FloatButtonGroupProps, type FloatButtonOffset, type FloatButtonPosition, type FloatButtonProps, type FloatButtonShape, type FloatButtonSide, type FloatButtonSize, type FloatButtonVariant, type FormSectionProps, type IconTileProps, type InboxItemActionsProps, type InboxItemBodyProps, type InboxItemContentProps, type InboxItemContextProps, type InboxItemDensity, type InboxItemHeadingProps, type InboxItemHoverTargetProps, type InboxItemLeadingProps, type InboxItemMarksProps, type InboxItemMessageProps, type InboxItemMetadataProps, type InboxItemProps, type InboxItemSelectionProps, type InboxItemSenderProps, type InboxItemSubtitleProps, type InboxItemTimestampProps, type InboxItemTitleProps, type InboxItemTrailingProps, type InboxItemTriggerProps, type InlineCodeProps, type InputGroupAddonProps, type InputGroupAddonTextProps, type InputGroupInputProps, type InputGroupProps, type InputModality, type InputProps, type KbdGroupProps, type KbdProps, type LabelAsteriskProps, type LabelOptionalProps, type LabelProps, type LabelSubProps, type LegacyTaskPanelActionsProps, type LegacyTaskPanelBodyProps, type LegacyTaskPanelFieldLabelProps, type LegacyTaskPanelFieldProps, type LegacyTaskPanelFieldTextProps, type LegacyTaskPanelFieldTitleProps, type LegacyTaskPanelHeaderProps, type LegacyTaskPanelIconProps, type LegacyTaskPanelMetaLabelProps, type LegacyTaskPanelMetaProps, type LegacyTaskPanelMetaRowProps, type LegacyTaskPanelMetaValueProps, type LegacyTaskPanelRootProps, type LegacyTaskPanelSectionProps, type LegacyTaskPanelStatusProps, type LegacyTaskPanelTitleMetaProps, type LegacyTaskPanelTitleProps, type LightboxActionsProps, type LightboxCloseProps, type LightboxContentProps, type LightboxHeaderLabelProps, type LightboxHeaderMetaProps, type LightboxHeaderProps, type LightboxInfoActionsProps, type LightboxInfoBarProps, type LightboxInfoDockProps, type LightboxInfoTitleProps, type LightboxMediaProps, type LightboxNavigationButtonProps, type LightboxPortalProps, type LightboxProps, type LightboxStageProps, type LightboxThumbnailProps, type LightboxThumbnailStripProps, type LightboxTitleProps, type LightboxToolbarProps, type LightboxTriggerProps, type ListRowBodyProps, type ListRowBottomProps, type ListRowChevronProps, type ListRowDescriptionProps, type ListRowGroupProps, type ListRowIconProps, type ListRowMetaProps, type ListRowProps, type ListRowTitleProps, type ListRowTopProps, type ListRowValueProps, type LiveAgentActivityBarAvatarProps, type LiveAgentActivityBarContentProps, type LiveAgentActivityBarProps, type LiveAgentActivityBarRowProps, type LiveAgentActivityBarStatusProps, type LiveAgentActivityBarTextProps, type MarkdownBlockquoteProps, type MarkdownCellProps, type MarkdownCheckboxProps, type MarkdownHeaderCellProps, type MarkdownHeadingLevel, type MarkdownHeadingProps, type MarkdownImageProps, type MarkdownInlineCodeProps, type MarkdownLinkProps, type MarkdownListItemProps, type MarkdownListProps, type MarkdownMarkProps, type MarkdownOrderedListProps, type MarkdownParagraphProps, type MarkdownRuleProps, type MarkdownTableProps, type MarkdownTableRowProps, type MarkdownTableScrollProps, type MessageActionCardActionsNoteProps, type MessageActionCardActionsProps, type MessageActionCardCollapseTriggerProps, type MessageActionCardCompletionProps, type MessageActionCardContentProps, type MessageActionCardHeaderDescriptionProps, type MessageActionCardHeaderIconProps, type MessageActionCardHeaderProps, type MessageActionCardHeaderStatusProps, type MessageActionCardHeaderTitleProps, type MessageActionCardHintLabelProps, type MessageActionCardHintProps, type MessageActionCardNoticeProps, type MessageActionCardPropertiesProps, type MessageActionCardPropertyLabelProps, type MessageActionCardPropertyProps, type MessageActionCardPropertyValueProps, type MessageActionCardProps, type MessageActionCardScopeDescriptionProps, type MessageActionCardScopeListLabelProps, type MessageActionCardScopeListProps, type MessageActionCardScopeListViewportProps, type MessageActionCardScopeNameProps, type MessageActionCardScopeProps, type MessageActionCardStatusProps, type MessageAttachmentActionProps, type MessageAttachmentCardProps, type MessageAttachmentCommentSummaryProps, type MessageAttachmentDiffAdditionProps, type MessageAttachmentDiffDeletionProps, type MessageAttachmentDiffSummaryProps, type MessageAttachmentGroupProps, type MessageAttachmentMetaEndProps, type MessageAttachmentMetaProps, type MessageAttachmentMetaStartProps, type MessageAttachmentSummaryProps, type MessageAttachmentTitleProps, type MessageEmbedContentProps, type MessageEmbedFooterProps, type MessageEmbedHeaderProps, type MessageEmbedProps, type MessageForwardedBundleAttachmentMetaProps, type MessageForwardedBundleAttachmentNameProps, type MessageForwardedBundleAttachmentProps, type MessageForwardedBundleAttachmentsProps, type MessageForwardedBundleFooterActionProps, type MessageForwardedBundleFooterProps, type MessageForwardedBundleGalleryProps, type MessageForwardedBundleGalleryTileProps, type MessageForwardedBundleHeaderContentProps, type MessageForwardedBundleHeaderCountProps, type MessageForwardedBundleHeaderLabelProps, type MessageForwardedBundleHeaderProps, type MessageForwardedBundleItemAuthorProps, type MessageForwardedBundleItemContentProps, type MessageForwardedBundleItemMetaProps, type MessageForwardedBundleItemProps, type MessageForwardedBundleItemsProps, type MessageForwardedBundleProps, type MessageForwardedBundleSourceLabelProps, type MessageForwardedBundleSourceProps, type MessageImageGalleryActionProps, type MessageImageGalleryAspectKind, type MessageImageGalleryFit, type MessageImageGalleryImage, type MessageImageGalleryItemLayout, type MessageImageGalleryItemProps, type MessageImageGalleryMediaProps, type MessageImageGalleryOverlayProps, type MessageImageGalleryPreviewProps, type MessageImageGalleryProps, type MessageImageGalleryRowData, type MessageImageGalleryRowProps, type MessageItemAttachmentsProps, type MessageItemAvatarSlotProps, type MessageItemBadgeProps, type MessageItemBadgeSeparatorProps, type MessageItemBadgeStatus, type MessageItemBodyProps, type MessageItemContentProps, type MessageItemContinuationTimeProps, type MessageItemEmbeddedProps, type MessageItemFooterProps, type MessageItemGutterProps, type MessageItemHeaderProps, type MessageItemInlineStatusProps, type MessageItemMetaProps, type MessageItemProps, type MessageItemReadReceiptProps, type MessageItemSavedIndicatorProps, type MessageItemSearchMatchProps, type MessageItemSenderBadgesProps, type MessageItemSenderButtonProps, type MessageItemSenderProps, type MessageItemTimeProps, type MessageItemToolbarButtonProps, type MessageItemToolbarProps, type MessageItemTranslationActionProps, type MessageItemTranslationFailedStatusProps, type MessageItemTranslationOriginalLabelProps, type MessageItemTranslationOriginalProps, type MessageItemTranslationProgressTrackProps, type MessageItemTranslationRetryActionProps, type MessageItemTranslationStatusProps, type MessageListDateDividerProps, type MessageListHistoryLimitedProps, type MessageListNoticeProps, type MessageListProps, type MessageMultiSelectCheckboxProps, type MessageMultiSelectProps, type MessageMultiSelectToolbarProps, type MessageQuotedPreviewAttachmentProps, type MessageQuotedPreviewAttachmentsProps, type MessageQuotedPreviewAuthorMetaProps, type MessageQuotedPreviewAuthorNameProps, type MessageQuotedPreviewAuthorProps, type MessageQuotedPreviewChannelProps, type MessageQuotedPreviewContentProps, type MessageQuotedPreviewHeaderProps, type MessageQuotedPreviewLoadingProps, type MessageQuotedPreviewProps, type MessageQuotedPreviewTextProps, type MessageQuotedPreviewThreadProps, type MessageQuotedPreviewTimestampProps, type MessageQuotedPreviewUnavailableProps, type MessageReactionAddButtonProps, type MessageReactionChipProps, type MessageReactionCountProps, type MessageReactionErrorIndicatorProps, type MessageReactionGlyphProps, type MessageReactionPickerContentProps, type MessageReactionPickerStaticProps, type MessageReactionQuickButtonProps, type MessageReactionQuickRowProps, type MessageReactionTooltipContentProps, type MessageReactionTooltipMetaProps, type MessageReactionTooltipNameProps, type MessageReactionTooltipNameTextProps, type MessageReactionTooltipNamesProps, type MessageReactionTooltipSeparatorProps, type MessageReferenceChipProps, type MessageReferenceChipVariant, type MessageReferenceIndicatorProps, type MessageReferenceLabelProps, type MessageReferencePendingProps, type MessageReferenceTextProps, type MessageReferenceTextVariant, type MessageReferenceUnavailableProps, type MessageRepliesItemContentProps, type MessageRepliesItemProps, type MessageRepliesItemSenderProps, type MessageRepliesItemTimeProps, type MessageRepliesProps, type MessageRepliesSummaryItemProps, type MessageRepliesSummaryProps, type MessageTextSelectionAnchor, type MessageTextSelectionToolbarButtonProps, type MessageTextSelectionToolbarProps, type MessageTextSelectionToolbarSeparatorProps, type MessageVideoPreviewActionProps, type MessageVideoPreviewFailureActionProps, type MessageVideoPreviewFailureContentProps, type MessageVideoPreviewFailureIconProps, type MessageVideoPreviewFailureTitleProps, type MessageVideoPreviewFallbackProps, type MessageVideoPreviewMediaProps, type MessageVideoPreviewProps, type MobileNavItemProps, type MobileNavLabelProps, type MobileNavRootProps, type NotificationCenterActionButtonProps, type NotificationCenterCountProps, type NotificationCenterEmptyStateProps, type NotificationCenterHeaderProps, type NotificationCenterItemActionsProps, type NotificationCenterItemBodyProps, type NotificationCenterItemContentProps, type NotificationCenterItemIconProps, type NotificationCenterItemProps, type NotificationCenterItemRowProps, type NotificationCenterItemTitleProps, type NotificationCenterListProps, type NotificationCenterPopupProps, type NotificationCenterPortalProps, type NotificationCenterProps, type NotificationCenterScrollerProps, type NotificationCenterTitleProps, type NotificationCenterTriggerProps, type OrderedTabItem, type OtterIndicatorProps, type PanelActionProps, type PanelActionsProps, type PanelActivityProps, type PanelBodyProps, type PanelEdge, type PanelFooterProps, type PanelHeaderContentProps, type PanelHeaderIconProps, type PanelHeaderProps, type PanelHeaderRootProps, type PanelHeadingProps, type PanelMetaProps, type PanelNoticeActionsProps, type PanelNoticeContentProps, type PanelNoticeProps, type PanelNoticeStatus, type PanelProps, type PanelScrollContentProps, type PanelScrollViewportProps, type PanelSectionHeaderProps, type PanelSectionProps, type PanelStatusProps, type PanelTitleProps, type PanelToggleActionProps, type PickerTriggerButtonProps, type PopoverArrowProps, type PopoverBackdropProps, type PopoverCloseProps, type PopoverContentProps, type PopoverDescriptionProps, type PopoverHeaderProps, type PopoverPopupProps, type PopoverPortalProps, type PopoverProps, type PopoverSeparatorProps, type PopoverTitleProps, type PopoverTriggerProps, type PopoverViewportProps, type Presence, type PreviewCardArrowProps, type PreviewCardContentProps, type PreviewCardDescriptionProps, type PreviewCardHeaderProps, type PreviewCardPopupProps, type PreviewCardPortalProps, type PreviewCardProps, type PreviewCardSeparatorProps, type PreviewCardTitleProps, type PreviewCardTriggerProps, type ProfilePanelBodyProps, type ProfilePanelHeaderContentProps, type ProfilePanelHeaderProps, type ProfilePanelProps, type ProfilePanelSectionProps, type ProgressHeaderProps, type ProgressIndicatorProps, type ProgressLabelProps, type ProgressProps, type ProgressTrackProps, type ProgressValueProps, type RadioGroupIndicatorProps, type RadioGroupItemProps, type RadioGroupProps, type RaftLogoLockupProps, type RaftLogoProps, type RaftWordmarkProps, type ResizableGroupProps, type ResizableHandleProps, type ResizablePanelProps, type ResolvedThemeMode, type RowTone, type ScrollAreaContentProps, type ScrollAreaCornerProps, type ScrollAreaProps, type ScrollAreaScrollbarProps, type ScrollAreaThumbProps, type ScrollAreaViewportProps, type SegmentedControlCountProps, type SegmentedControlIconsOnlyBelow, type SegmentedControlItemProps, type SegmentedControlLabelProps, type SegmentedControlProps, type SelectArrowProps, type SelectContentProps, type SelectGroupLabelProps, type SelectGroupProps, type SelectIconProps, type SelectItemDescriptionProps, type SelectItemIndicatorProps, type SelectItemLeadingProps, type SelectItemProps, type SelectItemTextProps, type SelectLabelProps, type SelectListProps, type SelectPopupProps, type SelectPortalProps, type SelectProps, type SelectScrollDownArrowProps, type SelectScrollUpArrowProps, type SelectSeparatorProps, type SelectTriggerProps, type SelectValueProps, type SeparatorProps, type SidebarBodyProps, type SidebarContentProps, type SidebarControlProps, type SidebarGroupLabelProps, type SidebarHeaderProps, type SidebarHeaderTitleProps, type SidebarItemAsideProps, type SidebarItemChannelIconProps, type SidebarItemContentProps, type SidebarItemCountProps, type SidebarItemCountSeparatorProps, type SidebarItemIconProps, type SidebarItemIndicatorProps, type SidebarItemMetaIconProps, type SidebarItemMetaProps, type SidebarItemProps, type SidebarItemStatusProps, type SidebarItemSubtitleProps, type SidebarItemThreadCountProps, type SidebarItemTitleProps, type SidebarListProps, type SidebarLiveActivityProps, type SidebarMenuAsideProps, type SidebarMenuCountProps, type SidebarMenuIconProps, type SidebarMenuProps, type SidebarMenuTitleProps, type SidebarRootProps, type SidebarSectionAttentionProps, type SidebarSectionChevronProps, type SidebarSectionControlProps, type SidebarSectionControlsProps, type SidebarSectionCountProps, type SidebarSectionDisclosureProps, type SidebarSectionEmptyProps, type SidebarSectionHeaderProps, type SidebarSectionProps, type SidebarSectionTitleProps, type SidebarSectionTrailingProps, type SkeletonProps, type SkeletonVariant, type SortableComposerAttachmentProps, type SortableComposerAttachmentsProps, type SortableTabsListProps, type SortableTabsTabProps, type SpinnerProps, type StatusProps, type StepProps, type StepStatus, type StepsProps, type SwitchProps, type SwitchThumbProps, type SystemMessageContentProps, type SystemMessageGroupChevronProps, type SystemMessageGroupDisclosureProps, type SystemMessageGroupHeaderProps, type SystemMessageGroupPanelProps, type SystemMessageGroupProps, type SystemMessageGroupSummaryProps, type SystemMessageProps, type SystemMessageTimeProps, type TableBodyProps, type TableCaptionProps, type TableCellProps, type TableColgroupProps, type TableColumnProps, type TableHeadProps, type TableHeaderProps, type TableProps, type TableRowProps, type TabsLabelProps, type TabsListProps, type TabsPanelProps, type TabsPlacement, type TabsProps, type TabsTabProps, type TaskBoardColumnBadgeProps, type TaskBoardColumnChevronProps, type TaskBoardColumnCountProps, type TaskBoardColumnEmptyAllowedProps, type TaskBoardColumnEmptyBlockedProps, type TaskBoardColumnEmptyIdleProps, type TaskBoardColumnEmptyProps, type TaskBoardColumnHeadingProps, type TaskBoardColumnItemsProps, type TaskBoardColumnPanelProps, type TaskBoardColumnProps, type TaskBoardColumnTriggerProps, type TaskBoardRootProps, type TaskCardBodyProps, type TaskCardChannelProps, type TaskCardDescriptionProps, type TaskCardLegacyProps, type TaskCardMetaProps, type TaskCardNumberProps, type TaskCardProps, type TaskCardRowProps, type TaskCardStatusProps, type TaskCardTitleProps, type TaskChipProps, type TaskChipSize, type TaskChipVariant, type TaskDndAccessibility, type TaskDndProviderProps, type TaskDragOverlayProps, type TaskDraggableProps, type TaskDropData, type TaskDropPlaceholderProps, type TaskDropPlacement, type TaskDropState, type TaskDropZoneProps, type TaskDropZoneState, type TaskListRootProps, type TaskLoadingListProps, type TaskLoadingRowProps, type TaskMoveDetails, type TaskSectionBadgeProps, type TaskSectionChevronProps, type TaskSectionCountProps, type TaskSectionEmptyProps, type TaskSectionHeadingProps, type TaskSectionItemsProps, type TaskSectionPanelProps, type TaskSectionProps, type TaskSectionTriggerProps, type TaskStatusBadgeProps, type TaskStatusId, type TasksPanelEmptyProps, type TasksPanelRootProps, type TasksPanelToolbarFiltersProps, type TasksPanelToolbarGroupProps, type TasksPanelToolbarLabelProps, type TasksPanelToolbarNewTaskProps, type TasksPanelToolbarProps, type TasksPanelToolbarViewProps, type TasksPanelViewportProps, type TextHeadingProps, type TextLinkProps, type TextMonoProps, type TextSansProps, type TextareaCounterProps, type TextareaGroupProps, type TextareaProps, type ThemeMode, type ThemeProviderProps, type ThemeState, type ThreadPanelActionsProps, type ThreadPanelBodyProps, type ThreadPanelContentProps, type ThreadPanelFooterProps, type ThreadPanelHeaderProps, type ThreadPanelOriginalMessageProps, type ThreadPanelReplyCountProps, type ThreadPanelReplySummaryProps, type ThreadPanelRootProps, type ThreadPanelSearchCountProps, type ThreadPanelSearchProps, type ThreadPanelSearchTrailingProps, type ThreadPanelTitleMetaProps, type ThreadPanelTitleProps, type TimelineContentProps, type TimelineItemPlacement, type TimelineItemProps, type TimelineItemVariant, type TimelineLineType, type TimelineProps, type TimelineSize, type TimelineTimeProps, type TimelineTitleProps, type ToastActionProps, type ToastActionsProps, type ToastArrowProps, type ToastBodyProps, type ToastCloseProps, type ToastContentProps, type ToastData, type ToastDescriptionProps, type ToastIconProps, type ToastIntent, type ToastObject, type ToastPortalProps, type ToastPositionerProps, type ToastProgressProps, type ToastProviderProps, type ToastRootProps, type ToastTitleProps, type ToastViewportProps, type ToggleGroupItemProps, type ToggleGroupLabelProps, type ToggleGroupProps, type TooltipContentProps, type TooltipPortalProps, type TooltipProps, type TooltipProviderProps, type TooltipTriggerProps, type UseComposerSuggestionsParams, buttonVariants, cn };
package/dist/index.mjs CHANGED
@@ -1378,7 +1378,7 @@ const listRow = tv({
1378
1378
  "group/list-row relative flex w-full min-w-0 items-center gap-3 px-4 py-3 text-left",
1379
1379
  "font-sans no-underline",
1380
1380
  "transition-colors duration-100",
1381
- "outline-none focus-visible:inset-ring-2 focus-visible:inset-ring-foreground",
1381
+ "outline-none focus-visible:keyboard:inset-ring-2 focus-visible:keyboard:inset-ring-foreground",
1382
1382
  "data-selected:bg-info-soft",
1383
1383
  "[--list-row-ink:var(--foreground)] [--list-row-ink-2:var(--foreground-muted)] [--list-row-ink-3:var(--foreground-hint)]",
1384
1384
  "text-(--list-row-ink)",
@@ -4633,7 +4633,7 @@ const input = tv({ slots: { root: [
4633
4633
  "h-11 w-full px-3 py-0 font-heading text-field font-field outline-none",
4634
4634
  "rounded-control border-[1.5px] border-line-strong bg-layer-card",
4635
4635
  "text-foreground placeholder:text-foreground-hint",
4636
- "shadow-none transition-shadow duration-90 ease-out focus:shadow-focus",
4636
+ "shadow-none transition-shadow duration-90 ease-out focus-visible:shadow-focus",
4637
4637
  "data-invalid:border-danger-strong",
4638
4638
  "disabled:cursor-not-allowed disabled:border-line-hairline disabled:bg-fill-muted disabled:text-foreground-disabled disabled:placeholder:text-foreground-disabled"
4639
4639
  ] } });
@@ -4747,7 +4747,7 @@ const inputGroup = tv({
4747
4747
  "group/input-group relative flex w-full min-w-0 items-center",
4748
4748
  "has-data-[input-group-trim=inline-end]:[--ig-control-pr:0]",
4749
4749
  "h-11 overflow-hidden rounded-control border-[1.5px] border-line-strong bg-layer-card text-foreground",
4750
- "shadow-none transition-shadow duration-90 ease-out focus-within:shadow-focus",
4750
+ "shadow-none transition-shadow duration-90 ease-out has-focus-visible:shadow-focus",
4751
4751
  "has-[[data-slot=input-group-control][data-invalid]]:border-danger-strong",
4752
4752
  "has-[[data-slot=input-group-control]:disabled]:cursor-not-allowed has-[[data-slot=input-group-control]:disabled]:border-line-hairline has-[[data-slot=input-group-control]:disabled]:bg-fill-muted",
4753
4753
  "has-[[data-slot=input-group-control]:disabled]:[--ig-addon-fg:var(--foreground-disabled)]",
@@ -4935,7 +4935,7 @@ const combobox = tv({
4935
4935
  "[&_[data-slot='combobox-trigger-indicator']>svg]:shrink-0",
4936
4936
  "min-h-11 rounded-control border-[1.5px] border-line-strong bg-layer-card px-3 py-0",
4937
4937
  "font-sans text-body text-foreground",
4938
- "transition-shadow duration-90 ease-out focus-within:shadow-focus",
4938
+ "transition-shadow duration-90 ease-out has-focus-visible:shadow-focus",
4939
4939
  "[&>svg]:text-foreground-hint [&>svg:not([class*='size-'])]:size-4.5",
4940
4940
  "[&>svg:not([class*='stroke-'])]:stroke-2",
4941
4941
  "[&_[data-slot='combobox-trigger-indicator']>svg]:size-4"
@@ -4945,7 +4945,7 @@ const combobox = tv({
4945
4945
  "h-10 gap-2 border-line-hairline bg-transparent px-3 py-0",
4946
4946
  "text-callout text-foreground-hint",
4947
4947
  "[&>svg]:size-4 [&>svg]:shrink-0",
4948
- "first:rounded-t-container focus-within:inset-ring-2 focus-within:inset-ring-foreground"
4948
+ "first:rounded-t-container has-focus-visible:keyboard:inset-ring-2 has-focus-visible:keyboard:inset-ring-foreground"
4949
4949
  ],
4950
4950
  input: ["w-full outline-none"],
4951
4951
  positioner: ["isolate z-50 outline-none"],
@@ -4987,7 +4987,7 @@ const combobox = tv({
4987
4987
  chips: [
4988
4988
  "flex flex-wrap items-center",
4989
4989
  "min-h-11 gap-1.5 rounded-control border-[1.5px] border-line-strong bg-layer-card py-1.5 pr-3 pl-1.5",
4990
- "transition-shadow duration-90 ease-out focus-within:shadow-focus"
4990
+ "transition-shadow duration-90 ease-out has-focus-visible:shadow-focus"
4991
4991
  ],
4992
4992
  chip: [
4993
4993
  "inline-flex items-center",
@@ -5949,7 +5949,7 @@ const textarea = tv({ slots: { root: [
5949
5949
  "py-2.5",
5950
5950
  "rounded-control border-[1.5px] border-line-strong bg-layer-card",
5951
5951
  "text-foreground placeholder:text-foreground-hint",
5952
- "shadow-none transition-shadow duration-90 ease-out focus:shadow-focus",
5952
+ "shadow-none transition-shadow duration-90 ease-out focus-visible:shadow-focus",
5953
5953
  "data-invalid:border-danger-strong",
5954
5954
  "disabled:cursor-not-allowed disabled:resize-none disabled:border-line-hairline disabled:bg-fill-muted disabled:text-foreground-disabled disabled:placeholder:text-foreground-disabled"
5955
5955
  ] } });
@@ -8013,7 +8013,7 @@ function MessageQuotedPreviewUnavailable({ className, render, ...props }) {
8013
8013
  const messageReplies = tv({ slots: {
8014
8014
  root: [
8015
8015
  "group/message-replies flex min-w-0 w-full flex-col text-left",
8016
- "transition-colors focus-visible:outline-1 focus-visible:outline-line-strong",
8016
+ "transition-colors focus-visible:keyboard:outline-1 focus-visible:keyboard:outline-line-strong",
8017
8017
  "mt-2 max-w-[480px] gap-1 rounded-container border-0 px-2.5 py-2",
8018
8018
  "bg-fill-muted text-foreground-muted hover:press-overlay active:press-overlay",
8019
8019
  "focus-visible:outline-none focus-visible:shadow-focus"
@@ -8132,7 +8132,7 @@ const messageActionCard = tv({
8132
8132
  "flex shrink-0 cursor-pointer items-center justify-center",
8133
8133
  "[&>svg]:transition-transform [&>svg]:duration-200 motion-reduce:[&>svg]:transition-none",
8134
8134
  "data-panel-open:[&>svg]:rotate-180",
8135
- "focus-visible:outline-2 focus-visible:outline-offset-1",
8135
+ "focus-visible:keyboard:outline-2 focus-visible:keyboard:outline-offset-1",
8136
8136
  "my-0 -mr-1 size-[27px] rounded-control text-foreground-muted",
8137
8137
  "hover:bg-fill-pressed hover:text-foreground active:bg-fill-pressed",
8138
8138
  "focus-visible:outline-none focus-visible:shadow-focus",
@@ -8646,7 +8646,7 @@ const messageImageGallery = tv({
8646
8646
  ],
8647
8647
  media: "block size-full ",
8648
8648
  overlay: "absolute inset-0 flex items-center justify-center",
8649
- preview: ["absolute inset-0", "outline-none focus-visible:inset-ring-2 focus-visible:inset-ring-foreground"],
8649
+ preview: ["absolute inset-0", "outline-none focus-visible:keyboard:inset-ring-2 focus-visible:keyboard:inset-ring-foreground"],
8650
8650
  action: [
8651
8651
  "absolute z-10 hidden items-center justify-center",
8652
8652
  "focus:flex",
@@ -8867,13 +8867,13 @@ const messageVideoPreview = tv({ slots: {
8867
8867
  failureAction: [
8868
8868
  "inline-flex cursor-pointer items-center gap-1 border-0 bg-transparent p-0 text-white/75 [font:inherit]",
8869
8869
  "decoration-[1.5px] underline-offset-[3px] hover:text-white hover:underline",
8870
- "outline-1 outline-offset-2 outline-transparent focus-visible:outline-white",
8870
+ "outline-1 outline-offset-2 outline-transparent focus-visible:keyboard:outline-white",
8871
8871
  "[&_svg]:size-[13px]"
8872
8872
  ],
8873
8873
  action: [
8874
8874
  "absolute flex items-center justify-center",
8875
8875
  "transition-colors duration-150",
8876
- "outline-[1px] outline-offset-2 outline-transparent focus-visible:outline-foreground",
8876
+ "outline-[1px] outline-offset-2 outline-transparent focus-visible:keyboard:outline-foreground",
8877
8877
  "disabled:cursor-default [&_svg]:shrink-0",
8878
8878
  "top-2 right-2 size-8 rounded-control border-[1.5px] border-line-strong",
8879
8879
  "bg-layer-card text-foreground hover:bg-layer-card hover:text-foreground hover:press-overlay active:press-overlay",
@@ -9029,7 +9029,7 @@ const messageForwardedBundleItem = tv({
9029
9029
  action: {
9030
9030
  static: {},
9031
9031
  interactive: { attachment: [
9032
- "cursor-pointer transition-colors hover:border-line-strong focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-line-strong",
9032
+ "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",
9033
9033
  "hover:press-overlay active:press-overlay",
9034
9034
  "focus-visible:outline-none focus-visible:shadow-focus"
9035
9035
  ] }
@@ -10454,7 +10454,7 @@ function OtterIndicator({ status, className, ...props }) {
10454
10454
  const table = tv({ slots: {
10455
10455
  root: ["w-full border-collapse caption-bottom", "font-sans text-callout text-foreground"],
10456
10456
  header: [],
10457
- body: ["[&>tr:last-child>td]:border-b-0 [&>tr:last-child>th]:border-b-0", "[&>tr:hover]:bg-fill-pressed"],
10457
+ body: ["[&>tr:last-child>td]:border-b-0 [&>tr:last-child>th]:border-b-0", "[&>tr]:hover:bg-fill-pressed"],
10458
10458
  row: ["aria-selected:bg-info-soft aria-selected:hover:bg-info-soft", "data-[selected=true]:bg-info-soft data-[selected=true]:hover:bg-info-soft"],
10459
10459
  head: [
10460
10460
  "text-left whitespace-nowrap",
@@ -10816,7 +10816,7 @@ const files = tv({ slots: {
10816
10816
  "group/file-row flex w-full min-w-0 gap-3 px-3",
10817
10817
  "transition-colors",
10818
10818
  "items-center rounded-container border border-line-hairline bg-layer-card py-2.5 pr-1.5 pl-2.5 shadow-none",
10819
- "has-[[data-slot=file-row-open]:hover]:press-overlay has-[[data-slot=file-row-open]:active]:press-overlay",
10819
+ "[@media(hover:hover)]:has-[[data-slot=file-row-open]:hover]:press-overlay has-[[data-slot=file-row-open]:active]:press-overlay",
10820
10820
  "has-[[data-slot=file-row-open]:focus-visible]:shadow-focus"
10821
10821
  ],
10822
10822
  rowOpen: [
@@ -10914,7 +10914,7 @@ const composer = tv({ slots: {
10914
10914
  "flex w-full flex-col gap-2 p-2",
10915
10915
  "rounded-container border-[1.5px] px-3 pt-3 pb-2",
10916
10916
  "border-line-strong bg-layer-card text-foreground shadow-none",
10917
- "focus-within:shadow-focus"
10917
+ "has-focus-visible:shadow-focus"
10918
10918
  ],
10919
10919
  input: [
10920
10920
  "max-h-32 w-full resize-none bg-transparent outline-none",
@@ -12555,7 +12555,7 @@ const toastStyles = tv({
12555
12555
  "motion-reduce:transition-none",
12556
12556
  "rounded-container bg-layer-hud text-foreground-on-hud",
12557
12557
  "shadow-float",
12558
- "focus-visible:outline-2 focus-visible:outline-foreground"
12558
+ "focus-visible:keyboard:outline-2 focus-visible:keyboard:outline-foreground"
12559
12559
  ],
12560
12560
  content: [
12561
12561
  "relative grid grid-cols-[minmax(0,1fr)] items-center overflow-hidden",
@@ -12600,7 +12600,7 @@ const toastStyles = tv({
12600
12600
  "decoration-[1.5px] underline-offset-[3px] not-disabled:hover:underline",
12601
12601
  "after:absolute after:-inset-x-2 after:-inset-y-3 after:rounded-control after:content-['']",
12602
12602
  "active:after:bg-foreground-on-hud/15",
12603
- "focus-visible:outline-2 focus-visible:outline-foreground-on-hud",
12603
+ "focus-visible:keyboard:outline-2 focus-visible:keyboard:outline-foreground-on-hud",
12604
12604
  "[&_svg]:size-4"
12605
12605
  ],
12606
12606
  arrow: [
@@ -12696,7 +12696,7 @@ const toastAction = tv({ slots: {
12696
12696
  "decoration-[1.5px] underline-offset-[3px] not-disabled:not-aria-disabled:hover:underline",
12697
12697
  "after:absolute after:-inset-x-2 after:-inset-y-3 after:rounded-control after:content-['']",
12698
12698
  "active:after:bg-foreground-on-hud/15",
12699
- "outline-1 outline-offset-2 outline-transparent focus-visible:outline-2 focus-visible:outline-foreground-on-hud",
12699
+ "outline-1 outline-offset-2 outline-transparent focus-visible:keyboard:outline-2 focus-visible:keyboard:outline-foreground-on-hud",
12700
12700
  "disabled:pointer-events-none disabled:opacity-40 aria-disabled:cursor-not-allowed aria-disabled:opacity-40",
12701
12701
  "data-[loading=true]:cursor-wait data-[loading=true]:opacity-100",
12702
12702
  "[&_svg]:pointer-events-none [&_svg]:shrink-0 **:data-icon:size-[1em] [&_svg:not([class*='size-'])]:size-3"
@@ -12708,7 +12708,7 @@ const createToastManager = Toast.createToastManager;
12708
12708
  const useToastManager = Toast.useToastManager;
12709
12709
  const defaultToastManager = createToastManager();
12710
12710
  function addDefaultToast(intent, title, options = {}) {
12711
- const { action, contentClassName, dismissible, icon, priority, progress, ...toastOptions } = options;
12711
+ const { action, contentClassName, dismissible, icon, leading, priority, progress, ...toastOptions } = options;
12712
12712
  return defaultToastManager.add({
12713
12713
  ...toastOptions,
12714
12714
  actionProps: action ? {
@@ -12723,7 +12723,8 @@ function addDefaultToast(intent, title, options = {}) {
12723
12723
  contentClassName,
12724
12724
  hasClose: dismissible,
12725
12725
  hasIcon: icon,
12726
- hasProgress: progress
12726
+ hasProgress: progress,
12727
+ leading
12727
12728
  }
12728
12729
  });
12729
12730
  }
@@ -12992,7 +12993,7 @@ function DefaultToastItem({ placement, toast: toastObject }) {
12992
12993
  const showDescription = Boolean(toastObject.description);
12993
12994
  const showAction = Boolean(toastObject.actionProps?.children);
12994
12995
  const showClose = toastObject.data?.hasClose !== false;
12995
- const showIcon = toastObject.data?.hasIcon !== false;
12996
+ const showIcon = hasLeading(toastObject) || toastObject.data?.hasIcon !== false;
12996
12997
  const progressDuration = toastObject.timeout ?? timeout;
12997
12998
  const showProgress = toastObject.data?.hasProgress === true && toastObject.type !== "loading" && progressDuration > 0;
12998
12999
  return /* @__PURE__ */ jsx(ToastRoot, {
@@ -13015,7 +13016,15 @@ const TOAST_PIXEL = {
13015
13016
  warning: "warning",
13016
13017
  error: "warning"
13017
13018
  };
13019
+ function hasLeading(toastObject) {
13020
+ const leading = toastObject.data?.leading;
13021
+ return leading !== void 0 && leading !== null && leading !== false;
13022
+ }
13018
13023
  function DefaultToastIcon({ toast: toastObject }) {
13024
+ if (hasLeading(toastObject)) return /* @__PURE__ */ jsx(ToastIcon, {
13025
+ "aria-hidden": true,
13026
+ children: toastObject.data?.leading
13027
+ });
13019
13028
  const intent = toastObject.data?.intent ?? getToastTone(toastObject.type);
13020
13029
  return /* @__PURE__ */ jsx(ToastIcon, { children: /* @__PURE__ */ jsx(Status, {
13021
13030
  "aria-hidden": true,
@@ -13728,10 +13737,10 @@ const resizable = tv({ slots: {
13728
13737
  "before:bg-transparent",
13729
13738
  "hover:before:bg-foreground-muted",
13730
13739
  "data-[separator=active]:before:bg-foreground-muted",
13731
- "focus-visible:before:w-0.5 focus-visible:before:bg-foreground focus-visible:before:outline-none",
13740
+ "focus-visible:keyboard:before:w-0.5 focus-visible:keyboard:before:bg-foreground focus-visible:before:outline-none",
13732
13741
  "data-[orientation=horizontal]:before:top-[5px] data-[orientation=horizontal]:before:left-0",
13733
13742
  "data-[orientation=horizontal]:before:h-px data-[orientation=horizontal]:before:w-full",
13734
- "data-[orientation=horizontal]:focus-visible:before:h-0.5"
13743
+ "data-[orientation=horizontal]:focus-visible:keyboard:before:h-0.5"
13735
13744
  ]
13736
13745
  } });
13737
13746
  //#endregion
@@ -15451,7 +15460,7 @@ const taskChip = tv({
15451
15460
  "[&>svg]:shrink-0 [&>svg]:size-3",
15452
15461
  "no-underline select-text",
15453
15462
  "transition-[filter,opacity] duration-100",
15454
- "focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-line-strong",
15463
+ "focus-visible:keyboard:outline-2 focus-visible:keyboard:outline-offset-2 focus-visible:keyboard:outline-line-strong",
15455
15464
  "rounded-chip border-0",
15456
15465
  "font-sans font-semibold text-foreground",
15457
15466
  "[&>svg:not([data-slot=task-status-icon])]:-mx-0.5 [&>svg[data-slot=task-status-icon]]:size-[9px]",
@@ -15895,7 +15904,7 @@ const activityInboxToolbar = tv({ slots: {
15895
15904
  "md:h-11 md:flex-nowrap md:py-0",
15896
15905
  "border-b border-line-hairline bg-layer-canvas px-4",
15897
15906
  "**:data-[activity-inbox-action=sort]:text-foreground-muted",
15898
- "[&_[data-activity-inbox-action=sort]:hover]:text-foreground"
15907
+ "**:data-[activity-inbox-action=sort]:hover:text-foreground"
15899
15908
  ],
15900
15909
  selectionCount: ["mr-1", "text-footnote font-bold text-foreground"]
15901
15910
  } });
@@ -15943,7 +15952,7 @@ const inboxItem = tv({
15943
15952
  "hover:bg-fill-pressed",
15944
15953
  "data-[active=true]:bg-info-soft data-[active=true]:hover:bg-info-soft",
15945
15954
  "data-disabled:pointer-events-none data-disabled:hover:bg-transparent",
15946
- "has-[[data-slot=inbox-item-open]:focus-visible]:inset-ring-2 has-[[data-slot=inbox-item-open]:focus-visible]:inset-ring-foreground",
15955
+ "has-[[data-slot=inbox-item-open]:focus-visible]:keyboard:inset-ring-2 has-[[data-slot=inbox-item-open]:focus-visible]:keyboard:inset-ring-foreground",
15947
15956
  "not-data-[density=compact]:has-data-[slot=inbox-item-trailing]:[--inbox-item-content-display:grid] not-data-[density=compact]:has-data-[slot=inbox-item-trailing]:[--inbox-item-content-end:-1]"
15948
15957
  ],
15949
15958
  itemTrigger: ["absolute inset-0 z-0 outline-none"],
@@ -16021,7 +16030,7 @@ const inboxItem = tv({
16021
16030
  "[&>[data-slot=panel-toggle-action][data-pressed]]:border-transparent",
16022
16031
  "[&>[data-slot=panel-toggle-action][data-pressed]]:bg-transparent",
16023
16032
  "[&>[data-slot=panel-toggle-action][data-pressed]]:text-foreground",
16024
- "[&>[data-slot=panel-toggle-action][data-pressed]:hover]:bg-fill-pressed",
16033
+ "[&>[data-slot=panel-toggle-action][data-pressed]]:hover:bg-fill-pressed",
16025
16034
  "pointer-coarse:gap-3",
16026
16035
  "pointer-coarse:*:data-[slot=panel-action]:after:absolute pointer-coarse:*:data-[slot=panel-action]:after:-inset-1.5",
16027
16036
  "pointer-coarse:*:data-[slot=panel-toggle-action]:after:absolute pointer-coarse:*:data-[slot=panel-toggle-action]:after:-inset-1.5"
@@ -16428,7 +16437,7 @@ const searchEntity = tv({ slots: {
16428
16437
  "hover:bg-fill-pressed active:bg-fill-pressed",
16429
16438
  "disabled:cursor-default disabled:hover:bg-transparent disabled:active:bg-transparent",
16430
16439
  "data-[selected=true]:bg-brand-soft data-[selected=true]:hover:bg-brand-soft",
16431
- "outline-none focus-visible:inset-ring-2 focus-visible:inset-ring-foreground"
16440
+ "outline-none focus-visible:keyboard:inset-ring-2 focus-visible:keyboard:inset-ring-foreground"
16432
16441
  ],
16433
16442
  entityLeading: ["relative flex shrink-0"],
16434
16443
  entityIcon: [
@@ -16567,7 +16576,7 @@ const searchMessage = tv({ slots: {
16567
16576
  "hover:bg-fill-pressed active:bg-fill-pressed",
16568
16577
  "disabled:cursor-default disabled:hover:bg-transparent disabled:active:bg-transparent",
16569
16578
  "data-[selected=true]:bg-brand-soft data-[selected=true]:hover:bg-brand-soft",
16570
- "outline-none focus-visible:inset-ring-2 focus-visible:inset-ring-foreground"
16579
+ "outline-none focus-visible:keyboard:inset-ring-2 focus-visible:keyboard:inset-ring-foreground"
16571
16580
  ],
16572
16581
  messageHeader: [
16573
16582
  "flex items-center",
@@ -16842,6 +16851,191 @@ function SearchTriggerShortcut({ className, ...props }) {
16842
16851
  });
16843
16852
  }
16844
16853
  //#endregion
16854
+ //#region src/lib/input-modality.ts
16855
+ const INPUT_MODALITY_ATTRIBUTE = "data-input-modality";
16856
+ /** Keys that move focus wherever focus is. */
16857
+ const NAVIGATION_KEYS = /* @__PURE__ */ new Set(["Tab", "F6"]);
16858
+ /** Keys that navigate a widget, but move the caret in a text field. */
16859
+ const CARET_KEYS = /* @__PURE__ */ new Set([
16860
+ "ArrowUp",
16861
+ "ArrowDown",
16862
+ "ArrowLeft",
16863
+ "ArrowRight",
16864
+ "Home",
16865
+ "End",
16866
+ "PageUp",
16867
+ "PageDown"
16868
+ ]);
16869
+ /**
16870
+ * Keys that activate or dismiss a control, but belong to editing in a text
16871
+ * field. Esc in the composer closes a suggestion list or cancels an edit; it
16872
+ * must not turn the composer's ring on for someone using a mouse.
16873
+ */
16874
+ const ACTIVATION_KEYS = /* @__PURE__ */ new Set([
16875
+ "Enter",
16876
+ " ",
16877
+ "Spacebar",
16878
+ "Escape"
16879
+ ]);
16880
+ /** Input types that take typed text (and whose arrow keys move a caret or step a value). */
16881
+ const TEXT_INPUT_TYPES = /* @__PURE__ */ new Set([
16882
+ "text",
16883
+ "search",
16884
+ "url",
16885
+ "tel",
16886
+ "email",
16887
+ "password",
16888
+ "number",
16889
+ "date",
16890
+ "datetime-local",
16891
+ "month",
16892
+ "time",
16893
+ "week"
16894
+ ]);
16895
+ /** `isContentEditable`, for DOMs that don't implement it. */
16896
+ const EDITABLE = "[contenteditable=\"\"], [contenteditable=\"true\"], [contenteditable=\"plaintext-only\"]";
16897
+ function isTextEntry(target) {
16898
+ if (!target || typeof target !== "object" || !("nodeType" in target)) return false;
16899
+ const element = target;
16900
+ if (element.tagName === "TEXTAREA") return true;
16901
+ if (element.tagName === "INPUT") return TEXT_INPUT_TYPES.has(element.type);
16902
+ return element.isContentEditable === true || element.closest?.(EDITABLE) != null;
16903
+ }
16904
+ function keyboardNavigates(event) {
16905
+ if (event.metaKey || event.ctrlKey) return false;
16906
+ if (NAVIGATION_KEYS.has(event.key)) return true;
16907
+ if (!CARET_KEYS.has(event.key) && !ACTIVATION_KEYS.has(event.key)) return false;
16908
+ return !isTextEntry(eventTarget(event));
16909
+ }
16910
+ /** A key that edits in a text field, but may also send focus out of it (Esc closing a dialog, Enter submitting). */
16911
+ function editingKeyInField(event) {
16912
+ if (event.metaKey || event.ctrlKey) return null;
16913
+ if (!CARET_KEYS.has(event.key) && !ACTIVATION_KEYS.has(event.key)) return null;
16914
+ const target = eventTarget(event);
16915
+ return isTextEntry(target) ? target : null;
16916
+ }
16917
+ /** The focused element may sit in a shadow root; the path's first entry is it. */
16918
+ function eventTarget(event) {
16919
+ return event.composedPath?.()[0] ?? event.target;
16920
+ }
16921
+ /**
16922
+ * A pointer event a screen reader synthesizes (VoiceOver, TalkBack, NVDA
16923
+ * activating an element): it has no real contact area. Same test as React
16924
+ * Aria's `isVirtualPointerEvent`.
16925
+ */
16926
+ function isVirtualPointerEvent(event) {
16927
+ return event.width === 0 && event.height === 0 || event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === "mouse";
16928
+ }
16929
+ /** How long after a key or a pointer press a focus move still counts as caused by it. */
16930
+ const CAUSE_WINDOW_MS = 1e3;
16931
+ const installations = /* @__PURE__ */ new WeakMap();
16932
+ /**
16933
+ * Track the input modality on `doc.documentElement` as
16934
+ * `data-input-modality="pointer" | "keyboard" | "virtual"`. Only `pointer`
16935
+ * hides focus rings, so every uncertain case keeps them visible:
16936
+ *
16937
+ * - **Unknown at first.** No attribute until there is evidence, so a keyboard
16938
+ * user who hasn't pressed Tab yet still sees focus moved by code. The first
16939
+ * real mouse movement or press makes it `pointer`.
16940
+ * - **Keyboard**: Tab and F6 anywhere; the arrows, Home, End, Page Up, Page
16941
+ * Down, Enter, Space and Esc outside a text field. Inside a text field those
16942
+ * keys edit and leave the modality alone, unless focus leaves the field
16943
+ * right after (Esc closing a dialog, Enter submitting): then it is
16944
+ * `keyboard`. Typing and Cmd or Ctrl shortcuts never count; a shortcut that
16945
+ * moves focus to a control is caught by the next rule.
16946
+ * - **Virtual**: focus that arrives with no key or pointer press just before
16947
+ * it (a screen reader's browse cursor, a timer), and a screen reader's
16948
+ * synthesized pointer press. Rings show.
16949
+ * - **Pointer**: a real pointer press, or real pointer movement while the
16950
+ * modality is still unknown or virtual.
16951
+ *
16952
+ * `ThemeProvider` calls this for you. Installing twice adds no second set of
16953
+ * listeners. Returns a function that undoes this installation; the listeners
16954
+ * and the attribute go once every installation is undone.
16955
+ */
16956
+ function installInputModality(doc) {
16957
+ const target = doc ?? (typeof document === "undefined" ? void 0 : document);
16958
+ if (!target) return () => void 0;
16959
+ let installation = installations.get(target);
16960
+ if (!installation) {
16961
+ const root = target.documentElement;
16962
+ const current = () => root.getAttribute(INPUT_MODALITY_ATTRIBUTE);
16963
+ const set = (modality) => {
16964
+ if (current() !== modality) root.setAttribute(INPUT_MODALITY_ATTRIBUTE, modality);
16965
+ };
16966
+ const now = () => target.defaultView?.performance?.now() ?? Date.now();
16967
+ let lastInputAt = -Infinity;
16968
+ let editingIn = null;
16969
+ let editingAt = -Infinity;
16970
+ const onPointerDown = (event) => {
16971
+ lastInputAt = now();
16972
+ editingIn = null;
16973
+ set(isVirtualPointerEvent(event) ? "virtual" : "pointer");
16974
+ };
16975
+ const onPointerMove = (event) => {
16976
+ if (current() === "keyboard" || current() === "pointer") return;
16977
+ if (event.pointerType === "mouse" && !isVirtualPointerEvent(event)) set("pointer");
16978
+ };
16979
+ const onKeyDown = (event) => {
16980
+ if (event.key === "Shift" || event.key === "Control" || event.key === "Alt" || event.key === "Meta") return;
16981
+ lastInputAt = now();
16982
+ if (keyboardNavigates(event)) {
16983
+ editingIn = null;
16984
+ set("keyboard");
16985
+ return;
16986
+ }
16987
+ const field = editingKeyInField(event);
16988
+ if (field) {
16989
+ editingIn = field;
16990
+ editingAt = now();
16991
+ }
16992
+ };
16993
+ const onFocusIn = (event) => {
16994
+ const focused = eventTarget(event);
16995
+ if (editingIn && now() - editingAt < CAUSE_WINDOW_MS) {
16996
+ if (!focused || focused !== editingIn && !editingIn.contains(focused)) {
16997
+ editingIn = null;
16998
+ set("keyboard");
16999
+ return;
17000
+ }
17001
+ return;
17002
+ }
17003
+ if (now() - lastInputAt > CAUSE_WINDOW_MS) set("virtual");
17004
+ };
17005
+ const options = {
17006
+ capture: true,
17007
+ passive: true
17008
+ };
17009
+ target.addEventListener("pointerdown", onPointerDown, options);
17010
+ target.addEventListener("pointermove", onPointerMove, options);
17011
+ target.addEventListener("keydown", onKeyDown, options);
17012
+ target.addEventListener("focusin", onFocusIn, options);
17013
+ installation = {
17014
+ count: 0,
17015
+ remove: () => {
17016
+ target.removeEventListener("pointerdown", onPointerDown, options);
17017
+ target.removeEventListener("pointermove", onPointerMove, options);
17018
+ target.removeEventListener("keydown", onKeyDown, options);
17019
+ target.removeEventListener("focusin", onFocusIn, options);
17020
+ root.removeAttribute(INPUT_MODALITY_ATTRIBUTE);
17021
+ }
17022
+ };
17023
+ installations.set(target, installation);
17024
+ }
17025
+ installation.count += 1;
17026
+ let undone = false;
17027
+ const current = installation;
17028
+ return () => {
17029
+ if (undone) return;
17030
+ undone = true;
17031
+ current.count -= 1;
17032
+ if (current.count === 0) {
17033
+ current.remove();
17034
+ installations.delete(target);
17035
+ }
17036
+ };
17037
+ }
17038
+ //#endregion
16845
17039
  //#region src/lib/theme/theme-provider.tsx
16846
17040
  function readStoredMode(storageKey, fallback) {
16847
17041
  if (typeof window === "undefined" || !storageKey) return fallback;
@@ -16883,6 +17077,7 @@ function ThemeProvider({ mode, defaultMode = "light", onModeChange, storageKey,
16883
17077
  resolvedMode,
16884
17078
  setMode
16885
17079
  ]);
17080
+ useEffect(() => syncDom ? installInputModality() : void 0, [syncDom]);
16886
17081
  useEffect(() => {
16887
17082
  if (!syncDom) return;
16888
17083
  const root = document.documentElement;
@@ -16896,4 +17091,4 @@ function ThemeProvider({ mode, defaultMode = "light", onModeChange, storageKey,
16896
17091
  });
16897
17092
  }
16898
17093
  //#endregion
16899
- 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, MessageItemEmbedded, MessageItemFooter, MessageItemGutter, MessageItemHeader, MessageItemInlineStatus, MessageItemMeta, MessageItemReadReceipt, MessageItemSavedIndicator, MessageItemSearchMatch, MessageItemSender, MessageItemSenderBadges, MessageItemSenderButton, 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, buildMessageImageGalleryRows, buttonVariants, classifyMessageImageAspect, cn, createMessageTextSelectionAnchor, createToastManager, getTextSelectionFocusRect, taskStatusSoft, taskStatusStrong, textLinkVariants, toast, useComposerSuggestions, useOrderedTabs, useTheme, useToastManager };
17094
+ 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, MessageItemEmbedded, MessageItemFooter, MessageItemGutter, MessageItemHeader, MessageItemInlineStatus, MessageItemMeta, MessageItemReadReceipt, MessageItemSavedIndicator, MessageItemSearchMatch, MessageItemSender, MessageItemSenderBadges, MessageItemSenderButton, 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, buildMessageImageGalleryRows, buttonVariants, classifyMessageImageAspect, cn, createMessageTextSelectionAnchor, createToastManager, getTextSelectionFocusRect, installInputModality, taskStatusSoft, taskStatusStrong, textLinkVariants, toast, useComposerSuggestions, useOrderedTabs, useTheme, useToastManager };
package/dist/style.css CHANGED
@@ -148,7 +148,7 @@
148
148
  transform: var(--r-float-button-transform-active);
149
149
  }
150
150
 
151
- &:focus-visible {
151
+ &:focus-visible:not(:where(:root[data-input-modality="pointer"] *)) {
152
152
  outline: var(--r-float-button-outline);
153
153
  outline-offset: var(--r-float-button-outline-offset);
154
154
  }
@@ -705,7 +705,7 @@
705
705
  outline: none;
706
706
  }
707
707
 
708
- &:focus-visible:after {
708
+ &:focus-visible:not(:where(:root[data-input-modality="pointer"] *)):after {
709
709
  outline: var(--r-steps-focus-outline);
710
710
  }
711
711
 
@@ -1016,7 +1016,6 @@
1016
1016
  min-width: 0;
1017
1017
  min-height: 44px;
1018
1018
  color: var(--foreground);
1019
- box-shadow: none;
1020
1019
  border-radius: 8px;
1021
1020
  outline: 0;
1022
1021
  align-items: center;
@@ -1028,10 +1027,6 @@
1028
1027
  display: flex;
1029
1028
  }
1030
1029
 
1031
- .r-combobox-select__control:focus-within {
1032
- box-shadow: var(--focus-ring);
1033
- }
1034
-
1035
1030
  .r-combobox-select__input {
1036
1031
  box-sizing: border-box;
1037
1032
  width: 100%;
package/dist/styles.css CHANGED
@@ -23,6 +23,26 @@
23
23
  }
24
24
  }
25
25
 
26
+ /* Focus indicators show only after keyboard navigation
27
+ (design/foundations/states.md#focus). installInputModality, which
28
+ ThemeProvider runs, keeps `data-input-modality` on the root: "pointer" after
29
+ a click or a tap, "keyboard" after a navigation key. While it says "pointer"
30
+ the focus ring is empty; with no attribute at all (no script, or the tracker
31
+ not installed) every ring shows. Each selector outranks a scope that declares
32
+ --focus-ring in foundation.css: a mode class on the root, the system-dark
33
+ fallback (:root:not(.light):not(.dark)), and a light or dark island. */
34
+ :root[data-input-modality="pointer"],
35
+ :root[data-input-modality="pointer"]:not(.light):not(.dark),
36
+ :root[data-input-modality="pointer"] :is(.light, .dark) {
37
+ --focus-ring: 0 0 transparent;
38
+ }
39
+
40
+ /* The same gate for a focus indicator not drawn with --focus-ring (an outline,
41
+ an inset ring): it matches unless the last input was a pointer. Stack it on
42
+ the state, `focus-visible:keyboard:outline-2`. Anchored on the element's own
43
+ class, so it costs WebKit no ancestor dependency on unrelated elements. */
44
+ @custom-variant keyboard (&:not(:where(:root[data-input-modality="pointer"] *)));
45
+
26
46
  @theme {
27
47
  --color-black: oklch(0 0 0);
28
48
  --color-white: oklch(1 0 0);
package/dist/tokens.json CHANGED
@@ -2496,6 +2496,7 @@
2496
2496
  "$type": "shadow",
2497
2497
  "ring": {
2498
2498
  "$value": "0 0 0 2px oklch(1 0 0), 0 0 0 4px oklch(0.1813 0.005 17.62)",
2499
+ "$description": "The focus indicator. It shows only after keyboard navigation: styles.css empties it while the root carries data-input-modality=\"pointer\", which installInputModality sets after a click or a tap.",
2499
2500
  "$extensions": {
2500
2501
  "build.botiverse.raft": {
2501
2502
  "css": true,
package/dist/wip.mjs CHANGED
@@ -170,7 +170,7 @@ function ComboboxSelect({ options, multiple, value, defaultValue, onValueChange,
170
170
  const inputClassName = ["r-combobox-select__input", typeof inputProps?.className === "string" ? inputProps.className : null].filter(Boolean).join(" ");
171
171
  const controlClassName = [
172
172
  css,
173
- "r-combobox-select__control",
173
+ "r-combobox-select__control has-focus-visible:shadow-focus",
174
174
  className
175
175
  ].filter(Boolean).join(" ");
176
176
  const positionerClassName = ["r-combobox-select__positioner", typeof positionerProps?.className === "string" ? positionerProps.className : null].filter(Boolean).join(" ");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@botiverse/raft-ui",
3
- "version": "0.9.4",
3
+ "version": "0.9.6",
4
4
  "description": "React components and CSS foundations for the Raft Design System.",
5
5
  "keywords": [
6
6
  "agent-skills",
@@ -36,7 +36,7 @@ Judge whether the surface speaks Raft's material language:
36
36
  - Corners follow the shape scale in `styles.css`: sticker, chip, control, container, dialog; fully round only for switches and radios. Flag corners off the scale or mixed within one group.
37
37
  - Space Grotesk is what people say; Space Mono is what machines write (ids, times, counts, events, code). Flag machine output set in sans and prose set in mono.
38
38
  - Yellow and pink must carry semantic roles. Flag decorative yellow/pink fields that compete with primary actions or status.
39
- - Hover and pressed keep a control's resting color under an ink wash; focus-visible is the ink ring. Flag a state that swaps a sticker's color or that is indistinguishable from rest.
39
+ - Hover and pressed keep a control's resting color under an ink wash; focus-visible is the ink ring, shown only after keyboard navigation. Flag a state that swaps a sticker's color or that is indistinguishable from rest, and a ring that appears after a click or a tap.
40
40
  - Stickers, ink edges, and bold type create high baseline intensity. Require a clear entry point and quieter secondary information so the surface does not shout uniformly.
41
41
 
42
42
  Ask: does every sticker, line, and shadow carry a role, or is the surface merely loud?
@@ -63,7 +63,7 @@ Custom fonts use `--heading-font`, `--sans-font`, and `--mono-font`.
63
63
 
64
64
  | Provider | Responsibility |
65
65
  | ----------------- | --------------------------------------------------------------------------------------------------------------------- |
66
- | `ThemeProvider` | Color mode, persistence, and document mode synchronization |
66
+ | `ThemeProvider` | Color mode, persistence, document mode synchronization, and the input modality that keeps focus rings to the keyboard |
67
67
  | `TooltipProvider` | Shared tooltip behavior when using Tooltip |
68
68
  | `ToastProvider` | Toast manager when using the toast API; see the [Toast](https://raft-design.botiverse.build/components/toast.md) page |
69
69
 
@@ -74,6 +74,7 @@ Custom fonts use `--heading-font`, `--sans-font`, and `--mono-font`.
74
74
  ## Mode and portal boundaries
75
75
 
76
76
  - `ThemeProvider` synchronizes `document.documentElement` by default. Nested scopes need `syncDom={false}` and the matching `light`/`dark` class on their root.
77
+ - Focus rings show only after keyboard navigation, not after a click, a tap or typing. `ThemeProvider` installs the tracker (`data-input-modality` on `document.documentElement`); an app without it calls `installInputModality()` once on the client. Draw an indicator with `focus-visible:shadow-focus` (`has-focus-visible:shadow-focus` on a group); one that is not the token takes the `keyboard:` variant (`focus-visible:keyboard:outline-2`). See [States](https://raft-design.botiverse.build/foundations/states.md#focus).
77
78
  - Base UI overlays portal to `document.body`. An app root with `isolation: isolate` keeps its stacking contexts below those surfaces. Embedded previews can use `portalProps.container` (toasts: `ToastProvider portalContainer`) to keep overlays inside their scope.
78
79
  - SSR apps with persisted mode need to restore it before first paint to avoid a theme flash.
79
80