@carlonicora/nextjs-jsonapi 6.15.0 → 6.17.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 (118) hide show
  1. package/dist/{BlockNoteEditor-UIAX72XW.js → BlockNoteEditor-FAUTV5FW.js} +20 -20
  2. package/dist/{BlockNoteEditor-UIAX72XW.js.map → BlockNoteEditor-FAUTV5FW.js.map} +1 -1
  3. package/dist/{BlockNoteEditor-I3J6YYXK.mjs → BlockNoteEditor-IGUHTERQ.mjs} +5 -5
  4. package/dist/{BlockNoteViewer-HIUAJQRI.mjs → BlockNoteViewer-X4UEVI2A.mjs} +3 -3
  5. package/dist/{BlockNoteViewer-APBOPT4B.js → BlockNoteViewer-XYKFY77F.js} +4 -4
  6. package/dist/{BlockNoteViewer-APBOPT4B.js.map → BlockNoteViewer-XYKFY77F.js.map} +1 -1
  7. package/dist/EmailPurpose-DOsSqM5K.d.mts +3 -0
  8. package/dist/EmailPurpose-DOsSqM5K.d.ts +3 -0
  9. package/dist/billing/index.js +492 -492
  10. package/dist/billing/index.mjs +4 -4
  11. package/dist/{chunk-RT7XFGIN.js → chunk-4OCBNCKH.js} +1041 -999
  12. package/dist/chunk-4OCBNCKH.js.map +1 -0
  13. package/dist/{chunk-4XLDBOSE.js → chunk-A7Y5YW7Q.js} +1 -1
  14. package/dist/{chunk-4XLDBOSE.js.map → chunk-A7Y5YW7Q.js.map} +1 -1
  15. package/dist/{chunk-ZYSNJKOP.js → chunk-DFA566KY.js} +4 -4
  16. package/dist/{chunk-ZYSNJKOP.js.map → chunk-DFA566KY.js.map} +1 -1
  17. package/dist/{chunk-DJXSCARG.js → chunk-I5BQLY7V.js} +9 -9
  18. package/dist/{chunk-DJXSCARG.js.map → chunk-I5BQLY7V.js.map} +1 -1
  19. package/dist/{chunk-RFKSJIQB.mjs → chunk-KMPBSOFB.mjs} +138 -5
  20. package/dist/chunk-KMPBSOFB.mjs.map +1 -0
  21. package/dist/{chunk-UOTHRJD2.mjs → chunk-OKBJEIOP.mjs} +1 -1
  22. package/dist/chunk-OKBJEIOP.mjs.map +1 -0
  23. package/dist/{chunk-PMESKNKL.js → chunk-OO2DBP6L.js} +1106 -973
  24. package/dist/chunk-OO2DBP6L.js.map +1 -0
  25. package/dist/{chunk-RYY7USSW.mjs → chunk-RINMQQZH.mjs} +56 -14
  26. package/dist/{chunk-RYY7USSW.mjs.map → chunk-RINMQQZH.mjs.map} +1 -1
  27. package/dist/{chunk-HAW5PNJG.mjs → chunk-TY5YWBLL.mjs} +3 -3
  28. package/dist/{chunk-OUEYZOLB.mjs → chunk-YVKWACDP.mjs} +2 -2
  29. package/dist/client/index.js +5 -5
  30. package/dist/client/index.mjs +4 -4
  31. package/dist/components/index.d.mts +10 -3
  32. package/dist/components/index.d.ts +10 -3
  33. package/dist/components/index.js +5 -5
  34. package/dist/components/index.mjs +4 -4
  35. package/dist/contexts/index.js +5 -5
  36. package/dist/contexts/index.mjs +4 -4
  37. package/dist/core/index.d.mts +92 -7
  38. package/dist/core/index.d.ts +92 -7
  39. package/dist/core/index.js +7 -3
  40. package/dist/core/index.js.map +1 -1
  41. package/dist/core/index.mjs +6 -2
  42. package/dist/{email-automation-enrollment.fields-BZvF14qx.d.mts → email-automation-enrollment.fields-CPsgxLif.d.mts} +11 -1
  43. package/dist/{email-automation-enrollment.fields-Cp3VMzFq.d.ts → email-automation-enrollment.fields-CVicSamF.d.ts} +11 -1
  44. package/dist/email-automations/index.d.mts +19 -5
  45. package/dist/email-automations/index.d.ts +19 -5
  46. package/dist/email-automations/index.js +356 -129
  47. package/dist/email-automations/index.js.map +1 -1
  48. package/dist/email-automations/index.mjs +306 -79
  49. package/dist/email-automations/index.mjs.map +1 -1
  50. package/dist/features/analytics/index.js +121 -121
  51. package/dist/features/analytics/index.mjs +4 -4
  52. package/dist/features/analytics/server.js +5 -5
  53. package/dist/features/analytics/server.mjs +3 -3
  54. package/dist/features/blog/index.js +151 -151
  55. package/dist/features/blog/index.mjs +4 -4
  56. package/dist/features/blog/server.js +17 -17
  57. package/dist/features/blog/server.mjs +2 -2
  58. package/dist/features/help/index.js +38 -38
  59. package/dist/features/help/index.mjs +4 -4
  60. package/dist/features/tokenusage/index.js +127 -127
  61. package/dist/features/tokenusage/index.mjs +4 -4
  62. package/dist/index.d.mts +4 -3
  63. package/dist/index.d.ts +4 -3
  64. package/dist/index.js +8 -4
  65. package/dist/index.js.map +1 -1
  66. package/dist/index.mjs +7 -3
  67. package/dist/offline/index.js +14 -14
  68. package/dist/offline/index.mjs +1 -1
  69. package/dist/{referral-admin.interface-RVO-ZTJz.d.mts → referral-admin.interface-DTj4LzXx.d.mts} +3 -0
  70. package/dist/{referral-admin.interface-CnytdDaQ.d.ts → referral-admin.interface-DeSCw3Pp.d.ts} +3 -0
  71. package/dist/server/index.js +4 -4
  72. package/dist/server/index.mjs +3 -3
  73. package/messages/en.json +35 -3
  74. package/messages/it.json +35 -3
  75. package/package.json +1 -1
  76. package/src/core/index.ts +1 -0
  77. package/src/core/registry/ModuleRegistry.ts +1 -0
  78. package/src/features/email-automation/EmailAutomationCandidateModule.ts +12 -0
  79. package/src/features/email-automation/EmailAutomationModule.ts +1 -0
  80. package/src/features/email-automation/components/__tests__/EmailAutomationEditor.spec.tsx +74 -9
  81. package/src/features/email-automation/components/forms/EmailAutomationAddPersonDialog.tsx +226 -0
  82. package/src/features/email-automation/components/forms/EmailAutomationEditor.tsx +23 -0
  83. package/src/features/email-automation/components/forms/EmailStepEditor.tsx +7 -3
  84. package/src/features/email-automation/components/index.ts +1 -0
  85. package/src/features/email-automation/components/lists/EmailAutomationRecipientsList.tsx +38 -20
  86. package/src/features/email-automation/components/lists/EmailAutomationsList.tsx +1 -0
  87. package/src/features/email-automation/components/unsubscribe/EmailUnsubscribe.tsx +9 -4
  88. package/src/features/email-automation/data/EmailAutomation.ts +9 -0
  89. package/src/features/email-automation/data/EmailAutomationCandidate.ts +66 -0
  90. package/src/features/email-automation/data/EmailAutomationCandidateInterface.ts +19 -0
  91. package/src/features/email-automation/data/EmailAutomationEnrollment.ts +16 -2
  92. package/src/features/email-automation/data/EmailAutomationEnrollmentInterface.ts +7 -0
  93. package/src/features/email-automation/data/EmailAutomationInterface.ts +3 -0
  94. package/src/features/email-automation/data/EmailAutomationService.ts +53 -1
  95. package/src/features/email-automation/data/EmailPurpose.ts +1 -0
  96. package/src/features/email-automation/data/__tests__/email-automation-models.spec.ts +70 -0
  97. package/src/features/email-automation/data/email-automation.fields.ts +1 -0
  98. package/src/features/email-automation/data/index.ts +2 -0
  99. package/src/features/email-automation/hooks/useEmailAutomationTableStructure.tsx +19 -0
  100. package/src/features/email-automation/index.ts +2 -0
  101. package/src/features/email-blast/EmailBlastModule.ts +1 -0
  102. package/src/features/email-blast/components/forms/EmailBlastEditor.tsx +33 -4
  103. package/src/features/email-blast/components/lists/EmailBlastsList.tsx +1 -0
  104. package/src/features/email-blast/data/EmailBlast.ts +10 -1
  105. package/src/features/email-blast/data/EmailBlastInterface.ts +3 -0
  106. package/src/features/email-blast/data/__tests__/EmailBlast.spec.ts +18 -0
  107. package/src/features/email-blast/data/email-blast.fields.ts +1 -0
  108. package/src/features/email-blast/hooks/useEmailBlastTableStructure.tsx +15 -0
  109. package/src/features/notification/components/notifications/PushNotificationProvider.tsx +14 -2
  110. package/src/features/notification/components/notifications/__tests__/PushNotificationProvider.spec.tsx +11 -0
  111. package/dist/chunk-PMESKNKL.js.map +0 -1
  112. package/dist/chunk-RFKSJIQB.mjs.map +0 -1
  113. package/dist/chunk-RT7XFGIN.js.map +0 -1
  114. package/dist/chunk-UOTHRJD2.mjs.map +0 -1
  115. /package/dist/{BlockNoteEditor-I3J6YYXK.mjs.map → BlockNoteEditor-IGUHTERQ.mjs.map} +0 -0
  116. /package/dist/{BlockNoteViewer-HIUAJQRI.mjs.map → BlockNoteViewer-X4UEVI2A.mjs.map} +0 -0
  117. /package/dist/{chunk-HAW5PNJG.mjs.map → chunk-TY5YWBLL.mjs.map} +0 -0
  118. /package/dist/{chunk-OUEYZOLB.mjs.map → chunk-YVKWACDP.mjs.map} +0 -0
@@ -69,6 +69,8 @@ import {
69
69
  EMAIL_BLAST_SEGMENTS,
70
70
  EMAIL_BLAST_UNSUBSCRIBE_TYPE,
71
71
  EmailAutomation,
72
+ EmailAutomationCandidate,
73
+ EmailAutomationCandidateModule,
72
74
  EmailAutomationEnrollment,
73
75
  EmailAutomationEnrollmentFields,
74
76
  EmailAutomationEnrollmentModule,
@@ -297,7 +299,7 @@ import {
297
299
  validateCodiceFiscale,
298
300
  validateItalianTaxCode,
299
301
  validatePartitaIva
300
- } from "../chunk-RFKSJIQB.mjs";
302
+ } from "../chunk-KMPBSOFB.mjs";
301
303
  import {
302
304
  AbstractApiData,
303
305
  EndpointCreator,
@@ -306,7 +308,7 @@ import {
306
308
  ROOT_SYNC_ENDPOINT,
307
309
  RehydrationFactory,
308
310
  RootSync
309
- } from "../chunk-UOTHRJD2.mjs";
311
+ } from "../chunk-OKBJEIOP.mjs";
310
312
  import {
311
313
  CURRENT_USER_STORAGE_KEY
312
314
  } from "../chunk-AUD6ZLBB.mjs";
@@ -402,6 +404,8 @@ export {
402
404
  EMAIL_BLAST_UNSUBSCRIBE_TYPE,
403
405
  ENV,
404
406
  EmailAutomation,
407
+ EmailAutomationCandidate,
408
+ EmailAutomationCandidateModule,
405
409
  EmailAutomationEnrollment,
406
410
  EmailAutomationEnrollmentFields,
407
411
  EmailAutomationEnrollmentModule,
@@ -1,4 +1,5 @@
1
1
  import { A as ApiDataInterface } from './ApiDataInterface-BcZeXy5X.mjs';
2
+ import { E as EmailPurpose } from './EmailPurpose-DOsSqM5K.mjs';
2
3
 
3
4
  type EmailAutomationInput = {
4
5
  id: string;
@@ -7,6 +8,7 @@ type EmailAutomationInput = {
7
8
  exitTrigger?: string;
8
9
  replyTo?: string;
9
10
  isActive?: boolean;
11
+ purpose?: EmailPurpose;
10
12
  };
11
13
  interface EmailAutomationInterface extends ApiDataInterface {
12
14
  get name(): string;
@@ -14,6 +16,7 @@ interface EmailAutomationInterface extends ApiDataInterface {
14
16
  get exitTrigger(): string | undefined;
15
17
  get replyTo(): string | undefined;
16
18
  get isActive(): boolean;
19
+ get purpose(): EmailPurpose;
17
20
  get stepCount(): number;
18
21
  get activeCount(): number;
19
22
  get completedCount(): number;
@@ -21,6 +24,12 @@ interface EmailAutomationInterface extends ApiDataInterface {
21
24
  }
22
25
 
23
26
  type EmailAutomationEnrollmentStatus = "active" | "completed" | "unsubscribed" | "exited" | "failed";
27
+ /** Body of POST email-automations/:id/email-automation-enrollments (manual add). */
28
+ type EmailAutomationEnrollmentInput = {
29
+ id: string;
30
+ recipientType: "user" | "waitlist";
31
+ recipientId: string;
32
+ };
24
33
  interface EmailAutomationEnrollmentInterface extends ApiDataInterface {
25
34
  get email(): string;
26
35
  get name(): string | undefined;
@@ -62,6 +71,7 @@ interface EmailAutomationStepInterface extends ApiDataInterface {
62
71
 
63
72
  declare enum EmailAutomationFields {
64
73
  name = "name",
74
+ purpose = "purpose",
65
75
  trigger = "trigger",
66
76
  status = "status",
67
77
  steps = "steps",
@@ -79,4 +89,4 @@ declare enum EmailAutomationEnrollmentFields {
79
89
  sentCount = "sentCount"
80
90
  }
81
91
 
82
- export { type EmailAutomationInput as E, type EmailAutomationInterface as a, type EmailAutomationStepInput as b, type EmailAutomationStepInterface as c, type EmailAutomationEnrollmentStatus as d, type EmailAutomationEnrollmentInterface as e, type EmailAutomationTriggerInterface as f, EmailAutomationFields as g, EmailAutomationEnrollmentFields as h };
92
+ export { type EmailAutomationInput as E, type EmailAutomationInterface as a, type EmailAutomationStepInput as b, type EmailAutomationStepInterface as c, type EmailAutomationEnrollmentStatus as d, type EmailAutomationEnrollmentInput as e, type EmailAutomationEnrollmentInterface as f, type EmailAutomationTriggerInterface as g, EmailAutomationFields as h, EmailAutomationEnrollmentFields as i };
@@ -1,4 +1,5 @@
1
1
  import { A as ApiDataInterface } from './ApiDataInterface-BcZeXy5X.js';
2
+ import { E as EmailPurpose } from './EmailPurpose-DOsSqM5K.js';
2
3
 
3
4
  type EmailAutomationInput = {
4
5
  id: string;
@@ -7,6 +8,7 @@ type EmailAutomationInput = {
7
8
  exitTrigger?: string;
8
9
  replyTo?: string;
9
10
  isActive?: boolean;
11
+ purpose?: EmailPurpose;
10
12
  };
11
13
  interface EmailAutomationInterface extends ApiDataInterface {
12
14
  get name(): string;
@@ -14,6 +16,7 @@ interface EmailAutomationInterface extends ApiDataInterface {
14
16
  get exitTrigger(): string | undefined;
15
17
  get replyTo(): string | undefined;
16
18
  get isActive(): boolean;
19
+ get purpose(): EmailPurpose;
17
20
  get stepCount(): number;
18
21
  get activeCount(): number;
19
22
  get completedCount(): number;
@@ -21,6 +24,12 @@ interface EmailAutomationInterface extends ApiDataInterface {
21
24
  }
22
25
 
23
26
  type EmailAutomationEnrollmentStatus = "active" | "completed" | "unsubscribed" | "exited" | "failed";
27
+ /** Body of POST email-automations/:id/email-automation-enrollments (manual add). */
28
+ type EmailAutomationEnrollmentInput = {
29
+ id: string;
30
+ recipientType: "user" | "waitlist";
31
+ recipientId: string;
32
+ };
24
33
  interface EmailAutomationEnrollmentInterface extends ApiDataInterface {
25
34
  get email(): string;
26
35
  get name(): string | undefined;
@@ -62,6 +71,7 @@ interface EmailAutomationStepInterface extends ApiDataInterface {
62
71
 
63
72
  declare enum EmailAutomationFields {
64
73
  name = "name",
74
+ purpose = "purpose",
65
75
  trigger = "trigger",
66
76
  status = "status",
67
77
  steps = "steps",
@@ -79,4 +89,4 @@ declare enum EmailAutomationEnrollmentFields {
79
89
  sentCount = "sentCount"
80
90
  }
81
91
 
82
- export { type EmailAutomationInput as E, type EmailAutomationInterface as a, type EmailAutomationStepInput as b, type EmailAutomationStepInterface as c, type EmailAutomationEnrollmentStatus as d, type EmailAutomationEnrollmentInterface as e, type EmailAutomationTriggerInterface as f, EmailAutomationFields as g, EmailAutomationEnrollmentFields as h };
92
+ export { type EmailAutomationInput as E, type EmailAutomationInterface as a, type EmailAutomationStepInput as b, type EmailAutomationStepInterface as c, type EmailAutomationEnrollmentStatus as d, type EmailAutomationEnrollmentInput as e, type EmailAutomationEnrollmentInterface as f, type EmailAutomationTriggerInterface as g, EmailAutomationFields as h, EmailAutomationEnrollmentFields as i };
@@ -1,9 +1,10 @@
1
1
  import * as React from 'react';
2
2
  import { ReactNode } from 'react';
3
- import { a as EmailAutomationInterface, c as EmailAutomationStepInterface, b as EmailAutomationStepInput, f as EmailAutomationTriggerInterface, g as EmailAutomationFields, e as EmailAutomationEnrollmentInterface, h as EmailAutomationEnrollmentFields } from '../email-automation-enrollment.fields-BZvF14qx.mjs';
3
+ import { a as EmailAutomationInterface, c as EmailAutomationStepInterface, b as EmailAutomationStepInput, g as EmailAutomationTriggerInterface, h as EmailAutomationFields, f as EmailAutomationEnrollmentInterface, i as EmailAutomationEnrollmentFields } from '../email-automation-enrollment.fields-CPsgxLif.mjs';
4
4
  import { Node, Edge, NodeProps, EdgeProps } from '@xyflow/react';
5
5
  import { U as UseTableStructureHook } from '../types-70acd-8C.mjs';
6
6
  import '../ApiDataInterface-BcZeXy5X.mjs';
7
+ import '../EmailPurpose-DOsSqM5K.mjs';
7
8
  import '@tanstack/react-table';
8
9
  import '../types-Bq_UA8Lg.mjs';
9
10
  import 'lucide-react';
@@ -43,9 +44,10 @@ type EmailAutomationsListProps = {
43
44
  declare function EmailAutomationsList({ fullWidth }?: EmailAutomationsListProps): React.JSX.Element;
44
45
 
45
46
  /**
46
- * Read-only list of the people in this automation (owner decision 6: no row
47
- * actions). Rendered inside a tab, so it keeps its own bordered card (no
48
- * `fullWidth`), as PricesList does inside ProductContainer.
47
+ * List of the people in this automation (owner decision 6: no row actions; a
48
+ * person is added by hand through "Add person" in the filters). Rendered inside
49
+ * a tab, so it keeps its own bordered card (no `fullWidth`), as PricesList does
50
+ * inside ProductContainer.
49
51
  */
50
52
  declare function EmailAutomationRecipientsList(): React.JSX.Element;
51
53
 
@@ -80,6 +82,18 @@ type EmailStepEditorProps = {
80
82
  };
81
83
  declare function EmailStepEditor(props: EmailStepEditorProps): React.JSX.Element;
82
84
 
85
+ type EmailAutomationAddPersonDialogProps = {
86
+ automationId: string;
87
+ disabled: boolean;
88
+ onAdded: () => void;
89
+ };
90
+ /**
91
+ * "Add person" on the Recipients tab: searches users and waitlist entries and
92
+ * enrols the picked one. The API decides who is addable and why not; this
93
+ * dialog only shows it (addable rows first, then dimmed rows with the reason).
94
+ */
95
+ declare function EmailAutomationAddPersonDialog({ automationId, disabled, onAdded, }: EmailAutomationAddPersonDialogProps): React.JSX.Element;
96
+
83
97
  /**
84
98
  * Inline on/off for the automation page header, so pausing never needs the
85
99
  * editor sheet. Off holds every enrolment in place (spec § "Sending" 3).
@@ -308,4 +322,4 @@ declare const useEmailAutomationTableStructure: UseTableStructureHook<EmailAutom
308
322
 
309
323
  declare const useEmailAutomationEnrollmentTableStructure: UseTableStructureHook<EmailAutomationEnrollmentInterface, EmailAutomationEnrollmentFields>;
310
324
 
311
- export { type CanvasGraph, type CanvasStep, CanvasToolbar, DelayEdge, type DelayEdgeData, EmailAutomationActiveSwitch, EmailAutomationCanvas, EmailAutomationCanvasInspector, EmailAutomationCanvasTab, EmailAutomationContainer, type EmailAutomationContainerProps, type EmailAutomationContextType, EmailAutomationEditor, type EmailAutomationEditorProps, EmailAutomationProvider, type EmailAutomationProviderProps, EmailAutomationRecipientsList, type EmailAutomationStepCreateInput, type EmailAutomationStepUpdateInput, EmailAutomationsList, EmailAutomationsListContainer, EmailStepEditor, type EmailStepEditorProps, EmailStepNode, type EmailStepNodeData, EmailUnsubscribe, EmptyCanvas, LONG_PRESS_MOVE_TOLERANCE_PX, LONG_PRESS_MS, type LayoutEdge, type LayoutNode, type LayoutResult, STEP_NODE_HEIGHT, STEP_NODE_PREFIX, STEP_NODE_WIDTH, STEP_SOURCE_HANDLE_PREFIX, STEP_TARGET_HANDLE_PREFIX, TRIGGER_NODE_HEIGHT, TRIGGER_NODE_ID, TRIGGER_NODE_WIDTH, TRIGGER_SOURCE_HANDLE, TriggerNode, type TriggerNodeData, autoLayout, buildCanvasGraph, createLongPressTracker, findHeadStepId, useEmailAutomation, useEmailAutomationEnrollmentTableStructure, useEmailAutomationTableStructure, useUserClosedGuard };
325
+ export { type CanvasGraph, type CanvasStep, CanvasToolbar, DelayEdge, type DelayEdgeData, EmailAutomationActiveSwitch, EmailAutomationAddPersonDialog, type EmailAutomationAddPersonDialogProps, EmailAutomationCanvas, EmailAutomationCanvasInspector, EmailAutomationCanvasTab, EmailAutomationContainer, type EmailAutomationContainerProps, type EmailAutomationContextType, EmailAutomationEditor, type EmailAutomationEditorProps, EmailAutomationProvider, type EmailAutomationProviderProps, EmailAutomationRecipientsList, type EmailAutomationStepCreateInput, type EmailAutomationStepUpdateInput, EmailAutomationsList, EmailAutomationsListContainer, EmailStepEditor, type EmailStepEditorProps, EmailStepNode, type EmailStepNodeData, EmailUnsubscribe, EmptyCanvas, LONG_PRESS_MOVE_TOLERANCE_PX, LONG_PRESS_MS, type LayoutEdge, type LayoutNode, type LayoutResult, STEP_NODE_HEIGHT, STEP_NODE_PREFIX, STEP_NODE_WIDTH, STEP_SOURCE_HANDLE_PREFIX, STEP_TARGET_HANDLE_PREFIX, TRIGGER_NODE_HEIGHT, TRIGGER_NODE_ID, TRIGGER_NODE_WIDTH, TRIGGER_SOURCE_HANDLE, TriggerNode, type TriggerNodeData, autoLayout, buildCanvasGraph, createLongPressTracker, findHeadStepId, useEmailAutomation, useEmailAutomationEnrollmentTableStructure, useEmailAutomationTableStructure, useUserClosedGuard };
@@ -1,9 +1,10 @@
1
1
  import * as React from 'react';
2
2
  import { ReactNode } from 'react';
3
- import { a as EmailAutomationInterface, c as EmailAutomationStepInterface, b as EmailAutomationStepInput, f as EmailAutomationTriggerInterface, g as EmailAutomationFields, e as EmailAutomationEnrollmentInterface, h as EmailAutomationEnrollmentFields } from '../email-automation-enrollment.fields-Cp3VMzFq.js';
3
+ import { a as EmailAutomationInterface, c as EmailAutomationStepInterface, b as EmailAutomationStepInput, g as EmailAutomationTriggerInterface, h as EmailAutomationFields, f as EmailAutomationEnrollmentInterface, i as EmailAutomationEnrollmentFields } from '../email-automation-enrollment.fields-CVicSamF.js';
4
4
  import { Node, Edge, NodeProps, EdgeProps } from '@xyflow/react';
5
5
  import { U as UseTableStructureHook } from '../types-l8SFleXi.js';
6
6
  import '../ApiDataInterface-BcZeXy5X.js';
7
+ import '../EmailPurpose-DOsSqM5K.js';
7
8
  import '@tanstack/react-table';
8
9
  import '../types-bsm8Fp55.js';
9
10
  import 'lucide-react';
@@ -43,9 +44,10 @@ type EmailAutomationsListProps = {
43
44
  declare function EmailAutomationsList({ fullWidth }?: EmailAutomationsListProps): React.JSX.Element;
44
45
 
45
46
  /**
46
- * Read-only list of the people in this automation (owner decision 6: no row
47
- * actions). Rendered inside a tab, so it keeps its own bordered card (no
48
- * `fullWidth`), as PricesList does inside ProductContainer.
47
+ * List of the people in this automation (owner decision 6: no row actions; a
48
+ * person is added by hand through "Add person" in the filters). Rendered inside
49
+ * a tab, so it keeps its own bordered card (no `fullWidth`), as PricesList does
50
+ * inside ProductContainer.
49
51
  */
50
52
  declare function EmailAutomationRecipientsList(): React.JSX.Element;
51
53
 
@@ -80,6 +82,18 @@ type EmailStepEditorProps = {
80
82
  };
81
83
  declare function EmailStepEditor(props: EmailStepEditorProps): React.JSX.Element;
82
84
 
85
+ type EmailAutomationAddPersonDialogProps = {
86
+ automationId: string;
87
+ disabled: boolean;
88
+ onAdded: () => void;
89
+ };
90
+ /**
91
+ * "Add person" on the Recipients tab: searches users and waitlist entries and
92
+ * enrols the picked one. The API decides who is addable and why not; this
93
+ * dialog only shows it (addable rows first, then dimmed rows with the reason).
94
+ */
95
+ declare function EmailAutomationAddPersonDialog({ automationId, disabled, onAdded, }: EmailAutomationAddPersonDialogProps): React.JSX.Element;
96
+
83
97
  /**
84
98
  * Inline on/off for the automation page header, so pausing never needs the
85
99
  * editor sheet. Off holds every enrolment in place (spec § "Sending" 3).
@@ -308,4 +322,4 @@ declare const useEmailAutomationTableStructure: UseTableStructureHook<EmailAutom
308
322
 
309
323
  declare const useEmailAutomationEnrollmentTableStructure: UseTableStructureHook<EmailAutomationEnrollmentInterface, EmailAutomationEnrollmentFields>;
310
324
 
311
- export { type CanvasGraph, type CanvasStep, CanvasToolbar, DelayEdge, type DelayEdgeData, EmailAutomationActiveSwitch, EmailAutomationCanvas, EmailAutomationCanvasInspector, EmailAutomationCanvasTab, EmailAutomationContainer, type EmailAutomationContainerProps, type EmailAutomationContextType, EmailAutomationEditor, type EmailAutomationEditorProps, EmailAutomationProvider, type EmailAutomationProviderProps, EmailAutomationRecipientsList, type EmailAutomationStepCreateInput, type EmailAutomationStepUpdateInput, EmailAutomationsList, EmailAutomationsListContainer, EmailStepEditor, type EmailStepEditorProps, EmailStepNode, type EmailStepNodeData, EmailUnsubscribe, EmptyCanvas, LONG_PRESS_MOVE_TOLERANCE_PX, LONG_PRESS_MS, type LayoutEdge, type LayoutNode, type LayoutResult, STEP_NODE_HEIGHT, STEP_NODE_PREFIX, STEP_NODE_WIDTH, STEP_SOURCE_HANDLE_PREFIX, STEP_TARGET_HANDLE_PREFIX, TRIGGER_NODE_HEIGHT, TRIGGER_NODE_ID, TRIGGER_NODE_WIDTH, TRIGGER_SOURCE_HANDLE, TriggerNode, type TriggerNodeData, autoLayout, buildCanvasGraph, createLongPressTracker, findHeadStepId, useEmailAutomation, useEmailAutomationEnrollmentTableStructure, useEmailAutomationTableStructure, useUserClosedGuard };
325
+ export { type CanvasGraph, type CanvasStep, CanvasToolbar, DelayEdge, type DelayEdgeData, EmailAutomationActiveSwitch, EmailAutomationAddPersonDialog, type EmailAutomationAddPersonDialogProps, EmailAutomationCanvas, EmailAutomationCanvasInspector, EmailAutomationCanvasTab, EmailAutomationContainer, type EmailAutomationContainerProps, type EmailAutomationContextType, EmailAutomationEditor, type EmailAutomationEditorProps, EmailAutomationProvider, type EmailAutomationProviderProps, EmailAutomationRecipientsList, type EmailAutomationStepCreateInput, type EmailAutomationStepUpdateInput, EmailAutomationsList, EmailAutomationsListContainer, EmailStepEditor, type EmailStepEditorProps, EmailStepNode, type EmailStepNodeData, EmailUnsubscribe, EmptyCanvas, LONG_PRESS_MOVE_TOLERANCE_PX, LONG_PRESS_MS, type LayoutEdge, type LayoutNode, type LayoutResult, STEP_NODE_HEIGHT, STEP_NODE_PREFIX, STEP_NODE_WIDTH, STEP_SOURCE_HANDLE_PREFIX, STEP_TARGET_HANDLE_PREFIX, TRIGGER_NODE_HEIGHT, TRIGGER_NODE_ID, TRIGGER_NODE_WIDTH, TRIGGER_SOURCE_HANDLE, TriggerNode, type TriggerNodeData, autoLayout, buildCanvasGraph, createLongPressTracker, findHeadStepId, useEmailAutomation, useEmailAutomationEnrollmentTableStructure, useEmailAutomationTableStructure, useUserClosedGuard };