@factorialco/f0-react 4.35.3 → 4.36.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.
@@ -5305,8 +5305,28 @@ export declare type F0FileItemSize = (typeof f0FileItemSizes)[number];
5305
5305
 
5306
5306
  export declare const f0FileItemSizes: readonly ["md", "lg"];
5307
5307
 
5308
- /** Tag types that can be rendered in a node's metadata row. */
5309
- declare type F0GraphNodeTagType = TagVariant["type"];
5308
+ /**
5309
+ * A tag rendered in a node's metadata row. Its visual is driven by the
5310
+ * `TagVariant` `type`; its column identity — which toggle/label/default-
5311
+ * visibility bucket it falls into — is `column ?? type`.
5312
+ */
5313
+ declare type F0GraphNodeTag = TagVariant & {
5314
+ /**
5315
+ * Optional column identity, decoupling this tag's show/hide toggle, hover-
5316
+ * card label and default visibility from its visual `type`. Defaults to
5317
+ * `type` when omitted. Use it to give two tags of the same `type` (e.g. a
5318
+ * second `raw` pill) their own independent column.
5319
+ */
5320
+ column?: F0GraphNodeTagColumn;
5321
+ };
5322
+
5323
+ /**
5324
+ * Identifies the show/hide column a tag belongs to. A column defaults to the
5325
+ * tag's visual `type` (`"raw"`, `"status"`, …) but can be any custom string, so
5326
+ * two tags sharing a `type` — e.g. two `raw` pills — can occupy independent
5327
+ * columns with their own toggle, label and default visibility.
5328
+ */
5329
+ declare type F0GraphNodeTagColumn = string;
5310
5330
 
5311
5331
  declare interface F0IconProps extends SVGProps<SVGSVGElement>, VariantProps<typeof iconVariants> {
5312
5332
  icon: IconType;
@@ -6196,19 +6216,24 @@ declare type GraphVisualizationOptions<R extends RecordType, Filters extends Fil
6196
6216
  subtitle?: (record: R) => string;
6197
6217
  /** Avatar shown on the leading side of the node pill. */
6198
6218
  avatar?: (record: R) => AvatarVariant;
6199
- /** Tags rendered in the node metadata row. */
6200
- tags?: (record: R) => TagVariant[];
6201
- /**
6202
- * Tag types present on the nodes. When provided, the controls bar gains a
6203
- * toggle to show/hide each metadata type (like configuring table columns).
6204
- */
6205
- nodeTagTypes?: ReadonlyArray<F0GraphNodeTagType>;
6206
- /** Friendly labels per tag type, shown in the metadata visibility toggle. */
6207
- nodeTagTypeLabels?: Partial<Record<F0GraphNodeTagType, string>>;
6208
- /** Tag types visible by default. Defaults to all of `nodeTagTypes`. */
6209
- defaultVisibleTagTypes?: ReadonlyArray<F0GraphNodeTagType>;
6210
- /** Tag types that are always visible and cannot be hidden in the settings. */
6211
- pinnedTagTypes?: ReadonlyArray<F0GraphNodeTagType>;
6219
+ /**
6220
+ * Tags rendered in the node metadata row. A tag may set `column` to place it
6221
+ * in its own show/hide column independent of its visual `type` (e.g. a second
6222
+ * `raw` pill that must not merge into the first `raw` column).
6223
+ */
6224
+ tags?: (record: R) => F0GraphNodeTag[];
6225
+ /**
6226
+ * Tag columns present on the nodes. When provided, the controls bar gains a
6227
+ * toggle to show/hide each metadata column (like configuring table columns).
6228
+ * Values are tag `column` keys (or `type` when a tag has no `column`).
6229
+ */
6230
+ nodeTagTypes?: ReadonlyArray<F0GraphNodeTagColumn>;
6231
+ /** Friendly labels per tag column, shown in the metadata visibility toggle. */
6232
+ nodeTagTypeLabels?: Partial<Record<F0GraphNodeTagColumn, string>>;
6233
+ /** Tag columns visible by default. Defaults to all of `nodeTagTypes`. */
6234
+ defaultVisibleTagTypes?: ReadonlyArray<F0GraphNodeTagColumn>;
6235
+ /** Tag columns that are always visible and cannot be hidden in the settings. */
6236
+ pinnedTagTypes?: ReadonlyArray<F0GraphNodeTagColumn>;
6212
6237
  /**
6213
6238
  * Floating toolbar shown above a node while it is selected. Provide the
6214
6239
  * action buttons (e.g. `<F0Button size="sm" … />`) for the given record.
@@ -2,8 +2,8 @@ import { h as Va, B as Ga, i as Ka, j as qa, k as wn, l as lt, m as tt, n as Ya,
2
2
  import { cD as vm, cC as ym, cP as wm, cz as Nm, cA as Cm, cs as km, ct as Im, ct as Sm, cu as Fm, cS as Tm, cB as Am, cL as Em, cM as Rm, cQ as Dm, cv as Pm, cF as Lm, cE as Om, cw as _m, cx as zm, cN as $m, cT as Bm, cO as Mm, cR as jm, cK as Wm, cH as Hm, cJ as Um, cG as Vm, cy as Gm, cI as Km } from "./F0CanvasPanel-CURWZ54N.js";
3
3
  import { jsx as t, jsxs as d, Fragment as fe } from "react/jsx-runtime";
4
4
  import Te, { forwardRef as de, useRef as z, useTransition as Qi, useState as R, useLayoutEffect as Je, useId as Qt, useContext as Le, createContext as Ie, useEffect as K, useCallback as U, useMemo as J, Fragment as qe, isValidElement as Ji, cloneElement as jr, memo as Wr, Children as Hr } from "react";
5
- import { C as Xi, P as Zi, a as it, M as eo, p as to, b as no, R as Fn, c as Ur, u as ro, d as ao, e as so, f as io, g as oo, O as Vr, h as Gr, S as lo, A as co, B as uo, L as fo, i as mo, V as ho, j as po, k as go, l as bo } from "./useDataCollectionSource-4Q-2NK9k.js";
6
- import { r as Ym, s as Qm, o as Jm, H as Xm, t as Zm, z as eh, a8 as th, G as nh, q as rh, aa as ah, a9 as sh, Q as ih, ad as oh, F as lh, Y as ch, U as dh, J as uh, af as fh, K as mh, Z as hh, _ as ph, v as gh, ab as bh, ac as xh, N as vh, $ as yh, a5 as wh, a7 as Nh, w as Ch, y as kh, D as Ih, W as Sh, ae as Fh, X as Th, T as Ah, ag as Eh, x as Rh, E as Dh, m as Ph, n as Lh, a1 as Oh, a2 as _h, a6 as zh, I as $h, a3 as Bh, a0 as Mh, a4 as jh } from "./useDataCollectionSource-4Q-2NK9k.js";
5
+ import { C as Xi, P as Zi, a as it, M as eo, p as to, b as no, R as Fn, c as Ur, u as ro, d as ao, e as so, f as io, g as oo, O as Vr, h as Gr, S as lo, A as co, B as uo, L as fo, i as mo, V as ho, j as po, k as go, l as bo } from "./useDataCollectionSource-D2ekGQSI.js";
6
+ import { r as Ym, s as Qm, o as Jm, H as Xm, t as Zm, z as eh, a8 as th, G as nh, q as rh, aa as ah, a9 as sh, Q as ih, ad as oh, F as lh, Y as ch, U as dh, J as uh, af as fh, K as mh, Z as hh, _ as ph, v as gh, ab as bh, ac as xh, N as vh, $ as yh, a5 as wh, a7 as Nh, w as Ch, y as kh, D as Ih, W as Sh, ae as Fh, X as Th, T as Ah, ag as Eh, x as Rh, E as Dh, m as Ph, n as Lh, a1 as Oh, a2 as _h, a6 as zh, I as $h, a3 as Bh, a0 as Mh, a4 as jh } from "./useDataCollectionSource-D2ekGQSI.js";
7
7
  const xo = Va("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
@@ -9831,8 +9831,28 @@ export declare interface F0FormValidationResult {
9831
9831
  rootError?: string;
9832
9832
  }
9833
9833
 
9834
- /** Tag types that can be rendered in a node's metadata row. */
9835
- declare type F0GraphNodeTagType = TagVariant["type"];
9834
+ /**
9835
+ * A tag rendered in a node's metadata row. Its visual is driven by the
9836
+ * `TagVariant` `type`; its column identity — which toggle/label/default-
9837
+ * visibility bucket it falls into — is `column ?? type`.
9838
+ */
9839
+ declare type F0GraphNodeTag = TagVariant & {
9840
+ /**
9841
+ * Optional column identity, decoupling this tag's show/hide toggle, hover-
9842
+ * card label and default visibility from its visual `type`. Defaults to
9843
+ * `type` when omitted. Use it to give two tags of the same `type` (e.g. a
9844
+ * second `raw` pill) their own independent column.
9845
+ */
9846
+ column?: F0GraphNodeTagColumn;
9847
+ };
9848
+
9849
+ /**
9850
+ * Identifies the show/hide column a tag belongs to. A column defaults to the
9851
+ * tag's visual `type` (`"raw"`, `"status"`, …) but can be any custom string, so
9852
+ * two tags sharing a `type` — e.g. two `raw` pills — can occupy independent
9853
+ * columns with their own toggle, label and default visibility.
9854
+ */
9855
+ declare type F0GraphNodeTagColumn = string;
9836
9856
 
9837
9857
  export declare const F0GridStack: WithDataTestIdReturnType_7< {
9838
9858
  ({ options, widgets, onChange, className, static: isStatic, forcePositionSync, }: F0GridStackProps_2): JSX_2.Element;
@@ -12052,19 +12072,24 @@ declare type GraphVisualizationOptions<R extends RecordType, Filters extends Fil
12052
12072
  subtitle?: (record: R) => string;
12053
12073
  /** Avatar shown on the leading side of the node pill. */
12054
12074
  avatar?: (record: R) => AvatarVariant;
12055
- /** Tags rendered in the node metadata row. */
12056
- tags?: (record: R) => TagVariant[];
12057
- /**
12058
- * Tag types present on the nodes. When provided, the controls bar gains a
12059
- * toggle to show/hide each metadata type (like configuring table columns).
12060
- */
12061
- nodeTagTypes?: ReadonlyArray<F0GraphNodeTagType>;
12062
- /** Friendly labels per tag type, shown in the metadata visibility toggle. */
12063
- nodeTagTypeLabels?: Partial<Record<F0GraphNodeTagType, string>>;
12064
- /** Tag types visible by default. Defaults to all of `nodeTagTypes`. */
12065
- defaultVisibleTagTypes?: ReadonlyArray<F0GraphNodeTagType>;
12066
- /** Tag types that are always visible and cannot be hidden in the settings. */
12067
- pinnedTagTypes?: ReadonlyArray<F0GraphNodeTagType>;
12075
+ /**
12076
+ * Tags rendered in the node metadata row. A tag may set `column` to place it
12077
+ * in its own show/hide column independent of its visual `type` (e.g. a second
12078
+ * `raw` pill that must not merge into the first `raw` column).
12079
+ */
12080
+ tags?: (record: R) => F0GraphNodeTag[];
12081
+ /**
12082
+ * Tag columns present on the nodes. When provided, the controls bar gains a
12083
+ * toggle to show/hide each metadata column (like configuring table columns).
12084
+ * Values are tag `column` keys (or `type` when a tag has no `column`).
12085
+ */
12086
+ nodeTagTypes?: ReadonlyArray<F0GraphNodeTagColumn>;
12087
+ /** Friendly labels per tag column, shown in the metadata visibility toggle. */
12088
+ nodeTagTypeLabels?: Partial<Record<F0GraphNodeTagColumn, string>>;
12089
+ /** Tag columns visible by default. Defaults to all of `nodeTagTypes`. */
12090
+ defaultVisibleTagTypes?: ReadonlyArray<F0GraphNodeTagColumn>;
12091
+ /** Tag columns that are always visible and cannot be hidden in the settings. */
12092
+ pinnedTagTypes?: ReadonlyArray<F0GraphNodeTagColumn>;
12068
12093
  /**
12069
12094
  * Floating toolbar shown above a node while it is selected. Provide the
12070
12095
  * action buttons (e.g. `<F0Button size="sm" … />`) for the given record.
package/dist/f0.js CHANGED
@@ -6,8 +6,8 @@ import React__default, { forwardRef, useRef, useImperativeHandle, Children, crea
6
6
  import { D as AIButton, E as ForwardRef$1, G as animate, H as ForwardRef$f, I as ForwardRef$j, J as ForwardRef$k, K as ForwardRef$o, L as ForwardRef$t, M as ForwardRef$x, N as ForwardRef$z, O as F0Box, P as ForwardRef$J, Q as ForwardRef$K, R as ForwardRef$L, S as ForwardRef$M, U as ForwardRef$N, F as FormCardValueFormatterProvider } from "./F0AiProcessingOverlay-Dzcglwjs.js";
7
7
  import { A as ta, C as ea, t as ia, s as aa, v as na, y as la, l as ra, i as sa, q as oa, z as ca, B as da, p as ua, r as ha, j as ma, e as pa, g as ba, k as Za, T as ya, w as Ma, h as Na, a as ga, n as Wa, m as Ta, o as Ga, b as fa, f as va, x as La, c as Ya, d as Xa, u as Sa } from "./F0AiProcessingOverlay-Dzcglwjs.js";
8
8
  import { createPortal, unstable_batchedUpdates } from "react-dom";
9
- import { C as Carousel, F as F0SegmentedControl, ah as isFieldRequired, ai as evaluateRenderIf, aj as buildDynamicSchema, ak as renderFieldInput, al as useF0Form, am as F0Form, G as F0ActionBar, an as F0FormSection, ao as nanoid, ap as dequal, Y as F0TableOfContent, a8 as Dialog$1, aq as FormMessage, Q as F0NumberInput, ar as EmojiPicker, as as data, c as ReorderItem, R as ReorderGroup, u as useDragControls, W as ResourceHeader, O as OneEmptyState, at as UpsellRequestResponseDialog, au as Label$1, av as UpsellingButton, o as BaseBanner, d as useDataCollectionSource, $ as OneDataCollection, aw as extractDisplayValue, ax as navigationFilterTypes, ay as NavigationFilters, az as DialogDescription, aA as PrivacyModeProvider, M as MotionConfig } from "./useDataCollectionSource-4Q-2NK9k.js";
10
- import { r as Va, s as Ia, H as Ra, t as wa, z as za, aR as Da, aQ as Ca, aM as ka, aC as Oa, aB as Fa, aD as ja, aE as Ea, aa as Ua, a9 as Ja, ad as Pa, U as Ka, J as Ha, af as Aa, K as Qa, v as Ba, aS as $a, ab as qa, ac as tn, N as en, w as an, P as nn, y as ln, D as rn, ae as sn, T as on, ag as dn, x as un, E as hn, aU as mn, m as pn, n as bn, aL as Zn, aH as yn, aG as Mn, aT as Nn, a6 as gn, aJ as Wn, aK as Tn, I as Gn, aV as fn, aW as vn, e as Ln, aN as Yn, aO as Xn, aP as Sn, aI as xn, f as Vn, h as In, aF as Rn, aX as wn } from "./useDataCollectionSource-4Q-2NK9k.js";
9
+ import { C as Carousel, F as F0SegmentedControl, ah as isFieldRequired, ai as evaluateRenderIf, aj as buildDynamicSchema, ak as renderFieldInput, al as useF0Form, am as F0Form, G as F0ActionBar, an as F0FormSection, ao as nanoid, ap as dequal, Y as F0TableOfContent, a8 as Dialog$1, aq as FormMessage, Q as F0NumberInput, ar as EmojiPicker, as as data, c as ReorderItem, R as ReorderGroup, u as useDragControls, W as ResourceHeader, O as OneEmptyState, at as UpsellRequestResponseDialog, au as Label$1, av as UpsellingButton, o as BaseBanner, d as useDataCollectionSource, $ as OneDataCollection, aw as extractDisplayValue, ax as navigationFilterTypes, ay as NavigationFilters, az as DialogDescription, aA as PrivacyModeProvider, M as MotionConfig } from "./useDataCollectionSource-D2ekGQSI.js";
10
+ import { r as Va, s as Ia, H as Ra, t as wa, z as za, aR as Da, aQ as Ca, aM as ka, aC as Oa, aB as Fa, aD as ja, aE as Ea, aa as Ua, a9 as Ja, ad as Pa, U as Ka, J as Ha, af as Aa, K as Qa, v as Ba, aS as $a, ab as qa, ac as tn, N as en, w as an, P as nn, y as ln, D as rn, ae as sn, T as on, ag as dn, x as un, E as hn, aU as mn, m as pn, n as bn, aL as Zn, aH as yn, aG as Mn, aT as Nn, a6 as gn, aJ as Wn, aK as Tn, I as Gn, aV as fn, aW as vn, e as Ln, aN as Yn, aO as Xn, aP as Sn, aI as xn, f as Vn, h as In, aF as Rn, aX as wn } from "./useDataCollectionSource-D2ekGQSI.js";
11
11
  import { utils, write as writeSync } from "./xlsx-Bedf3nwD.js";
12
12
  import { defaultTranslations as Dn } from "./i18n-provider-defaults.js";
13
13
  import './f0.css';const CAROUSEL_COLUMNS = {