@factorialco/f0-react 6.25.0 → 6.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/dist/{ChatPdfThumbnail-BcVBUULI.js → ChatPdfThumbnail-CRUUJUXf.js} +1 -1
  2. package/dist/{CoachmarkProvider-fGHyrGJW.js → CoachmarkProvider-BsOG6-Cm.js} +139 -138
  3. package/dist/{DocumentToolbar-C-Cz6lqK.js → DocumentToolbar-h-osNkaJ.js} +2 -2
  4. package/dist/{DocxViewer-DmMRVboA.js → DocxViewer-CMcQEiZd.js} +2 -2
  5. package/dist/{F0AiProcessingOverlay--0Bl_XZf.js → F0AiProcessingOverlay-6M7AUjMf.js} +2074 -3269
  6. package/dist/{F0CanvasPanel-BragP3zs.js → F0CanvasPanel-Xorg4r1K.js} +17067 -15868
  7. package/dist/{F0VideoPlayer-CMR5ZpyW.js → F0VideoPlayer-WdXnre2S.js} +2 -2
  8. package/dist/LocationMap-yKvpVC9i.js +56 -0
  9. package/dist/{SheetViewer-DH9nqjul.js → SheetViewer-E7i3BkZ7.js} +2 -2
  10. package/dist/{TextViewer-BNT3vuPP.js → TextViewer-DO81T94b.js} +2 -2
  11. package/dist/ai.d.ts +25 -6
  12. package/dist/ai.js +2 -2
  13. package/dist/component-status.d.ts +6 -6
  14. package/dist/component-status.js +3 -3
  15. package/dist/experimental-DwMkcgpl.js +46539 -0
  16. package/dist/{LocationMap.css → experimental.css} +1 -1
  17. package/dist/experimental.d.ts +442 -40
  18. package/dist/experimental.js +229 -20356
  19. package/dist/f0.d.ts +25 -6
  20. package/dist/f0.js +44 -44
  21. package/dist/i18n-provider-defaults.d.ts +25 -6
  22. package/dist/i18n-provider-defaults.js +19 -0
  23. package/dist/index-CCASa2Xl.js +4 -0
  24. package/dist/{index-D2F78glP.js → index-dE_ni30Y.js} +4 -4
  25. package/dist/{pdfWorker-uhcsAraB.js → pdfWorker-D_NExtiv.js} +3 -3
  26. package/dist/styles.css +1 -1
  27. package/dist/{tooltip-Cik7KBQT.js → tooltip-DTpaXpXW.js} +2 -2
  28. package/package.json +2 -1
  29. package/dist/LocationMap-BeSyUnec.js +0 -24682
  30. package/dist/index-nFW_M0Ld.js +0 -4
@@ -31,7 +31,8 @@ import { CountryCellValue } from './types/country';
31
31
  import { DateCellValue } from './types/date';
32
32
  import { DateCellValue as DateCellValue_2 } from './experimental';
33
33
  import { DateFilterOptions } from './DateFilter/DateFilter';
34
- import { default as default_2 } from 'react';
34
+ import { default as default_2 } from 'maplibre-gl';
35
+ import { default as default_3 } from 'react';
35
36
  import { DeltaCellValue } from './types/delta';
36
37
  import { Dispatch } from 'react';
37
38
  import { DotTagCellValue } from './types/dotTag';
@@ -97,6 +98,7 @@ import { ScrollAreaProps } from '@radix-ui/react-scroll-area';
97
98
  import { SearchFilterOptions } from './SearchFilter/SearchFilter';
98
99
  import { StatusCellValue } from './types/status';
99
100
  import { StatusCellValue as StatusCellValue_2 } from './experimental';
101
+ import { StyleSpecification } from 'maplibre-gl';
100
102
  import { SummaryCellValue } from './types/summary';
101
103
  import { SVGProps } from 'react';
102
104
  import { TagAlertProps } from './experimental';
@@ -381,8 +383,8 @@ declare const actionVariants: readonly ["default", "outline", "critical", "neutr
381
383
  /**
382
384
  * @experimental This is an experimental component use it at your own risk
383
385
  */
384
- export declare const ActivityItemList: (({ items, loadingMoreItems, onClickItem, onEndReached, onEndReachedItemsThreshold, }: ActivityItemListProps) => default_2.JSX.Element) & {
385
- Skeleton: () => default_2.JSX.Element;
386
+ export declare const ActivityItemList: (({ items, loadingMoreItems, onClickItem, onEndReached, onEndReachedItemsThreshold, }: ActivityItemListProps) => default_3.JSX.Element) & {
387
+ Skeleton: () => default_3.JSX.Element;
386
388
  };
387
389
 
388
390
  export declare type ActivityItemListProps = Pick<SectionProps, "items" | "onClickItem"> & {
@@ -391,7 +393,7 @@ export declare type ActivityItemListProps = Pick<SectionProps, "items" | "onClic
391
393
  loadingMoreItems?: boolean;
392
394
  };
393
395
 
394
- export declare const ActivityItemListSkeleton: () => default_2.JSX.Element;
396
+ export declare const ActivityItemListSkeleton: () => default_3.JSX.Element;
395
397
 
396
398
  declare type ActivityItemProps = {
397
399
  id: string;
@@ -987,7 +989,7 @@ chart: BarChartProps;
987
989
 
988
990
  declare type BaseAction = Pick<F0ButtonProps, "label" | "onClick" | "icon" | "disabled">;
989
991
 
990
- export declare const BaseActivityItemList: ({ items, loadingMoreItems, onClickItem, onEndReached, onEndReachedItemsThreshold, }: ActivityItemListProps) => default_2.JSX.Element;
992
+ export declare const BaseActivityItemList: ({ items, loadingMoreItems, onClickItem, onEndReached, onEndReachedItemsThreshold, }: ActivityItemListProps) => default_3.JSX.Element;
991
993
 
992
994
  declare const BaseAvatar: ForwardRefExoticComponent<BaseAvatarProps & RefAttributes<HTMLDivElement>>;
993
995
 
@@ -1161,6 +1163,8 @@ declare interface BaseHeaderProps_2 {
1161
1163
  onClose?: () => void;
1162
1164
  }
1163
1165
 
1166
+ declare type BaseMapMarkerColor = (typeof markerColors)[number];
1167
+
1164
1168
  /**
1165
1169
  * Represents a base structure for paginated API responses, providing
1166
1170
  * details about the records on the current page and pagination metadata.
@@ -1850,22 +1854,22 @@ declare type CardPropertyDefinition<T> = PropertyDefinition_2<T> & {
1850
1854
  };
1851
1855
 
1852
1856
  declare const cardPropertyRenderers: {
1853
- readonly text: (args: TextCellValue_2, meta: ValueDisplayRendererContext_2) => default_2.JSX.Element;
1854
- readonly number: (args: NumberCellValue_2, meta: ValueDisplayRendererContext_2) => default_2.JSX.Element;
1855
- readonly date: (args: DateCellValue_2, meta: ValueDisplayRendererContext_2) => default_2.JSX.Element;
1856
- readonly amount: (args: AmountCellValue_2, meta: ValueDisplayRendererContext_2) => default_2.JSX.Element;
1857
- readonly person: (args: PersonCellValue_2, meta: ValueDisplayRendererContext_2) => default_2.JSX.Element;
1858
- readonly company: (args: CompanyCellValue_2, meta: ValueDisplayRendererContext_2) => default_2.JSX.Element;
1859
- readonly team: (args: TeamCellValue_2, meta: ValueDisplayRendererContext_2) => default_2.JSX.Element;
1860
- readonly status: (args: StatusCellValue_2) => default_2.JSX.Element;
1861
- readonly tag: (args: TagCellValue_2) => default_2.JSX.Element;
1862
- readonly avatarList: (args: AvatarListCellValue_2, meta: ValueDisplayRendererContext_2) => default_2.JSX.Element;
1863
- readonly tagList: (args: TagListCellValue_2) => default_2.JSX.Element;
1864
- readonly alertTag: (args: AlertTagCellValue_2) => default_2.JSX.Element;
1865
- readonly dotTag: (args: DotTagCellValue_2) => default_2.JSX.Element;
1866
- readonly file: (args: FileCellValue_2) => default_2.JSX.Element;
1867
- readonly folder: (args: FolderCellValue_2) => default_2.JSX.Element;
1868
- readonly progressBar: (args: ProgressBarCellValue_2, _meta: ValueDisplayRendererContext_2) => default_2.JSX.Element | null;
1857
+ readonly text: (args: TextCellValue_2, meta: ValueDisplayRendererContext_2) => default_3.JSX.Element;
1858
+ readonly number: (args: NumberCellValue_2, meta: ValueDisplayRendererContext_2) => default_3.JSX.Element;
1859
+ readonly date: (args: DateCellValue_2, meta: ValueDisplayRendererContext_2) => default_3.JSX.Element;
1860
+ readonly amount: (args: AmountCellValue_2, meta: ValueDisplayRendererContext_2) => default_3.JSX.Element;
1861
+ readonly person: (args: PersonCellValue_2, meta: ValueDisplayRendererContext_2) => default_3.JSX.Element;
1862
+ readonly company: (args: CompanyCellValue_2, meta: ValueDisplayRendererContext_2) => default_3.JSX.Element;
1863
+ readonly team: (args: TeamCellValue_2, meta: ValueDisplayRendererContext_2) => default_3.JSX.Element;
1864
+ readonly status: (args: StatusCellValue_2) => default_3.JSX.Element;
1865
+ readonly tag: (args: TagCellValue_2) => default_3.JSX.Element;
1866
+ readonly avatarList: (args: AvatarListCellValue_2, meta: ValueDisplayRendererContext_2) => default_3.JSX.Element;
1867
+ readonly tagList: (args: TagListCellValue_2) => default_3.JSX.Element;
1868
+ readonly alertTag: (args: AlertTagCellValue_2) => default_3.JSX.Element;
1869
+ readonly dotTag: (args: DotTagCellValue_2) => default_3.JSX.Element;
1870
+ readonly file: (args: FileCellValue_2) => default_3.JSX.Element;
1871
+ readonly folder: (args: FolderCellValue_2) => default_3.JSX.Element;
1872
+ readonly progressBar: (args: ProgressBarCellValue_2, _meta: ValueDisplayRendererContext_2) => default_3.JSX.Element | null;
1869
1873
  };
1870
1874
 
1871
1875
  declare type CardPropertyType = keyof typeof cardPropertyRenderers;
@@ -1979,7 +1983,7 @@ declare type CardVisualizationOptions<T, _Filters extends FiltersDefinition, _So
1979
1983
  /**
1980
1984
  * @experimental This is an experimental component use it at your own risk
1981
1985
  */
1982
- export declare const Carousel: WithDataTestIdReturnType_3<({ children, columns, showArrows, showDots, autoplay, delay, showPeek, doubleColumns, }: CarouselProps) => default_2.JSX.Element>;
1986
+ export declare const Carousel: WithDataTestIdReturnType_3<({ children, columns, showArrows, showDots, autoplay, delay, showPeek, doubleColumns, }: CarouselProps) => default_3.JSX.Element>;
1983
1987
 
1984
1988
  declare interface CarouselBreakpoints {
1985
1989
  default?: ColumnNumber;
@@ -1991,7 +1995,7 @@ declare interface CarouselBreakpoints {
1991
1995
  }
1992
1996
 
1993
1997
  declare interface CarouselProps {
1994
- children: default_2.ReactNode;
1998
+ children: default_3.ReactNode;
1995
1999
  showArrows?: boolean;
1996
2000
  showDots?: boolean;
1997
2001
  autoplay?: boolean;
@@ -3119,7 +3123,7 @@ declare type DataCollectionSettings = {
3119
3123
  };
3120
3124
 
3121
3125
  declare interface DataCollectionSettingsContextType {
3122
- setSettings: default_2.Dispatch<default_2.SetStateAction<DataCollectionSettings>>;
3126
+ setSettings: default_3.Dispatch<default_3.SetStateAction<DataCollectionSettings>>;
3123
3127
  settings: DataCollectionSettings;
3124
3128
  setVisualizationSettings: (key: keyof VisualizationSettings, settings: VisualizationSettings[keyof VisualizationSettings] | ((prev: VisualizationSettings[keyof VisualizationSettings]) => VisualizationSettings[keyof VisualizationSettings])) => void;
3125
3129
  }
@@ -4711,6 +4715,25 @@ declare const defaultTranslations: {
4711
4715
  readonly navigation: "Graph navigation";
4712
4716
  };
4713
4717
  };
4718
+ readonly map: {
4719
+ readonly region: "Map";
4720
+ readonly navigation: "Map navigation";
4721
+ readonly listLabel: "Locations";
4722
+ readonly location: "location";
4723
+ readonly locations: "locations";
4724
+ readonly unnamedLocation: "Location";
4725
+ readonly cluster: "Cluster of {{count}} locations";
4726
+ readonly skipToList: "Skip to location list";
4727
+ readonly loadError: "Couldn't load the map.";
4728
+ readonly retry: "Retry";
4729
+ readonly currentLocation: "Your location";
4730
+ readonly controls: {
4731
+ readonly zoomIn: "Zoom in";
4732
+ readonly zoomOut: "Zoom out";
4733
+ readonly fit: "Fit to markers";
4734
+ readonly locate: "My location";
4735
+ };
4736
+ };
4714
4737
  readonly wizard: {
4715
4738
  readonly previous: "Previous";
4716
4739
  readonly next: "Continue";
@@ -4824,7 +4847,7 @@ export declare type DetailsItemContent = (ComponentProps<typeof DataList.Item> &
4824
4847
  /**
4825
4848
  * @experimental This is an experimental component use it at your own risk
4826
4849
  */
4827
- export declare const DetailsItemsList: default_2.ForwardRefExoticComponent<DetailsItemsListProps & default_2.RefAttributes<HTMLDivElement>>;
4850
+ export declare const DetailsItemsList: default_3.ForwardRefExoticComponent<DetailsItemsListProps & default_3.RefAttributes<HTMLDivElement>>;
4828
4851
 
4829
4852
  declare interface DetailsItemsListProps extends WithDataTestIdProps {
4830
4853
  title?: string;
@@ -4890,7 +4913,7 @@ declare type DropdownInternalProps = {
4890
4913
  items: DropdownItem[];
4891
4914
  icon?: IconType;
4892
4915
  size?: F0ButtonProps["size"];
4893
- children?: default_2.ReactNode;
4916
+ children?: default_3.ReactNode;
4894
4917
  align?: "start" | "end" | "center";
4895
4918
  open?: boolean;
4896
4919
  onOpenChange?: (open: boolean) => void;
@@ -6669,6 +6692,320 @@ declare type F0LinkProps = Omit<ActionLinkProps, "variant" | "href"> & {
6669
6692
  href?: string;
6670
6693
  };
6671
6694
 
6695
+ export declare const F0Map: ForwardRefExoticComponent<F0MapProps & RefAttributes<F0MapHandle>>;
6696
+
6697
+ /**
6698
+ * An arc: a curved connection between two coordinates (the flight-path /
6699
+ * connection look). `F0Map` computes the curve; you give the endpoints.
6700
+ */
6701
+ export declare interface F0MapArc extends F0MapLineStyle {
6702
+ id: string;
6703
+ /** `[lng, lat]` origin. */
6704
+ from: [number, number];
6705
+ /** `[lng, lat]` destination. */
6706
+ to: [number, number];
6707
+ /** Bow height as a fraction of the endpoint distance. Defaults to `0.3`. */
6708
+ curvature?: number;
6709
+ }
6710
+
6711
+ export declare type F0MapControlLabels = {
6712
+ zoomIn?: string;
6713
+ zoomOut?: string;
6714
+ fit?: string;
6715
+ locate?: string;
6716
+ };
6717
+
6718
+ /**
6719
+ * The map's navigation toolbar - locate, fit, zoom in/out - as a vertical stack
6720
+ * of outline icon buttons. Presentational and engine-free: F0Map wires the
6721
+ * callbacks to the MapLibre instance and positions this overlay. Mirrors
6722
+ * F0GraphControls so the two spatial patterns share one control language.
6723
+ */
6724
+ export declare const F0MapControls: ForwardRefExoticComponent<F0MapControlsProps & RefAttributes<HTMLDivElement>>;
6725
+
6726
+ export declare interface F0MapControlsProps extends WithDataTestIdProps {
6727
+ /** Callback to zoom in. */
6728
+ onZoomIn?: () => void;
6729
+ /** Callback to zoom out. */
6730
+ onZoomOut?: () => void;
6731
+ /**
6732
+ * Fit all markers in view. When omitted (e.g. no markers), the button is
6733
+ * hidden.
6734
+ */
6735
+ onFit?: () => void;
6736
+ /**
6737
+ * Recenter on the user's location. When provided, a "locate" button renders
6738
+ * as the first control; omit it (e.g. no geolocation) for a clean toolbar.
6739
+ */
6740
+ onLocate?: () => void;
6741
+ /** Override the i18n control labels (tooltips / accessible names). */
6742
+ labels?: F0MapControlLabels;
6743
+ }
6744
+
6745
+ /** Imperative handle exposed via `ref`. */
6746
+ export declare interface F0MapHandle {
6747
+ /** The raw MapLibre instance (escape hatch). `null` until the map has mounted. */
6748
+ getMap: () => default_2.Map | null;
6749
+ /** Center on a marker (and select it). Always animates unless reduced-motion. */
6750
+ focusMarker: (id: string) => void;
6751
+ /** Frame all markers in view. */
6752
+ fitToMarkers: () => void;
6753
+ /** Clear the current selection. */
6754
+ clearSelection: () => void;
6755
+ }
6756
+
6757
+ /**
6758
+ * Palette hue for a drawn line (route or arc). Reuses the marker categorical
6759
+ * palette so lines and pins share one set of on-brand colors.
6760
+ */
6761
+ export declare type F0MapLineColor = BaseMapMarkerColor;
6762
+
6763
+ /** Styling shared by both line kinds (routes and arcs). */
6764
+ export declare interface F0MapLineStyle {
6765
+ /** Palette hue. Defaults to `radical`. Ignored when `color` is set. */
6766
+ variant?: F0MapLineColor;
6767
+ /** Escape-hatch CSS color string; overrides `variant`. */
6768
+ color?: string;
6769
+ /** Line width in px. Defaults to `3`. */
6770
+ width?: number;
6771
+ /** Render as a dashed line. Defaults to `false`. */
6772
+ dashed?: boolean;
6773
+ /** Line opacity, `0`-`1`. Defaults to `1`. */
6774
+ opacity?: number;
6775
+ }
6776
+
6777
+ /**
6778
+ * The map's markers as a real, operable HTML list - the conformant text
6779
+ * alternative to the WebGL canvas (which is opaque to assistive tech) and the
6780
+ * visible fallback when the map can't render. Screen-reader and keyboard users
6781
+ * drive the map through this: activating an item selects that marker (F0Map
6782
+ * flies to it). Kept in sync with the map by rendering from the same `points`.
6783
+ */
6784
+ export declare const F0MapList: ForwardRefExoticComponent<F0MapListProps & RefAttributes<HTMLElement>>;
6785
+
6786
+ export declare interface F0MapListProps extends WithDataTestIdProps {
6787
+ points: F0MapPoint[];
6788
+ selectedId: string | null;
6789
+ onSelect: (id: string) => void;
6790
+ /**
6791
+ * Render visibly (the WebGL/tile-error fallback). Otherwise the list is
6792
+ * screen-reader-only - present in the DOM and operable, but not shown.
6793
+ */
6794
+ visible?: boolean;
6795
+ /** Accessible name for the list landmark (and heading when visible). */
6796
+ label?: string;
6797
+ /** Anchor id, so a "skip to list" link can move focus here. */
6798
+ id?: string;
6799
+ /** Extra classes for the list container (e.g. when rendered as a fallback). */
6800
+ className?: string;
6801
+ }
6802
+
6803
+ export declare type F0MapMarkerVariant = (typeof f0MapMarkerVariants)[number];
6804
+
6805
+ /**
6806
+ * The data each semantic variant needs. Appearance is fixed by the variant:
6807
+ * - `default`: a plain pin, no icon or avatar (the generic marker).
6808
+ * - `workplace`: a building glyph on a fixed brand hue (all sites match).
6809
+ * - `employee` / `company`: an avatar whose color is its own identity color
6810
+ * (grey when a photo replaces the colored chip).
6811
+ * - `stop`: a route stop - a single letter (A, B, C...) on the same fixed
6812
+ * hue as the route/arc lines it punctuates.
6813
+ */
6814
+ export declare type F0MapMarkerVariantProps = {
6815
+ variant: "default";
6816
+ } | {
6817
+ variant: "workplace";
6818
+ } | {
6819
+ variant: "employee";
6820
+ firstName: string;
6821
+ lastName: string;
6822
+ src?: string;
6823
+ } | {
6824
+ variant: "company";
6825
+ name: string;
6826
+ src?: string;
6827
+ } | {
6828
+ variant: "stop";
6829
+ letter: string;
6830
+ };
6831
+
6832
+ /**
6833
+ * Product-semantic marker variants. Unlike the internal `BaseMapMarker` engine
6834
+ * (which exposes every knob), each of these fixes its own color and rendering
6835
+ * so a given concept looks and behaves the same everywhere on the map. Callers
6836
+ * pick a variant and pass only its data.
6837
+ */
6838
+ export declare const f0MapMarkerVariants: readonly ["default", "workplace", "employee", "company", "stop"];
6839
+
6840
+ /**
6841
+ * A point on the map: its coordinate plus the semantic marker variant and its
6842
+ * data. `F0Map` owns everything about how the marker looks and behaves - color,
6843
+ * size, label placement (collision-aware), selection and the pin indicator - so
6844
+ * a map's markers stay uniform. Callers pick a variant and pass its data.
6845
+ */
6846
+ export declare type F0MapPoint = {
6847
+ id: string;
6848
+ /** `[longitude, latitude]`. */
6849
+ coordinates: [number, number];
6850
+ label?: string;
6851
+ } & F0MapMarkerVariantProps;
6852
+
6853
+ /**
6854
+ * Map projection. `"globe"` renders the world as a 3D sphere (adaptive: it
6855
+ * eases into a flat mercator view as you zoom in).
6856
+ */
6857
+ export declare type F0MapProjection = "mercator" | "globe";
6858
+
6859
+ export declare interface F0MapProps extends WithDataTestIdProps {
6860
+ /**
6861
+ * Points to render as markers. Pass a referentially stable array (memoize
6862
+ * it): a new identity per render re-binds the clustering and label-collision
6863
+ * listeners. Markers are DOM elements - keep counts at workplace scale
6864
+ * (~200); beyond that pan/zoom degrades and a warning is logged.
6865
+ */
6866
+ markers?: F0MapPoint[];
6867
+ /**
6868
+ * Polylines drawn through their given coordinates, exactly as provided (no
6869
+ * routing is computed - pass server-side / routing-engine output). Rendered
6870
+ * as GL lines beneath the markers.
6871
+ */
6872
+ routes?: F0MapRoute[];
6873
+ /**
6874
+ * Curved connections between two coordinates (the flight-path look). `F0Map`
6875
+ * computes the curve from each arc's `from` / `to`.
6876
+ */
6877
+ arcs?: F0MapArc[];
6878
+ /** Fired when a route line is clicked. Providing it enables hover + click. */
6879
+ onRouteClick?: (id: string) => void;
6880
+ /** Fired when an arc line is clicked. Providing it enables hover + click. */
6881
+ onArcClick?: (id: string) => void;
6882
+ /** Controlled selected marker id. */
6883
+ selectedMarkerId?: string | null;
6884
+ /** Uncontrolled initial selection. */
6885
+ defaultSelectedMarkerId?: string | null;
6886
+ /** Fired when the selection changes (marker click or background click). */
6887
+ onMarkerSelect?: (id: string | null) => void;
6888
+ /**
6889
+ * Emphasise a marker without selecting it - a separate channel for an
6890
+ * external search/reveal. The highlighted marker floats above the rest, keeps
6891
+ * its label, and the map flies to it when the id changes. Selection (the
6892
+ * grown pin) stays driven by `selectedMarkerId`.
6893
+ */
6894
+ highlightedId?: string | null;
6895
+ /**
6896
+ * Frame all markers on load. Defaults to `true` when no `initialViewport` is
6897
+ * given, `false` otherwise (an explicit viewport wins).
6898
+ */
6899
+ fitToMarkers?: boolean;
6900
+ /** Initial camera. Defaults to a city-level view. Read once on mount. */
6901
+ initialViewport?: F0MapViewport;
6902
+ /** Light/dark style pair. Defaults to the f0-themed OpenFreeMap styles. */
6903
+ mapStyle?: F0MapStylePair;
6904
+ /**
6905
+ * Allow pan/zoom. Defaults to `true`. Read on mount: changing it recreates
6906
+ * the map (and resets the camera), so treat it as static.
6907
+ */
6908
+ interactive?: boolean;
6909
+ /**
6910
+ * Scroll/touch behaviour. `"cooperative"` (default) lets a plain wheel scroll
6911
+ * the page and requires Ctrl/⌘ + wheel (or two fingers) to zoom, so an
6912
+ * embedded map never traps the page scroll. `"greedy"` zooms on any wheel.
6913
+ * Read on mount, like `interactive`.
6914
+ */
6915
+ gestureHandling?: "cooperative" | "greedy";
6916
+ /**
6917
+ * Farthest the user can zoom out. Fitted to the viewport when omitted.
6918
+ * Read on mount, like `interactive`.
6919
+ */
6920
+ minZoom?: number;
6921
+ /** Closest the user can zoom in. Defaults to `18`. Read on mount. */
6922
+ maxZoom?: number;
6923
+ /**
6924
+ * Show the navigation controls (locate, fit, zoom). Defaults to `true`; only
6925
+ * rendered when the map is `interactive`.
6926
+ */
6927
+ showControls?: boolean;
6928
+ /** Override the controls' labels (tooltips / accessible names). */
6929
+ controlLabels?: F0MapControlLabels;
6930
+ /**
6931
+ * Enable the current-location feature. Defaults to `false`, in which case the
6932
+ * map never touches geolocation. When `true`, the dot auto-shows only if the
6933
+ * browser permission is *already* granted (never prompting on load); the
6934
+ * "locate me" control is the only thing that requests permission on demand.
6935
+ */
6936
+ showCurrentLocation?: boolean;
6937
+ /**
6938
+ * Edge-to-edge presentation. `false` (default) frames the map as a card -
6939
+ * large rounded corners, a secondary border, and controls inset 16px. `true`
6940
+ * drops the frame so the map bleeds to its container's edges, with controls
6941
+ * inset 24px.
6942
+ */
6943
+ fullScreen?: boolean;
6944
+ /**
6945
+ * Map projection. `"mercator"` (default) is the flat web map; `"globe"`
6946
+ * renders the world as a 3D sphere at low zoom and eases into mercator as you
6947
+ * zoom in - best for a world-scale view. Changing it re-projects live.
6948
+ */
6949
+ projection?: F0MapProjection;
6950
+ /** Show the skeleton instead of the map. */
6951
+ loading?: boolean;
6952
+ /** Accessible label for the map region. */
6953
+ ariaLabel?: string;
6954
+ /** @private */
6955
+ className?: string;
6956
+ }
6957
+
6958
+ /**
6959
+ * A route: a polyline drawn through the given coordinates exactly as provided.
6960
+ * `F0Map` renders the path; it does not compute routing - fetch that
6961
+ * server-side (or from a routing engine) and pass the resulting vertices.
6962
+ */
6963
+ export declare interface F0MapRoute extends F0MapLineStyle {
6964
+ id: string;
6965
+ /** Ordered `[lng, lat]` vertices the line passes through. */
6966
+ coordinates: [number, number][];
6967
+ }
6968
+
6969
+ /**
6970
+ * Loading placeholder: a plain pulsing surface in the shared `Skeleton`
6971
+ * component's tone. Shown while a consumer is still fetching what the map
6972
+ * should display; the map paints its own basemap once mounted, so this needs
6973
+ * no map-like illustration.
6974
+ */
6975
+ export declare const F0MapSkeleton: ({ dataTestId, className, }: F0MapSkeletonProps) => JSX_2.Element;
6976
+
6977
+ export declare interface F0MapSkeletonProps extends WithDataTestIdProps {
6978
+ /** @private */
6979
+ className?: string;
6980
+ }
6981
+
6982
+ /**
6983
+ * A light/dark pair of MapLibre styles. Each entry is either a hosted style
6984
+ * URL or an inline `StyleSpecification`.
6985
+ */
6986
+ export declare interface F0MapStylePair {
6987
+ light: string | StyleSpecification;
6988
+ dark: string | StyleSpecification;
6989
+ }
6990
+
6991
+ /**
6992
+ * f0-themed MapLibre styles over keyless OpenFreeMap vector tiles.
6993
+ *
6994
+ * Generated by `styles/buildStyles.mjs` from the OpenFreeMap Bright style: every
6995
+ * layer color is remapped to the nearest f0 token (CIEDE2000) and muted, then
6996
+ * resolved to concrete hex for the light and dark neutral ramps. Regenerate with
6997
+ * `node src/patterns/F0Map/styles/buildStyles.mjs`.
6998
+ */
6999
+ export declare const f0MapStyles: F0MapStylePair;
7000
+
7001
+ /** Initial camera position for the map. */
7002
+ export declare interface F0MapViewport {
7003
+ /** `[longitude, latitude]`. */
7004
+ center: [number, number];
7005
+ /** Zoom level (`0` world, higher = closer). Defaults to a city-level view. */
7006
+ zoom?: number;
7007
+ }
7008
+
6672
7009
  /**
6673
7010
  * @experimental This is an experimental component, use it at your own risk.
6674
7011
  */
@@ -9059,6 +9396,8 @@ declare interface LocalizedOption<T> {
9059
9396
  value: T;
9060
9397
  }
9061
9398
 
9399
+ declare const markerColors: readonly ["neutral", "grey", "radical", "malibu", "viridian", "flubber", "grass", "camel", "indigo", "lilac", "orange", "purple", "yellow", "red", "army", "smoke", "barbie"];
9400
+
9062
9401
  export declare const MAX_EXPANDED_ACTIONS = 2;
9063
9402
 
9064
9403
  /**
@@ -9484,6 +9823,30 @@ export declare interface NewHomeLayoutProps {
9484
9823
  * dragging and the add placeholder; the others stay put. Both by default.
9485
9824
  */
9486
9825
  editableWidgetContainers?: WidgetContainerSide[];
9826
+ /**
9827
+ * Which containers keep ONLY THE WIDGETS YOU CAN SEE in the DOM. None by
9828
+ * default: for a Home of a dozen widgets, mounting them all is what keeps a
9829
+ * card's data, clock and animation alive across everything this layout does to
9830
+ * it, and virtualizing would trade that away for nothing.
9831
+ *
9832
+ * Name a side once its widgets can outnumber a screen — a hundred cards is a
9833
+ * hundred fetches and a hundred charts, and all but the three in view are work
9834
+ * nobody asked for. Below `virtualization.threshold` widgets (12 by default) the
9835
+ * column still renders them all, so naming a side here is a CEILING rather than
9836
+ * a switch. What it costs is on `WidgetVirtualization`; in short, a widget that
9837
+ * scrolls out is unmounted and comes back new, and only the cards in view get
9838
+ * out of a dragged one's way.
9839
+ *
9840
+ * STACKED (below `md`) the rail's widgets belong to the main column, so "main"
9841
+ * is what virtualizes them there.
9842
+ */
9843
+ virtualizedWidgetContainers?: WidgetContainerSide[];
9844
+ /**
9845
+ * Tuning for the above — the height a card is guessed at before it is measured,
9846
+ * how many are kept past each edge, and the count it starts at. The scroll
9847
+ * region is this layout's own, per side, and is not yours to set.
9848
+ */
9849
+ virtualization?: Omit<WidgetVirtualization, "scrollElement">;
9487
9850
  /**
9488
9851
  * Called with a widget id when its "Remove widget" menu item is used — the
9489
9852
  * three-dots menu in the widget's own header.
@@ -10112,8 +10475,8 @@ declare interface OnePaginationProps {
10112
10475
  /**
10113
10476
  * @experimental This is an experimental component use it at your own risk
10114
10477
  */
10115
- export declare const OnePersonListItem: WithDataTestIdReturnType_3<default_2.ForwardRefExoticComponent<OnePersonListItemProps & default_2.RefAttributes<HTMLDivElement>> & {
10116
- Skeleton: () => default_2.JSX.Element;
10478
+ export declare const OnePersonListItem: WithDataTestIdReturnType_3<default_3.ForwardRefExoticComponent<OnePersonListItemProps & default_3.RefAttributes<HTMLDivElement>> & {
10479
+ Skeleton: () => default_3.JSX.Element;
10117
10480
  }>;
10118
10481
 
10119
10482
  export declare type OnePersonListItemProps = {
@@ -12292,10 +12655,10 @@ export declare const ToggleGroupItem: React_2.ForwardRefExoticComponent<Omit<Tog
12292
12655
  /**
12293
12656
  * @experimental This is an experimental component use it at your own risk
12294
12657
  */
12295
- export declare const Tooltip: WithDataTestIdReturnType_3<(props: TooltipProps) => default_2.JSX.Element>;
12658
+ export declare const Tooltip: WithDataTestIdReturnType_3<(props: TooltipProps) => default_3.JSX.Element>;
12296
12659
 
12297
12660
  declare type TooltipInternalProps = {
12298
- children: default_2.ReactNode;
12661
+ children: default_3.ReactNode;
12299
12662
  shortcut?: ComponentProps<typeof Shortcut>["keys"];
12300
12663
  delay?: number;
12301
12664
  instant?: boolean;
@@ -12902,7 +13265,7 @@ export declare interface ViewportInset {
12902
13265
  /**
12903
13266
  * @experimental This is an experimental component use it at your own risk
12904
13267
  */
12905
- export declare const VirtualList: default_2.ForwardRefExoticComponent<VirtualListProps & default_2.RefAttributes<HTMLDivElement>>;
13268
+ export declare const VirtualList: default_3.ForwardRefExoticComponent<VirtualListProps & default_3.RefAttributes<HTMLDivElement>>;
12906
13269
 
12907
13270
  declare type VirtualListProps = {
12908
13271
  height: number;
@@ -13078,10 +13441,10 @@ declare type WelcomeSuggestionClickEvent = {
13078
13441
  /**
13079
13442
  * @experimental This is an experimental component use it at your own risk
13080
13443
  */
13081
- export declare const Widget: WithDataTestIdReturnType_3<default_2.ForwardRefExoticComponent<WidgetProps & {
13444
+ export declare const Widget: WithDataTestIdReturnType_3<default_3.ForwardRefExoticComponent<WidgetProps & {
13082
13445
  children: ReactNode;
13083
- } & default_2.RefAttributes<HTMLDivElement>> & {
13084
- Skeleton: default_2.ForwardRefExoticComponent<WidgetSkeletonProps & default_2.RefAttributes<HTMLDivElement>>;
13446
+ } & default_3.RefAttributes<HTMLDivElement>> & {
13447
+ Skeleton: default_3.ForwardRefExoticComponent<WidgetSkeletonProps & default_3.RefAttributes<HTMLDivElement>>;
13085
13448
  }>;
13086
13449
 
13087
13450
  export declare function WidgetAvatarsListItem({ id, title, subtitle, avatars, remainingCount, withPointerCursor, onClick, ...props }: WidgetAvatarsListItemProps): JSX_2.Element;
@@ -13363,6 +13726,45 @@ export declare const widgetTitle: (widget: {
13363
13726
  params?: WidgetParams;
13364
13727
  }) => string;
13365
13728
 
13729
+ /**
13730
+ * VIRTUALIZATION — what a column does when it has more widgets than a screen.
13731
+ *
13732
+ * A widget is not a row: it is a card with its own data, its own chart, its own
13733
+ * list of rows inside it. A hundred of them mounted is a hundred fetches, a
13734
+ * hundred charts laid out and a DOM the browser spends every frame on, and all
13735
+ * but the three you can see are work nobody asked for. So a virtualized column
13736
+ * mounts ONLY the widgets in view (plus `overscan` past each edge) and holds the
13737
+ * space of the rest open, so the scrollbar still describes the whole column.
13738
+ *
13739
+ * WHAT IT COSTS, and why it is opt-in rather than the default:
13740
+ *
13741
+ * - A widget that scrolls out is UNMOUNTED. Whatever it had loaded, timed or
13742
+ * animated is gone, and it starts again when it comes back — the opposite of
13743
+ * what the collapsed rail is built to guarantee. For a column of a few widgets
13744
+ * that trade is a bad one, which is what `threshold` is for.
13745
+ * - Dragging still reorders correctly, but only the widgets that are MOUNTED
13746
+ * shuffle out of the way as you go: dnd-kit can't move a card that isn't
13747
+ * there. The dragged card itself is pinned into the DOM for the whole gesture.
13748
+ * - `fullHeight` means nothing here. A virtualized column's height is the sum of
13749
+ * its cards, so there is no column height for a card to fill.
13750
+ */
13751
+ export declare interface WidgetVirtualization {
13752
+ /**
13753
+ * Below this many widgets the column simply renders them all. Defaults to 12.
13754
+ */
13755
+ threshold?: number;
13756
+ /** First guess at a card's height in px, before it is measured. */
13757
+ estimateHeight?: number;
13758
+ /** How many cards stay mounted past each edge of the viewport. */
13759
+ overscan?: number;
13760
+ /**
13761
+ * The scroll region to virtualize against. Defaults to the column's nearest
13762
+ * scrollable ancestor — pass it when you already have the element (it saves
13763
+ * the walk, and it is exact).
13764
+ */
13765
+ scrollElement?: HTMLElement | null;
13766
+ }
13767
+
13366
13768
  declare type WidgetWidth = "sm" | "md" | "lg";
13367
13769
 
13368
13770
  declare interface WiggleOptions {
@@ -13535,10 +13937,8 @@ declare module "@tiptap/core" {
13535
13937
 
13536
13938
  declare module "@tiptap/core" {
13537
13939
  interface Commands<ReturnType> {
13538
- indent: {
13539
- setIndent: (level: number) => ReturnType;
13540
- unsetIndent: () => ReturnType;
13541
- outdent: () => ReturnType;
13940
+ moodTracker: {
13941
+ insertMoodTracker: (data: MoodTrackerData) => ReturnType;
13542
13942
  };
13543
13943
  }
13544
13944
  }
@@ -13546,8 +13946,10 @@ declare module "@tiptap/core" {
13546
13946
 
13547
13947
  declare module "@tiptap/core" {
13548
13948
  interface Commands<ReturnType> {
13549
- moodTracker: {
13550
- insertMoodTracker: (data: MoodTrackerData) => ReturnType;
13949
+ indent: {
13950
+ setIndent: (level: number) => ReturnType;
13951
+ unsetIndent: () => ReturnType;
13952
+ outdent: () => ReturnType;
13551
13953
  };
13552
13954
  }
13553
13955
  }