@fantastic.dev/better-stripe 0.8.1 → 0.9.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/CHANGELOG.md +6 -0
- package/README.md +18 -2
- package/dist/component/_generated/component.d.ts +35 -0
- package/dist/component/_generated/component.d.ts.map +1 -1
- package/dist/component/connect/queries.d.ts +30 -1
- package/dist/component/connect/queries.d.ts.map +1 -1
- package/dist/component/connect/queries.js +19 -2
- package/dist/component/connect/queries.js.map +1 -1
- package/dist/react/workflows/AffiliatePayoutEditor.d.ts +41 -0
- package/dist/react/workflows/AffiliatePayoutEditor.d.ts.map +1 -0
- package/dist/react/workflows/AffiliatePayoutEditor.js +80 -0
- package/dist/react/workflows/AffiliatePayoutEditor.js.map +1 -0
- package/dist/react/workflows/AffiliateRateEditor.d.ts +26 -0
- package/dist/react/workflows/AffiliateRateEditor.d.ts.map +1 -0
- package/dist/react/workflows/AffiliateRateEditor.js +49 -0
- package/dist/react/workflows/AffiliateRateEditor.js.map +1 -0
- package/dist/react/workflows/CheckoutForms.d.ts +2 -0
- package/dist/react/workflows/CheckoutForms.d.ts.map +1 -1
- package/dist/react/workflows/CheckoutForms.js +22 -16
- package/dist/react/workflows/CheckoutForms.js.map +1 -1
- package/dist/react/workflows/IntegrationSwitch.js +2 -2
- package/dist/react/workflows/IntegrationSwitch.js.map +1 -1
- package/dist/react/workflows/Pagination.d.ts +32 -0
- package/dist/react/workflows/Pagination.d.ts.map +1 -0
- package/dist/react/workflows/Pagination.js +49 -0
- package/dist/react/workflows/Pagination.js.map +1 -0
- package/dist/react/workflows/PlanPricingEditor.d.ts +35 -0
- package/dist/react/workflows/PlanPricingEditor.d.ts.map +1 -0
- package/dist/react/workflows/PlanPricingEditor.js +64 -0
- package/dist/react/workflows/PlanPricingEditor.js.map +1 -0
- package/dist/react/workflows/index.d.ts +8 -0
- package/dist/react/workflows/index.d.ts.map +1 -1
- package/dist/react/workflows/index.js +4 -0
- package/dist/react/workflows/index.js.map +1 -1
- package/docs/react-workflows-audit.md +19 -0
- package/docs/react-workflows.md +89 -1
- package/package.json +5 -4
- package/src/component/_generated/component.ts +41 -0
- package/src/component/connect/queries.ts +26 -2
- package/src/component/earnings-totals.test.ts +13 -0
- package/src/component/transfers.test.ts +48 -0
- package/src/react/workflows/AffiliatePayoutEditor.test.tsx +90 -0
- package/src/react/workflows/AffiliatePayoutEditor.tsx +201 -0
- package/src/react/workflows/AffiliateRateEditor.test.tsx +36 -0
- package/src/react/workflows/AffiliateRateEditor.tsx +92 -0
- package/src/react/workflows/CheckoutForms.test.tsx +40 -0
- package/src/react/workflows/CheckoutForms.tsx +37 -16
- package/src/react/workflows/IntegrationSwitch.test.tsx +25 -0
- package/src/react/workflows/IntegrationSwitch.tsx +2 -2
- package/src/react/workflows/Pagination.test.tsx +53 -0
- package/src/react/workflows/Pagination.tsx +93 -0
- package/src/react/workflows/PlanPricingEditor.test.tsx +79 -0
- package/src/react/workflows/PlanPricingEditor.tsx +156 -0
- package/src/react/workflows/index.ts +22 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AffiliatePayoutEditor.js","sourceRoot":"","sources":["../../../src/react/workflows/AffiliatePayoutEditor.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
export type AffiliateRateUpdate = {
|
|
3
|
+
affiliateBasisPoints: number | null;
|
|
4
|
+
expectedVersion: number;
|
|
5
|
+
};
|
|
6
|
+
export type AffiliateRateEditorState = {
|
|
7
|
+
percentage: string;
|
|
8
|
+
setPercentage: (value: string) => void;
|
|
9
|
+
effectiveLabel: string;
|
|
10
|
+
isPending: boolean;
|
|
11
|
+
error: string | null;
|
|
12
|
+
message: string | undefined;
|
|
13
|
+
save: () => Promise<unknown>;
|
|
14
|
+
};
|
|
15
|
+
export type AffiliateRateEditorProps = {
|
|
16
|
+
scopeKey: string;
|
|
17
|
+
affiliateBasisPoints: number | null;
|
|
18
|
+
effectiveBasisPoints: number;
|
|
19
|
+
source: "plan" | "product" | "price" | "store" | "global" | "none";
|
|
20
|
+
version: number;
|
|
21
|
+
onSave: (update: AffiliateRateUpdate) => Promise<unknown>;
|
|
22
|
+
children?: (state: AffiliateRateEditorState) => ReactNode;
|
|
23
|
+
};
|
|
24
|
+
/** Unstyled nullable commission editor. Blank inherits the next applicable rate. */
|
|
25
|
+
export declare function AffiliateRateEditor(props: AffiliateRateEditorProps): import("react").JSX.Element;
|
|
26
|
+
//# sourceMappingURL=AffiliateRateEditor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AffiliateRateEditor.d.ts","sourceRoot":"","sources":["../../../src/react/workflows/AffiliateRateEditor.tsx"],"names":[],"mappings":"AACA,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAExD,MAAM,MAAM,mBAAmB,GAAG;IAChC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AACF,MAAM,MAAM,wBAAwB,GAAG;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CAC9B,CAAC;AACF,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IACnE,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1D,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,SAAS,CAAC;CAC3D,CAAC;AACF,oFAAoF;AACpF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,+BAiElE"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useId, useState } from "react";
|
|
4
|
+
import { useWorkflowAction } from "./useWorkflowAction.js";
|
|
5
|
+
/** Unstyled nullable commission editor. Blank inherits the next applicable rate. */
|
|
6
|
+
export function AffiliateRateEditor(props) {
|
|
7
|
+
const id = useId();
|
|
8
|
+
const scope = `${props.scopeKey}:${props.version}`;
|
|
9
|
+
const initial = {
|
|
10
|
+
scope,
|
|
11
|
+
percentage: props.affiliateBasisPoints === null
|
|
12
|
+
? ""
|
|
13
|
+
: String(props.affiliateBasisPoints / 100),
|
|
14
|
+
};
|
|
15
|
+
const [fields, setFields] = useState(initial);
|
|
16
|
+
if (fields.scope !== scope)
|
|
17
|
+
setFields(initial);
|
|
18
|
+
const action = useWorkflowAction(async () => {
|
|
19
|
+
const value = fields.percentage.trim();
|
|
20
|
+
const rate = value === "" ? null : Math.round(Number(value) * 100);
|
|
21
|
+
if (rate !== null &&
|
|
22
|
+
(!/^\d+(\.\d{1,2})?$/.test(value) ||
|
|
23
|
+
!Number.isSafeInteger(rate) ||
|
|
24
|
+
rate < 0 ||
|
|
25
|
+
rate > 10000))
|
|
26
|
+
throw new Error("Enter a percentage from 0 to 100 with at most two decimal places, or leave it blank to inherit.");
|
|
27
|
+
await props.onSave({
|
|
28
|
+
affiliateBasisPoints: rate,
|
|
29
|
+
expectedVersion: props.version,
|
|
30
|
+
});
|
|
31
|
+
return "Affiliate payout saved.";
|
|
32
|
+
}, props.scopeKey);
|
|
33
|
+
const state = {
|
|
34
|
+
percentage: fields.percentage,
|
|
35
|
+
setPercentage: (percentage) => setFields((previous) => ({ ...previous, percentage })),
|
|
36
|
+
effectiveLabel: `Effective payout: ${props.effectiveBasisPoints / 100}% from ${props.source === "plan" ? "store plan" : props.source}.`,
|
|
37
|
+
isPending: action.isPending,
|
|
38
|
+
error: action.error,
|
|
39
|
+
message: action.result,
|
|
40
|
+
save: action.run,
|
|
41
|
+
};
|
|
42
|
+
if (props.children)
|
|
43
|
+
return _jsx(_Fragment, { children: props.children(state) });
|
|
44
|
+
return (_jsxs("form", { onSubmit: (event) => {
|
|
45
|
+
event.preventDefault();
|
|
46
|
+
void state.save();
|
|
47
|
+
}, children: [_jsx("label", { htmlFor: id, children: "Affiliate payout (%)" }), _jsx("input", { id: id, inputMode: "decimal", value: state.percentage, disabled: state.isPending, onChange: (event) => state.setPercentage(event.target.value) }), _jsxs("p", { children: [state.effectiveLabel, " Leave blank to inherit."] }), state.error && _jsx("p", { role: "alert", children: state.error }), state.message && _jsx("p", { role: "status", children: state.message }), _jsx("button", { type: "submit", disabled: state.isPending, children: state.isPending ? "Saving…" : "Save payout" })] }));
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=AffiliateRateEditor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AffiliateRateEditor.js","sourceRoot":"","sources":["../../../src/react/workflows/AffiliateRateEditor.tsx"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,8 @@ import { type FormEvent, type ReactNode } from "react";
|
|
|
2
2
|
import { type Appearance } from "@stripe/stripe-js";
|
|
3
3
|
export type CheckoutFormState = {
|
|
4
4
|
email: string;
|
|
5
|
+
/** Stripe supplied this email when the session loaded; do not edit it. */
|
|
6
|
+
emailReadOnly?: boolean;
|
|
5
7
|
setEmail: (email: string) => void;
|
|
6
8
|
emailInputId: string;
|
|
7
9
|
isPending: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CheckoutForms.d.ts","sourceRoot":"","sources":["../../../src/react/workflows/CheckoutForms.tsx"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAc,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAgBhE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,cAAc,EAAE,SAAS,CAAC;IAC1B,MAAM,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC;CACrD,CAAC;AACF,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,SAAS,CAAC;CACtD,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG,mBAAmB,GAAG;IACpD,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC,CAAC;
|
|
1
|
+
{"version":3,"file":"CheckoutForms.d.ts","sourceRoot":"","sources":["../../../src/react/workflows/CheckoutForms.tsx"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAc,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAgBhE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,0EAA0E;IAC1E,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,cAAc,EAAE,SAAS,CAAC;IAC1B,MAAM,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC;CACrD,CAAC;AACF,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,SAAS,CAAC;CACtD,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG,mBAAmB,GAAG;IACpD,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC,CAAC;AAoCF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,iBAAiB,+BAU5D;AAuDD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,+BAYzD;AAiDD,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,+BAkBpD"}
|
|
@@ -7,33 +7,39 @@ import { PaymentElement, useCheckout, CheckoutFormProvider, CheckoutForm as Stri
|
|
|
7
7
|
import { CheckoutSessionProvider } from "../components/CheckoutSessionProvider.js";
|
|
8
8
|
import { StripeProvider } from "../components/StripeProvider.js";
|
|
9
9
|
import { useWorkflowAction } from "./useWorkflowAction.js";
|
|
10
|
-
function NativeForm({ email, setEmail, emailInputId, paymentElement, submit, isPending, error, }) {
|
|
11
|
-
return (_jsxs("form", { onSubmit: submit, "data-better-stripe": "checkout-form", "aria-busy": isPending, children: [_jsx("label", { htmlFor: emailInputId, children: "Email for your receipt" }), _jsx("input", { id: emailInputId, type: "email", name: "email", required: true, autoComplete: "email", value: email, onChange: (event) => setEmail(event.target.value) }), paymentElement, error && _jsx("p", { role: "alert", children: error }), _jsx("button", { type: "submit", disabled: isPending, children: isPending ? "Processing…" : "Pay" })] }));
|
|
10
|
+
function NativeForm({ email, emailReadOnly, setEmail, emailInputId, paymentElement, submit, isPending, error, }) {
|
|
11
|
+
return (_jsxs("form", { onSubmit: submit, "data-better-stripe": "checkout-form", "aria-busy": isPending, children: [_jsx("label", { htmlFor: emailInputId, children: "Email for your receipt" }), _jsx("input", { id: emailInputId, type: "email", name: "email", required: true, autoComplete: "email", value: email, readOnly: emailReadOnly, onChange: (event) => setEmail(event.target.value) }), paymentElement, error && _jsx("p", { role: "alert", children: error }), _jsx("button", { type: "submit", disabled: isPending, children: isPending ? "Processing…" : "Pay" })] }));
|
|
12
12
|
}
|
|
13
13
|
export function CheckoutElementsForm(props) {
|
|
14
14
|
return (_jsx(CheckoutSessionProvider, { publishableKey: props.publishableKey, clientSecret: props.clientSecret, appearance: props.appearance, children: _jsx(SessionForm, { ...props }) }));
|
|
15
15
|
}
|
|
16
|
-
function SessionForm(
|
|
16
|
+
function SessionForm(props) {
|
|
17
17
|
const checkout = useCheckout();
|
|
18
|
-
|
|
18
|
+
if (checkout.type === "loading")
|
|
19
|
+
return _jsx("p", { role: "status", children: "Loading checkout\u2026" });
|
|
20
|
+
if (checkout.type === "error")
|
|
21
|
+
return _jsx("p", { role: "alert", children: checkout.error.message });
|
|
22
|
+
return (_jsx(ReadySessionForm, { ...props, checkout: checkout.checkout }, checkout.checkout.id));
|
|
23
|
+
}
|
|
24
|
+
function ReadySessionForm({ checkout, email: initialEmail = "", returnUrl, onNavigate, renderForm, }) {
|
|
25
|
+
// Snapshot once per session: a guest update must not lock their input on retry.
|
|
26
|
+
const [sessionEmail] = useState(() => checkout.email);
|
|
27
|
+
const [email, setEmail] = useState(sessionEmail ?? initialEmail);
|
|
19
28
|
const emailInputId = useId();
|
|
20
29
|
const action = useWorkflowAction(async () => {
|
|
21
|
-
if (
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
const confirmed = await checkout.
|
|
30
|
+
if (!sessionEmail) {
|
|
31
|
+
const updated = await checkout.updateEmail(email);
|
|
32
|
+
if (updated.type === "error")
|
|
33
|
+
throw new Error(updated.error.message);
|
|
34
|
+
}
|
|
35
|
+
const confirmed = await checkout.confirm();
|
|
27
36
|
if (confirmed.type === "error")
|
|
28
37
|
throw new Error(confirmed.error.message);
|
|
29
|
-
onNavigate(returnUrl.replace("{CHECKOUT_SESSION_ID}", checkout.
|
|
38
|
+
onNavigate(returnUrl.replace("{CHECKOUT_SESSION_ID}", checkout.id));
|
|
30
39
|
});
|
|
31
|
-
if (checkout.type === "loading")
|
|
32
|
-
return _jsx("p", { role: "status", children: "Loading checkout\u2026" });
|
|
33
|
-
if (checkout.type === "error")
|
|
34
|
-
return _jsx("p", { role: "alert", children: checkout.error.message });
|
|
35
40
|
const state = {
|
|
36
|
-
email,
|
|
41
|
+
email: sessionEmail ?? email,
|
|
42
|
+
emailReadOnly: !!sessionEmail,
|
|
37
43
|
setEmail,
|
|
38
44
|
emailInputId,
|
|
39
45
|
paymentElement: _jsx(PaymentElement, {}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CheckoutForms.js","sourceRoot":"","sources":["../../../src/react/workflows/CheckoutForms.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,OAAO,EACL,KAAK,EACL,OAAO,EACP,QAAQ,GAGT,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,UAAU,EAAmB,MAAM,mBAAmB,CAAC;AAChE,OAAO,EACL,cAAc,IAAI,aAAa,EAC/B,WAAW,EACX,SAAS,GACV,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,cAAc,EACd,WAAW,EACX,oBAAoB,EACpB,YAAY,IAAI,kBAAkB,EAClC,eAAe,GAChB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"CheckoutForms.js","sourceRoot":"","sources":["../../../src/react/workflows/CheckoutForms.tsx"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useState } from "react";
|
|
4
4
|
const labels = {
|
|
5
|
-
headless: "
|
|
6
|
-
components: "
|
|
5
|
+
headless: "via API",
|
|
6
|
+
components: "BetterStripe components",
|
|
7
7
|
embedded: "Stripe embedded",
|
|
8
8
|
hosted: "Stripe hosted",
|
|
9
9
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IntegrationSwitch.js","sourceRoot":"","sources":["../../../src/react/workflows/IntegrationSwitch.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,OAAO,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AAEjD,MAAM,MAAM,GAAoC;IAC9C,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"IntegrationSwitch.js","sourceRoot":"","sources":["../../../src/react/workflows/IntegrationSwitch.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,OAAO,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AAEjD,MAAM,MAAM,GAAoC;IAC9C,QAAQ,EAAE,SAAS;IACnB,UAAU,EAAE,yBAAyB;IACrC,QAAQ,EAAE,iBAAiB;IAC3B,MAAM,EAAE,eAAe;CACxB,CAAC;AAcF,iFAAiF;AACjF,MAAM,UAAU,iBAAiB,CAAC,EAChC,KAAK,EACL,KAAK,EACL,YAAY,GAAG,UAAU,EACzB,aAAa,EACb,QAAQ,GACe;IACvB,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;IACvD,MAAM,OAAO,GAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAuB;SACvD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;SACnE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IACrD,MAAM,SAAS,GAAG,KAAK,IAAI,QAAQ,CAAC;IACpC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC;QACnE,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,UAAU,CAAC;IACf,MAAM,MAAM,GAAG,CAAC,IAAqB,EAAE,EAAE;QACvC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC;YAAE,OAAO;QAC7D,WAAW,CAAC,IAAI,CAAC,CAAC;QAClB,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC,CAAC;IACF,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC7E,IAAI,QAAQ;QAAE,OAAO,4BAAG,QAAQ,CAAC,KAAK,CAAC,GAAI,CAAC;IAC5C,OAAO,CACL,qCAAwB,oBAAoB,aAC1C,cAAK,IAAI,EAAC,OAAO,gBAAY,sBAAsB,YAChD,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACvB,iBAEE,IAAI,EAAC,QAAQ,kBACC,QAAQ,KAAK,MAAM,CAAC,KAAK,EACvC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,YAElC,MAAM,CAAC,KAAK,IALR,MAAM,CAAC,KAAK,CAMV,CACV,CAAC,GACE,EACL,KAAK,CAAC,OAAO,IACV,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
/** Cursor history for bounded server pages. Changing scope resets navigation. */
|
|
3
|
+
export declare function useCursorPagination(scopeKey: string): {
|
|
4
|
+
cursor: string | null;
|
|
5
|
+
page: number;
|
|
6
|
+
canPrevious: boolean;
|
|
7
|
+
previous: () => void;
|
|
8
|
+
next: (cursor: string) => void;
|
|
9
|
+
};
|
|
10
|
+
export type PaginationProps = {
|
|
11
|
+
page: number;
|
|
12
|
+
canPrevious: boolean;
|
|
13
|
+
canNext: boolean;
|
|
14
|
+
isLoading?: boolean;
|
|
15
|
+
onPrevious: () => void;
|
|
16
|
+
onNext: () => void;
|
|
17
|
+
previousLabel?: string;
|
|
18
|
+
nextLabel?: string;
|
|
19
|
+
pageLabel?: string;
|
|
20
|
+
children?: (state: {
|
|
21
|
+
pageLabel: string;
|
|
22
|
+
previousLabel: string;
|
|
23
|
+
nextLabel: string;
|
|
24
|
+
previousDisabled: boolean;
|
|
25
|
+
nextDisabled: boolean;
|
|
26
|
+
previous: () => void;
|
|
27
|
+
next: () => void;
|
|
28
|
+
}) => ReactNode;
|
|
29
|
+
};
|
|
30
|
+
/** Unstyled navigation with render props for application design systems. */
|
|
31
|
+
export declare function Pagination({ page, canPrevious, canNext, isLoading, onPrevious, onNext, previousLabel, nextLabel, pageLabel, children, }: PaginationProps): import("react").JSX.Element;
|
|
32
|
+
//# sourceMappingURL=Pagination.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Pagination.d.ts","sourceRoot":"","sources":["../../../src/react/workflows/Pagination.tsx"],"names":[],"mappings":"AACA,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEjD,iFAAiF;AACjF,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM;IAMhD,MAAM;IACN,IAAI;IACJ,WAAW;IACX,QAAQ;IAKR,IAAI,WAAW,MAAM;EAOxB;AACD,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,EAAE,OAAO,CAAC;QAC1B,YAAY,EAAE,OAAO,CAAC;QACtB,QAAQ,EAAE,MAAM,IAAI,CAAC;QACrB,IAAI,EAAE,MAAM,IAAI,CAAC;KAClB,KAAK,SAAS,CAAC;CACjB,CAAC;AACF,4EAA4E;AAC5E,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,WAAW,EACX,OAAO,EACP,SAAiB,EACjB,UAAU,EACV,MAAM,EACN,aAA0B,EAC1B,SAAkB,EAClB,SAA0B,EAC1B,QAAQ,GACT,EAAE,eAAe,+BAkCjB"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useState } from "react";
|
|
4
|
+
/** Cursor history for bounded server pages. Changing scope resets navigation. */
|
|
5
|
+
export function useCursorPagination(scopeKey) {
|
|
6
|
+
const initial = { scopeKey, cursors: [null], index: 0 };
|
|
7
|
+
const [state, setState] = useState(initial);
|
|
8
|
+
const current = state.scopeKey === scopeKey ? state : initial;
|
|
9
|
+
if (state.scopeKey !== scopeKey)
|
|
10
|
+
setState(initial);
|
|
11
|
+
return {
|
|
12
|
+
cursor: current.cursors[current.index],
|
|
13
|
+
page: current.index + 1,
|
|
14
|
+
canPrevious: current.index > 0,
|
|
15
|
+
previous: () => setState((previous) => ({
|
|
16
|
+
...previous,
|
|
17
|
+
index: Math.max(0, previous.index - 1),
|
|
18
|
+
})),
|
|
19
|
+
next: (cursor) => setState((previous) => ({
|
|
20
|
+
...previous,
|
|
21
|
+
cursors: [...previous.cursors.slice(0, previous.index + 1), cursor],
|
|
22
|
+
index: previous.index + 1,
|
|
23
|
+
})),
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/** Unstyled navigation with render props for application design systems. */
|
|
27
|
+
export function Pagination({ page, canPrevious, canNext, isLoading = false, onPrevious, onNext, previousLabel = "Previous", nextLabel = "Next", pageLabel = `Page ${page}`, children, }) {
|
|
28
|
+
const previousDisabled = isLoading || !canPrevious;
|
|
29
|
+
const nextDisabled = isLoading || !canNext;
|
|
30
|
+
const state = {
|
|
31
|
+
pageLabel,
|
|
32
|
+
previousLabel,
|
|
33
|
+
nextLabel,
|
|
34
|
+
previousDisabled,
|
|
35
|
+
nextDisabled,
|
|
36
|
+
previous: () => {
|
|
37
|
+
if (!previousDisabled)
|
|
38
|
+
onPrevious();
|
|
39
|
+
},
|
|
40
|
+
next: () => {
|
|
41
|
+
if (!nextDisabled)
|
|
42
|
+
onNext();
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
if (children)
|
|
46
|
+
return _jsx(_Fragment, { children: children(state) });
|
|
47
|
+
return (_jsxs("nav", { "aria-label": "Pagination", children: [_jsx("button", { type: "button", disabled: previousDisabled, onClick: state.previous, children: previousLabel }), _jsx("span", { role: "status", "aria-live": "polite", children: pageLabel }), _jsx("button", { type: "button", disabled: nextDisabled, onClick: state.next, children: nextLabel })] }));
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=Pagination.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Pagination.js","sourceRoot":"","sources":["../../../src/react/workflows/Pagination.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,OAAO,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AAEjD,iFAAiF;AACjF,MAAM,UAAU,mBAAmB,CAAC,QAAgB;IAClD,MAAM,OAAO,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,IAAI,CAAsB,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IAC7E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;IAC9D,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ;QAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IACnD,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;QACtC,IAAI,EAAE,OAAO,CAAC,KAAK,GAAG,CAAC;QACvB,WAAW,EAAE,OAAO,CAAC,KAAK,GAAG,CAAC;QAC9B,QAAQ,EAAE,GAAG,EAAE,CACb,QAAQ,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACtB,GAAG,QAAQ;YACX,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC;SACvC,CAAC,CAAC;QACL,IAAI,EAAE,CAAC,MAAc,EAAE,EAAE,CACvB,QAAQ,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACtB,GAAG,QAAQ;YACX,OAAO,EAAE,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC;YACnE,KAAK,EAAE,QAAQ,CAAC,KAAK,GAAG,CAAC;SAC1B,CAAC,CAAC;KACN,CAAC;AACJ,CAAC;AAqBD,4EAA4E;AAC5E,MAAM,UAAU,UAAU,CAAC,EACzB,IAAI,EACJ,WAAW,EACX,OAAO,EACP,SAAS,GAAG,KAAK,EACjB,UAAU,EACV,MAAM,EACN,aAAa,GAAG,UAAU,EAC1B,SAAS,GAAG,MAAM,EAClB,SAAS,GAAG,QAAQ,IAAI,EAAE,EAC1B,QAAQ,GACQ;IAChB,MAAM,gBAAgB,GAAG,SAAS,IAAI,CAAC,WAAW,CAAC;IACnD,MAAM,YAAY,GAAG,SAAS,IAAI,CAAC,OAAO,CAAC;IAC3C,MAAM,KAAK,GAAG;QACZ,SAAS;QACT,aAAa;QACb,SAAS;QACT,gBAAgB;QAChB,YAAY;QACZ,QAAQ,EAAE,GAAG,EAAE;YACb,IAAI,CAAC,gBAAgB;gBAAE,UAAU,EAAE,CAAC;QACtC,CAAC;QACD,IAAI,EAAE,GAAG,EAAE;YACT,IAAI,CAAC,YAAY;gBAAE,MAAM,EAAE,CAAC;QAC9B,CAAC;KACF,CAAC;IACF,IAAI,QAAQ;QAAE,OAAO,4BAAG,QAAQ,CAAC,KAAK,CAAC,GAAI,CAAC;IAC5C,OAAO,CACL,6BAAgB,YAAY,aAC1B,iBACE,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,EAAE,KAAK,CAAC,QAAQ,YAEtB,aAAa,GACP,EACT,eAAM,IAAI,EAAC,QAAQ,eAAW,QAAQ,YACnC,SAAS,GACL,EACP,iBAAQ,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,YAC9D,SAAS,GACH,IACL,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
export type PlanPricing = {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
monthlyAmount: number;
|
|
6
|
+
feeBasisPoints: number | null;
|
|
7
|
+
affiliateBasisPoints?: number | null;
|
|
8
|
+
version: number;
|
|
9
|
+
};
|
|
10
|
+
export type PlanPricingUpdate = {
|
|
11
|
+
monthlyAmount: number;
|
|
12
|
+
feeBasisPoints: number | null;
|
|
13
|
+
affiliateBasisPoints?: number | null;
|
|
14
|
+
expectedVersion: number;
|
|
15
|
+
};
|
|
16
|
+
export type PlanPricingEditorState = {
|
|
17
|
+
monthlyPrice: string;
|
|
18
|
+
saleFee: string;
|
|
19
|
+
affiliateShare: string;
|
|
20
|
+
setMonthlyPrice: (value: string) => void;
|
|
21
|
+
setSaleFee: (value: string) => void;
|
|
22
|
+
setAffiliateShare: (value: string) => void;
|
|
23
|
+
save: () => Promise<unknown>;
|
|
24
|
+
isPending: boolean;
|
|
25
|
+
error: string | null;
|
|
26
|
+
message: string | undefined;
|
|
27
|
+
};
|
|
28
|
+
export type PlanPricingEditorProps = {
|
|
29
|
+
plan: PlanPricing;
|
|
30
|
+
onSave: (update: PlanPricingUpdate) => Promise<unknown>;
|
|
31
|
+
children?: (state: PlanPricingEditorState) => ReactNode;
|
|
32
|
+
};
|
|
33
|
+
/** Unstyled store-plan pricing editor. Authorization and Stripe price creation belong on the server. */
|
|
34
|
+
export declare function PlanPricingEditor({ plan, onSave, children, }: PlanPricingEditorProps): import("react").JSX.Element;
|
|
35
|
+
//# sourceMappingURL=PlanPricingEditor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlanPricingEditor.d.ts","sourceRoot":"","sources":["../../../src/react/workflows/PlanPricingEditor.tsx"],"names":[],"mappings":"AACA,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAExD,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AACF,MAAM,MAAM,sBAAsB,GAAG;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B,CAAC;AACF,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACxD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,SAAS,CAAC;CACzD,CAAC;AACF,wGAAwG;AACxG,wBAAgB,iBAAiB,CAAC,EAChC,IAAI,EACJ,MAAM,EACN,QAAQ,GACT,EAAE,sBAAsB,+BAoHxB"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useId, useState } from "react";
|
|
4
|
+
import { useWorkflowAction } from "./useWorkflowAction.js";
|
|
5
|
+
/** Unstyled store-plan pricing editor. Authorization and Stripe price creation belong on the server. */
|
|
6
|
+
export function PlanPricingEditor({ plan, onSave, children, }) {
|
|
7
|
+
const id = useId();
|
|
8
|
+
const scope = `${plan.id}:${plan.version}`;
|
|
9
|
+
const initial = {
|
|
10
|
+
scope,
|
|
11
|
+
affiliateShare: String((plan.affiliateBasisPoints ?? 0) / 100),
|
|
12
|
+
monthlyPrice: (plan.monthlyAmount / 100).toFixed(2),
|
|
13
|
+
saleFee: plan.feeBasisPoints === null ? "" : String(plan.feeBasisPoints / 100),
|
|
14
|
+
};
|
|
15
|
+
const [fields, setFields] = useState(initial);
|
|
16
|
+
if (fields.scope !== scope)
|
|
17
|
+
setFields(initial);
|
|
18
|
+
const action = useWorkflowAction(async () => {
|
|
19
|
+
if (!/^\d+(\.\d{1,2})?$/.test(fields.monthlyPrice.trim()))
|
|
20
|
+
throw new Error("Enter a positive monthly price with at most two decimal places.");
|
|
21
|
+
const monthlyAmount = Math.round(Number(fields.monthlyPrice) * 100);
|
|
22
|
+
if (!Number.isSafeInteger(monthlyAmount) || monthlyAmount <= 0)
|
|
23
|
+
throw new Error("Enter a positive monthly price.");
|
|
24
|
+
const feeBasisPoints = fields.saleFee.trim() === ""
|
|
25
|
+
? null
|
|
26
|
+
: Math.round(Number(fields.saleFee) * 100);
|
|
27
|
+
if (feeBasisPoints !== null &&
|
|
28
|
+
(!/^\d+(\.\d{1,2})?$/.test(fields.saleFee.trim()) ||
|
|
29
|
+
!Number.isSafeInteger(feeBasisPoints) ||
|
|
30
|
+
feeBasisPoints < 0 ||
|
|
31
|
+
feeBasisPoints > 10000))
|
|
32
|
+
throw new Error("Enter a sale fee from 0 to 100%, with at most two decimal places, or leave it blank for Stripe processing only.");
|
|
33
|
+
const affiliateBasisPoints = Math.round(Number(fields.affiliateShare) * 100);
|
|
34
|
+
if (!/^\d+(\.\d{1,2})?$/.test(fields.affiliateShare.trim()) ||
|
|
35
|
+
!Number.isSafeInteger(affiliateBasisPoints) ||
|
|
36
|
+
affiliateBasisPoints < 0 ||
|
|
37
|
+
affiliateBasisPoints > 10000)
|
|
38
|
+
throw new Error("Enter an affiliate payout from 0 to 100%, with at most two decimal places.");
|
|
39
|
+
await onSave({
|
|
40
|
+
monthlyAmount,
|
|
41
|
+
feeBasisPoints,
|
|
42
|
+
affiliateBasisPoints,
|
|
43
|
+
expectedVersion: plan.version,
|
|
44
|
+
});
|
|
45
|
+
return "Pricing saved. Existing subscriptions keep their monthly price.";
|
|
46
|
+
}, plan.id);
|
|
47
|
+
const state = {
|
|
48
|
+
...fields,
|
|
49
|
+
setMonthlyPrice: (monthlyPrice) => setFields((previous) => ({ ...previous, monthlyPrice })),
|
|
50
|
+
setSaleFee: (saleFee) => setFields((previous) => ({ ...previous, saleFee })),
|
|
51
|
+
setAffiliateShare: (affiliateShare) => setFields((previous) => ({ ...previous, affiliateShare })),
|
|
52
|
+
save: action.run,
|
|
53
|
+
isPending: action.isPending,
|
|
54
|
+
error: action.error,
|
|
55
|
+
message: action.result,
|
|
56
|
+
};
|
|
57
|
+
if (children)
|
|
58
|
+
return _jsx(_Fragment, { children: children(state) });
|
|
59
|
+
return (_jsxs("form", { onSubmit: (event) => {
|
|
60
|
+
event.preventDefault();
|
|
61
|
+
void state.save();
|
|
62
|
+
}, "aria-label": `${plan.name} pricing`, children: [_jsx("h3", { children: plan.name }), _jsx("label", { htmlFor: `${id}-monthly`, children: "Monthly price (USD)" }), _jsx("input", { id: `${id}-monthly`, inputMode: "decimal", value: state.monthlyPrice, disabled: state.isPending, onChange: (event) => state.setMonthlyPrice(event.target.value) }), _jsx("label", { htmlFor: `${id}-fee`, children: "Sale fee (%)" }), _jsx("input", { id: `${id}-fee`, inputMode: "decimal", value: state.saleFee, disabled: state.isPending, onChange: (event) => state.setSaleFee(event.target.value) }), _jsx("p", { children: "Leave the sale fee blank for Stripe processing only. The seller always covers actual Stripe processing costs." }), _jsx("label", { htmlFor: `${id}-affiliate`, children: "Affiliate payout (%)" }), _jsx("input", { id: `${id}-affiliate`, inputMode: "decimal", value: state.affiliateShare, disabled: state.isPending, onChange: (event) => state.setAffiliateShare(event.target.value) }), _jsx("p", { children: "Percentage of a referred sale after the sale fee. The seller receives the remainder." }), state.error && _jsx("p", { role: "alert", children: state.error }), state.message && _jsx("p", { role: "status", children: state.message }), _jsx("button", { type: "submit", disabled: state.isPending, children: state.isPending ? "Saving…" : "Save pricing" })] }));
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=PlanPricingEditor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlanPricingEditor.js","sourceRoot":"","sources":["../../../src/react/workflows/PlanPricingEditor.tsx"],"names":[],"mappings":"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"}
|
|
@@ -67,4 +67,12 @@ export { PayoutOverview } from "./Overview.js";
|
|
|
67
67
|
export type { PayoutOverviewProps, PayoutOverviewRow } from "./Overview.js";
|
|
68
68
|
export { ChargeSummary, PaymentDetails } from "./Financials.js";
|
|
69
69
|
export type { ChargeSummaryProps, PaymentDetailsProps, PaymentDetailsPayment, PaymentDetailsState, } from "./Financials.js";
|
|
70
|
+
export { Pagination, useCursorPagination } from "./Pagination.js";
|
|
71
|
+
export type { PaginationProps } from "./Pagination.js";
|
|
72
|
+
export { PlanPricingEditor } from "./PlanPricingEditor.js";
|
|
73
|
+
export type { PlanPricing, PlanPricingUpdate, PlanPricingEditorState, PlanPricingEditorProps, } from "./PlanPricingEditor.js";
|
|
74
|
+
export { AffiliateRateEditor } from "./AffiliateRateEditor.js";
|
|
75
|
+
export type { AffiliateRateUpdate, AffiliateRateEditorProps, AffiliateRateEditorState, } from "./AffiliateRateEditor.js";
|
|
76
|
+
export { AffiliatePayoutEditor } from "./AffiliatePayoutEditor.js";
|
|
77
|
+
export type { AffiliateCommissionTerm, AffiliatePayoutEditorProps, AffiliatePayoutEditorState, AffiliatePayoutUpdate, } from "./AffiliatePayoutEditor.js";
|
|
70
78
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react/workflows/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EACV,aAAa,EACb,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,YAAY,GACb,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EACV,YAAY,EACZ,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,SAAS,GACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrE,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,YAAY,EACZ,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EACV,eAAe,EACf,qBAAqB,EACrB,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,KAAK,EACL,QAAQ,EACR,aAAa,EACb,aAAa,EACb,aAAa,GACd,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,uBAAuB,EACvB,OAAO,EACP,UAAU,EACV,SAAS,EACT,eAAe,EACf,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC5D,YAAY,EACV,aAAa,EACb,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,YAAY,EACZ,UAAU,EACV,WAAW,GACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC5D,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAC7D,YAAY,EACV,aAAa,EACb,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,GACd,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,oBAAoB,EACpB,gBAAgB,EAChB,qBAAqB,EACrB,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,aAAa,EACb,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,wBAAwB,EACxB,0BAA0B,EAC1B,sBAAsB,EACtB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,cAAc,EACd,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACrE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EACV,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC1D,YAAY,EACV,YAAY,EACZ,oBAAoB,EACpB,cAAc,EACd,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,aAAa,EACb,WAAW,EACX,cAAc,EACd,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACjE,YAAY,EACV,iBAAiB,EACjB,WAAW,EACX,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC5D,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,2BAA2B,GAC5B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EACV,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,eAAe,GAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EACV,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,GACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAC9D,YAAY,EACV,aAAa,EACb,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,YAAY,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC1D,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EACV,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,GACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,YAAY,EACV,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAChE,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react/workflows/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,4 +35,8 @@ export { DEFAULT_CONNECT_COUNTRIES } from "./Onboarding.js";
|
|
|
35
35
|
export { PayoutHistory } from "./Payouts.js";
|
|
36
36
|
export { PayoutOverview } from "./Overview.js";
|
|
37
37
|
export { ChargeSummary, PaymentDetails } from "./Financials.js";
|
|
38
|
+
export { Pagination, useCursorPagination } from "./Pagination.js";
|
|
39
|
+
export { PlanPricingEditor } from "./PlanPricingEditor.js";
|
|
40
|
+
export { AffiliateRateEditor } from "./AffiliateRateEditor.js";
|
|
41
|
+
export { AffiliatePayoutEditor } from "./AffiliatePayoutEditor.js";
|
|
38
42
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/react/workflows/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AASzC,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,YAAY,GACb,MAAM,oBAAoB,CAAC;AAM5B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAMvC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAQvC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAUrE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAM7C,OAAO,EACL,KAAK,EACL,QAAQ,EACR,aAAa,EACb,aAAa,EACb,aAAa,GACd,MAAM,kBAAkB,CAAC;AAS1B,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAU5D,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAO5D,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAO7D,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,GACd,MAAM,cAAc,CAAC;AAQtB,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,aAAa,EACb,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAS5B,OAAO,EACL,cAAc,EACd,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAErE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAM3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAQ1D,OAAO,EACL,aAAa,EACb,WAAW,EACX,cAAc,EACd,aAAa,GACd,MAAM,YAAY,CAAC;AAOpB,OAAO,EACL,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,eAAe,GAChB,MAAM,YAAY,CAAC;AAMpB,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAMjE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAO5D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAU7C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAMrD,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAS9D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAE1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAMvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAKjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/react/workflows/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,6 +30,9 @@ uses render props or companion hooks to apply shadcn styling.
|
|
|
30
30
|
| Affiliate earnings | `Earnings`, `EarningsSummary` |
|
|
31
31
|
| Affiliate referred sales | `ReferredSales`, store attribution and commission |
|
|
32
32
|
| Affiliate links | `useReferralLinks`, `ReferralLinks`, `ClipboardButton` |
|
|
33
|
+
| Seller affiliate payout rules | `AffiliatePayoutEditor` with amount, percentage/currency mode, inherited term, Save/Clear, and async feedback |
|
|
34
|
+
| Admin store plans | `PlanPricingEditor` and `AffiliatePayoutEditor`; the app binds Stripe pricing and inherited commission policy |
|
|
35
|
+
| Affiliate sales pagination | `Pagination` and `useCursorPagination`; the backend supplies indexed cursors |
|
|
33
36
|
| Admin overview | `Overview` |
|
|
34
37
|
| Admin subscriptions | `Subscriptions`, `useSubscriptionFilter` |
|
|
35
38
|
| Admin webhooks | `WebhookEvents`, `useWebhookFilters` |
|
|
@@ -86,3 +89,19 @@ affiliate link copying, dispute evidence, and partial/remaining-balance refunds.
|
|
|
86
89
|
The tests use Stripe sandbox objects and await action results or webhook state.
|
|
87
90
|
Native public-entry tests also render the workflows without example providers,
|
|
88
91
|
CSS classes, inline styles, or example URLs.
|
|
92
|
+
|
|
93
|
+
## Pricing and affiliate updates
|
|
94
|
+
|
|
95
|
+
Seller product/price rows, store-wide defaults, admin plan rows, and platform-wide
|
|
96
|
+
defaults all use the public `AffiliatePayoutEditor`. It owns percentage/fixed
|
|
97
|
+
amount validation, commission-term selection, clear/inherit behavior, edit
|
|
98
|
+
versions, pending state, and errors. `PlanPricingEditor` owns the monthly-price
|
|
99
|
+
and sale-fee form. The example binds both to Convex functions and supplies shadcn
|
|
100
|
+
markup. Rule resolution, Stripe metadata, first-invoice claims, fee accounting,
|
|
101
|
+
and transfer execution remain backend application policy.
|
|
102
|
+
|
|
103
|
+
Browser regression checks cover equal cards/layouts in API and package views,
|
|
104
|
+
referral-sales pagination, inline payout controls, and plan pricing. Sandbox QA
|
|
105
|
+
covers all five checkout integrations, declined-card retries, inherited and fixed
|
|
106
|
+
commissions, and Forever/One-time subscription renewals using Stripe test clocks.
|
|
107
|
+
Existing subscriptions keep their monthly price and saved commission term.
|