@factorialco/f0-react 12.6.0 → 12.7.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.
Files changed (30) hide show
  1. package/dist/{ChatPostComposerDialog-Cn2genet.js → ChatPostComposerDialog-t1X_eEx-.js} +2 -2
  2. package/dist/{CoachmarkProvider-DT14x0AU.js → CoachmarkProvider-C8AfrRY-.js} +2 -2
  3. package/dist/{DocumentToolbar-C9Po6BKY.js → DocumentToolbar-CiWldz64.js} +2 -2
  4. package/dist/{DocxViewer-haxAtwwO.js → DocxViewer-ZWB-Upv4.js} +1 -1
  5. package/dist/{F0AiProcessingOverlay-CVIRG3jF.js → F0AiProcessingOverlay-BZDPV9iG.js} +2 -1
  6. package/dist/{F0CanvasPanel-Cr7KX0zD.js → F0CanvasPanel-BpJr85HN.js} +11 -10
  7. package/dist/{F0DocumentViewer-DVyc9nMF.js → F0DocumentViewer-C0Aj9x9_.js} +3 -3
  8. package/dist/F0DocumentViewer-c0OzZYZK.js +3 -0
  9. package/dist/{F0Map-D7XCm7e2.js → F0Map-CyyZmEdH.js} +3 -3
  10. package/dist/F0VideoPlayer-DcPgDbG3.js +1 -0
  11. package/dist/{F0VideoPlayer-ByIehNyD.js → F0VideoPlayer-Ob0Ocg-j.js} +1 -1
  12. package/dist/{Map-B6ueo7xJ.js → Map-CkxnszKW.js} +3 -3
  13. package/dist/{PdfThumbnail-PHUaRH8_.js → PdfThumbnail-DKDEmiH7.js} +1 -1
  14. package/dist/{SheetViewer-C1rrcfIx.js → SheetViewer-D1-JA9nb.js} +3 -3
  15. package/dist/{TextViewer-k1eayJ7W.js → TextViewer-DW_Xu4Cb.js} +1 -1
  16. package/dist/ai.d.ts +2 -2
  17. package/dist/ai.js +2 -2
  18. package/dist/component-status.js +1 -1
  19. package/dist/experimental.d.ts +409 -456
  20. package/dist/experimental.js +4 -4
  21. package/dist/{exports-CnbBeOMM.d.ts → exports-BdFDYdp1.d.ts} +85 -85
  22. package/dist/f0.d.ts +102 -99
  23. package/dist/f0.js +6 -6
  24. package/dist/{index-DE9tIS8D.d.ts → index-DIwa_k8B.d.ts} +177 -173
  25. package/dist/{maplibre-D4TgPyqe.js → maplibre-DKmCLTnt.js} +1 -1
  26. package/dist/{pdfWorker-C0ND4urI.js → pdfWorker-Ch4pdihi.js} +1 -1
  27. package/dist/{types-tNl_jMZz.d.ts → types-C6VyXC_B.d.ts} +349 -326
  28. package/package.json +1 -1
  29. package/dist/F0DocumentViewer-BLNw_SjP.js +0 -3
  30. package/dist/F0VideoPlayer-BWUvWTys.js +0 -1
@@ -1,5 +1,5 @@
1
- import { $i as Badge, A as Weekdays, C as FileItemSize, Ci as AvatarVariant, Cn as TooltipProps, Cr as F0PersonCardAction, Dn as ChartColorToken, Dt as SidePanelContextValue, Et as SidePanelContent, Gi as BaseAvatar, Gn as DropdownItemLabel, Hn as DropdownContentVariant, In as AlertAvatarProps, It as F0CardProps, Ji as F0AvatarColorListProps, Jn as DropdownItemSeparator, Kn as DropdownItemObject, Kt as CardMetadata, Ln as F0AvatarAlert, Mn as F0TagAlert, O as F0TagRaw, Ot as SidePanelLayout, Rn as alertAvatarTypes, S as FileItemProps, Sn as TooltipGroupProps, Sr as F0PersonCard, Wn as DropdownItem, Xi as F0AvatarColorProps, Xn as DropdownItemSwitch, Yi as F0AvatarColor, Yn as DropdownItemSubmenu, Zi as AvatarBadge, Zn as NavigationItem, _ as F0FileItem, _n as F0ProgressSeriesSize, _r as StatusVariant, a as F0CardHorizontal, b as FileAction, bi as F0AvatarModule, bn as Tooltip, c as MobileDropdown, da as WithDataTestIdProps, dr as DataAttributes, ea as BadgeProps, er as F0ButtonProps, fn as F0ProgressSeries, g as F0FileAction, gn as F0ProgressSeriesProps, h as DetailsItemType, hn as F0ProgressSeriesOptions, ia as Props$6, it as AiChatProviderProps, ji as PersonAvatarVariant, jn as F0AvatarListProps, kt as SidePanelViewDefinition, la as IconType, m as DetailsItemContent, mn as F0ProgressSeriesColor, na as modules, nr as ButtonVariant, o as F0CardHorizontalProps, oa as DistributiveOmit, p as DetailsItem, pa as WithDataTestIdReturnType, pn as F0ProgressSeriesBar, qi as F0AvatarColorList, qn as DropdownItemPanel, s as Dropdown, ta as ModuleId, tn as F0TagRawProps, ur as ActionButtonVariant, v as F0FileItemProps, vn as f0ProgressSeriesColors, w as f0FileItemSizes, wn as Shortcut, wr as F0PersonCardProps, x as FileItem, xi as F0AvatarModuleProps, xn as TooltipGroup, y as F0FileItemSize, yn as f0ProgressSeriesSizes, yt as TranscribeFn, zn as CardSecondaryAction } from "./index-DE9tIS8D.js";
2
- import { $a as BulkActionsDefinition, $d as FiltersDefinition, $i as ReplaceContentNotesTextEditorPageDocumentPatch, $l as LineChartConfig, $o as getPrimaryActions, $s as locationInputSizes, Aa as DataCollectionStatusComplete, Ac as F0MapArea, Ad as BasePaginatedResponse, Ai as MentionsConfig, Ao as GranularityDefinitionsOptions, As as F0TextInputProps, Ba as MapUnplaced, Bc as F0MapStyle, Bd as PaginatedResponse, Bi as F0NotesTextEditorSkeleton, Bl as CategoryBarChart, Bo as DatePeriod, Bs as F0PhoneInputProps, C as F0DataChartRadarProps, Cc as F0MapSkeleton, Cd as GroupMetadataItem, Cf as WeekStartDay, Ci as secondaryActionType, Co as getGranularityDefinition, Cs as NumberInputProps, Cu as F0SelectVariant, D as F0DataChartScatterProps, Dc as F0MapProjection, Dd as isVisibleAction, Di as FileType, Do as DatePickerValue, Ds as F0TextInput, Du as Action$1, Ec as F0MapHandle, Ed as filterItemActions, Ei as FILE_TYPES, Eo as DatePickerPopupProps, Es as F0TextInputInlineProps, Eu as selectVariants, Fa as EditableTableColumnDefinition, Fc as F0MapViewport, Fd as ItemNeighborsId, Fi as RichTextDisplayHandle, Fl as F0ActionBarRef, Fo as DateNavigationOptions, Fs as TemplateVariablesConfig, Ga as GraphVisualizationOptions, Gc as F0MapProvider, Gd as SortOrder, Gi as NotesTextEditorSkeleton, Gl as RadarChart, Go as SecondaryActionGroup, Gs as F0LocationInputChangeMeta, Ha as ListIconColor, Hc as f0MapStyles, Hd as PaginationType, Hi as NotesTextEditor, Hl as LineChart, Ho as MAX_EXPANDED_ACTIONS, Hs as PhoneInputSize, Ia as EditableTableOnCellChangeParams, Ic as F0MapViewportInset, Id as ItemNeighborsResponse, Ii as RichTextDisplayProps, Il as WiggleOptions, Io as DateStringFormat, Is as F0PhoneInput, Ja as CollectionProps, Jd as SortingsState, Ji as InsertAfterNotesTextEditorPageDocumentPatch, Jl as CategoryBarProps, Jo as SecondaryActionsDefinition, Js as F0LocationInputValue, Ka as ViewportInset, Kc as F0MapControlLabels, Kd as SortingKey, Ki as NotesTextEditorSkeletonProps, Kl as VerticalBarChart, Ko as SecondaryActionItem, Ks as F0LocationInputProps, La as CustomVisualizationProps, Lc as F0MapMarkerVariant, Ld as PageBasedPaginatedResponse, Li as F0NotesTextEditor, Ll as actionBarStatuses, Lo as GranularityDefinition, Ls as isPossiblePhoneValue, Ma as Chip, Mc as F0MapLineStyle, Md as DataAdapter, Mi as F0RichTextDisplayHandle, Ml as ActionBarItem, Mo as getGranularityDefinitions, Ms as F0SearchInputProps, Na as ChipProps, Nc as F0MapPoint, Nd as InfiniteScrollPaginatedResponse, Ni as F0RichTextDisplayProps, Nl as ActionBarStatus, No as granularityDefinitions, Ns as F1SearchBox, Oc as F0MapProps, Od as BaseDataAdapter, Oi as UPLOAD_INPUT_ID, Oo as DatePreset, Os as Input, Ou as InputFieldProps, Pa as chipVariants, Pc as F0MapRoute, Pd as ItemNeighborsFetchOptions, Pi as RichTextDisplay, Pl as F0ActionBar, Po as resolveGranularityDefinition, Ps as TemplateVariable, Qa as TableVisualizationType, Qd as FilterValueByKey, Qi as ReplaceBlockNotesTextEditorPageDocumentPatch, Ql as ChartConfig, Qo as filterActions, Qs as LocationPart, Ra as Visualization, Rc as F0MapMarkerVariantProps, Rd as PaginatedDataAdapter, Ri as F0NotesTextEditorHandle, Rl as AreaChart, Ro as GranularityDefinitionSimple, Rs as isValidPhoneValue, Sc as F0MapControls, Sd as GroupingState, Sf as DateRangeString, Si as resultType, So as OneCalendarProps, Ss as NumberInput, Su as F0SelectTagProp, Tc as F0Map, Td as ItemActionsDefinition, Ti as subActionType, To as rangeSeparator, Ts as F0TextInputInline, Tu as selectSizes, Ua as ListIconPaletteColor, Uc as googleMapStyles, Ud as SelectedItems, Ui as NotesTextEditorHandle, Ul as PieChart, Uo as PrimaryActionItemDefinition, Us as phoneInputSizes, Uu as UseDataSourceItemNavigationReturn, Va as MapVisualizationOptions, Vc as defaultMapStyle, Vd as PaginationInfo, Vi as F0NotesTextEditorSkeletonProps, Vl as ComboChart, Vo as DatePeriodsDefinition, Vs as F0PhoneInputValue, Vu as DataSourceItemId, Wa as listIconColors, Wc as googlePinlessMapStyles, Wd as RecordType, Wi as NotesTextEditorProps, Wl as ProgressBarChart, Wo as PrimaryActionsDefinitionFn, Ws as F0LocationInput, Xa as OnLoadDataCallback, Xd as CurrentFilters, Xi as NotesTextEditorPageDocumentPatch, Xl as ChartPropsBase, Xo as UpsellActionDefinition, Xr as VideoPlayerContent, Xs as F0LocationSuggestion, Xu as Data, Ya as ExtractPropertyKeys, Yc as F0DialogInternalProps, Yd as SortingsStateMultiple, Yi as InsertBeforeNotesTextEditorPageDocumentPatch, Yl as ChartConfig$1, Yo as SecondaryActionsItems, Ys as F0LocationSearchContext, Za as OnLoadErrorCallback, Zd as FilterOptions, Zi as NotesTextEditorSnapshot, Zl as LineChartPropsBase, Zo as UpsellActionDefinitionFn, Zs as LocationInputSize, _a as predefinedPresets, _c as F0MapListProps, _f as CalendarView, _i as actionType, _l as MetadataItemValue, _o as NavigationFiltersState, _s as TextareaProps, aa as User, ac as CardSelectableSingleProps, af as QuickFilterDefinition, al as BaseTabs, ao as Lane, as as OneFilterPicker, au as F0ButtonToggle, b as F0DataChartProps, bc as F0MapSidebar, bd as GroupingDefinition, bf as DateRange, bi as heightType, bo as OneCalendarInternal, bs as F0NumberInput, bu as F0SelectItemProps, c as F0DataChartGaugeProps, ca as enhanceConfig, cd as PromiseOrObservable, cf as FilterValue, cl as TabsProps, co as SearchPreviewResultData, cs as TOCItem, cu as ButtonToggleSize, d as F0DataChartLineProps, da as lastIntentType, dd as OnSelectItemsCallback, df as InFilterDefinition, di as F0RichTextEditorProps, dl as NavigationTarget, do as OnBulkActionCallback, ds as Pulse, du as buttonToggleSizes, ea as TopLevelAppendNotesTextEditorPageDocumentPatch, ec as locationParts, ed as UseDataOptions, ef as FiltersMode, eo as DataCollectionBaseFetchOptions, es as getSecondaryActions, eu as BannerAction, fc as F0TimelineRowProps, fd as SelectedItemState, ff as DateFilterDefinition, fi as F0RichTextEditorSkeletonProps, fl as PageNavigation, fo as NavigationFilter, fs as F0TextAreaInputInline, ft as F0FormSchema, fu as buttonToggleVariants, g as F0DataChartPieProps, ga as OneEmptyState, gc as F0MapList, gd as SelectionId, gf as CalendarSelection, gi as RichTextEditorSkeletonProps, gl as MetadataItem, go as NavigationFiltersDefinition, gs as Textarea, hd as SelectedState, hf as CalendarMode, hi as RichTextEditorProps, hl as HeaderSecondaryAction, ho as NavigationFilterValue, hs as F0TextAreaInputProps, ia as Message, ic as CardSelectableMultipleProps, if as PresetsDefinition, io as DataCollectionSourceDefinition, is as SummaryType, iu as F0SegmentedControlProps, ja as DataCollectionStorageFeaturesDefinition, jc as F0MapLineColor, jd as BaseResponse, ji as F0RichTextDisplay, jl as ActionBarGroup, jo as NavigationGranularityKey, js as F0SearchInput, kc as F0MapArc, kd as BaseFetchOptions, ki as MentionedUser, ko as GranularityDefinitionKey, ks as InputProps, l as F0DataChartHeatmapProps, la as enhanceTextParams, ld as DataSource, lf as SearchFilterDefinition, li as F0RichTextEditor, ll as TabsSkeleton, lo as BulkAction, ls as TOCItemAction, lu as ButtonToggleVariant, mc as TimelineRowStatus, md as SelectedItemsState, mf as CalendarDateMatcher, mi as RichTextEditorHandle, ml as F0ResourceHeaderProps, mo as NavigationFilterDefinition, ms as F0TextAreaInput, mu as F0Select, n as F0DataChartBarProps, na as HeaderProps, nc as CardSelectableContainerProps, nf as PresetDefinition, no as DataCollectionPaginatedFetchOptions, ns as SummariesDefinition, nu as BaseBannerProps, o as F0DataChartFunnelProps, oa as ImageUploadConfig, oc as CardSelectableValue, of as QuickFilterPanelHandle, ol as TabItem, oo as SearchPreview, os as DropPosition, ou as F0ButtonToggleProps, pd as SelectedItemsDetailedStatus, pf as CalendarDate, pi as RichTextEditor, pl as F0ResourceHeader, po as NavigationFilterComponentProps, ps as F0TextAreaInputInlineProps, qc as F0MapControlsProps, qd as SortingsDefinition, qi as DeleteBlockNotesTextEditorPageDocumentPatch, ql as PieChartProps, qo as SecondaryActionSplitItem, qs as F0LocationInputShapeProps, ra as HeaderStatusProps, rc as CardSelectableItem, rf as PresetSettings, ri as F0DocumentKind, ro as DataCollectionSource, rs as SummaryKey, ru as F0SegmentedControlItem, sa as EnhancementOption, sf as FilterDefinition, sl as Tabs, so as SearchPreviewPage, ss as TOCAction, su as ButtonToggleColor, ta as TopLevelPrependNotesTextEditorPageDocumentPatch, tc as CardSelectableContainer, td as UseDataReturn, tf as FiltersState, to as DataCollectionDataAdapter, ts as getUpsellAction, tu as BaseBanner, ua as enhancedTextResponse, ud as DataSourceDefinition, uf as NumberFilterDefinition, ui as F0RichTextEditorHandle, ul as NavigationProps, uo as BulkActionDefinition, us as TOCProps, uu as buttonToggleColors, vc as F0MapSidebarToggle, vf as DateRangeError, vi as editorStateType, vl as PrimaryActionButton, vo as NavigationFilterDefinitionBase, vs as F0NumberInputInline, vu as F0SelectItemMetadata, wa as UpsellingButtonProps, wc as F0MapSkeletonProps, wd as ActionDefinition, wf as WeekStartsOn, wi as secondaryActionsType, wo as getGranularitySimpleDefinition, ws as NumberInputPopoverConfig, wu as ResolvedRecordType, xa as ActionProps$1, xc as F0MapSidebarProps, xd as GroupingLevelState, xf as DateRangeComplete, xi as primaryActionType, xo as OneCalendarInternalProps, xs as F0NumberInputProps, xu as F0SelectProps, ya as DataCollectionStorage, yc as F0MapSidebarToggleProps, yd as SearchOptions, yf as OptionalCalendarSelection, yi as filesConfig, yl as PrimaryDropdownAction, yo as OneCalendar, ys as F0NumberInputInlineProps, yu as F0SelectItemObject, za as VisualizationFilterOverrides, zc as f0MapMarkerVariants, zd as PaginatedFetchOptions, zi as F0NotesTextEditorProps, zl as BarChart, zo as PrevNextDateNavigation, zs as F0PhoneInputChangeMeta } from "./types-tNl_jMZz.js";
1
+ import { $i as Badge, A as Weekdays, C as FileItemSize, Ci as AvatarVariant, Cn as TooltipProps, Cr as F0PersonCardAction, Dn as ChartColorToken, Dt as SidePanelContextValue, Et as SidePanelContent, Gi as BaseAvatar, Gn as DropdownItemLabel, Hn as DropdownContentVariant, In as AlertAvatarProps, It as F0CardProps, Ji as F0AvatarColorListProps, Jn as DropdownItemSeparator, Kn as DropdownItemObject, Kt as CardMetadata, Ln as F0AvatarAlert, Mn as F0TagAlert, O as F0TagRaw, Ot as SidePanelLayout, Rn as alertAvatarTypes, S as FileItemProps, Sn as TooltipGroupProps, Sr as F0PersonCard, Wn as DropdownItem, Xi as F0AvatarColorProps, Xn as DropdownItemSwitch, Yi as F0AvatarColor, Yn as DropdownItemSubmenu, Zi as AvatarBadge, Zn as NavigationItem, _ as F0FileItem, _n as F0ProgressSeriesSize, _r as StatusVariant, a as F0CardHorizontal, b as FileAction, bi as F0AvatarModule, bn as Tooltip, c as MobileDropdown, da as WithDataTestIdProps, dr as DataAttributes, ea as BadgeProps, er as F0ButtonProps, fn as F0ProgressSeries, g as F0FileAction, gn as F0ProgressSeriesProps, h as DetailsItemType, hn as F0ProgressSeriesOptions, ia as Props$6, it as AiChatProviderProps, ji as PersonAvatarVariant, jn as F0AvatarListProps, kt as SidePanelViewDefinition, la as IconType, m as DetailsItemContent, mn as F0ProgressSeriesColor, na as modules, nr as ButtonVariant, o as F0CardHorizontalProps, oa as DistributiveOmit, p as DetailsItem, pa as WithDataTestIdReturnType, pn as F0ProgressSeriesBar, qi as F0AvatarColorList, qn as DropdownItemPanel, s as Dropdown, ta as ModuleId, tn as F0TagRawProps, ur as ActionButtonVariant, v as F0FileItemProps, vn as f0ProgressSeriesColors, w as f0FileItemSizes, wn as Shortcut, wr as F0PersonCardProps, x as FileItem, xi as F0AvatarModuleProps, xn as TooltipGroup, y as F0FileItemSize, yn as f0ProgressSeriesSizes, yt as TranscribeFn, zn as CardSecondaryAction } from "./index-DIwa_k8B.js";
2
+ import { $a as BulkActionsDefinition, $d as FilterValueByKey, $i as ReplaceContentNotesTextEditorPageDocumentPatch, $l as LineChartPropsBase, $o as getPrimaryActions, $s as locationInputSizes, Aa as DataCollectionStatusComplete, Ac as F0MapArea, Ad as BaseFetchOptions, Ai as MentionsConfig, Ao as GranularityDefinitionsOptions, As as F0TextInputProps, Ba as MapUnplaced, Bc as F0MapStyle, Bd as PaginatedFetchOptions, Bi as F0NotesTextEditorSkeleton, Bl as CategoryBarChart, Bo as DatePeriod, Bs as F0PhoneInputProps, C as F0DataChartRadarProps, Cc as F0MapSkeleton, Cd as GroupingState, Cf as DateRangeString, Ci as secondaryActionType, Co as getGranularityDefinition, Cs as NumberInputProps, Cu as F0SelectTagProp, D as F0DataChartScatterProps, Dc as F0MapProjection, Dd as filterItemActions, Di as FileType, Do as DatePickerValue, Ds as F0TextInput, Du as selectVariants, Ec as F0MapHandle, Ed as ItemActionsDefinition, Ei as FILE_TYPES, Eo as DatePickerPopupProps, Es as F0TextInputInlineProps, Eu as selectSizes, Fa as EditableTableColumnDefinition, Fc as F0MapViewport, Fd as ItemNeighborsFetchOptions, Fi as RichTextDisplayHandle, Fl as F0ActionBarRef, Fo as DateNavigationOptions, Fs as TemplateVariablesConfig, Ga as GraphVisualizationOptions, Gc as F0MapProvider, Gd as RecordType, Gi as NotesTextEditorSkeleton, Gl as RadarChart, Go as SecondaryActionGroup, Gs as F0LocationInputChangeMeta, Ha as ListIconColor, Hc as f0MapStyles, Hd as PaginationInfo, Hi as NotesTextEditor, Hl as LineChart, Ho as MAX_EXPANDED_ACTIONS, Hs as PhoneInputSize, Hu as DataSourceItemId, Ia as EditableTableOnCellChangeParams, Ic as F0MapViewportInset, Id as ItemNeighborsId, Ii as RichTextDisplayProps, Il as WiggleOptions, Io as DateStringFormat, Is as F0PhoneInput, Ja as CollectionProps, Jd as SortingsDefinition, Ji as InsertAfterNotesTextEditorPageDocumentPatch, Jl as PieChartProps, Jo as SecondaryActionsDefinition, Js as F0LocationInputValue, Ka as ViewportInset, Kc as F0MapControlLabels, Kd as SortOrder, Ki as NotesTextEditorSkeletonProps, Kl as VerticalBarChart, Ko as SecondaryActionItem, Ks as F0LocationInputProps, La as CustomVisualizationProps, Lc as F0MapMarkerVariant, Ld as ItemNeighborsResponse, Li as F0NotesTextEditor, Ll as actionBarStatuses, Lo as GranularityDefinition, Ls as isPossiblePhoneValue, Ma as Chip, Mc as F0MapLineStyle, Md as BaseResponse, Mi as F0RichTextDisplayHandle, Ml as ActionBarItem, Mo as getGranularityDefinitions, Ms as F0SearchInputProps, Na as ChipProps, Nc as F0MapPoint, Nd as DataAdapter, Ni as F0RichTextDisplayProps, Nl as ActionBarStatus, No as granularityDefinitions, Ns as F1SearchBox, Oc as F0MapProps, Od as isVisibleAction, Oi as UPLOAD_INPUT_ID, Oo as DatePreset, Os as Input, Ou as Action$1, Pa as chipVariants, Pc as F0MapRoute, Pd as InfiniteScrollPaginatedResponse, Pi as RichTextDisplay, Pl as F0ActionBar, Po as resolveGranularityDefinition, Ps as TemplateVariable, Qa as TableVisualizationType, Qd as FilterOptions, Qi as ReplaceBlockNotesTextEditorPageDocumentPatch, Ql as ChartPropsBase, Qo as filterActions, Qs as LocationPart, Ra as Visualization, Rc as F0MapMarkerVariantProps, Rd as PageBasedPaginatedResponse, Ri as F0NotesTextEditorHandle, Rl as AreaChart, Ro as GranularityDefinitionSimple, Rs as isValidPhoneValue, Sc as F0MapControls, Sd as GroupingLevelState, Sf as DateRangeComplete, Si as resultType, So as OneCalendarProps, Ss as NumberInput, Su as F0SelectProps, Tc as F0Map, Td as ActionDefinition, Tf as WeekStartsOn, Ti as subActionType, To as rangeSeparator, Ts as F0TextInputInline, Tu as ResolvedRecordType, Ua as ListIconPaletteColor, Uc as googleMapStyles, Ud as PaginationType, Ui as NotesTextEditorHandle, Ul as PieChart, Uo as PrimaryActionItemDefinition, Us as phoneInputSizes, Va as MapVisualizationOptions, Vc as defaultMapStyle, Vd as PaginatedResponse, Vi as F0NotesTextEditorSkeletonProps, Vl as ComboChart, Vo as DatePeriodsDefinition, Vs as F0PhoneInputValue, Wa as listIconColors, Wc as googlePinlessMapStyles, Wd as SelectedItems, Wi as NotesTextEditorProps, Wl as ProgressBarChart, Wo as PrimaryActionsDefinitionFn, Ws as F0LocationInput, Wu as UseDataSourceItemNavigationReturn, Xa as OnLoadDataCallback, Xd as SortingsStateMultiple, Xi as NotesTextEditorPageDocumentPatch, Xl as BarChartProps, Xo as UpsellActionDefinition, Xr as VideoPlayerContent, Xs as F0LocationSuggestion, Ya as ExtractPropertyKeys, Yc as F0DialogInternalProps, Yd as SortingsState, Yi as InsertBeforeNotesTextEditorPageDocumentPatch, Yl as CategoryBarProps, Yo as SecondaryActionsItems, Ys as F0LocationSearchContext, Za as OnLoadErrorCallback, Zd as CurrentFilters, Zi as NotesTextEditorSnapshot, Zl as ChartConfig, Zo as UpsellActionDefinitionFn, Zs as LocationInputSize, Zu as Data, _a as predefinedPresets, _c as F0MapListProps, _d as SelectionId, _f as CalendarSelection, _i as actionType, _l as MetadataItemValue, _o as NavigationFiltersState, _s as TextareaProps, aa as User, ac as CardSelectableSingleProps, af as PresetsDefinition, al as BaseTabs, ao as Lane, as as OneFilterPicker, au as F0SegmentedControlProps, b as F0DataChartProps, bc as F0MapSidebar, bd as SearchOptions, bf as OptionalCalendarSelection, bi as heightType, bo as OneCalendarInternal, bs as F0NumberInput, bu as F0SelectItemObject, c as F0DataChartGaugeProps, ca as enhanceConfig, cf as FilterDefinition, cl as TabsProps, co as SearchPreviewResultData, cs as TOCItem, cu as ButtonToggleColor, d as F0DataChartLineProps, da as lastIntentType, dd as DataSourceDefinition, df as NumberFilterDefinition, di as F0RichTextEditorProps, dl as NavigationTarget, do as OnBulkActionCallback, ds as Pulse, du as buttonToggleColors, ea as TopLevelAppendNotesTextEditorPageDocumentPatch, ec as locationParts, ef as FiltersDefinition, eo as DataCollectionBaseFetchOptions, es as getSecondaryActions, eu as LineChartConfig, fc as F0TimelineRowProps, fd as OnSelectItemsCallback, ff as InFilterDefinition, fi as F0RichTextEditorSkeletonProps, fl as PageNavigation, fo as NavigationFilter, fs as F0TextAreaInputInline, ft as F0FormSchema, fu as buttonToggleSizes, g as F0DataChartPieProps, ga as OneEmptyState, gc as F0MapList, gd as SelectedState, gf as CalendarMode, gi as RichTextEditorSkeletonProps, gl as MetadataItem, go as NavigationFiltersDefinition, gs as Textarea, hd as SelectedItemsState, hf as CalendarDateMatcher, hi as RichTextEditorProps, hl as HeaderSecondaryAction, ho as NavigationFilterValue, hs as F0TextAreaInputProps, hu as F0Select, ia as Message, ic as CardSelectableMultipleProps, if as PresetSettings, io as DataCollectionSourceDefinition, is as SummaryType, iu as F0SegmentedControlItem, ja as DataCollectionStorageFeaturesDefinition, jc as F0MapLineColor, jd as BasePaginatedResponse, ji as F0RichTextDisplay, jl as ActionBarGroup, jo as NavigationGranularityKey, js as F0SearchInput, kc as F0MapArc, kd as BaseDataAdapter, ki as MentionedUser, ko as GranularityDefinitionKey, ks as InputProps, ku as InputFieldProps, l as F0DataChartHeatmapProps, la as enhanceTextParams, ld as PromiseOrObservable, lf as FilterValue, li as F0RichTextEditor, ll as TabsSkeleton, lo as BulkAction, ls as TOCItemAction, lu as ButtonToggleSize, mc as TimelineRowStatus, md as SelectedItemsDetailedStatus, mf as CalendarDate, mi as RichTextEditorHandle, ml as F0ResourceHeaderProps, mo as NavigationFilterDefinition, ms as F0TextAreaInput, n as F0DataChartBarProps, na as HeaderProps, nc as CardSelectableContainerProps, nd as UseDataReturn, nf as FiltersState, no as DataCollectionPaginatedFetchOptions, ns as SummariesDefinition, nu as BaseBanner, o as F0DataChartFunnelProps, oa as ImageUploadConfig, oc as CardSelectableValue, of as QuickFilterDefinition, ol as TabItem, oo as SearchPreview, os as DropPosition, ou as F0ButtonToggle, pd as SelectedItemState, pf as DateFilterDefinition, pi as RichTextEditor, pl as F0ResourceHeader, po as NavigationFilterComponentProps, ps as F0TextAreaInputInlineProps, pu as buttonToggleVariants, qc as F0MapControlsProps, qd as SortingKey, qi as DeleteBlockNotesTextEditorPageDocumentPatch, ql as ComboChartProps, qo as SecondaryActionSplitItem, qs as F0LocationInputShapeProps, ra as HeaderStatusProps, rc as CardSelectableItem, rf as PresetDefinition, ri as F0DocumentKind, ro as DataCollectionSource, rs as SummaryKey, ru as BaseBannerProps, sa as EnhancementOption, sf as QuickFilterPanelHandle, sl as Tabs, so as SearchPreviewPage, ss as TOCAction, su as F0ButtonToggleProps, ta as TopLevelPrependNotesTextEditorPageDocumentPatch, tc as CardSelectableContainer, td as UseDataOptions, tf as FiltersMode, to as DataCollectionDataAdapter, ts as getUpsellAction, tu as BannerAction, ua as enhancedTextResponse, ud as DataSource, uf as SearchFilterDefinition, ui as F0RichTextEditorHandle, ul as NavigationProps, uo as BulkActionDefinition, us as TOCProps, uu as ButtonToggleVariant, vc as F0MapSidebarToggle, vf as CalendarView, vi as editorStateType, vl as PrimaryActionButton, vo as NavigationFilterDefinitionBase, vs as F0NumberInputInline, wa as UpsellingButtonProps, wc as F0MapSkeletonProps, wd as GroupMetadataItem, wf as WeekStartDay, wi as secondaryActionsType, wo as getGranularitySimpleDefinition, ws as NumberInputPopoverConfig, wu as F0SelectVariant, xa as ActionProps$1, xc as F0MapSidebarProps, xd as GroupingDefinition, xf as DateRange, xi as primaryActionType, xo as OneCalendarInternalProps, xs as F0NumberInputProps, xu as F0SelectItemProps, ya as DataCollectionStorage, yc as F0MapSidebarToggleProps, yf as DateRangeError, yi as filesConfig, yl as PrimaryDropdownAction, yo as OneCalendar, ys as F0NumberInputInlineProps, yu as F0SelectItemMetadata, za as VisualizationFilterOverrides, zc as f0MapMarkerVariants, zd as PaginatedDataAdapter, zi as F0NotesTextEditorProps, zl as BarChart, zo as PrevNextDateNavigation, zs as F0PhoneInputChangeMeta } from "./types-C6VyXC_B.js";
3
3
  import * as React$2 from "react";
4
4
  import React$1, { ButtonHTMLAttributes, CSSProperties, ComponentProps, Dispatch, FC, ForwardedRef, MouseEvent, PropsWithChildren, ReactElement, ReactNode, RefObject, SVGProps } from "react";
5
5
  import { VariantProps } from "cva";
@@ -11,17 +11,17 @@ import { VirtualItem } from "@tanstack/react-virtual";
11
11
  import { z } from "zod";
12
12
  import "motion/react";
13
13
  //#region src/addons/ai/ai/AiPromotionChat/components/CustomButton.d.ts
14
- type ActionProps = {
14
+ interface ActionProps {
15
15
  buttonType: "gradient" | "internal";
16
16
  label: string;
17
17
  onClick: () => void;
18
18
  isLoading: boolean;
19
19
  buttonVariant?: ButtonVariant;
20
20
  icon?: IconType;
21
- };
21
+ }
22
22
  //#endregion
23
23
  //#region src/addons/ai/ai/AiPromotionChat/AiPromotionChat.d.ts
24
- type AiPromotionChatProviderProps = {
24
+ interface AiPromotionChatProviderProps {
25
25
  enabled?: boolean;
26
26
  greeting?: string;
27
27
  title?: string;
@@ -34,7 +34,7 @@ type AiPromotionChatProviderProps = {
34
34
  onShow?: () => void;
35
35
  onHide?: () => void;
36
36
  children: React.ReactNode;
37
- };
37
+ }
38
38
  declare const AiPromotionChatProviderCmp: ({ enabled, greeting, title, description, benefits, actions, onShow, onHide, children }: AiPromotionChatProviderProps) => import("react").JSX.Element;
39
39
  declare const AiPromotionChatCmp: () => import("react").JSX.Element | null;
40
40
  /**
@@ -143,11 +143,11 @@ declare namespace F0SegmentedControlBase {
143
143
  export declare const F0SegmentedControl: typeof F0SegmentedControlBase;
144
144
  //#endregion
145
145
  //#region src/elements/ai/Banners/F0AiBanner/types.d.ts
146
- type AiBannerAction = {
146
+ interface AiBannerAction {
147
147
  label: string;
148
148
  onClick: () => void;
149
149
  icon?: IconType;
150
- };
150
+ }
151
151
  interface AiBannerInternalProps {
152
152
  title: string;
153
153
  onClose?: () => void;
@@ -212,18 +212,18 @@ export declare const F0AiBanner: import("react").ForwardRefExoticComponent<Omit<
212
212
  */
213
213
  export declare const aiCalloutStatuses: readonly ["neutral", "info", "positive", "warning", "critical"];
214
214
  type AiCalloutStatus = (typeof aiCalloutStatuses)[number];
215
- type AiCalloutAction = {
215
+ interface AiCalloutAction {
216
216
  label: string;
217
217
  onClick: () => void;
218
218
  icon?: IconType;
219
219
  disabled?: boolean;
220
- };
220
+ }
221
221
  /**
222
222
  * One entry in a stacked callout. Each finding is resolved on its own, so each
223
223
  * carries its own action — "Review" on a duplicate invoice does something
224
224
  * different from "Review" on a tax mismatch.
225
225
  */
226
- type AiCalloutFinding = {
226
+ interface AiCalloutFinding {
227
227
  /**
228
228
  * Stable across renders. Findings are resolved and removed one at a time, so
229
229
  * an index would re-key the survivors and animate the wrong rows out.
@@ -232,7 +232,7 @@ type AiCalloutFinding = {
232
232
  title: string;
233
233
  description: ReactNode;
234
234
  action?: AiCalloutAction;
235
- };
235
+ }
236
236
  type AiCalloutSharedProps = DataAttributes & {
237
237
  /**
238
238
  * Required on purpose — there is no safe default. Defaulting a blocking
@@ -469,11 +469,11 @@ export declare const F0AiCallout: import("react").ForwardRefExoticComponent<(Omi
469
469
  };
470
470
  //#endregion
471
471
  //#region src/elements/ai/Banners/F0Callout/types.d.ts
472
- type CalloutAction = {
472
+ interface CalloutAction {
473
473
  label: string;
474
474
  onClick: () => void;
475
475
  icon?: IconType;
476
- };
476
+ }
477
477
  declare const variants: readonly ["ai", "critical", "positive", "info", "warning"];
478
478
  type CalloutVariant = (typeof variants)[number];
479
479
  interface CalloutInternalProps {
@@ -728,19 +728,19 @@ export declare const F0PulseDot: WithDataTestIdReturnType<import("react").Forwar
728
728
  //#region src/elements/F0Resizable/types.d.ts
729
729
  export declare const resizableDirections: readonly ["horizontal", "vertical"];
730
730
  type ResizableDirection = (typeof resizableDirections)[number];
731
- type F0ResizableProps = {
731
+ interface F0ResizableProps {
732
732
  direction?: ResizableDirection;
733
733
  children: ReactNode;
734
- };
735
- type F0ResizablePanelProps = {
734
+ }
735
+ interface F0ResizablePanelProps {
736
736
  children: ReactNode;
737
737
  defaultSize?: number;
738
738
  minSize?: number;
739
739
  maxSize?: number;
740
- };
741
- type F0ResizableHandleProps = {
740
+ }
741
+ interface F0ResizableHandleProps {
742
742
  ariaLabel?: string;
743
- };
743
+ }
744
744
  //#endregion
745
745
  //#region src/elements/F0Resizable/components/F0ResizableHandle.d.ts
746
746
  declare function F0ResizableHandle(_props: F0ResizableHandleProps): never;
@@ -772,7 +772,7 @@ export declare const F0Resizable: import("react").ForwardRefExoticComponent<F0Re
772
772
  * infinite-scroll source (`paginationInfo.hasMore`, `isLoadingMore`, `loadMore`),
773
773
  * so wiring one to the other is passing three fields across.
774
774
  */
775
- type CarouselPaging = {
775
+ interface CarouselPaging {
776
776
  /** Whether the source has records past the slides currently mounted. */
777
777
  hasMore: boolean;
778
778
  /** A fetch for the next page is in flight. */
@@ -790,7 +790,7 @@ type CarouselPaging = {
790
790
  * pressed.
791
791
  */
792
792
  total?: number;
793
- };
793
+ }
794
794
  //#endregion
795
795
  //#region src/blocks/F0CarouselDialog/F0CarouselDialog.d.ts
796
796
  /** One page of the dialog. */
@@ -934,10 +934,10 @@ export declare const F0SegmentedBar: WithDataTestIdReturnType<import("react").Fo
934
934
  //#region src/blocks/F0SwipeDeck/types.d.ts
935
935
  export declare const swipeDirections: readonly ["left", "right"];
936
936
  export type SwipeDirection = (typeof swipeDirections)[number];
937
- export type SwipeDecision<T> = {
937
+ export interface SwipeDecision<T> {
938
938
  item: T;
939
939
  direction: SwipeDirection;
940
- };
940
+ }
941
941
  export type SwipeDeckAction = {
942
942
  type: "decide";
943
943
  direction: SwipeDirection;
@@ -948,7 +948,7 @@ export type SwipeDeckAction = {
948
948
  } | {
949
949
  type: "rollback";
950
950
  };
951
- export type UseSwipeDeckOptions<T> = {
951
+ export interface UseSwipeDeckOptions<T> {
952
952
  /**
953
953
  * Append-only: the deck reads it by position, so a page of new items must be
954
954
  * added to the end. Replacing the array with a differently ordered or
@@ -967,12 +967,12 @@ export type UseSwipeDeckOptions<T> = {
967
967
  onNeedMore?: () => void;
968
968
  undoDepth?: number;
969
969
  needMoreThreshold?: number;
970
- };
971
- export type SwipeDeckEntry<T> = {
970
+ }
971
+ export interface SwipeDeckEntry<T> {
972
972
  id: string;
973
973
  item: T;
974
- };
975
- export type UseSwipeDeckResult<T> = {
974
+ }
975
+ export interface UseSwipeDeckResult<T> {
976
976
  current: T | undefined;
977
977
  currentId: string | undefined;
978
978
  /** The `count` cards behind the current one, nearest first. */
@@ -986,7 +986,7 @@ export type UseSwipeDeckResult<T> = {
986
986
  swipeLeft: () => void;
987
987
  swipeRight: () => void;
988
988
  undo: () => void;
989
- };
989
+ }
990
990
  export type F0SwipeDeckProps<T> = WithDataTestIdProps & {
991
991
  deck: UseSwipeDeckResult<T>;
992
992
  renderCard: (item: T) => ReactNode;
@@ -1069,14 +1069,14 @@ interface F0TimelineProps {
1069
1069
  export declare const F0Timeline: WithDataTestIdReturnType<import("react").ForwardRefExoticComponent<F0TimelineProps & import("react").RefAttributes<HTMLOListElement>>>;
1070
1070
  //#endregion
1071
1071
  //#region src/blocks/EntitySelect/types.d.ts
1072
- export type EntitySelectSubEntity = {
1072
+ export interface EntitySelectSubEntity {
1073
1073
  subId: EntityId;
1074
1074
  subName: string;
1075
1075
  subAvatar?: string;
1076
1076
  subSearchKeys?: string[];
1077
1077
  subDeactivated?: boolean;
1078
- };
1079
- export type EntitySelectEntity = {
1078
+ }
1079
+ export interface EntitySelectEntity {
1080
1080
  id: EntityId;
1081
1081
  name: string;
1082
1082
  avatar?: string;
@@ -1084,12 +1084,12 @@ export type EntitySelectEntity = {
1084
1084
  searchKeys?: string[];
1085
1085
  deactivated?: boolean;
1086
1086
  subItems?: EntitySelectSubEntity[];
1087
- };
1088
- export type EntitySelectNamedGroup = {
1087
+ }
1088
+ export interface EntitySelectNamedGroup {
1089
1089
  value: string;
1090
1090
  label: string;
1091
1091
  groupType?: "avatar" | "team";
1092
- };
1092
+ }
1093
1093
  interface EntitySelectCommonProps<T> extends Omit<PopoverProps, "children" | "modal">, Pick<InputFieldProps<string>, "label" | "labelIcon" | "icon" | "error" | "status" | "hint" | "hideLabel" | "maxLength" | "disabled" | "placeholder" | "loading" | "required" | "readonly" | "append" | "size"> {
1094
1094
  entities: EntitySelectEntity[];
1095
1095
  groups: EntitySelectNamedGroup[];
@@ -1117,13 +1117,13 @@ interface EntitySelectCommonProps<T> extends Omit<PopoverProps, "children" | "mo
1117
1117
  actions?: Action$1[];
1118
1118
  value?: T;
1119
1119
  }
1120
- export type FlattenedItem = {
1120
+ export interface FlattenedItem {
1121
1121
  parent: EntitySelectEntity | null;
1122
1122
  subItem: EntitySelectSubEntity & {
1123
1123
  expanded?: boolean;
1124
1124
  subItems?: EntitySelectSubEntity[];
1125
1125
  };
1126
- };
1126
+ }
1127
1127
  export interface EntitySelectSingleProps<T> extends EntitySelectCommonProps<T> {
1128
1128
  onSelect: (entity: EntitySelectEntity | null) => void;
1129
1129
  singleSelector: true;
@@ -1239,7 +1239,7 @@ declare const ToggleGroupItem: React$2.ForwardRefExoticComponent<Omit<ToggleGrou
1239
1239
  })) | undefined) => string> & React$2.RefAttributes<HTMLButtonElement>>;
1240
1240
  //#endregion
1241
1241
  //#region src/domains/platform/home/inbox/Activity/ActivityItem/ActivityItem.d.ts
1242
- type ActivityItemProps = {
1242
+ interface ActivityItemProps {
1243
1243
  id: string;
1244
1244
  createdAt: Date;
1245
1245
  title: string;
@@ -1249,15 +1249,15 @@ type ActivityItemProps = {
1249
1249
  isUnread?: boolean;
1250
1250
  onClick: (id: string) => void;
1251
1251
  onVisible?: (id: string) => void;
1252
- };
1252
+ }
1253
1253
  //#endregion
1254
1254
  //#region src/domains/platform/home/inbox/Activity/ActivityItemList/Section/Section.d.ts
1255
- type SectionProps = {
1255
+ interface SectionProps {
1256
1256
  title: string;
1257
1257
  items: Omit<ActivityItemProps, "onClick">[];
1258
1258
  onClickItem: (id: string) => void;
1259
1259
  onItemVisible?: (id: string) => void;
1260
- };
1260
+ }
1261
1261
  //#endregion
1262
1262
  //#region src/domains/platform/home/inbox/Activity/ActivityItemList/ActivityItemList.d.ts
1263
1263
  export type ActivityItemListProps = Pick<SectionProps, "items" | "onClickItem"> & {
@@ -1308,7 +1308,7 @@ container }: {
1308
1308
  }): boolean;
1309
1309
  //#endregion
1310
1310
  //#region src/blocks/SectionHeader/SectionHeader.d.ts
1311
- type Props$5 = {
1311
+ interface Props$5 {
1312
1312
  /** Main heading text */
1313
1313
  title: string;
1314
1314
  /** Description text below the title */
@@ -1325,7 +1325,7 @@ type Props$5 = {
1325
1325
  };
1326
1326
  /** If specified, a separator will be displayed above or below the content */
1327
1327
  separator?: "top" | "bottom";
1328
- };
1328
+ }
1329
1329
  declare const SectionHeaderInternal: ({ title, description, action, link, separator }: Props$5) => import("react").JSX.Element;
1330
1330
  /**
1331
1331
  * @experimental This is an experimental component use it at your own risk
@@ -1333,7 +1333,7 @@ declare const SectionHeaderInternal: ({ title, description, action, link, separa
1333
1333
  export declare const SectionHeader: typeof SectionHeaderInternal;
1334
1334
  //#endregion
1335
1335
  //#region src/domains/platform/home/Home/Communities/Celebration/Celebration.d.ts
1336
- export type CelebrationProps = {
1336
+ export interface CelebrationProps {
1337
1337
  link: string;
1338
1338
  firstName: string;
1339
1339
  lastName: string;
@@ -1345,7 +1345,7 @@ export type CelebrationProps = {
1345
1345
  type?: "birthday" | "anniversary" | "first-day";
1346
1346
  typeLabel: string;
1347
1347
  date: Date;
1348
- };
1348
+ }
1349
1349
  export declare const BaseCelebration: ({ link, firstName, lastName, src, onClick, canReact, lastEmojiReaction, onReactionSelect, type, typeLabel, date }: CelebrationProps) => import("react").JSX.Element;
1350
1350
  export declare const CelebrationSkeleton: () => import("react").JSX.Element;
1351
1351
  export declare const Celebration: typeof BaseCelebration & {
@@ -1353,12 +1353,12 @@ export declare const Celebration: typeof BaseCelebration & {
1353
1353
  };
1354
1354
  //#endregion
1355
1355
  //#region src/domains/platform/home/Home/Communities/HighlightBanner/HighlightBanner.d.ts
1356
- type HighlightBannerProps = {
1356
+ interface HighlightBannerProps {
1357
1357
  title: string;
1358
1358
  subtitle: string;
1359
1359
  buttonLabel: string;
1360
1360
  onClick?: () => void;
1361
- };
1361
+ }
1362
1362
  export declare const HighlightBanner: ({ title, subtitle, buttonLabel, onClick }: HighlightBannerProps) => import("react").JSX.Element;
1363
1363
  //#endregion
1364
1364
  //#region src/elements/Reactions/Reactions/reaction.d.ts
@@ -1395,29 +1395,29 @@ export declare const Reactions: typeof _Reactions;
1395
1395
  //#endregion
1396
1396
  //#region src/domains/platform/home/Home/Communities/Post/PostDescription/PostDescription.d.ts
1397
1397
  type HTMLString = string;
1398
- type PostDescriptionProps = {
1398
+ interface PostDescriptionProps {
1399
1399
  content: HTMLString;
1400
1400
  collapsed?: boolean;
1401
1401
  id?: string;
1402
1402
  className?: string;
1403
1403
  tabIndex?: number;
1404
- };
1404
+ }
1405
1405
  //#endregion
1406
1406
  //#region src/domains/platform/home/Home/Communities/Post/PostEvent/PostEvent.d.ts
1407
- type PostEventProps = {
1407
+ interface PostEventProps {
1408
1408
  title: string;
1409
1409
  mediaUrl?: string;
1410
1410
  place?: string;
1411
1411
  date: Date;
1412
- };
1412
+ }
1413
1413
  //#endregion
1414
1414
  //#region src/domains/platform/home/Home/Communities/Post/CommunityPost/CommunityPost.d.ts
1415
- export type CommunityPostAction = {
1415
+ export interface CommunityPostAction {
1416
1416
  label?: string;
1417
1417
  icon?: IconType;
1418
1418
  onClick: () => void;
1419
- };
1420
- export type CommunityPostProps = {
1419
+ }
1420
+ export interface CommunityPostProps {
1421
1421
  id: string;
1422
1422
  author?: {
1423
1423
  firstName: string;
@@ -1515,12 +1515,12 @@ export type CommunityPostProps = {
1515
1515
  * post keeps the exact date, which is the default.
1516
1516
  */
1517
1517
  relativeDate?: boolean;
1518
- };
1518
+ }
1519
1519
  export declare const BaseCommunityPost: ({ id, author, group, createdAt, title, description, onClick, mediaUrl, event, counters, reactions, inLabel, comment, actions, dropdownItems, noReactionsButton, descriptionExpandable, noDescriptionClamp, hideTitle, hideGroup, pinned, pinnedLabel, relativeDate, noVideoPreload, reserveCountersLine }: CommunityPostProps) => import("react").JSX.Element;
1520
- export type CommunityPostSkeletonProps = {
1520
+ export interface CommunityPostSkeletonProps {
1521
1521
  withEvent?: boolean;
1522
1522
  withImage?: boolean;
1523
- };
1523
+ }
1524
1524
  export declare const CommunityPostSkeleton: ({ withEvent, withImage }: CommunityPostSkeletonProps) => import("react").JSX.Element;
1525
1525
  export declare const CommunityPost: typeof BaseCommunityPost & {
1526
1526
  Skeleton: typeof CommunityPostSkeleton;
@@ -1730,7 +1730,7 @@ interface DetailsItemsListProps extends WithDataTestIdProps {
1730
1730
  export declare const DetailsItemsList: React$1.ForwardRefExoticComponent<DetailsItemsListProps & React$1.RefAttributes<HTMLDivElement>>;
1731
1731
  //#endregion
1732
1732
  //#region src/elements/OneListItem/OneListItem.d.ts
1733
- export type OneListItemProps = {
1733
+ export interface OneListItemProps {
1734
1734
  /** Any avatar variant, so the item can stand for whatever the list is of. */
1735
1735
  avatar?: AvatarVariant;
1736
1736
  title: string;
@@ -1768,7 +1768,7 @@ export type OneListItemProps = {
1768
1768
  withPointerCursor?: boolean;
1769
1769
  /** The row currently acted on, e.g. open in a detail view. Sets `aria-current`. */
1770
1770
  selected?: boolean;
1771
- };
1771
+ }
1772
1772
  /** Shared by the item and its skeleton, so both occupy the same box. */
1773
1773
  export declare const oneListItemRowClassName = "flex w-full flex-row flex-wrap items-start gap-2 rounded-md border p-2 focus:outline focus:outline-1 focus:outline-offset-1 focus:outline-f1-border-selected-bold";
1774
1774
  export declare const OneListItemSkeleton: () => React$1.JSX.Element;
@@ -1783,7 +1783,7 @@ export declare const OneListItem: WithDataTestIdReturnType<React$1.ForwardRefExo
1783
1783
  }>;
1784
1784
  //#endregion
1785
1785
  //#region src/elements/OnePersonListItem/OnePersonListItem.d.ts
1786
- export type OnePersonListItemProps = {
1786
+ export interface OnePersonListItemProps {
1787
1787
  person: {
1788
1788
  firstName: string;
1789
1789
  lastName: string;
@@ -1807,7 +1807,7 @@ export type OnePersonListItemProps = {
1807
1807
  info?: string;
1808
1808
  onClick: () => void;
1809
1809
  withPointerCursor?: boolean;
1810
- };
1810
+ }
1811
1811
  declare const OnePersonListItemSkeleton: () => React$1.JSX.Element;
1812
1812
  /**
1813
1813
  * @experimental This is an experimental component use it at your own risk
@@ -1830,7 +1830,7 @@ export declare const OnePersonListItem: WithDataTestIdReturnType<React$1.Forward
1830
1830
  export type F0MeetingBinding = (element: HTMLMediaElement) => () => void;
1831
1831
  export declare const f0MeetingTrackKinds: readonly ["camera", "microphone", "screenShare", "screenShareAudio"];
1832
1832
  export type F0MeetingTrackKind = (typeof f0MeetingTrackKinds)[number];
1833
- export type F0MeetingTrack = {
1833
+ export interface F0MeetingTrack {
1834
1834
  /** Stable publication id. factorial → LiveKit `TrackPublication.trackSid`. */
1835
1835
  id: string;
1836
1836
  kind: F0MeetingTrackKind;
@@ -1853,7 +1853,7 @@ export type F0MeetingTrack = {
1853
1853
  */
1854
1854
  width?: number;
1855
1855
  height?: number;
1856
- };
1856
+ }
1857
1857
  /**
1858
1858
  * A person in the room. `id` is the transport identity — the SAME string the
1859
1859
  * transport uses, so F0 never cross-references two id spaces internally. The
@@ -1863,7 +1863,7 @@ export type F0MeetingTrack = {
1863
1863
  */
1864
1864
  export declare const f0MeetingPresences: readonly ["invited", "joined"];
1865
1865
  export type F0MeetingPresence = (typeof f0MeetingPresences)[number];
1866
- export type F0MeetingParticipant = {
1866
+ export interface F0MeetingParticipant {
1867
1867
  id: string;
1868
1868
  /** Display name, already resolved by the host. LiveKit `Participant.name`. */
1869
1869
  name: string;
@@ -1909,7 +1909,7 @@ export type F0MeetingParticipant = {
1909
1909
  * others". The person owns the preference; F0 only honours it.
1910
1910
  */
1911
1911
  preventCrop?: boolean;
1912
- };
1912
+ }
1913
1913
  export declare const f0MeetingStatuses: readonly ["idle", "connecting", "connected", "reconnecting", "disconnected", "error"];
1914
1914
  /**
1915
1915
  * Room lifecycle. `reconnecting` shows a non-blocking banner and FREEZES the
@@ -1931,15 +1931,15 @@ export declare const f0MeetingPermissions: readonly ["granted", "prompt", "denie
1931
1931
  * "denied", `NotFoundError` → "unavailable", `NotReadableError` → "in-use".
1932
1932
  */
1933
1933
  export type F0MeetingPermission = (typeof f0MeetingPermissions)[number];
1934
- export type F0MeetingDevice = {
1934
+ export interface F0MeetingDevice {
1935
1935
  /** MediaDeviceInfo.deviceId. */
1936
1936
  id: string;
1937
1937
  label: string;
1938
1938
  /** Marks the OS default entry so the UI can render "System default". */
1939
1939
  isDefault?: boolean;
1940
- };
1940
+ }
1941
1941
  /** State of one local media source. */
1942
- export type F0MeetingLocalSource = {
1942
+ export interface F0MeetingLocalSource {
1943
1943
  enabled: boolean;
1944
1944
  /** A toggle is in flight. Renders the pending state and blocks double-clicks. */
1945
1945
  pending?: boolean;
@@ -1948,23 +1948,23 @@ export type F0MeetingLocalSource = {
1948
1948
  devices?: F0MeetingDevice[];
1949
1949
  selectedDeviceId?: string;
1950
1950
  selectDevice?: (deviceId: string) => void | Promise<void>;
1951
- };
1951
+ }
1952
1952
  /**
1953
1953
  * Where remote audio plays. Routing it is the host's job: LiveKit applies the
1954
1954
  * sink to every element it attaches, so F0 only lists and picks.
1955
1955
  * factorial → `useMediaDeviceSelect({ kind: "audiooutput" })`, and omitted
1956
1956
  * where `supportsAudioOutputSelection()` is false (Safari).
1957
1957
  */
1958
- export type F0MeetingOutputSource = {
1958
+ export interface F0MeetingOutputSource {
1959
1959
  devices?: F0MeetingDevice[];
1960
1960
  selectedDeviceId?: string;
1961
1961
  selectDevice?: (deviceId: string) => void | Promise<void>;
1962
- };
1962
+ }
1963
1963
  /**
1964
1964
  * The local participant's media, split from the roster because it changes on a
1965
1965
  * different cadence and drives the control bar directly.
1966
1966
  */
1967
- export type F0MeetingLocalMedia = {
1967
+ export interface F0MeetingLocalMedia {
1968
1968
  microphone: F0MeetingLocalSource;
1969
1969
  camera: F0MeetingLocalSource;
1970
1970
  /** Omit when the host cannot route output: the speaker section disappears. */
@@ -1979,7 +1979,7 @@ export type F0MeetingLocalMedia = {
1979
1979
  */
1980
1980
  audioBlocked?: boolean;
1981
1981
  unlockAudio?: () => void | Promise<void>;
1982
- };
1982
+ }
1983
1983
  export declare const f0MeetingConnectionQualities: readonly ["excellent", "good", "poor", "lost"];
1984
1984
  export type F0MeetingConnectionQuality = (typeof f0MeetingConnectionQualities)[number];
1985
1985
  /**
@@ -1987,7 +1987,7 @@ export type F0MeetingConnectionQuality = (typeof f0MeetingConnectionQualities)[n
1987
1987
  * through context: with a dozen participants LiveKit emits these at 10–20 Hz,
1988
1988
  * which would re-render the whole tree a hundred times a second.
1989
1989
  */
1990
- export type F0MeetingSignal = {
1990
+ export interface F0MeetingSignal {
1991
1991
  /** 0..1, smoothed by the host. LiveKit `Participant.audioLevel`. */
1992
1992
  audioLevel: number;
1993
1993
  /**
@@ -2002,13 +2002,13 @@ export type F0MeetingSignal = {
2002
2002
  bands?: readonly number[];
2003
2003
  isSpeaking: boolean;
2004
2004
  quality: F0MeetingConnectionQuality;
2005
- };
2005
+ }
2006
2006
  /**
2007
2007
  * Minimal external-store protocol. F0 exports `createMeetingSignalStore` so
2008
2008
  * hosts never implement subscribe/getSnapshot themselves — the adapter just
2009
2009
  * calls the setters from its transport listeners.
2010
2010
  */
2011
- export type F0MeetingSignalStore = {
2011
+ export interface F0MeetingSignalStore {
2012
2012
  subscribe: (participantId: string, listener: () => void) => () => void;
2013
2013
  /**
2014
2014
  * MUST return the same object identity while nothing changed, or
@@ -2018,8 +2018,8 @@ export type F0MeetingSignalStore = {
2018
2018
  subscribeSpeakers: (listener: () => void) => () => void;
2019
2019
  /** Identity changes only when the SET changes, so the grid doesn't churn. */
2020
2020
  getSpeakers: () => readonly string[];
2021
- };
2022
- export type F0MeetingRoomInfo = {
2021
+ }
2022
+ export interface F0MeetingRoomInfo {
2023
2023
  id: string;
2024
2024
  /** Shown in the header and in the minimized pill. */
2025
2025
  title: string;
@@ -2035,7 +2035,7 @@ export type F0MeetingRoomInfo = {
2035
2035
  label: string;
2036
2036
  onNavigate: () => void;
2037
2037
  };
2038
- };
2038
+ }
2039
2039
  /**
2040
2040
  * Per-room permissions, defaulting to allowed so hosts only express what their
2041
2041
  * token or role restricts.
@@ -2044,7 +2044,7 @@ export type F0MeetingRoomInfo = {
2044
2044
  * SUPPORT. Omitting `startRecording` means "this deployment has no recording";
2045
2045
  * `canRecord: false` means "recording exists but not for you".
2046
2046
  */
2047
- export type F0MeetingCapabilities = {
2047
+ export interface F0MeetingCapabilities {
2048
2048
  canPublishAudio?: boolean;
2049
2049
  canPublishVideo?: boolean;
2050
2050
  canShareScreen?: boolean;
@@ -2053,39 +2053,39 @@ export type F0MeetingCapabilities = {
2053
2053
  canRemoveParticipants?: boolean;
2054
2054
  /** Per-participant moderation gate (e.g. you cannot remove another host). */
2055
2055
  canModerate?: (participant: F0MeetingParticipant) => boolean;
2056
- };
2057
- export type F0MeetingRecording = {
2056
+ }
2057
+ export interface F0MeetingRecording {
2058
2058
  active: boolean;
2059
2059
  startedBy?: F0MeetingParticipant;
2060
2060
  startedAt?: string;
2061
2061
  /** Legal copy is host-provided and already localized. */
2062
2062
  consentNotice?: string;
2063
- };
2063
+ }
2064
2064
  /**
2065
2065
  * Whether the room is being transcribed. A ROOM fact, not yours: pausing it
2066
2066
  * stops everyone's speech from being transcribed, so every participant sees
2067
2067
  * the same state in the header.
2068
2068
  */
2069
- export type F0MeetingTranscription = {
2069
+ export interface F0MeetingTranscription {
2070
2070
  status: "active" | "paused";
2071
2071
  /** Participant id of whoever changed it last. */
2072
2072
  changedBy?: string;
2073
2073
  changedAt?: string;
2074
- };
2074
+ }
2075
2075
  /** A stretch of the call that was not transcribed, drawn as dividers. */
2076
- export type F0MeetingTranscriptPause = {
2076
+ export interface F0MeetingTranscriptPause {
2077
2077
  at: string;
2078
2078
  /** Participant id of whoever paused it. */
2079
2079
  by?: string;
2080
2080
  resumedAt?: string;
2081
2081
  resumedBy?: string;
2082
- };
2083
- export type F0MeetingReaction = {
2082
+ }
2083
+ export interface F0MeetingReaction {
2084
2084
  id: string;
2085
2085
  participantId: string;
2086
2086
  emoji: string;
2087
2087
  at: string;
2088
- };
2088
+ }
2089
2089
  /**
2090
2090
  * One line of live transcription.
2091
2091
  *
@@ -2094,7 +2094,7 @@ export type F0MeetingReaction = {
2094
2094
  * REPLACED by its final version under the same id rather than appended.
2095
2095
  * (`RoomEvent.TranscriptionReceived` is deprecated; do not wire it.)
2096
2096
  */
2097
- export type F0MeetingTranscriptSegment = {
2097
+ export interface F0MeetingTranscriptSegment {
2098
2098
  /** LiveKit `lk.segment_id` — shared between the interim and final versions. */
2099
2099
  id: string;
2100
2100
  participantId: string;
@@ -2102,22 +2102,22 @@ export type F0MeetingTranscriptSegment = {
2102
2102
  at: string;
2103
2103
  /** LiveKit `lk.transcription_final`. Interim lines render as provisional. */
2104
2104
  isFinal: boolean;
2105
- };
2105
+ }
2106
2106
  /**
2107
2107
  * A tab in the room's side panel. F0 owns the bar, the selection and the close
2108
2108
  * button; the host owns what is inside each tab.
2109
2109
  */
2110
- export type F0MeetingSidePanelTab = {
2110
+ export interface F0MeetingSidePanelTab {
2111
2111
  id: string;
2112
2112
  label: string;
2113
2113
  content: React.ReactNode;
2114
2114
  /** Unread count on the tab and on the control-bar button that opens it. */
2115
2115
  badge?: number;
2116
- };
2117
- export type F0MeetingSidePanel = {
2116
+ }
2117
+ export interface F0MeetingSidePanel {
2118
2118
  tabs: F0MeetingSidePanelTab[];
2119
2119
  defaultTabId?: string;
2120
- };
2120
+ }
2121
2121
  /**
2122
2122
  * One of the room's panels, each with its own control-bar button. Only one is
2123
2123
  * open at a time: opening another replaces it in place.
@@ -2153,7 +2153,7 @@ export type F0MeetingFocusIntent = {
2153
2153
  * As in {@link F0ChatRuntime}, optional callbacks are CAPABILITY DETECTION:
2154
2154
  * omitting `setScreenShareEnabled` removes the screen-share button entirely.
2155
2155
  */
2156
- export type F0MeetingRuntime = {
2156
+ export interface F0MeetingRuntime {
2157
2157
  room: F0MeetingRoomInfo;
2158
2158
  status: F0MeetingStatus;
2159
2159
  /** Only meaningful with `status: "disconnected"`. */
@@ -2215,7 +2215,7 @@ export type F0MeetingRuntime = {
2215
2215
  /** Retry after a failed connect — wires the Rejoin action. */
2216
2216
  reconnect?: () => void | Promise<void>;
2217
2217
  capabilities?: F0MeetingCapabilities;
2218
- };
2218
+ }
2219
2219
  /** The places a call can be sent to — by the user, or by `defaultMode`. */
2220
2220
  export declare const f0MeetingSurfaceDestinations: readonly ["fullscreen",
2221
2221
  /** The side panel: pinned to the left of the content, which narrows for it. */
@@ -2241,23 +2241,23 @@ export type F0WindowCorner = (typeof f0WindowCorners)[number];
2241
2241
  * persisted by the panel — which is also why docking and undocking returns the
2242
2242
  * exact floating size the user had chosen.
2243
2243
  */
2244
- export type F0WindowPlacement = {
2244
+ export interface F0WindowPlacement {
2245
2245
  corner: F0WindowCorner;
2246
2246
  /** Distance from the anchored corner, in px, always positive. */
2247
2247
  dx: number;
2248
2248
  dy: number;
2249
2249
  width: number;
2250
2250
  height: number;
2251
- };
2252
- export type F0Rect = {
2251
+ }
2252
+ export interface F0Rect {
2253
2253
  x: number;
2254
2254
  y: number;
2255
2255
  width: number;
2256
2256
  height: number;
2257
- };
2257
+ }
2258
2258
  export declare const f0MeetingCoreActionIds: readonly ["core:microphone", "core:microphoneSettings", "core:camera", "core:cameraSettings", "core:screenShare", "core:reactions", "core:raiseHand", "core:chat", "core:leave"];
2259
2259
  export type F0MeetingCoreActionId = (typeof f0MeetingCoreActionIds)[number];
2260
- export type F0MeetingAction = {
2260
+ export interface F0MeetingAction {
2261
2261
  /**
2262
2262
  * Reusing a core id (see {@link f0MeetingCoreActionIds}) PATCHES the
2263
2263
  * synthesized action instead of adding a new one, so a host can restyle the
@@ -2294,7 +2294,7 @@ export type F0MeetingAction = {
2294
2294
  shortcut?: string;
2295
2295
  /** Removes a synthesized core action entirely. */
2296
2296
  hidden?: boolean;
2297
- };
2297
+ }
2298
2298
  /**
2299
2299
  * A partial override of a synthesized core action. Patching only needs the id,
2300
2300
  * so relabelling the mic button does not mean restating its icon, priority and
@@ -2305,7 +2305,7 @@ export type F0MeetingActionPatch = Partial<Omit<F0MeetingAction, "id">> & {
2305
2305
  };
2306
2306
  export type F0MeetingActionInput = F0MeetingAction | F0MeetingActionPatch;
2307
2307
  export type F0MeetingActionsProp = F0MeetingActionInput[] | ((runtime: F0MeetingRuntime) => F0MeetingActionInput[]);
2308
- export type F0MeetingProviderProps = {
2308
+ export interface F0MeetingProviderProps {
2309
2309
  /** `null` when there is no active meeting: nothing mounts. */
2310
2310
  runtime: F0MeetingRuntime | null;
2311
2311
  /** Host actions, merged by id with the synthesized core ones. */
@@ -2338,23 +2338,23 @@ export type F0MeetingProviderProps = {
2338
2338
  /** Host content rendered above the whole room (banners, upsells). */
2339
2339
  overlay?: React.ReactNode;
2340
2340
  children?: React.ReactNode;
2341
- };
2341
+ }
2342
2342
  /** A device as remembered: the label survives ids that rotate. */
2343
- export type F0MeetingDevicePreference = {
2343
+ export interface F0MeetingDevicePreference {
2344
2344
  deviceId: string;
2345
2345
  label: string;
2346
- };
2346
+ }
2347
2347
  /**
2348
2348
  * What the browser remembers about how you like to join, across calls. Written
2349
2349
  * only when you choose something, never when the host changes it for you.
2350
2350
  */
2351
- export type F0MeetingMediaPreferences = {
2351
+ export interface F0MeetingMediaPreferences {
2352
2352
  microphone?: F0MeetingDevicePreference;
2353
2353
  camera?: F0MeetingDevicePreference;
2354
2354
  speaker?: F0MeetingDevicePreference;
2355
2355
  microphoneEnabled?: boolean;
2356
2356
  cameraEnabled?: boolean;
2357
- };
2357
+ }
2358
2358
  //#endregion
2359
2359
  //#region src/facade/ApplicationFrame/ApplicationFrame.d.ts
2360
2360
  export interface ApplicationFrameSidePanelProps {
@@ -2854,7 +2854,7 @@ interface UsePageHeaderItemNavigationConfig<R extends RecordType> {
2854
2854
  export declare function usePageHeaderItemNavigation<R extends RecordType>(nav: PageHeaderItemNavigationInput<R> | null, config?: UsePageHeaderItemNavigationConfig<R>): NavigationProps | null;
2855
2855
  //#endregion
2856
2856
  //#region src/blocks/Header/ProductUpdates/ProductUpdates.d.ts
2857
- type ProductUpdate = {
2857
+ interface ProductUpdate {
2858
2858
  title: string;
2859
2859
  href: string;
2860
2860
  mediaUrl: string;
@@ -2863,18 +2863,18 @@ type ProductUpdate = {
2863
2863
  description?: string;
2864
2864
  unread?: boolean;
2865
2865
  onClick?: (event: MouseEvent<HTMLAnchorElement>) => void;
2866
- };
2867
- type ProductUpdatesScreen = {
2866
+ }
2867
+ interface ProductUpdatesScreen {
2868
2868
  title: string;
2869
2869
  description: string;
2870
2870
  buttonText: string;
2871
- };
2871
+ }
2872
2872
  /**
2873
2873
  * The CEO's curated shelf, as a second tab beside the updates feed. Omit it and
2874
2874
  * the dialog opens on the feed alone, with no tab strip — so a consumer that
2875
2875
  * has no shelf to show is not forced to invent one.
2876
2876
  */
2877
- type ProductUpdatesCeoPicks = {
2877
+ interface ProductUpdatesCeoPicks {
2878
2878
  /** This tab's label — "Our CEO picks". */
2879
2879
  label: string;
2880
2880
  /** The label the feed tab takes once it is one of two — "Highlights". */
@@ -2882,8 +2882,8 @@ type ProductUpdatesCeoPicks = {
2882
2882
  /** Fetched the first time this tab is opened, not when the dialog opens. */
2883
2883
  getUpdates: () => Promise<ProductUpdate[]>;
2884
2884
  emptyScreen: ProductUpdatesScreen;
2885
- };
2886
- type ProductUpdatesProp = {
2885
+ }
2886
+ interface ProductUpdatesProp {
2887
2887
  label: string;
2888
2888
  updatesPageUrl: string;
2889
2889
  getUpdates: () => Promise<ProductUpdate[]>;
@@ -2920,7 +2920,7 @@ type ProductUpdatesProp = {
2920
2920
  type?: never;
2921
2921
  }))[];
2922
2922
  };
2923
- };
2923
+ }
2924
2924
  //#endregion
2925
2925
  //#region src/blocks/Header/PageHeader/PageHeader.d.ts
2926
2926
  export type PageAction = {
@@ -2937,7 +2937,7 @@ export type PageAction = {
2937
2937
  href: string;
2938
2938
  }[];
2939
2939
  });
2940
- type HeaderProps$1 = {
2940
+ interface HeaderProps$1 {
2941
2941
  module: {
2942
2942
  id: ModuleId;
2943
2943
  name: string;
@@ -2970,7 +2970,7 @@ type HeaderProps$1 = {
2970
2970
  * (e.g. a sidebar tab) so the page header doesn't duplicate the entry point.
2971
2971
  */
2972
2972
  hideOneSwitch?: boolean;
2973
- };
2973
+ }
2974
2974
  export declare function PageHeader({ module, statusTag, breadcrumbs, actions, embedded, navigation, productUpdates, favorites, oneSwitchTooltip, oneSwitchAutoOpen, hideOneSwitch }: HeaderProps$1): import("react").JSX.Element;
2975
2975
  //#endregion
2976
2976
  //#region src/blocks/Omnibutton/Omnibutton.d.ts
@@ -3010,12 +3010,12 @@ export declare const Page: WithDataTestIdReturnType<typeof _Page>;
3010
3010
  * community" beside Communities. Icon-only, and revealed on hover like the
3011
3011
  * row's pin, so the header stays a title until somebody reaches for it.
3012
3012
  */
3013
- export type SidebarSectionAction = {
3013
+ export interface SidebarSectionAction {
3014
3014
  /** Names the button for a screen reader, and shows as its tooltip. */
3015
3015
  label: string;
3016
3016
  icon: IconType;
3017
3017
  onClick: () => void;
3018
- };
3018
+ }
3019
3019
  export interface SidebarCollapsibleSectionProps {
3020
3020
  title: string;
3021
3021
  /** Initial open state. @default true */
@@ -3059,7 +3059,7 @@ export type SidebarChatKind = "conversation" | "community";
3059
3059
  * consumer fully controls it — pass any icon with an accessible label. F0
3060
3060
  * does not hardcode any set of statuses.
3061
3061
  */
3062
- export type SidebarChatStatus = {
3062
+ export interface SidebarChatStatus {
3063
3063
  icon: IconType;
3064
3064
  label: string;
3065
3065
  /**
@@ -3074,17 +3074,17 @@ export type SidebarChatStatus = {
3074
3074
  * is coloured because ONE thing about it is happening right now.
3075
3075
  */
3076
3076
  accent?: boolean;
3077
- };
3077
+ }
3078
3078
  /**
3079
3079
  * A top-of-list action in the Messages tab (e.g. "New chat", "New group").
3080
3080
  * The list renders one ghost button per action, so any number can be added.
3081
3081
  */
3082
- export type SidebarChatAction = {
3082
+ export interface SidebarChatAction {
3083
3083
  label: string;
3084
3084
  icon?: IconType;
3085
3085
  onClick?: () => void;
3086
- };
3087
- export type SidebarChat = {
3086
+ }
3087
+ export interface SidebarChat {
3088
3088
  id: string;
3089
3089
  label: string;
3090
3090
  /**
@@ -3154,8 +3154,8 @@ export type SidebarChat = {
3154
3154
  * optimistically — this only reflects that persistence is pending.
3155
3155
  */
3156
3156
  pinPending?: boolean;
3157
- };
3158
- export type SidebarChatGroup = {
3157
+ }
3158
+ export interface SidebarChatGroup {
3159
3159
  id: string;
3160
3160
  title: string;
3161
3161
  /** Initial open state of the collapsible group. @default true */
@@ -3176,13 +3176,13 @@ export type SidebarChatGroup = {
3176
3176
  */
3177
3177
  maxVisible?: number;
3178
3178
  chats: SidebarChat[];
3179
- };
3179
+ }
3180
3180
  /**
3181
3181
  * Imperative store API exposed by `useSidebarChats`. Every mutation is stable
3182
3182
  * (identity preserved across renders) so it can be called from anywhere with
3183
3183
  * access to the context — e.g. a websocket handler pushing live updates.
3184
3184
  */
3185
- export type SidebarChatStore = {
3185
+ export interface SidebarChatStore {
3186
3186
  groups: SidebarChatGroup[];
3187
3187
  /**
3188
3188
  * Id of the currently active chat, for rows with no `href`: you can be on any
@@ -3210,17 +3210,17 @@ export type SidebarChatStore = {
3210
3210
  setUnread: (id: string, count: number) => void;
3211
3211
  /** Reorder the chats of a group given the new ordered list of ids. */
3212
3212
  reorder: (groupId: string, orderedIds: string[]) => void;
3213
- };
3213
+ }
3214
3214
  export type SidebarChatActions = Omit<SidebarChatStore, "groups" | "activeChatId" | "unreadChatsCount">;
3215
3215
  //#endregion
3216
3216
  //#region src/blocks/Navigation/Sidebar/Chats/SidebarChatProvider.d.ts
3217
- export type SidebarChatProviderProps = {
3217
+ export interface SidebarChatProviderProps {
3218
3218
  children: ReactNode;
3219
3219
  /** Initial chat groups. Live updates are applied through the store actions. */
3220
3220
  initialGroups?: SidebarChatGroup[];
3221
3221
  /** Initially active chat id. Chats are not navigation links (see store). */
3222
3222
  initialActiveChatId?: string;
3223
- };
3223
+ }
3224
3224
  export declare const SidebarChatProvider: ({ children, initialGroups, initialActiveChatId }: SidebarChatProviderProps) => import("react").JSX.Element;
3225
3225
  /** Read the chat state (groups, active chat) and the imperative store API. */
3226
3226
  export declare const useSidebarChats: () => SidebarChatStore;
@@ -3233,19 +3233,19 @@ export declare const useSidebarChatActions: () => SidebarChatActions;
3233
3233
  //#endregion
3234
3234
  //#region src/blocks/Navigation/Sidebar/Chats/SidebarChatBlankState.d.ts
3235
3235
  /** A CTA shown under the blank-state copy — e.g. "Start a conversation". */
3236
- export type SidebarChatBlankStateAction = {
3236
+ export interface SidebarChatBlankStateAction {
3237
3237
  label: string;
3238
3238
  onClick?: () => void;
3239
3239
  icon?: IconType;
3240
3240
  /** Button variant — supports the gradient "ai" variant. @default "outline" */
3241
3241
  variant?: ActionButtonVariant;
3242
- };
3243
- export type SidebarChatBlankStateProps = {
3242
+ }
3243
+ export interface SidebarChatBlankStateProps {
3244
3244
  title: string;
3245
3245
  description?: string;
3246
3246
  /** Optional CTA(s) shown under the copy — e.g. "Start a conversation". */
3247
3247
  actions?: SidebarChatBlankStateAction[];
3248
- };
3248
+ }
3249
3249
  /**
3250
3250
  * Compact blank state for a sidebar conversation list. Shared by the people
3251
3251
  * chat (`SidebarChatList`) and the AI history list so the two read identically.
@@ -3262,12 +3262,12 @@ export declare const SidebarChatBlankState: WithDataTestIdReturnType<typeof _Sid
3262
3262
  * Rendered through the shared `OneEmptyState`, so the AI history list and this
3263
3263
  * one read identically — the host (factorial) just supplies the copy + actions.
3264
3264
  */
3265
- export type SidebarChatEmptyState = {
3265
+ export interface SidebarChatEmptyState {
3266
3266
  title: string;
3267
3267
  description?: string;
3268
3268
  /** Optional CTA(s) shown under the copy — e.g. "Start a conversation". */
3269
3269
  actions?: SidebarChatBlankStateAction[];
3270
- };
3270
+ }
3271
3271
  /**
3272
3272
  * Body of the "Messages" tab: chat groups read from `SidebarChatProvider`,
3273
3273
  * rendered through the shared `SidebarTabPanel` (search + actions + collapsible
@@ -3323,7 +3323,7 @@ interface Company {
3323
3323
  name: string;
3324
3324
  logo?: string;
3325
3325
  }
3326
- export type CompanySelectorProps = {
3326
+ export interface CompanySelectorProps {
3327
3327
  companies: Company[];
3328
3328
  selected?: string;
3329
3329
  onChange: (value: string) => void;
@@ -3341,16 +3341,16 @@ export type CompanySelectorProps = {
3341
3341
  * it in the primary sidebar.
3342
3342
  */
3343
3343
  variant?: "default" | "compact";
3344
- };
3344
+ }
3345
3345
  export declare function CompanySelector({ companies, selected, onChange, isLoading, withNotification, additionalOptions, variant }: CompanySelectorProps): import("react").JSX.Element;
3346
3346
  //#endregion
3347
3347
  //#region src/blocks/Navigation/Sidebar/UserMenu/UserMenu.d.ts
3348
- export type SidebarUser = {
3348
+ export interface SidebarUser {
3349
3349
  firstName: string;
3350
3350
  lastName: string;
3351
3351
  avatarUrl?: string;
3352
- };
3353
- export type SidebarUserMenuProps = {
3352
+ }
3353
+ export interface SidebarUserMenuProps {
3354
3354
  user: SidebarUser;
3355
3355
  /** Where the profile row goes. Without it, the menu has no profile row. */
3356
3356
  profile?: Pick<DropdownItemObject, "onClick" | "href">;
@@ -3359,7 +3359,7 @@ export type SidebarUserMenuProps = {
3359
3359
  onDropdownClick?: () => void;
3360
3360
  /** Shows only the avatar, for the primary sidebar. Defaults to avatar and name. */
3361
3361
  compact?: boolean;
3362
- };
3362
+ }
3363
3363
  /**
3364
3364
  * The account menu. Shared by `SidebarFooter` (avatar and name) and
3365
3365
  * `F0PrimarySidebar` (avatar only).
@@ -3389,12 +3389,12 @@ interface SidebarFooterProps {
3389
3389
  export declare function SidebarFooter({ user, options, showActivityButton, activityButtonShortcut, onActivityButtonClick, onDropdownClick, hasActivityUpdates, additionalActions }: SidebarFooterProps): import("react").JSX.Element;
3390
3390
  //#endregion
3391
3391
  //#region src/blocks/Navigation/Sidebar/Icon/Icon.d.ts
3392
- type SidebarIconProps = {
3392
+ interface SidebarIconProps {
3393
3393
  isExpanded: boolean;
3394
3394
  /** Whether the pointer is over the button. The glyph then previews the toggle. */
3395
3395
  isHovered?: boolean;
3396
3396
  onClick?: () => void;
3397
- };
3397
+ }
3398
3398
  //#endregion
3399
3399
  //#region src/blocks/Navigation/Sidebar/Header/Header.d.ts
3400
3400
  export type SidebarHeaderProps = CompanySelectorProps & SidebarIconProps;
@@ -3443,18 +3443,18 @@ export interface MenuProps {
3443
3443
  export declare function Menu({ tree, onCollapse, onSort, onFavoritesChange, favorites }: MenuProps): import("react").JSX.Element;
3444
3444
  //#endregion
3445
3445
  //#region src/blocks/Navigation/Sidebar/PanelHeader/PanelHeader.d.ts
3446
- export type SidebarPanelHeaderProps = {
3446
+ export interface SidebarPanelHeaderProps {
3447
3447
  /** The panel title, usually the label of the active primary sidebar tab. */
3448
3448
  title: string;
3449
3449
  /** Controls to the left of the collapse toggle (e.g. a "new" button). */
3450
3450
  actions?: ReactNode;
3451
- };
3451
+ }
3452
3452
  /** The secondary sidebar's title bar, with the toggle that collapses the panel. */
3453
3453
  export declare function SidebarPanelHeader({ title, actions }: SidebarPanelHeaderProps): import("react").JSX.Element;
3454
3454
  //#endregion
3455
3455
  //#region src/blocks/Navigation/Sidebar/F0PrimarySidebar/types.d.ts
3456
3456
  /** A tab in the primary sidebar: a module, or a pinned tool. */
3457
- type F0PrimarySidebarItem = {
3457
+ interface F0PrimarySidebarItem {
3458
3458
  id: string;
3459
3459
  label: string;
3460
3460
  icon: IconType;
@@ -3487,9 +3487,9 @@ type F0PrimarySidebarItem = {
3487
3487
  * not change the active tab.
3488
3488
  */
3489
3489
  flyout?: ReactNode;
3490
- };
3490
+ }
3491
3491
  /** A button in the sidebar foot, such as marketplace or activity. */
3492
- type F0PrimarySidebarAction = {
3492
+ interface F0PrimarySidebarAction {
3493
3493
  id: string;
3494
3494
  label: string;
3495
3495
  icon: IconType;
@@ -3510,10 +3510,10 @@ type F0PrimarySidebarAction = {
3510
3510
  options?: DropdownItem[];
3511
3511
  /** Minimum width of the menu, in px. */
3512
3512
  optionsMinWidth?: number;
3513
- };
3513
+ }
3514
3514
  //#endregion
3515
3515
  //#region src/blocks/Navigation/Sidebar/F0PrimarySidebar/F0PrimarySidebar.d.ts
3516
- export type F0PrimarySidebarProps = {
3516
+ export interface F0PrimarySidebarProps {
3517
3517
  /** The workspace switcher, shown as the logo only. */
3518
3518
  company: Omit<CompanySelectorProps, "variant">;
3519
3519
  tabs: F0PrimarySidebarItem[];
@@ -3553,7 +3553,7 @@ export type F0PrimarySidebarProps = {
3553
3553
  onTooltipShow?: (itemId: string) => void;
3554
3554
  /** The tooltip went away, from the item it was last on. */
3555
3555
  onTooltipHide?: (itemId: string) => void;
3556
- };
3556
+ }
3557
3557
  declare function F0PrimarySidebarInternal({ company, tabs, activeTab, onTabChange, persistKey, onActiveTabPress, search, actions, user, compact: compactByChoice, shortcuts, onTooltipShow, onTooltipHide }: F0PrimarySidebarProps): import("react").JSX.Element;
3558
3558
  /**
3559
3559
  * @experimental This is an experimental component use it at your own risk
@@ -3611,7 +3611,7 @@ export declare const Sidebar: WithDataTestIdReturnType<typeof SidebarInternal>;
3611
3611
  * that needs custom chrome (e.g. a popover trigger), pass `render` to wrap the
3612
3612
  * default button while keeping its look.
3613
3613
  */
3614
- export type SidebarTabPanelAction = {
3614
+ export interface SidebarTabPanelAction {
3615
3615
  label: string;
3616
3616
  icon?: IconType;
3617
3617
  onClick?: () => void;
@@ -3621,20 +3621,20 @@ export type SidebarTabPanelAction = {
3621
3621
  * the standard action design; only its surroundings change.
3622
3622
  */
3623
3623
  render?: (button: ReactNode) => ReactNode;
3624
- };
3624
+ }
3625
3625
  /**
3626
3626
  * A single row in a group. The panel is agnostic about what a row looks like:
3627
3627
  * it renders `content` opaquely. `searchText` is what the search box matches
3628
3628
  * against (omit it to keep the item out of search results while filtering).
3629
3629
  */
3630
- export type SidebarTabPanelItem = {
3630
+ export interface SidebarTabPanelItem {
3631
3631
  id: string;
3632
3632
  searchText?: string;
3633
3633
  /** Left out until the panel is searching (e.g. past a group's limit). */
3634
3634
  hiddenUnlessSearching?: boolean;
3635
3635
  content: ReactNode;
3636
- };
3637
- export type SidebarTabPanelGroup = {
3636
+ }
3637
+ export interface SidebarTabPanelGroup {
3638
3638
  id: string;
3639
3639
  /** Omit to render the items without a collapsible header (root group). */
3640
3640
  title?: string;
@@ -3647,8 +3647,8 @@ export type SidebarTabPanelGroup = {
3647
3647
  /** Hover-revealed action on the group's own header. */
3648
3648
  action?: SidebarSectionAction;
3649
3649
  items: SidebarTabPanelItem[];
3650
- };
3651
- export type SidebarTabPanelProps = {
3650
+ }
3651
+ export interface SidebarTabPanelProps {
3652
3652
  groups: SidebarTabPanelGroup[];
3653
3653
  /** Top-of-panel actions, rendered as a stack of ghost buttons. */
3654
3654
  actions?: SidebarTabPanelAction[];
@@ -3673,7 +3673,7 @@ export type SidebarTabPanelProps = {
3673
3673
  animateItems?: boolean;
3674
3674
  /** Override the outer container className. */
3675
3675
  className?: string;
3676
- };
3676
+ }
3677
3677
  //#endregion
3678
3678
  //#region src/blocks/Navigation/Sidebar/TabPanel/SidebarTabPanel.d.ts
3679
3679
  /**
@@ -3704,7 +3704,7 @@ export declare const SidebarTabPanelSearch: ({ value, onChange, placeholder }: {
3704
3704
  export declare const SidebarTabPanel: ({ groups, actions, searchPlaceholder, loading, skeleton, emptyState, noResultsLabel, animateItems, className }: SidebarTabPanelProps) => import("react").JSX.Element;
3705
3705
  //#endregion
3706
3706
  //#region src/blocks/Navigation/Sidebar/Tabs/Tabs.d.ts
3707
- export type SidebarTab = {
3707
+ export interface SidebarTab {
3708
3708
  id: string;
3709
3709
  label: string;
3710
3710
  icon: IconType;
@@ -3728,8 +3728,8 @@ export type SidebarTab = {
3728
3728
  href?: string;
3729
3729
  /** Match `href` exactly when resolving the active state. @default false */
3730
3730
  exactMatch?: boolean;
3731
- };
3732
- export type SidebarTabsProps = {
3731
+ }
3732
+ export interface SidebarTabsProps {
3733
3733
  tabs: SidebarTab[];
3734
3734
  activeTab: string;
3735
3735
  onTabChange: (id: string) => void;
@@ -3740,7 +3740,7 @@ export type SidebarTabsProps = {
3740
3740
  * (e.g. a tab that no longer ships) are ignored. Omit for session-only tabs.
3741
3741
  */
3742
3742
  persistKey?: string;
3743
- };
3743
+ }
3744
3744
  /**
3745
3745
  * Tab switcher that replaces the `SearchBar` row when the Sidebar gains tabs.
3746
3746
  * The active tab always shows icon + label (animated in); inactive tabs show
@@ -3753,13 +3753,13 @@ export type SidebarTabsProps = {
3753
3753
  export declare const SidebarTabs: ({ tabs, activeTab, onTabChange, persistKey }: SidebarTabsProps) => import("react").JSX.Element;
3754
3754
  //#endregion
3755
3755
  //#region src/elements/VirtualList/VirtualList.d.ts
3756
- type VirtualListProps = {
3756
+ interface VirtualListProps {
3757
3757
  height: number;
3758
3758
  itemCount: number;
3759
3759
  itemSize: number | ((index: number) => number);
3760
3760
  renderer: (item: VirtualItem) => JSX.Element;
3761
3761
  className?: string;
3762
- };
3762
+ }
3763
3763
  /**
3764
3764
  * @experimental This is an experimental component use it at your own risk
3765
3765
  */
@@ -3770,7 +3770,7 @@ export declare const VirtualList: React$1.ForwardRefExoticComponent<VirtualListP
3770
3770
  * A custom trailing action button for a row (see
3771
3771
  * {@link F0FormEditableTableProps.rowActions}).
3772
3772
  */
3773
- type F0FormEditableTableRowAction<R extends RecordType> = {
3773
+ interface F0FormEditableTableRowAction<R extends RecordType> {
3774
3774
  /** Stable key within the row's action list (defaults to the label). */
3775
3775
  id?: string;
3776
3776
  /** Icon shown in the button. */
@@ -3785,7 +3785,7 @@ type F0FormEditableTableRowAction<R extends RecordType> = {
3785
3785
  disabled?: boolean;
3786
3786
  /** Called when the button is clicked. */
3787
3787
  onClick: (item: R, index: number) => void | Promise<void>;
3788
- };
3788
+ }
3789
3789
  /** @internal Full editable-table column contract, with the datasource generics fixed. */
3790
3790
  type EditableColumn<R extends RecordType> = EditableTableColumnDefinition<R, SortingsDefinition, SummariesDefinition>;
3791
3791
  /**
@@ -3811,7 +3811,7 @@ type F0FormEditableTableColumn<R extends RecordType> = Omit<EditableColumn<R>, "
3811
3811
  * table built on the OneTable primitives and the editable-table cell
3812
3812
  * components — no data collection (source, adapters, filters) required.
3813
3813
  */
3814
- type F0FormEditableTableProps<R extends RecordType> = {
3814
+ interface F0FormEditableTableProps<R extends RecordType> {
3815
3815
  /** Column definitions (see {@link F0FormEditableTableColumn}). */
3816
3816
  columns: readonly F0FormEditableTableColumn<R>[];
3817
3817
  /**
@@ -3899,7 +3899,7 @@ type F0FormEditableTableProps<R extends RecordType> = {
3899
3899
  * separately via each column's `editType`.
3900
3900
  */
3901
3901
  disabled?: boolean;
3902
- };
3902
+ }
3903
3903
  //#endregion
3904
3904
  //#region src/addons/data-collection/F0FormEditableTable/F0FormEditableTable.d.ts
3905
3905
  /**
@@ -3920,25 +3920,25 @@ export declare const F0FormEditableTable: typeof F0FormEditableTableBase;
3920
3920
  //#endregion
3921
3921
  //#region src/domains/platform/home/inbox/OneApprovalHistory/ApprovalStep/ApprovalStep.d.ts
3922
3922
  type Status = "waiting" | "pending" | "approved" | "rejected";
3923
- type Approver = {
3923
+ interface Approver {
3924
3924
  firstName: string;
3925
3925
  lastName: string;
3926
3926
  avatar?: string;
3927
3927
  status: Status;
3928
- };
3929
- type ApprovalStepProps = {
3928
+ }
3929
+ interface ApprovalStepProps {
3930
3930
  title: string;
3931
3931
  approvalsRequired?: number;
3932
3932
  status: Status;
3933
3933
  approvers: Approver[];
3934
3934
  approvalDate?: Date;
3935
- };
3935
+ }
3936
3936
  //#endregion
3937
3937
  //#region src/domains/platform/home/inbox/OneApprovalHistory/OneApprovalHistory.d.ts
3938
3938
  type ApprovalStep = ApprovalStepProps;
3939
- type OneApprovalHistoryProps = {
3939
+ interface OneApprovalHistoryProps {
3940
3940
  steps: ApprovalStep[];
3941
- };
3941
+ }
3942
3942
  /**
3943
3943
  * @experimental This is an experimental component use it at your own risk
3944
3944
  */
@@ -3948,12 +3948,12 @@ export declare const OneApprovalHistory: WithDataTestIdReturnType<FC<OneApproval
3948
3948
  export declare const useDataCollectionSource: <R extends RecordType = RecordType, FiltersSchema extends FiltersDefinition = FiltersDefinition, Sortings extends SortingsDefinition = SortingsDefinition, Summaries extends SummariesDefinition = SummariesDefinition, ItemActions extends ItemActionsDefinition<R> = ItemActionsDefinition<R>, NavigationFilters extends NavigationFiltersDefinition = NavigationFiltersDefinition, Grouping extends GroupingDefinition<R> = GroupingDefinition<R>>(source: DataCollectionSourceDefinition<R, FiltersSchema, Sortings, Summaries, ItemActions, NavigationFilters, Grouping>, deps?: readonly unknown[]) => DataCollectionSource<R, FiltersSchema, Sortings, Summaries, ItemActions, NavigationFilters, Grouping>;
3949
3949
  //#endregion
3950
3950
  //#region src/addons/data-collection/OneDataCollection/hooks/useEmptyState.d.ts
3951
- type EmptyState = {
3951
+ interface EmptyState {
3952
3952
  emoji?: string;
3953
3953
  title: string;
3954
3954
  description?: string;
3955
3955
  actions?: ActionProps$1[];
3956
- };
3956
+ }
3957
3957
  declare const emptyStatesTypes: readonly ["no-data", "no-results", "error"];
3958
3958
  type EmptyStateType = (typeof emptyStatesTypes)[number];
3959
3959
  type CustomEmptyStates = Partial<Record<EmptyStateType, Partial<EmptyState>>>;
@@ -3981,7 +3981,7 @@ type CustomEmptyStates = Partial<Record<EmptyStateType, Partial<EmptyState>>>;
3981
3981
  * - Visualization selector (if multiple visualizations are available)
3982
3982
  * - The selected visualization of the data
3983
3983
  */
3984
- type OneDataCollectionProps<R extends RecordType, Filters extends FiltersDefinition, Sortings extends SortingsDefinition, Summaries extends SummariesDefinition, ItemActions extends ItemActionsDefinition<R>, NavigationFilters extends NavigationFiltersDefinition, Grouping extends GroupingDefinition<R>> = {
3984
+ interface OneDataCollectionProps<R extends RecordType, Filters extends FiltersDefinition, Sortings extends SortingsDefinition, Summaries extends SummariesDefinition, ItemActions extends ItemActionsDefinition<R>, NavigationFilters extends NavigationFiltersDefinition, Grouping extends GroupingDefinition<R>> {
3985
3985
  source: DataCollectionSource<R, Filters, Sortings, Summaries, ItemActions, NavigationFilters, Grouping>;
3986
3986
  visualizations: readonly Visualization<R, Filters, Sortings, Summaries, ItemActions, NavigationFilters, Grouping>[];
3987
3987
  /**
@@ -4089,7 +4089,7 @@ type OneDataCollectionProps<R extends RecordType, Filters extends FiltersDefinit
4089
4089
  * @default "expanded"
4090
4090
  */
4091
4091
  primaryActionsMenuVariant?: DropdownContentVariant;
4092
- };
4092
+ }
4093
4093
  //#endregion
4094
4094
  //#region src/addons/data-collection/OneDataCollection/OneDataCollectionWithSettings.d.ts
4095
4095
  /**
@@ -4119,12 +4119,12 @@ export declare function useDataCollectionData<R extends RecordType, Filters exte
4119
4119
  * data source during hydration. `sortings: null` means the user had
4120
4120
  * explicitly cleared the sorting on the originating list.
4121
4121
  */
4122
- type AppliedCollectionState<R extends RecordType, Filters extends FiltersDefinition, Sortings extends SortingsDefinition, Grouping extends GroupingDefinition<R>> = {
4122
+ interface AppliedCollectionState<R extends RecordType, Filters extends FiltersDefinition, Sortings extends SortingsDefinition, Grouping extends GroupingDefinition<R>> {
4123
4123
  filters?: FiltersState<Filters>;
4124
4124
  sortings?: SortingsState<Sortings>;
4125
4125
  search?: string;
4126
4126
  grouping?: GroupingState<R, Grouping>;
4127
- };
4127
+ }
4128
4128
  interface UseDataCollectionItemNavigationProps<R extends RecordType = RecordType, Filters extends FiltersDefinition = FiltersDefinition, Sortings extends SortingsDefinition = SortingsDefinition, Summaries extends SummariesDefinition = SummariesDefinition, ItemActions extends ItemActionsDefinition<R> = ItemActionsDefinition<R>, NavigationFilters extends NavigationFiltersDefinition = NavigationFiltersDefinition, Grouping extends GroupingDefinition<R> = GroupingDefinition<R>> {
4129
4129
  /**
4130
4130
  * The declared data source definition — the same one the originating list
@@ -4414,7 +4414,7 @@ type PrimaryAction = BaseAction & {
4414
4414
  variant?: PrimaryActionVariant;
4415
4415
  };
4416
4416
  type SecondaryAction = BaseAction;
4417
- type DialogProps = {
4417
+ interface DialogProps {
4418
4418
  header: {
4419
4419
  type: AlertAvatarProps["type"];
4420
4420
  title: string;
@@ -4426,11 +4426,11 @@ type DialogProps = {
4426
4426
  };
4427
4427
  open?: boolean;
4428
4428
  onClose?: () => void;
4429
- };
4429
+ }
4430
4430
  export declare const Dialog: WithDataTestIdReturnType<import("react").ForwardRefExoticComponent<Omit<DialogProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLElement | SVGElement>>>;
4431
4431
  //#endregion
4432
4432
  //#region src/blocks/F0Coachmark/CoachmarkProvider.d.ts
4433
- type CoachmarkProviderProps = {
4433
+ interface CoachmarkProviderProps {
4434
4434
  children: React.ReactNode;
4435
4435
  /**
4436
4436
  * Selector for the element the panel is portalled into. Defaults to the
@@ -4440,7 +4440,7 @@ type CoachmarkProviderProps = {
4440
4440
  * `document.body` when the element is absent.
4441
4441
  */
4442
4442
  portalTarget?: string;
4443
- };
4443
+ }
4444
4444
  /**
4445
4445
  * Renders the coachmark at the head of the queue. Mounted by `F0Provider`, so
4446
4446
  * `coachmarks.open` works from anywhere without a hook or a wrapper component.
@@ -4477,17 +4477,17 @@ type CoachmarkTarget = string | HTMLElement;
4477
4477
  * last one) when the button is pressed, so `onClick` is only for side effects
4478
4478
  * and `label` only for overriding the default wording.
4479
4479
  */
4480
- type CoachmarkAction = {
4480
+ interface CoachmarkAction {
4481
4481
  /** Defaults to `Next` on every step but the last, `Got it` on the last. */
4482
4482
  label?: string;
4483
4483
  /** Extra side effect. Advancing and closing happen either way. */
4484
4484
  onClick?: () => void;
4485
- };
4485
+ }
4486
4486
  /**
4487
4487
  * Where the panel sits relative to its target. `side` is a preference: the
4488
4488
  * panel flips and shifts on its own when it would overflow the viewport.
4489
4489
  */
4490
- type CoachmarkPlacement = {
4490
+ interface CoachmarkPlacement {
4491
4491
  /** Renders a triangle pointing at the target. Defaults to `true`. */
4492
4492
  arrow?: boolean;
4493
4493
  /** Preferred side of the target. Defaults to `"bottom"`. */
@@ -4496,7 +4496,7 @@ type CoachmarkPlacement = {
4496
4496
  align?: PopoverContentProps$1["align"];
4497
4497
  /** Distance in pixels between the target and the panel. */
4498
4498
  sideOffset?: number;
4499
- };
4499
+ }
4500
4500
  /**
4501
4501
  * HOW A COACHMARK ENDED. One value per way out, so a funnel can be read off it
4502
4502
  * without joining two callbacks together:
@@ -4513,7 +4513,7 @@ type CoachmarkPlacement = {
4513
4513
  */
4514
4514
  type CoachmarkEndReason = "completed" | "dismissed" | "skipped" | "unavailable";
4515
4515
  /** What `onEnd` is told. */
4516
- type CoachmarkEnd = {
4516
+ interface CoachmarkEnd {
4517
4517
  reason: CoachmarkEndReason;
4518
4518
  /**
4519
4519
  * The step it ended on, 1-based — how far the reader got. `0` when it never
@@ -4532,16 +4532,16 @@ type CoachmarkEnd = {
4532
4532
  * press.
4533
4533
  */
4534
4534
  outsidePresses: number;
4535
- };
4536
- type CoachmarkContent = {
4535
+ }
4536
+ interface CoachmarkContent {
4537
4537
  /** Headline. Also the accessible name of the panel. */
4538
4538
  title: string;
4539
4539
  /** Supporting copy under the title. */
4540
4540
  description?: string;
4541
4541
  /** The single call to action, rendered at the bottom right. */
4542
4542
  action?: CoachmarkAction;
4543
- };
4544
- type CoachmarkFocus = {
4543
+ }
4544
+ interface CoachmarkFocus {
4545
4545
  /**
4546
4546
  * PUT THE CARET WHERE THE STEP IS POINTING. Focus goes to the target — or to
4547
4547
  * the first field inside it — instead of to the panel, so the element the
@@ -4560,7 +4560,7 @@ type CoachmarkFocus = {
4560
4560
  * still one Tab away.
4561
4561
  */
4562
4562
  focusTarget?: boolean;
4563
- };
4563
+ }
4564
4564
  /**
4565
4565
  * One step of a walkthrough. Each step can point at its own element and carry
4566
4566
  * its own placement; anything it leaves out falls back to the value passed
@@ -4666,7 +4666,7 @@ type CoachmarkGuidanceStep<TElement extends string> = Omit<CoachmarkStep, "targe
4666
4666
  element?: never;
4667
4667
  targetElement: CoachmarkTarget;
4668
4668
  });
4669
- type CoachmarkGuidanceOptions<TElement extends string> = {
4669
+ interface CoachmarkGuidanceOptions<TElement extends string> {
4670
4670
  /**
4671
4671
  * Stable identity, so starting the same guidance twice shows ONE walkthrough.
4672
4672
  * Defaults to a generated id.
@@ -4703,8 +4703,8 @@ type CoachmarkGuidanceOptions<TElement extends string> = {
4703
4703
  onDismiss?: () => void;
4704
4704
  /** Finished: the action on the last step. */
4705
4705
  onComplete?: () => void;
4706
- };
4707
- type CoachmarkGuidance<TElement extends string> = {
4706
+ }
4707
+ interface CoachmarkGuidance<TElement extends string> {
4708
4708
  /** The id every `start()` opens under, and the one `stop()` closes. */
4709
4709
  id: CoachmarkId;
4710
4710
  /**
@@ -4729,7 +4729,7 @@ type CoachmarkGuidance<TElement extends string> = {
4729
4729
  start: () => CoachmarkId;
4730
4730
  /** End it wherever it is. Reports nothing: nobody dismissed it. */
4731
4731
  stop: () => void;
4732
- };
4732
+ }
4733
4733
  /**
4734
4734
  * A STEP-BY-STEP WALKTHROUGH OF A PAGE, declared in one place.
4735
4735
  *
@@ -4851,11 +4851,11 @@ export declare const coachmarks: {
4851
4851
  */
4852
4852
  type CommandRowColor = ListIconColor;
4853
4853
  /** A person rendered as a real avatar instead of an icon. */
4854
- type CommandEntityAvatar = {
4854
+ interface CommandEntityAvatar {
4855
4855
  firstName: string;
4856
4856
  lastName: string;
4857
4857
  src?: string;
4858
- };
4858
+ }
4859
4859
  /**
4860
4860
  * What the palette is scoped to: one record, or a selection of them.
4861
4861
  *
@@ -4904,19 +4904,19 @@ type CommandActionRisk = (typeof commandActionRisks)[number];
4904
4904
  * ones, and shows its reason. Policy changes an action's behaviour, never its
4905
4905
  * presence — a row that vanishes teaches the reader nothing.
4906
4906
  */
4907
- type CommandAvailability = {
4907
+ interface CommandAvailability {
4908
4908
  disabled: boolean;
4909
4909
  reason?: string;
4910
- };
4910
+ }
4911
4911
  /** How a run lands on a selection — stated on the row, before the commit. */
4912
- type CommandImpact = {
4912
+ interface CommandImpact {
4913
4913
  eligible: number;
4914
4914
  total: number;
4915
4915
  skipped: number;
4916
4916
  reason?: string;
4917
- };
4917
+ }
4918
4918
  /** One choice inside a parameter step. */
4919
- type CommandParamOption = {
4919
+ interface CommandParamOption {
4920
4920
  value: string;
4921
4921
  label: string;
4922
4922
  sublabel?: string;
@@ -4924,7 +4924,7 @@ type CommandParamOption = {
4924
4924
  /** A tint behind the `icon`. Ignored when the option draws an `avatar`. */
4925
4925
  color?: CommandRowColor;
4926
4926
  avatar?: CommandEntityAvatar;
4927
- };
4927
+ }
4928
4928
  /**
4929
4929
  * A value the action still needs, rendered as the next level of the palette
4930
4930
  * rather than as a separate dialog.
@@ -4933,13 +4933,13 @@ type CommandParamOption = {
4933
4933
  * multi-field input should collect nothing here and hand off to its own dialog
4934
4934
  * from `run` instead.
4935
4935
  */
4936
- type CommandParamStep = {
4936
+ interface CommandParamStep {
4937
4937
  key: string;
4938
4938
  /** Level heading and input placeholder, e.g. "Choose a version". */
4939
4939
  label: string;
4940
4940
  options: (ref: CommandEntityRef) => CommandParamOption[];
4941
4941
  multiple?: boolean;
4942
- };
4942
+ }
4943
4943
  /** Values collected across the parameter levels, keyed by `CommandParamStep.key`. */
4944
4944
  type CommandParamValues = Record<string, string[]>;
4945
4945
  /**
@@ -4947,12 +4947,12 @@ type CommandParamValues = Record<string, string[]>;
4947
4947
  * router and of any assistant runtime. An action that has to reach a screen
4948
4948
  * calls `navigate` rather than importing a router itself.
4949
4949
  */
4950
- type CommandRunContext = {
4950
+ interface CommandRunContext {
4951
4951
  navigate: (href: string) => void;
4952
4952
  /** Hands a prompt to the assistant. A no-op when no `assistant` is configured. */
4953
4953
  ask: (prompt: string) => void;
4954
4954
  setQuery: (query: string) => void;
4955
- };
4955
+ }
4956
4956
  /**
4957
4957
  * A row has to DO something, and there are exactly two things it can be: a
4958
4958
  * DESTINATION or a BEHAVIOUR. `href` for the first, `run` for the second, and
@@ -4975,7 +4975,7 @@ type CommandDoes<TRun, THref = string> = {
4975
4975
  href?: never;
4976
4976
  };
4977
4977
  /** An action that applies to a scoped record or selection. */
4978
- type CommandEntityActionBase = {
4978
+ interface CommandEntityActionBase {
4979
4979
  /** Unique within its provider. */
4980
4980
  key: string;
4981
4981
  /** Verb-first, so scanning and search both work: "Lock screen". */
@@ -4994,7 +4994,7 @@ type CommandEntityActionBase = {
4994
4994
  /** Floats the action into "Suggested" while the query is empty. */
4995
4995
  suggested?: (ref: CommandEntityRef) => boolean;
4996
4996
  params?: CommandParamStep[];
4997
- };
4997
+ }
4998
4998
  /**
4999
4999
  * An action that applies to a scoped record or selection.
5000
5000
  *
@@ -5012,7 +5012,7 @@ type CommandEntityAction = CommandEntityActionBase & CommandDoes<(ref: CommandEn
5012
5012
  * Declaring an action here once is what keeps a row menu, a bulk bar and the
5013
5013
  * palette projections of a single list instead of N×M surfaces.
5014
5014
  */
5015
- type CommandEntityProvider = {
5015
+ interface CommandEntityProvider {
5016
5016
  /** Stable discriminator, and the value of `CommandEntityRef.type`. */
5017
5017
  type: string;
5018
5018
  /** Group heading in the global list, e.g. "Devices". */
@@ -5055,8 +5055,8 @@ type CommandEntityProvider = {
5055
5055
  * a team of forty is a list to filter, not a list to print.
5056
5056
  */
5057
5057
  inside?: (ref: CommandEntityRef, query: string, limit: number) => CommandEntityRef[] | Promise<CommandEntityRef[]>;
5058
- };
5059
- type CommandRowAction = {
5058
+ }
5059
+ interface CommandRowAction {
5060
5060
  key: string;
5061
5061
  /**
5062
5062
  * The accessible name, and it always carries the target: `Copy link to
@@ -5071,9 +5071,9 @@ type CommandRowAction = {
5071
5071
  text?: string;
5072
5072
  tip?: string;
5073
5073
  run: () => void;
5074
- };
5074
+ }
5075
5075
  /** A flat global command: a shortcut, a jump, a thing to create. */
5076
- type CommandActionBase = {
5076
+ interface CommandActionBase {
5077
5077
  id: string;
5078
5078
  label: string;
5079
5079
  icon?: IconType;
@@ -5088,7 +5088,7 @@ type CommandActionBase = {
5088
5088
  keywords?: string;
5089
5089
  /** Second line. Leave it out unless it says something the label cannot. */
5090
5090
  description?: string;
5091
- };
5091
+ }
5092
5092
  /** A flat global command: a shortcut, a jump, a thing to create. */
5093
5093
  type CommandAction = CommandActionBase & CommandDoes<(context: CommandRunContext) => void>;
5094
5094
  /**
@@ -5131,10 +5131,10 @@ type CommandGroup = {
5131
5131
  * that rows of one intent came out contiguous, or a straggler re-emitted a
5132
5132
  * heading that had already appeared. A group cannot be non-contiguous.
5133
5133
  */
5134
- type CommandEntityActionGroup = {
5134
+ interface CommandEntityActionGroup {
5135
5135
  label: string;
5136
5136
  items: CommandEntityAction[];
5137
- };
5137
+ }
5138
5138
  /**
5139
5139
  * The assistant escape hatch — the way out of the list when nothing in it fit.
5140
5140
  *
@@ -5143,7 +5143,7 @@ type CommandEntityActionGroup = {
5143
5143
  * affordances. The palette does not know or care WHICH assistant this is; it
5144
5144
  * hands over a prompt and the scope it was built from.
5145
5145
  */
5146
- type CommandAssistant = {
5146
+ interface CommandAssistant {
5147
5147
  /** The bar button's label, e.g. "Ask One". */
5148
5148
  label: string;
5149
5149
  /** The assistant's own mark. Rendered as given — not tinted to a control glyph. */
@@ -5153,7 +5153,7 @@ type CommandAssistant = {
5153
5153
  * inside, when there was one.
5154
5154
  */
5155
5155
  onAsk: (prompt: string, ref?: CommandEntityRef) => void;
5156
- };
5156
+ }
5157
5157
  /**
5158
5158
  * EVERY WORD THE PALETTE PUTS ON SCREEN — all of it, and all of it required.
5159
5159
  *
@@ -5178,7 +5178,7 @@ type CommandAssistant = {
5178
5178
  * static copy, so there is nothing to recompute — and the palette keys its row
5179
5179
  * memos off these values.
5180
5180
  */
5181
- type CommandPaletteLabels = {
5181
+ interface CommandPaletteLabels {
5182
5182
  /** Accessible name of the overlay, for a screen reader announcing it. */
5183
5183
  label: string;
5184
5184
  /** The prompt in the field while nothing is typed and nothing is scoped. */
@@ -5262,8 +5262,8 @@ type CommandPaletteLabels = {
5262
5262
  * which is more than a template can put in a sensible order.
5263
5263
  */
5264
5264
  impact: (impact: CommandImpact) => string;
5265
- };
5266
- type F0CommandPaletteProviderProps = {
5265
+ }
5266
+ interface F0CommandPaletteProviderProps {
5267
5267
  children: ReactNode;
5268
5268
  /** Every word the palette puts on screen. Required: it ships none itself. */
5269
5269
  labels: CommandPaletteLabels;
@@ -5302,9 +5302,9 @@ type F0CommandPaletteProviderProps = {
5302
5302
  /** Controlled open state. Leave it out to let the palette own it. */
5303
5303
  open?: boolean;
5304
5304
  onOpenChange?: (open: boolean) => void;
5305
- };
5305
+ }
5306
5306
  /** What `useCommandPalette()` hands back. */
5307
- type F0CommandPaletteApi = {
5307
+ interface F0CommandPaletteApi {
5308
5308
  open: () => void;
5309
5309
  /**
5310
5310
  * Open already scoped to a record or a selection — the shortcut for any
@@ -5314,7 +5314,7 @@ type F0CommandPaletteApi = {
5314
5314
  openScoped: (ref: CommandEntityRef) => void;
5315
5315
  close: () => void;
5316
5316
  isOpen: boolean;
5317
- };
5317
+ }
5318
5318
  //#endregion
5319
5319
  //#region src/blocks/F0CommandPalette/CommandPaletteProvider.d.ts
5320
5320
  /**
@@ -5363,12 +5363,12 @@ type F0ChatUser = {
5363
5363
  /** A button in the person hover card, such as opening a chat with that person. */
5364
5364
  type F0ChatUserAction = F0PersonCardAction;
5365
5365
  /** What the group header hover card shows besides the name and avatar. */
5366
- type F0ChatChannelDetails = {
5366
+ interface F0ChatChannelDetails {
5367
5367
  description?: string;
5368
5368
  /** Buttons in the card, such as "Edit channel details" for those who may
5369
5369
  * edit it. The host decides which apply. */
5370
5370
  actions?: F0ChatUserAction[];
5371
- };
5371
+ }
5372
5372
  /**
5373
5373
  * `announcement` is a one-way channel: a noticeboard (product changelog, company
5374
5374
  * news) where only the people the host grants permission to can post, and
@@ -5392,7 +5392,7 @@ type F0ChatChannelType = "dm" | "group" | "announcement" | "community";
5392
5392
  * locate and highlight the `@name` token. "Everyone" (`@here`) is tracked
5393
5393
  * separately via `mentionedEveryone`, not as an entry here.
5394
5394
  */
5395
- type F0ChatMention = {
5395
+ interface F0ChatMention {
5396
5396
  id: string;
5397
5397
  name: string;
5398
5398
  /** Optional display data so the `@name` chip can show the same profile hover
@@ -5402,15 +5402,15 @@ type F0ChatMention = {
5402
5402
  subtitle?: string;
5403
5403
  profileHref?: string;
5404
5404
  actions?: F0ChatUserAction[];
5405
- };
5405
+ }
5406
5406
  /** A status badge shown in the header next to the title (e.g. on vacation, away).
5407
5407
  * The host decides the icon + label; the UI just renders it like the mute icon. */
5408
- type F0ChatChannelStatus = {
5408
+ interface F0ChatChannelStatus {
5409
5409
  icon: IconType;
5410
5410
  label: string;
5411
- };
5411
+ }
5412
5412
  /** The conversation currently shown in the panel (header + behaviour differs by type). */
5413
- type F0ChatChannel = {
5413
+ interface F0ChatChannel {
5414
5414
  id: string;
5415
5415
  type: F0ChatChannelType;
5416
5416
  title: string;
@@ -5471,12 +5471,12 @@ type F0ChatChannel = {
5471
5471
  * date. Only ever THEIRS: nobody sees anyone else's drafts.
5472
5472
  */
5473
5473
  draftPosts?: F0ChatDraftPost[];
5474
- };
5474
+ }
5475
5475
  /**
5476
5476
  * A pinned post as the bar needs it: enough to name it, and its id to jump to.
5477
5477
  * The post itself is fetched by the jump, not carried here.
5478
5478
  */
5479
- type F0ChatPinnedPost = {
5479
+ interface F0ChatPinnedPost {
5480
5480
  id: string;
5481
5481
  title: string;
5482
5482
  /** ISO — when it was pinned, which is what orders the list. */
@@ -5496,9 +5496,9 @@ type F0ChatPinnedPost = {
5496
5496
  * headline does. Absent ⇒ the row is text, full width.
5497
5497
  */
5498
5498
  thumbnailUrl?: string;
5499
- };
5499
+ }
5500
5500
  /** A post waiting for its moment. */
5501
- type F0ChatScheduledPost = {
5501
+ interface F0ChatScheduledPost {
5502
5502
  id: string;
5503
5503
  title: string;
5504
5504
  /** ISO — when it becomes visible. */
@@ -5509,7 +5509,7 @@ type F0ChatScheduledPost = {
5509
5509
  excerpt?: string;
5510
5510
  /** As {@link F0ChatPinnedPost.thumbnailUrl}. An event's own image counts. */
5511
5511
  thumbnailUrl?: string;
5512
- };
5512
+ }
5513
5513
  /**
5514
5514
  * A post written and kept, with no date and no audience yet.
5515
5515
  *
@@ -5520,7 +5520,7 @@ type F0ChatScheduledPost = {
5520
5520
  * same reason: a draft has no moment to bring forward, so it is published or
5521
5521
  * deleted, never "published NOW" or "cancelled".
5522
5522
  */
5523
- type F0ChatDraftPost = {
5523
+ interface F0ChatDraftPost {
5524
5524
  id: string;
5525
5525
  /** May be empty — a draft is unfinished by definition, title included. */
5526
5526
  title: string;
@@ -5530,7 +5530,7 @@ type F0ChatDraftPost = {
5530
5530
  excerpt?: string;
5531
5531
  /** As {@link F0ChatPinnedPost.thumbnailUrl}. */
5532
5532
  thumbnailUrl?: string;
5533
- };
5533
+ }
5534
5534
  /**
5535
5535
  * An entry in a shelf row's menu — publish now, edit, cancel, delete.
5536
5536
  *
@@ -5539,15 +5539,15 @@ type F0ChatDraftPost = {
5539
5539
  * counters, no reactions — nothing has happened yet), so the host closes over
5540
5540
  * the one it is building the menu for instead of being handed it back.
5541
5541
  */
5542
- type F0ChatShelfAction = {
5542
+ interface F0ChatShelfAction {
5543
5543
  id: string;
5544
5544
  label: string;
5545
5545
  icon?: IconType;
5546
5546
  onClick: () => void;
5547
5547
  /** Renders the entry in red (cancel). */
5548
5548
  critical?: boolean;
5549
- };
5550
- type F0ChatImageAttachment = {
5549
+ }
5550
+ interface F0ChatImageAttachment {
5551
5551
  kind: "image";
5552
5552
  url: string;
5553
5553
  thumbnailUrl?: string;
@@ -5569,8 +5569,8 @@ type F0ChatImageAttachment = {
5569
5569
  * square. */
5570
5570
  width?: number;
5571
5571
  height?: number;
5572
- };
5573
- type F0ChatFileAttachment = {
5572
+ }
5573
+ interface F0ChatFileAttachment {
5574
5574
  kind: "file";
5575
5575
  url: string;
5576
5576
  name: string;
@@ -5589,32 +5589,32 @@ type F0ChatFileAttachment = {
5589
5589
  videoSilent?: boolean;
5590
5590
  /** 0–100 while uploading; undefined once done. */
5591
5591
  progress?: number;
5592
- };
5592
+ }
5593
5593
  /**
5594
5594
  * A shared (static) location. Rendered as a map preview card that opens the
5595
5595
  * point in Google Maps; the host maps it to its transport's shape (factorial →
5596
5596
  * a Stream custom attachment `{ type: "location", latitude, longitude }`).
5597
5597
  */
5598
- type F0ChatLocationAttachment = {
5598
+ interface F0ChatLocationAttachment {
5599
5599
  kind: "location";
5600
5600
  latitude: number;
5601
5601
  longitude: number;
5602
5602
  /** Optional place label shown under the map. */
5603
5603
  name?: string;
5604
- };
5604
+ }
5605
5605
  /**
5606
5606
  * A voice note: recorded in the composer (mic button) and rendered as an audio
5607
5607
  * player with playback-speed control. factorial → a Stream attachment
5608
5608
  * `{ type: "voice_recording", asset_url, duration }`.
5609
5609
  */
5610
- type F0ChatVoiceAttachment = {
5610
+ interface F0ChatVoiceAttachment {
5611
5611
  kind: "voice";
5612
5612
  url: string;
5613
5613
  /** Recording length in seconds (shown before playback starts). */
5614
5614
  durationSeconds?: number;
5615
5615
  mimeType?: string;
5616
5616
  name?: string;
5617
- };
5617
+ }
5618
5618
  /**
5619
5619
  * A rich card inside a message — an {@link F0Card} the host describes as data.
5620
5620
  *
@@ -5625,7 +5625,7 @@ type F0ChatVoiceAttachment = {
5625
5625
  * `{ type: "card", … }`). Handlers stay optional so a card can be pure data
5626
5626
  * (`href`) or host-wired (`onClick`).
5627
5627
  */
5628
- type F0ChatCardAttachment = {
5628
+ interface F0ChatCardAttachment {
5629
5629
  kind: "card";
5630
5630
  title: string;
5631
5631
  description?: string;
@@ -5643,7 +5643,7 @@ type F0ChatCardAttachment = {
5643
5643
  /** Makes the whole card activate — the footer action still acts on its own. */
5644
5644
  href?: string;
5645
5645
  onClick?: () => void;
5646
- };
5646
+ }
5647
5647
  type F0ChatAttachment = F0ChatImageAttachment | F0ChatFileAttachment | F0ChatLocationAttachment | F0ChatVoiceAttachment | F0ChatCardAttachment;
5648
5648
  /**
5649
5649
  * What the composer can produce. Cards are authored by the host (a seeded
@@ -5656,15 +5656,15 @@ type F0ChatComposableAttachment = Exclude<F0ChatAttachment, F0ChatCardAttachment
5656
5656
  * The host provides scraped metadata — F0 never fetches the URL itself
5657
5657
  * (factorial → Stream's URL enrichment attachments, `og_scrape_url`).
5658
5658
  */
5659
- type F0ChatLinkPreview = {
5659
+ interface F0ChatLinkPreview {
5660
5660
  /** The link the card opens (the scraped page). */
5661
5661
  url: string;
5662
5662
  title?: string;
5663
5663
  description?: string;
5664
5664
  /** Preview image (Open Graph `og:image`). */
5665
5665
  imageUrl?: string;
5666
- };
5667
- type F0ChatReaction = {
5666
+ }
5667
+ interface F0ChatReaction {
5668
5668
  emoji: string;
5669
5669
  count: number;
5670
5670
  reactedByMe: boolean;
@@ -5673,7 +5673,7 @@ type F0ChatReaction = {
5673
5673
  * provide {@link F0ChatRuntime.loadReactionUsers} to resolve it lazily.
5674
5674
  */
5675
5675
  users?: F0ChatUser[];
5676
- };
5676
+ }
5677
5677
  /**
5678
5678
  * iMessage-style delivery state — only meaningful for messages I sent.
5679
5679
  * `sending` renders a delayed clock beside the bubble (only if the send takes
@@ -5687,13 +5687,13 @@ type F0ChatReaction = {
5687
5687
  * `readBy` / `readByCount`.
5688
5688
  */
5689
5689
  type F0ChatMessageStatus = "sending" | "sent" | "delivered" | "read" | "failed";
5690
- type F0ChatMessageReply = {
5690
+ interface F0ChatMessageReply {
5691
5691
  id: string;
5692
5692
  author: F0ChatUser;
5693
5693
  body: string;
5694
5694
  /** Attachments of the quoted message (preview thumbnail / file name). */
5695
5695
  attachments?: F0ChatAttachment[];
5696
- };
5696
+ }
5697
5697
  /**
5698
5698
  * Snapshot of the original a forwarded copy carries. Shown as a
5699
5699
  * non-interactive "Forwarded" tag: no jump-to-source, since the destination's
@@ -5708,11 +5708,11 @@ type F0ChatForwardedFrom = F0ChatMessageReply & {
5708
5708
  * `sourceLanguage` is the detected language of the original, as a BCP-47 code;
5709
5709
  * without it the label reads "Translated".
5710
5710
  */
5711
- type F0ChatMessageTranslation = {
5711
+ interface F0ChatMessageTranslation {
5712
5712
  body: string;
5713
5713
  sourceLanguage?: string;
5714
- };
5715
- type F0ChatMessage = {
5714
+ }
5715
+ interface F0ChatMessage {
5716
5716
  /**
5717
5717
  * Discriminant against {@link F0ChatSystemMessage}. Optional — an absent
5718
5718
  * `type` means "message", so existing literals keep compiling.
@@ -5801,7 +5801,7 @@ type F0ChatMessage = {
5801
5801
  * it from server-set message metadata, never from body text.
5802
5802
  */
5803
5803
  aiAssisted?: boolean;
5804
- };
5804
+ }
5805
5805
  /**
5806
5806
  * Membership / lifecycle events rendered as a centered system row. Closed
5807
5807
  * union — the host maps unknown transport event kinds to a body-only system
@@ -5809,7 +5809,7 @@ type F0ChatMessage = {
5809
5809
  */
5810
5810
  type F0ChatSystemEvent = "member.added" | "member.removed" | "member.left";
5811
5811
  /** Structured system payload → rendered as a sentence with inline person tags. */
5812
- type F0ChatSystemPayload = {
5812
+ interface F0ChatSystemPayload {
5813
5813
  event: F0ChatSystemEvent;
5814
5814
  /**
5815
5815
  * The people the event is about. One message can carry several — the host /
@@ -5824,7 +5824,7 @@ type F0ChatSystemPayload = {
5824
5824
  /** Who performed the action (the admin who added/removed), when known.
5825
5825
  * Not rendered today; reserved for "added by X" templates. */
5826
5826
  actor?: F0ChatUser;
5827
- };
5827
+ }
5828
5828
  /**
5829
5829
  * A transcript item that is ABOUT the conversation, not from a person: no
5830
5830
  * author, no isMine, no reactions/replies/status — by construction. Rendered
@@ -5832,7 +5832,7 @@ type F0ChatSystemPayload = {
5832
5832
  * with `type: "system"`; `system` comes from its custom fields, `body` from
5833
5833
  * its free-form `text`.
5834
5834
  */
5835
- type F0ChatSystemMessage = {
5835
+ interface F0ChatSystemMessage {
5836
5836
  type: "system";
5837
5837
  id: string;
5838
5838
  /** ISO timestamp — participates in day separators and ordering. */
@@ -5842,14 +5842,14 @@ type F0ChatSystemMessage = {
5842
5842
  /** Plain-text fallback (e.g. GetStream's free-form system `text`), shown
5843
5843
  * centered when `system` is absent or the event kind is unknown. */
5844
5844
  body?: string;
5845
- };
5845
+ }
5846
5846
  declare const f0ChatCallStates: readonly ["ringing", "live", "ended", "missed"];
5847
5847
  /**
5848
5848
  * Where a call is in its life. One call is ONE transcript item that moves
5849
5849
  * through these — not a live card plus a log line afterwards.
5850
5850
  */
5851
5851
  type F0ChatCallState = (typeof f0ChatCallStates)[number];
5852
- type F0ChatCall = {
5852
+ interface F0ChatCall {
5853
5853
  id: string;
5854
5854
  state: F0ChatCallState;
5855
5855
  /** Who started it. */
@@ -5889,7 +5889,7 @@ type F0ChatCall = {
5889
5889
  icon?: IconType;
5890
5890
  onClick: () => void;
5891
5891
  }[];
5892
- };
5892
+ }
5893
5893
  /**
5894
5894
  * A call in the transcript, rendered as a card with a Join button. Like a system
5895
5895
  * message it has no author, no reactions and no replies — but unlike one it is
@@ -5899,13 +5899,13 @@ type F0ChatCall = {
5899
5899
  * factorial → a Stream message whose custom fields carry the call state, patched
5900
5900
  * in place from LiveKit's webhooks (see `F0Meeting/SPEC.md`).
5901
5901
  */
5902
- type F0ChatCallMessage = {
5902
+ interface F0ChatCallMessage {
5903
5903
  type: "call";
5904
5904
  id: string;
5905
5905
  /** ISO timestamp — participates in day separators and ordering. */
5906
5906
  createdAt: string;
5907
5907
  call: F0ChatCall;
5908
- };
5908
+ }
5909
5909
  /**
5910
5910
  * An event a post announces (a talk, an offsite, a townhall). It takes the
5911
5911
  * card's MEDIA SLOT — it replaces the cover rather than stacking under it —
@@ -5915,14 +5915,14 @@ type F0ChatCallMessage = {
5915
5915
  * survive a transport, and a `Date` doesn't. F0 parses it once, at the render
5916
5916
  * edge.
5917
5917
  */
5918
- type F0ChatPostEvent = {
5918
+ interface F0ChatPostEvent {
5919
5919
  title: string;
5920
5920
  /** When the event HAPPENS — not when the post was published. */
5921
5921
  date: string;
5922
5922
  /** Where: a room, an office, a URL if it's remote. */
5923
5923
  place?: string;
5924
5924
  mediaUrl?: string;
5925
- };
5925
+ }
5926
5926
  /**
5927
5927
  * A COMMUNITY POST: the third kind of transcript item, and the only one that is
5928
5928
  * neither a bubble nor a centered line.
@@ -5944,7 +5944,7 @@ type F0ChatPostEvent = {
5944
5944
  * already translates). The community's name is the one exception, and only in
5945
5945
  * an aggregated feed — see {@link F0ChatPost.community}.
5946
5946
  */
5947
- type F0ChatPost = {
5947
+ interface F0ChatPost {
5948
5948
  type: "post";
5949
5949
  id: string;
5950
5950
  /** ISO — feeds day separators, ordering and unread exactly like a message's. */
@@ -6045,29 +6045,29 @@ type F0ChatPost = {
6045
6045
  * handler the name is still drawn, just not as a link.
6046
6046
  */
6047
6047
  community?: F0ChatPostCommunity;
6048
- };
6048
+ }
6049
6049
  /** The community a post came from, for an aggregated feed's origin label. */
6050
- type F0ChatPostCommunity = {
6050
+ interface F0ChatPostCommunity {
6051
6051
  id: string;
6052
6052
  /** As the reader knows it — "Barcelona", "Company news". No `#`. */
6053
6053
  name: string;
6054
- };
6054
+ }
6055
6055
  /** A file attached to a post: the chip is a download link, nothing more. */
6056
- type F0ChatPostAttachment = {
6056
+ interface F0ChatPostAttachment {
6057
6057
  id: string;
6058
6058
  filename: string;
6059
6059
  url: string;
6060
- };
6060
+ }
6061
6061
  /**
6062
6062
  * "Read and acknowledge" — the only action type that exists. A union of one on
6063
6063
  * purpose: the product ships two more as "Coming soon", and a bare string here
6064
6064
  * would let a host send one that nothing renders.
6065
6065
  */
6066
- type F0ChatPostRequiredAction = {
6066
+ interface F0ChatPostRequiredAction {
6067
6067
  type: "acknowledge";
6068
6068
  /** ISO, when the CURRENT user completed it. Absent ⇒ still pending. */
6069
6069
  completedAt?: string;
6070
- };
6070
+ }
6071
6071
  /** Anything that can appear in the transcript, oldest → newest. */
6072
6072
  type F0ChatItem = F0ChatMessage | F0ChatSystemMessage | F0ChatPost | F0ChatCallMessage;
6073
6073
  export declare const isSystemMessage: (item: F0ChatItem) => item is F0ChatSystemMessage;
@@ -6086,14 +6086,14 @@ export declare const isPost: (item: F0ChatItem) => item is F0ChatPost;
6086
6086
  * localized, like {@link F0ChatHeaderAction.label} — F0 never knows which of
6087
6087
  * these the current user is allowed, so the host builds the list per post.
6088
6088
  */
6089
- type F0ChatPostAction = {
6089
+ interface F0ChatPostAction {
6090
6090
  id: string;
6091
6091
  label: string;
6092
6092
  icon?: IconType;
6093
6093
  onClick: (post: F0ChatPost) => void;
6094
6094
  /** Renders the entry in red (delete, report). */
6095
6095
  critical?: boolean;
6096
- };
6096
+ }
6097
6097
  /**
6098
6098
  * What a post composer produces.
6099
6099
  *
@@ -6107,7 +6107,7 @@ type F0ChatPostAction = {
6107
6107
  * the wrong place — and this lets the host publish atomically (upload + create)
6108
6108
  * in one transaction it can roll back whole.
6109
6109
  */
6110
- type F0ChatCreatePostInput = {
6110
+ interface F0ChatCreatePostInput {
6111
6111
  title: string;
6112
6112
  /** Sanitized HTML from the editor. Empty is valid: a headline with a photo
6113
6113
  * is a post. */
@@ -6135,8 +6135,8 @@ type F0ChatCreatePostInput = {
6135
6135
  * field, exactly as the product's own API models them.
6136
6136
  */
6137
6137
  publishedAt?: string | null;
6138
- };
6139
- type F0ChatSendInput = {
6138
+ }
6139
+ interface F0ChatSendInput {
6140
6140
  body: string;
6141
6141
  attachments?: F0ChatComposableAttachment[];
6142
6142
  replyToId?: string;
@@ -6153,30 +6153,30 @@ type F0ChatSendInput = {
6153
6153
  /** Whether the message mentions the whole group (`@here`). The host fans this
6154
6154
  * out to every member so they all get notified. */
6155
6155
  mentionedEveryone?: boolean;
6156
- };
6156
+ }
6157
6157
  /**
6158
6158
  * Unsent text left in a conversation's composer. Same shape as what a send
6159
6159
  * carries, so the host maps it to the transport the same way (factorial →
6160
6160
  * Stream's `channel.createDraft`).
6161
6161
  */
6162
- type F0ChatDraft = {
6162
+ interface F0ChatDraft {
6163
6163
  body: string;
6164
6164
  mentions?: F0ChatMention[];
6165
6165
  mentionedEveryone?: boolean;
6166
- };
6166
+ }
6167
6167
  /**
6168
6168
  * Edits applied to an existing message. Text, mentions and attachments are all
6169
6169
  * editable; the host maps this to the transport's partial-update (factorial →
6170
6170
  * Stream `partialUpdateMessage`).
6171
6171
  */
6172
- type F0ChatEditInput = {
6172
+ interface F0ChatEditInput {
6173
6173
  body: string;
6174
6174
  attachments?: F0ChatComposableAttachment[];
6175
6175
  /** People mentioned in the edited body (groups only). */
6176
6176
  mentions?: F0ChatMention[];
6177
6177
  /** Whether the edited message mentions the whole group (`@here`). */
6178
6178
  mentionedEveryone?: boolean;
6179
- };
6179
+ }
6180
6180
  /**
6181
6181
  * Conversation lifecycle as the host reports it. `connecting` (first load)
6182
6182
  * shows the skeleton and `error` the error state (with a Retry button when
@@ -6219,7 +6219,7 @@ type F0ChatStatus = "connecting" | "ready" | "reconnecting" | "offline" | "error
6219
6219
  * When no action survives, the message shows no menu button and right-click
6220
6220
  * keeps the browser's menu.
6221
6221
  */
6222
- type F0ChatCapabilities = {
6222
+ interface F0ChatCapabilities {
6223
6223
  canSend?: boolean;
6224
6224
  canReply?: boolean;
6225
6225
  canReact?: boolean;
@@ -6234,11 +6234,11 @@ type F0ChatCapabilities = {
6234
6234
  * shown as an upsell if the host also provides `requestTranslationUpsell`.
6235
6235
  */
6236
6236
  canTranslateMessage?: (message: F0ChatMessage) => boolean;
6237
- };
6237
+ }
6238
6238
  /** A message that matched an in-conversation search (room to grow: preview, author…). */
6239
- type F0ChatSearchResult = {
6239
+ interface F0ChatSearchResult {
6240
6240
  id: string;
6241
- };
6241
+ }
6242
6242
  /**
6243
6243
  * A host-provided header action (the only built-in one is Search). Pin/mute,
6244
6244
  * edit-group, leave… are all expressed through this, so each channel can offer
@@ -6246,7 +6246,7 @@ type F0ChatSearchResult = {
6246
6246
  * arrays per channel (or the function form of `headerActions`), and `[]` for a
6247
6247
  * channel where the user can do nothing but search.
6248
6248
  */
6249
- type F0ChatHeaderAction = {
6249
+ interface F0ChatHeaderAction {
6250
6250
  id: string;
6251
6251
  /** Already-localized label. For toggles (mute/unmute) the host rebuilds the
6252
6252
  * array per render with the current label — labels are plain strings. */
@@ -6299,23 +6299,23 @@ type F0ChatHeaderAction = {
6299
6299
  * why. Ignored in the overflow menu and for toggles (`active` set).
6300
6300
  */
6301
6301
  variant?: "default" | "promote";
6302
- };
6302
+ }
6303
6303
  /** The id of the built-in Messages tab, always first and the default. */
6304
6304
  export declare const F0_CHAT_MESSAGES_TAB_ID = "messages";
6305
6305
  /** What a host tab can do with the conversation it sits in. */
6306
- type F0ChatTabContext = {
6306
+ interface F0ChatTabContext {
6307
6307
  channel: F0ChatChannel;
6308
6308
  /** Back to the transcript, e.g. after picking something to answer. */
6309
6309
  showMessages: () => void;
6310
6310
  /** Back to the transcript, scrolled to and highlighting this message. */
6311
6311
  jumpToMessage: (messageId: string) => void;
6312
- };
6312
+ }
6313
6313
  /**
6314
6314
  * A host section of the conversation, shown as a tab next to Messages
6315
6315
  * (meetings, files, members…). F0 only lays it out; what it shows and who gets
6316
6316
  * it is the host's, the same way {@link F0ChatHeaderAction} works.
6317
6317
  */
6318
- type F0ChatTab = {
6318
+ interface F0ChatTab {
6319
6319
  id: string;
6320
6320
  /** Already localized. */
6321
6321
  label: string;
@@ -6326,7 +6326,7 @@ type F0ChatTab = {
6326
6326
  badge?: number;
6327
6327
  /** Mounted only while the tab is active; keyed by conversation. */
6328
6328
  content: ReactNode | ((context: F0ChatTabContext) => ReactNode);
6329
- };
6329
+ }
6330
6330
  /** Why the active tab changed, for hosts that control it. `"content"` is a
6331
6331
  * tab's own `showMessages`, as opposed to a pick from the bar (`"user"`). */
6332
6332
  type F0ChatTabChangeSource = "user" | "content" | "search" | "jump" | "reset" | "fallback";
@@ -6376,7 +6376,7 @@ type F0ChatEmojiSource = "picker" | "autocomplete";
6376
6376
  * Passed to `F0ChatProvider`; the provider keeps the object behind a ref, so it
6377
6377
  * may be rebuilt on every render without re-rendering the transcript.
6378
6378
  */
6379
- type F0ChatEvents = {
6379
+ interface F0ChatEvents {
6380
6380
  onMessageCopied?: (p: {
6381
6381
  messageId: string;
6382
6382
  }) => void;
@@ -6489,7 +6489,7 @@ type F0ChatEvents = {
6489
6489
  /** A scheduled post was opened from the shelf. Its counterpart for pinned
6490
6490
  * posts is `openPost`'s `source: "pinned"`. */
6491
6491
  onScheduledPostOpened?: () => void;
6492
- };
6492
+ }
6493
6493
  /** Sentinel for {@link F0ChatRuntime.loadMessageContext} meaning "the live tail". */
6494
6494
  export declare const LATEST: "latest";
6495
6495
  /**
@@ -6517,7 +6517,7 @@ export declare const LATEST: "latest";
6517
6517
  * dialog shows are all part of what a host configures. An action that merely
6518
6518
  * navigates sets `showConfirmation: false`.
6519
6519
  */
6520
- type F0ChatHistoryLimit = {
6520
+ interface F0ChatHistoryLimit {
6521
6521
  /** Headline. Says what is missing, not what to buy. */
6522
6522
  title: string;
6523
6523
  /** One sentence of context — which window is included, what lies behind it. */
@@ -6526,13 +6526,13 @@ type F0ChatHistoryLimit = {
6526
6526
  icon?: IconType;
6527
6527
  /** The upsell request, whole — see above. */
6528
6528
  action: UpsellingButtonProps;
6529
- };
6529
+ }
6530
6530
  /**
6531
6531
  * The data + actions a host provides to drive the chat UI. F0 is headless: it
6532
6532
  * never touches the transport (GetStream, websockets, …). A mock runtime powers
6533
6533
  * Storybook; factorial implements this against GetStream after the bump.
6534
6534
  */
6535
- type F0ChatRuntime = {
6535
+ interface F0ChatRuntime {
6536
6536
  currentUserId: string;
6537
6537
  channel: F0ChatChannel;
6538
6538
  status: F0ChatStatus;
@@ -6874,10 +6874,10 @@ type F0ChatRuntime = {
6874
6874
  * `channel.state.loadMessageIntoState(id | "latest")`.
6875
6875
  */
6876
6876
  loadMessageContext?: (idOrLatest: string) => Promise<void>;
6877
- };
6877
+ }
6878
6878
  //#endregion
6879
6879
  //#region src/domains/platform/communications/chat/F0Chat/F0Chat.d.ts
6880
- type F0ChatProps = {
6880
+ interface F0ChatProps {
6881
6881
  /**
6882
6882
  * Where the chat is mounted — see {@link F0ChatSurface}. On `"page"` the
6883
6883
  * panel controls below are ignored, not merely unused: a conversation that is
@@ -6967,7 +6967,7 @@ type F0ChatProps = {
6967
6967
  }) => void;
6968
6968
  /** The unread count on the Messages tab, shown whichever tab is active. */
6969
6969
  messagesBadge?: number;
6970
- };
6970
+ }
6971
6971
  /**
6972
6972
  * Headless chat surface — header, transcript and composer — driven entirely by
6973
6973
  * the {@link F0ChatRuntime} from a surrounding `F0ChatProvider`. Panel controls
@@ -7005,10 +7005,10 @@ export declare const F0_CHAT_HEADER_TITLE_SELECTOR = "[data-f0-chat-header-title
7005
7005
  //#endregion
7006
7006
  //#region src/domains/platform/communications/chat/F0Chat/components/ChatHistoryLimitNotice.d.ts
7007
7007
  /** A way out of the card, for hosts that render it somewhere dismissable. */
7008
- type F0ChatHistoryLimitDismissAction = {
7008
+ interface F0ChatHistoryLimitDismissAction {
7009
7009
  label: string;
7010
7010
  onClick: () => void;
7011
- };
7011
+ }
7012
7012
  /**
7013
7013
  * WHAT A CONVERSATION WITH A WITHHELD PAST SAYS FOR ITSELF — the card F0 puts
7014
7014
  * at the top of such a transcript, exported because the host needs THE SAME ONE
@@ -7054,14 +7054,14 @@ export declare const F0ChatHistoryLimitCard: ({ notice, dismissActions }: {
7054
7054
  export declare const F0Meeting: ({ runtime, actions, actionOrder, defaultMode, pictureInPicture, sidePanels, sidePanel, headerContent, overlay, children }: F0MeetingProviderProps) => ReactNode;
7055
7055
  //#endregion
7056
7056
  //#region src/domains/platform/communications/meetings/F0Meeting/F0MeetingRoom.d.ts
7057
- type F0MeetingRoomProps = {
7057
+ interface F0MeetingRoomProps {
7058
7058
  actions?: F0MeetingActionsProp;
7059
7059
  actionOrder?: string[];
7060
7060
  sidePanels?: F0MeetingSidePanelDefinition[];
7061
7061
  /** @deprecated Use `sidePanels`. */
7062
7062
  sidePanel?: F0MeetingSidePanel;
7063
7063
  overlay?: React.ReactNode;
7064
- };
7064
+ }
7065
7065
  /**
7066
7066
  * The room itself: grid, controls and state chrome. It knows nothing about the
7067
7067
  * window that hosts it — the surface owns position, size and mode, exactly as
@@ -7145,7 +7145,7 @@ export declare const MeetingPanelContent: () => ReactNode;
7145
7145
  *
7146
7146
  * The action callbacks are identity-stable delegates into the latest runtime.
7147
7147
  */
7148
- type F0MeetingStable = {
7148
+ interface F0MeetingStable {
7149
7149
  roomId: string;
7150
7150
  localParticipantId: string;
7151
7151
  capabilities?: F0MeetingCapabilities;
@@ -7170,9 +7170,9 @@ type F0MeetingStable = {
7170
7170
  removeParticipant: (participantId: string) => void;
7171
7171
  reconnect: () => void;
7172
7172
  leave: () => void;
7173
- };
7173
+ }
7174
7174
  /** The roster slice: changes on join/leave/publish, not on every packet. */
7175
- type F0MeetingRoster = {
7175
+ interface F0MeetingRoster {
7176
7176
  room: F0MeetingRoomInfo;
7177
7177
  status: F0MeetingStatus;
7178
7178
  participants: F0MeetingParticipant[];
@@ -7180,7 +7180,7 @@ type F0MeetingRoster = {
7180
7180
  recording?: F0MeetingRecording;
7181
7181
  transcription?: F0MeetingTranscription;
7182
7182
  signals?: F0MeetingSignalStore;
7183
- };
7183
+ }
7184
7184
  /**
7185
7185
  * Makes a {@link F0MeetingRuntime} available to the meeting UI. The host owns
7186
7186
  * the runtime (a mock in stories, a LiveKit adapter in factorial); F0 only
@@ -7214,7 +7214,7 @@ export declare const useF0MeetingStable: () => F0MeetingStable;
7214
7214
  export declare const useF0MeetingRoster: () => F0MeetingRoster;
7215
7215
  //#endregion
7216
7216
  //#region src/domains/platform/communications/meetings/F0Meeting/components/reactions/reaction-flights.d.ts
7217
- type ReactionFlight = {
7217
+ interface ReactionFlight {
7218
7218
  /** `participantId:id`, so one sender cannot reuse another's ids. */
7219
7219
  key: string;
7220
7220
  emoji: string;
@@ -7225,19 +7225,19 @@ type ReactionFlight = {
7225
7225
  receivedAt: number;
7226
7226
  /** 0–1, a stable horizontal offset so a burst fans out. */
7227
7227
  drift: number;
7228
- };
7229
- type ReactionFlightStore = {
7228
+ }
7229
+ interface ReactionFlightStore {
7230
7230
  ingest: (reactions: readonly F0MeetingReaction[] | undefined, participants: readonly F0MeetingParticipant[], now?: number) => ReactionFlight[];
7231
7231
  getSnapshot: () => readonly ReactionFlight[];
7232
7232
  subscribe: (listener: () => void) => () => void;
7233
7233
  prune: (now?: number) => void;
7234
- };
7234
+ }
7235
7235
  //#endregion
7236
7236
  //#region src/domains/platform/communications/meetings/F0Meeting/window/placement.d.ts
7237
- type Viewport = {
7237
+ interface Viewport {
7238
7238
  width: number;
7239
7239
  height: number;
7240
- };
7240
+ }
7241
7241
  /**
7242
7242
  * Resolves an anchored placement into an absolute rect, clamped into the
7243
7243
  * current viewport. Anchoring to a corner (rather than storing x/y) is what
@@ -7320,13 +7320,13 @@ type PipSupport = "document" | "video" | "none";
7320
7320
  //#endregion
7321
7321
  //#region src/domains/platform/communications/meetings/F0Meeting/window/useWindowDrag.d.ts
7322
7322
  /** A resize started somewhere else (full screen) that this window takes over. */
7323
- type AdoptedGesture = {
7323
+ interface AdoptedGesture {
7324
7324
  pointerId: number;
7325
7325
  startX: number;
7326
7326
  startY: number;
7327
7327
  origin: F0Rect;
7328
7328
  handle: ResizeHandleId;
7329
- };
7329
+ }
7330
7330
  //#endregion
7331
7331
  //#region src/domains/platform/communications/meetings/F0Meeting/providers/MeetingSurfaceProvider.d.ts
7332
7332
  /**
@@ -7335,10 +7335,11 @@ type AdoptedGesture = {
7335
7335
  * open anything: the user is busy with whatever caused it.
7336
7336
  */
7337
7337
  type MeetingModeCause = "user" | "host";
7338
+ type PanelSide = "left" | "right";
7338
7339
  type SetMeetingMode = (mode: F0MeetingSurfaceDestination, options?: {
7339
7340
  cause?: MeetingModeCause;
7340
7341
  }) => void;
7341
- type MeetingSurfaceContextValue = {
7342
+ interface MeetingSurfaceContextValue {
7342
7343
  /** What the user chose. Never mutated by the environment. */
7343
7344
  mode: F0MeetingSurfaceDestination;
7344
7345
  /**
@@ -7380,9 +7381,9 @@ type MeetingSurfaceContextValue = {
7380
7381
  * draws the panel with the side it actually docks to, so the control shows
7381
7382
  * where the call is going rather than a generic panel that could be either.
7382
7383
  */
7383
- panelSide: "left" | "right" | null;
7384
+ panelSide: PanelSide | null;
7384
7385
  /** `null` retires the slot; a side registers one. */
7385
- setPanelSlot: (side: "left" | "right" | null) => void;
7386
+ setPanelSlot: (side: PanelSide | null) => void;
7386
7387
  /** How wide the docked panel is, so a window dragged to its edge can preview it. */
7387
7388
  panelSlotWidth: number | null;
7388
7389
  setPanelSlotWidth: (width: number | null) => void;
@@ -7471,7 +7472,7 @@ type MeetingSurfaceContextValue = {
7471
7472
  * element to hand to the browser.
7472
7473
  */
7473
7474
  registerVideo: (key: string, element: HTMLVideoElement | null) => void;
7474
- };
7475
+ }
7475
7476
  export declare const MeetingSurfaceProvider: ({ defaultMode, roomId, pictureInPicture, children }: {
7476
7477
  defaultMode?: F0MeetingSurfaceDestination;
7477
7478
  /** Scopes the remembered mode. A different meeting starts at `defaultMode`. */
@@ -7552,7 +7553,7 @@ export declare const useTrackBinding: <T extends HTMLMediaElement>(track: F0Meet
7552
7553
  * the row, so leaving and muting are still there.
7553
7554
  */
7554
7555
  type SidePanelLayout$1 = "beside" | "over" | "full";
7555
- type SidePanelPlan = {
7556
+ interface SidePanelPlan {
7556
7557
  layout: SidePanelLayout$1;
7557
7558
  /** The width to draw, already clamped. `full` reports the room's own. */
7558
7559
  width: number;
@@ -7560,10 +7561,10 @@ type SidePanelPlan = {
7560
7561
  max: number;
7561
7562
  /** A handle that cannot travel is worse than no handle. */
7562
7563
  canResize: boolean;
7563
- };
7564
+ }
7564
7565
  //#endregion
7565
7566
  //#region src/domains/platform/communications/meetings/F0Meeting/components/panel/MeetingSidePanel.d.ts
7566
- type MeetingSidePanelProps = {
7567
+ interface MeetingSidePanelProps {
7567
7568
  panel: F0MeetingSidePanelDefinition;
7568
7569
  /** Where it sits and how wide, decided by `planSidePanel` from the room. */
7569
7570
  plan: SidePanelPlan;
@@ -7577,7 +7578,7 @@ type MeetingSidePanelProps = {
7577
7578
  variant?: "room" | "split" | "cover";
7578
7579
  /** Side by side, it reaches down beside the bar to the room's bottom margin. */
7579
7580
  besideBar?: boolean;
7580
- };
7581
+ }
7581
7582
  /**
7582
7583
  * One of the room's panels: beside the grid in full screen, sharing the call
7583
7584
  * with the people in a window or the side panel, or covering them when there is
@@ -7599,16 +7600,16 @@ type MeetingSidePanelProps = {
7599
7600
  export declare const MeetingSidePanel: ({ panel, plan, variant, besideBar }: MeetingSidePanelProps) => import("react").JSX.Element | null;
7600
7601
  //#endregion
7601
7602
  //#region src/domains/platform/communications/meetings/F0Meeting/components/panel/MeetingRoomChat.d.ts
7602
- type MeetingRoomChatMessage = {
7603
+ interface MeetingRoomChatMessage {
7603
7604
  id: string;
7604
7605
  participantId: string;
7605
7606
  text: string;
7606
7607
  at: string;
7607
- };
7608
- type MeetingRoomChatProps = {
7608
+ }
7609
+ interface MeetingRoomChatProps {
7609
7610
  messages: MeetingRoomChatMessage[];
7610
7611
  onSend: (text: string) => void;
7611
- };
7612
+ }
7612
7613
  /**
7613
7614
  * The call's own chat, for the room's side panel.
7614
7615
  *
@@ -7620,14 +7621,14 @@ type MeetingRoomChatProps = {
7620
7621
  export declare const MeetingRoomChat: ({ messages, onSend }: MeetingRoomChatProps) => import("react").JSX.Element;
7621
7622
  //#endregion
7622
7623
  //#region src/domains/platform/communications/meetings/F0Meeting/components/panel/MeetingTranscript.d.ts
7623
- type MeetingTranscriptProps = {
7624
+ interface MeetingTranscriptProps {
7624
7625
  segments: F0MeetingTranscriptSegment[];
7625
7626
  /**
7626
7627
  * Stretches that were not transcribed. Each one is drawn where it happened,
7627
7628
  * so a gap in the transcript reads as a pause and not as silence.
7628
7629
  */
7629
7630
  pauses?: F0MeetingTranscriptPause[];
7630
- };
7631
+ }
7631
7632
  /**
7632
7633
  * Live transcription, newest at the bottom.
7633
7634
  *
@@ -7646,11 +7647,11 @@ export declare const MeetingTranscript: ({ segments, pauses }: MeetingTranscript
7646
7647
  export declare const MeetingParticipants: () => import("react").JSX.Element;
7647
7648
  //#endregion
7648
7649
  //#region src/domains/platform/communications/meetings/F0Meeting/components/panel/MeetingNotes.d.ts
7649
- type MeetingNotesProps = {
7650
+ interface MeetingNotesProps {
7650
7651
  value: string;
7651
7652
  /** Absent means read-only: the notes exist but this person cannot edit them. */
7652
7653
  onChange?: (value: string) => void;
7653
- };
7654
+ }
7654
7655
  /**
7655
7656
  * Shared notes for the room.
7656
7657
  *
@@ -7661,7 +7662,7 @@ type MeetingNotesProps = {
7661
7662
  export declare const MeetingNotes: ({ value, onChange }: MeetingNotesProps) => import("react").JSX.Element;
7662
7663
  //#endregion
7663
7664
  //#region src/domains/platform/communications/meetings/F0Meeting/layout/grid-solver.d.ts
7664
- type GridSolverInput = {
7665
+ interface GridSolverInput {
7665
7666
  count: number;
7666
7667
  width: number;
7667
7668
  height: number;
@@ -7692,14 +7693,14 @@ type GridSolverInput = {
7692
7693
  * the best it is kept, so a resize across a tie does not flip the room.
7693
7694
  */
7694
7695
  heldRows?: number;
7695
- };
7696
+ }
7696
7697
  /** One row of the grid. Rows may hold different counts, so also different widths. */
7697
- type GridRow = {
7698
+ interface GridRow {
7698
7699
  count: number;
7699
7700
  tileWidth: number;
7700
7701
  tileHeight: number;
7701
- };
7702
- type GridSolution = {
7702
+ }
7703
+ interface GridSolution {
7703
7704
  rows: number;
7704
7705
  /** Widest row's tile count. */
7705
7706
  cols: number;
@@ -7711,7 +7712,7 @@ type GridSolution = {
7711
7712
  rowSpecs: GridRow[];
7712
7713
  /** Σ tile areas: how much of the container the layout actually covers. */
7713
7714
  totalArea: number;
7714
- };
7715
+ }
7715
7716
  /**
7716
7717
  * Picks the row split for the most people the floors admit, each row filling
7717
7718
  * the container's width on its own.
@@ -7745,7 +7746,7 @@ export declare const layoutGrid: (solution: GridSolution, box: {
7745
7746
  }, gap: number) => F0Rect[];
7746
7747
  //#endregion
7747
7748
  //#region src/domains/platform/communications/meetings/F0Meeting/layout/spotlight-solver.d.ts
7748
- type SpotlightSolverInput = {
7749
+ interface SpotlightSolverInput {
7749
7750
  /** Participants that are NOT the spotlight. */
7750
7751
  stripCount: number;
7751
7752
  width: number;
@@ -7772,14 +7773,14 @@ type SpotlightSolverInput = {
7772
7773
  min: number;
7773
7774
  max: number;
7774
7775
  };
7775
- };
7776
- type SpotlightSolution = {
7776
+ }
7777
+ interface SpotlightSolution {
7777
7778
  spotlight: F0Rect;
7778
7779
  strip: F0Rect[];
7779
7780
  /** Thumbnails that did not fit, for the "+N" chip. */
7780
7781
  stripOverflow: number;
7781
7782
  stripSide: "bottom" | "right" | "none";
7782
- };
7783
+ }
7783
7784
  /**
7784
7785
  * Spotlight plus a thumbnail strip. The strip is a PROPORTION of the container
7785
7786
  * rather than a fixed height: the previous implementation hard-coded 125px,
@@ -7793,14 +7794,14 @@ export declare const solveSpotlight: ({ stripCount, width, height, gap, stripRan
7793
7794
  * is off) plus one per screen share, so a participant who is sharing occupies
7794
7795
  * two tiles — the same behaviour as every other call product.
7795
7796
  */
7796
- type F0MeetingTile = {
7797
+ interface F0MeetingTile {
7797
7798
  /** `${participantId}:${kind}` — stable across re-solves. */
7798
7799
  key: string;
7799
7800
  participant: F0MeetingParticipant;
7800
7801
  kind: Extract<F0MeetingTrackKind, "camera" | "screenShare">;
7801
7802
  /** Undefined when nothing is published: the tile renders the avatar. */
7802
7803
  track?: F0MeetingTrack;
7803
- };
7804
+ }
7804
7805
  export declare const tileKey: (participantId: string, kind: string) => string;
7805
7806
  /**
7806
7807
  * Flattens the roster into tiles: shares, then everyone else, then you.
@@ -7821,7 +7822,7 @@ export declare const buildTiles: (participants: F0MeetingParticipant[]) => F0Mee
7821
7822
  export declare const tileAspectRatio: (tile: F0MeetingTile, fallback: number) => number;
7822
7823
  //#endregion
7823
7824
  //#region src/domains/platform/communications/meetings/F0Meeting/layout/auto-focus.d.ts
7824
- type AutoFocusInput = {
7825
+ interface AutoFocusInput {
7825
7826
  tiles: F0MeetingTile[];
7826
7827
  /** What the user asked for, if anything. */
7827
7828
  intent: F0MeetingFocusIntent;
@@ -7833,14 +7834,14 @@ type AutoFocusInput = {
7833
7834
  * column with your own camera as a strip under it.
7834
7835
  */
7835
7836
  portrait?: boolean;
7836
- };
7837
- type AutoFocusResult = {
7837
+ }
7838
+ interface AutoFocusResult {
7838
7839
  focusKey: string | null;
7839
7840
  /** Share keys to remember as already auto-focused. */
7840
7841
  seenShareKeys: ReadonlySet<string>;
7841
7842
  /** True when the stored intent no longer matches a live tile. */
7842
7843
  clearIntent: boolean;
7843
- };
7844
+ }
7844
7845
  /**
7845
7846
  * Decides which tile is spotlighted. Pure, so every branch is a unit test.
7846
7847
  *
@@ -7855,7 +7856,7 @@ type AutoFocusResult = {
7855
7856
  export declare const resolveAutoFocus: ({ tiles, intent, seenShareKeys, portrait }: AutoFocusInput) => AutoFocusResult;
7856
7857
  //#endregion
7857
7858
  //#region src/domains/platform/communications/meetings/F0Meeting/layout/speaker-order.d.ts
7858
- type SpeakerOrderInput = {
7859
+ interface SpeakerOrderInput {
7859
7860
  tiles: F0MeetingTile[];
7860
7861
  /** Participants currently speaking. */
7861
7862
  speakerIds: readonly string[];
@@ -7867,7 +7868,7 @@ type SpeakerOrderInput = {
7867
7868
  now: number;
7868
7869
  /** A visible tile is only displaced after being quiet this long. */
7869
7870
  holdMs: number;
7870
- };
7871
+ }
7871
7872
  /**
7872
7873
  * Promotes off-page speakers into the visible page, replacing the tile that has
7873
7874
  * been quiet the longest rather than the first one — swapping into slot 0 makes
@@ -7916,7 +7917,7 @@ declare const buttonToggleGroupSizes: readonly ["sm", "md", "lg"];
7916
7917
  type ButtonToggleGroupSize = (typeof buttonToggleGroupSizes)[number];
7917
7918
  //#endregion
7918
7919
  //#region src/domains/platform/home/Home/F0ENPSButton/types.d.ts
7919
- type F0ENPSButtonProps = {
7920
+ interface F0ENPSButtonProps {
7920
7921
  /**
7921
7922
  * The face that is answered, or `undefined` while the question is unanswered.
7922
7923
  */
@@ -7969,7 +7970,7 @@ type F0ENPSButtonProps = {
7969
7970
  * @default false
7970
7971
  */
7971
7972
  required?: boolean;
7972
- };
7973
+ }
7973
7974
  //#endregion
7974
7975
  //#region src/domains/platform/home/Home/F0ENPSButton/F0ENPSButton.d.ts
7975
7976
  declare function F0ENPSButtonComponent({ value, onChange, labels, icons, size, fullWidth, disabled, required }: F0ENPSButtonProps): import("react").JSX.Element;
@@ -8193,20 +8194,6 @@ interface AreaChartWidgetProps extends ComposeChartContainerProps<AreaChartProps
8193
8194
  canBeBlurred?: boolean;
8194
8195
  }
8195
8196
  //#endregion
8196
- //#region src/addons/charts/Charts/BarChart/BarChart.d.ts
8197
- type ChartDataPoint$1<K extends ChartConfig> = {
8198
- label: string;
8199
- values: { [key in keyof K]: number; };
8200
- };
8201
- type BarChartProps<K extends ChartConfig = ChartConfig> = ChartPropsBase<K> & {
8202
- type?: "simple" | "stacked" | "stacked-by-sign";
8203
- label?: boolean;
8204
- legend?: boolean;
8205
- showValueUnderLabel?: boolean;
8206
- highlightLastBar?: boolean;
8207
- onClick?: (data: ChartDataPoint$1<K>) => void;
8208
- };
8209
- //#endregion
8210
8197
  //#region src/addons/charts/Charts/LineChart/LineChart.d.ts
8211
8198
  type LineChartProps<K extends LineChartConfig = LineChartConfig> = LineChartPropsBase<K> & {
8212
8199
  lineType?: "natural" | "linear";
@@ -8214,7 +8201,7 @@ type LineChartProps<K extends LineChartConfig = LineChartConfig> = LineChartProp
8214
8201
  //#endregion
8215
8202
  //#region src/addons/charts/Charts/VerticalBarChart/VerticalBarChart.d.ts
8216
8203
  type ValueFormatter = (value: string | number | undefined) => string | number;
8217
- type VerticalBarChartProps<K extends ChartConfig$1 = ChartConfig$1> = ChartPropsBase<K> & {
8204
+ type VerticalBarChartProps<K extends ChartConfig = ChartConfig> = ChartPropsBase<K> & {
8218
8205
  label?: boolean;
8219
8206
  showRatio?: boolean;
8220
8207
  valueFormatter?: ValueFormatter;
@@ -8291,11 +8278,11 @@ declare const ChartWidgetEmptyState$1: WithDataTestIdReturnType<import("react").
8291
8278
  export declare const ChartWidgetEmptyState: typeof ChartWidgetEmptyState$1;
8292
8279
  //#endregion
8293
8280
  //#region src/blocks/Widgets/Content/CalendarEvent/CalendarEvent.d.ts
8294
- type Tag = {
8281
+ interface Tag {
8295
8282
  icon: IconType;
8296
8283
  label?: string;
8297
8284
  description?: string;
8298
- };
8285
+ }
8299
8286
  export declare const calendarEventVariants: readonly ["default", "prominent"];
8300
8287
  export type CalendarEventVariant = (typeof calendarEventVariants)[number];
8301
8288
  export interface CalendarEventProps {
@@ -8343,13 +8330,13 @@ export interface CalendarEventListProps {
8343
8330
  export declare const CalendarEventList: FC<CalendarEventListProps>;
8344
8331
  //#endregion
8345
8332
  //#region src/blocks/Widgets/Content/Highlights/WidgetHighlightButton/WidgetHighlightButton.d.ts
8346
- type Props$3 = {
8333
+ interface Props$3 {
8347
8334
  label: string;
8348
8335
  icon: IconType;
8349
8336
  iconClassName?: string;
8350
8337
  count: number;
8351
8338
  onClick?: () => void;
8352
- };
8339
+ }
8353
8340
  declare function WidgetHighlightButton$1({ label, count, icon, iconClassName, onClick }: Props$3): import("react").JSX.Element;
8354
8341
  //#endregion
8355
8342
  //#region src/blocks/Widgets/Content/Highlights/exports.d.ts
@@ -8403,13 +8390,13 @@ declare function WidgetAvatarsListItem$1({ id, title, subtitle, avatars, remaini
8403
8390
  export declare const WidgetAvatarsListItem: typeof WidgetAvatarsListItem$1;
8404
8391
  //#endregion
8405
8392
  //#region src/blocks/Widgets/Content/ListItems/WidgetInboxListItem/WidgetInboxListItem.d.ts
8406
- type Props$2<Id extends string | number = string | number> = {
8393
+ interface Props$2<Id extends string | number = string | number> {
8407
8394
  id: Id;
8408
8395
  module?: ModuleId;
8409
8396
  title: string;
8410
8397
  subtitle: string;
8411
8398
  onClick?: (id: Id) => void;
8412
- };
8399
+ }
8413
8400
  type WidgetInboxListItemProps<Id extends string | number = string | number> = Props$2<Id>;
8414
8401
  declare function WidgetInboxListItem$1({ id, title, subtitle, onClick, module }: Props$2): import("react").JSX.Element;
8415
8402
  //#endregion
@@ -8422,7 +8409,7 @@ declare function WidgetInboxListItem$1({ id, title, subtitle, onClick, module }:
8422
8409
  export declare const WidgetInboxListItem: typeof WidgetInboxListItem$1;
8423
8410
  //#endregion
8424
8411
  //#region src/blocks/Widgets/Content/ListItems/WidgetSimpleListItem/WidgetSimpleListItem.d.ts
8425
- type WidgetSimpleListItemProps<Id extends string | number = string | number> = {
8412
+ interface WidgetSimpleListItemProps<Id extends string | number = string | number> {
8426
8413
  id: Id;
8427
8414
  title: string;
8428
8415
  icon?: IconType;
@@ -8433,7 +8420,7 @@ type WidgetSimpleListItemProps<Id extends string | number = string | number> = {
8433
8420
  alert?: ComponentProps<typeof F0TagAlert>;
8434
8421
  rawTag?: ComponentProps<typeof F0TagRaw>;
8435
8422
  onClick?: (id: Id) => void;
8436
- };
8423
+ }
8437
8424
  declare function WidgetSimpleListItem$1({ id, title, alert, rawTag, count, icon, rightIcon, iconClassName, rightIconClassName, onClick }: WidgetSimpleListItemProps): import("react").JSX.Element;
8438
8425
  //#endregion
8439
8426
  //#region src/blocks/Widgets/Content/ListItems/WidgetSimpleListItem/index.d.ts
@@ -8498,13 +8485,13 @@ declare function WidgetInboxList$1({ items, minSize, onClickItem, showAllItems,
8498
8485
  export declare const WidgetInboxList: typeof WidgetInboxList$1;
8499
8486
  //#endregion
8500
8487
  //#region src/blocks/Widgets/Content/Lists/WidgetSimpleList/WidgetSimpleList.d.ts
8501
- type Props<Id extends string | number = string | number> = {
8488
+ interface Props<Id extends string | number = string | number> {
8502
8489
  items: Omit<WidgetSimpleListItemProps<Id>, "onClick">[];
8503
8490
  minSize?: number;
8504
8491
  gap?: number;
8505
8492
  onClickItem?: (id: Id) => void;
8506
8493
  showAllItems?: boolean;
8507
- };
8494
+ }
8508
8495
  type WidgetSimpleListProps = Props;
8509
8496
  declare function WidgetSimpleList$1({ items, gap, minSize, onClickItem, showAllItems }: Props): import("react").JSX.Element;
8510
8497
  //#endregion
@@ -8553,13 +8540,13 @@ export declare function CategoryBarSection({ title, subtitle, data, helpText, le
8553
8540
  * into directly. The icon is usually only worth setting at the top (Office, Home,
8554
8541
  * Business trip) — deeper levels inherit the nearest one above them.
8555
8542
  */
8556
- type ClockInLocation = {
8543
+ interface ClockInLocation {
8557
8544
  id: string;
8558
8545
  name: string;
8559
8546
  icon?: IconType;
8560
8547
  /** The level below. When present, this location itself is not selectable. */
8561
8548
  sublocations?: ClockInLocation[];
8562
- };
8549
+ }
8563
8550
  //#endregion
8564
8551
  //#region src/domains/platform/home/Home/ClockIn/ClockInControls/ProjectSelector.d.ts
8565
8552
  /**
@@ -8571,12 +8558,12 @@ type ClockInLocation = {
8571
8558
  * picker show the hierarchy with F0Select's own group headings rather than an
8572
8559
  * invented indent — a parent is a heading, not an option.
8573
8560
  */
8574
- type ClockInProject = {
8561
+ interface ClockInProject {
8575
8562
  id: string;
8576
8563
  name: string;
8577
8564
  /** The level below. When present, the parent itself is not selectable. */
8578
8565
  subprojects?: ClockInProject[];
8579
- };
8566
+ }
8580
8567
  //#endregion
8581
8568
  //#region src/domains/platform/home/Home/ClockIn/ClockInGraph/types.d.ts
8582
8569
  type ClockInStatus = "clocked-in" | "break" | "clocked-out";
@@ -8798,42 +8785,8 @@ export interface TasksListProps {
8798
8785
  }
8799
8786
  export declare function TasksList({ tasks, onClickTask, hideIcons, maxTasksToShow, emptyMessage }: TasksListProps): import("react").JSX.Element;
8800
8787
  //#endregion
8801
- //#region src/addons/charts/Charts/ComboChart/ComboChart.d.ts
8802
- type ChartDataPoint<K extends ChartConfig> = {
8803
- label: string;
8804
- values: { [key in keyof K]: number; };
8805
- };
8806
- type ChartTypeConfig<K extends ChartConfig> = {
8807
- categories: keyof K | (keyof K)[];
8808
- axisLabel?: string;
8809
- hideAxis?: boolean;
8810
- axisPosition?: "left" | "right";
8811
- };
8812
- type BarChartTypeConfig<K extends ChartConfig> = ChartTypeConfig<K> & {
8813
- /**
8814
- * How multiple bar categories are laid out: side by side ("simple", the
8815
- * default), stacked into a single bar ("stacked"), or stacked with negative
8816
- * values hanging below the zero line ("stacked-by-sign"). Mirrors BarChart's
8817
- * `type` prop.
8818
- */
8819
- type?: "simple" | "stacked" | "stacked-by-sign";
8820
- };
8821
- type LineChartTypeConfig<K extends ChartConfig> = ChartTypeConfig<K> & {
8822
- dot?: boolean;
8823
- lineType?: "natural" | "linear";
8824
- };
8825
- type ComboChartProps<K extends ChartConfig = ChartConfig> = ChartPropsBase<K> & {
8826
- label?: boolean;
8827
- legend?: boolean;
8828
- showValueUnderLabel?: boolean;
8829
- bar?: BarChartTypeConfig<K>;
8830
- line?: LineChartTypeConfig<K>;
8831
- scatter?: ChartTypeConfig<K>;
8832
- onClick?: (data: ChartDataPoint<K>) => void;
8833
- };
8834
- //#endregion
8835
8788
  //#region src/addons/charts/Charts/ProgressChart/ProgressChart.d.ts
8836
- type ProgressBarProps<K extends ChartConfig$1 = ChartConfig$1> = Partial<ChartPropsBase<K>> & {
8789
+ type ProgressBarProps<K extends ChartConfig = ChartConfig> = Partial<ChartPropsBase<K>> & {
8837
8790
  value: number;
8838
8791
  max?: number;
8839
8792
  label?: string;
@@ -9000,13 +8953,13 @@ type ListTextVariant = "default" | "warning" | "critical";
9000
8953
  * likely to vanish into the ellipsis. Marking a part critical claims it is the
9001
8954
  * most important thing on the line; leading with it makes that claim true.
9002
8955
  */
9003
- type DescriptionPart = {
8956
+ interface DescriptionPart {
9004
8957
  text: string;
9005
8958
  /** How THIS part reads; muted by default. */
9006
8959
  variant?: ListTextVariant;
9007
8960
  /** @deprecated Use `variant: "critical"`. Read only when `variant` is not set. */
9008
8961
  critical?: boolean;
9009
- };
8962
+ }
9010
8963
  //#endregion
9011
8964
  //#region src/domains/platform/home/Home/slotRenderers.d.ts
9012
8965
  /**
@@ -9190,7 +9143,7 @@ type ListClickData<C> = C extends "link" ? {
9190
9143
  * What a row may say ABOUT its subtitle — offered by every schema that declares
9191
9144
  * a subtitle at all, required by none of them.
9192
9145
  */
9193
- type SubtitleTone = {
9146
+ interface SubtitleTone {
9194
9147
  /**
9195
9148
  * How THIS row's subtitle reads: muted by default, `warning` when the row
9196
9149
  * asks for attention soon (due today, due tomorrow), `critical` when it is
@@ -9204,7 +9157,7 @@ type SubtitleTone = {
9204
9157
  subtitleVariant?: ListTextVariant;
9205
9158
  /** @deprecated Use `subtitleVariant: "critical"`. Read only when `subtitleVariant` is not set. */
9206
9159
  subtitleCritical?: boolean;
9207
- };
9160
+ }
9208
9161
  /**
9209
9162
  * A row's SECOND LINE, in either of the two forms it may take.
9210
9163
  *
@@ -9506,7 +9459,7 @@ export type RailActionTone = (typeof railActionTones)[number];
9506
9459
  * (`action`) is where a widget's call to action belongs, and stacked (below `md`)
9507
9460
  * there is no glyph to put it on.
9508
9461
  */
9509
- export type HomeWidgetRailAction = {
9462
+ export interface HomeWidgetRailAction {
9510
9463
  /** The action's own glyph — `Play` to resume, `Pause` for a running timer. */
9511
9464
  icon: IconType;
9512
9465
  /**
@@ -9570,7 +9523,7 @@ export type HomeWidgetRailAction = {
9570
9523
  * the glyph simply stays the button.
9571
9524
  */
9572
9525
  flashing?: boolean;
9573
- };
9526
+ }
9574
9527
  /**
9575
9528
  * A widget as handed to the layout: header + an ordered list of slots.
9576
9529
  *
@@ -9750,12 +9703,12 @@ type HomeWidgetActionKind = "header-link" | "footer-action" | "view-more";
9750
9703
  * Payload for `tracking.onWidgetAction`. The widget is named by the id the host
9751
9704
  * gave it, which is the key to everything else the host already knows about it.
9752
9705
  */
9753
- type HomeWidgetActionEvent = {
9706
+ interface HomeWidgetActionEvent {
9754
9707
  widgetId: string;
9755
9708
  action: HomeWidgetActionKind;
9756
- };
9709
+ }
9757
9710
  /** Payload for `tracking.onWidgetItemActivate`. */
9758
- type HomeWidgetItemActivateEvent = {
9711
+ interface HomeWidgetItemActivateEvent {
9759
9712
  widgetId: string;
9760
9713
  /** The row's own id, as the slot was given it. */
9761
9714
  itemId: string | number;
@@ -9765,8 +9718,8 @@ type HomeWidgetItemActivateEvent = {
9765
9718
  * which is the one position worth reporting.
9766
9719
  */
9767
9720
  itemPosition: number;
9768
- };
9769
- type HomeTrackingOptions = {
9721
+ }
9722
+ interface HomeTrackingOptions {
9770
9723
  /** A widget's header link, footer action, or "View more" was used. */
9771
9724
  onWidgetAction?: (event: HomeWidgetActionEvent) => void;
9772
9725
  /**
@@ -9775,7 +9728,7 @@ type HomeTrackingOptions = {
9775
9728
  * or a modified click still behaves like the link it is.
9776
9729
  */
9777
9730
  onWidgetItemActivate?: (event: HomeWidgetItemActivateEvent) => void;
9778
- };
9731
+ }
9779
9732
  //#endregion
9780
9733
  //#region src/domains/platform/home/Home/WidgetContainer/useWidgetVirtualizer.d.ts
9781
9734
  /**
@@ -10951,9 +10904,9 @@ export declare const AGENTIC_HOME_SPEC_VERSION = 1;
10951
10904
  /** An f0 app icon, by its export name ("Calendar", "Clock", …). */
10952
10905
  type AgenticHomeIcon = keyof typeof index_d_exports;
10953
10906
  type AgenticHomeJsonValue = string | number | boolean | null | AgenticHomeJsonValue[] | AgenticHomeJsonObject;
10954
- type AgenticHomeJsonObject = {
10907
+ interface AgenticHomeJsonObject {
10955
10908
  [key: string]: AgenticHomeJsonValue;
10956
- };
10909
+ }
10957
10910
  //#endregion
10958
10911
  //#region src/domains/platform/home/Home/F0AgenticHome/types/actions.d.ts
10959
10912
  /**
@@ -12316,18 +12269,18 @@ export declare function WidgetCatalog({ isOpen, onClose, widgets, onAdd, groups,
12316
12269
  //#endregion
12317
12270
  //#region src/domains/platform/home/WidgetsLayout/Dashboard/Dashboard.d.ts
12318
12271
  type WidgetWidth = "sm" | "md" | "lg";
12319
- type DashboardProps$1 = {
12272
+ interface DashboardProps$1 {
12320
12273
  widgetWidth?: WidgetWidth;
12321
12274
  children?: ReactNode[];
12322
- };
12275
+ }
12323
12276
  export declare const Dashboard: import("react").ForwardRefExoticComponent<DashboardProps$1 & import("react").RefAttributes<HTMLDivElement>> & {
12324
12277
  Skeleton: () => import("react").JSX.Element;
12325
12278
  };
12326
12279
  //#endregion
12327
12280
  //#region src/domains/platform/home/WidgetsLayout/WidgetStrip/WidgetStrip.d.ts
12328
- type DashboardProps = {
12281
+ interface DashboardProps {
12329
12282
  children: ReactNode[];
12330
- };
12283
+ }
12331
12284
  export declare const WidgetStrip: import("react").ForwardRefExoticComponent<DashboardProps & import("react").RefAttributes<HTMLDivElement>> & {
12332
12285
  Skeleton: () => import("react").JSX.Element;
12333
12286
  };
@@ -12341,18 +12294,18 @@ export declare const WidgetStrip: import("react").ForwardRefExoticComponent<Dash
12341
12294
  export declare const Widget: typeof Widget$1;
12342
12295
  //#endregion
12343
12296
  //#region src/blocks/Widgets/WidgetEmptyState/WidgetEmptyState.d.ts
12344
- type Action = {
12297
+ interface Action {
12345
12298
  label: string;
12346
12299
  onClick: () => void;
12347
12300
  icon?: IconType;
12348
12301
  variant?: "default" | "outline" | "promote";
12349
- };
12350
- type WidgetEmptyStateProps = {
12302
+ }
12303
+ interface WidgetEmptyStateProps {
12351
12304
  title: string;
12352
12305
  description: string;
12353
12306
  emoji?: string;
12354
12307
  actions?: Action[];
12355
- };
12308
+ }
12356
12309
  declare function _WidgetEmptyState({ title, description, emoji, actions }: WidgetEmptyStateProps): import("react").JSX.Element;
12357
12310
  /**
12358
12311
  * @experimental This is an experimental component use it at your own risk
@@ -12378,12 +12331,12 @@ export declare const WidgetSection: WithDataTestIdReturnType<import("react").For
12378
12331
  } & import("react").RefAttributes<HTMLDivElement>>>;
12379
12332
  //#endregion
12380
12333
  //#region src/elements/OneRestrictComponent/OneRestrictComponent.d.ts
12381
- type RestrictComponentProps = {
12334
+ interface RestrictComponentProps {
12382
12335
  identifier: string;
12383
12336
  allowedRoutes?: string[];
12384
12337
  disallowedRoutes?: string[];
12385
12338
  children: React.ReactNode;
12386
- };
12339
+ }
12387
12340
  export declare const OneRestrictComponent: FC<RestrictComponentProps>;
12388
12341
  //#endregion
12389
12342
  //#region src/facade/experimental/exports.d.ts