@factorialco/f0-react 2.36.1 → 2.37.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.
package/dist/ai.js CHANGED
@@ -1,6 +1,6 @@
1
- import { D as e, F as r, a as t, e as o, f as i, c as n, d as F, I as C, P as A, b as l, u as d } from "./F0CanvasPanel-CzqKtOrT.js";
1
+ import { D as e, F as r, a as t, e as o, f as i, c as n, d as F, I as C, P as A, b as l, u as d } from "./F0CanvasPanel-BErabj-B.js";
2
2
  import { defaultTranslations as m } from "./i18n-provider-defaults.js";
3
- import { A as c, C as I, h as P, t as v, v as f, x as p, n as T, j as g, r as y, y as S, q as x, s as H, k as V, e as b, g as k, l as w, F as M, i as O, a as D, p as j, m as q, o as z, b as B, f as E, w as L, c as R, d as G, u as J } from "./useChatHistory-D4MyhT2a.js";
3
+ import { A as c, C as I, h as P, t as v, v as f, x as p, n as T, j as g, r as y, y as S, q as x, s as H, k as V, e as b, g as k, l as w, F as M, i as O, a as D, p as j, m as q, o as z, b as B, f as E, w as L, c as R, d as G, u as J } from "./useChatHistory-DBzFU3JU.js";
4
4
  export {
5
5
  c as AiChatTranslationsProvider,
6
6
  I as ChatSpinner,
@@ -37,7 +37,6 @@ import { DotTagCellValue as DotTagCellValue_2 } from './experimental';
37
37
  import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
38
38
  import { Editor } from '@tiptap/react';
39
39
  import { EmployeeItemProps } from './types';
40
- import { F0NumberInputProps as F0NumberInputProps_2 } from './F0NumberInput';
41
40
  import { F0SegmentedControlProps as F0SegmentedControlProps_2 } from './types';
42
41
  import { F0SelectProps as F0SelectProps_2 } from './types';
43
42
  import { F0TagBalanceProps as F0TagBalanceProps_2 } from './types';
@@ -45,8 +44,6 @@ import { F0TagCompanyProps } from './types';
45
44
  import { F0TagPersonProps } from './types';
46
45
  import { F0TagRawProps as F0TagRawProps_2 } from './types';
47
46
  import { F0TagTeamProps } from './types';
48
- import { F0TextAreaInputProps as F0TextAreaInputProps_2 } from './F0TextAreaInput';
49
- import { F0TextInputProps as F0TextInputProps_2 } from './F0TextInput';
50
47
  import { f1Colors } from '@factorialco/f0-core';
51
48
  import { FC } from 'react';
52
49
  import { FileCellValue } from './types/file';
@@ -2624,6 +2621,20 @@ export declare type DataSourceDefinition<R extends RecordType = RecordType, Filt
2624
2621
  /** Current state of applied sortings */
2625
2622
  currentSortings?: SortingsState<Sortings>;
2626
2623
  /*******************************************************/
2624
+ /***** PAGINATION ***************************************************/
2625
+ /**
2626
+ * Initial page to fetch (1-indexed) for page-based pagination. Applied on the
2627
+ * first load only; the page resets to 1 whenever filters/search/sortings
2628
+ * change (as it always has). Useful for restoring a page from the URL.
2629
+ */
2630
+ currentPage?: number;
2631
+ /**
2632
+ * Called whenever the pagination info changes — e.g. the user navigates to a
2633
+ * different page. Lets a consumer observe the current page (to persist it in
2634
+ * the URL, analytics, etc.) without owning the pagination state.
2635
+ */
2636
+ onPaginationChange?: (paginationInfo: PaginationInfo | null) => void;
2637
+ /*******************************************************/
2627
2638
  /** Data adapter responsible for fetching and managing data */
2628
2639
  dataAdapter: DataAdapter<R, Filters>;
2629
2640
  /** Selectable items value under the checkbox column (undefined if not selectable) */
@@ -5383,7 +5394,7 @@ export declare type InfiniteScrollPaginatedResponse<TRecord> = BasePaginatedResp
5383
5394
  *
5384
5395
  * @removeIn 2.0.0
5385
5396
  */
5386
- export declare const Input: <T extends string>(props: F0TextInputProps_2<T>) => JSX_2.Element;
5397
+ export declare const Input: <T extends string>(props: F0TextInputProps<T>) => JSX_2.Element;
5387
5398
 
5388
5399
  declare const Input_2: React_2.ForwardRefExoticComponent<Omit<React_2.InputHTMLAttributes<HTMLInputElement>, "onChange" | "size"> & Pick<InputFieldProps<string>, "label" | "onChange" | "size" | "icon" | "role" | "onFocus" | "onBlur" | "transparent" | "status" | "loading" | "disabled" | "maxLength" | "required" | "error" | "append" | "hideLabel" | "hint" | "labelIcon" | "onClickContent" | "readonly" | "clearable" | "autocomplete" | "onClear" | "isEmpty" | "emptyValue" | "hideMaxLength" | "appendTag" | "lengthProvider" | "buttonToggle"> & React_2.RefAttributes<HTMLInputElement>>;
5389
5400
 
@@ -5485,7 +5496,7 @@ declare type InputInternalProps<T extends string> = Pick<ComponentProps<typeof I
5485
5496
  * @deprecated Renamed to `F0TextInputProps`. See the `Input` deprecation note.
5486
5497
  * @removeIn 2.0.0
5487
5498
  */
5488
- export declare type InputProps<T extends string> = F0TextInputProps_2<T>;
5499
+ export declare type InputProps<T extends string> = F0TextInputProps<T>;
5489
5500
 
5490
5501
  declare interface InsertAfterNotesTextEditorPageDocumentPatch {
5491
5502
  type: "insert_after";
@@ -6082,7 +6093,7 @@ declare type NumberFilterValue = {
6082
6093
  *
6083
6094
  * @removeIn 2.0.0
6084
6095
  */
6085
- export declare const NumberInput: (props: F0NumberInputProps_2) => JSX_2.Element;
6096
+ export declare const NumberInput: (props: F0NumberInputProps) => JSX_2.Element;
6086
6097
 
6087
6098
  declare type NumberInputInternalProps = Omit<InputInternalProps<string>, "value" | "type" | "onChange"> & {
6088
6099
  locale: string;
@@ -6118,7 +6129,7 @@ export declare interface NumberInputPopoverConfig {
6118
6129
  * deprecation note.
6119
6130
  * @removeIn 2.0.0
6120
6131
  */
6121
- export declare type NumberInputProps = F0NumberInputProps_2;
6132
+ export declare type NumberInputProps = F0NumberInputProps;
6122
6133
 
6123
6134
  declare type Numeric = NumericValue | number | undefined | null;
6124
6135
 
@@ -6387,6 +6398,13 @@ declare type OneDataCollectionProps<R extends RecordType, Filters extends Filter
6387
6398
  */
6388
6399
  features?: DataCollectionStorageFeaturesDefinition;
6389
6400
  };
6401
+ /**
6402
+ * By default, when an `id` is set, the data collection reads its
6403
+ * filters/search/sortings from the URL query params on mount and reflects any
6404
+ * later changes back into them (see `dataCollectionUrlParams`). Set this to
6405
+ * `true` to opt out of that URL syncing.
6406
+ */
6407
+ disableUrlParams?: boolean;
6390
6408
  /**
6391
6409
  * @deprecated removes the horizontal padding from the data collection
6392
6410
  */
@@ -7915,7 +7933,7 @@ declare type TeamTagProps = ComponentProps<typeof F0TagTeam>;
7915
7933
  *
7916
7934
  * @removeIn 2.0.0
7917
7935
  */
7918
- export declare const Textarea: FC<F0TextAreaInputProps_2>;
7936
+ export declare const Textarea: FC<F0TextAreaInputProps>;
7919
7937
 
7920
7938
  declare const Textarea_2: ForwardRefExoticComponent<Omit<TextareaHTMLAttributes<HTMLTextAreaElement>, "value" | "onChange" | "onFocus" | "onBlur"> & {
7921
7939
  value?: string;
@@ -7928,7 +7946,7 @@ maxHeight?: number;
7928
7946
  * deprecation note.
7929
7947
  * @removeIn 2.0.0
7930
7948
  */
7931
- export declare type TextareaProps = F0TextAreaInputProps_2;
7949
+ export declare type TextareaProps = F0TextAreaInputProps;
7932
7950
 
7933
7951
  export declare type TOCItem<Depth extends 1 | 2 | 3 | 4 = 1> = BaseTOCItem & {
7934
7952
  children?: NextDepth<Depth> extends never ? never : TOCItem<NextDepth<Depth>>[];
@@ -1,9 +1,9 @@
1
- import { g as da, B as ua, h as fa, i as ma, j as At, k as De, l as ha, m as p, n as X, o as be, u as ie, T as pa, p as ba, q as ga, R as xa, r as va, s as re, t as wa, v as pt, w as rt, x as Re, A as _e, y as ya, z as Na, C as M, E as Ca, G as ka, H as ve, J as sn, K as Sa, L as Ia, M as W, N as on, S as O, O as we, Q as Fa, U as Aa, V as La, W as Ea, X as _a, Y as ke, Z as cn, _ as Oa, $ as ge, a0 as $e, a1 as Da, a2 as bt, d as dn, a3 as Ce, a4 as Ta, a5 as un, a6 as ne, a7 as K, a8 as fn, a9 as mn, aa as za, ab as hn, ac as me, ad as ee, ae as Pa, af as Ba, ag as Ra, ah as $a, ai as pe, aj as Ge, ak as Wa, al as Ma, am as ja, an as Va, ao as He, ap as pn, aq as Ga, ar as Ha, as as Ua, at as We, au as Ka, av as qa, aw as Ya, ax as Za, ay as Xa, az as Ja, aA as Qa, aB as er, aC as tr, aD as nr, aE as lt, aF as it, aG as bn, aH as ar, aI as rr, aJ as lr, aK as ir, aL as Ue, aM as gt, aN as gn, aO as sr, aP as xn, aQ as or, aR as cr, aS as dr, aT as Ee, aU as ur, aV as Te, aW as Lt, aX as st, aY as fr, aZ as mr, a as hr, b as pr, a_ as vn, a$ as br, f as gr, F as xr, b0 as wn, b1 as vr, b2 as yn, b3 as wr, b4 as yr, b5 as Nr, b6 as Cr, b7 as kr, b8 as Sr, b9 as Ir, ba as Fr, bb as Ar, bc as Nn, bd as ue, be as xt, bf as vt, bg as wt, bh as Cn, bi as yt, bj as kn, bk as Sn, bl as Lr, bm as Er, bn as _r, bo as Or, bp as Dr, bq as Tr, br as zr, bs as Pr, bt as Br, bu as Rr, bv as Et, bw as _t, bx as Ot, by as $r, bz as Wr, bA as Mr, bB as jr, bC as In, bD as Vr, bE as Gr } from "./F0CanvasPanel-CzqKtOrT.js";
2
- import { bQ as Lc, bP as Ec, c0 as _c, bM as Oc, bN as Dc, bF as Tc, bG as zc, bH as Pc, c1 as Bc, bO as Rc, bY as $c, bZ as Wc, bI as Mc, bS as jc, bR as Vc, bJ as Gc, bK as Hc, b_ as Uc, c2 as Kc, b$ as qc, bX as Yc, bU as Zc, bW as Xc, bT as Jc, bL as Qc, bV as ed } from "./F0CanvasPanel-CzqKtOrT.js";
1
+ import { g as da, B as ua, h as fa, i as ma, j as At, k as De, l as ha, m as p, n as X, o as be, u as ie, T as pa, p as ba, q as ga, R as xa, r as va, s as re, t as wa, v as pt, w as rt, x as Re, A as _e, y as ya, z as Na, C as M, E as Ca, G as ka, H as ve, J as sn, K as Sa, L as Ia, M as W, N as on, S as O, O as we, Q as Fa, U as Aa, V as La, W as Ea, X as _a, Y as ke, Z as cn, _ as Oa, $ as ge, a0 as $e, a1 as Da, a2 as bt, d as dn, a3 as Ce, a4 as Ta, a5 as un, a6 as ne, a7 as K, a8 as fn, a9 as mn, aa as za, ab as hn, ac as me, ad as ee, ae as Pa, af as Ba, ag as Ra, ah as $a, ai as pe, aj as Ge, ak as Wa, al as Ma, am as ja, an as Va, ao as He, ap as pn, aq as Ga, ar as Ha, as as Ua, at as We, au as Ka, av as qa, aw as Ya, ax as Za, ay as Xa, az as Ja, aA as Qa, aB as er, aC as tr, aD as nr, aE as lt, aF as it, aG as bn, aH as ar, aI as rr, aJ as lr, aK as ir, aL as Ue, aM as gt, aN as gn, aO as sr, aP as xn, aQ as or, aR as cr, aS as dr, aT as Ee, aU as ur, aV as Te, aW as Lt, aX as st, aY as fr, aZ as mr, a as hr, b as pr, a_ as vn, a$ as br, f as gr, F as xr, b0 as wn, b1 as vr, b2 as yn, b3 as wr, b4 as yr, b5 as Nr, b6 as Cr, b7 as kr, b8 as Sr, b9 as Ir, ba as Fr, bb as Ar, bc as Nn, bd as ue, be as xt, bf as vt, bg as wt, bh as Cn, bi as yt, bj as kn, bk as Sn, bl as Lr, bm as Er, bn as _r, bo as Or, bp as Dr, bq as Tr, br as zr, bs as Pr, bt as Br, bu as Rr, bv as Et, bw as _t, bx as Ot, by as $r, bz as Wr, bA as Mr, bB as jr, bC as In, bD as Vr, bE as Gr } from "./F0CanvasPanel-BErabj-B.js";
2
+ import { bQ as Lc, bP as Ec, c0 as _c, bM as Oc, bN as Dc, bF as Tc, bG as zc, bH as Pc, c1 as Bc, bO as Rc, bY as $c, bZ as Wc, bI as Mc, bS as jc, bR as Vc, bJ as Gc, bK as Hc, b_ as Uc, c2 as Kc, b$ as qc, bX as Yc, bU as Zc, bW as Xc, bT as Jc, bL as Qc, bV as ed } from "./F0CanvasPanel-BErabj-B.js";
3
3
  import { jsx as e, jsxs as o, Fragment as U } from "react/jsx-runtime";
4
4
  import se, { forwardRef as j, useRef as G, useTransition as Hr, useState as _, useLayoutEffect as Fn, useId as ot, useContext as Ke, createContext as Nt, useEffect as $, useCallback as Q, useMemo as q, Fragment as Ur, isValidElement as Kr, cloneElement as An, Children as Ln } from "react";
5
- import { C as qr, P as Yr, g as En, c as Zr, a as _n, F as ct, f as Xr, M as Jr, b as Qr, R as Dt, d as On, u as el, e as Dn, S as tl, A as nl, B as al, L as rl, h as ll, V as il, i as sl, j as Tt, k as ol, l as cl, O as dl } from "./useDataCollectionSource-BNAFV8q4.js";
6
- import { r as nd, s as ad, p as rd, H as ld, t as id, z as sd, a9 as od, G as cd, q as dd, Q as ud, o as fd, Y as md, U as hd, J as pd, af as bd, K as gd, Z as xd, _ as vd, v as wd, ab as yd, ac as Nd, aa as Cd, ad as kd, N as Sd, $ as Id, a6 as Fd, a8 as Ad, w as Ld, y as Ed, D as _d, W as Od, ae as Dd, X as Td, T as zd, x as Pd, E as Bd, m as Rd, n as $d, a1 as Wd, a2 as Md, a7 as jd, I as Vd, a3 as Gd, a4 as Hd, a0 as Ud, a5 as Kd } from "./useDataCollectionSource-BNAFV8q4.js";
5
+ import { C as qr, P as Yr, g as En, c as Zr, a as _n, F as ct, f as Xr, M as Jr, b as Qr, R as Dt, d as On, u as el, e as Dn, S as tl, A as nl, B as al, L as rl, h as ll, V as il, i as sl, j as Tt, k as ol, l as cl, O as dl } from "./useDataCollectionSource-O4gVVcoQ.js";
6
+ import { r as nd, s as ad, p as rd, H as ld, t as id, z as sd, a9 as od, G as cd, q as dd, Q as ud, o as fd, Y as md, U as hd, J as pd, af as bd, K as gd, Z as xd, _ as vd, v as wd, ab as yd, ac as Nd, aa as Cd, ad as kd, N as Sd, $ as Id, a6 as Fd, a8 as Ad, w as Ld, y as Ed, D as _d, W as Od, ae as Dd, X as Td, T as zd, x as Pd, E as Bd, m as Rd, n as $d, a1 as Wd, a2 as Md, a7 as jd, I as Vd, a3 as Gd, a4 as Hd, a0 as Ud, a5 as Kd } from "./useDataCollectionSource-O4gVVcoQ.js";
7
7
  const ul = da("Search", [
8
8
  ["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }],
9
9
  ["path", { d: "m21 21-4.3-4.3", key: "1qie3q" }]
package/dist/f0.d.ts CHANGED
@@ -59,7 +59,6 @@ import { F0FormDefinition as F0FormDefinition_2 } from './f0';
59
59
  import { F0FormDefinitionPerSection as F0FormDefinitionPerSection_2 } from './f0';
60
60
  import { F0FormDefinitionSingleSchema as F0FormDefinitionSingleSchema_2 } from './f0';
61
61
  import { F0GridStackProps as F0GridStackProps_2 } from './F0GridStack';
62
- import { F0NumberInputProps as F0NumberInputProps_2 } from './F0NumberInput';
63
62
  import { F0SelectProps as F0SelectProps_2 } from './types';
64
63
  import { F0TagBalanceProps } from './types';
65
64
  import { F0TagCompanyProps } from './types';
@@ -68,8 +67,6 @@ import { F0TagPersonProps as F0TagPersonProps_2 } from './types';
68
67
  import { F0TagRawProps } from './types';
69
68
  import { F0TagStatusProps } from './types';
70
69
  import { F0TagTeamProps } from './types';
71
- import { F0TextAreaInputProps as F0TextAreaInputProps_2 } from './F0TextAreaInput';
72
- import { F0TextInputProps as F0TextInputProps_2 } from './F0TextInput';
73
70
  import { F0TimelineRowProps as F0TimelineRowProps_2 } from './types';
74
71
  import { f1Colors } from '@factorialco/f0-core';
75
72
  import { FC } from 'react';
@@ -1634,6 +1631,12 @@ declare const boxVariants: (props?: ({
1634
1631
  /** Supported breakpoints */
1635
1632
  export declare type Breakpoint = "sm" | "md" | "lg" | "xl";
1636
1633
 
1634
+ /**
1635
+ * Builds a fresh `URLSearchParams` encoding a data collection `id` and state,
1636
+ * symmetric with {@link parseDataCollectionUrlParams}. Always sets `dc_id`.
1637
+ */
1638
+ export declare const buildDataCollectionUrlParams: <CurrentFiltersState extends FiltersState<FiltersDefinition> = FiltersState<FiltersDefinition>>(id: string, state?: DataCollectionUrlState<CurrentFiltersState>) => URLSearchParams;
1639
+
1637
1640
  export declare const buildTranslations: (translations: TranslationsType) => TranslationsType;
1638
1641
 
1639
1642
  /**
@@ -3499,6 +3502,29 @@ export declare type Data<R extends RecordType> = {
3499
3502
  groups: GroupRecord<R>[];
3500
3503
  };
3501
3504
 
3505
+ /**
3506
+ * Every data collection URL param shares this prefix, so each filter is its own
3507
+ * readable param — e.g. `?dc_id=people/v1&dc_department=Sales&dc_search=ada`
3508
+ * instead of a single JSON blob.
3509
+ */
3510
+ export declare const DATA_COLLECTION_URL_PARAM_PREFIX = "dc_";
3511
+
3512
+ /**
3513
+ * The reserved (non-filter) param names. Individual filters are encoded as
3514
+ * `dc_<filterKey>`; these three names are written last (via `set`) so that on
3515
+ * the rare clash where a filter key is exactly `id`, `search` or `sort`, the
3516
+ * reserved param wins.
3517
+ */
3518
+ export declare const DATA_COLLECTION_URL_PARAMS: {
3519
+ readonly id: "dc_id";
3520
+ readonly search: "dc_search";
3521
+ readonly sortings: "dc_sort";
3522
+ /** Active visualization type/key, e.g. `table` (omitted for the default one). */
3523
+ readonly visualization: "dc_view";
3524
+ /** Current page (1-indexed; omitted for the first page). */
3525
+ readonly page: "dc_page";
3526
+ };
3527
+
3502
3528
  /**
3503
3529
  * Combined type for all possible data adapter configurations
3504
3530
  * @template R - The type of records in the collection
@@ -3632,6 +3658,27 @@ export declare type DataCollectionStorageHandler<CurrentFiltersState extends Fil
3632
3658
  set: (key: string, storage: DataCollectionStorage<CurrentFiltersState>) => Promise<void>;
3633
3659
  };
3634
3660
 
3661
+ /** How {@link syncDataCollectionUrlParams} should update the browser history. */
3662
+ export declare type DataCollectionUrlHistoryMode = "replace" | "push" | "none";
3663
+
3664
+ export declare type DataCollectionUrlParams<CurrentFiltersState extends FiltersState<FiltersDefinition> = FiltersState<FiltersDefinition>> = {
3665
+ id: string;
3666
+ state: DataCollectionUrlState<CurrentFiltersState>;
3667
+ };
3668
+
3669
+ /** The subset of a data collection's state we read from / write to the URL. */
3670
+ export declare type DataCollectionUrlState<CurrentFiltersState extends FiltersState<FiltersDefinition> = FiltersState<FiltersDefinition>> = Pick<DataCollectionStorage<CurrentFiltersState>, "filters" | "search" | "sortings"> & {
3671
+ /**
3672
+ * Active visualization, addressed by its **type/key** (e.g. `"table"`,
3673
+ * `"kanban"`) rather than a positional index — readable and stable across
3674
+ * reordering. Mapping to/from the index is the caller's job (the data
3675
+ * collection knows the visualization list).
3676
+ */
3677
+ visualization?: string;
3678
+ /** Current page (1-indexed). Not part of persisted storage — URL only. */
3679
+ page?: number;
3680
+ };
3681
+
3635
3682
  /**
3636
3683
  * Data download canvas content — renders a full data table with download options.
3637
3684
  */
@@ -3776,6 +3823,20 @@ export declare type DataSourceDefinition<R extends RecordType = RecordType, Filt
3776
3823
  /** Current state of applied sortings */
3777
3824
  currentSortings?: SortingsState<Sortings>;
3778
3825
  /*******************************************************/
3826
+ /***** PAGINATION ***************************************************/
3827
+ /**
3828
+ * Initial page to fetch (1-indexed) for page-based pagination. Applied on the
3829
+ * first load only; the page resets to 1 whenever filters/search/sortings
3830
+ * change (as it always has). Useful for restoring a page from the URL.
3831
+ */
3832
+ currentPage?: number;
3833
+ /**
3834
+ * Called whenever the pagination info changes — e.g. the user navigates to a
3835
+ * different page. Lets a consumer observe the current page (to persist it in
3836
+ * the URL, analytics, etc.) without owning the pagination state.
3837
+ */
3838
+ onPaginationChange?: (paginationInfo: PaginationInfo | null) => void;
3839
+ /*******************************************************/
3779
3840
  /** Data adapter responsible for fetching and managing data */
3780
3841
  dataAdapter: DataAdapter<R, Filters>;
3781
3842
  /** Selectable items value under the checkbox column (undefined if not selectable) */
@@ -11012,7 +11073,7 @@ export declare function injectSectionEnds(items: FlatFormItem[], inSectionQuesti
11012
11073
  *
11013
11074
  * @removeIn 2.0.0
11014
11075
  */
11015
- export declare const Input: <T extends string>(props: F0TextInputProps_2<T>) => JSX_2.Element;
11076
+ export declare const Input: <T extends string>(props: F0TextInputProps<T>) => JSX_2.Element;
11016
11077
 
11017
11078
  declare const Input_2: React_2.ForwardRefExoticComponent<Omit<React_2.InputHTMLAttributes<HTMLInputElement>, "onChange" | "size"> & Pick<InputFieldProps<string>, "label" | "onChange" | "size" | "icon" | "role" | "onFocus" | "onBlur" | "transparent" | "status" | "loading" | "disabled" | "maxLength" | "required" | "error" | "append" | "hideLabel" | "hint" | "labelIcon" | "onClickContent" | "readonly" | "clearable" | "autocomplete" | "onClear" | "isEmpty" | "emptyValue" | "hideMaxLength" | "appendTag" | "lengthProvider" | "buttonToggle"> & React_2.RefAttributes<HTMLInputElement>>;
11018
11079
 
@@ -11118,7 +11179,7 @@ declare type InputInternalProps<T extends string> = Pick<ComponentProps<typeof I
11118
11179
  * @deprecated Renamed to `F0TextInputProps`. See the `Input` deprecation note.
11119
11180
  * @removeIn 2.0.0
11120
11181
  */
11121
- export declare type InputProps<T extends string> = F0TextInputProps_2<T>;
11182
+ export declare type InputProps<T extends string> = F0TextInputProps<T>;
11122
11183
 
11123
11184
  declare interface InsertAfterNotesTextEditorPageDocumentPatch {
11124
11185
  type: "insert_after";
@@ -11411,6 +11472,18 @@ export declare type MaskOptions = {
11411
11472
 
11412
11473
  declare const MAX_EXPANDED_ACTIONS = 2;
11413
11474
 
11475
+ /**
11476
+ * Maximum number of values a single filter may contribute to the URL.
11477
+ *
11478
+ * A multi-select (`in`) filter materializes one URL param per selected value,
11479
+ * so "select all" over a large or paginated data source would otherwise dump
11480
+ * hundreds of ids into the query string (bloated, and beyond browser/server URL
11481
+ * length limits). Past this cap the filter is left out of the URL — it is still
11482
+ * applied in-memory and persisted via storage, just not shareable through the
11483
+ * URL. Deliberately conservative; tune if a use case needs more.
11484
+ */
11485
+ export declare const MAX_URL_FILTER_VALUES = 25;
11486
+
11414
11487
  export declare type MentionedUser = {
11415
11488
  id: string | number;
11416
11489
  label: string;
@@ -11881,7 +11954,7 @@ declare type NumberFilterValue = {
11881
11954
  *
11882
11955
  * @removeIn 2.0.0
11883
11956
  */
11884
- export declare const NumberInput: (props: F0NumberInputProps_2) => JSX_2.Element;
11957
+ export declare const NumberInput: (props: F0NumberInputProps) => JSX_2.Element;
11885
11958
 
11886
11959
  declare type NumberInputInternalProps = Omit<InputInternalProps<string>, "value" | "type" | "onChange"> & {
11887
11960
  locale: string;
@@ -11917,7 +11990,7 @@ export declare interface NumberInputPopoverConfig {
11917
11990
  * deprecation note.
11918
11991
  * @removeIn 2.0.0
11919
11992
  */
11920
- export declare type NumberInputProps = F0NumberInputProps_2;
11993
+ export declare type NumberInputProps = F0NumberInputProps;
11921
11994
 
11922
11995
  /**
11923
11996
  * Base for number-specific conditions
@@ -12390,6 +12463,17 @@ export declare type PaginationInfo = Omit<PageBasedPaginatedResponse<unknown>, "
12390
12463
  */
12391
12464
  export declare type PaginationType = "pages" | "infinite-scroll" | "no-pagination";
12392
12465
 
12466
+ /**
12467
+ * Parses the data collection identifier and state out of URL query params.
12468
+ *
12469
+ * @param input - A query string, a `URLSearchParams`, or omitted to read from
12470
+ * `window.location.search`.
12471
+ * @param filtersDefinition - Needed to decode the `dc_<filterKey>` params back
12472
+ * into correctly-typed filter values. Omit to skip filters.
12473
+ * @returns `{ id, state }`, or `null` when no `dc_id` is present.
12474
+ */
12475
+ export declare const parseDataCollectionUrlParams: <CurrentFiltersState extends FiltersState<FiltersDefinition> = FiltersState<FiltersDefinition>>(input?: string | URLSearchParams, filtersDefinition?: FiltersDefinition) => DataCollectionUrlParams<CurrentFiltersState> | null;
12476
+
12393
12477
  declare type PathsToStringProps<T> = T extends string ? [] : {
12394
12478
  [K in Extract<keyof T, string>]: [K, ...PathsToStringProps<T[K]>];
12395
12479
  }[Extract<keyof T, string>];
@@ -13458,6 +13542,14 @@ export declare const selectSizes: readonly ["sm", "md"];
13458
13542
  */
13459
13543
  declare type SelectValueType = string | number;
13460
13544
 
13545
+ /**
13546
+ * Writes a data collection's current filters/search/sortings onto an existing
13547
+ * query string, preserving any unrelated params. Every `dc_`-prefixed param is
13548
+ * rebuilt from `state`, so cleared filters drop out and an entirely empty state
13549
+ * leaves the URL free of `dc_` params (rather than a bare `?dc_id=<id>`).
13550
+ */
13551
+ export declare const setDataCollectionUrlParams: <CurrentFiltersState extends FiltersState<FiltersDefinition> = FiltersState<FiltersDefinition>>(current: string | URLSearchParams | undefined, id: string, state: DataCollectionUrlState<CurrentFiltersState>) => URLSearchParams;
13552
+
13461
13553
  declare type SetFormCardValueFormatter = <T = unknown>(entry: FormCardValueFormatterEntry<T>) => void;
13462
13554
 
13463
13555
  /**
@@ -13750,6 +13842,18 @@ export declare type SurveySubmitAnswers = Record<string, string | number | boole
13750
13842
  */
13751
13843
  declare type SwitchFieldRenderIf = BooleanRenderIfCondition | CommonRenderIfCondition | F0BaseFieldRenderIfFunction;
13752
13844
 
13845
+ /**
13846
+ * Reflects a data collection's current filters/search/sortings into the URL.
13847
+ *
13848
+ * Pairs with {@link parseDataCollectionUrlParams} (which reads the other way).
13849
+ * `OneDataCollection` wires this up by default when an `id` is set.
13850
+ *
13851
+ * @returns The resulting query string (no leading `?`), or `null` under SSR.
13852
+ */
13853
+ export declare const syncDataCollectionUrlParams: <CurrentFiltersState extends FiltersState<FiltersDefinition> = FiltersState<FiltersDefinition>>(id: string, state: DataCollectionUrlState<CurrentFiltersState>, options?: {
13854
+ history?: DataCollectionUrlHistoryMode;
13855
+ }) => string | null;
13856
+
13753
13857
  declare type TableCollectionProps<R extends RecordType, Filters extends FiltersDefinition, Sortings extends SortingsDefinition, Summaries extends SummariesDefinition, ItemActions extends ItemActionsDefinition<R>, NavigationFilters extends NavigationFiltersDefinition, Grouping extends GroupingDefinition<R>> = CollectionProps<R, Filters, Sortings, Summaries, ItemActions, NavigationFilters, Grouping, TableVisualizationOptions<R, Filters, Sortings, Summaries>>;
13754
13858
 
13755
13859
  declare type TableColumnDefinition<R extends RecordType, Sortings extends SortingsDefinition, Summaries extends SummariesDefinition> = WithOptionalSorting<R, Sortings> & Pick<ComponentProps<typeof TableHead>, "hidden" | "info" | "infoIcon" | "sticky" | "width" | "minWidth"> & {
@@ -14089,7 +14193,7 @@ declare type TeamTagProps = ComponentProps<typeof F0TagTeam>;
14089
14193
  *
14090
14194
  * @removeIn 2.0.0
14091
14195
  */
14092
- export declare const Textarea: FC<F0TextAreaInputProps_2>;
14196
+ export declare const Textarea: FC<F0TextAreaInputProps>;
14093
14197
 
14094
14198
  declare const Textarea_2: ForwardRefExoticComponent<Omit<TextareaHTMLAttributes<HTMLTextAreaElement>, "value" | "onChange" | "onFocus" | "onBlur"> & {
14095
14199
  value?: string;
@@ -14107,7 +14211,7 @@ declare type TextareaFieldRenderIf = TextRenderIfCondition | CommonRenderIfCondi
14107
14211
  * deprecation note.
14108
14212
  * @removeIn 2.0.0
14109
14213
  */
14110
- export declare type TextareaProps = F0TextAreaInputProps_2;
14214
+ export declare type TextareaProps = F0TextAreaInputProps;
14111
14215
 
14112
14216
  /**
14113
14217
  * All valid renderIf conditions for text fields
@@ -15360,6 +15464,15 @@ declare interface WithTooltipDescription {
15360
15464
  description?: string;
15361
15465
  }
15362
15466
 
15467
+ /**
15468
+ * Synchronously persists a OneDataCollection's state to localStorage, mirroring
15469
+ * `readDataCollectionStorage`. Uses the same `datacollection-` prefixed key as
15470
+ * `dataCollectionLocalStorageHandler` so the component hydrates from it.
15471
+ *
15472
+ * @param id - The OneDataCollection `id`, WITHOUT the `datacollection-` prefix.
15473
+ */
15474
+ export declare const writeDataCollectionStorage: <CurrentFiltersState extends FiltersState<FiltersDefinition> = FiltersState<FiltersDefinition>>(id: string, storage: DataCollectionStorage<CurrentFiltersState>) => void;
15475
+
15363
15476
  /** z-index values */
15364
15477
  export declare type ZIndexToken = "auto" | "0" | "10" | "20" | "30" | "40" | "50";
15365
15478