@flytedan/flytebot-design-system 0.59.0 → 0.61.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
@@ -759,15 +759,19 @@ declare function FlytedeskBrand({ appName, size, className, ...rest }: Flytedesk
759
759
  */
760
760
  declare function installFlytedeskFavicon(url: string): void;
761
761
 
762
+ interface TabItem {
763
+ value: string;
764
+ label: string;
765
+ count?: number;
766
+ /** `attention` colours the count as work that is waiting. Without it the count is neutral. */
767
+ tone?: "attention";
768
+ }
762
769
  /**
763
770
  * Places within one screen. Underline only — no pill tabs in the product.
771
+ * Tabs that do not fit scroll sideways, fading the edge that has more, with the active tab kept in view.
764
772
  */
765
773
  interface TabsProps {
766
- tabs: Array<string | {
767
- value: string;
768
- label: string;
769
- count?: number;
770
- }>;
774
+ tabs: Array<string | TabItem>;
771
775
  value?: string;
772
776
  onChange?: (value: string) => void;
773
777
  className?: string;
@@ -1168,10 +1172,14 @@ interface CsiHeroProps {
1168
1172
  }
1169
1173
  declare function CsiHero({ band, crp, label, className }: CsiHeroProps): React.JSX.Element;
1170
1174
 
1175
+ /** What a column becomes when the table is narrow (640px or less), where each row is a compact card instead of a table row:
1176
+ * `primary` is on the card's title line, `secondary` in its muted meta line (labelled with the
1177
+ * column's label), `hidden` is left out. */
1178
+ type DataTablePhoneRole = "primary" | "secondary" | "hidden";
1171
1179
  /**
1172
1180
  * The product's dense read surface. Sticky overline header, hairline rows, no zebra,
1173
1181
  * numbers right-aligned and tabular. Renders its own skeleton rows so the table
1174
- * never collapses while data is in flight.
1182
+ * never collapses while data is in flight. At 640px wide or less (its own width, not the window's) each row becomes a compact card.
1175
1183
  */
1176
1184
  interface DataTableColumn {
1177
1185
  key: string;
@@ -1181,6 +1189,8 @@ interface DataTableColumn {
1181
1189
  /** Set widths explicitly; auto layout shifts as data arrives. */
1182
1190
  width?: string;
1183
1191
  sortable?: boolean;
1192
+ /** The column's role in the stacked-card layout, at a table width of 640px or less. At least one column must be `primary`. */
1193
+ phone: DataTablePhoneRole;
1184
1194
  render?: (row: any) => React.ReactNode;
1185
1195
  }
1186
1196
  interface DataTableProps {
@@ -2325,6 +2335,24 @@ interface TransferListProps<T> {
2325
2335
  */
2326
2336
  declare function TransferList<T>({ left, right, keyOf, renderRow, onMove, itemHeight, rowGap, listHeight, className, }: TransferListProps<T>): React.JSX.Element;
2327
2337
 
2338
+ interface Fact {
2339
+ /** What the fact is. Also its identity, so labels are unique within a list. */
2340
+ label: string;
2341
+ /** Any node: text, a badge, a link. */
2342
+ value: React.ReactNode;
2343
+ }
2344
+ interface FactListProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "children"> {
2345
+ facts: Fact[];
2346
+ className?: string;
2347
+ }
2348
+ /**
2349
+ * Label/value pairs as a compact grid: 2 to 4 columns as the list's own width allows, one column
2350
+ * when it is narrow (a phone). Where CardRow stacks one pair per line, a summary of a handful of
2351
+ * facts reads at a glance instead of filling the screen. The columns follow the width of the
2352
+ * container it is placed in, not the viewport, so it holds in a narrow card on a wide screen too.
2353
+ */
2354
+ declare function FactList({ facts, className, ...rest }: FactListProps): React.JSX.Element;
2355
+
2328
2356
  /**
2329
2357
  * Multi-select control with a 44px comfortable hit area.
2330
2358
  */
@@ -4685,6 +4713,32 @@ declare function DemoSessionProvider({ children }: {
4685
4713
  children?: React.ReactNode;
4686
4714
  }): React.FunctionComponentElement<SessionProviderProps>;
4687
4715
 
4716
+ /** Where the params live. The default is the browser's address; an app with a router
4717
+ * passes an adapter over the router's search params so the router stays in step. */
4718
+ interface QueryUrlAdapter {
4719
+ read(): URLSearchParams;
4720
+ /** Replaces the current history entry's params: a refinement of one list is not a place to go Back to. */
4721
+ write(next: URLSearchParams): void;
4722
+ /** Calls `onChange` with the params as they now are whenever they change (Back, Forward, or a
4723
+ * `write`), and returns the unsubscribe. The params are passed, never re-read through the adapter,
4724
+ * because an adapter built per render answers `read()` with the params of the render that built it
4725
+ * and may notify before React renders again. A notification of the list's own `write` carries the
4726
+ * params it wrote, which the hook recognises as no change. `read` is called once, when the list mounts. */
4727
+ subscribe(onChange: (params: URLSearchParams) => void): () => void;
4728
+ }
4729
+ interface QueryUrlOptions {
4730
+ /** Prefix for this list's params, for a screen with more than one list. */
4731
+ scope?: string;
4732
+ /** Defaults to the browser's address (`historyUrlAdapter`). */
4733
+ adapter?: QueryUrlAdapter;
4734
+ }
4735
+ type QueryPaging = "page" | "keyset";
4736
+ declare const historyUrlAdapter: QueryUrlAdapter;
4737
+ /** The query the address describes: `base` (the options' defaults) for whatever it does not name. */
4738
+ declare function readQueryFromUrl(params: URLSearchParams, scope: string | undefined, base: TableQuery, paging: QueryPaging): TableQuery;
4739
+ /** A copy of `params` whose own keys describe `query`: a value equal to `base` is removed, not written. */
4740
+ declare function writeQueryToUrl(params: URLSearchParams, scope: string | undefined, query: TableQuery, base: TableQuery, paging: QueryPaging): URLSearchParams;
4741
+
4688
4742
  interface TableQuery {
4689
4743
  /** 1-indexed. */
4690
4744
  page: number;
@@ -4720,6 +4774,19 @@ interface ListEnvelope<Row = unknown> {
4720
4774
  };
4721
4775
  aggregate?: Record<string, unknown>;
4722
4776
  }
4777
+ /** The envelope a keyset-paged list endpoint returns (`paging: "keyset"`): one page of rows and the
4778
+ * cursor of the next, which is how a list that cannot cheaply count its rows (a BigQuery read) pages. */
4779
+ interface KeysetEnvelope<Row = unknown> {
4780
+ rows: Row[];
4781
+ /** Opaque; null on the last page. Sent back as `after` to read the page that follows. */
4782
+ next: string | null;
4783
+ /** Every row of the match, when the endpoint can say. */
4784
+ total?: number;
4785
+ filter?: {
4786
+ facets: Record<string, Record<string, number>>;
4787
+ };
4788
+ aggregate?: Record<string, unknown>;
4789
+ }
4723
4790
  interface RunConfig<Row = unknown> {
4724
4791
  searchKeys?: string[];
4725
4792
  filters?: Record<string, (row: Row, value: any) => boolean>;
@@ -4733,15 +4800,10 @@ interface RunConfig<Row = unknown> {
4733
4800
  };
4734
4801
  defaultPageSize?: number;
4735
4802
  }
4736
- interface ServerTable<Row = unknown> {
4803
+ /** What a table has whichever way its endpoint pages. */
4804
+ interface ServerTableBase<Row = unknown> {
4737
4805
  rows: Row[];
4738
- pager: Pager;
4739
- total: number;
4740
- page: number;
4741
4806
  pageSize: number;
4742
- totalPages: number;
4743
- from: number;
4744
- to: number;
4745
4807
  facets: Record<string, Record<string, number>>;
4746
4808
  aggregate: Record<string, unknown>;
4747
4809
  query: TableQuery;
@@ -4757,23 +4819,55 @@ interface ServerTable<Row = unknown> {
4757
4819
  /** True while re-querying with previous rows still on screen. Pass straight to
4758
4820
  * DataTable's `refreshing`, or to LoadingRegion as state="refreshing". */
4759
4821
  refreshing: boolean;
4822
+ /** Why the last request failed; null while there is nothing to show. A first load that fails
4823
+ * leaves `rows` empty; a refresh or a `loadMore` that fails keeps the rows already on screen.
4824
+ * Cleared by the next request, whether `retry`, `refresh` or a change of query. */
4825
+ error: Error | null;
4826
+ /** Runs again what failed: the query, or the page `loadMore` was reading. */
4827
+ retry(): void;
4760
4828
  activeFilterCount: number;
4761
- setPage(p: number): void;
4762
4829
  setPageSize(n: number): void;
4763
4830
  setQ(q: string): void;
4764
4831
  toggleSort(key: string): void;
4765
4832
  setSortKey(key: string, dir?: "asc" | "desc"): void;
4766
- /** Same query, unpaged — for CSV export and select-all-matching. */
4767
- fetchAll(): Promise<Row[]>;
4768
4833
  /** value may be an updater fn — REQUIRED for toggles, or two fast clicks read the same
4769
4834
  * stale array and the first is lost. */
4770
4835
  setFilter(id: string, value: unknown | ((prev: unknown) => unknown)): void;
4771
4836
  clearFilter(id: string): void;
4772
4837
  setFilters(filters: Record<string, unknown>): void;
4773
4838
  clearFilters(): void;
4839
+ /** Re-queries now, even when the query has not changed. */
4774
4840
  refresh(): void;
4841
+ /** Changes the rows on screen in place, without reading again: a saved decision updating its
4842
+ * row. The next answer (a new query, `refresh`, `retry`) replaces them. */
4843
+ patchRows(change: (rows: Row[]) => Row[]): void;
4775
4844
  queryString: string;
4776
4845
  }
4846
+ /** A table over a page-numbered endpoint (`ListEnvelope`): the default. */
4847
+ interface ServerTable<Row = unknown> extends ServerTableBase<Row> {
4848
+ pager: Pager;
4849
+ total: number;
4850
+ page: number;
4851
+ totalPages: number;
4852
+ from: number;
4853
+ to: number;
4854
+ setPage(p: number): void;
4855
+ /** Same query, unpaged — for CSV export and select-all-matching. */
4856
+ fetchAll(): Promise<Row[]>;
4857
+ }
4858
+ /** A table over a cursor-paged endpoint (`KeysetEnvelope`): `paging: "keyset"`. It has no pages, so no
4859
+ * pager, `setPage` or `fetchAll`; it has the cursor's `loadMore`. */
4860
+ interface KeysetServerTable<Row = unknown> extends ServerTableBase<Row> {
4861
+ /** Every row of the match, when the endpoint said; null when it cannot count them. */
4862
+ total: number | null;
4863
+ /** Another page follows the last one loaded. */
4864
+ hasMore: boolean;
4865
+ /** The next page is being read (the rows stay as they are, so this is not `refreshing`). */
4866
+ loadingMore: boolean;
4867
+ /** Reads the page after the last one loaded and appends it. A no-op while a read is in flight, the
4868
+ * first page is loading, or at the end. */
4869
+ loadMore(): void;
4870
+ }
4777
4871
  interface UseServerTableOptions {
4778
4872
  endpoint: string;
4779
4873
  params?: Record<string, unknown>;
@@ -4783,12 +4877,27 @@ interface UseServerTableOptions {
4783
4877
  /** Opts into durable rows-per-page and default sort. Page/search/filters are deliberately
4784
4878
  * NOT persisted — they describe one task, and restoring them hides rows the user expects. */
4785
4879
  prefsKey?: string;
4880
+ /** The request carries `page` and `pageSize`; the envelope is a `ListEnvelope`. */
4881
+ paging?: "page";
4882
+ /** Keeps the query in the address (`?q=ohio&sort=crp&page=2`), so a link reproduces the list and
4883
+ * Back returns to it. The address wins over `defaults`; it is written when the request is sent,
4884
+ * after the search debounce. Pass `{}` for the browser's own address, or `{ adapter }` over a
4885
+ * router's search params; `scope` prefixes the params of one list among several. */
4886
+ url?: QueryUrlOptions;
4887
+ }
4888
+ /** For an endpoint that pages by cursor and cannot cheaply count its rows. The request carries `limit`
4889
+ * (the page size) and, after the first page, `after` (the cursor); the envelope is a `KeysetEnvelope`.
4890
+ * Any change of search, filter or sort starts again from the first page. */
4891
+ interface UseKeysetTableOptions extends Omit<UseServerTableOptions, "paging"> {
4892
+ paging: "keyset";
4786
4893
  }
4787
4894
  declare function eqFilter<Row>(get: (row: Row) => unknown): (row: Row, value: unknown) => boolean;
4788
4895
  declare function anyOfFilter<Row>(get: (row: Row) => string[]): (row: Row, value: unknown) => boolean;
4789
4896
  declare function rangeFilter<Row>(get: (row: Row) => number): (row: Row, value: unknown) => boolean;
4790
4897
  type Api = {
4791
- request(id: string, params?: unknown): Promise<unknown>;
4898
+ request(id: string, params?: unknown, options?: {
4899
+ signal: AbortSignal;
4900
+ }): Promise<unknown>;
4792
4901
  };
4793
4902
  type PrefsStore = {
4794
4903
  getTable(key: string): any;
@@ -4799,8 +4908,10 @@ declare global {
4799
4908
  PlannerPrefs?: PrefsStore;
4800
4909
  }
4801
4910
  }
4802
- /** React hook — the only way a screen should talk to a list endpoint. */
4803
- declare function useServerTable<Row = unknown>({ endpoint, params, defaults, deps, prefsKey }: UseServerTableOptions): ServerTable<Row>;
4911
+ /** React hook — the only way a screen should talk to a list endpoint. Page-numbered by default;
4912
+ * `paging: "keyset"` returns the cursor-paged table (`KeysetServerTable`). */
4913
+ declare function useServerTable<Row = unknown>(options: UseServerTableOptions): ServerTable<Row>;
4914
+ declare function useServerTable<Row = unknown>(options: UseKeysetTableOptions): KeysetServerTable<Row>;
4804
4915
  declare const QueryKit: {
4805
4916
  DEFAULTS: TableQuery;
4806
4917
  /** Register the app's simulated (or real) transport: an object with .request(id, params). */
@@ -5123,4 +5234,4 @@ declare function CornerStackPortal({ slot, children }: {
5123
5234
  children?: React.ReactNode;
5124
5235
  }): React.ReactPortal | null;
5125
5236
 
5126
- 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, AppearanceProvider, type AppearanceProviderProps, 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, COPIED_FEEDBACK_MS, CORNER_STACK_INSET_PROPERTY, Calendar, type CalendarProps, Card, CardGrid, type CardGridProps, 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, CodeEditor, type CodeEditorDiagnostic, type CodeEditorProps, Collapsible, type CollapsibleProps, ComingSoon, type ComingSoonProps, type ContextUsage, CornerStackPortal, type CornerStackSlot, type CreateVersionStoreOptions, CsiBadge, type CsiBadgeProps, CsiHero, type CsiHeroProps, CsiMeter, type CsiMeterProps, DEFAULT_PREFS, DEFAULT_STORAGE_KEY, DEFAULT_TOAST_DURATION_MS, 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 FilterValidation, type FilterValue, Flag$1 as Flag, type FlagExplanation, type FlagProps, FlytedeskBrand, type FlytedeskBrandProps, FlytedeskMark, type FlytedeskMarkProps, FormatEta, FunnelChart, type FunnelChartProps, type FunnelStep, Gate, GatePending, type GatePendingProps, 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, LAYER_STEP, 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, OVERLAY_CEILING, 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, ROOT_STEP, 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, SessionScreen, type SessionScreenKind, type SessionScreenProps, type SessionStats, type SessionUser, SidebarNav, type SidebarNavItem, type SidebarNavProps, Skeleton, type SkeletonProps, SkeletonText, type SkeletonTextProps, type SlashCommand, Slider, type SliderProps, type SortDirection, type SortEntry, SortMenu, type SortMenuField, type SortMenuProps, type SpecModule, Spinner, type SpinnerProps, type StackedLayer, type StackedLayerOptions, StackedLayerProvider, 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 ToastApi, type ToastOptions, type ToastProps, ToastProvider, 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, __resetLayerStackForTests, acceptMatches, anyOfFilter, applyAppearance, applyPrefs, channelWeightOf, computeNeedMore, computeVirtualWindow, copyToClipboard, createLocalStorageAppearanceStore, createVersionStore, eqFilter, extensionOf, extractClipboardFiles, filterFiles, formatAbsolute, formatBytes, formatClock, formatDocumentTitle, formatDuration, formatEta, formatRelative, groupMessages, hasModifier, iconForMime, importanceLevel, importanceTokens, installFlytedeskFavicon, isImage, isSystemMessage, isWithinLayerTree, jobBucket, languageLabel, loadPrefs, markdownToText, meterFormats, modifierLabel, parseDelimited, pastedTextName, pluralizeUnit, preferenceScore, preferenceSegments, rangeFilter, resolveTheme, revokeAttachment, savePrefs, toAttachment, tokenize, useAppearancePrefs, useAppearanceStore, useChatEngine, useCopyToClipboard, useCornerStackSlot, useDocumentTitle, useFeatureStatus, useLayerZIndex, usePopoverPosition, useResponsiveRail, useRuntimeMode, useServerTable, useSessionContext, useStackedLayer, useStagedFiles, useToast, validateFilterValue, visibleMessages, watchAppearance };
5237
+ 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, AppearanceProvider, type AppearanceProviderProps, 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, COPIED_FEEDBACK_MS, CORNER_STACK_INSET_PROPERTY, Calendar, type CalendarProps, Card, CardGrid, type CardGridProps, 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, CodeEditor, type CodeEditorDiagnostic, type CodeEditorProps, Collapsible, type CollapsibleProps, ComingSoon, type ComingSoonProps, type ContextUsage, CornerStackPortal, type CornerStackSlot, type CreateVersionStoreOptions, CsiBadge, type CsiBadgeProps, CsiHero, type CsiHeroProps, CsiMeter, type CsiMeterProps, DEFAULT_PREFS, DEFAULT_STORAGE_KEY, DEFAULT_TOAST_DURATION_MS, DataTable, type DataTableColumn, type DataTablePhoneRole, 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, type Fact, FactList, type FactListProps, 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 FilterValidation, type FilterValue, Flag$1 as Flag, type FlagExplanation, type FlagProps, FlytedeskBrand, type FlytedeskBrandProps, FlytedeskMark, type FlytedeskMarkProps, FormatEta, FunnelChart, type FunnelChartProps, type FunnelStep, Gate, GatePending, type GatePendingProps, 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 KeysetEnvelope, type KeysetServerTable, LAYER_STEP, 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, OVERLAY_CEILING, 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 QueryPaging, type QueryUrlAdapter, type QueryUrlOptions, type QueuedTurn, QuotaRow, type QuotaRowProps, ROOT_STEP, 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 ServerTableBase, type Session, type SessionContextValue, type Flag as SessionFlag, SessionKit, SessionProvider, type SessionProviderProps, type SessionRole, SessionScreen, type SessionScreenKind, type SessionScreenProps, type SessionStats, type SessionUser, SidebarNav, type SidebarNavItem, type SidebarNavProps, Skeleton, type SkeletonProps, SkeletonText, type SkeletonTextProps, type SlashCommand, Slider, type SliderProps, type SortDirection, type SortEntry, SortMenu, type SortMenuField, type SortMenuProps, type SpecModule, Spinner, type SpinnerProps, type StackedLayer, type StackedLayerOptions, StackedLayerProvider, StatTile, type StatTileProps, type Step, StepList, type StepListProps, type StreamHandlers, type Suggestion, SurroundSound, type SurroundSoundProps, Switch, type SwitchProps, type TabItem, 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 ToastApi, type ToastOptions, type ToastProps, ToastProvider, Tooltip, type TooltipProps, Topbar, type TopbarProps, TranscriptKit, TransferList, type TransferListProps, type TransferListSide, type TransferListSideProps, TrendChart, type TrendChartProps, type TrendSeries, type UsageLimit, UseFeatureStatus, type UseKeysetTableOptions, 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, __resetLayerStackForTests, acceptMatches, anyOfFilter, applyAppearance, applyPrefs, channelWeightOf, computeNeedMore, computeVirtualWindow, copyToClipboard, createLocalStorageAppearanceStore, createVersionStore, eqFilter, extensionOf, extractClipboardFiles, filterFiles, formatAbsolute, formatBytes, formatClock, formatDocumentTitle, formatDuration, formatEta, formatRelative, groupMessages, hasModifier, historyUrlAdapter, iconForMime, importanceLevel, importanceTokens, installFlytedeskFavicon, isImage, isSystemMessage, isWithinLayerTree, jobBucket, languageLabel, loadPrefs, markdownToText, meterFormats, modifierLabel, parseDelimited, pastedTextName, pluralizeUnit, preferenceScore, preferenceSegments, rangeFilter, readQueryFromUrl, resolveTheme, revokeAttachment, savePrefs, toAttachment, tokenize, useAppearancePrefs, useAppearanceStore, useChatEngine, useCopyToClipboard, useCornerStackSlot, useDocumentTitle, useFeatureStatus, useLayerZIndex, usePopoverPosition, useResponsiveRail, useRuntimeMode, useServerTable, useSessionContext, useStackedLayer, useStagedFiles, useToast, validateFilterValue, visibleMessages, watchAppearance, writeQueryToUrl };
package/dist/index.d.ts CHANGED
@@ -759,15 +759,19 @@ declare function FlytedeskBrand({ appName, size, className, ...rest }: Flytedesk
759
759
  */
760
760
  declare function installFlytedeskFavicon(url: string): void;
761
761
 
762
+ interface TabItem {
763
+ value: string;
764
+ label: string;
765
+ count?: number;
766
+ /** `attention` colours the count as work that is waiting. Without it the count is neutral. */
767
+ tone?: "attention";
768
+ }
762
769
  /**
763
770
  * Places within one screen. Underline only — no pill tabs in the product.
771
+ * Tabs that do not fit scroll sideways, fading the edge that has more, with the active tab kept in view.
764
772
  */
765
773
  interface TabsProps {
766
- tabs: Array<string | {
767
- value: string;
768
- label: string;
769
- count?: number;
770
- }>;
774
+ tabs: Array<string | TabItem>;
771
775
  value?: string;
772
776
  onChange?: (value: string) => void;
773
777
  className?: string;
@@ -1168,10 +1172,14 @@ interface CsiHeroProps {
1168
1172
  }
1169
1173
  declare function CsiHero({ band, crp, label, className }: CsiHeroProps): React.JSX.Element;
1170
1174
 
1175
+ /** What a column becomes when the table is narrow (640px or less), where each row is a compact card instead of a table row:
1176
+ * `primary` is on the card's title line, `secondary` in its muted meta line (labelled with the
1177
+ * column's label), `hidden` is left out. */
1178
+ type DataTablePhoneRole = "primary" | "secondary" | "hidden";
1171
1179
  /**
1172
1180
  * The product's dense read surface. Sticky overline header, hairline rows, no zebra,
1173
1181
  * numbers right-aligned and tabular. Renders its own skeleton rows so the table
1174
- * never collapses while data is in flight.
1182
+ * never collapses while data is in flight. At 640px wide or less (its own width, not the window's) each row becomes a compact card.
1175
1183
  */
1176
1184
  interface DataTableColumn {
1177
1185
  key: string;
@@ -1181,6 +1189,8 @@ interface DataTableColumn {
1181
1189
  /** Set widths explicitly; auto layout shifts as data arrives. */
1182
1190
  width?: string;
1183
1191
  sortable?: boolean;
1192
+ /** The column's role in the stacked-card layout, at a table width of 640px or less. At least one column must be `primary`. */
1193
+ phone: DataTablePhoneRole;
1184
1194
  render?: (row: any) => React.ReactNode;
1185
1195
  }
1186
1196
  interface DataTableProps {
@@ -2325,6 +2335,24 @@ interface TransferListProps<T> {
2325
2335
  */
2326
2336
  declare function TransferList<T>({ left, right, keyOf, renderRow, onMove, itemHeight, rowGap, listHeight, className, }: TransferListProps<T>): React.JSX.Element;
2327
2337
 
2338
+ interface Fact {
2339
+ /** What the fact is. Also its identity, so labels are unique within a list. */
2340
+ label: string;
2341
+ /** Any node: text, a badge, a link. */
2342
+ value: React.ReactNode;
2343
+ }
2344
+ interface FactListProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "children"> {
2345
+ facts: Fact[];
2346
+ className?: string;
2347
+ }
2348
+ /**
2349
+ * Label/value pairs as a compact grid: 2 to 4 columns as the list's own width allows, one column
2350
+ * when it is narrow (a phone). Where CardRow stacks one pair per line, a summary of a handful of
2351
+ * facts reads at a glance instead of filling the screen. The columns follow the width of the
2352
+ * container it is placed in, not the viewport, so it holds in a narrow card on a wide screen too.
2353
+ */
2354
+ declare function FactList({ facts, className, ...rest }: FactListProps): React.JSX.Element;
2355
+
2328
2356
  /**
2329
2357
  * Multi-select control with a 44px comfortable hit area.
2330
2358
  */
@@ -4685,6 +4713,32 @@ declare function DemoSessionProvider({ children }: {
4685
4713
  children?: React.ReactNode;
4686
4714
  }): React.FunctionComponentElement<SessionProviderProps>;
4687
4715
 
4716
+ /** Where the params live. The default is the browser's address; an app with a router
4717
+ * passes an adapter over the router's search params so the router stays in step. */
4718
+ interface QueryUrlAdapter {
4719
+ read(): URLSearchParams;
4720
+ /** Replaces the current history entry's params: a refinement of one list is not a place to go Back to. */
4721
+ write(next: URLSearchParams): void;
4722
+ /** Calls `onChange` with the params as they now are whenever they change (Back, Forward, or a
4723
+ * `write`), and returns the unsubscribe. The params are passed, never re-read through the adapter,
4724
+ * because an adapter built per render answers `read()` with the params of the render that built it
4725
+ * and may notify before React renders again. A notification of the list's own `write` carries the
4726
+ * params it wrote, which the hook recognises as no change. `read` is called once, when the list mounts. */
4727
+ subscribe(onChange: (params: URLSearchParams) => void): () => void;
4728
+ }
4729
+ interface QueryUrlOptions {
4730
+ /** Prefix for this list's params, for a screen with more than one list. */
4731
+ scope?: string;
4732
+ /** Defaults to the browser's address (`historyUrlAdapter`). */
4733
+ adapter?: QueryUrlAdapter;
4734
+ }
4735
+ type QueryPaging = "page" | "keyset";
4736
+ declare const historyUrlAdapter: QueryUrlAdapter;
4737
+ /** The query the address describes: `base` (the options' defaults) for whatever it does not name. */
4738
+ declare function readQueryFromUrl(params: URLSearchParams, scope: string | undefined, base: TableQuery, paging: QueryPaging): TableQuery;
4739
+ /** A copy of `params` whose own keys describe `query`: a value equal to `base` is removed, not written. */
4740
+ declare function writeQueryToUrl(params: URLSearchParams, scope: string | undefined, query: TableQuery, base: TableQuery, paging: QueryPaging): URLSearchParams;
4741
+
4688
4742
  interface TableQuery {
4689
4743
  /** 1-indexed. */
4690
4744
  page: number;
@@ -4720,6 +4774,19 @@ interface ListEnvelope<Row = unknown> {
4720
4774
  };
4721
4775
  aggregate?: Record<string, unknown>;
4722
4776
  }
4777
+ /** The envelope a keyset-paged list endpoint returns (`paging: "keyset"`): one page of rows and the
4778
+ * cursor of the next, which is how a list that cannot cheaply count its rows (a BigQuery read) pages. */
4779
+ interface KeysetEnvelope<Row = unknown> {
4780
+ rows: Row[];
4781
+ /** Opaque; null on the last page. Sent back as `after` to read the page that follows. */
4782
+ next: string | null;
4783
+ /** Every row of the match, when the endpoint can say. */
4784
+ total?: number;
4785
+ filter?: {
4786
+ facets: Record<string, Record<string, number>>;
4787
+ };
4788
+ aggregate?: Record<string, unknown>;
4789
+ }
4723
4790
  interface RunConfig<Row = unknown> {
4724
4791
  searchKeys?: string[];
4725
4792
  filters?: Record<string, (row: Row, value: any) => boolean>;
@@ -4733,15 +4800,10 @@ interface RunConfig<Row = unknown> {
4733
4800
  };
4734
4801
  defaultPageSize?: number;
4735
4802
  }
4736
- interface ServerTable<Row = unknown> {
4803
+ /** What a table has whichever way its endpoint pages. */
4804
+ interface ServerTableBase<Row = unknown> {
4737
4805
  rows: Row[];
4738
- pager: Pager;
4739
- total: number;
4740
- page: number;
4741
4806
  pageSize: number;
4742
- totalPages: number;
4743
- from: number;
4744
- to: number;
4745
4807
  facets: Record<string, Record<string, number>>;
4746
4808
  aggregate: Record<string, unknown>;
4747
4809
  query: TableQuery;
@@ -4757,23 +4819,55 @@ interface ServerTable<Row = unknown> {
4757
4819
  /** True while re-querying with previous rows still on screen. Pass straight to
4758
4820
  * DataTable's `refreshing`, or to LoadingRegion as state="refreshing". */
4759
4821
  refreshing: boolean;
4822
+ /** Why the last request failed; null while there is nothing to show. A first load that fails
4823
+ * leaves `rows` empty; a refresh or a `loadMore` that fails keeps the rows already on screen.
4824
+ * Cleared by the next request, whether `retry`, `refresh` or a change of query. */
4825
+ error: Error | null;
4826
+ /** Runs again what failed: the query, or the page `loadMore` was reading. */
4827
+ retry(): void;
4760
4828
  activeFilterCount: number;
4761
- setPage(p: number): void;
4762
4829
  setPageSize(n: number): void;
4763
4830
  setQ(q: string): void;
4764
4831
  toggleSort(key: string): void;
4765
4832
  setSortKey(key: string, dir?: "asc" | "desc"): void;
4766
- /** Same query, unpaged — for CSV export and select-all-matching. */
4767
- fetchAll(): Promise<Row[]>;
4768
4833
  /** value may be an updater fn — REQUIRED for toggles, or two fast clicks read the same
4769
4834
  * stale array and the first is lost. */
4770
4835
  setFilter(id: string, value: unknown | ((prev: unknown) => unknown)): void;
4771
4836
  clearFilter(id: string): void;
4772
4837
  setFilters(filters: Record<string, unknown>): void;
4773
4838
  clearFilters(): void;
4839
+ /** Re-queries now, even when the query has not changed. */
4774
4840
  refresh(): void;
4841
+ /** Changes the rows on screen in place, without reading again: a saved decision updating its
4842
+ * row. The next answer (a new query, `refresh`, `retry`) replaces them. */
4843
+ patchRows(change: (rows: Row[]) => Row[]): void;
4775
4844
  queryString: string;
4776
4845
  }
4846
+ /** A table over a page-numbered endpoint (`ListEnvelope`): the default. */
4847
+ interface ServerTable<Row = unknown> extends ServerTableBase<Row> {
4848
+ pager: Pager;
4849
+ total: number;
4850
+ page: number;
4851
+ totalPages: number;
4852
+ from: number;
4853
+ to: number;
4854
+ setPage(p: number): void;
4855
+ /** Same query, unpaged — for CSV export and select-all-matching. */
4856
+ fetchAll(): Promise<Row[]>;
4857
+ }
4858
+ /** A table over a cursor-paged endpoint (`KeysetEnvelope`): `paging: "keyset"`. It has no pages, so no
4859
+ * pager, `setPage` or `fetchAll`; it has the cursor's `loadMore`. */
4860
+ interface KeysetServerTable<Row = unknown> extends ServerTableBase<Row> {
4861
+ /** Every row of the match, when the endpoint said; null when it cannot count them. */
4862
+ total: number | null;
4863
+ /** Another page follows the last one loaded. */
4864
+ hasMore: boolean;
4865
+ /** The next page is being read (the rows stay as they are, so this is not `refreshing`). */
4866
+ loadingMore: boolean;
4867
+ /** Reads the page after the last one loaded and appends it. A no-op while a read is in flight, the
4868
+ * first page is loading, or at the end. */
4869
+ loadMore(): void;
4870
+ }
4777
4871
  interface UseServerTableOptions {
4778
4872
  endpoint: string;
4779
4873
  params?: Record<string, unknown>;
@@ -4783,12 +4877,27 @@ interface UseServerTableOptions {
4783
4877
  /** Opts into durable rows-per-page and default sort. Page/search/filters are deliberately
4784
4878
  * NOT persisted — they describe one task, and restoring them hides rows the user expects. */
4785
4879
  prefsKey?: string;
4880
+ /** The request carries `page` and `pageSize`; the envelope is a `ListEnvelope`. */
4881
+ paging?: "page";
4882
+ /** Keeps the query in the address (`?q=ohio&sort=crp&page=2`), so a link reproduces the list and
4883
+ * Back returns to it. The address wins over `defaults`; it is written when the request is sent,
4884
+ * after the search debounce. Pass `{}` for the browser's own address, or `{ adapter }` over a
4885
+ * router's search params; `scope` prefixes the params of one list among several. */
4886
+ url?: QueryUrlOptions;
4887
+ }
4888
+ /** For an endpoint that pages by cursor and cannot cheaply count its rows. The request carries `limit`
4889
+ * (the page size) and, after the first page, `after` (the cursor); the envelope is a `KeysetEnvelope`.
4890
+ * Any change of search, filter or sort starts again from the first page. */
4891
+ interface UseKeysetTableOptions extends Omit<UseServerTableOptions, "paging"> {
4892
+ paging: "keyset";
4786
4893
  }
4787
4894
  declare function eqFilter<Row>(get: (row: Row) => unknown): (row: Row, value: unknown) => boolean;
4788
4895
  declare function anyOfFilter<Row>(get: (row: Row) => string[]): (row: Row, value: unknown) => boolean;
4789
4896
  declare function rangeFilter<Row>(get: (row: Row) => number): (row: Row, value: unknown) => boolean;
4790
4897
  type Api = {
4791
- request(id: string, params?: unknown): Promise<unknown>;
4898
+ request(id: string, params?: unknown, options?: {
4899
+ signal: AbortSignal;
4900
+ }): Promise<unknown>;
4792
4901
  };
4793
4902
  type PrefsStore = {
4794
4903
  getTable(key: string): any;
@@ -4799,8 +4908,10 @@ declare global {
4799
4908
  PlannerPrefs?: PrefsStore;
4800
4909
  }
4801
4910
  }
4802
- /** React hook — the only way a screen should talk to a list endpoint. */
4803
- declare function useServerTable<Row = unknown>({ endpoint, params, defaults, deps, prefsKey }: UseServerTableOptions): ServerTable<Row>;
4911
+ /** React hook — the only way a screen should talk to a list endpoint. Page-numbered by default;
4912
+ * `paging: "keyset"` returns the cursor-paged table (`KeysetServerTable`). */
4913
+ declare function useServerTable<Row = unknown>(options: UseServerTableOptions): ServerTable<Row>;
4914
+ declare function useServerTable<Row = unknown>(options: UseKeysetTableOptions): KeysetServerTable<Row>;
4804
4915
  declare const QueryKit: {
4805
4916
  DEFAULTS: TableQuery;
4806
4917
  /** Register the app's simulated (or real) transport: an object with .request(id, params). */
@@ -5123,4 +5234,4 @@ declare function CornerStackPortal({ slot, children }: {
5123
5234
  children?: React.ReactNode;
5124
5235
  }): React.ReactPortal | null;
5125
5236
 
5126
- 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, AppearanceProvider, type AppearanceProviderProps, 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, COPIED_FEEDBACK_MS, CORNER_STACK_INSET_PROPERTY, Calendar, type CalendarProps, Card, CardGrid, type CardGridProps, 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, CodeEditor, type CodeEditorDiagnostic, type CodeEditorProps, Collapsible, type CollapsibleProps, ComingSoon, type ComingSoonProps, type ContextUsage, CornerStackPortal, type CornerStackSlot, type CreateVersionStoreOptions, CsiBadge, type CsiBadgeProps, CsiHero, type CsiHeroProps, CsiMeter, type CsiMeterProps, DEFAULT_PREFS, DEFAULT_STORAGE_KEY, DEFAULT_TOAST_DURATION_MS, 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 FilterValidation, type FilterValue, Flag$1 as Flag, type FlagExplanation, type FlagProps, FlytedeskBrand, type FlytedeskBrandProps, FlytedeskMark, type FlytedeskMarkProps, FormatEta, FunnelChart, type FunnelChartProps, type FunnelStep, Gate, GatePending, type GatePendingProps, 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, LAYER_STEP, 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, OVERLAY_CEILING, 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, ROOT_STEP, 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, SessionScreen, type SessionScreenKind, type SessionScreenProps, type SessionStats, type SessionUser, SidebarNav, type SidebarNavItem, type SidebarNavProps, Skeleton, type SkeletonProps, SkeletonText, type SkeletonTextProps, type SlashCommand, Slider, type SliderProps, type SortDirection, type SortEntry, SortMenu, type SortMenuField, type SortMenuProps, type SpecModule, Spinner, type SpinnerProps, type StackedLayer, type StackedLayerOptions, StackedLayerProvider, 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 ToastApi, type ToastOptions, type ToastProps, ToastProvider, 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, __resetLayerStackForTests, acceptMatches, anyOfFilter, applyAppearance, applyPrefs, channelWeightOf, computeNeedMore, computeVirtualWindow, copyToClipboard, createLocalStorageAppearanceStore, createVersionStore, eqFilter, extensionOf, extractClipboardFiles, filterFiles, formatAbsolute, formatBytes, formatClock, formatDocumentTitle, formatDuration, formatEta, formatRelative, groupMessages, hasModifier, iconForMime, importanceLevel, importanceTokens, installFlytedeskFavicon, isImage, isSystemMessage, isWithinLayerTree, jobBucket, languageLabel, loadPrefs, markdownToText, meterFormats, modifierLabel, parseDelimited, pastedTextName, pluralizeUnit, preferenceScore, preferenceSegments, rangeFilter, resolveTheme, revokeAttachment, savePrefs, toAttachment, tokenize, useAppearancePrefs, useAppearanceStore, useChatEngine, useCopyToClipboard, useCornerStackSlot, useDocumentTitle, useFeatureStatus, useLayerZIndex, usePopoverPosition, useResponsiveRail, useRuntimeMode, useServerTable, useSessionContext, useStackedLayer, useStagedFiles, useToast, validateFilterValue, visibleMessages, watchAppearance };
5237
+ 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, AppearanceProvider, type AppearanceProviderProps, 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, COPIED_FEEDBACK_MS, CORNER_STACK_INSET_PROPERTY, Calendar, type CalendarProps, Card, CardGrid, type CardGridProps, 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, CodeEditor, type CodeEditorDiagnostic, type CodeEditorProps, Collapsible, type CollapsibleProps, ComingSoon, type ComingSoonProps, type ContextUsage, CornerStackPortal, type CornerStackSlot, type CreateVersionStoreOptions, CsiBadge, type CsiBadgeProps, CsiHero, type CsiHeroProps, CsiMeter, type CsiMeterProps, DEFAULT_PREFS, DEFAULT_STORAGE_KEY, DEFAULT_TOAST_DURATION_MS, DataTable, type DataTableColumn, type DataTablePhoneRole, 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, type Fact, FactList, type FactListProps, 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 FilterValidation, type FilterValue, Flag$1 as Flag, type FlagExplanation, type FlagProps, FlytedeskBrand, type FlytedeskBrandProps, FlytedeskMark, type FlytedeskMarkProps, FormatEta, FunnelChart, type FunnelChartProps, type FunnelStep, Gate, GatePending, type GatePendingProps, 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 KeysetEnvelope, type KeysetServerTable, LAYER_STEP, 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, OVERLAY_CEILING, 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 QueryPaging, type QueryUrlAdapter, type QueryUrlOptions, type QueuedTurn, QuotaRow, type QuotaRowProps, ROOT_STEP, 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 ServerTableBase, type Session, type SessionContextValue, type Flag as SessionFlag, SessionKit, SessionProvider, type SessionProviderProps, type SessionRole, SessionScreen, type SessionScreenKind, type SessionScreenProps, type SessionStats, type SessionUser, SidebarNav, type SidebarNavItem, type SidebarNavProps, Skeleton, type SkeletonProps, SkeletonText, type SkeletonTextProps, type SlashCommand, Slider, type SliderProps, type SortDirection, type SortEntry, SortMenu, type SortMenuField, type SortMenuProps, type SpecModule, Spinner, type SpinnerProps, type StackedLayer, type StackedLayerOptions, StackedLayerProvider, StatTile, type StatTileProps, type Step, StepList, type StepListProps, type StreamHandlers, type Suggestion, SurroundSound, type SurroundSoundProps, Switch, type SwitchProps, type TabItem, 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 ToastApi, type ToastOptions, type ToastProps, ToastProvider, Tooltip, type TooltipProps, Topbar, type TopbarProps, TranscriptKit, TransferList, type TransferListProps, type TransferListSide, type TransferListSideProps, TrendChart, type TrendChartProps, type TrendSeries, type UsageLimit, UseFeatureStatus, type UseKeysetTableOptions, 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, __resetLayerStackForTests, acceptMatches, anyOfFilter, applyAppearance, applyPrefs, channelWeightOf, computeNeedMore, computeVirtualWindow, copyToClipboard, createLocalStorageAppearanceStore, createVersionStore, eqFilter, extensionOf, extractClipboardFiles, filterFiles, formatAbsolute, formatBytes, formatClock, formatDocumentTitle, formatDuration, formatEta, formatRelative, groupMessages, hasModifier, historyUrlAdapter, iconForMime, importanceLevel, importanceTokens, installFlytedeskFavicon, isImage, isSystemMessage, isWithinLayerTree, jobBucket, languageLabel, loadPrefs, markdownToText, meterFormats, modifierLabel, parseDelimited, pastedTextName, pluralizeUnit, preferenceScore, preferenceSegments, rangeFilter, readQueryFromUrl, resolveTheme, revokeAttachment, savePrefs, toAttachment, tokenize, useAppearancePrefs, useAppearanceStore, useChatEngine, useCopyToClipboard, useCornerStackSlot, useDocumentTitle, useFeatureStatus, useLayerZIndex, usePopoverPosition, useResponsiveRail, useRuntimeMode, useServerTable, useSessionContext, useStackedLayer, useStagedFiles, useToast, validateFilterValue, visibleMessages, watchAppearance, writeQueryToUrl };