@elevasis/ui 2.28.0 → 2.29.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 (72) hide show
  1. package/dist/api/index.js +2 -2
  2. package/dist/app/index.d.ts +6 -12
  3. package/dist/app/index.js +4 -4
  4. package/dist/charts/index.js +3 -3
  5. package/dist/{chunk-OHXU5WWK.js → chunk-3DUOPXOJ.js} +146 -9
  6. package/dist/{chunk-LWKZ3BCC.js → chunk-5CW2HXQA.js} +4 -4
  7. package/dist/{chunk-JKBGDFX2.js → chunk-65RQE3XF.js} +378 -254
  8. package/dist/{chunk-XZSEPJZQ.js → chunk-6NHCE7JM.js} +49 -28
  9. package/dist/{chunk-RIFTUOPE.js → chunk-6WXDE5LZ.js} +1 -1
  10. package/dist/{chunk-SGS4CQ2B.js → chunk-7E3FUTND.js} +1 -1
  11. package/dist/{chunk-UPMX5GJI.js → chunk-A7R2URMV.js} +88 -26
  12. package/dist/{chunk-UY5I2KOZ.js → chunk-AK5E6ILJ.js} +9 -8
  13. package/dist/{chunk-G26INIF3.js → chunk-CEHUFNAL.js} +1 -1
  14. package/dist/{chunk-ONFKASZI.js → chunk-CLUP5H3C.js} +7 -10
  15. package/dist/{chunk-MYEOTM7D.js → chunk-CN2HC4D4.js} +5 -1
  16. package/dist/chunk-FFDAE2QI.js +330 -0
  17. package/dist/{chunk-WUVR4QY6.js → chunk-FGDUK74A.js} +4 -4
  18. package/dist/{chunk-YHBPR67D.js → chunk-HNFQCOD2.js} +4 -4
  19. package/dist/{chunk-QD4X4H5A.js → chunk-HXZQWMKE.js} +2 -3
  20. package/dist/{chunk-KEFWANZY.js → chunk-JCGD4GM6.js} +5 -1
  21. package/dist/{chunk-YO2YORW4.js → chunk-OHGNCWJP.js} +3 -3
  22. package/dist/{chunk-JPGX3533.js → chunk-OIMPGKDB.js} +2 -2
  23. package/dist/{chunk-W2ZTLH7Y.js → chunk-OWESKPTJ.js} +85 -26
  24. package/dist/{chunk-G66QFZXD.js → chunk-QNL7UI5G.js} +15 -9
  25. package/dist/{chunk-OGXKOMUT.js → chunk-SZWXQHKO.js} +2 -2
  26. package/dist/{chunk-ZFLM2YVW.js → chunk-Y3YJKKEB.js} +1 -1
  27. package/dist/components/index.d.ts +16 -14
  28. package/dist/components/index.js +26 -26
  29. package/dist/features/auth/index.d.ts +6 -12
  30. package/dist/features/auth/index.js +1 -0
  31. package/dist/features/crm/index.d.ts +16 -14
  32. package/dist/features/crm/index.js +9 -9
  33. package/dist/features/dashboard/index.d.ts +16 -3
  34. package/dist/features/dashboard/index.js +10 -10
  35. package/dist/features/delivery/index.d.ts +6 -12
  36. package/dist/features/delivery/index.js +9 -9
  37. package/dist/features/knowledge/index.js +42 -20
  38. package/dist/features/lead-gen/index.d.ts +187 -24
  39. package/dist/features/lead-gen/index.js +10 -10
  40. package/dist/features/monitoring/index.js +11 -11
  41. package/dist/features/monitoring/requests/index.js +8 -8
  42. package/dist/features/operations/index.d.ts +16 -3
  43. package/dist/features/operations/index.js +15 -15
  44. package/dist/features/settings/index.d.ts +6 -12
  45. package/dist/features/settings/index.js +9 -9
  46. package/dist/hooks/delivery/index.d.ts +6 -12
  47. package/dist/hooks/delivery/index.js +2 -2
  48. package/dist/hooks/index.d.ts +110 -28
  49. package/dist/hooks/index.js +8 -8
  50. package/dist/hooks/published.d.ts +110 -28
  51. package/dist/hooks/published.js +8 -8
  52. package/dist/index.d.ts +149 -31
  53. package/dist/index.js +8 -8
  54. package/dist/initialization/index.d.ts +6 -12
  55. package/dist/knowledge/index.d.ts +44 -1
  56. package/dist/knowledge/index.js +149 -12
  57. package/dist/profile/index.d.ts +6 -12
  58. package/dist/provider/index.d.ts +44 -12
  59. package/dist/provider/index.js +6 -6
  60. package/dist/provider/published.d.ts +44 -12
  61. package/dist/provider/published.js +5 -5
  62. package/dist/supabase/index.d.ts +12 -24
  63. package/dist/test-utils/index.js +2 -2
  64. package/dist/typeform/index.d.ts +5 -1
  65. package/dist/typeform/index.js +52 -7
  66. package/dist/types/index.d.ts +7 -13
  67. package/dist/utils/index.d.ts +1 -3
  68. package/dist/utils/index.js +1 -1
  69. package/dist/vite/index.js +2 -2
  70. package/dist/vite-plugin-knowledge/index.js +1 -1
  71. package/package.json +5 -5
  72. package/dist/chunk-4KTLOK7K.js +0 -230
@@ -1326,7 +1326,14 @@ function useTypeformContext() {
1326
1326
  }
1327
1327
  return context;
1328
1328
  }
1329
- function TypeformSurvey({ config, className, styles, hideProgress }) {
1329
+ function TypeformSurvey({
1330
+ config,
1331
+ className,
1332
+ styles,
1333
+ hideProgress,
1334
+ mode = "paginated",
1335
+ renderPageSection
1336
+ }) {
1330
1337
  const typeform = useTypeform(config);
1331
1338
  const {
1332
1339
  currentPage,
@@ -1614,6 +1621,7 @@ function TypeformSurvey({ config, className, styles, hideProgress }) {
1614
1621
  const handleKeyDown = useCallback(
1615
1622
  (e) => {
1616
1623
  if (isComplete) return;
1624
+ if (mode === "all") return;
1617
1625
  if (e.key === "Enter" && !e.shiftKey) {
1618
1626
  const activeElement = document.activeElement;
1619
1627
  if (activeElement?.tagName === "TEXTAREA") return;
@@ -1663,7 +1671,19 @@ function TypeformSurvey({ config, className, styles, hideProgress }) {
1663
1671
  }
1664
1672
  }
1665
1673
  },
1666
- [currentPage, answers, isLastPage, isComplete, canProceed, isMultiQuestion, next, submit, setAnswer, mergedTheme]
1674
+ [
1675
+ currentPage,
1676
+ answers,
1677
+ isLastPage,
1678
+ isComplete,
1679
+ canProceed,
1680
+ isMultiQuestion,
1681
+ mode,
1682
+ next,
1683
+ submit,
1684
+ setAnswer,
1685
+ mergedTheme
1686
+ ]
1667
1687
  );
1668
1688
  useEffect(() => {
1669
1689
  window.addEventListener("keydown", handleKeyDown);
@@ -1671,8 +1691,9 @@ function TypeformSurvey({ config, className, styles, hideProgress }) {
1671
1691
  }, [handleKeyDown]);
1672
1692
  useEffect(() => {
1673
1693
  if (typeof window === "undefined") return;
1694
+ if (mode === "all") return;
1674
1695
  window.scrollTo({ top: 0, left: 0, behavior: "auto" });
1675
- }, [currentPageIndex]);
1696
+ }, [currentPageIndex, mode]);
1676
1697
  if (isComplete) {
1677
1698
  return /* @__PURE__ */ jsx(Box, { className, style: styles?.container, children: /* @__PURE__ */ jsx(
1678
1699
  Center,
@@ -1720,9 +1741,33 @@ function TypeformSurvey({ config, className, styles, hideProgress }) {
1720
1741
  ...styles?.container
1721
1742
  },
1722
1743
  children: [
1723
- !hideProgress && /* @__PURE__ */ jsx(TypeformProgress, { current: currentPageIndex + 1, total: pages.length, usePortal: true }),
1744
+ !hideProgress && mode !== "all" && /* @__PURE__ */ jsx(TypeformProgress, { current: currentPageIndex + 1, total: pages.length, usePortal: true }),
1724
1745
  errors._form && /* @__PURE__ */ jsx(Box, { px: "xl", pt: "md", children: /* @__PURE__ */ jsx(Alert, { color: "red", variant: "light", title: "Submission Error", children: errors._form }) }),
1725
- currentPage && /* @__PURE__ */ jsx(
1746
+ mode === "all" ? /* @__PURE__ */ jsx(Fragment, { children: pages.map((page, idx) => {
1747
+ const wrapper = /* @__PURE__ */ jsx(
1748
+ TypeformPageWrapper,
1749
+ {
1750
+ page,
1751
+ pageNumber: idx + 1,
1752
+ isActive: true,
1753
+ direction: "forward",
1754
+ theme: mergedTheme,
1755
+ compact: isCompact,
1756
+ styles: {
1757
+ // Override minHeight so each section doesn't force full viewport height
1758
+ question: { minHeight: "auto", paddingTop: "var(--mantine-spacing-xl)", ...styles?.question },
1759
+ questionNumber: styles?.questionNumber,
1760
+ questionTitle: styles?.questionTitle,
1761
+ questionDescription: styles?.questionDescription,
1762
+ error: styles?.error
1763
+ },
1764
+ errors,
1765
+ renderField
1766
+ },
1767
+ page.id
1768
+ );
1769
+ return renderPageSection ? renderPageSection(page, wrapper) : wrapper;
1770
+ }) }) : currentPage && /* @__PURE__ */ jsx(
1726
1771
  TypeformPageWrapper,
1727
1772
  {
1728
1773
  page: currentPage,
@@ -1748,9 +1793,9 @@ function TypeformSurvey({ config, className, styles, hideProgress }) {
1748
1793
  onBack: back,
1749
1794
  onNext: next,
1750
1795
  onSubmit: submit,
1751
- canGoBack: !isFirstPage,
1796
+ canGoBack: mode === "all" ? false : !isFirstPage,
1752
1797
  canGoNext: canProceed,
1753
- isLastQuestion: isLastPage,
1798
+ isLastQuestion: mode === "all" ? true : isLastPage,
1754
1799
  isSubmitting,
1755
1800
  terminationAction: config.terminationAction,
1756
1801
  onTerminate: terminateAndSubmit
@@ -600,7 +600,7 @@ type Database = {
600
600
  name: string;
601
601
  num_employees: number | null;
602
602
  organization_id: string;
603
- pipeline_status: Json;
603
+ processing_state: Json;
604
604
  qualification_rubric_key: string | null;
605
605
  qualification_score: number | null;
606
606
  qualification_signals: Json | null;
@@ -626,7 +626,7 @@ type Database = {
626
626
  name: string;
627
627
  num_employees?: number | null;
628
628
  organization_id: string;
629
- pipeline_status?: Json;
629
+ processing_state?: Json;
630
630
  qualification_rubric_key?: string | null;
631
631
  qualification_score?: number | null;
632
632
  qualification_signals?: Json | null;
@@ -652,7 +652,7 @@ type Database = {
652
652
  name?: string;
653
653
  num_employees?: number | null;
654
654
  organization_id?: string;
655
- pipeline_status?: Json;
655
+ processing_state?: Json;
656
656
  qualification_rubric_key?: string | null;
657
657
  qualification_score?: number | null;
658
658
  qualification_signals?: Json | null;
@@ -691,7 +691,7 @@ type Database = {
691
691
  nurture: boolean;
692
692
  opening_line: string | null;
693
693
  organization_id: string;
694
- pipeline_status: Json;
694
+ processing_state: Json;
695
695
  qualification_rubric_key: string | null;
696
696
  qualification_score: number | null;
697
697
  qualification_signals: Json | null;
@@ -719,7 +719,7 @@ type Database = {
719
719
  nurture?: boolean;
720
720
  opening_line?: string | null;
721
721
  organization_id: string;
722
- pipeline_status?: Json;
722
+ processing_state?: Json;
723
723
  qualification_rubric_key?: string | null;
724
724
  qualification_score?: number | null;
725
725
  qualification_signals?: Json | null;
@@ -747,7 +747,7 @@ type Database = {
747
747
  nurture?: boolean;
748
748
  opening_line?: string | null;
749
749
  organization_id?: string;
750
- pipeline_status?: Json;
750
+ processing_state?: Json;
751
751
  qualification_rubric_key?: string | null;
752
752
  qualification_score?: number | null;
753
753
  qualification_signals?: Json | null;
@@ -1143,7 +1143,6 @@ type Database = {
1143
1143
  id: string;
1144
1144
  list_id: string;
1145
1145
  pipeline_key: string;
1146
- processing_state: Json;
1147
1146
  source_execution_id: string | null;
1148
1147
  source_input_hash: string | null;
1149
1148
  source_resource_id: string | null;
@@ -1158,7 +1157,6 @@ type Database = {
1158
1157
  id?: string;
1159
1158
  list_id: string;
1160
1159
  pipeline_key?: string;
1161
- processing_state?: Json;
1162
1160
  source_execution_id?: string | null;
1163
1161
  source_input_hash?: string | null;
1164
1162
  source_resource_id?: string | null;
@@ -1173,7 +1171,6 @@ type Database = {
1173
1171
  id?: string;
1174
1172
  list_id?: string;
1175
1173
  pipeline_key?: string;
1176
- processing_state?: Json;
1177
1174
  source_execution_id?: string | null;
1178
1175
  source_input_hash?: string | null;
1179
1176
  source_resource_id?: string | null;
@@ -1252,7 +1249,6 @@ type Database = {
1252
1249
  id: string;
1253
1250
  list_id: string;
1254
1251
  pipeline_key: string;
1255
- processing_state: Json;
1256
1252
  source_execution_id: string | null;
1257
1253
  source_input_hash: string | null;
1258
1254
  source_resource_id: string | null;
@@ -1267,7 +1263,6 @@ type Database = {
1267
1263
  id?: string;
1268
1264
  list_id: string;
1269
1265
  pipeline_key?: string;
1270
- processing_state?: Json;
1271
1266
  source_execution_id?: string | null;
1272
1267
  source_input_hash?: string | null;
1273
1268
  source_resource_id?: string | null;
@@ -1282,7 +1277,6 @@ type Database = {
1282
1277
  id?: string;
1283
1278
  list_id?: string;
1284
1279
  pipeline_key?: string;
1285
- processing_state?: Json;
1286
1280
  source_execution_id?: string | null;
1287
1281
  source_input_hash?: string | null;
1288
1282
  source_resource_id?: string | null;
@@ -3534,7 +3528,7 @@ interface DealContact {
3534
3528
  title: string | null;
3535
3529
  headline: string | null;
3536
3530
  linkedin_url: string | null;
3537
- pipeline_status: Record<string, unknown> | null;
3531
+ processing_state: Record<string, unknown> | null;
3538
3532
  enrichment_data: Record<string, unknown> | null;
3539
3533
  company: {
3540
3534
  id: string;
@@ -317,8 +317,6 @@ declare const LIMIT_ACTIVITY_FEED = 50;
317
317
  declare const DEBOUNCE_FILTER = 150;
318
318
  /** Slider input debounce delay (500ms). */
319
319
  declare const DEBOUNCE_SLIDER = 500;
320
- /** OAuth popup closed-check polling interval (500ms). */
321
- declare const OAUTH_POPUP_CHECK_INTERVAL = 500;
322
320
  /** OAuth flow maximum duration before timeout (5 min). */
323
321
  declare const OAUTH_FLOW_TIMEOUT = 300000;
324
322
 
@@ -343,5 +341,5 @@ declare function restoreConsole(): void;
343
341
 
344
342
  declare function setupBrowserMocks(): void;
345
343
 
346
- export { APIClientError, API_URL, DEBOUNCE_FILTER, DEBOUNCE_SLIDER, GC_TIME_LONG, GC_TIME_MEDIUM, GC_TIME_SHORT, LIMIT_ACTIVITY_FEED, OAUTH_FLOW_TIMEOUT, OAUTH_POPUP_CHECK_INTERVAL, PAGE_SIZE_DEFAULT, REFETCH_INTERVAL_DASHBOARD, REFETCH_INTERVAL_REALTIME, REFETCH_INTERVAL_RUNNING, REFETCH_INTERVAL_RUNNING_FAST, ResourceStatusColors, SSE_CLOSE_GRACE_PERIOD, SSE_TOKEN_REFRESH_DELAY, STALE_TIME_ADMIN, STALE_TIME_DEFAULT, STALE_TIME_MONITORING, WS_MAX_RETRIES_BEFORE_ERROR, WS_RECONNECT_BASE_DELAY, WS_RECONNECT_MAX_DELAY, debounce, formatChartAxisDate, formatDate, formatDateTime, formatErrorMessage, formatRelativeTime, formatTimeAgo, getErrorInfo, getErrorTitle, getResourceColor, getResourceIcon, getTimeRangeDates, getTimeRangeLabel, isAPIClientError, restoreConsole, setupBrowserMocks, suppressKnownWarnings, validateEmail };
344
+ export { APIClientError, API_URL, DEBOUNCE_FILTER, DEBOUNCE_SLIDER, GC_TIME_LONG, GC_TIME_MEDIUM, GC_TIME_SHORT, LIMIT_ACTIVITY_FEED, OAUTH_FLOW_TIMEOUT, PAGE_SIZE_DEFAULT, REFETCH_INTERVAL_DASHBOARD, REFETCH_INTERVAL_REALTIME, REFETCH_INTERVAL_RUNNING, REFETCH_INTERVAL_RUNNING_FAST, ResourceStatusColors, SSE_CLOSE_GRACE_PERIOD, SSE_TOKEN_REFRESH_DELAY, STALE_TIME_ADMIN, STALE_TIME_DEFAULT, STALE_TIME_MONITORING, WS_MAX_RETRIES_BEFORE_ERROR, WS_RECONNECT_BASE_DELAY, WS_RECONNECT_MAX_DELAY, debounce, formatChartAxisDate, formatDate, formatDateTime, formatErrorMessage, formatRelativeTime, formatTimeAgo, getErrorInfo, getErrorTitle, getResourceColor, getResourceIcon, getTimeRangeDates, getTimeRangeLabel, isAPIClientError, restoreConsole, setupBrowserMocks, suppressKnownWarnings, validateEmail };
347
345
  export type { TablerIcon };
@@ -1,3 +1,3 @@
1
- export { APIClientError, API_URL, DEBOUNCE_FILTER, DEBOUNCE_SLIDER, GC_TIME_LONG, GC_TIME_MEDIUM, GC_TIME_SHORT, LIMIT_ACTIVITY_FEED, OAUTH_FLOW_TIMEOUT, OAUTH_POPUP_CHECK_INTERVAL, PAGE_SIZE_DEFAULT, REFETCH_INTERVAL_DASHBOARD, REFETCH_INTERVAL_REALTIME, REFETCH_INTERVAL_RUNNING, REFETCH_INTERVAL_RUNNING_FAST, SSE_CLOSE_GRACE_PERIOD, SSE_TOKEN_REFRESH_DELAY, STALE_TIME_ADMIN, STALE_TIME_DEFAULT, STALE_TIME_MONITORING, WS_MAX_RETRIES_BEFORE_ERROR, WS_RECONNECT_BASE_DELAY, WS_RECONNECT_MAX_DELAY, debounce, formatChartAxisDate, formatDate, formatDateTime, formatErrorMessage, formatRelativeTime, formatTimeAgo, getErrorInfo, getErrorTitle, getResourceColor, getResourceIcon, getTimeRangeDates, getTimeRangeLabel, isAPIClientError, restoreConsole, setupBrowserMocks, suppressKnownWarnings, validateEmail } from '../chunk-QD4X4H5A.js';
1
+ export { APIClientError, API_URL, DEBOUNCE_FILTER, DEBOUNCE_SLIDER, GC_TIME_LONG, GC_TIME_MEDIUM, GC_TIME_SHORT, LIMIT_ACTIVITY_FEED, OAUTH_FLOW_TIMEOUT, PAGE_SIZE_DEFAULT, REFETCH_INTERVAL_DASHBOARD, REFETCH_INTERVAL_REALTIME, REFETCH_INTERVAL_RUNNING, REFETCH_INTERVAL_RUNNING_FAST, SSE_CLOSE_GRACE_PERIOD, SSE_TOKEN_REFRESH_DELAY, STALE_TIME_ADMIN, STALE_TIME_DEFAULT, STALE_TIME_MONITORING, WS_MAX_RETRIES_BEFORE_ERROR, WS_RECONNECT_BASE_DELAY, WS_RECONNECT_MAX_DELAY, debounce, formatChartAxisDate, formatDate, formatDateTime, formatErrorMessage, formatRelativeTime, formatTimeAgo, getErrorInfo, getErrorTitle, getResourceColor, getResourceIcon, getTimeRangeDates, getTimeRangeLabel, isAPIClientError, restoreConsole, setupBrowserMocks, suppressKnownWarnings, validateEmail } from '../chunk-HXZQWMKE.js';
2
2
  export { ResourceStatusColors } from '../chunk-KRWALB24.js';
3
3
  import '../chunk-I2KLQ2HA.js';
@@ -1,5 +1,5 @@
1
- import { knowledgePlugin } from '../chunk-MYEOTM7D.js';
2
- export { knowledgePlugin } from '../chunk-MYEOTM7D.js';
1
+ import { knowledgePlugin } from '../chunk-CN2HC4D4.js';
2
+ export { knowledgePlugin } from '../chunk-CN2HC4D4.js';
3
3
  import '../chunk-I2KLQ2HA.js';
4
4
 
5
5
  // src/vite/index.ts
@@ -1,2 +1,2 @@
1
- export { knowledgePlugin } from '../chunk-MYEOTM7D.js';
1
+ export { knowledgePlugin } from '../chunk-CN2HC4D4.js';
2
2
  import '../chunk-I2KLQ2HA.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elevasis/ui",
3
- "version": "2.28.0",
3
+ "version": "2.29.0",
4
4
  "description": "UI components and platform-aware hooks for building custom frontends on the Elevasis platform",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -247,11 +247,11 @@
247
247
  "@testing-library/jest-dom": "^6.9.1",
248
248
  "msw": "^2.11.0",
249
249
  "vitest": "^3.2.4",
250
- "@elevasis/sdk": "1.17.0",
251
- "@repo/core": "0.18.0",
250
+ "@elevasis/sdk": "1.18.0",
251
+ "@repo/core": "0.20.0",
252
+ "@repo/elevasis-core": "1.0.0",
252
253
  "@repo/eslint-config": "0.0.0",
253
- "@repo/typescript-config": "0.0.0",
254
- "@repo/elevasis-core": "1.0.0"
254
+ "@repo/typescript-config": "0.0.0"
255
255
  },
256
256
  "dependencies": {
257
257
  "@dagrejs/dagre": "^1.1.4",
@@ -1,230 +0,0 @@
1
- import { DisplayMetadataSchema, ModelIdSchema, DescriptionSchema } from './chunk-W2ZTLH7Y.js';
2
- import { z } from 'zod';
3
-
4
- var ProspectingLifecycleStageSchema = DisplayMetadataSchema.extend({
5
- id: ModelIdSchema,
6
- order: z.number().int().min(0)
7
- });
8
- var ProspectingBuildTemplateStepSchema = DisplayMetadataSchema.extend({
9
- id: ModelIdSchema,
10
- primaryEntity: z.enum(["company", "contact"]),
11
- outputs: z.array(z.enum(["company", "contact", "export"])).min(1),
12
- stageKey: ModelIdSchema,
13
- dependsOn: z.array(ModelIdSchema).optional(),
14
- dependencyMode: z.literal("per-record-eligibility"),
15
- capabilityKey: ModelIdSchema,
16
- defaultBatchSize: z.number().int().positive(),
17
- maxBatchSize: z.number().int().positive()
18
- }).refine((step) => step.defaultBatchSize <= step.maxBatchSize, {
19
- message: "defaultBatchSize must be less than or equal to maxBatchSize",
20
- path: ["defaultBatchSize"]
21
- });
22
- var ProspectingBuildTemplateSchema = DisplayMetadataSchema.extend({
23
- id: ModelIdSchema,
24
- steps: z.array(ProspectingBuildTemplateStepSchema).min(1)
25
- });
26
- var OrganizationModelProspectingSchema = z.object({
27
- listEntityId: ModelIdSchema,
28
- companyEntityId: ModelIdSchema,
29
- contactEntityId: ModelIdSchema,
30
- description: DescriptionSchema.optional(),
31
- companyStages: z.array(ProspectingLifecycleStageSchema).min(1),
32
- contactStages: z.array(ProspectingLifecycleStageSchema).min(1),
33
- defaultBuildTemplateId: ModelIdSchema,
34
- buildTemplates: z.array(ProspectingBuildTemplateSchema).min(1)
35
- });
36
- var DEFAULT_ORGANIZATION_MODEL_PROSPECTING = {
37
- listEntityId: "leadgen.list",
38
- companyEntityId: "leadgen.company",
39
- contactEntityId: "leadgen.contact",
40
- companyStages: [
41
- { id: "populated", label: "Populated", order: 1 },
42
- { id: "extracted", label: "Extracted", order: 2 },
43
- { id: "qualified", label: "Qualified", order: 3 }
44
- ],
45
- contactStages: [
46
- { id: "discovered", label: "Discovered", order: 1 },
47
- { id: "verified", label: "Verified", order: 2 },
48
- { id: "personalized", label: "Personalized", order: 3 },
49
- { id: "uploaded", label: "Uploaded", order: 4 }
50
- ],
51
- defaultBuildTemplateId: "local-services",
52
- buildTemplates: [
53
- {
54
- id: "local-services",
55
- label: "Local Services Prospecting",
56
- description: "Curated local-services list build using company sourcing, website analysis, qualification, contact discovery, verification, personalization, and review.",
57
- steps: [
58
- {
59
- id: "source-companies",
60
- label: "Source companies",
61
- primaryEntity: "company",
62
- outputs: ["company"],
63
- stageKey: "populated",
64
- dependencyMode: "per-record-eligibility",
65
- capabilityKey: "lead-gen.company.source",
66
- defaultBatchSize: 100,
67
- maxBatchSize: 250
68
- },
69
- {
70
- id: "analyze-websites",
71
- label: "Analyze websites",
72
- primaryEntity: "company",
73
- outputs: ["company"],
74
- stageKey: "extracted",
75
- dependsOn: ["source-companies"],
76
- dependencyMode: "per-record-eligibility",
77
- capabilityKey: "lead-gen.company.website-extract",
78
- defaultBatchSize: 50,
79
- maxBatchSize: 100
80
- },
81
- {
82
- id: "qualify-companies",
83
- label: "Qualify companies",
84
- primaryEntity: "company",
85
- outputs: ["company"],
86
- stageKey: "qualified",
87
- dependsOn: ["analyze-websites"],
88
- dependencyMode: "per-record-eligibility",
89
- capabilityKey: "lead-gen.company.qualify",
90
- defaultBatchSize: 100,
91
- maxBatchSize: 250
92
- },
93
- {
94
- id: "find-contacts",
95
- label: "Find contacts",
96
- primaryEntity: "contact",
97
- outputs: ["contact"],
98
- stageKey: "discovered",
99
- dependsOn: ["qualify-companies"],
100
- dependencyMode: "per-record-eligibility",
101
- capabilityKey: "lead-gen.contact.discover",
102
- defaultBatchSize: 50,
103
- maxBatchSize: 100
104
- },
105
- {
106
- id: "verify-emails",
107
- label: "Verify emails",
108
- primaryEntity: "contact",
109
- outputs: ["contact"],
110
- stageKey: "verified",
111
- dependsOn: ["find-contacts"],
112
- dependencyMode: "per-record-eligibility",
113
- capabilityKey: "lead-gen.contact.verify-email",
114
- defaultBatchSize: 100,
115
- maxBatchSize: 500
116
- },
117
- {
118
- id: "personalize",
119
- label: "Personalize",
120
- primaryEntity: "contact",
121
- outputs: ["contact"],
122
- stageKey: "personalized",
123
- dependsOn: ["verify-emails"],
124
- dependencyMode: "per-record-eligibility",
125
- capabilityKey: "lead-gen.contact.personalize",
126
- defaultBatchSize: 25,
127
- maxBatchSize: 100
128
- },
129
- {
130
- id: "review",
131
- label: "Review",
132
- primaryEntity: "contact",
133
- outputs: ["export"],
134
- stageKey: "uploaded",
135
- dependsOn: ["personalize"],
136
- dependencyMode: "per-record-eligibility",
137
- capabilityKey: "lead-gen.review.outreach-ready",
138
- defaultBatchSize: 25,
139
- maxBatchSize: 100
140
- }
141
- ]
142
- },
143
- {
144
- id: "dtc-subscription-apollo-clickup",
145
- label: "DTC Subscription Apollo Export",
146
- description: "Prospecting pipeline for DTC subscription or subscription-ready brands where Apollo is the source and contact-enrichment layer, Elevasis handles company research and fit scoring, and approved leads export as an approved lead list.",
147
- steps: [
148
- {
149
- id: "import-apollo-search",
150
- label: "Import Apollo search",
151
- description: "Pull companies and seed contact data from a predefined Apollo search or list.",
152
- primaryEntity: "company",
153
- outputs: ["company", "contact"],
154
- stageKey: "populated",
155
- dependencyMode: "per-record-eligibility",
156
- capabilityKey: "lead-gen.company.apollo-import",
157
- defaultBatchSize: 250,
158
- maxBatchSize: 1e3
159
- },
160
- {
161
- id: "analyze-websites",
162
- label: "Analyze websites",
163
- description: "Extract subscription, product, retention, and tech-stack signals from each brand website.",
164
- primaryEntity: "company",
165
- outputs: ["company"],
166
- stageKey: "extracted",
167
- dependsOn: ["import-apollo-search"],
168
- dependencyMode: "per-record-eligibility",
169
- capabilityKey: "lead-gen.company.website-extract",
170
- defaultBatchSize: 50,
171
- maxBatchSize: 100
172
- },
173
- {
174
- id: "score-dtc-fit",
175
- label: "Score DTC fit",
176
- description: "Classify subscription potential, consumable-product fit, retention maturity, and disqualifiers.",
177
- primaryEntity: "company",
178
- outputs: ["company"],
179
- stageKey: "qualified",
180
- dependsOn: ["analyze-websites"],
181
- dependencyMode: "per-record-eligibility",
182
- capabilityKey: "lead-gen.company.dtc-subscription-qualify",
183
- defaultBatchSize: 100,
184
- maxBatchSize: 250
185
- },
186
- {
187
- id: "enrich-decision-makers",
188
- label: "Enrich decision-makers",
189
- description: "Use Apollo to find qualified contacts such as founders, retention leads, lifecycle leads, and marketing owners.",
190
- primaryEntity: "contact",
191
- outputs: ["contact"],
192
- stageKey: "discovered",
193
- dependsOn: ["score-dtc-fit"],
194
- dependencyMode: "per-record-eligibility",
195
- capabilityKey: "lead-gen.contact.apollo-decision-maker-enrich",
196
- defaultBatchSize: 100,
197
- maxBatchSize: 250
198
- },
199
- {
200
- id: "verify-emails",
201
- label: "Verify emails",
202
- description: "Verify deliverability before the QC and handoff step.",
203
- primaryEntity: "contact",
204
- outputs: ["contact"],
205
- stageKey: "verified",
206
- dependsOn: ["enrich-decision-makers"],
207
- dependencyMode: "per-record-eligibility",
208
- capabilityKey: "lead-gen.contact.verify-email",
209
- defaultBatchSize: 250,
210
- maxBatchSize: 500
211
- },
212
- {
213
- id: "review-and-export",
214
- label: "Review and export",
215
- description: "Operator QC approves or rejects leads, then approved records are exported as a lead list.",
216
- primaryEntity: "company",
217
- outputs: ["export"],
218
- stageKey: "uploaded",
219
- dependsOn: ["verify-emails"],
220
- dependencyMode: "per-record-eligibility",
221
- capabilityKey: "lead-gen.export.list",
222
- defaultBatchSize: 100,
223
- maxBatchSize: 250
224
- }
225
- ]
226
- }
227
- ]
228
- };
229
-
230
- export { DEFAULT_ORGANIZATION_MODEL_PROSPECTING, OrganizationModelProspectingSchema };