@flytedan/flytebot-design-system 0.27.1 → 0.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -692,8 +692,13 @@ interface BannerProps {
692
692
  title: React.ReactNode;
693
693
  detail?: React.ReactNode;
694
694
  actions?: React.ReactNode;
695
+ /** MP-243 Q3: a Banner reporting a failure (danger) or something invalid the user must
696
+ * fix (warn) is a live-region announcement, not decoration — `role="alert"` for those
697
+ * interrupts and announces immediately, `role="status"` for info/ok announces politely
698
+ * once idle. Defaults by tone; a caller can still override either way. */
699
+ role?: "alert" | "status";
695
700
  }
696
- declare function Banner({ tone, title, detail, actions }: BannerProps): React.JSX.Element;
701
+ declare function Banner({ tone, title, detail, actions, role }: BannerProps): React.JSX.Element;
697
702
 
698
703
  /**
699
704
  * A pill of state. Badges never carry actions — if it is clickable it is a Tag.
@@ -1075,17 +1080,105 @@ interface FilterFieldSelect extends FilterFieldBase {
1075
1080
  type: "select";
1076
1081
  options: FilterFieldOption[];
1077
1082
  }
1078
- /** A declared filter field. Add a variant here (and a branch below) for a new value picker. */
1079
- type FilterField = FilterFieldText | FilterFieldSelect;
1083
+ /** MP-243: include/exclude, shared by every field whose value is a set of options. */
1084
+ type FilterOperator = "in" | "notIn";
1085
+ interface FilterMultiSelectValue {
1086
+ operator: FilterOperator;
1087
+ values: FilterFieldOption[];
1088
+ }
1089
+ interface FilterResolveMatch {
1090
+ token: string;
1091
+ value: string;
1092
+ label: string;
1093
+ }
1094
+ interface FilterResolveResult {
1095
+ matched: FilterResolveMatch[];
1096
+ unmatched: string[];
1097
+ }
1098
+ interface FilterFieldMultiSelect extends FilterFieldBase {
1099
+ type: "multiSelect";
1100
+ /** Sync option list — filtered client-side by the typed query. Omit when `loadOptions`
1101
+ * is given; the two are mutually exclusive (async wins if both are somehow set). */
1102
+ options?: FilterFieldOption[];
1103
+ /** Async option source for long lists (schools, imports, …), called ~300ms after the
1104
+ * last keystroke with the current query (possibly "") and an AbortSignal that fires
1105
+ * once a newer query has superseded this call (MP-243 A6) — pass it straight to
1106
+ * `fetch`/whatever transport does the lookup so a superseded request is actually
1107
+ * cancelled, not just ignored on arrival. A rejection (that isn't the abort itself)
1108
+ * renders as a visible error with a Retry action; it is never folded into "no
1109
+ * matches", since a search that FAILED is a different thing to tell the user than a
1110
+ * search that found nothing. */
1111
+ loadOptions?: (query: string, signal: AbortSignal) => Promise<FilterFieldOption[]>;
1112
+ /** MP-243 A1: paste-a-list as a second input mode for THIS SAME field — search and
1113
+ * paste both build one FilterMultiSelectValue for one dimension, so a school found by
1114
+ * typing and a school found by pasting a list land as two entries in the same set
1115
+ * instead of two separate filters that would AND together. Presence of `resolve` is
1116
+ * what turns on the Search/Paste mode switch; omit it for a search-only field. Never
1117
+ * called with an empty token list, and tokens are de-duplicated before the call. */
1118
+ resolve?: (tokens: string[]) => Promise<FilterResolveResult>;
1119
+ placeholder?: string;
1120
+ /** Placeholder for the paste textarea, when `resolve` is given. Falls back to `placeholder`. */
1121
+ pastePlaceholder?: string;
1122
+ /** MP-243 A2: restrict which operators this field's toggle offers, e.g. `["in"]` for a
1123
+ * dimension that only ever means "is any of" and never "is none of" — a single-operator
1124
+ * list hides the toggle entirely and that operator applies unconditionally, so an app
1125
+ * can express an "any"/"is"-only dimension exactly rather than showing a switch with
1126
+ * nothing to switch to. Defaults to both `["in", "notIn"]`. */
1127
+ operators?: FilterOperator[];
1128
+ }
1129
+ interface FilterRangeValue {
1130
+ min?: number;
1131
+ max?: number;
1132
+ }
1133
+ interface FilterFieldRange extends FilterFieldBase {
1134
+ type: "range";
1135
+ /** Bounds enforced on each stepper/typed value — NOT the same as the filter's own
1136
+ * min/max VALUE (FilterRangeValue), which is what the user is narrowing to. */
1137
+ min?: number;
1138
+ max?: number;
1139
+ step?: number;
1140
+ minLabel?: string;
1141
+ maxLabel?: string;
1142
+ minPlaceholder?: string;
1143
+ maxPlaceholder?: string;
1144
+ }
1145
+ type FilterDateValue = {
1146
+ kind: "withinDays";
1147
+ days: number;
1148
+ } | {
1149
+ kind: "between";
1150
+ from: string;
1151
+ to: string;
1152
+ };
1153
+ interface FilterFieldDate extends FilterFieldBase {
1154
+ type: "date";
1155
+ /** Default days shown the first time "within the last N days" is picked — shown, not
1156
+ * written: nothing is set until the user changes it or confirms it (MP-243 A4). */
1157
+ defaultDays?: number;
1158
+ }
1159
+ /** A declared filter field. Add a variant here (and a branch below) for a new value
1160
+ * picker. text/select keep their original bare-string value shape unchanged, so an
1161
+ * existing consumer needs no migration; every other variant's value is a small typed
1162
+ * object of its own (see FilterValue). */
1163
+ type FilterField = FilterFieldText | FilterFieldSelect | FilterFieldMultiSelect | FilterFieldRange | FilterFieldDate;
1164
+ /** MP-243 A7: the value shape a given declared field reads/writes, so a consumer can type
1165
+ * its own `filters` record precisely instead of `Record<string, unknown>` — e.g.
1166
+ * `Record<"schools", FilterValue<typeof schoolsField>>`. */
1167
+ type FilterValue<F extends FilterField> = F extends FilterFieldText ? string : F extends FilterFieldSelect ? string : F extends FilterFieldMultiSelect ? FilterMultiSelectValue : F extends FilterFieldRange ? FilterRangeValue : F extends FilterFieldDate ? FilterDateValue : never;
1080
1168
  interface FilterBarProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, "onChange"> {
1081
1169
  /** Every filter a consumer can add. Order here is the order in the "add filter" list. */
1082
1170
  fields: FilterField[];
1083
1171
  /** Straight off useServerTable — a value of undefined/""/false reads as "not set",
1084
- * same convention that hook already uses for activeFilterCount. */
1172
+ * same convention that hook already uses for activeFilterCount. multiSelect/range/
1173
+ * date values are objects instead (see isFieldSet). */
1085
1174
  filters: Record<string, unknown>;
1086
- /** Fires on every value edit. Maps 1:1 onto useServerTable's setFilter(id, value). */
1175
+ /** Fires on every value edit. Maps 1:1 onto useServerTable's setFilter(id, value).
1176
+ * FilterBar only ever calls this with a COMPLETE, valid value for the field — an
1177
+ * emptied selection, a one-sided date range, an invalid numeric range or a cleared
1178
+ * bound go through onFilterRemove (or nothing) instead (MP-243 A3). */
1087
1179
  onFilterChange: (key: string, value: unknown) => void;
1088
- /** Fires when a chip's × is clicked. Maps 1:1 onto useServerTable's clearFilter(id). */
1180
+ /** Fires when a chip's × is clicked, or when an edit leaves a field with no valid
1181
+ * value. Maps 1:1 onto useServerTable's clearFilter(id). */
1089
1182
  onFilterRemove: (key: string) => void;
1090
1183
  /** Which edge the "add filter" popover aligns to. Default "left" — the trigger sits
1091
1184
  * at the end of a left-to-right chip row, so its menu opens under its left edge. */
@@ -1095,18 +1188,26 @@ interface FilterBarProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, "on
1095
1188
  /**
1096
1189
  * FilterBar — the declarative filter system for a server-driven list.
1097
1190
  *
1098
- * A consumer declares fields once (`{ key, label, type: "text" | "select", ... }`) and
1099
- * hands this a live `filters` record plus onFilterChange/onFilterRemove — the same three
1100
- * things useServerTable already exposes, so wiring one up is copy-paste, not glue code.
1101
- * Every active filter renders as a Tag chip; this component holds no shadow copy of
1102
- * filter values, only the transient "which field's popover/input is open right now" UI
1103
- * state (`panel`), the same way SortMenu holds `open` but never sort state itself.
1191
+ * A consumer declares fields once (`{ key, label, type, ... }`) and hands this a live
1192
+ * `filters` record plus onFilterChange/onFilterRemove — the same three things
1193
+ * useServerTable already exposes, so wiring one up is copy-paste, not glue code. Every
1194
+ * active filter renders as a Tag chip; this component holds no shadow copy of filter
1195
+ * values, only the transient "which field's popover/input is open right now" UI state
1196
+ * (`panel`), the same way SortMenu holds `open` but never sort state itself.
1197
+ *
1198
+ * Every floating surface — a field's edit panel and the "add filter" menu — is a real
1199
+ * Popover (or Menu-in-a-Popover) from this kit's own actions module (MP-243 A5): viewport
1200
+ * clamping, nested-layer handling, Escape, and focus-return-to-the-chip all come from
1201
+ * there, so FilterBar itself runs no document-level dismissal listener of its own. Only
1202
+ * the text field's inline input manages its own dismissal (blur/Enter/Escape), since it
1203
+ * isn't a floating panel at all.
1104
1204
  *
1105
- * Visual/interaction language is deliberately identical to SortMenu: a secondary Button
1106
- * trigger, a `fd-view-enter` panel positioned with `top: calc(100% + 6px)`, the same
1107
- * click-outside/Escape wiring, and the same `fd-stack`/`fd-row`/`fd-overline`/`fd-muted`/
1108
- * `fd-body-sm` utility classes — so this reads as built by the same hand, not a new
1109
- * import from elsewhere.
1205
+ * MP-243 adds three variants on top of the original text/select, for audiences too big or
1206
+ * too shaped for a single free-text box or a short dropdown: multiSelect (searchable, sync
1207
+ * or async, with an optional paste-a-list mode for the same value), range (numeric
1208
+ * min/max), and date ("within the last N days" or "between two dates"). text/select are
1209
+ * unchanged and keep their bare-string value shape, so an existing consumer needs no
1210
+ * migration.
1110
1211
  */
1111
1212
  declare function FilterBar({ fields, filters, onFilterChange, onFilterRemove, align, className, ...rest }: FilterBarProps): React.JSX.Element;
1112
1213
 
@@ -2112,7 +2213,10 @@ interface NumberInputProps {
2112
2213
  /** Thousands-format the display when not editing. Default true. */
2113
2214
  format?: boolean;
2114
2215
  value?: number | string;
2115
- /** Called with {target:{value}} where value is a number. */
2216
+ /** Called with {target:{value}} where value is a number — or `undefined` once the
2217
+ * field is cleared to empty. A cleared field is "no value", never `0`: the caller
2218
+ * (e.g. FilterBar's range/date panels) tells an unset bound apart from a typed
2219
+ * zero by this, not by testing for `0` itself. */
2116
2220
  onChange?: (e: any) => void;
2117
2221
  placeholder?: string;
2118
2222
  style?: any;
@@ -4540,4 +4644,4 @@ declare function formatDocumentTitle(routeTitle: string | undefined | null, appN
4540
4644
  */
4541
4645
  declare function useDocumentTitle(routeTitle: string | undefined | null, appName: string): void;
4542
4646
 
4543
- export { AccountMenu, type AccountMenuLink, type AccountMenuProps, AgentChatPanel, type AgentChatPanelProps, AnchoredPopover, type AnchoredPopoverProps, AnimNum, type AnimNumProps, ApiSpecBrowser, type ApiSpecBrowserProps, type AppEntry, AppShell, type AppShellProps, AppSwitcher, type AppSwitcherProps, AppearanceMenu, type AppearanceMenuProps, type AppearancePrefs, type AppearanceStore, type AppearanceStoreOptions, type Attachment, Avatar, type AvatarProps, AvatarStack, type AvatarStackProps, Badge, type BadgeProps, Banner, type BannerProps, type BannerTone, BarList, type BarListProps, type BarListRow, BudgetReallocator, type BudgetReallocatorProps, Button, type ButtonProps, CHANNELS, CHANNEL_WEIGHTS, CHAT_UNAVAILABLE, Calendar, type CalendarProps, Card, type CardProps, CardRow, type CardRowProps, ChannelContribution, type ChannelContributionChannel, type ChannelContributionProps, ChannelMeta, type ChannelMetaRecord, ChannelTag, type ChannelTagProps, ChannelWeightOf, type ChatAdapter, ChatComposer, type ChatComposerProps, type ChatEngine, type ChatEngineOptions, ChatKit, type ChatMessage, type ChatRenderContext, ChatSessionBar, type ChatSessionBarProps, ChatTranscript, type ChatTranscriptProps, ChatTurn, type ChatTurnProps, Checkbox, type CheckboxProps, type Citation, Citations, type CitationsProps, Clamp, type ClampProps, ClockFace, type ClockFaceProps, CodeBlock, type CodeBlockProps, Collapsible, type CollapsibleProps, ComingSoon, type ComingSoonProps, type ContextUsage, type CreateVersionStoreOptions, CsiBadge, type CsiBadgeProps, CsiHero, type CsiHeroProps, CsiMeter, type CsiMeterProps, DEFAULT_PREFS, DEFAULT_STORAGE_KEY, DataTable, type DataTableColumn, type DataTableProps, DatePicker, type DatePickerProps, type DemoSessionControls, DemoSessionProvider, type DeviceSession, DiffBlock, type DiffBlockProps, DonutChart, type DonutChartProps, type DonutSegment, Drawer, type DrawerProps, Dropzone, DropzoneKit, type DropzoneProps, ENTITY_ROW_METRIC_WIDTH, type EditorTrigger, EmptyState, type EmptyStateProps, type EndpointSpec, EntityRow, type EntityRowAction, type EntityRowContent, type EntityRowMetric, EntityRowMetrics, type EntityRowMetricsProps, type EntityRowProps, FILE_VIEWER_CSV_ROW_LIMIT, FILE_VIEWER_TEXT_LIMIT, FeatureGate, type FeatureGateProps, type FeatureStatus, FileBrowser, type FileBrowserFile, type FileBrowserFolder, type FileBrowserPermissions, type FileBrowserProps, FileChip, type FileChipProps, FileGrid, type FileGridProps, FileKit, FilePickButton, type FilePickButtonProps, type FileRejection, FileStrip, type FileStripProps, FileTile, type FileTileProps, type FileUploadHandler, FileViewer, type FileViewerProps, FilterBar, type FilterBarProps, type FilterField, type FilterFieldOption, type FilterFieldSelect, type FilterFieldText, Flag$1 as Flag, type FlagExplanation, type FlagProps, FlytedeskBrand, type FlytedeskBrandProps, FlytedeskMark, type FlytedeskMarkProps, FormatEta, FunnelChart, type FunnelChartProps, type FunnelStep, Gate, type GateProps, IMPORTANCE_LEVELS, IconButton, type IconButtonProps, type ImportanceLevel, type ImportanceLevelId, ImportanceTag, type ImportanceTagProps, type ImportanceTokens, Input, type InputProps, type Job, type JobAction, type JobCardStatus, type JobStatus, JobTray, type JobTrayProps, Json, KeyHint, type KeyHintProps, type ListEnvelope, LoadingRegion, type LoadingRegionProps, Markdown, MarkdownEditor, type MarkdownEditorHandle, type MarkdownEditorProps, MarkdownInline, type MarkdownProps, type MentionSource, Menu, MenuButton, type MenuButtonProps, type MenuItem, type MenuProps, MessageBody, type MessageBodyProps, type MessageGroup, Meter, type MeterProps, type MeterSegment, type MeterSegmentInput, MixGap, type MixGapProps, type MixGapRow, MockJobKit, type MockJobStatus, Modal, type ModalProps, ModeSwitch, type ModeSwitchProps, type Model, ModelControls, type ModelControlsProps, NumberInput, type NumberInputProps, POPOVER_BODY_MIN, type Packet, PacketCard, type PacketCardProps, type PacketSchema, type Pager, Pagination, type PaginationProps, PermissionDenied, type PermissionDeniedProps, type PermissionGroup, PermissionHint, type PermissionItem, type Phase, type PhaseStatus, PhasedProgress, type PhasedProgressProps, type Placement, type PollOptions, Popover, type PopoverProps, type PreferenceCriterion, PreferenceMeter, type PreferenceMeterProps, type ProfileFieldDef, type ProfileFieldType, type ProfileNotificationDef, ProfilePage, type ProfilePageProps, ProgressBar, type ProgressBarProps, QueryKit, type QueuedTurn, QuotaRow, type QuotaRowProps, Radio, type RadioProps, RangeSlider, type RangeSliderProps, RelativeTime, type RelativeTimeProps, type RoadmapItem, type RoadmapResult, RoadmapTimeline, type RoadmapTimelineProps, type Role, RunActions, type RunActionsProps, type RunConfig, RuntimeKit, type RuntimeSummary, SaturationDistribution, type SaturationDistributionCampus, type SaturationDistributionProps, ScoreMeter, type ScoreMeterProps, ScreenHead, type ScreenHeadProps, SearchField, type SearchFieldProps, SegmentedControl, type SegmentedControlProps, SegmentedMeter, type SegmentedMeterProps, Select, type SelectOption, type SelectProps, type SendMessageResult, type ServerTable, type Session, type SessionContextValue, type Flag as SessionFlag, SessionKit, SessionProvider, type SessionProviderProps, type SessionRole, type SessionStats, type SessionUser, SidebarNav, type SidebarNavItem, type SidebarNavProps, type SignInContinueAs, SignInPage, type SignInPageProps, Skeleton, type SkeletonProps, SkeletonText, type SkeletonTextProps, type SlashCommand, Slider, type SliderProps, SortMenu, type SortMenuField, type SortMenuProps, type SpecModule, Spinner, type SpinnerProps, StatTile, type StatTileProps, type Step, StepList, type StepListProps, type StreamHandlers, type Suggestion, SurroundSound, type SurroundSoundProps, Switch, type SwitchProps, type TableQuery, Tabs, type TabsProps, Tag, type TagProps, TestModeBar, type TestModeBarProps, type TextScale, Textarea, type TextareaProps, type ThemeMode, ThinkingBlock, type ThinkingBlockProps, type ThreadSummary, TimePicker, type TimePickerProps, Toast, type ToastProps, Tooltip, type TooltipProps, Topbar, type TopbarProps, TranscriptKit, TransferList, type TransferListProps, type TransferListSide, type TransferListSideProps, TrendChart, type TrendChartProps, type TrendSeries, type UsageLimit, UseFeatureStatus, type UseResponsiveRailOptions, type UseResponsiveRailResult, UseRuntimeMode, type UseServerTableOptions, type User, VIRTUAL_LIST_BUFFER_ROWS, VIRTUAL_LIST_ROW_GAP, type VersionRecord, type VersionStore, VirtualList, type VirtualListProps, type VirtualLoadedBand, type VirtualWindow, type VoiceHandler, acceptMatches, anyOfFilter, applyPrefs, channelWeightOf, computeNeedMore, computeVirtualWindow, createLocalStorageAppearanceStore, createVersionStore, eqFilter, extensionOf, extractClipboardFiles, filterFiles, formatAbsolute, formatBytes, formatClock, formatDocumentTitle, formatDuration, formatEta, formatRelative, groupMessages, hasModifier, iconForMime, importanceLevel, importanceTokens, installFlytedeskFavicon, isImage, isSystemMessage, jobBucket, languageLabel, loadPrefs, markdownToText, meterFormats, modifierLabel, parseDelimited, pastedTextName, pluralizeUnit, preferenceScore, preferenceSegments, rangeFilter, resolveTheme, revokeAttachment, savePrefs, toAttachment, tokenize, useAppearancePrefs, useChatEngine, useDocumentTitle, useFeatureStatus, useFocusTrap, usePopoverPosition, useResponsiveRail, useRuntimeMode, useServerTable, useSessionContext, useStagedFiles, visibleMessages };
4647
+ export { AccountMenu, type AccountMenuLink, type AccountMenuProps, AgentChatPanel, type AgentChatPanelProps, AnchoredPopover, type AnchoredPopoverProps, AnimNum, type AnimNumProps, ApiSpecBrowser, type ApiSpecBrowserProps, type AppEntry, AppShell, type AppShellProps, AppSwitcher, type AppSwitcherProps, AppearanceMenu, type AppearanceMenuProps, type AppearancePrefs, type AppearanceStore, type AppearanceStoreOptions, type Attachment, Avatar, type AvatarProps, AvatarStack, type AvatarStackProps, Badge, type BadgeProps, Banner, type BannerProps, type BannerTone, BarList, type BarListProps, type BarListRow, BudgetReallocator, type BudgetReallocatorProps, Button, type ButtonProps, CHANNELS, CHANNEL_WEIGHTS, CHAT_UNAVAILABLE, Calendar, type CalendarProps, Card, type CardProps, CardRow, type CardRowProps, ChannelContribution, type ChannelContributionChannel, type ChannelContributionProps, ChannelMeta, type ChannelMetaRecord, ChannelTag, type ChannelTagProps, ChannelWeightOf, type ChatAdapter, ChatComposer, type ChatComposerProps, type ChatEngine, type ChatEngineOptions, ChatKit, type ChatMessage, type ChatRenderContext, ChatSessionBar, type ChatSessionBarProps, ChatTranscript, type ChatTranscriptProps, ChatTurn, type ChatTurnProps, Checkbox, type CheckboxProps, type Citation, Citations, type CitationsProps, Clamp, type ClampProps, ClockFace, type ClockFaceProps, CodeBlock, type CodeBlockProps, Collapsible, type CollapsibleProps, ComingSoon, type ComingSoonProps, type ContextUsage, type CreateVersionStoreOptions, CsiBadge, type CsiBadgeProps, CsiHero, type CsiHeroProps, CsiMeter, type CsiMeterProps, DEFAULT_PREFS, DEFAULT_STORAGE_KEY, DataTable, type DataTableColumn, type DataTableProps, DatePicker, type DatePickerProps, type DemoSessionControls, DemoSessionProvider, type DeviceSession, DiffBlock, type DiffBlockProps, DonutChart, type DonutChartProps, type DonutSegment, Drawer, type DrawerProps, Dropzone, DropzoneKit, type DropzoneProps, ENTITY_ROW_METRIC_WIDTH, type EditorTrigger, EmptyState, type EmptyStateProps, type EndpointSpec, EntityRow, type EntityRowAction, type EntityRowContent, type EntityRowMetric, EntityRowMetrics, type EntityRowMetricsProps, type EntityRowProps, FILE_VIEWER_CSV_ROW_LIMIT, FILE_VIEWER_TEXT_LIMIT, FeatureGate, type FeatureGateProps, type FeatureStatus, FileBrowser, type FileBrowserFile, type FileBrowserFolder, type FileBrowserPermissions, type FileBrowserProps, FileChip, type FileChipProps, FileGrid, type FileGridProps, FileKit, FilePickButton, type FilePickButtonProps, type FileRejection, FileStrip, type FileStripProps, FileTile, type FileTileProps, type FileUploadHandler, FileViewer, type FileViewerProps, FilterBar, type FilterBarProps, type FilterDateValue, type FilterField, type FilterFieldDate, type FilterFieldMultiSelect, type FilterFieldOption, type FilterFieldRange, type FilterFieldSelect, type FilterFieldText, type FilterMultiSelectValue, type FilterOperator, type FilterRangeValue, type FilterResolveMatch, type FilterResolveResult, type FilterValue, Flag$1 as Flag, type FlagExplanation, type FlagProps, FlytedeskBrand, type FlytedeskBrandProps, FlytedeskMark, type FlytedeskMarkProps, FormatEta, FunnelChart, type FunnelChartProps, type FunnelStep, Gate, type GateProps, IMPORTANCE_LEVELS, IconButton, type IconButtonProps, type ImportanceLevel, type ImportanceLevelId, ImportanceTag, type ImportanceTagProps, type ImportanceTokens, Input, type InputProps, type Job, type JobAction, type JobCardStatus, type JobStatus, JobTray, type JobTrayProps, Json, KeyHint, type KeyHintProps, type ListEnvelope, LoadingRegion, type LoadingRegionProps, Markdown, MarkdownEditor, type MarkdownEditorHandle, type MarkdownEditorProps, MarkdownInline, type MarkdownProps, type MentionSource, Menu, MenuButton, type MenuButtonProps, type MenuItem, type MenuProps, MessageBody, type MessageBodyProps, type MessageGroup, Meter, type MeterProps, type MeterSegment, type MeterSegmentInput, MixGap, type MixGapProps, type MixGapRow, MockJobKit, type MockJobStatus, Modal, type ModalProps, ModeSwitch, type ModeSwitchProps, type Model, ModelControls, type ModelControlsProps, NumberInput, type NumberInputProps, POPOVER_BODY_MIN, type Packet, PacketCard, type PacketCardProps, type PacketSchema, type Pager, Pagination, type PaginationProps, PermissionDenied, type PermissionDeniedProps, type PermissionGroup, PermissionHint, type PermissionItem, type Phase, type PhaseStatus, PhasedProgress, type PhasedProgressProps, type Placement, type PollOptions, Popover, type PopoverProps, type PreferenceCriterion, PreferenceMeter, type PreferenceMeterProps, type ProfileFieldDef, type ProfileFieldType, type ProfileNotificationDef, ProfilePage, type ProfilePageProps, ProgressBar, type ProgressBarProps, QueryKit, type QueuedTurn, QuotaRow, type QuotaRowProps, Radio, type RadioProps, RangeSlider, type RangeSliderProps, RelativeTime, type RelativeTimeProps, type RoadmapItem, type RoadmapResult, RoadmapTimeline, type RoadmapTimelineProps, type Role, RunActions, type RunActionsProps, type RunConfig, RuntimeKit, type RuntimeSummary, SaturationDistribution, type SaturationDistributionCampus, type SaturationDistributionProps, ScoreMeter, type ScoreMeterProps, ScreenHead, type ScreenHeadProps, SearchField, type SearchFieldProps, SegmentedControl, type SegmentedControlProps, SegmentedMeter, type SegmentedMeterProps, Select, type SelectOption, type SelectProps, type SendMessageResult, type ServerTable, type Session, type SessionContextValue, type Flag as SessionFlag, SessionKit, SessionProvider, type SessionProviderProps, type SessionRole, type SessionStats, type SessionUser, SidebarNav, type SidebarNavItem, type SidebarNavProps, type SignInContinueAs, SignInPage, type SignInPageProps, Skeleton, type SkeletonProps, SkeletonText, type SkeletonTextProps, type SlashCommand, Slider, type SliderProps, SortMenu, type SortMenuField, type SortMenuProps, type SpecModule, Spinner, type SpinnerProps, StatTile, type StatTileProps, type Step, StepList, type StepListProps, type StreamHandlers, type Suggestion, SurroundSound, type SurroundSoundProps, Switch, type SwitchProps, type TableQuery, Tabs, type TabsProps, Tag, type TagProps, TestModeBar, type TestModeBarProps, type TextScale, Textarea, type TextareaProps, type ThemeMode, ThinkingBlock, type ThinkingBlockProps, type ThreadSummary, TimePicker, type TimePickerProps, Toast, type ToastProps, Tooltip, type TooltipProps, Topbar, type TopbarProps, TranscriptKit, TransferList, type TransferListProps, type TransferListSide, type TransferListSideProps, TrendChart, type TrendChartProps, type TrendSeries, type UsageLimit, UseFeatureStatus, type UseResponsiveRailOptions, type UseResponsiveRailResult, UseRuntimeMode, type UseServerTableOptions, type User, VIRTUAL_LIST_BUFFER_ROWS, VIRTUAL_LIST_ROW_GAP, type VersionRecord, type VersionStore, VirtualList, type VirtualListProps, type VirtualLoadedBand, type VirtualWindow, type VoiceHandler, acceptMatches, anyOfFilter, applyPrefs, channelWeightOf, computeNeedMore, computeVirtualWindow, createLocalStorageAppearanceStore, createVersionStore, eqFilter, extensionOf, extractClipboardFiles, filterFiles, formatAbsolute, formatBytes, formatClock, formatDocumentTitle, formatDuration, formatEta, formatRelative, groupMessages, hasModifier, iconForMime, importanceLevel, importanceTokens, installFlytedeskFavicon, isImage, isSystemMessage, jobBucket, languageLabel, loadPrefs, markdownToText, meterFormats, modifierLabel, parseDelimited, pastedTextName, pluralizeUnit, preferenceScore, preferenceSegments, rangeFilter, resolveTheme, revokeAttachment, savePrefs, toAttachment, tokenize, useAppearancePrefs, useChatEngine, useDocumentTitle, useFeatureStatus, useFocusTrap, usePopoverPosition, useResponsiveRail, useRuntimeMode, useServerTable, useSessionContext, useStagedFiles, visibleMessages };
package/dist/index.d.ts CHANGED
@@ -692,8 +692,13 @@ interface BannerProps {
692
692
  title: React.ReactNode;
693
693
  detail?: React.ReactNode;
694
694
  actions?: React.ReactNode;
695
+ /** MP-243 Q3: a Banner reporting a failure (danger) or something invalid the user must
696
+ * fix (warn) is a live-region announcement, not decoration — `role="alert"` for those
697
+ * interrupts and announces immediately, `role="status"` for info/ok announces politely
698
+ * once idle. Defaults by tone; a caller can still override either way. */
699
+ role?: "alert" | "status";
695
700
  }
696
- declare function Banner({ tone, title, detail, actions }: BannerProps): React.JSX.Element;
701
+ declare function Banner({ tone, title, detail, actions, role }: BannerProps): React.JSX.Element;
697
702
 
698
703
  /**
699
704
  * A pill of state. Badges never carry actions — if it is clickable it is a Tag.
@@ -1075,17 +1080,105 @@ interface FilterFieldSelect extends FilterFieldBase {
1075
1080
  type: "select";
1076
1081
  options: FilterFieldOption[];
1077
1082
  }
1078
- /** A declared filter field. Add a variant here (and a branch below) for a new value picker. */
1079
- type FilterField = FilterFieldText | FilterFieldSelect;
1083
+ /** MP-243: include/exclude, shared by every field whose value is a set of options. */
1084
+ type FilterOperator = "in" | "notIn";
1085
+ interface FilterMultiSelectValue {
1086
+ operator: FilterOperator;
1087
+ values: FilterFieldOption[];
1088
+ }
1089
+ interface FilterResolveMatch {
1090
+ token: string;
1091
+ value: string;
1092
+ label: string;
1093
+ }
1094
+ interface FilterResolveResult {
1095
+ matched: FilterResolveMatch[];
1096
+ unmatched: string[];
1097
+ }
1098
+ interface FilterFieldMultiSelect extends FilterFieldBase {
1099
+ type: "multiSelect";
1100
+ /** Sync option list — filtered client-side by the typed query. Omit when `loadOptions`
1101
+ * is given; the two are mutually exclusive (async wins if both are somehow set). */
1102
+ options?: FilterFieldOption[];
1103
+ /** Async option source for long lists (schools, imports, …), called ~300ms after the
1104
+ * last keystroke with the current query (possibly "") and an AbortSignal that fires
1105
+ * once a newer query has superseded this call (MP-243 A6) — pass it straight to
1106
+ * `fetch`/whatever transport does the lookup so a superseded request is actually
1107
+ * cancelled, not just ignored on arrival. A rejection (that isn't the abort itself)
1108
+ * renders as a visible error with a Retry action; it is never folded into "no
1109
+ * matches", since a search that FAILED is a different thing to tell the user than a
1110
+ * search that found nothing. */
1111
+ loadOptions?: (query: string, signal: AbortSignal) => Promise<FilterFieldOption[]>;
1112
+ /** MP-243 A1: paste-a-list as a second input mode for THIS SAME field — search and
1113
+ * paste both build one FilterMultiSelectValue for one dimension, so a school found by
1114
+ * typing and a school found by pasting a list land as two entries in the same set
1115
+ * instead of two separate filters that would AND together. Presence of `resolve` is
1116
+ * what turns on the Search/Paste mode switch; omit it for a search-only field. Never
1117
+ * called with an empty token list, and tokens are de-duplicated before the call. */
1118
+ resolve?: (tokens: string[]) => Promise<FilterResolveResult>;
1119
+ placeholder?: string;
1120
+ /** Placeholder for the paste textarea, when `resolve` is given. Falls back to `placeholder`. */
1121
+ pastePlaceholder?: string;
1122
+ /** MP-243 A2: restrict which operators this field's toggle offers, e.g. `["in"]` for a
1123
+ * dimension that only ever means "is any of" and never "is none of" — a single-operator
1124
+ * list hides the toggle entirely and that operator applies unconditionally, so an app
1125
+ * can express an "any"/"is"-only dimension exactly rather than showing a switch with
1126
+ * nothing to switch to. Defaults to both `["in", "notIn"]`. */
1127
+ operators?: FilterOperator[];
1128
+ }
1129
+ interface FilterRangeValue {
1130
+ min?: number;
1131
+ max?: number;
1132
+ }
1133
+ interface FilterFieldRange extends FilterFieldBase {
1134
+ type: "range";
1135
+ /** Bounds enforced on each stepper/typed value — NOT the same as the filter's own
1136
+ * min/max VALUE (FilterRangeValue), which is what the user is narrowing to. */
1137
+ min?: number;
1138
+ max?: number;
1139
+ step?: number;
1140
+ minLabel?: string;
1141
+ maxLabel?: string;
1142
+ minPlaceholder?: string;
1143
+ maxPlaceholder?: string;
1144
+ }
1145
+ type FilterDateValue = {
1146
+ kind: "withinDays";
1147
+ days: number;
1148
+ } | {
1149
+ kind: "between";
1150
+ from: string;
1151
+ to: string;
1152
+ };
1153
+ interface FilterFieldDate extends FilterFieldBase {
1154
+ type: "date";
1155
+ /** Default days shown the first time "within the last N days" is picked — shown, not
1156
+ * written: nothing is set until the user changes it or confirms it (MP-243 A4). */
1157
+ defaultDays?: number;
1158
+ }
1159
+ /** A declared filter field. Add a variant here (and a branch below) for a new value
1160
+ * picker. text/select keep their original bare-string value shape unchanged, so an
1161
+ * existing consumer needs no migration; every other variant's value is a small typed
1162
+ * object of its own (see FilterValue). */
1163
+ type FilterField = FilterFieldText | FilterFieldSelect | FilterFieldMultiSelect | FilterFieldRange | FilterFieldDate;
1164
+ /** MP-243 A7: the value shape a given declared field reads/writes, so a consumer can type
1165
+ * its own `filters` record precisely instead of `Record<string, unknown>` — e.g.
1166
+ * `Record<"schools", FilterValue<typeof schoolsField>>`. */
1167
+ type FilterValue<F extends FilterField> = F extends FilterFieldText ? string : F extends FilterFieldSelect ? string : F extends FilterFieldMultiSelect ? FilterMultiSelectValue : F extends FilterFieldRange ? FilterRangeValue : F extends FilterFieldDate ? FilterDateValue : never;
1080
1168
  interface FilterBarProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, "onChange"> {
1081
1169
  /** Every filter a consumer can add. Order here is the order in the "add filter" list. */
1082
1170
  fields: FilterField[];
1083
1171
  /** Straight off useServerTable — a value of undefined/""/false reads as "not set",
1084
- * same convention that hook already uses for activeFilterCount. */
1172
+ * same convention that hook already uses for activeFilterCount. multiSelect/range/
1173
+ * date values are objects instead (see isFieldSet). */
1085
1174
  filters: Record<string, unknown>;
1086
- /** Fires on every value edit. Maps 1:1 onto useServerTable's setFilter(id, value). */
1175
+ /** Fires on every value edit. Maps 1:1 onto useServerTable's setFilter(id, value).
1176
+ * FilterBar only ever calls this with a COMPLETE, valid value for the field — an
1177
+ * emptied selection, a one-sided date range, an invalid numeric range or a cleared
1178
+ * bound go through onFilterRemove (or nothing) instead (MP-243 A3). */
1087
1179
  onFilterChange: (key: string, value: unknown) => void;
1088
- /** Fires when a chip's × is clicked. Maps 1:1 onto useServerTable's clearFilter(id). */
1180
+ /** Fires when a chip's × is clicked, or when an edit leaves a field with no valid
1181
+ * value. Maps 1:1 onto useServerTable's clearFilter(id). */
1089
1182
  onFilterRemove: (key: string) => void;
1090
1183
  /** Which edge the "add filter" popover aligns to. Default "left" — the trigger sits
1091
1184
  * at the end of a left-to-right chip row, so its menu opens under its left edge. */
@@ -1095,18 +1188,26 @@ interface FilterBarProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, "on
1095
1188
  /**
1096
1189
  * FilterBar — the declarative filter system for a server-driven list.
1097
1190
  *
1098
- * A consumer declares fields once (`{ key, label, type: "text" | "select", ... }`) and
1099
- * hands this a live `filters` record plus onFilterChange/onFilterRemove — the same three
1100
- * things useServerTable already exposes, so wiring one up is copy-paste, not glue code.
1101
- * Every active filter renders as a Tag chip; this component holds no shadow copy of
1102
- * filter values, only the transient "which field's popover/input is open right now" UI
1103
- * state (`panel`), the same way SortMenu holds `open` but never sort state itself.
1191
+ * A consumer declares fields once (`{ key, label, type, ... }`) and hands this a live
1192
+ * `filters` record plus onFilterChange/onFilterRemove — the same three things
1193
+ * useServerTable already exposes, so wiring one up is copy-paste, not glue code. Every
1194
+ * active filter renders as a Tag chip; this component holds no shadow copy of filter
1195
+ * values, only the transient "which field's popover/input is open right now" UI state
1196
+ * (`panel`), the same way SortMenu holds `open` but never sort state itself.
1197
+ *
1198
+ * Every floating surface — a field's edit panel and the "add filter" menu — is a real
1199
+ * Popover (or Menu-in-a-Popover) from this kit's own actions module (MP-243 A5): viewport
1200
+ * clamping, nested-layer handling, Escape, and focus-return-to-the-chip all come from
1201
+ * there, so FilterBar itself runs no document-level dismissal listener of its own. Only
1202
+ * the text field's inline input manages its own dismissal (blur/Enter/Escape), since it
1203
+ * isn't a floating panel at all.
1104
1204
  *
1105
- * Visual/interaction language is deliberately identical to SortMenu: a secondary Button
1106
- * trigger, a `fd-view-enter` panel positioned with `top: calc(100% + 6px)`, the same
1107
- * click-outside/Escape wiring, and the same `fd-stack`/`fd-row`/`fd-overline`/`fd-muted`/
1108
- * `fd-body-sm` utility classes — so this reads as built by the same hand, not a new
1109
- * import from elsewhere.
1205
+ * MP-243 adds three variants on top of the original text/select, for audiences too big or
1206
+ * too shaped for a single free-text box or a short dropdown: multiSelect (searchable, sync
1207
+ * or async, with an optional paste-a-list mode for the same value), range (numeric
1208
+ * min/max), and date ("within the last N days" or "between two dates"). text/select are
1209
+ * unchanged and keep their bare-string value shape, so an existing consumer needs no
1210
+ * migration.
1110
1211
  */
1111
1212
  declare function FilterBar({ fields, filters, onFilterChange, onFilterRemove, align, className, ...rest }: FilterBarProps): React.JSX.Element;
1112
1213
 
@@ -2112,7 +2213,10 @@ interface NumberInputProps {
2112
2213
  /** Thousands-format the display when not editing. Default true. */
2113
2214
  format?: boolean;
2114
2215
  value?: number | string;
2115
- /** Called with {target:{value}} where value is a number. */
2216
+ /** Called with {target:{value}} where value is a number — or `undefined` once the
2217
+ * field is cleared to empty. A cleared field is "no value", never `0`: the caller
2218
+ * (e.g. FilterBar's range/date panels) tells an unset bound apart from a typed
2219
+ * zero by this, not by testing for `0` itself. */
2116
2220
  onChange?: (e: any) => void;
2117
2221
  placeholder?: string;
2118
2222
  style?: any;
@@ -4540,4 +4644,4 @@ declare function formatDocumentTitle(routeTitle: string | undefined | null, appN
4540
4644
  */
4541
4645
  declare function useDocumentTitle(routeTitle: string | undefined | null, appName: string): void;
4542
4646
 
4543
- export { AccountMenu, type AccountMenuLink, type AccountMenuProps, AgentChatPanel, type AgentChatPanelProps, AnchoredPopover, type AnchoredPopoverProps, AnimNum, type AnimNumProps, ApiSpecBrowser, type ApiSpecBrowserProps, type AppEntry, AppShell, type AppShellProps, AppSwitcher, type AppSwitcherProps, AppearanceMenu, type AppearanceMenuProps, type AppearancePrefs, type AppearanceStore, type AppearanceStoreOptions, type Attachment, Avatar, type AvatarProps, AvatarStack, type AvatarStackProps, Badge, type BadgeProps, Banner, type BannerProps, type BannerTone, BarList, type BarListProps, type BarListRow, BudgetReallocator, type BudgetReallocatorProps, Button, type ButtonProps, CHANNELS, CHANNEL_WEIGHTS, CHAT_UNAVAILABLE, Calendar, type CalendarProps, Card, type CardProps, CardRow, type CardRowProps, ChannelContribution, type ChannelContributionChannel, type ChannelContributionProps, ChannelMeta, type ChannelMetaRecord, ChannelTag, type ChannelTagProps, ChannelWeightOf, type ChatAdapter, ChatComposer, type ChatComposerProps, type ChatEngine, type ChatEngineOptions, ChatKit, type ChatMessage, type ChatRenderContext, ChatSessionBar, type ChatSessionBarProps, ChatTranscript, type ChatTranscriptProps, ChatTurn, type ChatTurnProps, Checkbox, type CheckboxProps, type Citation, Citations, type CitationsProps, Clamp, type ClampProps, ClockFace, type ClockFaceProps, CodeBlock, type CodeBlockProps, Collapsible, type CollapsibleProps, ComingSoon, type ComingSoonProps, type ContextUsage, type CreateVersionStoreOptions, CsiBadge, type CsiBadgeProps, CsiHero, type CsiHeroProps, CsiMeter, type CsiMeterProps, DEFAULT_PREFS, DEFAULT_STORAGE_KEY, DataTable, type DataTableColumn, type DataTableProps, DatePicker, type DatePickerProps, type DemoSessionControls, DemoSessionProvider, type DeviceSession, DiffBlock, type DiffBlockProps, DonutChart, type DonutChartProps, type DonutSegment, Drawer, type DrawerProps, Dropzone, DropzoneKit, type DropzoneProps, ENTITY_ROW_METRIC_WIDTH, type EditorTrigger, EmptyState, type EmptyStateProps, type EndpointSpec, EntityRow, type EntityRowAction, type EntityRowContent, type EntityRowMetric, EntityRowMetrics, type EntityRowMetricsProps, type EntityRowProps, FILE_VIEWER_CSV_ROW_LIMIT, FILE_VIEWER_TEXT_LIMIT, FeatureGate, type FeatureGateProps, type FeatureStatus, FileBrowser, type FileBrowserFile, type FileBrowserFolder, type FileBrowserPermissions, type FileBrowserProps, FileChip, type FileChipProps, FileGrid, type FileGridProps, FileKit, FilePickButton, type FilePickButtonProps, type FileRejection, FileStrip, type FileStripProps, FileTile, type FileTileProps, type FileUploadHandler, FileViewer, type FileViewerProps, FilterBar, type FilterBarProps, type FilterField, type FilterFieldOption, type FilterFieldSelect, type FilterFieldText, Flag$1 as Flag, type FlagExplanation, type FlagProps, FlytedeskBrand, type FlytedeskBrandProps, FlytedeskMark, type FlytedeskMarkProps, FormatEta, FunnelChart, type FunnelChartProps, type FunnelStep, Gate, type GateProps, IMPORTANCE_LEVELS, IconButton, type IconButtonProps, type ImportanceLevel, type ImportanceLevelId, ImportanceTag, type ImportanceTagProps, type ImportanceTokens, Input, type InputProps, type Job, type JobAction, type JobCardStatus, type JobStatus, JobTray, type JobTrayProps, Json, KeyHint, type KeyHintProps, type ListEnvelope, LoadingRegion, type LoadingRegionProps, Markdown, MarkdownEditor, type MarkdownEditorHandle, type MarkdownEditorProps, MarkdownInline, type MarkdownProps, type MentionSource, Menu, MenuButton, type MenuButtonProps, type MenuItem, type MenuProps, MessageBody, type MessageBodyProps, type MessageGroup, Meter, type MeterProps, type MeterSegment, type MeterSegmentInput, MixGap, type MixGapProps, type MixGapRow, MockJobKit, type MockJobStatus, Modal, type ModalProps, ModeSwitch, type ModeSwitchProps, type Model, ModelControls, type ModelControlsProps, NumberInput, type NumberInputProps, POPOVER_BODY_MIN, type Packet, PacketCard, type PacketCardProps, type PacketSchema, type Pager, Pagination, type PaginationProps, PermissionDenied, type PermissionDeniedProps, type PermissionGroup, PermissionHint, type PermissionItem, type Phase, type PhaseStatus, PhasedProgress, type PhasedProgressProps, type Placement, type PollOptions, Popover, type PopoverProps, type PreferenceCriterion, PreferenceMeter, type PreferenceMeterProps, type ProfileFieldDef, type ProfileFieldType, type ProfileNotificationDef, ProfilePage, type ProfilePageProps, ProgressBar, type ProgressBarProps, QueryKit, type QueuedTurn, QuotaRow, type QuotaRowProps, Radio, type RadioProps, RangeSlider, type RangeSliderProps, RelativeTime, type RelativeTimeProps, type RoadmapItem, type RoadmapResult, RoadmapTimeline, type RoadmapTimelineProps, type Role, RunActions, type RunActionsProps, type RunConfig, RuntimeKit, type RuntimeSummary, SaturationDistribution, type SaturationDistributionCampus, type SaturationDistributionProps, ScoreMeter, type ScoreMeterProps, ScreenHead, type ScreenHeadProps, SearchField, type SearchFieldProps, SegmentedControl, type SegmentedControlProps, SegmentedMeter, type SegmentedMeterProps, Select, type SelectOption, type SelectProps, type SendMessageResult, type ServerTable, type Session, type SessionContextValue, type Flag as SessionFlag, SessionKit, SessionProvider, type SessionProviderProps, type SessionRole, type SessionStats, type SessionUser, SidebarNav, type SidebarNavItem, type SidebarNavProps, type SignInContinueAs, SignInPage, type SignInPageProps, Skeleton, type SkeletonProps, SkeletonText, type SkeletonTextProps, type SlashCommand, Slider, type SliderProps, SortMenu, type SortMenuField, type SortMenuProps, type SpecModule, Spinner, type SpinnerProps, StatTile, type StatTileProps, type Step, StepList, type StepListProps, type StreamHandlers, type Suggestion, SurroundSound, type SurroundSoundProps, Switch, type SwitchProps, type TableQuery, Tabs, type TabsProps, Tag, type TagProps, TestModeBar, type TestModeBarProps, type TextScale, Textarea, type TextareaProps, type ThemeMode, ThinkingBlock, type ThinkingBlockProps, type ThreadSummary, TimePicker, type TimePickerProps, Toast, type ToastProps, Tooltip, type TooltipProps, Topbar, type TopbarProps, TranscriptKit, TransferList, type TransferListProps, type TransferListSide, type TransferListSideProps, TrendChart, type TrendChartProps, type TrendSeries, type UsageLimit, UseFeatureStatus, type UseResponsiveRailOptions, type UseResponsiveRailResult, UseRuntimeMode, type UseServerTableOptions, type User, VIRTUAL_LIST_BUFFER_ROWS, VIRTUAL_LIST_ROW_GAP, type VersionRecord, type VersionStore, VirtualList, type VirtualListProps, type VirtualLoadedBand, type VirtualWindow, type VoiceHandler, acceptMatches, anyOfFilter, applyPrefs, channelWeightOf, computeNeedMore, computeVirtualWindow, createLocalStorageAppearanceStore, createVersionStore, eqFilter, extensionOf, extractClipboardFiles, filterFiles, formatAbsolute, formatBytes, formatClock, formatDocumentTitle, formatDuration, formatEta, formatRelative, groupMessages, hasModifier, iconForMime, importanceLevel, importanceTokens, installFlytedeskFavicon, isImage, isSystemMessage, jobBucket, languageLabel, loadPrefs, markdownToText, meterFormats, modifierLabel, parseDelimited, pastedTextName, pluralizeUnit, preferenceScore, preferenceSegments, rangeFilter, resolveTheme, revokeAttachment, savePrefs, toAttachment, tokenize, useAppearancePrefs, useChatEngine, useDocumentTitle, useFeatureStatus, useFocusTrap, usePopoverPosition, useResponsiveRail, useRuntimeMode, useServerTable, useSessionContext, useStagedFiles, visibleMessages };
4647
+ export { AccountMenu, type AccountMenuLink, type AccountMenuProps, AgentChatPanel, type AgentChatPanelProps, AnchoredPopover, type AnchoredPopoverProps, AnimNum, type AnimNumProps, ApiSpecBrowser, type ApiSpecBrowserProps, type AppEntry, AppShell, type AppShellProps, AppSwitcher, type AppSwitcherProps, AppearanceMenu, type AppearanceMenuProps, type AppearancePrefs, type AppearanceStore, type AppearanceStoreOptions, type Attachment, Avatar, type AvatarProps, AvatarStack, type AvatarStackProps, Badge, type BadgeProps, Banner, type BannerProps, type BannerTone, BarList, type BarListProps, type BarListRow, BudgetReallocator, type BudgetReallocatorProps, Button, type ButtonProps, CHANNELS, CHANNEL_WEIGHTS, CHAT_UNAVAILABLE, Calendar, type CalendarProps, Card, type CardProps, CardRow, type CardRowProps, ChannelContribution, type ChannelContributionChannel, type ChannelContributionProps, ChannelMeta, type ChannelMetaRecord, ChannelTag, type ChannelTagProps, ChannelWeightOf, type ChatAdapter, ChatComposer, type ChatComposerProps, type ChatEngine, type ChatEngineOptions, ChatKit, type ChatMessage, type ChatRenderContext, ChatSessionBar, type ChatSessionBarProps, ChatTranscript, type ChatTranscriptProps, ChatTurn, type ChatTurnProps, Checkbox, type CheckboxProps, type Citation, Citations, type CitationsProps, Clamp, type ClampProps, ClockFace, type ClockFaceProps, CodeBlock, type CodeBlockProps, Collapsible, type CollapsibleProps, ComingSoon, type ComingSoonProps, type ContextUsage, type CreateVersionStoreOptions, CsiBadge, type CsiBadgeProps, CsiHero, type CsiHeroProps, CsiMeter, type CsiMeterProps, DEFAULT_PREFS, DEFAULT_STORAGE_KEY, DataTable, type DataTableColumn, type DataTableProps, DatePicker, type DatePickerProps, type DemoSessionControls, DemoSessionProvider, type DeviceSession, DiffBlock, type DiffBlockProps, DonutChart, type DonutChartProps, type DonutSegment, Drawer, type DrawerProps, Dropzone, DropzoneKit, type DropzoneProps, ENTITY_ROW_METRIC_WIDTH, type EditorTrigger, EmptyState, type EmptyStateProps, type EndpointSpec, EntityRow, type EntityRowAction, type EntityRowContent, type EntityRowMetric, EntityRowMetrics, type EntityRowMetricsProps, type EntityRowProps, FILE_VIEWER_CSV_ROW_LIMIT, FILE_VIEWER_TEXT_LIMIT, FeatureGate, type FeatureGateProps, type FeatureStatus, FileBrowser, type FileBrowserFile, type FileBrowserFolder, type FileBrowserPermissions, type FileBrowserProps, FileChip, type FileChipProps, FileGrid, type FileGridProps, FileKit, FilePickButton, type FilePickButtonProps, type FileRejection, FileStrip, type FileStripProps, FileTile, type FileTileProps, type FileUploadHandler, FileViewer, type FileViewerProps, FilterBar, type FilterBarProps, type FilterDateValue, type FilterField, type FilterFieldDate, type FilterFieldMultiSelect, type FilterFieldOption, type FilterFieldRange, type FilterFieldSelect, type FilterFieldText, type FilterMultiSelectValue, type FilterOperator, type FilterRangeValue, type FilterResolveMatch, type FilterResolveResult, type FilterValue, Flag$1 as Flag, type FlagExplanation, type FlagProps, FlytedeskBrand, type FlytedeskBrandProps, FlytedeskMark, type FlytedeskMarkProps, FormatEta, FunnelChart, type FunnelChartProps, type FunnelStep, Gate, type GateProps, IMPORTANCE_LEVELS, IconButton, type IconButtonProps, type ImportanceLevel, type ImportanceLevelId, ImportanceTag, type ImportanceTagProps, type ImportanceTokens, Input, type InputProps, type Job, type JobAction, type JobCardStatus, type JobStatus, JobTray, type JobTrayProps, Json, KeyHint, type KeyHintProps, type ListEnvelope, LoadingRegion, type LoadingRegionProps, Markdown, MarkdownEditor, type MarkdownEditorHandle, type MarkdownEditorProps, MarkdownInline, type MarkdownProps, type MentionSource, Menu, MenuButton, type MenuButtonProps, type MenuItem, type MenuProps, MessageBody, type MessageBodyProps, type MessageGroup, Meter, type MeterProps, type MeterSegment, type MeterSegmentInput, MixGap, type MixGapProps, type MixGapRow, MockJobKit, type MockJobStatus, Modal, type ModalProps, ModeSwitch, type ModeSwitchProps, type Model, ModelControls, type ModelControlsProps, NumberInput, type NumberInputProps, POPOVER_BODY_MIN, type Packet, PacketCard, type PacketCardProps, type PacketSchema, type Pager, Pagination, type PaginationProps, PermissionDenied, type PermissionDeniedProps, type PermissionGroup, PermissionHint, type PermissionItem, type Phase, type PhaseStatus, PhasedProgress, type PhasedProgressProps, type Placement, type PollOptions, Popover, type PopoverProps, type PreferenceCriterion, PreferenceMeter, type PreferenceMeterProps, type ProfileFieldDef, type ProfileFieldType, type ProfileNotificationDef, ProfilePage, type ProfilePageProps, ProgressBar, type ProgressBarProps, QueryKit, type QueuedTurn, QuotaRow, type QuotaRowProps, Radio, type RadioProps, RangeSlider, type RangeSliderProps, RelativeTime, type RelativeTimeProps, type RoadmapItem, type RoadmapResult, RoadmapTimeline, type RoadmapTimelineProps, type Role, RunActions, type RunActionsProps, type RunConfig, RuntimeKit, type RuntimeSummary, SaturationDistribution, type SaturationDistributionCampus, type SaturationDistributionProps, ScoreMeter, type ScoreMeterProps, ScreenHead, type ScreenHeadProps, SearchField, type SearchFieldProps, SegmentedControl, type SegmentedControlProps, SegmentedMeter, type SegmentedMeterProps, Select, type SelectOption, type SelectProps, type SendMessageResult, type ServerTable, type Session, type SessionContextValue, type Flag as SessionFlag, SessionKit, SessionProvider, type SessionProviderProps, type SessionRole, type SessionStats, type SessionUser, SidebarNav, type SidebarNavItem, type SidebarNavProps, type SignInContinueAs, SignInPage, type SignInPageProps, Skeleton, type SkeletonProps, SkeletonText, type SkeletonTextProps, type SlashCommand, Slider, type SliderProps, SortMenu, type SortMenuField, type SortMenuProps, type SpecModule, Spinner, type SpinnerProps, StatTile, type StatTileProps, type Step, StepList, type StepListProps, type StreamHandlers, type Suggestion, SurroundSound, type SurroundSoundProps, Switch, type SwitchProps, type TableQuery, Tabs, type TabsProps, Tag, type TagProps, TestModeBar, type TestModeBarProps, type TextScale, Textarea, type TextareaProps, type ThemeMode, ThinkingBlock, type ThinkingBlockProps, type ThreadSummary, TimePicker, type TimePickerProps, Toast, type ToastProps, Tooltip, type TooltipProps, Topbar, type TopbarProps, TranscriptKit, TransferList, type TransferListProps, type TransferListSide, type TransferListSideProps, TrendChart, type TrendChartProps, type TrendSeries, type UsageLimit, UseFeatureStatus, type UseResponsiveRailOptions, type UseResponsiveRailResult, UseRuntimeMode, type UseServerTableOptions, type User, VIRTUAL_LIST_BUFFER_ROWS, VIRTUAL_LIST_ROW_GAP, type VersionRecord, type VersionStore, VirtualList, type VirtualListProps, type VirtualLoadedBand, type VirtualWindow, type VoiceHandler, acceptMatches, anyOfFilter, applyPrefs, channelWeightOf, computeNeedMore, computeVirtualWindow, createLocalStorageAppearanceStore, createVersionStore, eqFilter, extensionOf, extractClipboardFiles, filterFiles, formatAbsolute, formatBytes, formatClock, formatDocumentTitle, formatDuration, formatEta, formatRelative, groupMessages, hasModifier, iconForMime, importanceLevel, importanceTokens, installFlytedeskFavicon, isImage, isSystemMessage, jobBucket, languageLabel, loadPrefs, markdownToText, meterFormats, modifierLabel, parseDelimited, pastedTextName, pluralizeUnit, preferenceScore, preferenceSegments, rangeFilter, resolveTheme, revokeAttachment, savePrefs, toAttachment, tokenize, useAppearancePrefs, useChatEngine, useDocumentTitle, useFeatureStatus, useFocusTrap, usePopoverPosition, useResponsiveRail, useRuntimeMode, useServerTable, useSessionContext, useStagedFiles, visibleMessages };