@churnkey/react 0.1.1 → 0.2.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.
- package/README.md +1 -1
- package/dist/{chunk-QTMZI5I2.js → chunk-CPCWJTSG.js} +3 -3
- package/dist/{chunk-QTMZI5I2.js.map → chunk-CPCWJTSG.js.map} +1 -1
- package/dist/{chunk-SIYJ4R4B.cjs → chunk-EHZJAQQ5.cjs} +39 -11
- package/dist/chunk-EHZJAQQ5.cjs.map +1 -0
- package/dist/{chunk-IFVMM2LB.js → chunk-OL5HQUE4.js} +4 -2
- package/dist/chunk-OL5HQUE4.js.map +1 -0
- package/dist/{chunk-GCQ75J4G.js → chunk-SXGORJOX.js} +39 -11
- package/dist/chunk-SXGORJOX.js.map +1 -0
- package/dist/{chunk-XU7KDCXO.cjs → chunk-YSNMTOAW.cjs} +6 -6
- package/dist/{chunk-XU7KDCXO.cjs.map → chunk-YSNMTOAW.cjs.map} +1 -1
- package/dist/{chunk-CPBEP4NW.cjs → chunk-ZEYUKGAR.cjs} +4 -2
- package/dist/chunk-ZEYUKGAR.cjs.map +1 -0
- package/dist/core.cjs +12 -12
- package/dist/core.d.cts +2 -2
- package/dist/core.d.ts +2 -2
- package/dist/core.js +2 -2
- package/dist/headless.cjs +3 -3
- package/dist/headless.d.cts +1 -1
- package/dist/headless.d.ts +1 -1
- package/dist/headless.js +2 -2
- package/dist/index.cjs +126 -147
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +48 -69
- package/dist/index.js.map +1 -1
- package/dist/{step-graph-ChdI-VXV.d.ts → step-graph-Cbi0DRHX.d.cts} +53 -4
- package/dist/{step-graph-ChdI-VXV.d.cts → step-graph-Cbi0DRHX.d.ts} +53 -4
- package/dist/styles.css +133 -66
- package/dist/styles.css.d.ts +1 -0
- package/package.json +14 -11
- package/dist/chunk-CPBEP4NW.cjs.map +0 -1
- package/dist/chunk-GCQ75J4G.js.map +0 -1
- package/dist/chunk-IFVMM2LB.js.map +0 -1
- package/dist/chunk-SIYJ4R4B.cjs.map +0 -1
package/dist/index.cjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var
|
|
3
|
+
var chunkYSNMTOAW_cjs = require('./chunk-YSNMTOAW.cjs');
|
|
4
|
+
var chunkEHZJAQQ5_cjs = require('./chunk-EHZJAQQ5.cjs');
|
|
5
|
+
var chunkZEYUKGAR_cjs = require('./chunk-ZEYUKGAR.cjs');
|
|
6
6
|
var react = require('react');
|
|
7
7
|
var jsxRuntime = require('react/jsx-runtime');
|
|
8
8
|
|
|
@@ -20,6 +20,8 @@ function RichText({ html, as = "p", className }) {
|
|
|
20
20
|
function DefaultConfirm({
|
|
21
21
|
title,
|
|
22
22
|
description,
|
|
23
|
+
losses,
|
|
24
|
+
lossesLabel,
|
|
23
25
|
confirmLabel,
|
|
24
26
|
goBackLabel,
|
|
25
27
|
periodEnd,
|
|
@@ -28,10 +30,18 @@ function DefaultConfirm({
|
|
|
28
30
|
isProcessing,
|
|
29
31
|
classNames
|
|
30
32
|
}) {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
const hasLosses = Array.isArray(losses) && losses.length > 0;
|
|
34
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkEHZJAQQ5_cjs.cn("ck-step ck-step-confirm", classNames?.root), children: [
|
|
35
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: chunkEHZJAQQ5_cjs.cn("ck-step-title", classNames?.title), children: title }),
|
|
36
|
+
description && /* @__PURE__ */ jsxRuntime.jsx(RichText, { html: description, className: chunkEHZJAQQ5_cjs.cn("ck-step-description", classNames?.description) }),
|
|
37
|
+
hasLosses && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkEHZJAQQ5_cjs.cn("ck-loss-block", classNames?.lossList), children: [
|
|
38
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkEHZJAQQ5_cjs.cn("ck-loss-label", classNames?.lossLabel), children: lossesLabel ?? "You'll lose access to:" }),
|
|
39
|
+
/* @__PURE__ */ jsxRuntime.jsx("ul", { className: "ck-loss-list", children: losses.map((item) => /* @__PURE__ */ jsxRuntime.jsxs("li", { className: chunkEHZJAQQ5_cjs.cn("ck-loss-item", classNames?.lossItem), children: [
|
|
40
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": true, className: chunkEHZJAQQ5_cjs.cn("ck-loss-bullet", classNames?.lossBullet), children: "\u25CF" }),
|
|
41
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: item })
|
|
42
|
+
] }, item)) })
|
|
43
|
+
] }),
|
|
44
|
+
periodEnd && /* @__PURE__ */ jsxRuntime.jsxs("p", { className: chunkEHZJAQQ5_cjs.cn("ck-period-end", classNames?.periodEndNotice), children: [
|
|
35
45
|
"Your access continues until ",
|
|
36
46
|
periodEnd,
|
|
37
47
|
"."
|
|
@@ -40,13 +50,13 @@ function DefaultConfirm({
|
|
|
40
50
|
"button",
|
|
41
51
|
{
|
|
42
52
|
type: "button",
|
|
43
|
-
className:
|
|
53
|
+
className: chunkEHZJAQQ5_cjs.cn("ck-button ck-button-danger", classNames?.confirmButton),
|
|
44
54
|
onClick: onConfirm,
|
|
45
55
|
disabled: isProcessing,
|
|
46
56
|
children: isProcessing ? "Processing..." : confirmLabel
|
|
47
57
|
}
|
|
48
58
|
),
|
|
49
|
-
/* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className:
|
|
59
|
+
/* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className: chunkEHZJAQQ5_cjs.cn("ck-button-link", classNames?.goBackButton), onClick: onGoBack, children: goBackLabel })
|
|
50
60
|
] });
|
|
51
61
|
}
|
|
52
62
|
function DefaultFeedback({
|
|
@@ -65,13 +75,13 @@ function DefaultFeedback({
|
|
|
65
75
|
const isUnderMin = hasMin && value.length > 0 && value.length < minLength;
|
|
66
76
|
const isValid = !required || value.length >= minLength;
|
|
67
77
|
const placeholderText = placeholder ?? (hasMin ? `At least ${minLength} characters\u2026` : "Type your thoughts\u2026");
|
|
68
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
69
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { className:
|
|
70
|
-
description && /* @__PURE__ */ jsxRuntime.jsx(RichText, { html: description, className:
|
|
78
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkEHZJAQQ5_cjs.cn("ck-step ck-step-feedback", classNames?.root), children: [
|
|
79
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: chunkEHZJAQQ5_cjs.cn("ck-step-title", classNames?.title), children: title }),
|
|
80
|
+
description && /* @__PURE__ */ jsxRuntime.jsx(RichText, { html: description, className: chunkEHZJAQQ5_cjs.cn("ck-step-description", classNames?.description) }),
|
|
71
81
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
72
82
|
"div",
|
|
73
83
|
{
|
|
74
|
-
className:
|
|
84
|
+
className: chunkEHZJAQQ5_cjs.cn(
|
|
75
85
|
"ck-feedback-field",
|
|
76
86
|
focused && "ck-feedback-field--focused",
|
|
77
87
|
isUnderMin && "ck-feedback-field--invalid"
|
|
@@ -80,7 +90,7 @@ function DefaultFeedback({
|
|
|
80
90
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
81
91
|
"textarea",
|
|
82
92
|
{
|
|
83
|
-
className:
|
|
93
|
+
className: chunkEHZJAQQ5_cjs.cn("ck-textarea", classNames?.textarea),
|
|
84
94
|
placeholder: placeholderText,
|
|
85
95
|
value,
|
|
86
96
|
onChange: (e) => onChange(e.target.value),
|
|
@@ -92,7 +102,7 @@ function DefaultFeedback({
|
|
|
92
102
|
hasMin && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
93
103
|
"div",
|
|
94
104
|
{
|
|
95
|
-
className:
|
|
105
|
+
className: chunkEHZJAQQ5_cjs.cn(
|
|
96
106
|
"ck-character-count",
|
|
97
107
|
isUnderMin && "ck-character-count--invalid",
|
|
98
108
|
classNames?.characterCount
|
|
@@ -111,7 +121,7 @@ function DefaultFeedback({
|
|
|
111
121
|
"button",
|
|
112
122
|
{
|
|
113
123
|
type: "button",
|
|
114
|
-
className:
|
|
124
|
+
className: chunkEHZJAQQ5_cjs.cn("ck-button ck-button-primary", classNames?.submitButton),
|
|
115
125
|
onClick: onSubmit,
|
|
116
126
|
disabled: !isValid,
|
|
117
127
|
children: "Continue"
|
|
@@ -130,21 +140,21 @@ function DefaultContactOffer({
|
|
|
130
140
|
}) {
|
|
131
141
|
const headline = title ?? offer.copy.headline;
|
|
132
142
|
const body = description ?? offer.copy.body;
|
|
133
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
134
|
-
headline && /* @__PURE__ */ jsxRuntime.jsx("h2", { className:
|
|
135
|
-
body && /* @__PURE__ */ jsxRuntime.jsx(RichText, { html: body, className:
|
|
136
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
143
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkEHZJAQQ5_cjs.cn("ck-step ck-step-offer", classNames?.root), children: [
|
|
144
|
+
headline && /* @__PURE__ */ jsxRuntime.jsx("h2", { className: chunkEHZJAQQ5_cjs.cn("ck-step-title", classNames?.title), children: headline }),
|
|
145
|
+
body && /* @__PURE__ */ jsxRuntime.jsx(RichText, { html: body, className: chunkEHZJAQQ5_cjs.cn("ck-step-description", classNames?.description) }),
|
|
146
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkEHZJAQQ5_cjs.cn("ck-offer-card", classNames?.card), children: [
|
|
137
147
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
138
148
|
"button",
|
|
139
149
|
{
|
|
140
150
|
type: "button",
|
|
141
|
-
className:
|
|
151
|
+
className: chunkEHZJAQQ5_cjs.cn("ck-button ck-button-primary", classNames?.acceptButton),
|
|
142
152
|
onClick: () => onAccept(),
|
|
143
153
|
disabled: isProcessing,
|
|
144
154
|
children: isProcessing ? "Processing..." : offer.copy.cta
|
|
145
155
|
}
|
|
146
156
|
),
|
|
147
|
-
/* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className:
|
|
157
|
+
/* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className: chunkEHZJAQQ5_cjs.cn("ck-button-link", classNames?.declineButton), onClick: onDecline, children: offer.copy.declineCta })
|
|
148
158
|
] })
|
|
149
159
|
] });
|
|
150
160
|
}
|
|
@@ -160,11 +170,11 @@ function DefaultDiscountOffer({
|
|
|
160
170
|
const o = offer;
|
|
161
171
|
const headline = title ?? offer.copy.headline;
|
|
162
172
|
const body = description ?? offer.copy.body;
|
|
163
|
-
const phrase =
|
|
164
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
165
|
-
headline && /* @__PURE__ */ jsxRuntime.jsx("h2", { className:
|
|
166
|
-
body && /* @__PURE__ */ jsxRuntime.jsx(RichText, { html: body, className:
|
|
167
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
173
|
+
const phrase = chunkEHZJAQQ5_cjs.discountPhrase(o);
|
|
174
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkEHZJAQQ5_cjs.cn("ck-step ck-step-offer", classNames?.root), children: [
|
|
175
|
+
headline && /* @__PURE__ */ jsxRuntime.jsx("h2", { className: chunkEHZJAQQ5_cjs.cn("ck-step-title", classNames?.title), children: headline }),
|
|
176
|
+
body && /* @__PURE__ */ jsxRuntime.jsx(RichText, { html: body, className: chunkEHZJAQQ5_cjs.cn("ck-step-description", classNames?.description) }),
|
|
177
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkEHZJAQQ5_cjs.cn("ck-offer-card", classNames?.card), children: [
|
|
168
178
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ck-offer-details ck-offer-discount", children: [
|
|
169
179
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "ck-offer-discount-eyebrow", children: "Limited-time offer" }),
|
|
170
180
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "ck-offer-discount-phrase", children: phrase })
|
|
@@ -173,13 +183,13 @@ function DefaultDiscountOffer({
|
|
|
173
183
|
"button",
|
|
174
184
|
{
|
|
175
185
|
type: "button",
|
|
176
|
-
className:
|
|
186
|
+
className: chunkEHZJAQQ5_cjs.cn("ck-button ck-button-primary", classNames?.acceptButton),
|
|
177
187
|
onClick: () => onAccept(),
|
|
178
188
|
disabled: isProcessing,
|
|
179
189
|
children: isProcessing ? "Processing..." : offer.copy.cta
|
|
180
190
|
}
|
|
181
191
|
),
|
|
182
|
-
/* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className:
|
|
192
|
+
/* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className: chunkEHZJAQQ5_cjs.cn("ck-button-link", classNames?.declineButton), onClick: onDecline, children: offer.copy.declineCta })
|
|
183
193
|
] })
|
|
184
194
|
] });
|
|
185
195
|
}
|
|
@@ -194,80 +204,47 @@ function DefaultPauseOffer({
|
|
|
194
204
|
}) {
|
|
195
205
|
const o = offer;
|
|
196
206
|
const max = Math.max(1, o.months);
|
|
197
|
-
const [months, setMonths] = react.useState(
|
|
207
|
+
const [months, setMonths] = react.useState(1);
|
|
198
208
|
const headline = title ?? offer.copy.headline;
|
|
199
209
|
const body = description ?? offer.copy.body;
|
|
200
|
-
const
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
/* @__PURE__ */ jsxRuntime.
|
|
209
|
-
|
|
210
|
-
const isSelected = m === months;
|
|
211
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
212
|
-
"button",
|
|
213
|
-
{
|
|
214
|
-
type: "button",
|
|
215
|
-
onClick: () => setMonths(m),
|
|
216
|
-
className: chunkSIYJ4R4B_cjs.cn("ck-pause-segment", isSelected && "ck-pause-segment--selected"),
|
|
217
|
-
children: [
|
|
218
|
-
m,
|
|
219
|
-
" ",
|
|
220
|
-
m === 1 ? "month" : "months"
|
|
221
|
-
]
|
|
222
|
-
},
|
|
223
|
-
m
|
|
224
|
-
);
|
|
225
|
-
}) }),
|
|
226
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ck-pause-resume", children: [
|
|
227
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
228
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "ck-pause-resume-label", children: "Billing resumes" }),
|
|
229
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "ck-pause-resume-date", children: resumeDate })
|
|
230
|
-
] }),
|
|
231
|
-
/* @__PURE__ */ jsxRuntime.jsx(CalendarIcon, {})
|
|
232
|
-
] })
|
|
233
|
-
] }),
|
|
234
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
210
|
+
const resume = /* @__PURE__ */ new Date();
|
|
211
|
+
resume.setMonth(resume.getMonth() + months);
|
|
212
|
+
const resumeDate = chunkEHZJAQQ5_cjs.formatMonthDayLong(resume);
|
|
213
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkEHZJAQQ5_cjs.cn("ck-step ck-step-offer", classNames?.root), children: [
|
|
214
|
+
headline && /* @__PURE__ */ jsxRuntime.jsx("h2", { className: chunkEHZJAQQ5_cjs.cn("ck-step-title", classNames?.title), children: headline }),
|
|
215
|
+
body && /* @__PURE__ */ jsxRuntime.jsx(RichText, { html: body, className: chunkEHZJAQQ5_cjs.cn("ck-step-description", classNames?.description) }),
|
|
216
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkEHZJAQQ5_cjs.cn("ck-offer-card ck-pause-card", classNames?.card), children: [
|
|
217
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "ck-pause-eyebrow", children: "We'll see you back on" }),
|
|
218
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "ck-pause-date", children: resumeDate }),
|
|
219
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkEHZJAQQ5_cjs.cn("ck-pause-chips", classNames?.pauseSlider), children: Array.from({ length: max }, (_, i) => i + 1).map((m) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
235
220
|
"button",
|
|
236
221
|
{
|
|
237
222
|
type: "button",
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
children:
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
223
|
+
onClick: () => setMonths(m),
|
|
224
|
+
className: chunkEHZJAQQ5_cjs.cn("ck-pause-chip", m === months && "ck-pause-chip--selected"),
|
|
225
|
+
"aria-pressed": m === months,
|
|
226
|
+
children: [
|
|
227
|
+
m,
|
|
228
|
+
" ",
|
|
229
|
+
m === 1 ? "month" : "months"
|
|
230
|
+
]
|
|
231
|
+
},
|
|
232
|
+
m
|
|
233
|
+
)) })
|
|
234
|
+
] }),
|
|
235
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
236
|
+
"button",
|
|
237
|
+
{
|
|
238
|
+
type: "button",
|
|
239
|
+
className: chunkEHZJAQQ5_cjs.cn("ck-button ck-button-primary", classNames?.acceptButton),
|
|
240
|
+
onClick: () => onAccept({ months }),
|
|
241
|
+
disabled: isProcessing,
|
|
242
|
+
children: isProcessing ? "Processing..." : offer.copy.cta
|
|
243
|
+
}
|
|
244
|
+
),
|
|
245
|
+
/* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className: chunkEHZJAQQ5_cjs.cn("ck-button-link", classNames?.declineButton), onClick: onDecline, children: offer.copy.declineCta })
|
|
246
246
|
] });
|
|
247
247
|
}
|
|
248
|
-
function CalendarIcon() {
|
|
249
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
250
|
-
"svg",
|
|
251
|
-
{
|
|
252
|
-
className: "ck-pause-resume-icon",
|
|
253
|
-
width: "18",
|
|
254
|
-
height: "18",
|
|
255
|
-
viewBox: "0 0 24 24",
|
|
256
|
-
fill: "none",
|
|
257
|
-
stroke: "currentColor",
|
|
258
|
-
strokeWidth: "1.75",
|
|
259
|
-
strokeLinecap: "round",
|
|
260
|
-
strokeLinejoin: "round",
|
|
261
|
-
"aria-hidden": "true",
|
|
262
|
-
children: [
|
|
263
|
-
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: "3", y: "4", width: "18", height: "18", rx: "3" }),
|
|
264
|
-
/* @__PURE__ */ jsxRuntime.jsx("line", { x1: "16", y1: "2", x2: "16", y2: "6" }),
|
|
265
|
-
/* @__PURE__ */ jsxRuntime.jsx("line", { x1: "8", y1: "2", x2: "8", y2: "6" }),
|
|
266
|
-
/* @__PURE__ */ jsxRuntime.jsx("line", { x1: "3", y1: "10", x2: "21", y2: "10" })
|
|
267
|
-
]
|
|
268
|
-
}
|
|
269
|
-
);
|
|
270
|
-
}
|
|
271
248
|
function Checkmark({ color = "currentColor", size = 14 }) {
|
|
272
249
|
return /* @__PURE__ */ jsxRuntime.jsx("svg", { width: size, height: size, viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M3 8.5L6.5 12L13 5", stroke: color, strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) });
|
|
273
250
|
}
|
|
@@ -287,10 +264,10 @@ function DefaultPlanChangeOffer({
|
|
|
287
264
|
const headline = title ?? offer.copy.headline;
|
|
288
265
|
const body = description ?? offer.copy.body;
|
|
289
266
|
const ctaLabel = isProcessing ? "Processing..." : selectedPlan?.name ? `Switch to ${selectedPlan.name}` : offer.copy.cta;
|
|
290
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
291
|
-
headline && /* @__PURE__ */ jsxRuntime.jsx("h2", { className:
|
|
292
|
-
body && /* @__PURE__ */ jsxRuntime.jsx(RichText, { html: body, className:
|
|
293
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
267
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkEHZJAQQ5_cjs.cn("ck-step ck-step-offer", classNames?.root), children: [
|
|
268
|
+
headline && /* @__PURE__ */ jsxRuntime.jsx("h2", { className: chunkEHZJAQQ5_cjs.cn("ck-step-title", classNames?.title), children: headline }),
|
|
269
|
+
body && /* @__PURE__ */ jsxRuntime.jsx(RichText, { html: body, className: chunkEHZJAQQ5_cjs.cn("ck-step-description", classNames?.description) }),
|
|
270
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkEHZJAQQ5_cjs.cn("ck-offer-card", classNames?.card), children: [
|
|
294
271
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "ck-offer-details ck-plan-grid", children: plans.map((plan) => {
|
|
295
272
|
const interval = plan.duration?.interval ?? "month";
|
|
296
273
|
const currency = plan.amount.currency ?? "USD";
|
|
@@ -300,13 +277,13 @@ function DefaultPlanChangeOffer({
|
|
|
300
277
|
{
|
|
301
278
|
type: "button",
|
|
302
279
|
onClick: () => setSelectedPlanId(plan.id),
|
|
303
|
-
className:
|
|
280
|
+
className: chunkEHZJAQQ5_cjs.cn("ck-plan-card", isSelected && "ck-plan-card--selected"),
|
|
304
281
|
"aria-pressed": isSelected,
|
|
305
282
|
children: [
|
|
306
283
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "ck-plan-name", children: plan.name ?? plan.id }),
|
|
307
284
|
plan.tagline && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ck-plan-tagline", children: plan.tagline }),
|
|
308
285
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ck-plan-price-row", children: [
|
|
309
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ck-plan-amount", children:
|
|
286
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ck-plan-amount", children: chunkEHZJAQQ5_cjs.formatPriceFromMinor(plan.amount.value, currency) }),
|
|
310
287
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ck-plan-period", children: [
|
|
311
288
|
"/",
|
|
312
289
|
interval
|
|
@@ -326,13 +303,13 @@ function DefaultPlanChangeOffer({
|
|
|
326
303
|
"button",
|
|
327
304
|
{
|
|
328
305
|
type: "button",
|
|
329
|
-
className:
|
|
306
|
+
className: chunkEHZJAQQ5_cjs.cn("ck-button ck-button-primary", classNames?.acceptButton),
|
|
330
307
|
onClick: () => selectedPlanId && onAccept({ planId: selectedPlanId }),
|
|
331
308
|
disabled: isProcessing || !selectedPlanId,
|
|
332
309
|
children: ctaLabel
|
|
333
310
|
}
|
|
334
311
|
),
|
|
335
|
-
/* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className:
|
|
312
|
+
/* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className: chunkEHZJAQQ5_cjs.cn("ck-button-link", classNames?.declineButton), onClick: onDecline, children: offer.copy.declineCta })
|
|
336
313
|
] })
|
|
337
314
|
] });
|
|
338
315
|
}
|
|
@@ -340,15 +317,15 @@ function DefaultRedirectOffer({ title, description, offer, onDecline, classNames
|
|
|
340
317
|
const url = offer.url;
|
|
341
318
|
const headline = title ?? offer.copy.headline;
|
|
342
319
|
const body = description ?? offer.copy.body;
|
|
343
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
344
|
-
headline && /* @__PURE__ */ jsxRuntime.jsx("h2", { className:
|
|
345
|
-
body && /* @__PURE__ */ jsxRuntime.jsx(RichText, { html: body, className:
|
|
346
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
320
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkEHZJAQQ5_cjs.cn("ck-step ck-step-offer", classNames?.root), children: [
|
|
321
|
+
headline && /* @__PURE__ */ jsxRuntime.jsx("h2", { className: chunkEHZJAQQ5_cjs.cn("ck-step-title", classNames?.title), children: headline }),
|
|
322
|
+
body && /* @__PURE__ */ jsxRuntime.jsx(RichText, { html: body, className: chunkEHZJAQQ5_cjs.cn("ck-step-description", classNames?.description) }),
|
|
323
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkEHZJAQQ5_cjs.cn("ck-offer-card", classNames?.card), children: [
|
|
347
324
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "ck-offer-details", children: /* @__PURE__ */ jsxRuntime.jsxs("a", { href: url, target: "_blank", rel: "noopener noreferrer", className: "ck-redirect-link", children: [
|
|
348
325
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: offer.copy.cta }),
|
|
349
326
|
/* @__PURE__ */ jsxRuntime.jsx(ExternalIcon, {})
|
|
350
327
|
] }) }),
|
|
351
|
-
/* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className:
|
|
328
|
+
/* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className: chunkEHZJAQQ5_cjs.cn("ck-button-link", classNames?.declineButton), onClick: onDecline, children: offer.copy.declineCta })
|
|
352
329
|
] })
|
|
353
330
|
] });
|
|
354
331
|
}
|
|
@@ -388,11 +365,11 @@ function DefaultTrialExtensionOffer({
|
|
|
388
365
|
const body = description ?? offer.copy.body;
|
|
389
366
|
const end = /* @__PURE__ */ new Date();
|
|
390
367
|
end.setDate(end.getDate() + o.days);
|
|
391
|
-
const newEnd =
|
|
392
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
393
|
-
headline && /* @__PURE__ */ jsxRuntime.jsx("h2", { className:
|
|
394
|
-
body && /* @__PURE__ */ jsxRuntime.jsx(RichText, { html: body, className:
|
|
395
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
368
|
+
const newEnd = chunkEHZJAQQ5_cjs.formatMonthDay(end);
|
|
369
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkEHZJAQQ5_cjs.cn("ck-step ck-step-offer", classNames?.root), children: [
|
|
370
|
+
headline && /* @__PURE__ */ jsxRuntime.jsx("h2", { className: chunkEHZJAQQ5_cjs.cn("ck-step-title", classNames?.title), children: headline }),
|
|
371
|
+
body && /* @__PURE__ */ jsxRuntime.jsx(RichText, { html: body, className: chunkEHZJAQQ5_cjs.cn("ck-step-description", classNames?.description) }),
|
|
372
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkEHZJAQQ5_cjs.cn("ck-offer-card", classNames?.card), children: [
|
|
396
373
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ck-offer-details ck-trial-block", children: [
|
|
397
374
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ck-trial-badge", children: [
|
|
398
375
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ck-trial-days", children: [
|
|
@@ -410,13 +387,13 @@ function DefaultTrialExtensionOffer({
|
|
|
410
387
|
"button",
|
|
411
388
|
{
|
|
412
389
|
type: "button",
|
|
413
|
-
className:
|
|
390
|
+
className: chunkEHZJAQQ5_cjs.cn("ck-button ck-button-primary", classNames?.acceptButton),
|
|
414
391
|
onClick: () => onAccept(),
|
|
415
392
|
disabled: isProcessing,
|
|
416
393
|
children: isProcessing ? "Processing..." : offer.copy.cta
|
|
417
394
|
}
|
|
418
395
|
),
|
|
419
|
-
/* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className:
|
|
396
|
+
/* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className: chunkEHZJAQQ5_cjs.cn("ck-button-link", classNames?.declineButton), onClick: onDecline, children: offer.copy.declineCta })
|
|
420
397
|
] })
|
|
421
398
|
] });
|
|
422
399
|
}
|
|
@@ -451,11 +428,11 @@ function pickOfferComponent(type, components) {
|
|
|
451
428
|
}
|
|
452
429
|
}
|
|
453
430
|
function DefaultSuccess({ title, description, onClose, classNames }) {
|
|
454
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
455
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className:
|
|
456
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { className:
|
|
457
|
-
description && /* @__PURE__ */ jsxRuntime.jsx(RichText, { html: description, className:
|
|
458
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "ck-success-actions", children: /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className:
|
|
431
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkEHZJAQQ5_cjs.cn("ck-step ck-step-success", classNames?.root), children: [
|
|
432
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkEHZJAQQ5_cjs.cn("ck-success-icon", classNames?.icon), children: /* @__PURE__ */ jsxRuntime.jsx(Checkmark, { color: "currentColor", size: 26 }) }),
|
|
433
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: chunkEHZJAQQ5_cjs.cn("ck-step-title", classNames?.title), children: title }),
|
|
434
|
+
description && /* @__PURE__ */ jsxRuntime.jsx(RichText, { html: description, className: chunkEHZJAQQ5_cjs.cn("ck-step-description", classNames?.description) }),
|
|
435
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "ck-success-actions", children: /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className: chunkEHZJAQQ5_cjs.cn("ck-button ck-button-primary", classNames?.closeButton), onClick: onClose, children: "Done" }) })
|
|
459
436
|
] });
|
|
460
437
|
}
|
|
461
438
|
function DefaultReasonButton({ reason, index, isSelected, onSelect }) {
|
|
@@ -468,7 +445,7 @@ function DefaultReasonButton({ reason, index, isSelected, onSelect }) {
|
|
|
468
445
|
"aria-checked": isSelected,
|
|
469
446
|
tabIndex: isSelected ? 0 : -1,
|
|
470
447
|
onClick: () => onSelect(reason.id),
|
|
471
|
-
className:
|
|
448
|
+
className: chunkEHZJAQQ5_cjs.cn("ck-reason-button", isSelected && "ck-reason-button--selected"),
|
|
472
449
|
children: [
|
|
473
450
|
/* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": true, className: "ck-reason-badge", children: isSelected ? /* @__PURE__ */ jsxRuntime.jsx(Checkmark, { color: "#fff", size: 12 }) : letter }),
|
|
474
451
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ck-reason-label", children: reason.label })
|
|
@@ -505,14 +482,14 @@ function DefaultSurvey({
|
|
|
505
482
|
},
|
|
506
483
|
[reasons, selectedReason, onSelectReason]
|
|
507
484
|
);
|
|
508
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
509
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { className:
|
|
510
|
-
description && /* @__PURE__ */ jsxRuntime.jsx(RichText, { html: description, className:
|
|
485
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkEHZJAQQ5_cjs.cn("ck-step ck-step-survey", classNames?.root), children: [
|
|
486
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: chunkEHZJAQQ5_cjs.cn("ck-step-title", classNames?.title), children: title }),
|
|
487
|
+
description && /* @__PURE__ */ jsxRuntime.jsx(RichText, { html: description, className: chunkEHZJAQQ5_cjs.cn("ck-step-description", classNames?.description) }),
|
|
511
488
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
512
489
|
"div",
|
|
513
490
|
{
|
|
514
491
|
ref: listRef,
|
|
515
|
-
className:
|
|
492
|
+
className: chunkEHZJAQQ5_cjs.cn("ck-reason-list", classNames?.reasonList),
|
|
516
493
|
role: "radiogroup",
|
|
517
494
|
"aria-label": title,
|
|
518
495
|
onKeyDown: handleKeyDown,
|
|
@@ -532,7 +509,7 @@ function DefaultSurvey({
|
|
|
532
509
|
"button",
|
|
533
510
|
{
|
|
534
511
|
type: "button",
|
|
535
|
-
className:
|
|
512
|
+
className: chunkEHZJAQQ5_cjs.cn("ck-button ck-button-primary", classNames?.continueButton),
|
|
536
513
|
onClick: onNext,
|
|
537
514
|
disabled: !selectedReason,
|
|
538
515
|
children: "Continue"
|
|
@@ -541,7 +518,7 @@ function DefaultSurvey({
|
|
|
541
518
|
] });
|
|
542
519
|
}
|
|
543
520
|
function DefaultBackButton({ onBack, className }) {
|
|
544
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("button", { type: "button", className:
|
|
521
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("button", { type: "button", className: chunkEHZJAQQ5_cjs.cn("ck-back-button", className), onClick: onBack, children: [
|
|
545
522
|
/* @__PURE__ */ jsxRuntime.jsx("svg", { width: "14", height: "14", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
546
523
|
"path",
|
|
547
524
|
{
|
|
@@ -556,7 +533,7 @@ function DefaultBackButton({ onBack, className }) {
|
|
|
556
533
|
] });
|
|
557
534
|
}
|
|
558
535
|
function DefaultCloseButton({ onClose, className }) {
|
|
559
|
-
return /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className:
|
|
536
|
+
return /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className: chunkEHZJAQQ5_cjs.cn("ck-close-button", className), onClick: onClose, "aria-label": "Close", children: /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M15 5L5 15M5 5l10 10", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" }) }) });
|
|
560
537
|
}
|
|
561
538
|
function trapFocus(container) {
|
|
562
539
|
const focusableSelector = [
|
|
@@ -628,7 +605,7 @@ function DefaultModal({ open, onClose, children, className }) {
|
|
|
628
605
|
"aria-modal": "true",
|
|
629
606
|
"aria-labelledby": "ck-dialog-title",
|
|
630
607
|
tabIndex: -1,
|
|
631
|
-
className:
|
|
608
|
+
className: chunkEHZJAQQ5_cjs.cn("ck-modal", className),
|
|
632
609
|
children
|
|
633
610
|
}
|
|
634
611
|
)
|
|
@@ -654,7 +631,7 @@ function useColorScheme(preference) {
|
|
|
654
631
|
return system;
|
|
655
632
|
}
|
|
656
633
|
function CancelFlow(props) {
|
|
657
|
-
const { machine, state, isLoading, loadError, retry } =
|
|
634
|
+
const { machine, state, isLoading, loadError, retry } = chunkYSNMTOAW_cjs.useCancelFlowMachine(props);
|
|
658
635
|
if (isLoading || loadError) {
|
|
659
636
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
660
637
|
LoadStatus,
|
|
@@ -691,7 +668,7 @@ function LoadStatus({
|
|
|
691
668
|
onRetry
|
|
692
669
|
}) {
|
|
693
670
|
const scheme = useColorScheme(appearance?.colorScheme);
|
|
694
|
-
const appearanceStyle =
|
|
671
|
+
const appearanceStyle = chunkEHZJAQQ5_cjs.appearanceToStyle(appearance);
|
|
695
672
|
const Modal = components?.Modal ?? DefaultModal;
|
|
696
673
|
const CloseButton = components?.CloseButton ?? DefaultCloseButton;
|
|
697
674
|
const handleClose = onClose ?? (() => {
|
|
@@ -744,7 +721,7 @@ function LoadStatus({
|
|
|
744
721
|
}
|
|
745
722
|
function FlowShell({ machine, state, appearance, classNames, components, customComponents }) {
|
|
746
723
|
const scheme = useColorScheme(appearance?.colorScheme);
|
|
747
|
-
const appearanceStyle =
|
|
724
|
+
const appearanceStyle = chunkEHZJAQQ5_cjs.appearanceToStyle(appearance);
|
|
748
725
|
const Modal = components?.Modal ?? DefaultModal;
|
|
749
726
|
const CloseButton = components?.CloseButton ?? DefaultCloseButton;
|
|
750
727
|
const BackButton = components?.BackButton ?? DefaultBackButton;
|
|
@@ -771,7 +748,7 @@ function StepRenderer({
|
|
|
771
748
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
772
749
|
Survey,
|
|
773
750
|
{
|
|
774
|
-
title: config?.title ??
|
|
751
|
+
title: config?.title ?? chunkEHZJAQQ5_cjs.defaultTitles.survey,
|
|
775
752
|
description: config?.description,
|
|
776
753
|
reasons: machine.reasons,
|
|
777
754
|
selectedReason: state.selectedReason,
|
|
@@ -820,7 +797,7 @@ function StepRenderer({
|
|
|
820
797
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
821
798
|
Feedback,
|
|
822
799
|
{
|
|
823
|
-
title: config?.title ??
|
|
800
|
+
title: config?.title ?? chunkEHZJAQQ5_cjs.defaultTitles.feedback,
|
|
824
801
|
description: config?.description,
|
|
825
802
|
placeholder: config?.placeholder,
|
|
826
803
|
required: config?.required ?? false,
|
|
@@ -838,8 +815,10 @@ function StepRenderer({
|
|
|
838
815
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
839
816
|
Confirm,
|
|
840
817
|
{
|
|
841
|
-
title: config?.title ??
|
|
818
|
+
title: config?.title ?? chunkEHZJAQQ5_cjs.defaultTitles.confirm,
|
|
842
819
|
description: config?.description,
|
|
820
|
+
losses: config?.losses,
|
|
821
|
+
lossesLabel: config?.lossesLabel,
|
|
843
822
|
confirmLabel: config?.confirmLabel ?? "Cancel subscription",
|
|
844
823
|
goBackLabel: config?.goBackLabel ?? "Go back",
|
|
845
824
|
onConfirm: machine.cancel,
|
|
@@ -898,47 +877,47 @@ function UnregisteredStepFallback({ step, onSkip }) {
|
|
|
898
877
|
|
|
899
878
|
Object.defineProperty(exports, "useCancelFlow", {
|
|
900
879
|
enumerable: true,
|
|
901
|
-
get: function () { return
|
|
880
|
+
get: function () { return chunkYSNMTOAW_cjs.useCancelFlow; }
|
|
902
881
|
});
|
|
903
882
|
Object.defineProperty(exports, "BUILT_IN_STEP_TYPES", {
|
|
904
883
|
enumerable: true,
|
|
905
|
-
get: function () { return
|
|
884
|
+
get: function () { return chunkEHZJAQQ5_cjs.BUILT_IN_STEP_TYPES; }
|
|
906
885
|
});
|
|
907
886
|
Object.defineProperty(exports, "appearanceToStyle", {
|
|
908
887
|
enumerable: true,
|
|
909
|
-
get: function () { return
|
|
888
|
+
get: function () { return chunkEHZJAQQ5_cjs.appearanceToStyle; }
|
|
910
889
|
});
|
|
911
890
|
Object.defineProperty(exports, "calculateDiscountedPrice", {
|
|
912
891
|
enumerable: true,
|
|
913
|
-
get: function () { return
|
|
892
|
+
get: function () { return chunkEHZJAQQ5_cjs.calculateDiscountedPrice; }
|
|
914
893
|
});
|
|
915
894
|
Object.defineProperty(exports, "cn", {
|
|
916
895
|
enumerable: true,
|
|
917
|
-
get: function () { return
|
|
896
|
+
get: function () { return chunkEHZJAQQ5_cjs.cn; }
|
|
918
897
|
});
|
|
919
898
|
Object.defineProperty(exports, "defaultTitles", {
|
|
920
899
|
enumerable: true,
|
|
921
|
-
get: function () { return
|
|
900
|
+
get: function () { return chunkEHZJAQQ5_cjs.defaultTitles; }
|
|
922
901
|
});
|
|
923
902
|
Object.defineProperty(exports, "formatPrice", {
|
|
924
903
|
enumerable: true,
|
|
925
|
-
get: function () { return
|
|
904
|
+
get: function () { return chunkEHZJAQQ5_cjs.formatPrice; }
|
|
926
905
|
});
|
|
927
906
|
Object.defineProperty(exports, "AnalyticsClient", {
|
|
928
907
|
enumerable: true,
|
|
929
|
-
get: function () { return
|
|
908
|
+
get: function () { return chunkZEYUKGAR_cjs.AnalyticsClient; }
|
|
930
909
|
});
|
|
931
910
|
Object.defineProperty(exports, "CancelFlowMachine", {
|
|
932
911
|
enumerable: true,
|
|
933
|
-
get: function () { return
|
|
912
|
+
get: function () { return chunkZEYUKGAR_cjs.CancelFlowMachine; }
|
|
934
913
|
});
|
|
935
914
|
Object.defineProperty(exports, "ChurnkeyApi", {
|
|
936
915
|
enumerable: true,
|
|
937
|
-
get: function () { return
|
|
916
|
+
get: function () { return chunkZEYUKGAR_cjs.ChurnkeyApi; }
|
|
938
917
|
});
|
|
939
918
|
Object.defineProperty(exports, "decodeSessionToken", {
|
|
940
919
|
enumerable: true,
|
|
941
|
-
get: function () { return
|
|
920
|
+
get: function () { return chunkZEYUKGAR_cjs.decodeSessionToken; }
|
|
942
921
|
});
|
|
943
922
|
exports.CancelFlow = CancelFlow;
|
|
944
923
|
exports.DefaultBackButton = DefaultBackButton;
|