@factorialco/f0-react 1.431.0 → 1.433.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.
@@ -1,7 +1,7 @@
1
1
  import { defaultTranslations as ke } from "./i18n-provider-defaults.js";
2
2
  import { jsx as q, jsxs as le } from "react/jsx-runtime";
3
3
  import { useInsertionEffect as Xe, createContext as Ye, useContext as $e, useRef as B, useEffect as ie, useState as Ue, useCallback as qe, useMemo as He } from "react";
4
- import { r as Ke, l as je, m as Qe, n as Je, o as Me, p as Ze, q as et, s as tt, t as rt, v as nt, w as Ne, x as ot, V as it, y as st, z as at, A as ct, S as ut, H as lt, B as se, D as ft, E as dt, G as ht, J as mt, K as pt, L as vt, M as fe, N as gt } from "./F0AiChat-J1mHZWxx.js";
4
+ import { r as Ke, l as je, m as Qe, n as Je, o as Me, p as Ze, q as et, s as tt, t as rt, v as nt, w as Ne, x as ot, V as it, y as st, z as at, A as ct, S as ut, H as lt, B as se, D as ft, E as dt, G as ht, J as mt, K as pt, L as vt, M as fe, N as gt } from "./F0AiChat-C6Swk3kV.js";
5
5
  import { useTrackVolume as wt } from "@livekit/components-react";
6
6
  function Tt(t, e, r) {
7
7
  Xe(() => t.on(e, r), [t, e, r]);
package/dist/ai.d.ts CHANGED
@@ -98,12 +98,11 @@ export declare type AiChatProviderProps = {
98
98
  */
99
99
  VoiceMode?: React.ComponentType;
100
100
  /**
101
- * Async resolver functions for entity references in markdown.
102
- * Used to fetch profile data for inline entity mentions (hover cards).
103
- * The consuming app provides these so the chat can resolve entity IDs
104
- * (e.g. employee IDs) into rich profile data without knowing the API.
101
+ * Configuration for entity references in markdown.
102
+ * Groups resolver functions (data fetching for hover cards) and
103
+ * URL builders (navigation links) for each entity type.
105
104
  */
106
- entityResolvers?: EntityResolvers;
105
+ entityRefs?: EntityRefs;
107
106
  /**
108
107
  * Available tool hints that the user can activate to provide intent context
109
108
  * to the AI. Renders a selector button next to the send button.
@@ -224,7 +223,7 @@ declare type AiChatProviderReturnValue = {
224
223
  inProgress: boolean;
225
224
  /** Set the in-progress state (synced from CopilotKit's isLoading) */
226
225
  setInProgress: (value: boolean) => void;
227
- } & Pick<AiChatState, "greeting" | "agent" | "disclaimer" | "resizable" | "entityResolvers" | "toolHints" | "credits"> & {
226
+ } & Pick<AiChatState, "greeting" | "agent" | "disclaimer" | "resizable" | "entityRefs" | "toolHints" | "credits"> & {
228
227
  /** The current canvas content, or null when canvas is closed */
229
228
  canvasContent: CanvasContent | null;
230
229
  /** Open the canvas panel with the given content */
@@ -253,7 +252,7 @@ declare interface AiChatState {
253
252
  historyEnabled?: boolean;
254
253
  footer?: React.ReactNode;
255
254
  VoiceMode?: React.ComponentType;
256
- entityResolvers?: EntityResolvers;
255
+ entityRefs?: EntityRefs;
257
256
  toolHints?: AiChatToolHint[];
258
257
  credits?: AiChatCredits;
259
258
  placeholders?: string[];
@@ -372,7 +371,7 @@ export declare const aiTranslations: {
372
371
  readonly unpinChat: "Unpin chat";
373
372
  readonly deleteChat: "Delete chat";
374
373
  readonly ask: "Ask One";
375
- readonly viewProfile: "View profile";
374
+ readonly view: "View";
376
375
  readonly tools: "Tools";
377
376
  readonly credits: {
378
377
  readonly title: "Credits";
@@ -434,6 +433,18 @@ export declare const aiTranslations: {
434
433
  };
435
434
  };
436
435
 
436
+ /**
437
+ * Profile data for a candidate entity (ATS applicant), resolved asynchronously
438
+ * and displayed in the entity reference hover card.
439
+ */
440
+ declare type CandidateProfile = {
441
+ id: string | number;
442
+ firstName: string;
443
+ lastName: string;
444
+ avatarUrl?: string;
445
+ source?: string;
446
+ };
447
+
437
448
  /**
438
449
  * Discriminated union for canvas panel content.
439
450
  * Add new entity types to this union as they are implemented.
@@ -1099,7 +1110,7 @@ export declare const defaultTranslations: {
1099
1110
  readonly unpinChat: "Unpin chat";
1100
1111
  readonly deleteChat: "Delete chat";
1101
1112
  readonly ask: "Ask One";
1102
- readonly viewProfile: "View profile";
1113
+ readonly view: "View";
1103
1114
  readonly tools: "Tools";
1104
1115
  readonly credits: {
1105
1116
  readonly title: "Credits";
@@ -1184,6 +1195,7 @@ export declare const defaultTranslations: {
1184
1195
  readonly surveyFormBuilder: {
1185
1196
  readonly actions: {
1186
1197
  readonly actions: "Actions";
1198
+ readonly addQuestion: "Add question";
1187
1199
  readonly duplicateQuestion: "Duplicate question";
1188
1200
  readonly deleteQuestion: "Delete question";
1189
1201
  readonly duplicateSection: "Duplicate section";
@@ -1236,6 +1248,9 @@ export declare const defaultTranslations: {
1236
1248
  readonly questionDescriptionPlaceholder: "Describe the question in a few words";
1237
1249
  readonly sectionDescriptionPlaceholder: "Describe the section in a few words";
1238
1250
  readonly required: "Required";
1251
+ readonly allowMultiSelection: "Allow multi-selection";
1252
+ readonly singleSelection: "Single selection";
1253
+ readonly multiSelection: "Multi selection";
1239
1254
  readonly questionType: "Question type";
1240
1255
  readonly questionOptions: "Question options";
1241
1256
  readonly actions: "Actions";
@@ -1370,6 +1385,15 @@ export declare const defaultTranslations: {
1370
1385
  };
1371
1386
  };
1372
1387
 
1388
+ /**
1389
+ * Grouped configuration for entity references in the AI chat.
1390
+ * Combines resolver functions (data fetching) with URL builders (navigation).
1391
+ */
1392
+ export declare type EntityRefs = {
1393
+ resolvers?: EntityResolvers;
1394
+ urls?: EntityUrlBuilders;
1395
+ };
1396
+
1373
1397
  /**
1374
1398
  * Map of async resolver functions keyed by entity type.
1375
1399
  * Each resolver takes an entity ID and returns the profile data
@@ -1379,6 +1403,8 @@ export declare const defaultTranslations: {
1379
1403
  */
1380
1404
  export declare type EntityResolvers = {
1381
1405
  person?: (id: string) => Promise<PersonProfile>;
1406
+ candidate?: (id: string) => Promise<CandidateProfile>;
1407
+ jobPosting?: (id: string) => Promise<JobPostingProfile>;
1382
1408
  /**
1383
1409
  * Search for persons by name query. Used by the @mention autocomplete
1384
1410
  * in the chat input to let users reference specific employees.
@@ -1386,6 +1412,19 @@ export declare type EntityResolvers = {
1386
1412
  searchPersons?: (query: string) => Promise<PersonProfile[]>;
1387
1413
  };
1388
1414
 
1415
+ /**
1416
+ * Map of URL builder functions keyed by entity type.
1417
+ * Each builder takes an entity ID and returns the URL to navigate to.
1418
+ *
1419
+ * When a URL builder is not provided for an entity type, the hover card
1420
+ * will not show a navigation action.
1421
+ */
1422
+ export declare type EntityUrlBuilders = {
1423
+ person?: (id: string) => string;
1424
+ candidate?: (id: string) => string;
1425
+ jobPosting?: (id: string) => string;
1426
+ };
1427
+
1389
1428
  export declare const F0ActionItem: ({ title, status, inGroup }: F0ActionItemProps) => JSX_2.Element;
1390
1429
 
1391
1430
  /**
@@ -1414,7 +1453,7 @@ export declare const F0AiChat: () => JSX_2.Element | null;
1414
1453
  /**
1415
1454
  * @experimental This is an experimental component use it at your own risk
1416
1455
  */
1417
- export declare const F0AiChatProvider: ({ enabled, greeting, initialMessage, welcomeScreenSuggestions, disclaimer, resizable, defaultVisualizationMode, lockVisualizationMode, historyEnabled, footer, VoiceMode, entityResolvers, toolHints, credits, onThumbsUp, onThumbsDown, children, agent, tracking, ...copilotKitProps }: AiChatProviderProps) => JSX_2.Element;
1456
+ export declare const F0AiChatProvider: ({ enabled, greeting, initialMessage, welcomeScreenSuggestions, disclaimer, resizable, defaultVisualizationMode, lockVisualizationMode, historyEnabled, footer, VoiceMode, entityRefs, toolHints, credits, onThumbsUp, onThumbsDown, children, agent, tracking, ...copilotKitProps }: AiChatProviderProps) => JSX_2.Element;
1418
1457
 
1419
1458
  export declare const F0AiChatTextArea: ({ submitLabel, inProgress, onSend, onStop, creditWarning, onDismissCreditWarning, onGetCredits, }: ChatTextareaProps) => JSX_2.Element;
1420
1459
 
@@ -1595,6 +1634,17 @@ declare type IconType = ForwardRefExoticComponent<SVGProps<SVGSVGElement> & RefA
1595
1634
  animate?: "normal" | "animate";
1596
1635
  }>;
1597
1636
 
1637
+ /**
1638
+ * Profile data for a job posting entity (ATS opening), resolved asynchronously
1639
+ * and displayed in the entity reference hover card.
1640
+ */
1641
+ declare type JobPostingProfile = {
1642
+ id: string | number;
1643
+ title: string;
1644
+ status?: string;
1645
+ location?: string;
1646
+ };
1647
+
1598
1648
  declare type Join<T extends string[], D extends string> = T extends [] ? never : T extends [infer F] ? F : T extends [infer F, ...infer R] ? F extends string ? `${F}${D}${Join<Extract<R, string[]>, D>}` : never : string;
1599
1649
 
1600
1650
  export declare type MaskOptions = {
package/dist/ai.js CHANGED
@@ -1,6 +1,6 @@
1
- import { i as t, h as i, F as e, a as n, C as o, b as r, j as A, k as c, I as u, g as F, c as h, d as C, u as l, f as I, e as f } from "./F0AiChat-J1mHZWxx.js";
1
+ import { i as t, h as i, F as e, a as n, C as o, b as r, j as A, k as c, I as u, g as F, c as h, d as C, u as l, f as I, e as f } from "./F0AiChat-C6Swk3kV.js";
2
2
  import { defaultTranslations as d } from "./i18n-provider-defaults.js";
3
- import { A as p, F as S, c as g, d as v, b as x, a as k, o as O, u as P } from "./F0HILActionConfirmation-B3GDi-wU.js";
3
+ import { A as p, F as S, c as g, d as v, b as x, a as k, o as O, u as P } from "./F0HILActionConfirmation-K5ZONLkv.js";
4
4
  export {
5
5
  p as AiChatTranslationsProvider,
6
6
  t as ChatSpinner,
@@ -472,12 +472,11 @@ declare type AiChatProviderProps = {
472
472
  */
473
473
  VoiceMode?: React.ComponentType;
474
474
  /**
475
- * Async resolver functions for entity references in markdown.
476
- * Used to fetch profile data for inline entity mentions (hover cards).
477
- * The consuming app provides these so the chat can resolve entity IDs
478
- * (e.g. employee IDs) into rich profile data without knowing the API.
475
+ * Configuration for entity references in markdown.
476
+ * Groups resolver functions (data fetching for hover cards) and
477
+ * URL builders (navigation links) for each entity type.
479
478
  */
480
- entityResolvers?: EntityResolvers;
479
+ entityRefs?: EntityRefs;
481
480
  /**
482
481
  * Available tool hints that the user can activate to provide intent context
483
482
  * to the AI. Renders a selector button next to the send button.
@@ -1265,6 +1264,18 @@ declare interface CalloutSkeletonProps {
1265
1264
 
1266
1265
  declare type CalloutVariant = (typeof variants)[number];
1267
1266
 
1267
+ /**
1268
+ * Profile data for a candidate entity (ATS applicant), resolved asynchronously
1269
+ * and displayed in the entity reference hover card.
1270
+ */
1271
+ declare type CandidateProfile = {
1272
+ id: string | number;
1273
+ firstName: string;
1274
+ lastName: string;
1275
+ avatarUrl?: string;
1276
+ source?: string;
1277
+ };
1278
+
1268
1279
  declare type CardAvatarVariant = AvatarVariant | {
1269
1280
  type: "emoji";
1270
1281
  emoji: string;
@@ -2672,7 +2683,7 @@ declare const defaultTranslations: {
2672
2683
  readonly unpinChat: "Unpin chat";
2673
2684
  readonly deleteChat: "Delete chat";
2674
2685
  readonly ask: "Ask One";
2675
- readonly viewProfile: "View profile";
2686
+ readonly view: "View";
2676
2687
  readonly tools: "Tools";
2677
2688
  readonly credits: {
2678
2689
  readonly title: "Credits";
@@ -2757,6 +2768,7 @@ declare const defaultTranslations: {
2757
2768
  readonly surveyFormBuilder: {
2758
2769
  readonly actions: {
2759
2770
  readonly actions: "Actions";
2771
+ readonly addQuestion: "Add question";
2760
2772
  readonly duplicateQuestion: "Duplicate question";
2761
2773
  readonly deleteQuestion: "Delete question";
2762
2774
  readonly duplicateSection: "Duplicate section";
@@ -2809,6 +2821,9 @@ declare const defaultTranslations: {
2809
2821
  readonly questionDescriptionPlaceholder: "Describe the question in a few words";
2810
2822
  readonly sectionDescriptionPlaceholder: "Describe the section in a few words";
2811
2823
  readonly required: "Required";
2824
+ readonly allowMultiSelection: "Allow multi-selection";
2825
+ readonly singleSelection: "Single selection";
2826
+ readonly multiSelection: "Multi selection";
2812
2827
  readonly questionType: "Question type";
2813
2828
  readonly questionOptions: "Question options";
2814
2829
  readonly actions: "Actions";
@@ -3164,6 +3179,15 @@ export declare type enhanceTextParams = {
3164
3179
 
3165
3180
  export declare type EntityId = number | string;
3166
3181
 
3182
+ /**
3183
+ * Grouped configuration for entity references in the AI chat.
3184
+ * Combines resolver functions (data fetching) with URL builders (navigation).
3185
+ */
3186
+ declare type EntityRefs = {
3187
+ resolvers?: EntityResolvers;
3188
+ urls?: EntityUrlBuilders;
3189
+ };
3190
+
3167
3191
  /**
3168
3192
  * Map of async resolver functions keyed by entity type.
3169
3193
  * Each resolver takes an entity ID and returns the profile data
@@ -3173,6 +3197,8 @@ export declare type EntityId = number | string;
3173
3197
  */
3174
3198
  declare type EntityResolvers = {
3175
3199
  person?: (id: string) => Promise<PersonProfile>;
3200
+ candidate?: (id: string) => Promise<CandidateProfile>;
3201
+ jobPosting?: (id: string) => Promise<JobPostingProfile>;
3176
3202
  /**
3177
3203
  * Search for persons by name query. Used by the @mention autocomplete
3178
3204
  * in the chat input to let users reference specific employees.
@@ -3248,6 +3274,19 @@ export declare type EntitySelectSubEntity = {
3248
3274
  subDeactivated?: boolean;
3249
3275
  };
3250
3276
 
3277
+ /**
3278
+ * Map of URL builder functions keyed by entity type.
3279
+ * Each builder takes an entity ID and returns the URL to navigate to.
3280
+ *
3281
+ * When a URL builder is not provided for an entity type, the hover card
3282
+ * will not show a navigation action.
3283
+ */
3284
+ declare type EntityUrlBuilders = {
3285
+ person?: (id: string) => string;
3286
+ candidate?: (id: string) => string;
3287
+ jobPosting?: (id: string) => string;
3288
+ };
3289
+
3251
3290
  declare type Enumerate<N extends number, Acc extends number[] = []> = Acc["length"] extends N ? [...Acc, N][number] : Enumerate<N, [...Acc, Acc["length"]]>;
3252
3291
 
3253
3292
  declare interface ErrorMessageProps {
@@ -4406,6 +4445,17 @@ declare type ItemDefinition = {
4406
4445
 
4407
4446
  export declare function ItemSectionHeader({ item, children, isActive, collapsible, isExpanded, onToggleExpanded, sortable, hideChildrenCounter, canDropInside, onDragOver, onDragLeave, onDrop, currentParentId, draggedItemId, }: TOCItemSectionHeaderProps): JSX_2.Element;
4408
4447
 
4448
+ /**
4449
+ * Profile data for a job posting entity (ATS opening), resolved asynchronously
4450
+ * and displayed in the entity reference hover card.
4451
+ */
4452
+ declare type JobPostingProfile = {
4453
+ id: string | number;
4454
+ title: string;
4455
+ status?: string;
4456
+ location?: string;
4457
+ };
4458
+
4409
4459
  declare type Join<T extends string[], D extends string> = T extends [] ? never : T extends [infer F] ? F : T extends [infer F, ...infer R] ? F extends string ? `${F}${D}${Join<Extract<R, string[]>, D>}` : never : string;
4410
4460
 
4411
4461
  declare type KanbanCollectionProps<Record extends RecordType, Filters extends FiltersDefinition, Sortings extends SortingsDefinition, Summaries extends SummariesDefinition, ItemActions extends ItemActionsDefinition<Record>, NavigationFilters extends NavigationFiltersDefinition, Grouping extends GroupingDefinition<Record>> = CollectionProps<Record, Filters, Sortings, Summaries, ItemActions, NavigationFilters, Grouping, KanbanVisualizationOptions<Record, Filters, Sortings>>;
@@ -1,10 +1,10 @@
1
- import { cI as Sf, a7 as _r, b7 as Nf, a6 as If, cJ as Af, cK as _f, a1 as Ef, cL as Eo, cM as er, cN as Tf, cO as Ls, cP as Ui, cQ as Er, K as k, R as Z, L as it, u as ge, cR as Df, cS as Rf, cT as Lf, cU as Of, cV as Mf, ak as Oe, cW as Ff, a0 as jt, cX as Pf, b8 as zf, _ as H, bg as $f, bh as Bf, U as Ht, cY as ka, bt as jf, bi as Hf, M as B, cZ as Os, Z as E, c_ as st, c$ as Vf, d0 as Wf, bo as Uf, ay as Gf, bm as Kf, aH as Vt, d1 as Ca, d2 as qf, d3 as Tt, a_ as Sn, aA as Ms, aB as un, k as Sa, a4 as gt, d4 as Na, d5 as Yf, d6 as To, d7 as rn, d8 as Fs, d9 as Hn, da as Tr, db as Jf, dc as Ia, dd as Xf, de as Ps, df as Nn, dg as Le, dh as Zf, di as Qf, dj as Ct, dk as yi, dl as eh, dm as kn, dn as qt, dp as th, P as de, dq as nh, dr as rh, ds as ih, dt as sh, du as oh, W as Je, Y as ue, dv as zs, aW as Vn, cF as Qr, dw as Aa, dx as $s, dy as lh, dz as ah, dA as ch, dB as dh, dC as uh, dD as fh, dE as hh, dF as ph, dG as mh, bb as gh, dH as bh, b9 as wh, dI as xh, dJ as yh, dK as vh, dL as kh, dM as Ch, dN as Sh, dO as Nh, dP as Ih, c3 as rt, dQ as _a, dR as Ah, a3 as V, N as Ea, dS as Ta, dT as _h, b2 as Bs, a8 as Do, a9 as Ro, as as Eh, dU as Th, dV as Dh, am as fn, dW as Rh, dX as Lh, dY as Oh, dZ as Mh, aR as ei, d_ as Da, d$ as Ra, c5 as La, e0 as Fh, aK as Dr, e1 as Ph, e2 as zh, e3 as $h, e4 as Bh, e5 as jh, ai as Hh, aj as Vh, al as Wh, e6 as Oa, e7 as Uh, e8 as Gh, ax as Rr, e9 as Jt, ea as Kh, eb as Ma, ec as js, ed as qh, ee as Yh, ef as Fa, eg as Gi, c0 as Ki, eh as Pa, ei as Jh, ej as Xh, cE as ti, bE as za, cH as Zh, cG as Qh, ek as ep, bF as sn, el as tp, aO as tr, em as Lo, en as qi, eo as np, bn as rp, ep as ip, b_ as $a, c4 as sp, cg as Ba, ce as Hs, ae as op, ch as lp, c1 as Vs, av as ja, a as ap, c as cp, bW as dp, eq as Ha, er as up, es as fp, F as hp, et as Va, eu as Wa, ev as pp, bx as Oo, ew as mp, ex as gp, bY as bp, bv as Ua, by as wp, ey as xp, ez as yp, eA as vp, eB as kp, bZ as Ga, $ as Cp, Q as ot, bK as Ws, eC as Us, eD as Gs, eE as Ka, bL as Ks, eF as qa, eG as Sp, eH as Np, eI as Ip, eJ as Ap, eK as _p, bM as Ep, eL as Tp, b$ as Dp, eM as Rp, eN as Mo, eO as Fo, eP as Po, b0 as Lp, eQ as Op, eR as Mp, bd as Fp, eS as Ya, bD as Pp, eT as zp, eU as $p } from "./F0AiChat-J1mHZWxx.js";
2
- import { eY as fA, eX as hA, eV as pA, aE as mA, eW as gA, aJ as bA, f4 as wA, f5 as xA, f7 as yA, fe as vA, ff as kA, aL as CA, e_ as SA, eZ as NA, f6 as IA, f9 as AA, fa as _A, f3 as EA, f0 as TA, f2 as DA, e$ as RA, c2 as LA, f1 as OA, fb as MA, fc as FA, f8 as PA, fd as zA } from "./F0AiChat-J1mHZWxx.js";
1
+ import { cI as Sf, a7 as _r, b7 as Nf, a6 as If, cJ as Af, cK as _f, a1 as Ef, cL as Eo, cM as er, cN as Tf, cO as Ls, cP as Ui, cQ as Er, K as k, R as Z, L as it, u as ge, cR as Df, cS as Rf, cT as Lf, cU as Of, cV as Mf, ak as Oe, cW as Ff, a0 as jt, cX as Pf, b8 as zf, _ as H, be as $f, bf as Bf, U as Ht, cY as ka, bn as jf, bh as Hf, M as B, cZ as Os, Z as E, c_ as st, c$ as Vf, d0 as Wf, bi as Uf, ay as Gf, bk as Kf, aH as Vt, d1 as Ca, d2 as qf, d3 as Tt, a_ as Sn, aA as Ms, aB as un, k as Sa, a4 as gt, d4 as Na, d5 as Yf, d6 as To, d7 as rn, d8 as Fs, d9 as Hn, da as Tr, db as Jf, dc as Ia, dd as Xf, de as Ps, df as Nn, dg as Le, dh as Zf, di as Qf, dj as Ct, dk as yi, dl as eh, dm as kn, dn as qt, dp as th, P as de, dq as nh, dr as rh, ds as ih, dt as sh, du as oh, W as Je, Y as ue, dv as zs, aW as Vn, cF as Qr, dw as Aa, dx as $s, dy as lh, dz as ah, dA as ch, dB as dh, dC as uh, dD as fh, dE as hh, dF as ph, dG as mh, bb as gh, dH as bh, b9 as wh, dI as xh, dJ as yh, dK as vh, dL as kh, dM as Ch, dN as Sh, dO as Nh, dP as Ih, c3 as rt, dQ as _a, dR as Ah, a3 as V, N as Ea, dS as Ta, dT as _h, b2 as Bs, a8 as Do, a9 as Ro, as as Eh, dU as Th, dV as Dh, am as fn, dW as Rh, dX as Lh, dY as Oh, dZ as Mh, aR as ei, d_ as Da, d$ as Ra, c5 as La, e0 as Fh, aK as Dr, e1 as Ph, e2 as zh, e3 as $h, e4 as Bh, e5 as jh, ai as Hh, aj as Vh, al as Wh, e6 as Oa, e7 as Uh, e8 as Gh, ax as Rr, e9 as Jt, ea as Kh, eb as Ma, ec as js, ed as qh, ee as Yh, ef as Fa, eg as Gi, c0 as Ki, eh as Pa, ei as Jh, ej as Xh, cE as ti, bE as za, cH as Zh, cG as Qh, ek as ep, bF as sn, el as tp, aO as tr, em as Lo, en as qi, eo as np, bs as rp, ep as ip, b_ as $a, c4 as sp, cg as Ba, ce as Hs, ae as op, ch as lp, c1 as Vs, av as ja, a as ap, c as cp, bW as dp, eq as Ha, er as up, es as fp, F as hp, et as Va, eu as Wa, ev as pp, bx as Oo, ew as mp, ex as gp, bY as bp, bv as Ua, by as wp, ey as xp, ez as yp, eA as vp, eB as kp, bZ as Ga, $ as Cp, Q as ot, bK as Ws, eC as Us, eD as Gs, eE as Ka, bL as Ks, eF as qa, eG as Sp, eH as Np, eI as Ip, eJ as Ap, eK as _p, bM as Ep, eL as Tp, b$ as Dp, eM as Rp, eN as Mo, eO as Fo, eP as Po, b0 as Lp, eQ as Op, eR as Mp, bd as Fp, eS as Ya, bD as Pp, eT as zp, eU as $p } from "./F0AiChat-C6Swk3kV.js";
2
+ import { eY as fA, eX as hA, eV as pA, aE as mA, eW as gA, aJ as bA, f4 as wA, f5 as xA, f7 as yA, fe as vA, ff as kA, aL as CA, e_ as SA, eZ as NA, f6 as IA, f9 as AA, fa as _A, f3 as EA, f0 as TA, f2 as DA, e$ as RA, c2 as LA, f1 as OA, fb as MA, fc as FA, f8 as PA, fd as zA } from "./F0AiChat-C6Swk3kV.js";
3
3
  import { jsx as c, jsxs as g, Fragment as re } from "react/jsx-runtime";
4
4
  import * as pe from "react";
5
5
  import z, { PureComponent as Bp, forwardRef as F, useRef as q, useTransition as jp, useState as L, useLayoutEffect as Ja, useContext as qs, createContext as Ys, useCallback as X, useMemo as te, useEffect as U, useId as Xa, useImperativeHandle as Za, memo as Qa, Fragment as Hp, isValidElement as Vp, cloneElement as ec, Children as tc } from "react";
6
- import { f as Xt, ac as In, e as nr, ad as Wp, L as vi, ae as Up, A as Gp, i as rr, k as Kp, G as qp, g as zo, af as Yp, j as $o, n as Jp, ag as nc, ah as rc, ai as Xp, C as Zp, aa as Qp, aj as He, ak as lt, al as Te, am as em, an as gr, ao as Ge, ap as ic, aq as Fe, ar as Js, as as Be, at as Bo, au as tm, av as sc, aw as Ae, ax as ze, ay as An, az as Lr, aA as oc, aB as nm, aC as Wt, aD as rm, aE as im, aF as sm, aG as Wn, aH as Un, aI as Xs, aJ as om, aK as lc, aL as ac, aM as cc, aN as lm, aO as dc, aP as uc, aQ as fc, aR as hc, aS as pc, aT as mc, a3 as jo, aU as am, aV as Ho, aW as cm, aX as dm, aY as um, w as fm, x as hm, z as pm, J as mm, K as gm, s as bm, aZ as gc, a_ as wm, a$ as xm, b0 as ym, b1 as bc, a7 as Yi, b2 as vm, b3 as km, b4 as Cm, b5 as Sm, b6 as Nm, b7 as Im, b8 as Am, $ as _m, b9 as Em, ba as Tm, bb as Dm, bc as Rm, ab as wc, M as Lm, N as Om, P as Mm, Q as Fm, V as Pm, O as zm, bd as Vo, be as $m, bf as Bm, l as jm } from "./index-DTN2fMDI.js";
7
- import { a5 as BA, W as jA, a0 as HA, R as VA, _ as WA, bk as UA, bj as GA, bh as KA, bi as qA, a4 as YA, T as JA, Z as XA, U as ZA, bg as QA, a8 as e_, a9 as t_ } from "./index-DTN2fMDI.js";
6
+ import { f as Xt, ac as In, e as nr, ad as Wp, L as vi, ae as Up, A as Gp, i as rr, k as Kp, G as qp, g as zo, af as Yp, j as $o, n as Jp, ag as nc, ah as rc, ai as Xp, C as Zp, aa as Qp, aj as He, ak as lt, al as Te, am as em, an as gr, ao as Ge, ap as ic, aq as Fe, ar as Js, as as Be, at as Bo, au as tm, av as sc, aw as Ae, ax as ze, ay as An, az as Lr, aA as oc, aB as nm, aC as Wt, aD as rm, aE as im, aF as sm, aG as Wn, aH as Un, aI as Xs, aJ as om, aK as lc, aL as ac, aM as cc, aN as lm, aO as dc, aP as uc, aQ as fc, aR as hc, aS as pc, aT as mc, a3 as jo, aU as am, aV as Ho, aW as cm, aX as dm, aY as um, w as fm, x as hm, z as pm, J as mm, K as gm, s as bm, aZ as gc, a_ as wm, a$ as xm, b0 as ym, b1 as bc, a7 as Yi, b2 as vm, b3 as km, b4 as Cm, b5 as Sm, b6 as Nm, b7 as Im, b8 as Am, $ as _m, b9 as Em, ba as Tm, bb as Dm, bc as Rm, ab as wc, M as Lm, N as Om, P as Mm, Q as Fm, V as Pm, O as zm, bd as Vo, be as $m, bf as Bm, l as jm } from "./index-DNRZaDau.js";
7
+ import { a5 as BA, W as jA, a0 as HA, R as VA, _ as WA, bk as UA, bj as GA, bh as KA, bi as qA, a4 as YA, T as JA, Z as XA, U as ZA, bg as QA, a8 as e_, a9 as t_ } from "./index-DNRZaDau.js";
8
8
  import './experimental.css';const Hm = Sf("Search", [
9
9
  ["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }],
10
10
  ["path", { d: "m21 21-4.3-4.3", key: "1qie3q" }]
package/dist/f0.d.ts CHANGED
@@ -378,12 +378,11 @@ export declare type AiChatProviderProps = {
378
378
  */
379
379
  VoiceMode?: React.ComponentType;
380
380
  /**
381
- * Async resolver functions for entity references in markdown.
382
- * Used to fetch profile data for inline entity mentions (hover cards).
383
- * The consuming app provides these so the chat can resolve entity IDs
384
- * (e.g. employee IDs) into rich profile data without knowing the API.
381
+ * Configuration for entity references in markdown.
382
+ * Groups resolver functions (data fetching for hover cards) and
383
+ * URL builders (navigation links) for each entity type.
385
384
  */
386
- entityResolvers?: EntityResolvers;
385
+ entityRefs?: EntityRefs;
387
386
  /**
388
387
  * Available tool hints that the user can activate to provide intent context
389
388
  * to the AI. Renders a selector button next to the send button.
@@ -504,7 +503,7 @@ declare type AiChatProviderReturnValue = {
504
503
  inProgress: boolean;
505
504
  /** Set the in-progress state (synced from CopilotKit's isLoading) */
506
505
  setInProgress: (value: boolean) => void;
507
- } & Pick<AiChatState, "greeting" | "agent" | "disclaimer" | "resizable" | "entityResolvers" | "toolHints" | "credits"> & {
506
+ } & Pick<AiChatState, "greeting" | "agent" | "disclaimer" | "resizable" | "entityRefs" | "toolHints" | "credits"> & {
508
507
  /** The current canvas content, or null when canvas is closed */
509
508
  canvasContent: CanvasContent | null;
510
509
  /** Open the canvas panel with the given content */
@@ -533,7 +532,7 @@ declare interface AiChatState {
533
532
  historyEnabled?: boolean;
534
533
  footer?: React.ReactNode;
535
534
  VoiceMode?: React.ComponentType;
536
- entityResolvers?: EntityResolvers;
535
+ entityRefs?: EntityRefs;
537
536
  toolHints?: AiChatToolHint[];
538
537
  credits?: AiChatCredits;
539
538
  placeholders?: string[];
@@ -652,7 +651,7 @@ export declare const aiTranslations: {
652
651
  readonly unpinChat: "Unpin chat";
653
652
  readonly deleteChat: "Delete chat";
654
653
  readonly ask: "Ask One";
655
- readonly viewProfile: "View profile";
654
+ readonly view: "View";
656
655
  readonly tools: "Tools";
657
656
  readonly credits: {
658
657
  readonly title: "Credits";
@@ -1419,6 +1418,18 @@ declare type CalendarMode = "single" | "range";
1419
1418
 
1420
1419
  declare type CalendarView = "day" | "month" | "year" | "week" | "quarter" | "halfyear";
1421
1420
 
1421
+ /**
1422
+ * Profile data for a candidate entity (ATS applicant), resolved asynchronously
1423
+ * and displayed in the entity reference hover card.
1424
+ */
1425
+ declare type CandidateProfile = {
1426
+ id: string | number;
1427
+ firstName: string;
1428
+ lastName: string;
1429
+ avatarUrl?: string;
1430
+ source?: string;
1431
+ };
1432
+
1422
1433
  /**
1423
1434
  * Discriminated union for canvas panel content.
1424
1435
  * Add new entity types to this union as they are implemented.
@@ -3217,7 +3228,7 @@ export declare const defaultTranslations: {
3217
3228
  readonly unpinChat: "Unpin chat";
3218
3229
  readonly deleteChat: "Delete chat";
3219
3230
  readonly ask: "Ask One";
3220
- readonly viewProfile: "View profile";
3231
+ readonly view: "View";
3221
3232
  readonly tools: "Tools";
3222
3233
  readonly credits: {
3223
3234
  readonly title: "Credits";
@@ -3302,6 +3313,7 @@ export declare const defaultTranslations: {
3302
3313
  readonly surveyFormBuilder: {
3303
3314
  readonly actions: {
3304
3315
  readonly actions: "Actions";
3316
+ readonly addQuestion: "Add question";
3305
3317
  readonly duplicateQuestion: "Duplicate question";
3306
3318
  readonly deleteQuestion: "Delete question";
3307
3319
  readonly duplicateSection: "Duplicate section";
@@ -3354,6 +3366,9 @@ export declare const defaultTranslations: {
3354
3366
  readonly questionDescriptionPlaceholder: "Describe the question in a few words";
3355
3367
  readonly sectionDescriptionPlaceholder: "Describe the section in a few words";
3356
3368
  readonly required: "Required";
3369
+ readonly allowMultiSelection: "Allow multi-selection";
3370
+ readonly singleSelection: "Single selection";
3371
+ readonly multiSelection: "Multi selection";
3357
3372
  readonly questionType: "Question type";
3358
3373
  readonly questionOptions: "Question options";
3359
3374
  readonly actions: "Actions";
@@ -3598,9 +3613,17 @@ declare type DropdownItemSeparator = {
3598
3613
  type: "separator";
3599
3614
  };
3600
3615
 
3616
+ declare type DropdownMultiQuestionProps = BaseQuestionPropsForOtherQuestionComponents & {
3617
+ type: "dropdown-multi";
3618
+ datasetKey: string;
3619
+ value?: string[] | null;
3620
+ showSearchBox?: boolean;
3621
+ searchBoxPlaceholder?: string;
3622
+ };
3623
+
3601
3624
  declare type DropdownSingleQuestionProps = BaseQuestionPropsForOtherQuestionComponents & {
3602
3625
  type: "dropdown-single";
3603
- options: SelectQuestionOption[];
3626
+ datasetKey: string;
3604
3627
  value?: string | null;
3605
3628
  showSearchBox?: boolean;
3606
3629
  searchBoxPlaceholder?: string;
@@ -3741,6 +3764,15 @@ declare const emojiVariants: (props?: ({
3741
3764
  className?: ClassValue;
3742
3765
  })) | undefined) => string;
3743
3766
 
3767
+ /**
3768
+ * Grouped configuration for entity references in the AI chat.
3769
+ * Combines resolver functions (data fetching) with URL builders (navigation).
3770
+ */
3771
+ export declare type EntityRefs = {
3772
+ resolvers?: EntityResolvers;
3773
+ urls?: EntityUrlBuilders;
3774
+ };
3775
+
3744
3776
  /**
3745
3777
  * Map of async resolver functions keyed by entity type.
3746
3778
  * Each resolver takes an entity ID and returns the profile data
@@ -3750,6 +3782,8 @@ declare const emojiVariants: (props?: ({
3750
3782
  */
3751
3783
  export declare type EntityResolvers = {
3752
3784
  person?: (id: string) => Promise<PersonProfile>;
3785
+ candidate?: (id: string) => Promise<CandidateProfile>;
3786
+ jobPosting?: (id: string) => Promise<JobPostingProfile>;
3753
3787
  /**
3754
3788
  * Search for persons by name query. Used by the @mention autocomplete
3755
3789
  * in the chat input to let users reference specific employees.
@@ -3757,6 +3791,19 @@ export declare type EntityResolvers = {
3757
3791
  searchPersons?: (query: string) => Promise<PersonProfile[]>;
3758
3792
  };
3759
3793
 
3794
+ /**
3795
+ * Map of URL builder functions keyed by entity type.
3796
+ * Each builder takes an entity ID and returns the URL to navigate to.
3797
+ *
3798
+ * When a URL builder is not provided for an entity type, the hover card
3799
+ * will not show a navigation action.
3800
+ */
3801
+ export declare type EntityUrlBuilders = {
3802
+ person?: (id: string) => string;
3803
+ candidate?: (id: string) => string;
3804
+ jobPosting?: (id: string) => string;
3805
+ };
3806
+
3760
3807
  declare type Enumerate<N extends number, Acc extends number[] = []> = Acc["length"] extends N ? [...Acc, N][number] : Enumerate<N, [...Acc, Acc["length"]]>;
3761
3808
 
3762
3809
  export declare interface ErrorMessageProps {
@@ -3855,7 +3902,7 @@ export declare const F0AiChat: () => JSX_2.Element | null;
3855
3902
  /**
3856
3903
  * @experimental This is an experimental component use it at your own risk
3857
3904
  */
3858
- export declare const F0AiChatProvider: ({ enabled, greeting, initialMessage, welcomeScreenSuggestions, disclaimer, resizable, defaultVisualizationMode, lockVisualizationMode, historyEnabled, footer, VoiceMode, entityResolvers, toolHints, credits, onThumbsUp, onThumbsDown, children, agent, tracking, ...copilotKitProps }: AiChatProviderProps) => JSX_2.Element;
3905
+ export declare const F0AiChatProvider: ({ enabled, greeting, initialMessage, welcomeScreenSuggestions, disclaimer, resizable, defaultVisualizationMode, lockVisualizationMode, historyEnabled, footer, VoiceMode, entityRefs, toolHints, credits, onThumbsUp, onThumbsDown, children, agent, tracking, ...copilotKitProps }: AiChatProviderProps) => JSX_2.Element;
3859
3906
 
3860
3907
  export declare const F0AiChatTextArea: ({ submitLabel, inProgress, onSend, onStop, creditWarning, onDismissCreditWarning, onGetCredits, }: ChatTextareaProps) => JSX_2.Element;
3861
3908
 
@@ -6228,6 +6275,8 @@ declare interface F0SelectConfigBase {
6228
6275
  showSearchBox?: boolean;
6229
6276
  /** Placeholder for the search box */
6230
6277
  searchBoxPlaceholder?: string;
6278
+ /** Icon displayed on the left side of the select input */
6279
+ icon?: IconType;
6231
6280
  }
6232
6281
 
6233
6282
  /**
@@ -7650,6 +7699,17 @@ declare type ItemDefinition = {
7650
7699
  avatar?: AvatarVariant;
7651
7700
  };
7652
7701
 
7702
+ /**
7703
+ * Profile data for a job posting entity (ATS opening), resolved asynchronously
7704
+ * and displayed in the entity reference hover card.
7705
+ */
7706
+ declare type JobPostingProfile = {
7707
+ id: string | number;
7708
+ title: string;
7709
+ status?: string;
7710
+ location?: string;
7711
+ };
7712
+
7653
7713
  declare type Join<T extends string[], D extends string> = T extends [] ? never : T extends [infer F] ? F : T extends [infer F, ...infer R] ? F extends string ? `${F}${D}${Join<Extract<R, string[]>, D>}` : never : string;
7654
7714
 
7655
7715
  /** Flex justify content */
@@ -8335,6 +8395,7 @@ declare type NumericWithFormatter = {
8335
8395
  export declare type OnAddNewElementParams = {
8336
8396
  type: ElementType;
8337
8397
  afterId?: string;
8398
+ datasetKey?: string;
8338
8399
  };
8339
8400
 
8340
8401
  declare type OnBulkActionCallback<Record extends RecordType, Filters extends FiltersDefinition> = (...args: [
@@ -8363,7 +8424,13 @@ declare type OnChangeQuestionParams = BaseQuestionOnChangeParams & ({
8363
8424
  } | {
8364
8425
  type: "dropdown-single";
8365
8426
  value?: string | null;
8366
- options?: SelectQuestionOption[];
8427
+ datasetKey?: string;
8428
+ showSearchBox?: boolean;
8429
+ searchBoxPlaceholder?: string;
8430
+ } | {
8431
+ type: "dropdown-multi";
8432
+ value?: string[] | null;
8433
+ datasetKey?: string;
8367
8434
  showSearchBox?: boolean;
8368
8435
  searchBoxPlaceholder?: string;
8369
8436
  } | {
@@ -8887,6 +8954,8 @@ export declare type QuestionElement = Omit<TextQuestionProps, QuestionPropsToOmi
8887
8954
  type: "select" | "multi-select";
8888
8955
  }, QuestionPropsToOmit> | Omit<DropdownSingleQuestionProps & {
8889
8956
  type: "dropdown-single";
8957
+ }, QuestionPropsToOmit> | Omit<DropdownMultiQuestionProps & {
8958
+ type: "dropdown-multi";
8890
8959
  }, QuestionPropsToOmit> | Omit<NumericQuestionProps & {
8891
8960
  type: "numeric";
8892
8961
  }, QuestionPropsToOmit> | Omit<LinkQuestionProps & {
@@ -8901,7 +8970,7 @@ export declare type QuestionElement = Omit<TextQuestionProps, QuestionPropsToOmi
8901
8970
 
8902
8971
  declare type QuestionPropsToOmit = "onAction" | "onChange" | "onAddNewElement";
8903
8972
 
8904
- export declare type QuestionType = "rating" | "select" | "multi-select" | "dropdown-single" | "text" | "longText" | "numeric" | "link" | "date" | "file" | "checkbox";
8973
+ export declare type QuestionType = "rating" | "select" | "multi-select" | "dropdown-single" | "dropdown-multi" | "text" | "longText" | "numeric" | "link" | "date" | "file" | "checkbox";
8905
8974
 
8906
8975
  export declare interface RadarChartConfig {
8907
8976
  type: "radar";
@@ -9421,7 +9490,7 @@ declare type SummaryKey<Definition extends SummariesDefinition> = Definition ext
9421
9490
 
9422
9491
  declare type SummaryType = "sum";
9423
9492
 
9424
- export declare function SurveyAnsweringForm({ elements, onSubmit: onSubmitProp, mode, title, description, resourceHeader, isOpen, onClose, position: positionProp, module, allowToChangeFullscreen, defaultValues, errorTriggerMode, loading, labels, preview, useUpload, }: SurveyAnsweringFormProps): JSX_2.Element;
9493
+ export declare function SurveyAnsweringForm({ elements, onSubmit: onSubmitProp, mode, title, description, resourceHeader, isOpen, onClose, position: positionProp, module, allowToChangeFullscreen, defaultValues, errorTriggerMode, loading, labels, preview, useUpload, datasets, }: SurveyAnsweringFormProps): JSX_2.Element;
9425
9494
 
9426
9495
  declare interface SurveyAnsweringFormBaseProps {
9427
9496
  elements: SurveyFormBuilderElement[];
@@ -9438,6 +9507,7 @@ declare interface SurveyAnsweringFormBaseProps {
9438
9507
  errorTriggerMode?: F0FormErrorTriggerMode;
9439
9508
  loading?: boolean;
9440
9509
  useUpload?: UseFileUpload;
9510
+ datasets?: SurveyDatasets;
9441
9511
  labels?: {
9442
9512
  empty?: {
9443
9513
  title?: string;
@@ -9484,6 +9554,9 @@ export declare type SurveyAnswerValue = {
9484
9554
  } | {
9485
9555
  type: "dropdown-single";
9486
9556
  value: string | null;
9557
+ } | {
9558
+ type: "dropdown-multi";
9559
+ value: string[] | null;
9487
9560
  } | {
9488
9561
  type: "numeric";
9489
9562
  value: number | null;
@@ -9501,7 +9574,17 @@ export declare type SurveyAnswerValue = {
9501
9574
  value: boolean | null;
9502
9575
  };
9503
9576
 
9504
- export declare const SurveyFormBuilder: WithDataTestIdReturnType_7<({ elements: elementsProp, disabled, onChange, disallowOptionalQuestions, allowedQuestionTypes, applyingChanges, useUpload, }: SurveyFormBuilderProps) => JSX_2.Element>;
9577
+ export declare type SurveyDataset = {
9578
+ title: string;
9579
+ icon?: IconType;
9580
+ placeholder?: string;
9581
+ dataSource: DataSourceDefinition;
9582
+ mapOptions: (item: RecordType) => F0SelectItemProps<string, RecordType>;
9583
+ };
9584
+
9585
+ export declare type SurveyDatasets = Record<string, SurveyDataset>;
9586
+
9587
+ export declare const SurveyFormBuilder: WithDataTestIdReturnType_7<({ elements: elementsProp, disabled, onChange, disallowOptionalQuestions, allowedQuestionTypes, applyingChanges, useUpload, datasets, }: SurveyFormBuilderProps) => JSX_2.Element>;
9505
9588
 
9506
9589
  export declare type SurveyFormBuilderCallbacks = {
9507
9590
  onQuestionChange?: (params: OnChangeQuestionParams) => void;
@@ -9526,6 +9609,7 @@ export declare type SurveyFormBuilderProps = {
9526
9609
  allowedQuestionTypes?: QuestionType[];
9527
9610
  applyingChanges?: boolean;
9528
9611
  useUpload?: UseFileUpload;
9612
+ datasets?: SurveyDatasets;
9529
9613
  };
9530
9614
 
9531
9615
  export declare type SurveyFormSubmitResult = {