@schematichq/schematic-components 0.7.6 → 0.7.8
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/dist/schematic-components.cjs.js +239 -194
- package/dist/schematic-components.d.ts +12 -0
- package/dist/schematic-components.esm.js +249 -204
- package/package.json +1 -1
|
@@ -10765,6 +10765,7 @@ function BillingPriceViewFromJSONTyped(json, ignoreDiscriminator) {
|
|
|
10765
10765
|
interval: json["interval"],
|
|
10766
10766
|
isActive: json["is_active"],
|
|
10767
10767
|
meterId: json["meter_id"] == null ? void 0 : json["meter_id"],
|
|
10768
|
+
packageSize: json["package_size"],
|
|
10768
10769
|
price: json["price"],
|
|
10769
10770
|
priceDecimal: json["price_decimal"] == null ? void 0 : json["price_decimal"],
|
|
10770
10771
|
priceExternalId: json["price_external_id"],
|
|
@@ -10826,6 +10827,7 @@ function BillingProductForSubscriptionResponseDataFromJSONTyped(json, ignoreDisc
|
|
|
10826
10827
|
interval: json["interval"],
|
|
10827
10828
|
meterId: json["meter_id"] == null ? void 0 : json["meter_id"],
|
|
10828
10829
|
name: json["name"],
|
|
10830
|
+
packageSize: json["package_size"],
|
|
10829
10831
|
price: json["price"],
|
|
10830
10832
|
priceDecimal: json["price_decimal"] == null ? void 0 : json["price_decimal"],
|
|
10831
10833
|
priceExternalId: json["price_external_id"],
|
|
@@ -13193,7 +13195,7 @@ var EmbedProvider = ({
|
|
|
13193
13195
|
(0, import_react11.useEffect)(() => {
|
|
13194
13196
|
if (accessToken) {
|
|
13195
13197
|
const { headers = {} } = apiConfig ?? {};
|
|
13196
|
-
headers["X-Schematic-Components-Version"] = "0.7.
|
|
13198
|
+
headers["X-Schematic-Components-Version"] = "0.7.8";
|
|
13197
13199
|
headers["X-Schematic-Session-ID"] = sessionIdRef.current;
|
|
13198
13200
|
const config = new Configuration({
|
|
13199
13201
|
...apiConfig,
|
|
@@ -16391,158 +16393,6 @@ var AddOns = ({ addOns, toggle, isLoading, period }) => {
|
|
|
16391
16393
|
) });
|
|
16392
16394
|
};
|
|
16393
16395
|
|
|
16394
|
-
// node_modules/@stripe/stripe-js/dist/index.mjs
|
|
16395
|
-
var RELEASE_TRAIN = "basil";
|
|
16396
|
-
var runtimeVersionToUrlVersion = function runtimeVersionToUrlVersion2(version) {
|
|
16397
|
-
return version === 3 ? "v3" : version;
|
|
16398
|
-
};
|
|
16399
|
-
var ORIGIN = "https://js.stripe.com";
|
|
16400
|
-
var STRIPE_JS_URL = "".concat(ORIGIN, "/").concat(RELEASE_TRAIN, "/stripe.js");
|
|
16401
|
-
var V3_URL_REGEX = /^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/;
|
|
16402
|
-
var STRIPE_JS_URL_REGEX = /^https:\/\/js\.stripe\.com\/(v3|[a-z]+)\/stripe\.js(\?.*)?$/;
|
|
16403
|
-
var EXISTING_SCRIPT_MESSAGE = "loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used";
|
|
16404
|
-
var isStripeJSURL = function isStripeJSURL2(url) {
|
|
16405
|
-
return V3_URL_REGEX.test(url) || STRIPE_JS_URL_REGEX.test(url);
|
|
16406
|
-
};
|
|
16407
|
-
var findScript = function findScript2() {
|
|
16408
|
-
var scripts = document.querySelectorAll('script[src^="'.concat(ORIGIN, '"]'));
|
|
16409
|
-
for (var i2 = 0; i2 < scripts.length; i2++) {
|
|
16410
|
-
var script = scripts[i2];
|
|
16411
|
-
if (!isStripeJSURL(script.src)) {
|
|
16412
|
-
continue;
|
|
16413
|
-
}
|
|
16414
|
-
return script;
|
|
16415
|
-
}
|
|
16416
|
-
return null;
|
|
16417
|
-
};
|
|
16418
|
-
var injectScript = function injectScript2(params) {
|
|
16419
|
-
var queryString = params && !params.advancedFraudSignals ? "?advancedFraudSignals=false" : "";
|
|
16420
|
-
var script = document.createElement("script");
|
|
16421
|
-
script.src = "".concat(STRIPE_JS_URL).concat(queryString);
|
|
16422
|
-
var headOrBody = document.head || document.body;
|
|
16423
|
-
if (!headOrBody) {
|
|
16424
|
-
throw new Error("Expected document.body not to be null. Stripe.js requires a <body> element.");
|
|
16425
|
-
}
|
|
16426
|
-
headOrBody.appendChild(script);
|
|
16427
|
-
return script;
|
|
16428
|
-
};
|
|
16429
|
-
var registerWrapper = function registerWrapper2(stripe, startTime) {
|
|
16430
|
-
if (!stripe || !stripe._registerWrapper) {
|
|
16431
|
-
return;
|
|
16432
|
-
}
|
|
16433
|
-
stripe._registerWrapper({
|
|
16434
|
-
name: "stripe-js",
|
|
16435
|
-
version: "7.0.0",
|
|
16436
|
-
startTime
|
|
16437
|
-
});
|
|
16438
|
-
};
|
|
16439
|
-
var stripePromise$1 = null;
|
|
16440
|
-
var onErrorListener = null;
|
|
16441
|
-
var onLoadListener = null;
|
|
16442
|
-
var onError = function onError2(reject) {
|
|
16443
|
-
return function(cause) {
|
|
16444
|
-
reject(new Error("Failed to load Stripe.js", {
|
|
16445
|
-
cause
|
|
16446
|
-
}));
|
|
16447
|
-
};
|
|
16448
|
-
};
|
|
16449
|
-
var onLoad = function onLoad2(resolve, reject) {
|
|
16450
|
-
return function() {
|
|
16451
|
-
if (window.Stripe) {
|
|
16452
|
-
resolve(window.Stripe);
|
|
16453
|
-
} else {
|
|
16454
|
-
reject(new Error("Stripe.js not available"));
|
|
16455
|
-
}
|
|
16456
|
-
};
|
|
16457
|
-
};
|
|
16458
|
-
var loadScript = function loadScript2(params) {
|
|
16459
|
-
if (stripePromise$1 !== null) {
|
|
16460
|
-
return stripePromise$1;
|
|
16461
|
-
}
|
|
16462
|
-
stripePromise$1 = new Promise(function(resolve, reject) {
|
|
16463
|
-
if (typeof window === "undefined" || typeof document === "undefined") {
|
|
16464
|
-
resolve(null);
|
|
16465
|
-
return;
|
|
16466
|
-
}
|
|
16467
|
-
if (window.Stripe && params) {
|
|
16468
|
-
console.warn(EXISTING_SCRIPT_MESSAGE);
|
|
16469
|
-
}
|
|
16470
|
-
if (window.Stripe) {
|
|
16471
|
-
resolve(window.Stripe);
|
|
16472
|
-
return;
|
|
16473
|
-
}
|
|
16474
|
-
try {
|
|
16475
|
-
var script = findScript();
|
|
16476
|
-
if (script && params) {
|
|
16477
|
-
console.warn(EXISTING_SCRIPT_MESSAGE);
|
|
16478
|
-
} else if (!script) {
|
|
16479
|
-
script = injectScript(params);
|
|
16480
|
-
} else if (script && onLoadListener !== null && onErrorListener !== null) {
|
|
16481
|
-
var _script$parentNode;
|
|
16482
|
-
script.removeEventListener("load", onLoadListener);
|
|
16483
|
-
script.removeEventListener("error", onErrorListener);
|
|
16484
|
-
(_script$parentNode = script.parentNode) === null || _script$parentNode === void 0 ? void 0 : _script$parentNode.removeChild(script);
|
|
16485
|
-
script = injectScript(params);
|
|
16486
|
-
}
|
|
16487
|
-
onLoadListener = onLoad(resolve, reject);
|
|
16488
|
-
onErrorListener = onError(reject);
|
|
16489
|
-
script.addEventListener("load", onLoadListener);
|
|
16490
|
-
script.addEventListener("error", onErrorListener);
|
|
16491
|
-
} catch (error) {
|
|
16492
|
-
reject(error);
|
|
16493
|
-
return;
|
|
16494
|
-
}
|
|
16495
|
-
});
|
|
16496
|
-
return stripePromise$1["catch"](function(error) {
|
|
16497
|
-
stripePromise$1 = null;
|
|
16498
|
-
return Promise.reject(error);
|
|
16499
|
-
});
|
|
16500
|
-
};
|
|
16501
|
-
var initStripe = function initStripe2(maybeStripe, args, startTime) {
|
|
16502
|
-
if (maybeStripe === null) {
|
|
16503
|
-
return null;
|
|
16504
|
-
}
|
|
16505
|
-
var pk = args[0];
|
|
16506
|
-
var isTestKey = pk.match(/^pk_test/);
|
|
16507
|
-
var version = runtimeVersionToUrlVersion(maybeStripe.version);
|
|
16508
|
-
var expectedVersion = RELEASE_TRAIN;
|
|
16509
|
-
if (isTestKey && version !== expectedVersion) {
|
|
16510
|
-
console.warn("Stripe.js@".concat(version, " was loaded on the page, but @stripe/stripe-js@").concat("7.0.0", " expected Stripe.js@").concat(expectedVersion, ". This may result in unexpected behavior. For more information, see https://docs.stripe.com/sdks/stripejs-versioning"));
|
|
16511
|
-
}
|
|
16512
|
-
var stripe = maybeStripe.apply(void 0, args);
|
|
16513
|
-
registerWrapper(stripe, startTime);
|
|
16514
|
-
return stripe;
|
|
16515
|
-
};
|
|
16516
|
-
var stripePromise;
|
|
16517
|
-
var loadCalled = false;
|
|
16518
|
-
var getStripePromise = function getStripePromise2() {
|
|
16519
|
-
if (stripePromise) {
|
|
16520
|
-
return stripePromise;
|
|
16521
|
-
}
|
|
16522
|
-
stripePromise = loadScript(null)["catch"](function(error) {
|
|
16523
|
-
stripePromise = null;
|
|
16524
|
-
return Promise.reject(error);
|
|
16525
|
-
});
|
|
16526
|
-
return stripePromise;
|
|
16527
|
-
};
|
|
16528
|
-
Promise.resolve().then(function() {
|
|
16529
|
-
return getStripePromise();
|
|
16530
|
-
})["catch"](function(error) {
|
|
16531
|
-
if (!loadCalled) {
|
|
16532
|
-
console.warn(error);
|
|
16533
|
-
}
|
|
16534
|
-
});
|
|
16535
|
-
var loadStripe = function loadStripe2() {
|
|
16536
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
16537
|
-
args[_key] = arguments[_key];
|
|
16538
|
-
}
|
|
16539
|
-
loadCalled = true;
|
|
16540
|
-
var startTime = Date.now();
|
|
16541
|
-
return getStripePromise().then(function(maybeStripe) {
|
|
16542
|
-
return initStripe(maybeStripe, args, startTime);
|
|
16543
|
-
});
|
|
16544
|
-
};
|
|
16545
|
-
|
|
16546
16396
|
// src/components/shared/checkout-dialog/Checkout.tsx
|
|
16547
16397
|
var import_react24 = require("react");
|
|
16548
16398
|
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
@@ -16553,36 +16403,11 @@ var Checkout = ({
|
|
|
16553
16403
|
}) => {
|
|
16554
16404
|
const { t: t2 } = useTranslation();
|
|
16555
16405
|
const theme = nt();
|
|
16556
|
-
const { api, data } = useEmbed();
|
|
16557
16406
|
const isLightBackground = useIsLightBackground();
|
|
16558
|
-
const [stripe, setStripe] = (0, import_react24.useState)(null);
|
|
16559
|
-
const [setupIntent, setSetupIntent] = (0, import_react24.useState)();
|
|
16560
16407
|
const [discount, setDiscount] = (0, import_react24.useState)("");
|
|
16561
|
-
(0, import_react24.useEffect)(() => {
|
|
16562
|
-
if (api && data.component?.id) {
|
|
16563
|
-
api.getSetupIntent({ componentId: data.component.id }).then((res) => setSetupIntent(res.data));
|
|
16564
|
-
}
|
|
16565
|
-
}, [api, data.component?.id]);
|
|
16566
|
-
(0, import_react24.useEffect)(() => {
|
|
16567
|
-
if (setupIntent?.publishableKey) {
|
|
16568
|
-
setStripe(loadStripe(setupIntent.publishableKey));
|
|
16569
|
-
}
|
|
16570
|
-
}, [setupIntent?.publishableKey]);
|
|
16571
16408
|
if (!requiresPayment) {
|
|
16572
16409
|
return null;
|
|
16573
16410
|
}
|
|
16574
|
-
if (!stripe) {
|
|
16575
|
-
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
16576
|
-
Flex,
|
|
16577
|
-
{
|
|
16578
|
-
$justifyContent: "center",
|
|
16579
|
-
$alignItems: "center",
|
|
16580
|
-
$flexGrow: 1,
|
|
16581
|
-
$marginTop: "-3.5rem",
|
|
16582
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Loader, { $color: theme.primary, $size: "3xl" })
|
|
16583
|
-
}
|
|
16584
|
-
);
|
|
16585
|
-
}
|
|
16586
16411
|
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_jsx_runtime15.Fragment, { children: [
|
|
16587
16412
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(PaymentMethodDetails, { setPaymentMethodId }),
|
|
16588
16413
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(Flex, { $flexDirection: "column", $gap: "1rem", children: [
|
|
@@ -16936,12 +16761,19 @@ var Plan = ({
|
|
|
16936
16761
|
}[entitlement.metricPeriod];
|
|
16937
16762
|
}
|
|
16938
16763
|
const limit = entitlement.softLimit ?? entitlement.valueNumeric;
|
|
16939
|
-
const
|
|
16940
|
-
price: entitlementPrice,
|
|
16941
|
-
currency: entitlementCurrency
|
|
16942
|
-
} = getBillingPrice(
|
|
16764
|
+
const entitlementPriceObject = getBillingPrice(
|
|
16943
16765
|
period === "year" ? entitlement.meteredYearlyPrice : entitlement.meteredMonthlyPrice
|
|
16944
|
-
) ||
|
|
16766
|
+
) || null;
|
|
16767
|
+
let entitlementPrice = entitlementPriceObject?.price;
|
|
16768
|
+
const entitlementCurrency = entitlementPriceObject?.currency;
|
|
16769
|
+
if (entitlement.priceBehavior === "overage" && entitlementPriceObject) {
|
|
16770
|
+
const { priceTier } = entitlementPriceObject;
|
|
16771
|
+
if (priceTier.length) {
|
|
16772
|
+
const lastTier = priceTier[priceTier.length - 1];
|
|
16773
|
+
const { perUnitPrice, perUnitPriceDecimal } = lastTier;
|
|
16774
|
+
entitlementPrice = perUnitPriceDecimal ? Number(perUnitPriceDecimal) : perUnitPrice ?? 0;
|
|
16775
|
+
}
|
|
16776
|
+
}
|
|
16945
16777
|
if (entitlement.priceBehavior && typeof entitlementPrice !== "number") {
|
|
16946
16778
|
return acc;
|
|
16947
16779
|
}
|
|
@@ -18394,6 +18226,10 @@ var StyledViewport = dt.div.withConfig({
|
|
|
18394
18226
|
@media (min-width: 768px) {
|
|
18395
18227
|
grid-template-columns: ${({ theme }) => lt`repeat(${theme.numberOfColumns}, minmax(300px, 1fr))`};
|
|
18396
18228
|
}
|
|
18229
|
+
|
|
18230
|
+
@container (max-width: 768px) {
|
|
18231
|
+
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
|
|
18232
|
+
}
|
|
18397
18233
|
`;
|
|
18398
18234
|
|
|
18399
18235
|
// src/components/layout/viewport/Viewport.tsx
|
|
@@ -18887,10 +18723,13 @@ var Invoices = (0, import_react34.forwardRef)(({ className, data, ...rest }, ref
|
|
|
18887
18723
|
);
|
|
18888
18724
|
};
|
|
18889
18725
|
(0, import_react34.useEffect)(() => {
|
|
18890
|
-
api?.listInvoices().then((
|
|
18891
|
-
setInvoices(formatInvoices(
|
|
18726
|
+
api?.listInvoices().then((response) => {
|
|
18727
|
+
setInvoices(formatInvoices(response.data));
|
|
18892
18728
|
});
|
|
18893
18729
|
}, [api]);
|
|
18730
|
+
(0, import_react34.useEffect)(() => {
|
|
18731
|
+
setInvoices(formatInvoices(data));
|
|
18732
|
+
}, [data]);
|
|
18894
18733
|
if (invoices.length === 0) {
|
|
18895
18734
|
return null;
|
|
18896
18735
|
}
|
|
@@ -19064,9 +18903,32 @@ var MeteredFeatures = (0, import_react35.forwardRef)(({ className, ...rest }, re
|
|
|
19064
18903
|
}, index) => {
|
|
19065
18904
|
const limit = softLimit ?? allocation ?? 0;
|
|
19066
18905
|
const isOverage = priceBehavior === "overage" && typeof softLimit === "number" && typeof usage === "number" && usage > softLimit;
|
|
19067
|
-
|
|
18906
|
+
let { price, currency } = getBillingPrice(
|
|
19068
18907
|
planPeriod === "year" ? yearlyUsageBasedPrice : monthlyUsageBasedPrice
|
|
19069
18908
|
) || {};
|
|
18909
|
+
if (priceBehavior === "overage") {
|
|
18910
|
+
const productId = (yearlyUsageBasedPrice ?? monthlyUsageBasedPrice)?.productId;
|
|
18911
|
+
if (productId) {
|
|
18912
|
+
const products = data?.subscription?.products ?? [];
|
|
18913
|
+
const product = products.find((p2) => p2.id === productId);
|
|
18914
|
+
if (product && product.priceTier?.length > 1) {
|
|
18915
|
+
const overagePrice = product.priceTier[product.priceTier.length - 1];
|
|
18916
|
+
price = overagePrice.perUnitPriceDecimal ? Number(overagePrice.perUnitPriceDecimal) : overagePrice.perUnitPrice ?? 0;
|
|
18917
|
+
currency = product.currency;
|
|
18918
|
+
}
|
|
18919
|
+
}
|
|
18920
|
+
}
|
|
18921
|
+
if (isOverage) {
|
|
18922
|
+
const productId = (yearlyUsageBasedPrice ?? monthlyUsageBasedPrice).productId;
|
|
18923
|
+
if (productId) {
|
|
18924
|
+
const products = data?.subscription?.products ?? [];
|
|
18925
|
+
const product = products.find((p2) => p2.id === productId);
|
|
18926
|
+
if (product) {
|
|
18927
|
+
price = product.price;
|
|
18928
|
+
currency = product.currency;
|
|
18929
|
+
}
|
|
18930
|
+
}
|
|
18931
|
+
}
|
|
19070
18932
|
const progressBar = props.isVisible && typeof usage === "number" && limit > 0 && priceBehavior !== "pay_as_you_go" && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
19071
18933
|
ProgressBar,
|
|
19072
18934
|
{
|
|
@@ -19617,6 +19479,160 @@ PaymentMethod.displayName = "PaymentMethod";
|
|
|
19617
19479
|
|
|
19618
19480
|
// src/components/elements/payment-method/PaymentMethodDetails.tsx
|
|
19619
19481
|
var import_react_stripe_js2 = require("@stripe/react-stripe-js");
|
|
19482
|
+
|
|
19483
|
+
// node_modules/@stripe/stripe-js/dist/index.mjs
|
|
19484
|
+
var RELEASE_TRAIN = "basil";
|
|
19485
|
+
var runtimeVersionToUrlVersion = function runtimeVersionToUrlVersion2(version) {
|
|
19486
|
+
return version === 3 ? "v3" : version;
|
|
19487
|
+
};
|
|
19488
|
+
var ORIGIN = "https://js.stripe.com";
|
|
19489
|
+
var STRIPE_JS_URL = "".concat(ORIGIN, "/").concat(RELEASE_TRAIN, "/stripe.js");
|
|
19490
|
+
var V3_URL_REGEX = /^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/;
|
|
19491
|
+
var STRIPE_JS_URL_REGEX = /^https:\/\/js\.stripe\.com\/(v3|[a-z]+)\/stripe\.js(\?.*)?$/;
|
|
19492
|
+
var EXISTING_SCRIPT_MESSAGE = "loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used";
|
|
19493
|
+
var isStripeJSURL = function isStripeJSURL2(url) {
|
|
19494
|
+
return V3_URL_REGEX.test(url) || STRIPE_JS_URL_REGEX.test(url);
|
|
19495
|
+
};
|
|
19496
|
+
var findScript = function findScript2() {
|
|
19497
|
+
var scripts = document.querySelectorAll('script[src^="'.concat(ORIGIN, '"]'));
|
|
19498
|
+
for (var i2 = 0; i2 < scripts.length; i2++) {
|
|
19499
|
+
var script = scripts[i2];
|
|
19500
|
+
if (!isStripeJSURL(script.src)) {
|
|
19501
|
+
continue;
|
|
19502
|
+
}
|
|
19503
|
+
return script;
|
|
19504
|
+
}
|
|
19505
|
+
return null;
|
|
19506
|
+
};
|
|
19507
|
+
var injectScript = function injectScript2(params) {
|
|
19508
|
+
var queryString = params && !params.advancedFraudSignals ? "?advancedFraudSignals=false" : "";
|
|
19509
|
+
var script = document.createElement("script");
|
|
19510
|
+
script.src = "".concat(STRIPE_JS_URL).concat(queryString);
|
|
19511
|
+
var headOrBody = document.head || document.body;
|
|
19512
|
+
if (!headOrBody) {
|
|
19513
|
+
throw new Error("Expected document.body not to be null. Stripe.js requires a <body> element.");
|
|
19514
|
+
}
|
|
19515
|
+
headOrBody.appendChild(script);
|
|
19516
|
+
return script;
|
|
19517
|
+
};
|
|
19518
|
+
var registerWrapper = function registerWrapper2(stripe, startTime) {
|
|
19519
|
+
if (!stripe || !stripe._registerWrapper) {
|
|
19520
|
+
return;
|
|
19521
|
+
}
|
|
19522
|
+
stripe._registerWrapper({
|
|
19523
|
+
name: "stripe-js",
|
|
19524
|
+
version: "7.0.0",
|
|
19525
|
+
startTime
|
|
19526
|
+
});
|
|
19527
|
+
};
|
|
19528
|
+
var stripePromise$1 = null;
|
|
19529
|
+
var onErrorListener = null;
|
|
19530
|
+
var onLoadListener = null;
|
|
19531
|
+
var onError = function onError2(reject) {
|
|
19532
|
+
return function(cause) {
|
|
19533
|
+
reject(new Error("Failed to load Stripe.js", {
|
|
19534
|
+
cause
|
|
19535
|
+
}));
|
|
19536
|
+
};
|
|
19537
|
+
};
|
|
19538
|
+
var onLoad = function onLoad2(resolve, reject) {
|
|
19539
|
+
return function() {
|
|
19540
|
+
if (window.Stripe) {
|
|
19541
|
+
resolve(window.Stripe);
|
|
19542
|
+
} else {
|
|
19543
|
+
reject(new Error("Stripe.js not available"));
|
|
19544
|
+
}
|
|
19545
|
+
};
|
|
19546
|
+
};
|
|
19547
|
+
var loadScript = function loadScript2(params) {
|
|
19548
|
+
if (stripePromise$1 !== null) {
|
|
19549
|
+
return stripePromise$1;
|
|
19550
|
+
}
|
|
19551
|
+
stripePromise$1 = new Promise(function(resolve, reject) {
|
|
19552
|
+
if (typeof window === "undefined" || typeof document === "undefined") {
|
|
19553
|
+
resolve(null);
|
|
19554
|
+
return;
|
|
19555
|
+
}
|
|
19556
|
+
if (window.Stripe && params) {
|
|
19557
|
+
console.warn(EXISTING_SCRIPT_MESSAGE);
|
|
19558
|
+
}
|
|
19559
|
+
if (window.Stripe) {
|
|
19560
|
+
resolve(window.Stripe);
|
|
19561
|
+
return;
|
|
19562
|
+
}
|
|
19563
|
+
try {
|
|
19564
|
+
var script = findScript();
|
|
19565
|
+
if (script && params) {
|
|
19566
|
+
console.warn(EXISTING_SCRIPT_MESSAGE);
|
|
19567
|
+
} else if (!script) {
|
|
19568
|
+
script = injectScript(params);
|
|
19569
|
+
} else if (script && onLoadListener !== null && onErrorListener !== null) {
|
|
19570
|
+
var _script$parentNode;
|
|
19571
|
+
script.removeEventListener("load", onLoadListener);
|
|
19572
|
+
script.removeEventListener("error", onErrorListener);
|
|
19573
|
+
(_script$parentNode = script.parentNode) === null || _script$parentNode === void 0 ? void 0 : _script$parentNode.removeChild(script);
|
|
19574
|
+
script = injectScript(params);
|
|
19575
|
+
}
|
|
19576
|
+
onLoadListener = onLoad(resolve, reject);
|
|
19577
|
+
onErrorListener = onError(reject);
|
|
19578
|
+
script.addEventListener("load", onLoadListener);
|
|
19579
|
+
script.addEventListener("error", onErrorListener);
|
|
19580
|
+
} catch (error) {
|
|
19581
|
+
reject(error);
|
|
19582
|
+
return;
|
|
19583
|
+
}
|
|
19584
|
+
});
|
|
19585
|
+
return stripePromise$1["catch"](function(error) {
|
|
19586
|
+
stripePromise$1 = null;
|
|
19587
|
+
return Promise.reject(error);
|
|
19588
|
+
});
|
|
19589
|
+
};
|
|
19590
|
+
var initStripe = function initStripe2(maybeStripe, args, startTime) {
|
|
19591
|
+
if (maybeStripe === null) {
|
|
19592
|
+
return null;
|
|
19593
|
+
}
|
|
19594
|
+
var pk = args[0];
|
|
19595
|
+
var isTestKey = pk.match(/^pk_test/);
|
|
19596
|
+
var version = runtimeVersionToUrlVersion(maybeStripe.version);
|
|
19597
|
+
var expectedVersion = RELEASE_TRAIN;
|
|
19598
|
+
if (isTestKey && version !== expectedVersion) {
|
|
19599
|
+
console.warn("Stripe.js@".concat(version, " was loaded on the page, but @stripe/stripe-js@").concat("7.0.0", " expected Stripe.js@").concat(expectedVersion, ". This may result in unexpected behavior. For more information, see https://docs.stripe.com/sdks/stripejs-versioning"));
|
|
19600
|
+
}
|
|
19601
|
+
var stripe = maybeStripe.apply(void 0, args);
|
|
19602
|
+
registerWrapper(stripe, startTime);
|
|
19603
|
+
return stripe;
|
|
19604
|
+
};
|
|
19605
|
+
var stripePromise;
|
|
19606
|
+
var loadCalled = false;
|
|
19607
|
+
var getStripePromise = function getStripePromise2() {
|
|
19608
|
+
if (stripePromise) {
|
|
19609
|
+
return stripePromise;
|
|
19610
|
+
}
|
|
19611
|
+
stripePromise = loadScript(null)["catch"](function(error) {
|
|
19612
|
+
stripePromise = null;
|
|
19613
|
+
return Promise.reject(error);
|
|
19614
|
+
});
|
|
19615
|
+
return stripePromise;
|
|
19616
|
+
};
|
|
19617
|
+
Promise.resolve().then(function() {
|
|
19618
|
+
return getStripePromise();
|
|
19619
|
+
})["catch"](function(error) {
|
|
19620
|
+
if (!loadCalled) {
|
|
19621
|
+
console.warn(error);
|
|
19622
|
+
}
|
|
19623
|
+
});
|
|
19624
|
+
var loadStripe = function loadStripe2() {
|
|
19625
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
19626
|
+
args[_key] = arguments[_key];
|
|
19627
|
+
}
|
|
19628
|
+
loadCalled = true;
|
|
19629
|
+
var startTime = Date.now();
|
|
19630
|
+
return getStripePromise().then(function(maybeStripe) {
|
|
19631
|
+
return initStripe(maybeStripe, args, startTime);
|
|
19632
|
+
});
|
|
19633
|
+
};
|
|
19634
|
+
|
|
19635
|
+
// src/components/elements/payment-method/PaymentMethodDetails.tsx
|
|
19620
19636
|
var import_react38 = require("react");
|
|
19621
19637
|
var import_jsx_runtime34 = require("react/jsx-runtime");
|
|
19622
19638
|
var resolveDesignProps6 = () => {
|
|
@@ -20085,8 +20101,24 @@ var PlanManager = (0, import_react39.forwardRef)(({ children, className, portal,
|
|
|
20085
20101
|
usageBasedEntitlements.reduce(
|
|
20086
20102
|
(acc, entitlement, entitlementIndex) => {
|
|
20087
20103
|
const limit = entitlement.softLimit ?? entitlement.allocation ?? 0;
|
|
20088
|
-
|
|
20104
|
+
let overageAmount = entitlement.priceBehavior === "overage" && (entitlement?.usage ?? 0) - (entitlement?.softLimit ?? 0);
|
|
20089
20105
|
const amount = overageAmount || entitlement.allocation || 0;
|
|
20106
|
+
if (entitlement.priceBehavior === "overage" && data.subscription) {
|
|
20107
|
+
const subscription = data.subscription;
|
|
20108
|
+
const entitlementPrice = entitlement.monthlyUsageBasedPrice ?? entitlement.yearlyUsageBasedPrice;
|
|
20109
|
+
if (entitlementPrice) {
|
|
20110
|
+
const entitlementProduct = subscription.products.find(
|
|
20111
|
+
(product) => product.id === entitlementPrice.productId
|
|
20112
|
+
);
|
|
20113
|
+
if (entitlementProduct?.priceTier.length) {
|
|
20114
|
+
const entitlementProductLastTierPrice = entitlementProduct?.priceTier[entitlementProduct?.priceTier?.length - 1];
|
|
20115
|
+
overageAmount = (entitlement?.usage ?? 0) - (entitlementProduct?.priceTier[0].upTo ?? 0);
|
|
20116
|
+
entitlement.price = entitlementProductLastTierPrice?.perUnitPriceDecimal ? Number(
|
|
20117
|
+
entitlementProductLastTierPrice?.perUnitPriceDecimal
|
|
20118
|
+
) : entitlementProductLastTierPrice.perUnitPrice ?? entitlement.price;
|
|
20119
|
+
}
|
|
20120
|
+
}
|
|
20121
|
+
}
|
|
20090
20122
|
if (entitlement.feature?.name) {
|
|
20091
20123
|
acc.push(
|
|
20092
20124
|
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
|
|
@@ -20117,7 +20149,7 @@ var PlanManager = (0, import_react39.forwardRef)(({ children, className, portal,
|
|
|
20117
20149
|
children: typeof overageAmount === "number" && overageAmount > 0 ? t2("X over the limit", {
|
|
20118
20150
|
amount: overageAmount
|
|
20119
20151
|
}) : /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_jsx_runtime35.Fragment, { children: [
|
|
20120
|
-
t2("
|
|
20152
|
+
t2("overage fee"),
|
|
20121
20153
|
":",
|
|
20122
20154
|
" ",
|
|
20123
20155
|
formatCurrency(
|
|
@@ -20461,12 +20493,25 @@ var PricingTable = (0, import_react40.forwardRef)(({ children, className, ...res
|
|
|
20461
20493
|
plan.entitlements.reduce(
|
|
20462
20494
|
(acc, entitlement, entitlementIndex) => {
|
|
20463
20495
|
const limit = entitlement.softLimit ?? entitlement.valueNumeric;
|
|
20464
|
-
|
|
20465
|
-
|
|
20466
|
-
|
|
20467
|
-
}
|
|
20468
|
-
|
|
20469
|
-
|
|
20496
|
+
let entitlementPriceObject;
|
|
20497
|
+
if (selectedPeriod === "month") {
|
|
20498
|
+
entitlementPriceObject = entitlement.meteredMonthlyPrice;
|
|
20499
|
+
} else if (selectedPeriod === "year") {
|
|
20500
|
+
entitlementPriceObject = entitlement.meteredYearlyPrice;
|
|
20501
|
+
}
|
|
20502
|
+
let entitlementPrice;
|
|
20503
|
+
let entitlementCurrency;
|
|
20504
|
+
if (entitlementPriceObject) {
|
|
20505
|
+
entitlementPrice = entitlementPriceObject?.price;
|
|
20506
|
+
entitlementCurrency = entitlementPriceObject?.currency;
|
|
20507
|
+
}
|
|
20508
|
+
if (entitlementPriceObject && entitlement.priceBehavior === "overage") {
|
|
20509
|
+
if (entitlementPriceObject.priceTier?.length > 1) {
|
|
20510
|
+
const overagePrice = entitlementPriceObject.priceTier[entitlementPriceObject.priceTier.length - 1];
|
|
20511
|
+
entitlementPrice = overagePrice.perUnitPriceDecimal ? Number(overagePrice.perUnitPriceDecimal) : overagePrice.perUnitPrice ?? 0;
|
|
20512
|
+
entitlementCurrency = entitlementPriceObject.currency;
|
|
20513
|
+
}
|
|
20514
|
+
}
|
|
20470
20515
|
if (entitlement.priceBehavior && typeof entitlementPrice !== "number") {
|
|
20471
20516
|
return acc;
|
|
20472
20517
|
}
|
|
@@ -170,6 +170,12 @@ declare interface BillingPriceView {
|
|
|
170
170
|
* @memberof BillingPriceView
|
|
171
171
|
*/
|
|
172
172
|
meterId?: string | null;
|
|
173
|
+
/**
|
|
174
|
+
*
|
|
175
|
+
* @type {number}
|
|
176
|
+
* @memberof BillingPriceView
|
|
177
|
+
*/
|
|
178
|
+
packageSize: number;
|
|
173
179
|
/**
|
|
174
180
|
*
|
|
175
181
|
* @type {number}
|
|
@@ -384,6 +390,12 @@ declare interface BillingProductForSubscriptionResponseData {
|
|
|
384
390
|
* @memberof BillingProductForSubscriptionResponseData
|
|
385
391
|
*/
|
|
386
392
|
name: string;
|
|
393
|
+
/**
|
|
394
|
+
*
|
|
395
|
+
* @type {number}
|
|
396
|
+
* @memberof BillingProductForSubscriptionResponseData
|
|
397
|
+
*/
|
|
398
|
+
packageSize: number;
|
|
387
399
|
/**
|
|
388
400
|
*
|
|
389
401
|
* @type {number}
|
|
@@ -10712,6 +10712,7 @@ function BillingPriceViewFromJSONTyped(json, ignoreDiscriminator) {
|
|
|
10712
10712
|
interval: json["interval"],
|
|
10713
10713
|
isActive: json["is_active"],
|
|
10714
10714
|
meterId: json["meter_id"] == null ? void 0 : json["meter_id"],
|
|
10715
|
+
packageSize: json["package_size"],
|
|
10715
10716
|
price: json["price"],
|
|
10716
10717
|
priceDecimal: json["price_decimal"] == null ? void 0 : json["price_decimal"],
|
|
10717
10718
|
priceExternalId: json["price_external_id"],
|
|
@@ -10773,6 +10774,7 @@ function BillingProductForSubscriptionResponseDataFromJSONTyped(json, ignoreDisc
|
|
|
10773
10774
|
interval: json["interval"],
|
|
10774
10775
|
meterId: json["meter_id"] == null ? void 0 : json["meter_id"],
|
|
10775
10776
|
name: json["name"],
|
|
10777
|
+
packageSize: json["package_size"],
|
|
10776
10778
|
price: json["price"],
|
|
10777
10779
|
priceDecimal: json["price_decimal"] == null ? void 0 : json["price_decimal"],
|
|
10778
10780
|
priceExternalId: json["price_external_id"],
|
|
@@ -13140,7 +13142,7 @@ var EmbedProvider = ({
|
|
|
13140
13142
|
useEffect2(() => {
|
|
13141
13143
|
if (accessToken) {
|
|
13142
13144
|
const { headers = {} } = apiConfig ?? {};
|
|
13143
|
-
headers["X-Schematic-Components-Version"] = "0.7.
|
|
13145
|
+
headers["X-Schematic-Components-Version"] = "0.7.8";
|
|
13144
13146
|
headers["X-Schematic-Session-ID"] = sessionIdRef.current;
|
|
13145
13147
|
const config = new Configuration({
|
|
13146
13148
|
...apiConfig,
|
|
@@ -14781,7 +14783,7 @@ import { createPortal as createPortal2 } from "react-dom";
|
|
|
14781
14783
|
// src/components/shared/checkout-dialog/CheckoutDialog.tsx
|
|
14782
14784
|
import {
|
|
14783
14785
|
useCallback as useCallback8,
|
|
14784
|
-
useEffect as
|
|
14786
|
+
useEffect as useEffect4,
|
|
14785
14787
|
useLayoutEffect as useLayoutEffect4,
|
|
14786
14788
|
useMemo as useMemo5,
|
|
14787
14789
|
useRef as useRef5,
|
|
@@ -16348,160 +16350,8 @@ var AddOns = ({ addOns, toggle, isLoading, period }) => {
|
|
|
16348
16350
|
) });
|
|
16349
16351
|
};
|
|
16350
16352
|
|
|
16351
|
-
// node_modules/@stripe/stripe-js/dist/index.mjs
|
|
16352
|
-
var RELEASE_TRAIN = "basil";
|
|
16353
|
-
var runtimeVersionToUrlVersion = function runtimeVersionToUrlVersion2(version) {
|
|
16354
|
-
return version === 3 ? "v3" : version;
|
|
16355
|
-
};
|
|
16356
|
-
var ORIGIN = "https://js.stripe.com";
|
|
16357
|
-
var STRIPE_JS_URL = "".concat(ORIGIN, "/").concat(RELEASE_TRAIN, "/stripe.js");
|
|
16358
|
-
var V3_URL_REGEX = /^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/;
|
|
16359
|
-
var STRIPE_JS_URL_REGEX = /^https:\/\/js\.stripe\.com\/(v3|[a-z]+)\/stripe\.js(\?.*)?$/;
|
|
16360
|
-
var EXISTING_SCRIPT_MESSAGE = "loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used";
|
|
16361
|
-
var isStripeJSURL = function isStripeJSURL2(url) {
|
|
16362
|
-
return V3_URL_REGEX.test(url) || STRIPE_JS_URL_REGEX.test(url);
|
|
16363
|
-
};
|
|
16364
|
-
var findScript = function findScript2() {
|
|
16365
|
-
var scripts = document.querySelectorAll('script[src^="'.concat(ORIGIN, '"]'));
|
|
16366
|
-
for (var i2 = 0; i2 < scripts.length; i2++) {
|
|
16367
|
-
var script = scripts[i2];
|
|
16368
|
-
if (!isStripeJSURL(script.src)) {
|
|
16369
|
-
continue;
|
|
16370
|
-
}
|
|
16371
|
-
return script;
|
|
16372
|
-
}
|
|
16373
|
-
return null;
|
|
16374
|
-
};
|
|
16375
|
-
var injectScript = function injectScript2(params) {
|
|
16376
|
-
var queryString = params && !params.advancedFraudSignals ? "?advancedFraudSignals=false" : "";
|
|
16377
|
-
var script = document.createElement("script");
|
|
16378
|
-
script.src = "".concat(STRIPE_JS_URL).concat(queryString);
|
|
16379
|
-
var headOrBody = document.head || document.body;
|
|
16380
|
-
if (!headOrBody) {
|
|
16381
|
-
throw new Error("Expected document.body not to be null. Stripe.js requires a <body> element.");
|
|
16382
|
-
}
|
|
16383
|
-
headOrBody.appendChild(script);
|
|
16384
|
-
return script;
|
|
16385
|
-
};
|
|
16386
|
-
var registerWrapper = function registerWrapper2(stripe, startTime) {
|
|
16387
|
-
if (!stripe || !stripe._registerWrapper) {
|
|
16388
|
-
return;
|
|
16389
|
-
}
|
|
16390
|
-
stripe._registerWrapper({
|
|
16391
|
-
name: "stripe-js",
|
|
16392
|
-
version: "7.0.0",
|
|
16393
|
-
startTime
|
|
16394
|
-
});
|
|
16395
|
-
};
|
|
16396
|
-
var stripePromise$1 = null;
|
|
16397
|
-
var onErrorListener = null;
|
|
16398
|
-
var onLoadListener = null;
|
|
16399
|
-
var onError = function onError2(reject) {
|
|
16400
|
-
return function(cause) {
|
|
16401
|
-
reject(new Error("Failed to load Stripe.js", {
|
|
16402
|
-
cause
|
|
16403
|
-
}));
|
|
16404
|
-
};
|
|
16405
|
-
};
|
|
16406
|
-
var onLoad = function onLoad2(resolve, reject) {
|
|
16407
|
-
return function() {
|
|
16408
|
-
if (window.Stripe) {
|
|
16409
|
-
resolve(window.Stripe);
|
|
16410
|
-
} else {
|
|
16411
|
-
reject(new Error("Stripe.js not available"));
|
|
16412
|
-
}
|
|
16413
|
-
};
|
|
16414
|
-
};
|
|
16415
|
-
var loadScript = function loadScript2(params) {
|
|
16416
|
-
if (stripePromise$1 !== null) {
|
|
16417
|
-
return stripePromise$1;
|
|
16418
|
-
}
|
|
16419
|
-
stripePromise$1 = new Promise(function(resolve, reject) {
|
|
16420
|
-
if (typeof window === "undefined" || typeof document === "undefined") {
|
|
16421
|
-
resolve(null);
|
|
16422
|
-
return;
|
|
16423
|
-
}
|
|
16424
|
-
if (window.Stripe && params) {
|
|
16425
|
-
console.warn(EXISTING_SCRIPT_MESSAGE);
|
|
16426
|
-
}
|
|
16427
|
-
if (window.Stripe) {
|
|
16428
|
-
resolve(window.Stripe);
|
|
16429
|
-
return;
|
|
16430
|
-
}
|
|
16431
|
-
try {
|
|
16432
|
-
var script = findScript();
|
|
16433
|
-
if (script && params) {
|
|
16434
|
-
console.warn(EXISTING_SCRIPT_MESSAGE);
|
|
16435
|
-
} else if (!script) {
|
|
16436
|
-
script = injectScript(params);
|
|
16437
|
-
} else if (script && onLoadListener !== null && onErrorListener !== null) {
|
|
16438
|
-
var _script$parentNode;
|
|
16439
|
-
script.removeEventListener("load", onLoadListener);
|
|
16440
|
-
script.removeEventListener("error", onErrorListener);
|
|
16441
|
-
(_script$parentNode = script.parentNode) === null || _script$parentNode === void 0 ? void 0 : _script$parentNode.removeChild(script);
|
|
16442
|
-
script = injectScript(params);
|
|
16443
|
-
}
|
|
16444
|
-
onLoadListener = onLoad(resolve, reject);
|
|
16445
|
-
onErrorListener = onError(reject);
|
|
16446
|
-
script.addEventListener("load", onLoadListener);
|
|
16447
|
-
script.addEventListener("error", onErrorListener);
|
|
16448
|
-
} catch (error) {
|
|
16449
|
-
reject(error);
|
|
16450
|
-
return;
|
|
16451
|
-
}
|
|
16452
|
-
});
|
|
16453
|
-
return stripePromise$1["catch"](function(error) {
|
|
16454
|
-
stripePromise$1 = null;
|
|
16455
|
-
return Promise.reject(error);
|
|
16456
|
-
});
|
|
16457
|
-
};
|
|
16458
|
-
var initStripe = function initStripe2(maybeStripe, args, startTime) {
|
|
16459
|
-
if (maybeStripe === null) {
|
|
16460
|
-
return null;
|
|
16461
|
-
}
|
|
16462
|
-
var pk = args[0];
|
|
16463
|
-
var isTestKey = pk.match(/^pk_test/);
|
|
16464
|
-
var version = runtimeVersionToUrlVersion(maybeStripe.version);
|
|
16465
|
-
var expectedVersion = RELEASE_TRAIN;
|
|
16466
|
-
if (isTestKey && version !== expectedVersion) {
|
|
16467
|
-
console.warn("Stripe.js@".concat(version, " was loaded on the page, but @stripe/stripe-js@").concat("7.0.0", " expected Stripe.js@").concat(expectedVersion, ". This may result in unexpected behavior. For more information, see https://docs.stripe.com/sdks/stripejs-versioning"));
|
|
16468
|
-
}
|
|
16469
|
-
var stripe = maybeStripe.apply(void 0, args);
|
|
16470
|
-
registerWrapper(stripe, startTime);
|
|
16471
|
-
return stripe;
|
|
16472
|
-
};
|
|
16473
|
-
var stripePromise;
|
|
16474
|
-
var loadCalled = false;
|
|
16475
|
-
var getStripePromise = function getStripePromise2() {
|
|
16476
|
-
if (stripePromise) {
|
|
16477
|
-
return stripePromise;
|
|
16478
|
-
}
|
|
16479
|
-
stripePromise = loadScript(null)["catch"](function(error) {
|
|
16480
|
-
stripePromise = null;
|
|
16481
|
-
return Promise.reject(error);
|
|
16482
|
-
});
|
|
16483
|
-
return stripePromise;
|
|
16484
|
-
};
|
|
16485
|
-
Promise.resolve().then(function() {
|
|
16486
|
-
return getStripePromise();
|
|
16487
|
-
})["catch"](function(error) {
|
|
16488
|
-
if (!loadCalled) {
|
|
16489
|
-
console.warn(error);
|
|
16490
|
-
}
|
|
16491
|
-
});
|
|
16492
|
-
var loadStripe = function loadStripe2() {
|
|
16493
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
16494
|
-
args[_key] = arguments[_key];
|
|
16495
|
-
}
|
|
16496
|
-
loadCalled = true;
|
|
16497
|
-
var startTime = Date.now();
|
|
16498
|
-
return getStripePromise().then(function(maybeStripe) {
|
|
16499
|
-
return initStripe(maybeStripe, args, startTime);
|
|
16500
|
-
});
|
|
16501
|
-
};
|
|
16502
|
-
|
|
16503
16353
|
// src/components/shared/checkout-dialog/Checkout.tsx
|
|
16504
|
-
import {
|
|
16354
|
+
import { useState as useState5 } from "react";
|
|
16505
16355
|
import { Fragment as Fragment5, jsx as jsx15, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
16506
16356
|
var Checkout = ({
|
|
16507
16357
|
requiresPayment,
|
|
@@ -16510,36 +16360,11 @@ var Checkout = ({
|
|
|
16510
16360
|
}) => {
|
|
16511
16361
|
const { t: t2 } = useTranslation();
|
|
16512
16362
|
const theme = nt();
|
|
16513
|
-
const { api, data } = useEmbed();
|
|
16514
16363
|
const isLightBackground = useIsLightBackground();
|
|
16515
|
-
const [stripe, setStripe] = useState5(null);
|
|
16516
|
-
const [setupIntent, setSetupIntent] = useState5();
|
|
16517
16364
|
const [discount, setDiscount] = useState5("");
|
|
16518
|
-
useEffect4(() => {
|
|
16519
|
-
if (api && data.component?.id) {
|
|
16520
|
-
api.getSetupIntent({ componentId: data.component.id }).then((res) => setSetupIntent(res.data));
|
|
16521
|
-
}
|
|
16522
|
-
}, [api, data.component?.id]);
|
|
16523
|
-
useEffect4(() => {
|
|
16524
|
-
if (setupIntent?.publishableKey) {
|
|
16525
|
-
setStripe(loadStripe(setupIntent.publishableKey));
|
|
16526
|
-
}
|
|
16527
|
-
}, [setupIntent?.publishableKey]);
|
|
16528
16365
|
if (!requiresPayment) {
|
|
16529
16366
|
return null;
|
|
16530
16367
|
}
|
|
16531
|
-
if (!stripe) {
|
|
16532
|
-
return /* @__PURE__ */ jsx15(
|
|
16533
|
-
Flex,
|
|
16534
|
-
{
|
|
16535
|
-
$justifyContent: "center",
|
|
16536
|
-
$alignItems: "center",
|
|
16537
|
-
$flexGrow: 1,
|
|
16538
|
-
$marginTop: "-3.5rem",
|
|
16539
|
-
children: /* @__PURE__ */ jsx15(Loader, { $color: theme.primary, $size: "3xl" })
|
|
16540
|
-
}
|
|
16541
|
-
);
|
|
16542
|
-
}
|
|
16543
16368
|
return /* @__PURE__ */ jsxs10(Fragment5, { children: [
|
|
16544
16369
|
/* @__PURE__ */ jsx15(PaymentMethodDetails, { setPaymentMethodId }),
|
|
16545
16370
|
/* @__PURE__ */ jsxs10(Flex, { $flexDirection: "column", $gap: "1rem", children: [
|
|
@@ -16893,12 +16718,19 @@ var Plan = ({
|
|
|
16893
16718
|
}[entitlement.metricPeriod];
|
|
16894
16719
|
}
|
|
16895
16720
|
const limit = entitlement.softLimit ?? entitlement.valueNumeric;
|
|
16896
|
-
const
|
|
16897
|
-
price: entitlementPrice,
|
|
16898
|
-
currency: entitlementCurrency
|
|
16899
|
-
} = getBillingPrice(
|
|
16721
|
+
const entitlementPriceObject = getBillingPrice(
|
|
16900
16722
|
period === "year" ? entitlement.meteredYearlyPrice : entitlement.meteredMonthlyPrice
|
|
16901
|
-
) ||
|
|
16723
|
+
) || null;
|
|
16724
|
+
let entitlementPrice = entitlementPriceObject?.price;
|
|
16725
|
+
const entitlementCurrency = entitlementPriceObject?.currency;
|
|
16726
|
+
if (entitlement.priceBehavior === "overage" && entitlementPriceObject) {
|
|
16727
|
+
const { priceTier } = entitlementPriceObject;
|
|
16728
|
+
if (priceTier.length) {
|
|
16729
|
+
const lastTier = priceTier[priceTier.length - 1];
|
|
16730
|
+
const { perUnitPrice, perUnitPriceDecimal } = lastTier;
|
|
16731
|
+
entitlementPrice = perUnitPriceDecimal ? Number(perUnitPriceDecimal) : perUnitPrice ?? 0;
|
|
16732
|
+
}
|
|
16733
|
+
}
|
|
16902
16734
|
if (entitlement.priceBehavior && typeof entitlementPrice !== "number") {
|
|
16903
16735
|
return acc;
|
|
16904
16736
|
}
|
|
@@ -17558,7 +17390,7 @@ var CheckoutDialog = ({ top = 0 }) => {
|
|
|
17558
17390
|
setPromoCode(code);
|
|
17559
17391
|
previewCheckout({ promoCode: code });
|
|
17560
17392
|
};
|
|
17561
|
-
|
|
17393
|
+
useEffect4(() => {
|
|
17562
17394
|
if (charges) {
|
|
17563
17395
|
checkoutRef.current?.scrollIntoView({
|
|
17564
17396
|
behavior: "smooth",
|
|
@@ -18355,6 +18187,10 @@ var StyledViewport = dt.div.withConfig({
|
|
|
18355
18187
|
@media (min-width: 768px) {
|
|
18356
18188
|
grid-template-columns: ${({ theme }) => lt`repeat(${theme.numberOfColumns}, minmax(300px, 1fr))`};
|
|
18357
18189
|
}
|
|
18190
|
+
|
|
18191
|
+
@container (max-width: 768px) {
|
|
18192
|
+
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
|
|
18193
|
+
}
|
|
18358
18194
|
`;
|
|
18359
18195
|
|
|
18360
18196
|
// src/components/layout/viewport/Viewport.tsx
|
|
@@ -18783,7 +18619,7 @@ var IncludedFeatures = forwardRef8(({ className, ...rest }, ref) => {
|
|
|
18783
18619
|
IncludedFeatures.displayName = "IncludedFeatures";
|
|
18784
18620
|
|
|
18785
18621
|
// src/components/elements/invoices/Invoices.tsx
|
|
18786
|
-
import { forwardRef as forwardRef9, useEffect as
|
|
18622
|
+
import { forwardRef as forwardRef9, useEffect as useEffect5, useState as useState13 } from "react";
|
|
18787
18623
|
import { jsx as jsx30, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
18788
18624
|
function resolveDesignProps3(props) {
|
|
18789
18625
|
return {
|
|
@@ -18847,11 +18683,14 @@ var Invoices = forwardRef9(({ className, data, ...rest }, ref) => {
|
|
|
18847
18683
|
(prev2) => prev2 !== props.limit.number ? props.limit.number : MAX_VISIBLE_INVOICE_COUNT
|
|
18848
18684
|
);
|
|
18849
18685
|
};
|
|
18850
|
-
|
|
18851
|
-
api?.listInvoices().then((
|
|
18852
|
-
setInvoices(formatInvoices(
|
|
18686
|
+
useEffect5(() => {
|
|
18687
|
+
api?.listInvoices().then((response) => {
|
|
18688
|
+
setInvoices(formatInvoices(response.data));
|
|
18853
18689
|
});
|
|
18854
18690
|
}, [api]);
|
|
18691
|
+
useEffect5(() => {
|
|
18692
|
+
setInvoices(formatInvoices(data));
|
|
18693
|
+
}, [data]);
|
|
18855
18694
|
if (invoices.length === 0) {
|
|
18856
18695
|
return null;
|
|
18857
18696
|
}
|
|
@@ -19025,9 +18864,32 @@ var MeteredFeatures = forwardRef10(({ className, ...rest }, ref) => {
|
|
|
19025
18864
|
}, index) => {
|
|
19026
18865
|
const limit = softLimit ?? allocation ?? 0;
|
|
19027
18866
|
const isOverage = priceBehavior === "overage" && typeof softLimit === "number" && typeof usage === "number" && usage > softLimit;
|
|
19028
|
-
|
|
18867
|
+
let { price, currency } = getBillingPrice(
|
|
19029
18868
|
planPeriod === "year" ? yearlyUsageBasedPrice : monthlyUsageBasedPrice
|
|
19030
18869
|
) || {};
|
|
18870
|
+
if (priceBehavior === "overage") {
|
|
18871
|
+
const productId = (yearlyUsageBasedPrice ?? monthlyUsageBasedPrice)?.productId;
|
|
18872
|
+
if (productId) {
|
|
18873
|
+
const products = data?.subscription?.products ?? [];
|
|
18874
|
+
const product = products.find((p2) => p2.id === productId);
|
|
18875
|
+
if (product && product.priceTier?.length > 1) {
|
|
18876
|
+
const overagePrice = product.priceTier[product.priceTier.length - 1];
|
|
18877
|
+
price = overagePrice.perUnitPriceDecimal ? Number(overagePrice.perUnitPriceDecimal) : overagePrice.perUnitPrice ?? 0;
|
|
18878
|
+
currency = product.currency;
|
|
18879
|
+
}
|
|
18880
|
+
}
|
|
18881
|
+
}
|
|
18882
|
+
if (isOverage) {
|
|
18883
|
+
const productId = (yearlyUsageBasedPrice ?? monthlyUsageBasedPrice).productId;
|
|
18884
|
+
if (productId) {
|
|
18885
|
+
const products = data?.subscription?.products ?? [];
|
|
18886
|
+
const product = products.find((p2) => p2.id === productId);
|
|
18887
|
+
if (product) {
|
|
18888
|
+
price = product.price;
|
|
18889
|
+
currency = product.currency;
|
|
18890
|
+
}
|
|
18891
|
+
}
|
|
18892
|
+
}
|
|
19031
18893
|
const progressBar = props.isVisible && typeof usage === "number" && limit > 0 && priceBehavior !== "pay_as_you_go" && /* @__PURE__ */ jsx31(
|
|
19032
18894
|
ProgressBar,
|
|
19033
18895
|
{
|
|
@@ -19578,7 +19440,161 @@ PaymentMethod.displayName = "PaymentMethod";
|
|
|
19578
19440
|
|
|
19579
19441
|
// src/components/elements/payment-method/PaymentMethodDetails.tsx
|
|
19580
19442
|
import { Elements } from "@stripe/react-stripe-js";
|
|
19581
|
-
|
|
19443
|
+
|
|
19444
|
+
// node_modules/@stripe/stripe-js/dist/index.mjs
|
|
19445
|
+
var RELEASE_TRAIN = "basil";
|
|
19446
|
+
var runtimeVersionToUrlVersion = function runtimeVersionToUrlVersion2(version) {
|
|
19447
|
+
return version === 3 ? "v3" : version;
|
|
19448
|
+
};
|
|
19449
|
+
var ORIGIN = "https://js.stripe.com";
|
|
19450
|
+
var STRIPE_JS_URL = "".concat(ORIGIN, "/").concat(RELEASE_TRAIN, "/stripe.js");
|
|
19451
|
+
var V3_URL_REGEX = /^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/;
|
|
19452
|
+
var STRIPE_JS_URL_REGEX = /^https:\/\/js\.stripe\.com\/(v3|[a-z]+)\/stripe\.js(\?.*)?$/;
|
|
19453
|
+
var EXISTING_SCRIPT_MESSAGE = "loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used";
|
|
19454
|
+
var isStripeJSURL = function isStripeJSURL2(url) {
|
|
19455
|
+
return V3_URL_REGEX.test(url) || STRIPE_JS_URL_REGEX.test(url);
|
|
19456
|
+
};
|
|
19457
|
+
var findScript = function findScript2() {
|
|
19458
|
+
var scripts = document.querySelectorAll('script[src^="'.concat(ORIGIN, '"]'));
|
|
19459
|
+
for (var i2 = 0; i2 < scripts.length; i2++) {
|
|
19460
|
+
var script = scripts[i2];
|
|
19461
|
+
if (!isStripeJSURL(script.src)) {
|
|
19462
|
+
continue;
|
|
19463
|
+
}
|
|
19464
|
+
return script;
|
|
19465
|
+
}
|
|
19466
|
+
return null;
|
|
19467
|
+
};
|
|
19468
|
+
var injectScript = function injectScript2(params) {
|
|
19469
|
+
var queryString = params && !params.advancedFraudSignals ? "?advancedFraudSignals=false" : "";
|
|
19470
|
+
var script = document.createElement("script");
|
|
19471
|
+
script.src = "".concat(STRIPE_JS_URL).concat(queryString);
|
|
19472
|
+
var headOrBody = document.head || document.body;
|
|
19473
|
+
if (!headOrBody) {
|
|
19474
|
+
throw new Error("Expected document.body not to be null. Stripe.js requires a <body> element.");
|
|
19475
|
+
}
|
|
19476
|
+
headOrBody.appendChild(script);
|
|
19477
|
+
return script;
|
|
19478
|
+
};
|
|
19479
|
+
var registerWrapper = function registerWrapper2(stripe, startTime) {
|
|
19480
|
+
if (!stripe || !stripe._registerWrapper) {
|
|
19481
|
+
return;
|
|
19482
|
+
}
|
|
19483
|
+
stripe._registerWrapper({
|
|
19484
|
+
name: "stripe-js",
|
|
19485
|
+
version: "7.0.0",
|
|
19486
|
+
startTime
|
|
19487
|
+
});
|
|
19488
|
+
};
|
|
19489
|
+
var stripePromise$1 = null;
|
|
19490
|
+
var onErrorListener = null;
|
|
19491
|
+
var onLoadListener = null;
|
|
19492
|
+
var onError = function onError2(reject) {
|
|
19493
|
+
return function(cause) {
|
|
19494
|
+
reject(new Error("Failed to load Stripe.js", {
|
|
19495
|
+
cause
|
|
19496
|
+
}));
|
|
19497
|
+
};
|
|
19498
|
+
};
|
|
19499
|
+
var onLoad = function onLoad2(resolve, reject) {
|
|
19500
|
+
return function() {
|
|
19501
|
+
if (window.Stripe) {
|
|
19502
|
+
resolve(window.Stripe);
|
|
19503
|
+
} else {
|
|
19504
|
+
reject(new Error("Stripe.js not available"));
|
|
19505
|
+
}
|
|
19506
|
+
};
|
|
19507
|
+
};
|
|
19508
|
+
var loadScript = function loadScript2(params) {
|
|
19509
|
+
if (stripePromise$1 !== null) {
|
|
19510
|
+
return stripePromise$1;
|
|
19511
|
+
}
|
|
19512
|
+
stripePromise$1 = new Promise(function(resolve, reject) {
|
|
19513
|
+
if (typeof window === "undefined" || typeof document === "undefined") {
|
|
19514
|
+
resolve(null);
|
|
19515
|
+
return;
|
|
19516
|
+
}
|
|
19517
|
+
if (window.Stripe && params) {
|
|
19518
|
+
console.warn(EXISTING_SCRIPT_MESSAGE);
|
|
19519
|
+
}
|
|
19520
|
+
if (window.Stripe) {
|
|
19521
|
+
resolve(window.Stripe);
|
|
19522
|
+
return;
|
|
19523
|
+
}
|
|
19524
|
+
try {
|
|
19525
|
+
var script = findScript();
|
|
19526
|
+
if (script && params) {
|
|
19527
|
+
console.warn(EXISTING_SCRIPT_MESSAGE);
|
|
19528
|
+
} else if (!script) {
|
|
19529
|
+
script = injectScript(params);
|
|
19530
|
+
} else if (script && onLoadListener !== null && onErrorListener !== null) {
|
|
19531
|
+
var _script$parentNode;
|
|
19532
|
+
script.removeEventListener("load", onLoadListener);
|
|
19533
|
+
script.removeEventListener("error", onErrorListener);
|
|
19534
|
+
(_script$parentNode = script.parentNode) === null || _script$parentNode === void 0 ? void 0 : _script$parentNode.removeChild(script);
|
|
19535
|
+
script = injectScript(params);
|
|
19536
|
+
}
|
|
19537
|
+
onLoadListener = onLoad(resolve, reject);
|
|
19538
|
+
onErrorListener = onError(reject);
|
|
19539
|
+
script.addEventListener("load", onLoadListener);
|
|
19540
|
+
script.addEventListener("error", onErrorListener);
|
|
19541
|
+
} catch (error) {
|
|
19542
|
+
reject(error);
|
|
19543
|
+
return;
|
|
19544
|
+
}
|
|
19545
|
+
});
|
|
19546
|
+
return stripePromise$1["catch"](function(error) {
|
|
19547
|
+
stripePromise$1 = null;
|
|
19548
|
+
return Promise.reject(error);
|
|
19549
|
+
});
|
|
19550
|
+
};
|
|
19551
|
+
var initStripe = function initStripe2(maybeStripe, args, startTime) {
|
|
19552
|
+
if (maybeStripe === null) {
|
|
19553
|
+
return null;
|
|
19554
|
+
}
|
|
19555
|
+
var pk = args[0];
|
|
19556
|
+
var isTestKey = pk.match(/^pk_test/);
|
|
19557
|
+
var version = runtimeVersionToUrlVersion(maybeStripe.version);
|
|
19558
|
+
var expectedVersion = RELEASE_TRAIN;
|
|
19559
|
+
if (isTestKey && version !== expectedVersion) {
|
|
19560
|
+
console.warn("Stripe.js@".concat(version, " was loaded on the page, but @stripe/stripe-js@").concat("7.0.0", " expected Stripe.js@").concat(expectedVersion, ". This may result in unexpected behavior. For more information, see https://docs.stripe.com/sdks/stripejs-versioning"));
|
|
19561
|
+
}
|
|
19562
|
+
var stripe = maybeStripe.apply(void 0, args);
|
|
19563
|
+
registerWrapper(stripe, startTime);
|
|
19564
|
+
return stripe;
|
|
19565
|
+
};
|
|
19566
|
+
var stripePromise;
|
|
19567
|
+
var loadCalled = false;
|
|
19568
|
+
var getStripePromise = function getStripePromise2() {
|
|
19569
|
+
if (stripePromise) {
|
|
19570
|
+
return stripePromise;
|
|
19571
|
+
}
|
|
19572
|
+
stripePromise = loadScript(null)["catch"](function(error) {
|
|
19573
|
+
stripePromise = null;
|
|
19574
|
+
return Promise.reject(error);
|
|
19575
|
+
});
|
|
19576
|
+
return stripePromise;
|
|
19577
|
+
};
|
|
19578
|
+
Promise.resolve().then(function() {
|
|
19579
|
+
return getStripePromise();
|
|
19580
|
+
})["catch"](function(error) {
|
|
19581
|
+
if (!loadCalled) {
|
|
19582
|
+
console.warn(error);
|
|
19583
|
+
}
|
|
19584
|
+
});
|
|
19585
|
+
var loadStripe = function loadStripe2() {
|
|
19586
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
19587
|
+
args[_key] = arguments[_key];
|
|
19588
|
+
}
|
|
19589
|
+
loadCalled = true;
|
|
19590
|
+
var startTime = Date.now();
|
|
19591
|
+
return getStripePromise().then(function(maybeStripe) {
|
|
19592
|
+
return initStripe(maybeStripe, args, startTime);
|
|
19593
|
+
});
|
|
19594
|
+
};
|
|
19595
|
+
|
|
19596
|
+
// src/components/elements/payment-method/PaymentMethodDetails.tsx
|
|
19597
|
+
import { useCallback as useCallback10, useEffect as useEffect6, useMemo as useMemo13, useState as useState14 } from "react";
|
|
19582
19598
|
import { jsx as jsx34, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
19583
19599
|
var resolveDesignProps6 = () => {
|
|
19584
19600
|
return {
|
|
@@ -19607,7 +19623,7 @@ var PaymentMethodDetails = ({
|
|
|
19607
19623
|
const [setupIntent, setSetupIntent] = useState14();
|
|
19608
19624
|
const [showDifferentPaymentMethods, setShowDifferentPaymentMethods] = useState14(false);
|
|
19609
19625
|
const [paymentMethod, setPaymentMethod] = useState14(void 0);
|
|
19610
|
-
|
|
19626
|
+
useEffect6(() => {
|
|
19611
19627
|
setPaymentMethod(
|
|
19612
19628
|
data.subscription?.paymentMethod || data.company?.defaultPaymentMethod
|
|
19613
19629
|
);
|
|
@@ -19625,7 +19641,7 @@ var PaymentMethodDetails = ({
|
|
|
19625
19641
|
}
|
|
19626
19642
|
return expiration;
|
|
19627
19643
|
}, [paymentMethod?.cardExpYear, paymentMethod?.cardExpMonth]);
|
|
19628
|
-
|
|
19644
|
+
useEffect6(() => {
|
|
19629
19645
|
if (!stripe && setupIntent?.publishableKey) {
|
|
19630
19646
|
setStripe(loadStripe(setupIntent.publishableKey));
|
|
19631
19647
|
}
|
|
@@ -20046,8 +20062,24 @@ var PlanManager = forwardRef12(({ children, className, portal, ...rest }, ref) =
|
|
|
20046
20062
|
usageBasedEntitlements.reduce(
|
|
20047
20063
|
(acc, entitlement, entitlementIndex) => {
|
|
20048
20064
|
const limit = entitlement.softLimit ?? entitlement.allocation ?? 0;
|
|
20049
|
-
|
|
20065
|
+
let overageAmount = entitlement.priceBehavior === "overage" && (entitlement?.usage ?? 0) - (entitlement?.softLimit ?? 0);
|
|
20050
20066
|
const amount = overageAmount || entitlement.allocation || 0;
|
|
20067
|
+
if (entitlement.priceBehavior === "overage" && data.subscription) {
|
|
20068
|
+
const subscription = data.subscription;
|
|
20069
|
+
const entitlementPrice = entitlement.monthlyUsageBasedPrice ?? entitlement.yearlyUsageBasedPrice;
|
|
20070
|
+
if (entitlementPrice) {
|
|
20071
|
+
const entitlementProduct = subscription.products.find(
|
|
20072
|
+
(product) => product.id === entitlementPrice.productId
|
|
20073
|
+
);
|
|
20074
|
+
if (entitlementProduct?.priceTier.length) {
|
|
20075
|
+
const entitlementProductLastTierPrice = entitlementProduct?.priceTier[entitlementProduct?.priceTier?.length - 1];
|
|
20076
|
+
overageAmount = (entitlement?.usage ?? 0) - (entitlementProduct?.priceTier[0].upTo ?? 0);
|
|
20077
|
+
entitlement.price = entitlementProductLastTierPrice?.perUnitPriceDecimal ? Number(
|
|
20078
|
+
entitlementProductLastTierPrice?.perUnitPriceDecimal
|
|
20079
|
+
) : entitlementProductLastTierPrice.perUnitPrice ?? entitlement.price;
|
|
20080
|
+
}
|
|
20081
|
+
}
|
|
20082
|
+
}
|
|
20051
20083
|
if (entitlement.feature?.name) {
|
|
20052
20084
|
acc.push(
|
|
20053
20085
|
/* @__PURE__ */ jsxs27(
|
|
@@ -20078,7 +20110,7 @@ var PlanManager = forwardRef12(({ children, className, portal, ...rest }, ref) =
|
|
|
20078
20110
|
children: typeof overageAmount === "number" && overageAmount > 0 ? t2("X over the limit", {
|
|
20079
20111
|
amount: overageAmount
|
|
20080
20112
|
}) : /* @__PURE__ */ jsxs27(Fragment11, { children: [
|
|
20081
|
-
t2("
|
|
20113
|
+
t2("overage fee"),
|
|
20082
20114
|
":",
|
|
20083
20115
|
" ",
|
|
20084
20116
|
formatCurrency(
|
|
@@ -20422,12 +20454,25 @@ var PricingTable = forwardRef13(({ children, className, ...rest }, ref) => {
|
|
|
20422
20454
|
plan.entitlements.reduce(
|
|
20423
20455
|
(acc, entitlement, entitlementIndex) => {
|
|
20424
20456
|
const limit = entitlement.softLimit ?? entitlement.valueNumeric;
|
|
20425
|
-
|
|
20426
|
-
|
|
20427
|
-
|
|
20428
|
-
}
|
|
20429
|
-
|
|
20430
|
-
|
|
20457
|
+
let entitlementPriceObject;
|
|
20458
|
+
if (selectedPeriod === "month") {
|
|
20459
|
+
entitlementPriceObject = entitlement.meteredMonthlyPrice;
|
|
20460
|
+
} else if (selectedPeriod === "year") {
|
|
20461
|
+
entitlementPriceObject = entitlement.meteredYearlyPrice;
|
|
20462
|
+
}
|
|
20463
|
+
let entitlementPrice;
|
|
20464
|
+
let entitlementCurrency;
|
|
20465
|
+
if (entitlementPriceObject) {
|
|
20466
|
+
entitlementPrice = entitlementPriceObject?.price;
|
|
20467
|
+
entitlementCurrency = entitlementPriceObject?.currency;
|
|
20468
|
+
}
|
|
20469
|
+
if (entitlementPriceObject && entitlement.priceBehavior === "overage") {
|
|
20470
|
+
if (entitlementPriceObject.priceTier?.length > 1) {
|
|
20471
|
+
const overagePrice = entitlementPriceObject.priceTier[entitlementPriceObject.priceTier.length - 1];
|
|
20472
|
+
entitlementPrice = overagePrice.perUnitPriceDecimal ? Number(overagePrice.perUnitPriceDecimal) : overagePrice.perUnitPrice ?? 0;
|
|
20473
|
+
entitlementCurrency = entitlementPriceObject.currency;
|
|
20474
|
+
}
|
|
20475
|
+
}
|
|
20431
20476
|
if (entitlement.priceBehavior && typeof entitlementPrice !== "number") {
|
|
20432
20477
|
return acc;
|
|
20433
20478
|
}
|
|
@@ -21148,7 +21193,7 @@ var UpcomingBill = forwardRef16(({ className, ...rest }, ref) => {
|
|
|
21148
21193
|
UpcomingBill.displayName = "UpcomingBill";
|
|
21149
21194
|
|
|
21150
21195
|
// src/components/embed/ComponentTree.tsx
|
|
21151
|
-
import { useEffect as
|
|
21196
|
+
import { useEffect as useEffect7, useState as useState16 } from "react";
|
|
21152
21197
|
|
|
21153
21198
|
// src/components/embed/renderer.ts
|
|
21154
21199
|
import { createElement as createElement5 } from "react";
|
|
@@ -21255,7 +21300,7 @@ var Error2 = ({ message }) => {
|
|
|
21255
21300
|
var ComponentTree = () => {
|
|
21256
21301
|
const { error, nodes, isPending } = useEmbed();
|
|
21257
21302
|
const [children, setChildren] = useState16(/* @__PURE__ */ jsx40(Loading, {}));
|
|
21258
|
-
|
|
21303
|
+
useEffect7(() => {
|
|
21259
21304
|
const renderer = createRenderer();
|
|
21260
21305
|
setChildren(nodes.map(renderer));
|
|
21261
21306
|
}, [nodes]);
|