@factorialco/f0-react 9.5.2 → 9.7.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 (32) hide show
  1. package/dist/{ChatPdfThumbnail-8s2Le3pz.js → ChatPdfThumbnail-yraFe2ng.js} +1 -1
  2. package/dist/{ChatPostComposerDialog-C65JZV8Q.js → ChatPostComposerDialog-BblH-Tcx.js} +3 -3
  3. package/dist/{CoachmarkProvider-DxlZHkga.js → CoachmarkProvider--PuyIWtf.js} +14984 -14660
  4. package/dist/{DocumentToolbar-C5TrJERi.js → DocumentToolbar-DYdZp2dy.js} +2 -2
  5. package/dist/{DocxViewer-B5QPRhae.js → DocxViewer-CYCgMBas.js} +2 -2
  6. package/dist/{F0AiProcessingOverlay-BB7vWJUN.js → F0AiProcessingOverlay-BGBmeXP8.js} +833 -852
  7. package/dist/{F0CanvasPanel-CebMUA6-.js → F0CanvasPanel-ItEQhrkL.js} +11297 -11278
  8. package/dist/{F0DocumentViewer-wy_8k7F8.js → F0DocumentViewer-D_NRhkaf.js} +3 -3
  9. package/dist/{F0Map-Dgj4Hdj0.js → F0Map-xGynCAG0.js} +4 -4
  10. package/dist/{F0VideoPlayer-uvCGbl-R.js → F0VideoPlayer-BXv9qSDV.js} +2 -2
  11. package/dist/{SheetViewer-a62c1qpd.js → SheetViewer-CWJ7YC8p.js} +3 -3
  12. package/dist/{TextViewer-DQzbYd-J.js → TextViewer-ed5C0tNK.js} +2 -2
  13. package/dist/ai.d.ts +15 -15
  14. package/dist/ai.js +2 -2
  15. package/dist/component-status.d.ts +15 -15
  16. package/dist/component-status.js +6 -6
  17. package/dist/{experimental-BjDkIQrU.js → experimental-0__hxgY-.js} +6116 -5876
  18. package/dist/experimental.d.ts +190 -15
  19. package/dist/experimental.js +288 -286
  20. package/dist/f0.d.ts +27 -27
  21. package/dist/f0.js +9724 -10031
  22. package/dist/i18n-provider-defaults.d.ts +15 -15
  23. package/dist/{index-DD5anxnp.js → index-B7p223Ae.js} +2 -2
  24. package/dist/index-C87L5a9L.js +8 -0
  25. package/dist/index-DeRPe3lA.js +4 -0
  26. package/dist/{index--y-m1zd0.js → index-PFXXhVLQ.js} +3 -3
  27. package/dist/{index-ByoHGgu8.js → index-cGDWPhTc.js} +1 -1
  28. package/dist/{pdfWorker-ZseFB0UO.js → pdfWorker-DcgOJiCp.js} +2 -2
  29. package/dist/styles.css +1 -1
  30. package/package.json +1 -1
  31. package/dist/index-BhU-0fSe.js +0 -8
  32. package/dist/index-DA65v5fO.js +0 -4
@@ -39,6 +39,7 @@ import { Dispatch } from 'react';
39
39
  import { DotTagCellValue } from './types/dotTag';
40
40
  import { DotTagCellValue as DotTagCellValue_2 } from './experimental';
41
41
  import { EmployeeItemProps } from './types';
42
+ import { F0TemplateTextInputProps as F0TemplateTextInputProps_2 } from './types';
42
43
  import { f1Colors } from '@factorialco/f0-core';
43
44
  import { FC } from 'react';
44
45
  import { FileCellValue } from './types/file';
@@ -12675,6 +12676,26 @@ declare interface F0TagTeamProps {
12675
12676
  src?: string;
12676
12677
  }
12677
12678
 
12679
+ /** @experimental This is an experimental component, use it at your own risk. */
12680
+ export declare const F0TemplateTextInput: ({ label, value, defaultValue, onChange, variablesConfig, placeholder, hint, error, required, disabled, hideLabel, maxLength, name, id, }: F0TemplateTextInputProps_2) => JSX_2.Element;
12681
+
12682
+ export declare interface F0TemplateTextInputProps {
12683
+ label: string;
12684
+ value?: string;
12685
+ defaultValue?: string;
12686
+ onChange?: (value: string) => void;
12687
+ variablesConfig: TemplateVariablesConfig;
12688
+ placeholder?: string;
12689
+ hint?: string;
12690
+ error?: string | boolean;
12691
+ required?: boolean;
12692
+ disabled?: boolean;
12693
+ hideLabel?: boolean;
12694
+ maxLength?: number;
12695
+ name?: string;
12696
+ id?: string;
12697
+ }
12698
+
12678
12699
  /**
12679
12700
  * F0TextAreaInput is the writable multi-line text field for forms — a box
12680
12701
  * where the user types longer text spanning multiple lines (notes,
@@ -12723,6 +12744,156 @@ export declare type F0TextInputProps = F0TextInputBaseProps & {
12723
12744
  onDismiss?: never;
12724
12745
  };
12725
12746
 
12747
+ /**
12748
+ * A sequence of steps, each an `F0TimelineRow`, joined by its connector. It
12749
+ * owns what a list of rows has to agree on — which one is last — so a host
12750
+ * passes the steps and nothing else.
12751
+ *
12752
+ * @experimental This is an experimental component use it at your own risk
12753
+ */
12754
+ export declare const F0Timeline: WithDataTestIdReturnType_6<ForwardRefExoticComponent<F0TimelineProps & RefAttributes<HTMLOListElement>>>;
12755
+
12756
+ /** One step of a timeline: an `F0TimelineRow`'s props, with an id to key it. */
12757
+ export declare type F0TimelineItem = DistributiveOmit<F0TimelineRowProps, "isLast"> & {
12758
+ id: string;
12759
+ };
12760
+
12761
+ export declare interface F0TimelineProps {
12762
+ /** The steps, top to bottom. The last one draws no connector below it. */
12763
+ items: F0TimelineItem[];
12764
+ }
12765
+
12766
+ declare interface F0TimelineRowAction {
12767
+ /** Button label */
12768
+ label: string;
12769
+ /** Optional icon for the button */
12770
+ icon?: IconType;
12771
+ /** Click handler */
12772
+ onClick: () => void;
12773
+ /** Whether the button is disabled */
12774
+ disabled?: boolean;
12775
+ /** Whether the button is in a loading state */
12776
+ loading?: boolean;
12777
+ }
12778
+
12779
+ declare interface F0TimelineRowBaseProps {
12780
+ /** The current status of this timeline entry */
12781
+ status: TimelineRowStatus;
12782
+ /** The title of the timeline entry (e.g., "Tasks") */
12783
+ title: string;
12784
+ /** Whether this is the last row in the timeline (hides the bottom connector line) */
12785
+ isLast?: boolean;
12786
+ /** Hide the status indicator column (used for subtasks inside multitask rows) */
12787
+ hideStatus?: boolean;
12788
+ }
12789
+
12790
+ /** Item types that can be rendered inside a multitask row */
12791
+ declare type F0TimelineRowMultitaskItemProps = F0TimelineRowTaskProps | F0TimelineRowNestedtaskProps;
12792
+
12793
+ /** Props for a multitask (collapsible group) timeline row */
12794
+ declare interface F0TimelineRowMultitaskProps extends F0TimelineRowBaseProps {
12795
+ /** Number of grouped tasks */
12796
+ taskCount: number;
12797
+ /** Number of completed tasks in the group (shows a progress pill) */
12798
+ completedCount?: number;
12799
+ /** Whether the multitask row is expanded (controlled) */
12800
+ expanded: boolean;
12801
+ /** Callback when multitask row expand/collapse is toggled */
12802
+ onExpandToggle: () => void;
12803
+ /** The subtask items to render when expanded. Can be single tasks or nestedtask groups */
12804
+ items: F0TimelineRowMultitaskItemProps[];
12805
+ }
12806
+
12807
+ /**
12808
+ * Shared shape for nestedtask rows. The collapsible behaviour is layered on
12809
+ * top via a discriminated union (`F0TimelineRowNestedtaskProps`) so callers
12810
+ * either provide both `expanded` and `onExpandToggle` (collapsible) or
12811
+ * neither (non-collapsible).
12812
+ */
12813
+ declare interface F0TimelineRowNestedtaskBaseProps extends F0TimelineRowBaseProps {
12814
+ /** The icon representing the task type */
12815
+ icon: IconType;
12816
+ /** Description text (e.g., "Estimated on 18/07/2025") */
12817
+ description?: string;
12818
+ /**
12819
+ * Number of nested items (displayed in the progress pill alongside
12820
+ * `completedCount`). Omit when the row body conveys progress on its own
12821
+ * (e.g. an embedded info card or table) and a pill would be redundant.
12822
+ */
12823
+ taskCount?: number;
12824
+ /** Number of completed items (displayed in the progress pill) */
12825
+ completedCount?: number;
12826
+ /** Metadata items displayed below the header (e.g., assignees, file chips). Always visible regardless of expand/collapse */
12827
+ metadata?: (MetadataItem | undefined | boolean)[];
12828
+ /** The nested task items to render when expanded. Ignored when `content` is provided. */
12829
+ items?: F0TimelineRowTaskProps[];
12830
+ /**
12831
+ * Custom content to render in the expanded body of the row. When provided,
12832
+ * `items` is ignored and this React node is rendered instead. Use this to
12833
+ * embed richer UI (callout cards, tables, custom panels) inside a nested
12834
+ * timeline row.
12835
+ */
12836
+ content?: React.ReactNode;
12837
+ /** Primary action button (displayed on the right after a divider) */
12838
+ primaryAction?: F0TimelineRowAction;
12839
+ /** Secondary action buttons (displayed on the left) */
12840
+ secondaryActions?: F0TimelineRowAction[];
12841
+ /** Overflow menu items (displayed as a dropdown via ellipsis button) */
12842
+ otherActions?: F0TimelineRowOtherAction[];
12843
+ }
12844
+
12845
+ /**
12846
+ * Props for a nestedtask timeline row.
12847
+ * Renders a task-style header (custom icon, title, description, chevron toggle)
12848
+ * with collapsible nested items and optional group-level metadata (assignees, file chips, etc.).
12849
+ * Unlike multitask, the header looks like a regular task row with expand/collapse capability.
12850
+ *
12851
+ * Discriminated by `collapsible`:
12852
+ * - default / `collapsible: true` — both `expanded` and `onExpandToggle` are required.
12853
+ * - `collapsible: false` — the row is always expanded, the header has no toggle affordance,
12854
+ * and `expanded`/`onExpandToggle` are not accepted.
12855
+ */
12856
+ declare type F0TimelineRowNestedtaskProps = (F0TimelineRowNestedtaskBaseProps & {
12857
+ /**
12858
+ * Whether the header chevron toggles the body.
12859
+ * @default true
12860
+ */
12861
+ collapsible?: true;
12862
+ /** Whether the row is expanded (controlled) */
12863
+ expanded: boolean;
12864
+ /** Callback when expand/collapse is toggled */
12865
+ onExpandToggle: () => void;
12866
+ }) | (F0TimelineRowNestedtaskBaseProps & {
12867
+ /**
12868
+ * When false, the row is always expanded and the header has no toggle
12869
+ * affordance — useful when the body controls its own expansion
12870
+ * (e.g. a collapsible callout card).
12871
+ */
12872
+ collapsible: false;
12873
+ expanded?: never;
12874
+ onExpandToggle?: never;
12875
+ });
12876
+
12877
+ declare type F0TimelineRowOtherAction = DropdownItem;
12878
+
12879
+ declare type F0TimelineRowProps = F0TimelineRowTaskProps | F0TimelineRowMultitaskProps | F0TimelineRowNestedtaskProps;
12880
+
12881
+ /** Props for a single-task timeline row */
12882
+ declare interface F0TimelineRowTaskProps extends F0TimelineRowBaseProps {
12883
+ /** The icon representing the task type (defaults to Marker) */
12884
+ icon?: IconType;
12885
+ /** Description text (e.g., "Completed on 20/2025") */
12886
+ description?: string;
12887
+ /** Metadata items to display (assignees, tags, dates, etc.) using the same pattern as F0ResourceHeader */
12888
+ metadata?: (MetadataItem | undefined | boolean)[];
12889
+ /** Primary action button (displayed on the right after a divider) */
12890
+ primaryAction?: F0TimelineRowAction;
12891
+ /** Secondary action buttons (displayed on the left) */
12892
+ secondaryActions?: F0TimelineRowAction[];
12893
+ /** Overflow menu items (displayed as a dropdown via ellipsis button) */
12894
+ otherActions?: F0TimelineRowOtherAction[];
12895
+ }
12896
+
12726
12897
  /**
12727
12898
  * Loose message shape used inside f0. Mirrors the CopilotKit `Message`
12728
12899
  * shape so adapters (factorial, mock runtime) can map back and forth
@@ -19373,6 +19544,10 @@ export declare const tileAspectRatio: (tile: F0MeetingTile, fallback: number) =>
19373
19544
 
19374
19545
  export declare const tileKey: (participantId: string, kind: string) => string;
19375
19546
 
19547
+ declare type TimelineRowStatus = (typeof timelineRowStatuses)[number];
19548
+
19549
+ declare const timelineRowStatuses: readonly ["completed", "in-progress", "not-started"];
19550
+
19376
19551
  /** A button rendered in the footer at the bottom of the table of contents */
19377
19552
  export declare type TOCAction = {
19378
19553
  label: string;
@@ -21237,8 +21412,8 @@ declare namespace Calendar {
21237
21412
 
21238
21413
  declare module "@tiptap/core" {
21239
21414
  interface Commands<ReturnType> {
21240
- moodTracker: {
21241
- insertMoodTracker: (data: MoodTrackerData) => ReturnType;
21415
+ transcript: {
21416
+ insertTranscript: (data: TranscriptData) => ReturnType;
21242
21417
  };
21243
21418
  }
21244
21419
  }
@@ -21246,11 +21421,10 @@ declare module "@tiptap/core" {
21246
21421
 
21247
21422
  declare module "@tiptap/core" {
21248
21423
  interface Commands<ReturnType> {
21249
- enhanceHighlight: {
21250
- setEnhanceHighlight: (from: number, to: number, options?: {
21251
- placeholder?: string;
21424
+ videoEmbed: {
21425
+ setVideoEmbed: (options: {
21426
+ src: string;
21252
21427
  }) => ReturnType;
21253
- clearEnhanceHighlight: () => ReturnType;
21254
21428
  };
21255
21429
  }
21256
21430
  }
@@ -21279,9 +21453,11 @@ declare module "@tiptap/core" {
21279
21453
 
21280
21454
  declare module "@tiptap/core" {
21281
21455
  interface Commands<ReturnType> {
21282
- fontSize: {
21283
- setFontSize: (fontSize: string) => ReturnType;
21284
- unsetFontSize: () => ReturnType;
21456
+ enhanceHighlight: {
21457
+ setEnhanceHighlight: (from: number, to: number, options?: {
21458
+ placeholder?: string;
21459
+ }) => ReturnType;
21460
+ clearEnhanceHighlight: () => ReturnType;
21285
21461
  };
21286
21462
  }
21287
21463
  }
@@ -21289,8 +21465,9 @@ declare module "@tiptap/core" {
21289
21465
 
21290
21466
  declare module "@tiptap/core" {
21291
21467
  interface Commands<ReturnType> {
21292
- transcript: {
21293
- insertTranscript: (data: TranscriptData) => ReturnType;
21468
+ fontSize: {
21469
+ setFontSize: (fontSize: string) => ReturnType;
21470
+ unsetFontSize: () => ReturnType;
21294
21471
  };
21295
21472
  }
21296
21473
  }
@@ -21298,10 +21475,8 @@ declare module "@tiptap/core" {
21298
21475
 
21299
21476
  declare module "@tiptap/core" {
21300
21477
  interface Commands<ReturnType> {
21301
- videoEmbed: {
21302
- setVideoEmbed: (options: {
21303
- src: string;
21304
- }) => ReturnType;
21478
+ moodTracker: {
21479
+ insertMoodTracker: (data: MoodTrackerData) => ReturnType;
21305
21480
  };
21306
21481
  }
21307
21482
  }