@odla-ai/chapter 0.48.3 → 0.50.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,8 +1,8 @@
1
1
  import * as preact from 'preact';
2
2
  import { ComponentChildren, JSX } from 'preact';
3
3
  import { CrmClient, Crm, CrmRecord, FieldType } from '@odla-ai/crm';
4
- import { a as Chapter, b as ChapterCopy, M as MemberContentDocument, E as EffectiveMemberContent, c as MemberContentTierAuthority } from '../../copy-context-CMupQL9h.js';
5
- export { C as ChapterCopyProvider, u as useChapterCopy } from '../../copy-context-CMupQL9h.js';
4
+ import { a as Chapter, b as ChapterCopy, M as MemberContentDocument, E as EffectiveMemberContent, c as MemberContentTierAuthority } from '../../copy-context-Ddat__H5.js';
5
+ export { C as ChapterCopyProvider, u as useChapterCopy } from '../../copy-context-Ddat__H5.js';
6
6
  import { CrmLifecycleAdapter, CrmWorkspaceMasterContext, CrmWorkspaceRecordContext, RecordPanelTab } from '@odla-ai/crm/ui';
7
7
 
8
8
  /** Normalized public auth configuration consumed by the Clerk gate. */
@@ -166,8 +166,12 @@ declare function defaultAdminWorkspaces(chapter: Chapter): AdminWorkspace[];
166
166
  /** Legacy default catalog. @deprecated Use defaultAdminWorkspaces. */
167
167
  declare function defaultAdminSections(chapter: Chapter): AdminSection[];
168
168
 
169
- /** Application-authoritative stage transitions used by Chapter collections. */
170
- declare function applicationLifecycleAdapter(ctx: Pick<AdminSectionContext, "getToken">, copy?: ChapterCopy["admin"]["records"]): CrmLifecycleAdapter;
169
+ /** Application-authoritative stage transitions used by Chapter collections. A
170
+ * person with no application may still move between the CRM's own pre-application
171
+ * stages; the server refuses any application status that is not earned. */
172
+ declare function applicationLifecycleAdapter(ctx: Pick<AdminSectionContext, "getToken"> & {
173
+ client?: CrmClient;
174
+ }, copy?: ChapterCopy["admin"]["records"]): CrmLifecycleAdapter;
171
175
 
172
176
  /** Configuration for the person-collection compatibility preset. */
173
177
  interface PeopleSectionOptions {
@@ -185,6 +189,8 @@ interface CollectionSectionOptions {
185
189
  lifecycle?: boolean;
186
190
  roles?: readonly string[];
187
191
  networkSharing?: boolean;
192
+ /** Stages owned by the application workflow. Defaults to Chapter's standard application statuses. */
193
+ applicationStages?: readonly string[];
188
194
  /** Give the collection list the full workspace width until a record opens. */
189
195
  collapseClosedDetail?: boolean;
190
196
  lifecycleAdapter?: (CrmLifecycleAdapter | ((ctx: AdminSectionContext) => CrmLifecycleAdapter));
@@ -275,6 +281,47 @@ interface RecordActionsProps {
275
281
  * actions the record supports. */
276
282
  declare function RecordActions({ getToken, record, roles, onChanged }: RecordActionsProps): preact.JSX.Element | null;
277
283
 
284
+ /** Props for {@link NamedSeatRecordPanel}. */
285
+ interface NamedSeatRecordPanelProps {
286
+ getToken: () => Promise<string | null>;
287
+ /** The purchaser's application; a recipient's own application has no seat panel. */
288
+ applicationId: string;
289
+ /** Only a super admin may see or refund a gifted seat; others see nothing. */
290
+ superAdmin: boolean;
291
+ onChanged?: () => void;
292
+ }
293
+ /** The purchaser's additional seat beside their billing: who it is for, where it stands, and the one manual refund. */
294
+ declare function NamedSeatRecordPanel(props: NamedSeatRecordPanelProps): preact.JSX.Element | null;
295
+
296
+ /** The membership workflow's own statuses. A person reaches them only through an application, never by hand. */
297
+ declare const APPLICATION_STAGES: readonly string[];
298
+ /** Props for {@link CandidateStagePanel}. */
299
+ interface CandidateStagePanelProps {
300
+ /** The CRM person pipeline as configured by the host. */
301
+ stages: readonly {
302
+ id: string;
303
+ label?: string;
304
+ }[];
305
+ current: string | null;
306
+ /** Stages owned by the application workflow; everything else is a pre-application stage an admin may set. */
307
+ applicationStages: readonly string[];
308
+ onMove: (to: string) => Promise<unknown>;
309
+ }
310
+ /** Stage control for a person with no linked application: invited people and candidates move only through the
311
+ * CRM's pre-application stages, on a chapter exactly as on the network owner. */
312
+ declare function CandidateStagePanel(props: CandidateStagePanelProps): preact.JSX.Element;
313
+
314
+ /** Props for {@link RecordAdmissionPanel}. */
315
+ interface RecordAdmissionPanelProps {
316
+ getToken: () => Promise<string | null>;
317
+ /** The record's email; the admission ledger is keyed by exact email. */
318
+ email: string | null;
319
+ onChanged?: () => void;
320
+ }
321
+ /** The invitation setting for one person, on the chapter itself: what their next signup will require, who set it,
322
+ * and a way for any admin to set or revoke it without leaving the record. Mirrors the leader's "Next invitation". */
323
+ declare function RecordAdmissionPanel(props: RecordAdmissionPanelProps): preact.JSX.Element;
324
+
278
325
  /** Privacy-bounded CRM record returned by a follower to one configured,
279
326
  * authenticated reader. */
280
327
  interface NetworkRecord {
@@ -537,4 +584,16 @@ declare function AdminNote({ children }: {
537
584
  children: ComponentChildren;
538
585
  }): JSX.Element;
539
586
 
540
- export { type AdminAccountMenuProps, type AdminBuilderLibraryData, type AdminChrome, type AdminMemberContentData, AdminNote, AdminPage, type AdminResource, type AdminRouteState, type AdminRouteTarget, type AdminRouting, type AdminSection, type AdminSectionContext, type AdminWorkspace, type AdminWorkspaceFrameProps, type AdminWorkspaceNavProps, AdmissionGrantsWorkspace, type AvailabilitySectionOptions, type BillingSectionOptions, BuilderLibraryAdmin, ChapterAdmin, type ChapterAdminAuthAdapter, type ChapterAdminAuthConfig, type ChapterAdminAuthLoadContext, type ChapterAdminProps, type ChapterAdminUser, type CollectionSectionOptions, type DashboardSectionOptions, type EmailSectionOptions, LeaderAdmissionAction, type LeaderAdmissionActionProps, LeaderNetworkOverview, type MeetingsSectionOptions, MemberContentAdmin, NetworkRecordEditor, NetworkRecordsWorkspace, NetworkShareActions, type NetworkShareActionsProps, Panel, type PeopleSectionOptions, RecordActions, type RecordActionsProps, ThemeWarning, adminFetch, adminRouteFromUrl, adminRouteHref, adminSectionFromUrl, adminSectionHref, admissionGrantsWorkspace, applicationLifecycleAdapter, availabilitySection, billingSection, builderLibrarySection, collectionSection, dashboardSection, defaultAdminSections, defaultAdminWorkspaces, emailSection, loadChapterAdminConfig, loadChapterAdminUser, meetingsSection, memberContentSection, networkRecordsWorkspace, peopleSection, useAdminResource };
587
+ /** Content-free reconciliation alerts and provider-verified retry controls for Chapter or network operators. */
588
+ declare function PaymentRecoveryQueue(props: {
589
+ getToken: () => Promise<string | null>;
590
+ scope?: "chapter" | "network";
591
+ }): preact.JSX.Element;
592
+
593
+ /** Named-seat commercial objects, already included once in network financial totals, with the super admin's manual refund.
594
+ * Seats are never refunded automatically; the button asks the membership authority to return one seat's payment. */
595
+ declare function NetworkSeatBilling(props: {
596
+ getToken: () => Promise<string | null>;
597
+ }): preact.JSX.Element;
598
+
599
+ export { APPLICATION_STAGES, type AdminAccountMenuProps, type AdminBuilderLibraryData, type AdminChrome, type AdminMemberContentData, AdminNote, AdminPage, type AdminResource, type AdminRouteState, type AdminRouteTarget, type AdminRouting, type AdminSection, type AdminSectionContext, type AdminWorkspace, type AdminWorkspaceFrameProps, type AdminWorkspaceNavProps, AdmissionGrantsWorkspace, type AvailabilitySectionOptions, type BillingSectionOptions, BuilderLibraryAdmin, CandidateStagePanel, type CandidateStagePanelProps, ChapterAdmin, type ChapterAdminAuthAdapter, type ChapterAdminAuthConfig, type ChapterAdminAuthLoadContext, type ChapterAdminProps, type ChapterAdminUser, type CollectionSectionOptions, type DashboardSectionOptions, type EmailSectionOptions, LeaderAdmissionAction, type LeaderAdmissionActionProps, LeaderNetworkOverview, type MeetingsSectionOptions, MemberContentAdmin, NamedSeatRecordPanel, type NamedSeatRecordPanelProps, NetworkRecordEditor, NetworkRecordsWorkspace, NetworkSeatBilling, NetworkShareActions, type NetworkShareActionsProps, Panel, PaymentRecoveryQueue, type PeopleSectionOptions, RecordActions, type RecordActionsProps, RecordAdmissionPanel, type RecordAdmissionPanelProps, ThemeWarning, adminFetch, adminRouteFromUrl, adminRouteHref, adminSectionFromUrl, adminSectionHref, admissionGrantsWorkspace, applicationLifecycleAdapter, availabilitySection, billingSection, builderLibrarySection, collectionSection, dashboardSection, defaultAdminSections, defaultAdminWorkspaces, emailSection, loadChapterAdminConfig, loadChapterAdminUser, meetingsSection, memberContentSection, networkRecordsWorkspace, peopleSection, useAdminResource };
@@ -1,17 +1,23 @@
1
1
  import {
2
+ APPLICATION_STAGES,
2
3
  AdminNote,
3
4
  AdminPage,
4
5
  AdmissionGrantsWorkspace,
5
6
  BuilderLibraryAdmin,
7
+ CandidateStagePanel,
6
8
  ChapterAdmin,
7
9
  LeaderAdmissionAction,
8
10
  LeaderNetworkOverview,
9
11
  MemberContentAdmin,
12
+ NamedSeatRecordPanel,
10
13
  NetworkRecordEditor,
11
14
  NetworkRecordsWorkspace,
15
+ NetworkSeatBilling,
12
16
  NetworkShareActions,
13
17
  Panel,
18
+ PaymentRecoveryQueue,
14
19
  RecordActions,
20
+ RecordAdmissionPanel,
15
21
  ThemeWarning,
16
22
  adminFetch,
17
23
  adminRouteFromUrl,
@@ -35,26 +41,32 @@ import {
35
41
  networkRecordsWorkspace,
36
42
  peopleSection,
37
43
  useAdminResource
38
- } from "../../chunk-MQ4OPZCS.js";
44
+ } from "../../chunk-4EA5V4JE.js";
39
45
  import {
40
46
  ChapterCopyProvider,
41
47
  useChapterCopy
42
- } from "../../chunk-4HS2JPE2.js";
48
+ } from "../../chunk-JXX4BFDP.js";
43
49
  export {
50
+ APPLICATION_STAGES,
44
51
  AdminNote,
45
52
  AdminPage,
46
53
  AdmissionGrantsWorkspace,
47
54
  BuilderLibraryAdmin,
55
+ CandidateStagePanel,
48
56
  ChapterAdmin,
49
57
  ChapterCopyProvider,
50
58
  LeaderAdmissionAction,
51
59
  LeaderNetworkOverview,
52
60
  MemberContentAdmin,
61
+ NamedSeatRecordPanel,
53
62
  NetworkRecordEditor,
54
63
  NetworkRecordsWorkspace,
64
+ NetworkSeatBilling,
55
65
  NetworkShareActions,
56
66
  Panel,
67
+ PaymentRecoveryQueue,
57
68
  RecordActions,
69
+ RecordAdmissionPanel,
58
70
  ThemeWarning,
59
71
  adminFetch,
60
72
  adminRouteFromUrl,
@@ -1,6 +1,6 @@
1
- export { AdminAccountMenuProps, AdminBuilderLibraryData, AdminChrome, AdminMemberContentData, AdminNote, AdminPage, AdminResource, AdminRouteState, AdminRouteTarget, AdminRouting, AdminSection, AdminSectionContext, AdminWorkspace, AdminWorkspaceFrameProps, AdminWorkspaceNavProps, AdmissionGrantsWorkspace, AvailabilitySectionOptions, BillingSectionOptions, BuilderLibraryAdmin, ChapterAdmin, ChapterAdminAuthAdapter, ChapterAdminAuthConfig, ChapterAdminAuthLoadContext, ChapterAdminProps, ChapterAdminUser, CollectionSectionOptions, DashboardSectionOptions, EmailSectionOptions, LeaderAdmissionAction, LeaderAdmissionActionProps, LeaderNetworkOverview, MeetingsSectionOptions, MemberContentAdmin, NetworkRecordEditor, NetworkRecordsWorkspace, NetworkShareActions, NetworkShareActionsProps, Panel, PeopleSectionOptions, RecordActions, RecordActionsProps, ThemeWarning, adminFetch, adminRouteFromUrl, adminRouteHref, adminSectionFromUrl, adminSectionHref, admissionGrantsWorkspace, applicationLifecycleAdapter, availabilitySection, billingSection, builderLibrarySection, collectionSection, dashboardSection, defaultAdminSections, defaultAdminWorkspaces, emailSection, loadChapterAdminConfig, loadChapterAdminUser, meetingsSection, memberContentSection, networkRecordsWorkspace, peopleSection, useAdminResource } from './admin/index.js';
2
- export { C as ChapterCopyProvider, u as useChapterCopy } from '../copy-context-CMupQL9h.js';
3
- export { ApiFn, BrandStyle, BrandStyleProps, GiftCodeRedeemResult, GiftCodeRedeemer, GiftCodeRedeemerCopy, GiftCodeRedeemerProps, GiftOfferCards, GiftOfferCardsMode, GiftOfferCardsProps, GiftPurchases, GiftPurchasesProps, JoinBookingSimulation, JoinConfig, JoinFlowState, JoinIsland, JoinIslandProps, JoinSimulation, JoinStepRenderContext, JoinSubmitRenderContext, JoinTier, JoinTierRenderContext, MEMBERSHIP_CARD_TOKEN_DEFAULTS, MemberContentArea, MemberContentAreaProps, MemberGifts, MemberProvisionalRenderContext, MembersArea, MembersAreaProps, MembershipCardTokenName, MembershipCards, MembershipCardsMode, MembershipCardsProps, PaymentPriceLines, PaymentStep, PaymentStepProps, PaymentStepSimulation, RescheduleProps, Rescheduler, Slot, SlotPicker, SlotPickerClasses, SlotPickerProps, SubResponse, TierPlaceholder, dayKey, dayLabel, fmtDate, fmtMoney, fullLabel, groupSlotsByDay, loadJoinResume, membershipApplicationHref, tierNeedsPayment, timeLabel, tzShort, useTierSelection } from './member/index.js';
1
+ export { APPLICATION_STAGES, AdminAccountMenuProps, AdminBuilderLibraryData, AdminChrome, AdminMemberContentData, AdminNote, AdminPage, AdminResource, AdminRouteState, AdminRouteTarget, AdminRouting, AdminSection, AdminSectionContext, AdminWorkspace, AdminWorkspaceFrameProps, AdminWorkspaceNavProps, AdmissionGrantsWorkspace, AvailabilitySectionOptions, BillingSectionOptions, BuilderLibraryAdmin, CandidateStagePanel, CandidateStagePanelProps, ChapterAdmin, ChapterAdminAuthAdapter, ChapterAdminAuthConfig, ChapterAdminAuthLoadContext, ChapterAdminProps, ChapterAdminUser, CollectionSectionOptions, DashboardSectionOptions, EmailSectionOptions, LeaderAdmissionAction, LeaderAdmissionActionProps, LeaderNetworkOverview, MeetingsSectionOptions, MemberContentAdmin, NamedSeatRecordPanel, NamedSeatRecordPanelProps, NetworkRecordEditor, NetworkRecordsWorkspace, NetworkSeatBilling, NetworkShareActions, NetworkShareActionsProps, Panel, PaymentRecoveryQueue, PeopleSectionOptions, RecordActions, RecordActionsProps, RecordAdmissionPanel, RecordAdmissionPanelProps, ThemeWarning, adminFetch, adminRouteFromUrl, adminRouteHref, adminSectionFromUrl, adminSectionHref, admissionGrantsWorkspace, applicationLifecycleAdapter, availabilitySection, billingSection, builderLibrarySection, collectionSection, dashboardSection, defaultAdminSections, defaultAdminWorkspaces, emailSection, loadChapterAdminConfig, loadChapterAdminUser, meetingsSection, memberContentSection, networkRecordsWorkspace, peopleSection, useAdminResource } from './admin/index.js';
2
+ export { C as ChapterCopyProvider, u as useChapterCopy } from '../copy-context-Ddat__H5.js';
3
+ export { ApiFn, BrandStyle, BrandStyleProps, GiftCodeRedeemResult, GiftCodeRedeemer, GiftCodeRedeemerCopy, GiftCodeRedeemerProps, GiftOfferCards, GiftOfferCardsMode, GiftOfferCardsProps, GiftPurchases, GiftPurchasesProps, JoinBookingSimulation, JoinConfig, JoinFlowState, JoinIsland, JoinIslandProps, JoinSimulation, JoinStepRenderContext, JoinSubmitRenderContext, JoinTier, JoinTierRenderContext, JourneyFrame, MEMBERSHIP_CARD_TOKEN_DEFAULTS, MemberContentArea, MemberContentAreaProps, MemberGifts, MemberProvisionalRenderContext, MemberRestart, MembersArea, MembersAreaProps, MembershipCardTokenName, MembershipCards, MembershipCardsMode, MembershipCardsProps, PaymentPriceLines, PaymentStep, PaymentStepProps, PaymentStepSimulation, RescheduleProps, Rescheduler, Slot, SlotPicker, SlotPickerClasses, SlotPickerProps, SubResponse, TierPlaceholder, dayKey, dayLabel, fmtDate, fmtMoney, fullLabel, groupSlotsByDay, loadJoinResume, membershipApplicationHref, tierNeedsPayment, timeLabel, tzShort, useTierSelection } from './member/index.js';
4
4
  import 'preact';
5
5
  import '@odla-ai/crm';
6
6
  import '@odla-ai/crm/ui';
package/dist/ui/index.js CHANGED
@@ -3,9 +3,11 @@ import {
3
3
  GiftOfferCards,
4
4
  GiftPurchases,
5
5
  JoinIsland,
6
+ JourneyFrame,
6
7
  MEMBERSHIP_CARD_TOKEN_DEFAULTS,
7
8
  MemberContentArea,
8
9
  MemberGifts,
10
+ MemberRestart,
9
11
  MembersArea,
10
12
  MembershipCards,
11
13
  PaymentStep,
@@ -24,21 +26,27 @@ import {
24
26
  timeLabel,
25
27
  tzShort,
26
28
  useTierSelection
27
- } from "../chunk-KZ2AXEZW.js";
29
+ } from "../chunk-OS46ZE46.js";
28
30
  import {
31
+ APPLICATION_STAGES,
29
32
  AdminNote,
30
33
  AdminPage,
31
34
  AdmissionGrantsWorkspace,
32
35
  BuilderLibraryAdmin,
36
+ CandidateStagePanel,
33
37
  ChapterAdmin,
34
38
  LeaderAdmissionAction,
35
39
  LeaderNetworkOverview,
36
40
  MemberContentAdmin,
41
+ NamedSeatRecordPanel,
37
42
  NetworkRecordEditor,
38
43
  NetworkRecordsWorkspace,
44
+ NetworkSeatBilling,
39
45
  NetworkShareActions,
40
46
  Panel,
47
+ PaymentRecoveryQueue,
41
48
  RecordActions,
49
+ RecordAdmissionPanel,
42
50
  ThemeWarning,
43
51
  adminFetch,
44
52
  adminRouteFromUrl,
@@ -62,39 +70,47 @@ import {
62
70
  networkRecordsWorkspace,
63
71
  peopleSection,
64
72
  useAdminResource
65
- } from "../chunk-MQ4OPZCS.js";
73
+ } from "../chunk-4EA5V4JE.js";
66
74
  import {
67
75
  BrandStyle,
68
76
  ChapterCopyProvider,
69
77
  useChapterCopy
70
- } from "../chunk-4HS2JPE2.js";
78
+ } from "../chunk-JXX4BFDP.js";
71
79
  import "../chunk-IVXVECKR.js";
72
80
  export {
81
+ APPLICATION_STAGES,
73
82
  AdminNote,
74
83
  AdminPage,
75
84
  AdmissionGrantsWorkspace,
76
85
  BrandStyle,
77
86
  BuilderLibraryAdmin,
87
+ CandidateStagePanel,
78
88
  ChapterAdmin,
79
89
  ChapterCopyProvider,
80
90
  GiftCodeRedeemer,
81
91
  GiftOfferCards,
82
92
  GiftPurchases,
83
93
  JoinIsland,
94
+ JourneyFrame,
84
95
  LeaderAdmissionAction,
85
96
  LeaderNetworkOverview,
86
97
  MEMBERSHIP_CARD_TOKEN_DEFAULTS,
87
98
  MemberContentAdmin,
88
99
  MemberContentArea,
89
100
  MemberGifts,
101
+ MemberRestart,
90
102
  MembersArea,
91
103
  MembershipCards,
104
+ NamedSeatRecordPanel,
92
105
  NetworkRecordEditor,
93
106
  NetworkRecordsWorkspace,
107
+ NetworkSeatBilling,
94
108
  NetworkShareActions,
95
109
  Panel,
110
+ PaymentRecoveryQueue,
96
111
  PaymentStep,
97
112
  RecordActions,
113
+ RecordAdmissionPanel,
98
114
  Rescheduler,
99
115
  SlotPicker,
100
116
  ThemeWarning,
@@ -1,7 +1,7 @@
1
1
  import * as preact from 'preact';
2
2
  import { ComponentChildren, JSX } from 'preact';
3
- import { d as MemberContentProjection, e as MemberContentPageProjection, b as ChapterCopy, f as ChapterBrand } from '../../copy-context-CMupQL9h.js';
4
- export { C as ChapterCopyProvider, u as useChapterCopy } from '../../copy-context-CMupQL9h.js';
3
+ import { d as MemberContentProjection, e as MemberContentPageProjection, b as ChapterCopy, f as ChapterBrand } from '../../copy-context-Ddat__H5.js';
4
+ export { C as ChapterCopyProvider, u as useChapterCopy } from '../../copy-context-Ddat__H5.js';
5
5
  import { FieldType, FieldConditions } from '@odla-ai/crm';
6
6
 
7
7
  /** A bookable slot: a start instant in epoch milliseconds. */
@@ -74,6 +74,9 @@ interface ApplicationSummary {
74
74
  paid: boolean;
75
75
  renewalAt: number | null;
76
76
  canceled: boolean;
77
+ membershipStatus?: string;
78
+ membershipGraceEndsAt?: number;
79
+ membershipAutoRenew?: boolean;
77
80
  /** Server-authoritative membership tier selected on this application. */
78
81
  tierId: string | null;
79
82
  }
@@ -152,6 +155,19 @@ interface RescheduleProps {
152
155
  * rebooks on pick. Degrades to a message when scheduling is unavailable. */
153
156
  declare function Rescheduler(props: RescheduleProps): preact.JSX.Element;
154
157
 
158
+ /** Verified recipient-visible invitation, without purchaser contact or billing credentials. */
159
+ interface JoinInvitation {
160
+ applicationId?: string;
161
+ seatId: string;
162
+ skuId: string;
163
+ purchaserName: string;
164
+ recipientName: string;
165
+ recipientEmail: string;
166
+ acceptanceEndsAt: number;
167
+ termEndsAt: number;
168
+ status: string;
169
+ }
170
+
155
171
  /** Deterministic, side-effect-free availability for a simulated join flow. */
156
172
  interface JoinBookingSimulation {
157
173
  slots: readonly Slot[];
@@ -236,6 +252,14 @@ interface JoinTier {
236
252
  blurb: string;
237
253
  /** True when the tier costs nothing, so the flow skips the payment step. */
238
254
  free: boolean;
255
+ /** Present when the network authority currently qualifies applicants as founding members at a reduced rate. */
256
+ founding?: {
257
+ cohortLabel: string;
258
+ dueTodayCents: number;
259
+ discountCents: number;
260
+ renewalCents: number;
261
+ discountDuration?: "first_term" | "while_active";
262
+ };
239
263
  }
240
264
  /**
241
265
  * What a site needs to render its own tier chooser.
@@ -388,6 +412,7 @@ type JoinFlowState = {
388
412
  /** Canonical flow state supplied to a site's per-step heading render slot. */
389
413
  interface JoinStepRenderContext {
390
414
  state: JoinFlowState;
415
+ invitation?: JoinInvitation;
391
416
  applicationId?: string;
392
417
  }
393
418
  /** Submission state supplied to a site's submit-control render slot. */
@@ -399,7 +424,9 @@ interface JoinSubmitRenderContext {
399
424
  interface JoinIslandProps {
400
425
  config: JoinConfig;
401
426
  /** Site application inputs; named values post to `/api/applications`. */
402
- children: ComponentChildren;
427
+ children: ComponentChildren | ((context: {
428
+ invitation: JoinInvitation | null;
429
+ }) => ComponentChildren);
403
430
  /** Where the confirmation links after booking. Default "/members/". */
404
431
  membersHref?: string;
405
432
  /** Resolved join copy. Defaults to `config.copy`, then the nearest provider. */
@@ -623,4 +650,17 @@ interface BrandStyleProps {
623
650
  * there is no brand to theme). */
624
651
  declare function BrandStyle(props: BrandStyleProps): preact.JSX.Element | null;
625
652
 
626
- export { type ApiFn, BrandStyle, type BrandStyleProps, type GiftCodeRedeemResult, GiftCodeRedeemer, type GiftCodeRedeemerCopy, type GiftCodeRedeemerProps, GiftOfferCards, type GiftOfferCardsMode, type GiftOfferCardsProps, GiftPurchases, type GiftPurchasesProps, type JoinBookingSimulation, type JoinConfig, type JoinFlowState, JoinIsland, type JoinIslandProps, type JoinSimulation, type JoinStepRenderContext, type JoinSubmitRenderContext, type JoinTier, type JoinTierRenderContext, MEMBERSHIP_CARD_TOKEN_DEFAULTS, MemberContentArea, type MemberContentAreaProps, MemberGifts, type MemberProvisionalRenderContext, MembersArea, type MembersAreaProps, type MembershipCardTokenName, MembershipCards, type MembershipCardsMode, type MembershipCardsProps, type PaymentPriceLines, PaymentStep, type PaymentStepProps, type PaymentStepSimulation, type RescheduleProps, Rescheduler, type Slot, SlotPicker, type SlotPickerClasses, type SlotPickerProps, type SubResponse, TierPlaceholder, dayKey, dayLabel, fmtDate, fmtMoney, fullLabel, groupSlotsByDay, loadJoinResume, membershipApplicationHref, tierNeedsPayment, timeLabel, tzShort, useTierSelection };
653
+ /** Returning members retain their account and approval and go directly to a fresh payment quote. */
654
+ declare function MemberRestart(props: {
655
+ api: ApiFn;
656
+ application: MemberApplication;
657
+ applicationId: string | null;
658
+ onComplete: () => Promise<void>;
659
+ }): preact.JSX.Element;
660
+
661
+ /** Consistent, responsive purchase and application presentation using the host's Chapter brand tokens. */
662
+ declare function JourneyFrame({ children }: {
663
+ children: ComponentChildren;
664
+ }): preact.JSX.Element;
665
+
666
+ export { type ApiFn, BrandStyle, type BrandStyleProps, type GiftCodeRedeemResult, GiftCodeRedeemer, type GiftCodeRedeemerCopy, type GiftCodeRedeemerProps, GiftOfferCards, type GiftOfferCardsMode, type GiftOfferCardsProps, GiftPurchases, type GiftPurchasesProps, type JoinBookingSimulation, type JoinConfig, type JoinFlowState, JoinIsland, type JoinIslandProps, type JoinSimulation, type JoinStepRenderContext, type JoinSubmitRenderContext, type JoinTier, type JoinTierRenderContext, JourneyFrame, MEMBERSHIP_CARD_TOKEN_DEFAULTS, MemberContentArea, type MemberContentAreaProps, MemberGifts, type MemberProvisionalRenderContext, MemberRestart, MembersArea, type MembersAreaProps, type MembershipCardTokenName, MembershipCards, type MembershipCardsMode, type MembershipCardsProps, type PaymentPriceLines, PaymentStep, type PaymentStepProps, type PaymentStepSimulation, type RescheduleProps, Rescheduler, type Slot, SlotPicker, type SlotPickerClasses, type SlotPickerProps, type SubResponse, TierPlaceholder, dayKey, dayLabel, fmtDate, fmtMoney, fullLabel, groupSlotsByDay, loadJoinResume, membershipApplicationHref, tierNeedsPayment, timeLabel, tzShort, useTierSelection };
@@ -3,9 +3,11 @@ import {
3
3
  GiftOfferCards,
4
4
  GiftPurchases,
5
5
  JoinIsland,
6
+ JourneyFrame,
6
7
  MEMBERSHIP_CARD_TOKEN_DEFAULTS,
7
8
  MemberContentArea,
8
9
  MemberGifts,
10
+ MemberRestart,
9
11
  MembersArea,
10
12
  MembershipCards,
11
13
  PaymentStep,
@@ -24,12 +26,12 @@ import {
24
26
  timeLabel,
25
27
  tzShort,
26
28
  useTierSelection
27
- } from "../../chunk-KZ2AXEZW.js";
29
+ } from "../../chunk-OS46ZE46.js";
28
30
  import {
29
31
  BrandStyle,
30
32
  ChapterCopyProvider,
31
33
  useChapterCopy
32
- } from "../../chunk-4HS2JPE2.js";
34
+ } from "../../chunk-JXX4BFDP.js";
33
35
  import "../../chunk-IVXVECKR.js";
34
36
  export {
35
37
  BrandStyle,
@@ -38,9 +40,11 @@ export {
38
40
  GiftOfferCards,
39
41
  GiftPurchases,
40
42
  JoinIsland,
43
+ JourneyFrame,
41
44
  MEMBERSHIP_CARD_TOKEN_DEFAULTS,
42
45
  MemberContentArea,
43
46
  MemberGifts,
47
+ MemberRestart,
44
48
  MembersArea,
45
49
  MembershipCards,
46
50
  PaymentStep,