@schematichq/schematic-components 2.11.0 → 2.13.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.
@@ -5040,6 +5040,7 @@ var en_default = {
5040
5040
  "An invoice is created when charges reach $X; the rest is billed monthly.": "An invoice is created when charges reach {{amount}}; the rest is billed monthly.",
5041
5041
  "An unknown error occurred.": "An unknown error occurred.",
5042
5042
  Billed: "Billed {{period}}",
5043
+ "Buy credits": "Buy credits",
5043
5044
  "Cancel subscription": "Cancel subscription",
5044
5045
  "Cannot change to this plan.": "{{reason, list(type: 'conjunction')}} usage is over the limit.",
5045
5046
  "Cannot downgrade entitlement": "Cannot downgrade to a quantity lower than current usage.",
@@ -5094,6 +5095,7 @@ var en_default = {
5094
5095
  Loading: "Loading",
5095
5096
  "Manage plan": "Manage plan",
5096
5097
  "Monthly total": "Monthly total",
5098
+ "Quarterly total": "Quarterly total",
5097
5099
  Next: "Next",
5098
5100
  "No invoices created yet": "No invoices created yet",
5099
5101
  "No limit": "No limit",
@@ -5126,6 +5128,8 @@ var en_default = {
5126
5128
  "Save payment method": "Save payment method",
5127
5129
  "Save with yearly billing": "Save up to {{percent}}% with yearly billing",
5128
5130
  "Saving with yearly billing": "You are saving {{percent}}% with yearly billing",
5131
+ "Save with quarterly billing": "Save up to {{percent}}% with quarterly billing",
5132
+ "Saving with quarterly billing": "You are saving {{percent}}% with quarterly billing",
5129
5133
  "See all": "See all",
5130
5134
  "See balance details": "See balance details",
5131
5135
  "See less": "See less",
@@ -5199,6 +5203,7 @@ var en_default = {
5199
5203
  "$X/Y units/period": "{{cost}}/{{size}} {{units}}/{{period}}",
5200
5204
  day: "day",
5201
5205
  month: "month",
5206
+ quarter: "quarter",
5202
5207
  year: "year",
5203
5208
  "one time": "one time",
5204
5209
  "billing period": "billing period",
@@ -5207,6 +5212,7 @@ var en_default = {
5207
5212
  use: "use",
5208
5213
  used: "used",
5209
5214
  "month, billed yearly": "month, billed yearly",
5215
+ "month, billed quarterly": "month, billed quarterly",
5210
5216
  purchased: "purchased {{date}}",
5211
5217
  usage: {
5212
5218
  limited: "{{amount}} of {{allocation}} used",
@@ -6847,7 +6853,7 @@ var i;
6847
6853
  var c2 = "undefined" != typeof process && void 0 !== process.env && (process.env.REACT_APP_SC_ATTR || process.env.SC_ATTR) || "data-styled";
6848
6854
  var a2 = "active";
6849
6855
  var l2 = "data-styled-version";
6850
- var u2 = "6.4.1";
6856
+ var u2 = "6.4.2";
6851
6857
  var h2 = "/*!sc*/\n";
6852
6858
  var d2 = "undefined" != typeof window && "undefined" != typeof document;
6853
6859
  function p2(e2) {
@@ -6856,7 +6862,7 @@ function p2(e2) {
6856
6862
  if (void 0 !== t3 && "" !== t3) return "false" !== t3;
6857
6863
  }
6858
6864
  }
6859
- var f2 = Boolean("boolean" == typeof SC_DISABLE_SPEEDY ? SC_DISABLE_SPEEDY : null !== (i = null !== (r2 = p2("REACT_APP_SC_DISABLE_SPEEDY")) && void 0 !== r2 ? r2 : p2("SC_DISABLE_SPEEDY")) && void 0 !== i ? i : "undefined" == typeof process || void 0 === process.env || true);
6865
+ var f2 = Boolean("boolean" == typeof SC_DISABLE_SPEEDY ? SC_DISABLE_SPEEDY : null !== (i = null !== (r2 = p2("REACT_APP_SC_DISABLE_SPEEDY")) && void 0 !== r2 ? r2 : p2("SC_DISABLE_SPEEDY")) && void 0 !== i ? i : "undefined" != typeof process && void 0 !== process.env && true);
6860
6866
  var m2 = "sc-keyframes-";
6861
6867
  var g2 = true ? { 1: "Cannot create styled-component for component: %s.\n\n", 2: "Can't collect styles once you've consumed a `ServerStyleSheet`'s styles! `ServerStyleSheet` is a one off instance for each server-side render cycle.\n\n- Are you trying to reuse it across renders?\n- Are you accidentally calling collectStyles twice?\n\n", 3: "Streaming SSR is only supported in a Node.js environment; Please do not try to call this method in the browser.\n\n", 4: "The `StyleSheetManager` expects a valid target or sheet prop!\n\n- Does this error occur on the client and is your target falsy?\n- Does this error occur on the server and is the sheet falsy?\n\n", 5: "The clone method cannot be used on the client!\n\n- Are you running in a client-like environment on the server?\n- Are you trying to run SSR on the client?\n\n", 6: "Trying to insert a new style tag, but the given Node is unmounted!\n\n- Are you using a custom target that isn't mounted?\n- Does your document not have a valid head element?\n- Have you accidentally removed a style tag manually?\n\n", 7: 'ThemeProvider: Please return an object from your "theme" prop function, e.g.\n\n```js\ntheme={() => ({})}\n```\n\n', 8: 'ThemeProvider: Please make your "theme" prop an object.\n\n', 9: "Missing document `<head>`\n\n", 10: "Cannot find a StyleSheet instance. Usually this happens if there are multiple copies of styled-components loaded at once. Check out this issue for how to troubleshoot and fix the common cases where this situation can happen: https://github.com/styled-components/styled-components/issues/1941#issuecomment-417862021\n\n", 11: "_This error was replaced with a dev-time warning, it will be deleted for v4 final._ [createGlobalStyle] received children which will not be rendered. Please use the component without passing children elements.\n\n", 12: "It seems you are interpolating a keyframe declaration (%s) into an untagged string. Please wrap your string in the css\\`\\` helper which ensures the styles are injected correctly. See https://styled-components.com/docs/api#css\n\n", 13: "%s is not a styled component and cannot be referred to via component selector. See https://styled-components.com/docs/advanced#referring-to-other-components for more details.\n\n", 14: 'ThemeProvider: "theme" prop is required.\n\n', 15: "A stylis plugin has been supplied that is not named. We need a name for each plugin to be able to prevent styling collisions between different stylis configurations within the same app. Before you pass your plugin to `<StyleSheetManager stylisPlugins={[]}>`, please make sure each plugin is uniquely-named, e.g.\n\n```js\nObject.defineProperty(importedPlugin, 'name', { value: 'some-unique-name' });\n```\n\n", 16: "Reached the limit of how many styled components may be created at group %s.\nYou may only create up to 1,073,741,824 components. If you're creating components dynamically,\nas for instance in your render method then you may be running into this limitation.\n\n", 17: "CSSStyleSheet could not be found on HTMLStyleElement.\nHas styled-components' style tag been unmounted or altered by another script?\n\n", 18: "Accessing `useTheme` hook outside of a `<ThemeProvider>` element.\n\n```jsx\nimport { useTheme } from 'styled-components';\nexport function StyledCompoent({ children }) {\n const theme = useTheme();\n return <div style={{ width: theme.sizes.full }}>{children}</div>;\n}\n\nimport { StyledComponent } from './StyledComponent';\nimport { theme } from './theme';\nexport function App() {\n return (\n <ThemeProvider theme={theme}>\n <StyledComponent />\n </ThemeProvider>\n );\n}\n```\n\nIf you need access to the theme in an uncertain composition scenario, `React.useContext(ThemeContext)` will not emit an error if there is no `ThemeProvider` ancestor.\n" } : {};
6862
6868
  function v2(e2, ...t3) {
@@ -6978,28 +6984,29 @@ function se2(e2, t3, n2) {
6978
6984
  function re2(e2) {
6979
6985
  return "function" == typeof e2;
6980
6986
  }
6981
- function ie2(e2) {
6982
- return "object" == typeof e2 && "styledComponentId" in e2;
6987
+ var ie2 = /* @__PURE__ */ Symbol.for("react.forward_ref");
6988
+ function ce2(e2) {
6989
+ return null != e2 && ("object" == typeof e2 || "function" == typeof e2) && e2.$$typeof === ie2 && "styledComponentId" in e2;
6983
6990
  }
6984
- function ce2(e2, t3) {
6991
+ function ae2(e2, t3) {
6985
6992
  return e2 && t3 ? e2 + " " + t3 : e2 || t3 || "";
6986
6993
  }
6987
- function ae2(e2, t3) {
6994
+ function le2(e2, t3) {
6988
6995
  return e2.join(t3 || "");
6989
6996
  }
6990
- function le2(e2) {
6997
+ function ue2(e2) {
6991
6998
  return null !== e2 && "object" == typeof e2 && e2.constructor.name === Object.name && !("props" in e2 && e2.$$typeof);
6992
6999
  }
6993
- function ue2(e2, t3, n2 = false) {
6994
- if (!n2 && !le2(e2) && !Array.isArray(e2)) return t3;
6995
- if (Array.isArray(t3)) for (let n3 = 0; n3 < t3.length; n3++) e2[n3] = ue2(e2[n3], t3[n3]);
6996
- else if (le2(t3)) for (const n3 in t3) e2[n3] = ue2(e2[n3], t3[n3]);
7000
+ function he2(e2, t3, n2 = false) {
7001
+ if (!n2 && !ue2(e2) && !Array.isArray(e2)) return t3;
7002
+ if (Array.isArray(t3)) for (let n3 = 0; n3 < t3.length; n3++) e2[n3] = he2(e2[n3], t3[n3]);
7003
+ else if (ue2(t3)) for (const n3 in t3) e2[n3] = he2(e2[n3], t3[n3]);
6997
7004
  return e2;
6998
7005
  }
6999
- function he2(e2, t3) {
7006
+ function de2(e2, t3) {
7000
7007
  Object.defineProperty(e2, "toString", { value: t3 });
7001
7008
  }
7002
- var de2 = class {
7009
+ var pe2 = class {
7003
7010
  constructor(e2) {
7004
7011
  this.groupSizes = new Uint32Array(512), this.length = 512, this.tag = e2, this._cGroup = 0, this._cIndex = 0;
7005
7012
  }
@@ -7038,66 +7045,66 @@ var de2 = class {
7038
7045
  return t3;
7039
7046
  }
7040
7047
  };
7041
- var pe2 = `style[${c2}][${l2}="${u2}"]`;
7042
- var fe2 = new RegExp(`^${c2}\\.g(\\d+)\\[id="([\\w\\d-]+)"\\].*?"([^"]*)`);
7043
- var me2 = (e2) => "undefined" != typeof ShadowRoot && e2 instanceof ShadowRoot || "host" in e2 && 11 === e2.nodeType;
7044
- var ye2 = (e2) => {
7048
+ var fe2 = `style[${c2}][${l2}="${u2}"]`;
7049
+ var me2 = new RegExp(`^${c2}\\.g(\\d+)\\[id="([\\w\\d-]+)"\\].*?"([^"]*)`);
7050
+ var ye2 = (e2) => "undefined" != typeof ShadowRoot && e2 instanceof ShadowRoot || "host" in e2 && 11 === e2.nodeType;
7051
+ var ge2 = (e2) => {
7045
7052
  if (!e2) return document;
7046
- if (me2(e2)) return e2;
7053
+ if (ye2(e2)) return e2;
7047
7054
  if ("getRootNode" in e2) {
7048
7055
  const t3 = e2.getRootNode();
7049
- if (me2(t3)) return t3;
7056
+ if (ye2(t3)) return t3;
7050
7057
  }
7051
7058
  return document;
7052
7059
  };
7053
- var ge2 = (e2, t3, n2) => {
7060
+ var ve2 = (e2, t3, n2) => {
7054
7061
  const o2 = n2.split(",");
7055
7062
  let s;
7056
7063
  for (let n3 = 0, r3 = o2.length; n3 < r3; n3++) (s = o2[n3]) && e2.registerName(t3, s);
7057
7064
  };
7058
- var ve2 = (e2, t3) => {
7065
+ var Se2 = (e2, t3) => {
7059
7066
  var n2;
7060
7067
  const o2 = (null !== (n2 = t3.textContent) && void 0 !== n2 ? n2 : "").split(h2), s = [];
7061
7068
  for (let t4 = 0, n3 = o2.length; t4 < n3; t4++) {
7062
7069
  const n4 = o2[t4].trim();
7063
7070
  if (!n4) continue;
7064
- const r3 = n4.match(fe2);
7071
+ const r3 = n4.match(me2);
7065
7072
  if (r3) {
7066
7073
  const t5 = 0 | parseInt(r3[1], 10), n5 = r3[2];
7067
- 0 !== t5 && (E2(n5, t5), ge2(e2, n5, r3[3]), e2.getTag().insertRules(t5, s)), s.length = 0;
7074
+ 0 !== t5 && (E2(n5, t5), ve2(e2, n5, r3[3]), e2.getTag().insertRules(t5, s)), s.length = 0;
7068
7075
  } else s.push(n4);
7069
7076
  }
7070
7077
  };
7071
- var Se2 = (e2) => {
7072
- const t3 = ye2(e2.options.target).querySelectorAll(pe2);
7078
+ var be2 = (e2) => {
7079
+ const t3 = ge2(e2.options.target).querySelectorAll(fe2);
7073
7080
  for (let n2 = 0, o2 = t3.length; n2 < o2; n2++) {
7074
7081
  const o3 = t3[n2];
7075
- o3 && o3.getAttribute(c2) !== a2 && (ve2(e2, o3), o3.parentNode && o3.parentNode.removeChild(o3));
7082
+ o3 && o3.getAttribute(c2) !== a2 && (Se2(e2, o3), o3.parentNode && o3.parentNode.removeChild(o3));
7076
7083
  }
7077
7084
  };
7078
- var be2 = false;
7079
- function we2() {
7080
- if (false !== be2) return be2;
7085
+ var we2 = false;
7086
+ function Ne2() {
7087
+ if (false !== we2) return we2;
7081
7088
  if ("undefined" != typeof document) {
7082
7089
  const e2 = document.head.querySelector('meta[property="csp-nonce"]');
7083
- if (e2) return be2 = e2.nonce || e2.getAttribute("content") || void 0;
7090
+ if (e2) return we2 = e2.nonce || e2.getAttribute("content") || void 0;
7084
7091
  const t3 = document.head.querySelector('meta[name="sc-nonce"]');
7085
- if (t3) return be2 = t3.getAttribute("content") || void 0;
7092
+ if (t3) return we2 = t3.getAttribute("content") || void 0;
7086
7093
  }
7087
- return be2 = "undefined" != typeof __webpack_nonce__ ? __webpack_nonce__ : void 0;
7094
+ return we2 = "undefined" != typeof __webpack_nonce__ ? __webpack_nonce__ : void 0;
7088
7095
  }
7089
- var Ne2 = (e2, t3) => {
7096
+ var Ce2 = (e2, t3) => {
7090
7097
  const n2 = document.head, o2 = e2 || n2, s = document.createElement("style"), r3 = ((e3) => {
7091
7098
  const t4 = Array.from(e3.querySelectorAll(`style[${c2}]`));
7092
7099
  return t4[t4.length - 1];
7093
7100
  })(o2), i2 = void 0 !== r3 ? r3.nextSibling : null;
7094
7101
  s.setAttribute(c2, a2), s.setAttribute(l2, u2);
7095
- const h3 = t3 || we2();
7102
+ const h3 = t3 || Ne2();
7096
7103
  return h3 && s.setAttribute("nonce", h3), o2.insertBefore(s, i2), s;
7097
7104
  };
7098
- var Ce2 = class {
7105
+ var Oe2 = class {
7099
7106
  constructor(e2, t3) {
7100
- this.element = Ne2(e2, t3), this.element.appendChild(document.createTextNode("")), this.sheet = ((e3) => {
7107
+ this.element = Ce2(e2, t3), this.element.appendChild(document.createTextNode("")), this.sheet = ((e3) => {
7101
7108
  var t4;
7102
7109
  if (e3.sheet) return e3.sheet;
7103
7110
  const n2 = null !== (t4 = e3.getRootNode().styleSheets) && void 0 !== t4 ? t4 : document.styleSheets;
@@ -7123,9 +7130,9 @@ var Ce2 = class {
7123
7130
  return t3 && t3.cssText ? t3.cssText : "";
7124
7131
  }
7125
7132
  };
7126
- var Oe2 = class {
7133
+ var Ee2 = class {
7127
7134
  constructor(e2, t3) {
7128
- this.element = Ne2(e2, t3), this.nodes = this.element.childNodes, this.length = 0;
7135
+ this.element = Ce2(e2, t3), this.nodes = this.element.childNodes, this.length = 0;
7129
7136
  }
7130
7137
  insertRule(e2, t3) {
7131
7138
  if (e2 <= this.length && e2 >= 0) {
@@ -7141,14 +7148,14 @@ var Oe2 = class {
7141
7148
  return e2 < this.length ? this.nodes[e2].textContent : "";
7142
7149
  }
7143
7150
  };
7144
- var Ee2 = d2;
7145
- var Ae2 = { isServer: !d2, useCSSOMInjection: !f2 };
7146
- var Pe2 = class _Pe {
7151
+ var Ae2 = d2;
7152
+ var Pe2 = { isServer: !d2, useCSSOMInjection: !f2 };
7153
+ var _e2 = class __e {
7147
7154
  static registerId(e2) {
7148
7155
  return C2(e2);
7149
7156
  }
7150
7157
  constructor(e2 = $2, t3 = {}, n2) {
7151
- this.options = Object.assign(Object.assign({}, Ae2), e2), this.gs = t3, this.keyframeIds = /* @__PURE__ */ new Set(), this.names = new Map(n2), this.server = !!e2.isServer, !this.server && d2 && Ee2 && (Ee2 = false, Se2(this)), he2(this, () => ((e3) => {
7158
+ this.options = Object.assign(Object.assign({}, Pe2), e2), this.gs = t3, this.keyframeIds = /* @__PURE__ */ new Set(), this.names = new Map(n2), this.server = !!e2.isServer, !this.server && d2 && Ae2 && (Ae2 = false, be2(this)), de2(this, () => ((e3) => {
7152
7159
  const t4 = e3.getTag(), { length: n3 } = t4;
7153
7160
  let o2 = "";
7154
7161
  for (let s = 0; s < n3; s++) {
@@ -7167,17 +7174,17 @@ var Pe2 = class _Pe {
7167
7174
  })(this));
7168
7175
  }
7169
7176
  rehydrate() {
7170
- !this.server && d2 && Se2(this);
7177
+ !this.server && d2 && be2(this);
7171
7178
  }
7172
7179
  reconstructWithOptions(e2, t3 = true) {
7173
- const n2 = new _Pe(Object.assign(Object.assign({}, this.options), e2), this.gs, t3 && this.names || void 0);
7174
- return n2.keyframeIds = new Set(this.keyframeIds), !this.server && d2 && e2.target !== this.options.target && ye2(this.options.target) !== ye2(e2.target) && Se2(n2), n2;
7180
+ const n2 = new __e(Object.assign(Object.assign({}, this.options), e2), this.gs, t3 && this.names || void 0);
7181
+ return n2.keyframeIds = new Set(this.keyframeIds), !this.server && d2 && e2.target !== this.options.target && ge2(this.options.target) !== ge2(e2.target) && be2(n2), n2;
7175
7182
  }
7176
7183
  allocateGSInstance(e2) {
7177
7184
  return this.gs[e2] = (this.gs[e2] || 0) + 1;
7178
7185
  }
7179
7186
  getTag() {
7180
- return this.tag || (this.tag = (e2 = (({ useCSSOMInjection: e3, target: t3, nonce: n2 }) => e3 ? new Ce2(t3, n2) : new Oe2(t3, n2))(this.options), new de2(e2)));
7187
+ return this.tag || (this.tag = (e2 = (({ useCSSOMInjection: e3, target: t3, nonce: n2 }) => e3 ? new Oe2(t3, n2) : new Ee2(t3, n2))(this.options), new pe2(e2)));
7181
7188
  var e2;
7182
7189
  }
7183
7190
  hasNameForId(e2, t3) {
@@ -7202,13 +7209,13 @@ var Pe2 = class _Pe {
7202
7209
  this.tag = void 0;
7203
7210
  }
7204
7211
  };
7205
- var _e2 = /* @__PURE__ */ new WeakSet();
7206
- var Ie2 = { animationIterationCount: 1, aspectRatio: 1, borderImageOutset: 1, borderImageSlice: 1, borderImageWidth: 1, columnCount: 1, columns: 1, flex: 1, flexGrow: 1, flexShrink: 1, gridRow: 1, gridRowEnd: 1, gridRowSpan: 1, gridRowStart: 1, gridColumn: 1, gridColumnEnd: 1, gridColumnSpan: 1, gridColumnStart: 1, fontWeight: 1, lineHeight: 1, opacity: 1, order: 1, orphans: 1, scale: 1, tabSize: 1, widows: 1, zIndex: 1, zoom: 1, WebkitLineClamp: 1, fillOpacity: 1, floodOpacity: 1, stopOpacity: 1, strokeDasharray: 1, strokeDashoffset: 1, strokeMiterlimit: 1, strokeOpacity: 1, strokeWidth: 1 };
7207
- function $e2(e2, t3) {
7208
- return null == t3 || "boolean" == typeof t3 || "" === t3 ? "" : "number" != typeof t3 || 0 === t3 || e2 in Ie2 || e2.startsWith("--") ? String(t3).trim() : t3 + "px";
7212
+ var Ie2 = /* @__PURE__ */ new WeakSet();
7213
+ var $e2 = { animationIterationCount: 1, aspectRatio: 1, borderImageOutset: 1, borderImageSlice: 1, borderImageWidth: 1, columnCount: 1, columns: 1, flex: 1, flexGrow: 1, flexShrink: 1, gridRow: 1, gridRowEnd: 1, gridRowSpan: 1, gridRowStart: 1, gridColumn: 1, gridColumnEnd: 1, gridColumnSpan: 1, gridColumnStart: 1, fontWeight: 1, lineHeight: 1, opacity: 1, order: 1, orphans: 1, scale: 1, tabSize: 1, widows: 1, zIndex: 1, zoom: 1, WebkitLineClamp: 1, fillOpacity: 1, floodOpacity: 1, stopOpacity: 1, strokeDasharray: 1, strokeDashoffset: 1, strokeMiterlimit: 1, strokeOpacity: 1, strokeWidth: 1 };
7214
+ function Re2(e2, t3) {
7215
+ return null == t3 || "boolean" == typeof t3 || "" === t3 ? "" : "number" != typeof t3 || 0 === t3 || e2 in $e2 || e2.startsWith("--") ? String(t3).trim() : t3 + "px";
7209
7216
  }
7210
- var Re2 = 47;
7211
- function je2(e2) {
7217
+ var je2 = 47;
7218
+ function xe2(e2) {
7212
7219
  if (45 === e2.charCodeAt(0) && 45 === e2.charCodeAt(1)) return e2;
7213
7220
  let t3 = "";
7214
7221
  for (let n2 = 0; n2 < e2.length; n2++) {
@@ -7217,50 +7224,50 @@ function je2(e2) {
7217
7224
  }
7218
7225
  return t3.startsWith("ms-") ? "-" + t3 : t3;
7219
7226
  }
7220
- var xe2 = /* @__PURE__ */ Symbol.for("sc-keyframes");
7221
- function Te2(e2) {
7222
- return "object" == typeof e2 && null !== e2 && xe2 in e2;
7223
- }
7227
+ var Te2 = /* @__PURE__ */ Symbol.for("sc-keyframes");
7224
7228
  function ke2(e2) {
7225
- return re2(e2) && !(e2.prototype && e2.prototype.isReactComponent);
7229
+ return "object" == typeof e2 && null !== e2 && Te2 in e2;
7226
7230
  }
7227
- var De2 = (e2) => null == e2 || false === e2 || "" === e2;
7228
- var Ve2 = /* @__PURE__ */ Symbol.for("react.client.reference");
7229
- function Me2(e2) {
7230
- return e2.$$typeof === Ve2;
7231
+ function De2(e2) {
7232
+ return re2(e2) && !(e2.prototype && e2.prototype.isReactComponent);
7231
7233
  }
7234
+ var Ve2 = (e2) => null == e2 || false === e2 || "" === e2;
7235
+ var Me2 = /* @__PURE__ */ Symbol.for("react.client.reference");
7232
7236
  function Ge2(e2) {
7237
+ return e2.$$typeof === Me2;
7238
+ }
7239
+ function Fe2(e2) {
7233
7240
  const t3 = e2.$$id, n2 = (t3 && t3.includes("#") ? t3.split("#").pop() : t3) || e2.name || "unknown";
7234
7241
  console.warn(`Interpolating a client component (${n2}) as a selector is not supported in server components. The component selector pattern requires access to the component's internal class name, which is not available across the server/client boundary. Use a plain CSS class selector instead.`);
7235
7242
  }
7236
- function Fe2(e2, t3) {
7243
+ function ze2(e2, t3) {
7237
7244
  for (const n2 in e2) {
7238
7245
  const o2 = e2[n2];
7239
- e2.hasOwnProperty(n2) && !De2(o2) && (Array.isArray(o2) && _e2.has(o2) || re2(o2) ? t3.push(je2(n2) + ":", o2, ";") : le2(o2) ? (t3.push(n2 + " {"), Fe2(o2, t3), t3.push("}")) : t3.push(je2(n2) + ": " + $e2(n2, o2) + ";"));
7246
+ e2.hasOwnProperty(n2) && !Ve2(o2) && (Array.isArray(o2) && Ie2.has(o2) || re2(o2) ? t3.push(xe2(n2) + ":", o2, ";") : ue2(o2) ? (t3.push(n2 + " {"), ze2(o2, t3), t3.push("}")) : t3.push(xe2(n2) + ": " + Re2(n2, o2) + ";"));
7240
7247
  }
7241
7248
  }
7242
- function ze2(e2, t3, n2, o2, s = []) {
7243
- if (De2(e2)) return s;
7249
+ function We2(e2, t3, n2, o2, s = []) {
7250
+ if (Ve2(e2)) return s;
7244
7251
  const r3 = typeof e2;
7245
7252
  if ("string" === r3) return s.push(e2), s;
7246
7253
  if ("function" === r3) {
7247
- if (Me2(e2)) return Ge2(e2), s;
7248
- if (ke2(e2) && t3) {
7254
+ if (Ge2(e2)) return Fe2(e2), s;
7255
+ if (De2(e2) && t3) {
7249
7256
  const r4 = e2(t3);
7250
- return "object" != typeof r4 || Array.isArray(r4) || Te2(r4) || le2(r4) || null === r4 || console.error(`${W2(e2)} is not a styled component and cannot be referred to via component selector. See https://styled-components.com/docs/advanced#referring-to-other-components for more details.`), ze2(r4, t3, n2, o2, s);
7257
+ return "object" != typeof r4 || Array.isArray(r4) || ke2(r4) || ue2(r4) || null === r4 || console.error(`${W2(e2)} is not a styled component and cannot be referred to via component selector. See https://styled-components.com/docs/advanced#referring-to-other-components for more details.`), We2(r4, t3, n2, o2, s);
7251
7258
  }
7252
7259
  return s.push(e2), s;
7253
7260
  }
7254
7261
  if (Array.isArray(e2)) {
7255
- for (let r4 = 0; r4 < e2.length; r4++) ze2(e2[r4], t3, n2, o2, s);
7262
+ for (let r4 = 0; r4 < e2.length; r4++) We2(e2[r4], t3, n2, o2, s);
7256
7263
  return s;
7257
7264
  }
7258
- return ie2(e2) ? (s.push(`.${e2.styledComponentId}`), s) : Te2(e2) ? (n2 ? (e2.inject(n2, o2), s.push(e2.getName(o2))) : s.push(e2), s) : Me2(e2) ? (Ge2(e2), s) : le2(e2) ? (Fe2(e2, s), s) : (s.push(e2.toString()), s);
7265
+ return ce2(e2) ? (s.push(`.${e2.styledComponentId}`), s) : ke2(e2) ? (n2 ? (e2.inject(n2, o2), s.push(e2.getName(o2))) : s.push(e2), s) : Ge2(e2) ? (Fe2(e2), s) : ue2(e2) ? e2.toString !== Object.prototype.toString ? (s.push(e2.toString()), s) : (ze2(e2, s), s) : (s.push(e2.toString()), s);
7259
7266
  }
7260
- var We2 = F2(u2);
7261
- var Le2 = class {
7267
+ var Le2 = F2(u2);
7268
+ var Be2 = class {
7262
7269
  constructor(e2, t3, n2) {
7263
- this.rules = e2, this.componentId = t3, this.baseHash = G2(We2, t3), this.baseStyle = n2, Pe2.registerId(t3);
7270
+ this.rules = e2, this.componentId = t3, this.baseHash = G2(Le2, t3), this.baseStyle = n2, _e2.registerId(t3);
7264
7271
  }
7265
7272
  generateAndInjectStyles(e2, t3, n2) {
7266
7273
  let o2 = this.baseStyle ? this.baseStyle.generateAndInjectStyles(e2, t3, n2) : "";
@@ -7269,10 +7276,10 @@ var Le2 = class {
7269
7276
  for (let o3 = 0; o3 < this.rules.length; o3++) {
7270
7277
  const r3 = this.rules[o3];
7271
7278
  if ("string" == typeof r3) s += r3;
7272
- else if (r3) if (ke2(r3)) {
7279
+ else if (r3) if (De2(r3)) {
7273
7280
  const o4 = r3(e2);
7274
- "string" == typeof o4 ? s += o4 : null != o4 && false !== o4 && ("object" != typeof o4 || Array.isArray(o4) || Te2(o4) || le2(o4) || console.error(`${W2(r3)} is not a styled component and cannot be referred to via component selector. See https://styled-components.com/docs/advanced#referring-to-other-components for more details.`), s += ae2(ze2(o4, e2, t3, n2)));
7275
- } else s += ae2(ze2(r3, e2, t3, n2));
7281
+ "string" == typeof o4 ? s += o4 : null != o4 && false !== o4 && ("object" != typeof o4 || Array.isArray(o4) || ke2(o4) || ue2(o4) || console.error(`${W2(r3)} is not a styled component and cannot be referred to via component selector. See https://styled-components.com/docs/advanced#referring-to-other-components for more details.`), s += le2(We2(o4, e2, t3, n2)));
7282
+ } else s += le2(We2(r3, e2, t3, n2));
7276
7283
  }
7277
7284
  if (s) {
7278
7285
  this.dynamicNameCache || (this.dynamicNameCache = /* @__PURE__ */ new Map());
@@ -7289,25 +7296,25 @@ var Le2 = class {
7289
7296
  const e4 = n2(s, "." + r3, void 0, this.componentId);
7290
7297
  t3.insertRules(this.componentId, r3, e4);
7291
7298
  }
7292
- o2 = ce2(o2, r3);
7299
+ o2 = ae2(o2, r3);
7293
7300
  }
7294
7301
  }
7295
7302
  return o2;
7296
7303
  }
7297
7304
  };
7298
- var Be2 = /&/g;
7299
- function qe2(e2, t3) {
7305
+ var qe2 = /&/g;
7306
+ function He2(e2, t3) {
7300
7307
  let n2 = 0;
7301
7308
  for (; --t3 >= 0 && 92 === e2.charCodeAt(t3); ) n2++;
7302
7309
  return !(1 & ~n2);
7303
7310
  }
7304
- function He2(e2) {
7311
+ function Ye2(e2) {
7305
7312
  const t3 = e2.length;
7306
7313
  let n2 = "", o2 = 0, s = 0, r3 = 0, i2 = false, c3 = false;
7307
7314
  for (let a3 = 0; a3 < t3; a3++) {
7308
7315
  const l3 = e2.charCodeAt(a3);
7309
- if (0 !== r3 || i2 || l3 !== Re2 || 42 !== e2.charCodeAt(a3 + 1)) if (i2) 42 === l3 && e2.charCodeAt(a3 + 1) === Re2 && (i2 = false, a3++);
7310
- else if (34 !== l3 && 39 !== l3 || qe2(e2, a3)) {
7316
+ if (0 !== r3 || i2 || l3 !== je2 || 42 !== e2.charCodeAt(a3 + 1)) if (i2) 42 === l3 && e2.charCodeAt(a3 + 1) === je2 && (i2 = false, a3++);
7317
+ else if (34 !== l3 && 39 !== l3 || He2(e2, a3)) {
7311
7318
  if (0 === r3) if (123 === l3) s++;
7312
7319
  else if (125 === l3) {
7313
7320
  if (s--, s < 0) {
@@ -7328,7 +7335,7 @@ function He2(e2) {
7328
7335
  }
7329
7336
  return c3 || 0 !== s || 0 !== r3 ? (o2 < t3 && 0 === s && 0 === r3 && (n2 += e2.substring(o2)), n2) : e2;
7330
7337
  }
7331
- function Ye2(e2, t3) {
7338
+ function Ue2(e2, t3) {
7332
7339
  const n2 = t3 + " ", o2 = "," + n2;
7333
7340
  for (let s = 0; s < e2.length; s++) {
7334
7341
  const r3 = e2[s];
@@ -7338,15 +7345,15 @@ function Ye2(e2, t3) {
7338
7345
  for (let o3 = 0; o3 < e3.length; o3++) t4[o3] = n2 + e3[o3];
7339
7346
  r3.props = t4;
7340
7347
  }
7341
- Array.isArray(r3.children) && "@keyframes" !== r3.type && Ye2(r3.children, t3);
7348
+ Array.isArray(r3.children) && "@keyframes" !== r3.type && Ue2(r3.children, t3);
7342
7349
  }
7343
7350
  return e2;
7344
7351
  }
7345
- function Ue2({ options: e2 = $2, plugins: t3 = I2 } = $2) {
7352
+ function Je2({ options: e2 = $2, plugins: t3 = I2 } = $2) {
7346
7353
  let n2, s, r3;
7347
7354
  const i2 = (e3, t4, o2) => o2.startsWith(s) && o2.endsWith(s) && o2.replaceAll(s, "").length > 0 ? `.${n2}` : e3, c3 = t3.slice();
7348
7355
  c3.push((e3) => {
7349
- e3.type === RULESET && e3.value.includes("&") && (r3 || (r3 = new RegExp(`\\${s}\\b`, "g")), e3.props[0] = e3.props[0].replace(Be2, s).replace(r3, i2));
7356
+ e3.type === RULESET && e3.value.includes("&") && (r3 || (r3 = new RegExp(`\\${s}\\b`, "g")), e3.props[0] = e3.props[0].replace(qe2, s).replace(r3, i2));
7350
7357
  }), e2.prefix && c3.push(prefixer), c3.push(stringify);
7351
7358
  let a3 = [];
7352
7359
  const l3 = middleware(c3.concat(rulesheet((e3) => a3.push(e3)))), u3 = (t4, i3 = "", c4 = "", u4 = "&") => {
@@ -7354,17 +7361,17 @@ function Ue2({ options: e2 = $2, plugins: t3 = I2 } = $2) {
7354
7361
  const h4 = (function(e3) {
7355
7362
  const t5 = -1 !== e3.indexOf("//"), n3 = -1 !== e3.indexOf("}");
7356
7363
  if (!t5 && !n3) return e3;
7357
- if (!t5) return He2(e3);
7364
+ if (!t5) return Ye2(e3);
7358
7365
  const o2 = e3.length;
7359
7366
  let s2 = "", r4 = 0, i4 = 0, c5 = 0, a4 = 0, l4 = 0, u5 = false;
7360
7367
  for (; i4 < o2; ) {
7361
7368
  const t6 = e3.charCodeAt(i4);
7362
- if (34 !== t6 && 39 !== t6 || qe2(e3, i4)) if (0 === c5) if (t6 === Re2 && i4 + 1 < o2 && 42 === e3.charCodeAt(i4 + 1)) {
7363
- for (i4 += 2; i4 + 1 < o2 && (42 !== e3.charCodeAt(i4) || e3.charCodeAt(i4 + 1) !== Re2); ) i4++;
7369
+ if (34 !== t6 && 39 !== t6 || He2(e3, i4)) if (0 === c5) if (t6 === je2 && i4 + 1 < o2 && 42 === e3.charCodeAt(i4 + 1)) {
7370
+ for (i4 += 2; i4 + 1 < o2 && (42 !== e3.charCodeAt(i4) || e3.charCodeAt(i4 + 1) !== je2); ) i4++;
7364
7371
  i4 += 2;
7365
7372
  } else if (40 !== t6) if (41 !== t6) if (a4 > 0) i4++;
7366
- else if (42 === t6 && i4 + 1 < o2 && e3.charCodeAt(i4 + 1) === Re2) s2 += e3.substring(r4, i4), i4 += 2, r4 = i4, u5 = true;
7367
- else if (t6 === Re2 && i4 + 1 < o2 && e3.charCodeAt(i4 + 1) === Re2) {
7373
+ else if (42 === t6 && i4 + 1 < o2 && e3.charCodeAt(i4 + 1) === je2) s2 += e3.substring(r4, i4), i4 += 2, r4 = i4, u5 = true;
7374
+ else if (t6 === je2 && i4 + 1 < o2 && e3.charCodeAt(i4 + 1) === je2) {
7368
7375
  for (s2 += e3.substring(r4, i4); i4 < o2 && 10 !== e3.charCodeAt(i4); ) i4++;
7369
7376
  r4 = i4, u5 = true;
7370
7377
  } else 123 === t6 ? l4++ : 125 === t6 && l4--, i4++;
@@ -7373,26 +7380,26 @@ function Ue2({ options: e2 = $2, plugins: t3 = I2 } = $2) {
7373
7380
  else i4++;
7374
7381
  else 0 === c5 ? c5 = t6 : c5 === t6 && (c5 = 0), i4++;
7375
7382
  }
7376
- return u5 ? (r4 < o2 && (s2 += e3.substring(r4)), 0 === l4 ? s2 : He2(s2)) : 0 === l4 ? e3 : He2(e3);
7383
+ return u5 ? (r4 < o2 && (s2 += e3.substring(r4)), 0 === l4 ? s2 : Ye2(s2)) : 0 === l4 ? e3 : Ye2(e3);
7377
7384
  })(t4);
7378
7385
  let d4 = compile(c4 || i3 ? c4 + " " + i3 + " { " + h4 + " }" : h4);
7379
- return e2.namespace && (d4 = Ye2(d4, e2.namespace)), a3 = [], serialize(d4, l3), a3;
7386
+ return e2.namespace && (d4 = Ue2(d4, e2.namespace)), a3 = [], serialize(d4, l3), a3;
7380
7387
  }, h3 = e2;
7381
7388
  let d3 = M2;
7382
7389
  for (let e3 = 0; e3 < t3.length; e3++) t3[e3].name || v2(15), d3 = G2(d3, t3[e3].name);
7383
7390
  return (null == h3 ? void 0 : h3.namespace) && (d3 = G2(d3, h3.namespace)), (null == h3 ? void 0 : h3.prefix) && (d3 = G2(d3, "p")), u3.hash = d3 !== M2 ? d3.toString() : "", u3;
7384
7391
  }
7385
- var Je2 = new Pe2();
7386
- var Xe2 = Ue2();
7387
- var Ke2 = import_react14.default.createContext({ shouldForwardProp: void 0, styleSheet: Je2, stylis: Xe2, stylisPlugins: void 0 });
7388
- var Qe = Ke2.Consumer;
7389
- function Ze2() {
7390
- return import_react14.default.useContext(Ke2);
7391
- }
7392
- var tt2 = import_react14.default.createContext(void 0);
7393
- var nt2 = tt2.Consumer;
7394
- function st2(e2) {
7395
- const n2 = import_react14.default.useContext(tt2), o2 = import_react14.default.useMemo(() => (function(e3, t3) {
7392
+ var Xe2 = new _e2();
7393
+ var Ke2 = Je2();
7394
+ var Qe = import_react14.default.createContext({ shouldForwardProp: void 0, styleSheet: Xe2, stylis: Ke2, stylisPlugins: void 0 });
7395
+ var Ze2 = Qe.Consumer;
7396
+ function et() {
7397
+ return import_react14.default.useContext(Qe);
7398
+ }
7399
+ var nt2 = import_react14.default.createContext(void 0);
7400
+ var ot2 = nt2.Consumer;
7401
+ function rt2(e2) {
7402
+ const n2 = import_react14.default.useContext(nt2), o2 = import_react14.default.useMemo(() => (function(e3, t3) {
7396
7403
  if (!e3) throw v2(14);
7397
7404
  if (re2(e3)) {
7398
7405
  const n3 = e3(t3);
@@ -7402,19 +7409,19 @@ function st2(e2) {
7402
7409
  if (Array.isArray(e3) || "object" != typeof e3) throw v2(8);
7403
7410
  return t3 ? Object.assign(Object.assign({}, t3), e3) : e3;
7404
7411
  })(e2.theme, n2), [e2.theme, n2]);
7405
- return e2.children ? import_react14.default.createElement(tt2.Provider, { value: o2 }, e2.children) : null;
7412
+ return e2.children ? import_react14.default.createElement(nt2.Provider, { value: o2 }, e2.children) : null;
7406
7413
  }
7407
- var rt2 = Object.prototype.hasOwnProperty;
7408
- var it2 = {};
7409
- function ct2(e2, t3) {
7414
+ var it2 = Object.prototype.hasOwnProperty;
7415
+ var ct2 = {};
7416
+ function at2(e2, t3) {
7410
7417
  const n2 = "string" != typeof e2 ? "sc" : T2(e2);
7411
- it2[n2] = (it2[n2] || 0) + 1;
7412
- const o2 = n2 + "-" + z2(u2 + n2 + it2[n2]);
7418
+ ct2[n2] = (ct2[n2] || 0) + 1;
7419
+ const o2 = n2 + "-" + z2(u2 + n2 + ct2[n2]);
7413
7420
  return t3 ? t3 + "-" + o2 : o2;
7414
7421
  }
7415
- var at2;
7416
- function lt2(o2, s, r3) {
7417
- const i2 = ie2(o2), c3 = o2, a3 = !L2(o2), { attrs: l3 = I2, componentId: u3 = ct2(s.displayName, s.parentComponentId), displayName: h3 = B2(o2) } = s, d3 = s.displayName && s.componentId ? T2(s.displayName) + "-" + s.componentId : s.componentId || u3, p3 = i2 && c3.attrs ? c3.attrs.concat(l3).filter(Boolean) : l3;
7422
+ var lt2;
7423
+ function ut2(o2, s, r3) {
7424
+ const i2 = ce2(o2), c3 = o2, a3 = !L2(o2), { attrs: l3 = I2, componentId: u3 = at2(s.displayName, s.parentComponentId), displayName: h3 = B2(o2) } = s, d3 = s.displayName && s.componentId ? T2(s.displayName) + "-" + s.componentId : s.componentId || u3, p3 = i2 && c3.attrs ? c3.attrs.concat(l3).filter(Boolean) : l3;
7418
7425
  let { shouldForwardProp: f3 } = s;
7419
7426
  if (i2 && c3.shouldForwardProp) {
7420
7427
  const e2 = c3.shouldForwardProp;
@@ -7423,10 +7430,10 @@ function lt2(o2, s, r3) {
7423
7430
  f3 = (n2, o3) => e2(n2, o3) && t3(n2, o3);
7424
7431
  } else f3 = e2;
7425
7432
  }
7426
- const m3 = new Le2(r3, d3, i2 ? c3.componentStyle : void 0);
7433
+ const m3 = new Be2(r3, d3, i2 ? c3.componentStyle : void 0);
7427
7434
  function y2(o3, s2) {
7428
7435
  return (function(o4, s3, r4) {
7429
- const { attrs: i3, componentStyle: c4, defaultProps: a4, foldedComponentIds: l4, styledComponentId: u4, target: h4 } = o4, d4 = import_react14.default.useContext(tt2), p4 = Ze2(), f4 = o4.shouldForwardProp || p4.shouldForwardProp;
7436
+ const { attrs: i3, componentStyle: c4, defaultProps: a4, foldedComponentIds: l4, styledComponentId: u4, target: h4 } = o4, d4 = import_react14.default.useContext(nt2), p4 = et(), f4 = o4.shouldForwardProp || p4.shouldForwardProp;
7430
7437
  import_react14.default.useDebugValue && import_react14.default.useDebugValue(u4);
7431
7438
  const m4 = R2(s3, d4, a4) || $2;
7432
7439
  let y3, g4;
@@ -7435,7 +7442,7 @@ function lt2(o2, s, r3) {
7435
7442
  if (null !== n2 && n2[1] === m4 && n2[2] === p4.styleSheet && n2[3] === p4.stylis && n2[7] === c4 && (function(e3, t3, n3) {
7436
7443
  const o5 = e3, s4 = t3;
7437
7444
  let r5 = 0;
7438
- for (const e4 in s4) if (rt2.call(s4, e4) && (r5++, o5[e4] !== s4[e4])) return false;
7445
+ for (const e4 in s4) if (it2.call(s4, e4) && (r5++, o5[e4] !== s4[e4])) return false;
7439
7446
  return r5 === n3;
7440
7447
  })(n2[0], s3, n2[4])) y3 = n2[5], g4 = n2[6];
7441
7448
  else {
@@ -7443,35 +7450,35 @@ function lt2(o2, s, r3) {
7443
7450
  const o5 = Object.assign(Object.assign({}, t3), { className: void 0, theme: n4 }), s4 = e3.length > 1;
7444
7451
  for (let n5 = 0; n5 < e3.length; n5++) {
7445
7452
  const r5 = e3[n5], i4 = re2(r5) ? r5(s4 ? Object.assign({}, o5) : o5) : r5;
7446
- for (const e4 in i4) "className" === e4 ? o5.className = ce2(o5.className, i4[e4]) : "style" === e4 ? o5.style = Object.assign(Object.assign({}, o5.style), i4[e4]) : e4 in t3 && void 0 === t3[e4] || (o5[e4] = i4[e4]);
7453
+ for (const e4 in i4) "className" === e4 ? o5.className = ae2(o5.className, i4[e4]) : "style" === e4 ? o5.style = Object.assign(Object.assign({}, o5.style), i4[e4]) : e4 in t3 && void 0 === t3[e4] || (o5[e4] = i4[e4]);
7447
7454
  }
7448
- return "className" in t3 && "string" == typeof t3.className && (o5.className = ce2(o5.className, t3.className)), o5;
7455
+ return "className" in t3 && "string" == typeof t3.className && (o5.className = ae2(o5.className, t3.className)), o5;
7449
7456
  })(i3, s3, m4), g4 = (function(e3, n4, o5, s4) {
7450
7457
  const r5 = e3.generateAndInjectStyles(n4, o5, s4);
7451
7458
  return import_react14.default.useDebugValue && import_react14.default.useDebugValue(r5), r5;
7452
7459
  })(c4, y3, p4.styleSheet, p4.stylis);
7453
7460
  let n3 = 0;
7454
- for (const e3 in s3) rt2.call(s3, e3) && n3++;
7461
+ for (const e3 in s3) it2.call(s3, e3) && n3++;
7455
7462
  e2.current = [s3, m4, p4.styleSheet, p4.stylis, n3, y3, g4, c4];
7456
7463
  }
7457
7464
  }
7458
7465
  o4.warnTooManyClasses && o4.warnTooManyClasses(g4);
7459
7466
  const v3 = y3.as || h4, S3 = (function(t3, n2, o5, s4) {
7460
7467
  const r5 = {};
7461
- for (const i4 in t3) void 0 === t3[i4] || "$" === i4[0] || "as" === i4 || "theme" === i4 && t3.theme === o5 || ("forwardedAs" === i4 ? r5.as = t3.forwardedAs : s4 && !s4(i4, n2) || (r5[i4] = t3[i4], s4 || false || isPropValid(i4) || (at2 || (at2 = /* @__PURE__ */ new Set())).has(i4) || !L2(n2) || n2.includes("-") || (at2.add(i4), console.warn(`styled-components: it looks like an unknown prop "${i4}" is being sent through to the DOM, which will likely trigger a React console error. If you would like automatic filtering of unknown props, you can opt-into that behavior via \`<StyleSheetManager shouldForwardProp={...}>\` (connect an API like \`@emotion/is-prop-valid\`) or consider using transient props (\`$\` prefix for automatic filtering.)`))));
7468
+ for (const i4 in t3) void 0 === t3[i4] || "$" === i4[0] || "as" === i4 || "theme" === i4 && t3.theme === o5 || ("forwardedAs" === i4 ? r5.as = t3.forwardedAs : s4 && !s4(i4, n2) || (r5[i4] = t3[i4], s4 || false || isPropValid(i4) || (lt2 || (lt2 = /* @__PURE__ */ new Set())).has(i4) || !L2(n2) || n2.includes("-") || (lt2.add(i4), console.warn(`styled-components: it looks like an unknown prop "${i4}" is being sent through to the DOM, which will likely trigger a React console error. If you would like automatic filtering of unknown props, you can opt-into that behavior via \`<StyleSheetManager shouldForwardProp={...}>\` (connect an API like \`@emotion/is-prop-valid\`) or consider using transient props (\`$\` prefix for automatic filtering.)`))));
7462
7469
  return r5;
7463
7470
  })(y3, v3, m4, f4);
7464
- let b3 = ce2(l4, u4);
7471
+ let b3 = ae2(l4, u4);
7465
7472
  return g4 && (b3 += " " + g4), y3.className && (b3 += " " + y3.className), S3[L2(v3) && v3.includes("-") ? "class" : "className"] = b3, r4 && (S3.ref = r4), (0, import_react14.createElement)(v3, S3);
7466
7473
  })(g3, o3, s2);
7467
7474
  }
7468
7475
  y2.displayName = h3;
7469
7476
  let g3 = import_react14.default.forwardRef(y2);
7470
- return g3.attrs = p3, g3.componentStyle = m3, g3.displayName = h3, g3.shouldForwardProp = f3, g3.foldedComponentIds = i2 ? ce2(c3.foldedComponentIds, c3.styledComponentId) : "", g3.styledComponentId = d3, g3.target = i2 ? c3.target : o2, Object.defineProperty(g3, "defaultProps", { get() {
7477
+ return g3.attrs = p3, g3.componentStyle = m3, g3.displayName = h3, g3.shouldForwardProp = f3, g3.foldedComponentIds = i2 ? ae2(c3.foldedComponentIds, c3.styledComponentId) : "", g3.styledComponentId = d3, g3.target = i2 ? c3.target : o2, Object.defineProperty(g3, "defaultProps", { get() {
7471
7478
  return this._foldedDefaultProps;
7472
7479
  }, set(e2) {
7473
7480
  this._foldedDefaultProps = i2 ? (function(e3, ...t3) {
7474
- for (const n2 of t3) ue2(e3, n2, true);
7481
+ for (const n2 of t3) he2(e3, n2, true);
7475
7482
  return e3;
7476
7483
  })({}, c3.defaultProps, e2) : e2;
7477
7484
  } }), _2(h3, d3), g3.warnTooManyClasses = /* @__PURE__ */ ((e2, t3) => {
@@ -7488,58 +7495,58 @@ Example:
7488
7495
 
7489
7496
  <Component />`), o3 = true, n2 = {});
7490
7497
  };
7491
- })(h3, d3), he2(g3, () => `.${g3.styledComponentId}`), a3 && se2(g3, o2, { attrs: true, componentStyle: true, displayName: true, foldedComponentIds: true, shouldForwardProp: true, styledComponentId: true, target: true }), g3;
7498
+ })(h3, d3), de2(g3, () => `.${g3.styledComponentId}`), a3 && se2(g3, o2, { attrs: true, componentStyle: true, displayName: true, foldedComponentIds: true, shouldForwardProp: true, styledComponentId: true, target: true }), g3;
7492
7499
  }
7493
- var ut2 = /* @__PURE__ */ new Set(["a", "abbr", "address", "area", "article", "aside", "audio", "b", "bdi", "bdo", "blockquote", "body", "button", "br", "canvas", "caption", "cite", "code", "col", "colgroup", "data", "datalist", "dd", "del", "details", "dfn", "dialog", "div", "dl", "dt", "em", "embed", "fieldset", "figcaption", "figure", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "header", "hgroup", "hr", "html", "i", "iframe", "img", "input", "ins", "kbd", "label", "legend", "li", "main", "map", "mark", "menu", "meter", "nav", "object", "ol", "optgroup", "option", "output", "p", "picture", "pre", "progress", "q", "rp", "rt", "ruby", "s", "samp", "search", "section", "select", "slot", "small", "span", "strong", "sub", "summary", "sup", "table", "tbody", "td", "template", "textarea", "tfoot", "th", "thead", "time", "tr", "u", "ul", "var", "video", "wbr", "circle", "clipPath", "defs", "ellipse", "feBlend", "feColorMatrix", "feComponentTransfer", "feComposite", "feConvolveMatrix", "feDiffuseLighting", "feDisplacementMap", "feDistantLight", "feDropShadow", "feFlood", "feFuncA", "feFuncB", "feFuncG", "feFuncR", "feGaussianBlur", "feImage", "feMerge", "feMergeNode", "feMorphology", "feOffset", "fePointLight", "feSpecularLighting", "feSpotLight", "feTile", "feTurbulence", "filter", "foreignObject", "g", "image", "line", "linearGradient", "marker", "mask", "path", "pattern", "polygon", "polyline", "radialGradient", "rect", "stop", "svg", "switch", "symbol", "text", "textPath", "tspan", "use"]);
7494
- function ht2(e2, t3) {
7500
+ var ht2 = /* @__PURE__ */ new Set(["a", "abbr", "address", "area", "article", "aside", "audio", "b", "bdi", "bdo", "blockquote", "body", "button", "br", "canvas", "caption", "cite", "code", "col", "colgroup", "data", "datalist", "dd", "del", "details", "dfn", "dialog", "div", "dl", "dt", "em", "embed", "fieldset", "figcaption", "figure", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "header", "hgroup", "hr", "html", "i", "iframe", "img", "input", "ins", "kbd", "label", "legend", "li", "main", "map", "mark", "menu", "meter", "nav", "object", "ol", "optgroup", "option", "output", "p", "picture", "pre", "progress", "q", "rp", "rt", "ruby", "s", "samp", "search", "section", "select", "slot", "small", "span", "strong", "sub", "summary", "sup", "table", "tbody", "td", "template", "textarea", "tfoot", "th", "thead", "time", "tr", "u", "ul", "var", "video", "wbr", "circle", "clipPath", "defs", "ellipse", "feBlend", "feColorMatrix", "feComponentTransfer", "feComposite", "feConvolveMatrix", "feDiffuseLighting", "feDisplacementMap", "feDistantLight", "feDropShadow", "feFlood", "feFuncA", "feFuncB", "feFuncG", "feFuncR", "feGaussianBlur", "feImage", "feMerge", "feMergeNode", "feMorphology", "feOffset", "fePointLight", "feSpecularLighting", "feSpotLight", "feTile", "feTurbulence", "filter", "foreignObject", "g", "image", "line", "linearGradient", "marker", "mask", "path", "pattern", "polygon", "polyline", "radialGradient", "rect", "stop", "svg", "switch", "symbol", "text", "textPath", "tspan", "use"]);
7501
+ function dt2(e2, t3) {
7495
7502
  const n2 = [e2[0]];
7496
7503
  for (let o2 = 0, s = t3.length; o2 < s; o2 += 1) n2.push(t3[o2], e2[o2 + 1]);
7497
7504
  return n2;
7498
7505
  }
7499
- var dt2 = (e2) => (_e2.add(e2), e2);
7500
- function pt2(e2, ...t3) {
7501
- if (re2(e2) || le2(e2)) return dt2(ze2(ht2(I2, [e2, ...t3])));
7506
+ var pt2 = (e2) => (Ie2.add(e2), e2);
7507
+ function ft(e2, ...t3) {
7508
+ if (re2(e2) || ue2(e2)) return pt2(We2(dt2(I2, [e2, ...t3])));
7502
7509
  const n2 = e2;
7503
- return 0 === t3.length && 1 === n2.length && "string" == typeof n2[0] ? ze2(n2) : dt2(ze2(ht2(n2, t3)));
7510
+ return 0 === t3.length && 1 === n2.length && "string" == typeof n2[0] ? We2(n2) : pt2(We2(dt2(n2, t3)));
7504
7511
  }
7505
- function ft(e2, t3, n2 = $2) {
7512
+ function mt(e2, t3, n2 = $2) {
7506
7513
  if (!t3) throw v2(1, t3);
7507
- const o2 = (o3, ...s) => e2(t3, n2, pt2(o3, ...s));
7508
- return o2.attrs = (o3) => ft(e2, t3, Object.assign(Object.assign({}, n2), { attrs: Array.prototype.concat(n2.attrs, o3).filter(Boolean) })), o2.withConfig = (o3) => ft(e2, t3, Object.assign(Object.assign({}, n2), o3)), o2;
7514
+ const o2 = (o3, ...s) => e2(t3, n2, ft(o3, ...s));
7515
+ return o2.attrs = (o3) => mt(e2, t3, Object.assign(Object.assign({}, n2), { attrs: Array.prototype.concat(n2.attrs, o3).filter(Boolean) })), o2.withConfig = (o3) => mt(e2, t3, Object.assign(Object.assign({}, n2), o3)), o2;
7509
7516
  }
7510
- var mt = (e2) => ft(lt2, e2);
7511
- var yt2 = mt;
7512
- ut2.forEach((e2) => {
7513
- yt2[e2] = mt(e2);
7517
+ var yt2 = (e2) => mt(ut2, e2);
7518
+ var gt2 = yt2;
7519
+ ht2.forEach((e2) => {
7520
+ gt2[e2] = yt2(e2);
7514
7521
  });
7515
- var Nt;
7516
- var Ct = class {
7522
+ var Ct;
7523
+ var Ot = class {
7517
7524
  constructor(e2, t3) {
7518
- this[Nt] = true, this.inject = (e3, t4 = Xe2) => {
7525
+ this[Ct] = true, this.inject = (e3, t4 = Ke2) => {
7519
7526
  const n2 = this.getName(t4);
7520
7527
  if (!e3.hasNameForId(this.id, n2)) {
7521
7528
  const o2 = t4(this.rules, n2, "@keyframes");
7522
7529
  e3.insertRules(this.id, n2, o2);
7523
7530
  }
7524
- }, this.name = e2, this.id = m2 + e2, this.rules = t3, C2(this.id), he2(this, () => {
7531
+ }, this.name = e2, this.id = m2 + e2, this.rules = t3, C2(this.id), de2(this, () => {
7525
7532
  throw v2(12, String(this.name));
7526
7533
  });
7527
7534
  }
7528
- getName(e2 = Xe2) {
7535
+ getName(e2 = Ke2) {
7529
7536
  return e2.hash ? this.name + V2(+e2.hash >>> 0) : this.name;
7530
7537
  }
7531
7538
  };
7532
- function Ot(e2, ...t3) {
7539
+ function Et(e2, ...t3) {
7533
7540
  "undefined" != typeof navigator && "ReactNative" === navigator.product && console.warn("`keyframes` cannot be used on ReactNative, only on the web. To do animation in ReactNative please use Animated.");
7534
- const n2 = ae2(pt2(e2, ...t3)), o2 = z2(n2);
7535
- return new Ct(o2, n2);
7541
+ const n2 = le2(ft(e2, ...t3)), o2 = z2(n2);
7542
+ return new Ot(o2, n2);
7536
7543
  }
7537
- Nt = xe2;
7544
+ Ct = Te2;
7538
7545
  "undefined" != typeof navigator && "ReactNative" === navigator.product && console.warn("It looks like you've imported 'styled-components' on React Native.\nPerhaps you're looking to import 'styled-components/native'?\nRead more about this at https://styled-components.com/docs/basics#react-native");
7539
- var _t = `__sc-${c2}__`;
7540
- "undefined" != typeof window && (window[_t] || (window[_t] = 0), 1 === window[_t] && console.warn("It looks like there are several instances of 'styled-components' initialized in this application. This may cause dynamic styles to not render properly, errors during the rehydration process, a missing theme prop, and makes your application bigger without good reason.\n\nSee https://styled-components.com/docs/faqs#why-am-i-getting-a-warning-about-several-instances-of-module-on-the-page for more info."), window[_t] += 1);
7541
- var $t = `:not(style[${c2}])`;
7542
- var Rt = `style[${c2}]`;
7546
+ var It = `__sc-${c2}__`;
7547
+ "undefined" != typeof window && (window[It] || (window[It] = 0), 1 === window[It] && console.warn("It looks like there are several instances of 'styled-components' initialized in this application. This may cause dynamic styles to not render properly, errors during the rehydration process, a missing theme prop, and makes your application bigger without good reason.\n\nSee https://styled-components.com/docs/faqs#why-am-i-getting-a-warning-about-several-instances-of-module-on-the-page for more info."), window[It] += 1);
7548
+ var Rt = `:not(style[${c2}])`;
7549
+ var jt = `style[${c2}]`;
7543
7550
 
7544
7551
  // node_modules/uuid/dist/stringify.js
7545
7552
  var byteToHex = [];
@@ -7937,6 +7944,7 @@ function BillingProductPriceResponseDataFromJSONTyped(json, ignoreDiscriminator)
7937
7944
  currency: json["currency"],
7938
7945
  id: json["id"],
7939
7946
  interval: BillingProductPriceIntervalFromJSON(json["interval"]),
7947
+ intervalCount: json["interval_count"],
7940
7948
  isActive: json["is_active"],
7941
7949
  meterId: json["meter_id"] == null ? void 0 : json["meter_id"],
7942
7950
  nickname: json["nickname"] == null ? void 0 : json["nickname"],
@@ -7982,6 +7990,7 @@ function BillingPriceViewFromJSONTyped(json, ignoreDiscriminator) {
7982
7990
  currency: json["currency"],
7983
7991
  id: json["id"],
7984
7992
  interval: BillingProductPriceIntervalFromJSON(json["interval"]),
7993
+ intervalCount: json["interval_count"],
7985
7994
  isActive: json["is_active"],
7986
7995
  meterEventName: json["meter_event_name"] == null ? void 0 : json["meter_event_name"],
7987
7996
  meterEventPayloadKey: json["meter_event_payload_key"] == null ? void 0 : json["meter_event_payload_key"],
@@ -8105,6 +8114,7 @@ function BillingPriceResponseDataFromJSONTyped(json, ignoreDiscriminator) {
8105
8114
  externalPriceId: json["external_price_id"],
8106
8115
  id: json["id"],
8107
8116
  interval: BillingProductPriceIntervalFromJSON(json["interval"]),
8117
+ intervalCount: json["interval_count"],
8108
8118
  nickname: json["nickname"] == null ? void 0 : json["nickname"],
8109
8119
  price: json["price"],
8110
8120
  priceDecimal: json["price_decimal"] == null ? void 0 : json["price_decimal"],
@@ -8393,6 +8403,7 @@ function BillingProductForSubscriptionResponseDataFromJSONTyped(json, ignoreDisc
8393
8403
  externalId: json["external_id"],
8394
8404
  id: json["id"],
8395
8405
  interval: json["interval"],
8406
+ intervalCount: json["interval_count"] == null ? void 0 : json["interval_count"],
8396
8407
  meterId: json["meter_id"] == null ? void 0 : json["meter_id"],
8397
8408
  name: json["name"],
8398
8409
  packageSize: json["package_size"],
@@ -8412,6 +8423,14 @@ function BillingProductForSubscriptionResponseDataFromJSONTyped(json, ignoreDisc
8412
8423
  };
8413
8424
  }
8414
8425
 
8426
+ // src/api/checkoutexternal/models/BillingStrategy.ts
8427
+ function BillingStrategyFromJSON(json) {
8428
+ return BillingStrategyFromJSONTyped(json, false);
8429
+ }
8430
+ function BillingStrategyFromJSONTyped(json, ignoreDiscriminator) {
8431
+ return json;
8432
+ }
8433
+
8415
8434
  // src/api/checkoutexternal/models/BillingSubscriptionDiscountView.ts
8416
8435
  function BillingSubscriptionDiscountViewFromJSON(json) {
8417
8436
  return BillingSubscriptionDiscountViewFromJSONTyped(json, false);
@@ -9202,6 +9221,7 @@ function CustomPlanBillingResponseDataFromJSONTyped(json, ignoreDiscriminator) {
9202
9221
  companyId: json["company_id"],
9203
9222
  createdAt: new Date(json["created_at"]),
9204
9223
  daysUntilDue: json["days_until_due"],
9224
+ externalInvoiceId: json["external_invoice_id"] == null ? void 0 : json["external_invoice_id"],
9205
9225
  id: json["id"],
9206
9226
  paidAt: json["paid_at"] == null ? void 0 : new Date(json["paid_at"]),
9207
9227
  planId: json["plan_id"],
@@ -9383,6 +9403,7 @@ function EntitlementCurrencyPricesResponseDataFromJSONTyped(json, ignoreDiscrimi
9383
9403
  return {
9384
9404
  currency: json["currency"],
9385
9405
  monthlyPrice: json["monthly_price"] == null ? void 0 : BillingPriceViewFromJSON(json["monthly_price"]),
9406
+ quarterlyPrice: json["quarterly_price"] == null ? void 0 : BillingPriceViewFromJSON(json["quarterly_price"]),
9386
9407
  yearlyPrice: json["yearly_price"] == null ? void 0 : BillingPriceViewFromJSON(json["yearly_price"])
9387
9408
  };
9388
9409
  }
@@ -9463,6 +9484,7 @@ function PlanEntitlementResponseDataFromJSONTyped(json, ignoreDiscriminator) {
9463
9484
  featureId: json["feature_id"],
9464
9485
  id: json["id"],
9465
9486
  meteredMonthlyPrice: json["metered_monthly_price"] == null ? void 0 : BillingPriceViewFromJSON(json["metered_monthly_price"]),
9487
+ meteredQuarterlyPrice: json["metered_quarterly_price"] == null ? void 0 : BillingPriceViewFromJSON(json["metered_quarterly_price"]),
9466
9488
  meteredYearlyPrice: json["metered_yearly_price"] == null ? void 0 : BillingPriceViewFromJSON(json["metered_yearly_price"]),
9467
9489
  metricPeriod: json["metric_period"] == null ? void 0 : MetricPeriodFromJSON(json["metric_period"]),
9468
9490
  metricPeriodMonthReset: json["metric_period_month_reset"] == null ? void 0 : MetricPeriodMonthResetFromJSON(json["metric_period_month_reset"]),
@@ -9474,6 +9496,7 @@ function PlanEntitlementResponseDataFromJSONTyped(json, ignoreDiscriminator) {
9474
9496
  softLimit: json["soft_limit"] == null ? void 0 : json["soft_limit"],
9475
9497
  updatedAt: new Date(json["updated_at"]),
9476
9498
  usageBasedProduct: json["usage_based_product"] == null ? void 0 : BillingProductResponseDataFromJSON(json["usage_based_product"]),
9499
+ usageQuantity: json["usage_quantity"] == null ? void 0 : json["usage_quantity"],
9477
9500
  valueBool: json["value_bool"] == null ? void 0 : json["value_bool"],
9478
9501
  valueCredit: json["value_credit"] == null ? void 0 : BillingCreditResponseDataFromJSON(json["value_credit"]),
9479
9502
  valueNumeric: json["value_numeric"] == null ? void 0 : json["value_numeric"],
@@ -9665,6 +9688,14 @@ function FeatureInPlanResponseDataFromJSONTyped(json, ignoreDiscriminator) {
9665
9688
  };
9666
9689
  }
9667
9690
 
9691
+ // src/api/checkoutexternal/models/PlanPriceCadence.ts
9692
+ function PlanPriceCadenceFromJSON(json) {
9693
+ return PlanPriceCadenceFromJSONTyped(json, false);
9694
+ }
9695
+ function PlanPriceCadenceFromJSONTyped(json, ignoreDiscriminator) {
9696
+ return json;
9697
+ }
9698
+
9668
9699
  // src/api/checkoutexternal/models/CustomPlanConfig.ts
9669
9700
  function CustomPlanConfigFromJSON(json) {
9670
9701
  return CustomPlanConfigFromJSONTyped(json, false);
@@ -9737,6 +9768,7 @@ function PlanCurrencyPricesResponseDataFromJSONTyped(json, ignoreDiscriminator)
9737
9768
  currency: json["currency"],
9738
9769
  monthlyPrice: json["monthly_price"] == null ? void 0 : BillingPriceResponseDataFromJSON(json["monthly_price"]),
9739
9770
  oneTimePrice: json["one_time_price"] == null ? void 0 : BillingPriceResponseDataFromJSON(json["one_time_price"]),
9771
+ quarterlyPrice: json["quarterly_price"] == null ? void 0 : BillingPriceResponseDataFromJSON(json["quarterly_price"]),
9740
9772
  yearlyPrice: json["yearly_price"] == null ? void 0 : BillingPriceResponseDataFromJSON(json["yearly_price"])
9741
9773
  };
9742
9774
  }
@@ -9854,6 +9886,7 @@ function FeatureUsageResponseDataFromJSONTyped(json, ignoreDiscriminator) {
9854
9886
  plan: json["plan"] == null ? void 0 : PlanResponseDataFromJSON(json["plan"]),
9855
9887
  planEntitlement: json["plan_entitlement"] == null ? void 0 : PlanEntitlementResponseDataFromJSON(json["plan_entitlement"]),
9856
9888
  priceBehavior: json["price_behavior"] == null ? void 0 : EntitlementPriceBehaviorFromJSON(json["price_behavior"]),
9889
+ quarterlyUsageBasedPrice: json["quarterly_usage_based_price"] == null ? void 0 : BillingPriceViewFromJSON(json["quarterly_usage_based_price"]),
9857
9890
  softLimit: json["soft_limit"] == null ? void 0 : json["soft_limit"],
9858
9891
  usage: json["usage"] == null ? void 0 : json["usage"],
9859
9892
  yearlyUsageBasedPrice: json["yearly_usage_based_price"] == null ? void 0 : BillingPriceViewFromJSON(json["yearly_usage_based_price"])
@@ -9871,10 +9904,14 @@ function CompanyPlanDetailResponseDataFromJSONTyped(json, ignoreDiscriminator) {
9871
9904
  return {
9872
9905
  activeVersion: json["active_version"] == null ? void 0 : PlanVersionResponseDataFromJSON(json["active_version"]),
9873
9906
  audienceType: json["audience_type"] == null ? void 0 : json["audience_type"],
9907
+ availablePeriods: json["available_periods"].map(
9908
+ PlanPriceCadenceFromJSON
9909
+ ),
9874
9910
  billingLinkedResource: json["billing_linked_resource"] == null ? void 0 : BillingLinkedResourceResponseDataFromJSON(
9875
9911
  json["billing_linked_resource"]
9876
9912
  ),
9877
9913
  billingProduct: json["billing_product"] == null ? void 0 : BillingProductDetailResponseDataFromJSON(json["billing_product"]),
9914
+ billingStrategy: BillingStrategyFromJSON(json["billing_strategy"]),
9878
9915
  chargeType: ChargeTypeFromJSON(json["charge_type"]),
9879
9916
  companyCanTrial: json["company_can_trial"],
9880
9917
  companyCount: json["company_count"],
@@ -9912,6 +9949,7 @@ function CompanyPlanDetailResponseDataFromJSONTyped(json, ignoreDiscriminator) {
9912
9949
  name: json["name"],
9913
9950
  oneTimePrice: json["one_time_price"] == null ? void 0 : BillingPriceResponseDataFromJSON(json["one_time_price"]),
9914
9951
  planType: PlanTypeFromJSON(json["plan_type"]),
9952
+ quarterlyPrice: json["quarterly_price"] == null ? void 0 : BillingPriceResponseDataFromJSON(json["quarterly_price"]),
9915
9953
  trialDays: json["trial_days"] == null ? void 0 : json["trial_days"],
9916
9954
  updatedAt: new Date(json["updated_at"]),
9917
9955
  usageViolations: json["usage_violations"].map(
@@ -10041,6 +10079,7 @@ function PlanDetailResponseDataFromJSONTyped(json, ignoreDiscriminator) {
10041
10079
  json["billing_linked_resource"]
10042
10080
  ),
10043
10081
  billingProduct: json["billing_product"] == null ? void 0 : BillingProductDetailResponseDataFromJSON(json["billing_product"]),
10082
+ billingStrategy: BillingStrategyFromJSON(json["billing_strategy"]),
10044
10083
  chargeType: ChargeTypeFromJSON(json["charge_type"]),
10045
10084
  companyCount: json["company_count"],
10046
10085
  companyId: json["company_id"] == null ? void 0 : json["company_id"],
@@ -10068,6 +10107,7 @@ function PlanDetailResponseDataFromJSONTyped(json, ignoreDiscriminator) {
10068
10107
  name: json["name"],
10069
10108
  oneTimePrice: json["one_time_price"] == null ? void 0 : BillingPriceResponseDataFromJSON(json["one_time_price"]),
10070
10109
  planType: PlanTypeFromJSON(json["plan_type"]),
10110
+ quarterlyPrice: json["quarterly_price"] == null ? void 0 : BillingPriceResponseDataFromJSON(json["quarterly_price"]),
10071
10111
  trialDays: json["trial_days"] == null ? void 0 : json["trial_days"],
10072
10112
  updatedAt: new Date(json["updated_at"]),
10073
10113
  versions: json["versions"].map(
@@ -10172,6 +10212,8 @@ function UsageBasedEntitlementResponseDataFromJSONTyped(json, ignoreDiscriminato
10172
10212
  metricPeriodMonthReset: json["metric_period_month_reset"] == null ? void 0 : MetricPeriodMonthResetFromJSON(json["metric_period_month_reset"]),
10173
10213
  monthlyUsageBasedPrice: json["monthly_usage_based_price"] == null ? void 0 : BillingPriceViewFromJSON(json["monthly_usage_based_price"]),
10174
10214
  priceBehavior: json["price_behavior"] == null ? void 0 : EntitlementPriceBehaviorFromJSON(json["price_behavior"]),
10215
+ quarterlyUsageBasedPrice: json["quarterly_usage_based_price"] == null ? void 0 : BillingPriceViewFromJSON(json["quarterly_usage_based_price"]),
10216
+ usageQuantity: json["usage_quantity"] == null ? void 0 : json["usage_quantity"],
10175
10217
  valueBool: json["value_bool"] == null ? void 0 : json["value_bool"],
10176
10218
  valueNumeric: json["value_numeric"] == null ? void 0 : json["value_numeric"],
10177
10219
  valueType: EntitlementValueTypeFromJSON(json["value_type"]),
@@ -11321,6 +11363,7 @@ function BillingPriceResponseDataFromJSONTyped9(json, ignoreDiscriminator) {
11321
11363
  externalPriceId: json["external_price_id"],
11322
11364
  id: json["id"],
11323
11365
  interval: BillingProductPriceIntervalFromJSON2(json["interval"]),
11366
+ intervalCount: json["interval_count"],
11324
11367
  nickname: json["nickname"] == null ? void 0 : json["nickname"],
11325
11368
  price: json["price"],
11326
11369
  priceDecimal: json["price_decimal"] == null ? void 0 : json["price_decimal"],
@@ -11456,6 +11499,7 @@ function BillingPriceViewFromJSONTyped9(json, ignoreDiscriminator) {
11456
11499
  currency: json["currency"],
11457
11500
  id: json["id"],
11458
11501
  interval: BillingProductPriceIntervalFromJSON2(json["interval"]),
11502
+ intervalCount: json["interval_count"],
11459
11503
  isActive: json["is_active"],
11460
11504
  meterEventName: json["meter_event_name"] == null ? void 0 : json["meter_event_name"],
11461
11505
  meterEventPayloadKey: json["meter_event_payload_key"] == null ? void 0 : json["meter_event_payload_key"],
@@ -11615,6 +11659,14 @@ function BillingProductDetailResponseDataFromJSONTyped5(json, ignoreDiscriminato
11615
11659
  };
11616
11660
  }
11617
11661
 
11662
+ // src/api/componentspublic/models/BillingStrategy.ts
11663
+ function BillingStrategyFromJSON2(json) {
11664
+ return BillingStrategyFromJSONTyped5(json, false);
11665
+ }
11666
+ function BillingStrategyFromJSONTyped5(json, ignoreDiscriminator) {
11667
+ return json;
11668
+ }
11669
+
11618
11670
  // src/api/componentspublic/models/ChargeType.ts
11619
11671
  function ChargeTypeFromJSON2(json) {
11620
11672
  return ChargeTypeFromJSONTyped5(json, false);
@@ -11743,6 +11795,7 @@ function EntitlementCurrencyPricesResponseDataFromJSONTyped3(json, ignoreDiscrim
11743
11795
  return {
11744
11796
  currency: json["currency"],
11745
11797
  monthlyPrice: json["monthly_price"] == null ? void 0 : BillingPriceViewFromJSON2(json["monthly_price"]),
11798
+ quarterlyPrice: json["quarterly_price"] == null ? void 0 : BillingPriceViewFromJSON2(json["quarterly_price"]),
11746
11799
  yearlyPrice: json["yearly_price"] == null ? void 0 : BillingPriceViewFromJSON2(json["yearly_price"])
11747
11800
  };
11748
11801
  }
@@ -12090,6 +12143,7 @@ function PlanEntitlementResponseDataFromJSONTyped5(json, ignoreDiscriminator) {
12090
12143
  featureId: json["feature_id"],
12091
12144
  id: json["id"],
12092
12145
  meteredMonthlyPrice: json["metered_monthly_price"] == null ? void 0 : BillingPriceViewFromJSON2(json["metered_monthly_price"]),
12146
+ meteredQuarterlyPrice: json["metered_quarterly_price"] == null ? void 0 : BillingPriceViewFromJSON2(json["metered_quarterly_price"]),
12093
12147
  meteredYearlyPrice: json["metered_yearly_price"] == null ? void 0 : BillingPriceViewFromJSON2(json["metered_yearly_price"]),
12094
12148
  metricPeriod: json["metric_period"] == null ? void 0 : MetricPeriodFromJSON2(json["metric_period"]),
12095
12149
  metricPeriodMonthReset: json["metric_period_month_reset"] == null ? void 0 : MetricPeriodMonthResetFromJSON2(json["metric_period_month_reset"]),
@@ -12101,6 +12155,7 @@ function PlanEntitlementResponseDataFromJSONTyped5(json, ignoreDiscriminator) {
12101
12155
  softLimit: json["soft_limit"] == null ? void 0 : json["soft_limit"],
12102
12156
  updatedAt: new Date(json["updated_at"]),
12103
12157
  usageBasedProduct: json["usage_based_product"] == null ? void 0 : BillingProductResponseDataFromJSON2(json["usage_based_product"]),
12158
+ usageQuantity: json["usage_quantity"] == null ? void 0 : json["usage_quantity"],
12104
12159
  valueBool: json["value_bool"] == null ? void 0 : json["value_bool"],
12105
12160
  valueCredit: json["value_credit"] == null ? void 0 : BillingCreditResponseDataFromJSON2(json["value_credit"]),
12106
12161
  valueNumeric: json["value_numeric"] == null ? void 0 : json["value_numeric"],
@@ -12110,6 +12165,14 @@ function PlanEntitlementResponseDataFromJSONTyped5(json, ignoreDiscriminator) {
12110
12165
  };
12111
12166
  }
12112
12167
 
12168
+ // src/api/componentspublic/models/PlanPriceCadence.ts
12169
+ function PlanPriceCadenceFromJSON2(json) {
12170
+ return PlanPriceCadenceFromJSONTyped4(json, false);
12171
+ }
12172
+ function PlanPriceCadenceFromJSONTyped4(json, ignoreDiscriminator) {
12173
+ return json;
12174
+ }
12175
+
12113
12176
  // src/api/componentspublic/models/PlanCreditGrantView.ts
12114
12177
  function PlanCreditGrantViewFromJSON2(json) {
12115
12178
  return PlanCreditGrantViewFromJSONTyped3(json, false);
@@ -12167,6 +12230,7 @@ function PlanCurrencyPricesResponseDataFromJSONTyped5(json, ignoreDiscriminator)
12167
12230
  currency: json["currency"],
12168
12231
  monthlyPrice: json["monthly_price"] == null ? void 0 : BillingPriceResponseDataFromJSON2(json["monthly_price"]),
12169
12232
  oneTimePrice: json["one_time_price"] == null ? void 0 : BillingPriceResponseDataFromJSON2(json["one_time_price"]),
12233
+ quarterlyPrice: json["quarterly_price"] == null ? void 0 : BillingPriceResponseDataFromJSON2(json["quarterly_price"]),
12170
12234
  yearlyPrice: json["yearly_price"] == null ? void 0 : BillingPriceResponseDataFromJSON2(json["yearly_price"])
12171
12235
  };
12172
12236
  }
@@ -12213,10 +12277,14 @@ function PlanViewPublicResponseDataFromJSONTyped(json, ignoreDiscriminator) {
12213
12277
  return {
12214
12278
  activeVersion: json["active_version"] == null ? void 0 : PlanVersionResponseDataFromJSON2(json["active_version"]),
12215
12279
  audienceType: json["audience_type"] == null ? void 0 : json["audience_type"],
12280
+ availablePeriods: json["available_periods"].map(
12281
+ PlanPriceCadenceFromJSON2
12282
+ ),
12216
12283
  billingLinkedResource: json["billing_linked_resource"] == null ? void 0 : BillingLinkedResourceResponseDataFromJSON2(
12217
12284
  json["billing_linked_resource"]
12218
12285
  ),
12219
12286
  billingProduct: json["billing_product"] == null ? void 0 : BillingProductDetailResponseDataFromJSON2(json["billing_product"]),
12287
+ billingStrategy: BillingStrategyFromJSON2(json["billing_strategy"]),
12220
12288
  chargeType: ChargeTypeFromJSON2(json["charge_type"]),
12221
12289
  companyCount: json["company_count"],
12222
12290
  companyId: json["company_id"] == null ? void 0 : json["company_id"],
@@ -12251,6 +12319,7 @@ function PlanViewPublicResponseDataFromJSONTyped(json, ignoreDiscriminator) {
12251
12319
  name: json["name"],
12252
12320
  oneTimePrice: json["one_time_price"] == null ? void 0 : BillingPriceResponseDataFromJSON2(json["one_time_price"]),
12253
12321
  planType: PlanTypeFromJSON2(json["plan_type"]),
12322
+ quarterlyPrice: json["quarterly_price"] == null ? void 0 : BillingPriceResponseDataFromJSON2(json["quarterly_price"]),
12254
12323
  trialDays: json["trial_days"] == null ? void 0 : json["trial_days"],
12255
12324
  updatedAt: new Date(json["updated_at"]),
12256
12325
  versions: json["versions"].map(
@@ -12338,6 +12407,24 @@ var ComponentspublicApi = class extends BaseAPI2 {
12338
12407
  };
12339
12408
 
12340
12409
  // src/utils/api/billing.ts
12410
+ function derivePeriod(interval, intervalCount) {
12411
+ if (!interval) {
12412
+ return void 0;
12413
+ }
12414
+ if (interval === "month" && intervalCount === 3) {
12415
+ return "quarter";
12416
+ }
12417
+ return interval;
12418
+ }
12419
+ function getSubscriptionPeriod(billingSubscription) {
12420
+ if (!billingSubscription) {
12421
+ return void 0;
12422
+ }
12423
+ const product = billingSubscription.products?.find(
12424
+ (p3) => p3.interval && p3.interval !== "one-time"
12425
+ );
12426
+ return derivePeriod(product?.interval, product?.intervalCount) ?? derivePeriod(billingSubscription.interval);
12427
+ }
12341
12428
  var ChargeType = {
12342
12429
  oneTime: "one_time",
12343
12430
  recurring: "recurring",
@@ -12347,19 +12434,32 @@ function getPriceValue(billingPrice) {
12347
12434
  const price = typeof billingPrice.priceDecimal === "string" ? Number(billingPrice.priceDecimal) : billingPrice.price;
12348
12435
  return price;
12349
12436
  }
12437
+ function selectPriceForPeriod(source, period) {
12438
+ switch (period) {
12439
+ case "year":
12440
+ return source.yearlyPrice;
12441
+ case "quarter":
12442
+ return source.quarterlyPrice;
12443
+ default:
12444
+ return source.monthlyPrice;
12445
+ }
12446
+ }
12447
+ function selectAvailablePrice(source) {
12448
+ return source.monthlyPrice ?? source.quarterlyPrice ?? source.yearlyPrice;
12449
+ }
12350
12450
  function getPlanPrice(plan, period = "month", options = { useSelectedPeriod: true }, currency) {
12351
12451
  if (currency && plan.currencyPrices?.length) {
12352
12452
  const currencyPrice = plan.currencyPrices.find(
12353
12453
  (cp) => cp.currency.toLowerCase() === currency.toLowerCase()
12354
12454
  );
12355
12455
  if (currencyPrice) {
12356
- const billingPrice2 = options.useSelectedPeriod ? period === "year" ? currencyPrice.yearlyPrice : currencyPrice.monthlyPrice : currencyPrice.yearlyPrice && !currencyPrice.monthlyPrice ? currencyPrice.yearlyPrice : currencyPrice.monthlyPrice;
12456
+ const billingPrice2 = options.useSelectedPeriod ? selectPriceForPeriod(currencyPrice, period) : selectAvailablePrice(currencyPrice);
12357
12457
  if (billingPrice2) {
12358
12458
  return { ...billingPrice2, price: getPriceValue(billingPrice2) };
12359
12459
  }
12360
12460
  }
12361
12461
  }
12362
- const billingPrice = options.useSelectedPeriod ? period === "year" ? plan.yearlyPrice : plan.monthlyPrice : plan.yearlyPrice && !plan.monthlyPrice ? plan.yearlyPrice : plan.monthlyPrice;
12462
+ const billingPrice = options.useSelectedPeriod ? selectPriceForPeriod(plan, period) : selectAvailablePrice(plan);
12363
12463
  if (billingPrice) {
12364
12464
  return { ...billingPrice, price: getPriceValue(billingPrice) };
12365
12465
  }
@@ -12370,13 +12470,13 @@ function getAddOnPrice(addOn, period = "month", currency) {
12370
12470
  (cp) => cp.currency.toLowerCase() === currency.toLowerCase()
12371
12471
  );
12372
12472
  if (currencyPrice) {
12373
- const billingPrice2 = addOn.chargeType === ChargeType.oneTime ? currencyPrice.oneTimePrice : period === "year" ? currencyPrice.yearlyPrice : currencyPrice.monthlyPrice;
12473
+ const billingPrice2 = addOn.chargeType === ChargeType.oneTime ? currencyPrice.oneTimePrice : selectPriceForPeriod(currencyPrice, period);
12374
12474
  if (billingPrice2) {
12375
12475
  return { ...billingPrice2, price: getPriceValue(billingPrice2) };
12376
12476
  }
12377
12477
  }
12378
12478
  }
12379
- const billingPrice = addOn.chargeType === ChargeType.oneTime ? addOn.oneTimePrice : period === "year" ? addOn.yearlyPrice : addOn.monthlyPrice;
12479
+ const billingPrice = addOn.chargeType === ChargeType.oneTime ? addOn.oneTimePrice : selectPriceForPeriod(addOn, period);
12380
12480
  if (billingPrice) {
12381
12481
  return { ...billingPrice, price: getPriceValue(billingPrice) };
12382
12482
  }
@@ -12400,14 +12500,28 @@ function getEntitlementPrice(entitlement, period = "month", currency) {
12400
12500
  (cp) => cp.currency.toLowerCase() === currency.toLowerCase()
12401
12501
  );
12402
12502
  if (currencyPrice) {
12403
- source = period === "year" ? currencyPrice.yearlyPrice : currencyPrice.monthlyPrice;
12503
+ source = selectPriceForPeriod(currencyPrice, period);
12404
12504
  }
12405
12505
  }
12406
12506
  if (!source) {
12407
12507
  if ("valueType" in entitlement) {
12408
- source = period === "year" ? entitlement.meteredYearlyPrice : entitlement.meteredMonthlyPrice;
12508
+ source = selectPriceForPeriod(
12509
+ {
12510
+ monthlyPrice: entitlement.meteredMonthlyPrice,
12511
+ quarterlyPrice: entitlement.meteredQuarterlyPrice,
12512
+ yearlyPrice: entitlement.meteredYearlyPrice
12513
+ },
12514
+ period
12515
+ );
12409
12516
  } else if ("entitlementType" in entitlement) {
12410
- source = period === "year" ? entitlement.yearlyUsageBasedPrice : entitlement.monthlyUsageBasedPrice;
12517
+ source = selectPriceForPeriod(
12518
+ {
12519
+ monthlyPrice: entitlement.monthlyUsageBasedPrice,
12520
+ quarterlyPrice: entitlement.quarterlyUsageBasedPrice,
12521
+ yearlyPrice: entitlement.yearlyUsageBasedPrice
12522
+ },
12523
+ period
12524
+ );
12411
12525
  }
12412
12526
  }
12413
12527
  if (source) {
@@ -12459,7 +12573,15 @@ function calculateTieredCost(quantity, priceTiers, tiersMode) {
12459
12573
  return cost;
12460
12574
  }
12461
12575
  function getEntitlementCost(entitlement, period = "month", currency) {
12462
- const source = currency ? getEntitlementPrice(entitlement, period ?? "month", currency) : period === "year" ? entitlement.yearlyUsageBasedPrice : entitlement.monthlyUsageBasedPrice;
12576
+ const resolvedPeriod = period ?? "month";
12577
+ const source = currency ? getEntitlementPrice(entitlement, resolvedPeriod, currency) : selectPriceForPeriod(
12578
+ {
12579
+ monthlyPrice: entitlement.monthlyUsageBasedPrice,
12580
+ quarterlyPrice: entitlement.quarterlyUsageBasedPrice,
12581
+ yearlyPrice: entitlement.yearlyUsageBasedPrice
12582
+ },
12583
+ resolvedPeriod
12584
+ );
12463
12585
  if (source) {
12464
12586
  const billingPrice = { ...source };
12465
12587
  if (entitlement.priceBehavior === EntitlementPriceBehavior.PayInAdvance && typeof entitlement.allocation === "number" && entitlement.allocation > 0) {
@@ -12720,7 +12842,7 @@ function getMetricPeriodName(entitlement) {
12720
12842
  return name;
12721
12843
  }
12722
12844
  function getUsageDetails(entitlement, period, currency) {
12723
- const billingPrice = currency ? getEntitlementPrice(entitlement, period ?? "month", currency) : period === "year" ? entitlement.yearlyUsageBasedPrice : period === "month" ? entitlement.monthlyUsageBasedPrice : void 0;
12845
+ const billingPrice = currency ? getEntitlementPrice(entitlement, period ?? "month", currency) : period === "year" ? entitlement.yearlyUsageBasedPrice : period === "quarter" ? entitlement.quarterlyUsageBasedPrice : period === "month" ? entitlement.monthlyUsageBasedPrice : void 0;
12724
12846
  let limit;
12725
12847
  if ((!entitlement.priceBehavior || entitlement.priceBehavior === EntitlementPriceBehavior.PayInAdvance) && typeof entitlement.allocation === "number") {
12726
12848
  limit = entitlement.allocation;
@@ -12782,7 +12904,7 @@ function getCreditBasedEntitlementLimit(entitlement, credits) {
12782
12904
  }
12783
12905
  function extractCurrentUsageBasedEntitlements(features = [], planPeriod) {
12784
12906
  return features.reduce((acc, entitlement) => {
12785
- if (entitlement.priceBehavior && (planPeriod === "month" && entitlement.monthlyUsageBasedPrice || planPeriod === "year" && entitlement.yearlyUsageBasedPrice)) {
12907
+ if (entitlement.priceBehavior && (planPeriod === "month" && entitlement.monthlyUsageBasedPrice || planPeriod === "quarter" && entitlement.quarterlyUsageBasedPrice || planPeriod === "year" && entitlement.yearlyUsageBasedPrice)) {
12786
12908
  const allocation = entitlement.allocation || 0;
12787
12909
  const usage = entitlement.usage || 0;
12788
12910
  const quantity = allocation ?? usage;
@@ -13304,6 +13426,8 @@ function shortenPeriod(period) {
13304
13426
  switch (period) {
13305
13427
  case "month":
13306
13428
  return "mo";
13429
+ case "quarter":
13430
+ return "qtr";
13307
13431
  case "year":
13308
13432
  return "yr";
13309
13433
  }
@@ -13477,7 +13601,7 @@ function getCurrencySymbol(currency) {
13477
13601
  // src/utils/style.ts
13478
13602
  function attr(key, value) {
13479
13603
  if (typeof value !== "undefined") {
13480
- return pt2`
13604
+ return ft`
13481
13605
  ${key}: ${value};
13482
13606
  `;
13483
13607
  }
@@ -13669,7 +13793,8 @@ var reducer = (state, action) => {
13669
13793
  bypassAddOnSelection,
13670
13794
  bypassCreditsSelection,
13671
13795
  ...config.addOnIds && { addOnIds: config.addOnIds },
13672
- hideSkippedStages: config.hideSkipped ?? false
13796
+ hideSkippedStages: config.hideSkipped ?? false,
13797
+ startTrialIfAvailable: isStringFormat || config.startTrialIfAvailable === void 0 ? true : config.startTrialIfAvailable
13673
13798
  }
13674
13799
  };
13675
13800
  }
@@ -13691,7 +13816,7 @@ var reducer = (state, action) => {
13691
13816
  // src/context/EmbedProvider.tsx
13692
13817
  var import_jsx_runtime2 = require("react/jsx-runtime");
13693
13818
  var getCustomHeaders = (sessionId) => ({
13694
- "X-Schematic-Components-Version": "2.11.0",
13819
+ "X-Schematic-Components-Version": "2.13.0",
13695
13820
  "X-Schematic-Session-ID": sessionId
13696
13821
  });
13697
13822
  var normalizeCurrencyFilter = (filter2) => {
@@ -14124,7 +14249,7 @@ var EmbedProvider = ({
14124
14249
  updateSettings,
14125
14250
  debug
14126
14251
  },
14127
- children: /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(st2, { theme: state.settings.theme, children: [
14252
+ children: /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(rt2, { theme: state.settings.theme, children: [
14128
14253
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(IconStyles, {}),
14129
14254
  children
14130
14255
  ] })
@@ -14227,6 +14352,9 @@ function useAvailablePlans(activePeriod, options = { useSelectedPeriod: true })
14227
14352
  if ((data?.activePlans || []).some((plan) => plan.monthlyPrice) || (data?.activeAddOns || []).some((addOn) => addOn.monthlyPrice)) {
14228
14353
  periods.push("month");
14229
14354
  }
14355
+ if ((data?.activePlans || []).some((plan) => plan.quarterlyPrice) || (data?.activeAddOns || []).some((addOn) => addOn.quarterlyPrice)) {
14356
+ periods.push("quarter");
14357
+ }
14230
14358
  if ((data?.activePlans || []).some((plan) => plan.yearlyPrice) || (data?.activeAddOns || []).some((addOn) => addOn.yearlyPrice)) {
14231
14359
  periods.push("year");
14232
14360
  }
@@ -14236,9 +14364,9 @@ function useAvailablePlans(activePeriod, options = { useSelectedPeriod: true })
14236
14364
  (plans) => {
14237
14365
  const activePlans = settings.mode === "edit" ? plans.slice() : plans.filter((plan) => {
14238
14366
  if (options.useSelectedPeriod) {
14239
- return activePeriod === "month" && plan.monthlyPrice || activePeriod === "year" && plan.yearlyPrice || plan.chargeType === ChargeType.oneTime;
14367
+ return activePeriod === "month" && plan.monthlyPrice || activePeriod === "quarter" && plan.quarterlyPrice || activePeriod === "year" && plan.yearlyPrice || plan.chargeType === ChargeType.oneTime;
14240
14368
  }
14241
- return plan.monthlyPrice || plan.yearlyPrice || plan.chargeType === ChargeType.oneTime;
14369
+ return plan.monthlyPrice || plan.quarterlyPrice || plan.yearlyPrice || plan.chargeType === ChargeType.oneTime;
14242
14370
  });
14243
14371
  return activePlans.map((plan) => ({ ...plan, isSelected: false }));
14244
14372
  },
@@ -14493,7 +14621,7 @@ function useWrapChildren(ref) {
14493
14621
  }
14494
14622
 
14495
14623
  // src/components/ui/box/styles.ts
14496
- var Box = yt2("div")((props) => {
14624
+ var Box = gt2("div")((props) => {
14497
14625
  function reducer2(acc, [key, value]) {
14498
14626
  if (key.startsWith("$") && !["$viewport"].includes(key)) {
14499
14627
  acc.push(
@@ -14504,14 +14632,14 @@ var Box = yt2("div")((props) => {
14504
14632
  return acc;
14505
14633
  }
14506
14634
  const styles = Object.entries(props).reduce(reducer2, [
14507
- pt2`
14635
+ ft`
14508
14636
  &:focus-visible {
14509
14637
  outline: 2px solid ${({ theme }) => theme.primary};
14510
14638
  }
14511
14639
  `
14512
14640
  ]);
14513
14641
  for (const [key, value] of Object.entries(props.$viewport || {})) {
14514
- styles.push(pt2`
14642
+ styles.push(ft`
14515
14643
  ${{
14516
14644
  "xs": "@container (min-width: 375px)",
14517
14645
  "sm": "@container (min-width: 640px)",
@@ -14526,11 +14654,11 @@ var Box = yt2("div")((props) => {
14526
14654
  }
14527
14655
  return styles;
14528
14656
  });
14529
- var TransitionBox = yt2(Box)`
14657
+ var TransitionBox = gt2(Box)`
14530
14658
  ${({ $isExpanded = true }) => {
14531
- return $isExpanded ? pt2`
14659
+ return $isExpanded ? ft`
14532
14660
  height: auto;
14533
- ` : pt2`
14661
+ ` : ft`
14534
14662
  height: 0;
14535
14663
  overflow: hidden;
14536
14664
  `;
@@ -14547,7 +14675,7 @@ var TransitionBox = yt2(Box)`
14547
14675
  `;
14548
14676
 
14549
14677
  // src/components/ui/icon/styles.ts
14550
- var Icon2 = yt2(Icon).attrs(({ name, title, onClick }) => ({
14678
+ var Icon2 = gt2(Icon).attrs(({ name, title, onClick }) => ({
14551
14679
  title: title || name,
14552
14680
  ...onClick && { tabIndex: 0 }
14553
14681
  }))`
@@ -14557,7 +14685,7 @@ var Icon2 = yt2(Icon).attrs(({ name, title, onClick }) => ({
14557
14685
  flex-shrink: 0;
14558
14686
  transition: 0.1s;
14559
14687
 
14560
- ${({ onClick }) => onClick && pt2`
14688
+ ${({ onClick }) => onClick && ft`
14561
14689
  &:hover {
14562
14690
  cursor: pointer;
14563
14691
  }
@@ -14568,7 +14696,7 @@ var Icon2 = yt2(Icon).attrs(({ name, title, onClick }) => ({
14568
14696
  outline-offset: 2px;
14569
14697
  }
14570
14698
 
14571
- ${({ $rounded }) => $rounded && pt2`
14699
+ ${({ $rounded }) => $rounded && ft`
14572
14700
  border-radius: 9999px;
14573
14701
  `}
14574
14702
 
@@ -14599,10 +14727,10 @@ var Icon2 = yt2(Icon).attrs(({ name, title, onClick }) => ({
14599
14727
  scale *= 3;
14600
14728
  break;
14601
14729
  }
14602
- return pt2`
14730
+ return ft`
14603
14731
  font-size: ${base * scale / TEXT_BASE_SIZE}rem;
14604
14732
 
14605
- ${$rounded && pt2`
14733
+ ${$rounded && ft`
14606
14734
  width: ${base * (11 / 6) * scale / TEXT_BASE_SIZE}rem;
14607
14735
  height: ${base * (11 / 6) * scale / TEXT_BASE_SIZE}rem;
14608
14736
  `}
@@ -14610,10 +14738,10 @@ var Icon2 = yt2(Icon).attrs(({ name, title, onClick }) => ({
14610
14738
  }}
14611
14739
 
14612
14740
  ${({ $variant, $color, $background }) => {
14613
- return $variant === "outline" ? pt2`
14741
+ return $variant === "outline" ? ft`
14614
14742
  color: ${$color};
14615
14743
  background-color: transparent;
14616
- ` : pt2`
14744
+ ` : ft`
14617
14745
  color: ${$color};
14618
14746
  background-color: ${$background};
14619
14747
  `;
@@ -14621,7 +14749,7 @@ var Icon2 = yt2(Icon).attrs(({ name, title, onClick }) => ({
14621
14749
  `;
14622
14750
 
14623
14751
  // src/components/ui/loader/styles.ts
14624
- var spin = Ot`
14752
+ var spin = Et`
14625
14753
  0% {
14626
14754
  transform: rotate(0deg);
14627
14755
  }
@@ -14634,7 +14762,7 @@ var loaderStyles = ({
14634
14762
  $color,
14635
14763
  $size = "md",
14636
14764
  $isLoading = true
14637
- }) => pt2(({ theme }) => {
14765
+ }) => ft(({ theme }) => {
14638
14766
  const { l: l3 } = hexToHSL(theme.card.background);
14639
14767
  let color = $color ?? theme.primary;
14640
14768
  let colorFn;
@@ -14670,14 +14798,14 @@ var loaderStyles = ({
14670
14798
  px = 64;
14671
14799
  break;
14672
14800
  }
14673
- return pt2`
14801
+ return ft`
14674
14802
  display: inline-block;
14675
14803
  width: ${($isLoading ? px : 0) / TEXT_BASE_SIZE}rem;
14676
14804
  height: ${($isLoading ? px : 0) / TEXT_BASE_SIZE}rem;
14677
14805
  border-width: ${($isLoading ? px : 0) / 16 / TEXT_BASE_SIZE}rem;
14678
- ${$isLoading ? pt2`
14806
+ ${$isLoading ? ft`
14679
14807
  animation: 1.5s linear infinite ${spin};
14680
- ` : pt2`
14808
+ ` : ft`
14681
14809
  transform: scale(0);
14682
14810
  `}
14683
14811
  border-style: solid;
@@ -14688,12 +14816,12 @@ var loaderStyles = ({
14688
14816
  animation: 1.5s linear infinite ${spin};
14689
14817
  `;
14690
14818
  });
14691
- var Loader = yt2.div((props) => {
14819
+ var Loader = gt2.div((props) => {
14692
14820
  return loaderStyles(props);
14693
14821
  });
14694
14822
 
14695
14823
  // src/components/ui/button/styles.ts
14696
- var Button = yt2.button(
14824
+ var Button = gt2.button(
14697
14825
  ({
14698
14826
  theme,
14699
14827
  disabled = false,
@@ -14705,7 +14833,7 @@ var Button = yt2.button(
14705
14833
  $alignment = "center",
14706
14834
  $selfAlignment
14707
14835
  }) => {
14708
- return pt2`
14836
+ return ft`
14709
14837
  appearance: none;
14710
14838
  font-family: "Public Sans", sans-serif;
14711
14839
  font-weight: 500;
@@ -14713,7 +14841,7 @@ var Button = yt2.button(
14713
14841
  display: flex;
14714
14842
  justify-content: ${$alignment};
14715
14843
  align-items: center;
14716
- ${() => $selfAlignment && pt2`
14844
+ ${() => $selfAlignment && ft`
14717
14845
  align-self: ${$selfAlignment};
14718
14846
  `}
14719
14847
  width: ${$fullWidth ? "100%" : "fit-content"};
@@ -14723,21 +14851,21 @@ var Button = yt2.button(
14723
14851
  ${function sizeStyles() {
14724
14852
  switch ($size) {
14725
14853
  case "sm":
14726
- return pt2`
14854
+ return ft`
14727
14855
  font-size: ${15 / TEXT_BASE_SIZE}rem;
14728
14856
  height: ${40 / TEXT_BASE_SIZE}rem;
14729
14857
  padding: ${7 / TEXT_BASE_SIZE}rem ${20 / TEXT_BASE_SIZE}rem;
14730
14858
  border-radius: ${6 / TEXT_BASE_SIZE}rem;
14731
14859
  `;
14732
14860
  case "md":
14733
- return pt2`
14861
+ return ft`
14734
14862
  font-size: ${17 / TEXT_BASE_SIZE}rem;
14735
14863
  height: ${52 / TEXT_BASE_SIZE}rem;
14736
14864
  padding: ${8 / TEXT_BASE_SIZE}rem ${24 / TEXT_BASE_SIZE}rem;
14737
14865
  border-radius: ${8 / TEXT_BASE_SIZE}rem;
14738
14866
  `;
14739
14867
  case "lg":
14740
- return pt2`
14868
+ return ft`
14741
14869
  font-size: ${19 / TEXT_BASE_SIZE}rem;
14742
14870
  height: ${64 / TEXT_BASE_SIZE}rem;
14743
14871
  padding: ${9 / TEXT_BASE_SIZE}rem ${28 / TEXT_BASE_SIZE}rem;
@@ -14752,7 +14880,7 @@ var Button = yt2.button(
14752
14880
  if (disabled) {
14753
14881
  color = l3 > 50 ? lighten(color, 0.625) : darken(color, 0.375);
14754
14882
  }
14755
- return pt2`
14883
+ return ft`
14756
14884
  color: ${color};
14757
14885
 
14758
14886
  ${Text}, ${Icon2} {
@@ -14769,7 +14897,7 @@ var Button = yt2.button(
14769
14897
  color = l3 > 50 ? darken(color, 0.075) : lighten(color, 0.15);
14770
14898
  }
14771
14899
  if ($variant === "outline") {
14772
- return pt2`
14900
+ return ft`
14773
14901
  color: ${color};
14774
14902
  background-color: transparent;
14775
14903
  border-color: ${color};
@@ -14780,7 +14908,7 @@ var Button = yt2.button(
14780
14908
  `;
14781
14909
  }
14782
14910
  if ($variant === "ghost") {
14783
- return pt2`
14911
+ return ft`
14784
14912
  color: ${color};
14785
14913
  background-color: transparent;
14786
14914
  border-color: ${l3 > 50 ? darken(theme.card.background, 0.2) : lighten(theme.card.background, 0.2)};
@@ -14791,7 +14919,7 @@ var Button = yt2.button(
14791
14919
  `;
14792
14920
  }
14793
14921
  if ($variant === "text") {
14794
- return pt2`
14922
+ return ft`
14795
14923
  color: ${color};
14796
14924
  background-color: transparent;
14797
14925
  border-color: transparent;
@@ -14801,7 +14929,7 @@ var Button = yt2.button(
14801
14929
  }
14802
14930
  `;
14803
14931
  }
14804
- return pt2`
14932
+ return ft`
14805
14933
  background-color: ${color};
14806
14934
  border-color: ${color};
14807
14935
  `;
@@ -14819,7 +14947,7 @@ var Button = yt2.button(
14819
14947
  &::before {
14820
14948
  content: "";
14821
14949
  ${loaderStyles({ $color: theme[$color], $size, $isLoading })}
14822
- ${$isLoading && pt2`
14950
+ ${$isLoading && ft`
14823
14951
  margin-right: 0.5rem;
14824
14952
  `}
14825
14953
  }
@@ -14837,13 +14965,13 @@ var Button = yt2.button(
14837
14965
  const lightened = lighten(specified, 0.15);
14838
14966
  const bgColor = specified === lightened ? darken(specified, 0.15) : lightened;
14839
14967
  if ($variant === "filled") {
14840
- return pt2`
14968
+ return ft`
14841
14969
  background-color: ${bgColor};
14842
14970
  border-color: ${bgColor};
14843
14971
  `;
14844
14972
  }
14845
14973
  if ($variant === "outline") {
14846
- return pt2`
14974
+ return ft`
14847
14975
  color: ${color};
14848
14976
  background-color: ${bgColor};
14849
14977
  border-color: ${bgColor};
@@ -14855,14 +14983,14 @@ var Button = yt2.button(
14855
14983
  }
14856
14984
  if ($variant === "ghost") {
14857
14985
  const { l: l4 } = hexToHSL(theme.card.background);
14858
- return pt2`
14986
+ return ft`
14859
14987
  border-color: ${l4 > 50 ? darken(theme.card.background, 0.125) : lighten(theme.card.background, 0.125)};
14860
14988
  box-shadow: 0 1px 2px
14861
14989
  ${l4 > 50 ? darken(theme.card.background, 0.075) : lighten(theme.card.background, 0.075)};
14862
14990
  `;
14863
14991
  }
14864
14992
  if ($variant === "text") {
14865
- return pt2`
14993
+ return ft`
14866
14994
  text-decoration: underline;
14867
14995
  `;
14868
14996
  }
@@ -14876,14 +15004,14 @@ var Button = yt2.button(
14876
15004
  var import_react25 = require("react");
14877
15005
 
14878
15006
  // src/components/ui/dialog/styles.ts
14879
- var DialogContent = yt2.div`
15007
+ var DialogContent = gt2.div`
14880
15008
  position: relative;
14881
15009
  display: flex;
14882
15010
  flex-direction: column;
14883
15011
  `;
14884
- var Dialog = yt2.dialog(
15012
+ var Dialog = gt2.dialog(
14885
15013
  ({ theme, $isModal, $size, $top }) => {
14886
- return pt2`
15014
+ return ft`
14887
15015
  ${ResetStyle}
14888
15016
  ${$isModal && ContainerStyle}
14889
15017
 
@@ -14925,7 +15053,7 @@ var Dialog = yt2.dialog(
14925
15053
  flex-direction: row;
14926
15054
  max-height: calc(100dvh - 5rem + 3px);
14927
15055
 
14928
- ${$size === "lg" && pt2`
15056
+ ${$size === "lg" && ft`
14929
15057
  height: calc(100% - 5rem + 3px);
14930
15058
  `}
14931
15059
  }
@@ -15062,7 +15190,7 @@ var DialogHeader = ({
15062
15190
  };
15063
15191
 
15064
15192
  // src/components/ui/flex/styles.ts
15065
- var Flex = yt2(Box)`
15193
+ var Flex = gt2(Box)`
15066
15194
  display: flex;
15067
15195
  `;
15068
15196
 
@@ -15096,9 +15224,9 @@ var Icon3 = ({
15096
15224
  };
15097
15225
 
15098
15226
  // src/components/ui/input/styles.ts
15099
- var Input = yt2.input(({ theme, $size = "md", $variant = "filled" }) => {
15227
+ var Input = gt2.input(({ theme, $size = "md", $variant = "filled" }) => {
15100
15228
  const isLightBackground = isLightColor(theme.card.background);
15101
- return pt2`
15229
+ return ft`
15102
15230
  font-family: "Inter", sans-serif;
15103
15231
  font-weight: 500;
15104
15232
  width: 100%;
@@ -15118,14 +15246,14 @@ var Input = yt2.input(({ theme, $size = "md", $variant = "filled" }) => {
15118
15246
  ${() => {
15119
15247
  switch ($size) {
15120
15248
  case "sm": {
15121
- return pt2`
15249
+ return ft`
15122
15250
  font-size: 0.875rem;
15123
15251
  line-height: 1.5rem;
15124
15252
  height: 1.5rem;
15125
15253
  `;
15126
15254
  }
15127
15255
  case "md": {
15128
- return pt2`
15256
+ return ft`
15129
15257
  font-size: 1rem;
15130
15258
  line-height: 3rem;
15131
15259
  height: 3rem;
@@ -15133,7 +15261,7 @@ var Input = yt2.input(({ theme, $size = "md", $variant = "filled" }) => {
15133
15261
  `;
15134
15262
  }
15135
15263
  case "lg": {
15136
- return pt2`
15264
+ return ft`
15137
15265
  font-size: 1.25rem;
15138
15266
  line-height: 4rem;
15139
15267
  height: 4rem;
@@ -15141,7 +15269,7 @@ var Input = yt2.input(({ theme, $size = "md", $variant = "filled" }) => {
15141
15269
  `;
15142
15270
  }
15143
15271
  case "full": {
15144
- return pt2`
15272
+ return ft`
15145
15273
  font-size: 1rem;
15146
15274
  line-height: 1;
15147
15275
  height: 100%;
@@ -15155,7 +15283,7 @@ var Input = yt2.input(({ theme, $size = "md", $variant = "filled" }) => {
15155
15283
  const color = $variant !== "filled" && !isLightBackground ? theme.typography.text.color : "#000000";
15156
15284
  const bgColor = $variant === "filled" ? "#F1F1F1" : "transparent";
15157
15285
  const borderColor = $variant === "text" ? "transparent" : "#CBCBCB";
15158
- return pt2`
15286
+ return ft`
15159
15287
  color: ${color};
15160
15288
  background-color: ${bgColor};
15161
15289
  border-color: ${borderColor};
@@ -15181,8 +15309,8 @@ var Input = yt2.input(({ theme, $size = "md", $variant = "filled" }) => {
15181
15309
  });
15182
15310
 
15183
15311
  // src/components/ui/overlay/styles.ts
15184
- var Overlay = yt2(Flex)(({ theme }) => {
15185
- return pt2`
15312
+ var Overlay = gt2(Flex)(({ theme }) => {
15313
+ return ft`
15186
15314
  position: absolute;
15187
15315
  top: 0;
15188
15316
  right: 0;
@@ -15300,7 +15428,7 @@ var LeadingLineHeightMap = {
15300
15428
  relaxed: 1.625,
15301
15429
  loose: 2
15302
15430
  };
15303
- var Text = yt2.span.withConfig({
15431
+ var Text = gt2.span.withConfig({
15304
15432
  shouldForwardProp: (prop) => prop !== "display"
15305
15433
  }).attrs(({ onClick }) => ({
15306
15434
  ...onClick && { tabIndex: 0 }
@@ -15323,7 +15451,7 @@ var Text = yt2.span.withConfig({
15323
15451
  const fontWeight = $weight || fontStyle.fontWeight;
15324
15452
  const lineHeight = $leading && LeadingLineHeightMap[$leading];
15325
15453
  const color = $color || fontStyle.color;
15326
- return pt2`
15454
+ return ft`
15327
15455
  font-family: ${fontFamily}, sans-serif;
15328
15456
  font-size: ${typeof fontSize === "number" ? `${fontSize / TEXT_BASE_SIZE}rem` : fontSize};
15329
15457
  font-weight: ${fontWeight};
@@ -15331,19 +15459,19 @@ var Text = yt2.span.withConfig({
15331
15459
  color: ${color};
15332
15460
  text-wrap: pretty;
15333
15461
 
15334
- ${lineHeight && pt2`
15462
+ ${lineHeight && ft`
15335
15463
  line-height: ${lineHeight};
15336
15464
  `}
15337
15465
 
15338
- ${$align && pt2`
15466
+ ${$align && ft`
15339
15467
  text-align: ${$align};
15340
15468
  `};
15341
15469
 
15342
- ${$width && pt2`
15470
+ ${$width && ft`
15343
15471
  width: ${$width};
15344
15472
  `};
15345
15473
 
15346
- ${onClick && pt2`
15474
+ ${onClick && ft`
15347
15475
  &:hover {
15348
15476
  cursor: pointer;
15349
15477
  text-decoration: underline;
@@ -15359,7 +15487,7 @@ var Text = yt2.span.withConfig({
15359
15487
  );
15360
15488
 
15361
15489
  // src/components/ui/toggle/styles.ts
15362
- var Toggle = yt2.input.attrs({ type: "checkbox" })`
15490
+ var Toggle = gt2.input.attrs({ type: "checkbox" })`
15363
15491
  appearance: none;
15364
15492
  font: inherit;
15365
15493
  font-size: inherit;
@@ -15474,7 +15602,7 @@ var origin = (position2) => {
15474
15602
  return o2;
15475
15603
  };
15476
15604
  var grow = (translate) => {
15477
- return Ot`
15605
+ return Et`
15478
15606
  0% {
15479
15607
  opacity: 0;
15480
15608
  transform: translate(${translate.x}%, ${translate.y}%) scale(0);
@@ -15486,13 +15614,13 @@ var grow = (translate) => {
15486
15614
  }
15487
15615
  `;
15488
15616
  };
15489
- var Content = yt2.div.withConfig({
15617
+ var Content = gt2.div.withConfig({
15490
15618
  shouldForwardProp: (prop) => !["x", "y", "position", "zIndex"].includes(prop)
15491
15619
  })(({ x: x3, y: y2, position: position2, theme }) => {
15492
15620
  const translate = coords(position2);
15493
15621
  const arrowTranslate = arrowCoords(position2);
15494
15622
  const transformOrigin = origin(position2);
15495
- return pt2`
15623
+ return ft`
15496
15624
  position: absolute;
15497
15625
  top: calc(
15498
15626
  ${y2}px - ${position2 === "top" ? 0.5 : position2 === "bottom" ? -0.5 : 0}rem
@@ -15532,16 +15660,16 @@ var Content = yt2.div.withConfig({
15532
15660
  &::after {
15533
15661
  position: absolute;
15534
15662
  z-index: 0;
15535
- ${position2 === "top" ? pt2`
15663
+ ${position2 === "top" ? ft`
15536
15664
  top: 100%;
15537
15665
  left: 50%;
15538
- ` : position2 === "right" ? pt2`
15666
+ ` : position2 === "right" ? ft`
15539
15667
  top: 50%;
15540
15668
  right: 100%;
15541
- ` : position2 === "bottom" ? pt2`
15669
+ ` : position2 === "bottom" ? ft`
15542
15670
  bottom: 100%;
15543
15671
  left: 50%;
15544
- ` : pt2`
15672
+ ` : ft`
15545
15673
  top: 50%;
15546
15674
  left: 100%;
15547
15675
  `};
@@ -15624,15 +15752,15 @@ var Tooltip = ({
15624
15752
  };
15625
15753
 
15626
15754
  // src/components/layout/card/styles.ts
15627
- var Element = yt2(Box)``;
15628
- var FussyChild = yt2(Element)``;
15629
- var Notice = yt2(Box)``;
15755
+ var Element = gt2(Box)``;
15756
+ var FussyChild = gt2(Element)``;
15757
+ var Notice = gt2(Box)``;
15630
15758
  var cardBoxShadow = "0px 1px 20px 0px #1018280F, 0px 1px 3px 0px #1018281A";
15631
- var StyledCard = yt2.div(({ theme }) => {
15759
+ var StyledCard = gt2.div(({ theme }) => {
15632
15760
  const { l: l3 } = hexToHSL(theme.card.background);
15633
15761
  const borderColor = l3 > 50 ? "hsla(0, 0%, 0%, 0.1)" : "hsla(0, 0%, 100%, 0.2)";
15634
15762
  const borderRadius = `${theme.card.borderRadius / TEXT_BASE_SIZE}rem`;
15635
- return pt2`
15763
+ return ft`
15636
15764
  position: relative;
15637
15765
 
15638
15766
  ${theme.sectionLayout === "merged" ? `&:not(:has(${FussyChild}))` : `${Element}:not(:is(${FussyChild}))`} {
@@ -15647,9 +15775,9 @@ var StyledCard = yt2.div(({ theme }) => {
15647
15775
  ${theme.card.padding / TEXT_BASE_SIZE}rem;
15648
15776
 
15649
15777
  &:not(:last-child) {
15650
- ${theme.sectionLayout === "merged" ? pt2`
15778
+ ${theme.sectionLayout === "merged" ? ft`
15651
15779
  border-bottom: 1px solid ${borderColor};
15652
- ` : pt2`
15780
+ ` : ft`
15653
15781
  margin-bottom: 1rem;
15654
15782
  `}
15655
15783
  }
@@ -15695,7 +15823,7 @@ Card.displayName = "Card";
15695
15823
  var import_react30 = require("react");
15696
15824
 
15697
15825
  // src/components/layout/column/styles.ts
15698
- var StyledColumn = yt2.div`
15826
+ var StyledColumn = gt2.div`
15699
15827
  height: min-content;
15700
15828
  `;
15701
15829
 
@@ -15712,7 +15840,7 @@ Column.displayName = "Column";
15712
15840
  var import_react31 = require("react");
15713
15841
 
15714
15842
  // src/components/layout/root/styles.ts
15715
- var ResetStyle = pt2`
15843
+ var ResetStyle = ft`
15716
15844
  box-sizing: border-box;
15717
15845
  font-size: 1rem;
15718
15846
  line-height: 1.375;
@@ -15737,11 +15865,11 @@ var ResetStyle = pt2`
15737
15865
  vertical-align: top;
15738
15866
  }
15739
15867
  `;
15740
- var ContainerStyle = pt2`
15868
+ var ContainerStyle = ft`
15741
15869
  container-type: inline-size;
15742
15870
  interpolate-size: allow-keywords;
15743
15871
  `;
15744
- var Container = yt2.div`
15872
+ var Container = gt2.div`
15745
15873
  ${ResetStyle}
15746
15874
  ${ContainerStyle}
15747
15875
  `;
@@ -16215,7 +16343,7 @@ var Plan = ({
16215
16343
  $gap: "1rem",
16216
16344
  $flexGrow: 1,
16217
16345
  children: plans.map((plan, planIndex) => {
16218
- const planPeriod = showPeriodToggle ? period : plan.yearlyPrice && !plan.monthlyPrice ? BillingProductPriceInterval.Year : BillingProductPriceInterval.Month;
16346
+ const planPeriod = showPeriodToggle ? period : plan.monthlyPrice ? BillingProductPriceInterval.Month : plan.quarterlyPrice ? "quarter" : plan.yearlyPrice ? BillingProductPriceInterval.Year : BillingProductPriceInterval.Month;
16219
16347
  const { price: planPrice, currency: planCurrency } = getPlanPrice(
16220
16348
  plan,
16221
16349
  planPeriod,
@@ -16274,6 +16402,9 @@ var Plan = ({
16274
16402
  children: plan.custom ? plan.customPlanConfig?.priceText ? plan.customPlanConfig.priceText : t3("Custom price") : isUsageBasedPlan ? t3("Usage-based") : isFreePlan && showZeroPriceAsFree ? t3("Free") : showAsMonthlyPrices && planPeriod === BillingProductPriceInterval.Year ? formatCurrency((planPrice ?? 0) / 12, {
16275
16403
  currency: planCurrency,
16276
16404
  testSignificantDigits: false
16405
+ }) : showAsMonthlyPrices && planPeriod === "quarter" ? formatCurrency((planPrice ?? 0) / 3, {
16406
+ currency: planCurrency,
16407
+ testSignificantDigits: false
16277
16408
  }) : formatCurrency(planPrice ?? 0, planCurrency)
16278
16409
  }
16279
16410
  ),
@@ -16284,7 +16415,7 @@ var Plan = ({
16284
16415
  $size: 16 / 30 * settings.theme.typography.heading2.fontSize,
16285
16416
  children: [
16286
16417
  "/",
16287
- showAsMonthlyPrices && planPeriod === BillingProductPriceInterval.Year ? t3("month, billed yearly") : t3(planPeriod)
16418
+ showAsMonthlyPrices && planPeriod === BillingProductPriceInterval.Year ? t3("month, billed yearly") : showAsMonthlyPrices && planPeriod === "quarter" ? t3("month, billed quarterly") : t3(planPeriod)
16288
16419
  ]
16289
16420
  }
16290
16421
  )
@@ -16820,7 +16951,7 @@ var AddOns = ({
16820
16951
  const { t: t3 } = useTranslation();
16821
16952
  const { settings } = useEmbed();
16822
16953
  const isLightBackground = useIsLightBackground();
16823
- const periodKey = period === "year" ? "yearlyPrice" : "monthlyPrice";
16954
+ const periodKey = period === "year" ? "yearlyPrice" : period === "quarter" ? "quarterlyPrice" : "monthlyPrice";
16824
16955
  const cardPadding = settings.theme.card.padding / TEXT_BASE_SIZE;
16825
16956
  return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
16826
16957
  Box,
@@ -17293,9 +17424,9 @@ var Navigation = ({
17293
17424
  var import_jsx_runtime25 = require("react/jsx-runtime");
17294
17425
  var createActiveUsageBasedEntitlementsReducer = (entitlements, period) => (acc, entitlement) => {
17295
17426
  const hasCurrencyPrice = entitlement.currencyPrices?.some(
17296
- (cp) => period === "month" && cp.monthlyPrice || period === "year" && cp.yearlyPrice
17427
+ (cp) => period === "month" && cp.monthlyPrice || period === "quarter" && cp.quarterlyPrice || period === "year" && cp.yearlyPrice
17297
17428
  );
17298
- if (entitlement.priceBehavior && (period === "month" && entitlement.meteredMonthlyPrice || period === "year" && entitlement.meteredYearlyPrice || hasCurrencyPrice)) {
17429
+ if (entitlement.priceBehavior && (period === "month" && entitlement.meteredMonthlyPrice || period === "quarter" && entitlement.meteredQuarterlyPrice || period === "year" && entitlement.meteredYearlyPrice || hasCurrencyPrice)) {
17299
17430
  const featureUsage = entitlements.find(
17300
17431
  (usage2) => usage2.feature?.id === entitlement.feature?.id
17301
17432
  );
@@ -17355,15 +17486,16 @@ var CheckoutDialog = ({ top }) => {
17355
17486
  [data?.featureUsage?.features]
17356
17487
  );
17357
17488
  const getValidatedPeriod = () => {
17358
- const requestedPeriod = checkoutState?.period || data?.company?.plan?.planPeriod || "month";
17489
+ const requestedPeriod = checkoutState?.period || getSubscriptionPeriod(data?.company?.billingSubscription) || data?.company?.plan?.planPeriod || "month";
17359
17490
  if (checkoutState?.planId) {
17360
17491
  const requestedPlan = data?.activePlans?.find(
17361
17492
  (plan) => plan.id === checkoutState.planId
17362
17493
  );
17363
17494
  if (requestedPlan) {
17364
- const planSupportsRequestedPeriod = requestedPeriod === "month" && requestedPlan.monthlyPrice || requestedPeriod === "year" && requestedPlan.yearlyPrice;
17495
+ const planSupportsRequestedPeriod = requestedPeriod === "month" && requestedPlan.monthlyPrice || requestedPeriod === "quarter" && requestedPlan.quarterlyPrice || requestedPeriod === "year" && requestedPlan.yearlyPrice;
17365
17496
  if (!planSupportsRequestedPeriod) {
17366
17497
  if (requestedPlan.yearlyPrice) return "year";
17498
+ if (requestedPlan.quarterlyPrice) return "quarter";
17367
17499
  if (requestedPlan.monthlyPrice) return "month";
17368
17500
  }
17369
17501
  }
@@ -17495,6 +17627,48 @@ var CheckoutDialog = ({ top }) => {
17495
17627
  count: 0
17496
17628
  }));
17497
17629
  });
17630
+ const selectedPlanPriceId = (0, import_react36.useMemo)(() => {
17631
+ if (!selectedPlan) {
17632
+ return void 0;
17633
+ }
17634
+ const currencyPrice = getPlanPrice(
17635
+ selectedPlan,
17636
+ planPeriod,
17637
+ { useSelectedPeriod: true },
17638
+ hasCurrency ? effectiveCurrency : void 0
17639
+ );
17640
+ return currencyPrice?.id ?? (planPeriod === "year" ? selectedPlan.yearlyPrice?.id : planPeriod === "quarter" ? selectedPlan.quarterlyPrice?.id : selectedPlan.monthlyPrice?.id);
17641
+ }, [selectedPlan, planPeriod, hasCurrency, effectiveCurrency]);
17642
+ const [hasInitialPaymentMethod] = (0, import_react36.useState)(
17643
+ () => !!(data?.subscription?.paymentMethod?.externalId || data?.company?.defaultPaymentMethod?.externalId)
17644
+ );
17645
+ const isCreditOnlyPurchase = (0, import_react36.useMemo)(() => {
17646
+ if (data?.company?.billingSubscription) {
17647
+ return false;
17648
+ }
17649
+ if (selectedPlanPriceId) {
17650
+ return false;
17651
+ }
17652
+ if (!creditBundles.some((bundle) => bundle.count > 0)) {
17653
+ return false;
17654
+ }
17655
+ const hasPaidAddOn = addOns.some(
17656
+ (addOn) => addOn.isSelected && !!getAddOnPrice(
17657
+ addOn,
17658
+ planPeriod,
17659
+ hasCurrency ? effectiveCurrency : void 0
17660
+ )?.id
17661
+ );
17662
+ return !hasPaidAddOn;
17663
+ }, [
17664
+ data?.company?.billingSubscription,
17665
+ selectedPlanPriceId,
17666
+ creditBundles,
17667
+ addOns,
17668
+ planPeriod,
17669
+ hasCurrency,
17670
+ effectiveCurrency
17671
+ ]);
17498
17672
  const [usageBasedEntitlements, setUsageBasedEntitlements] = (0, import_react36.useState)(
17499
17673
  () => (selectedPlan?.entitlements || []).reduce(
17500
17674
  createActiveUsageBasedEntitlementsReducer(featureUsage, planPeriod),
@@ -17620,7 +17794,7 @@ var CheckoutDialog = ({ top }) => {
17620
17794
  description: t3("Optionally add credit bundles to your subscription")
17621
17795
  });
17622
17796
  }
17623
- if (isPaymentMethodRequired) {
17797
+ if (isPaymentMethodRequired && !(isCreditOnlyPurchase && hasInitialPaymentMethod)) {
17624
17798
  stages.push({
17625
17799
  id: "checkout",
17626
17800
  name: t3("Checkout"),
@@ -17638,7 +17812,9 @@ var CheckoutDialog = ({ top }) => {
17638
17812
  isSelectedPlanTrialable,
17639
17813
  shouldTrial,
17640
17814
  creditBundles,
17641
- isPaymentMethodRequired
17815
+ isPaymentMethodRequired,
17816
+ isCreditOnlyPurchase,
17817
+ hasInitialPaymentMethod
17642
17818
  ]);
17643
17819
  const [isBypassLoading, setIsBypassLoading] = (0, import_react36.useState)(
17644
17820
  () => checkoutState?.bypassPlanSelection || checkoutState?.bypassAddOnSelection || checkoutState?.bypassCreditsSelection
@@ -17680,10 +17856,15 @@ var CheckoutDialog = ({ top }) => {
17680
17856
  { useSelectedPeriod: true },
17681
17857
  resolvedCurrency
17682
17858
  ) : void 0;
17683
- const planPriceId = currencyPrice?.id ?? (period === "year" ? plan?.yearlyPrice?.id : plan?.monthlyPrice?.id);
17859
+ const planPriceId = currencyPrice?.id ?? (period === "year" ? plan?.yearlyPrice?.id : period === "quarter" ? plan?.quarterlyPrice?.id : plan?.monthlyPrice?.id);
17684
17860
  const code = typeof updates.promoCode !== "undefined" ? updates.promoCode : promoCode;
17685
17861
  const skipTrial = !(updates.shouldTrial ?? shouldTrial);
17686
- if (!plan || !planPriceId) {
17862
+ const isCreditOnly = !data?.company?.billingSubscription && !planPriceId && (updates.creditBundles || creditBundles).some(
17863
+ (bundle) => bundle.count > 0
17864
+ ) && !(updates.addOns || addOns).some(
17865
+ (addOn) => addOn.isSelected && !!getAddOnPrice(addOn, period, resolvedCurrency)?.id
17866
+ );
17867
+ if ((!plan || !planPriceId) && !isCreditOnly) {
17687
17868
  setSelectedPlanId(null);
17688
17869
  return;
17689
17870
  }
@@ -17696,7 +17877,7 @@ var CheckoutDialog = ({ top }) => {
17696
17877
  const resolvedAddOns = updates.addOns || addOns;
17697
17878
  const resolvedCreditBundles = updates.creditBundles || creditBundles;
17698
17879
  const resolvedPlanCreditGrants = mergeCompanyGrants(
17699
- plan.includedCreditGrants,
17880
+ plan?.includedCreditGrants,
17700
17881
  data?.company?.plan?.includedCreditGrants
17701
17882
  );
17702
17883
  const autoTopupRequestBody = buildAutoTopupRequestBody({
@@ -17724,14 +17905,11 @@ var CheckoutDialog = ({ top }) => {
17724
17905
  );
17725
17906
  try {
17726
17907
  const response = await previewCheckout({
17727
- newPlanId: plan.id,
17728
- newPriceId: planPriceId,
17729
- addOnIds: addOnRequestBody,
17730
- autoTopupOverrides: autoTopupRequestBody,
17731
- payInAdvance: [
17732
- ...planPayInAdvanceRequestBody,
17733
- ...addOnPayInAdvanceRequestBody
17734
- ],
17908
+ newPlanId: isCreditOnly ? "" : plan?.id ?? "",
17909
+ newPriceId: isCreditOnly ? "" : planPriceId ?? "",
17910
+ addOnIds: isCreditOnly ? [] : addOnRequestBody,
17911
+ autoTopupOverrides: isCreditOnly ? [] : autoTopupRequestBody,
17912
+ payInAdvance: isCreditOnly ? [] : [...planPayInAdvanceRequestBody, ...addOnPayInAdvanceRequestBody],
17735
17913
  creditBundles: creditBundlesRequestBody,
17736
17914
  skipTrial,
17737
17915
  ...code && { promoCode: code }
@@ -17788,6 +17966,7 @@ var CheckoutDialog = ({ top }) => {
17788
17966
  [
17789
17967
  t3,
17790
17968
  data?.company?.plan?.includedCreditGrants,
17969
+ data?.company?.billingSubscription,
17791
17970
  previewCheckout,
17792
17971
  planPeriod,
17793
17972
  selectedPlan,
@@ -17806,7 +17985,7 @@ var CheckoutDialog = ({ top }) => {
17806
17985
  const selectPlan = (0, import_react36.useCallback)(
17807
17986
  (updates) => {
17808
17987
  const plan = updates.plan;
17809
- const period = showPeriodToggle ? updates.period || planPeriod : plan.yearlyPrice && !plan.monthlyPrice ? BillingProductPriceInterval.Year : BillingProductPriceInterval.Month;
17988
+ const period = showPeriodToggle ? updates.period || planPeriod : plan.monthlyPrice ? BillingProductPriceInterval.Month : plan.quarterlyPrice ? "quarter" : plan.yearlyPrice ? BillingProductPriceInterval.Year : BillingProductPriceInterval.Month;
17810
17989
  const updatedUsageBasedEntitlements = plan.entitlements.reduce(
17811
17990
  createActiveUsageBasedEntitlementsReducer(featureUsage, period),
17812
17991
  []
@@ -17864,12 +18043,60 @@ var CheckoutDialog = ({ top }) => {
17864
18043
  );
17865
18044
  const changePlanPeriod = (0, import_react36.useCallback)(
17866
18045
  (period) => {
17867
- if (period !== planPeriod) {
17868
- setPlanPeriod(period);
17869
- handlePreviewCheckout({ period });
18046
+ if (period === planPeriod) {
18047
+ return;
17870
18048
  }
18049
+ setPlanPeriod(period);
18050
+ const updatedUsageBasedEntitlements = (selectedPlan?.entitlements || []).reduce(
18051
+ createActiveUsageBasedEntitlementsReducer(featureUsage, period),
18052
+ [...[]]
18053
+ );
18054
+ setUsageBasedEntitlements(
18055
+ (prev2) => updatedUsageBasedEntitlements.map((updated) => {
18056
+ const current = prev2.find(
18057
+ ({ featureId }) => featureId === updated.featureId
18058
+ );
18059
+ if (typeof current?.quantity === "number") {
18060
+ return { ...updated, quantity: current.quantity };
18061
+ }
18062
+ return updated;
18063
+ })
18064
+ );
18065
+ const updatedAddOnUsageBasedEntitlements = addOns.filter((addOn) => addOn.isSelected).flatMap(
18066
+ (addOn) => addOn.entitlements.reduce(
18067
+ createActiveUsageBasedEntitlementsReducer(featureUsage, period),
18068
+ []
18069
+ )
18070
+ );
18071
+ setAddOnUsageBasedEntitlements(
18072
+ (prev2) => updatedAddOnUsageBasedEntitlements.map((updated) => {
18073
+ const current = prev2.find(
18074
+ ({ featureId }) => featureId === updated.featureId
18075
+ );
18076
+ if (typeof current?.quantity === "number") {
18077
+ return { ...updated, quantity: current.quantity };
18078
+ }
18079
+ return updated;
18080
+ })
18081
+ );
18082
+ handlePreviewCheckout({
18083
+ period,
18084
+ payInAdvanceEntitlements: updatedUsageBasedEntitlements.filter(
18085
+ ({ priceBehavior }) => priceBehavior === EntitlementPriceBehavior.PayInAdvance
18086
+ ),
18087
+ addOnPayInAdvanceEntitlements: updatedAddOnUsageBasedEntitlements.filter(
18088
+ ({ priceBehavior }) => priceBehavior === EntitlementPriceBehavior.PayInAdvance
18089
+ )
18090
+ });
17871
18091
  },
17872
- [planPeriod, setPlanPeriod, handlePreviewCheckout]
18092
+ [
18093
+ planPeriod,
18094
+ selectedPlan?.entitlements,
18095
+ featureUsage,
18096
+ addOns,
18097
+ setPlanPeriod,
18098
+ handlePreviewCheckout
18099
+ ]
17873
18100
  );
17874
18101
  const toggleAddOn = (0, import_react36.useCallback)(
17875
18102
  (id) => {
@@ -17992,7 +18219,8 @@ var CheckoutDialog = ({ top }) => {
17992
18219
  (0, import_react36.useEffect)(() => {
17993
18220
  if (!hasInitializedPlan.current && selectedPlan) {
17994
18221
  hasInitializedPlan.current = true;
17995
- selectPlan({ plan: selectedPlan, period: planPeriod });
18222
+ const shouldTrial2 = checkoutState?.startTrialIfAvailable && selectedPlan.isTrialable && selectedPlan.companyCanTrial;
18223
+ selectPlan({ plan: selectedPlan, period: planPeriod, shouldTrial: shouldTrial2 });
17996
18224
  }
17997
18225
  }, [selectedPlan, planPeriod, selectPlan]);
17998
18226
  (0, import_react36.useLayoutEffect)(() => {
@@ -18303,6 +18531,7 @@ var CheckoutDialog = ({ top }) => {
18303
18531
  addOnUsageBasedEntitlements,
18304
18532
  addOnPayInAdvanceEntitlements,
18305
18533
  creditBundles,
18534
+ isCreditOnlyPurchase,
18306
18535
  charges,
18307
18536
  checkoutStage: effectiveCheckoutStage,
18308
18537
  checkoutStages: navigableStages,
@@ -18551,7 +18780,7 @@ var import_react_stripe_js = require("@stripe/react-stripe-js");
18551
18780
  var import_react38 = require("react");
18552
18781
 
18553
18782
  // src/components/shared/payment-form/styles.ts
18554
- var Label = yt2.label`
18783
+ var Label = gt2.label`
18555
18784
  display: flex;
18556
18785
  margin-bottom: 0.75rem;
18557
18786
  font-family: "Public Sans", system-ui, sans-serif;
@@ -18563,7 +18792,7 @@ var Label = yt2.label`
18563
18792
  color: ${({ theme }) => isLightColor(theme.card.background) ? "#000000" : "#cdd6f4"};
18564
18793
  touch-action: manipulation;
18565
18794
  `;
18566
- var Input2 = yt2.input`
18795
+ var Input2 = gt2.input`
18567
18796
  padding: 0.75rem;
18568
18797
  background-color: white;
18569
18798
  border-radius: 0.5rem;
@@ -18769,6 +18998,10 @@ var PaymentForm = ({ onConfirm, financeData }) => {
18769
18998
  // src/components/shared/period-toggle/PeriodToggle.tsx
18770
18999
  var import_react39 = require("react");
18771
19000
  var import_jsx_runtime31 = require("react/jsx-runtime");
19001
+ var PERIOD_MONTH_COUNT = {
19002
+ year: 12,
19003
+ quarter: 3
19004
+ };
18772
19005
  var PeriodToggle = ({
18773
19006
  portal,
18774
19007
  options,
@@ -18779,14 +19012,23 @@ var PeriodToggle = ({
18779
19012
  const { t: t3 } = useTranslation();
18780
19013
  const { settings } = useEmbed();
18781
19014
  const isLightBackground = useIsLightBackground();
18782
- const savingsPercentage = (0, import_react39.useMemo)(() => {
18783
- if (selectedPlan) {
18784
- const monthlyBillingPrice = getPlanPrice(selectedPlan, "month");
18785
- const yearlyBillingPrice = getPlanPrice(selectedPlan, "year");
18786
- const monthly = (monthlyBillingPrice?.price ?? 0) * 12;
18787
- const yearly = yearlyBillingPrice?.price ?? 0;
18788
- return Math.round((monthly - yearly) / monthly * 1e4) / 100;
19015
+ const savingsByPeriod = (0, import_react39.useMemo)(() => {
19016
+ const result = {};
19017
+ if (!selectedPlan) {
19018
+ return result;
19019
+ }
19020
+ const monthlyPrice = getPlanPrice(selectedPlan, "month")?.price ?? 0;
19021
+ if (monthlyPrice <= 0) {
19022
+ return result;
19023
+ }
19024
+ for (const [period, months] of Object.entries(PERIOD_MONTH_COUNT)) {
19025
+ const periodPrice = getPlanPrice(selectedPlan, period)?.price ?? 0;
19026
+ if (periodPrice > 0) {
19027
+ const baseline = monthlyPrice * months;
19028
+ result[period] = Math.round((baseline - periodPrice) / baseline * 1e4) / 100;
19029
+ }
18789
19030
  }
19031
+ return result;
18790
19032
  }, [selectedPlan]);
18791
19033
  return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
18792
19034
  Flex,
@@ -18840,17 +19082,21 @@ var PeriodToggle = ({
18840
19082
  },
18841
19083
  option
18842
19084
  );
18843
- if (option === "year" && typeof savingsPercentage === "number") {
19085
+ const savingsPercentage = savingsByPeriod[option];
19086
+ if (typeof savingsPercentage === "number") {
19087
+ const isOptionYear = option === "year";
18844
19088
  return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
18845
19089
  Tooltip,
18846
19090
  {
18847
19091
  portal,
18848
19092
  trigger: element,
18849
- content: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Text, { $size: 11, $leading: "none", children: selectedOption === "month" ? t3("Save with yearly billing", {
18850
- percent: savingsPercentage
18851
- }) : t3("Saving with yearly billing", {
18852
- percent: savingsPercentage
18853
- }) }),
19093
+ content: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Text, { $size: 11, $leading: "none", children: selectedOption === option ? t3(
19094
+ isOptionYear ? "Saving with yearly billing" : "Saving with quarterly billing",
19095
+ { percent: savingsPercentage }
19096
+ ) : t3(
19097
+ isOptionYear ? "Save with yearly billing" : "Save with quarterly billing",
19098
+ { percent: savingsPercentage }
19099
+ ) }),
18854
19100
  $flexGrow: 1,
18855
19101
  $flexBasis: "50%"
18856
19102
  },
@@ -19038,6 +19284,7 @@ var NoPaymentRequired = ({
19038
19284
  isLoading,
19039
19285
  isSticky = false,
19040
19286
  willScheduleDowngrade = false,
19287
+ isCreditOnlyPurchase = false,
19041
19288
  onClick
19042
19289
  }) => {
19043
19290
  const { t: t3 } = useTranslation();
@@ -19050,7 +19297,7 @@ var NoPaymentRequired = ({
19050
19297
  $size: isSticky ? "sm" : "md",
19051
19298
  $fullWidth: true,
19052
19299
  $isLoading: isLoading,
19053
- children: willScheduleDowngrade ? t3("Schedule downgrade") : t3("Subscribe and close")
19300
+ children: isCreditOnlyPurchase ? t3("Buy credits") : willScheduleDowngrade ? t3("Schedule downgrade") : t3("Subscribe and close")
19054
19301
  }
19055
19302
  );
19056
19303
  };
@@ -19070,10 +19317,11 @@ var CheckoutStageButton = ({
19070
19317
  trialPaymentMethodRequired,
19071
19318
  shouldTrial,
19072
19319
  willTrialWithoutPaymentMethod,
19073
- willScheduleDowngrade
19320
+ willScheduleDowngrade,
19321
+ isCreditOnlyPurchase = false
19074
19322
  }) => {
19075
19323
  const { t: t3 } = useTranslation();
19076
- const isDisabled = isLoading || !hasPlan || inEditMode || !canCheckout;
19324
+ const isDisabled = isLoading || !hasPlan && !isCreditOnlyPurchase || inEditMode || !canCheckout;
19077
19325
  const getNextStageId = (currentStageId) => {
19078
19326
  if (!checkoutStages) return void 0;
19079
19327
  const currentIndex = checkoutStages.findIndex(
@@ -19137,7 +19385,8 @@ var CheckoutStageButton = ({
19137
19385
  isDisabled,
19138
19386
  isLoading,
19139
19387
  onClick: checkout,
19140
- isSticky
19388
+ isSticky,
19389
+ isCreditOnlyPurchase
19141
19390
  }
19142
19391
  );
19143
19392
  }
@@ -19170,7 +19419,8 @@ var CheckoutStageButton = ({
19170
19419
  isDisabled,
19171
19420
  isLoading,
19172
19421
  onClick: checkout,
19173
- isSticky
19422
+ isSticky,
19423
+ isCreditOnlyPurchase
19174
19424
  }
19175
19425
  );
19176
19426
  }
@@ -19212,7 +19462,8 @@ var CheckoutStageButton = ({
19212
19462
  isDisabled,
19213
19463
  isLoading,
19214
19464
  onClick: checkout,
19215
- isSticky
19465
+ isSticky,
19466
+ isCreditOnlyPurchase
19216
19467
  }
19217
19468
  );
19218
19469
  }
@@ -19254,7 +19505,8 @@ var CheckoutStageButton = ({
19254
19505
  isDisabled,
19255
19506
  isLoading,
19256
19507
  onClick: checkout,
19257
- isSticky
19508
+ isSticky,
19509
+ isCreditOnlyPurchase
19258
19510
  }
19259
19511
  );
19260
19512
  }
@@ -19295,7 +19547,8 @@ var CheckoutStageButton = ({
19295
19547
  isDisabled,
19296
19548
  isLoading,
19297
19549
  onClick: checkout,
19298
- isSticky
19550
+ isSticky,
19551
+ isCreditOnlyPurchase
19299
19552
  }
19300
19553
  );
19301
19554
  }
@@ -19329,14 +19582,16 @@ var CheckoutStageButton = ({
19329
19582
  );
19330
19583
  }
19331
19584
  if (checkoutStage === "credits") {
19332
- if (!isPaymentMethodRequired) {
19585
+ const nextStage = getNextStageId("credits");
19586
+ if (!nextStage) {
19333
19587
  return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
19334
19588
  NoPaymentRequired,
19335
19589
  {
19336
19590
  isDisabled,
19337
19591
  isLoading,
19338
19592
  onClick: checkout,
19339
- isSticky
19593
+ isSticky,
19594
+ isCreditOnlyPurchase
19340
19595
  }
19341
19596
  );
19342
19597
  }
@@ -19346,7 +19601,7 @@ var CheckoutStageButton = ({
19346
19601
  type: "button",
19347
19602
  disabled: isDisabled,
19348
19603
  onClick: async () => {
19349
- setCheckoutStage?.("checkout");
19604
+ setCheckoutStage?.(nextStage);
19350
19605
  },
19351
19606
  $fullWidth: true,
19352
19607
  $isLoading: isLoading,
@@ -19360,7 +19615,7 @@ var CheckoutStageButton = ({
19360
19615
  children: [
19361
19616
  t3("Next"),
19362
19617
  ": ",
19363
- t3("Checkout"),
19618
+ getStageDisplayName(nextStage),
19364
19619
  /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Icon3, { name: "arrow-right" })
19365
19620
  ]
19366
19621
  }
@@ -19376,7 +19631,8 @@ var CheckoutStageButton = ({
19376
19631
  isDisabled,
19377
19632
  isLoading,
19378
19633
  onClick: checkout,
19379
- isSticky
19634
+ isSticky,
19635
+ isCreditOnlyPurchase
19380
19636
  }
19381
19637
  );
19382
19638
  }
@@ -19388,7 +19644,7 @@ var CheckoutStageButton = ({
19388
19644
  onClick: checkout,
19389
19645
  $fullWidth: true,
19390
19646
  $isLoading: isLoading,
19391
- children: willScheduleDowngrade ? t3("Schedule downgrade") : willTrialWithoutPaymentMethod ? t3("Start trial") : t3("Pay now")
19647
+ children: willScheduleDowngrade ? t3("Schedule downgrade") : willTrialWithoutPaymentMethod ? t3("Start trial") : isCreditOnlyPurchase ? t3("Buy credits") : t3("Pay now")
19392
19648
  }
19393
19649
  );
19394
19650
  }
@@ -19538,6 +19794,7 @@ var SubscriptionSidebar = (0, import_react43.forwardRef)(
19538
19794
  autoTopupConfigs,
19539
19795
  addOns,
19540
19796
  creditBundles = [],
19797
+ isCreditOnlyPurchase = false,
19541
19798
  usageBasedEntitlements,
19542
19799
  addOnUsageBasedEntitlements = [],
19543
19800
  addOnPayInAdvanceEntitlements = [],
@@ -19796,9 +20053,9 @@ var SubscriptionSidebar = (0, import_react43.forwardRef)(
19796
20053
  { useSelectedPeriod: true },
19797
20054
  currency
19798
20055
  ) : void 0;
19799
- const planPriceId = currencyPrice?.id ?? (planPeriod === "year" ? selectedPlan?.yearlyPrice : selectedPlan?.monthlyPrice)?.id;
20056
+ const planPriceId = currencyPrice?.id ?? (planPeriod === "year" ? selectedPlan?.yearlyPrice : planPeriod === "quarter" ? selectedPlan?.quarterlyPrice : selectedPlan?.monthlyPrice)?.id;
19800
20057
  try {
19801
- if (!planId || !planPriceId) {
20058
+ if ((!planId || !planPriceId) && !isCreditOnlyPurchase) {
19802
20059
  throw new Error(t3("Selected plan or associated price is missing."));
19803
20060
  }
19804
20061
  setError(void 0);
@@ -19825,14 +20082,11 @@ var SubscriptionSidebar = (0, import_react43.forwardRef)(
19825
20082
  });
19826
20083
  const creditBundlesRequestBody = buildCreditBundlesRequestBody(creditBundles);
19827
20084
  const checkoutResponseFromBackend = await checkout({
19828
- newPlanId: planId,
19829
- newPriceId: planPriceId,
19830
- addOnIds: addOnRequestBody,
19831
- autoTopupOverrides: autoTopupRequestBody,
19832
- payInAdvance: [
19833
- ...planPayInAdvanceRequestBody,
19834
- ...addOnPayInAdvanceRequestBody
19835
- ],
20085
+ newPlanId: isCreditOnlyPurchase ? "" : planId ?? "",
20086
+ newPriceId: isCreditOnlyPurchase ? "" : planPriceId ?? "",
20087
+ addOnIds: isCreditOnlyPurchase ? [] : addOnRequestBody,
20088
+ autoTopupOverrides: isCreditOnlyPurchase ? [] : autoTopupRequestBody,
20089
+ payInAdvance: isCreditOnlyPurchase ? [] : [...planPayInAdvanceRequestBody, ...addOnPayInAdvanceRequestBody],
19836
20090
  creditBundles: creditBundlesRequestBody,
19837
20091
  skipTrial: !shouldTrial,
19838
20092
  ...paymentMethodId && { paymentMethodId },
@@ -19905,6 +20159,7 @@ var SubscriptionSidebar = (0, import_react43.forwardRef)(
19905
20159
  autoTopupConfigs,
19906
20160
  addOns,
19907
20161
  creditBundles,
20162
+ isCreditOnlyPurchase,
19908
20163
  setError,
19909
20164
  setIsLoading,
19910
20165
  setLayout,
@@ -19953,6 +20208,7 @@ var SubscriptionSidebar = (0, import_react43.forwardRef)(
19953
20208
  willTrialWithoutPaymentMethod,
19954
20209
  willScheduleDowngrade,
19955
20210
  shouldTrial,
20211
+ isCreditOnlyPurchase,
19956
20212
  checkout: handleCheckout
19957
20213
  }
19958
20214
  );
@@ -19993,7 +20249,8 @@ var SubscriptionSidebar = (0, import_react43.forwardRef)(
19993
20249
  handleCheckout,
19994
20250
  handleUnsubscribe,
19995
20251
  payInAdvanceEntitlements,
19996
- addOnPayInAdvanceEntitlements
20252
+ addOnPayInAdvanceEntitlements,
20253
+ isCreditOnlyPurchase
19997
20254
  ]);
19998
20255
  (0, import_react43.useLayoutEffect)(() => {
19999
20256
  const element = buttonRef.current;
@@ -20090,7 +20347,9 @@ var SubscriptionSidebar = (0, import_react43.forwardRef)(
20090
20347
  ),
20091
20348
  /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("sub", { children: [
20092
20349
  "/",
20093
- shortenPeriod(currentPlan.planPeriod || planPeriod)
20350
+ shortenPeriod(
20351
+ getSubscriptionPeriod(billingSubscription) || currentPlan.planPeriod || planPeriod
20352
+ )
20094
20353
  ] })
20095
20354
  ] }) })
20096
20355
  ]
@@ -20465,7 +20724,7 @@ var SubscriptionSidebar = (0, import_react43.forwardRef)(
20465
20724
  ]
20466
20725
  }
20467
20726
  ),
20468
- subscriptionPrice && /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
20727
+ !isCreditOnlyPurchase && subscriptionPrice && /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
20469
20728
  Flex,
20470
20729
  {
20471
20730
  $justifyContent: "space-between",
@@ -20473,7 +20732,7 @@ var SubscriptionSidebar = (0, import_react43.forwardRef)(
20473
20732
  $gap: "1rem",
20474
20733
  children: [
20475
20734
  /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Box, { $opacity: "0.625", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(Text, { children: [
20476
- planPeriod === "year" ? t3("Yearly total") : t3("Monthly total"),
20735
+ planPeriod === "year" ? t3("Yearly total") : planPeriod === "quarter" ? t3("Quarterly total") : t3("Monthly total"),
20477
20736
  ":"
20478
20737
  ] }) }),
20479
20738
  /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Box, { $whiteSpace: "nowrap", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(Text, { children: [
@@ -20557,7 +20816,7 @@ var SubscriptionSidebar = (0, import_react43.forwardRef)(
20557
20816
  }
20558
20817
  )
20559
20818
  ] }),
20560
- layout !== "unsubscribe" && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Box, { $opacity: "0.625", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Text, { children: willScheduleDowngrade && selectedPlan?.name && billingSubscription ? t3(
20819
+ layout !== "unsubscribe" && !isCreditOnlyPurchase && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Box, { $opacity: "0.625", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Text, { children: willScheduleDowngrade && selectedPlan?.name && billingSubscription ? t3(
20561
20820
  "You will be downgraded at the end of your billing period.",
20562
20821
  {
20563
20822
  plan: selectedPlan.name,
@@ -20657,7 +20916,7 @@ var UnsubscribeDialog = ({ top }) => {
20657
20916
  const { planPeriod, currentPlan, currentAddOns, featureUsage, cancelDate } = (0, import_react45.useMemo)(() => {
20658
20917
  const cancelDate2 = data?.subscription?.cancelAt || data?.upcomingInvoice?.dueDate;
20659
20918
  return {
20660
- planPeriod: data?.company?.plan?.planPeriod || "month",
20919
+ planPeriod: getSubscriptionPeriod(data?.company?.billingSubscription) || data?.company?.plan?.planPeriod || "month",
20661
20920
  currentPlan: data?.company?.plan,
20662
20921
  currentAddOns: data?.company?.addOns || [],
20663
20922
  featureUsage: data?.featureUsage,
@@ -20665,6 +20924,7 @@ var UnsubscribeDialog = ({ top }) => {
20665
20924
  };
20666
20925
  }, [
20667
20926
  data?.company?.addOns,
20927
+ data?.company?.billingSubscription,
20668
20928
  data?.company?.plan,
20669
20929
  data?.featureUsage,
20670
20930
  data?.subscription?.cancelAt,
@@ -20959,7 +21219,7 @@ var RenderLayout = ({ children }) => {
20959
21219
  };
20960
21220
 
20961
21221
  // src/components/layout/viewport/styles.ts
20962
- var StyledViewport = yt2.div.withConfig({
21222
+ var StyledViewport = gt2.div.withConfig({
20963
21223
  shouldForwardProp: (prop) => !["$numberOfColumns", "numberOfColumns"].includes(prop)
20964
21224
  })`
20965
21225
  display: grid;
@@ -20972,7 +21232,7 @@ var StyledViewport = yt2.div.withConfig({
20972
21232
  }
20973
21233
 
20974
21234
  @container (min-width: 768px) {
20975
- grid-template-columns: ${({ theme }) => pt2`repeat(${theme.numberOfColumns}, minmax(300px, 1fr))`};
21235
+ grid-template-columns: ${({ theme }) => ft`repeat(${theme.numberOfColumns}, minmax(300px, 1fr))`};
20976
21236
  }
20977
21237
  `;
20978
21238
 
@@ -21090,7 +21350,7 @@ var UsageDetails = ({ entitlement, layout }) => {
21090
21350
  } = entitlement;
21091
21351
  const { t: t3 } = useTranslation();
21092
21352
  const { data } = useEmbed();
21093
- const period = data?.company?.plan?.planPeriod || void 0;
21353
+ const period = getSubscriptionPeriod(data?.company?.billingSubscription) ?? data?.company?.plan?.planPeriod ?? void 0;
21094
21354
  const showCredits = data?.displaySettings?.showCredits ?? true;
21095
21355
  const {
21096
21356
  price,
@@ -21827,14 +22087,14 @@ var PriceDetails = ({
21827
22087
  };
21828
22088
 
21829
22089
  // src/components/elements/metered-features/styles.ts
21830
- var Container2 = yt2.div`
22090
+ var Container2 = gt2.div`
21831
22091
  display: flex;
21832
22092
  flex-direction: column;
21833
22093
 
21834
22094
  &:last-child {
21835
22095
  ${({ theme }) => {
21836
22096
  const borderRadius = `${theme.card.borderRadius / TEXT_BASE_SIZE}rem`;
21837
- return theme.sectionLayout === "merged" && pt2`
22097
+ return theme.sectionLayout === "merged" && ft`
21838
22098
  overflow: hidden;
21839
22099
  border-bottom-left-radius: ${borderRadius};
21840
22100
  border-bottom-right-radius: ${borderRadius};
@@ -21967,7 +22227,7 @@ var MeteredFeatures = (0, import_react51.forwardRef)(({ className, ...rest }, re
21967
22227
  if (!shouldShowFeatures) {
21968
22228
  return null;
21969
22229
  }
21970
- const period = typeof data?.company?.plan?.planPeriod === "string" ? data.company?.plan?.planPeriod : void 0;
22230
+ const period = getSubscriptionPeriod(data?.company?.billingSubscription) ?? (typeof data?.company?.plan?.planPeriod === "string" ? data.company?.plan?.planPeriod : void 0);
21971
22231
  const canCheckout = data?.capabilities?.checkout ?? false;
21972
22232
  const showCredits = data?.displaySettings?.showCredits ?? true;
21973
22233
  return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Container2, { ref, className, children: [
@@ -22559,7 +22819,7 @@ var registerWrapper = function registerWrapper2(stripe, startTime) {
22559
22819
  }
22560
22820
  stripe._registerWrapper({
22561
22821
  name: "stripe-js",
22562
- version: "9.4.0",
22822
+ version: "9.6.0",
22563
22823
  startTime
22564
22824
  });
22565
22825
  };
@@ -22637,7 +22897,7 @@ var initStripe = function initStripe2(maybeStripe, args, startTime) {
22637
22897
  var version = runtimeVersionToUrlVersion(maybeStripe.version);
22638
22898
  var expectedVersion = RELEASE_TRAIN;
22639
22899
  if (isTestKey && version !== expectedVersion) {
22640
- console.warn("Stripe.js@".concat(version, " was loaded on the page, but @stripe/stripe-js@").concat("9.4.0", " expected Stripe.js@").concat(expectedVersion, ". This may result in unexpected behavior. For more information, see https://docs.stripe.com/sdks/stripejs-versioning"));
22900
+ console.warn("Stripe.js@".concat(version, " was loaded on the page, but @stripe/stripe-js@").concat("9.6.0", " expected Stripe.js@").concat(expectedVersion, ". This may result in unexpected behavior. For more information, see https://docs.stripe.com/sdks/stripejs-versioning"));
22641
22901
  }
22642
22902
  var stripe = maybeStripe.apply(void 0, args);
22643
22903
  registerWrapper(stripe, startTime);
@@ -23020,7 +23280,8 @@ var import_react56 = require("react");
23020
23280
 
23021
23281
  // src/components/elements/plan-manager/AddOn.tsx
23022
23282
  var import_jsx_runtime53 = require("react/jsx-runtime");
23023
- var AddOn = ({ addOn, currency, layout }) => {
23283
+ var AddOn = ({ addOn, currency, period, layout }) => {
23284
+ const resolvedPeriod = addOn.planPeriod === "one-time" ? addOn.planPeriod : period ?? addOn.planPeriod;
23024
23285
  return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
23025
23286
  Flex,
23026
23287
  {
@@ -23030,9 +23291,9 @@ var AddOn = ({ addOn, currency, layout }) => {
23030
23291
  $gap: "1rem",
23031
23292
  children: [
23032
23293
  /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { display: layout.addOns.fontStyle, children: addOn.name }),
23033
- typeof addOn.planPrice === "number" && addOn.planPeriod && /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Text, { children: [
23294
+ typeof addOn.planPrice === "number" && resolvedPeriod && /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Text, { children: [
23034
23295
  formatCurrency(addOn.planPrice, currency),
23035
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("sub", { children: addOn.planPeriod == "one-time" ? shortenPeriod(addOn.planPeriod) : `/${shortenPeriod(addOn.planPeriod)}` })
23296
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("sub", { children: resolvedPeriod === "one-time" ? shortenPeriod(resolvedPeriod) : `/${shortenPeriod(resolvedPeriod)}` })
23036
23297
  ] })
23037
23298
  ]
23038
23299
  }
@@ -23284,7 +23545,7 @@ var PlanManager = (0, import_react56.forwardRef)(({ children, className, portal,
23284
23545
  willSubscriptionCancel,
23285
23546
  isTrialSubscription
23286
23547
  } = (0, import_react56.useMemo)(() => {
23287
- const subscriptionInterval2 = billingSubscription?.interval;
23548
+ const subscriptionInterval2 = getSubscriptionPeriod(billingSubscription) ?? billingSubscription?.interval;
23288
23549
  const subscriptionCurrency2 = billingSubscription?.currency;
23289
23550
  const isTrialSubscription2 = billingSubscription?.status === "trialing";
23290
23551
  const willSubscriptionCancel2 = typeof billingSubscription?.cancelAt === "number" && billingSubscription?.cancelAtPeriodEnd === true;
@@ -23295,6 +23556,7 @@ var PlanManager = (0, import_react56.forwardRef)(({ children, className, portal,
23295
23556
  willSubscriptionCancel: willSubscriptionCancel2
23296
23557
  };
23297
23558
  }, [billingSubscription]);
23559
+ const currentPlanPeriod = getSubscriptionPeriod(billingSubscription) ?? currentPlan?.planPeriod ?? void 0;
23298
23560
  const { isFreePlan, isUsageBasedPlan } = (0, import_react56.useMemo)(() => {
23299
23561
  const isFreePlan2 = currentPlan?.planPrice === 0;
23300
23562
  const isUsageBasedPlan2 = isFreePlan2 && usageBasedEntitlements.length > 0;
@@ -23463,9 +23725,9 @@ var PlanManager = (0, import_react56.forwardRef)(({ children, className, portal,
23463
23725
  )
23464
23726
  }
23465
23727
  ),
23466
- !isFreePlan && currentPlan?.planPeriod && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Text, { display: props.header.price.fontStyle, children: /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("sub", { children: [
23728
+ !isFreePlan && currentPlanPeriod && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Text, { display: props.header.price.fontStyle, children: /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("sub", { children: [
23467
23729
  "/",
23468
- shortenPeriod(currentPlan.planPeriod)
23730
+ shortenPeriod(currentPlanPeriod)
23469
23731
  ] }) })
23470
23732
  ] })
23471
23733
  ]
@@ -23485,6 +23747,7 @@ var PlanManager = (0, import_react56.forwardRef)(({ children, className, portal,
23485
23747
  {
23486
23748
  addOn,
23487
23749
  currency: subscriptionCurrency,
23750
+ period: currentPlanPeriod,
23488
23751
  layout: props
23489
23752
  },
23490
23753
  addOnIndex
@@ -23504,7 +23767,7 @@ var PlanManager = (0, import_react56.forwardRef)(({ children, className, portal,
23504
23767
  UsageDetails2,
23505
23768
  {
23506
23769
  entitlement,
23507
- period: currentPlan?.planPeriod || "month",
23770
+ period: currentPlanPeriod || "month",
23508
23771
  currency: subscriptionCurrency,
23509
23772
  showCredits,
23510
23773
  layout: props
@@ -23828,7 +24091,8 @@ var AddOn2 = ({
23828
24091
  };
23829
24092
  }, [data?.capabilities?.checkout, data?.company?.addOns, data?.component]);
23830
24093
  const cardPadding = settings.theme.card.padding / TEXT_BASE_SIZE;
23831
- const isActiveAddOn = addOn.current && selectedPeriod === currentAddOns.find((currentAddOn) => currentAddOn.id === addOn.id)?.planPeriod;
24094
+ const currentAddOnPeriod = getSubscriptionPeriod(data?.company?.billingSubscription) ?? currentAddOns.find((currentAddOn) => currentAddOn.id === addOn.id)?.planPeriod;
24095
+ const isActiveAddOn = addOn.current && selectedPeriod === currentAddOnPeriod;
23832
24096
  const { price: addOnPrice, currency: addOnCurrency } = getAddOnPrice(addOn, selectedPeriod, currency) || {};
23833
24097
  const displayableEntitlements = addOn.entitlements?.filter(
23834
24098
  (entitlement) => entitlement.valueType === "unlimited" || entitlement.priceBehavior && entitlement.priceBehavior !== EntitlementPriceBehavior.CreditBurndown
@@ -24288,7 +24552,7 @@ var Plan2 = ({
24288
24552
  };
24289
24553
  const cardPadding = settings.theme.card.padding / TEXT_BASE_SIZE;
24290
24554
  const isStandalone = typeof data?.component === "undefined";
24291
- const currentPeriod = data?.company?.plan?.planPeriod || "month";
24555
+ const currentPeriod = getSubscriptionPeriod(data?.company?.billingSubscription) || data?.company?.plan?.planPeriod || "month";
24292
24556
  const canCheckout = isStandalone || (data?.capabilities?.checkout ?? true);
24293
24557
  const isTrialSubscription = data?.company?.billingSubscription?.status === "trialing";
24294
24558
  const showCredits = data?.displaySettings?.showCredits ?? true;
@@ -24358,10 +24622,13 @@ var Plan2 = ({
24358
24622
  plan.custom ? plan.customPlanConfig?.priceText ? plan.customPlanConfig.priceText : t3("Custom price") : isUsageBasedPlan ? t3("Usage-based") : isFreePlan && showZeroPriceAsFree ? t3("Free") : showAsMonthlyPrices && selectedPeriod === BillingProductPriceInterval.Year ? formatCurrency((planPrice ?? 0) / 12, {
24359
24623
  currency: planCurrency,
24360
24624
  testSignificantDigits: false
24625
+ }) : showAsMonthlyPrices && selectedPeriod === "quarter" ? formatCurrency((planPrice ?? 0) / 3, {
24626
+ currency: planCurrency,
24627
+ testSignificantDigits: false
24361
24628
  }) : formatCurrency(planPrice ?? 0, planCurrency),
24362
24629
  !plan.custom && !isFreePlan && /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("sub", { children: [
24363
24630
  "/",
24364
- showAsMonthlyPrices && selectedPeriod === BillingProductPriceInterval.Year ? t3("month, billed yearly") : t3(selectedPeriod)
24631
+ showAsMonthlyPrices && selectedPeriod === BillingProductPriceInterval.Year ? t3("month, billed yearly") : showAsMonthlyPrices && selectedPeriod === "quarter" ? t3("month, billed quarterly") : t3(selectedPeriod)
24365
24632
  ] })
24366
24633
  ]
24367
24634
  }
@@ -24664,17 +24931,15 @@ var PricingTable = (0, import_react59.forwardRef)(({ className, ...rest }, ref)
24664
24931
  []
24665
24932
  );
24666
24933
  const [selectedPeriod, setSelectedPeriod] = (0, import_react59.useState)(
24667
- () => data?.company?.plan?.planPeriod || "month"
24934
+ () => getSubscriptionPeriod(data?.company?.billingSubscription) || data?.company?.plan?.planPeriod || "month"
24668
24935
  );
24669
24936
  const { currencies, invalidFilterEntries } = useAvailableCurrenciesWithInvalid();
24670
24937
  const [selectedCurrency, setSelectedCurrency] = (0, import_react59.useState)(
24671
24938
  () => currencies[0] ?? DEFAULT_CURRENCY
24672
24939
  );
24673
- (0, import_react59.useEffect)(() => {
24674
- if (currencies.length > 0 && !currencies.includes(selectedCurrency)) {
24675
- setSelectedCurrency(currencies[0]);
24676
- }
24677
- }, [currencies, selectedCurrency]);
24940
+ if (currencies.length > 0 && !currencies.includes(selectedCurrency)) {
24941
+ setSelectedCurrency(currencies[0]);
24942
+ }
24678
24943
  const showPeriodToggle = rest.showPeriodToggle ?? data?.displaySettings?.showPeriodToggle ?? true;
24679
24944
  const hasCurrencyFilter = !!currencyFilter && currencyFilter.length > 0;
24680
24945
  const showCurrencySelector = currencies.length > 1;
@@ -24800,7 +25065,7 @@ var PricingTable = (0, import_react59.forwardRef)(({ className, ...rest }, ref)
24800
25065
  $margin: 0,
24801
25066
  $listStyle: "none",
24802
25067
  children: plans.map((plan, index, self2) => {
24803
- const planPeriod = showPeriodToggle ? selectedPeriod : plan.yearlyPrice && !plan.monthlyPrice ? BillingProductPriceInterval.Year : BillingProductPriceInterval.Month;
25068
+ const planPeriod = showPeriodToggle ? selectedPeriod : plan.monthlyPrice ? BillingProductPriceInterval.Month : plan.quarterlyPrice ? "quarter" : plan.yearlyPrice ? BillingProductPriceInterval.Year : BillingProductPriceInterval.Month;
24804
25069
  return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
24805
25070
  Plan2,
24806
25071
  {
@@ -24852,7 +25117,7 @@ var PricingTable = (0, import_react59.forwardRef)(({ className, ...rest }, ref)
24852
25117
  $margin: 0,
24853
25118
  $listStyle: "none",
24854
25119
  children: addOns.map((addOn, index) => {
24855
- const addOnPeriod = showPeriodToggle ? selectedPeriod : addOn.yearlyPrice && !addOn.monthlyPrice ? BillingProductPriceInterval.Year : BillingProductPriceInterval.Month;
25120
+ const addOnPeriod = showPeriodToggle ? selectedPeriod : addOn.monthlyPrice ? BillingProductPriceInterval.Month : addOn.quarterlyPrice ? "quarter" : addOn.yearlyPrice ? BillingProductPriceInterval.Year : BillingProductPriceInterval.Month;
24856
25121
  return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
24857
25122
  AddOn2,
24858
25123
  {
@@ -29473,7 +29738,7 @@ var Error2 = ({ message }) => {
29473
29738
  );
29474
29739
  };
29475
29740
  var SchematicEmbed = ({ id, accessToken }) => {
29476
- const theme = (0, import_react64.useContext)(tt2);
29741
+ const theme = (0, import_react64.useContext)(nt2);
29477
29742
  const {
29478
29743
  data,
29479
29744
  error,