@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.
@@ -4952,6 +4952,7 @@ var en_default = {
4952
4952
  "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.",
4953
4953
  "An unknown error occurred.": "An unknown error occurred.",
4954
4954
  Billed: "Billed {{period}}",
4955
+ "Buy credits": "Buy credits",
4955
4956
  "Cancel subscription": "Cancel subscription",
4956
4957
  "Cannot change to this plan.": "{{reason, list(type: 'conjunction')}} usage is over the limit.",
4957
4958
  "Cannot downgrade entitlement": "Cannot downgrade to a quantity lower than current usage.",
@@ -5006,6 +5007,7 @@ var en_default = {
5006
5007
  Loading: "Loading",
5007
5008
  "Manage plan": "Manage plan",
5008
5009
  "Monthly total": "Monthly total",
5010
+ "Quarterly total": "Quarterly total",
5009
5011
  Next: "Next",
5010
5012
  "No invoices created yet": "No invoices created yet",
5011
5013
  "No limit": "No limit",
@@ -5038,6 +5040,8 @@ var en_default = {
5038
5040
  "Save payment method": "Save payment method",
5039
5041
  "Save with yearly billing": "Save up to {{percent}}% with yearly billing",
5040
5042
  "Saving with yearly billing": "You are saving {{percent}}% with yearly billing",
5043
+ "Save with quarterly billing": "Save up to {{percent}}% with quarterly billing",
5044
+ "Saving with quarterly billing": "You are saving {{percent}}% with quarterly billing",
5041
5045
  "See all": "See all",
5042
5046
  "See balance details": "See balance details",
5043
5047
  "See less": "See less",
@@ -5111,6 +5115,7 @@ var en_default = {
5111
5115
  "$X/Y units/period": "{{cost}}/{{size}} {{units}}/{{period}}",
5112
5116
  day: "day",
5113
5117
  month: "month",
5118
+ quarter: "quarter",
5114
5119
  year: "year",
5115
5120
  "one time": "one time",
5116
5121
  "billing period": "billing period",
@@ -5119,6 +5124,7 @@ var en_default = {
5119
5124
  use: "use",
5120
5125
  used: "used",
5121
5126
  "month, billed yearly": "month, billed yearly",
5127
+ "month, billed quarterly": "month, billed quarterly",
5122
5128
  purchased: "purchased {{date}}",
5123
5129
  usage: {
5124
5130
  limited: "{{amount}} of {{allocation}} used",
@@ -6759,7 +6765,7 @@ var i;
6759
6765
  var c2 = "undefined" != typeof process && void 0 !== process.env && (process.env.REACT_APP_SC_ATTR || process.env.SC_ATTR) || "data-styled";
6760
6766
  var a2 = "active";
6761
6767
  var l2 = "data-styled-version";
6762
- var u2 = "6.4.1";
6768
+ var u2 = "6.4.2";
6763
6769
  var h2 = "/*!sc*/\n";
6764
6770
  var d2 = "undefined" != typeof window && "undefined" != typeof document;
6765
6771
  function p2(e2) {
@@ -6768,7 +6774,7 @@ function p2(e2) {
6768
6774
  if (void 0 !== t3 && "" !== t3) return "false" !== t3;
6769
6775
  }
6770
6776
  }
6771
- 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);
6777
+ 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);
6772
6778
  var m2 = "sc-keyframes-";
6773
6779
  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" } : {};
6774
6780
  function v2(e2, ...t3) {
@@ -6890,28 +6896,29 @@ function se2(e2, t3, n2) {
6890
6896
  function re2(e2) {
6891
6897
  return "function" == typeof e2;
6892
6898
  }
6893
- function ie2(e2) {
6894
- return "object" == typeof e2 && "styledComponentId" in e2;
6899
+ var ie2 = /* @__PURE__ */ Symbol.for("react.forward_ref");
6900
+ function ce2(e2) {
6901
+ return null != e2 && ("object" == typeof e2 || "function" == typeof e2) && e2.$$typeof === ie2 && "styledComponentId" in e2;
6895
6902
  }
6896
- function ce2(e2, t3) {
6903
+ function ae2(e2, t3) {
6897
6904
  return e2 && t3 ? e2 + " " + t3 : e2 || t3 || "";
6898
6905
  }
6899
- function ae2(e2, t3) {
6906
+ function le2(e2, t3) {
6900
6907
  return e2.join(t3 || "");
6901
6908
  }
6902
- function le2(e2) {
6909
+ function ue2(e2) {
6903
6910
  return null !== e2 && "object" == typeof e2 && e2.constructor.name === Object.name && !("props" in e2 && e2.$$typeof);
6904
6911
  }
6905
- function ue2(e2, t3, n2 = false) {
6906
- if (!n2 && !le2(e2) && !Array.isArray(e2)) return t3;
6907
- if (Array.isArray(t3)) for (let n3 = 0; n3 < t3.length; n3++) e2[n3] = ue2(e2[n3], t3[n3]);
6908
- else if (le2(t3)) for (const n3 in t3) e2[n3] = ue2(e2[n3], t3[n3]);
6912
+ function he2(e2, t3, n2 = false) {
6913
+ if (!n2 && !ue2(e2) && !Array.isArray(e2)) return t3;
6914
+ if (Array.isArray(t3)) for (let n3 = 0; n3 < t3.length; n3++) e2[n3] = he2(e2[n3], t3[n3]);
6915
+ else if (ue2(t3)) for (const n3 in t3) e2[n3] = he2(e2[n3], t3[n3]);
6909
6916
  return e2;
6910
6917
  }
6911
- function he2(e2, t3) {
6918
+ function de2(e2, t3) {
6912
6919
  Object.defineProperty(e2, "toString", { value: t3 });
6913
6920
  }
6914
- var de2 = class {
6921
+ var pe2 = class {
6915
6922
  constructor(e2) {
6916
6923
  this.groupSizes = new Uint32Array(512), this.length = 512, this.tag = e2, this._cGroup = 0, this._cIndex = 0;
6917
6924
  }
@@ -6950,66 +6957,66 @@ var de2 = class {
6950
6957
  return t3;
6951
6958
  }
6952
6959
  };
6953
- var pe2 = `style[${c2}][${l2}="${u2}"]`;
6954
- var fe2 = new RegExp(`^${c2}\\.g(\\d+)\\[id="([\\w\\d-]+)"\\].*?"([^"]*)`);
6955
- var me2 = (e2) => "undefined" != typeof ShadowRoot && e2 instanceof ShadowRoot || "host" in e2 && 11 === e2.nodeType;
6956
- var ye2 = (e2) => {
6960
+ var fe2 = `style[${c2}][${l2}="${u2}"]`;
6961
+ var me2 = new RegExp(`^${c2}\\.g(\\d+)\\[id="([\\w\\d-]+)"\\].*?"([^"]*)`);
6962
+ var ye2 = (e2) => "undefined" != typeof ShadowRoot && e2 instanceof ShadowRoot || "host" in e2 && 11 === e2.nodeType;
6963
+ var ge2 = (e2) => {
6957
6964
  if (!e2) return document;
6958
- if (me2(e2)) return e2;
6965
+ if (ye2(e2)) return e2;
6959
6966
  if ("getRootNode" in e2) {
6960
6967
  const t3 = e2.getRootNode();
6961
- if (me2(t3)) return t3;
6968
+ if (ye2(t3)) return t3;
6962
6969
  }
6963
6970
  return document;
6964
6971
  };
6965
- var ge2 = (e2, t3, n2) => {
6972
+ var ve2 = (e2, t3, n2) => {
6966
6973
  const o2 = n2.split(",");
6967
6974
  let s;
6968
6975
  for (let n3 = 0, r3 = o2.length; n3 < r3; n3++) (s = o2[n3]) && e2.registerName(t3, s);
6969
6976
  };
6970
- var ve2 = (e2, t3) => {
6977
+ var Se2 = (e2, t3) => {
6971
6978
  var n2;
6972
6979
  const o2 = (null !== (n2 = t3.textContent) && void 0 !== n2 ? n2 : "").split(h2), s = [];
6973
6980
  for (let t4 = 0, n3 = o2.length; t4 < n3; t4++) {
6974
6981
  const n4 = o2[t4].trim();
6975
6982
  if (!n4) continue;
6976
- const r3 = n4.match(fe2);
6983
+ const r3 = n4.match(me2);
6977
6984
  if (r3) {
6978
6985
  const t5 = 0 | parseInt(r3[1], 10), n5 = r3[2];
6979
- 0 !== t5 && (E2(n5, t5), ge2(e2, n5, r3[3]), e2.getTag().insertRules(t5, s)), s.length = 0;
6986
+ 0 !== t5 && (E2(n5, t5), ve2(e2, n5, r3[3]), e2.getTag().insertRules(t5, s)), s.length = 0;
6980
6987
  } else s.push(n4);
6981
6988
  }
6982
6989
  };
6983
- var Se2 = (e2) => {
6984
- const t3 = ye2(e2.options.target).querySelectorAll(pe2);
6990
+ var be2 = (e2) => {
6991
+ const t3 = ge2(e2.options.target).querySelectorAll(fe2);
6985
6992
  for (let n2 = 0, o2 = t3.length; n2 < o2; n2++) {
6986
6993
  const o3 = t3[n2];
6987
- o3 && o3.getAttribute(c2) !== a2 && (ve2(e2, o3), o3.parentNode && o3.parentNode.removeChild(o3));
6994
+ o3 && o3.getAttribute(c2) !== a2 && (Se2(e2, o3), o3.parentNode && o3.parentNode.removeChild(o3));
6988
6995
  }
6989
6996
  };
6990
- var be2 = false;
6991
- function we2() {
6992
- if (false !== be2) return be2;
6997
+ var we2 = false;
6998
+ function Ne2() {
6999
+ if (false !== we2) return we2;
6993
7000
  if ("undefined" != typeof document) {
6994
7001
  const e2 = document.head.querySelector('meta[property="csp-nonce"]');
6995
- if (e2) return be2 = e2.nonce || e2.getAttribute("content") || void 0;
7002
+ if (e2) return we2 = e2.nonce || e2.getAttribute("content") || void 0;
6996
7003
  const t3 = document.head.querySelector('meta[name="sc-nonce"]');
6997
- if (t3) return be2 = t3.getAttribute("content") || void 0;
7004
+ if (t3) return we2 = t3.getAttribute("content") || void 0;
6998
7005
  }
6999
- return be2 = "undefined" != typeof __webpack_nonce__ ? __webpack_nonce__ : void 0;
7006
+ return we2 = "undefined" != typeof __webpack_nonce__ ? __webpack_nonce__ : void 0;
7000
7007
  }
7001
- var Ne2 = (e2, t3) => {
7008
+ var Ce2 = (e2, t3) => {
7002
7009
  const n2 = document.head, o2 = e2 || n2, s = document.createElement("style"), r3 = ((e3) => {
7003
7010
  const t4 = Array.from(e3.querySelectorAll(`style[${c2}]`));
7004
7011
  return t4[t4.length - 1];
7005
7012
  })(o2), i2 = void 0 !== r3 ? r3.nextSibling : null;
7006
7013
  s.setAttribute(c2, a2), s.setAttribute(l2, u2);
7007
- const h3 = t3 || we2();
7014
+ const h3 = t3 || Ne2();
7008
7015
  return h3 && s.setAttribute("nonce", h3), o2.insertBefore(s, i2), s;
7009
7016
  };
7010
- var Ce2 = class {
7017
+ var Oe2 = class {
7011
7018
  constructor(e2, t3) {
7012
- this.element = Ne2(e2, t3), this.element.appendChild(document.createTextNode("")), this.sheet = ((e3) => {
7019
+ this.element = Ce2(e2, t3), this.element.appendChild(document.createTextNode("")), this.sheet = ((e3) => {
7013
7020
  var t4;
7014
7021
  if (e3.sheet) return e3.sheet;
7015
7022
  const n2 = null !== (t4 = e3.getRootNode().styleSheets) && void 0 !== t4 ? t4 : document.styleSheets;
@@ -7035,9 +7042,9 @@ var Ce2 = class {
7035
7042
  return t3 && t3.cssText ? t3.cssText : "";
7036
7043
  }
7037
7044
  };
7038
- var Oe2 = class {
7045
+ var Ee2 = class {
7039
7046
  constructor(e2, t3) {
7040
- this.element = Ne2(e2, t3), this.nodes = this.element.childNodes, this.length = 0;
7047
+ this.element = Ce2(e2, t3), this.nodes = this.element.childNodes, this.length = 0;
7041
7048
  }
7042
7049
  insertRule(e2, t3) {
7043
7050
  if (e2 <= this.length && e2 >= 0) {
@@ -7053,14 +7060,14 @@ var Oe2 = class {
7053
7060
  return e2 < this.length ? this.nodes[e2].textContent : "";
7054
7061
  }
7055
7062
  };
7056
- var Ee2 = d2;
7057
- var Ae2 = { isServer: !d2, useCSSOMInjection: !f2 };
7058
- var Pe2 = class _Pe {
7063
+ var Ae2 = d2;
7064
+ var Pe2 = { isServer: !d2, useCSSOMInjection: !f2 };
7065
+ var _e2 = class __e {
7059
7066
  static registerId(e2) {
7060
7067
  return C2(e2);
7061
7068
  }
7062
7069
  constructor(e2 = $2, t3 = {}, n2) {
7063
- 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) => {
7070
+ 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) => {
7064
7071
  const t4 = e3.getTag(), { length: n3 } = t4;
7065
7072
  let o2 = "";
7066
7073
  for (let s = 0; s < n3; s++) {
@@ -7079,17 +7086,17 @@ var Pe2 = class _Pe {
7079
7086
  })(this));
7080
7087
  }
7081
7088
  rehydrate() {
7082
- !this.server && d2 && Se2(this);
7089
+ !this.server && d2 && be2(this);
7083
7090
  }
7084
7091
  reconstructWithOptions(e2, t3 = true) {
7085
- const n2 = new _Pe(Object.assign(Object.assign({}, this.options), e2), this.gs, t3 && this.names || void 0);
7086
- 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;
7092
+ const n2 = new __e(Object.assign(Object.assign({}, this.options), e2), this.gs, t3 && this.names || void 0);
7093
+ 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;
7087
7094
  }
7088
7095
  allocateGSInstance(e2) {
7089
7096
  return this.gs[e2] = (this.gs[e2] || 0) + 1;
7090
7097
  }
7091
7098
  getTag() {
7092
- 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)));
7099
+ 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)));
7093
7100
  var e2;
7094
7101
  }
7095
7102
  hasNameForId(e2, t3) {
@@ -7114,13 +7121,13 @@ var Pe2 = class _Pe {
7114
7121
  this.tag = void 0;
7115
7122
  }
7116
7123
  };
7117
- var _e2 = /* @__PURE__ */ new WeakSet();
7118
- 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 };
7119
- function $e2(e2, t3) {
7120
- return null == t3 || "boolean" == typeof t3 || "" === t3 ? "" : "number" != typeof t3 || 0 === t3 || e2 in Ie2 || e2.startsWith("--") ? String(t3).trim() : t3 + "px";
7124
+ var Ie2 = /* @__PURE__ */ new WeakSet();
7125
+ 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 };
7126
+ function Re2(e2, t3) {
7127
+ return null == t3 || "boolean" == typeof t3 || "" === t3 ? "" : "number" != typeof t3 || 0 === t3 || e2 in $e2 || e2.startsWith("--") ? String(t3).trim() : t3 + "px";
7121
7128
  }
7122
- var Re2 = 47;
7123
- function je2(e2) {
7129
+ var je2 = 47;
7130
+ function xe2(e2) {
7124
7131
  if (45 === e2.charCodeAt(0) && 45 === e2.charCodeAt(1)) return e2;
7125
7132
  let t3 = "";
7126
7133
  for (let n2 = 0; n2 < e2.length; n2++) {
@@ -7129,50 +7136,50 @@ function je2(e2) {
7129
7136
  }
7130
7137
  return t3.startsWith("ms-") ? "-" + t3 : t3;
7131
7138
  }
7132
- var xe2 = /* @__PURE__ */ Symbol.for("sc-keyframes");
7133
- function Te2(e2) {
7134
- return "object" == typeof e2 && null !== e2 && xe2 in e2;
7135
- }
7139
+ var Te2 = /* @__PURE__ */ Symbol.for("sc-keyframes");
7136
7140
  function ke2(e2) {
7137
- return re2(e2) && !(e2.prototype && e2.prototype.isReactComponent);
7141
+ return "object" == typeof e2 && null !== e2 && Te2 in e2;
7138
7142
  }
7139
- var De2 = (e2) => null == e2 || false === e2 || "" === e2;
7140
- var Ve2 = /* @__PURE__ */ Symbol.for("react.client.reference");
7141
- function Me2(e2) {
7142
- return e2.$$typeof === Ve2;
7143
+ function De2(e2) {
7144
+ return re2(e2) && !(e2.prototype && e2.prototype.isReactComponent);
7143
7145
  }
7146
+ var Ve2 = (e2) => null == e2 || false === e2 || "" === e2;
7147
+ var Me2 = /* @__PURE__ */ Symbol.for("react.client.reference");
7144
7148
  function Ge2(e2) {
7149
+ return e2.$$typeof === Me2;
7150
+ }
7151
+ function Fe2(e2) {
7145
7152
  const t3 = e2.$$id, n2 = (t3 && t3.includes("#") ? t3.split("#").pop() : t3) || e2.name || "unknown";
7146
7153
  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.`);
7147
7154
  }
7148
- function Fe2(e2, t3) {
7155
+ function ze2(e2, t3) {
7149
7156
  for (const n2 in e2) {
7150
7157
  const o2 = e2[n2];
7151
- 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) + ";"));
7158
+ 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) + ";"));
7152
7159
  }
7153
7160
  }
7154
- function ze2(e2, t3, n2, o2, s = []) {
7155
- if (De2(e2)) return s;
7161
+ function We2(e2, t3, n2, o2, s = []) {
7162
+ if (Ve2(e2)) return s;
7156
7163
  const r3 = typeof e2;
7157
7164
  if ("string" === r3) return s.push(e2), s;
7158
7165
  if ("function" === r3) {
7159
- if (Me2(e2)) return Ge2(e2), s;
7160
- if (ke2(e2) && t3) {
7166
+ if (Ge2(e2)) return Fe2(e2), s;
7167
+ if (De2(e2) && t3) {
7161
7168
  const r4 = e2(t3);
7162
- 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);
7169
+ 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);
7163
7170
  }
7164
7171
  return s.push(e2), s;
7165
7172
  }
7166
7173
  if (Array.isArray(e2)) {
7167
- for (let r4 = 0; r4 < e2.length; r4++) ze2(e2[r4], t3, n2, o2, s);
7174
+ for (let r4 = 0; r4 < e2.length; r4++) We2(e2[r4], t3, n2, o2, s);
7168
7175
  return s;
7169
7176
  }
7170
- 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);
7177
+ 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);
7171
7178
  }
7172
- var We2 = F2(u2);
7173
- var Le2 = class {
7179
+ var Le2 = F2(u2);
7180
+ var Be2 = class {
7174
7181
  constructor(e2, t3, n2) {
7175
- this.rules = e2, this.componentId = t3, this.baseHash = G2(We2, t3), this.baseStyle = n2, Pe2.registerId(t3);
7182
+ this.rules = e2, this.componentId = t3, this.baseHash = G2(Le2, t3), this.baseStyle = n2, _e2.registerId(t3);
7176
7183
  }
7177
7184
  generateAndInjectStyles(e2, t3, n2) {
7178
7185
  let o2 = this.baseStyle ? this.baseStyle.generateAndInjectStyles(e2, t3, n2) : "";
@@ -7181,10 +7188,10 @@ var Le2 = class {
7181
7188
  for (let o3 = 0; o3 < this.rules.length; o3++) {
7182
7189
  const r3 = this.rules[o3];
7183
7190
  if ("string" == typeof r3) s += r3;
7184
- else if (r3) if (ke2(r3)) {
7191
+ else if (r3) if (De2(r3)) {
7185
7192
  const o4 = r3(e2);
7186
- "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)));
7187
- } else s += ae2(ze2(r3, e2, t3, n2));
7193
+ "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)));
7194
+ } else s += le2(We2(r3, e2, t3, n2));
7188
7195
  }
7189
7196
  if (s) {
7190
7197
  this.dynamicNameCache || (this.dynamicNameCache = /* @__PURE__ */ new Map());
@@ -7201,25 +7208,25 @@ var Le2 = class {
7201
7208
  const e4 = n2(s, "." + r3, void 0, this.componentId);
7202
7209
  t3.insertRules(this.componentId, r3, e4);
7203
7210
  }
7204
- o2 = ce2(o2, r3);
7211
+ o2 = ae2(o2, r3);
7205
7212
  }
7206
7213
  }
7207
7214
  return o2;
7208
7215
  }
7209
7216
  };
7210
- var Be2 = /&/g;
7211
- function qe2(e2, t3) {
7217
+ var qe2 = /&/g;
7218
+ function He2(e2, t3) {
7212
7219
  let n2 = 0;
7213
7220
  for (; --t3 >= 0 && 92 === e2.charCodeAt(t3); ) n2++;
7214
7221
  return !(1 & ~n2);
7215
7222
  }
7216
- function He2(e2) {
7223
+ function Ye2(e2) {
7217
7224
  const t3 = e2.length;
7218
7225
  let n2 = "", o2 = 0, s = 0, r3 = 0, i2 = false, c3 = false;
7219
7226
  for (let a3 = 0; a3 < t3; a3++) {
7220
7227
  const l3 = e2.charCodeAt(a3);
7221
- if (0 !== r3 || i2 || l3 !== Re2 || 42 !== e2.charCodeAt(a3 + 1)) if (i2) 42 === l3 && e2.charCodeAt(a3 + 1) === Re2 && (i2 = false, a3++);
7222
- else if (34 !== l3 && 39 !== l3 || qe2(e2, a3)) {
7228
+ if (0 !== r3 || i2 || l3 !== je2 || 42 !== e2.charCodeAt(a3 + 1)) if (i2) 42 === l3 && e2.charCodeAt(a3 + 1) === je2 && (i2 = false, a3++);
7229
+ else if (34 !== l3 && 39 !== l3 || He2(e2, a3)) {
7223
7230
  if (0 === r3) if (123 === l3) s++;
7224
7231
  else if (125 === l3) {
7225
7232
  if (s--, s < 0) {
@@ -7240,7 +7247,7 @@ function He2(e2) {
7240
7247
  }
7241
7248
  return c3 || 0 !== s || 0 !== r3 ? (o2 < t3 && 0 === s && 0 === r3 && (n2 += e2.substring(o2)), n2) : e2;
7242
7249
  }
7243
- function Ye2(e2, t3) {
7250
+ function Ue2(e2, t3) {
7244
7251
  const n2 = t3 + " ", o2 = "," + n2;
7245
7252
  for (let s = 0; s < e2.length; s++) {
7246
7253
  const r3 = e2[s];
@@ -7250,15 +7257,15 @@ function Ye2(e2, t3) {
7250
7257
  for (let o3 = 0; o3 < e3.length; o3++) t4[o3] = n2 + e3[o3];
7251
7258
  r3.props = t4;
7252
7259
  }
7253
- Array.isArray(r3.children) && "@keyframes" !== r3.type && Ye2(r3.children, t3);
7260
+ Array.isArray(r3.children) && "@keyframes" !== r3.type && Ue2(r3.children, t3);
7254
7261
  }
7255
7262
  return e2;
7256
7263
  }
7257
- function Ue2({ options: e2 = $2, plugins: t3 = I2 } = $2) {
7264
+ function Je2({ options: e2 = $2, plugins: t3 = I2 } = $2) {
7258
7265
  let n2, s, r3;
7259
7266
  const i2 = (e3, t4, o2) => o2.startsWith(s) && o2.endsWith(s) && o2.replaceAll(s, "").length > 0 ? `.${n2}` : e3, c3 = t3.slice();
7260
7267
  c3.push((e3) => {
7261
- 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));
7268
+ 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));
7262
7269
  }), e2.prefix && c3.push(prefixer), c3.push(stringify);
7263
7270
  let a3 = [];
7264
7271
  const l3 = middleware(c3.concat(rulesheet((e3) => a3.push(e3)))), u3 = (t4, i3 = "", c4 = "", u4 = "&") => {
@@ -7266,17 +7273,17 @@ function Ue2({ options: e2 = $2, plugins: t3 = I2 } = $2) {
7266
7273
  const h4 = (function(e3) {
7267
7274
  const t5 = -1 !== e3.indexOf("//"), n3 = -1 !== e3.indexOf("}");
7268
7275
  if (!t5 && !n3) return e3;
7269
- if (!t5) return He2(e3);
7276
+ if (!t5) return Ye2(e3);
7270
7277
  const o2 = e3.length;
7271
7278
  let s2 = "", r4 = 0, i4 = 0, c5 = 0, a4 = 0, l4 = 0, u5 = false;
7272
7279
  for (; i4 < o2; ) {
7273
7280
  const t6 = e3.charCodeAt(i4);
7274
- if (34 !== t6 && 39 !== t6 || qe2(e3, i4)) if (0 === c5) if (t6 === Re2 && i4 + 1 < o2 && 42 === e3.charCodeAt(i4 + 1)) {
7275
- for (i4 += 2; i4 + 1 < o2 && (42 !== e3.charCodeAt(i4) || e3.charCodeAt(i4 + 1) !== Re2); ) i4++;
7281
+ if (34 !== t6 && 39 !== t6 || He2(e3, i4)) if (0 === c5) if (t6 === je2 && i4 + 1 < o2 && 42 === e3.charCodeAt(i4 + 1)) {
7282
+ for (i4 += 2; i4 + 1 < o2 && (42 !== e3.charCodeAt(i4) || e3.charCodeAt(i4 + 1) !== je2); ) i4++;
7276
7283
  i4 += 2;
7277
7284
  } else if (40 !== t6) if (41 !== t6) if (a4 > 0) i4++;
7278
- else if (42 === t6 && i4 + 1 < o2 && e3.charCodeAt(i4 + 1) === Re2) s2 += e3.substring(r4, i4), i4 += 2, r4 = i4, u5 = true;
7279
- else if (t6 === Re2 && i4 + 1 < o2 && e3.charCodeAt(i4 + 1) === Re2) {
7285
+ else if (42 === t6 && i4 + 1 < o2 && e3.charCodeAt(i4 + 1) === je2) s2 += e3.substring(r4, i4), i4 += 2, r4 = i4, u5 = true;
7286
+ else if (t6 === je2 && i4 + 1 < o2 && e3.charCodeAt(i4 + 1) === je2) {
7280
7287
  for (s2 += e3.substring(r4, i4); i4 < o2 && 10 !== e3.charCodeAt(i4); ) i4++;
7281
7288
  r4 = i4, u5 = true;
7282
7289
  } else 123 === t6 ? l4++ : 125 === t6 && l4--, i4++;
@@ -7285,26 +7292,26 @@ function Ue2({ options: e2 = $2, plugins: t3 = I2 } = $2) {
7285
7292
  else i4++;
7286
7293
  else 0 === c5 ? c5 = t6 : c5 === t6 && (c5 = 0), i4++;
7287
7294
  }
7288
- return u5 ? (r4 < o2 && (s2 += e3.substring(r4)), 0 === l4 ? s2 : He2(s2)) : 0 === l4 ? e3 : He2(e3);
7295
+ return u5 ? (r4 < o2 && (s2 += e3.substring(r4)), 0 === l4 ? s2 : Ye2(s2)) : 0 === l4 ? e3 : Ye2(e3);
7289
7296
  })(t4);
7290
7297
  let d4 = compile(c4 || i3 ? c4 + " " + i3 + " { " + h4 + " }" : h4);
7291
- return e2.namespace && (d4 = Ye2(d4, e2.namespace)), a3 = [], serialize(d4, l3), a3;
7298
+ return e2.namespace && (d4 = Ue2(d4, e2.namespace)), a3 = [], serialize(d4, l3), a3;
7292
7299
  }, h3 = e2;
7293
7300
  let d3 = M2;
7294
7301
  for (let e3 = 0; e3 < t3.length; e3++) t3[e3].name || v2(15), d3 = G2(d3, t3[e3].name);
7295
7302
  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;
7296
7303
  }
7297
- var Je2 = new Pe2();
7298
- var Xe2 = Ue2();
7299
- var Ke2 = t2.createContext({ shouldForwardProp: void 0, styleSheet: Je2, stylis: Xe2, stylisPlugins: void 0 });
7300
- var Qe = Ke2.Consumer;
7301
- function Ze2() {
7302
- return t2.useContext(Ke2);
7303
- }
7304
- var tt2 = t2.createContext(void 0);
7305
- var nt2 = tt2.Consumer;
7306
- function st2(e2) {
7307
- const n2 = t2.useContext(tt2), o2 = t2.useMemo(() => (function(e3, t3) {
7304
+ var Xe2 = new _e2();
7305
+ var Ke2 = Je2();
7306
+ var Qe = t2.createContext({ shouldForwardProp: void 0, styleSheet: Xe2, stylis: Ke2, stylisPlugins: void 0 });
7307
+ var Ze2 = Qe.Consumer;
7308
+ function et() {
7309
+ return t2.useContext(Qe);
7310
+ }
7311
+ var nt2 = t2.createContext(void 0);
7312
+ var ot2 = nt2.Consumer;
7313
+ function rt2(e2) {
7314
+ const n2 = t2.useContext(nt2), o2 = t2.useMemo(() => (function(e3, t3) {
7308
7315
  if (!e3) throw v2(14);
7309
7316
  if (re2(e3)) {
7310
7317
  const n3 = e3(t3);
@@ -7314,19 +7321,19 @@ function st2(e2) {
7314
7321
  if (Array.isArray(e3) || "object" != typeof e3) throw v2(8);
7315
7322
  return t3 ? Object.assign(Object.assign({}, t3), e3) : e3;
7316
7323
  })(e2.theme, n2), [e2.theme, n2]);
7317
- return e2.children ? t2.createElement(tt2.Provider, { value: o2 }, e2.children) : null;
7324
+ return e2.children ? t2.createElement(nt2.Provider, { value: o2 }, e2.children) : null;
7318
7325
  }
7319
- var rt2 = Object.prototype.hasOwnProperty;
7320
- var it2 = {};
7321
- function ct2(e2, t3) {
7326
+ var it2 = Object.prototype.hasOwnProperty;
7327
+ var ct2 = {};
7328
+ function at2(e2, t3) {
7322
7329
  const n2 = "string" != typeof e2 ? "sc" : T2(e2);
7323
- it2[n2] = (it2[n2] || 0) + 1;
7324
- const o2 = n2 + "-" + z2(u2 + n2 + it2[n2]);
7330
+ ct2[n2] = (ct2[n2] || 0) + 1;
7331
+ const o2 = n2 + "-" + z2(u2 + n2 + ct2[n2]);
7325
7332
  return t3 ? t3 + "-" + o2 : o2;
7326
7333
  }
7327
- var at2;
7328
- function lt2(o2, s, r3) {
7329
- 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;
7334
+ var lt2;
7335
+ function ut2(o2, s, r3) {
7336
+ 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;
7330
7337
  let { shouldForwardProp: f3 } = s;
7331
7338
  if (i2 && c3.shouldForwardProp) {
7332
7339
  const e2 = c3.shouldForwardProp;
@@ -7335,10 +7342,10 @@ function lt2(o2, s, r3) {
7335
7342
  f3 = (n2, o3) => e2(n2, o3) && t3(n2, o3);
7336
7343
  } else f3 = e2;
7337
7344
  }
7338
- const m3 = new Le2(r3, d3, i2 ? c3.componentStyle : void 0);
7345
+ const m3 = new Be2(r3, d3, i2 ? c3.componentStyle : void 0);
7339
7346
  function y2(o3, s2) {
7340
7347
  return (function(o4, s3, r4) {
7341
- const { attrs: i3, componentStyle: c4, defaultProps: a4, foldedComponentIds: l4, styledComponentId: u4, target: h4 } = o4, d4 = t2.useContext(tt2), p4 = Ze2(), f4 = o4.shouldForwardProp || p4.shouldForwardProp;
7348
+ const { attrs: i3, componentStyle: c4, defaultProps: a4, foldedComponentIds: l4, styledComponentId: u4, target: h4 } = o4, d4 = t2.useContext(nt2), p4 = et(), f4 = o4.shouldForwardProp || p4.shouldForwardProp;
7342
7349
  t2.useDebugValue && t2.useDebugValue(u4);
7343
7350
  const m4 = R2(s3, d4, a4) || $2;
7344
7351
  let y3, g4;
@@ -7347,7 +7354,7 @@ function lt2(o2, s, r3) {
7347
7354
  if (null !== n2 && n2[1] === m4 && n2[2] === p4.styleSheet && n2[3] === p4.stylis && n2[7] === c4 && (function(e3, t3, n3) {
7348
7355
  const o5 = e3, s4 = t3;
7349
7356
  let r5 = 0;
7350
- for (const e4 in s4) if (rt2.call(s4, e4) && (r5++, o5[e4] !== s4[e4])) return false;
7357
+ for (const e4 in s4) if (it2.call(s4, e4) && (r5++, o5[e4] !== s4[e4])) return false;
7351
7358
  return r5 === n3;
7352
7359
  })(n2[0], s3, n2[4])) y3 = n2[5], g4 = n2[6];
7353
7360
  else {
@@ -7355,35 +7362,35 @@ function lt2(o2, s, r3) {
7355
7362
  const o5 = Object.assign(Object.assign({}, t3), { className: void 0, theme: n4 }), s4 = e3.length > 1;
7356
7363
  for (let n5 = 0; n5 < e3.length; n5++) {
7357
7364
  const r5 = e3[n5], i4 = re2(r5) ? r5(s4 ? Object.assign({}, o5) : o5) : r5;
7358
- 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]);
7365
+ 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]);
7359
7366
  }
7360
- return "className" in t3 && "string" == typeof t3.className && (o5.className = ce2(o5.className, t3.className)), o5;
7367
+ return "className" in t3 && "string" == typeof t3.className && (o5.className = ae2(o5.className, t3.className)), o5;
7361
7368
  })(i3, s3, m4), g4 = (function(e3, n4, o5, s4) {
7362
7369
  const r5 = e3.generateAndInjectStyles(n4, o5, s4);
7363
7370
  return t2.useDebugValue && t2.useDebugValue(r5), r5;
7364
7371
  })(c4, y3, p4.styleSheet, p4.stylis);
7365
7372
  let n3 = 0;
7366
- for (const e3 in s3) rt2.call(s3, e3) && n3++;
7373
+ for (const e3 in s3) it2.call(s3, e3) && n3++;
7367
7374
  e2.current = [s3, m4, p4.styleSheet, p4.stylis, n3, y3, g4, c4];
7368
7375
  }
7369
7376
  }
7370
7377
  o4.warnTooManyClasses && o4.warnTooManyClasses(g4);
7371
7378
  const v3 = y3.as || h4, S3 = (function(t3, n2, o5, s4) {
7372
7379
  const r5 = {};
7373
- 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.)`))));
7380
+ 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.)`))));
7374
7381
  return r5;
7375
7382
  })(y3, v3, m4, f4);
7376
- let b3 = ce2(l4, u4);
7383
+ let b3 = ae2(l4, u4);
7377
7384
  return g4 && (b3 += " " + g4), y3.className && (b3 += " " + y3.className), S3[L2(v3) && v3.includes("-") ? "class" : "className"] = b3, r4 && (S3.ref = r4), n(v3, S3);
7378
7385
  })(g3, o3, s2);
7379
7386
  }
7380
7387
  y2.displayName = h3;
7381
7388
  let g3 = t2.forwardRef(y2);
7382
- 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() {
7389
+ 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() {
7383
7390
  return this._foldedDefaultProps;
7384
7391
  }, set(e2) {
7385
7392
  this._foldedDefaultProps = i2 ? (function(e3, ...t3) {
7386
- for (const n2 of t3) ue2(e3, n2, true);
7393
+ for (const n2 of t3) he2(e3, n2, true);
7387
7394
  return e3;
7388
7395
  })({}, c3.defaultProps, e2) : e2;
7389
7396
  } }), _2(h3, d3), g3.warnTooManyClasses = /* @__PURE__ */ ((e2, t3) => {
@@ -7400,58 +7407,58 @@ Example:
7400
7407
 
7401
7408
  <Component />`), o3 = true, n2 = {});
7402
7409
  };
7403
- })(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;
7410
+ })(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;
7404
7411
  }
7405
- 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"]);
7406
- function ht2(e2, t3) {
7412
+ 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"]);
7413
+ function dt2(e2, t3) {
7407
7414
  const n2 = [e2[0]];
7408
7415
  for (let o2 = 0, s = t3.length; o2 < s; o2 += 1) n2.push(t3[o2], e2[o2 + 1]);
7409
7416
  return n2;
7410
7417
  }
7411
- var dt2 = (e2) => (_e2.add(e2), e2);
7412
- function pt2(e2, ...t3) {
7413
- if (re2(e2) || le2(e2)) return dt2(ze2(ht2(I2, [e2, ...t3])));
7418
+ var pt2 = (e2) => (Ie2.add(e2), e2);
7419
+ function ft(e2, ...t3) {
7420
+ if (re2(e2) || ue2(e2)) return pt2(We2(dt2(I2, [e2, ...t3])));
7414
7421
  const n2 = e2;
7415
- return 0 === t3.length && 1 === n2.length && "string" == typeof n2[0] ? ze2(n2) : dt2(ze2(ht2(n2, t3)));
7422
+ return 0 === t3.length && 1 === n2.length && "string" == typeof n2[0] ? We2(n2) : pt2(We2(dt2(n2, t3)));
7416
7423
  }
7417
- function ft(e2, t3, n2 = $2) {
7424
+ function mt(e2, t3, n2 = $2) {
7418
7425
  if (!t3) throw v2(1, t3);
7419
- const o2 = (o3, ...s) => e2(t3, n2, pt2(o3, ...s));
7420
- 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;
7426
+ const o2 = (o3, ...s) => e2(t3, n2, ft(o3, ...s));
7427
+ 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;
7421
7428
  }
7422
- var mt = (e2) => ft(lt2, e2);
7423
- var yt2 = mt;
7424
- ut2.forEach((e2) => {
7425
- yt2[e2] = mt(e2);
7429
+ var yt2 = (e2) => mt(ut2, e2);
7430
+ var gt2 = yt2;
7431
+ ht2.forEach((e2) => {
7432
+ gt2[e2] = yt2(e2);
7426
7433
  });
7427
- var Nt;
7428
- var Ct = class {
7434
+ var Ct;
7435
+ var Ot = class {
7429
7436
  constructor(e2, t3) {
7430
- this[Nt] = true, this.inject = (e3, t4 = Xe2) => {
7437
+ this[Ct] = true, this.inject = (e3, t4 = Ke2) => {
7431
7438
  const n2 = this.getName(t4);
7432
7439
  if (!e3.hasNameForId(this.id, n2)) {
7433
7440
  const o2 = t4(this.rules, n2, "@keyframes");
7434
7441
  e3.insertRules(this.id, n2, o2);
7435
7442
  }
7436
- }, this.name = e2, this.id = m2 + e2, this.rules = t3, C2(this.id), he2(this, () => {
7443
+ }, this.name = e2, this.id = m2 + e2, this.rules = t3, C2(this.id), de2(this, () => {
7437
7444
  throw v2(12, String(this.name));
7438
7445
  });
7439
7446
  }
7440
- getName(e2 = Xe2) {
7447
+ getName(e2 = Ke2) {
7441
7448
  return e2.hash ? this.name + V2(+e2.hash >>> 0) : this.name;
7442
7449
  }
7443
7450
  };
7444
- function Ot(e2, ...t3) {
7451
+ function Et(e2, ...t3) {
7445
7452
  "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.");
7446
- const n2 = ae2(pt2(e2, ...t3)), o2 = z2(n2);
7447
- return new Ct(o2, n2);
7453
+ const n2 = le2(ft(e2, ...t3)), o2 = z2(n2);
7454
+ return new Ot(o2, n2);
7448
7455
  }
7449
- Nt = xe2;
7456
+ Ct = Te2;
7450
7457
  "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");
7451
- var _t = `__sc-${c2}__`;
7452
- "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);
7453
- var $t = `:not(style[${c2}])`;
7454
- var Rt = `style[${c2}]`;
7458
+ var It = `__sc-${c2}__`;
7459
+ "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);
7460
+ var Rt = `:not(style[${c2}])`;
7461
+ var jt = `style[${c2}]`;
7455
7462
 
7456
7463
  // node_modules/uuid/dist/stringify.js
7457
7464
  var byteToHex = [];
@@ -7849,6 +7856,7 @@ function BillingProductPriceResponseDataFromJSONTyped(json, ignoreDiscriminator)
7849
7856
  currency: json["currency"],
7850
7857
  id: json["id"],
7851
7858
  interval: BillingProductPriceIntervalFromJSON(json["interval"]),
7859
+ intervalCount: json["interval_count"],
7852
7860
  isActive: json["is_active"],
7853
7861
  meterId: json["meter_id"] == null ? void 0 : json["meter_id"],
7854
7862
  nickname: json["nickname"] == null ? void 0 : json["nickname"],
@@ -7894,6 +7902,7 @@ function BillingPriceViewFromJSONTyped(json, ignoreDiscriminator) {
7894
7902
  currency: json["currency"],
7895
7903
  id: json["id"],
7896
7904
  interval: BillingProductPriceIntervalFromJSON(json["interval"]),
7905
+ intervalCount: json["interval_count"],
7897
7906
  isActive: json["is_active"],
7898
7907
  meterEventName: json["meter_event_name"] == null ? void 0 : json["meter_event_name"],
7899
7908
  meterEventPayloadKey: json["meter_event_payload_key"] == null ? void 0 : json["meter_event_payload_key"],
@@ -8017,6 +8026,7 @@ function BillingPriceResponseDataFromJSONTyped(json, ignoreDiscriminator) {
8017
8026
  externalPriceId: json["external_price_id"],
8018
8027
  id: json["id"],
8019
8028
  interval: BillingProductPriceIntervalFromJSON(json["interval"]),
8029
+ intervalCount: json["interval_count"],
8020
8030
  nickname: json["nickname"] == null ? void 0 : json["nickname"],
8021
8031
  price: json["price"],
8022
8032
  priceDecimal: json["price_decimal"] == null ? void 0 : json["price_decimal"],
@@ -8305,6 +8315,7 @@ function BillingProductForSubscriptionResponseDataFromJSONTyped(json, ignoreDisc
8305
8315
  externalId: json["external_id"],
8306
8316
  id: json["id"],
8307
8317
  interval: json["interval"],
8318
+ intervalCount: json["interval_count"] == null ? void 0 : json["interval_count"],
8308
8319
  meterId: json["meter_id"] == null ? void 0 : json["meter_id"],
8309
8320
  name: json["name"],
8310
8321
  packageSize: json["package_size"],
@@ -8324,6 +8335,14 @@ function BillingProductForSubscriptionResponseDataFromJSONTyped(json, ignoreDisc
8324
8335
  };
8325
8336
  }
8326
8337
 
8338
+ // src/api/checkoutexternal/models/BillingStrategy.ts
8339
+ function BillingStrategyFromJSON(json) {
8340
+ return BillingStrategyFromJSONTyped(json, false);
8341
+ }
8342
+ function BillingStrategyFromJSONTyped(json, ignoreDiscriminator) {
8343
+ return json;
8344
+ }
8345
+
8327
8346
  // src/api/checkoutexternal/models/BillingSubscriptionDiscountView.ts
8328
8347
  function BillingSubscriptionDiscountViewFromJSON(json) {
8329
8348
  return BillingSubscriptionDiscountViewFromJSONTyped(json, false);
@@ -9114,6 +9133,7 @@ function CustomPlanBillingResponseDataFromJSONTyped(json, ignoreDiscriminator) {
9114
9133
  companyId: json["company_id"],
9115
9134
  createdAt: new Date(json["created_at"]),
9116
9135
  daysUntilDue: json["days_until_due"],
9136
+ externalInvoiceId: json["external_invoice_id"] == null ? void 0 : json["external_invoice_id"],
9117
9137
  id: json["id"],
9118
9138
  paidAt: json["paid_at"] == null ? void 0 : new Date(json["paid_at"]),
9119
9139
  planId: json["plan_id"],
@@ -9295,6 +9315,7 @@ function EntitlementCurrencyPricesResponseDataFromJSONTyped(json, ignoreDiscrimi
9295
9315
  return {
9296
9316
  currency: json["currency"],
9297
9317
  monthlyPrice: json["monthly_price"] == null ? void 0 : BillingPriceViewFromJSON(json["monthly_price"]),
9318
+ quarterlyPrice: json["quarterly_price"] == null ? void 0 : BillingPriceViewFromJSON(json["quarterly_price"]),
9298
9319
  yearlyPrice: json["yearly_price"] == null ? void 0 : BillingPriceViewFromJSON(json["yearly_price"])
9299
9320
  };
9300
9321
  }
@@ -9375,6 +9396,7 @@ function PlanEntitlementResponseDataFromJSONTyped(json, ignoreDiscriminator) {
9375
9396
  featureId: json["feature_id"],
9376
9397
  id: json["id"],
9377
9398
  meteredMonthlyPrice: json["metered_monthly_price"] == null ? void 0 : BillingPriceViewFromJSON(json["metered_monthly_price"]),
9399
+ meteredQuarterlyPrice: json["metered_quarterly_price"] == null ? void 0 : BillingPriceViewFromJSON(json["metered_quarterly_price"]),
9378
9400
  meteredYearlyPrice: json["metered_yearly_price"] == null ? void 0 : BillingPriceViewFromJSON(json["metered_yearly_price"]),
9379
9401
  metricPeriod: json["metric_period"] == null ? void 0 : MetricPeriodFromJSON(json["metric_period"]),
9380
9402
  metricPeriodMonthReset: json["metric_period_month_reset"] == null ? void 0 : MetricPeriodMonthResetFromJSON(json["metric_period_month_reset"]),
@@ -9386,6 +9408,7 @@ function PlanEntitlementResponseDataFromJSONTyped(json, ignoreDiscriminator) {
9386
9408
  softLimit: json["soft_limit"] == null ? void 0 : json["soft_limit"],
9387
9409
  updatedAt: new Date(json["updated_at"]),
9388
9410
  usageBasedProduct: json["usage_based_product"] == null ? void 0 : BillingProductResponseDataFromJSON(json["usage_based_product"]),
9411
+ usageQuantity: json["usage_quantity"] == null ? void 0 : json["usage_quantity"],
9389
9412
  valueBool: json["value_bool"] == null ? void 0 : json["value_bool"],
9390
9413
  valueCredit: json["value_credit"] == null ? void 0 : BillingCreditResponseDataFromJSON(json["value_credit"]),
9391
9414
  valueNumeric: json["value_numeric"] == null ? void 0 : json["value_numeric"],
@@ -9577,6 +9600,14 @@ function FeatureInPlanResponseDataFromJSONTyped(json, ignoreDiscriminator) {
9577
9600
  };
9578
9601
  }
9579
9602
 
9603
+ // src/api/checkoutexternal/models/PlanPriceCadence.ts
9604
+ function PlanPriceCadenceFromJSON(json) {
9605
+ return PlanPriceCadenceFromJSONTyped(json, false);
9606
+ }
9607
+ function PlanPriceCadenceFromJSONTyped(json, ignoreDiscriminator) {
9608
+ return json;
9609
+ }
9610
+
9580
9611
  // src/api/checkoutexternal/models/CustomPlanConfig.ts
9581
9612
  function CustomPlanConfigFromJSON(json) {
9582
9613
  return CustomPlanConfigFromJSONTyped(json, false);
@@ -9649,6 +9680,7 @@ function PlanCurrencyPricesResponseDataFromJSONTyped(json, ignoreDiscriminator)
9649
9680
  currency: json["currency"],
9650
9681
  monthlyPrice: json["monthly_price"] == null ? void 0 : BillingPriceResponseDataFromJSON(json["monthly_price"]),
9651
9682
  oneTimePrice: json["one_time_price"] == null ? void 0 : BillingPriceResponseDataFromJSON(json["one_time_price"]),
9683
+ quarterlyPrice: json["quarterly_price"] == null ? void 0 : BillingPriceResponseDataFromJSON(json["quarterly_price"]),
9652
9684
  yearlyPrice: json["yearly_price"] == null ? void 0 : BillingPriceResponseDataFromJSON(json["yearly_price"])
9653
9685
  };
9654
9686
  }
@@ -9766,6 +9798,7 @@ function FeatureUsageResponseDataFromJSONTyped(json, ignoreDiscriminator) {
9766
9798
  plan: json["plan"] == null ? void 0 : PlanResponseDataFromJSON(json["plan"]),
9767
9799
  planEntitlement: json["plan_entitlement"] == null ? void 0 : PlanEntitlementResponseDataFromJSON(json["plan_entitlement"]),
9768
9800
  priceBehavior: json["price_behavior"] == null ? void 0 : EntitlementPriceBehaviorFromJSON(json["price_behavior"]),
9801
+ quarterlyUsageBasedPrice: json["quarterly_usage_based_price"] == null ? void 0 : BillingPriceViewFromJSON(json["quarterly_usage_based_price"]),
9769
9802
  softLimit: json["soft_limit"] == null ? void 0 : json["soft_limit"],
9770
9803
  usage: json["usage"] == null ? void 0 : json["usage"],
9771
9804
  yearlyUsageBasedPrice: json["yearly_usage_based_price"] == null ? void 0 : BillingPriceViewFromJSON(json["yearly_usage_based_price"])
@@ -9783,10 +9816,14 @@ function CompanyPlanDetailResponseDataFromJSONTyped(json, ignoreDiscriminator) {
9783
9816
  return {
9784
9817
  activeVersion: json["active_version"] == null ? void 0 : PlanVersionResponseDataFromJSON(json["active_version"]),
9785
9818
  audienceType: json["audience_type"] == null ? void 0 : json["audience_type"],
9819
+ availablePeriods: json["available_periods"].map(
9820
+ PlanPriceCadenceFromJSON
9821
+ ),
9786
9822
  billingLinkedResource: json["billing_linked_resource"] == null ? void 0 : BillingLinkedResourceResponseDataFromJSON(
9787
9823
  json["billing_linked_resource"]
9788
9824
  ),
9789
9825
  billingProduct: json["billing_product"] == null ? void 0 : BillingProductDetailResponseDataFromJSON(json["billing_product"]),
9826
+ billingStrategy: BillingStrategyFromJSON(json["billing_strategy"]),
9790
9827
  chargeType: ChargeTypeFromJSON(json["charge_type"]),
9791
9828
  companyCanTrial: json["company_can_trial"],
9792
9829
  companyCount: json["company_count"],
@@ -9824,6 +9861,7 @@ function CompanyPlanDetailResponseDataFromJSONTyped(json, ignoreDiscriminator) {
9824
9861
  name: json["name"],
9825
9862
  oneTimePrice: json["one_time_price"] == null ? void 0 : BillingPriceResponseDataFromJSON(json["one_time_price"]),
9826
9863
  planType: PlanTypeFromJSON(json["plan_type"]),
9864
+ quarterlyPrice: json["quarterly_price"] == null ? void 0 : BillingPriceResponseDataFromJSON(json["quarterly_price"]),
9827
9865
  trialDays: json["trial_days"] == null ? void 0 : json["trial_days"],
9828
9866
  updatedAt: new Date(json["updated_at"]),
9829
9867
  usageViolations: json["usage_violations"].map(
@@ -9953,6 +9991,7 @@ function PlanDetailResponseDataFromJSONTyped(json, ignoreDiscriminator) {
9953
9991
  json["billing_linked_resource"]
9954
9992
  ),
9955
9993
  billingProduct: json["billing_product"] == null ? void 0 : BillingProductDetailResponseDataFromJSON(json["billing_product"]),
9994
+ billingStrategy: BillingStrategyFromJSON(json["billing_strategy"]),
9956
9995
  chargeType: ChargeTypeFromJSON(json["charge_type"]),
9957
9996
  companyCount: json["company_count"],
9958
9997
  companyId: json["company_id"] == null ? void 0 : json["company_id"],
@@ -9980,6 +10019,7 @@ function PlanDetailResponseDataFromJSONTyped(json, ignoreDiscriminator) {
9980
10019
  name: json["name"],
9981
10020
  oneTimePrice: json["one_time_price"] == null ? void 0 : BillingPriceResponseDataFromJSON(json["one_time_price"]),
9982
10021
  planType: PlanTypeFromJSON(json["plan_type"]),
10022
+ quarterlyPrice: json["quarterly_price"] == null ? void 0 : BillingPriceResponseDataFromJSON(json["quarterly_price"]),
9983
10023
  trialDays: json["trial_days"] == null ? void 0 : json["trial_days"],
9984
10024
  updatedAt: new Date(json["updated_at"]),
9985
10025
  versions: json["versions"].map(
@@ -10084,6 +10124,8 @@ function UsageBasedEntitlementResponseDataFromJSONTyped(json, ignoreDiscriminato
10084
10124
  metricPeriodMonthReset: json["metric_period_month_reset"] == null ? void 0 : MetricPeriodMonthResetFromJSON(json["metric_period_month_reset"]),
10085
10125
  monthlyUsageBasedPrice: json["monthly_usage_based_price"] == null ? void 0 : BillingPriceViewFromJSON(json["monthly_usage_based_price"]),
10086
10126
  priceBehavior: json["price_behavior"] == null ? void 0 : EntitlementPriceBehaviorFromJSON(json["price_behavior"]),
10127
+ quarterlyUsageBasedPrice: json["quarterly_usage_based_price"] == null ? void 0 : BillingPriceViewFromJSON(json["quarterly_usage_based_price"]),
10128
+ usageQuantity: json["usage_quantity"] == null ? void 0 : json["usage_quantity"],
10087
10129
  valueBool: json["value_bool"] == null ? void 0 : json["value_bool"],
10088
10130
  valueNumeric: json["value_numeric"] == null ? void 0 : json["value_numeric"],
10089
10131
  valueType: EntitlementValueTypeFromJSON(json["value_type"]),
@@ -11233,6 +11275,7 @@ function BillingPriceResponseDataFromJSONTyped9(json, ignoreDiscriminator) {
11233
11275
  externalPriceId: json["external_price_id"],
11234
11276
  id: json["id"],
11235
11277
  interval: BillingProductPriceIntervalFromJSON2(json["interval"]),
11278
+ intervalCount: json["interval_count"],
11236
11279
  nickname: json["nickname"] == null ? void 0 : json["nickname"],
11237
11280
  price: json["price"],
11238
11281
  priceDecimal: json["price_decimal"] == null ? void 0 : json["price_decimal"],
@@ -11368,6 +11411,7 @@ function BillingPriceViewFromJSONTyped9(json, ignoreDiscriminator) {
11368
11411
  currency: json["currency"],
11369
11412
  id: json["id"],
11370
11413
  interval: BillingProductPriceIntervalFromJSON2(json["interval"]),
11414
+ intervalCount: json["interval_count"],
11371
11415
  isActive: json["is_active"],
11372
11416
  meterEventName: json["meter_event_name"] == null ? void 0 : json["meter_event_name"],
11373
11417
  meterEventPayloadKey: json["meter_event_payload_key"] == null ? void 0 : json["meter_event_payload_key"],
@@ -11527,6 +11571,14 @@ function BillingProductDetailResponseDataFromJSONTyped5(json, ignoreDiscriminato
11527
11571
  };
11528
11572
  }
11529
11573
 
11574
+ // src/api/componentspublic/models/BillingStrategy.ts
11575
+ function BillingStrategyFromJSON2(json) {
11576
+ return BillingStrategyFromJSONTyped5(json, false);
11577
+ }
11578
+ function BillingStrategyFromJSONTyped5(json, ignoreDiscriminator) {
11579
+ return json;
11580
+ }
11581
+
11530
11582
  // src/api/componentspublic/models/ChargeType.ts
11531
11583
  function ChargeTypeFromJSON2(json) {
11532
11584
  return ChargeTypeFromJSONTyped5(json, false);
@@ -11655,6 +11707,7 @@ function EntitlementCurrencyPricesResponseDataFromJSONTyped3(json, ignoreDiscrim
11655
11707
  return {
11656
11708
  currency: json["currency"],
11657
11709
  monthlyPrice: json["monthly_price"] == null ? void 0 : BillingPriceViewFromJSON2(json["monthly_price"]),
11710
+ quarterlyPrice: json["quarterly_price"] == null ? void 0 : BillingPriceViewFromJSON2(json["quarterly_price"]),
11658
11711
  yearlyPrice: json["yearly_price"] == null ? void 0 : BillingPriceViewFromJSON2(json["yearly_price"])
11659
11712
  };
11660
11713
  }
@@ -12002,6 +12055,7 @@ function PlanEntitlementResponseDataFromJSONTyped5(json, ignoreDiscriminator) {
12002
12055
  featureId: json["feature_id"],
12003
12056
  id: json["id"],
12004
12057
  meteredMonthlyPrice: json["metered_monthly_price"] == null ? void 0 : BillingPriceViewFromJSON2(json["metered_monthly_price"]),
12058
+ meteredQuarterlyPrice: json["metered_quarterly_price"] == null ? void 0 : BillingPriceViewFromJSON2(json["metered_quarterly_price"]),
12005
12059
  meteredYearlyPrice: json["metered_yearly_price"] == null ? void 0 : BillingPriceViewFromJSON2(json["metered_yearly_price"]),
12006
12060
  metricPeriod: json["metric_period"] == null ? void 0 : MetricPeriodFromJSON2(json["metric_period"]),
12007
12061
  metricPeriodMonthReset: json["metric_period_month_reset"] == null ? void 0 : MetricPeriodMonthResetFromJSON2(json["metric_period_month_reset"]),
@@ -12013,6 +12067,7 @@ function PlanEntitlementResponseDataFromJSONTyped5(json, ignoreDiscriminator) {
12013
12067
  softLimit: json["soft_limit"] == null ? void 0 : json["soft_limit"],
12014
12068
  updatedAt: new Date(json["updated_at"]),
12015
12069
  usageBasedProduct: json["usage_based_product"] == null ? void 0 : BillingProductResponseDataFromJSON2(json["usage_based_product"]),
12070
+ usageQuantity: json["usage_quantity"] == null ? void 0 : json["usage_quantity"],
12016
12071
  valueBool: json["value_bool"] == null ? void 0 : json["value_bool"],
12017
12072
  valueCredit: json["value_credit"] == null ? void 0 : BillingCreditResponseDataFromJSON2(json["value_credit"]),
12018
12073
  valueNumeric: json["value_numeric"] == null ? void 0 : json["value_numeric"],
@@ -12022,6 +12077,14 @@ function PlanEntitlementResponseDataFromJSONTyped5(json, ignoreDiscriminator) {
12022
12077
  };
12023
12078
  }
12024
12079
 
12080
+ // src/api/componentspublic/models/PlanPriceCadence.ts
12081
+ function PlanPriceCadenceFromJSON2(json) {
12082
+ return PlanPriceCadenceFromJSONTyped4(json, false);
12083
+ }
12084
+ function PlanPriceCadenceFromJSONTyped4(json, ignoreDiscriminator) {
12085
+ return json;
12086
+ }
12087
+
12025
12088
  // src/api/componentspublic/models/PlanCreditGrantView.ts
12026
12089
  function PlanCreditGrantViewFromJSON2(json) {
12027
12090
  return PlanCreditGrantViewFromJSONTyped3(json, false);
@@ -12079,6 +12142,7 @@ function PlanCurrencyPricesResponseDataFromJSONTyped5(json, ignoreDiscriminator)
12079
12142
  currency: json["currency"],
12080
12143
  monthlyPrice: json["monthly_price"] == null ? void 0 : BillingPriceResponseDataFromJSON2(json["monthly_price"]),
12081
12144
  oneTimePrice: json["one_time_price"] == null ? void 0 : BillingPriceResponseDataFromJSON2(json["one_time_price"]),
12145
+ quarterlyPrice: json["quarterly_price"] == null ? void 0 : BillingPriceResponseDataFromJSON2(json["quarterly_price"]),
12082
12146
  yearlyPrice: json["yearly_price"] == null ? void 0 : BillingPriceResponseDataFromJSON2(json["yearly_price"])
12083
12147
  };
12084
12148
  }
@@ -12125,10 +12189,14 @@ function PlanViewPublicResponseDataFromJSONTyped(json, ignoreDiscriminator) {
12125
12189
  return {
12126
12190
  activeVersion: json["active_version"] == null ? void 0 : PlanVersionResponseDataFromJSON2(json["active_version"]),
12127
12191
  audienceType: json["audience_type"] == null ? void 0 : json["audience_type"],
12192
+ availablePeriods: json["available_periods"].map(
12193
+ PlanPriceCadenceFromJSON2
12194
+ ),
12128
12195
  billingLinkedResource: json["billing_linked_resource"] == null ? void 0 : BillingLinkedResourceResponseDataFromJSON2(
12129
12196
  json["billing_linked_resource"]
12130
12197
  ),
12131
12198
  billingProduct: json["billing_product"] == null ? void 0 : BillingProductDetailResponseDataFromJSON2(json["billing_product"]),
12199
+ billingStrategy: BillingStrategyFromJSON2(json["billing_strategy"]),
12132
12200
  chargeType: ChargeTypeFromJSON2(json["charge_type"]),
12133
12201
  companyCount: json["company_count"],
12134
12202
  companyId: json["company_id"] == null ? void 0 : json["company_id"],
@@ -12163,6 +12231,7 @@ function PlanViewPublicResponseDataFromJSONTyped(json, ignoreDiscriminator) {
12163
12231
  name: json["name"],
12164
12232
  oneTimePrice: json["one_time_price"] == null ? void 0 : BillingPriceResponseDataFromJSON2(json["one_time_price"]),
12165
12233
  planType: PlanTypeFromJSON2(json["plan_type"]),
12234
+ quarterlyPrice: json["quarterly_price"] == null ? void 0 : BillingPriceResponseDataFromJSON2(json["quarterly_price"]),
12166
12235
  trialDays: json["trial_days"] == null ? void 0 : json["trial_days"],
12167
12236
  updatedAt: new Date(json["updated_at"]),
12168
12237
  versions: json["versions"].map(
@@ -12250,6 +12319,24 @@ var ComponentspublicApi = class extends BaseAPI2 {
12250
12319
  };
12251
12320
 
12252
12321
  // src/utils/api/billing.ts
12322
+ function derivePeriod(interval, intervalCount) {
12323
+ if (!interval) {
12324
+ return void 0;
12325
+ }
12326
+ if (interval === "month" && intervalCount === 3) {
12327
+ return "quarter";
12328
+ }
12329
+ return interval;
12330
+ }
12331
+ function getSubscriptionPeriod(billingSubscription) {
12332
+ if (!billingSubscription) {
12333
+ return void 0;
12334
+ }
12335
+ const product = billingSubscription.products?.find(
12336
+ (p3) => p3.interval && p3.interval !== "one-time"
12337
+ );
12338
+ return derivePeriod(product?.interval, product?.intervalCount) ?? derivePeriod(billingSubscription.interval);
12339
+ }
12253
12340
  var ChargeType = {
12254
12341
  oneTime: "one_time",
12255
12342
  recurring: "recurring",
@@ -12259,19 +12346,32 @@ function getPriceValue(billingPrice) {
12259
12346
  const price = typeof billingPrice.priceDecimal === "string" ? Number(billingPrice.priceDecimal) : billingPrice.price;
12260
12347
  return price;
12261
12348
  }
12349
+ function selectPriceForPeriod(source, period) {
12350
+ switch (period) {
12351
+ case "year":
12352
+ return source.yearlyPrice;
12353
+ case "quarter":
12354
+ return source.quarterlyPrice;
12355
+ default:
12356
+ return source.monthlyPrice;
12357
+ }
12358
+ }
12359
+ function selectAvailablePrice(source) {
12360
+ return source.monthlyPrice ?? source.quarterlyPrice ?? source.yearlyPrice;
12361
+ }
12262
12362
  function getPlanPrice(plan, period = "month", options = { useSelectedPeriod: true }, currency) {
12263
12363
  if (currency && plan.currencyPrices?.length) {
12264
12364
  const currencyPrice = plan.currencyPrices.find(
12265
12365
  (cp) => cp.currency.toLowerCase() === currency.toLowerCase()
12266
12366
  );
12267
12367
  if (currencyPrice) {
12268
- const billingPrice2 = options.useSelectedPeriod ? period === "year" ? currencyPrice.yearlyPrice : currencyPrice.monthlyPrice : currencyPrice.yearlyPrice && !currencyPrice.monthlyPrice ? currencyPrice.yearlyPrice : currencyPrice.monthlyPrice;
12368
+ const billingPrice2 = options.useSelectedPeriod ? selectPriceForPeriod(currencyPrice, period) : selectAvailablePrice(currencyPrice);
12269
12369
  if (billingPrice2) {
12270
12370
  return { ...billingPrice2, price: getPriceValue(billingPrice2) };
12271
12371
  }
12272
12372
  }
12273
12373
  }
12274
- const billingPrice = options.useSelectedPeriod ? period === "year" ? plan.yearlyPrice : plan.monthlyPrice : plan.yearlyPrice && !plan.monthlyPrice ? plan.yearlyPrice : plan.monthlyPrice;
12374
+ const billingPrice = options.useSelectedPeriod ? selectPriceForPeriod(plan, period) : selectAvailablePrice(plan);
12275
12375
  if (billingPrice) {
12276
12376
  return { ...billingPrice, price: getPriceValue(billingPrice) };
12277
12377
  }
@@ -12282,13 +12382,13 @@ function getAddOnPrice(addOn, period = "month", currency) {
12282
12382
  (cp) => cp.currency.toLowerCase() === currency.toLowerCase()
12283
12383
  );
12284
12384
  if (currencyPrice) {
12285
- const billingPrice2 = addOn.chargeType === ChargeType.oneTime ? currencyPrice.oneTimePrice : period === "year" ? currencyPrice.yearlyPrice : currencyPrice.monthlyPrice;
12385
+ const billingPrice2 = addOn.chargeType === ChargeType.oneTime ? currencyPrice.oneTimePrice : selectPriceForPeriod(currencyPrice, period);
12286
12386
  if (billingPrice2) {
12287
12387
  return { ...billingPrice2, price: getPriceValue(billingPrice2) };
12288
12388
  }
12289
12389
  }
12290
12390
  }
12291
- const billingPrice = addOn.chargeType === ChargeType.oneTime ? addOn.oneTimePrice : period === "year" ? addOn.yearlyPrice : addOn.monthlyPrice;
12391
+ const billingPrice = addOn.chargeType === ChargeType.oneTime ? addOn.oneTimePrice : selectPriceForPeriod(addOn, period);
12292
12392
  if (billingPrice) {
12293
12393
  return { ...billingPrice, price: getPriceValue(billingPrice) };
12294
12394
  }
@@ -12312,14 +12412,28 @@ function getEntitlementPrice(entitlement, period = "month", currency) {
12312
12412
  (cp) => cp.currency.toLowerCase() === currency.toLowerCase()
12313
12413
  );
12314
12414
  if (currencyPrice) {
12315
- source = period === "year" ? currencyPrice.yearlyPrice : currencyPrice.monthlyPrice;
12415
+ source = selectPriceForPeriod(currencyPrice, period);
12316
12416
  }
12317
12417
  }
12318
12418
  if (!source) {
12319
12419
  if ("valueType" in entitlement) {
12320
- source = period === "year" ? entitlement.meteredYearlyPrice : entitlement.meteredMonthlyPrice;
12420
+ source = selectPriceForPeriod(
12421
+ {
12422
+ monthlyPrice: entitlement.meteredMonthlyPrice,
12423
+ quarterlyPrice: entitlement.meteredQuarterlyPrice,
12424
+ yearlyPrice: entitlement.meteredYearlyPrice
12425
+ },
12426
+ period
12427
+ );
12321
12428
  } else if ("entitlementType" in entitlement) {
12322
- source = period === "year" ? entitlement.yearlyUsageBasedPrice : entitlement.monthlyUsageBasedPrice;
12429
+ source = selectPriceForPeriod(
12430
+ {
12431
+ monthlyPrice: entitlement.monthlyUsageBasedPrice,
12432
+ quarterlyPrice: entitlement.quarterlyUsageBasedPrice,
12433
+ yearlyPrice: entitlement.yearlyUsageBasedPrice
12434
+ },
12435
+ period
12436
+ );
12323
12437
  }
12324
12438
  }
12325
12439
  if (source) {
@@ -12371,7 +12485,15 @@ function calculateTieredCost(quantity, priceTiers, tiersMode) {
12371
12485
  return cost;
12372
12486
  }
12373
12487
  function getEntitlementCost(entitlement, period = "month", currency) {
12374
- const source = currency ? getEntitlementPrice(entitlement, period ?? "month", currency) : period === "year" ? entitlement.yearlyUsageBasedPrice : entitlement.monthlyUsageBasedPrice;
12488
+ const resolvedPeriod = period ?? "month";
12489
+ const source = currency ? getEntitlementPrice(entitlement, resolvedPeriod, currency) : selectPriceForPeriod(
12490
+ {
12491
+ monthlyPrice: entitlement.monthlyUsageBasedPrice,
12492
+ quarterlyPrice: entitlement.quarterlyUsageBasedPrice,
12493
+ yearlyPrice: entitlement.yearlyUsageBasedPrice
12494
+ },
12495
+ resolvedPeriod
12496
+ );
12375
12497
  if (source) {
12376
12498
  const billingPrice = { ...source };
12377
12499
  if (entitlement.priceBehavior === EntitlementPriceBehavior.PayInAdvance && typeof entitlement.allocation === "number" && entitlement.allocation > 0) {
@@ -12632,7 +12754,7 @@ function getMetricPeriodName(entitlement) {
12632
12754
  return name;
12633
12755
  }
12634
12756
  function getUsageDetails(entitlement, period, currency) {
12635
- const billingPrice = currency ? getEntitlementPrice(entitlement, period ?? "month", currency) : period === "year" ? entitlement.yearlyUsageBasedPrice : period === "month" ? entitlement.monthlyUsageBasedPrice : void 0;
12757
+ const billingPrice = currency ? getEntitlementPrice(entitlement, period ?? "month", currency) : period === "year" ? entitlement.yearlyUsageBasedPrice : period === "quarter" ? entitlement.quarterlyUsageBasedPrice : period === "month" ? entitlement.monthlyUsageBasedPrice : void 0;
12636
12758
  let limit;
12637
12759
  if ((!entitlement.priceBehavior || entitlement.priceBehavior === EntitlementPriceBehavior.PayInAdvance) && typeof entitlement.allocation === "number") {
12638
12760
  limit = entitlement.allocation;
@@ -12694,7 +12816,7 @@ function getCreditBasedEntitlementLimit(entitlement, credits) {
12694
12816
  }
12695
12817
  function extractCurrentUsageBasedEntitlements(features = [], planPeriod) {
12696
12818
  return features.reduce((acc, entitlement) => {
12697
- if (entitlement.priceBehavior && (planPeriod === "month" && entitlement.monthlyUsageBasedPrice || planPeriod === "year" && entitlement.yearlyUsageBasedPrice)) {
12819
+ if (entitlement.priceBehavior && (planPeriod === "month" && entitlement.monthlyUsageBasedPrice || planPeriod === "quarter" && entitlement.quarterlyUsageBasedPrice || planPeriod === "year" && entitlement.yearlyUsageBasedPrice)) {
12698
12820
  const allocation = entitlement.allocation || 0;
12699
12821
  const usage = entitlement.usage || 0;
12700
12822
  const quantity = allocation ?? usage;
@@ -13216,6 +13338,8 @@ function shortenPeriod(period) {
13216
13338
  switch (period) {
13217
13339
  case "month":
13218
13340
  return "mo";
13341
+ case "quarter":
13342
+ return "qtr";
13219
13343
  case "year":
13220
13344
  return "yr";
13221
13345
  }
@@ -13389,7 +13513,7 @@ function getCurrencySymbol(currency) {
13389
13513
  // src/utils/style.ts
13390
13514
  function attr(key, value) {
13391
13515
  if (typeof value !== "undefined") {
13392
- return pt2`
13516
+ return ft`
13393
13517
  ${key}: ${value};
13394
13518
  `;
13395
13519
  }
@@ -13581,7 +13705,8 @@ var reducer = (state, action) => {
13581
13705
  bypassAddOnSelection,
13582
13706
  bypassCreditsSelection,
13583
13707
  ...config.addOnIds && { addOnIds: config.addOnIds },
13584
- hideSkippedStages: config.hideSkipped ?? false
13708
+ hideSkippedStages: config.hideSkipped ?? false,
13709
+ startTrialIfAvailable: isStringFormat || config.startTrialIfAvailable === void 0 ? true : config.startTrialIfAvailable
13585
13710
  }
13586
13711
  };
13587
13712
  }
@@ -13603,7 +13728,7 @@ var reducer = (state, action) => {
13603
13728
  // src/context/EmbedProvider.tsx
13604
13729
  import { jsx, jsxs } from "react/jsx-runtime";
13605
13730
  var getCustomHeaders = (sessionId) => ({
13606
- "X-Schematic-Components-Version": "2.11.0",
13731
+ "X-Schematic-Components-Version": "2.13.0",
13607
13732
  "X-Schematic-Session-ID": sessionId
13608
13733
  });
13609
13734
  var normalizeCurrencyFilter = (filter2) => {
@@ -14036,7 +14161,7 @@ var EmbedProvider = ({
14036
14161
  updateSettings,
14037
14162
  debug
14038
14163
  },
14039
- children: /* @__PURE__ */ jsxs(st2, { theme: state.settings.theme, children: [
14164
+ children: /* @__PURE__ */ jsxs(rt2, { theme: state.settings.theme, children: [
14040
14165
  /* @__PURE__ */ jsx(IconStyles, {}),
14041
14166
  children
14042
14167
  ] })
@@ -14139,6 +14264,9 @@ function useAvailablePlans(activePeriod, options = { useSelectedPeriod: true })
14139
14264
  if ((data?.activePlans || []).some((plan) => plan.monthlyPrice) || (data?.activeAddOns || []).some((addOn) => addOn.monthlyPrice)) {
14140
14265
  periods.push("month");
14141
14266
  }
14267
+ if ((data?.activePlans || []).some((plan) => plan.quarterlyPrice) || (data?.activeAddOns || []).some((addOn) => addOn.quarterlyPrice)) {
14268
+ periods.push("quarter");
14269
+ }
14142
14270
  if ((data?.activePlans || []).some((plan) => plan.yearlyPrice) || (data?.activeAddOns || []).some((addOn) => addOn.yearlyPrice)) {
14143
14271
  periods.push("year");
14144
14272
  }
@@ -14148,9 +14276,9 @@ function useAvailablePlans(activePeriod, options = { useSelectedPeriod: true })
14148
14276
  (plans) => {
14149
14277
  const activePlans = settings.mode === "edit" ? plans.slice() : plans.filter((plan) => {
14150
14278
  if (options.useSelectedPeriod) {
14151
- return activePeriod === "month" && plan.monthlyPrice || activePeriod === "year" && plan.yearlyPrice || plan.chargeType === ChargeType.oneTime;
14279
+ return activePeriod === "month" && plan.monthlyPrice || activePeriod === "quarter" && plan.quarterlyPrice || activePeriod === "year" && plan.yearlyPrice || plan.chargeType === ChargeType.oneTime;
14152
14280
  }
14153
- return plan.monthlyPrice || plan.yearlyPrice || plan.chargeType === ChargeType.oneTime;
14281
+ return plan.monthlyPrice || plan.quarterlyPrice || plan.yearlyPrice || plan.chargeType === ChargeType.oneTime;
14154
14282
  });
14155
14283
  return activePlans.map((plan) => ({ ...plan, isSelected: false }));
14156
14284
  },
@@ -14405,7 +14533,7 @@ function useWrapChildren(ref) {
14405
14533
  }
14406
14534
 
14407
14535
  // src/components/ui/box/styles.ts
14408
- var Box = yt2("div")((props) => {
14536
+ var Box = gt2("div")((props) => {
14409
14537
  function reducer2(acc, [key, value]) {
14410
14538
  if (key.startsWith("$") && !["$viewport"].includes(key)) {
14411
14539
  acc.push(
@@ -14416,14 +14544,14 @@ var Box = yt2("div")((props) => {
14416
14544
  return acc;
14417
14545
  }
14418
14546
  const styles = Object.entries(props).reduce(reducer2, [
14419
- pt2`
14547
+ ft`
14420
14548
  &:focus-visible {
14421
14549
  outline: 2px solid ${({ theme }) => theme.primary};
14422
14550
  }
14423
14551
  `
14424
14552
  ]);
14425
14553
  for (const [key, value] of Object.entries(props.$viewport || {})) {
14426
- styles.push(pt2`
14554
+ styles.push(ft`
14427
14555
  ${{
14428
14556
  "xs": "@container (min-width: 375px)",
14429
14557
  "sm": "@container (min-width: 640px)",
@@ -14438,11 +14566,11 @@ var Box = yt2("div")((props) => {
14438
14566
  }
14439
14567
  return styles;
14440
14568
  });
14441
- var TransitionBox = yt2(Box)`
14569
+ var TransitionBox = gt2(Box)`
14442
14570
  ${({ $isExpanded = true }) => {
14443
- return $isExpanded ? pt2`
14571
+ return $isExpanded ? ft`
14444
14572
  height: auto;
14445
- ` : pt2`
14573
+ ` : ft`
14446
14574
  height: 0;
14447
14575
  overflow: hidden;
14448
14576
  `;
@@ -14459,7 +14587,7 @@ var TransitionBox = yt2(Box)`
14459
14587
  `;
14460
14588
 
14461
14589
  // src/components/ui/icon/styles.ts
14462
- var Icon2 = yt2(Icon).attrs(({ name, title, onClick }) => ({
14590
+ var Icon2 = gt2(Icon).attrs(({ name, title, onClick }) => ({
14463
14591
  title: title || name,
14464
14592
  ...onClick && { tabIndex: 0 }
14465
14593
  }))`
@@ -14469,7 +14597,7 @@ var Icon2 = yt2(Icon).attrs(({ name, title, onClick }) => ({
14469
14597
  flex-shrink: 0;
14470
14598
  transition: 0.1s;
14471
14599
 
14472
- ${({ onClick }) => onClick && pt2`
14600
+ ${({ onClick }) => onClick && ft`
14473
14601
  &:hover {
14474
14602
  cursor: pointer;
14475
14603
  }
@@ -14480,7 +14608,7 @@ var Icon2 = yt2(Icon).attrs(({ name, title, onClick }) => ({
14480
14608
  outline-offset: 2px;
14481
14609
  }
14482
14610
 
14483
- ${({ $rounded }) => $rounded && pt2`
14611
+ ${({ $rounded }) => $rounded && ft`
14484
14612
  border-radius: 9999px;
14485
14613
  `}
14486
14614
 
@@ -14511,10 +14639,10 @@ var Icon2 = yt2(Icon).attrs(({ name, title, onClick }) => ({
14511
14639
  scale *= 3;
14512
14640
  break;
14513
14641
  }
14514
- return pt2`
14642
+ return ft`
14515
14643
  font-size: ${base * scale / TEXT_BASE_SIZE}rem;
14516
14644
 
14517
- ${$rounded && pt2`
14645
+ ${$rounded && ft`
14518
14646
  width: ${base * (11 / 6) * scale / TEXT_BASE_SIZE}rem;
14519
14647
  height: ${base * (11 / 6) * scale / TEXT_BASE_SIZE}rem;
14520
14648
  `}
@@ -14522,10 +14650,10 @@ var Icon2 = yt2(Icon).attrs(({ name, title, onClick }) => ({
14522
14650
  }}
14523
14651
 
14524
14652
  ${({ $variant, $color, $background }) => {
14525
- return $variant === "outline" ? pt2`
14653
+ return $variant === "outline" ? ft`
14526
14654
  color: ${$color};
14527
14655
  background-color: transparent;
14528
- ` : pt2`
14656
+ ` : ft`
14529
14657
  color: ${$color};
14530
14658
  background-color: ${$background};
14531
14659
  `;
@@ -14533,7 +14661,7 @@ var Icon2 = yt2(Icon).attrs(({ name, title, onClick }) => ({
14533
14661
  `;
14534
14662
 
14535
14663
  // src/components/ui/loader/styles.ts
14536
- var spin = Ot`
14664
+ var spin = Et`
14537
14665
  0% {
14538
14666
  transform: rotate(0deg);
14539
14667
  }
@@ -14546,7 +14674,7 @@ var loaderStyles = ({
14546
14674
  $color,
14547
14675
  $size = "md",
14548
14676
  $isLoading = true
14549
- }) => pt2(({ theme }) => {
14677
+ }) => ft(({ theme }) => {
14550
14678
  const { l: l3 } = hexToHSL(theme.card.background);
14551
14679
  let color = $color ?? theme.primary;
14552
14680
  let colorFn;
@@ -14582,14 +14710,14 @@ var loaderStyles = ({
14582
14710
  px = 64;
14583
14711
  break;
14584
14712
  }
14585
- return pt2`
14713
+ return ft`
14586
14714
  display: inline-block;
14587
14715
  width: ${($isLoading ? px : 0) / TEXT_BASE_SIZE}rem;
14588
14716
  height: ${($isLoading ? px : 0) / TEXT_BASE_SIZE}rem;
14589
14717
  border-width: ${($isLoading ? px : 0) / 16 / TEXT_BASE_SIZE}rem;
14590
- ${$isLoading ? pt2`
14718
+ ${$isLoading ? ft`
14591
14719
  animation: 1.5s linear infinite ${spin};
14592
- ` : pt2`
14720
+ ` : ft`
14593
14721
  transform: scale(0);
14594
14722
  `}
14595
14723
  border-style: solid;
@@ -14600,12 +14728,12 @@ var loaderStyles = ({
14600
14728
  animation: 1.5s linear infinite ${spin};
14601
14729
  `;
14602
14730
  });
14603
- var Loader = yt2.div((props) => {
14731
+ var Loader = gt2.div((props) => {
14604
14732
  return loaderStyles(props);
14605
14733
  });
14606
14734
 
14607
14735
  // src/components/ui/button/styles.ts
14608
- var Button = yt2.button(
14736
+ var Button = gt2.button(
14609
14737
  ({
14610
14738
  theme,
14611
14739
  disabled = false,
@@ -14617,7 +14745,7 @@ var Button = yt2.button(
14617
14745
  $alignment = "center",
14618
14746
  $selfAlignment
14619
14747
  }) => {
14620
- return pt2`
14748
+ return ft`
14621
14749
  appearance: none;
14622
14750
  font-family: "Public Sans", sans-serif;
14623
14751
  font-weight: 500;
@@ -14625,7 +14753,7 @@ var Button = yt2.button(
14625
14753
  display: flex;
14626
14754
  justify-content: ${$alignment};
14627
14755
  align-items: center;
14628
- ${() => $selfAlignment && pt2`
14756
+ ${() => $selfAlignment && ft`
14629
14757
  align-self: ${$selfAlignment};
14630
14758
  `}
14631
14759
  width: ${$fullWidth ? "100%" : "fit-content"};
@@ -14635,21 +14763,21 @@ var Button = yt2.button(
14635
14763
  ${function sizeStyles() {
14636
14764
  switch ($size) {
14637
14765
  case "sm":
14638
- return pt2`
14766
+ return ft`
14639
14767
  font-size: ${15 / TEXT_BASE_SIZE}rem;
14640
14768
  height: ${40 / TEXT_BASE_SIZE}rem;
14641
14769
  padding: ${7 / TEXT_BASE_SIZE}rem ${20 / TEXT_BASE_SIZE}rem;
14642
14770
  border-radius: ${6 / TEXT_BASE_SIZE}rem;
14643
14771
  `;
14644
14772
  case "md":
14645
- return pt2`
14773
+ return ft`
14646
14774
  font-size: ${17 / TEXT_BASE_SIZE}rem;
14647
14775
  height: ${52 / TEXT_BASE_SIZE}rem;
14648
14776
  padding: ${8 / TEXT_BASE_SIZE}rem ${24 / TEXT_BASE_SIZE}rem;
14649
14777
  border-radius: ${8 / TEXT_BASE_SIZE}rem;
14650
14778
  `;
14651
14779
  case "lg":
14652
- return pt2`
14780
+ return ft`
14653
14781
  font-size: ${19 / TEXT_BASE_SIZE}rem;
14654
14782
  height: ${64 / TEXT_BASE_SIZE}rem;
14655
14783
  padding: ${9 / TEXT_BASE_SIZE}rem ${28 / TEXT_BASE_SIZE}rem;
@@ -14664,7 +14792,7 @@ var Button = yt2.button(
14664
14792
  if (disabled) {
14665
14793
  color = l3 > 50 ? lighten(color, 0.625) : darken(color, 0.375);
14666
14794
  }
14667
- return pt2`
14795
+ return ft`
14668
14796
  color: ${color};
14669
14797
 
14670
14798
  ${Text}, ${Icon2} {
@@ -14681,7 +14809,7 @@ var Button = yt2.button(
14681
14809
  color = l3 > 50 ? darken(color, 0.075) : lighten(color, 0.15);
14682
14810
  }
14683
14811
  if ($variant === "outline") {
14684
- return pt2`
14812
+ return ft`
14685
14813
  color: ${color};
14686
14814
  background-color: transparent;
14687
14815
  border-color: ${color};
@@ -14692,7 +14820,7 @@ var Button = yt2.button(
14692
14820
  `;
14693
14821
  }
14694
14822
  if ($variant === "ghost") {
14695
- return pt2`
14823
+ return ft`
14696
14824
  color: ${color};
14697
14825
  background-color: transparent;
14698
14826
  border-color: ${l3 > 50 ? darken(theme.card.background, 0.2) : lighten(theme.card.background, 0.2)};
@@ -14703,7 +14831,7 @@ var Button = yt2.button(
14703
14831
  `;
14704
14832
  }
14705
14833
  if ($variant === "text") {
14706
- return pt2`
14834
+ return ft`
14707
14835
  color: ${color};
14708
14836
  background-color: transparent;
14709
14837
  border-color: transparent;
@@ -14713,7 +14841,7 @@ var Button = yt2.button(
14713
14841
  }
14714
14842
  `;
14715
14843
  }
14716
- return pt2`
14844
+ return ft`
14717
14845
  background-color: ${color};
14718
14846
  border-color: ${color};
14719
14847
  `;
@@ -14731,7 +14859,7 @@ var Button = yt2.button(
14731
14859
  &::before {
14732
14860
  content: "";
14733
14861
  ${loaderStyles({ $color: theme[$color], $size, $isLoading })}
14734
- ${$isLoading && pt2`
14862
+ ${$isLoading && ft`
14735
14863
  margin-right: 0.5rem;
14736
14864
  `}
14737
14865
  }
@@ -14749,13 +14877,13 @@ var Button = yt2.button(
14749
14877
  const lightened = lighten(specified, 0.15);
14750
14878
  const bgColor = specified === lightened ? darken(specified, 0.15) : lightened;
14751
14879
  if ($variant === "filled") {
14752
- return pt2`
14880
+ return ft`
14753
14881
  background-color: ${bgColor};
14754
14882
  border-color: ${bgColor};
14755
14883
  `;
14756
14884
  }
14757
14885
  if ($variant === "outline") {
14758
- return pt2`
14886
+ return ft`
14759
14887
  color: ${color};
14760
14888
  background-color: ${bgColor};
14761
14889
  border-color: ${bgColor};
@@ -14767,14 +14895,14 @@ var Button = yt2.button(
14767
14895
  }
14768
14896
  if ($variant === "ghost") {
14769
14897
  const { l: l4 } = hexToHSL(theme.card.background);
14770
- return pt2`
14898
+ return ft`
14771
14899
  border-color: ${l4 > 50 ? darken(theme.card.background, 0.125) : lighten(theme.card.background, 0.125)};
14772
14900
  box-shadow: 0 1px 2px
14773
14901
  ${l4 > 50 ? darken(theme.card.background, 0.075) : lighten(theme.card.background, 0.075)};
14774
14902
  `;
14775
14903
  }
14776
14904
  if ($variant === "text") {
14777
- return pt2`
14905
+ return ft`
14778
14906
  text-decoration: underline;
14779
14907
  `;
14780
14908
  }
@@ -14794,14 +14922,14 @@ import {
14794
14922
  } from "react";
14795
14923
 
14796
14924
  // src/components/ui/dialog/styles.ts
14797
- var DialogContent = yt2.div`
14925
+ var DialogContent = gt2.div`
14798
14926
  position: relative;
14799
14927
  display: flex;
14800
14928
  flex-direction: column;
14801
14929
  `;
14802
- var Dialog = yt2.dialog(
14930
+ var Dialog = gt2.dialog(
14803
14931
  ({ theme, $isModal, $size, $top }) => {
14804
- return pt2`
14932
+ return ft`
14805
14933
  ${ResetStyle}
14806
14934
  ${$isModal && ContainerStyle}
14807
14935
 
@@ -14843,7 +14971,7 @@ var Dialog = yt2.dialog(
14843
14971
  flex-direction: row;
14844
14972
  max-height: calc(100dvh - 5rem + 3px);
14845
14973
 
14846
- ${$size === "lg" && pt2`
14974
+ ${$size === "lg" && ft`
14847
14975
  height: calc(100% - 5rem + 3px);
14848
14976
  `}
14849
14977
  }
@@ -14980,7 +15108,7 @@ var DialogHeader = ({
14980
15108
  };
14981
15109
 
14982
15110
  // src/components/ui/flex/styles.ts
14983
- var Flex = yt2(Box)`
15111
+ var Flex = gt2(Box)`
14984
15112
  display: flex;
14985
15113
  `;
14986
15114
 
@@ -15014,9 +15142,9 @@ var Icon3 = ({
15014
15142
  };
15015
15143
 
15016
15144
  // src/components/ui/input/styles.ts
15017
- var Input = yt2.input(({ theme, $size = "md", $variant = "filled" }) => {
15145
+ var Input = gt2.input(({ theme, $size = "md", $variant = "filled" }) => {
15018
15146
  const isLightBackground = isLightColor(theme.card.background);
15019
- return pt2`
15147
+ return ft`
15020
15148
  font-family: "Inter", sans-serif;
15021
15149
  font-weight: 500;
15022
15150
  width: 100%;
@@ -15036,14 +15164,14 @@ var Input = yt2.input(({ theme, $size = "md", $variant = "filled" }) => {
15036
15164
  ${() => {
15037
15165
  switch ($size) {
15038
15166
  case "sm": {
15039
- return pt2`
15167
+ return ft`
15040
15168
  font-size: 0.875rem;
15041
15169
  line-height: 1.5rem;
15042
15170
  height: 1.5rem;
15043
15171
  `;
15044
15172
  }
15045
15173
  case "md": {
15046
- return pt2`
15174
+ return ft`
15047
15175
  font-size: 1rem;
15048
15176
  line-height: 3rem;
15049
15177
  height: 3rem;
@@ -15051,7 +15179,7 @@ var Input = yt2.input(({ theme, $size = "md", $variant = "filled" }) => {
15051
15179
  `;
15052
15180
  }
15053
15181
  case "lg": {
15054
- return pt2`
15182
+ return ft`
15055
15183
  font-size: 1.25rem;
15056
15184
  line-height: 4rem;
15057
15185
  height: 4rem;
@@ -15059,7 +15187,7 @@ var Input = yt2.input(({ theme, $size = "md", $variant = "filled" }) => {
15059
15187
  `;
15060
15188
  }
15061
15189
  case "full": {
15062
- return pt2`
15190
+ return ft`
15063
15191
  font-size: 1rem;
15064
15192
  line-height: 1;
15065
15193
  height: 100%;
@@ -15073,7 +15201,7 @@ var Input = yt2.input(({ theme, $size = "md", $variant = "filled" }) => {
15073
15201
  const color = $variant !== "filled" && !isLightBackground ? theme.typography.text.color : "#000000";
15074
15202
  const bgColor = $variant === "filled" ? "#F1F1F1" : "transparent";
15075
15203
  const borderColor = $variant === "text" ? "transparent" : "#CBCBCB";
15076
- return pt2`
15204
+ return ft`
15077
15205
  color: ${color};
15078
15206
  background-color: ${bgColor};
15079
15207
  border-color: ${borderColor};
@@ -15099,8 +15227,8 @@ var Input = yt2.input(({ theme, $size = "md", $variant = "filled" }) => {
15099
15227
  });
15100
15228
 
15101
15229
  // src/components/ui/overlay/styles.ts
15102
- var Overlay = yt2(Flex)(({ theme }) => {
15103
- return pt2`
15230
+ var Overlay = gt2(Flex)(({ theme }) => {
15231
+ return ft`
15104
15232
  position: absolute;
15105
15233
  top: 0;
15106
15234
  right: 0;
@@ -15218,7 +15346,7 @@ var LeadingLineHeightMap = {
15218
15346
  relaxed: 1.625,
15219
15347
  loose: 2
15220
15348
  };
15221
- var Text = yt2.span.withConfig({
15349
+ var Text = gt2.span.withConfig({
15222
15350
  shouldForwardProp: (prop) => prop !== "display"
15223
15351
  }).attrs(({ onClick }) => ({
15224
15352
  ...onClick && { tabIndex: 0 }
@@ -15241,7 +15369,7 @@ var Text = yt2.span.withConfig({
15241
15369
  const fontWeight = $weight || fontStyle.fontWeight;
15242
15370
  const lineHeight = $leading && LeadingLineHeightMap[$leading];
15243
15371
  const color = $color || fontStyle.color;
15244
- return pt2`
15372
+ return ft`
15245
15373
  font-family: ${fontFamily}, sans-serif;
15246
15374
  font-size: ${typeof fontSize === "number" ? `${fontSize / TEXT_BASE_SIZE}rem` : fontSize};
15247
15375
  font-weight: ${fontWeight};
@@ -15249,19 +15377,19 @@ var Text = yt2.span.withConfig({
15249
15377
  color: ${color};
15250
15378
  text-wrap: pretty;
15251
15379
 
15252
- ${lineHeight && pt2`
15380
+ ${lineHeight && ft`
15253
15381
  line-height: ${lineHeight};
15254
15382
  `}
15255
15383
 
15256
- ${$align && pt2`
15384
+ ${$align && ft`
15257
15385
  text-align: ${$align};
15258
15386
  `};
15259
15387
 
15260
- ${$width && pt2`
15388
+ ${$width && ft`
15261
15389
  width: ${$width};
15262
15390
  `};
15263
15391
 
15264
- ${onClick && pt2`
15392
+ ${onClick && ft`
15265
15393
  &:hover {
15266
15394
  cursor: pointer;
15267
15395
  text-decoration: underline;
@@ -15277,7 +15405,7 @@ var Text = yt2.span.withConfig({
15277
15405
  );
15278
15406
 
15279
15407
  // src/components/ui/toggle/styles.ts
15280
- var Toggle = yt2.input.attrs({ type: "checkbox" })`
15408
+ var Toggle = gt2.input.attrs({ type: "checkbox" })`
15281
15409
  appearance: none;
15282
15410
  font: inherit;
15283
15411
  font-size: inherit;
@@ -15398,7 +15526,7 @@ var origin = (position2) => {
15398
15526
  return o2;
15399
15527
  };
15400
15528
  var grow = (translate) => {
15401
- return Ot`
15529
+ return Et`
15402
15530
  0% {
15403
15531
  opacity: 0;
15404
15532
  transform: translate(${translate.x}%, ${translate.y}%) scale(0);
@@ -15410,13 +15538,13 @@ var grow = (translate) => {
15410
15538
  }
15411
15539
  `;
15412
15540
  };
15413
- var Content = yt2.div.withConfig({
15541
+ var Content = gt2.div.withConfig({
15414
15542
  shouldForwardProp: (prop) => !["x", "y", "position", "zIndex"].includes(prop)
15415
15543
  })(({ x: x3, y: y2, position: position2, theme }) => {
15416
15544
  const translate = coords(position2);
15417
15545
  const arrowTranslate = arrowCoords(position2);
15418
15546
  const transformOrigin = origin(position2);
15419
- return pt2`
15547
+ return ft`
15420
15548
  position: absolute;
15421
15549
  top: calc(
15422
15550
  ${y2}px - ${position2 === "top" ? 0.5 : position2 === "bottom" ? -0.5 : 0}rem
@@ -15456,16 +15584,16 @@ var Content = yt2.div.withConfig({
15456
15584
  &::after {
15457
15585
  position: absolute;
15458
15586
  z-index: 0;
15459
- ${position2 === "top" ? pt2`
15587
+ ${position2 === "top" ? ft`
15460
15588
  top: 100%;
15461
15589
  left: 50%;
15462
- ` : position2 === "right" ? pt2`
15590
+ ` : position2 === "right" ? ft`
15463
15591
  top: 50%;
15464
15592
  right: 100%;
15465
- ` : position2 === "bottom" ? pt2`
15593
+ ` : position2 === "bottom" ? ft`
15466
15594
  bottom: 100%;
15467
15595
  left: 50%;
15468
- ` : pt2`
15596
+ ` : ft`
15469
15597
  top: 50%;
15470
15598
  left: 100%;
15471
15599
  `};
@@ -15548,15 +15676,15 @@ var Tooltip = ({
15548
15676
  };
15549
15677
 
15550
15678
  // src/components/layout/card/styles.ts
15551
- var Element = yt2(Box)``;
15552
- var FussyChild = yt2(Element)``;
15553
- var Notice = yt2(Box)``;
15679
+ var Element = gt2(Box)``;
15680
+ var FussyChild = gt2(Element)``;
15681
+ var Notice = gt2(Box)``;
15554
15682
  var cardBoxShadow = "0px 1px 20px 0px #1018280F, 0px 1px 3px 0px #1018281A";
15555
- var StyledCard = yt2.div(({ theme }) => {
15683
+ var StyledCard = gt2.div(({ theme }) => {
15556
15684
  const { l: l3 } = hexToHSL(theme.card.background);
15557
15685
  const borderColor = l3 > 50 ? "hsla(0, 0%, 0%, 0.1)" : "hsla(0, 0%, 100%, 0.2)";
15558
15686
  const borderRadius = `${theme.card.borderRadius / TEXT_BASE_SIZE}rem`;
15559
- return pt2`
15687
+ return ft`
15560
15688
  position: relative;
15561
15689
 
15562
15690
  ${theme.sectionLayout === "merged" ? `&:not(:has(${FussyChild}))` : `${Element}:not(:is(${FussyChild}))`} {
@@ -15571,9 +15699,9 @@ var StyledCard = yt2.div(({ theme }) => {
15571
15699
  ${theme.card.padding / TEXT_BASE_SIZE}rem;
15572
15700
 
15573
15701
  &:not(:last-child) {
15574
- ${theme.sectionLayout === "merged" ? pt2`
15702
+ ${theme.sectionLayout === "merged" ? ft`
15575
15703
  border-bottom: 1px solid ${borderColor};
15576
- ` : pt2`
15704
+ ` : ft`
15577
15705
  margin-bottom: 1rem;
15578
15706
  `}
15579
15707
  }
@@ -15619,7 +15747,7 @@ Card.displayName = "Card";
15619
15747
  import { Children as Children2, forwardRef as forwardRef5 } from "react";
15620
15748
 
15621
15749
  // src/components/layout/column/styles.ts
15622
- var StyledColumn = yt2.div`
15750
+ var StyledColumn = gt2.div`
15623
15751
  height: min-content;
15624
15752
  `;
15625
15753
 
@@ -15636,7 +15764,7 @@ Column.displayName = "Column";
15636
15764
  import { forwardRef as forwardRef6 } from "react";
15637
15765
 
15638
15766
  // src/components/layout/root/styles.ts
15639
- var ResetStyle = pt2`
15767
+ var ResetStyle = ft`
15640
15768
  box-sizing: border-box;
15641
15769
  font-size: 1rem;
15642
15770
  line-height: 1.375;
@@ -15661,11 +15789,11 @@ var ResetStyle = pt2`
15661
15789
  vertical-align: top;
15662
15790
  }
15663
15791
  `;
15664
- var ContainerStyle = pt2`
15792
+ var ContainerStyle = ft`
15665
15793
  container-type: inline-size;
15666
15794
  interpolate-size: allow-keywords;
15667
15795
  `;
15668
- var Container = yt2.div`
15796
+ var Container = gt2.div`
15669
15797
  ${ResetStyle}
15670
15798
  ${ContainerStyle}
15671
15799
  `;
@@ -16139,7 +16267,7 @@ var Plan = ({
16139
16267
  $gap: "1rem",
16140
16268
  $flexGrow: 1,
16141
16269
  children: plans.map((plan, planIndex) => {
16142
- const planPeriod = showPeriodToggle ? period : plan.yearlyPrice && !plan.monthlyPrice ? BillingProductPriceInterval.Year : BillingProductPriceInterval.Month;
16270
+ const planPeriod = showPeriodToggle ? period : plan.monthlyPrice ? BillingProductPriceInterval.Month : plan.quarterlyPrice ? "quarter" : plan.yearlyPrice ? BillingProductPriceInterval.Year : BillingProductPriceInterval.Month;
16143
16271
  const { price: planPrice, currency: planCurrency } = getPlanPrice(
16144
16272
  plan,
16145
16273
  planPeriod,
@@ -16198,6 +16326,9 @@ var Plan = ({
16198
16326
  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, {
16199
16327
  currency: planCurrency,
16200
16328
  testSignificantDigits: false
16329
+ }) : showAsMonthlyPrices && planPeriod === "quarter" ? formatCurrency((planPrice ?? 0) / 3, {
16330
+ currency: planCurrency,
16331
+ testSignificantDigits: false
16201
16332
  }) : formatCurrency(planPrice ?? 0, planCurrency)
16202
16333
  }
16203
16334
  ),
@@ -16208,7 +16339,7 @@ var Plan = ({
16208
16339
  $size: 16 / 30 * settings.theme.typography.heading2.fontSize,
16209
16340
  children: [
16210
16341
  "/",
16211
- showAsMonthlyPrices && planPeriod === BillingProductPriceInterval.Year ? t3("month, billed yearly") : t3(planPeriod)
16342
+ showAsMonthlyPrices && planPeriod === BillingProductPriceInterval.Year ? t3("month, billed yearly") : showAsMonthlyPrices && planPeriod === "quarter" ? t3("month, billed quarterly") : t3(planPeriod)
16212
16343
  ]
16213
16344
  }
16214
16345
  )
@@ -16744,7 +16875,7 @@ var AddOns = ({
16744
16875
  const { t: t3 } = useTranslation();
16745
16876
  const { settings } = useEmbed();
16746
16877
  const isLightBackground = useIsLightBackground();
16747
- const periodKey = period === "year" ? "yearlyPrice" : "monthlyPrice";
16878
+ const periodKey = period === "year" ? "yearlyPrice" : period === "quarter" ? "quarterlyPrice" : "monthlyPrice";
16748
16879
  const cardPadding = settings.theme.card.padding / TEXT_BASE_SIZE;
16749
16880
  return /* @__PURE__ */ jsx20(
16750
16881
  Box,
@@ -17224,9 +17355,9 @@ var Navigation = ({
17224
17355
  import { jsx as jsx24, jsxs as jsxs16 } from "react/jsx-runtime";
17225
17356
  var createActiveUsageBasedEntitlementsReducer = (entitlements, period) => (acc, entitlement) => {
17226
17357
  const hasCurrencyPrice = entitlement.currencyPrices?.some(
17227
- (cp) => period === "month" && cp.monthlyPrice || period === "year" && cp.yearlyPrice
17358
+ (cp) => period === "month" && cp.monthlyPrice || period === "quarter" && cp.quarterlyPrice || period === "year" && cp.yearlyPrice
17228
17359
  );
17229
- if (entitlement.priceBehavior && (period === "month" && entitlement.meteredMonthlyPrice || period === "year" && entitlement.meteredYearlyPrice || hasCurrencyPrice)) {
17360
+ if (entitlement.priceBehavior && (period === "month" && entitlement.meteredMonthlyPrice || period === "quarter" && entitlement.meteredQuarterlyPrice || period === "year" && entitlement.meteredYearlyPrice || hasCurrencyPrice)) {
17230
17361
  const featureUsage = entitlements.find(
17231
17362
  (usage2) => usage2.feature?.id === entitlement.feature?.id
17232
17363
  );
@@ -17286,15 +17417,16 @@ var CheckoutDialog = ({ top }) => {
17286
17417
  [data?.featureUsage?.features]
17287
17418
  );
17288
17419
  const getValidatedPeriod = () => {
17289
- const requestedPeriod = checkoutState?.period || data?.company?.plan?.planPeriod || "month";
17420
+ const requestedPeriod = checkoutState?.period || getSubscriptionPeriod(data?.company?.billingSubscription) || data?.company?.plan?.planPeriod || "month";
17290
17421
  if (checkoutState?.planId) {
17291
17422
  const requestedPlan = data?.activePlans?.find(
17292
17423
  (plan) => plan.id === checkoutState.planId
17293
17424
  );
17294
17425
  if (requestedPlan) {
17295
- const planSupportsRequestedPeriod = requestedPeriod === "month" && requestedPlan.monthlyPrice || requestedPeriod === "year" && requestedPlan.yearlyPrice;
17426
+ const planSupportsRequestedPeriod = requestedPeriod === "month" && requestedPlan.monthlyPrice || requestedPeriod === "quarter" && requestedPlan.quarterlyPrice || requestedPeriod === "year" && requestedPlan.yearlyPrice;
17296
17427
  if (!planSupportsRequestedPeriod) {
17297
17428
  if (requestedPlan.yearlyPrice) return "year";
17429
+ if (requestedPlan.quarterlyPrice) return "quarter";
17298
17430
  if (requestedPlan.monthlyPrice) return "month";
17299
17431
  }
17300
17432
  }
@@ -17426,6 +17558,48 @@ var CheckoutDialog = ({ top }) => {
17426
17558
  count: 0
17427
17559
  }));
17428
17560
  });
17561
+ const selectedPlanPriceId = useMemo12(() => {
17562
+ if (!selectedPlan) {
17563
+ return void 0;
17564
+ }
17565
+ const currencyPrice = getPlanPrice(
17566
+ selectedPlan,
17567
+ planPeriod,
17568
+ { useSelectedPeriod: true },
17569
+ hasCurrency ? effectiveCurrency : void 0
17570
+ );
17571
+ return currencyPrice?.id ?? (planPeriod === "year" ? selectedPlan.yearlyPrice?.id : planPeriod === "quarter" ? selectedPlan.quarterlyPrice?.id : selectedPlan.monthlyPrice?.id);
17572
+ }, [selectedPlan, planPeriod, hasCurrency, effectiveCurrency]);
17573
+ const [hasInitialPaymentMethod] = useState8(
17574
+ () => !!(data?.subscription?.paymentMethod?.externalId || data?.company?.defaultPaymentMethod?.externalId)
17575
+ );
17576
+ const isCreditOnlyPurchase = useMemo12(() => {
17577
+ if (data?.company?.billingSubscription) {
17578
+ return false;
17579
+ }
17580
+ if (selectedPlanPriceId) {
17581
+ return false;
17582
+ }
17583
+ if (!creditBundles.some((bundle) => bundle.count > 0)) {
17584
+ return false;
17585
+ }
17586
+ const hasPaidAddOn = addOns.some(
17587
+ (addOn) => addOn.isSelected && !!getAddOnPrice(
17588
+ addOn,
17589
+ planPeriod,
17590
+ hasCurrency ? effectiveCurrency : void 0
17591
+ )?.id
17592
+ );
17593
+ return !hasPaidAddOn;
17594
+ }, [
17595
+ data?.company?.billingSubscription,
17596
+ selectedPlanPriceId,
17597
+ creditBundles,
17598
+ addOns,
17599
+ planPeriod,
17600
+ hasCurrency,
17601
+ effectiveCurrency
17602
+ ]);
17429
17603
  const [usageBasedEntitlements, setUsageBasedEntitlements] = useState8(
17430
17604
  () => (selectedPlan?.entitlements || []).reduce(
17431
17605
  createActiveUsageBasedEntitlementsReducer(featureUsage, planPeriod),
@@ -17551,7 +17725,7 @@ var CheckoutDialog = ({ top }) => {
17551
17725
  description: t3("Optionally add credit bundles to your subscription")
17552
17726
  });
17553
17727
  }
17554
- if (isPaymentMethodRequired) {
17728
+ if (isPaymentMethodRequired && !(isCreditOnlyPurchase && hasInitialPaymentMethod)) {
17555
17729
  stages.push({
17556
17730
  id: "checkout",
17557
17731
  name: t3("Checkout"),
@@ -17569,7 +17743,9 @@ var CheckoutDialog = ({ top }) => {
17569
17743
  isSelectedPlanTrialable,
17570
17744
  shouldTrial,
17571
17745
  creditBundles,
17572
- isPaymentMethodRequired
17746
+ isPaymentMethodRequired,
17747
+ isCreditOnlyPurchase,
17748
+ hasInitialPaymentMethod
17573
17749
  ]);
17574
17750
  const [isBypassLoading, setIsBypassLoading] = useState8(
17575
17751
  () => checkoutState?.bypassPlanSelection || checkoutState?.bypassAddOnSelection || checkoutState?.bypassCreditsSelection
@@ -17611,10 +17787,15 @@ var CheckoutDialog = ({ top }) => {
17611
17787
  { useSelectedPeriod: true },
17612
17788
  resolvedCurrency
17613
17789
  ) : void 0;
17614
- const planPriceId = currencyPrice?.id ?? (period === "year" ? plan?.yearlyPrice?.id : plan?.monthlyPrice?.id);
17790
+ const planPriceId = currencyPrice?.id ?? (period === "year" ? plan?.yearlyPrice?.id : period === "quarter" ? plan?.quarterlyPrice?.id : plan?.monthlyPrice?.id);
17615
17791
  const code = typeof updates.promoCode !== "undefined" ? updates.promoCode : promoCode;
17616
17792
  const skipTrial = !(updates.shouldTrial ?? shouldTrial);
17617
- if (!plan || !planPriceId) {
17793
+ const isCreditOnly = !data?.company?.billingSubscription && !planPriceId && (updates.creditBundles || creditBundles).some(
17794
+ (bundle) => bundle.count > 0
17795
+ ) && !(updates.addOns || addOns).some(
17796
+ (addOn) => addOn.isSelected && !!getAddOnPrice(addOn, period, resolvedCurrency)?.id
17797
+ );
17798
+ if ((!plan || !planPriceId) && !isCreditOnly) {
17618
17799
  setSelectedPlanId(null);
17619
17800
  return;
17620
17801
  }
@@ -17627,7 +17808,7 @@ var CheckoutDialog = ({ top }) => {
17627
17808
  const resolvedAddOns = updates.addOns || addOns;
17628
17809
  const resolvedCreditBundles = updates.creditBundles || creditBundles;
17629
17810
  const resolvedPlanCreditGrants = mergeCompanyGrants(
17630
- plan.includedCreditGrants,
17811
+ plan?.includedCreditGrants,
17631
17812
  data?.company?.plan?.includedCreditGrants
17632
17813
  );
17633
17814
  const autoTopupRequestBody = buildAutoTopupRequestBody({
@@ -17655,14 +17836,11 @@ var CheckoutDialog = ({ top }) => {
17655
17836
  );
17656
17837
  try {
17657
17838
  const response = await previewCheckout({
17658
- newPlanId: plan.id,
17659
- newPriceId: planPriceId,
17660
- addOnIds: addOnRequestBody,
17661
- autoTopupOverrides: autoTopupRequestBody,
17662
- payInAdvance: [
17663
- ...planPayInAdvanceRequestBody,
17664
- ...addOnPayInAdvanceRequestBody
17665
- ],
17839
+ newPlanId: isCreditOnly ? "" : plan?.id ?? "",
17840
+ newPriceId: isCreditOnly ? "" : planPriceId ?? "",
17841
+ addOnIds: isCreditOnly ? [] : addOnRequestBody,
17842
+ autoTopupOverrides: isCreditOnly ? [] : autoTopupRequestBody,
17843
+ payInAdvance: isCreditOnly ? [] : [...planPayInAdvanceRequestBody, ...addOnPayInAdvanceRequestBody],
17666
17844
  creditBundles: creditBundlesRequestBody,
17667
17845
  skipTrial,
17668
17846
  ...code && { promoCode: code }
@@ -17719,6 +17897,7 @@ var CheckoutDialog = ({ top }) => {
17719
17897
  [
17720
17898
  t3,
17721
17899
  data?.company?.plan?.includedCreditGrants,
17900
+ data?.company?.billingSubscription,
17722
17901
  previewCheckout,
17723
17902
  planPeriod,
17724
17903
  selectedPlan,
@@ -17737,7 +17916,7 @@ var CheckoutDialog = ({ top }) => {
17737
17916
  const selectPlan = useCallback7(
17738
17917
  (updates) => {
17739
17918
  const plan = updates.plan;
17740
- const period = showPeriodToggle ? updates.period || planPeriod : plan.yearlyPrice && !plan.monthlyPrice ? BillingProductPriceInterval.Year : BillingProductPriceInterval.Month;
17919
+ const period = showPeriodToggle ? updates.period || planPeriod : plan.monthlyPrice ? BillingProductPriceInterval.Month : plan.quarterlyPrice ? "quarter" : plan.yearlyPrice ? BillingProductPriceInterval.Year : BillingProductPriceInterval.Month;
17741
17920
  const updatedUsageBasedEntitlements = plan.entitlements.reduce(
17742
17921
  createActiveUsageBasedEntitlementsReducer(featureUsage, period),
17743
17922
  []
@@ -17795,12 +17974,60 @@ var CheckoutDialog = ({ top }) => {
17795
17974
  );
17796
17975
  const changePlanPeriod = useCallback7(
17797
17976
  (period) => {
17798
- if (period !== planPeriod) {
17799
- setPlanPeriod(period);
17800
- handlePreviewCheckout({ period });
17977
+ if (period === planPeriod) {
17978
+ return;
17801
17979
  }
17980
+ setPlanPeriod(period);
17981
+ const updatedUsageBasedEntitlements = (selectedPlan?.entitlements || []).reduce(
17982
+ createActiveUsageBasedEntitlementsReducer(featureUsage, period),
17983
+ [...[]]
17984
+ );
17985
+ setUsageBasedEntitlements(
17986
+ (prev2) => updatedUsageBasedEntitlements.map((updated) => {
17987
+ const current = prev2.find(
17988
+ ({ featureId }) => featureId === updated.featureId
17989
+ );
17990
+ if (typeof current?.quantity === "number") {
17991
+ return { ...updated, quantity: current.quantity };
17992
+ }
17993
+ return updated;
17994
+ })
17995
+ );
17996
+ const updatedAddOnUsageBasedEntitlements = addOns.filter((addOn) => addOn.isSelected).flatMap(
17997
+ (addOn) => addOn.entitlements.reduce(
17998
+ createActiveUsageBasedEntitlementsReducer(featureUsage, period),
17999
+ []
18000
+ )
18001
+ );
18002
+ setAddOnUsageBasedEntitlements(
18003
+ (prev2) => updatedAddOnUsageBasedEntitlements.map((updated) => {
18004
+ const current = prev2.find(
18005
+ ({ featureId }) => featureId === updated.featureId
18006
+ );
18007
+ if (typeof current?.quantity === "number") {
18008
+ return { ...updated, quantity: current.quantity };
18009
+ }
18010
+ return updated;
18011
+ })
18012
+ );
18013
+ handlePreviewCheckout({
18014
+ period,
18015
+ payInAdvanceEntitlements: updatedUsageBasedEntitlements.filter(
18016
+ ({ priceBehavior }) => priceBehavior === EntitlementPriceBehavior.PayInAdvance
18017
+ ),
18018
+ addOnPayInAdvanceEntitlements: updatedAddOnUsageBasedEntitlements.filter(
18019
+ ({ priceBehavior }) => priceBehavior === EntitlementPriceBehavior.PayInAdvance
18020
+ )
18021
+ });
17802
18022
  },
17803
- [planPeriod, setPlanPeriod, handlePreviewCheckout]
18023
+ [
18024
+ planPeriod,
18025
+ selectedPlan?.entitlements,
18026
+ featureUsage,
18027
+ addOns,
18028
+ setPlanPeriod,
18029
+ handlePreviewCheckout
18030
+ ]
17804
18031
  );
17805
18032
  const toggleAddOn = useCallback7(
17806
18033
  (id) => {
@@ -17923,7 +18150,8 @@ var CheckoutDialog = ({ top }) => {
17923
18150
  useEffect4(() => {
17924
18151
  if (!hasInitializedPlan.current && selectedPlan) {
17925
18152
  hasInitializedPlan.current = true;
17926
- selectPlan({ plan: selectedPlan, period: planPeriod });
18153
+ const shouldTrial2 = checkoutState?.startTrialIfAvailable && selectedPlan.isTrialable && selectedPlan.companyCanTrial;
18154
+ selectPlan({ plan: selectedPlan, period: planPeriod, shouldTrial: shouldTrial2 });
17927
18155
  }
17928
18156
  }, [selectedPlan, planPeriod, selectPlan]);
17929
18157
  useLayoutEffect4(() => {
@@ -18234,6 +18462,7 @@ var CheckoutDialog = ({ top }) => {
18234
18462
  addOnUsageBasedEntitlements,
18235
18463
  addOnPayInAdvanceEntitlements,
18236
18464
  creditBundles,
18465
+ isCreditOnlyPurchase,
18237
18466
  charges,
18238
18467
  checkoutStage: effectiveCheckoutStage,
18239
18468
  checkoutStages: navigableStages,
@@ -18487,7 +18716,7 @@ import {
18487
18716
  import { useEffect as useEffect5, useRef as useRef8, useState as useState10 } from "react";
18488
18717
 
18489
18718
  // src/components/shared/payment-form/styles.ts
18490
- var Label = yt2.label`
18719
+ var Label = gt2.label`
18491
18720
  display: flex;
18492
18721
  margin-bottom: 0.75rem;
18493
18722
  font-family: "Public Sans", system-ui, sans-serif;
@@ -18499,7 +18728,7 @@ var Label = yt2.label`
18499
18728
  color: ${({ theme }) => isLightColor(theme.card.background) ? "#000000" : "#cdd6f4"};
18500
18729
  touch-action: manipulation;
18501
18730
  `;
18502
- var Input2 = yt2.input`
18731
+ var Input2 = gt2.input`
18503
18732
  padding: 0.75rem;
18504
18733
  background-color: white;
18505
18734
  border-radius: 0.5rem;
@@ -18705,6 +18934,10 @@ var PaymentForm = ({ onConfirm, financeData }) => {
18705
18934
  // src/components/shared/period-toggle/PeriodToggle.tsx
18706
18935
  import { useMemo as useMemo13 } from "react";
18707
18936
  import { jsx as jsx30 } from "react/jsx-runtime";
18937
+ var PERIOD_MONTH_COUNT = {
18938
+ year: 12,
18939
+ quarter: 3
18940
+ };
18708
18941
  var PeriodToggle = ({
18709
18942
  portal,
18710
18943
  options,
@@ -18715,14 +18948,23 @@ var PeriodToggle = ({
18715
18948
  const { t: t3 } = useTranslation();
18716
18949
  const { settings } = useEmbed();
18717
18950
  const isLightBackground = useIsLightBackground();
18718
- const savingsPercentage = useMemo13(() => {
18719
- if (selectedPlan) {
18720
- const monthlyBillingPrice = getPlanPrice(selectedPlan, "month");
18721
- const yearlyBillingPrice = getPlanPrice(selectedPlan, "year");
18722
- const monthly = (monthlyBillingPrice?.price ?? 0) * 12;
18723
- const yearly = yearlyBillingPrice?.price ?? 0;
18724
- return Math.round((monthly - yearly) / monthly * 1e4) / 100;
18951
+ const savingsByPeriod = useMemo13(() => {
18952
+ const result = {};
18953
+ if (!selectedPlan) {
18954
+ return result;
18955
+ }
18956
+ const monthlyPrice = getPlanPrice(selectedPlan, "month")?.price ?? 0;
18957
+ if (monthlyPrice <= 0) {
18958
+ return result;
18959
+ }
18960
+ for (const [period, months] of Object.entries(PERIOD_MONTH_COUNT)) {
18961
+ const periodPrice = getPlanPrice(selectedPlan, period)?.price ?? 0;
18962
+ if (periodPrice > 0) {
18963
+ const baseline = monthlyPrice * months;
18964
+ result[period] = Math.round((baseline - periodPrice) / baseline * 1e4) / 100;
18965
+ }
18725
18966
  }
18967
+ return result;
18726
18968
  }, [selectedPlan]);
18727
18969
  return /* @__PURE__ */ jsx30(
18728
18970
  Flex,
@@ -18776,17 +19018,21 @@ var PeriodToggle = ({
18776
19018
  },
18777
19019
  option
18778
19020
  );
18779
- if (option === "year" && typeof savingsPercentage === "number") {
19021
+ const savingsPercentage = savingsByPeriod[option];
19022
+ if (typeof savingsPercentage === "number") {
19023
+ const isOptionYear = option === "year";
18780
19024
  return /* @__PURE__ */ jsx30(
18781
19025
  Tooltip,
18782
19026
  {
18783
19027
  portal,
18784
19028
  trigger: element,
18785
- content: /* @__PURE__ */ jsx30(Text, { $size: 11, $leading: "none", children: selectedOption === "month" ? t3("Save with yearly billing", {
18786
- percent: savingsPercentage
18787
- }) : t3("Saving with yearly billing", {
18788
- percent: savingsPercentage
18789
- }) }),
19029
+ content: /* @__PURE__ */ jsx30(Text, { $size: 11, $leading: "none", children: selectedOption === option ? t3(
19030
+ isOptionYear ? "Saving with yearly billing" : "Saving with quarterly billing",
19031
+ { percent: savingsPercentage }
19032
+ ) : t3(
19033
+ isOptionYear ? "Save with yearly billing" : "Save with quarterly billing",
19034
+ { percent: savingsPercentage }
19035
+ ) }),
18790
19036
  $flexGrow: 1,
18791
19037
  $flexBasis: "50%"
18792
19038
  },
@@ -18981,6 +19227,7 @@ var NoPaymentRequired = ({
18981
19227
  isLoading,
18982
19228
  isSticky = false,
18983
19229
  willScheduleDowngrade = false,
19230
+ isCreditOnlyPurchase = false,
18984
19231
  onClick
18985
19232
  }) => {
18986
19233
  const { t: t3 } = useTranslation();
@@ -18993,7 +19240,7 @@ var NoPaymentRequired = ({
18993
19240
  $size: isSticky ? "sm" : "md",
18994
19241
  $fullWidth: true,
18995
19242
  $isLoading: isLoading,
18996
- children: willScheduleDowngrade ? t3("Schedule downgrade") : t3("Subscribe and close")
19243
+ children: isCreditOnlyPurchase ? t3("Buy credits") : willScheduleDowngrade ? t3("Schedule downgrade") : t3("Subscribe and close")
18997
19244
  }
18998
19245
  );
18999
19246
  };
@@ -19013,10 +19260,11 @@ var CheckoutStageButton = ({
19013
19260
  trialPaymentMethodRequired,
19014
19261
  shouldTrial,
19015
19262
  willTrialWithoutPaymentMethod,
19016
- willScheduleDowngrade
19263
+ willScheduleDowngrade,
19264
+ isCreditOnlyPurchase = false
19017
19265
  }) => {
19018
19266
  const { t: t3 } = useTranslation();
19019
- const isDisabled = isLoading || !hasPlan || inEditMode || !canCheckout;
19267
+ const isDisabled = isLoading || !hasPlan && !isCreditOnlyPurchase || inEditMode || !canCheckout;
19020
19268
  const getNextStageId = (currentStageId) => {
19021
19269
  if (!checkoutStages) return void 0;
19022
19270
  const currentIndex = checkoutStages.findIndex(
@@ -19080,7 +19328,8 @@ var CheckoutStageButton = ({
19080
19328
  isDisabled,
19081
19329
  isLoading,
19082
19330
  onClick: checkout,
19083
- isSticky
19331
+ isSticky,
19332
+ isCreditOnlyPurchase
19084
19333
  }
19085
19334
  );
19086
19335
  }
@@ -19113,7 +19362,8 @@ var CheckoutStageButton = ({
19113
19362
  isDisabled,
19114
19363
  isLoading,
19115
19364
  onClick: checkout,
19116
- isSticky
19365
+ isSticky,
19366
+ isCreditOnlyPurchase
19117
19367
  }
19118
19368
  );
19119
19369
  }
@@ -19155,7 +19405,8 @@ var CheckoutStageButton = ({
19155
19405
  isDisabled,
19156
19406
  isLoading,
19157
19407
  onClick: checkout,
19158
- isSticky
19408
+ isSticky,
19409
+ isCreditOnlyPurchase
19159
19410
  }
19160
19411
  );
19161
19412
  }
@@ -19197,7 +19448,8 @@ var CheckoutStageButton = ({
19197
19448
  isDisabled,
19198
19449
  isLoading,
19199
19450
  onClick: checkout,
19200
- isSticky
19451
+ isSticky,
19452
+ isCreditOnlyPurchase
19201
19453
  }
19202
19454
  );
19203
19455
  }
@@ -19238,7 +19490,8 @@ var CheckoutStageButton = ({
19238
19490
  isDisabled,
19239
19491
  isLoading,
19240
19492
  onClick: checkout,
19241
- isSticky
19493
+ isSticky,
19494
+ isCreditOnlyPurchase
19242
19495
  }
19243
19496
  );
19244
19497
  }
@@ -19272,14 +19525,16 @@ var CheckoutStageButton = ({
19272
19525
  );
19273
19526
  }
19274
19527
  if (checkoutStage === "credits") {
19275
- if (!isPaymentMethodRequired) {
19528
+ const nextStage = getNextStageId("credits");
19529
+ if (!nextStage) {
19276
19530
  return /* @__PURE__ */ jsx33(
19277
19531
  NoPaymentRequired,
19278
19532
  {
19279
19533
  isDisabled,
19280
19534
  isLoading,
19281
19535
  onClick: checkout,
19282
- isSticky
19536
+ isSticky,
19537
+ isCreditOnlyPurchase
19283
19538
  }
19284
19539
  );
19285
19540
  }
@@ -19289,7 +19544,7 @@ var CheckoutStageButton = ({
19289
19544
  type: "button",
19290
19545
  disabled: isDisabled,
19291
19546
  onClick: async () => {
19292
- setCheckoutStage?.("checkout");
19547
+ setCheckoutStage?.(nextStage);
19293
19548
  },
19294
19549
  $fullWidth: true,
19295
19550
  $isLoading: isLoading,
@@ -19303,7 +19558,7 @@ var CheckoutStageButton = ({
19303
19558
  children: [
19304
19559
  t3("Next"),
19305
19560
  ": ",
19306
- t3("Checkout"),
19561
+ getStageDisplayName(nextStage),
19307
19562
  /* @__PURE__ */ jsx33(Icon3, { name: "arrow-right" })
19308
19563
  ]
19309
19564
  }
@@ -19319,7 +19574,8 @@ var CheckoutStageButton = ({
19319
19574
  isDisabled,
19320
19575
  isLoading,
19321
19576
  onClick: checkout,
19322
- isSticky
19577
+ isSticky,
19578
+ isCreditOnlyPurchase
19323
19579
  }
19324
19580
  );
19325
19581
  }
@@ -19331,7 +19587,7 @@ var CheckoutStageButton = ({
19331
19587
  onClick: checkout,
19332
19588
  $fullWidth: true,
19333
19589
  $isLoading: isLoading,
19334
- children: willScheduleDowngrade ? t3("Schedule downgrade") : willTrialWithoutPaymentMethod ? t3("Start trial") : t3("Pay now")
19590
+ children: willScheduleDowngrade ? t3("Schedule downgrade") : willTrialWithoutPaymentMethod ? t3("Start trial") : isCreditOnlyPurchase ? t3("Buy credits") : t3("Pay now")
19335
19591
  }
19336
19592
  );
19337
19593
  }
@@ -19481,6 +19737,7 @@ var SubscriptionSidebar = forwardRef7(
19481
19737
  autoTopupConfigs,
19482
19738
  addOns,
19483
19739
  creditBundles = [],
19740
+ isCreditOnlyPurchase = false,
19484
19741
  usageBasedEntitlements,
19485
19742
  addOnUsageBasedEntitlements = [],
19486
19743
  addOnPayInAdvanceEntitlements = [],
@@ -19739,9 +19996,9 @@ var SubscriptionSidebar = forwardRef7(
19739
19996
  { useSelectedPeriod: true },
19740
19997
  currency
19741
19998
  ) : void 0;
19742
- const planPriceId = currencyPrice?.id ?? (planPeriod === "year" ? selectedPlan?.yearlyPrice : selectedPlan?.monthlyPrice)?.id;
19999
+ const planPriceId = currencyPrice?.id ?? (planPeriod === "year" ? selectedPlan?.yearlyPrice : planPeriod === "quarter" ? selectedPlan?.quarterlyPrice : selectedPlan?.monthlyPrice)?.id;
19743
20000
  try {
19744
- if (!planId || !planPriceId) {
20001
+ if ((!planId || !planPriceId) && !isCreditOnlyPurchase) {
19745
20002
  throw new Error(t3("Selected plan or associated price is missing."));
19746
20003
  }
19747
20004
  setError(void 0);
@@ -19768,14 +20025,11 @@ var SubscriptionSidebar = forwardRef7(
19768
20025
  });
19769
20026
  const creditBundlesRequestBody = buildCreditBundlesRequestBody(creditBundles);
19770
20027
  const checkoutResponseFromBackend = await checkout({
19771
- newPlanId: planId,
19772
- newPriceId: planPriceId,
19773
- addOnIds: addOnRequestBody,
19774
- autoTopupOverrides: autoTopupRequestBody,
19775
- payInAdvance: [
19776
- ...planPayInAdvanceRequestBody,
19777
- ...addOnPayInAdvanceRequestBody
19778
- ],
20028
+ newPlanId: isCreditOnlyPurchase ? "" : planId ?? "",
20029
+ newPriceId: isCreditOnlyPurchase ? "" : planPriceId ?? "",
20030
+ addOnIds: isCreditOnlyPurchase ? [] : addOnRequestBody,
20031
+ autoTopupOverrides: isCreditOnlyPurchase ? [] : autoTopupRequestBody,
20032
+ payInAdvance: isCreditOnlyPurchase ? [] : [...planPayInAdvanceRequestBody, ...addOnPayInAdvanceRequestBody],
19779
20033
  creditBundles: creditBundlesRequestBody,
19780
20034
  skipTrial: !shouldTrial,
19781
20035
  ...paymentMethodId && { paymentMethodId },
@@ -19848,6 +20102,7 @@ var SubscriptionSidebar = forwardRef7(
19848
20102
  autoTopupConfigs,
19849
20103
  addOns,
19850
20104
  creditBundles,
20105
+ isCreditOnlyPurchase,
19851
20106
  setError,
19852
20107
  setIsLoading,
19853
20108
  setLayout,
@@ -19896,6 +20151,7 @@ var SubscriptionSidebar = forwardRef7(
19896
20151
  willTrialWithoutPaymentMethod,
19897
20152
  willScheduleDowngrade,
19898
20153
  shouldTrial,
20154
+ isCreditOnlyPurchase,
19899
20155
  checkout: handleCheckout
19900
20156
  }
19901
20157
  );
@@ -19936,7 +20192,8 @@ var SubscriptionSidebar = forwardRef7(
19936
20192
  handleCheckout,
19937
20193
  handleUnsubscribe,
19938
20194
  payInAdvanceEntitlements,
19939
- addOnPayInAdvanceEntitlements
20195
+ addOnPayInAdvanceEntitlements,
20196
+ isCreditOnlyPurchase
19940
20197
  ]);
19941
20198
  useLayoutEffect6(() => {
19942
20199
  const element = buttonRef.current;
@@ -20033,7 +20290,9 @@ var SubscriptionSidebar = forwardRef7(
20033
20290
  ),
20034
20291
  /* @__PURE__ */ jsxs26("sub", { children: [
20035
20292
  "/",
20036
- shortenPeriod(currentPlan.planPeriod || planPeriod)
20293
+ shortenPeriod(
20294
+ getSubscriptionPeriod(billingSubscription) || currentPlan.planPeriod || planPeriod
20295
+ )
20037
20296
  ] })
20038
20297
  ] }) })
20039
20298
  ]
@@ -20408,7 +20667,7 @@ var SubscriptionSidebar = forwardRef7(
20408
20667
  ]
20409
20668
  }
20410
20669
  ),
20411
- subscriptionPrice && /* @__PURE__ */ jsxs26(
20670
+ !isCreditOnlyPurchase && subscriptionPrice && /* @__PURE__ */ jsxs26(
20412
20671
  Flex,
20413
20672
  {
20414
20673
  $justifyContent: "space-between",
@@ -20416,7 +20675,7 @@ var SubscriptionSidebar = forwardRef7(
20416
20675
  $gap: "1rem",
20417
20676
  children: [
20418
20677
  /* @__PURE__ */ jsx36(Box, { $opacity: "0.625", children: /* @__PURE__ */ jsxs26(Text, { children: [
20419
- planPeriod === "year" ? t3("Yearly total") : t3("Monthly total"),
20678
+ planPeriod === "year" ? t3("Yearly total") : planPeriod === "quarter" ? t3("Quarterly total") : t3("Monthly total"),
20420
20679
  ":"
20421
20680
  ] }) }),
20422
20681
  /* @__PURE__ */ jsx36(Box, { $whiteSpace: "nowrap", children: /* @__PURE__ */ jsxs26(Text, { children: [
@@ -20500,7 +20759,7 @@ var SubscriptionSidebar = forwardRef7(
20500
20759
  }
20501
20760
  )
20502
20761
  ] }),
20503
- layout !== "unsubscribe" && /* @__PURE__ */ jsx36(Box, { $opacity: "0.625", children: /* @__PURE__ */ jsx36(Text, { children: willScheduleDowngrade && selectedPlan?.name && billingSubscription ? t3(
20762
+ layout !== "unsubscribe" && !isCreditOnlyPurchase && /* @__PURE__ */ jsx36(Box, { $opacity: "0.625", children: /* @__PURE__ */ jsx36(Text, { children: willScheduleDowngrade && selectedPlan?.name && billingSubscription ? t3(
20504
20763
  "You will be downgraded at the end of your billing period.",
20505
20764
  {
20506
20765
  plan: selectedPlan.name,
@@ -20600,7 +20859,7 @@ var UnsubscribeDialog = ({ top }) => {
20600
20859
  const { planPeriod, currentPlan, currentAddOns, featureUsage, cancelDate } = useMemo18(() => {
20601
20860
  const cancelDate2 = data?.subscription?.cancelAt || data?.upcomingInvoice?.dueDate;
20602
20861
  return {
20603
- planPeriod: data?.company?.plan?.planPeriod || "month",
20862
+ planPeriod: getSubscriptionPeriod(data?.company?.billingSubscription) || data?.company?.plan?.planPeriod || "month",
20604
20863
  currentPlan: data?.company?.plan,
20605
20864
  currentAddOns: data?.company?.addOns || [],
20606
20865
  featureUsage: data?.featureUsage,
@@ -20608,6 +20867,7 @@ var UnsubscribeDialog = ({ top }) => {
20608
20867
  };
20609
20868
  }, [
20610
20869
  data?.company?.addOns,
20870
+ data?.company?.billingSubscription,
20611
20871
  data?.company?.plan,
20612
20872
  data?.featureUsage,
20613
20873
  data?.subscription?.cancelAt,
@@ -20902,7 +21162,7 @@ var RenderLayout = ({ children }) => {
20902
21162
  };
20903
21163
 
20904
21164
  // src/components/layout/viewport/styles.ts
20905
- var StyledViewport = yt2.div.withConfig({
21165
+ var StyledViewport = gt2.div.withConfig({
20906
21166
  shouldForwardProp: (prop) => !["$numberOfColumns", "numberOfColumns"].includes(prop)
20907
21167
  })`
20908
21168
  display: grid;
@@ -20915,7 +21175,7 @@ var StyledViewport = yt2.div.withConfig({
20915
21175
  }
20916
21176
 
20917
21177
  @container (min-width: 768px) {
20918
- grid-template-columns: ${({ theme }) => pt2`repeat(${theme.numberOfColumns}, minmax(300px, 1fr))`};
21178
+ grid-template-columns: ${({ theme }) => ft`repeat(${theme.numberOfColumns}, minmax(300px, 1fr))`};
20919
21179
  }
20920
21180
  `;
20921
21181
 
@@ -21033,7 +21293,7 @@ var UsageDetails = ({ entitlement, layout }) => {
21033
21293
  } = entitlement;
21034
21294
  const { t: t3 } = useTranslation();
21035
21295
  const { data } = useEmbed();
21036
- const period = data?.company?.plan?.planPeriod || void 0;
21296
+ const period = getSubscriptionPeriod(data?.company?.billingSubscription) ?? data?.company?.plan?.planPeriod ?? void 0;
21037
21297
  const showCredits = data?.displaySettings?.showCredits ?? true;
21038
21298
  const {
21039
21299
  price,
@@ -21770,14 +22030,14 @@ var PriceDetails = ({
21770
22030
  };
21771
22031
 
21772
22032
  // src/components/elements/metered-features/styles.ts
21773
- var Container2 = yt2.div`
22033
+ var Container2 = gt2.div`
21774
22034
  display: flex;
21775
22035
  flex-direction: column;
21776
22036
 
21777
22037
  &:last-child {
21778
22038
  ${({ theme }) => {
21779
22039
  const borderRadius = `${theme.card.borderRadius / TEXT_BASE_SIZE}rem`;
21780
- return theme.sectionLayout === "merged" && pt2`
22040
+ return theme.sectionLayout === "merged" && ft`
21781
22041
  overflow: hidden;
21782
22042
  border-bottom-left-radius: ${borderRadius};
21783
22043
  border-bottom-right-radius: ${borderRadius};
@@ -21910,7 +22170,7 @@ var MeteredFeatures = forwardRef12(({ className, ...rest }, ref) => {
21910
22170
  if (!shouldShowFeatures) {
21911
22171
  return null;
21912
22172
  }
21913
- const period = typeof data?.company?.plan?.planPeriod === "string" ? data.company?.plan?.planPeriod : void 0;
22173
+ const period = getSubscriptionPeriod(data?.company?.billingSubscription) ?? (typeof data?.company?.plan?.planPeriod === "string" ? data.company?.plan?.planPeriod : void 0);
21914
22174
  const canCheckout = data?.capabilities?.checkout ?? false;
21915
22175
  const showCredits = data?.displaySettings?.showCredits ?? true;
21916
22176
  return /* @__PURE__ */ jsxs35(Container2, { ref, className, children: [
@@ -22502,7 +22762,7 @@ var registerWrapper = function registerWrapper2(stripe, startTime) {
22502
22762
  }
22503
22763
  stripe._registerWrapper({
22504
22764
  name: "stripe-js",
22505
- version: "9.4.0",
22765
+ version: "9.6.0",
22506
22766
  startTime
22507
22767
  });
22508
22768
  };
@@ -22580,7 +22840,7 @@ var initStripe = function initStripe2(maybeStripe, args, startTime) {
22580
22840
  var version = runtimeVersionToUrlVersion(maybeStripe.version);
22581
22841
  var expectedVersion = RELEASE_TRAIN;
22582
22842
  if (isTestKey && version !== expectedVersion) {
22583
- 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"));
22843
+ 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"));
22584
22844
  }
22585
22845
  var stripe = maybeStripe.apply(void 0, args);
22586
22846
  registerWrapper(stripe, startTime);
@@ -22963,7 +23223,8 @@ import { forwardRef as forwardRef14, useMemo as useMemo26 } from "react";
22963
23223
 
22964
23224
  // src/components/elements/plan-manager/AddOn.tsx
22965
23225
  import { jsx as jsx52, jsxs as jsxs38 } from "react/jsx-runtime";
22966
- var AddOn = ({ addOn, currency, layout }) => {
23226
+ var AddOn = ({ addOn, currency, period, layout }) => {
23227
+ const resolvedPeriod = addOn.planPeriod === "one-time" ? addOn.planPeriod : period ?? addOn.planPeriod;
22967
23228
  return /* @__PURE__ */ jsxs38(
22968
23229
  Flex,
22969
23230
  {
@@ -22973,9 +23234,9 @@ var AddOn = ({ addOn, currency, layout }) => {
22973
23234
  $gap: "1rem",
22974
23235
  children: [
22975
23236
  /* @__PURE__ */ jsx52(Text, { display: layout.addOns.fontStyle, children: addOn.name }),
22976
- typeof addOn.planPrice === "number" && addOn.planPeriod && /* @__PURE__ */ jsxs38(Text, { children: [
23237
+ typeof addOn.planPrice === "number" && resolvedPeriod && /* @__PURE__ */ jsxs38(Text, { children: [
22977
23238
  formatCurrency(addOn.planPrice, currency),
22978
- /* @__PURE__ */ jsx52("sub", { children: addOn.planPeriod == "one-time" ? shortenPeriod(addOn.planPeriod) : `/${shortenPeriod(addOn.planPeriod)}` })
23239
+ /* @__PURE__ */ jsx52("sub", { children: resolvedPeriod === "one-time" ? shortenPeriod(resolvedPeriod) : `/${shortenPeriod(resolvedPeriod)}` })
22979
23240
  ] })
22980
23241
  ]
22981
23242
  }
@@ -23227,7 +23488,7 @@ var PlanManager = forwardRef14(({ children, className, portal, ...rest }, ref) =
23227
23488
  willSubscriptionCancel,
23228
23489
  isTrialSubscription
23229
23490
  } = useMemo26(() => {
23230
- const subscriptionInterval2 = billingSubscription?.interval;
23491
+ const subscriptionInterval2 = getSubscriptionPeriod(billingSubscription) ?? billingSubscription?.interval;
23231
23492
  const subscriptionCurrency2 = billingSubscription?.currency;
23232
23493
  const isTrialSubscription2 = billingSubscription?.status === "trialing";
23233
23494
  const willSubscriptionCancel2 = typeof billingSubscription?.cancelAt === "number" && billingSubscription?.cancelAtPeriodEnd === true;
@@ -23238,6 +23499,7 @@ var PlanManager = forwardRef14(({ children, className, portal, ...rest }, ref) =
23238
23499
  willSubscriptionCancel: willSubscriptionCancel2
23239
23500
  };
23240
23501
  }, [billingSubscription]);
23502
+ const currentPlanPeriod = getSubscriptionPeriod(billingSubscription) ?? currentPlan?.planPeriod ?? void 0;
23241
23503
  const { isFreePlan, isUsageBasedPlan } = useMemo26(() => {
23242
23504
  const isFreePlan2 = currentPlan?.planPrice === 0;
23243
23505
  const isUsageBasedPlan2 = isFreePlan2 && usageBasedEntitlements.length > 0;
@@ -23406,9 +23668,9 @@ var PlanManager = forwardRef14(({ children, className, portal, ...rest }, ref) =
23406
23668
  )
23407
23669
  }
23408
23670
  ),
23409
- !isFreePlan && currentPlan?.planPeriod && /* @__PURE__ */ jsx54(Text, { display: props.header.price.fontStyle, children: /* @__PURE__ */ jsxs40("sub", { children: [
23671
+ !isFreePlan && currentPlanPeriod && /* @__PURE__ */ jsx54(Text, { display: props.header.price.fontStyle, children: /* @__PURE__ */ jsxs40("sub", { children: [
23410
23672
  "/",
23411
- shortenPeriod(currentPlan.planPeriod)
23673
+ shortenPeriod(currentPlanPeriod)
23412
23674
  ] }) })
23413
23675
  ] })
23414
23676
  ]
@@ -23428,6 +23690,7 @@ var PlanManager = forwardRef14(({ children, className, portal, ...rest }, ref) =
23428
23690
  {
23429
23691
  addOn,
23430
23692
  currency: subscriptionCurrency,
23693
+ period: currentPlanPeriod,
23431
23694
  layout: props
23432
23695
  },
23433
23696
  addOnIndex
@@ -23447,7 +23710,7 @@ var PlanManager = forwardRef14(({ children, className, portal, ...rest }, ref) =
23447
23710
  UsageDetails2,
23448
23711
  {
23449
23712
  entitlement,
23450
- period: currentPlan?.planPeriod || "month",
23713
+ period: currentPlanPeriod || "month",
23451
23714
  currency: subscriptionCurrency,
23452
23715
  showCredits,
23453
23716
  layout: props
@@ -23778,7 +24041,8 @@ var AddOn2 = ({
23778
24041
  };
23779
24042
  }, [data?.capabilities?.checkout, data?.company?.addOns, data?.component]);
23780
24043
  const cardPadding = settings.theme.card.padding / TEXT_BASE_SIZE;
23781
- const isActiveAddOn = addOn.current && selectedPeriod === currentAddOns.find((currentAddOn) => currentAddOn.id === addOn.id)?.planPeriod;
24044
+ const currentAddOnPeriod = getSubscriptionPeriod(data?.company?.billingSubscription) ?? currentAddOns.find((currentAddOn) => currentAddOn.id === addOn.id)?.planPeriod;
24045
+ const isActiveAddOn = addOn.current && selectedPeriod === currentAddOnPeriod;
23782
24046
  const { price: addOnPrice, currency: addOnCurrency } = getAddOnPrice(addOn, selectedPeriod, currency) || {};
23783
24047
  const displayableEntitlements = addOn.entitlements?.filter(
23784
24048
  (entitlement) => entitlement.valueType === "unlimited" || entitlement.priceBehavior && entitlement.priceBehavior !== EntitlementPriceBehavior.CreditBurndown
@@ -24238,7 +24502,7 @@ var Plan2 = ({
24238
24502
  };
24239
24503
  const cardPadding = settings.theme.card.padding / TEXT_BASE_SIZE;
24240
24504
  const isStandalone = typeof data?.component === "undefined";
24241
- const currentPeriod = data?.company?.plan?.planPeriod || "month";
24505
+ const currentPeriod = getSubscriptionPeriod(data?.company?.billingSubscription) || data?.company?.plan?.planPeriod || "month";
24242
24506
  const canCheckout = isStandalone || (data?.capabilities?.checkout ?? true);
24243
24507
  const isTrialSubscription = data?.company?.billingSubscription?.status === "trialing";
24244
24508
  const showCredits = data?.displaySettings?.showCredits ?? true;
@@ -24308,10 +24572,13 @@ var Plan2 = ({
24308
24572
  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, {
24309
24573
  currency: planCurrency,
24310
24574
  testSignificantDigits: false
24575
+ }) : showAsMonthlyPrices && selectedPeriod === "quarter" ? formatCurrency((planPrice ?? 0) / 3, {
24576
+ currency: planCurrency,
24577
+ testSignificantDigits: false
24311
24578
  }) : formatCurrency(planPrice ?? 0, planCurrency),
24312
24579
  !plan.custom && !isFreePlan && /* @__PURE__ */ jsxs43("sub", { children: [
24313
24580
  "/",
24314
- showAsMonthlyPrices && selectedPeriod === BillingProductPriceInterval.Year ? t3("month, billed yearly") : t3(selectedPeriod)
24581
+ showAsMonthlyPrices && selectedPeriod === BillingProductPriceInterval.Year ? t3("month, billed yearly") : showAsMonthlyPrices && selectedPeriod === "quarter" ? t3("month, billed quarterly") : t3(selectedPeriod)
24315
24582
  ] })
24316
24583
  ]
24317
24584
  }
@@ -24614,17 +24881,15 @@ var PricingTable = forwardRef15(({ className, ...rest }, ref) => {
24614
24881
  []
24615
24882
  );
24616
24883
  const [selectedPeriod, setSelectedPeriod] = useState20(
24617
- () => data?.company?.plan?.planPeriod || "month"
24884
+ () => getSubscriptionPeriod(data?.company?.billingSubscription) || data?.company?.plan?.planPeriod || "month"
24618
24885
  );
24619
24886
  const { currencies, invalidFilterEntries } = useAvailableCurrenciesWithInvalid();
24620
24887
  const [selectedCurrency, setSelectedCurrency] = useState20(
24621
24888
  () => currencies[0] ?? DEFAULT_CURRENCY
24622
24889
  );
24623
- useEffect8(() => {
24624
- if (currencies.length > 0 && !currencies.includes(selectedCurrency)) {
24625
- setSelectedCurrency(currencies[0]);
24626
- }
24627
- }, [currencies, selectedCurrency]);
24890
+ if (currencies.length > 0 && !currencies.includes(selectedCurrency)) {
24891
+ setSelectedCurrency(currencies[0]);
24892
+ }
24628
24893
  const showPeriodToggle = rest.showPeriodToggle ?? data?.displaySettings?.showPeriodToggle ?? true;
24629
24894
  const hasCurrencyFilter = !!currencyFilter && currencyFilter.length > 0;
24630
24895
  const showCurrencySelector = currencies.length > 1;
@@ -24750,7 +25015,7 @@ var PricingTable = forwardRef15(({ className, ...rest }, ref) => {
24750
25015
  $margin: 0,
24751
25016
  $listStyle: "none",
24752
25017
  children: plans.map((plan, index, self2) => {
24753
- const planPeriod = showPeriodToggle ? selectedPeriod : plan.yearlyPrice && !plan.monthlyPrice ? BillingProductPriceInterval.Year : BillingProductPriceInterval.Month;
25018
+ const planPeriod = showPeriodToggle ? selectedPeriod : plan.monthlyPrice ? BillingProductPriceInterval.Month : plan.quarterlyPrice ? "quarter" : plan.yearlyPrice ? BillingProductPriceInterval.Year : BillingProductPriceInterval.Month;
24754
25019
  return /* @__PURE__ */ jsx58(
24755
25020
  Plan2,
24756
25021
  {
@@ -24802,7 +25067,7 @@ var PricingTable = forwardRef15(({ className, ...rest }, ref) => {
24802
25067
  $margin: 0,
24803
25068
  $listStyle: "none",
24804
25069
  children: addOns.map((addOn, index) => {
24805
- const addOnPeriod = showPeriodToggle ? selectedPeriod : addOn.yearlyPrice && !addOn.monthlyPrice ? BillingProductPriceInterval.Year : BillingProductPriceInterval.Month;
25070
+ const addOnPeriod = showPeriodToggle ? selectedPeriod : addOn.monthlyPrice ? BillingProductPriceInterval.Month : addOn.quarterlyPrice ? "quarter" : addOn.yearlyPrice ? BillingProductPriceInterval.Year : BillingProductPriceInterval.Month;
24806
25071
  return /* @__PURE__ */ jsx58(
24807
25072
  AddOn2,
24808
25073
  {
@@ -29423,7 +29688,7 @@ var Error2 = ({ message }) => {
29423
29688
  );
29424
29689
  };
29425
29690
  var SchematicEmbed = ({ id, accessToken }) => {
29426
- const theme = useContext6(tt2);
29691
+ const theme = useContext6(nt2);
29427
29692
  const {
29428
29693
  data,
29429
29694
  error,