@nuskin/nextgen-header 1.31.0 → 1.33.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.
@@ -87388,6 +87388,169 @@ module.exports = values;
87388
87388
 
87389
87389
  /***/ },
87390
87390
 
87391
+ /***/ 5925
87392
+ (module, __unused_webpack_exports, __webpack_require__) {
87393
+
87394
+ "use strict";
87395
+
87396
+
87397
+ var _warn = __webpack_require__(8441);
87398
+
87399
+ var _warn2 = _interopRequireDefault(_warn);
87400
+
87401
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
87402
+
87403
+ // https://developers.google.com/tag-manager/quickstart
87404
+
87405
+ var Snippets = {
87406
+ tags: function tags(_ref) {
87407
+ var id = _ref.id,
87408
+ events = _ref.events,
87409
+ dataLayer = _ref.dataLayer,
87410
+ dataLayerName = _ref.dataLayerName,
87411
+ preview = _ref.preview,
87412
+ auth = _ref.auth;
87413
+
87414
+ var gtm_auth = '&gtm_auth=' + auth;
87415
+ var gtm_preview = '&gtm_preview=' + preview;
87416
+
87417
+ if (!id) (0, _warn2.default)('GTM Id is required');
87418
+
87419
+ var iframe = '\n <iframe src="https://www.googletagmanager.com/ns.html?id=' + id + gtm_auth + gtm_preview + '&gtm_cookies_win=x"\n height="0" width="0" style="display:none;visibility:hidden" id="tag-manager"></iframe>';
87420
+
87421
+ var script = '\n (function(w,d,s,l,i){w[l]=w[l]||[];\n w[l].push({\'gtm.start\': new Date().getTime(),event:\'gtm.js\', ' + JSON.stringify(events).slice(1, -1) + '});\n var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!=\'dataLayer\'?\'&l=\'+l:\'\';\n j.async=true;j.src=\'https://www.googletagmanager.com/gtm.js?id=\'+i+dl+\'' + gtm_auth + gtm_preview + '&gtm_cookies_win=x\';\n f.parentNode.insertBefore(j,f);\n })(window,document,\'script\',\'' + dataLayerName + '\',\'' + id + '\');';
87422
+
87423
+ var dataLayerVar = this.dataLayer(dataLayer, dataLayerName);
87424
+
87425
+ return {
87426
+ iframe: iframe,
87427
+ script: script,
87428
+ dataLayerVar: dataLayerVar
87429
+ };
87430
+ },
87431
+ dataLayer: function dataLayer(_dataLayer, dataLayerName) {
87432
+ return '\n window.' + dataLayerName + ' = window.' + dataLayerName + ' || [];\n window.' + dataLayerName + '.push(' + JSON.stringify(_dataLayer) + ')';
87433
+ }
87434
+ };
87435
+
87436
+ module.exports = Snippets;
87437
+
87438
+ /***/ },
87439
+
87440
+ /***/ 6324
87441
+ (module, __unused_webpack_exports, __webpack_require__) {
87442
+
87443
+ "use strict";
87444
+
87445
+
87446
+ var _Snippets = __webpack_require__(5925);
87447
+
87448
+ var _Snippets2 = _interopRequireDefault(_Snippets);
87449
+
87450
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
87451
+
87452
+ var TagManager = {
87453
+ dataScript: function dataScript(dataLayer) {
87454
+ var script = document.createElement('script');
87455
+ script.innerHTML = dataLayer;
87456
+ return script;
87457
+ },
87458
+ gtm: function gtm(args) {
87459
+ var snippets = _Snippets2.default.tags(args);
87460
+
87461
+ var noScript = function noScript() {
87462
+ var noscript = document.createElement('noscript');
87463
+ noscript.innerHTML = snippets.iframe;
87464
+ return noscript;
87465
+ };
87466
+
87467
+ var script = function script() {
87468
+ var script = document.createElement('script');
87469
+ script.innerHTML = snippets.script;
87470
+ return script;
87471
+ };
87472
+
87473
+ var dataScript = this.dataScript(snippets.dataLayerVar);
87474
+
87475
+ return {
87476
+ noScript: noScript,
87477
+ script: script,
87478
+ dataScript: dataScript
87479
+ };
87480
+ },
87481
+ initialize: function initialize(_ref) {
87482
+ var gtmId = _ref.gtmId,
87483
+ _ref$events = _ref.events,
87484
+ events = _ref$events === undefined ? {} : _ref$events,
87485
+ dataLayer = _ref.dataLayer,
87486
+ _ref$dataLayerName = _ref.dataLayerName,
87487
+ dataLayerName = _ref$dataLayerName === undefined ? 'dataLayer' : _ref$dataLayerName,
87488
+ _ref$auth = _ref.auth,
87489
+ auth = _ref$auth === undefined ? '' : _ref$auth,
87490
+ _ref$preview = _ref.preview,
87491
+ preview = _ref$preview === undefined ? '' : _ref$preview;
87492
+
87493
+ var gtm = this.gtm({
87494
+ id: gtmId,
87495
+ events: events,
87496
+ dataLayer: dataLayer || undefined,
87497
+ dataLayerName: dataLayerName,
87498
+ auth: auth,
87499
+ preview: preview
87500
+ });
87501
+ if (dataLayer) document.head.appendChild(gtm.dataScript);
87502
+ document.head.insertBefore(gtm.script(), document.head.childNodes[0]);
87503
+ document.body.insertBefore(gtm.noScript(), document.body.childNodes[0]);
87504
+ },
87505
+ dataLayer: function dataLayer(_ref2) {
87506
+ var _dataLayer = _ref2.dataLayer,
87507
+ _ref2$dataLayerName = _ref2.dataLayerName,
87508
+ dataLayerName = _ref2$dataLayerName === undefined ? 'dataLayer' : _ref2$dataLayerName;
87509
+
87510
+ if (window[dataLayerName]) return window[dataLayerName].push(_dataLayer);
87511
+ var snippets = _Snippets2.default.dataLayer(_dataLayer, dataLayerName);
87512
+ var dataScript = this.dataScript(snippets);
87513
+ document.head.insertBefore(dataScript, document.head.childNodes[0]);
87514
+ }
87515
+ };
87516
+
87517
+ module.exports = TagManager;
87518
+
87519
+ /***/ },
87520
+
87521
+ /***/ 1003
87522
+ (module, __unused_webpack_exports, __webpack_require__) {
87523
+
87524
+ "use strict";
87525
+
87526
+
87527
+ var _TagManager = __webpack_require__(6324);
87528
+
87529
+ var _TagManager2 = _interopRequireDefault(_TagManager);
87530
+
87531
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
87532
+
87533
+ module.exports = _TagManager2.default;
87534
+
87535
+ /***/ },
87536
+
87537
+ /***/ 8441
87538
+ (__unused_webpack_module, exports) {
87539
+
87540
+ "use strict";
87541
+
87542
+
87543
+ Object.defineProperty(exports, "__esModule", ({
87544
+ value: true
87545
+ }));
87546
+ var warn = function warn(s) {
87547
+ console.warn('[react-gtm]', s);
87548
+ };
87549
+
87550
+ exports["default"] = warn;
87551
+
87552
+ /***/ },
87553
+
87391
87554
  /***/ 9223
87392
87555
  (__unused_webpack_module, exports, __webpack_require__) {
87393
87556
 
@@ -100587,62 +100750,73 @@ var colors = {
100587
100750
  accentHover: "#0d9488"
100588
100751
  };
100589
100752
  var HeaderRoot = /*#__PURE__*/createStyled("header", true ? {
100590
- target: "e1607tyl42"
100753
+ target: "e1607tyl45"
100591
100754
  } : 0)("box-sizing:border-box;width:100%;font-family:\"Inter\",system-ui,-apple-system,BlinkMacSystemFont,sans-serif;color:", colors.text, ";background:", colors.surface, ";border-bottom:1px solid ", colors.borderLight, ";*,*::before,*::after{box-sizing:border-box;}button{font:inherit;cursor:pointer;}button:disabled{cursor:not-allowed;opacity:0.55;}" + ( true ? "" : 0));
100592
100755
 
100593
100756
  /** Logo (left) + utility + search (stacked right) */
100594
100757
  var TopHeaderRow = /*#__PURE__*/createStyled("div", true ? {
100595
- target: "e1607tyl41"
100758
+ target: "e1607tyl44"
100596
100759
  } : 0)( true ? {
100597
100760
  name: "1dro8oz",
100598
100761
  styles: "display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem 0.5rem;padding:1rem clamp(1rem, 4vw, 2rem) 0.75rem;max-width:1440px;margin:0 auto;@media (min-width: 1025px){gap:1rem 2rem;}"
100599
100762
  } : 0);
100600
100763
  var LogoSlot = /*#__PURE__*/createStyled("div", true ? {
100601
- target: "e1607tyl40"
100764
+ target: "e1607tyl43"
100602
100765
  } : 0)("flex:0 0 auto;align-self:center;@media (max-width: 1024px){margin-right:auto;}[data-copy-loading]{display:flex;align-items:center;min-height:2.75rem;}.header-copy-placeholder{color:", colors.muted, ";letter-spacing:0.02em;}" + ( true ? "" : 0));
100603
100766
  var WordmarkButton = /*#__PURE__*/createStyled("button", true ? {
100604
- target: "e1607tyl39"
100767
+ target: "e1607tyl42"
100605
100768
  } : 0)("margin:0;padding:0.25rem 0;border:none;background:none;font-size:1.5rem;font-weight:700;letter-spacing:0.2em;color:", colors.text, ";text-transform:uppercase;line-height:1.2;transition:opacity 0.15s ease;&:hover{opacity:0.72;}" + ( true ? "" : 0));
100606
100769
 
100607
100770
  /** Utility row only (search moved to nav row) */
100608
100771
  var RightHeaderCluster = /*#__PURE__*/createStyled("div", true ? {
100609
- target: "e1607tyl38"
100772
+ target: "e1607tyl41"
100610
100773
  } : 0)( true ? {
100611
100774
  name: "qu4zte",
100612
100775
  styles: "display:none;@media (min-width: 1025px){display:flex;flex-direction:row;align-items:center;justify-content:flex-end;gap:0.35rem 1rem;flex:1 1 auto;}"
100613
100776
  } : 0);
100614
100777
  var UtilityBar = /*#__PURE__*/createStyled("div", true ? {
100615
- target: "e1607tyl37"
100778
+ target: "e1607tyl40"
100616
100779
  } : 0)("display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:0.35rem 1rem;width:100%;font-size:0.8125rem;line-height:1.35;color:", colors.text, ";" + ( true ? "" : 0));
100617
100780
  var UtilityBarDivider = /*#__PURE__*/createStyled("span", true ? {
100618
- target: "e1607tyl36"
100781
+ target: "e1607tyl39"
100619
100782
  } : 0)("color:", colors.muted, ";user-select:none;" + ( true ? "" : 0));
100620
100783
  var UtilityButton = /*#__PURE__*/createStyled("button", true ? {
100621
- target: "e1607tyl35"
100784
+ target: "e1607tyl38"
100622
100785
  } : 0)( true ? {
100623
100786
  name: "1f5cjb2",
100624
100787
  styles: "display:inline-flex;align-items:center;gap:0.35rem;margin:0;padding:0.2rem 0.35rem;border:none;border-radius:4px;background:transparent;color:inherit;white-space:nowrap;transition:background 0.15s ease;&:not(:disabled):hover{background:rgba(0, 0, 0, 0.05);}svg{flex-shrink:0;opacity:0.85;}"
100625
100788
  } : 0);
100789
+ var LoyaltyPillInner = /*#__PURE__*/createStyled("span", true ? {
100790
+ target: "e1607tyl37"
100791
+ } : 0)( true ? {
100792
+ name: "99qhl1",
100793
+ styles: "display:inline-flex;align-items:center;gap:0;color:inherit;border-bottom:1px solid transparent;box-sizing:border-box"
100794
+ } : 0);
100795
+
100796
+ /** Loyalty anchor in the utility bar — pill aligned with market selector visual spec */
100797
+ var LoyaltyUtilityLink = /*#__PURE__*/createStyled("a", true ? {
100798
+ target: "e1607tyl36"
100799
+ } : 0)("appearance:none;margin:0;border:0;background:transparent;color:#5f5f5f;font-family:Lora,sans-serif;font-weight:500;font-size:16px;line-height:22px;min-height:44px;padding:11px 16px;border-radius:24px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;cursor:pointer;&:visited{color:#5f5f5f;text-decoration:none;}&:hover{background:#efefef;color:#2f2f2f;text-decoration:none;", LoyaltyPillInner, "{border-bottom-color:currentColor;}}&:hover:visited{color:#2f2f2f;text-decoration:none;}&:focus-visible{outline:1px solid #007bff;outline-offset:1px;color:#2f2f2f;text-decoration:none;", LoyaltyPillInner, "{border-bottom-color:currentColor;}}&:active{text-decoration:none;}" + ( true ? "" : 0));
100626
100800
  var LocaleLabel = /*#__PURE__*/createStyled("span", true ? {
100627
- target: "e1607tyl34"
100801
+ target: "e1607tyl35"
100628
100802
  } : 0)( true ? {
100629
100803
  name: "101gt3q",
100630
100804
  styles: "display:inline-flex;align-items:center;gap:0.3rem"
100631
100805
  } : 0);
100632
100806
  var AccountCluster = /*#__PURE__*/createStyled("div", true ? {
100633
- target: "e1607tyl33"
100807
+ target: "e1607tyl34"
100634
100808
  } : 0)( true ? {
100635
100809
  name: "m6tz52",
100636
100810
  styles: "display:inline-flex;flex-wrap:wrap;align-items:center;gap:0.125rem 0.35rem;@media (max-width: 1024px){.account-icon{display:none;}.account-sign-up{display:none;}.account-divider{display:none;}.account-sign-in{font-size:1rem;font-weight:400;padding:0;}}"
100637
100811
  } : 0);
100638
100812
  var CartButtonInner = /*#__PURE__*/createStyled("span", true ? {
100639
- target: "e1607tyl32"
100813
+ target: "e1607tyl33"
100640
100814
  } : 0)( true ? {
100641
100815
  name: "ww3r3k",
100642
100816
  styles: "display:inline-flex;align-items:center;position:relative"
100643
100817
  } : 0);
100644
100818
  var CartBadge = /*#__PURE__*/createStyled("span", true ? {
100645
- target: "e1607tyl31"
100819
+ target: "e1607tyl32"
100646
100820
  } : 0)( true ? {
100647
100821
  name: "1sj9dvc",
100648
100822
  styles: "position:absolute;top:-8px;right:-8px;display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 4px;border-radius:50%;font-size:0.75rem;font-weight:600;line-height:1;background:#5b81a5;color:#fff;border:2px solid #fff"
@@ -100650,140 +100824,148 @@ var CartBadge = /*#__PURE__*/createStyled("span", true ? {
100650
100824
 
100651
100825
  /** Pill search: icon left, full-width field, submit control on right */
100652
100826
  var SearchSlot = /*#__PURE__*/createStyled("div", true ? {
100653
- target: "e1607tyl30"
100827
+ target: "e1607tyl31"
100654
100828
  } : 0)( true ? {
100655
100829
  name: "kuwwf0",
100656
100830
  styles: "width:100%;[data-region=\"search\"]{width:100%;}"
100657
100831
  } : 0);
100658
100832
  var SearchPillForm = /*#__PURE__*/createStyled("form", true ? {
100659
- target: "e1607tyl29"
100833
+ target: "e1607tyl30"
100660
100834
  } : 0)("display:flex;align-items:center;width:100%;min-height:2.75rem;padding:0 0.35rem 0 0.85rem;border:1px solid ", colors.border, ";border-radius:999px;background:", colors.surface, ";overflow:hidden;transition:border-color 0.15s ease,box-shadow 0.15s ease;&:focus-within{border-color:", colors.muted, ";box-shadow:0 0 0 1px rgba(17, 24, 39, 0.08);}.search-pill__icon{flex-shrink:0;margin-right:0.5rem;color:", colors.muted, ";}input{flex:1;min-width:0;padding:0.5rem 0;border:none;background:transparent;font-size:0.9375rem;outline:none;&::placeholder{color:", colors.muted, ";}}button[type=\"submit\"]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;margin:0.1rem 0.1rem 0.1rem 0.25rem;padding:0;border:none;border-radius:50%;background:", colors.text, ";color:#fff;transition:opacity 0.15s ease,transform 0.1s ease;&:hover:not(:disabled){opacity:0.88;}&:disabled{opacity:0.4;}svg{width:16px;height:16px;}}" + ( true ? "" : 0));
100661
100835
  var NavSection = /*#__PURE__*/createStyled("div", true ? {
100662
- target: "e1607tyl28"
100836
+ target: "e1607tyl29"
100663
100837
  } : 0)("display:none;background:", colors.surface, ";@media (min-width: 1025px){display:block;[role=\"tablist\"]{padding-right:calc(\n clamp(200px, 22vw, 340px) + clamp(1rem, 4vw, 2rem) + 1.5rem\n );}}", function (p) {
100664
100838
  return p.$isEditing && "display: block;";
100665
100839
  }, ";" + ( true ? "" : 0));
100666
100840
 
100667
100841
  /** Search pill anchored to the top-right of NavSection, vertically centred in the tab row (68 px tall). */
100668
100842
  var NavSectionInner = /*#__PURE__*/createStyled("div", true ? {
100669
- target: "e1607tyl27"
100843
+ target: "e1607tyl28"
100670
100844
  } : 0)( true ? {
100671
100845
  name: "15qmolt",
100672
100846
  styles: "position:relative;max-width:1440px;margin:0 auto"
100673
100847
  } : 0);
100674
100848
  var NavSearchSlot = /*#__PURE__*/createStyled("div", true ? {
100675
- target: "e1607tyl26"
100849
+ target: "e1607tyl27"
100676
100850
  } : 0)( true ? {
100677
100851
  name: "913s6b",
100678
100852
  styles: "display:none;@media (min-width: 1025px){display:flex;align-items:center;position:absolute;top:0;right:clamp(1rem, 4vw, 2rem);height:68px;width:clamp(200px, 22vw, 340px);[data-region=\"search\"]{width:100%;}}"
100679
100853
  } : 0);
100680
100854
  var PrimaryNav = /*#__PURE__*/createStyled("nav", true ? {
100681
- target: "e1607tyl25"
100855
+ target: "e1607tyl26"
100682
100856
  } : 0)("max-width:1440px;margin:0 auto;padding:0 clamp(1rem, 4vw, 2rem);ul{display:flex;flex-wrap:wrap;align-items:stretch;gap:0;margin:0;padding:0;list-style:none;}li{margin:0;}li>span,li>button{display:block;width:100%;margin:0;padding:0.95rem 0.85rem;border:none;background:none;font-size:0.9375rem;font-weight:500;text-align:left;color:", colors.text, ";border-bottom:3px solid transparent;transition:color 0.15s ease,border-color 0.15s ease;}li>button{cursor:pointer;font-family:inherit;}li:hover>span,li:hover>button{color:", colors.accent, ";}li[data-nav-active=\"true\"]>span,li[data-nav-active=\"true\"]>button{font-weight:700;border-bottom-color:", colors.navActive, ";}&[data-copy-loading] li>span{color:", colors.muted, ";}" + ( true ? "" : 0));
100683
100857
  var MegaMenuPreview = /*#__PURE__*/createStyled("section", true ? {
100684
- target: "e1607tyl24"
100858
+ target: "e1607tyl25"
100685
100859
  } : 0)("border-top:1px solid ", colors.borderLight, ";background:#f9fafb;" + ( true ? "" : 0));
100686
100860
  var MegaMenuInner = /*#__PURE__*/createStyled("div", true ? {
100687
- target: "e1607tyl23"
100861
+ target: "e1607tyl24"
100688
100862
  } : 0)( true ? {
100689
100863
  name: "1awwgt4",
100690
100864
  styles: "display:grid;grid-template-columns:minmax(11rem, 14rem) 1fr;gap:1.5rem 2.5rem;max-width:1440px;margin:0 auto;padding:1.25rem clamp(1rem, 4vw, 2rem) 1.75rem;@media (max-width: 800px){grid-template-columns:1fr;}"
100691
100865
  } : 0);
100692
100866
  var JumpToColumn = /*#__PURE__*/createStyled("div", true ? {
100693
- target: "e1607tyl22"
100867
+ target: "e1607tyl23"
100694
100868
  } : 0)("padding:1rem;border:1px solid ", colors.border, ";border-radius:6px;background:", colors.surface, ";" + ( true ? "" : 0));
100695
100869
  var JumpToTitle = /*#__PURE__*/createStyled("h3", true ? {
100696
- target: "e1607tyl21"
100870
+ target: "e1607tyl22"
100697
100871
  } : 0)("margin:0 0 0.75rem;font-size:0.8125rem;font-weight:700;text-transform:uppercase;letter-spacing:0.04em;color:", colors.text, ";" + ( true ? "" : 0));
100698
100872
  var JumpToList = /*#__PURE__*/createStyled("ul", true ? {
100699
- target: "e1607tyl20"
100873
+ target: "e1607tyl21"
100700
100874
  } : 0)( true ? {
100701
100875
  name: "gt7hyk",
100702
100876
  styles: "display:flex;flex-direction:column;gap:0.5rem;margin:0;padding:0;list-style:none"
100703
100877
  } : 0);
100704
100878
  var JumpToPill = /*#__PURE__*/createStyled("button", true ? {
100705
- target: "e1607tyl19"
100879
+ target: "e1607tyl20"
100706
100880
  } : 0)("display:block;width:100%;margin:0;padding:0.5rem 0.85rem;border:1px solid ", colors.border, ";border-radius:999px;background:", colors.surface, ";font-size:0.8125rem;font-weight:500;text-align:left;color:", colors.text, ";transition:background 0.15s ease,border-color 0.15s ease;&:hover:not(:disabled){background:#f3f4f6;border-color:", colors.muted, ";}" + ( true ? "" : 0));
100707
100881
  var CategoriesPane = /*#__PURE__*/createStyled("div", true ? {
100708
- target: "e1607tyl18"
100882
+ target: "e1607tyl19"
100709
100883
  } : 0)("padding:1rem 1.25rem;border:1px solid ", colors.border, ";border-radius:6px;background:", colors.surface, ";" + ( true ? "" : 0));
100710
100884
  var CategoryHeaderStrip = /*#__PURE__*/createStyled("div", true ? {
100711
- target: "e1607tyl17"
100885
+ target: "e1607tyl18"
100712
100886
  } : 0)("display:flex;flex-wrap:wrap;align-items:center;gap:0.35rem 0.5rem;margin-bottom:1.25rem;padding-bottom:0.65rem;border-bottom:1px solid ", colors.borderLight, ";font-size:0.8125rem;font-weight:700;text-transform:uppercase;letter-spacing:0.05em;color:", colors.text, ";span{white-space:nowrap;}svg{flex-shrink:0;color:", colors.muted, ";}" + ( true ? "" : 0));
100713
100887
  var CategoryColumns = /*#__PURE__*/createStyled("div", true ? {
100714
- target: "e1607tyl16"
100888
+ target: "e1607tyl17"
100715
100889
  } : 0)( true ? {
100716
100890
  name: "xxda9t",
100717
100891
  styles: "display:grid;grid-template-columns:repeat(3, 1fr);gap:1.25rem 1.5rem;@media (max-width: 900px){grid-template-columns:1fr;}"
100718
100892
  } : 0);
100719
100893
  var CategoryColumn = /*#__PURE__*/(/* unused pure expression or super */ null && (_styled("div", true ? {
100720
- target: "e1607tyl15"
100894
+ target: "e1607tyl16"
100721
100895
  } : 0)( true ? "" : 0)));
100722
100896
  var CategorySubLabel = /*#__PURE__*/createStyled("p", true ? {
100723
- target: "e1607tyl14"
100897
+ target: "e1607tyl15"
100724
100898
  } : 0)("margin:0 0 0.5rem;font-size:0.75rem;font-weight:700;text-transform:uppercase;letter-spacing:0.04em;color:", colors.muted, ";" + ( true ? "" : 0));
100725
100899
  var CategoryLinkList = /*#__PURE__*/createStyled("ul", true ? {
100726
- target: "e1607tyl13"
100900
+ target: "e1607tyl14"
100727
100901
  } : 0)("margin:0;padding:0;list-style:none;li{margin:0;padding:0;}button.link-like{display:block;width:100%;margin:0;padding:0.35rem 0;border:none;background:none;font-size:0.875rem;text-align:left;color:", colors.text, ";text-decoration:none;cursor:pointer;transition:color 0.12s ease;&:hover{color:", colors.accent, ";text-decoration:underline;}}" + ( true ? "" : 0));
100728
100902
  var MobileMenuButton = /*#__PURE__*/createStyled("button", true ? {
100729
- target: "e1607tyl12"
100903
+ target: "e1607tyl13"
100730
100904
  } : 0)("display:flex;align-items:center;justify-content:center;margin:0;padding:0.5rem;border:none;background:transparent;color:", colors.text, ";cursor:pointer;transition:background 0.15s ease;&:hover{background:rgba(0, 0, 0, 0.05);}@media (min-width: 1025px){display:none;}" + ( true ? "" : 0));
100731
100905
  var MobileUtilityBar = /*#__PURE__*/createStyled("div", true ? {
100732
- target: "e1607tyl11"
100906
+ target: "e1607tyl12"
100733
100907
  } : 0)("display:flex;align-items:center;gap:1rem;margin-left:auto;font-size:1rem;@media (min-width: 1025px){display:none;}[data-region=\"account\"] button,[data-region=\"cart\"] button{display:flex;align-items:center;padding:0;background:none;border:none;color:", colors.text, ";cursor:pointer;font-size:1rem;svg{width:24px;height:24px;}}" + ( true ? "" : 0));
100734
100908
  var MobileDrawer = /*#__PURE__*/createStyled("div", true ? {
100735
- target: "e1607tyl10"
100909
+ target: "e1607tyl11"
100736
100910
  } : 0)( true ? {
100737
100911
  name: "kxea5q",
100738
100912
  styles: "position:fixed;top:0;left:0;right:0;bottom:0;z-index:9999;display:flex"
100739
100913
  } : 0);
100740
100914
  var MobileDrawerBackdrop = /*#__PURE__*/createStyled("div", true ? {
100741
- target: "e1607tyl9"
100915
+ target: "e1607tyl10"
100742
100916
  } : 0)( true ? {
100743
100917
  name: "eq959j",
100744
100918
  styles: "position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0, 0, 0, 0.5);cursor:pointer"
100745
100919
  } : 0);
100746
100920
  var MobileDrawerContent = /*#__PURE__*/createStyled("div", true ? {
100747
- target: "e1607tyl8"
100921
+ target: "e1607tyl9"
100748
100922
  } : 0)("position:relative;z-index:1;width:85%;max-width:375px;height:100%;background:", colors.surface, ";display:flex;flex-direction:column;gap:16px;box-shadow:2px 0 8px rgba(0, 0, 0, 0.15);" + ( true ? "" : 0));
100749
100923
  var MobileDrawerHeader = /*#__PURE__*/createStyled("div", true ? {
100750
- target: "e1607tyl7"
100924
+ target: "e1607tyl8"
100751
100925
  } : 0)( true ? {
100752
100926
  name: "dvskpv",
100753
100927
  styles: "box-sizing:border-box;width:100%;height:98px;min-height:98px;flex-shrink:0;padding:66px 0 0;background:#ffffff;opacity:1"
100754
100928
  } : 0);
100755
100929
  var MobileDrawerHeaderRow = /*#__PURE__*/createStyled("div", true ? {
100756
- target: "e1607tyl6"
100930
+ target: "e1607tyl7"
100757
100931
  } : 0)( true ? {
100758
100932
  name: "150vzce",
100759
100933
  styles: "display:flex;align-items:center;justify-content:space-between;height:32px;min-height:32px;max-height:32px;width:100%;box-sizing:border-box;padding-left:20px;padding-right:20px"
100760
100934
  } : 0);
100761
100935
  var MobileDrawerMarketTriggerSlot = /*#__PURE__*/createStyled("div", true ? {
100762
- target: "e1607tyl5"
100936
+ target: "e1607tyl6"
100763
100937
  } : 0)( true ? {
100764
100938
  name: "u09th4",
100765
100939
  styles: "flex:0 1 auto;min-width:0;height:32px;display:flex;align-items:center;justify-content:flex-end"
100766
100940
  } : 0);
100767
100941
  var MobileDrawerLogoSlot = /*#__PURE__*/createStyled("div", true ? {
100768
- target: "e1607tyl4"
100942
+ target: "e1607tyl5"
100769
100943
  } : 0)( true ? {
100770
100944
  name: "1659k0q",
100771
100945
  styles: "display:flex;align-items:center;justify-content:flex-start;min-width:0;flex:1 1 auto;height:100%;overflow:hidden"
100772
100946
  } : 0);
100773
100947
  var MobileDrawerNav = /*#__PURE__*/createStyled("nav", true ? {
100774
- target: "e1607tyl3"
100948
+ target: "e1607tyl4"
100775
100949
  } : 0)( true ? {
100776
100950
  name: "tvz3vz",
100777
100951
  styles: "flex:1;overflow-y:auto;padding:0 0 1rem;[data-drawer-top-nav]>*{max-width:none;margin:0;padding:0;width:100%;}"
100778
100952
  } : 0);
100779
100953
  var MobileDrawerNavItem = /*#__PURE__*/createStyled("div", true ? {
100780
- target: "e1607tyl2"
100954
+ target: "e1607tyl3"
100781
100955
  } : 0)( true ? "" : 0);
100782
100956
  var MobileDrawerNavButton = /*#__PURE__*/createStyled("button", true ? {
100783
- target: "e1607tyl1"
100957
+ target: "e1607tyl2"
100784
100958
  } : 0)("display:flex;align-items:center;justify-content:", function (p) {
100785
100959
  return p.$alignStart ? "flex-start" : "space-between";
100786
100960
  }, ";width:100%;margin:0;padding:1.125rem 1.5rem;border:none;background:none;font-size:1rem;font-weight:400;text-align:left;color:", colors.text, ";cursor:pointer;transition:background 0.15s ease;text-decoration:none;&:hover{background:rgba(0, 0, 0, 0.03);}svg{flex-shrink:0;color:", colors.muted, ";transition:transform 0.2s ease;}" + ( true ? "" : 0));
100961
+
100962
+ /** Nav row without trailing icon (e.g. loyalty link). */
100963
+ var MobileDrawerNavLink = /*#__PURE__*/createStyled(MobileDrawerNavButton, true ? {
100964
+ target: "e1607tyl1"
100965
+ } : 0)( true ? {
100966
+ name: "11g6mpt",
100967
+ styles: "justify-content:flex-start"
100968
+ } : 0);
100787
100969
  var MobileDrawerLocaleButton = /*#__PURE__*/createStyled("button", true ? {
100788
100970
  target: "e1607tyl0"
100789
100971
  } : 0)("display:inline-flex;align-items:center;gap:0.5rem;margin:15px 18px;padding:7px;border:1px solid ", colors.border, ";border-radius:24px;background:transparent;font-size:0.875rem;color:", colors.text, ";cursor:pointer;justify-content:center;transition:all 0.15s ease;&:hover{background:rgba(0, 0, 0, 0.03);border-color:", colors.text, ";}svg{flex-shrink:0;color:", colors.muted, ";width:16px;height:16px;}" + ( true ? "" : 0));
@@ -100850,11 +101032,24 @@ const utils_namespaceObject = require("@contentstack/utils");
100850
101032
  var HEADER_CONTENT_ENTRY_UID = "global_header";
100851
101033
  var HEADER_ENTRY_URL = "/vb-header/root-header";
100852
101034
  var VB_EMPTY_BLOCK_PARENT_CLASS = "visual-builder__empty-block-parent";
100853
- var referenceFields = (/* unused pure expression or super */ null && (["top_navigation", "top_navigation.menu_items.menu_item", "top_navigation.menu_items.menu_item.sub_categories.category_section.items.product_category.category", "market_selector.regions.markets.languages", "utility_links", "utility_links.loyalty_menu", "utility_links.sign_up_sign_in_component", "product_search", "translations"]));
101035
+ var referenceFields = (/* unused pure expression or super */ null && (["top_ribbon", "top_navigation", "top_navigation.menu_items.menu_item", "top_navigation.menu_items.menu_item.sub_categories.category_section.items.product_category.category", "market_selector.regions.markets.languages", "utility_links", "utility_links.loyalty_menu", "utility_links.sign_up_sign_in_component", "product_search", "translations"]));
100854
101036
  var CONTENTSTACK_API_KEY = process.env.CONTENTSTACK_API_KEY;
100855
101037
  var CONTENTSTACK_DELIVERY_TOKEN = process.env.CONTENTSTACK_DELIVERY_TOKEN;
100856
101038
  var CONTENTSTACK_ENVIRONMENT = process.env.CONTENTSTACK_ENVIRONMENT;
100857
101039
  var CONTENTSTACK_PREVIEW_TOKEN = process.env.CONTENTSTACK_PREVIEW_TOKEN;
101040
+ var GTM_TRACKING_CONFIG = {
101041
+ loyalty: {
101042
+ componentName: "Loyalty",
101043
+ impressionEvent: "header_loyalty_impression",
101044
+ impressionElement: "Impression",
101045
+ impressionTriggerType: "Element Visibility",
101046
+ clickEvent: "vb_button_cta_click",
101047
+ clickElement: "CTA Click",
101048
+ clickTriggerType: "Click - Just Links",
101049
+ // Loyalty is always an anchor (`data-gtm-loyalty`); selector works for GTM delegation.
101050
+ clickSelector: "[data-gtm-loyalty]"
101051
+ }
101052
+ };
100858
101053
 
100859
101054
  ;// ./src/utils/contentstack.js
100860
101055
  /* unused harmony import specifier */ var ContentstackLivePreview;
@@ -102832,6 +103027,12 @@ TopNavigation.defaultProps = {
102832
103027
  translations: undefined
102833
103028
  };
102834
103029
  ;// ./src/components/header/MobileHeaderDrawer.jsx
103030
+ function MobileHeaderDrawer_typeof(o) { "@babel/helpers - typeof"; return MobileHeaderDrawer_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, MobileHeaderDrawer_typeof(o); }
103031
+ function MobileHeaderDrawer_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
103032
+ function MobileHeaderDrawer_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? MobileHeaderDrawer_ownKeys(Object(t), !0).forEach(function (r) { MobileHeaderDrawer_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : MobileHeaderDrawer_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
103033
+ function MobileHeaderDrawer_defineProperty(e, r, t) { return (r = MobileHeaderDrawer_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
103034
+ function MobileHeaderDrawer_toPropertyKey(t) { var i = MobileHeaderDrawer_toPrimitive(t, "string"); return "symbol" == MobileHeaderDrawer_typeof(i) ? i : i + ""; }
103035
+ function MobileHeaderDrawer_toPrimitive(t, r) { if ("object" != MobileHeaderDrawer_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != MobileHeaderDrawer_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
102835
103036
 
102836
103037
 
102837
103038
 
@@ -102877,13 +103078,16 @@ function MobileHeaderDrawer(_ref) {
102877
103078
  data: navigationData,
102878
103079
  locale: locale
102879
103080
  })
102880
- }), (loyaltyData === null || loyaltyData === void 0 ? void 0 : loyaltyData.link_label) && /*#__PURE__*/(0,jsx_runtime_.jsx)(MobileDrawerNavItem, {
102881
- children: /*#__PURE__*/(0,jsx_runtime_.jsx)(MobileDrawerNavButton, {
103081
+ }), (loyaltyData === null || loyaltyData === void 0 ? void 0 : loyaltyData.label) && (loyaltyData === null || loyaltyData === void 0 ? void 0 : loyaltyData.url) && /*#__PURE__*/(0,jsx_runtime_.jsx)(MobileDrawerNavItem, {
103082
+ children: /*#__PURE__*/(0,jsx_runtime_.jsx)(MobileDrawerNavLink, MobileHeaderDrawer_objectSpread(MobileHeaderDrawer_objectSpread({
102882
103083
  as: "a",
102883
- href: loyaltyData.href,
102884
- $alignStart: true,
102885
- children: loyaltyData.link_label
102886
- })
103084
+ href: loyaltyData.url
103085
+ }, loyaltyData.open_in_new_tab ? {
103086
+ target: "_blank",
103087
+ rel: "noopener noreferrer"
103088
+ } : {}), {}, {
103089
+ children: loyaltyData.label
103090
+ }))
102887
103091
  }), marketTriggerMountRef ? null : /*#__PURE__*/(0,jsx_runtime_.jsx)(MobileDrawerNavItem, {
102888
103092
  children: /*#__PURE__*/(0,jsx_runtime_.jsxs)(MobileDrawerLocaleButton, {
102889
103093
  children: [localeData.control_label, /*#__PURE__*/(0,jsx_runtime_.jsx)(IconChevronDown, {})]
@@ -102919,19 +103123,26 @@ function HeaderLoyaltyRegion_toPrimitive(t, r) { if ("object" != HeaderLoyaltyRe
102919
103123
  function HeaderLoyaltyRegion(_ref) {
102920
103124
  var _data$$;
102921
103125
  var data = _ref.data;
102922
- return /*#__PURE__*/(0,jsx_runtime_.jsx)(UtilityButton, HeaderLoyaltyRegion_objectSpread(HeaderLoyaltyRegion_objectSpread({
102923
- type: "button",
102924
- href: data === null || data === void 0 ? void 0 : data.url
102925
- }, data === null || data === void 0 || (_data$$ = data.$) === null || _data$$ === void 0 ? void 0 : _data$$.label), {}, {
102926
- children: data === null || data === void 0 ? void 0 : data.label
103126
+ var url = data === null || data === void 0 ? void 0 : data.url;
103127
+ return /*#__PURE__*/(0,jsx_runtime_.jsx)(LoyaltyUtilityLink, HeaderLoyaltyRegion_objectSpread(HeaderLoyaltyRegion_objectSpread({
103128
+ "data-gtm-loyalty": true,
103129
+ href: url
103130
+ }, data !== null && data !== void 0 && data.open_in_new_tab ? {
103131
+ target: "_blank",
103132
+ rel: "noopener noreferrer"
103133
+ } : {}), {}, {
103134
+ children: /*#__PURE__*/(0,jsx_runtime_.jsx)(LoyaltyPillInner, HeaderLoyaltyRegion_objectSpread(HeaderLoyaltyRegion_objectSpread({}, data === null || data === void 0 || (_data$$ = data.$) === null || _data$$ === void 0 ? void 0 : _data$$.label), {}, {
103135
+ children: data === null || data === void 0 ? void 0 : data.label
103136
+ }))
102927
103137
  }));
102928
103138
  }
102929
103139
  HeaderLoyaltyRegion.propTypes = {
102930
103140
  data: external_prop_types_default().shape({
102931
- label: (external_prop_types_default()).string.isRequired,
102932
- url: (external_prop_types_default()).string,
103141
+ label: (external_prop_types_default()).string,
103142
+ url: (external_prop_types_default()).string.isRequired,
103143
+ open_in_new_tab: (external_prop_types_default()).bool,
102933
103144
  $: (external_prop_types_default()).object
102934
- }).isRequired
103145
+ })
102935
103146
  };
102936
103147
  ;// ./src/components/signup-signin/SignUpOrSignIn.helpers.js
102937
103148
  var DEFAULT_SIGN_UP = {
@@ -107748,44 +107959,448 @@ HeaderNavigationRegion.propTypes = {
107748
107959
  locale: (external_prop_types_default()).string,
107749
107960
  translations: (external_prop_types_default()).object
107750
107961
  };
107751
- ;// ./src/utils/common.js
107752
- /**
107753
- * Validate and sanitize a URL string.
107754
- * Returns '#' for invalid/empty values to provide safe fallback anchors.
107755
- *
107756
- * SSR-safe: no DOM/window access.
107757
- *
107758
- * @param {*} url - The URL value to validate
107759
- * @returns {string} The original URL if valid, otherwise '#'
107760
- */
107761
- var validateUrl = function validateUrl(url) {
107762
- if (!url || typeof url !== 'string' || url.trim() === '') {
107763
- return '#';
107962
+ // EXTERNAL MODULE: ./node_modules/react-gtm-module/dist/index.js
107963
+ var react_gtm_module_dist = __webpack_require__(1003);
107964
+ ;// ./src/utils/datalayer.js
107965
+ function datalayer_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
107966
+ function datalayer_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? datalayer_ownKeys(Object(t), !0).forEach(function (r) { datalayer_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : datalayer_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
107967
+ function datalayer_defineProperty(e, r, t) { return (r = datalayer_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
107968
+ function datalayer_toPropertyKey(t) { var i = datalayer_toPrimitive(t, "string"); return "symbol" == datalayer_typeof(i) ? i : i + ""; }
107969
+ function datalayer_toPrimitive(t, r) { if ("object" != datalayer_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != datalayer_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
107970
+ function datalayer_typeof(o) { "@babel/helpers - typeof"; return datalayer_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, datalayer_typeof(o); }
107971
+
107972
+ var gtmInitialized = false;
107973
+
107974
+ /** Resets init guard — for unit tests only */
107975
+ function resetGtmInitForTesting() {
107976
+ gtmInitialized = false;
107977
+ }
107978
+ var initDataLayer = function initDataLayer() {
107979
+ if ((typeof window === "undefined" ? "undefined" : datalayer_typeof(window)) !== "object") return;
107980
+ var gtmId = process.env.REACT_APP_GTM_KEY;
107981
+ if (!gtmId || gtmInitialized) return;
107982
+ try {
107983
+ var gtmArgs = {
107984
+ gtmId: gtmId
107985
+ };
107986
+ react_gtm_module_dist.initialize(gtmArgs);
107987
+ gtmInitialized = true;
107988
+ } catch (error) {
107989
+ console.error("Error initializing GTM:", error);
107764
107990
  }
107765
- return url;
107766
107991
  };
107992
+ var pushDataLayerEvent = function pushDataLayerEvent() {
107993
+ var eventData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
107994
+ if ((typeof window === "undefined" ? "undefined" : datalayer_typeof(window)) !== "object") return;
107995
+ initDataLayer();
107996
+ var dataToTrack = datalayer_objectSpread({}, eventData);
107997
+ react_gtm_module_dist.dataLayer({
107998
+ dataLayer: dataToTrack
107999
+ });
108000
+ };
108001
+ var getDataLayer = function getDataLayer() {
108002
+ return [];
108003
+ };
108004
+ ;// ./src/utils/eventFactory.js
108005
+ function eventFactory_typeof(o) { "@babel/helpers - typeof"; return eventFactory_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, eventFactory_typeof(o); }
108006
+ var eventFactory_excluded = ["component_name", "event", "event_action", "element", "trigger_type"];
108007
+ function eventFactory_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
108008
+ function eventFactory_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? eventFactory_ownKeys(Object(t), !0).forEach(function (r) { eventFactory_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : eventFactory_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
108009
+ function eventFactory_defineProperty(e, r, t) { return (r = eventFactory_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
108010
+ function eventFactory_toPropertyKey(t) { var i = eventFactory_toPrimitive(t, "string"); return "symbol" == eventFactory_typeof(i) ? i : i + ""; }
108011
+ function eventFactory_toPrimitive(t, r) { if ("object" != eventFactory_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != eventFactory_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
108012
+ function eventFactory_objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = eventFactory_objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
108013
+ function eventFactory_objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
108014
+
108015
+ var VB_EVENT_CONFIG = {
108016
+ view: {
108017
+ element: "Impression",
108018
+ trigger_type: "Element Visibility",
108019
+ event_category: "engagement"
108020
+ },
108021
+ click: {
108022
+ element: "CTA Click",
108023
+ trigger_type: "Click",
108024
+ event_category: "engagement"
108025
+ },
108026
+ navigate: {
108027
+ element: "Navigation",
108028
+ trigger_type: "Click",
108029
+ event_category: "engagement"
108030
+ }
108031
+ };
108032
+ var trackVisualBuilderEvent = function trackVisualBuilderEvent(_ref) {
108033
+ var component_name = _ref.component_name,
108034
+ event = _ref.event,
108035
+ event_action = _ref.event_action,
108036
+ element = _ref.element,
108037
+ trigger_type = _ref.trigger_type,
108038
+ customFields = eventFactory_objectWithoutProperties(_ref, eventFactory_excluded);
108039
+ var config = VB_EVENT_CONFIG[event_action] || VB_EVENT_CONFIG.view;
108040
+ var eventList = eventFactory_objectSpread({
108041
+ component_name: component_name,
108042
+ element: element || config.element,
108043
+ trigger_type: trigger_type || config.trigger_type,
108044
+ event: event,
108045
+ event_category: config.event_category,
108046
+ event_action: event_action
108047
+ }, customFields);
108048
+ pushDataLayerEvent(eventList);
108049
+ return eventList;
108050
+ };
108051
+ ;// ./src/components/gtm-tracker/GTMTracker.styled.js
108052
+
108053
+ function GTMTracker_styled_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
108054
+ var GTMTrackerRoot = /*#__PURE__*/createStyled("div", true ? {
108055
+ target: "e191ba190"
108056
+ } : 0)( true ? {
108057
+ name: "13udsys",
108058
+ styles: "height:100%"
108059
+ } : 0);
108060
+ ;// ./src/components/gtm-tracker/GTMTracker.jsx
108061
+ function GTMTracker_typeof(o) { "@babel/helpers - typeof"; return GTMTracker_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GTMTracker_typeof(o); }
108062
+ function GTMTracker_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
108063
+ function GTMTracker_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? GTMTracker_ownKeys(Object(t), !0).forEach(function (r) { GTMTracker_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : GTMTracker_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
108064
+ function GTMTracker_defineProperty(e, r, t) { return (r = GTMTracker_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
108065
+ function GTMTracker_toPropertyKey(t) { var i = GTMTracker_toPrimitive(t, "string"); return "symbol" == GTMTracker_typeof(i) ? i : i + ""; }
108066
+ function GTMTracker_toPrimitive(t, r) { if ("object" != GTMTracker_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != GTMTracker_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
108067
+
108068
+
108069
+
108070
+
108071
+
107767
108072
  var isServer = typeof window === "undefined";
108073
+
108074
+ /** Stable reference — default `customFields = {}` in params creates a new object every render. */
108075
+ var EMPTY_CUSTOM_FIELDS = {};
108076
+ function pageNameFromPathname(pathname) {
108077
+ var parts = String(pathname || "").split("/").filter(Boolean);
108078
+ if (parts.length <= 2) {
108079
+ return "";
108080
+ }
108081
+ return parts.slice(2).join("/");
108082
+ }
108083
+ var GTMTracker = function GTMTracker(_ref) {
108084
+ var componentName = _ref.componentName,
108085
+ impressionEvent = _ref.impressionEvent,
108086
+ impressionElement = _ref.impressionElement,
108087
+ impressionTriggerType = _ref.impressionTriggerType,
108088
+ clickEvent = _ref.clickEvent,
108089
+ clickElement = _ref.clickElement,
108090
+ clickTriggerType = _ref.clickTriggerType,
108091
+ _ref$clickSelector = _ref.clickSelector,
108092
+ clickSelector = _ref$clickSelector === void 0 ? "a" : _ref$clickSelector,
108093
+ _ref$clickEventAction = _ref.clickEventAction,
108094
+ clickEventAction = _ref$clickEventAction === void 0 ? "click" : _ref$clickEventAction,
108095
+ customFields = _ref.customFields,
108096
+ children = _ref.children;
108097
+ // On the server, just render children — tracking is client-only.
108098
+ if (isServer) {
108099
+ return /*#__PURE__*/(0,jsx_runtime_.jsx)(GTMTrackerRoot, {
108100
+ children: children
108101
+ });
108102
+ }
108103
+ return /*#__PURE__*/(0,jsx_runtime_.jsx)(GTMTrackerClient, {
108104
+ componentName: componentName,
108105
+ impressionEvent: impressionEvent,
108106
+ impressionElement: impressionElement,
108107
+ impressionTriggerType: impressionTriggerType,
108108
+ clickEvent: clickEvent,
108109
+ clickElement: clickElement,
108110
+ clickTriggerType: clickTriggerType,
108111
+ clickSelector: clickSelector,
108112
+ clickEventAction: clickEventAction,
108113
+ customFields: customFields !== null && customFields !== void 0 ? customFields : EMPTY_CUSTOM_FIELDS,
108114
+ children: children
108115
+ });
108116
+ };
108117
+
108118
+ // Client-only component with hooks (useRef, useEffect, useLocation)
108119
+ function GTMTrackerClient(_ref2) {
108120
+ var componentName = _ref2.componentName,
108121
+ impressionEvent = _ref2.impressionEvent,
108122
+ impressionElement = _ref2.impressionElement,
108123
+ impressionTriggerType = _ref2.impressionTriggerType,
108124
+ clickEvent = _ref2.clickEvent,
108125
+ clickElement = _ref2.clickElement,
108126
+ clickTriggerType = _ref2.clickTriggerType,
108127
+ clickSelector = _ref2.clickSelector,
108128
+ clickEventAction = _ref2.clickEventAction,
108129
+ customFields = _ref2.customFields,
108130
+ children = _ref2.children;
108131
+ var componentRef = (0,external_react_.useRef)(null);
108132
+ var impressionTrackedRef = (0,external_react_.useRef)(false);
108133
+ var pageName = pageNameFromPathname(typeof window !== "undefined" ? window.location.pathname : "");
108134
+ (0,external_react_.useEffect)(function () {
108135
+ if (!impressionEvent) return;
108136
+ var observer = new IntersectionObserver(function (entries) {
108137
+ entries.forEach(function (entry) {
108138
+ if (entry.isIntersecting && !impressionTrackedRef.current) {
108139
+ impressionTrackedRef.current = true;
108140
+ trackVisualBuilderEvent(GTMTracker_objectSpread(GTMTracker_objectSpread(GTMTracker_objectSpread({
108141
+ component_name: componentName,
108142
+ event: impressionEvent,
108143
+ event_action: "view",
108144
+ page_name: pageName
108145
+ }, impressionElement && {
108146
+ element: impressionElement
108147
+ }), impressionTriggerType && {
108148
+ trigger_type: impressionTriggerType
108149
+ }), customFields));
108150
+ }
108151
+ });
108152
+ }, {
108153
+ threshold: 0.1
108154
+ });
108155
+ var el = componentRef.current;
108156
+ if (el) {
108157
+ observer.observe(el);
108158
+ }
108159
+ return function () {
108160
+ if (el) {
108161
+ observer.unobserve(el);
108162
+ }
108163
+ };
108164
+ }, [componentName, impressionEvent, customFields, pageName, impressionElement, impressionTriggerType]);
108165
+ (0,external_react_.useEffect)(function () {
108166
+ if (!clickEvent) return;
108167
+ var el = componentRef.current;
108168
+ if (!el) return;
108169
+ var handleClick = function handleClick(e) {
108170
+ var target = e.target.closest(clickSelector);
108171
+ if (target) {
108172
+ trackVisualBuilderEvent(GTMTracker_objectSpread(GTMTracker_objectSpread(GTMTracker_objectSpread({
108173
+ component_name: componentName,
108174
+ event: clickEvent,
108175
+ event_action: clickEventAction,
108176
+ page_name: pageName
108177
+ }, clickElement && {
108178
+ element: clickElement
108179
+ }), clickTriggerType && {
108180
+ trigger_type: clickTriggerType
108181
+ }), customFields));
108182
+ }
108183
+ };
108184
+ el.addEventListener("click", handleClick, true);
108185
+ return function () {
108186
+ return el.removeEventListener("click", handleClick, true);
108187
+ };
108188
+ }, [componentName, clickEvent, clickElement, clickTriggerType, clickSelector, clickEventAction, customFields, pageName]);
108189
+ return /*#__PURE__*/(0,jsx_runtime_.jsx)(GTMTrackerRoot, {
108190
+ ref: componentRef,
108191
+ children: children
108192
+ });
108193
+ }
108194
+ GTMTracker.propTypes = {
108195
+ componentName: (external_prop_types_default()).string.isRequired,
108196
+ impressionEvent: (external_prop_types_default()).string,
108197
+ impressionElement: (external_prop_types_default()).string,
108198
+ impressionTriggerType: (external_prop_types_default()).string,
108199
+ clickEvent: (external_prop_types_default()).string,
108200
+ clickElement: (external_prop_types_default()).string,
108201
+ clickTriggerType: (external_prop_types_default()).string,
108202
+ clickSelector: (external_prop_types_default()).string,
108203
+ clickEventAction: (external_prop_types_default()).string,
108204
+ customFields: (external_prop_types_default()).object,
108205
+ children: (external_prop_types_default()).node.isRequired
108206
+ };
108207
+ GTMTrackerClient.propTypes = GTMTracker.propTypes;
108208
+ /* harmony default export */ const gtm_tracker_GTMTracker = (GTMTracker);
108209
+ ;// ./src/utils/common.js
108210
+ function common_typeof(o) { "@babel/helpers - typeof"; return common_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, common_typeof(o); }
108211
+ function common_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
108212
+ function common_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? common_ownKeys(Object(t), !0).forEach(function (r) { common_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : common_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
108213
+ function common_defineProperty(e, r, t) { return (r = common_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
108214
+ function common_toPropertyKey(t) { var i = common_toPrimitive(t, "string"); return "symbol" == common_typeof(i) ? i : i + ""; }
108215
+ function common_toPrimitive(t, r) { if ("object" != common_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != common_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
108216
+ function common_slicedToArray(r, e) { return common_arrayWithHoles(r) || common_iterableToArrayLimit(r, e) || common_unsupportedIterableToArray(r, e) || common_nonIterableRest(); }
108217
+ function common_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
108218
+ function common_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return common_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? common_arrayLikeToArray(r, a) : void 0; } }
108219
+ function common_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
108220
+ function common_iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
108221
+ function common_arrayWithHoles(r) { if (Array.isArray(r)) return r; }
108222
+
108223
+
108224
+
108225
+
108226
+ var common_isServer = typeof window === "undefined";
108227
+ var hasLocalePrefix = function hasLocalePrefix(path) {
108228
+ return /^\/[a-z]{2}\/[a-z]{2}(\/|$)/i.test(path);
108229
+ };
108230
+ var isProtocolRelativeUrl = function isProtocolRelativeUrl(value) {
108231
+ return /^\/\/[^/]/.test(value);
108232
+ };
108233
+ var isAbsoluteHttpUrl = function isAbsoluteHttpUrl(value) {
108234
+ return /^https?:\/\//i.test(value);
108235
+ };
108236
+ var isPlainDomain = function isPlainDomain(value) {
108237
+ return /^(?:www\.)?[a-z0-9-]+\.[a-z]{2,}(\/.*)?$/i.test(value) && !value.startsWith("/");
108238
+ };
108239
+ function replaceLocalePlaceholders(value, country, language) {
108240
+ return value.replaceAll(/\{%\s*region\s*}/gi, country).replaceAll(/\{%\s*language\s*}/gi, language).replaceAll(/%7B%\s*region\s*%7D/gi, country).replaceAll(/%7B%\s*language\s*%7D/gi, language);
108241
+ }
108242
+ function buildNuSkinUrl(params) {
108243
+ var url = params.url,
108244
+ current = params.current,
108245
+ localizedBase = params.localizedBase,
108246
+ country = params.country,
108247
+ language = params.language;
108248
+ var normalizedOrigin = "".concat(current.protocol, "//").concat(current.host);
108249
+ var pathname = replaceLocalePlaceholders(url.pathname, country, language);
108250
+ if (hasLocalePrefix(pathname)) {
108251
+ return "".concat(normalizedOrigin).concat(pathname).concat(url.search).concat(url.hash);
108252
+ }
108253
+ return "".concat(localizedBase).concat(pathname).concat(url.search).concat(url.hash);
108254
+ }
108255
+ function needsLocaleRewrite(url) {
108256
+ var isMainWebsiteHost = url.host === "nuskin.com" || url.host === "www.nuskin.com";
108257
+ var hasPlaceholders = /\{%\s*(region|language)\s*\}/i.test(url.pathname);
108258
+ return isMainWebsiteHost || hasLocalePrefix(url.pathname) || hasPlaceholders;
108259
+ }
108260
+ function resolveNuSkinUrl(params) {
108261
+ var url = params.url,
108262
+ fallback = params.fallback,
108263
+ current = params.current,
108264
+ localizedBase = params.localizedBase,
108265
+ country = params.country,
108266
+ language = params.language;
108267
+ return needsLocaleRewrite(url) ? buildNuSkinUrl({
108268
+ url: url,
108269
+ current: current,
108270
+ localizedBase: localizedBase,
108271
+ country: country,
108272
+ language: language
108273
+ }) : fallback;
108274
+ }
108275
+ function resolveExternalOrAbsoluteUrl(params) {
108276
+ var trimmedUrl = params.trimmedUrl,
108277
+ current = params.current,
108278
+ localizedBase = params.localizedBase,
108279
+ country = params.country,
108280
+ language = params.language,
108281
+ isNuSkinDomain = params.isNuSkinDomain;
108282
+ if (isProtocolRelativeUrl(trimmedUrl)) {
108283
+ var url = new URL("https:".concat(trimmedUrl));
108284
+ var fallback = "https:".concat(trimmedUrl);
108285
+ return isNuSkinDomain(url.host) ? resolveNuSkinUrl({
108286
+ url: url,
108287
+ fallback: fallback,
108288
+ current: current,
108289
+ localizedBase: localizedBase,
108290
+ country: country,
108291
+ language: language
108292
+ }) : fallback;
108293
+ }
108294
+ if (isAbsoluteHttpUrl(trimmedUrl)) {
108295
+ var _url = new URL(trimmedUrl);
108296
+ return isNuSkinDomain(_url.host) ? resolveNuSkinUrl({
108297
+ url: _url,
108298
+ fallback: trimmedUrl,
108299
+ current: current,
108300
+ localizedBase: localizedBase,
108301
+ country: country,
108302
+ language: language
108303
+ }) : trimmedUrl;
108304
+ }
108305
+ if (isPlainDomain(trimmedUrl)) {
108306
+ return "https://".concat(trimmedUrl);
108307
+ }
108308
+ return undefined;
108309
+ }
108310
+ function buildLocalizedRelativeUrl(params) {
108311
+ var trimmedUrl = params.trimmedUrl,
108312
+ country = params.country,
108313
+ language = params.language,
108314
+ localizedBase = params.localizedBase;
108315
+ var hadTrailingSlash = trimmedUrl.endsWith("/");
108316
+ var relativeUrl = trimmedUrl.replace(/^\.[a-z]{2,}/i, "");
108317
+ relativeUrl = replaceLocalePlaceholders(relativeUrl, country, language);
108318
+ if (hasLocalePrefix(relativeUrl)) {
108319
+ relativeUrl = relativeUrl.replace(/^\/[a-z]{2}\/[a-z]{2}/i, "");
108320
+ }
108321
+ relativeUrl = relativeUrl.replace(/^\/+/, "/");
108322
+ if (!relativeUrl.startsWith("/")) {
108323
+ relativeUrl = "/".concat(relativeUrl);
108324
+ }
108325
+ if (relativeUrl === "/" || relativeUrl === "") {
108326
+ return hadTrailingSlash ? "".concat(localizedBase, "/") : localizedBase;
108327
+ }
108328
+ return "".concat(localizedBase).concat(relativeUrl);
108329
+ }
108330
+ var convertToLocalizedUrl = function convertToLocalizedUrl(inputUrl) {
108331
+ var _globalThis$window$lo, _globalThis$window;
108332
+ if (!inputUrl) return inputUrl;
108333
+ var trimmedUrl = inputUrl.trim();
108334
+
108335
+ // During SSR, window is undefined. renderAndExtractContext sets __ssrLocationHref__
108336
+ // (synchronously, no race condition) so we can still produce fully-qualified URLs.
108337
+ var locationHref = (_globalThis$window$lo = (_globalThis$window = globalThis.window) === null || _globalThis$window === void 0 || (_globalThis$window = _globalThis$window.location) === null || _globalThis$window === void 0 ? void 0 : _globalThis$window.href) !== null && _globalThis$window$lo !== void 0 ? _globalThis$window$lo : globalThis.__ssrLocationHref__;
108338
+ if (locationHref == null) {
108339
+ return trimmedUrl;
108340
+ }
108341
+ var current = new URL(locationHref);
108342
+ var _current$pathname$spl = current.pathname.split("/"),
108343
+ _current$pathname$spl2 = common_slicedToArray(_current$pathname$spl, 3),
108344
+ country = _current$pathname$spl2[1],
108345
+ language = _current$pathname$spl2[2];
108346
+ if (!country || !language) return trimmedUrl;
108347
+ var localizedBase = "".concat(current.protocol, "//").concat(current.host, "/").concat(country, "/").concat(language);
108348
+ var isNuSkinDomain = function isNuSkinDomain(host) {
108349
+ return host === current.host || host.endsWith(".nuskin.com") || host === "nuskin.com";
108350
+ };
108351
+ var resolvedUrl = resolveExternalOrAbsoluteUrl({
108352
+ trimmedUrl: trimmedUrl,
108353
+ current: current,
108354
+ localizedBase: localizedBase,
108355
+ country: country,
108356
+ language: language,
108357
+ isNuSkinDomain: isNuSkinDomain
108358
+ });
108359
+ if (resolvedUrl !== undefined) {
108360
+ return resolvedUrl;
108361
+ }
108362
+ return buildLocalizedRelativeUrl({
108363
+ trimmedUrl: trimmedUrl,
108364
+ country: country,
108365
+ language: language,
108366
+ localizedBase: localizedBase
108367
+ });
108368
+ };
108369
+ var withTracking = function withTracking(component) {
108370
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
108371
+ var componentType = options.componentType;
108372
+ var trackingConfig = GTM_TRACKING_CONFIG[componentType];
108373
+ if (!trackingConfig) {
108374
+ return component;
108375
+ }
108376
+ return /*#__PURE__*/(0,jsx_runtime_.jsx)(gtm_tracker_GTMTracker, common_objectSpread(common_objectSpread({}, trackingConfig), {}, {
108377
+ children: component
108378
+ }));
108379
+ };
107768
108380
  ;// ./src/components/top-ribbon/types.js
107769
108381
 
107770
108382
  var NavigationLinkPropTypes = external_prop_types_default().shape({
107771
108383
  label: (external_prop_types_default()).string.isRequired,
107772
108384
  url: (external_prop_types_default()).string.isRequired,
107773
- ariaLabel: (external_prop_types_default()).string,
107774
- dataTestId: (external_prop_types_default()).string,
108385
+ show: (external_prop_types_default()).bool,
107775
108386
  gtmEvent: (external_prop_types_default()).object
107776
108387
  });
108388
+ var TopRibbonEntryPropTypes = external_prop_types_default().shape({
108389
+ show_top_ribbon: (external_prop_types_default()).bool.isRequired,
108390
+ links: external_prop_types_default().arrayOf(NavigationLinkPropTypes)
108391
+ });
107777
108392
  var TopRibbonPropTypes = {
107778
- links: external_prop_types_default().arrayOf(NavigationLinkPropTypes).isRequired,
108393
+ links: external_prop_types_default().arrayOf(TopRibbonEntryPropTypes).isRequired,
107779
108394
  className: (external_prop_types_default()).string,
107780
108395
  ariaLabel: (external_prop_types_default()).string,
107781
108396
  dataTestId: (external_prop_types_default()).string
107782
108397
  };
107783
- ;// ./src/components/top-ribbon/TopRibbon.styled.jsx
108398
+ ;// ./src/components/top-ribbon/TopRibbon.styled.js
107784
108399
 
107785
108400
  function TopRibbon_styled_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
107786
108401
  // Main container for the top ribbon navigation
107787
108402
  var StyledTopRibbon = /*#__PURE__*/createStyled("header", true ? {
107788
- target: "ei9etl03"
108403
+ target: "ec2gm7w3"
107789
108404
  } : 0)( true ? {
107790
108405
  name: "ah54qx",
107791
108406
  styles: "background-color:#000000;width:100%;position:relative;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;&::-webkit-scrollbar{display:none;}&:focus-within{outline:none;}"
@@ -107793,7 +108408,7 @@ var StyledTopRibbon = /*#__PURE__*/createStyled("header", true ? {
107793
108408
 
107794
108409
  // Navigation list container
107795
108410
  var StyledNavigationList = /*#__PURE__*/createStyled("ul", true ? {
107796
- target: "ei9etl02"
108411
+ target: "ec2gm7w2"
107797
108412
  } : 0)( true ? {
107798
108413
  name: "m78rlq",
107799
108414
  styles: "margin:0 auto;padding:0;list-style:none;display:flex;align-items:center;justify-content:center;gap:24px;padding:10px 24px;min-width:100%;width:max-content;box-sizing:border-box"
@@ -107801,15 +108416,15 @@ var StyledNavigationList = /*#__PURE__*/createStyled("ul", true ? {
107801
108416
 
107802
108417
  // Individual navigation item container
107803
108418
  var StyledNavigationItem = /*#__PURE__*/createStyled("li", true ? {
107804
- target: "ei9etl01"
107805
- } : 0)( true ? {
107806
- name: "qy80on",
107807
- styles: "margin:0;padding:0;flex-shrink:0;position:relative"
107808
- } : 0);
108419
+ target: "ec2gm7w1"
108420
+ } : 0)("margin:0;padding:0;flex-shrink:0;position:relative;", function (_ref) {
108421
+ var $editing = _ref.$editing;
108422
+ return $editing && "\n padding-right: 24px;\n padding-left: 24px;\n ";
108423
+ }, ";" + ( true ? "" : 0));
107809
108424
 
107810
108425
  // Navigation link with hover effects
107811
108426
  var StyledNavigationLink = /*#__PURE__*/createStyled("a", true ? {
107812
- target: "ei9etl00"
108427
+ target: "ec2gm7w0"
107813
108428
  } : 0)( true ? {
107814
108429
  name: "1pvnuug",
107815
108430
  styles: "display:inline-block;padding:0;cursor:pointer;color:#ffffff;font-family:\"Inter\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,sans-serif;font-size:14px;font-weight:400;line-height:20px;text-align:center;white-space:nowrap;text-decoration:underline;text-decoration-style:solid;text-decoration-color:transparent;transition:text-decoration-color 0.2s ease,background-color 0.2s ease;position:relative;&:hover{color:#ffffff;text-decoration-color:#ffffff;}&:focus-visible{outline:2px solid #ffffff;outline-offset:2px;background-color:rgba(255, 255, 255, 0.1);text-decoration-color:#ffffff;}&:focus:not(:focus-visible){outline:none;background-color:transparent;}&:active{background-color:rgba(255, 255, 255, 0.05);}@media (prefers-contrast: high){&:focus-visible{outline-color:currentColor;}}"
@@ -107826,6 +108441,7 @@ function TopRibbon_toPrimitive(t, r) { if ("object" != TopRibbon_typeof(t) || !t
107826
108441
 
107827
108442
 
107828
108443
 
108444
+
107829
108445
  /**
107830
108446
  * TopRibbon Navigation Component
107831
108447
  *
@@ -107843,17 +108459,27 @@ function TopRibbon_toPrimitive(t, r) { if ("object" != TopRibbon_typeof(t) || !t
107843
108459
  */
107844
108460
 
107845
108461
  var TopRibbon = function TopRibbon(_ref) {
108462
+ var _ribbonData$$;
107846
108463
  var links = _ref.links,
107847
108464
  _ref$className = _ref.className,
107848
- className = _ref$className === void 0 ? '' : _ref$className,
108465
+ className = _ref$className === void 0 ? "" : _ref$className,
107849
108466
  _ref$ariaLabel = _ref.ariaLabel,
107850
- ariaLabel = _ref$ariaLabel === void 0 ? 'Top navigation' : _ref$ariaLabel,
108467
+ ariaLabel = _ref$ariaLabel === void 0 ? "Top navigation" : _ref$ariaLabel,
107851
108468
  _ref$dataTestId = _ref.dataTestId,
107852
- dataTestId = _ref$dataTestId === void 0 ? 'top-ribbon-nav' : _ref$dataTestId;
108469
+ dataTestId = _ref$dataTestId === void 0 ? "top-ribbon-nav" : _ref$dataTestId;
107853
108470
  // Validate required props — safe to call in SSR
107854
108471
  if (!links || !Array.isArray(links) || links.length === 0) {
107855
108472
  return null;
107856
108473
  }
108474
+ var ribbonData = links[0];
108475
+ if (!(ribbonData !== null && ribbonData !== void 0 && ribbonData.show_top_ribbon)) {
108476
+ return null;
108477
+ }
108478
+ var navLinks = ribbonData.links;
108479
+ if (!navLinks || !Array.isArray(navLinks) || navLinks.length === 0) {
108480
+ return null;
108481
+ }
108482
+ var editing = isEditingMode();
107857
108483
 
107858
108484
  /**
107859
108485
  * Fires a GTM dataLayer event when a link is clicked.
@@ -107863,9 +108489,9 @@ var TopRibbon = function TopRibbon(_ref) {
107863
108489
  * @param {Object} item - The navigation item that was clicked
107864
108490
  */
107865
108491
  var handleClick = function handleClick(item) {
107866
- if (typeof window === 'undefined' || !Array.isArray(window.dataLayer)) return;
108492
+ if (typeof window === "undefined" || !Array.isArray(window.dataLayer)) return;
107867
108493
  window.dataLayer.push(TopRibbon_objectSpread({
107868
- event: 'top_ribbon_click',
108494
+ event: "top_ribbon_click",
107869
108495
  link_text: item.label,
107870
108496
  link_url: item.url
107871
108497
  }, item.gtmEvent));
@@ -107877,20 +108503,26 @@ var TopRibbon = function TopRibbon(_ref) {
107877
108503
  "aria-label": ariaLabel,
107878
108504
  role: "navigation",
107879
108505
  "data-testid": "".concat(dataTestId, "-nav"),
107880
- children: /*#__PURE__*/(0,jsx_runtime_.jsx)(StyledNavigationList, {
107881
- "data-testid": "".concat(dataTestId, "-list"),
107882
- children: links.map(function (item, index) {
107883
- if (!item || TopRibbon_typeof(item) !== 'object') return null;
108506
+ children: /*#__PURE__*/(0,jsx_runtime_.jsx)(StyledNavigationList, TopRibbon_objectSpread(TopRibbon_objectSpread({
108507
+ "data-testid": "".concat(dataTestId, "-list")
108508
+ }, editing ? TopRibbon_objectSpread(TopRibbon_objectSpread({}, (_ribbonData$$ = ribbonData.$) === null || _ribbonData$$ === void 0 ? void 0 : _ribbonData$$.links), {}, {
108509
+ "data-add-direction": "horizontal"
108510
+ }) : null), {}, {
108511
+ children: navLinks.map(function (item, index) {
108512
+ var _ribbonData$top_ribbo, _ribbonData$$2, _item$$;
108513
+ if (!item || TopRibbon_typeof(item) !== "object") return null;
107884
108514
  var label = item.label,
107885
108515
  url = item.url,
107886
- itemAriaLabel = item.ariaLabel,
107887
- itemTestId = item.dataTestId;
108516
+ show = item.show;
108517
+ if (show === false) return null;
107888
108518
  if (!label || !url) return null;
107889
- var linkHref = validateUrl(url);
107890
- var linkAriaLabel = itemAriaLabel || "Navigate to ".concat(label);
107891
- var linkTestId = itemTestId || "".concat(dataTestId, "-item-").concat(index);
107892
- return /*#__PURE__*/(0,jsx_runtime_.jsx)(StyledNavigationItem, {
108519
+ var linkHref = convertToLocalizedUrl(url);
108520
+ var linkAriaLabel = "".concat((_ribbonData$top_ribbo = ribbonData.top_ribbon_item_aria_label) !== null && _ribbonData$top_ribbo !== void 0 ? _ribbonData$top_ribbo : "Navigate to", " ").concat(label);
108521
+ var linkTestId = "".concat(dataTestId, "-item-").concat(index);
108522
+ return /*#__PURE__*/(0,jsx_runtime_.jsx)(StyledNavigationItem, TopRibbon_objectSpread(TopRibbon_objectSpread({
107893
108523
  "data-testid": "".concat(linkTestId, "-container"),
108524
+ $editing: editing
108525
+ }, editing ? (_ribbonData$$2 = ribbonData.$) === null || _ribbonData$$2 === void 0 ? void 0 : _ribbonData$$2["links__".concat(index)] : null), {}, {
107894
108526
  children: /*#__PURE__*/(0,jsx_runtime_.jsx)(StyledNavigationLink, {
107895
108527
  href: linkHref,
107896
108528
  target: "_blank",
@@ -107900,11 +108532,13 @@ var TopRibbon = function TopRibbon(_ref) {
107900
108532
  },
107901
108533
  "aria-label": linkAriaLabel,
107902
108534
  "data-testid": linkTestId,
107903
- children: label
108535
+ children: /*#__PURE__*/(0,jsx_runtime_.jsx)("span", TopRibbon_objectSpread(TopRibbon_objectSpread({}, editing ? (_item$$ = item.$) === null || _item$$ === void 0 ? void 0 : _item$$.label : null), {}, {
108536
+ children: label
108537
+ }))
107904
108538
  })
107905
- }, "nav-item-".concat(index, "-").concat(label));
108539
+ }), "nav-item-".concat(index, "-").concat(label));
107906
108540
  })
107907
- })
108541
+ }))
107908
108542
  })
107909
108543
  });
107910
108544
  };
@@ -110403,6 +111037,7 @@ function HeaderView_arrayWithHoles(r) { if (Array.isArray(r)) return r; }
110403
111037
 
110404
111038
 
110405
111039
 
111040
+
110406
111041
  var DEFAULT_LOGO = {
110407
111042
  wordmark: "NU SKIN",
110408
111043
  home_href: "/",
@@ -110419,10 +111054,6 @@ var DEFAULT_MARKET_SELECTOR = {
110419
111054
  cancel_text: "Cancel",
110420
111055
  control_label: DEFAULT_LOCALE.control_label
110421
111056
  };
110422
- var DEFAULT_LOYALTY = {
110423
- link_label: "Nu Skin Rewards",
110424
- href: "/rewards"
110425
- };
110426
111057
  var DEFAULT_ACCOUNT = {
110427
111058
  show: true,
110428
111059
  icon: "userOutline",
@@ -110436,39 +111067,16 @@ var DEFAULT_ACCOUNT = {
110436
111067
  url: ""
110437
111068
  }
110438
111069
  };
111070
+ var DEFAULT_LOYALTY = {
111071
+ label: "Nu Skin Rewards",
111072
+ url: "/rewards",
111073
+ open_in_new_tab: true,
111074
+ show: true
111075
+ };
110439
111076
  var DEFAULT_CART = {
110440
111077
  aria_label: "Shopping cart",
110441
111078
  count: 0
110442
111079
  };
110443
- var DEFAULT_TOP_RIBBON_LINKS = [{
110444
- label: "Hair",
110445
- url: "/hair",
110446
- ariaLabel: "Shop Hair"
110447
- }, {
110448
- label: "Skin",
110449
- url: "/skin",
110450
- ariaLabel: "Shop Skin"
110451
- }, {
110452
- label: "Body",
110453
- url: "/body",
110454
- ariaLabel: "Shop Body"
110455
- }, {
110456
- label: "Fragrance",
110457
- url: "/fragrance",
110458
- ariaLabel: "Shop Fragrance"
110459
- }, {
110460
- label: "Beauty Bio",
110461
- url: "/beauty-bio",
110462
- ariaLabel: "Shop Beauty Bio"
110463
- }, {
110464
- label: "Accessories",
110465
- url: "/accessories",
110466
- ariaLabel: "Shop Accessories"
110467
- }, {
110468
- label: "Gifts",
110469
- url: "/gifts",
110470
- ariaLabel: "Shop Gifts"
110471
- }];
110472
111080
  function firstDefined() {
110473
111081
  for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {
110474
111082
  values[_key] = arguments[_key];
@@ -110545,14 +111153,27 @@ function buildAccountParentTags(_ref2) {
110545
111153
  sign_in_url: pickTag("sign_in_url")
110546
111154
  };
110547
111155
  }
110548
- function HeaderView(_ref3) {
110549
- var _headerEntry$logo, _headerEntry$locale_s, _utilityLinksEntry$lo, _utilityLinksEntry$lo2, _headerEntry$cart, _storefrontParams$car, _headerEntry$top_ribb, _headerEntry$market_s, _headerEntry$translat, _headerEntry$translat2, _headerEntry$$, _ref4, _headerEntry$locale, _headerEntry$$2, _headerEntry$$3;
110550
- var country = _ref3.country,
110551
- language = _ref3.language,
110552
- locale = _ref3.locale,
110553
- headerEntry = _ref3.headerEntry,
110554
- searchConfig = _ref3.searchConfig,
110555
- storefrontParams = _ref3.storefrontParams;
111156
+ function LoyaltyComponent(_ref3) {
111157
+ var data = _ref3.data;
111158
+ var show = normalizeShowFlag(data === null || data === void 0 ? void 0 : data.show, true);
111159
+ if (!show) return null;
111160
+ return withTracking(/*#__PURE__*/(0,jsx_runtime_.jsx)(HeaderLoyaltyRegion, {
111161
+ data: data
111162
+ }), {
111163
+ componentType: "loyalty"
111164
+ });
111165
+ }
111166
+ LoyaltyComponent.propTypes = {
111167
+ data: (external_prop_types_default()).object
111168
+ };
111169
+ function HeaderView(_ref4) {
111170
+ var _headerEntry$logo, _headerEntry$locale_s, _utilityLinksEntry$lo, _utilityLinksEntry$lo2, _headerEntry$cart, _storefrontParams$car, _headerEntry$$, _headerEntry$top_ribb, _headerEntry$market_s, _headerEntry$translat, _headerEntry$translat2, _topRibbon$top_ribbon, _headerEntry$$2, _ref5, _headerEntry$locale, _headerEntry$$3, _headerEntry$$4;
111171
+ var country = _ref4.country,
111172
+ language = _ref4.language,
111173
+ locale = _ref4.locale,
111174
+ headerEntry = _ref4.headerEntry,
111175
+ searchConfig = _ref4.searchConfig,
111176
+ storefrontParams = _ref4.storefrontParams;
110556
111177
  var _useState = (0,external_react_.useState)(false),
110557
111178
  _useState2 = HeaderView_slicedToArray(_useState, 2),
110558
111179
  isMobileMenuOpen = _useState2[0],
@@ -110579,7 +111200,8 @@ function HeaderView(_ref3) {
110579
111200
  var cartData = HeaderView_objectSpread(HeaderView_objectSpread({}, (_headerEntry$cart = headerEntry === null || headerEntry === void 0 ? void 0 : headerEntry.cart) !== null && _headerEntry$cart !== void 0 ? _headerEntry$cart : DEFAULT_CART), {}, {
110580
111201
  item_count: (_storefrontParams$car = storefrontParams === null || storefrontParams === void 0 ? void 0 : storefrontParams.cartCount) !== null && _storefrontParams$car !== void 0 ? _storefrontParams$car : 0
110581
111202
  });
110582
- var topRibbonLinks = (_headerEntry$top_ribb = headerEntry === null || headerEntry === void 0 ? void 0 : headerEntry.top_ribbon_links) !== null && _headerEntry$top_ribb !== void 0 ? _headerEntry$top_ribb : DEFAULT_TOP_RIBBON_LINKS;
111203
+ var $ = (_headerEntry$$ = headerEntry === null || headerEntry === void 0 ? void 0 : headerEntry.$) !== null && _headerEntry$$ !== void 0 ? _headerEntry$$ : {};
111204
+ var topRibbon = (_headerEntry$top_ribb = headerEntry === null || headerEntry === void 0 ? void 0 : headerEntry.top_ribbon) !== null && _headerEntry$top_ribb !== void 0 ? _headerEntry$top_ribb : null;
110583
111205
  var navigationData = headerEntry === null || headerEntry === void 0 ? void 0 : headerEntry.top_navigation;
110584
111206
  var marketSelector = (_headerEntry$market_s = headerEntry === null || headerEntry === void 0 ? void 0 : headerEntry.market_selector) !== null && _headerEntry$market_s !== void 0 ? _headerEntry$market_s : DEFAULT_MARKET_SELECTOR;
110585
111207
  var translations = (_headerEntry$translat = headerEntry === null || headerEntry === void 0 || (_headerEntry$translat2 = headerEntry.translations) === null || _headerEntry$translat2 === void 0 ? void 0 : _headerEntry$translat2[0]) !== null && _headerEntry$translat !== void 0 ? _headerEntry$translat : null;
@@ -110588,11 +111210,13 @@ function HeaderView(_ref3) {
110588
111210
  "data-country": country,
110589
111211
  "data-language": language,
110590
111212
  "data-locale": locale,
110591
- children: [/*#__PURE__*/(0,jsx_runtime_.jsx)(top_ribbon_TopRibbon, {
110592
- links: topRibbonLinks,
110593
- ariaLabel: "Top navigation",
110594
- dataTestId: "header-top-ribbon"
110595
- }), /*#__PURE__*/(0,jsx_runtime_.jsxs)(TopHeaderRow, {
111213
+ children: [(topRibbon === null || topRibbon === void 0 ? void 0 : topRibbon.show_top_ribbon) && /*#__PURE__*/(0,jsx_runtime_.jsx)("div", HeaderView_objectSpread(HeaderView_objectSpread(HeaderView_objectSpread({}, ($ === null || $ === void 0 ? void 0 : $.top_ribbon) || {}), ($ === null || $ === void 0 ? void 0 : $.top_ribbon__parent) || {}), {}, {
111214
+ children: /*#__PURE__*/(0,jsx_runtime_.jsx)(top_ribbon_TopRibbon, {
111215
+ links: [topRibbon],
111216
+ ariaLabel: (_topRibbon$top_ribbon = topRibbon.top_ribbon_aria_label) !== null && _topRibbon$top_ribbon !== void 0 ? _topRibbon$top_ribbon : "Top Ribbon",
111217
+ dataTestId: "header-top-ribbon"
111218
+ })
111219
+ })), /*#__PURE__*/(0,jsx_runtime_.jsxs)(TopHeaderRow, {
110596
111220
  children: [/*#__PURE__*/(0,jsx_runtime_.jsx)(MobileMenuButton, {
110597
111221
  onClick: function onClick() {
110598
111222
  return setIsMobileMenuOpen(true);
@@ -110621,7 +111245,7 @@ function HeaderView(_ref3) {
110621
111245
  showDesktopTrigger: false
110622
111246
  }), /*#__PURE__*/(0,jsx_runtime_.jsx)(HeaderCartRegion, {
110623
111247
  data: cartData,
110624
- parent$: headerEntry === null || headerEntry === void 0 || (_headerEntry$$ = headerEntry.$) === null || _headerEntry$$ === void 0 ? void 0 : _headerEntry$$.cart
111248
+ parent$: headerEntry === null || headerEntry === void 0 || (_headerEntry$$2 = headerEntry.$) === null || _headerEntry$$2 === void 0 ? void 0 : _headerEntry$$2.cart
110625
111249
  })]
110626
111250
  }), /*#__PURE__*/(0,jsx_runtime_.jsx)(RightHeaderCluster, {
110627
111251
  children: /*#__PURE__*/(0,jsx_runtime_.jsxs)(UtilityBar, {
@@ -110629,19 +111253,19 @@ function HeaderView(_ref3) {
110629
111253
  children: [/*#__PURE__*/(0,jsx_runtime_.jsx)(MarketSelector, {
110630
111254
  data: marketSelector,
110631
111255
  logo: logoData,
110632
- locale: String((_ref4 = (_headerEntry$locale = headerEntry === null || headerEntry === void 0 ? void 0 : headerEntry.locale) !== null && _headerEntry$locale !== void 0 ? _headerEntry$locale : locale) !== null && _ref4 !== void 0 ? _ref4 : "").trim(),
110633
- parent$: headerEntry === null || headerEntry === void 0 || (_headerEntry$$2 = headerEntry.$) === null || _headerEntry$$2 === void 0 ? void 0 : _headerEntry$$2.market_selector__0,
111256
+ locale: String((_ref5 = (_headerEntry$locale = headerEntry === null || headerEntry === void 0 ? void 0 : headerEntry.locale) !== null && _headerEntry$locale !== void 0 ? _headerEntry$locale : locale) !== null && _ref5 !== void 0 ? _ref5 : "").trim(),
111257
+ parent$: headerEntry === null || headerEntry === void 0 || (_headerEntry$$3 = headerEntry.$) === null || _headerEntry$$3 === void 0 ? void 0 : _headerEntry$$3.market_selector__0,
110634
111258
  mobileTriggerMode: "drawerPortal",
110635
111259
  drawerOpen: isMobileMenuOpen,
110636
111260
  drawerTriggerMountRef: mobileMarketTriggerMountRef
110637
- }), /*#__PURE__*/(0,jsx_runtime_.jsx)(HeaderLoyaltyRegion, {
111261
+ }), /*#__PURE__*/(0,jsx_runtime_.jsx)(LoyaltyComponent, {
110638
111262
  data: loyaltyData
110639
111263
  }), /*#__PURE__*/(0,jsx_runtime_.jsx)(HeaderAccountRegion, {
110640
111264
  data: accountData,
110641
111265
  parent$: accountParentTags
110642
111266
  }), /*#__PURE__*/(0,jsx_runtime_.jsx)(HeaderCartRegion, {
110643
111267
  data: cartData,
110644
- parent$: headerEntry === null || headerEntry === void 0 || (_headerEntry$$3 = headerEntry.$) === null || _headerEntry$$3 === void 0 ? void 0 : _headerEntry$$3.cart
111268
+ parent$: headerEntry === null || headerEntry === void 0 || (_headerEntry$$4 = headerEntry.$) === null || _headerEntry$$4 === void 0 ? void 0 : _headerEntry$$4.cart
110645
111269
  })]
110646
111270
  })
110647
111271
  })]