@factorialco/f0-react 7.22.0 → 7.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/dist/{ChatPdfThumbnail-qvQdSurw.js → ChatPdfThumbnail-2_8sBW1U.js} +1 -1
  2. package/dist/{ChatPostComposerDialog-s3q1HVc4.js → ChatPostComposerDialog-BGEl20rM.js} +3 -3
  3. package/dist/{DocumentToolbar-B3gh97Ay.js → DocumentToolbar-BDDt63-g.js} +2 -2
  4. package/dist/{DocxViewer-CSS81Mh3.js → DocxViewer-Dt2nHTXV.js} +2 -2
  5. package/dist/{F0AiProcessingOverlay-D06B5o3I.js → F0AiProcessingOverlay-nojpvoxK.js} +285 -285
  6. package/dist/{F0CanvasPanel-A9QPf6uH.js → F0CanvasPanel-DnlpQoxW.js} +9046 -9030
  7. package/dist/F0Map-C7hMGlk_.js +2499 -0
  8. package/dist/{F0VideoPlayer-BqEMPz3U.js → F0VideoPlayer-DKPfOJBp.js} +79 -79
  9. package/dist/{MapProvider-DklrZcSf.js → MapProvider-DNpgap--.js} +15668 -15614
  10. package/dist/{SheetViewer-BtjAYR_w.js → SheetViewer-Wd4Fmg4a.js} +2 -2
  11. package/dist/{TextViewer-BOPO0hDJ.js → TextViewer-C3OMcE58.js} +2 -2
  12. package/dist/ai.d.ts +10 -0
  13. package/dist/ai.js +2 -2
  14. package/dist/component-status.js +2 -2
  15. package/dist/{experimental-B8jn4Q2z.js → experimental-DZvuUsDE.js} +11859 -13903
  16. package/dist/experimental.d.ts +375 -80
  17. package/dist/experimental.js +291 -284
  18. package/dist/f0.d.ts +182 -0
  19. package/dist/f0.js +6005 -6007
  20. package/dist/i18n-provider-defaults.d.ts +10 -0
  21. package/dist/i18n-provider-defaults.js +11 -1
  22. package/dist/index-B1UwLgNv.js +256 -0
  23. package/dist/index-BUqW79F1.js +4 -0
  24. package/dist/{index-d7fjuIpD.js → index-CCea6fTM.js} +1 -1
  25. package/dist/index-eeXQJkem.js +410 -0
  26. package/dist/{index-C331dySn.js → index-ekx-EJga.js} +31 -31
  27. package/dist/{pdfWorker-B7y75nkc.js → pdfWorker-CK4gerrz.js} +3 -3
  28. package/dist/styles.css +1 -1
  29. package/dist/{tooltip-BElsa4MF.js → tooltip-CrXp1Uaz.js} +2 -2
  30. package/package.json +1 -1
  31. package/dist/index-DaBdqaNW.js +0 -4
  32. package/dist/index-DvEXSMtC.js +0 -255
  33. /package/dist/{experimental.css → maplibre-gl.css} +0 -0
@@ -2,16 +2,16 @@ import { AiCalloutAction as AiCalloutAction_2 } from './types';
2
2
  import { AiCalloutFinding as AiCalloutFinding_2 } from './types';
3
3
  import { AiCalloutStatus as AiCalloutStatus_2 } from './types';
4
4
  import { AlertAvatarProps as AlertAvatarProps_2 } from './F0AvatarAlert';
5
- import { AlertTagCellValue } from './types/alertTag';
6
- import { AlertTagCellValue as AlertTagCellValue_2 } from './experimental';
7
- import { AmountCellValue } from './types/amount';
8
- import { AmountCellValue as AmountCellValue_2 } from './experimental';
5
+ import { AlertTagCellValue } from './experimental';
6
+ import { AlertTagCellValue as AlertTagCellValue_2 } from './types/alertTag';
7
+ import { AmountCellValue } from './experimental';
8
+ import { AmountCellValue as AmountCellValue_2 } from './types/amount';
9
9
  import { AnchorHTMLAttributes } from 'react';
10
10
  import { AreaChartWidgetProps } from './AreaChartWidget';
11
11
  import { AriaAttributes } from 'react';
12
12
  import { AutoFill as AutoFill_2 } from 'react';
13
- import { AvatarListCellValue } from './types/avatarList';
14
- import { AvatarListCellValue as AvatarListCellValue_2 } from './experimental';
13
+ import { AvatarListCellValue } from './experimental';
14
+ import { AvatarListCellValue as AvatarListCellValue_2 } from './types/avatarList';
15
15
  import * as AvatarPrimitive from '@radix-ui/react-avatar';
16
16
  import { BarChartProps } from './experimental';
17
17
  import { BarSeriesCellValue } from './types/barSeries';
@@ -23,8 +23,8 @@ import { ChartConfig } from './experimental';
23
23
  import { ChartConfig as ChartConfig_2 } from './utils/types';
24
24
  import { ChartPropsBase } from './utils/types';
25
25
  import { ClassValue } from 'cva';
26
- import { CompanyCellValue } from './types/company';
27
- import { CompanyCellValue as CompanyCellValue_2 } from './experimental';
26
+ import { CompanyCellValue } from './experimental';
27
+ import { CompanyCellValue as CompanyCellValue_2 } from './types/company';
28
28
  import { CompanyItemProps } from './types';
29
29
  import { ComponentProps } from 'react';
30
30
  import { CompoundCellValue } from './types/compound';
@@ -32,14 +32,14 @@ import { Context } from 'react';
32
32
  import { CountCellValue } from './types/count';
33
33
  import { CountryCellValue } from './types/country';
34
34
  import { DataAttributes as DataAttributes_2 } from './experimental';
35
- import { DateCellValue } from './types/date';
36
- import { DateCellValue as DateCellValue_2 } from './experimental';
35
+ import { DateCellValue } from './experimental';
36
+ import { DateCellValue as DateCellValue_2 } from './types/date';
37
37
  import { DateFilterOptions } from './DateFilter/DateFilter';
38
38
  import { default as default_2 } from 'react';
39
39
  import { DeltaCellValue } from './types/delta';
40
40
  import { Dispatch } from 'react';
41
- import { DotTagCellValue } from './types/dotTag';
42
- import { DotTagCellValue as DotTagCellValue_2 } from './experimental';
41
+ import { DotTagCellValue } from './experimental';
42
+ import { DotTagCellValue as DotTagCellValue_2 } from './types/dotTag';
43
43
  import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
44
44
  import { EmployeeItemProps } from './types';
45
45
  import { F0CommandPaletteProviderProps as F0CommandPaletteProviderProps_2 } from './types';
@@ -56,10 +56,10 @@ import { F0TagRawProps as F0TagRawProps_2 } from './types';
56
56
  import { F0TagTeamProps } from './types';
57
57
  import { f1Colors } from '@factorialco/f0-core';
58
58
  import { FC } from 'react';
59
- import { FileCellValue } from './types/file';
60
- import { FileCellValue as FileCellValue_2 } from './experimental';
61
- import { FolderCellValue } from './types/folder';
62
- import { FolderCellValue as FolderCellValue_2 } from './experimental';
59
+ import { FileCellValue } from './experimental';
60
+ import { FileCellValue as FileCellValue_2 } from './types/file';
61
+ import { FolderCellValue } from './experimental';
62
+ import { FolderCellValue as FolderCellValue_2 } from './types/folder';
63
63
  import { ForwardedRef } from 'react';
64
64
  import { ForwardRefExoticComponent } from 'react';
65
65
  import { HourDistributionCellValue } from './types/hourDistribution';
@@ -77,19 +77,19 @@ import { LineChartConfig } from './experimental';
77
77
  import { LineChartProps } from './experimental';
78
78
  import { LineChartPropsBase } from './utils/types';
79
79
  import { LongTextCellValue } from './types/longText';
80
- import { NumberCellValue } from './types/number';
81
- import { NumberCellValue as NumberCellValue_2 } from './experimental';
80
+ import { NumberCellValue } from './experimental';
81
+ import { NumberCellValue as NumberCellValue_2 } from './types/number';
82
82
  import { NumberFilterOptions } from './NumberFilter/NumberFilter';
83
83
  import { Observable } from 'zen-observable-ts';
84
84
  import { PercentageCellValue } from './types/percentage';
85
- import { PersonCellValue } from './types/person';
86
- import { PersonCellValue as PersonCellValue_2 } from './experimental';
85
+ import { PersonCellValue } from './experimental';
86
+ import { PersonCellValue as PersonCellValue_2 } from './types/person';
87
87
  import { PieChartProps } from './PieChart';
88
88
  import { PieChartProps as PieChartProps_2 } from './experimental';
89
89
  import * as PopoverPrimitive from '@radix-ui/react-popover';
90
90
  import { PopoverProps } from '@radix-ui/react-popover';
91
- import { ProgressBarCellValue } from './types/progressBar';
92
- import { ProgressBarCellValue as ProgressBarCellValue_2 } from './experimental';
91
+ import { ProgressBarCellValue } from './experimental';
92
+ import { ProgressBarCellValue as ProgressBarCellValue_2 } from './types/progressBar';
93
93
  import { ProgressSeriesCellValue } from './types/progressSeries';
94
94
  import { Props as Props_5 } from './types';
95
95
  import { PropsWithChildren } from 'react';
@@ -103,29 +103,29 @@ import { RefAttributes } from 'react';
103
103
  import { RefObject } from 'react';
104
104
  import { ScrollAreaProps } from '@radix-ui/react-scroll-area';
105
105
  import { SearchFilterOptions } from './SearchFilter/SearchFilter';
106
- import { StatusCellValue } from './types/status';
107
- import { StatusCellValue as StatusCellValue_2 } from './experimental';
106
+ import { StatusCellValue } from './experimental';
107
+ import { StatusCellValue as StatusCellValue_2 } from './types/status';
108
108
  import { SummaryCellValue } from './types/summary';
109
109
  import { SVGProps } from 'react';
110
110
  import { TagAlertProps } from './experimental';
111
111
  import { TagBalanceProps } from './experimental';
112
- import { TagCellValue } from './types/tag';
113
- import { TagCellValue as TagCellValue_2 } from './experimental';
112
+ import { TagCellValue } from './experimental';
113
+ import { TagCellValue as TagCellValue_2 } from './types/tag';
114
114
  import { TagDotProps } from './experimental';
115
- import { TagListCellValue } from './types/tagList';
116
- import { TagListCellValue as TagListCellValue_2 } from './experimental';
115
+ import { TagListCellValue } from './experimental';
116
+ import { TagListCellValue as TagListCellValue_2 } from './types/tagList';
117
117
  import { TagListProps } from './experimental';
118
118
  import { TagRawProps } from './experimental';
119
119
  import { TagStatusProps } from './experimental';
120
120
  import { TagType } from './experimental';
121
- import { TeamCellValue } from './types/team';
122
- import { TeamCellValue as TeamCellValue_2 } from './experimental';
121
+ import { TeamCellValue } from './experimental';
122
+ import { TeamCellValue as TeamCellValue_2 } from './types/team';
123
123
  import { TeamItemProps } from './types';
124
124
  import { TextareaHTMLAttributes } from 'react';
125
- import { TextCellValue } from './types/text';
126
- import { TextCellValue as TextCellValue_2 } from './experimental';
125
+ import { TextCellValue } from './experimental';
126
+ import { TextCellValue as TextCellValue_2 } from './types/text';
127
127
  import * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group';
128
- import { ValueDisplayRendererContext as ValueDisplayRendererContext_2 } from './experimental';
128
+ import { ValueDisplayRendererContext } from './experimental';
129
129
  import { VariantProps } from 'cva';
130
130
  import { VerticalBarChartProps } from './experimental';
131
131
  import { VirtualItem } from '@tanstack/react-virtual';
@@ -2378,22 +2378,22 @@ declare type CardPropertyDefinition<T> = PropertyDefinition_2<T> & {
2378
2378
  };
2379
2379
 
2380
2380
  declare const cardPropertyRenderers: {
2381
- readonly text: (args: TextCellValue_2, meta: ValueDisplayRendererContext_2) => default_2.JSX.Element;
2382
- readonly number: (args: NumberCellValue_2, meta: ValueDisplayRendererContext_2) => default_2.JSX.Element;
2383
- readonly date: (args: DateCellValue_2, meta: ValueDisplayRendererContext_2) => default_2.JSX.Element;
2384
- readonly amount: (args: AmountCellValue_2, meta: ValueDisplayRendererContext_2) => default_2.JSX.Element;
2385
- readonly person: (args: PersonCellValue_2, meta: ValueDisplayRendererContext_2) => default_2.JSX.Element;
2386
- readonly company: (args: CompanyCellValue_2, meta: ValueDisplayRendererContext_2) => default_2.JSX.Element;
2387
- readonly team: (args: TeamCellValue_2, meta: ValueDisplayRendererContext_2) => default_2.JSX.Element;
2388
- readonly status: (args: StatusCellValue_2) => default_2.JSX.Element;
2389
- readonly tag: (args: TagCellValue_2) => default_2.JSX.Element;
2390
- readonly avatarList: (args: AvatarListCellValue_2, meta: ValueDisplayRendererContext_2) => default_2.JSX.Element;
2391
- readonly tagList: (args: TagListCellValue_2) => default_2.JSX.Element;
2392
- readonly alertTag: (args: AlertTagCellValue_2) => default_2.JSX.Element;
2393
- readonly dotTag: (args: DotTagCellValue_2) => default_2.JSX.Element;
2394
- readonly file: (args: FileCellValue_2) => default_2.JSX.Element;
2395
- readonly folder: (args: FolderCellValue_2) => default_2.JSX.Element;
2396
- readonly progressBar: (args: ProgressBarCellValue_2, _meta: ValueDisplayRendererContext_2) => default_2.JSX.Element | null;
2381
+ readonly text: (args: TextCellValue, meta: ValueDisplayRendererContext) => default_2.JSX.Element;
2382
+ readonly number: (args: NumberCellValue, meta: ValueDisplayRendererContext) => default_2.JSX.Element;
2383
+ readonly date: (args: DateCellValue, meta: ValueDisplayRendererContext) => default_2.JSX.Element;
2384
+ readonly amount: (args: AmountCellValue, meta: ValueDisplayRendererContext) => default_2.JSX.Element;
2385
+ readonly person: (args: PersonCellValue, meta: ValueDisplayRendererContext) => default_2.JSX.Element;
2386
+ readonly company: (args: CompanyCellValue, meta: ValueDisplayRendererContext) => default_2.JSX.Element;
2387
+ readonly team: (args: TeamCellValue, meta: ValueDisplayRendererContext) => default_2.JSX.Element;
2388
+ readonly status: (args: StatusCellValue) => default_2.JSX.Element;
2389
+ readonly tag: (args: TagCellValue) => default_2.JSX.Element;
2390
+ readonly avatarList: (args: AvatarListCellValue, meta: ValueDisplayRendererContext) => default_2.JSX.Element;
2391
+ readonly tagList: (args: TagListCellValue) => default_2.JSX.Element;
2392
+ readonly alertTag: (args: AlertTagCellValue) => default_2.JSX.Element;
2393
+ readonly dotTag: (args: DotTagCellValue) => default_2.JSX.Element;
2394
+ readonly file: (args: FileCellValue) => default_2.JSX.Element;
2395
+ readonly folder: (args: FolderCellValue) => default_2.JSX.Element;
2396
+ readonly progressBar: (args: ProgressBarCellValue, _meta: ValueDisplayRendererContext) => default_2.JSX.Element | null;
2397
2397
  };
2398
2398
 
2399
2399
  declare type CardPropertyType = keyof typeof cardPropertyRenderers;
@@ -3567,6 +3567,7 @@ declare type CollectionVisualizations<Record extends RecordType, Filters extends
3567
3567
  card: VisualizacionTypeDefinition<CardCollectionProps<Record, Filters, Sortings, Summaries, ItemActions, NavigationFilters, Grouping>>;
3568
3568
  kanban: VisualizacionTypeDefinition<KanbanCollectionProps<Record, Filters, Sortings, Summaries, ItemActions, NavigationFilters, Grouping>>;
3569
3569
  graph: VisualizacionTypeDefinition<GraphCollectionProps<Record, Filters, Sortings, Summaries, ItemActions, NavigationFilters, Grouping>, GraphVisualizationSettings>;
3570
+ map: VisualizacionTypeDefinition<MapCollectionProps<Record, Filters, Sortings, Summaries, ItemActions, NavigationFilters, Grouping>>;
3570
3571
  };
3571
3572
 
3572
3573
  declare const collectionVisualizations: CollectionVisualizations<RecordType, FiltersDefinition, SortingsDefinition, SummariesDefinition, ItemActionsDefinition<RecordType>, NavigationFiltersDefinition, GroupingDefinition<RecordType>>;
@@ -5499,6 +5500,7 @@ declare const defaultTranslations: {
5499
5500
  readonly list: "List";
5500
5501
  readonly kanban: "Kanban";
5501
5502
  readonly graph: "Graph";
5503
+ readonly map: "Map";
5502
5504
  readonly pagination: {
5503
5505
  readonly of: "of";
5504
5506
  };
@@ -5506,6 +5508,11 @@ declare const defaultTranslations: {
5506
5508
  readonly reset: "Reset to default";
5507
5509
  readonly viewSelectorLabel: "Select view";
5508
5510
  };
5511
+ readonly map: {
5512
+ readonly notOnMap: "Not on map";
5513
+ readonly onMap: "On map";
5514
+ readonly notOnMapCount: "{{count}} not on map";
5515
+ };
5509
5516
  readonly table: {
5510
5517
  readonly seeMoreChildren: "See more";
5511
5518
  readonly settings: {
@@ -6398,11 +6405,15 @@ declare const defaultTranslations: {
6398
6405
  readonly loadError: "Couldn't load the map.";
6399
6406
  readonly retry: "Retry";
6400
6407
  readonly currentLocation: "Your location";
6408
+ readonly panel: "Map panel";
6409
+ readonly detailPanel: "Map detail panel";
6401
6410
  readonly controls: {
6402
6411
  readonly zoomIn: "Zoom in";
6403
6412
  readonly zoomOut: "Zoom out";
6404
6413
  readonly fit: "Fit to markers";
6405
6414
  readonly locate: "My location";
6415
+ readonly showPanel: "Show panel";
6416
+ readonly hidePanel: "Hide panel";
6406
6417
  };
6407
6418
  };
6408
6419
  readonly wizard: {
@@ -6691,6 +6702,10 @@ export declare function downloadAsCSV<R extends RecordType, Filters extends Filt
6691
6702
  */
6692
6703
  export declare const Dropdown: (props: DropdownProps) => JSX_2.Element;
6693
6704
 
6705
+ declare type DropdownContentVariant = (typeof dropdownContentVariants)[number];
6706
+
6707
+ declare const dropdownContentVariants: readonly ["expanded", "reduced"];
6708
+
6694
6709
  declare type DropdownInternalProps = {
6695
6710
  items: DropdownItem[];
6696
6711
  icon?: IconType;
@@ -6717,6 +6732,14 @@ declare type DropdownInternalProps = {
6717
6732
  * focus back and forth until the call stack gives out.
6718
6733
  */
6719
6734
  container?: HTMLElement | null;
6735
+ /**
6736
+ * Caps the width of the menu content.
6737
+ * - "expanded": (default) sizes to content, same as today.
6738
+ * - "reduced": caps the menu at 300px, e.g. when an item's `description`
6739
+ * is long enough to otherwise stretch the menu.
6740
+ * @default "expanded"
6741
+ */
6742
+ contentVariant?: DropdownContentVariant;
6720
6743
  } & DataAttributes_3;
6721
6744
 
6722
6745
  export declare type DropdownItem = DropdownItemObject | DropdownItemSeparator | DropdownItemLabel;
@@ -10166,6 +10189,17 @@ export declare interface F0MapProps extends WithDataTestIdProps {
10166
10189
  * grown pin) stays driven by `selectedMarkerId`.
10167
10190
  */
10168
10191
  highlightedId?: string | null;
10192
+ /**
10193
+ * Region covered by the consumer's own chrome, in screen px - a panel opened
10194
+ * over the map. Camera moves land their target in the free area, and a
10195
+ * change replays the last move. The map's own panels are folded in already.
10196
+ */
10197
+ viewportInset?: F0MapViewportInset;
10198
+ /**
10199
+ * Re-center a clicked marker in the free area, at the current zoom. Defaults
10200
+ * to `false`. The `focusMarker` handle is the one that also zooms in.
10201
+ */
10202
+ centerOnMarkerClick?: boolean;
10169
10203
  /**
10170
10204
  * Frame all markers on load. Defaults to `true` when no `initialViewport` is
10171
10205
  * given, `false` otherwise (an explicit viewport wins).
@@ -10210,11 +10244,33 @@ export declare interface F0MapProps extends WithDataTestIdProps {
10210
10244
  showCurrentLocation?: boolean;
10211
10245
  /**
10212
10246
  * Edge-to-edge presentation. `false` (default) frames the map as a card -
10213
- * large rounded corners, a secondary border, and controls inset 16px. `true`
10214
- * drops the frame so the map bleeds to its container's edges, with controls
10215
- * inset 24px.
10247
+ * large rounded corners and a secondary border. `true` drops the frame so the
10248
+ * map bleeds to its container's edges. The controls sit 8px off the edges
10249
+ * either way.
10216
10250
  */
10217
10251
  fullScreen?: boolean;
10252
+ /** Shows the side panel's toggle in the top-left corner. */
10253
+ onSidebarToggle?: () => void;
10254
+ /** Whether the side panel is open. Defaults to `false`. */
10255
+ sidebarExpanded?: boolean;
10256
+ /** A control beside the toggle while the panel is closed, e.g. a count that opens it. */
10257
+ sidebarToggleAddon?: ReactNode;
10258
+ /** A control at the start of the open panel's header row, opposite its toggle. */
10259
+ sidebarHeaderStart?: ReactNode;
10260
+ /** Side panel content, edge to edge: it brings its own insets and scrolling. */
10261
+ sidebar?: ReactNode;
10262
+ /** A second panel, opened beside the side panel while `detailOpen`. */
10263
+ detail?: ReactNode;
10264
+ /**
10265
+ * Whether the detail panel is open. Defaults to `false`. While it is, Escape
10266
+ * ends the selection, which is what closes it.
10267
+ */
10268
+ detailOpen?: boolean;
10269
+ /**
10270
+ * Clear the selection on a background click. Defaults to `true`. Turn it off
10271
+ * when the selection opens something that must be dismissed deliberately.
10272
+ */
10273
+ clearSelectionOnBackgroundClick?: boolean;
10218
10274
  /**
10219
10275
  * Map projection. `"mercator"` (default) is the flat web map; `"globe"`
10220
10276
  * renders the world as a 3D sphere at low zoom and eases into mercator as you
@@ -10244,6 +10300,52 @@ export declare interface F0MapRoute extends F0MapLineStyle {
10244
10300
  coordinates: [number, number][];
10245
10301
  }
10246
10302
 
10303
+ /**
10304
+ * A map side panel on the overlay material. Stays mounted and transitions out
10305
+ * of frame (the map clips it), `inert` while away. A CSS transition, so no
10306
+ * ancestor `MotionConfig` can override it (`ApplicationFrame` sets one).
10307
+ */
10308
+ export declare const F0MapSidebar: ({ children, open, offsetX, offsetY, width, entrance, headerStart, headerEnd, ariaLabel, dataTestId, }: F0MapSidebarProps) => JSX_2.Element;
10309
+
10310
+ export declare interface F0MapSidebarProps extends WithDataTestIdProps {
10311
+ /** Content, edge to edge: it brings its own insets and scrolling. */
10312
+ children?: ReactNode;
10313
+ open: boolean;
10314
+ /** Distance from the map's left edge, in px. */
10315
+ offsetX: number;
10316
+ /** Distance from the map's top edge, in px. Defaults to the shared inset. */
10317
+ offsetY?: number;
10318
+ /** Panel width, in px. */
10319
+ width: number;
10320
+ /**
10321
+ * `"slide"` (default) travels in from the map's edge. `"grow"` scales into
10322
+ * place, for a panel opening beside another it would otherwise cross.
10323
+ */
10324
+ entrance?: "slide" | "grow";
10325
+ /** A control at the start of the panel's header row; takes the room left. */
10326
+ headerStart?: ReactNode;
10327
+ /** A control at the far end of that row. */
10328
+ headerEnd?: ReactNode;
10329
+ /** Defaults to the map's panel label. */
10330
+ ariaLabel?: string;
10331
+ }
10332
+
10333
+ /**
10334
+ * Opens and closes the map's side panel, with the application sidebar's icon.
10335
+ * Presentational, like `F0MapControls`: `F0Map` positions it and owns the state.
10336
+ */
10337
+ export declare const F0MapSidebarToggle: ForwardRefExoticComponent<F0MapSidebarToggleProps & RefAttributes<HTMLButtonElement>>;
10338
+
10339
+ export declare interface F0MapSidebarToggleProps extends WithDataTestIdProps {
10340
+ /** Whether the panel this button controls is currently open. */
10341
+ expanded: boolean;
10342
+ onToggle: () => void;
10343
+ /** Overrides the default show / hide label. */
10344
+ label?: string;
10345
+ /** Drop the overlay card, for the toggle inside a panel. */
10346
+ bare?: boolean;
10347
+ }
10348
+
10247
10349
  /**
10248
10350
  * Loading placeholder: a plain pulsing surface in the shared `Skeleton`
10249
10351
  * component's tone. Shown while a consumer is still fetching what the map
@@ -10287,6 +10389,25 @@ export declare interface F0MapViewport {
10287
10389
  zoom?: number;
10288
10390
  }
10289
10391
 
10392
+ /**
10393
+ * Region of the map (in screen px) covered by external chrome - typically a
10394
+ * side panel the consumer opens over it. Every camera move (fit, focus, reveal)
10395
+ * shifts its target so the point lands centred in the *free* area beside the
10396
+ * panel instead of behind it. The side is encoded by which key is set: a
10397
+ * right-hand panel sets `right`, a left-hand one or RTL sets `left`.
10398
+ *
10399
+ * The consumer supplies the value - `F0Map` has no notion of the panel. For a
10400
+ * fixed-width drawer pass its width while it is open (e.g. `{ right: 480 }`)
10401
+ * and `undefined` / `{}` while it is closed. Omitted or `0` on every side
10402
+ * behaves exactly as if there were no inset.
10403
+ */
10404
+ export declare interface F0MapViewportInset {
10405
+ top?: number;
10406
+ right?: number;
10407
+ bottom?: number;
10408
+ left?: number;
10409
+ }
10410
+
10290
10411
  /**
10291
10412
  * Makes a meeting available to the app and renders its surface.
10292
10413
  *
@@ -13993,6 +14114,105 @@ export declare type LocationPart = (typeof locationParts)[number];
13993
14114
  /** Every part the manual entry block renders, in the order it renders them */
13994
14115
  export declare const locationParts: readonly ["country", "addressLine1", "addressLine2", "city", "state", "postalCode"];
13995
14116
 
14117
+ declare type MapCollectionProps<Record extends RecordType, Filters extends FiltersDefinition, Sortings extends SortingsDefinition, Summaries extends SummariesDefinition, ItemActions extends ItemActionsDefinition<Record>, NavigationFilters extends NavigationFiltersDefinition, Grouping extends GroupingDefinition<Record>> = CollectionProps<Record, Filters, Sortings, Summaries, ItemActions, NavigationFilters, Grouping, MapVisualizationOptions<Record, Filters, Sortings>>;
14118
+
14119
+ /** Selection handles handed to the panels, so their content can drive the map. */
14120
+ declare type MapSidebarApi<R extends RecordType> = {
14121
+ /** Select a record (or clear with `null`), flying to its marker if it has one. */
14122
+ select: (record: R | null) => void;
14123
+ selectedRecordId: string | null;
14124
+ /**
14125
+ * What the map did with a record: `"placed"`, `"unplaced"` (no reason
14126
+ * given), or the `MapUnplaced` kind. Per record, so it also answers in the
14127
+ * search's flat list.
14128
+ */
14129
+ placement: (record: R) => "placed" | "unplaced" | MapUnplaced["kind"];
14130
+ };
14131
+
14132
+ /**
14133
+ * Why a record has no position, returned from `coordinates` instead of one.
14134
+ * `incomplete`: it should have a location and doesn't (an unfilled or
14135
+ * ungeocodable address) - the case somebody can fix.
14136
+ */
14137
+ export declare type MapUnplaced = {
14138
+ kind: "incomplete";
14139
+ };
14140
+
14141
+ /**
14142
+ * Options for the map visualization: records projected onto coordinates. Only
14143
+ * reading a record's position is required; how markers look and behave is
14144
+ * `F0Map`'s concern.
14145
+ */
14146
+ export declare type MapVisualizationOptions<R extends RecordType, _Filters extends FiltersDefinition, _Sortings extends SortingsDefinition> = {
14147
+ /**
14148
+ * A record's `[longitude, latitude]`. `null` or a `MapUnplaced` draws no
14149
+ * marker, and the record is listed under "Not on map" instead. No geocoding
14150
+ * happens here: resolve coordinates server-side.
14151
+ */
14152
+ coordinates: (record: R) => [number, number] | null | MapUnplaced;
14153
+ /** Label beside the marker. Omitted means an unlabelled pin. */
14154
+ label?: (record: R) => string;
14155
+ /** Marker variant per record. Defaults to `default`. */
14156
+ marker?: (record: R) => F0MapMarkerVariantProps;
14157
+ /** A record's id. Defaults to `String(record.id)`, like the graph view. */
14158
+ getRecordId?: (record: R) => string;
14159
+ /**
14160
+ * Controlled selection, `null` for none. Pass it whenever something outside
14161
+ * the map can end the selection, like closing the panel `onSelect` opened.
14162
+ */
14163
+ selectedRecordId?: string | null;
14164
+ /**
14165
+ * Fired when the selection changes: a marker click, a reveal, a panel row,
14166
+ * or `null` when it clears. If it opens your own chrome over the map, report
14167
+ * the region it covers through `viewportInset`.
14168
+ */
14169
+ onSelect?: (record: R | null) => void;
14170
+ /**
14171
+ * Flies to a record and selects it, e.g. from an external search. Pair it
14172
+ * with the collection's `searchSelectionNonce` so a repeat pick flies again.
14173
+ */
14174
+ revealRecordId?: string | null;
14175
+ /** Region covered by your own chrome. The map's own panels are folded in. */
14176
+ viewportInset?: F0MapViewportInset;
14177
+ /** Initial camera. Defaults to framing every marker. */
14178
+ initialViewport?: F0MapViewport;
14179
+ /** Show the navigation controls (locate / fit / zoom). Defaults to `true`. */
14180
+ showControls?: boolean;
14181
+ /** Fired with the side panel's new open state. */
14182
+ onSidebarToggle?: (expanded: boolean) => void;
14183
+ /** Map projection. Defaults to `"mercator"`. */
14184
+ projection?: F0MapProjection;
14185
+ /**
14186
+ * Rendering engine. Defaults to the one the app sets on `F0Provider`, so a
14187
+ * product that configures Google gets it here too; set it only to override
14188
+ * that for this view.
14189
+ */
14190
+ provider?: F0MapProvider;
14191
+ /**
14192
+ * Records to request in the one page the map loads, capped at the map's
14193
+ * recommended marker ceiling.
14194
+ */
14195
+ markerLimit?: number;
14196
+ /** Accessible label for the map region. */
14197
+ ariaLabel?: string;
14198
+ /**
14199
+ * Rows of the side panel, for the records of one section ("Not on map",
14200
+ * then "On map") or for the matches of the panel's search. They are the
14201
+ * records the map is drawing, from the same load. Return rows only: the
14202
+ * panel owns the scrolling. `select` drives the same selection a marker
14203
+ * click does.
14204
+ */
14205
+ sidebar?: (records: R[], api: MapSidebarApi<R>) => ReactNode;
14206
+ /**
14207
+ * Text the panel's search matches a record against. Given it, the panel's
14208
+ * header offers a search over the records the panel holds; the toolbar's
14209
+ * search still narrows the whole view.
14210
+ */
14211
+ sidebarSearchText?: (record: R) => string;
14212
+ /** Detail panel for the selected record, beside the side panel. */
14213
+ detail?: (record: R, api: MapSidebarApi<R>) => ReactNode;
14214
+ };
14215
+
13996
14216
  declare const markerColors: readonly ["neutral", "grey", "radical", "malibu", "viridian", "flubber", "grass", "camel", "indigo", "lilac", "orange", "purple", "yellow", "red", "army", "smoke", "barbie"];
13997
14217
 
13998
14218
  export declare const MAX_EXPANDED_ACTIONS = 2;
@@ -15213,6 +15433,14 @@ declare type OneDataCollectionProps<R extends RecordType, Filters extends Filter
15213
15433
  savingViewsDisabled?: boolean;
15214
15434
  /** Visualization index rendered on mount, before async storage/URL restore — lets a consumer boot straight into the persisted view and skip the default→restore bounce. Defaults to 0. */
15215
15435
  initialVisualization?: number;
15436
+ /**
15437
+ * Caps the width of the primary actions dropdown menu (the one shown
15438
+ * when a `primaryActions` item has a `description`).
15439
+ * - "expanded": (default) sizes to content, same as today.
15440
+ * - "reduced": caps the menu at 300px, for long descriptions.
15441
+ * @default "expanded"
15442
+ */
15443
+ primaryActionsMenuVariant?: DropdownContentVariant;
15216
15444
  };
15217
15445
 
15218
15446
  export declare const OneDateNavigator: typeof OneDateNavigatorInternal;
@@ -15313,6 +15541,61 @@ declare type OneFilterPickerRootProps<Definition extends FiltersDefinition> = {
15313
15541
  onPresetAction?: () => void;
15314
15542
  };
15315
15543
 
15544
+ /**
15545
+ * A compact row in a list of things: `OnePersonListItem`'s anatomy without the
15546
+ * person assumption, so it serves workplaces, teams, companies or files alike.
15547
+ *
15548
+ * @experimental This is an experimental component use it at your own risk
15549
+ */
15550
+ export declare const OneListItem: WithDataTestIdReturnType_3<default_2.ForwardRefExoticComponent<OneListItemProps & default_2.RefAttributes<HTMLDivElement>> & {
15551
+ Skeleton: () => default_2.JSX.Element;
15552
+ }>;
15553
+
15554
+ export declare type OneListItemProps = {
15555
+ /** Any avatar variant, so the item can stand for whatever the list is of. */
15556
+ avatar?: AvatarVariant;
15557
+ title: string;
15558
+ description?: string;
15559
+ /** Facts under the title, rendered inline and separated by a middot. */
15560
+ bottomTags?: Omit<F0TagRawProps, "noBorder">[];
15561
+ /** Fields under the subtitle, with `F0Card`'s metadata shape and renderers. */
15562
+ metadata?: CardMetadata[];
15563
+ rightTag?: Props_4;
15564
+ /**
15565
+ * An icon at the row's right edge for a fact about the item (not an action,
15566
+ * so not a button), explained by its tooltip.
15567
+ */
15568
+ rightIcon?: {
15569
+ icon: IconType;
15570
+ tooltip: string;
15571
+ tooltipDescription?: string;
15572
+ };
15573
+ actions?: {
15574
+ primary?: {
15575
+ icon?: IconType;
15576
+ label: string;
15577
+ onClick: () => void;
15578
+ };
15579
+ secondary?: {
15580
+ icon: IconType;
15581
+ /** Accessible name - the button shows only its icon. */
15582
+ label?: string;
15583
+ onClick: () => void;
15584
+ };
15585
+ };
15586
+ /** Tooltip beside the title, for a caveat that doesn't fit in the row. */
15587
+ info?: string;
15588
+ onClick: () => void;
15589
+ withPointerCursor?: boolean;
15590
+ /** The row currently acted on, e.g. open in a detail view. Sets `aria-current`. */
15591
+ selected?: boolean;
15592
+ };
15593
+
15594
+ /** Shared by the item and its skeleton, so both occupy the same box. */
15595
+ 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";
15596
+
15597
+ export declare const OneListItemSkeleton: () => default_2.JSX.Element;
15598
+
15316
15599
  /**
15317
15600
  * @experimental This is an experimental component use it at your own risk
15318
15601
  */
@@ -16057,6 +16340,13 @@ export declare interface ReactionsProps {
16057
16340
  };
16058
16341
  }
16059
16342
 
16343
+ /**
16344
+ * Soft ceiling for marker count. Markers are DOM elements with JS screen-space
16345
+ * clustering - designed for workplace-scale datasets. Beyond this, pan/zoom
16346
+ * starts to stutter; thousands of points need a GL-native clustering path.
16347
+ */
16348
+ export declare const RECOMMENDED_MAX_MARKERS = 200;
16349
+
16060
16350
  /**
16061
16351
  * Utility type to get all possible paths through an object using dot notation
16062
16352
  * @template T - The object type to traverse
@@ -18628,7 +18918,7 @@ declare type VacancyProfile = {
18628
18918
  vacancyType?: string;
18629
18919
  };
18630
18920
 
18631
- declare type ValueDisplayRendererContext = {
18921
+ declare type ValueDisplayRendererContext_2 = {
18632
18922
  visualization: ValueDisplayVisualizationType;
18633
18923
  i18n: TranslationsType;
18634
18924
  tableAlign?: ValueDisplayTableAlignment;
@@ -18646,34 +18936,34 @@ declare type ValueDisplayRendererDefinition = {
18646
18936
  }[keyof typeof valueDisplayRenderers];
18647
18937
 
18648
18938
  declare const valueDisplayRenderers: {
18649
- readonly text: (args: TextCellValue, meta: ValueDisplayRendererContext) => JSX_2.Element;
18650
- readonly longText: (args: LongTextCellValue, meta: ValueDisplayRendererContext) => JSX_2.Element;
18651
- readonly number: (args: NumberCellValue, meta: ValueDisplayRendererContext) => JSX_2.Element;
18652
- readonly date: (args: DateCellValue, meta: ValueDisplayRendererContext) => JSX_2.Element;
18653
- readonly amount: (args: AmountCellValue, meta: ValueDisplayRendererContext) => JSX_2.Element;
18654
- readonly compound: (args: CompoundCellValue, meta: ValueDisplayRendererContext) => JSX_2.Element;
18655
- readonly avatarList: (args: AvatarListCellValue, meta: ValueDisplayRendererContext) => JSX_2.Element;
18656
- readonly status: (args: StatusCellValue) => JSX_2.Element;
18657
- readonly alertTag: (args: AlertTagCellValue) => JSX_2.Element;
18658
- readonly person: (args: PersonCellValue, meta: ValueDisplayRendererContext) => JSX_2.Element;
18659
- readonly percentage: (args: PercentageCellValue, meta: ValueDisplayRendererContext) => JSX_2.Element | null;
18660
- readonly progressBar: (args: ProgressBarCellValue, _meta: ValueDisplayRendererContext) => JSX_2.Element | null;
18661
- readonly progressSeries: (args: ProgressSeriesCellValue, meta: ValueDisplayRendererContext) => JSX_2.Element;
18662
- readonly barSeries: (args: BarSeriesCellValue, meta: ValueDisplayRendererContext) => JSX_2.Element;
18663
- readonly categoryBarChart: (args: CategoryBarChartCellValue, meta: ValueDisplayRendererContext) => JSX_2.Element;
18664
- readonly hourDistribution: (args: HourDistributionCellValue, meta: ValueDisplayRendererContext) => JSX_2.Element;
18665
- readonly company: (args: CompanyCellValue, meta: ValueDisplayRendererContext) => JSX_2.Element;
18666
- readonly team: (args: TeamCellValue, meta: ValueDisplayRendererContext) => JSX_2.Element;
18667
- readonly tag: (args: TagCellValue) => JSX_2.Element;
18668
- readonly dotTag: (args: DotTagCellValue) => JSX_2.Element;
18669
- readonly tagList: (args: TagListCellValue) => JSX_2.Element;
18670
- readonly icon: (args: IconCellValue, meta: ValueDisplayRendererContext) => JSX_2.Element;
18671
- readonly file: (args: FileCellValue) => JSX_2.Element;
18672
- readonly folder: (args: FolderCellValue) => JSX_2.Element;
18673
- readonly country: (args: CountryCellValue, context: ValueDisplayRendererContext) => JSX_2.Element;
18939
+ readonly text: (args: TextCellValue_2, meta: ValueDisplayRendererContext_2) => JSX_2.Element;
18940
+ readonly longText: (args: LongTextCellValue, meta: ValueDisplayRendererContext_2) => JSX_2.Element;
18941
+ readonly number: (args: NumberCellValue_2, meta: ValueDisplayRendererContext_2) => JSX_2.Element;
18942
+ readonly date: (args: DateCellValue_2, meta: ValueDisplayRendererContext_2) => JSX_2.Element;
18943
+ readonly amount: (args: AmountCellValue_2, meta: ValueDisplayRendererContext_2) => JSX_2.Element;
18944
+ readonly compound: (args: CompoundCellValue, meta: ValueDisplayRendererContext_2) => JSX_2.Element;
18945
+ readonly avatarList: (args: AvatarListCellValue_2, meta: ValueDisplayRendererContext_2) => JSX_2.Element;
18946
+ readonly status: (args: StatusCellValue_2) => JSX_2.Element;
18947
+ readonly alertTag: (args: AlertTagCellValue_2) => JSX_2.Element;
18948
+ readonly person: (args: PersonCellValue_2, meta: ValueDisplayRendererContext_2) => JSX_2.Element;
18949
+ readonly percentage: (args: PercentageCellValue, meta: ValueDisplayRendererContext_2) => JSX_2.Element | null;
18950
+ readonly progressBar: (args: ProgressBarCellValue_2, _meta: ValueDisplayRendererContext_2) => JSX_2.Element | null;
18951
+ readonly progressSeries: (args: ProgressSeriesCellValue, meta: ValueDisplayRendererContext_2) => JSX_2.Element;
18952
+ readonly barSeries: (args: BarSeriesCellValue, meta: ValueDisplayRendererContext_2) => JSX_2.Element;
18953
+ readonly categoryBarChart: (args: CategoryBarChartCellValue, meta: ValueDisplayRendererContext_2) => JSX_2.Element;
18954
+ readonly hourDistribution: (args: HourDistributionCellValue, meta: ValueDisplayRendererContext_2) => JSX_2.Element;
18955
+ readonly company: (args: CompanyCellValue_2, meta: ValueDisplayRendererContext_2) => JSX_2.Element;
18956
+ readonly team: (args: TeamCellValue_2, meta: ValueDisplayRendererContext_2) => JSX_2.Element;
18957
+ readonly tag: (args: TagCellValue_2) => JSX_2.Element;
18958
+ readonly dotTag: (args: DotTagCellValue_2) => JSX_2.Element;
18959
+ readonly tagList: (args: TagListCellValue_2) => JSX_2.Element;
18960
+ readonly icon: (args: IconCellValue, meta: ValueDisplayRendererContext_2) => JSX_2.Element;
18961
+ readonly file: (args: FileCellValue_2) => JSX_2.Element;
18962
+ readonly folder: (args: FolderCellValue_2) => JSX_2.Element;
18963
+ readonly country: (args: CountryCellValue, context: ValueDisplayRendererContext_2) => JSX_2.Element;
18674
18964
  readonly delta: (args: DeltaCellValue) => JSX_2.Element;
18675
- readonly summary: (args: SummaryCellValue, meta: ValueDisplayRendererContext) => JSX_2.Element;
18676
- readonly count: (args: CountCellValue, meta: ValueDisplayRendererContext) => JSX_2.Element;
18965
+ readonly summary: (args: SummaryCellValue, meta: ValueDisplayRendererContext_2) => JSX_2.Element;
18966
+ readonly count: (args: CountCellValue, meta: ValueDisplayRendererContext_2) => JSX_2.Element;
18677
18967
  };
18678
18968
 
18679
18969
  declare type ValueDisplayTableAlignment = "left" | "right";
@@ -18850,6 +19140,11 @@ declare type Visualization<R extends RecordType, Filters extends FiltersDefiniti
18850
19140
  type: "graph";
18851
19141
  /** Configuration options for graph visualization */
18852
19142
  options: GraphVisualizationOptions<R, Filters, Sortings>;
19143
+ } & VisualizationFilterOverrides<Filters, Sortings> & VisualizationLabelOverrides) | ({
19144
+ /** Map-based visualization type */
19145
+ type: "map";
19146
+ /** Configuration options for map visualization */
19147
+ options: MapVisualizationOptions<R, Filters, Sortings>;
18853
19148
  } & VisualizationFilterOverrides<Filters, Sortings> & VisualizationLabelOverrides) | ({
18854
19149
  /** Human-readable label for the visualization */
18855
19150
  label: string;