@embedreach/components 0.1.79 → 0.1.80

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.
@@ -2886,7 +2886,7 @@ function createResource(pSource, pFetcher, pOptions) {
2886
2886
  let source;
2887
2887
  let fetcher;
2888
2888
  let options;
2889
- if (arguments.length === 2 && typeof pFetcher === "object" || arguments.length === 1) {
2889
+ if (arguments.length === 1) {
2890
2890
  source = true;
2891
2891
  fetcher = pSource;
2892
2892
  options = {};
@@ -2936,19 +2936,7 @@ function createResource(pSource, pFetcher, pOptions) {
2936
2936
  const c2 = SuspenseContext, v2 = value(), err = error2();
2937
2937
  if (err !== void 0 && !pr)
2938
2938
  throw err;
2939
- if (Listener && !Listener.user && c2) {
2940
- createComputed(() => {
2941
- track();
2942
- if (pr) {
2943
- if (c2.resolved)
2944
- ;
2945
- else if (!contexts.has(c2)) {
2946
- c2.increment();
2947
- contexts.add(c2);
2948
- }
2949
- }
2950
- });
2951
- }
2939
+ if (Listener && !Listener.user && c2) ;
2952
2940
  return v2;
2953
2941
  }
2954
2942
  function load(refetching = true) {
@@ -6381,9 +6369,6 @@ const { commonBasicLogger: ye$1 } = ne;
6381
6369
  function we$1(e4) {
6382
6370
  return "string" == typeof e4 && "kind" !== e4 && e4.match(/^(\w|\.|-)+$/);
6383
6371
  }
6384
- function be$1(e4) {
6385
- return e4.includes("%") || e4.includes(":") ? e4.replace(/%/g, "%25").replace(/:/g, "%3A") : e4;
6386
- }
6387
6372
  var ke$1 = { checkContext: function(e4, t3) {
6388
6373
  if (e4) {
6389
6374
  if (t3 && (void 0 === e4.kind || null === e4.kind)) return void 0 !== e4.key && null !== e4.key;
@@ -6422,12 +6407,6 @@ var ke$1 = { checkContext: function(e4, t3) {
6422
6407
  return n2;
6423
6408
  }, getContextKinds: function(e4) {
6424
6409
  return e4 ? null === e4.kind || void 0 === e4.kind ? ["user"] : "multi" !== e4.kind ? [e4.kind] : Object.keys(e4).filter((e5) => "kind" !== e5) : [];
6425
- }, getCanonicalKey: function(e4) {
6426
- if (e4) {
6427
- if ((void 0 === e4.kind || null === e4.kind || "user" === e4.kind) && e4.key) return e4.key;
6428
- if ("multi" !== e4.kind && e4.key) return `${e4.kind}:${be$1(e4.key)}`;
6429
- if ("multi" === e4.kind) return Object.keys(e4).sort().filter((e5) => "kind" !== e5).map((t3) => `${t3}:${be$1(e4[t3].key)}`).join(":");
6430
- }
6431
6410
  } };
6432
6411
  const { getContextKinds: Ee$1 } = ke$1;
6433
6412
  var De$1 = function() {
@@ -6903,7 +6882,7 @@ var dt = function(e4, t3) {
6903
6882
  }, 1e3 * e4);
6904
6883
  });
6905
6884
  };
6906
- const { commonBasicLogger: ft } = ne, { checkContext: gt, getContextKeys: vt } = ke$1, { InspectorTypes: pt, InspectorManager: mt } = ut, ht = "change", yt = "internal-change";
6885
+ const { commonBasicLogger: ft } = ne, { checkContext: gt } = ke$1, { InspectorTypes: pt, InspectorManager: mt } = ut, ht = "change", yt = "internal-change";
6907
6886
  var wt = { initialize: function(e4, t3, n2, r2, o2) {
6908
6887
  const i3 = function() {
6909
6888
  if (n2 && n2.logger) return n2.logger;
@@ -7115,14 +7094,14 @@ var wt = { initialize: function(e4, t3, n2, r2, o2) {
7115
7094
  }, enqueueEvent: F2, getFlagsInternal: function() {
7116
7095
  return P2;
7117
7096
  }, getEnvironmentId: () => f2, internalChangeEventName: yt };
7118
- }, commonBasicLogger: ft, errors: s3, messages: ie, utils: S$1, getContextKeys: vt }, bt = wt.initialize, kt = wt.errors;
7097
+ }, errors: s3 }, bt = wt.initialize, kt = wt.errors;
7119
7098
  function Dt(e4, t3, n2) {
7120
7099
  return (t3 = function(e5) {
7121
7100
  var t4 = function(e6, t5) {
7122
7101
  if ("object" != typeof e6 || !e6) return e6;
7123
7102
  var n3 = e6[Symbol.toPrimitive];
7124
7103
  if (void 0 !== n3) {
7125
- var r2 = n3.call(e6, t5 || "default");
7104
+ var r2 = n3.call(e6, t5);
7126
7105
  if ("object" != typeof r2) return r2;
7127
7106
  throw new TypeError("@@toPrimitive must return a primitive value.");
7128
7107
  }
@@ -7324,7 +7303,6 @@ var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof win
7324
7303
  function getDefaultExportFromCjs(x3) {
7325
7304
  return x3 && x3.__esModule && Object.prototype.hasOwnProperty.call(x3, "default") ? x3["default"] : x3;
7326
7305
  }
7327
- var INFINITY = 1 / 0;
7328
7306
  var symbolTag = "[object Symbol]";
7329
7307
  var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;
7330
7308
  var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g;
@@ -7604,12 +7582,12 @@ function baseToString(value) {
7604
7582
  return symbolToString ? symbolToString.call(value) : "";
7605
7583
  }
7606
7584
  var result = value + "";
7607
- return result == "0" && 1 / value == -INFINITY ? "-0" : result;
7585
+ return result == "0" && 1 / value == -Infinity ? "-0" : result;
7608
7586
  }
7609
7587
  function castSlice(array, start, end) {
7610
7588
  var length = array.length;
7611
7589
  end = end === void 0 ? length : end;
7612
- return !start && end >= length ? array : baseSlice(array, start, end);
7590
+ return false ? array : baseSlice(array, start, end);
7613
7591
  }
7614
7592
  function createCaseFirst(methodName) {
7615
7593
  return function(string) {
@@ -12787,7 +12765,7 @@ const authListeners = [
12787
12765
  }
12788
12766
  }
12789
12767
  ];
12790
- const { Context: Context$1, Provider: Provider$2 } = createDataContext(
12768
+ const { Provider: Provider$2 } = createDataContext(
12791
12769
  authReducer,
12792
12770
  {
12793
12771
  handleReauth
@@ -13030,6 +13008,67 @@ const ThemeInitializer = ({ initialTheme, children: children2 }) => {
13030
13008
  const Provider$1 = ({ initialTheme, children: children2 }) => {
13031
13009
  return /* @__PURE__ */ jsx(BaseProvider, { children: /* @__PURE__ */ jsx(ThemeInitializer, { initialTheme, children: children2 }) });
13032
13010
  };
13011
+ const matchHtmlEntity = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g;
13012
+ const htmlEntities = {
13013
+ "&": "&",
13014
+ "&": "&",
13015
+ "&lt;": "<",
13016
+ "&#60;": "<",
13017
+ "&gt;": ">",
13018
+ "&#62;": ">",
13019
+ "&apos;": "'",
13020
+ "&#39;": "'",
13021
+ "&quot;": '"',
13022
+ "&#34;": '"',
13023
+ "&nbsp;": " ",
13024
+ "&#160;": " ",
13025
+ "&copy;": "©",
13026
+ "&#169;": "©",
13027
+ "&reg;": "®",
13028
+ "&#174;": "®",
13029
+ "&hellip;": "…",
13030
+ "&#8230;": "…",
13031
+ "&#x2F;": "/",
13032
+ "&#47;": "/"
13033
+ };
13034
+ const unescapeHtmlEntity = (m4) => htmlEntities[m4];
13035
+ const unescape$1 = (text) => text.replace(matchHtmlEntity, unescapeHtmlEntity);
13036
+ let defaultOptions$2 = {
13037
+ bindI18n: "languageChanged",
13038
+ bindI18nStore: "",
13039
+ transEmptyNodeValue: "",
13040
+ transSupportBasicHtmlNodes: true,
13041
+ transWrapTextNodes: "",
13042
+ transKeepBasicHtmlNodesFor: ["br", "strong", "i", "p"],
13043
+ useSuspense: true,
13044
+ unescape: unescape$1
13045
+ };
13046
+ const setDefaults = (options = {}) => {
13047
+ defaultOptions$2 = {
13048
+ ...defaultOptions$2,
13049
+ ...options
13050
+ };
13051
+ };
13052
+ const initReactI18next = {
13053
+ type: "3rdParty",
13054
+ init(instance2) {
13055
+ setDefaults(instance2.options.react);
13056
+ }
13057
+ };
13058
+ const I18nContext = createContext$1();
13059
+ function I18nextProvider({
13060
+ i18n,
13061
+ defaultNS,
13062
+ children: children2
13063
+ }) {
13064
+ const value = useMemo(() => ({
13065
+ i18n,
13066
+ defaultNS
13067
+ }), [i18n, defaultNS]);
13068
+ return createElement$1(I18nContext.Provider, {
13069
+ value
13070
+ }, children2);
13071
+ }
13033
13072
  const isString = (obj) => typeof obj === "string";
13034
13073
  const defer = () => {
13035
13074
  let res;
@@ -15593,67 +15632,6 @@ class Browser {
15593
15632
  }
15594
15633
  }
15595
15634
  Browser.type = "languageDetector";
15596
- const matchHtmlEntity = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g;
15597
- const htmlEntities = {
15598
- "&amp;": "&",
15599
- "&#38;": "&",
15600
- "&lt;": "<",
15601
- "&#60;": "<",
15602
- "&gt;": ">",
15603
- "&#62;": ">",
15604
- "&apos;": "'",
15605
- "&#39;": "'",
15606
- "&quot;": '"',
15607
- "&#34;": '"',
15608
- "&nbsp;": " ",
15609
- "&#160;": " ",
15610
- "&copy;": "©",
15611
- "&#169;": "©",
15612
- "&reg;": "®",
15613
- "&#174;": "®",
15614
- "&hellip;": "…",
15615
- "&#8230;": "…",
15616
- "&#x2F;": "/",
15617
- "&#47;": "/"
15618
- };
15619
- const unescapeHtmlEntity = (m4) => htmlEntities[m4];
15620
- const unescape$1 = (text) => text.replace(matchHtmlEntity, unescapeHtmlEntity);
15621
- let defaultOptions$2 = {
15622
- bindI18n: "languageChanged",
15623
- bindI18nStore: "",
15624
- transEmptyNodeValue: "",
15625
- transSupportBasicHtmlNodes: true,
15626
- transWrapTextNodes: "",
15627
- transKeepBasicHtmlNodesFor: ["br", "strong", "i", "p"],
15628
- useSuspense: true,
15629
- unescape: unescape$1
15630
- };
15631
- const setDefaults = (options = {}) => {
15632
- defaultOptions$2 = {
15633
- ...defaultOptions$2,
15634
- ...options
15635
- };
15636
- };
15637
- const initReactI18next = {
15638
- type: "3rdParty",
15639
- init(instance2) {
15640
- setDefaults(instance2.options.react);
15641
- }
15642
- };
15643
- const I18nContext = createContext$1();
15644
- function I18nextProvider({
15645
- i18n,
15646
- defaultNS,
15647
- children: children2
15648
- }) {
15649
- const value = useMemo(() => ({
15650
- i18n,
15651
- defaultNS
15652
- }), [i18n, defaultNS]);
15653
- return createElement$1(I18nContext.Provider, {
15654
- value
15655
- }, children2);
15656
- }
15657
15635
  const ad_spend$1 = "Ad Spend";
15658
15636
  const date$2 = "Date";
15659
15637
  const close$1 = "Close";
@@ -16623,14 +16601,6 @@ instance.use(Browser).use(initReactI18next).init({
16623
16601
  }
16624
16602
  });
16625
16603
  const defaultTranslations = {
16626
- engage: {
16627
- user: "User",
16628
- user_other: "Users",
16629
- automation: "Automation",
16630
- automation_other: "Automations",
16631
- segment: "Segment",
16632
- segment_other: "Segments"
16633
- },
16634
16604
  common: {
16635
16605
  ad_spend: "Ad Spend",
16636
16606
  date: "Date",
@@ -17040,6 +17010,7 @@ const defaultTranslations = {
17040
17010
  };
17041
17011
  const I18nProvider = ({
17042
17012
  children: children2,
17013
+ language,
17043
17014
  initialLanguage
17044
17015
  }) => {
17045
17016
  useEffect(() => {
@@ -17047,22 +17018,6 @@ const I18nProvider = ({
17047
17018
  instance.changeLanguage(initialLanguage);
17048
17019
  }
17049
17020
  }, [initialLanguage]);
17050
- return /* @__PURE__ */ jsx(I18nextProvider, { i18n: instance, children: children2 });
17051
- };
17052
- const ReachProvider = ({
17053
- authToken: authToken2,
17054
- tenantExternalId,
17055
- language,
17056
- children: children2,
17057
- theme: theme2,
17058
- debug
17059
- }) => {
17060
- const [queryClient] = React__default.useState(() => {
17061
- if (authToken2) {
17062
- setAuthToken(authToken2);
17063
- }
17064
- return createQueryClient();
17065
- });
17066
17021
  useEffect(() => {
17067
17022
  if (language?.overrides) {
17068
17023
  const createLanguageBundle = (namespace, lang) => {
@@ -17087,6 +17042,22 @@ const ReachProvider = ({
17087
17042
  });
17088
17043
  }
17089
17044
  }, [language?.overrides]);
17045
+ return /* @__PURE__ */ jsx(I18nextProvider, { i18n: instance, children: children2 });
17046
+ };
17047
+ const ReachProvider = ({
17048
+ authToken: authToken2,
17049
+ tenantExternalId,
17050
+ language,
17051
+ children: children2,
17052
+ theme: theme2,
17053
+ debug
17054
+ }) => {
17055
+ const [queryClient] = React__default.useState(() => {
17056
+ if (authToken2) {
17057
+ setAuthToken(authToken2);
17058
+ }
17059
+ return createQueryClient();
17060
+ });
17090
17061
  return /* @__PURE__ */ jsx("div", { "data-reach-root": true, className: "h-full w-full", children: /* @__PURE__ */ jsxs(QueryClientProvider, { client: queryClient, children: [
17091
17062
  /* @__PURE__ */ jsx(
17092
17063
  D$1,
@@ -17108,7 +17079,7 @@ const ReachProvider = ({
17108
17079
  useCamelCaseFlagKeys: false,
17109
17080
  sendEventsOnFlagRead: true
17110
17081
  },
17111
- children: /* @__PURE__ */ jsx(I18nProvider, { initialLanguage: language?.default, children: /* @__PURE__ */ jsx(Provider$1, { initialTheme: theme2, children: /* @__PURE__ */ jsxs(Provider$2, { children: [
17082
+ children: /* @__PURE__ */ jsx(I18nProvider, { language, initialLanguage: language?.default, children: /* @__PURE__ */ jsx(Provider$1, { initialTheme: theme2, children: /* @__PURE__ */ jsxs(Provider$2, { children: [
17112
17083
  children2,
17113
17084
  /* @__PURE__ */ jsx(Toaster, {})
17114
17085
  ] }) }) })
@@ -17404,7 +17375,7 @@ var count$5 = 0;
17404
17375
  function useId$3(deterministicId) {
17405
17376
  const [id2, setId] = React.useState(useReactId$2());
17406
17377
  useLayoutEffect2$2(() => {
17407
- if (!deterministicId) setId((reactId) => reactId ?? String(count$5++));
17378
+ setId((reactId) => reactId ?? String(count$5++));
17408
17379
  }, [deterministicId]);
17409
17380
  return deterministicId || (id2 ? `radix-${id2}` : "");
17410
17381
  }
@@ -18617,9 +18588,9 @@ var handleScroll = function(axis, endTarget, event, sourceDelta, noOverscroll) {
18617
18588
  !targetInLock && target !== document.body || // self content
18618
18589
  targetInLock && (endTarget.contains(target) || endTarget === target)
18619
18590
  );
18620
- if (isDeltaPositive && (Math.abs(availableScroll) < 1 || !noOverscroll)) {
18591
+ if (isDeltaPositive && (Math.abs(availableScroll) < 1 || false)) {
18621
18592
  shouldCancelScroll = true;
18622
- } else if (!isDeltaPositive && (Math.abs(availableScrollTop) < 1 || !noOverscroll)) {
18593
+ } else if (!isDeltaPositive && (Math.abs(availableScrollTop) < 1 || false)) {
18623
18594
  shouldCancelScroll = true;
18624
18595
  }
18625
18596
  return shouldCancelScroll;
@@ -18701,7 +18672,7 @@ function RemoveScrollSideCar(props) {
18701
18672
  return true;
18702
18673
  }
18703
18674
  var cancelingAxis = activeAxis.current || currentAxis;
18704
- return handleScroll(cancelingAxis, parent, event, cancelingAxis === "h" ? deltaX : deltaY, true);
18675
+ return handleScroll(cancelingAxis, parent, event, cancelingAxis === "h" ? deltaX : deltaY);
18705
18676
  }, []);
18706
18677
  var shouldPrevent = React.useCallback(function(_event) {
18707
18678
  var event = _event;
@@ -19542,7 +19513,6 @@ const progress = /* @__NO_SIDE_EFFECTS__ */ (from, to, value) => {
19542
19513
  const secondsToMilliseconds = /* @__NO_SIDE_EFFECTS__ */ (seconds) => seconds * 1e3;
19543
19514
  const millisecondsToSeconds = /* @__NO_SIDE_EFFECTS__ */ (milliseconds) => milliseconds / 1e3;
19544
19515
  const MotionGlobalConfig = {
19545
- skipAnimations: false,
19546
19516
  useManualTiming: false
19547
19517
  };
19548
19518
  const stepsOrder = [
@@ -19560,8 +19530,7 @@ const stepsOrder = [
19560
19530
  // Compute
19561
19531
  ];
19562
19532
  const statsBuffer = {
19563
- value: null,
19564
- addProjectionMetrics: null
19533
+ value: null
19565
19534
  };
19566
19535
  function createRenderStep(runNextFrame, stepName) {
19567
19536
  let thisFrame = /* @__PURE__ */ new Set();
@@ -19890,7 +19859,7 @@ function useMotionRef(visualState, visualElement, externalRef) {
19890
19859
  const camelToDash = (str) => str.replace(/([a-z])([A-Z])/gu, "$1-$2").toLowerCase();
19891
19860
  const optimizedAppearDataId = "framerAppearId";
19892
19861
  const optimizedAppearDataAttribute = "data-" + camelToDash(optimizedAppearDataId);
19893
- const { schedule: microtask, cancel: cancelMicrotask } = createRenderBatcher(queueMicrotask, false);
19862
+ const { schedule: microtask } = createRenderBatcher(queueMicrotask, false);
19894
19863
  const SwitchLayoutGroupContext = createContext$1({});
19895
19864
  function useVisualElement(Component2, visualState, props, createVisualElement, ProjectionNodeConstructor) {
19896
19865
  var _a, _b;
@@ -22285,7 +22254,7 @@ function findSpring({ duration = springDefaults.duration, bounce = springDefault
22285
22254
  envelope = (undampedFreq2) => {
22286
22255
  const a4 = Math.exp(-undampedFreq2 * duration);
22287
22256
  const b3 = (undampedFreq2 - velocity) * duration + 1;
22288
- return -safeMin + a4 * b3;
22257
+ return -1e-3 + a4 * b3;
22289
22258
  };
22290
22259
  derivative = (undampedFreq2) => {
22291
22260
  const a4 = Math.exp(-undampedFreq2 * duration);
@@ -26649,6 +26618,335 @@ const createMotionComponent = /* @__PURE__ */ createMotionComponentFactory({
26649
26618
  ...layout
26650
26619
  }, createDomVisualElement);
26651
26620
  const motion = /* @__PURE__ */ createDOMMotionComponentProxy(createMotionComponent);
26621
+ /**
26622
+ * uuidv7: A JavaScript implementation of UUID version 7
26623
+ *
26624
+ * @license Apache-2.0
26625
+ * @copyright 2021-2024 LiosK
26626
+ * @packageDocumentation
26627
+ */
26628
+ const DIGITS = "0123456789abcdef";
26629
+ class UUID {
26630
+ /** @param bytes - The 16-byte byte array representation. */
26631
+ constructor(bytes) {
26632
+ this.bytes = bytes;
26633
+ }
26634
+ /**
26635
+ * Creates an object from the internal representation, a 16-byte byte array
26636
+ * containing the binary UUID representation in the big-endian byte order.
26637
+ *
26638
+ * This method does NOT shallow-copy the argument, and thus the created object
26639
+ * holds the reference to the underlying buffer.
26640
+ *
26641
+ * @throws TypeError if the length of the argument is not 16.
26642
+ */
26643
+ static ofInner(bytes) {
26644
+ if (bytes.length !== 16) {
26645
+ throw new TypeError("not 128-bit length");
26646
+ } else {
26647
+ return new UUID(bytes);
26648
+ }
26649
+ }
26650
+ /**
26651
+ * Builds a byte array from UUIDv7 field values.
26652
+ *
26653
+ * @param unixTsMs - A 48-bit `unix_ts_ms` field value.
26654
+ * @param randA - A 12-bit `rand_a` field value.
26655
+ * @param randBHi - The higher 30 bits of 62-bit `rand_b` field value.
26656
+ * @param randBLo - The lower 32 bits of 62-bit `rand_b` field value.
26657
+ * @throws RangeError if any field value is out of the specified range.
26658
+ */
26659
+ static fromFieldsV7(unixTsMs, randA, randBHi, randBLo) {
26660
+ if (!Number.isInteger(unixTsMs) || !Number.isInteger(randA) || !Number.isInteger(randBHi) || !Number.isInteger(randBLo) || unixTsMs < 0 || randA < 0 || randBHi < 0 || randBLo < 0 || unixTsMs > 281474976710655 || randA > 4095 || randBHi > 1073741823 || randBLo > 4294967295) {
26661
+ throw new RangeError("invalid field value");
26662
+ }
26663
+ const bytes = new Uint8Array(16);
26664
+ bytes[0] = unixTsMs / 2 ** 40;
26665
+ bytes[1] = unixTsMs / 2 ** 32;
26666
+ bytes[2] = unixTsMs / 2 ** 24;
26667
+ bytes[3] = unixTsMs / 2 ** 16;
26668
+ bytes[4] = unixTsMs / 2 ** 8;
26669
+ bytes[5] = unixTsMs;
26670
+ bytes[6] = 112 | randA >>> 8;
26671
+ bytes[7] = randA;
26672
+ bytes[8] = 128 | randBHi >>> 24;
26673
+ bytes[9] = randBHi >>> 16;
26674
+ bytes[10] = randBHi >>> 8;
26675
+ bytes[11] = randBHi;
26676
+ bytes[12] = randBLo >>> 24;
26677
+ bytes[13] = randBLo >>> 16;
26678
+ bytes[14] = randBLo >>> 8;
26679
+ bytes[15] = randBLo;
26680
+ return new UUID(bytes);
26681
+ }
26682
+ /**
26683
+ * Builds a byte array from a string representation.
26684
+ *
26685
+ * This method accepts the following formats:
26686
+ *
26687
+ * - 32-digit hexadecimal format without hyphens: `0189dcd553117d408db09496a2eef37b`
26688
+ * - 8-4-4-4-12 hyphenated format: `0189dcd5-5311-7d40-8db0-9496a2eef37b`
26689
+ * - Hyphenated format with surrounding braces: `{0189dcd5-5311-7d40-8db0-9496a2eef37b}`
26690
+ * - RFC 9562 URN format: `urn:uuid:0189dcd5-5311-7d40-8db0-9496a2eef37b`
26691
+ *
26692
+ * Leading and trailing whitespaces represents an error.
26693
+ *
26694
+ * @throws SyntaxError if the argument could not parse as a valid UUID string.
26695
+ */
26696
+ static parse(uuid) {
26697
+ var _a, _b, _c, _d;
26698
+ let hex2 = void 0;
26699
+ switch (uuid.length) {
26700
+ case 32:
26701
+ hex2 = (_a = /^[0-9a-f]{32}$/i.exec(uuid)) === null || _a === void 0 ? void 0 : _a[0];
26702
+ break;
26703
+ case 36:
26704
+ hex2 = (_b = /^([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec(uuid)) === null || _b === void 0 ? void 0 : _b.slice(1, 6).join("");
26705
+ break;
26706
+ case 38:
26707
+ hex2 = (_c = /^\{([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})\}$/i.exec(uuid)) === null || _c === void 0 ? void 0 : _c.slice(1, 6).join("");
26708
+ break;
26709
+ case 45:
26710
+ hex2 = (_d = /^urn:uuid:([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec(uuid)) === null || _d === void 0 ? void 0 : _d.slice(1, 6).join("");
26711
+ break;
26712
+ }
26713
+ if (hex2) {
26714
+ const inner = new Uint8Array(16);
26715
+ for (let i3 = 0; i3 < 16; i3 += 4) {
26716
+ const n2 = parseInt(hex2.substring(2 * i3, 2 * i3 + 8), 16);
26717
+ inner[i3 + 0] = n2 >>> 24;
26718
+ inner[i3 + 1] = n2 >>> 16;
26719
+ inner[i3 + 2] = n2 >>> 8;
26720
+ inner[i3 + 3] = n2;
26721
+ }
26722
+ return new UUID(inner);
26723
+ } else {
26724
+ throw new SyntaxError("could not parse UUID string");
26725
+ }
26726
+ }
26727
+ /**
26728
+ * @returns The 8-4-4-4-12 canonical hexadecimal string representation
26729
+ * (`0189dcd5-5311-7d40-8db0-9496a2eef37b`).
26730
+ */
26731
+ toString() {
26732
+ let text = "";
26733
+ for (let i3 = 0; i3 < this.bytes.length; i3++) {
26734
+ text += DIGITS.charAt(this.bytes[i3] >>> 4);
26735
+ text += DIGITS.charAt(this.bytes[i3] & 15);
26736
+ if (i3 === 3 || i3 === 5 || i3 === 7 || i3 === 9) {
26737
+ text += "-";
26738
+ }
26739
+ }
26740
+ return text;
26741
+ }
26742
+ /**
26743
+ * @returns The 32-digit hexadecimal representation without hyphens
26744
+ * (`0189dcd553117d408db09496a2eef37b`).
26745
+ */
26746
+ toHex() {
26747
+ let text = "";
26748
+ for (let i3 = 0; i3 < this.bytes.length; i3++) {
26749
+ text += DIGITS.charAt(this.bytes[i3] >>> 4);
26750
+ text += DIGITS.charAt(this.bytes[i3] & 15);
26751
+ }
26752
+ return text;
26753
+ }
26754
+ /** @returns The 8-4-4-4-12 canonical hexadecimal string representation. */
26755
+ toJSON() {
26756
+ return this.toString();
26757
+ }
26758
+ /**
26759
+ * Reports the variant field value of the UUID or, if appropriate, "NIL" or
26760
+ * "MAX".
26761
+ *
26762
+ * For convenience, this method reports "NIL" or "MAX" if `this` represents
26763
+ * the Nil or Max UUID, although the Nil and Max UUIDs are technically
26764
+ * subsumed under the variants `0b0` and `0b111`, respectively.
26765
+ */
26766
+ getVariant() {
26767
+ const n2 = this.bytes[8] >>> 4;
26768
+ if (n2 < 0) {
26769
+ throw new Error("unreachable");
26770
+ } else if (n2 <= 7) {
26771
+ return this.bytes.every((e4) => e4 === 0) ? "NIL" : "VAR_0";
26772
+ } else if (n2 <= 11) {
26773
+ return "VAR_10";
26774
+ } else if (n2 <= 13) {
26775
+ return "VAR_110";
26776
+ } else if (n2 <= 15) {
26777
+ return this.bytes.every((e4) => e4 === 255) ? "MAX" : "VAR_RESERVED";
26778
+ } else {
26779
+ throw new Error("unreachable");
26780
+ }
26781
+ }
26782
+ /**
26783
+ * Returns the version field value of the UUID or `undefined` if the UUID does
26784
+ * not have the variant field value of `0b10`.
26785
+ */
26786
+ getVersion() {
26787
+ return this.getVariant() === "VAR_10" ? this.bytes[6] >>> 4 : void 0;
26788
+ }
26789
+ /** Creates an object from `this`. */
26790
+ clone() {
26791
+ return new UUID(this.bytes.slice(0));
26792
+ }
26793
+ /** Returns true if `this` is equivalent to `other`. */
26794
+ equals(other) {
26795
+ return this.compareTo(other) === 0;
26796
+ }
26797
+ /**
26798
+ * Returns a negative integer, zero, or positive integer if `this` is less
26799
+ * than, equal to, or greater than `other`, respectively.
26800
+ */
26801
+ compareTo(other) {
26802
+ for (let i3 = 0; i3 < 16; i3++) {
26803
+ const diff = this.bytes[i3] - other.bytes[i3];
26804
+ if (diff !== 0) {
26805
+ return Math.sign(diff);
26806
+ }
26807
+ }
26808
+ return 0;
26809
+ }
26810
+ }
26811
+ class V7Generator {
26812
+ /**
26813
+ * Creates a generator object with the default random number generator, or
26814
+ * with the specified one if passed as an argument. The specified random
26815
+ * number generator should be cryptographically strong and securely seeded.
26816
+ */
26817
+ constructor(randomNumberGenerator) {
26818
+ this.timestamp = 0;
26819
+ this.counter = 0;
26820
+ this.random = randomNumberGenerator !== null && randomNumberGenerator !== void 0 ? randomNumberGenerator : getDefaultRandom();
26821
+ }
26822
+ /**
26823
+ * Generates a new UUIDv7 object from the current timestamp, or resets the
26824
+ * generator upon significant timestamp rollback.
26825
+ *
26826
+ * This method returns a monotonically increasing UUID by reusing the previous
26827
+ * timestamp even if the up-to-date timestamp is smaller than the immediately
26828
+ * preceding UUID's. However, when such a clock rollback is considered
26829
+ * significant (i.e., by more than ten seconds), this method resets the
26830
+ * generator and returns a new UUID based on the given timestamp, breaking the
26831
+ * increasing order of UUIDs.
26832
+ *
26833
+ * See {@link generateOrAbort} for the other mode of generation and
26834
+ * {@link generateOrResetCore} for the low-level primitive.
26835
+ */
26836
+ generate() {
26837
+ return this.generateOrResetCore(Date.now(), 1e4);
26838
+ }
26839
+ /**
26840
+ * Generates a new UUIDv7 object from the current timestamp, or returns
26841
+ * `undefined` upon significant timestamp rollback.
26842
+ *
26843
+ * This method returns a monotonically increasing UUID by reusing the previous
26844
+ * timestamp even if the up-to-date timestamp is smaller than the immediately
26845
+ * preceding UUID's. However, when such a clock rollback is considered
26846
+ * significant (i.e., by more than ten seconds), this method aborts and
26847
+ * returns `undefined` immediately.
26848
+ *
26849
+ * See {@link generate} for the other mode of generation and
26850
+ * {@link generateOrAbortCore} for the low-level primitive.
26851
+ */
26852
+ generateOrAbort() {
26853
+ return this.generateOrAbortCore(Date.now(), 1e4);
26854
+ }
26855
+ /**
26856
+ * Generates a new UUIDv7 object from the `unixTsMs` passed, or resets the
26857
+ * generator upon significant timestamp rollback.
26858
+ *
26859
+ * This method is equivalent to {@link generate} except that it takes a custom
26860
+ * timestamp and clock rollback allowance.
26861
+ *
26862
+ * @param rollbackAllowance - The amount of `unixTsMs` rollback that is
26863
+ * considered significant. A suggested value is `10_000` (milliseconds).
26864
+ * @throws RangeError if `unixTsMs` is not a 48-bit positive integer.
26865
+ */
26866
+ generateOrResetCore(unixTsMs, rollbackAllowance) {
26867
+ let value = this.generateOrAbortCore(unixTsMs, rollbackAllowance);
26868
+ if (value === void 0) {
26869
+ this.timestamp = 0;
26870
+ value = this.generateOrAbortCore(unixTsMs, rollbackAllowance);
26871
+ }
26872
+ return value;
26873
+ }
26874
+ /**
26875
+ * Generates a new UUIDv7 object from the `unixTsMs` passed, or returns
26876
+ * `undefined` upon significant timestamp rollback.
26877
+ *
26878
+ * This method is equivalent to {@link generateOrAbort} except that it takes a
26879
+ * custom timestamp and clock rollback allowance.
26880
+ *
26881
+ * @param rollbackAllowance - The amount of `unixTsMs` rollback that is
26882
+ * considered significant. A suggested value is `10_000` (milliseconds).
26883
+ * @throws RangeError if `unixTsMs` is not a 48-bit positive integer.
26884
+ */
26885
+ generateOrAbortCore(unixTsMs, rollbackAllowance) {
26886
+ const MAX_COUNTER = 4398046511103;
26887
+ if (!Number.isInteger(unixTsMs) || unixTsMs < 1 || unixTsMs > 281474976710655) {
26888
+ throw new RangeError("`unixTsMs` must be a 48-bit positive integer");
26889
+ } else if (rollbackAllowance < 0 || rollbackAllowance > 281474976710655) {
26890
+ throw new RangeError("`rollbackAllowance` out of reasonable range");
26891
+ }
26892
+ if (unixTsMs > this.timestamp) {
26893
+ this.timestamp = unixTsMs;
26894
+ this.resetCounter();
26895
+ } else if (unixTsMs + rollbackAllowance >= this.timestamp) {
26896
+ this.counter++;
26897
+ if (this.counter > MAX_COUNTER) {
26898
+ this.timestamp++;
26899
+ this.resetCounter();
26900
+ }
26901
+ } else {
26902
+ return void 0;
26903
+ }
26904
+ return UUID.fromFieldsV7(this.timestamp, Math.trunc(this.counter / 2 ** 30), this.counter & 2 ** 30 - 1, this.random.nextUint32());
26905
+ }
26906
+ /** Initializes the counter at a 42-bit random integer. */
26907
+ resetCounter() {
26908
+ this.counter = this.random.nextUint32() * 1024 + (this.random.nextUint32() & 1023);
26909
+ }
26910
+ /**
26911
+ * Generates a new UUIDv4 object utilizing the random number generator inside.
26912
+ *
26913
+ * @internal
26914
+ */
26915
+ generateV4() {
26916
+ const bytes = new Uint8Array(Uint32Array.of(this.random.nextUint32(), this.random.nextUint32(), this.random.nextUint32(), this.random.nextUint32()).buffer);
26917
+ bytes[6] = 64 | bytes[6] >>> 4;
26918
+ bytes[8] = 128 | bytes[8] >>> 2;
26919
+ return UUID.ofInner(bytes);
26920
+ }
26921
+ }
26922
+ const getDefaultRandom = () => {
26923
+ if (typeof crypto !== "undefined" && typeof crypto.getRandomValues !== "undefined") {
26924
+ return new BufferedCryptoRandom();
26925
+ } else {
26926
+ if (typeof UUIDV7_DENY_WEAK_RNG !== "undefined" && UUIDV7_DENY_WEAK_RNG) {
26927
+ throw new Error("no cryptographically strong RNG available");
26928
+ }
26929
+ return {
26930
+ nextUint32: () => Math.trunc(Math.random() * 65536) * 65536 + Math.trunc(Math.random() * 65536)
26931
+ };
26932
+ }
26933
+ };
26934
+ class BufferedCryptoRandom {
26935
+ constructor() {
26936
+ this.buffer = new Uint32Array(8);
26937
+ this.cursor = 65535;
26938
+ }
26939
+ nextUint32() {
26940
+ if (this.cursor >= this.buffer.length) {
26941
+ crypto.getRandomValues(this.buffer);
26942
+ this.cursor = 0;
26943
+ }
26944
+ return this.buffer[this.cursor++];
26945
+ }
26946
+ }
26947
+ let defaultGenerator;
26948
+ const uuidv7 = () => uuidv7obj().toString();
26949
+ const uuidv7obj = () => (defaultGenerator || (defaultGenerator = new V7Generator())).generate();
26652
26950
  const createCommunicationGroup = async (params) => {
26653
26951
  const response = await baseRequest(
26654
26952
  `${COMMUNICATION_GROUP_PATH}`,
@@ -26695,6 +26993,55 @@ const sendTestCommunication = async (id2, params) => {
26695
26993
  );
26696
26994
  return response.data;
26697
26995
  };
26996
+ const stripoKeys = {
26997
+ all: ["stripo"],
26998
+ token: () => [...stripoKeys.all, "token"],
26999
+ editorData: () => [...stripoKeys.all, "editorData"],
27000
+ templates: () => [...stripoKeys.all, "templates"],
27001
+ demoTemplate: () => [...stripoKeys.templates(), "demo"]
27002
+ };
27003
+ const getStripoToken = async () => {
27004
+ const response = await baseRequest(`${STRIPO_PATH}/token`);
27005
+ return response.data;
27006
+ };
27007
+ const getEditorData = async () => {
27008
+ const response = await baseRequest(
27009
+ `${STRIPO_PATH}/editor-data`
27010
+ );
27011
+ return response.data;
27012
+ };
27013
+ const getTemplate = async (automationId) => {
27014
+ const response = await baseRequest(
27015
+ `${STRIPO_PATH}/template/${automationId}`
27016
+ );
27017
+ return response.data;
27018
+ };
27019
+ const getTemplateForActionId = async (args) => {
27020
+ const { automationId, actionId } = args;
27021
+ const response = await baseRequest(
27022
+ `${STRIPO_PATH}/template/${automationId}/${actionId}`
27023
+ );
27024
+ return response.data;
27025
+ };
27026
+ const useStripoEditorData = () => {
27027
+ const queryClient = useQueryClient();
27028
+ const query = useQuery({
27029
+ queryKey: stripoKeys.editorData(),
27030
+ queryFn: getEditorData,
27031
+ ...CACHE_STANDARD
27032
+ });
27033
+ return {
27034
+ ...query,
27035
+ invalidateEditorData: () => queryClient.invalidateQueries({ queryKey: stripoKeys.editorData() })
27036
+ };
27037
+ };
27038
+ const useStripoTemplate = (automationId) => {
27039
+ return useQuery({
27040
+ queryKey: ["stripo", "templates", automationId],
27041
+ queryFn: () => getTemplate(automationId),
27042
+ ...CACHE_STANDARD
27043
+ });
27044
+ };
26698
27045
  const BasicLoader = ({
26699
27046
  text,
26700
27047
  textSpeed = 2e3,
@@ -26925,8 +27272,6 @@ const BigSelector = ({ onClick, title: title2, subtitle, icon, selected, disable
26925
27272
  const styles$3 = {
26926
27273
  title: "text-3xl mb-8",
26927
27274
  grid: "grid grid-cols-2 gap-6",
26928
- card: "relative p-6 rounded-lg border border-gray-200 cursor-pointer flex flex-col items-center text-center hover:border-indigo-500 transition-colors",
26929
- cardDisabled: "opacity-60 cursor-not-allowed hover:border-gray-200",
26930
27275
  container: "relative p-6 rounded-lg",
26931
27276
  iconWrapper: "mb-4 flex items-center justify-center",
26932
27277
  cardTitle: "text-lg font-medium mb-2",
@@ -27184,17 +27529,23 @@ const CreateAutomationModal = ({
27184
27529
  onSuccess: async (response) => {
27185
27530
  if (response.id) {
27186
27531
  const communicationGroup = await createCommunicationGroup({});
27532
+ const actionId = uuidv7();
27187
27533
  await updateAutomation(response.id, {
27188
27534
  action: [
27189
27535
  {
27190
27536
  action_type: "send_communication",
27191
27537
  action_metadata: {
27192
27538
  action_type: "send_communication",
27193
- communication_group_id: communicationGroup.id
27539
+ communication_group_id: communicationGroup.id,
27540
+ current_action_id: actionId
27194
27541
  }
27195
27542
  }
27196
27543
  ]
27197
27544
  });
27545
+ await getTemplateForActionId({
27546
+ automationId: response.id,
27547
+ actionId
27548
+ });
27198
27549
  onClose?.(response.id);
27199
27550
  } else {
27200
27551
  onClose?.("error");
@@ -28700,9 +29051,7 @@ async function loadRouteModule(route, routeModulesCache) {
28700
29051
  );
28701
29052
  console.error(error2);
28702
29053
  if (window.__reactRouterContext && window.__reactRouterContext.isSpaMode && // @ts-expect-error
28703
- void 0) {
28704
- throw error2;
28705
- }
29054
+ void 0) ;
28706
29055
  window.location.reload();
28707
29056
  return new Promise(() => {
28708
29057
  });
@@ -33668,8 +34017,6 @@ const lightFormatters = {
33668
34017
  }
33669
34018
  };
33670
34019
  const dayPeriodEnum$1 = {
33671
- am: "am",
33672
- pm: "pm",
33673
34020
  midnight: "midnight",
33674
34021
  noon: "noon",
33675
34022
  morning: "morning",
@@ -34463,6 +34810,18 @@ function formatDistance$1(date2, baseDate, options) {
34463
34810
  function formatDistanceToNow(date2, options) {
34464
34811
  return formatDistance$1(date2, constructNow(date2), options);
34465
34812
  }
34813
+ const formatCurrency = (amount) => {
34814
+ if (!amount) return "$0.00";
34815
+ const cleanAmount = typeof amount === "string" ? amount.replace(/,/g, "") : amount;
34816
+ const num = Number(cleanAmount);
34817
+ if (Number.isNaN(num)) return "$0.00";
34818
+ return new Intl.NumberFormat("en-US", {
34819
+ style: "currency",
34820
+ currency: "USD",
34821
+ minimumFractionDigits: 2,
34822
+ maximumFractionDigits: 2
34823
+ }).format(num);
34824
+ };
34466
34825
  const Table$1 = React.forwardRef(({ className: className2, ...props }, ref) => /* @__PURE__ */ jsx("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ jsx(
34467
34826
  "table",
34468
34827
  {
@@ -34627,7 +34986,6 @@ const secondary$1 = "reach-styles-module__secondary___VQ4iH";
34627
34986
  const destructive$1 = "reach-styles-module__destructive___RLaRD";
34628
34987
  const outline$1 = "reach-styles-module__outline___L2VtW";
34629
34988
  const google = "reach-styles-module__google___HcEij";
34630
- const dark = "reach-styles-module__dark___729i-";
34631
34989
  const date = "reach-styles-module__date___-6BC4";
34632
34990
  const sizeDefault = "reach-styles-module__sizeDefault___iGTp4";
34633
34991
  const sizeSm = "reach-styles-module__sizeSm___6T2oK";
@@ -34641,7 +34999,6 @@ const styles$2 = {
34641
34999
  destructive: destructive$1,
34642
35000
  outline: outline$1,
34643
35001
  google,
34644
- dark,
34645
35002
  date,
34646
35003
  sizeDefault,
34647
35004
  sizeSm,
@@ -34768,7 +35125,7 @@ const AutomationTable = memo$1(
34768
35125
  {
34769
35126
  header: "Stats",
34770
35127
  accessorKey: "emailsSent",
34771
- width: "25%",
35128
+ width: "10%",
34772
35129
  cell: (_2, row) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4 text-muted-foreground", children: [
34773
35130
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
34774
35131
  /* @__PURE__ */ jsx(IconDefinitions.EmailIcon, { className: "h-4 w-4" }),
@@ -34780,6 +35137,12 @@ const AutomationTable = memo$1(
34780
35137
  ] })
34781
35138
  ] })
34782
35139
  },
35140
+ {
35141
+ header: "Sales",
35142
+ accessorKey: "derived_revenue",
35143
+ width: "15%",
35144
+ cell: (_2, row) => /* @__PURE__ */ jsx("div", { className: "flex items-center gap-4 text-muted-foreground", children: /* @__PURE__ */ jsx("div", { className: "flex items-center gap-1", children: /* @__PURE__ */ jsx("span", { children: formatCurrency(row.derived_revenue || 0) }) }) })
35145
+ },
34783
35146
  {
34784
35147
  header: "Modified",
34785
35148
  accessorKey: "updated_at",
@@ -37079,8 +37442,6 @@ var formatters$2 = {
37079
37442
  }
37080
37443
  };
37081
37444
  var dayPeriodEnum = {
37082
- am: "am",
37083
- pm: "pm",
37084
37445
  midnight: "midnight",
37085
37446
  noon: "noon",
37086
37447
  morning: "morning",
@@ -41175,7 +41536,7 @@ function useId(deterministicId) {
41175
41536
  useLayoutEffect2(() => {
41176
41537
  setId((reactId) => reactId ?? String(count++));
41177
41538
  }, [deterministicId]);
41178
- return id2 ? `radix-${id2}` : "";
41539
+ return deterministicId || (id2 ? `radix-${id2}` : "");
41179
41540
  }
41180
41541
  var NAME$1 = "Arrow";
41181
41542
  var Arrow$1 = React.forwardRef((props, forwardedRef) => {
@@ -44721,7 +45082,7 @@ const AutomationContent = ({
44721
45082
  const emailChannelSender = channelSenders.results.find(
44722
45083
  (sender) => sender.id === emailChannelSenderId
44723
45084
  );
44724
- if (emailChannelSender && communicationGroup.email_html_body) {
45085
+ if (emailChannelSender && communicationGroup.email_html_body && communicationGroup.email_subject) {
44725
45086
  setEmailData({
44726
45087
  emailHtml: communicationGroup.email_html_body,
44727
45088
  emailSubject: communicationGroup.email_subject,
@@ -46462,17 +46823,6 @@ const minusIconInactive = "reach-styles-module__minusIconInactive___JtvVB";
46462
46823
  const label = "reach-styles-module__label___tiCMA";
46463
46824
  const labelActive = "reach-styles-module__labelActive___EXydD";
46464
46825
  const labelInactive = "reach-styles-module__labelInactive___g-J3r";
46465
- const navigationContainer = "reach-styles-module__navigationContainer___1T1JL";
46466
- const navigationButton = "reach-styles-module__navigationButton___9LW7I";
46467
- const sidebarContainer = "reach-styles-module__sidebarContainer___Yqwnv";
46468
- const sidebarNav = "reach-styles-module__sidebarNav___vGCaT";
46469
- const stepItem = "reach-styles-module__stepItem___c497m";
46470
- const stepItemActive = "reach-styles-module__stepItemActive___zQkts";
46471
- const stepItemCompleted = "reach-styles-module__stepItemCompleted___TiD-u";
46472
- const stepItemUpcoming = "reach-styles-module__stepItemUpcoming___Qu-vA";
46473
- const contentContainer = "reach-styles-module__contentContainer___g6SCE";
46474
- const contentArea = "reach-styles-module__contentArea___gczmB";
46475
- const poweredByReachContainer = "reach-styles-module__poweredByReachContainer___GCwod";
46476
46826
  const styles$1 = {
46477
46827
  stepIndicatorContainer,
46478
46828
  iconContainer,
@@ -46482,18 +46832,7 @@ const styles$1 = {
46482
46832
  minusIconInactive,
46483
46833
  label,
46484
46834
  labelActive,
46485
- labelInactive,
46486
- navigationContainer,
46487
- navigationButton,
46488
- sidebarContainer,
46489
- sidebarNav,
46490
- stepItem,
46491
- stepItemActive,
46492
- stepItemCompleted,
46493
- stepItemUpcoming,
46494
- contentContainer,
46495
- contentArea,
46496
- poweredByReachContainer
46835
+ labelInactive
46497
46836
  };
46498
46837
  const StepIndicator = ({
46499
46838
  label: label2,
@@ -46628,48 +46967,6 @@ const MissingSenderForPreview = ({
46628
46967
  ] })
46629
46968
  ] });
46630
46969
  };
46631
- const stripoKeys = {
46632
- all: ["stripo"],
46633
- token: () => [...stripoKeys.all, "token"],
46634
- editorData: () => [...stripoKeys.all, "editorData"],
46635
- templates: () => [...stripoKeys.all, "templates"],
46636
- demoTemplate: () => [...stripoKeys.templates(), "demo"]
46637
- };
46638
- const getStripoToken = async () => {
46639
- const response = await baseRequest(`${STRIPO_PATH}/token`);
46640
- return response.data;
46641
- };
46642
- const getEditorData = async () => {
46643
- const response = await baseRequest(
46644
- `${STRIPO_PATH}/editor-data`
46645
- );
46646
- return response.data;
46647
- };
46648
- const getTemplate = async (automationId) => {
46649
- const response = await baseRequest(
46650
- `${STRIPO_PATH}/template/${automationId}`
46651
- );
46652
- return response.data;
46653
- };
46654
- const useStripoEditorData = () => {
46655
- const queryClient = useQueryClient();
46656
- const query = useQuery({
46657
- queryKey: stripoKeys.editorData(),
46658
- queryFn: getEditorData,
46659
- ...CACHE_STANDARD
46660
- });
46661
- return {
46662
- ...query,
46663
- invalidateEditorData: () => queryClient.invalidateQueries({ queryKey: stripoKeys.editorData() })
46664
- };
46665
- };
46666
- const useStripoTemplate = (automationId) => {
46667
- return useQuery({
46668
- queryKey: ["stripo", "templates", automationId],
46669
- queryFn: () => getTemplate(automationId),
46670
- ...CACHE_STANDARD
46671
- });
46672
- };
46673
46970
  const StripoEditor = ({ containerRef, stripoDialogDimensions, showSaving }) => {
46674
46971
  return /* @__PURE__ */ jsxs("div", { className: "w-full h-full flex flex-col items-center justify-center", children: [
46675
46972
  /* @__PURE__ */ jsx(
@@ -49874,6 +50171,10 @@ const ViewAutomationHeaderContainer = ({
49874
50171
  /* @__PURE__ */ jsx("div", { className: "text-sm text-muted-foreground", children: "Date Created" }),
49875
50172
  /* @__PURE__ */ jsx("div", { className: "font-medium", children: format$1(new Date(automation2.created_at), "h:mma MM/dd/yy") })
49876
50173
  ] }),
50174
+ /* @__PURE__ */ jsxs("div", { children: [
50175
+ /* @__PURE__ */ jsx("div", { className: "text-sm text-muted-foreground", children: "Sales" }),
50176
+ /* @__PURE__ */ jsx("div", { className: "font-medium", children: formatCurrency(automation2.derived_revenue) })
50177
+ ] }),
49877
50178
  automation2.trigger_type === AutomationTriggerType.ONE_TIME && isOneTimeTriggerMetadata(automation2.trigger_metadata) && /* @__PURE__ */ jsxs("div", { children: [
49878
50179
  /* @__PURE__ */ jsx("div", { className: "text-sm text-muted-foreground", children: "Type" }),
49879
50180
  /* @__PURE__ */ jsx("div", { className: "font-medium", children: "One Time" })
@@ -49882,7 +50183,7 @@ const ViewAutomationHeaderContainer = ({
49882
50183
  /* @__PURE__ */ jsx("div", { className: "text-sm text-muted-foreground", children: "Type" }),
49883
50184
  /* @__PURE__ */ jsx("div", { className: "font-medium", children: "Trigger Based" })
49884
50185
  ] }),
49885
- /* @__PURE__ */ jsx("div", { className: "col-span-1 @[400px]:col-span-2", children: /* @__PURE__ */ jsx("div", { className: "border-t border-gray-200" }) }),
50186
+ automation2.trigger_type === AutomationTriggerType.ONE_TIME && isOneTimeTriggerMetadata(automation2.trigger_metadata) && /* @__PURE__ */ jsx("div", { className: "col-span-1 @[400px]:col-span-2", children: /* @__PURE__ */ jsx("div", { className: "border-t border-gray-200" }) }),
49886
50187
  automation2.trigger_type === AutomationTriggerType.ONE_TIME && isOneTimeTriggerMetadata(automation2.trigger_metadata) && automation2.trigger_metadata.scheduled_at && /* @__PURE__ */ jsxs("div", { children: [
49887
50188
  /* @__PURE__ */ jsx("div", { className: "text-sm text-gray-600", children: "Scheduled For" }),
49888
50189
  /* @__PURE__ */ jsx("div", { className: "font-medium", children: format$1(
@@ -50000,28 +50301,28 @@ Object.values(
50000
50301
  );
50001
50302
  export {
50002
50303
  $TRACK as $,
50003
- displayValue as A,
50004
- batch as B,
50005
- clearDelegatedEvents as C,
50006
- Dynamic as D,
50007
- untrack as E,
50304
+ getQueryStatusColorByLabel as A,
50305
+ displayValue as B,
50306
+ convertRemToPixels as C,
50307
+ untrack as D,
50308
+ useTransition as E,
50008
50309
  For as F,
50009
- createComputed as G,
50010
- serialize$1 as H,
50011
- Index as I,
50012
- updateNestedDataByPath as J,
50013
- convertRemToPixels as K,
50014
- getSidedProp as L,
50015
- getQueryStatusLabel as M,
50016
- createRoot as N,
50017
- addEventListener as O,
50310
+ spread as G,
50311
+ mergeProps$7 as H,
50312
+ createRoot as I,
50313
+ serialize$1 as J,
50314
+ Index as K,
50315
+ updateNestedDataByPath as L,
50316
+ addEventListener as M,
50317
+ stringify as N,
50318
+ Match as O,
50018
50319
  Portal$9 as P,
50019
- stringify as Q,
50020
- Match as R,
50320
+ Switch$2 as Q,
50321
+ deleteNestedDataByPath as R,
50021
50322
  Show as S,
50022
- Switch$2 as T,
50023
- deleteNestedDataByPath as U,
50024
- useTransition as V,
50323
+ splitProps as T,
50324
+ Dynamic as U,
50325
+ createComputed as V,
50025
50326
  AutomationTriggerType as W,
50026
50327
  ReachProvider as X,
50027
50328
  CreateAutomationDialog as Y,
@@ -50030,29 +50331,29 @@ export {
50030
50331
  createComponent as a,
50031
50332
  SegmentBuilderDialog as a0,
50032
50333
  ViewAutomation as a1,
50033
- createSignal as b,
50334
+ createContext as b,
50034
50335
  createMemo as c,
50035
- delegateEvents as d,
50336
+ createSignal as d,
50036
50337
  createEffect as e,
50037
- mergeProps$7 as f,
50338
+ createRenderEffect as f,
50038
50339
  getPreferredColorScheme as g,
50039
- splitProps as h,
50040
- createContext as i,
50041
- createRenderEffect as j,
50042
- setAttribute as k,
50043
- createUniqueId as l,
50340
+ className as h,
50341
+ insert as i,
50342
+ clearDelegatedEvents as j,
50343
+ delegateEvents as k,
50344
+ onCleanup as l,
50044
50345
  mutationSortFns as m,
50045
- onCleanup as n,
50046
- on as o,
50047
- onMount as p,
50048
- use as q,
50049
- insert as r,
50346
+ on as n,
50347
+ onMount as o,
50348
+ setAttribute as p,
50349
+ getSidedProp as q,
50350
+ use as r,
50050
50351
  sortFns as s,
50051
50352
  template as t,
50052
50353
  useContext as u,
50053
- className as v,
50054
- getQueryStatusColor as w,
50055
- getMutationStatusColor as x,
50056
- spread as y,
50057
- getQueryStatusColorByLabel as z
50354
+ createUniqueId as v,
50355
+ batch as w,
50356
+ getQueryStatusLabel as x,
50357
+ getMutationStatusColor as y,
50358
+ getQueryStatusColor as z
50058
50359
  };