@delopay/sdk 0.228.0 → 0.230.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/internal.cjs CHANGED
@@ -150,6 +150,11 @@ __export(internal_exports, {
150
150
  UNKNOWN_SECTION_ORDER: () => UNKNOWN_SECTION_ORDER,
151
151
  WCAG_AA_TEXT: () => WCAG_AA_TEXT,
152
152
  WCAG_AA_UI: () => WCAG_AA_UI,
153
+ WHOP_ACCENT_COLORS: () => WHOP_ACCENT_COLORS,
154
+ WHOP_BILLING_DETAILS: () => WHOP_BILLING_DETAILS,
155
+ WHOP_CARD_PRESETS: () => WHOP_CARD_PRESETS,
156
+ WHOP_EMAIL_LABELS: () => WHOP_EMAIL_LABELS,
157
+ WHOP_GRAY_COLORS: () => WHOP_GRAY_COLORS,
153
158
  Webhooks: () => Webhooks,
154
159
  WhopResolutionCases: () => WhopResolutionCases,
155
160
  airwallexCardLayout: () => airwallexCardLayout,
@@ -223,6 +228,7 @@ __export(internal_exports, {
223
228
  leaf: () => leaf,
224
229
  logoDimensions: () => logoDimensions,
225
230
  nativePaneMethodInfo: () => nativePaneMethodInfo,
231
+ nearestWhopAccent: () => nearestWhopAccent,
226
232
  noticeText: () => noticeText,
227
233
  noticesIn: () => noticesIn,
228
234
  offerablePaneMethods: () => offerablePaneMethods,
@@ -243,6 +249,7 @@ __export(internal_exports, {
243
249
  resolveGooglePayButtonColor: () => resolveGooglePayButtonColor,
244
250
  resolveNoticesAndBadges: () => resolveNoticesAndBadges,
245
251
  resolveStripeTheme: () => resolveStripeTheme,
252
+ resolveWhopAccent: () => resolveWhopAccent,
246
253
  ruleMatchToTree: () => ruleMatchToTree,
247
254
  sanitizeCustomCss: () => sanitizeCustomCss,
248
255
  sectionLabel: () => sectionLabel,
@@ -258,7 +265,9 @@ __export(internal_exports, {
258
265
  validSectionOrder: () => validSectionOrder,
259
266
  validatePanes: () => validatePanes,
260
267
  verticalGapValue: () => verticalGapValue,
261
- visibleCustomFields: () => visibleCustomFields
268
+ visibleCustomFields: () => visibleCustomFields,
269
+ whopAccentSwatch: () => whopAccentSwatch,
270
+ whopCardElement: () => whopCardElement
262
271
  });
263
272
  module.exports = __toCommonJS(internal_exports);
264
273
 
@@ -8790,6 +8799,133 @@ var GOOGLE_PAY_BUTTON_TYPES = [
8790
8799
  "subscribe",
8791
8800
  "donate"
8792
8801
  ];
8802
+ var WHOP_CARD_PRESETS = ["accordion", "tiles", "card_stacked", "card_compact"];
8803
+ function whopCardElement(preset) {
8804
+ switch (preset) {
8805
+ case "tiles":
8806
+ return { element: "payment", layout: "horizontal" };
8807
+ case "card_stacked":
8808
+ return { element: "card", layout: "stacked" };
8809
+ case "card_compact":
8810
+ return { element: "card", layout: "compact" };
8811
+ default:
8812
+ return { element: "payment", layout: "accordion" };
8813
+ }
8814
+ }
8815
+ var WHOP_ACCENT_COLORS = [
8816
+ "auto",
8817
+ "gray",
8818
+ "blue",
8819
+ "indigo",
8820
+ "iris",
8821
+ "violet",
8822
+ "purple",
8823
+ "plum",
8824
+ "pink",
8825
+ "crimson",
8826
+ "ruby",
8827
+ "red",
8828
+ "tomato",
8829
+ "orange",
8830
+ "amber",
8831
+ "yellow",
8832
+ "lime",
8833
+ "grass",
8834
+ "green",
8835
+ "jade",
8836
+ "teal",
8837
+ "cyan",
8838
+ "sky",
8839
+ "mint",
8840
+ "brown",
8841
+ "bronze",
8842
+ "gold"
8843
+ ];
8844
+ var WHOP_ACCENT_SWATCHES = {
8845
+ blue: "#0090ff",
8846
+ indigo: "#3e63dd",
8847
+ iris: "#5b5bd6",
8848
+ violet: "#6e56cf",
8849
+ purple: "#8e4ec6",
8850
+ plum: "#ab4aba",
8851
+ pink: "#d6409f",
8852
+ crimson: "#e93d82",
8853
+ ruby: "#e54666",
8854
+ red: "#e5484d",
8855
+ tomato: "#e54d2e",
8856
+ orange: "#f76b15",
8857
+ amber: "#ffc53d",
8858
+ yellow: "#ffe629",
8859
+ lime: "#bdee63",
8860
+ grass: "#46a758",
8861
+ green: "#30a46c",
8862
+ jade: "#29a383",
8863
+ teal: "#12a594",
8864
+ cyan: "#00a2c7",
8865
+ sky: "#7ce2fe",
8866
+ mint: "#86ead4",
8867
+ brown: "#ad7f58",
8868
+ bronze: "#a18072",
8869
+ gold: "#978365"
8870
+ };
8871
+ function whopAccentSwatch(accent) {
8872
+ return accent === "gray" ? "#8d8d8d" : WHOP_ACCENT_SWATCHES[accent];
8873
+ }
8874
+ function hexRgb(hex) {
8875
+ const raw = hex.trim().replace(/^#/, "");
8876
+ const full = raw.length === 3 ? raw.replace(/./g, (c) => c + c) : raw;
8877
+ if (!/^[0-9a-f]{6}$/i.test(full)) return null;
8878
+ const n = Number.parseInt(full, 16);
8879
+ return [n >> 16 & 255, n >> 8 & 255, n & 255];
8880
+ }
8881
+ function oklab([r, g, b]) {
8882
+ const lin = (c) => {
8883
+ const v = c / 255;
8884
+ return v <= 0.04045 ? v / 12.92 : ((v + 0.055) / 1.055) ** 2.4;
8885
+ };
8886
+ const [lr, lg, lb] = [lin(r), lin(g), lin(b)];
8887
+ const l = Math.cbrt(0.4122214708 * lr + 0.5363325363 * lg + 0.0514459929 * lb);
8888
+ const m = Math.cbrt(0.2119034982 * lr + 0.6806995451 * lg + 0.1073969566 * lb);
8889
+ const s2 = Math.cbrt(0.0883024619 * lr + 0.2817188376 * lg + 0.6299787005 * lb);
8890
+ return [
8891
+ 0.2104542553 * l + 0.793617785 * m - 0.0040720468 * s2,
8892
+ 1.9779984951 * l - 2.428592205 * m + 0.4505937099 * s2,
8893
+ 0.0259040371 * l + 0.7827717662 * m - 0.808675766 * s2
8894
+ ];
8895
+ }
8896
+ function nearestWhopAccent(hex) {
8897
+ const rgb = hexRgb(hex);
8898
+ if (!rgb) return "blue";
8899
+ const [L, a, b] = oklab(rgb);
8900
+ if (Math.hypot(a, b) < 0.04) return "gray";
8901
+ let best = "blue";
8902
+ let bestDistance = Number.POSITIVE_INFINITY;
8903
+ for (const [name, swatch] of Object.entries(WHOP_ACCENT_SWATCHES)) {
8904
+ const swatchRgb = hexRgb(swatch);
8905
+ if (!swatchRgb) continue;
8906
+ const [sL, sa, sb] = oklab(swatchRgb);
8907
+ const distance = Math.hypot((L - sL) * 0.5, a - sa, b - sb);
8908
+ if (distance < bestDistance) {
8909
+ bestDistance = distance;
8910
+ best = name;
8911
+ }
8912
+ }
8913
+ return best;
8914
+ }
8915
+ function resolveWhopAccent(accent, primaryHex) {
8916
+ return accent === "auto" ? nearestWhopAccent(primaryHex) : accent;
8917
+ }
8918
+ var WHOP_EMAIL_LABELS = ["above", "floating"];
8919
+ var WHOP_GRAY_COLORS = [
8920
+ "auto",
8921
+ "gray",
8922
+ "mauve",
8923
+ "slate",
8924
+ "sage",
8925
+ "olive",
8926
+ "sand"
8927
+ ];
8928
+ var WHOP_BILLING_DETAILS = ["minimal", "full"];
8793
8929
 
8794
8930
  // src/branding.ts
8795
8931
  function surchargeShowsLabel(labelMode, style, position) {
@@ -9543,6 +9679,16 @@ var DEFAULT_BRANDING_BASE = {
9543
9679
  micropaymentFieldFontSize: "md",
9544
9680
  micropaymentFieldWeight: "regular",
9545
9681
  micropaymentFocusRing: "strong",
9682
+ whopCardPreset: "accordion",
9683
+ whopAccentColor: "auto",
9684
+ whopGrayColor: "auto",
9685
+ whopBillingDetails: "minimal",
9686
+ whopSeparated: false,
9687
+ whopEmailLabel: "above",
9688
+ whopFieldChrome: "outlined",
9689
+ whopFieldFontSize: "md",
9690
+ whopFieldWeight: "regular",
9691
+ whopFocusRing: "strong",
9546
9692
  customCss: ""
9547
9693
  };
9548
9694
  var DEFAULT_BRANDING = {
@@ -10485,6 +10631,52 @@ function decodeBranding(source) {
10485
10631
  CARD_FOCUS_RINGS,
10486
10632
  DEFAULT_BRANDING.micropaymentFocusRing
10487
10633
  ),
10634
+ whopCardPreset: pickEnum(
10635
+ extras["whopCardPreset"],
10636
+ WHOP_CARD_PRESETS,
10637
+ DEFAULT_BRANDING.whopCardPreset
10638
+ ),
10639
+ whopAccentColor: pickEnum(
10640
+ extras["whopAccentColor"],
10641
+ WHOP_ACCENT_COLORS,
10642
+ DEFAULT_BRANDING.whopAccentColor
10643
+ ),
10644
+ whopGrayColor: pickEnum(
10645
+ extras["whopGrayColor"],
10646
+ WHOP_GRAY_COLORS,
10647
+ DEFAULT_BRANDING.whopGrayColor
10648
+ ),
10649
+ whopBillingDetails: pickEnum(
10650
+ extras["whopBillingDetails"],
10651
+ WHOP_BILLING_DETAILS,
10652
+ DEFAULT_BRANDING.whopBillingDetails
10653
+ ),
10654
+ whopSeparated: parseBool(extras["whopSeparated"], DEFAULT_BRANDING.whopSeparated),
10655
+ whopEmailLabel: pickEnum(
10656
+ extras["whopEmailLabel"],
10657
+ WHOP_EMAIL_LABELS,
10658
+ DEFAULT_BRANDING.whopEmailLabel
10659
+ ),
10660
+ whopFieldChrome: pickEnum(
10661
+ extras["whopFieldChrome"],
10662
+ CARD_FIELD_CHROMES,
10663
+ DEFAULT_BRANDING.whopFieldChrome
10664
+ ),
10665
+ whopFieldFontSize: pickEnum(
10666
+ extras["whopFieldFontSize"],
10667
+ CARD_FIELD_FONT_SIZES,
10668
+ DEFAULT_BRANDING.whopFieldFontSize
10669
+ ),
10670
+ whopFieldWeight: pickEnum(
10671
+ extras["whopFieldWeight"],
10672
+ CARD_FIELD_WEIGHTS,
10673
+ DEFAULT_BRANDING.whopFieldWeight
10674
+ ),
10675
+ whopFocusRing: pickEnum(
10676
+ extras["whopFocusRing"],
10677
+ CARD_FOCUS_RINGS,
10678
+ DEFAULT_BRANDING.whopFocusRing
10679
+ ),
10488
10680
  paypalValidTint: parseBool(extras["paypalValidTint"], DEFAULT_BRANDING.paypalValidTint),
10489
10681
  nomupayFormStyle: pickEnum(
10490
10682
  extras["nomupayFormStyle"],
@@ -10632,6 +10824,16 @@ function encodeBranding(branding, base) {
10632
10824
  micropaymentFieldFontSize: branding.micropaymentFieldFontSize,
10633
10825
  micropaymentFieldWeight: branding.micropaymentFieldWeight,
10634
10826
  micropaymentFocusRing: branding.micropaymentFocusRing,
10827
+ whopCardPreset: branding.whopCardPreset,
10828
+ whopAccentColor: branding.whopAccentColor,
10829
+ whopGrayColor: branding.whopGrayColor,
10830
+ whopBillingDetails: branding.whopBillingDetails,
10831
+ whopSeparated: String(branding.whopSeparated),
10832
+ whopEmailLabel: branding.whopEmailLabel,
10833
+ whopFieldChrome: branding.whopFieldChrome,
10834
+ whopFieldFontSize: branding.whopFieldFontSize,
10835
+ whopFieldWeight: branding.whopFieldWeight,
10836
+ whopFocusRing: branding.whopFocusRing,
10635
10837
  paypalValidTint: String(branding.paypalValidTint),
10636
10838
  nomupayFormStyle: branding.nomupayFormStyle,
10637
10839
  nomupayShowLabels: String(branding.nomupayShowLabels),
@@ -11039,6 +11241,52 @@ function parseImportedBranding(raw) {
11039
11241
  CARD_FOCUS_RINGS,
11040
11242
  dflt.micropaymentFocusRing
11041
11243
  ),
11244
+ whopCardPreset: pickEnum(
11245
+ root["whopCardPreset"],
11246
+ WHOP_CARD_PRESETS,
11247
+ dflt.whopCardPreset
11248
+ ),
11249
+ whopAccentColor: pickEnum(
11250
+ root["whopAccentColor"],
11251
+ WHOP_ACCENT_COLORS,
11252
+ dflt.whopAccentColor
11253
+ ),
11254
+ whopGrayColor: pickEnum(
11255
+ root["whopGrayColor"],
11256
+ WHOP_GRAY_COLORS,
11257
+ dflt.whopGrayColor
11258
+ ),
11259
+ whopBillingDetails: pickEnum(
11260
+ root["whopBillingDetails"],
11261
+ WHOP_BILLING_DETAILS,
11262
+ dflt.whopBillingDetails
11263
+ ),
11264
+ whopSeparated: parseBool(root["whopSeparated"], dflt.whopSeparated),
11265
+ whopEmailLabel: pickEnum(
11266
+ root["whopEmailLabel"],
11267
+ WHOP_EMAIL_LABELS,
11268
+ dflt.whopEmailLabel
11269
+ ),
11270
+ whopFieldChrome: pickEnum(
11271
+ root["whopFieldChrome"],
11272
+ CARD_FIELD_CHROMES,
11273
+ dflt.whopFieldChrome
11274
+ ),
11275
+ whopFieldFontSize: pickEnum(
11276
+ root["whopFieldFontSize"],
11277
+ CARD_FIELD_FONT_SIZES,
11278
+ dflt.whopFieldFontSize
11279
+ ),
11280
+ whopFieldWeight: pickEnum(
11281
+ root["whopFieldWeight"],
11282
+ CARD_FIELD_WEIGHTS,
11283
+ dflt.whopFieldWeight
11284
+ ),
11285
+ whopFocusRing: pickEnum(
11286
+ root["whopFocusRing"],
11287
+ CARD_FOCUS_RINGS,
11288
+ dflt.whopFocusRing
11289
+ ),
11042
11290
  paypalValidTint: parseBool(root["paypalValidTint"], dflt.paypalValidTint),
11043
11291
  nomupayFormStyle: pickEnum(
11044
11292
  root["nomupayFormStyle"],
@@ -13902,6 +14150,11 @@ var DelopayInternal = class extends Delopay {
13902
14150
  UNKNOWN_SECTION_ORDER,
13903
14151
  WCAG_AA_TEXT,
13904
14152
  WCAG_AA_UI,
14153
+ WHOP_ACCENT_COLORS,
14154
+ WHOP_BILLING_DETAILS,
14155
+ WHOP_CARD_PRESETS,
14156
+ WHOP_EMAIL_LABELS,
14157
+ WHOP_GRAY_COLORS,
13905
14158
  Webhooks,
13906
14159
  WhopResolutionCases,
13907
14160
  airwallexCardLayout,
@@ -13975,6 +14228,7 @@ var DelopayInternal = class extends Delopay {
13975
14228
  leaf,
13976
14229
  logoDimensions,
13977
14230
  nativePaneMethodInfo,
14231
+ nearestWhopAccent,
13978
14232
  noticeText,
13979
14233
  noticesIn,
13980
14234
  offerablePaneMethods,
@@ -13995,6 +14249,7 @@ var DelopayInternal = class extends Delopay {
13995
14249
  resolveGooglePayButtonColor,
13996
14250
  resolveNoticesAndBadges,
13997
14251
  resolveStripeTheme,
14252
+ resolveWhopAccent,
13998
14253
  ruleMatchToTree,
13999
14254
  sanitizeCustomCss,
14000
14255
  sectionLabel,
@@ -14010,6 +14265,8 @@ var DelopayInternal = class extends Delopay {
14010
14265
  validSectionOrder,
14011
14266
  validatePanes,
14012
14267
  verticalGapValue,
14013
- visibleCustomFields
14268
+ visibleCustomFields,
14269
+ whopAccentSwatch,
14270
+ whopCardElement
14014
14271
  });
14015
14272
  //# sourceMappingURL=internal.cjs.map