@factorialco/f0-react 6.38.1 → 6.51.1

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 (27) hide show
  1. package/dist/{ChatPdfThumbnail-BylbDvdh.js → ChatPdfThumbnail-BtJNIR03.js} +1 -1
  2. package/dist/{CoachmarkProvider-DDlkiieh.js → CoachmarkProvider-D1crauDt.js} +17536 -17054
  3. package/dist/{DocumentToolbar-C73oFj5j.js → DocumentToolbar-CYIgumvP.js} +2 -2
  4. package/dist/{DocxViewer-DvhVvro8.js → DocxViewer-BYC6ILzw.js} +2 -2
  5. package/dist/{F0AiProcessingOverlay-O9iKzCzA.js → F0AiProcessingOverlay-B_jVVBb3.js} +1675 -1687
  6. package/dist/{F0CanvasPanel-x0HG1lL2.js → F0CanvasPanel-D9QM6A5c.js} +24585 -24368
  7. package/dist/{F0VideoPlayer-CNLDjvWx.js → F0VideoPlayer-Czdae49M.js} +1 -1
  8. package/dist/{LocationMap-B9uJiP6s.js → LocationMap-_ELkGzce.js} +1 -1
  9. package/dist/{SheetViewer-Cb3M0JfB.js → SheetViewer-rS-lxOWo.js} +2 -2
  10. package/dist/{TextViewer-zWnCj_Ll.js → TextViewer-D_ddwlEE.js} +2 -2
  11. package/dist/ai.d.ts +32 -8
  12. package/dist/ai.js +2 -2
  13. package/dist/component-status.d.ts +6 -6
  14. package/dist/component-status.js +4 -4
  15. package/dist/{experimental-AwqVvQnQ.js → experimental-BsGKnyna.js} +12830 -12549
  16. package/dist/experimental.d.ts +485 -35
  17. package/dist/experimental.js +210 -205
  18. package/dist/f0.d.ts +296 -32
  19. package/dist/f0.js +16453 -15755
  20. package/dist/i18n-provider-defaults.d.ts +16 -6
  21. package/dist/i18n-provider-defaults.js +11 -1
  22. package/dist/index-C3HrVTrD.js +4 -0
  23. package/dist/{index-B9tGQBrU.js → index-CBvQMzjP.js} +3 -3
  24. package/dist/{pdfWorker-Bb9OLhh-.js → pdfWorker-BpY_xYql.js} +2 -2
  25. package/dist/styles.css +1 -1
  26. package/package.json +1 -1
  27. package/dist/index-DfvLN3Ea.js +0 -4
package/dist/f0.d.ts CHANGED
@@ -821,6 +821,12 @@ declare type AiChatProviderReturnValue = {
821
821
  */
822
822
  processDroppedFiles: (files: File[]) => void;
823
823
  /* Excluded from this release type: setProcessDroppedFilesFunction */
824
+ /**
825
+ * Move focus into the mounted chat composer, or queue it until mount.
826
+ * Returns whether focus moved synchronously.
827
+ */
828
+ focusChatInput: () => boolean;
829
+ /* Excluded from this release type: setFocusChatInputFunction */
824
830
  /**
825
831
  * Pre-loaded context shown as an empty state in the chat.
826
832
  * Prepended to the first user message as `<pending-context>`.
@@ -1085,6 +1091,7 @@ export declare const aiTranslations: {
1085
1091
  readonly exporting: "Exporting…";
1086
1092
  };
1087
1093
  readonly dashboardItem: {
1094
+ readonly askOne: "Ask One";
1088
1095
  readonly chartType: "Chart type";
1089
1096
  readonly errorTitle: "Error loading data";
1090
1097
  readonly retry: "Retry";
@@ -1117,6 +1124,7 @@ export declare const aiTranslations: {
1117
1124
  readonly fileUploadBlockedSubmit: "Your message wasn't sent because one of the attachments failed to upload. Remove it or retry.";
1118
1125
  readonly tooManyFilesError: "You can attach up to {{maxFiles}} files at once";
1119
1126
  readonly dropFilesHere: "Drop your files here";
1127
+ readonly dropWidgetToDiscuss: "Drop here to discuss with One";
1120
1128
  readonly reply: "Reply";
1121
1129
  readonly removeQuote: "Remove quote";
1122
1130
  readonly clarifyingQuestion: {
@@ -2138,6 +2146,16 @@ export declare type ButtonSize = (typeof buttonSizes)[number];
2138
2146
 
2139
2147
  export declare const buttonSizes: readonly ["sm", "md", "lg"];
2140
2148
 
2149
+ export declare type ButtonToggleColor = (typeof buttonToggleColors)[number];
2150
+
2151
+ /**
2152
+ * The colours a toggle can wear when selected, beyond F0's own selected teal.
2153
+ * Each one is an F0 semantic colour — the six statuses, then the five points of
2154
+ * the mood scale — so a coloured toggle carries the same meaning here as the
2155
+ * same colour does anywhere else in the product.
2156
+ */
2157
+ export declare const buttonToggleColors: readonly ["accent", "critical", "warning", "promote", "info", "positive", "mood-super-negative", "mood-negative", "mood-neutral", "mood-positive", "mood-super-positive"];
2158
+
2141
2159
  export declare type ButtonToggleSize = (typeof buttonToggleSizes)[number];
2142
2160
 
2143
2161
  export declare const buttonToggleSizes: readonly ["sm", "md", "lg"];
@@ -2684,6 +2702,9 @@ export declare interface CardSelectableMultipleProps<T extends CardSelectableVal
2684
2702
  isToggle?: boolean;
2685
2703
  /** When true, items are grouped in a single bordered container with dividers */
2686
2704
  grouped?: boolean;
2705
+ /** Standalone cards only: 12px padding instead of 16px. Grouped rows already
2706
+ * use 12px vertical padding, so they are unaffected. */
2707
+ compact?: boolean;
2687
2708
  }
2688
2709
 
2689
2710
  export declare interface CardSelectableSingleProps<T extends CardSelectableValue> {
@@ -2705,6 +2726,9 @@ export declare interface CardSelectableSingleProps<T extends CardSelectableValue
2705
2726
  isToggle?: boolean;
2706
2727
  /** When true, items are grouped in a single bordered container with dividers */
2707
2728
  grouped?: boolean;
2729
+ /** Standalone cards only: 12px padding instead of 16px. Grouped rows already
2730
+ * use 12px vertical padding, so they are unaffected. */
2731
+ compact?: boolean;
2708
2732
  }
2709
2733
 
2710
2734
  export declare type CardSelectableValue = string | number;
@@ -3825,6 +3849,17 @@ export declare interface DashboardItemBase {
3825
3849
  title: string;
3826
3850
  /** Optional description below the title */
3827
3851
  description?: string;
3852
+ /**
3853
+ * Optional help copy for what the widget measures, revealed by an ⓘ icon
3854
+ * beside the title. A string renders a plain tooltip; the structured form
3855
+ * renders a hoverable card that can carry a link — the same affordance a
3856
+ * table column header offers, so a figure explains itself the same way
3857
+ * wherever it is read.
3858
+ *
3859
+ * Distinct from `description` (which states what this widget shows) and from
3860
+ * `explanation` (how it is computed, behind the menu).
3861
+ */
3862
+ info?: string | InfoHintContent;
3828
3863
  /**
3829
3864
  * Optional markdown explanation of how this item's data is calculated.
3830
3865
  * When set, the per-item dropdown menu shows a "Where does this data come
@@ -5059,6 +5094,8 @@ export declare const defaultTranslations: {
5059
5094
  readonly hideAllColumns: "Hide all";
5060
5095
  readonly addColumn: "Add column";
5061
5096
  readonly removeColumn: "Remove column";
5097
+ readonly lockColumn: "Lock column: {{label}}";
5098
+ readonly unlockColumn: "Unlock column: {{label}}";
5062
5099
  };
5063
5100
  };
5064
5101
  readonly editableTable: {
@@ -5264,6 +5301,13 @@ export declare const defaultTranslations: {
5264
5301
  readonly exporting: "Exporting…";
5265
5302
  };
5266
5303
  readonly dashboardItem: {
5304
+ /**
5305
+ * Deliberately not `ai.ask` ("Ask One" by default here, but hosts
5306
+ * override it — factorial renders it as plain "Ask" for the widget and
5307
+ * insight-card buttons). This menu entry needs the product name spelled
5308
+ * out, so it owns its own key.
5309
+ */
5310
+ readonly askOne: "Ask One";
5267
5311
  readonly chartType: "Chart type";
5268
5312
  readonly errorTitle: "Error loading data";
5269
5313
  readonly retry: "Retry";
@@ -5296,6 +5340,7 @@ export declare const defaultTranslations: {
5296
5340
  readonly fileUploadBlockedSubmit: "Your message wasn't sent because one of the attachments failed to upload. Remove it or retry.";
5297
5341
  readonly tooManyFilesError: "You can attach up to {{maxFiles}} files at once";
5298
5342
  readonly dropFilesHere: "Drop your files here";
5343
+ readonly dropWidgetToDiscuss: "Drop here to discuss with One";
5299
5344
  readonly reply: "Reply";
5300
5345
  readonly removeQuote: "Remove quote";
5301
5346
  readonly clarifyingQuestion: {
@@ -6209,11 +6254,17 @@ export declare type DropIntent = {
6209
6254
  type: "cancel";
6210
6255
  };
6211
6256
 
6212
- export declare const DropOverlay: ({ visible, onFilesDropped }: DropOverlayProps) => JSX_2.Element;
6257
+ export declare const DropOverlay: ({ visible, onFilesDropped, mode, }: DropOverlayProps) => JSX_2.Element;
6213
6258
 
6214
6259
  declare interface DropOverlayProps {
6215
6260
  visible: boolean;
6216
- onFilesDropped: (files: File[]) => void;
6261
+ /**
6262
+ * Handles a native file drop. Omit for `mode="discuss"`, where the drag is a
6263
+ * pointer gesture and carries no `dataTransfer`.
6264
+ */
6265
+ onFilesDropped?: (files: File[]) => void;
6266
+ /** Which drop the overlay is inviting. */
6267
+ mode?: "files" | "discuss";
6217
6268
  }
6218
6269
 
6219
6270
  export declare interface DurationFieldConfig {
@@ -6304,6 +6355,18 @@ declare type EditableTableColumnDefinition<R extends RecordType, Sortings extend
6304
6355
  * opens the calendar on that date.
6305
6356
  */
6306
6357
  dateConfig?: DateCellConfig | ((item: R) => DateCellConfig);
6358
+ /**
6359
+ * Configuration for `"disabled"` cells.
6360
+ *
6361
+ * By default a disabled cell keeps the same affordances as its editable
6362
+ * counterpart (leading icon, units, select chevron) so the column still
6363
+ * reads as its field type. Set `hideSelectChevron` when the column also
6364
+ * uses `editType: "select"` for other rows but the chevron shouldn't
6365
+ * appear here since the cell isn't interactive.
6366
+ */
6367
+ disabledConfig?: {
6368
+ hideSelectChevron?: boolean;
6369
+ };
6307
6370
  /**
6308
6371
  * Called after this cell's value changes. Use to compute derived values
6309
6372
  * and update other cells in the same row.
@@ -7487,10 +7550,28 @@ export declare interface F0AlertProps {
7487
7550
  * @experimental This is an experimental component use it at your own risk
7488
7551
  */
7489
7552
  export declare const F0AnalyticsDashboard: {
7490
- <Filters extends FiltersDefinition_2 = FiltersDefinition_2>({ filters, presets, defaultFilters, filtersValue, onFiltersChange, items, editMode, onLayoutChange, enableExport, exportFilename, onExportReady, resetKey, onTransformChart, navigationFilters, filtersLoading, }: F0AnalyticsDashboardProps_2<Filters>): JSX_2.Element;
7553
+ <Filters extends FiltersDefinition_2 = FiltersDefinition_2>({ filters, presets, defaultFilters, filtersValue, onFiltersChange, items, editMode, onLayoutChange, enableExport, exportFilename, onExportReady, resetKey, onTransformChart, onAskAi, navigationFilters, filtersLoading, }: F0AnalyticsDashboardProps_2<Filters>): JSX_2.Element;
7491
7554
  displayName: string;
7492
7555
  };
7493
7556
 
7557
+ /**
7558
+ * What the user asked about: a whole widget, or one mark inside it.
7559
+ *
7560
+ * `point` is absent when the ask came from the widget's ⋯ menu and present
7561
+ * when it came from clicking a mark, which is the only thing that tells the
7562
+ * two apart.
7563
+ */
7564
+ export declare interface F0AnalyticsDashboardAskAiTarget {
7565
+ id: string;
7566
+ title: string;
7567
+ point?: F0AnalyticsDashboardPointClick;
7568
+ }
7569
+
7570
+ /** A point selected from either the chart canvas or its keyboard companion. */
7571
+ export declare type F0AnalyticsDashboardPointClick = Omit<F0DataChartPointClick, "source"> & {
7572
+ source: "pointer" | "keyboard";
7573
+ };
7574
+
7494
7575
  /**
7495
7576
  * Props for the F0AnalyticsDashboard component.
7496
7577
  *
@@ -7570,6 +7651,24 @@ export declare interface F0AnalyticsDashboardProps<Filters extends FiltersDefini
7570
7651
  resetKey?: number;
7571
7652
  /** Called when a chart item's type is changed (e.g. bar → line) */
7572
7653
  onTransformChart?: (itemId: string, newType: string, orientation?: "vertical" | "horizontal") => void;
7654
+ /**
7655
+ * Called when the user picks "Ask One" on a widget, replacing what the entry
7656
+ * does by default (quote the widget in the mounted AI chat, then open it).
7657
+ *
7658
+ * Pass this to own the action — send the widget somewhere else, add
7659
+ * tracking, ask for confirmation first. The entry then appears whether or
7660
+ * not an AI chat is mounted, since the host is answering it. Its label stays
7661
+ * `ai.dashboardItem.askOne`, which hosts already override, so the copy is
7662
+ * yours either way.
7663
+ *
7664
+ * Without it the entry appears only where an AI chat is mounted and enabled,
7665
+ * and drives that chat directly.
7666
+ *
7667
+ * `point` is set when the ask came from a clicked mark rather than the
7668
+ * widget menu, so one handler answers both without the host having to tell
7669
+ * them apart by anything other than its presence.
7670
+ */
7671
+ onAskAi?: (item: F0AnalyticsDashboardAskAiTarget) => void;
7573
7672
  /**
7574
7673
  * Navigation filter definitions (e.g. date-navigator).
7575
7674
  * Rendered above the grid alongside the regular filter bar.
@@ -8358,6 +8457,37 @@ declare type F0ButtonToggleInternalProps = {
8358
8457
  * "expanded" - The button will show the icon and the label.
8359
8458
  */
8360
8459
  variant?: ButtonToggleVariant;
8460
+ /**
8461
+ * Tooltip shown on hover and on keyboard focus. A string is the description
8462
+ * on its own; the object form adds a bold first line above it — the same
8463
+ * shape `Action` takes.
8464
+ *
8465
+ * A compact toggle is a glyph with no visible text, so the tooltip is what
8466
+ * says out loud what it does. Setting it drops the native `title` (the
8467
+ * browser would otherwise draw its own bubble beside this one) and keeps the
8468
+ * accessible name.
8469
+ *
8470
+ * `instant` opens it on 100ms instead of the default 700ms. Reach for it when
8471
+ * the tooltip is the ONLY place the toggle's name is written — the default
8472
+ * wait is for a label that merely confirms what you can already read, and on
8473
+ * a bare glyph it withholds the whole thing.
8474
+ */
8475
+ tooltip?: string | {
8476
+ label?: string;
8477
+ description: string;
8478
+ instant?: boolean;
8479
+ };
8480
+ /**
8481
+ * Makes the toggle a member of a COLOURED SET: it wears this colour when
8482
+ * selected — fill, border and glyph — and stays a muted glyph when it isn't,
8483
+ * so one answer out of several is readable at a glance. Without it the toggle
8484
+ * uses F0's selected teal, like any other selected control.
8485
+ *
8486
+ * Only for a set whose members mean different things (a mood scale, a status
8487
+ * picker). A lone toggle, or a group where every item is the same kind of
8488
+ * thing, should stay on the default.
8489
+ */
8490
+ color?: ButtonToggleColor;
8361
8491
  /**
8362
8492
  * @private
8363
8493
  * Whether to show a border around the button toggle.
@@ -8884,7 +9014,7 @@ export declare interface F0DataChartBarSeries {
8884
9014
  color?: ChartColorToken;
8885
9015
  }
8886
9016
 
8887
- declare interface F0DataChartBaseProps extends F0DataChartCommonProps {
9017
+ declare interface F0DataChartBaseProps extends F0DataChartCommonProps, F0DataChartLegendInteractionProps {
8888
9018
  /** Labels for the category axis (one per data point) */
8889
9019
  categories: string[];
8890
9020
  /** Show the legend below the chart. @default true */
@@ -8907,6 +9037,16 @@ declare interface F0DataChartBaseProps extends F0DataChartCommonProps {
8907
9037
  declare interface F0DataChartCommonProps {
8908
9038
  /** Customize or opt out of the empty state shown when data is empty. */
8909
9039
  emptyState?: F0DataChartEmptyStateProps;
9040
+ /**
9041
+ * Called when the user clicks a single mark (bar segment, slice, point).
9042
+ * Omit to leave clicks inert, which is the default for every chart.
9043
+ *
9044
+ * Line charts accept a click anywhere in the plot area, since a line is too
9045
+ * thin to hit — the same allowance their axis-triggered tooltip already
9046
+ * makes — and answer with the whole category in
9047
+ * {@link F0DataChartPointClick.series}, matching what the tooltip showed.
9048
+ */
9049
+ onPointClick?: (point: F0DataChartPointClick) => void;
8910
9050
  }
8911
9051
 
8912
9052
  /**
@@ -8953,7 +9093,7 @@ export declare interface F0DataChartFunnelDataPoint {
8953
9093
  * Funnels do NOT use category/value axes — stage names come from the data
8954
9094
  * points themselves. This interface is separate from `F0DataChartBaseProps`.
8955
9095
  */
8956
- export declare interface F0DataChartFunnelProps extends F0DataChartCommonProps {
9096
+ export declare interface F0DataChartFunnelProps extends F0DataChartCommonProps, F0DataChartLegendInteractionProps {
8957
9097
  /** Chart type */
8958
9098
  type: "funnel";
8959
9099
  /** The funnel series to render */
@@ -9075,6 +9215,16 @@ export declare interface F0DataChartHeatmapProps extends F0DataChartCommonProps
9075
9215
  echartsOptions?: Partial<echarts_2.EChartsOption>;
9076
9216
  }
9077
9217
 
9218
+ /** Props shared only by variants with an interactive legend. */
9219
+ declare interface F0DataChartLegendInteractionProps {
9220
+ /**
9221
+ * Reports the chart's live legend visibility after an interactive toggle.
9222
+ * Primarily used by accessible companion surfaces that must expose the same
9223
+ * data currently shown on the canvas.
9224
+ */
9225
+ onLegendSelectionChange?: (selected: Record<string, boolean>) => void;
9226
+ }
9227
+
9078
9228
  /**
9079
9229
  * A single data point in a line chart series.
9080
9230
  * Can be a simple number or an object with a value.
@@ -9146,7 +9296,7 @@ export declare interface F0DataChartPieDataPoint {
9146
9296
  * Pies do NOT use category/value axes — segment names come from the data
9147
9297
  * points themselves. This interface is separate from `F0DataChartBaseProps`.
9148
9298
  */
9149
- export declare interface F0DataChartPieProps extends F0DataChartCommonProps {
9299
+ export declare interface F0DataChartPieProps extends F0DataChartCommonProps, F0DataChartLegendInteractionProps {
9150
9300
  /** Chart type */
9151
9301
  type: "pie";
9152
9302
  /** The pie series to render */
@@ -9184,6 +9334,73 @@ export declare interface F0DataChartPieSeries {
9184
9334
  color?: ChartColorToken;
9185
9335
  }
9186
9336
 
9337
+ /**
9338
+ * What a click resolved to — one bar segment, one slice, one point, or (for a
9339
+ * line, where the click can land anywhere in the plot area) a whole category.
9340
+ *
9341
+ * The top-level fields always name a single series, so a consumer that wants
9342
+ * one number has one. {@link F0DataChartPointClick.series} carries everything
9343
+ * the click resolved, which for a line is every series at that category — the
9344
+ * same rows its tooltip shows.
9345
+ */
9346
+ export declare interface F0DataChartPointClick {
9347
+ /** Interaction surface that resolved the point. */
9348
+ source: "pointer";
9349
+ /** Configured series name for the mark. Empty when ECharts does not report one. */
9350
+ seriesName: string;
9351
+ /**
9352
+ * Mark name reported by ECharts: an axis category, pie slice, funnel stage,
9353
+ * scatter label, or gauge/radar item name. Empty when the mark has no name.
9354
+ */
9355
+ category: string;
9356
+ /** Raw, unformatted value. Consumers apply their own formatting. */
9357
+ value: number;
9358
+ /**
9359
+ * Every number the mark carries, in series order: `[42]` for a bar or a
9360
+ * slice, `[x, y]` for a scatter point, `[xIndex, yIndex, value]` for a
9361
+ * heatmap cell.
9362
+ *
9363
+ * {@link value} is the last entry, which is the measure for every type
9364
+ * except scatter — there both entries are measures, and quoting only the
9365
+ * last one drops half the point. Read this when the chart type has more
9366
+ * than one number to say.
9367
+ */
9368
+ values: number[];
9369
+ /**
9370
+ * Every series the click resolved, in the order they are configured.
9371
+ *
9372
+ * A line chart accepts a click anywhere in its plot area, so this is the
9373
+ * whole category — one entry per series that has a value there and is
9374
+ * switched on in the legend, exactly the rows its axis tooltip shows.
9375
+ * Everywhere else a click identifies one mark and this holds that one entry,
9376
+ * matching {@link seriesName} and {@link value}.
9377
+ */
9378
+ series: F0DataChartPointClickSeries[];
9379
+ /** Index of the clicked mark within its series. */
9380
+ dataIndex: number;
9381
+ /** Index of the series the mark belongs to. */
9382
+ seriesIndex: number;
9383
+ /**
9384
+ * Where a pointer click landed, in viewport coordinates — enough to anchor a
9385
+ * floating element without the consumer having to reach for the chart's own
9386
+ * geometry. Taken from the touch on a touch device, where the event itself
9387
+ * carries no coordinates. Both are 0 if the pointer event carried no
9388
+ * coordinates.
9389
+ */
9390
+ clientX: number;
9391
+ clientY: number;
9392
+ }
9393
+
9394
+ /** One series' value at the category a click resolved to. */
9395
+ export declare interface F0DataChartPointClickSeries {
9396
+ /** Configured series name. Empty when ECharts does not report one. */
9397
+ name: string;
9398
+ /** Index of the series in the chart's own series list. */
9399
+ seriesIndex: number;
9400
+ /** Raw, unformatted value at this category. */
9401
+ value: number;
9402
+ }
9403
+
9187
9404
  /**
9188
9405
  * Props for the F0DataChart component.
9189
9406
  *
@@ -9207,7 +9424,7 @@ export declare interface F0DataChartRadarIndicator {
9207
9424
  *
9208
9425
  * Radar charts use a polar coordinate system — no cartesian axes.
9209
9426
  */
9210
- export declare interface F0DataChartRadarProps extends F0DataChartCommonProps {
9427
+ export declare interface F0DataChartRadarProps extends F0DataChartCommonProps, F0DataChartLegendInteractionProps {
9211
9428
  /** Chart type */
9212
9429
  type: "radar";
9213
9430
  /** Axes of the radar — defines the dimensions to compare */
@@ -9271,7 +9488,7 @@ export declare type F0DataChartScatterDataPoint = [number, number] | {
9271
9488
  * continuous — so this interface is separate from `F0DataChartBaseProps`.
9272
9489
  * Pass multiple `series` to color-split the points by a group dimension.
9273
9490
  */
9274
- export declare interface F0DataChartScatterProps extends F0DataChartCommonProps {
9491
+ export declare interface F0DataChartScatterProps extends F0DataChartCommonProps, F0DataChartLegendInteractionProps {
9275
9492
  /** Chart type */
9276
9493
  type: "scatter";
9277
9494
  /** One or more point groups. Multiple series render as a color split. */
@@ -11976,6 +12193,8 @@ export declare interface F0QuestionCardStep {
11976
12193
  options: F0QuestionCardOption[];
11977
12194
  }
11978
12195
 
12196
+ declare type F0ResourceHeaderProps = Props_4;
12197
+
11979
12198
  /**
11980
12199
  * F0 config options specific to rich text fields
11981
12200
  */
@@ -12812,7 +13031,7 @@ export declare interface F0TimelineRowTaskProps extends F0TimelineRowBaseProps {
12812
13031
  icon?: IconType;
12813
13032
  /** Description text (e.g., "Completed on 20/2025") */
12814
13033
  description?: string;
12815
- /** Metadata items to display (assignees, tags, dates, etc.) using the same pattern as ResourceHeader */
13034
+ /** Metadata items to display (assignees, tags, dates, etc.) using the same pattern as F0ResourceHeader */
12816
13035
  metadata?: (MetadataItem | undefined | boolean)[];
12817
13036
  /** Primary action button (displayed on the right after a divider) */
12818
13037
  primaryAction?: F0TimelineRowAction;
@@ -13809,6 +14028,18 @@ declare type GraphVisualizationOptions<R extends RecordType, Filters extends Fil
13809
14028
  * the default entry view (roots expanded to `defaultExpandDepth`).
13810
14029
  */
13811
14030
  focusOnEntry?: string;
14031
+ /**
14032
+ * Id of a node to mark as **selected on entry** — the click-selection ring, so
14033
+ * a deep link lands on the graph looking the way a user's own click leaves it,
14034
+ * not just framed. Seeded on the first render; the selection then follows
14035
+ * normal clicks/keyboard (this is a one-shot entry seed, not a controlled
14036
+ * value). Pair it with `focusOnEntry` (usually the same id) so the node's
14037
+ * branch is expanded and framed — otherwise the ring isn't visible until its
14038
+ * branch is opened. Unlike `revealNodeId` (search) it sets the selection, not
14039
+ * the reveal highlight. Providing it puts the graph's selection in controlled
14040
+ * mode; omitting it leaves selection uncontrolled (the default).
14041
+ */
14042
+ initialSelectedNodeId?: string;
13812
14043
  /**
13813
14044
  * Resolves the ancestor path (root → … → matched node) for a node so it can
13814
14045
  * be revealed, returning the records in root-first order. Required for
@@ -14338,6 +14569,27 @@ export declare type InfiniteScrollPaginatedResponse<TRecord> = BasePaginatedResp
14338
14569
  hasMore: boolean;
14339
14570
  };
14340
14571
 
14572
+ /**
14573
+ * Structured help copy for a labelled thing — a table column, a dashboard
14574
+ * widget. `link` is for what the description implies but cannot do: opening the
14575
+ * catalog entry the copy came from.
14576
+ */
14577
+ export declare type InfoHintContent = {
14578
+ title: string;
14579
+ description: string;
14580
+ link?: {
14581
+ label: string;
14582
+ onClick: () => void;
14583
+ };
14584
+ /**
14585
+ * Accessible name for the icon trigger. Falls back to `label` on the host
14586
+ * and then to a generic "More information", so the trigger is never named
14587
+ * after the thing it describes alone — a name identical to the heading
14588
+ * beside it says nothing about what the control does.
14589
+ */
14590
+ label?: string;
14591
+ };
14592
+
14341
14593
  /**
14342
14594
  * Metadata for a file that already exists (e.g. from a previous upload).
14343
14595
  * Passed via `initialFiles` so the field can display it without re-uploading.
@@ -16829,8 +17081,6 @@ export declare function resolveWindowNeighbors<R extends RecordType>({ records,
16829
17081
  idProvider: (item: R, index?: number) => DataSourceItemId;
16830
17082
  }): NeighborResolution<R>;
16831
17083
 
16832
- declare type ResourceHeaderProps = Props_4;
16833
-
16834
17084
  /** All styling props that can be overridden per breakpoint */
16835
17085
  export declare interface ResponsiveStyleProps {
16836
17086
  display?: DisplayToken;
@@ -17423,7 +17673,7 @@ declare interface SurveyAnsweringFormDialogProps extends SurveyAnsweringFormShar
17423
17673
  declare interface SurveyAnsweringFormInlineProps extends SurveyAnsweringFormSharedProps {
17424
17674
  inline: true;
17425
17675
  /**
17426
- * Hide the built-in ResourceHeader (title + description). Useful when the
17676
+ * Hide the built-in F0ResourceHeader (title + description). Useful when the
17427
17677
  * embedding page already renders its own resource header above the form.
17428
17678
  */
17429
17679
  hideResourceHeader?: boolean;
@@ -17461,7 +17711,7 @@ declare interface SurveyAnsweringFormSharedProps {
17461
17711
  elements: SurveyFormBuilderElement[];
17462
17712
  title: string;
17463
17713
  description?: string;
17464
- resourceHeader?: Omit<ResourceHeaderProps, "title" | "description">;
17714
+ resourceHeader?: Omit<F0ResourceHeaderProps, "title" | "description">;
17465
17715
  defaultValues?: Partial<SurveyAnswers>;
17466
17716
  loading?: boolean;
17467
17717
  datasets?: SurveyDatasets;
@@ -17669,19 +17919,16 @@ declare type TableColumnDefinition<R extends RecordType, Sortings extends Sortin
17669
17919
 
17670
17920
  declare function TableHead({ children, width, minWidth, sortState, onSortClick, onClick, info, infoIcon, sticky, hidden, highlighted, align, className, colSpan, }: TableHeadProps): JSX_2.Element;
17671
17921
 
17672
- declare type TableHeaderInfo = {
17673
- title: string;
17674
- description: string;
17675
- link?: {
17676
- label: string;
17677
- onClick: () => void;
17678
- };
17679
- /**
17680
- * Accessible name for the info-icon trigger. Defaults to the column label
17681
- * when the header's children are a string.
17682
- */
17683
- label?: string;
17684
- };
17922
+ /**
17923
+ * Structured help copy for a column header. The same shape every other
17924
+ * ⓘ affordance takes — see {@link InfoHintContent}, where `label` defaults to
17925
+ * the column label when the header's children are a string.
17926
+ *
17927
+ * A table-specific name for a shape that is no longer table-specific: the
17928
+ * canonical export is `InfoHintContent`, and this stays as an alias so
17929
+ * existing imports keep working.
17930
+ */
17931
+ declare type TableHeaderInfo = InfoHintContent;
17685
17932
 
17686
17933
  declare interface TableHeadProps {
17687
17934
  children: React.ReactNode;
@@ -17822,6 +18069,23 @@ declare type TableVisualizationOptions<R extends RecordType, _Filters extends Fi
17822
18069
  * `noRemoving` are never removable.
17823
18070
  */
17824
18071
  onRemoveColumn?: (columnId: ColId) => void;
18072
+ /**
18073
+ * The user-managed frozen columns in the column-settings popover. Locked
18074
+ * columns move into a sticky group on the left, stay visible, and cannot be
18075
+ * reordered or removed. Their array order controls their order in that group.
18076
+ * One visible managed column always remains unlocked as the table's
18077
+ * scrollable region; an all-locked input is normalized accordingly.
18078
+ *
18079
+ * Unlocking a column returns it to its saved position. Columns covered by
18080
+ * `frozenColumns` remain permanently locked before this managed group.
18081
+ */
18082
+ lockedColumnIds?: readonly ColId[];
18083
+ /**
18084
+ * Called with the complete set of user-managed locked column ids whenever a
18085
+ * user locks or unlocks a column. Passing this callback enables the lock
18086
+ * controls in the column-settings popover.
18087
+ */
18088
+ onLockedColumnIdsChange?: (columnIds: ColId[]) => void;
17825
18089
  /** Maps a row to a visual variant: `"striped"`, `"striked"`, or `"none"`. */
17826
18090
  referenceRowType?: (item: R) => ReferenceType;
17827
18091
  /**
@@ -19953,10 +20217,8 @@ declare module "@tiptap/core" {
19953
20217
 
19954
20218
  declare module "@tiptap/core" {
19955
20219
  interface Commands<ReturnType> {
19956
- videoEmbed: {
19957
- setVideoEmbed: (options: {
19958
- src: string;
19959
- }) => ReturnType;
20220
+ transcript: {
20221
+ insertTranscript: (data: TranscriptData) => ReturnType;
19960
20222
  };
19961
20223
  }
19962
20224
  }
@@ -19964,8 +20226,10 @@ declare module "@tiptap/core" {
19964
20226
 
19965
20227
  declare module "@tiptap/core" {
19966
20228
  interface Commands<ReturnType> {
19967
- transcript: {
19968
- insertTranscript: (data: TranscriptData) => ReturnType;
20229
+ videoEmbed: {
20230
+ setVideoEmbed: (options: {
20231
+ src: string;
20232
+ }) => ReturnType;
19969
20233
  };
19970
20234
  }
19971
20235
  }