@flytedan/flytebot-design-system 0.65.0 → 0.67.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.cjs +23 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +34 -5
- package/dist/index.d.ts +34 -5
- package/dist/index.js +52 -32
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/styles/components.css +54 -0
package/dist/index.d.cts
CHANGED
|
@@ -1290,6 +1290,16 @@ interface FilterFieldSelect extends FilterFieldBase {
|
|
|
1290
1290
|
type: "select";
|
|
1291
1291
|
options: FilterFieldOption[];
|
|
1292
1292
|
}
|
|
1293
|
+
/** A filter whose value is set from outside FilterBar, by a link or the host's own state (MP-312). Its
|
|
1294
|
+
* chip paints `valueLabel` and carries an x that removes it; the chip opens no picker, and the field
|
|
1295
|
+
* is never offered in the Filter menu, so a person can neither add nor edit it. The value in
|
|
1296
|
+
* `filters` is whatever the host set (any non-empty string); the label is the host's to provide, and
|
|
1297
|
+
* so are loading and error states (pass a placeholder label until the real one is known). */
|
|
1298
|
+
interface FilterFieldFixed extends FilterFieldBase {
|
|
1299
|
+
type: "fixed";
|
|
1300
|
+
/** What the chip paints for the value, e.g. a sheet's name. */
|
|
1301
|
+
valueLabel: string;
|
|
1302
|
+
}
|
|
1293
1303
|
/** Include/exclude, shared by every field whose value is a set of options. */
|
|
1294
1304
|
type FilterOperator = "in" | "notIn";
|
|
1295
1305
|
interface FilterMultiSelectValue {
|
|
@@ -1396,11 +1406,11 @@ interface FilterFieldDate extends FilterFieldBase {
|
|
|
1396
1406
|
* picker. text/select keep their original bare-string value shape unchanged, so an
|
|
1397
1407
|
* existing consumer needs no migration; every other variant's value is a small typed
|
|
1398
1408
|
* object of its own (see FilterValue). */
|
|
1399
|
-
type FilterField = FilterFieldText | FilterFieldSelect | FilterFieldMultiSelect | FilterFieldRange | FilterFieldDate;
|
|
1409
|
+
type FilterField = FilterFieldText | FilterFieldSelect | FilterFieldFixed | FilterFieldMultiSelect | FilterFieldRange | FilterFieldDate;
|
|
1400
1410
|
/** The value shape a given declared field reads/writes, so a consumer can type its own
|
|
1401
1411
|
* `filters` record precisely instead of `Record<string, unknown>` — e.g.
|
|
1402
1412
|
* `Record<"schools", FilterValue<typeof schoolsField>>`. */
|
|
1403
|
-
type FilterValue<F extends FilterField> = F extends FilterFieldText ? string : F extends FilterFieldSelect ? string : F extends FilterFieldMultiSelect ? FilterMultiSelectValue : F extends FilterFieldRange ? FilterRangeValue : F extends FilterFieldDate ? FilterDateValue : never;
|
|
1413
|
+
type FilterValue<F extends FilterField> = F extends FilterFieldText ? string : F extends FilterFieldSelect | FilterFieldFixed ? string : F extends FilterFieldMultiSelect ? FilterMultiSelectValue : F extends FilterFieldRange ? FilterRangeValue : F extends FilterFieldDate ? FilterDateValue : never;
|
|
1404
1414
|
interface FilterBarProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, "onChange"> {
|
|
1405
1415
|
/** Every filter a consumer can add. Order here is the order in the "add filter" list. */
|
|
1406
1416
|
fields: FilterField[];
|
|
@@ -1462,6 +1472,7 @@ type FilterValidation = {
|
|
|
1462
1472
|
* all call it on any candidate value:
|
|
1463
1473
|
* - text: a string.
|
|
1464
1474
|
* - select: one of the field's own option values.
|
|
1475
|
+
* - fixed: nothing; its value is the host's, so no edit is valid.
|
|
1465
1476
|
* - multiSelect: `{ operator, values }` with at least one `{ value, label }` option, no
|
|
1466
1477
|
* more than the field's `maxValues`, and an operator the field allows.
|
|
1467
1478
|
* - date, withinDays: a whole number of days from 1 to the field's maxDays, which is
|
|
@@ -1521,8 +1532,9 @@ declare function StatGrid({ columns, className, children, ...rest }: StatGridPro
|
|
|
1521
1532
|
|
|
1522
1533
|
/**
|
|
1523
1534
|
* A flat figure tile — no shadow, no background color, never more than four in a row.
|
|
1535
|
+
* Given `onPress` it becomes a button that can filter a list (MP-311).
|
|
1524
1536
|
*/
|
|
1525
|
-
interface
|
|
1537
|
+
interface StatTileBaseProps {
|
|
1526
1538
|
label: string;
|
|
1527
1539
|
value?: React.ReactNode;
|
|
1528
1540
|
sub?: React.ReactNode;
|
|
@@ -1541,7 +1553,24 @@ interface StatTileProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
1541
1553
|
compact?: boolean;
|
|
1542
1554
|
className?: string;
|
|
1543
1555
|
}
|
|
1544
|
-
|
|
1556
|
+
/** Display mode: a `div`, exactly as before. `pressed` and `disabled` mean nothing without `onPress`. */
|
|
1557
|
+
interface StatTileDisplayProps extends StatTileBaseProps, React.HTMLAttributes<HTMLDivElement> {
|
|
1558
|
+
onPress?: undefined;
|
|
1559
|
+
pressed?: never;
|
|
1560
|
+
disabled?: never;
|
|
1561
|
+
}
|
|
1562
|
+
/** Press mode: the tile is a real `<button>` with an `aria-pressed` state, so a dashboard's tiles
|
|
1563
|
+
* can filter the list below them. Enter and Space press it (native button behaviour); a pressed
|
|
1564
|
+
* tile wears the brand border and fill. */
|
|
1565
|
+
interface StatTilePressProps extends StatTileBaseProps, Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "onClick" | "type" | "disabled" | "value"> {
|
|
1566
|
+
onPress: () => void;
|
|
1567
|
+
/** Whether the list is currently filtered by this tile. Give it (true or false) only for a tile that toggles a filter: it sets `aria-pressed`. Omit it for a tile that acts without a state (it jumps somewhere), which is then a plain button. */
|
|
1568
|
+
pressed?: boolean;
|
|
1569
|
+
/** Shown but cannot be pressed (nothing to go to). A `loading` tile is never pressable either. */
|
|
1570
|
+
disabled?: boolean;
|
|
1571
|
+
}
|
|
1572
|
+
type StatTileProps = StatTileDisplayProps | StatTilePressProps;
|
|
1573
|
+
declare function StatTile(props: StatTileProps): React.JSX.Element;
|
|
1545
1574
|
|
|
1546
1575
|
declare function languageLabel(lang?: string): string;
|
|
1547
1576
|
/** Tokenise source into [{t, c}] where c is a token class or null for plain text. */
|
|
@@ -5373,4 +5402,4 @@ declare function CornerStackPortal({ slot, children }: {
|
|
|
5373
5402
|
children?: React.ReactNode;
|
|
5374
5403
|
}): React.ReactPortal | null;
|
|
5375
5404
|
|
|
5376
|
-
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, StatGrid, type StatGridProps, 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 TooltipApi, type TooltipBinding, type TooltipPlacement, type TooltipProps, Topbar, type TopbarProps, TranscriptKit, TransferList, type TransferListProps, type TransferListSide, type TransferListSideProps, TrendChart, type TrendChartProps, type TrendSeries, USChoropleth, type USChoroplethProps, type StateFigure as USChoroplethState, type ChoroplethValue as USChoroplethValue, US_STATE_CODES, type UsageLimit, UseFeatureStatus, type UseKeysetTableOptions, type UseResponsiveRailOptions, type UseResponsiveRailResult, UseRuntimeMode, type UseServerTableOptions, type UseTooltipOptions, 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, formatShare, groupMessages, hasModifier, historyUrlAdapter, iconForMime, importanceLevel, importanceTokens, installFlytedeskFavicon, isImage, isSystemMessage, isUsStateCode, 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, useTooltip, validateFilterValue, visibleMessages, watchAppearance, writeQueryToUrl };
|
|
5405
|
+
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 FilterFieldFixed, 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, StatGrid, type StatGridProps, 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 TooltipApi, type TooltipBinding, type TooltipPlacement, type TooltipProps, Topbar, type TopbarProps, TranscriptKit, TransferList, type TransferListProps, type TransferListSide, type TransferListSideProps, TrendChart, type TrendChartProps, type TrendSeries, USChoropleth, type USChoroplethProps, type StateFigure as USChoroplethState, type ChoroplethValue as USChoroplethValue, US_STATE_CODES, type UsageLimit, UseFeatureStatus, type UseKeysetTableOptions, type UseResponsiveRailOptions, type UseResponsiveRailResult, UseRuntimeMode, type UseServerTableOptions, type UseTooltipOptions, 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, formatShare, groupMessages, hasModifier, historyUrlAdapter, iconForMime, importanceLevel, importanceTokens, installFlytedeskFavicon, isImage, isSystemMessage, isUsStateCode, 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, useTooltip, validateFilterValue, visibleMessages, watchAppearance, writeQueryToUrl };
|
package/dist/index.d.ts
CHANGED
|
@@ -1290,6 +1290,16 @@ interface FilterFieldSelect extends FilterFieldBase {
|
|
|
1290
1290
|
type: "select";
|
|
1291
1291
|
options: FilterFieldOption[];
|
|
1292
1292
|
}
|
|
1293
|
+
/** A filter whose value is set from outside FilterBar, by a link or the host's own state (MP-312). Its
|
|
1294
|
+
* chip paints `valueLabel` and carries an x that removes it; the chip opens no picker, and the field
|
|
1295
|
+
* is never offered in the Filter menu, so a person can neither add nor edit it. The value in
|
|
1296
|
+
* `filters` is whatever the host set (any non-empty string); the label is the host's to provide, and
|
|
1297
|
+
* so are loading and error states (pass a placeholder label until the real one is known). */
|
|
1298
|
+
interface FilterFieldFixed extends FilterFieldBase {
|
|
1299
|
+
type: "fixed";
|
|
1300
|
+
/** What the chip paints for the value, e.g. a sheet's name. */
|
|
1301
|
+
valueLabel: string;
|
|
1302
|
+
}
|
|
1293
1303
|
/** Include/exclude, shared by every field whose value is a set of options. */
|
|
1294
1304
|
type FilterOperator = "in" | "notIn";
|
|
1295
1305
|
interface FilterMultiSelectValue {
|
|
@@ -1396,11 +1406,11 @@ interface FilterFieldDate extends FilterFieldBase {
|
|
|
1396
1406
|
* picker. text/select keep their original bare-string value shape unchanged, so an
|
|
1397
1407
|
* existing consumer needs no migration; every other variant's value is a small typed
|
|
1398
1408
|
* object of its own (see FilterValue). */
|
|
1399
|
-
type FilterField = FilterFieldText | FilterFieldSelect | FilterFieldMultiSelect | FilterFieldRange | FilterFieldDate;
|
|
1409
|
+
type FilterField = FilterFieldText | FilterFieldSelect | FilterFieldFixed | FilterFieldMultiSelect | FilterFieldRange | FilterFieldDate;
|
|
1400
1410
|
/** The value shape a given declared field reads/writes, so a consumer can type its own
|
|
1401
1411
|
* `filters` record precisely instead of `Record<string, unknown>` — e.g.
|
|
1402
1412
|
* `Record<"schools", FilterValue<typeof schoolsField>>`. */
|
|
1403
|
-
type FilterValue<F extends FilterField> = F extends FilterFieldText ? string : F extends FilterFieldSelect ? string : F extends FilterFieldMultiSelect ? FilterMultiSelectValue : F extends FilterFieldRange ? FilterRangeValue : F extends FilterFieldDate ? FilterDateValue : never;
|
|
1413
|
+
type FilterValue<F extends FilterField> = F extends FilterFieldText ? string : F extends FilterFieldSelect | FilterFieldFixed ? string : F extends FilterFieldMultiSelect ? FilterMultiSelectValue : F extends FilterFieldRange ? FilterRangeValue : F extends FilterFieldDate ? FilterDateValue : never;
|
|
1404
1414
|
interface FilterBarProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, "onChange"> {
|
|
1405
1415
|
/** Every filter a consumer can add. Order here is the order in the "add filter" list. */
|
|
1406
1416
|
fields: FilterField[];
|
|
@@ -1462,6 +1472,7 @@ type FilterValidation = {
|
|
|
1462
1472
|
* all call it on any candidate value:
|
|
1463
1473
|
* - text: a string.
|
|
1464
1474
|
* - select: one of the field's own option values.
|
|
1475
|
+
* - fixed: nothing; its value is the host's, so no edit is valid.
|
|
1465
1476
|
* - multiSelect: `{ operator, values }` with at least one `{ value, label }` option, no
|
|
1466
1477
|
* more than the field's `maxValues`, and an operator the field allows.
|
|
1467
1478
|
* - date, withinDays: a whole number of days from 1 to the field's maxDays, which is
|
|
@@ -1521,8 +1532,9 @@ declare function StatGrid({ columns, className, children, ...rest }: StatGridPro
|
|
|
1521
1532
|
|
|
1522
1533
|
/**
|
|
1523
1534
|
* A flat figure tile — no shadow, no background color, never more than four in a row.
|
|
1535
|
+
* Given `onPress` it becomes a button that can filter a list (MP-311).
|
|
1524
1536
|
*/
|
|
1525
|
-
interface
|
|
1537
|
+
interface StatTileBaseProps {
|
|
1526
1538
|
label: string;
|
|
1527
1539
|
value?: React.ReactNode;
|
|
1528
1540
|
sub?: React.ReactNode;
|
|
@@ -1541,7 +1553,24 @@ interface StatTileProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
1541
1553
|
compact?: boolean;
|
|
1542
1554
|
className?: string;
|
|
1543
1555
|
}
|
|
1544
|
-
|
|
1556
|
+
/** Display mode: a `div`, exactly as before. `pressed` and `disabled` mean nothing without `onPress`. */
|
|
1557
|
+
interface StatTileDisplayProps extends StatTileBaseProps, React.HTMLAttributes<HTMLDivElement> {
|
|
1558
|
+
onPress?: undefined;
|
|
1559
|
+
pressed?: never;
|
|
1560
|
+
disabled?: never;
|
|
1561
|
+
}
|
|
1562
|
+
/** Press mode: the tile is a real `<button>` with an `aria-pressed` state, so a dashboard's tiles
|
|
1563
|
+
* can filter the list below them. Enter and Space press it (native button behaviour); a pressed
|
|
1564
|
+
* tile wears the brand border and fill. */
|
|
1565
|
+
interface StatTilePressProps extends StatTileBaseProps, Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "onClick" | "type" | "disabled" | "value"> {
|
|
1566
|
+
onPress: () => void;
|
|
1567
|
+
/** Whether the list is currently filtered by this tile. Give it (true or false) only for a tile that toggles a filter: it sets `aria-pressed`. Omit it for a tile that acts without a state (it jumps somewhere), which is then a plain button. */
|
|
1568
|
+
pressed?: boolean;
|
|
1569
|
+
/** Shown but cannot be pressed (nothing to go to). A `loading` tile is never pressable either. */
|
|
1570
|
+
disabled?: boolean;
|
|
1571
|
+
}
|
|
1572
|
+
type StatTileProps = StatTileDisplayProps | StatTilePressProps;
|
|
1573
|
+
declare function StatTile(props: StatTileProps): React.JSX.Element;
|
|
1545
1574
|
|
|
1546
1575
|
declare function languageLabel(lang?: string): string;
|
|
1547
1576
|
/** Tokenise source into [{t, c}] where c is a token class or null for plain text. */
|
|
@@ -5373,4 +5402,4 @@ declare function CornerStackPortal({ slot, children }: {
|
|
|
5373
5402
|
children?: React.ReactNode;
|
|
5374
5403
|
}): React.ReactPortal | null;
|
|
5375
5404
|
|
|
5376
|
-
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, StatGrid, type StatGridProps, 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 TooltipApi, type TooltipBinding, type TooltipPlacement, type TooltipProps, Topbar, type TopbarProps, TranscriptKit, TransferList, type TransferListProps, type TransferListSide, type TransferListSideProps, TrendChart, type TrendChartProps, type TrendSeries, USChoropleth, type USChoroplethProps, type StateFigure as USChoroplethState, type ChoroplethValue as USChoroplethValue, US_STATE_CODES, type UsageLimit, UseFeatureStatus, type UseKeysetTableOptions, type UseResponsiveRailOptions, type UseResponsiveRailResult, UseRuntimeMode, type UseServerTableOptions, type UseTooltipOptions, 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, formatShare, groupMessages, hasModifier, historyUrlAdapter, iconForMime, importanceLevel, importanceTokens, installFlytedeskFavicon, isImage, isSystemMessage, isUsStateCode, 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, useTooltip, validateFilterValue, visibleMessages, watchAppearance, writeQueryToUrl };
|
|
5405
|
+
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 FilterFieldFixed, 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, StatGrid, type StatGridProps, 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 TooltipApi, type TooltipBinding, type TooltipPlacement, type TooltipProps, Topbar, type TopbarProps, TranscriptKit, TransferList, type TransferListProps, type TransferListSide, type TransferListSideProps, TrendChart, type TrendChartProps, type TrendSeries, USChoropleth, type USChoroplethProps, type StateFigure as USChoroplethState, type ChoroplethValue as USChoroplethValue, US_STATE_CODES, type UsageLimit, UseFeatureStatus, type UseKeysetTableOptions, type UseResponsiveRailOptions, type UseResponsiveRailResult, UseRuntimeMode, type UseServerTableOptions, type UseTooltipOptions, 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, formatShare, groupMessages, hasModifier, historyUrlAdapter, iconForMime, importanceLevel, importanceTokens, installFlytedeskFavicon, isImage, isSystemMessage, isUsStateCode, 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, useTooltip, validateFilterValue, visibleMessages, watchAppearance, writeQueryToUrl };
|
package/dist/index.js
CHANGED
|
@@ -3857,6 +3857,7 @@ function isFieldSet(field, value) {
|
|
|
3857
3857
|
switch (field.type) {
|
|
3858
3858
|
case "text":
|
|
3859
3859
|
case "select":
|
|
3860
|
+
case "fixed":
|
|
3860
3861
|
return isSet(value);
|
|
3861
3862
|
case "multiSelect": {
|
|
3862
3863
|
const v = value;
|
|
@@ -3896,6 +3897,8 @@ function validateFilterValue(field, value) {
|
|
|
3896
3897
|
switch (field.type) {
|
|
3897
3898
|
case "text":
|
|
3898
3899
|
return typeof value === "string" ? { ok: true } : { ok: false, reason: "Enter text" };
|
|
3900
|
+
case "fixed":
|
|
3901
|
+
return { ok: false, reason: "This filter is set from outside and cannot be edited" };
|
|
3899
3902
|
case "select":
|
|
3900
3903
|
return field.options.some((o) => o.value === value) ? { ok: true } : { ok: false, reason: "Pick one of the options" };
|
|
3901
3904
|
case "multiSelect": {
|
|
@@ -3977,6 +3980,8 @@ function chipLabel(field, value) {
|
|
|
3977
3980
|
switch (field.type) {
|
|
3978
3981
|
case "text":
|
|
3979
3982
|
return String(value ?? "");
|
|
3983
|
+
case "fixed":
|
|
3984
|
+
return field.valueLabel;
|
|
3980
3985
|
case "select": {
|
|
3981
3986
|
const chosen = field.options.find((o) => o.value === value);
|
|
3982
3987
|
return chosen ? chosen.label : String(value ?? "");
|
|
@@ -4614,7 +4619,7 @@ function FilterBar({ fields = [], filters, onFilterChange, onFilterRemove, align
|
|
|
4614
4619
|
target?.focus();
|
|
4615
4620
|
}
|
|
4616
4621
|
}, [panel]);
|
|
4617
|
-
const addableFields = fields.filter((f) => !isFieldSet(f, filters[f.key]));
|
|
4622
|
+
const addableFields = fields.filter((f) => f.type !== "fixed" && !isFieldSet(f, filters[f.key]));
|
|
4618
4623
|
const activeCount = activeFilterCount(fields, filters);
|
|
4619
4624
|
const canAdd = addableFields.length > 0;
|
|
4620
4625
|
const showCount = showActiveCount && activeCount > 0;
|
|
@@ -4708,6 +4713,14 @@ function FilterBar({ fields = [], filters, onFilterChange, onFilterRemove, align
|
|
|
4708
4713
|
}
|
|
4709
4714
|
const set = isFieldSet(field, value);
|
|
4710
4715
|
if (!editing && !set) return null;
|
|
4716
|
+
if (field.type === "fixed") {
|
|
4717
|
+
const fixedText = field.label + ": " + field.valueLabel;
|
|
4718
|
+
return /* @__PURE__ */ jsx50("span", { className: "fd-filterbar-chip", children: /* @__PURE__ */ jsxs41("span", { className: "fd-tag fd-filterbar-fixed", role: "group", title: fixedText, "aria-label": fixedText, children: [
|
|
4719
|
+
field.icon ? /* @__PURE__ */ jsx50("i", { className: "ph ph-" + field.icon, "aria-hidden": "true" }) : null,
|
|
4720
|
+
/* @__PURE__ */ jsx50("span", { className: "fd-tag-label", children: /* @__PURE__ */ jsx50(MiddleEllipsis, { text: field.icon ? field.valueLabel : fixedText }) }),
|
|
4721
|
+
/* @__PURE__ */ jsx50("button", { type: "button", className: "fd-tag-remove", "aria-label": "Remove " + fixedText, onClick: () => removeField(field), children: /* @__PURE__ */ jsx50("i", { className: "ph ph-x", "aria-hidden": "true" }) })
|
|
4722
|
+
] }) }, field.key);
|
|
4723
|
+
}
|
|
4711
4724
|
const chipRef = editing ? editAnchorRef : void 0;
|
|
4712
4725
|
const toggleOrClose = () => editing ? closeEditing() : startEditing(field.key);
|
|
4713
4726
|
const remove = () => {
|
|
@@ -4815,18 +4828,19 @@ function StatGrid({ columns, className = "", children, ...rest }) {
|
|
|
4815
4828
|
}
|
|
4816
4829
|
|
|
4817
4830
|
// src/components/data/StatTile.tsx
|
|
4818
|
-
import { jsx as jsx52, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
4831
|
+
import { Fragment as Fragment8, jsx as jsx52, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
4819
4832
|
function isZeroDelta(delta) {
|
|
4820
4833
|
if (!delta) return false;
|
|
4821
4834
|
const match = delta.match(/[\d.]+/);
|
|
4822
4835
|
return match !== null && parseFloat(match[0]) === 0;
|
|
4823
4836
|
}
|
|
4824
|
-
function StatTile(
|
|
4837
|
+
function StatTile(props) {
|
|
4838
|
+
const { label, value, sub, delta, invert = false, loading = false, compact: compact3 = false, className = "", ...rest } = props;
|
|
4825
4839
|
const isDecrease = delta?.startsWith("-") ?? false;
|
|
4826
4840
|
const isZero = isZeroDelta(delta);
|
|
4827
4841
|
const isGood = invert ? isDecrease : !isDecrease;
|
|
4828
4842
|
const deltaToneClass = isZero ? "fd-stat-delta-neutral" : isGood ? "fd-stat-delta-up" : "fd-stat-delta-down";
|
|
4829
|
-
|
|
4843
|
+
const content = /* @__PURE__ */ jsxs42(Fragment8, { children: [
|
|
4830
4844
|
loading ? /* @__PURE__ */ jsx52("span", { className: "fd-skel fd-skel-text", style: { display: "block", height: compact3 ? 20 : 28, width: "62%" } }) : /* @__PURE__ */ jsxs42("span", { className: "fd-stat-top", children: [
|
|
4831
4845
|
/* @__PURE__ */ jsx52("span", { className: "fd-stat-figure", children: value }),
|
|
4832
4846
|
delta ? /* @__PURE__ */ jsxs42("span", { className: "fd-stat-delta " + deltaToneClass, children: [
|
|
@@ -4838,6 +4852,12 @@ function StatTile({ label, value, sub, delta, invert = false, loading = false, c
|
|
|
4838
4852
|
!loading && sub ? /* @__PURE__ */ jsx52("span", { className: "fd-stat-sub", children: sub }) : null,
|
|
4839
4853
|
loading ? /* @__PURE__ */ jsx52("span", { className: "fd-skel fd-skel-text", style: { display: "block", height: 10, width: "40%", marginTop: 8 } }) : /* @__PURE__ */ jsx52("span", { className: "fd-stat-label", style: { display: "block" }, children: label })
|
|
4840
4854
|
] });
|
|
4855
|
+
const classes = (...extra) => ["fd-stat", ...extra, compact3 ? "fd-stat-compact" : "", className].filter(Boolean).join(" ");
|
|
4856
|
+
if (rest.onPress) {
|
|
4857
|
+
const { onPress, pressed, disabled = false, ...buttonRest } = rest;
|
|
4858
|
+
return /* @__PURE__ */ jsx52("button", { type: "button", className: classes("fd-stat-pressable"), "aria-pressed": pressed, disabled: disabled || loading, onClick: onPress, ...buttonRest, children: content });
|
|
4859
|
+
}
|
|
4860
|
+
return /* @__PURE__ */ jsx52("div", { className: classes(), ...rest, children: content });
|
|
4841
4861
|
}
|
|
4842
4862
|
|
|
4843
4863
|
// src/components/data/CodeBlock.tsx
|
|
@@ -4897,7 +4917,7 @@ function useCopyToClipboard() {
|
|
|
4897
4917
|
}
|
|
4898
4918
|
|
|
4899
4919
|
// src/components/data/CodeBlock.tsx
|
|
4900
|
-
import { Fragment as
|
|
4920
|
+
import { Fragment as Fragment9, jsx as jsx53, jsxs as jsxs43 } from "react/jsx-runtime";
|
|
4901
4921
|
var JS_KW = /^(?:const|let|var|function|return|if|else|for|while|do|new|class|extends|import|from|export|default|await|async|try|catch|finally|throw|typeof|instanceof|of|in|switch|case|break|continue|delete|void|yield|static|get|set|this|super|interface|type|enum|implements|public|private|protected|readonly|abstract|as|satisfies|declare|namespace)$/;
|
|
4902
4922
|
var RULES = {
|
|
4903
4923
|
js: [
|
|
@@ -5053,7 +5073,7 @@ function tokenize(src, lang) {
|
|
|
5053
5073
|
}
|
|
5054
5074
|
function Highlighted({ code, lang }) {
|
|
5055
5075
|
const toks = React34.useMemo(() => tokenize(code, lang), [code, lang]);
|
|
5056
|
-
return /* @__PURE__ */ jsx53(
|
|
5076
|
+
return /* @__PURE__ */ jsx53(Fragment9, { children: toks.map((tk, i) => tk.c ? /* @__PURE__ */ jsx53("span", { className: "tok-" + tk.c, children: tk.t }, i) : tk.t) });
|
|
5057
5077
|
}
|
|
5058
5078
|
function CodeBlock({
|
|
5059
5079
|
code = "",
|
|
@@ -5389,7 +5409,7 @@ function Meter({ segments = [], unallocated = 0, height = 8, label, legend = fal
|
|
|
5389
5409
|
}
|
|
5390
5410
|
|
|
5391
5411
|
// src/components/data/Pagination.tsx
|
|
5392
|
-
import { Fragment as
|
|
5412
|
+
import { Fragment as Fragment11, jsx as jsx56, jsxs as jsxs46 } from "react/jsx-runtime";
|
|
5393
5413
|
var unitPluralRules = new Intl.PluralRules("en-US");
|
|
5394
5414
|
function pluralizeUnit(n, singular, irregularPlural) {
|
|
5395
5415
|
return unitPluralRules.select(n) === "one" ? singular : irregularPlural ?? `${singular}s`;
|
|
@@ -5421,10 +5441,10 @@ function Pagination({
|
|
|
5421
5441
|
else if (nums[nums.length - 1] !== "\u2026") nums.push("\u2026");
|
|
5422
5442
|
}
|
|
5423
5443
|
return /* @__PURE__ */ jsxs46("div", { className: ["fd-pag", className].filter(Boolean).join(" "), ...rest, children: [
|
|
5424
|
-
/* @__PURE__ */ jsx56("span", { className: "fd-pag-count", children: loading ? /* @__PURE__ */ jsx56("span", { className: "fd-skel fd-skel-text", style: { display: "inline-block", height: 12, width: 108 } }) : total === 0 ? /* @__PURE__ */ jsxs46(
|
|
5444
|
+
/* @__PURE__ */ jsx56("span", { className: "fd-pag-count", children: loading ? /* @__PURE__ */ jsx56("span", { className: "fd-skel fd-skel-text", style: { display: "inline-block", height: 12, width: 108 } }) : total === 0 ? /* @__PURE__ */ jsxs46(Fragment11, { children: [
|
|
5425
5445
|
"No ",
|
|
5426
5446
|
unitLabel
|
|
5427
|
-
] }) : /* @__PURE__ */ jsxs46(
|
|
5447
|
+
] }) : /* @__PURE__ */ jsxs46(Fragment11, { children: [
|
|
5428
5448
|
/* @__PURE__ */ jsxs46("strong", { children: [
|
|
5429
5449
|
from.toLocaleString(),
|
|
5430
5450
|
"\u2013",
|
|
@@ -5619,7 +5639,7 @@ function InlinePanelSurface({ panel, align = "right", ...popover }) {
|
|
|
5619
5639
|
}
|
|
5620
5640
|
|
|
5621
5641
|
// src/components/data/SortMenu.tsx
|
|
5622
|
-
import { Fragment as
|
|
5642
|
+
import { Fragment as Fragment13, jsx as jsx59, jsxs as jsxs49 } from "react/jsx-runtime";
|
|
5623
5643
|
var directionWord = (field, dir) => dir === "asc" ? field.numeric ? "lowest first" : "A to Z" : field.numeric ? "highest first" : "Z to A";
|
|
5624
5644
|
function moved(sort, from, to) {
|
|
5625
5645
|
const next = [...sort];
|
|
@@ -5692,7 +5712,7 @@ function SortMenu({
|
|
|
5692
5712
|
] }, f.key);
|
|
5693
5713
|
});
|
|
5694
5714
|
const unused = fields.filter((f) => !active.some((entry) => entry.key === f.key));
|
|
5695
|
-
const multipleBody = /* @__PURE__ */ jsxs49(
|
|
5715
|
+
const multipleBody = /* @__PURE__ */ jsxs49(Fragment13, { children: [
|
|
5696
5716
|
/* @__PURE__ */ jsx59("span", { className: "fd-overline fd-muted", style: { padding: "4px 8px 6px" }, children: "Sorted by" }),
|
|
5697
5717
|
active.length === 0 ? /* @__PURE__ */ jsx59("span", { className: "fd-body-sm fd-muted", style: { padding: "4px 8px" }, children: "Unsorted" }) : /* @__PURE__ */ jsx59("ol", { className: "fd-stack", style: { gap: 2, margin: 0, padding: 0, listStyle: "none" }, "aria-label": "Sort order", children: active.map((entry, index) => {
|
|
5698
5718
|
const f = fieldOf(entry.key);
|
|
@@ -5741,7 +5761,7 @@ function SortMenu({
|
|
|
5741
5761
|
)
|
|
5742
5762
|
] }, entry.key);
|
|
5743
5763
|
}) }),
|
|
5744
|
-
unused.length > 0 ? /* @__PURE__ */ jsxs49(
|
|
5764
|
+
unused.length > 0 ? /* @__PURE__ */ jsxs49(Fragment13, { children: [
|
|
5745
5765
|
/* @__PURE__ */ jsx59("span", { className: "fd-overline fd-muted", style: { padding: "10px 8px 6px" }, children: "Add a sort" }),
|
|
5746
5766
|
unused.map((f) => /* @__PURE__ */ jsxs49("span", { className: "fd-row", style: rowStyle(false), children: [
|
|
5747
5767
|
/* @__PURE__ */ jsx59("span", { className: "fd-body-sm", style: labelStyle(false), children: f.label }),
|
|
@@ -5765,7 +5785,7 @@ function SortMenu({
|
|
|
5765
5785
|
]
|
|
5766
5786
|
}
|
|
5767
5787
|
),
|
|
5768
|
-
/* @__PURE__ */ jsx59(InlinePanelSurface, { panel, align, offset: 6, width: multiple ? 340 : 280, label: "Sort by", children: /* @__PURE__ */ jsx59("span", { className: "fd-stack", style: { gap: 2, padding: 8 }, children: multiple ? multipleBody : /* @__PURE__ */ jsxs49(
|
|
5788
|
+
/* @__PURE__ */ jsx59(InlinePanelSurface, { panel, align, offset: 6, width: multiple ? 340 : 280, label: "Sort by", children: /* @__PURE__ */ jsx59("span", { className: "fd-stack", style: { gap: 2, padding: 8 }, children: multiple ? multipleBody : /* @__PURE__ */ jsxs49(Fragment13, { children: [
|
|
5769
5789
|
/* @__PURE__ */ jsx59("span", { className: "fd-overline fd-muted", style: { padding: "4px 8px 6px" }, children: "Sort by" }),
|
|
5770
5790
|
singleBody
|
|
5771
5791
|
] }) }) })
|
|
@@ -8233,7 +8253,7 @@ function useSessionContext() {
|
|
|
8233
8253
|
}
|
|
8234
8254
|
|
|
8235
8255
|
// src/components/platform/AccountMenu.tsx
|
|
8236
|
-
import { Fragment as
|
|
8256
|
+
import { Fragment as Fragment19, jsx as jsx79, jsxs as jsxs68 } from "react/jsx-runtime";
|
|
8237
8257
|
var DEFAULT_LINKS = [];
|
|
8238
8258
|
var DEFAULT_GROUPS = [];
|
|
8239
8259
|
function Item({ item, onPick }) {
|
|
@@ -8295,7 +8315,7 @@ function AccountMenu({
|
|
|
8295
8315
|
}
|
|
8296
8316
|
};
|
|
8297
8317
|
const showSwitcher = allowUserSwitch && !!demo;
|
|
8298
|
-
return /* @__PURE__ */ jsxs68(
|
|
8318
|
+
return /* @__PURE__ */ jsxs68(Fragment19, { children: [
|
|
8299
8319
|
/* @__PURE__ */ jsxs68(
|
|
8300
8320
|
"button",
|
|
8301
8321
|
{
|
|
@@ -9068,7 +9088,7 @@ function ProfilePage({
|
|
|
9068
9088
|
|
|
9069
9089
|
// src/components/platform/SessionScreen.tsx
|
|
9070
9090
|
import * as React61 from "react";
|
|
9071
|
-
import { Fragment as
|
|
9091
|
+
import { Fragment as Fragment22, jsx as jsx85, jsxs as jsxs73 } from "react/jsx-runtime";
|
|
9072
9092
|
var COPY = {
|
|
9073
9093
|
"signing-in": { busy: "Signing you in\u2026" },
|
|
9074
9094
|
"session-expired": { busy: "Your session expired \u2014 signing you back in\u2026" },
|
|
@@ -9096,7 +9116,7 @@ function SessionScreen({ kind, error, onRetry, productName }) {
|
|
|
9096
9116
|
/* @__PURE__ */ jsx85("div", { className: "fd-session-screen-stripe" }),
|
|
9097
9117
|
/* @__PURE__ */ jsx85(Card, { children: /* @__PURE__ */ jsxs73("div", { className: "fd-session-screen-body", children: [
|
|
9098
9118
|
/* @__PURE__ */ jsx85("h1", { ref: titleRef, tabIndex: -1, className: "fd-h3 fd-session-screen-title", children: productName }),
|
|
9099
|
-
/* @__PURE__ */ jsx85("div", { role: "status", "aria-live": "polite", className: "fd-session-screen-status", children: busyMessage !== null ? /* @__PURE__ */ jsxs73(
|
|
9119
|
+
/* @__PURE__ */ jsx85("div", { role: "status", "aria-live": "polite", className: "fd-session-screen-status", children: busyMessage !== null ? /* @__PURE__ */ jsxs73(Fragment22, { children: [
|
|
9100
9120
|
/* @__PURE__ */ jsx85("span", { className: "fd-spinner fd-spinner-lg fd-session-screen-spinner", "aria-hidden": "true" }),
|
|
9101
9121
|
/* @__PURE__ */ jsx85("p", { className: "fd-body fd-session-screen-message", children: announced })
|
|
9102
9122
|
] }) : null }),
|
|
@@ -11123,7 +11143,7 @@ function RoadmapTimeline({ onOpenFlag, title = "Roadmap", lede }) {
|
|
|
11123
11143
|
// src/components/platform/ComingSoon.tsx
|
|
11124
11144
|
import * as React65 from "react";
|
|
11125
11145
|
import { createPortal as createPortal6 } from "react-dom";
|
|
11126
|
-
import { Fragment as
|
|
11146
|
+
import { Fragment as Fragment24, jsx as jsx87, jsxs as jsxs75 } from "react/jsx-runtime";
|
|
11127
11147
|
var BYPASS_STORE = "fd.soon.bypass.v1";
|
|
11128
11148
|
function readBypassed() {
|
|
11129
11149
|
try {
|
|
@@ -11153,7 +11173,7 @@ function useBypass(key) {
|
|
|
11153
11173
|
return [on, set];
|
|
11154
11174
|
}
|
|
11155
11175
|
function SoonCard({ label, detail, backend, eta, effort, onRoadmap, allowed, onBypass }) {
|
|
11156
|
-
return /* @__PURE__ */ jsxs75(
|
|
11176
|
+
return /* @__PURE__ */ jsxs75(Fragment24, { children: [
|
|
11157
11177
|
/* @__PURE__ */ jsxs75("span", { className: "fd-soon-badge", children: [
|
|
11158
11178
|
/* @__PURE__ */ jsx87("i", { className: "ph ph-traffic-cone", "aria-hidden": "true" }),
|
|
11159
11179
|
label
|
|
@@ -11543,7 +11563,7 @@ function PermissionHint({ perm, children }) {
|
|
|
11543
11563
|
}
|
|
11544
11564
|
|
|
11545
11565
|
// src/components/platform/ModeSwitch.tsx
|
|
11546
|
-
import { Fragment as
|
|
11566
|
+
import { Fragment as Fragment25, jsx as jsx89, jsxs as jsxs77 } from "react/jsx-runtime";
|
|
11547
11567
|
function ModeSwitch({ canToggle = false, requestCount = 0, onClearLog, renderLog, onOpenSpec, summary }) {
|
|
11548
11568
|
const mode2 = useRuntimeMode();
|
|
11549
11569
|
const panel = useInlinePanel();
|
|
@@ -11598,7 +11618,7 @@ function ModeSwitch({ canToggle = false, requestCount = 0, onClearLog, renderLog
|
|
|
11598
11618
|
s.total,
|
|
11599
11619
|
" features complete"
|
|
11600
11620
|
] }),
|
|
11601
|
-
onOpenSpec ? /* @__PURE__ */ jsxs77(
|
|
11621
|
+
onOpenSpec ? /* @__PURE__ */ jsxs77(Fragment25, { children: [
|
|
11602
11622
|
/* @__PURE__ */ jsx89("span", { style: { flex: 1 } }),
|
|
11603
11623
|
/* @__PURE__ */ jsxs77("button", { type: "button", className: "fd-soon-link", onClick: () => {
|
|
11604
11624
|
setOpen(false);
|
|
@@ -11790,7 +11810,7 @@ function SaturationDistribution({ campuses = [], floorBand, floorScore, onSelect
|
|
|
11790
11810
|
|
|
11791
11811
|
// src/components/planner/MixGap.tsx
|
|
11792
11812
|
import * as React66 from "react";
|
|
11793
|
-
import { Fragment as
|
|
11813
|
+
import { Fragment as Fragment26, jsx as jsx92, jsxs as jsxs80 } from "react/jsx-runtime";
|
|
11794
11814
|
var MIX_GAP_LAYOUT = {
|
|
11795
11815
|
trackHeight: 30,
|
|
11796
11816
|
barHeight: 20,
|
|
@@ -11834,7 +11854,7 @@ function MixGap({ rows = [], loading = false, className = "" }) {
|
|
|
11834
11854
|
onMouseLeave: () => setHover(null),
|
|
11835
11855
|
children: [
|
|
11836
11856
|
/* @__PURE__ */ jsx92("span", { style: { width: 128, flex: "none" }, children: /* @__PURE__ */ jsx92(ChannelTag, { channel: r.channel, size: "sm" }) }),
|
|
11837
|
-
/* @__PURE__ */ jsx92("span", { style: { position: "relative", flex: 1, height: trackHeight, minWidth: 120 }, children: loading ? /* @__PURE__ */ jsx92("span", { className: "fd-skel", style: { position: "absolute", left: 0, right: 0, top: barTop, height: barHeight, borderRadius: 3 } }) : /* @__PURE__ */ jsxs80(
|
|
11857
|
+
/* @__PURE__ */ jsx92("span", { style: { position: "relative", flex: 1, height: trackHeight, minWidth: 120 }, children: loading ? /* @__PURE__ */ jsx92("span", { className: "fd-skel", style: { position: "absolute", left: 0, right: 0, top: barTop, height: barHeight, borderRadius: 3 } }) : /* @__PURE__ */ jsxs80(Fragment26, { children: [
|
|
11838
11858
|
/* @__PURE__ */ jsx92("span", { "data-mixgap-bar": "", style: { position: "absolute", left: 0, top: barTop, height: barHeight, width: mixGapOffset(r.realized, max), background: TONE[tone], borderRadius: "2px 3px 3px 2px", transition: "width var(--dur-slow) var(--ease), background var(--dur-base) var(--ease)" } }),
|
|
11839
11859
|
/* @__PURE__ */ jsx92("span", { "data-mixgap-target": "", style: { position: "absolute", left: `calc(${mixGapOffset(r.target, max)} - ${targetWidth / 2}px)`, top: 0, width: targetWidth, height: trackHeight, background: MIX_GAP_TARGET_STRIPE, borderRadius: 1 } }),
|
|
11840
11860
|
/* @__PURE__ */ jsxs80("span", { "data-mixgap-label": "", className: "fd-num", style: { position: "absolute", left: labelLeft, top: "50%", transform: "translateY(-50%)", fontSize: 12, color: "var(--text-muted)", whiteSpace: "nowrap" }, children: [
|
|
@@ -11948,7 +11968,7 @@ function ChannelContribution({
|
|
|
11948
11968
|
|
|
11949
11969
|
// src/components/planner/BudgetReallocator.tsx
|
|
11950
11970
|
import * as React67 from "react";
|
|
11951
|
-
import { Fragment as
|
|
11971
|
+
import { Fragment as Fragment27, jsx as jsx94, jsxs as jsxs82 } from "react/jsx-runtime";
|
|
11952
11972
|
var bandFor = (crp) => crp >= 200 ? "dominant" : crp >= 100 ? "strong" : crp >= 50 ? "adequate" : "weak";
|
|
11953
11973
|
function BudgetReallocator({
|
|
11954
11974
|
campus,
|
|
@@ -12012,7 +12032,7 @@ function BudgetReallocator({
|
|
|
12012
12032
|
/* @__PURE__ */ jsxs82("div", { className: "fd-row", style: { gap: 12, flexWrap: "wrap" }, children: [
|
|
12013
12033
|
/* @__PURE__ */ jsx94("span", { className: "fd-h4", style: { flex: 1, minWidth: 140 }, children: campus }),
|
|
12014
12034
|
/* @__PURE__ */ jsx94(CsiBadge, { band: nowBand, crp, size: "medium" }),
|
|
12015
|
-
dirty ? /* @__PURE__ */ jsxs82(
|
|
12035
|
+
dirty ? /* @__PURE__ */ jsxs82(Fragment27, { children: [
|
|
12016
12036
|
/* @__PURE__ */ jsx94("i", { className: "ph ph-arrow-right fd-muted", "aria-hidden": "true" }),
|
|
12017
12037
|
/* @__PURE__ */ jsx94(CsiBadge, { band: nextBand, crp: nextCrp, size: "medium", preview: true })
|
|
12018
12038
|
] }) : null
|
|
@@ -13951,7 +13971,7 @@ function FileViewer({ file, resolveUrl, sidePanel, sidePanelLabel = "Details", o
|
|
|
13951
13971
|
|
|
13952
13972
|
// src/components/files/FileBrowser.tsx
|
|
13953
13973
|
import * as React76 from "react";
|
|
13954
|
-
import { Fragment as
|
|
13974
|
+
import { Fragment as Fragment31, jsx as jsx104, jsxs as jsxs92 } from "react/jsx-runtime";
|
|
13955
13975
|
function childrenOf(folders, parentId) {
|
|
13956
13976
|
return folders.filter((f) => f.parentId === parentId).sort((a, b) => a.name.localeCompare(b.name));
|
|
13957
13977
|
}
|
|
@@ -14250,7 +14270,7 @@ function FileBrowser({
|
|
|
14250
14270
|
] }),
|
|
14251
14271
|
/* @__PURE__ */ jsxs92("span", { className: "fd-fb-actions", children: [
|
|
14252
14272
|
canCreateFolder ? /* @__PURE__ */ jsx104(Button, { variant: "secondary", size: "sm", icon: "folder-simple-plus", onClick: openCreate, children: "New folder" }) : null,
|
|
14253
|
-
canUpload ? /* @__PURE__ */ jsxs92(
|
|
14273
|
+
canUpload ? /* @__PURE__ */ jsxs92(Fragment31, { children: [
|
|
14254
14274
|
/* @__PURE__ */ jsx104(Button, { variant: "secondary", size: "sm", icon: "upload-simple", onClick: () => uploadInputRef.current && uploadInputRef.current.click(), children: "Upload" }),
|
|
14255
14275
|
/* @__PURE__ */ jsx104(
|
|
14256
14276
|
"input",
|
|
@@ -14317,7 +14337,7 @@ function FileBrowser({
|
|
|
14317
14337
|
draggableId: canMove ? { kind: "folder", id: f.id } : void 0,
|
|
14318
14338
|
isDropTarget: canMove,
|
|
14319
14339
|
onDropPayload: (p) => moveIntoFolder(p, f.id),
|
|
14320
|
-
actions: /* @__PURE__ */ jsxs92(
|
|
14340
|
+
actions: /* @__PURE__ */ jsxs92(Fragment31, { children: [
|
|
14321
14341
|
canRenameFolder ? /* @__PURE__ */ jsx104(IconButton, { icon: "pencil-simple", label: "Rename " + f.name, size: "sm", variant: "ghost", onClick: () => openRename(f) }) : null,
|
|
14322
14342
|
canMove ? /* @__PURE__ */ jsx104(
|
|
14323
14343
|
FolderPickerMenu,
|
|
@@ -14340,7 +14360,7 @@ function FileBrowser({
|
|
|
14340
14360
|
meta: file.size ? formatBytes(file.size) : void 0,
|
|
14341
14361
|
onOpen: onOpenFile ? () => onOpenFile(file) : void 0,
|
|
14342
14362
|
draggableId: canMove ? { kind: "file", id: file.id } : void 0,
|
|
14343
|
-
actions: /* @__PURE__ */ jsxs92(
|
|
14363
|
+
actions: /* @__PURE__ */ jsxs92(Fragment31, { children: [
|
|
14344
14364
|
canMove ? /* @__PURE__ */ jsx104(
|
|
14345
14365
|
FolderPickerMenu,
|
|
14346
14366
|
{
|
|
@@ -14358,7 +14378,7 @@ function FileBrowser({
|
|
|
14358
14378
|
}
|
|
14359
14379
|
) })
|
|
14360
14380
|
] }),
|
|
14361
|
-
/* @__PURE__ */ jsx104(Modal, { open: createOpen, title: "New folder", onClose: () => setCreateOpen(false), footer: /* @__PURE__ */ jsxs92(
|
|
14381
|
+
/* @__PURE__ */ jsx104(Modal, { open: createOpen, title: "New folder", onClose: () => setCreateOpen(false), footer: /* @__PURE__ */ jsxs92(Fragment31, { children: [
|
|
14362
14382
|
/* @__PURE__ */ jsx104(Button, { variant: "secondary", onClick: () => setCreateOpen(false), children: "Cancel" }),
|
|
14363
14383
|
/* @__PURE__ */ jsx104(Button, { onClick: submitCreate, disabled: !createName.trim(), children: "Create" })
|
|
14364
14384
|
] }), children: /* @__PURE__ */ jsx104(
|
|
@@ -14375,7 +14395,7 @@ function FileBrowser({
|
|
|
14375
14395
|
autoFocus: true
|
|
14376
14396
|
}
|
|
14377
14397
|
) }),
|
|
14378
|
-
/* @__PURE__ */ jsx104(Modal, { open: renameTarget != null, title: "Rename folder", onClose: () => setRenameTarget(null), footer: /* @__PURE__ */ jsxs92(
|
|
14398
|
+
/* @__PURE__ */ jsx104(Modal, { open: renameTarget != null, title: "Rename folder", onClose: () => setRenameTarget(null), footer: /* @__PURE__ */ jsxs92(Fragment31, { children: [
|
|
14379
14399
|
/* @__PURE__ */ jsx104(Button, { variant: "secondary", onClick: () => setRenameTarget(null), children: "Cancel" }),
|
|
14380
14400
|
/* @__PURE__ */ jsx104(Button, { onClick: submitRename, disabled: !renameValue.trim(), children: "Save" })
|
|
14381
14401
|
] }), children: /* @__PURE__ */ jsx104(
|
|
@@ -14399,7 +14419,7 @@ function FileBrowser({
|
|
|
14399
14419
|
title: deleteTarget ? "Delete \u201C" + deleteTarget.name + "\u201D?" : "Delete folder?",
|
|
14400
14420
|
description: "This can't be undone. The folder must be empty.",
|
|
14401
14421
|
onClose: () => setDeleteTarget(null),
|
|
14402
|
-
footer: /* @__PURE__ */ jsxs92(
|
|
14422
|
+
footer: /* @__PURE__ */ jsxs92(Fragment31, { children: [
|
|
14403
14423
|
/* @__PURE__ */ jsx104(Button, { variant: "secondary", onClick: () => setDeleteTarget(null), children: "Cancel" }),
|
|
14404
14424
|
/* @__PURE__ */ jsx104(Button, { variant: "danger", onClick: confirmDelete, children: "Delete" })
|
|
14405
14425
|
] })
|