@elevasis/ui 2.25.5 → 2.25.6

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 (61) hide show
  1. package/dist/app/index.css +3 -24
  2. package/dist/app/index.d.ts +63 -56
  3. package/dist/app/index.js +3 -2
  4. package/dist/chunk-5RLYII6P.js +314 -0
  5. package/dist/chunk-6U7AIIHF.js +880 -0
  6. package/dist/{chunk-NHHCUECV.js → chunk-7F3IQMLI.js} +1 -1
  7. package/dist/{chunk-N2AP4I5N.js → chunk-ARJPZ66V.js} +39 -757
  8. package/dist/{chunk-IS53MXE4.js → chunk-BDKM56TP.js} +1 -1
  9. package/dist/{chunk-KINQW4JT.js → chunk-C7IBFI5B.js} +1 -1
  10. package/dist/{chunk-5BJXMZN4.js → chunk-CPAJXBTL.js} +9 -5
  11. package/dist/chunk-HAEJ4M54.js +94 -0
  12. package/dist/{chunk-QNCVK3ZF.js → chunk-JXSBOG2R.js} +1 -1
  13. package/dist/{chunk-3KY2GNPE.js → chunk-KNISO652.js} +1 -1
  14. package/dist/{chunk-VMAWXEVG.js → chunk-L7D6KNHV.js} +457 -290
  15. package/dist/{chunk-JMI7L7Y7.js → chunk-LPM7O6XM.js} +2 -233
  16. package/dist/{chunk-FVKLHLF4.js → chunk-QARSVM7Q.js} +1 -1
  17. package/dist/{chunk-F7JDHS2I.js → chunk-SBQ4MYQV.js} +3 -2
  18. package/dist/{chunk-MU4VPAMR.js → chunk-YRKQNPK2.js} +1 -1
  19. package/dist/components/index.css +3 -24
  20. package/dist/components/index.d.ts +11 -2
  21. package/dist/components/index.js +18 -16
  22. package/dist/components/navigation/index.css +3 -24
  23. package/dist/features/auth/index.css +3 -24
  24. package/dist/features/crm/index.css +3 -24
  25. package/dist/features/crm/index.js +5 -4
  26. package/dist/features/dashboard/index.css +3 -24
  27. package/dist/features/dashboard/index.js +5 -4
  28. package/dist/features/delivery/index.css +3 -24
  29. package/dist/features/delivery/index.js +5 -4
  30. package/dist/features/knowledge/index.js +397 -1
  31. package/dist/features/lead-gen/index.css +3 -24
  32. package/dist/features/lead-gen/index.d.ts +158 -151
  33. package/dist/features/lead-gen/index.js +6 -5
  34. package/dist/features/monitoring/index.css +3 -24
  35. package/dist/features/monitoring/index.js +6 -5
  36. package/dist/features/monitoring/requests/index.css +3 -24
  37. package/dist/features/monitoring/requests/index.js +4 -3
  38. package/dist/features/operations/index.css +3 -24
  39. package/dist/features/operations/index.js +9 -7
  40. package/dist/features/settings/index.css +3 -24
  41. package/dist/features/settings/index.js +5 -4
  42. package/dist/hooks/delivery/index.css +3 -24
  43. package/dist/hooks/index.css +3 -24
  44. package/dist/hooks/index.d.ts +14 -3
  45. package/dist/hooks/index.js +4 -3
  46. package/dist/hooks/published.css +3 -24
  47. package/dist/hooks/published.d.ts +14 -3
  48. package/dist/hooks/published.js +4 -3
  49. package/dist/index.css +3 -24
  50. package/dist/index.d.ts +611 -593
  51. package/dist/index.js +4 -3
  52. package/dist/knowledge/index.d.ts +14 -4
  53. package/dist/knowledge/index.js +20 -119
  54. package/dist/organization/index.css +3 -24
  55. package/dist/provider/index.css +3 -24
  56. package/dist/provider/index.d.ts +346 -339
  57. package/dist/provider/index.js +3 -2
  58. package/dist/provider/published.css +3 -24
  59. package/dist/provider/published.d.ts +346 -339
  60. package/dist/provider/published.js +2 -1
  61. package/package.json +33 -33
@@ -29,32 +29,11 @@
29
29
  .mantine-Select-option:hover {
30
30
  background-color: var(--color-surface-hover) !important;
31
31
  }
32
- [data-mantine-color-scheme] .mantine-Tabs-root {
33
- --tabs-color: var(--color-primary);
32
+ [data-mantine-color-scheme=dark] .mantine-Tabs-root {
34
33
  --tab-border-color: var(--color-border);
35
- --tab-hover-color: color-mix(in srgb, var(--color-surface-hover) 70%, transparent);
36
34
  }
37
- [data-mantine-color-scheme] .mantine-Tabs-list::before {
38
- border-color: var(--color-border);
39
- }
40
- [data-mantine-color-scheme] .mantine-Tabs-tab {
41
- color: var(--color-text);
42
- border-color: transparent;
43
- background-color: transparent;
44
- transition:
45
- background-color var(--duration-fast) var(--easing),
46
- border-color var(--duration-fast) var(--easing),
47
- color var(--duration-fast) var(--easing);
48
- }
49
- [data-mantine-color-scheme] .mantine-Tabs-tab:not([data-active]):hover {
50
- background-color: var(--tab-hover-color);
51
- border-color: var(--color-border);
52
- }
53
- [data-mantine-color-scheme] .mantine-Tabs-tab[data-active],
54
- [data-mantine-color-scheme] .mantine-Tabs-tab[data-active]:hover {
55
- color: var(--color-text);
56
- background-color: transparent;
57
- border-color: var(--color-primary);
35
+ .mantine-Tabs-tab:hover {
36
+ background-color: var(--color-surface-hover);
58
37
  }
59
38
  .mantine-Pagination-control:not([data-active]) {
60
39
  background: var(--color-surface);
@@ -1,7 +1,8 @@
1
1
  import { ReactNode, ComponentType } from 'react';
2
2
  import { AnyRouter } from '@tanstack/react-router';
3
3
  import { QueryClient } from '@tanstack/react-query';
4
- import { z } from 'zod';
4
+ import * as z from 'zod';
5
+ import { z as z$1 } from 'zod';
5
6
  import { MantineThemeOverride } from '@mantine/core';
6
7
 
7
8
  type Json = string | number | boolean | null | {
@@ -2918,80 +2919,81 @@ type AcqDealRow = Database['public']['Tables']['acq_deals']['Row'];
2918
2919
  * Single list as returned by /api/acquisition/lists/:id etc.
2919
2920
  * Camel-cased domain shape matching AcqList in types.ts.
2920
2921
  */
2921
- declare const AcqListResponseSchema: z.ZodObject<{
2922
- id: z.ZodString;
2923
- organizationId: z.ZodString;
2924
- name: z.ZodString;
2925
- description: z.ZodNullable<z.ZodString>;
2926
- batchIds: z.ZodArray<z.ZodString>;
2927
- instantlyCampaignId: z.ZodNullable<z.ZodString>;
2928
- status: z.ZodEnum<{
2922
+ declare const AcqListResponseSchema: z$1.ZodObject<{
2923
+ id: z$1.ZodString;
2924
+ organizationId: z$1.ZodString;
2925
+ name: z$1.ZodString;
2926
+ description: z$1.ZodNullable<z$1.ZodString>;
2927
+ batchIds: z$1.ZodArray<z$1.ZodString>;
2928
+ instantlyCampaignId: z$1.ZodNullable<z$1.ZodString>;
2929
+ status: z$1.ZodEnum<{
2929
2930
  closing: "closing";
2930
2931
  draft: "draft";
2931
2932
  enriching: "enriching";
2932
2933
  launched: "launched";
2933
2934
  archived: "archived";
2934
2935
  }>;
2935
- metadata: z.ZodObject<{
2936
- buildPlanSnapshot: z.ZodOptional<z.ZodObject<{
2937
- templateId: z.ZodString;
2938
- templateLabel: z.ZodString;
2939
- steps: z.ZodArray<z.ZodObject<{
2940
- id: z.ZodString;
2941
- label: z.ZodString;
2942
- description: z.ZodOptional<z.ZodString>;
2943
- primaryEntity: z.ZodEnum<{
2936
+ metadata: z$1.ZodObject<{
2937
+ buildPlanSnapshot: z$1.ZodOptional<z$1.ZodObject<{
2938
+ templateId: z$1.ZodString;
2939
+ templateLabel: z$1.ZodString;
2940
+ steps: z$1.ZodArray<z$1.ZodObject<{
2941
+ id: z$1.ZodString;
2942
+ label: z$1.ZodString;
2943
+ description: z$1.ZodOptional<z$1.ZodString>;
2944
+ primaryEntity: z$1.ZodEnum<{
2944
2945
  company: "company";
2945
2946
  contact: "contact";
2946
2947
  }>;
2947
- outputs: z.ZodArray<z.ZodEnum<{
2948
+ outputs: z$1.ZodArray<z$1.ZodEnum<{
2948
2949
  company: "company";
2949
2950
  contact: "contact";
2950
2951
  export: "export";
2951
2952
  }>>;
2952
- stageKey: z.ZodString;
2953
- dependsOn: z.ZodOptional<z.ZodArray<z.ZodString>>;
2954
- dependencyMode: z.ZodLiteral<"per-record-eligibility">;
2955
- capabilityKey: z.ZodString;
2956
- defaultBatchSize: z.ZodNumber;
2957
- maxBatchSize: z.ZodNumber;
2958
- }, z.core.$strip>>;
2959
- }, z.core.$strip>>;
2960
- }, z.core.$catchall<z.ZodUnknown>>;
2961
- launchedAt: z.ZodNullable<z.ZodString>;
2962
- completedAt: z.ZodNullable<z.ZodString>;
2963
- createdAt: z.ZodString;
2964
- scrapingConfig: z.ZodObject<{
2965
- vertical: z.ZodOptional<z.ZodString>;
2966
- geography: z.ZodOptional<z.ZodString>;
2967
- size: z.ZodOptional<z.ZodString>;
2968
- apifyInput: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2969
- }, z.core.$strip>;
2970
- icp: z.ZodObject<{
2971
- qualificationRubricKey: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2972
- targetDescription: z.ZodOptional<z.ZodString>;
2973
- minReviewCount: z.ZodOptional<z.ZodNumber>;
2974
- minRating: z.ZodOptional<z.ZodNumber>;
2975
- excludeFranchises: z.ZodOptional<z.ZodBoolean>;
2976
- customRules: z.ZodOptional<z.ZodString>;
2977
- }, z.core.$strip>;
2978
- pipelineConfig: z.ZodObject<{
2979
- stages: z.ZodOptional<z.ZodArray<z.ZodObject<{
2980
- key: z.ZodString;
2981
- label: z.ZodOptional<z.ZodString>;
2982
- enabled: z.ZodOptional<z.ZodBoolean>;
2983
- order: z.ZodOptional<z.ZodNumber>;
2984
- }, z.core.$strip>>>;
2985
- }, z.core.$strip>;
2986
- }, z.core.$strip>;
2987
- type AcqListResponse = z.infer<typeof AcqListResponseSchema>;
2953
+ stageKey: z$1.ZodString;
2954
+ dependsOn: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
2955
+ dependencyMode: z$1.ZodLiteral<"per-record-eligibility">;
2956
+ capabilityKey: z$1.ZodString;
2957
+ defaultBatchSize: z$1.ZodNumber;
2958
+ maxBatchSize: z$1.ZodNumber;
2959
+ }, z$1.core.$strip>>;
2960
+ }, z$1.core.$strip>>;
2961
+ stepConfig: z$1.ZodOptional<z$1.ZodRecord<z$1.ZodString, z$1.ZodUnknown>>;
2962
+ }, z$1.core.$catchall<z$1.ZodUnknown>>;
2963
+ launchedAt: z$1.ZodNullable<z$1.ZodString>;
2964
+ completedAt: z$1.ZodNullable<z$1.ZodString>;
2965
+ createdAt: z$1.ZodString;
2966
+ scrapingConfig: z$1.ZodObject<{
2967
+ vertical: z$1.ZodOptional<z$1.ZodString>;
2968
+ geography: z$1.ZodOptional<z$1.ZodString>;
2969
+ size: z$1.ZodOptional<z$1.ZodString>;
2970
+ apifyInput: z$1.ZodOptional<z$1.ZodRecord<z$1.ZodString, z$1.ZodUnknown>>;
2971
+ }, z$1.core.$strip>;
2972
+ icp: z$1.ZodObject<{
2973
+ qualificationRubricKey: z$1.ZodOptional<z$1.ZodNullable<z$1.ZodString>>;
2974
+ targetDescription: z$1.ZodOptional<z$1.ZodString>;
2975
+ minReviewCount: z$1.ZodOptional<z$1.ZodNumber>;
2976
+ minRating: z$1.ZodOptional<z$1.ZodNumber>;
2977
+ excludeFranchises: z$1.ZodOptional<z$1.ZodBoolean>;
2978
+ customRules: z$1.ZodOptional<z$1.ZodString>;
2979
+ }, z$1.core.$strip>;
2980
+ pipelineConfig: z$1.ZodObject<{
2981
+ stages: z$1.ZodOptional<z$1.ZodArray<z$1.ZodObject<{
2982
+ key: z$1.ZodString;
2983
+ label: z$1.ZodOptional<z$1.ZodString>;
2984
+ enabled: z$1.ZodOptional<z$1.ZodBoolean>;
2985
+ order: z$1.ZodOptional<z$1.ZodNumber>;
2986
+ }, z$1.core.$strip>>>;
2987
+ }, z$1.core.$strip>;
2988
+ }, z$1.core.$strip>;
2989
+ type AcqListResponse = z$1.infer<typeof AcqListResponseSchema>;
2988
2990
 
2989
2991
  interface ActionDef {
2990
2992
  key: string;
2991
2993
  label: string;
2992
2994
  isAvailableFor: (deal: AcqDealRow) => boolean;
2993
2995
  workflowId: string;
2994
- payloadSchema?: z.ZodTypeAny;
2996
+ payloadSchema?: z$1.ZodTypeAny;
2995
2997
  }
2996
2998
 
2997
2999
  interface ApiErrorDetails {
@@ -3058,6 +3060,11 @@ interface ListBuilderWorkflow {
3058
3060
  description: string;
3059
3061
  category: ListBuilderWorkflowCategory;
3060
3062
  stagesAffected: readonly LeadGenStageKey[];
3063
+ configSchema?: z.ZodSchema<unknown>;
3064
+ ConfigForm?: ComponentType<{
3065
+ value: Record<string, unknown>;
3066
+ onChange: (next: Record<string, unknown>) => void;
3067
+ }>;
3061
3068
  inputForm?: ComponentType<ListBuilderWorkflowFormProps>;
3062
3069
  defaultInput?: (list: AcqListResponse) => unknown;
3063
3070
  }
package/dist/app/index.js CHANGED
@@ -1,8 +1,9 @@
1
- import { ElevasisUIProvider } from '../chunk-MU4VPAMR.js';
1
+ import { ElevasisUIProvider } from '../chunk-YRKQNPK2.js';
2
2
  import '../chunk-QIW6OCEI.js';
3
3
  import '../chunk-WLOQ4IBG.js';
4
- import '../chunk-JMI7L7Y7.js';
4
+ import '../chunk-LPM7O6XM.js';
5
5
  import '../chunk-SZHARWKU.js';
6
+ import '../chunk-5RLYII6P.js';
6
7
  import '../chunk-T6INEVX6.js';
7
8
  import '../chunk-HOIT677G.js';
8
9
  import '../chunk-E565XMTQ.js';
@@ -0,0 +1,314 @@
1
+ import { z } from 'zod';
2
+
3
+ // ../core/src/organization-model/domains/sales.ts
4
+ var ModelIdSchema = z.string().trim().min(1).max(100).regex(/^[a-z0-9]+(?:[-._][a-z0-9]+)*$/, "IDs must be lowercase and use -, _, or . separators");
5
+ var LabelSchema = z.string().trim().min(1).max(120);
6
+ var DescriptionSchema = z.string().trim().min(1).max(2e3);
7
+ var ColorTokenSchema = z.string().trim().min(1).max(50);
8
+ var IconNameSchema = z.string().trim().min(1).max(80);
9
+ var PathSchema = z.string().trim().startsWith("/").max(300);
10
+ var ReferenceIdsSchema = z.array(ModelIdSchema).default([]);
11
+ var DisplayMetadataSchema = z.object({
12
+ label: LabelSchema,
13
+ description: DescriptionSchema.optional(),
14
+ color: ColorTokenSchema.optional(),
15
+ icon: IconNameSchema.optional()
16
+ });
17
+ var TechStackEntrySchema = z.object({
18
+ /** Name of the external platform (e.g. "HubSpot", "Stripe", "Notion"). */
19
+ platform: z.string().trim().min(1).max(200),
20
+ /** Free-form description of what this integration is used for. */
21
+ purpose: z.string().trim().min(1).max(500),
22
+ /**
23
+ * Health of the credential backing this integration.
24
+ * - configured: credential present and valid
25
+ * - pending: not yet set up
26
+ * - expired: credential existed but has lapsed
27
+ * - missing: expected but not present
28
+ */
29
+ credentialStatus: z.enum(["configured", "pending", "expired", "missing"]),
30
+ /**
31
+ * Whether this integration is the primary system of record for its domain
32
+ * (e.g. HubSpot is SoR for contacts). Defaults to false.
33
+ */
34
+ isSystemOfRecord: z.boolean().default(false)
35
+ });
36
+ DisplayMetadataSchema.extend({
37
+ id: ModelIdSchema,
38
+ resourceId: z.string().trim().min(1).max(255),
39
+ resourceType: z.enum(["workflow", "agent", "trigger", "integration", "external", "human_checkpoint"]),
40
+ featureIds: ReferenceIdsSchema,
41
+ entityIds: ReferenceIdsSchema,
42
+ surfaceIds: ReferenceIdsSchema,
43
+ capabilityIds: ReferenceIdsSchema,
44
+ /** Optional tech-stack metadata for external-SaaS integrations. */
45
+ techStack: TechStackEntrySchema.optional()
46
+ });
47
+
48
+ // ../core/src/organization-model/domains/sales.ts
49
+ var SalesStageSemanticClassSchema = z.enum(["open", "active", "nurturing", "closed_won", "closed_lost"]);
50
+ var SalesStageSchema = DisplayMetadataSchema.extend({
51
+ id: ModelIdSchema,
52
+ order: z.number().int().min(0),
53
+ semanticClass: SalesStageSemanticClassSchema,
54
+ surfaceIds: ReferenceIdsSchema,
55
+ resourceIds: ReferenceIdsSchema
56
+ });
57
+ var SalesPipelineSchema = z.object({
58
+ id: ModelIdSchema,
59
+ label: z.string().trim().min(1).max(120),
60
+ description: DescriptionSchema.optional(),
61
+ entityId: ModelIdSchema,
62
+ stages: z.array(SalesStageSchema).min(1)
63
+ });
64
+ var OrganizationModelSalesSchema = z.object({
65
+ entityId: ModelIdSchema,
66
+ defaultPipelineId: ModelIdSchema,
67
+ pipelines: z.array(SalesPipelineSchema).min(1)
68
+ });
69
+ var DEFAULT_ORGANIZATION_MODEL_SALES = {
70
+ entityId: "crm.deal",
71
+ defaultPipelineId: "default",
72
+ pipelines: [
73
+ {
74
+ id: "default",
75
+ label: "Default Pipeline",
76
+ entityId: "crm.deal",
77
+ stages: [
78
+ {
79
+ id: "interested",
80
+ label: "Interested",
81
+ color: "blue",
82
+ order: 1,
83
+ semanticClass: "open",
84
+ surfaceIds: ["crm.pipeline"],
85
+ resourceIds: []
86
+ },
87
+ {
88
+ id: "proposal",
89
+ label: "Proposal",
90
+ color: "yellow",
91
+ order: 2,
92
+ semanticClass: "active",
93
+ surfaceIds: ["crm.pipeline"],
94
+ resourceIds: []
95
+ },
96
+ {
97
+ id: "closing",
98
+ label: "Closing",
99
+ color: "lime",
100
+ order: 3,
101
+ semanticClass: "active",
102
+ surfaceIds: ["crm.pipeline"],
103
+ resourceIds: []
104
+ },
105
+ {
106
+ id: "closed_won",
107
+ label: "Closed Won",
108
+ color: "green",
109
+ order: 4,
110
+ semanticClass: "closed_won",
111
+ surfaceIds: ["crm.pipeline"],
112
+ resourceIds: []
113
+ },
114
+ {
115
+ id: "closed_lost",
116
+ label: "Closed Lost",
117
+ color: "red",
118
+ order: 5,
119
+ semanticClass: "closed_lost",
120
+ surfaceIds: ["crm.pipeline"],
121
+ resourceIds: []
122
+ },
123
+ {
124
+ id: "nurturing",
125
+ label: "Nurturing",
126
+ color: "grape",
127
+ order: 6,
128
+ semanticClass: "nurturing",
129
+ surfaceIds: ["crm.pipeline"],
130
+ resourceIds: []
131
+ }
132
+ ]
133
+ }
134
+ ]
135
+ };
136
+ function findPipeline(definitions, pipelineKey) {
137
+ return definitions.find((def) => def.pipelineKey === pipelineKey);
138
+ }
139
+ var CRM_DISCOVERY_REPLIED_STATE = {
140
+ stateKey: "discovery_replied",
141
+ label: "Discovery Replied"
142
+ };
143
+ var CRM_DISCOVERY_LINK_SENT_STATE = {
144
+ stateKey: "discovery_link_sent",
145
+ label: "Discovery Link Sent"
146
+ };
147
+ var CRM_DISCOVERY_NUDGING_STATE = {
148
+ stateKey: "discovery_nudging",
149
+ label: "Discovery Nudging"
150
+ };
151
+ var CRM_DISCOVERY_BOOKING_CANCELLED_STATE = {
152
+ stateKey: "discovery_booking_cancelled",
153
+ label: "Discovery Booking Cancelled"
154
+ };
155
+ var CRM_PRIORITY_BUCKETS = [
156
+ { bucketKey: "needs_response", label: "Needs Response", rank: 10, color: "red" },
157
+ { bucketKey: "follow_up_due", label: "Follow-up Due", rank: 20, color: "orange" },
158
+ { bucketKey: "waiting", label: "Waiting", rank: 30, color: "blue" },
159
+ { bucketKey: "stale", label: "Stale", rank: 40, color: "gray" },
160
+ { bucketKey: "closed_low", label: "Closed", rank: 50, color: "dark" }
161
+ ];
162
+ var DEFAULT_CRM_PRIORITY_RULE_CONFIG = {
163
+ buckets: CRM_PRIORITY_BUCKETS,
164
+ closedStageKeys: ["closed_won", "closed_lost"],
165
+ followUpAfterDaysByStateKey: {
166
+ discovery_link_sent: 3,
167
+ discovery_nudging: 2,
168
+ reply_sent: 3,
169
+ followup_1_sent: 3,
170
+ followup_2_sent: 5,
171
+ followup_3_sent: 7
172
+ },
173
+ staleAfterDays: 14
174
+ };
175
+ var PENDING_STATE = { stateKey: "pending", label: "Pending" };
176
+ var ACQ_LIST_MEMBERS_LEAD_GEN_PIPELINE = {
177
+ pipelineKey: "lead-gen",
178
+ label: "Lead Generation",
179
+ entityKey: "acq.list-member",
180
+ stages: [
181
+ {
182
+ stageKey: "outreach",
183
+ label: "Outreach",
184
+ states: [
185
+ PENDING_STATE,
186
+ { stateKey: "personalized", label: "Personalized" },
187
+ { stateKey: "uploaded", label: "Uploaded" },
188
+ { stateKey: "interested", label: "Interested" }
189
+ ]
190
+ },
191
+ {
192
+ stageKey: "prospecting",
193
+ label: "Prospecting",
194
+ states: [
195
+ PENDING_STATE,
196
+ { stateKey: "discovered", label: "Discovered" },
197
+ { stateKey: "verified", label: "Verified" }
198
+ ]
199
+ },
200
+ {
201
+ stageKey: "qualification",
202
+ label: "Qualification",
203
+ states: [PENDING_STATE]
204
+ }
205
+ ]
206
+ };
207
+ var ACQ_LIST_COMPANIES_LEAD_GEN_PIPELINE = {
208
+ pipelineKey: "lead-gen",
209
+ label: "Lead Generation",
210
+ entityKey: "acq.list-company",
211
+ stages: [
212
+ {
213
+ stageKey: "outreach",
214
+ label: "Outreach",
215
+ states: [PENDING_STATE]
216
+ },
217
+ {
218
+ stageKey: "prospecting",
219
+ label: "Prospecting",
220
+ states: [
221
+ PENDING_STATE,
222
+ { stateKey: "populated", label: "Populated" },
223
+ { stateKey: "extracted", label: "Extracted" }
224
+ ]
225
+ },
226
+ {
227
+ stageKey: "qualification",
228
+ label: "Qualification",
229
+ states: [PENDING_STATE, { stateKey: "qualified", label: "Qualified" }]
230
+ }
231
+ ]
232
+ };
233
+ var LEAD_GEN_PIPELINE_DEFINITIONS = {
234
+ "acq.list-member": [ACQ_LIST_MEMBERS_LEAD_GEN_PIPELINE],
235
+ "acq.list-company": [ACQ_LIST_COMPANIES_LEAD_GEN_PIPELINE]
236
+ };
237
+ var LEAD_GEN_STAGE_CATALOG = {
238
+ // Prospecting — company population
239
+ scraped: {
240
+ key: "scraped",
241
+ label: "Scraped",
242
+ description: "Company was scraped from a source directory (Apify actor run).",
243
+ order: 1,
244
+ entity: "company"
245
+ },
246
+ populated: {
247
+ key: "populated",
248
+ label: "Populated",
249
+ description: "Company record populated with structured data from scrape results.",
250
+ order: 2,
251
+ entity: "company"
252
+ },
253
+ extracted: {
254
+ key: "extracted",
255
+ label: "Extracted",
256
+ description: "Website content extracted and parsed for company intelligence.",
257
+ order: 3,
258
+ entity: "company"
259
+ },
260
+ enriched: {
261
+ key: "enriched",
262
+ label: "Enriched",
263
+ description: "Company or contact enriched with third-party data (e.g. Tomba, Anymailfinder).",
264
+ order: 4,
265
+ entity: "company"
266
+ },
267
+ // Prospecting — contact discovery
268
+ discovered: {
269
+ key: "discovered",
270
+ label: "Discovered",
271
+ description: "Contact email address discovered via an email-discovery workflow.",
272
+ order: 5,
273
+ entity: "contact"
274
+ },
275
+ verified: {
276
+ key: "verified",
277
+ label: "Verified",
278
+ description: "Contact email address verified as deliverable (email verification workflow).",
279
+ order: 6,
280
+ entity: "contact"
281
+ },
282
+ // Qualification
283
+ qualified: {
284
+ key: "qualified",
285
+ label: "Qualified",
286
+ description: "Company passed the ICP qualification rubric (company-qualification workflow).",
287
+ order: 7,
288
+ entity: "company"
289
+ },
290
+ // Outreach
291
+ personalized: {
292
+ key: "personalized",
293
+ label: "Personalized",
294
+ description: "Outreach message personalized for the contact (Instantly personalization workflow).",
295
+ order: 8,
296
+ entity: "contact"
297
+ },
298
+ uploaded: {
299
+ key: "uploaded",
300
+ label: "Uploaded",
301
+ description: "Contact uploaded to an Instantly campaign for outreach.",
302
+ order: 9,
303
+ entity: "contact"
304
+ },
305
+ interested: {
306
+ key: "interested",
307
+ label: "Interested",
308
+ description: "Contact replied with a positive signal (Instantly reply-handler transition).",
309
+ order: 10,
310
+ entity: "contact"
311
+ }
312
+ };
313
+
314
+ export { CRM_DISCOVERY_BOOKING_CANCELLED_STATE, CRM_DISCOVERY_LINK_SENT_STATE, CRM_DISCOVERY_NUDGING_STATE, CRM_DISCOVERY_REPLIED_STATE, CRM_PRIORITY_BUCKETS, ColorTokenSchema, DEFAULT_CRM_PRIORITY_RULE_CONFIG, DEFAULT_ORGANIZATION_MODEL_SALES, DescriptionSchema, DisplayMetadataSchema, IconNameSchema, LEAD_GEN_PIPELINE_DEFINITIONS, LEAD_GEN_STAGE_CATALOG, LabelSchema, ModelIdSchema, OrganizationModelSalesSchema, PathSchema, ReferenceIdsSchema, findPipeline };