@factorialco/f0-react 12.6.0 → 12.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ChatPostComposerDialog-Cn2genet.js → ChatPostComposerDialog-t1X_eEx-.js} +2 -2
- package/dist/{CoachmarkProvider-DT14x0AU.js → CoachmarkProvider-C8AfrRY-.js} +2 -2
- package/dist/{DocumentToolbar-C9Po6BKY.js → DocumentToolbar-CiWldz64.js} +2 -2
- package/dist/{DocxViewer-haxAtwwO.js → DocxViewer-ZWB-Upv4.js} +1 -1
- package/dist/{F0AiProcessingOverlay-CVIRG3jF.js → F0AiProcessingOverlay-BZDPV9iG.js} +2 -1
- package/dist/{F0CanvasPanel-Cr7KX0zD.js → F0CanvasPanel-BpJr85HN.js} +11 -10
- package/dist/{F0DocumentViewer-DVyc9nMF.js → F0DocumentViewer-C0Aj9x9_.js} +3 -3
- package/dist/F0DocumentViewer-c0OzZYZK.js +3 -0
- package/dist/{F0Map-D7XCm7e2.js → F0Map-CyyZmEdH.js} +3 -3
- package/dist/F0VideoPlayer-DcPgDbG3.js +1 -0
- package/dist/{F0VideoPlayer-ByIehNyD.js → F0VideoPlayer-Ob0Ocg-j.js} +1 -1
- package/dist/{Map-B6ueo7xJ.js → Map-CkxnszKW.js} +3 -3
- package/dist/{PdfThumbnail-PHUaRH8_.js → PdfThumbnail-DKDEmiH7.js} +1 -1
- package/dist/{SheetViewer-C1rrcfIx.js → SheetViewer-D1-JA9nb.js} +3 -3
- package/dist/{TextViewer-k1eayJ7W.js → TextViewer-DW_Xu4Cb.js} +1 -1
- package/dist/ai.d.ts +2 -2
- package/dist/ai.js +2 -2
- package/dist/component-status.js +1 -1
- package/dist/experimental.d.ts +409 -456
- package/dist/experimental.js +4 -4
- package/dist/{exports-CnbBeOMM.d.ts → exports-BdFDYdp1.d.ts} +85 -85
- package/dist/f0.d.ts +102 -99
- package/dist/f0.js +704 -685
- package/dist/{index-DE9tIS8D.d.ts → index-DIwa_k8B.d.ts} +177 -173
- package/dist/{maplibre-D4TgPyqe.js → maplibre-DKmCLTnt.js} +1 -1
- package/dist/{pdfWorker-C0ND4urI.js → pdfWorker-Ch4pdihi.js} +1 -1
- package/dist/{types-tNl_jMZz.d.ts → types-C6VyXC_B.d.ts} +349 -326
- package/package.json +1 -1
- package/dist/F0DocumentViewer-BLNw_SjP.js +0 -3
- package/dist/F0VideoPlayer-BWUvWTys.js +0 -1
package/dist/experimental.d.ts
CHANGED
|
@@ -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-
|
|
2
|
-
import { $a as BulkActionsDefinition, $d as
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
731
|
+
interface F0ResizableProps {
|
|
732
732
|
direction?: ResizableDirection;
|
|
733
733
|
children: ReactNode;
|
|
734
|
-
}
|
|
735
|
-
|
|
734
|
+
}
|
|
735
|
+
interface F0ResizablePanelProps {
|
|
736
736
|
children: ReactNode;
|
|
737
737
|
defaultSize?: number;
|
|
738
738
|
minSize?: number;
|
|
739
739
|
maxSize?: number;
|
|
740
|
-
}
|
|
741
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
970
|
+
}
|
|
971
|
+
export interface SwipeDeckEntry<T> {
|
|
972
972
|
id: string;
|
|
973
973
|
item: T;
|
|
974
|
-
}
|
|
975
|
-
export
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
1415
|
+
export interface CommunityPostAction {
|
|
1416
1416
|
label?: string;
|
|
1417
1417
|
icon?: IconType;
|
|
1418
1418
|
onClick: () => void;
|
|
1419
|
-
}
|
|
1420
|
-
export
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
3082
|
+
export interface SidebarChatAction {
|
|
3083
3083
|
label: string;
|
|
3084
3084
|
icon?: IconType;
|
|
3085
3085
|
onClick?: () => void;
|
|
3086
|
-
}
|
|
3087
|
-
export
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
3348
|
+
export interface SidebarUser {
|
|
3349
3349
|
firstName: string;
|
|
3350
3350
|
lastName: string;
|
|
3351
3351
|
avatarUrl?: string;
|
|
3352
|
-
}
|
|
3353
|
-
export
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
3923
|
+
interface Approver {
|
|
3924
3924
|
firstName: string;
|
|
3925
3925
|
lastName: string;
|
|
3926
3926
|
avatar?: string;
|
|
3927
3927
|
status: Status;
|
|
3928
|
-
}
|
|
3929
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
5711
|
+
interface F0ChatMessageTranslation {
|
|
5712
5712
|
body: string;
|
|
5713
5713
|
sourceLanguage?: string;
|
|
5714
|
-
}
|
|
5715
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
7384
|
+
panelSide: PanelSide | null;
|
|
7384
7385
|
/** `null` retires the slot; a side registers one. */
|
|
7385
|
-
setPanelSlot: (side:
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
7603
|
+
interface MeetingRoomChatMessage {
|
|
7603
7604
|
id: string;
|
|
7604
7605
|
participantId: string;
|
|
7605
7606
|
text: string;
|
|
7606
7607
|
at: string;
|
|
7607
|
-
}
|
|
7608
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
7698
|
+
interface GridRow {
|
|
7698
7699
|
count: number;
|
|
7699
7700
|
tileWidth: number;
|
|
7700
7701
|
tileHeight: number;
|
|
7701
|
-
}
|
|
7702
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
9706
|
+
interface HomeWidgetActionEvent {
|
|
9754
9707
|
widgetId: string;
|
|
9755
9708
|
action: HomeWidgetActionKind;
|
|
9756
|
-
}
|
|
9709
|
+
}
|
|
9757
9710
|
/** Payload for `tracking.onWidgetItemActivate`. */
|
|
9758
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
12297
|
+
interface Action {
|
|
12345
12298
|
label: string;
|
|
12346
12299
|
onClick: () => void;
|
|
12347
12300
|
icon?: IconType;
|
|
12348
12301
|
variant?: "default" | "outline" | "promote";
|
|
12349
|
-
}
|
|
12350
|
-
|
|
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
|
-
|
|
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
|