@factorialco/f0-react 1.434.0 → 1.436.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/f0.d.ts CHANGED
@@ -39,6 +39,7 @@ import { default as default_2 } from 'react';
39
39
  import { DeltaCellValue } from './types/delta';
40
40
  import { DotTagCellValue } from './f0';
41
41
  import { DotTagCellValue as DotTagCellValue_2 } from './types/dotTag';
42
+ import type * as echarts_2 from 'echarts';
42
43
  import { F0AnalyticsDashboardProps as F0AnalyticsDashboardProps_2 } from './types';
43
44
  import { F0AvatarCompanyProps as F0AvatarCompanyProps_2 } from './types';
44
45
  import { F0AvatarDateProps } from './F0AvatarDate';
@@ -47,6 +48,7 @@ import { F0AvatarIconProps as F0AvatarIconProps_2 } from './F0AvatarIcon';
47
48
  import { F0AvatarListProps as F0AvatarListProps_2 } from './types';
48
49
  import { F0AvatarPersonProps as F0AvatarPersonProps_2 } from './types';
49
50
  import { F0AvatarTeamProps as F0AvatarTeamProps_2 } from './F0AvatarTeam';
51
+ import { F0DataChartProps as F0DataChartProps_2 } from './types';
50
52
  import { F0DialogInternalProps } from './internal-types';
51
53
  import { F0DurationInputProps as F0DurationInputProps_2 } from './types';
52
54
  import { F0FormDefinitionPerSection as F0FormDefinitionPerSection_2 } from './f0';
@@ -110,6 +112,7 @@ import { Props as Props_2 } from './types';
110
112
  import * as React_2 from 'react';
111
113
  import { ReactElement } from 'react';
112
114
  import { ReactNode } from 'react';
115
+ import * as RechartsPrimitive from 'recharts';
113
116
  import { RefAttributes } from 'react';
114
117
  import { RefObject } from 'react';
115
118
  import { RemoteAudioTrack } from 'livekit-client';
@@ -163,6 +166,17 @@ declare type Action_3 = {
163
166
  loading?: boolean;
164
167
  };
165
168
 
169
+ export declare type ActionBarGroup = {
170
+ label?: string;
171
+ items: ActionBarItem[];
172
+ };
173
+
174
+ export declare type ActionBarItem = ActionType_2;
175
+
176
+ export declare type ActionBarStatus = (typeof actionBarStatuses)[number];
177
+
178
+ export declare const actionBarStatuses: readonly ["idle", "loading", "success", "error"];
179
+
166
180
  declare type ActionBaseProps = ActionCommonProps & DataAttributes;
167
181
 
168
182
  declare type ActionButtonProps = ActionBaseProps & {
@@ -294,6 +308,15 @@ declare const actionSizes: readonly ["sm", "md", "lg"];
294
308
 
295
309
  export declare type ActionType = "duplicate" | "delete";
296
310
 
311
+ declare type ActionType_2 = {
312
+ label: string;
313
+ icon?: IconType;
314
+ onClick?: () => void;
315
+ disabled?: boolean;
316
+ critical?: boolean;
317
+ description?: string;
318
+ };
319
+
297
320
  declare type ActionVariant = (typeof actionVariants)[number];
298
321
 
299
322
  declare const actionVariants: readonly ["default", "outline", "critical", "neutral", "ghost", "promote", "outlinePromote", "ai", "link", "unstyled", "mention"];
@@ -517,6 +540,10 @@ declare type AiChatProviderReturnValue = {
517
540
  inProgress: boolean;
518
541
  /** Set the in-progress state (synced from CopilotKit's isLoading) */
519
542
  setInProgress: (value: boolean) => void;
543
+ /** The current clarifying question shown in the textarea, or null if none */
544
+ clarifyingQuestion: ClarifyingQuestionState | null;
545
+ /** Set the current clarifying question (or null to dismiss) */
546
+ setClarifyingQuestion: React.Dispatch<React.SetStateAction<ClarifyingQuestionState | null>>;
520
547
  } & Pick<AiChatState, "greeting" | "agent" | "disclaimer" | "resizable" | "entityRefs" | "toolHints" | "credits" | "fileAttachments"> & {
521
548
  /** The current canvas content, or null when canvas is closed */
522
549
  canvasContent: CanvasContent | null;
@@ -702,6 +729,15 @@ export declare const aiTranslations: {
702
729
  };
703
730
  readonly attachFile: "Attach file";
704
731
  readonly removeFile: "Remove";
732
+ readonly clarifyingQuestion: {
733
+ readonly submit: "Submit";
734
+ readonly next: "Next";
735
+ readonly back: "Back";
736
+ readonly typeYourAnswer: "Type your answer…";
737
+ readonly stepOf: "{{current}} of {{total}}";
738
+ readonly custom: "own answer";
739
+ readonly skipped: "skipped";
740
+ };
705
741
  readonly growth: {
706
742
  readonly demoCard: {
707
743
  readonly title: "See {{moduleName}} in action";
@@ -925,6 +961,24 @@ export declare interface BarChartConfig extends ChartConfigBase {
925
961
  stacked?: boolean;
926
962
  }
927
963
 
964
+ /**
965
+ * Skeleton for bar chart content area.
966
+ *
967
+ * - `orientation: "vertical"` (default): vertical bars with varying heights.
968
+ * - `orientation: "horizontal"`: horizontal bars extending left-to-right.
969
+ * - `stacked: true`: each bar has 2–3 stacked segments.
970
+ */
971
+ export declare function BarChartSkeleton({ orientation, stacked, showLegend, }?: BarChartSkeletonProps): JSX_2.Element;
972
+
973
+ declare interface BarChartSkeletonProps {
974
+ /** Bar orientation. @default "vertical" */
975
+ orientation?: "vertical" | "horizontal";
976
+ /** Show stacked bar segments. @default false */
977
+ stacked?: boolean;
978
+ /** Show legend below chart. @default true */
979
+ showLegend?: boolean;
980
+ }
981
+
928
982
  declare type BaseAction = {
929
983
  label: string;
930
984
  onClick: () => Promise<void> | void;
@@ -1685,6 +1739,87 @@ declare interface CardSecondaryLink extends Pick<F0LinkProps, "href" | "target"
1685
1739
  label: string;
1686
1740
  }
1687
1741
 
1742
+ declare type CardSelectableAvatarVariant = AvatarVariant | {
1743
+ type: "emoji";
1744
+ emoji: string;
1745
+ } | {
1746
+ type: "file";
1747
+ file: File;
1748
+ } | {
1749
+ type: "icon";
1750
+ icon: IconType;
1751
+ };
1752
+
1753
+ export declare const CardSelectableContainer: CardSelectableContainerGeneric;
1754
+
1755
+ declare type CardSelectableContainerGeneric = <T extends CardSelectableValue>(props: CardSelectableContainerProps<T> & WithDataTestIdProps) => ReactElement | null;
1756
+
1757
+ export declare type CardSelectableContainerProps<T extends CardSelectableValue> = CardSelectableSingleProps<T> | CardSelectableMultipleProps<T>;
1758
+
1759
+ export declare interface CardSelectableItem<T extends CardSelectableValue> {
1760
+ /** Unique value for this option */
1761
+ value: T;
1762
+ /** Main title of the card */
1763
+ title: string;
1764
+ /** Description text below the title */
1765
+ description?: string;
1766
+ /** Avatar to display on the left */
1767
+ avatar?: CardSelectableAvatarVariant;
1768
+ /** Whether this item is disabled */
1769
+ disabled?: boolean;
1770
+ /** Whether this item is required (shows asterisk indicator) */
1771
+ required?: boolean;
1772
+ /** Link displayed below the description, typically pointing to external documentation */
1773
+ moreInfoLink?: {
1774
+ href: string;
1775
+ label?: string;
1776
+ };
1777
+ }
1778
+
1779
+ export declare interface CardSelectableMultipleProps<T extends CardSelectableValue> {
1780
+ /** List of selectable items */
1781
+ items: CardSelectableItem<T>[];
1782
+ /** Multiple selection mode */
1783
+ multiple: true;
1784
+ /** Currently selected values */
1785
+ value?: T[];
1786
+ /** Callback when selection changes */
1787
+ onChange?: (value: T[]) => void;
1788
+ /** Whether the entire selector is disabled */
1789
+ disabled?: boolean;
1790
+ /** Label for the group (used for accessibility) */
1791
+ label?: string;
1792
+ /** Layout direction (default: vertical) */
1793
+ layout?: "vertical" | "horizontal";
1794
+ /** When true, shows a toggle/switch indicator instead of checkbox */
1795
+ isToggle?: boolean;
1796
+ /** When true, items are grouped in a single bordered container with dividers */
1797
+ grouped?: boolean;
1798
+ }
1799
+
1800
+ export declare interface CardSelectableSingleProps<T extends CardSelectableValue> {
1801
+ /** List of selectable items */
1802
+ items: CardSelectableItem<T>[];
1803
+ /** Single selection mode (default) */
1804
+ multiple?: false;
1805
+ /** Currently selected value */
1806
+ value?: T;
1807
+ /** Callback when selection changes (receives undefined when isToggle and toggling off) */
1808
+ onChange?: (value: T | undefined) => void;
1809
+ /** Whether the entire selector is disabled */
1810
+ disabled?: boolean;
1811
+ /** Label for the group (used for accessibility) */
1812
+ label?: string;
1813
+ /** Layout direction (default: vertical) */
1814
+ layout?: "vertical" | "horizontal";
1815
+ /** When true, shows a toggle/switch indicator instead of radio and allows toggling off */
1816
+ isToggle?: boolean;
1817
+ /** When true, items are grouped in a single bordered container with dividers */
1818
+ grouped?: boolean;
1819
+ }
1820
+
1821
+ export declare type CardSelectableValue = string | number;
1822
+
1688
1823
  declare type CardVisualizationOptions<T, _Filters extends FiltersDefinition, _Sortings extends SortingsDefinition> = {
1689
1824
  cardProperties: ReadonlyArray<CardPropertyDefinition<T>>;
1690
1825
  title: (record: T) => string;
@@ -1701,13 +1836,13 @@ declare type CardVisualizationOptions<T, _Filters extends FiltersDefinition, _So
1701
1836
  export declare const CategoryBarChart: WithDataTestIdReturnType_5<ForwardRefExoticComponent<Omit<CategoryBarProps & RefAttributes<HTMLDivElement>, "ref"> & RefAttributes<HTMLElement | SVGElement>>>;
1702
1837
 
1703
1838
  /** A valid chart color token — one of the 15 chromatic F0 base-color names. */
1704
- declare type ChartColorToken = (typeof chartColorTokens)[number];
1839
+ export declare type ChartColorToken = (typeof chartColorTokens)[number];
1705
1840
 
1706
1841
  /**
1707
1842
  * The 15 chromatic color names from the F0 design token palette.
1708
1843
  * These are the only colors allowed for custom series / data-point colors.
1709
1844
  */
1710
- declare const chartColorTokens: readonly ["lilac", "barbie", "smoke", "army", "flubber", "indigo", "camel", "radical", "viridian", "orange", "red", "grass", "malibu", "yellow", "purple"];
1845
+ export declare const chartColorTokens: readonly ["lilac", "barbie", "smoke", "army", "flubber", "indigo", "camel", "radical", "viridian", "orange", "red", "grass", "malibu", "yellow", "purple"];
1711
1846
 
1712
1847
  declare interface ChartComputation {
1713
1848
  datasetId: string;
@@ -1720,6 +1855,21 @@ declare interface ChartComputation {
1720
1855
  limit?: number;
1721
1856
  }
1722
1857
 
1858
+ declare type ChartConfig_3 = Record<string, ChartConfig_4[keyof ChartConfig_4]>;
1859
+
1860
+ declare type ChartConfig_4 = {
1861
+ [k in string]: {
1862
+ label?: React_2.ReactNode;
1863
+ icon?: React_2.ComponentType;
1864
+ } & ({
1865
+ color?: string;
1866
+ theme?: never;
1867
+ } | {
1868
+ color?: never;
1869
+ theme: Record<keyof typeof THEMES, string>;
1870
+ });
1871
+ };
1872
+
1723
1873
  declare interface ChartConfigBase {
1724
1874
  /** Show the legend below the chart. @default true */
1725
1875
  showLegend?: boolean;
@@ -1733,6 +1883,85 @@ declare interface ChartConfigBase {
1733
1883
  categoryFormatter?: (value: string) => string;
1734
1884
  }
1735
1885
 
1886
+ declare const ChartContainer: React_2.ForwardRefExoticComponent<Omit<ChartContainerComponentProps, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
1887
+
1888
+ declare interface ChartContainerComponentProps extends React_2.ComponentProps<"div">, VariantProps<typeof variants> {
1889
+ config: ChartConfig_4;
1890
+ children: React_2.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>["children"];
1891
+ }
1892
+
1893
+ declare type ChartItem<K extends ChartConfig_3> = {
1894
+ label: string;
1895
+ values: {
1896
+ [key in keyof K]: number;
1897
+ };
1898
+ };
1899
+
1900
+ /**
1901
+ * Complete chart theme — everything a chart type needs to render correctly.
1902
+ *
1903
+ * Resolved at runtime from CSS custom properties so that it automatically
1904
+ * adapts to light / dark mode. Every chart type hook receives this object
1905
+ * and passes it through to the shared option builders.
1906
+ */
1907
+ export declare interface ChartTheme {
1908
+ /** Current mode — useful for conditional logic in chart-type hooks */
1909
+ mode: "light" | "dark";
1910
+ /** Semantic colors */
1911
+ colors: ChartThemeColors;
1912
+ /** Default series color palette (hex strings) */
1913
+ palette: string[];
1914
+ /** Tooltip visual config */
1915
+ tooltip: ChartThemeTooltip;
1916
+ /** Axis pointer visual config */
1917
+ axisPointer: ChartThemeAxisPointer;
1918
+ /** Base text style applied to the entire ECharts instance */
1919
+ textStyle: ChartThemeTextStyle;
1920
+ }
1921
+
1922
+ /** Axis pointer visual configuration */
1923
+ declare interface ChartThemeAxisPointer {
1924
+ color: string;
1925
+ type: "dashed" | "solid";
1926
+ }
1927
+
1928
+ /** Semantic colors used by every chart type */
1929
+ declare interface ChartThemeColors {
1930
+ /** Primary text — tooltip body, strong labels. Resolves from --neutral-80 */
1931
+ foreground: string;
1932
+ /** Secondary text — legend labels. Resolves from --neutral-50 */
1933
+ foregroundSecondary: string;
1934
+ /** Tertiary text — axis tick labels. Resolves from --neutral-40 */
1935
+ foregroundTertiary: string;
1936
+ /** Grid / split lines, category axis line. Resolves from --neutral-10 */
1937
+ borderSecondary: string;
1938
+ /** Axis pointer line, subtle dividers. Resolves from --neutral-30 */
1939
+ border: string;
1940
+ /** Tooltip background color (CSS rgba string) */
1941
+ tooltipBackground: string;
1942
+ /** Chart container background — used when chart needs to know its own bg */
1943
+ background: string;
1944
+ }
1945
+
1946
+ /** Typography configuration */
1947
+ declare interface ChartThemeTextStyle {
1948
+ fontFamily: string;
1949
+ fontSize: number;
1950
+ fontWeight: number;
1951
+ }
1952
+
1953
+ /** Tooltip visual configuration */
1954
+ declare interface ChartThemeTooltip {
1955
+ padding: number[];
1956
+ borderWidth: number;
1957
+ borderRadius: number;
1958
+ transitionDuration: number;
1959
+ /** CSS box-shadow applied via extraCssText */
1960
+ boxShadow: string;
1961
+ /** Full CSS background string (may include rgba + filters) */
1962
+ background: string;
1963
+ }
1964
+
1736
1965
  declare interface ChatDashboardBarChartConfig extends ChatDashboardChartConfigBase {
1737
1966
  type: "bar";
1738
1967
  orientation?: "vertical" | "horizontal";
@@ -1963,6 +2192,11 @@ declare type ChildrenPaginationInfo = {
1963
2192
 
1964
2193
  declare type ChildrenResponse<R extends RecordType> = NestedResponseWithType<R>;
1965
2194
 
2195
+ /**
2196
+ * @experimental This is an experimental component use it at your own risk
2197
+ */
2198
+ export declare const Chip: ({ deactivated, label, variant, onClick, onClose, avatar, icon, }: ChipProps) => JSX_2.Element;
2199
+
1966
2200
  declare type ChipLabel = {
1967
2201
  label: string;
1968
2202
  } & ({
@@ -1976,7 +2210,7 @@ declare type ChipLabel = {
1976
2210
  avatar?: never;
1977
2211
  });
1978
2212
 
1979
- declare type ChipProps = BaseChipProps & ChipVariants & {
2213
+ export declare type ChipProps = BaseChipProps & ChipVariants & {
1980
2214
  variant?: "default" | "selected";
1981
2215
  };
1982
2216
 
@@ -1997,7 +2231,7 @@ declare type ChipVariants = {
1997
2231
  icon?: undefined;
1998
2232
  };
1999
2233
 
2000
- declare const chipVariants: (props?: ({
2234
+ export declare const chipVariants: (props?: ({
2001
2235
  variant?: "default" | "selected" | undefined;
2002
2236
  } & ({
2003
2237
  class?: ClassValue;
@@ -2007,6 +2241,81 @@ declare const chipVariants: (props?: ({
2007
2241
  className?: ClassValue;
2008
2242
  })) | undefined) => string;
2009
2243
 
2244
+ /**
2245
+ * A single selectable option within a clarifying question step.
2246
+ */
2247
+ declare interface ClarifyingOption {
2248
+ /** Unique identifier for this option */
2249
+ id: string;
2250
+ /** Display label shown to the user */
2251
+ label: string;
2252
+ }
2253
+
2254
+ /**
2255
+ * The active clarifying question state pushed into the AiChat context.
2256
+ * When no clarifying question is active the context value is `null`.
2257
+ *
2258
+ * Navigation metadata (currentStepIndex, totalSteps) and callbacks live
2259
+ * here so the panel component stays a pure view of this state.
2260
+ */
2261
+ declare interface ClarifyingQuestionState {
2262
+ /** The current step's data + interaction state */
2263
+ currentStep: ClarifyingStepState;
2264
+ /** Zero-based index of the current step */
2265
+ currentStepIndex: number;
2266
+ /** Total number of steps (1 for single-step questions) */
2267
+ totalSteps: number;
2268
+ /** Toggle selection of an option by its ID */
2269
+ toggleOption: (optionId: string) => void;
2270
+ /** Confirm the current step's selection and advance (or submit on final step) */
2271
+ confirm: () => void;
2272
+ /** Go back to the previous step */
2273
+ back: () => void;
2274
+ /** Set the custom answer text */
2275
+ setCustomAnswerText: (text: string) => void;
2276
+ /** Toggle whether the custom answer is included in the submission */
2277
+ setCustomAnswerActive: (active: boolean) => void;
2278
+ /** Activate the custom answer input (in single mode, clears predefined selections) */
2279
+ activateCustomAnswer: () => void;
2280
+ }
2281
+
2282
+ /**
2283
+ * Selection mode for a clarifying question step.
2284
+ * - "single": only one option can be selected (rendered as radio buttons)
2285
+ * - "multiple": multiple options can be selected (rendered as checkboxes)
2286
+ */
2287
+ declare type ClarifyingSelectionMode = "single" | "multiple";
2288
+
2289
+ /**
2290
+ * Pure data describing a single clarifying question step.
2291
+ * This is what the AI backend sends — no UI state or callbacks.
2292
+ */
2293
+ declare interface ClarifyingStepData {
2294
+ /** The question text displayed to the user */
2295
+ question: string;
2296
+ /** Available options the user can select from */
2297
+ options: ClarifyingOption[];
2298
+ /** Selection mode. Defaults to "single" when omitted */
2299
+ selectionMode?: ClarifyingSelectionMode;
2300
+ /** Whether the user can skip this step without selecting any option */
2301
+ optional?: boolean;
2302
+ /** Whether the user can type a free-text custom answer */
2303
+ allowCustomAnswer?: boolean;
2304
+ }
2305
+
2306
+ /**
2307
+ * A step enriched with the user's current interaction state.
2308
+ * Used internally by the controller to track selections per step.
2309
+ */
2310
+ declare interface ClarifyingStepState extends ClarifyingStepData {
2311
+ /** IDs of currently selected options */
2312
+ selectedOptionIds: string[];
2313
+ /** Current custom answer text (preserved even when deactivated) */
2314
+ customAnswerText?: string;
2315
+ /** Whether the custom answer is currently included in the submission */
2316
+ isCustomAnswerActive: boolean;
2317
+ }
2318
+
2010
2319
  declare type ColId = string;
2011
2320
 
2012
2321
  declare interface CollectionComputation {
@@ -3281,6 +3590,15 @@ export declare const defaultTranslations: {
3281
3590
  };
3282
3591
  readonly attachFile: "Attach file";
3283
3592
  readonly removeFile: "Remove";
3593
+ readonly clarifyingQuestion: {
3594
+ readonly submit: "Submit";
3595
+ readonly next: "Next";
3596
+ readonly back: "Back";
3597
+ readonly typeYourAnswer: "Type your answer…";
3598
+ readonly stepOf: "{{current}} of {{total}}";
3599
+ readonly custom: "own answer";
3600
+ readonly skipped: "skipped";
3601
+ };
3284
3602
  readonly growth: {
3285
3603
  readonly demoCard: {
3286
3604
  readonly title: "See {{moduleName}} in action";
@@ -3855,6 +4173,51 @@ declare type ExtractVisualizationSettings<T> = T extends {
3855
4173
  };
3856
4174
  } ? S : never;
3857
4175
 
4176
+ export declare const F0ActionBar: WithDataTestIdReturnType_3<ForwardRefExoticComponent<F0ActionBarProps & RefAttributes<F0ActionBarRef>>>;
4177
+
4178
+ declare interface F0ActionBarProps {
4179
+ /**
4180
+ * Whether the action bar is open
4181
+ */
4182
+ isOpen: boolean;
4183
+ /**
4184
+ * The primary action
4185
+ */
4186
+ primaryActions?: ActionBarItem[] | ActionBarGroup[] | ActionBarGroup;
4187
+ /**
4188
+ * The secondary actions
4189
+ */
4190
+ secondaryActions?: ActionBarItem[];
4191
+ /**
4192
+ * The label of the action bar
4193
+ */
4194
+ label?: string;
4195
+ /**
4196
+ * Visual variant of the action bar
4197
+ * - "dark": Dark background with light text (default)
4198
+ * - "light": Light background with dark text
4199
+ * @default "dark"
4200
+ */
4201
+ variant?: "dark" | "light";
4202
+ /**
4203
+ * Custom content to render on the left side (e.g., error navigation)
4204
+ */
4205
+ leftContent?: React.ReactNode;
4206
+ /**
4207
+ * The current status of the action bar.
4208
+ * - "idle": Default state, shows an alert icon (pending changes)
4209
+ * - "loading": Shows a spinner and disables all actions
4210
+ * - "success": Shows a checkmark icon and disables all actions
4211
+ * - "error": Shows an error icon with persistent error styling
4212
+ * @default "idle"
4213
+ */
4214
+ status?: ActionBarStatus;
4215
+ }
4216
+
4217
+ export declare interface F0ActionBarRef {
4218
+ wiggle: (options?: WiggleOptions) => void;
4219
+ }
4220
+
3858
4221
  export declare const F0ActionItem: ({ title, status, inGroup }: F0ActionItemProps) => JSX_2.Element;
3859
4222
 
3860
4223
  /**
@@ -4835,11 +5198,16 @@ declare type F0CustomFieldConfigWithConfig<TValue = unknown, TConfig = unknown>
4835
5198
  fieldType: "custom";
4836
5199
  };
4837
5200
 
5201
+ /**
5202
+ * @experimental This is an experimental component use it at your own risk
5203
+ */
5204
+ export declare const F0DataChart: (props: F0DataChartProps_2) => JSX_2.Element;
5205
+
4838
5206
  /**
4839
5207
  * A single data point in a bar chart series.
4840
5208
  * Can be a simple number or an object with value and optional target.
4841
5209
  */
4842
- declare type F0DataChartBarDataPoint = number | {
5210
+ export declare type F0DataChartBarDataPoint = number | {
4843
5211
  value: number;
4844
5212
  /** When set, renders a gradient fade from the bar top up to the target value */
4845
5213
  target?: number;
@@ -4847,10 +5215,24 @@ declare type F0DataChartBarDataPoint = number | {
4847
5215
  color?: ChartColorToken;
4848
5216
  };
4849
5217
 
5218
+ /**
5219
+ * Bar chart variant props.
5220
+ */
5221
+ export declare interface F0DataChartBarProps extends F0DataChartBaseProps {
5222
+ /** Chart type */
5223
+ type: "bar";
5224
+ /** One or more data series to render as bars */
5225
+ series: F0DataChartBarSeries[];
5226
+ /** Bar orientation. @default "vertical" */
5227
+ orientation?: "vertical" | "horizontal";
5228
+ /** Stack all series into a single bar per category. @default false */
5229
+ stacked?: boolean;
5230
+ }
5231
+
4850
5232
  /**
4851
5233
  * A series of bars to render in the chart.
4852
5234
  */
4853
- declare interface F0DataChartBarSeries {
5235
+ export declare interface F0DataChartBarSeries {
4854
5236
  /** Display name used in legend and tooltip */
4855
5237
  name: string;
4856
5238
  /** Data points — one per category */
@@ -4859,11 +5241,28 @@ declare interface F0DataChartBarSeries {
4859
5241
  color?: ChartColorToken;
4860
5242
  }
4861
5243
 
5244
+ declare interface F0DataChartBaseProps {
5245
+ /** Labels for the category axis (one per data point) */
5246
+ categories: string[];
5247
+ /** Show the legend below the chart. @default true */
5248
+ showLegend?: boolean;
5249
+ /** Show the background grid lines. @default true */
5250
+ showGrid?: boolean;
5251
+ /** Show value labels on each data point. @default false */
5252
+ showLabels?: boolean;
5253
+ /** Format the value axis tick labels (e.g. `(v) => \`${v}M\`` ) */
5254
+ valueFormatter?: (value: number) => string;
5255
+ /** Format category axis tick labels */
5256
+ categoryFormatter?: (value: string) => string;
5257
+ /** Escape hatch: raw ECharts options merged (shallow) on top of the generated config */
5258
+ echartsOptions?: Partial<echarts_2.EChartsOption>;
5259
+ }
5260
+
4862
5261
  /**
4863
5262
  * A single data point in a funnel chart series.
4864
5263
  * Each point has a value and a stage name.
4865
5264
  */
4866
- declare interface F0DataChartFunnelDataPoint {
5265
+ export declare interface F0DataChartFunnelDataPoint {
4867
5266
  /** Numeric value for this funnel stage */
4868
5267
  value: number;
4869
5268
  /** Stage label (e.g. "Applied", "Phone Screen", "Hired") */
@@ -4872,10 +5271,49 @@ declare interface F0DataChartFunnelDataPoint {
4872
5271
  color?: ChartColorToken;
4873
5272
  }
4874
5273
 
5274
+ /**
5275
+ * Funnel chart variant props.
5276
+ *
5277
+ * Funnels do NOT use category/value axes — stage names come from the data
5278
+ * points themselves. This interface is separate from `F0DataChartBaseProps`.
5279
+ */
5280
+ export declare interface F0DataChartFunnelProps {
5281
+ /** Chart type */
5282
+ type: "funnel";
5283
+ /** The funnel series to render */
5284
+ series: F0DataChartFunnelSeries;
5285
+ /** Sort direction of funnel stages. @default "descending" */
5286
+ sort?: "descending" | "ascending" | "none";
5287
+ /** Gap between funnel stages in pixels. @default 0 */
5288
+ gap?: number;
5289
+ /** Funnel orientation. @default "horizontal" */
5290
+ orient?: "horizontal" | "vertical";
5291
+ /** Show the legend below the chart. @default false */
5292
+ showLegend?: boolean;
5293
+ /** Show value labels on each stage. @default true */
5294
+ showLabels?: boolean;
5295
+ /**
5296
+ * Show conversion percentages in labels.
5297
+ * Each stage displays its value as a percentage of the first stage.
5298
+ * The tooltip also shows step-over-step conversion.
5299
+ * @default false
5300
+ */
5301
+ showConversion?: boolean;
5302
+ /** Format the value displayed in labels and tooltip */
5303
+ valueFormatter?: (value: number) => string;
5304
+ /**
5305
+ * Map stage colors to their values using a gradient scale (light→dark).
5306
+ * When enabled, higher values get a more intense color. @default true
5307
+ */
5308
+ colorScale?: boolean;
5309
+ /** Escape hatch: raw ECharts options merged (shallow) on top of the generated config */
5310
+ echartsOptions?: Partial<echarts_2.EChartsOption>;
5311
+ }
5312
+
4875
5313
  /**
4876
5314
  * A single funnel series with named data points.
4877
5315
  */
4878
- declare interface F0DataChartFunnelSeries {
5316
+ export declare interface F0DataChartFunnelSeries {
4879
5317
  /** Display name used in legend and tooltip */
4880
5318
  name: string;
4881
5319
  /** Data points — one per funnel stage */
@@ -4884,18 +5322,90 @@ declare interface F0DataChartFunnelSeries {
4884
5322
  color?: ChartColorToken;
4885
5323
  }
4886
5324
 
5325
+ /**
5326
+ * Gauge/KPI chart variant props.
5327
+ *
5328
+ * A single-value gauge indicator — no axes, no legend.
5329
+ */
5330
+ export declare interface F0DataChartGaugeProps {
5331
+ /** Chart type */
5332
+ type: "gauge";
5333
+ /** Current value */
5334
+ value: number;
5335
+ /** Minimum value. @default 0 */
5336
+ min?: number;
5337
+ /** Maximum value. @default 100 */
5338
+ max?: number;
5339
+ /** Label shown below the value */
5340
+ name?: string;
5341
+ /** Override color. Must be an F0 design token name. */
5342
+ color?: ChartColorToken;
5343
+ /** Show the numeric value in the center. @default true */
5344
+ showValue?: boolean;
5345
+ /** Format the value displayed */
5346
+ valueFormatter?: (value: number) => string;
5347
+ /** Escape hatch: raw ECharts options merged (shallow) on top of the generated config */
5348
+ echartsOptions?: Partial<echarts_2.EChartsOption>;
5349
+ }
5350
+
5351
+ /**
5352
+ * Heatmap chart variant props.
5353
+ *
5354
+ * Renders a grid where each cell's color intensity represents a numeric value.
5355
+ * Uses two category axes (x for columns, y for rows) and a visualMap for
5356
+ * value→color mapping.
5357
+ */
5358
+ export declare interface F0DataChartHeatmapProps {
5359
+ /** Chart type */
5360
+ type: "heatmap";
5361
+ /** Column labels (x-axis) */
5362
+ xCategories: string[];
5363
+ /** Row labels (y-axis) */
5364
+ yCategories: string[];
5365
+ /** Data as [xIndex, yIndex, value] tuples */
5366
+ data: [number, number, number][];
5367
+ /** Minimum value for color scale. @default auto from data */
5368
+ min?: number;
5369
+ /** Maximum value for color scale. @default auto from data */
5370
+ max?: number;
5371
+ /** Show value labels inside cells. @default false */
5372
+ showLabels?: boolean;
5373
+ /** Show the visual map (color scale legend). @default false */
5374
+ showVisualMap?: boolean;
5375
+ /** Format values in labels and tooltip */
5376
+ valueFormatter?: (value: number) => string;
5377
+ /** Escape hatch: raw ECharts options merged (shallow) on top of the generated config */
5378
+ echartsOptions?: Partial<echarts_2.EChartsOption>;
5379
+ }
5380
+
4887
5381
  /**
4888
5382
  * A single data point in a line chart series.
4889
5383
  * Can be a simple number or an object with a value.
4890
5384
  */
4891
- declare type F0DataChartLineDataPoint = number | {
5385
+ export declare type F0DataChartLineDataPoint = number | {
4892
5386
  value: number;
4893
5387
  };
4894
5388
 
5389
+ /**
5390
+ * Line chart variant props.
5391
+ */
5392
+ export declare interface F0DataChartLineProps extends F0DataChartBaseProps {
5393
+ /** Chart type */
5394
+ type: "line";
5395
+ /** One or more data series to render as lines */
5396
+ series: F0DataChartLineSeries[];
5397
+ /** Line interpolation type. @default "linear" */
5398
+ lineType?: F0DataChartLineType;
5399
+ /** Show gradient area fill below lines. @default true */
5400
+ showArea?: boolean;
5401
+ /** Show data point dots on the lines. @default false */
5402
+ showDots?: boolean;
5403
+ }
5404
+
4895
5405
  /**
4896
5406
  * A series of data points to render as a line.
4897
5407
  */
4898
- declare interface F0DataChartLineSeries {
5408
+ export declare interface F0DataChartLineSeries {
4899
5409
  /** Display name used in legend and tooltip */
4900
5410
  name: string;
4901
5411
  /** Data points — one per category */
@@ -4911,12 +5421,12 @@ declare interface F0DataChartLineSeries {
4911
5421
  }
4912
5422
 
4913
5423
  /** Line interpolation type */
4914
- declare type F0DataChartLineType = "linear" | "smooth" | "step";
5424
+ export declare type F0DataChartLineType = "linear" | "smooth" | "step";
4915
5425
 
4916
5426
  /**
4917
5427
  * A single data point in a pie chart.
4918
5428
  */
4919
- declare interface F0DataChartPieDataPoint {
5429
+ export declare interface F0DataChartPieDataPoint {
4920
5430
  /** Numeric value for this segment */
4921
5431
  value: number;
4922
5432
  /** Segment label */
@@ -4925,10 +5435,35 @@ declare interface F0DataChartPieDataPoint {
4925
5435
  color?: ChartColorToken;
4926
5436
  }
4927
5437
 
5438
+ /**
5439
+ * Pie/donut chart variant props.
5440
+ *
5441
+ * Pies do NOT use category/value axes — segment names come from the data
5442
+ * points themselves. This interface is separate from `F0DataChartBaseProps`.
5443
+ */
5444
+ export declare interface F0DataChartPieProps {
5445
+ /** Chart type */
5446
+ type: "pie";
5447
+ /** The pie series to render */
5448
+ series: F0DataChartPieSeries;
5449
+ /** Inner radius percentage. 0 = pie, >0 = donut. @default 0 */
5450
+ innerRadius?: number;
5451
+ /** Show the legend below the chart. @default true */
5452
+ showLegend?: boolean;
5453
+ /** Show value labels on each segment. @default true */
5454
+ showLabels?: boolean;
5455
+ /** Show percentage in labels. @default false */
5456
+ showPercentage?: boolean;
5457
+ /** Format the value displayed in labels and tooltip */
5458
+ valueFormatter?: (value: number) => string;
5459
+ /** Escape hatch: raw ECharts options merged (shallow) on top of the generated config */
5460
+ echartsOptions?: Partial<echarts_2.EChartsOption>;
5461
+ }
5462
+
4928
5463
  /**
4929
5464
  * A single pie series with named data points.
4930
5465
  */
4931
- declare interface F0DataChartPieSeries {
5466
+ export declare interface F0DataChartPieSeries {
4932
5467
  /** Display name used in tooltip */
4933
5468
  name: string;
4934
5469
  /** Data points — one per pie segment */
@@ -4937,20 +5472,52 @@ declare interface F0DataChartPieSeries {
4937
5472
  color?: ChartColorToken;
4938
5473
  }
4939
5474
 
5475
+ /**
5476
+ * Props for the F0DataChart component.
5477
+ *
5478
+ * A unified chart component that supports bar, line, funnel, pie, radar,
5479
+ * gauge, and heatmap chart types via a discriminated `type` prop.
5480
+ */
5481
+ export declare type F0DataChartProps = F0DataChartBarProps | F0DataChartLineProps | F0DataChartFunnelProps | F0DataChartPieProps | F0DataChartRadarProps | F0DataChartGaugeProps | F0DataChartHeatmapProps;
5482
+
4940
5483
  /**
4941
5484
  * A radar chart indicator (axis/dimension).
4942
5485
  */
4943
- declare interface F0DataChartRadarIndicator {
5486
+ export declare interface F0DataChartRadarIndicator {
4944
5487
  /** Name of the axis/dimension (e.g. "Performance", "Engagement") */
4945
5488
  name: string;
4946
5489
  /** Maximum value for this axis. @default auto-calculated from data */
4947
5490
  max?: number;
4948
5491
  }
4949
5492
 
5493
+ /**
5494
+ * Radar chart variant props.
5495
+ *
5496
+ * Radar charts use a polar coordinate system — no cartesian axes.
5497
+ */
5498
+ export declare interface F0DataChartRadarProps {
5499
+ /** Chart type */
5500
+ type: "radar";
5501
+ /** Axes of the radar — defines the dimensions to compare */
5502
+ indicators: F0DataChartRadarIndicator[];
5503
+ /** Series to compare (one or more) */
5504
+ series: F0DataChartRadarSeries[];
5505
+ /** Fill the area of each series with semi-transparent color. @default true */
5506
+ showArea?: boolean;
5507
+ /** Show the legend below the chart. @default true */
5508
+ showLegend?: boolean;
5509
+ /** Show value labels on each vertex. @default false */
5510
+ showLabels?: boolean;
5511
+ /** Format values in labels and tooltip */
5512
+ valueFormatter?: (value: number) => string;
5513
+ /** Escape hatch: raw ECharts options merged (shallow) on top of the generated config */
5514
+ echartsOptions?: Partial<echarts_2.EChartsOption>;
5515
+ }
5516
+
4950
5517
  /**
4951
5518
  * A series of data points for a radar chart.
4952
5519
  */
4953
- declare interface F0DataChartRadarSeries {
5520
+ export declare interface F0DataChartRadarSeries {
4954
5521
  /** Display name used in legend and tooltip (e.g. "Team A", "Team B") */
4955
5522
  name: string;
4956
5523
  /** Values — one per indicator, in the same order */
@@ -7140,6 +7707,26 @@ export declare interface FunnelChartConfig {
7140
7707
  valueFormatter?: (value: number) => string;
7141
7708
  }
7142
7709
 
7710
+ /**
7711
+ * Skeleton for funnel chart content area.
7712
+ *
7713
+ * - `orient: "horizontal"` (default): left-to-right trapezoids with
7714
+ * decreasing heights, centered vertically.
7715
+ * - `orient: "vertical"`: top-to-bottom trapezoids with decreasing widths,
7716
+ * centered horizontally.
7717
+ * - `sort: "ascending"`: reverses stage order (smallest first).
7718
+ */
7719
+ export declare function FunnelChartSkeleton({ orient, sort, showLegend, }?: FunnelChartSkeletonProps): JSX_2.Element;
7720
+
7721
+ declare interface FunnelChartSkeletonProps {
7722
+ /** Funnel orientation. @default "horizontal" */
7723
+ orient?: "horizontal" | "vertical";
7724
+ /** Sort direction. @default "descending" */
7725
+ sort?: "descending" | "ascending" | "none";
7726
+ /** Show legend below chart. @default true */
7727
+ showLegend?: boolean;
7728
+ }
7729
+
7143
7730
  /**
7144
7731
  * Gap tokens for spacing between flex/grid children.
7145
7732
  * Uses betweenSpacing (rem) for sm–xl, absoluteSpacing (px) for extended sizes.
@@ -7173,6 +7760,14 @@ export declare interface GaugeChartConfig {
7173
7760
  valueFormatter?: (value: number) => string;
7174
7761
  }
7175
7762
 
7763
+ /**
7764
+ * Skeleton for gauge chart content area.
7765
+ *
7766
+ * Renders a 270° arc with rounded caps and a large value placeholder,
7767
+ * matching the real gauge component style (width 18, roundCap, centered value).
7768
+ */
7769
+ export declare function GaugeChartSkeleton(): JSX_2.Element;
7770
+
7176
7771
  declare interface GaugeComputation {
7177
7772
  datasetId: string;
7178
7773
  aggregation: AggregationType;
@@ -7407,6 +8002,14 @@ export declare interface HeatmapChartConfig {
7407
8002
  valueFormatter?: (value: number) => string;
7408
8003
  }
7409
8004
 
8005
+ /**
8006
+ * Skeleton for heatmap chart content area.
8007
+ *
8008
+ * Renders a 5×4 grid of rectangles with varied opacities to simulate
8009
+ * heatmap data, plus placeholder axis labels.
8010
+ */
8011
+ export declare function HeatmapChartSkeleton(): JSX_2.Element;
8012
+
7410
8013
  declare interface HeatmapComputation {
7411
8014
  datasetId: string;
7412
8015
  xAxis: string;
@@ -7833,6 +8436,27 @@ export declare interface LineChartConfig extends ChartConfigBase {
7833
8436
  showDots?: boolean;
7834
8437
  }
7835
8438
 
8439
+ /**
8440
+ * Skeleton for line chart content area.
8441
+ *
8442
+ * - `lineType`: controls the SVG path shape (smooth curves, straight lines, or steps).
8443
+ * - `showArea: true` (default): gradient fill below the line.
8444
+ * - `showArea: false`: line only, no fill.
8445
+ * - `showDots: true`: SVG circles at each data point.
8446
+ */
8447
+ export declare function LineChartSkeleton({ lineType, showArea, showDots, showLegend, }?: LineChartSkeletonProps): JSX_2.Element;
8448
+
8449
+ declare interface LineChartSkeletonProps {
8450
+ /** Line interpolation type. @default "linear" */
8451
+ lineType?: "linear" | "smooth" | "step";
8452
+ /** Show gradient area fill below line. @default true */
8453
+ showArea?: boolean;
8454
+ /** Show data point dots on the line. @default false */
8455
+ showDots?: boolean;
8456
+ /** Show legend below chart. @default true */
8457
+ showLegend?: boolean;
8458
+ }
8459
+
7836
8460
  declare type LinkContextValue = {
7837
8461
  currentPath?: string;
7838
8462
  component?: (props: LinkProps, ref: ForwardedRef<HTMLAnchorElement>) => JSX.Element;
@@ -8676,6 +9300,21 @@ export declare interface PieChartConfig {
8676
9300
  valueFormatter?: (value: number) => string;
8677
9301
  }
8678
9302
 
9303
+ /**
9304
+ * Skeleton for pie/donut chart content area.
9305
+ *
9306
+ * - `innerRadius: 0` (default): solid pie circle.
9307
+ * - `innerRadius > 0`: donut with a hollow center.
9308
+ */
9309
+ export declare function PieChartSkeleton({ showLegend, innerRadius, }?: PieChartSkeletonProps): JSX_2.Element;
9310
+
9311
+ declare interface PieChartSkeletonProps {
9312
+ /** Show legend below chart. @default true */
9313
+ showLegend?: boolean;
9314
+ /** Inner radius percentage. 0 = pie, >0 = donut. @default 0 */
9315
+ innerRadius?: number;
9316
+ }
9317
+
8679
9318
  declare interface PieComputation {
8680
9319
  datasetId: string;
8681
9320
  nameColumn: string;
@@ -8989,6 +9628,16 @@ declare type QuestionPropsToOmit = "onAction" | "onChange" | "onAddNewElement";
8989
9628
 
8990
9629
  export declare type QuestionType = "rating" | "select" | "multi-select" | "dropdown-single" | "dropdown-multi" | "text" | "longText" | "numeric" | "link" | "date" | "file" | "checkbox";
8991
9630
 
9631
+ export declare const RadarChart: <K extends ChartConfig_3>(props: RadarChartProps<K> & {
9632
+ dataTestId?: string;
9633
+ } & {
9634
+ ref?: ForwardedRef<HTMLDivElement>;
9635
+ }) => ReactElement | null;
9636
+
9637
+ export declare const _RadarChart: <K extends ChartConfig_3>({ data, dataConfig, scaleMin, scaleMax, aspect, dataTestId, }: RadarChartProps<K> & {
9638
+ dataTestId?: string;
9639
+ }, ref: ForwardedRef<HTMLDivElement>) => JSX_2.Element;
9640
+
8992
9641
  export declare interface RadarChartConfig {
8993
9642
  type: "radar";
8994
9643
  /** Fill the radar area. @default true */
@@ -9001,6 +9650,26 @@ export declare interface RadarChartConfig {
9001
9650
  valueFormatter?: (value: number) => string;
9002
9651
  }
9003
9652
 
9653
+ export declare type RadarChartProps<K extends ChartConfig_3> = {
9654
+ dataConfig: K;
9655
+ data: ChartItem<K>[];
9656
+ scaleMin?: number;
9657
+ scaleMax?: number;
9658
+ aspect?: ComponentProps<typeof ChartContainer>["aspect"];
9659
+ };
9660
+
9661
+ /**
9662
+ * Skeleton for radar chart content area.
9663
+ *
9664
+ * Renders a hexagonal shape with concentric rings and radial lines.
9665
+ */
9666
+ export declare function RadarChartSkeleton({ showLegend, }?: RadarChartSkeletonProps): JSX_2.Element;
9667
+
9668
+ declare interface RadarChartSkeletonProps {
9669
+ /** Show legend below chart. @default true */
9670
+ showLegend?: boolean;
9671
+ }
9672
+
9004
9673
  declare interface RadarComputation {
9005
9674
  datasetId: string;
9006
9675
  seriesColumn: string;
@@ -10062,6 +10731,11 @@ declare const textVariants: (props?: ({
10062
10731
  className?: ClassValue;
10063
10732
  })) | undefined) => string;
10064
10733
 
10734
+ declare const THEMES: {
10735
+ readonly light: "";
10736
+ readonly dark: ".dark";
10737
+ };
10738
+
10065
10739
  export declare type TimelineRowStatus = (typeof timelineRowStatuses)[number];
10066
10740
 
10067
10741
  export declare const timelineRowStatuses: readonly ["completed", "in-progress", "not-started"];
@@ -10827,6 +11501,16 @@ declare type ValueDisplayVisualizationType = "table" | "card" | "list" | (string
10827
11501
 
10828
11502
  export declare type Variant = (typeof statuses)[number];
10829
11503
 
11504
+ declare const variants: (props?: ({
11505
+ aspect?: "small" | "square" | "wide" | undefined;
11506
+ } & ({
11507
+ class?: ClassValue;
11508
+ className?: never;
11509
+ } | {
11510
+ class?: never;
11511
+ className?: ClassValue;
11512
+ })) | undefined) => string;
11513
+
10830
11514
  export declare const VerticalBarChart: WithDataTestIdReturnType_5<ForwardRefExoticComponent<Omit<ChartPropsBase<ChartConfig_2> & {
10831
11515
  label?: boolean;
10832
11516
  showRatio?: boolean;
@@ -10874,6 +11558,10 @@ export declare type WelcomeScreenSuggestion = {
10874
11558
  prompt?: string;
10875
11559
  };
10876
11560
 
11561
+ declare interface WiggleOptions {
11562
+ errorHighlight?: boolean;
11563
+ }
11564
+
10877
11565
  export declare const withDataTestId: <T extends default_2.ComponentType<any>>(component: T) => WithDataTestIdReturnType<T>;
10878
11566
 
10879
11567
  export declare type WithDataTestIdProps = {
@@ -10970,6 +11658,11 @@ declare module "gridstack" {
10970
11658
  }
10971
11659
 
10972
11660
 
11661
+ declare namespace Calendar {
11662
+ var displayName: string;
11663
+ }
11664
+
11665
+
10973
11666
  declare module "@tiptap/core" {
10974
11667
  interface Commands<ReturnType> {
10975
11668
  aiBlock: {
@@ -11017,8 +11710,3 @@ declare module "@tiptap/core" {
11017
11710
  };
11018
11711
  }
11019
11712
  }
11020
-
11021
-
11022
- declare namespace Calendar {
11023
- var displayName: string;
11024
- }