@flytedan/flytebot-design-system 0.3.0 → 0.5.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
@@ -352,9 +352,14 @@ declare function Tabs({ tabs, value, onChange, className, ...rest }: TabsProps):
352
352
 
353
353
  /** 60px app header: breadcrumb left, actions right, and a 2px route loader along its top edge. */
354
354
  interface TopbarProps {
355
+ /** A non-last crumb with `onClick` calls it (via `preventDefault`) instead of following
356
+ * `href` — for a crumb that needs to run a side effect (e.g. clearing some selection)
357
+ * before/instead of navigating. `href` still works on its own for a plain link crumb;
358
+ * the two aren't mutually exclusive, but `onClick` wins when both are present. */
355
359
  crumbs?: Array<{
356
360
  label: string;
357
361
  href?: string;
362
+ onClick?: () => void;
358
363
  }>;
359
364
  actions?: React.ReactNode;
360
365
  /** Shows the indeterminate route loader on the top edge. */
@@ -559,6 +564,60 @@ interface DataTableProps {
559
564
  }
560
565
  declare function DataTable({ columns, rows, compact, selectedId, onRowClick, rowKey, loading, refreshing, skeletonRows, sort, onSort, className, ...rest }: DataTableProps): React.JSX.Element;
561
566
 
567
+ interface FilterFieldOption {
568
+ value: string;
569
+ label: string;
570
+ }
571
+ interface FilterFieldBase {
572
+ /** Filter id — the key this field reads/writes in `filters` and reports through
573
+ * onFilterChange/onFilterRemove. Matches useServerTable's setFilter(id, value). */
574
+ key: string;
575
+ /** Human label shown in the "add filter" list and on the field's chip. */
576
+ label: string;
577
+ }
578
+ interface FilterFieldText extends FilterFieldBase {
579
+ type: "text";
580
+ placeholder?: string;
581
+ }
582
+ interface FilterFieldSelect extends FilterFieldBase {
583
+ type: "select";
584
+ options: FilterFieldOption[];
585
+ }
586
+ /** A declared filter field. Add a variant here (and a branch below) for a new value picker. */
587
+ type FilterField = FilterFieldText | FilterFieldSelect;
588
+ interface FilterBarProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, "onChange"> {
589
+ /** Every filter a consumer can add. Order here is the order in the "add filter" list. */
590
+ fields: FilterField[];
591
+ /** Straight off useServerTable — a value of undefined/""/false reads as "not set",
592
+ * same convention that hook already uses for activeFilterCount. */
593
+ filters: Record<string, unknown>;
594
+ /** Fires on every value edit. Maps 1:1 onto useServerTable's setFilter(id, value). */
595
+ onFilterChange: (key: string, value: unknown) => void;
596
+ /** Fires when a chip's × is clicked. Maps 1:1 onto useServerTable's clearFilter(id). */
597
+ onFilterRemove: (key: string) => void;
598
+ /** Which edge the "add filter" popover aligns to. Default "left" — the trigger sits
599
+ * at the end of a left-to-right chip row, so its menu opens under its left edge. */
600
+ align?: "left" | "right";
601
+ className?: string;
602
+ }
603
+ /**
604
+ * FilterBar — the declarative filter system for a server-driven list.
605
+ *
606
+ * A consumer declares fields once (`{ key, label, type: "text" | "select", ... }`) and
607
+ * hands this a live `filters` record plus onFilterChange/onFilterRemove — the same three
608
+ * things useServerTable already exposes, so wiring one up is copy-paste, not glue code.
609
+ * Every active filter renders as a Tag chip; this component holds no shadow copy of
610
+ * filter values, only the transient "which field's popover/input is open right now" UI
611
+ * state (`panel`), the same way SortMenu holds `open` but never sort state itself.
612
+ *
613
+ * Visual/interaction language is deliberately identical to SortMenu: a secondary Button
614
+ * trigger, a `fd-view-enter` panel positioned with `top: calc(100% + 6px)`, the same
615
+ * click-outside/Escape wiring, and the same `fd-stack`/`fd-row`/`fd-overline`/`fd-muted`/
616
+ * `fd-body-sm` utility classes — so this reads as built by the same hand, not a new
617
+ * import from elsewhere.
618
+ */
619
+ declare function FilterBar({ fields, filters, onFilterChange, onFilterRemove, align, className, ...rest }: FilterBarProps): React.JSX.Element;
620
+
562
621
  /**
563
622
  * A flat figure tile — no shadow, no background color, never more than four in a row.
564
623
  */
@@ -963,6 +1022,41 @@ interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "
963
1022
  }
964
1023
  declare function Input({ label, help, error, prefix, suffix, icon, numeric, required, size, loading, disabled, id, className, style, inputStyle, ...rest }: InputProps): React.JSX.Element;
965
1024
 
1025
+ interface SearchFieldProps {
1026
+ /** Current search text. */
1027
+ value: string;
1028
+ /** Fires with the new text on every keystroke — a plain string, not a raw
1029
+ * DOM event, so this drops in above a filterable list with zero boilerplate. */
1030
+ onChange: (value: string) => void;
1031
+ placeholder?: string;
1032
+ /** Fires when the clear ("x") button is pressed. Defaults to onChange(""). */
1033
+ onClear?: () => void;
1034
+ /** Applied to the outer .fd-field element — this is where width belongs. */
1035
+ style?: React.CSSProperties;
1036
+ className?: string;
1037
+ /** Visible field label, same as Input. Most search fields skip this and rely on placeholder. */
1038
+ label?: string;
1039
+ disabled?: boolean;
1040
+ id?: string;
1041
+ name?: string;
1042
+ "aria-label"?: string;
1043
+ }
1044
+ /**
1045
+ * SearchField — the one keyword field that belongs above a filterable list.
1046
+ *
1047
+ * A thin wrapper around Input: a magnifying-glass icon on the left (Input's
1048
+ * own `icon` prop) and a clear ("x") button on the right that appears only
1049
+ * once there's something to clear. The clear button rides in Input's
1050
+ * existing `suffix` slot rather than inventing new inset layout, and its
1051
+ * styling matches Select's clearable "x" (`ph-x-circle`, `all: unset`,
1052
+ * `text-muted`) so every clear affordance in the kit looks the same.
1053
+ *
1054
+ * Controlled, string-in/string-out. Debouncing is the consumer's job (or a
1055
+ * future concern) — building it in here would be hidden behavior a caller
1056
+ * can't see or override.
1057
+ */
1058
+ declare function SearchField({ value, onChange, placeholder, onClear, style, className, label, disabled, id, name, ...rest }: SearchFieldProps): React.JSX.Element;
1059
+
966
1060
  /** Multi-line field. Same chrome as Input; vertical resize only. */
967
1061
  interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {
968
1062
  label?: string;
@@ -2747,4 +2841,4 @@ interface VersionStore<TState, TDiff = unknown> {
2747
2841
  }
2748
2842
  declare function createVersionStore<TState, TDiff = unknown>(initialState: TState, options?: CreateVersionStoreOptions<TState, TDiff>): VersionStore<TState, TDiff>;
2749
2843
 
2750
- export { AccountMenu, type AccountMenuLink, type AccountMenuProps, AgentChatPanel, type AgentChatPanelProps, ApiSpecBrowser, type ApiSpecBrowserProps, type Attachment, Avatar, type AvatarProps, AvatarStack, type AvatarStackProps, Badge, type BadgeProps, 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, DataTable, type DataTableColumn, type DataTableProps, DatePicker, type DatePickerProps, type DeviceSession, DiffBlock, type DiffBlockProps, Drawer, type DrawerProps, Dropzone, DropzoneKit, type DropzoneProps, type EditorTrigger, EmptyState, type EmptyStateProps, type EndpointSpec, FeatureGate, type FeatureGateProps, type FeatureStatus, FileChip, type FileChipProps, FileGrid, type FileGridProps, FileKit, FilePickButton, type FilePickButtonProps, type FileRejection, FileStrip, type FileStripProps, FileTile, type FileTileProps, type FileUploadHandler, Flag$1 as Flag, type FlagExplanation, type FlagProps, FlytedeskBrand, type FlytedeskBrandProps, FlytedeskMark, type FlytedeskMarkProps, FormatEta, Gate, type GateProps, IconButton, type IconButtonProps, Input, type InputProps, type JobStatus, 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, type Packet, PacketCard, type PacketCardProps, type PacketSchema, type Pager, Pagination, type PaginationProps, PermissionDenied, type PermissionDeniedProps, type PermissionGroup, PermissionHint, type PermissionItem, type Placement, type PollOptions, Popover, type PopoverProps, 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, SegmentedControl, type SegmentedControlProps, SegmentedMeter, type SegmentedMeterProps, Select, type SelectOption, type SelectProps, type SendMessageResult, type ServerTable, type Session, type Flag as SessionFlag, SessionKit, type SessionStats, SidebarNav, type SidebarNavItem, type SidebarNavProps, 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, Textarea, type TextareaProps, ThinkingBlock, type ThinkingBlockProps, type ThreadSummary, TimePicker, type TimePickerProps, Toast, type ToastProps, Tooltip, type TooltipProps, Topbar, type TopbarProps, TranscriptKit, type UsageLimit, UseFeatureStatus, UseRuntimeMode, type UseServerTableOptions, type User, type VersionRecord, type VersionStore, type VoiceHandler, acceptMatches, anyOfFilter, channelWeightOf, createVersionStore, eqFilter, extensionOf, extractClipboardFiles, filterFiles, formatAbsolute, formatBytes, formatClock, formatDuration, formatEta, formatRelative, groupMessages, hasModifier, iconForMime, isImage, isSystemMessage, jobBucket, languageLabel, markdownToText, meterFormats, modifierLabel, pastedTextName, rangeFilter, revokeAttachment, toAttachment, tokenize, useChatEngine, useFeatureStatus, usePopoverPosition, useRuntimeMode, useServerTable, useStagedFiles, visibleMessages };
2844
+ export { AccountMenu, type AccountMenuLink, type AccountMenuProps, AgentChatPanel, type AgentChatPanelProps, ApiSpecBrowser, type ApiSpecBrowserProps, type Attachment, Avatar, type AvatarProps, AvatarStack, type AvatarStackProps, Badge, type BadgeProps, 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, DataTable, type DataTableColumn, type DataTableProps, DatePicker, type DatePickerProps, type DeviceSession, DiffBlock, type DiffBlockProps, Drawer, type DrawerProps, Dropzone, DropzoneKit, type DropzoneProps, type EditorTrigger, EmptyState, type EmptyStateProps, type EndpointSpec, FeatureGate, type FeatureGateProps, type FeatureStatus, FileChip, type FileChipProps, FileGrid, type FileGridProps, FileKit, FilePickButton, type FilePickButtonProps, type FileRejection, FileStrip, type FileStripProps, FileTile, type FileTileProps, type FileUploadHandler, 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, Gate, type GateProps, IconButton, type IconButtonProps, Input, type InputProps, type JobStatus, 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, type Packet, PacketCard, type PacketCardProps, type PacketSchema, type Pager, Pagination, type PaginationProps, PermissionDenied, type PermissionDeniedProps, type PermissionGroup, PermissionHint, type PermissionItem, type Placement, type PollOptions, Popover, type PopoverProps, 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, SearchField, type SearchFieldProps, SegmentedControl, type SegmentedControlProps, SegmentedMeter, type SegmentedMeterProps, Select, type SelectOption, type SelectProps, type SendMessageResult, type ServerTable, type Session, type Flag as SessionFlag, SessionKit, type SessionStats, SidebarNav, type SidebarNavItem, type SidebarNavProps, 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, Textarea, type TextareaProps, ThinkingBlock, type ThinkingBlockProps, type ThreadSummary, TimePicker, type TimePickerProps, Toast, type ToastProps, Tooltip, type TooltipProps, Topbar, type TopbarProps, TranscriptKit, type UsageLimit, UseFeatureStatus, UseRuntimeMode, type UseServerTableOptions, type User, type VersionRecord, type VersionStore, type VoiceHandler, acceptMatches, anyOfFilter, channelWeightOf, createVersionStore, eqFilter, extensionOf, extractClipboardFiles, filterFiles, formatAbsolute, formatBytes, formatClock, formatDuration, formatEta, formatRelative, groupMessages, hasModifier, iconForMime, isImage, isSystemMessage, jobBucket, languageLabel, markdownToText, meterFormats, modifierLabel, pastedTextName, rangeFilter, revokeAttachment, toAttachment, tokenize, useChatEngine, useFeatureStatus, usePopoverPosition, useRuntimeMode, useServerTable, useStagedFiles, visibleMessages };
package/dist/index.d.ts CHANGED
@@ -352,9 +352,14 @@ declare function Tabs({ tabs, value, onChange, className, ...rest }: TabsProps):
352
352
 
353
353
  /** 60px app header: breadcrumb left, actions right, and a 2px route loader along its top edge. */
354
354
  interface TopbarProps {
355
+ /** A non-last crumb with `onClick` calls it (via `preventDefault`) instead of following
356
+ * `href` — for a crumb that needs to run a side effect (e.g. clearing some selection)
357
+ * before/instead of navigating. `href` still works on its own for a plain link crumb;
358
+ * the two aren't mutually exclusive, but `onClick` wins when both are present. */
355
359
  crumbs?: Array<{
356
360
  label: string;
357
361
  href?: string;
362
+ onClick?: () => void;
358
363
  }>;
359
364
  actions?: React.ReactNode;
360
365
  /** Shows the indeterminate route loader on the top edge. */
@@ -559,6 +564,60 @@ interface DataTableProps {
559
564
  }
560
565
  declare function DataTable({ columns, rows, compact, selectedId, onRowClick, rowKey, loading, refreshing, skeletonRows, sort, onSort, className, ...rest }: DataTableProps): React.JSX.Element;
561
566
 
567
+ interface FilterFieldOption {
568
+ value: string;
569
+ label: string;
570
+ }
571
+ interface FilterFieldBase {
572
+ /** Filter id — the key this field reads/writes in `filters` and reports through
573
+ * onFilterChange/onFilterRemove. Matches useServerTable's setFilter(id, value). */
574
+ key: string;
575
+ /** Human label shown in the "add filter" list and on the field's chip. */
576
+ label: string;
577
+ }
578
+ interface FilterFieldText extends FilterFieldBase {
579
+ type: "text";
580
+ placeholder?: string;
581
+ }
582
+ interface FilterFieldSelect extends FilterFieldBase {
583
+ type: "select";
584
+ options: FilterFieldOption[];
585
+ }
586
+ /** A declared filter field. Add a variant here (and a branch below) for a new value picker. */
587
+ type FilterField = FilterFieldText | FilterFieldSelect;
588
+ interface FilterBarProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, "onChange"> {
589
+ /** Every filter a consumer can add. Order here is the order in the "add filter" list. */
590
+ fields: FilterField[];
591
+ /** Straight off useServerTable — a value of undefined/""/false reads as "not set",
592
+ * same convention that hook already uses for activeFilterCount. */
593
+ filters: Record<string, unknown>;
594
+ /** Fires on every value edit. Maps 1:1 onto useServerTable's setFilter(id, value). */
595
+ onFilterChange: (key: string, value: unknown) => void;
596
+ /** Fires when a chip's × is clicked. Maps 1:1 onto useServerTable's clearFilter(id). */
597
+ onFilterRemove: (key: string) => void;
598
+ /** Which edge the "add filter" popover aligns to. Default "left" — the trigger sits
599
+ * at the end of a left-to-right chip row, so its menu opens under its left edge. */
600
+ align?: "left" | "right";
601
+ className?: string;
602
+ }
603
+ /**
604
+ * FilterBar — the declarative filter system for a server-driven list.
605
+ *
606
+ * A consumer declares fields once (`{ key, label, type: "text" | "select", ... }`) and
607
+ * hands this a live `filters` record plus onFilterChange/onFilterRemove — the same three
608
+ * things useServerTable already exposes, so wiring one up is copy-paste, not glue code.
609
+ * Every active filter renders as a Tag chip; this component holds no shadow copy of
610
+ * filter values, only the transient "which field's popover/input is open right now" UI
611
+ * state (`panel`), the same way SortMenu holds `open` but never sort state itself.
612
+ *
613
+ * Visual/interaction language is deliberately identical to SortMenu: a secondary Button
614
+ * trigger, a `fd-view-enter` panel positioned with `top: calc(100% + 6px)`, the same
615
+ * click-outside/Escape wiring, and the same `fd-stack`/`fd-row`/`fd-overline`/`fd-muted`/
616
+ * `fd-body-sm` utility classes — so this reads as built by the same hand, not a new
617
+ * import from elsewhere.
618
+ */
619
+ declare function FilterBar({ fields, filters, onFilterChange, onFilterRemove, align, className, ...rest }: FilterBarProps): React.JSX.Element;
620
+
562
621
  /**
563
622
  * A flat figure tile — no shadow, no background color, never more than four in a row.
564
623
  */
@@ -963,6 +1022,41 @@ interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "
963
1022
  }
964
1023
  declare function Input({ label, help, error, prefix, suffix, icon, numeric, required, size, loading, disabled, id, className, style, inputStyle, ...rest }: InputProps): React.JSX.Element;
965
1024
 
1025
+ interface SearchFieldProps {
1026
+ /** Current search text. */
1027
+ value: string;
1028
+ /** Fires with the new text on every keystroke — a plain string, not a raw
1029
+ * DOM event, so this drops in above a filterable list with zero boilerplate. */
1030
+ onChange: (value: string) => void;
1031
+ placeholder?: string;
1032
+ /** Fires when the clear ("x") button is pressed. Defaults to onChange(""). */
1033
+ onClear?: () => void;
1034
+ /** Applied to the outer .fd-field element — this is where width belongs. */
1035
+ style?: React.CSSProperties;
1036
+ className?: string;
1037
+ /** Visible field label, same as Input. Most search fields skip this and rely on placeholder. */
1038
+ label?: string;
1039
+ disabled?: boolean;
1040
+ id?: string;
1041
+ name?: string;
1042
+ "aria-label"?: string;
1043
+ }
1044
+ /**
1045
+ * SearchField — the one keyword field that belongs above a filterable list.
1046
+ *
1047
+ * A thin wrapper around Input: a magnifying-glass icon on the left (Input's
1048
+ * own `icon` prop) and a clear ("x") button on the right that appears only
1049
+ * once there's something to clear. The clear button rides in Input's
1050
+ * existing `suffix` slot rather than inventing new inset layout, and its
1051
+ * styling matches Select's clearable "x" (`ph-x-circle`, `all: unset`,
1052
+ * `text-muted`) so every clear affordance in the kit looks the same.
1053
+ *
1054
+ * Controlled, string-in/string-out. Debouncing is the consumer's job (or a
1055
+ * future concern) — building it in here would be hidden behavior a caller
1056
+ * can't see or override.
1057
+ */
1058
+ declare function SearchField({ value, onChange, placeholder, onClear, style, className, label, disabled, id, name, ...rest }: SearchFieldProps): React.JSX.Element;
1059
+
966
1060
  /** Multi-line field. Same chrome as Input; vertical resize only. */
967
1061
  interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {
968
1062
  label?: string;
@@ -2747,4 +2841,4 @@ interface VersionStore<TState, TDiff = unknown> {
2747
2841
  }
2748
2842
  declare function createVersionStore<TState, TDiff = unknown>(initialState: TState, options?: CreateVersionStoreOptions<TState, TDiff>): VersionStore<TState, TDiff>;
2749
2843
 
2750
- export { AccountMenu, type AccountMenuLink, type AccountMenuProps, AgentChatPanel, type AgentChatPanelProps, ApiSpecBrowser, type ApiSpecBrowserProps, type Attachment, Avatar, type AvatarProps, AvatarStack, type AvatarStackProps, Badge, type BadgeProps, 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, DataTable, type DataTableColumn, type DataTableProps, DatePicker, type DatePickerProps, type DeviceSession, DiffBlock, type DiffBlockProps, Drawer, type DrawerProps, Dropzone, DropzoneKit, type DropzoneProps, type EditorTrigger, EmptyState, type EmptyStateProps, type EndpointSpec, FeatureGate, type FeatureGateProps, type FeatureStatus, FileChip, type FileChipProps, FileGrid, type FileGridProps, FileKit, FilePickButton, type FilePickButtonProps, type FileRejection, FileStrip, type FileStripProps, FileTile, type FileTileProps, type FileUploadHandler, Flag$1 as Flag, type FlagExplanation, type FlagProps, FlytedeskBrand, type FlytedeskBrandProps, FlytedeskMark, type FlytedeskMarkProps, FormatEta, Gate, type GateProps, IconButton, type IconButtonProps, Input, type InputProps, type JobStatus, 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, type Packet, PacketCard, type PacketCardProps, type PacketSchema, type Pager, Pagination, type PaginationProps, PermissionDenied, type PermissionDeniedProps, type PermissionGroup, PermissionHint, type PermissionItem, type Placement, type PollOptions, Popover, type PopoverProps, 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, SegmentedControl, type SegmentedControlProps, SegmentedMeter, type SegmentedMeterProps, Select, type SelectOption, type SelectProps, type SendMessageResult, type ServerTable, type Session, type Flag as SessionFlag, SessionKit, type SessionStats, SidebarNav, type SidebarNavItem, type SidebarNavProps, 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, Textarea, type TextareaProps, ThinkingBlock, type ThinkingBlockProps, type ThreadSummary, TimePicker, type TimePickerProps, Toast, type ToastProps, Tooltip, type TooltipProps, Topbar, type TopbarProps, TranscriptKit, type UsageLimit, UseFeatureStatus, UseRuntimeMode, type UseServerTableOptions, type User, type VersionRecord, type VersionStore, type VoiceHandler, acceptMatches, anyOfFilter, channelWeightOf, createVersionStore, eqFilter, extensionOf, extractClipboardFiles, filterFiles, formatAbsolute, formatBytes, formatClock, formatDuration, formatEta, formatRelative, groupMessages, hasModifier, iconForMime, isImage, isSystemMessage, jobBucket, languageLabel, markdownToText, meterFormats, modifierLabel, pastedTextName, rangeFilter, revokeAttachment, toAttachment, tokenize, useChatEngine, useFeatureStatus, usePopoverPosition, useRuntimeMode, useServerTable, useStagedFiles, visibleMessages };
2844
+ export { AccountMenu, type AccountMenuLink, type AccountMenuProps, AgentChatPanel, type AgentChatPanelProps, ApiSpecBrowser, type ApiSpecBrowserProps, type Attachment, Avatar, type AvatarProps, AvatarStack, type AvatarStackProps, Badge, type BadgeProps, 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, DataTable, type DataTableColumn, type DataTableProps, DatePicker, type DatePickerProps, type DeviceSession, DiffBlock, type DiffBlockProps, Drawer, type DrawerProps, Dropzone, DropzoneKit, type DropzoneProps, type EditorTrigger, EmptyState, type EmptyStateProps, type EndpointSpec, FeatureGate, type FeatureGateProps, type FeatureStatus, FileChip, type FileChipProps, FileGrid, type FileGridProps, FileKit, FilePickButton, type FilePickButtonProps, type FileRejection, FileStrip, type FileStripProps, FileTile, type FileTileProps, type FileUploadHandler, 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, Gate, type GateProps, IconButton, type IconButtonProps, Input, type InputProps, type JobStatus, 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, type Packet, PacketCard, type PacketCardProps, type PacketSchema, type Pager, Pagination, type PaginationProps, PermissionDenied, type PermissionDeniedProps, type PermissionGroup, PermissionHint, type PermissionItem, type Placement, type PollOptions, Popover, type PopoverProps, 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, SearchField, type SearchFieldProps, SegmentedControl, type SegmentedControlProps, SegmentedMeter, type SegmentedMeterProps, Select, type SelectOption, type SelectProps, type SendMessageResult, type ServerTable, type Session, type Flag as SessionFlag, SessionKit, type SessionStats, SidebarNav, type SidebarNavItem, type SidebarNavProps, 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, Textarea, type TextareaProps, ThinkingBlock, type ThinkingBlockProps, type ThreadSummary, TimePicker, type TimePickerProps, Toast, type ToastProps, Tooltip, type TooltipProps, Topbar, type TopbarProps, TranscriptKit, type UsageLimit, UseFeatureStatus, UseRuntimeMode, type UseServerTableOptions, type User, type VersionRecord, type VersionStore, type VoiceHandler, acceptMatches, anyOfFilter, channelWeightOf, createVersionStore, eqFilter, extensionOf, extractClipboardFiles, filterFiles, formatAbsolute, formatBytes, formatClock, formatDuration, formatEta, formatRelative, groupMessages, hasModifier, iconForMime, isImage, isSystemMessage, jobBucket, languageLabel, markdownToText, meterFormats, modifierLabel, pastedTextName, rangeFilter, revokeAttachment, toAttachment, tokenize, useChatEngine, useFeatureStatus, usePopoverPosition, useRuntimeMode, useServerTable, useStagedFiles, visibleMessages };