@shopkit/builder 0.1.5 → 0.2.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.
@@ -1,3 +1,9 @@
1
+ /**
2
+ * Route Context Types
3
+ *
4
+ * Defines the context passed to the page builder for rendering.
5
+ */
6
+
1
7
  /**
2
8
  * Breakpoint configuration for responsive design
3
9
  */
@@ -1,3 +1,9 @@
1
+ /**
2
+ * Route Context Types
3
+ *
4
+ * Defines the context passed to the page builder for rendering.
5
+ */
6
+
1
7
  /**
2
8
  * Breakpoint configuration for responsive design
3
9
  */
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- 'use strict';const _0x1c596f=_0x49fb;function _0x5003(){const _0x240df2=['y3vYCMvUDejYzwfRCg9PBNq','z2v0qNjLywTWB2LUDenVBMzPzW','C3vIC2nYAwjL','DxnLqNjLywTWB2LUDhm','AM9PBG','mtK4otqYowTssK50DG','mZqZnZm0meztBerfsa','wMDkEgS','zgvSzxrL','CMvHy3q','ywrKrxzLBNrmAxn0zw5LCG','zM9YrwfJAa','ywrK','ndmYmtG4ne5Zufrgsq','DwTyq0S','Bwf0y2HLCW','q1HXENi','BwLU','EKrIyMq','ChGP','y3vZDg9T','BwvKAwfrDwvYEuXPC3rLBMvYCW','BgLZDgvUzxjZ','mta2ndu3mw5PsuTAsW','s2zWCva','igfUzca','C2v0','zw50CMLLCW','Ahnsr0q','kg1HEc13Awr0AdOG','ngvctvj3CG','y2XLyxi','DgfIBgv0','z2v0q3vYCMvUDejYzwfRCg9PBNq','Bwf0y2HnzwrPyq','zgv0zwn0q3vYCMvUDejYzwfRCg9PBNq','BM90Awz5tgLZDgvUzxjZ','Bwf4','rgzQB3C','zgvZA3rVCa','yNjLywTWB2LUDhm','DxnLu3rHDgu','A2v5CW','zhLyANm','nJaZmZi4Dw5puw5T','zgvZDhjVEq','C2v0DxbnzwrPyvf1zxj5tgLZDgvUzxjZ','Bw9IAwXL','y2HHBMDL','ugHZueC','Bw5guw0','D2LKzq','mJG0nti0mg9KwM5hqG','z2v0twvKAwfrDwvYEq','ChvZAa','ntK3odq1CvzSBuHZ','Aw5UzxjxAwr0Aa','yM91BMriyw5KBgvY','uvDNs2W'];_0x5003=function(){return _0x240df2;};return _0x5003();}function _0x49fb(_0x1e0ab8,_0xa33f32){_0x1e0ab8=_0x1e0ab8-0x98;const _0x5003cb=_0x5003();let _0x49fb53=_0x5003cb[_0x1e0ab8];if(_0x49fb['bXfiph']===undefined){var _0x220e81=function(_0x4bef2a){const _0x3d9e8f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x598831='',_0x546c04='';for(let _0x599283=0x0,_0x35a03a,_0x2c7984,_0x1c3aa8=0x0;_0x2c7984=_0x4bef2a['charAt'](_0x1c3aa8++);~_0x2c7984&&(_0x35a03a=_0x599283%0x4?_0x35a03a*0x40+_0x2c7984:_0x2c7984,_0x599283++%0x4)?_0x598831+=String['fromCharCode'](0xff&_0x35a03a>>(-0x2*_0x599283&0x6)):0x0){_0x2c7984=_0x3d9e8f['indexOf'](_0x2c7984);}for(let _0x34a017=0x0,_0x315152=_0x598831['length'];_0x34a017<_0x315152;_0x34a017++){_0x546c04+='%'+('00'+_0x598831['charCodeAt'](_0x34a017)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x546c04);};_0x49fb['plLpxD']=_0x220e81,_0x49fb['GphjwJ']={},_0x49fb['bXfiph']=!![];}const _0x2d2202=_0x5003cb[0x0],_0x117112=_0x1e0ab8+_0x2d2202,_0x4dd57f=_0x49fb['GphjwJ'][_0x117112];return!_0x4dd57f?(_0x49fb53=_0x49fb['plLpxD'](_0x49fb53),_0x49fb['GphjwJ'][_0x117112]=_0x49fb53):_0x49fb53=_0x4dd57f,_0x49fb53;}(function(_0x36b028,_0x491cee){const _0x5b8ca8=_0x49fb,_0x58d0d6=_0x36b028();while(!![]){try{const _0xdb2e95=-parseInt(_0x5b8ca8(0xc6))/0x1+parseInt(_0x5b8ca8(0xa0))/0x2+parseInt(_0x5b8ca8(0xb4))/0x3+-parseInt(_0x5b8ca8(0xcd))/0x4*(-parseInt(_0x5b8ca8(0xab))/0x5)+parseInt(_0x5b8ca8(0xb5))/0x6+parseInt(_0x5b8ca8(0xbc))/0x7+-parseInt(_0x5b8ca8(0xa8))/0x8;if(_0xdb2e95===_0x491cee)break;else _0x58d0d6['push'](_0x58d0d6['shift']());}catch(_0x28ea74){_0x58d0d6['push'](_0x58d0d6['shift']());}}}(_0x5003,0xd09b4));var react=require(_0x1c596f(0xb8)),a={'mobile':{'max':0x2ff},'tablet':{'min':0x300,'max':0x3ff},'desktop':{'min':0x400,'max':0x780},'wide':{'min':0x781}},o=class{constructor(_0x3f3622=a){const _0x4dd75d=_0x1c596f;this[_0x4dd75d(0xc4)]=new Map(),this['currentBreakpoint']=_0x4dd75d(0x9b),this['listeners']=new Set(),this['boundHandler']=null,(this[_0x4dd75d(0x9c)]=_0x3f3622,typeof window<'u'&&(this[_0x4dd75d(0xa2)](),this['detectCurrentBreakpoint']()));}[_0x1c596f(0xd0)](){const _0xbe9ef3=_0x1c596f;return this[_0xbe9ef3(0xaf)];}['getBreakpoints'](){return this['breakpoints'];}[_0x1c596f(0xa9)](_0x17e181){const _0x5db536=_0x1c596f,_0x21b51b={'KfpqP':function(_0x2a347b,_0x3b0f61){return _0x2a347b!==_0x3b0f61;},'ukXCK':_0x5db536(0xc8)};let _0x1c314b=this[_0x5db536(0xb0)](_0x17e181);if(!_0x1c314b)return'';let _0x197b5c=[];return _0x21b51b[_0x5db536(0xc7)](_0x1c314b[_0x5db536(0xc0)],void 0x0)&&_0x197b5c[_0x5db536(0xaa)]('(min-width:\x20'+_0x1c314b[_0x5db536(0xc0)]+_0x5db536(0xc2)),_0x21b51b[_0x5db536(0xc7)](_0x1c314b[_0x5db536(0x99)],void 0x0)&&_0x197b5c[_0x5db536(0xaa)](_0x5db536(0xcc)+_0x1c314b[_0x5db536(0x99)]+'px)'),_0x197b5c[_0x5db536(0xb3)](_0x21b51b[_0x5db536(0xbd)]);}[_0x1c596f(0xb0)](_0x345c95){const _0x3d1179=_0x1c596f;return _0x345c95 in this[_0x3d1179(0x9c)]?this[_0x3d1179(0x9c)][_0x345c95]:this[_0x3d1179(0x9c)]['custom']&&_0x345c95 in this[_0x3d1179(0x9c)][_0x3d1179(0xc3)]?this[_0x3d1179(0x9c)][_0x3d1179(0xc3)][_0x345c95]:null;}[_0x1c596f(0xa2)](){const _0x484225=_0x1c596f,_0x572aef={'mnFQm':function(_0x3d6914,_0x28c615){return _0x3d6914===_0x28c615;},'ZgJxk':'change'};this[_0x484225(0xad)]=()=>this[_0x484225(0xd2)](),Object[_0x484225(0x9e)](this['breakpoints'])[_0x484225(0xba)](_0x261bc3=>{const _0x80cf55=_0x484225;if(_0x572aef[_0x80cf55(0xa6)](_0x261bc3,'custom'))return;let _0x170bc6=this[_0x80cf55(0xa9)](_0x261bc3);if(_0x170bc6){let _0x56b3ee=window[_0x80cf55(0xd1)](_0x170bc6);this['mediaQueryListeners'][_0x80cf55(0xc9)](_0x261bc3,_0x56b3ee),_0x56b3ee[_0x80cf55(0xb9)](_0x572aef[_0x80cf55(0xb6)],this[_0x80cf55(0xad)]);}}),this[_0x484225(0x9c)][_0x484225(0xc3)]&&Object[_0x484225(0x9e)](this[_0x484225(0x9c)][_0x484225(0xc3)])[_0x484225(0xba)](_0x2ae464=>{const _0x4ee383=_0x484225;let _0x4e2812=this[_0x4ee383(0xa9)](_0x2ae464);if(_0x4e2812){let _0x4052ec=window[_0x4ee383(0xd1)](_0x4e2812);this['mediaQueryListeners'][_0x4ee383(0xc9)](_0x2ae464,_0x4052ec),_0x4052ec[_0x4ee383(0xb9)](_0x572aef[_0x4ee383(0xb6)],this[_0x4ee383(0xad)]);}});}[_0x1c596f(0xd2)](){const _0x460fa6=_0x1c596f,_0x13dffe={'CXqzr':function(_0x22688b,_0x2f684a){return _0x22688b>=_0x2f684a;},'Dfjow':function(_0x1c69f7,_0x5313b5){return _0x1c69f7<=_0x5313b5;},'zDbbd':_0x460fa6(0xcf),'PhsPG':_0x460fa6(0x9b),'QWgKl':function(_0x54bdfd,_0x51ad67){return _0x54bdfd>=_0x51ad67;},'XnuGP':_0x460fa6(0xa7),'dyXjs':function(_0x32afa8,_0x5c3566){return _0x32afa8===_0x5c3566;}};let _0x1b7755=window[_0x460fa6(0xac)],_0x5e12e1='desktop';if(_0x1b7755<=this['breakpoints'][_0x460fa6(0xa3)]['max']?_0x5e12e1=_0x460fa6(0xa3):_0x13dffe['CXqzr'](_0x1b7755,this[_0x460fa6(0x9c)][_0x460fa6(0xcf)][_0x460fa6(0xc0)])&&_0x13dffe[_0x460fa6(0x9a)](_0x1b7755,this[_0x460fa6(0x9c)][_0x460fa6(0xcf)][_0x460fa6(0x99)])?_0x5e12e1=_0x13dffe[_0x460fa6(0xc1)]:_0x13dffe[_0x460fa6(0xbf)](_0x1b7755,this[_0x460fa6(0x9c)][_0x460fa6(0x9b)][_0x460fa6(0xc0)])&&_0x1b7755<=this[_0x460fa6(0x9c)][_0x460fa6(0x9b)][_0x460fa6(0x99)]?_0x5e12e1=_0x13dffe[_0x460fa6(0xa5)]:_0x13dffe[_0x460fa6(0xae)](_0x1b7755,this[_0x460fa6(0x9c)][_0x460fa6(0xa7)][_0x460fa6(0xc0)])&&(_0x5e12e1=_0x13dffe['XnuGP']),this[_0x460fa6(0x9c)][_0x460fa6(0xc3)]){for(let [_0x38fa61,_0xb1785f]of Object[_0x460fa6(0xca)](this[_0x460fa6(0x9c)][_0x460fa6(0xc3)]))if((_0x13dffe[_0x460fa6(0x9f)](_0xb1785f[_0x460fa6(0xc0)],void 0x0)||_0x1b7755>=_0xb1785f[_0x460fa6(0xc0)])&&(_0xb1785f[_0x460fa6(0x99)]===void 0x0||_0x1b7755<=_0xb1785f[_0x460fa6(0x99)])){_0x5e12e1=_0x38fa61;break;}}_0x5e12e1!==this['currentBreakpoint']&&(this[_0x460fa6(0xaf)]=_0x5e12e1,this[_0x460fa6(0x98)]());}[_0x1c596f(0xb1)](_0x2ec1d0){const _0x37a4e3=_0x1c596f;return this[_0x37a4e3(0xc5)][_0x37a4e3(0xbb)](_0x2ec1d0),()=>this[_0x37a4e3(0xc5)][_0x37a4e3(0xb7)](_0x2ec1d0);}[_0x1c596f(0x98)](){const _0x1b0fd5=_0x1c596f;this[_0x1b0fd5(0xc5)]['forEach'](_0xc468d4=>_0xc468d4(this[_0x1b0fd5(0xaf)]));}[_0x1c596f(0xbe)](_0x2e3ab5){const _0x410ec7=_0x1c596f;let _0x557803=this[_0x410ec7(0xc4)]['get'](_0x2e3ab5);return _0x557803?_0x557803['matches']:![];}[_0x1c596f(0xa1)](){const _0xab17a3=_0x1c596f;this['boundHandler']&&(this[_0xab17a3(0xc4)][_0xab17a3(0xba)](_0x12541b=>{const _0x136174=_0xab17a3;_0x12541b['removeEventListener'](_0x136174(0xa4),this[_0x136174(0xad)]);}),this[_0xab17a3(0xad)]=null),this[_0xab17a3(0xc4)][_0xab17a3(0xce)](),this[_0xab17a3(0xc5)]['clear']();}},s=null;function p(_0x5a2789){return s||(s=new o(_0x5a2789)),s;}function b(_0x204d33){const _0x507731=_0x1c596f,_0x3186d9={'bQEvw':_0x507731(0x9b),'hsRGD':function(_0x2c7f8e,_0x13841e){return _0x2c7f8e===_0x13841e;},'pheAW':_0x507731(0xa7)};let [_0x577b10,_0x9833bc]=react[_0x507731(0x9d)](_0x3186d9['bQEvw']),_0x11798d=p(_0x204d33);return react['useEffect'](()=>(_0x9833bc(_0x11798d[_0x507731(0xd0)]()),_0x11798d['subscribe'](_0xb46db2=>{_0x9833bc(_0xb46db2);})),[_0x204d33]),{'currentBreakpoint':_0x577b10,'isMobile':_0x577b10===_0x507731(0xa3),'isTablet':_0x3186d9[_0x507731(0xcb)](_0x577b10,_0x507731(0xcf)),'isDesktop':_0x3186d9['hsRGD'](_0x577b10,_0x3186d9['bQEvw']),'isWide':_0x577b10===_0x3186d9['pheAW'],'matches':_0x460207=>_0x11798d['matches'](_0x460207)};}exports[_0x1c596f(0xb2)]=b;
2
+ 'use strict';function _0x3e93(){const _0x4a80be=['v2vXD0m','zgv0zwn0q3vYCMvUDejYzwfRCg9PBNq','rK9AtMm','DxnLqNjLywTWB2LUDhm','CMvTB3zLrxzLBNrmAxn0zw5LCG','zM9YrwfJAa','zgvZDhjVEq','AM9PBG','DgfIBgv0','yNjLywTWB2LUDhm','BgLZDgvUzxjZ','z2v0twvKAwfrDwvYEq','C3vIC2nYAwjL','Cg9uCwy','rMTYwxu','Bwf0y2HLCW','Bwf0y2HnzwrPyq','BKfJtum','mtuWmJe2mtbtywv4t0y','mtaWndyYnMPoEeXMwa','zgvZA3rVCa','y2zvs24','ywrKrxzLBNrmAxn0zw5LCG','ndy5odm2ouX3u1nksa','zw50CMLLCW','y3vZDg9T','DxnLu3rHDgu','mtGZmZjxvLnYANm','y2HHBMDL','rezZtgC','y2XLyxi','mty1rvPotwXM','Bvv3CuW','BM90Awz5tgLZDgvUzxjZ','z2v0q3vYCMvUDejYzwfRCg9PBNq','C2v0','Bgfurfq','BwLU','y3vYCMvUDejYzwfRCg9PBNq','z2v0','z2v0qNjLywTWB2LUDenVBMzPzW','nJq0mZCYmhvKExfpvq','nfrxt3zvDG','tvrHB24','DxnLrwzMzwn0','shHUywy','ChvZAa','r2j6EMu','Bwf4','CwLIshG','mJCZCM56CeDd','BwvKAwfrDwvYEuXPC3rLBMvYCW','z2v0qNjLywTWB2LUDhm','ChGP','ntGZmdiWr1zlAfj2','zgvSzxrL','Bw9IAwXL','ChLcwLG','yM91BMriyw5KBgvY','CMvHy3q','mJa3mfnlshrvsW','qujjsxu','D2LKzq','igfUzca','kg1PBI13Awr0AdOG'];_0x3e93=function(){return _0x4a80be;};return _0x3e93();}const _0x2b8f2a=_0x5455;(function(_0x5a1b82,_0x29e641){const _0x5dfef5=_0x5455,_0x3cb922=_0x5a1b82();while(!![]){try{const _0x1019d0=parseInt(_0x5dfef5(0xcc))/0x1+parseInt(_0x5dfef5(0xd4))/0x2*(-parseInt(_0x5dfef5(0xd8))/0x3)+-parseInt(_0x5dfef5(0xe3))/0x4*(-parseInt(_0x5dfef5(0xae))/0x5)+-parseInt(_0x5dfef5(0xb4))/0x6*(-parseInt(_0x5dfef5(0xeb))/0x7)+-parseInt(_0x5dfef5(0xe2))/0x8+-parseInt(_0x5dfef5(0xd0))/0x9+parseInt(_0x5dfef5(0xcb))/0xa;if(_0x1019d0===_0x29e641)break;else _0x3cb922['push'](_0x3cb922['shift']());}catch(_0x21253b){_0x3cb922['push'](_0x3cb922['shift']());}}}(_0x3e93,0xc495a));function _0x5455(_0x2ccb0d,_0x352b26){_0x2ccb0d=_0x2ccb0d-0xae;const _0x3e931a=_0x3e93();let _0x54557d=_0x3e931a[_0x2ccb0d];if(_0x5455['VGrmVk']===undefined){var _0x4a94d1=function(_0x55c316){const _0x48230d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x50a195='',_0x3eb730='';for(let _0x55e491=0x0,_0x2313c2,_0x2c2e37,_0x50100d=0x0;_0x2c2e37=_0x55c316['charAt'](_0x50100d++);~_0x2c2e37&&(_0x2313c2=_0x55e491%0x4?_0x2313c2*0x40+_0x2c2e37:_0x2c2e37,_0x55e491++%0x4)?_0x50a195+=String['fromCharCode'](0xff&_0x2313c2>>(-0x2*_0x55e491&0x6)):0x0){_0x2c2e37=_0x48230d['indexOf'](_0x2c2e37);}for(let _0x2b65bb=0x0,_0x1ac2b4=_0x50a195['length'];_0x2b65bb<_0x1ac2b4;_0x2b65bb++){_0x3eb730+='%'+('00'+_0x50a195['charCodeAt'](_0x2b65bb)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3eb730);};_0x5455['MNbSMl']=_0x4a94d1,_0x5455['opakDK']={},_0x5455['VGrmVk']=!![];}const _0x29b3ea=_0x3e931a[0x0],_0x155ae4=_0x2ccb0d+_0x29b3ea,_0x26d906=_0x5455['opakDK'][_0x155ae4];return!_0x26d906?(_0x54557d=_0x5455['MNbSMl'](_0x54557d),_0x5455['opakDK'][_0x155ae4]=_0x54557d):_0x54557d=_0x26d906,_0x54557d;}var react=require(_0x2b8f2a(0xb3)),a={'mobile':{'max':0x2ff},'tablet':{'min':0x300,'max':0x3ff},'desktop':{'min':0x400,'max':0x780},'wide':{'min':0x781}},o=class{constructor(_0x3cdea0=a){const _0xe12827=_0x2b8f2a,_0x38f9f1={'WeqwC':'desktop'};this['mediaQueryListeners']=new Map(),this[_0xe12827(0xdf)]=_0x38f9f1[_0xe12827(0xb9)],this[_0xe12827(0xc3)]=new Set(),this[_0xe12827(0xb2)]=null,(this['breakpoints']=_0x3cdea0,typeof window<'u'&&(this['setupMediaQueryListeners'](),this[_0xe12827(0xba)]()));}[_0x2b8f2a(0xdb)](){return this['currentBreakpoint'];}[_0x2b8f2a(0xed)](){const _0x3a49b9=_0x2b8f2a;return this[_0x3a49b9(0xc2)];}['getMediaQuery'](_0xaabbc){const _0x17b1ee=_0x2b8f2a,_0x1513db={'FkrYu':function(_0x370895,_0x5b3616){return _0x370895!==_0x5b3616;},'ABIIu':_0x17b1ee(0xb7)};let _0x3599df=this['getBreakpointConfig'](_0xaabbc);if(!_0x3599df)return'';let _0x3afbbd=[];return _0x1513db[_0x17b1ee(0xc7)](_0x3599df[_0x17b1ee(0xde)],void 0x0)&&_0x3afbbd['push'](_0x17b1ee(0xb8)+_0x3599df[_0x17b1ee(0xde)]+_0x17b1ee(0xee)),_0x3599df[_0x17b1ee(0xe9)]!==void 0x0&&_0x3afbbd[_0x17b1ee(0xe7)]('(max-width:\x20'+_0x3599df[_0x17b1ee(0xe9)]+_0x17b1ee(0xee)),_0x3afbbd[_0x17b1ee(0xc0)](_0x1513db[_0x17b1ee(0xb5)]);}[_0x2b8f2a(0xe1)](_0x2158c9){const _0x4d30dc=_0x2b8f2a,_0x2c78e1={'egcuW':function(_0x371d99,_0x3c6ce4){return _0x371d99 in _0x3c6ce4;},'TNirr':function(_0x6512d,_0x104f98){return _0x6512d in _0x104f98;}};return _0x2c78e1['egcuW'](_0x2158c9,this[_0x4d30dc(0xc2)])?this['breakpoints'][_0x2158c9]:this['breakpoints'][_0x4d30dc(0xd2)]&&_0x2c78e1['TNirr'](_0x2158c9,this[_0x4d30dc(0xc2)][_0x4d30dc(0xd2)])?this[_0x4d30dc(0xc2)][_0x4d30dc(0xd2)][_0x2158c9]:null;}['setupMediaQueryListeners'](){const _0x51874a=_0x2b8f2a,_0x12ca65={'poTqf':function(_0x35c326,_0x3ec507){return _0x35c326===_0x3ec507;},'pyBZX':_0x51874a(0xd5)};this[_0x51874a(0xb2)]=()=>this[_0x51874a(0xba)](),Object['keys'](this[_0x51874a(0xc2)])['forEach'](_0x37f104=>{const _0x27ec18=_0x51874a;if(_0x12ca65[_0x27ec18(0xc6)](_0x37f104,_0x27ec18(0xd2)))return;let _0x557f07=this[_0x27ec18(0xc4)](_0x37f104);if(_0x557f07){let _0x5cfba7=window[_0x27ec18(0xc9)](_0x557f07);this['mediaQueryListeners']['set'](_0x37f104,_0x5cfba7),_0x5cfba7['addEventListener']('change',this[_0x27ec18(0xb2)]);}}),this['breakpoints'][_0x51874a(0xd2)]&&Object['keys'](this[_0x51874a(0xc2)][_0x51874a(0xd2)])[_0x51874a(0xbe)](_0x4ccb6f=>{const _0x2bfb5e=_0x51874a;let _0x5296de=this['getMediaQuery'](_0x4ccb6f);if(_0x5296de){let _0x32b578=window[_0x2bfb5e(0xc9)](_0x5296de);this['mediaQueryListeners'][_0x2bfb5e(0xdc)](_0x4ccb6f,_0x32b578),_0x32b578[_0x2bfb5e(0xcf)](_0x12ca65[_0x2bfb5e(0xb1)],this[_0x2bfb5e(0xb2)]);}});}['detectCurrentBreakpoint'](){const _0x39a248=_0x2b8f2a,_0x10c0a4={'GGnOX':_0x39a248(0xb0),'RBuEO':function(_0x3c79ce,_0x188dfd){return _0x3c79ce<=_0x188dfd;},'Gbzze':_0x39a248(0xc1),'FOZNc':function(_0x2172f8,_0x16573a){return _0x2172f8>=_0x16573a;},'cfUKn':function(_0x3336ae,_0x9e4b4e){return _0x3336ae>=_0x9e4b4e;},'qibHx':function(_0x42d7bb,_0x1ef896){return _0x42d7bb===_0x1ef896;},'ELqNQ':function(_0x25a814,_0x44422b){return _0x25a814>=_0x44422b;},'RHwxL':function(_0x5693e3,_0x590ec7){return _0x5693e3<=_0x590ec7;}};let _0x324cd0=window['innerWidth'],_0xcb76cc='desktop';if(_0x324cd0<=this[_0x39a248(0xc2)][_0x39a248(0xb0)][_0x39a248(0xe9)]?_0xcb76cc=_0x10c0a4['GGnOX']:_0x324cd0>=this[_0x39a248(0xc2)][_0x39a248(0xc1)][_0x39a248(0xde)]&&_0x10c0a4['RBuEO'](_0x324cd0,this[_0x39a248(0xc2)][_0x39a248(0xc1)][_0x39a248(0xe9)])?_0xcb76cc=_0x10c0a4[_0x39a248(0xe8)]:_0x10c0a4[_0x39a248(0xbb)](_0x324cd0,this[_0x39a248(0xc2)][_0x39a248(0xcd)][_0x39a248(0xde)])&&_0x324cd0<=this['breakpoints']['desktop'][_0x39a248(0xe9)]?_0xcb76cc=_0x39a248(0xcd):_0x10c0a4[_0x39a248(0xce)](_0x324cd0,this[_0x39a248(0xc2)]['wide'][_0x39a248(0xde)])&&(_0xcb76cc=_0x39a248(0xb6)),this['breakpoints']['custom']){for(let [_0x207ec9,_0x43bfd7]of Object[_0x39a248(0xd1)](this[_0x39a248(0xc2)]['custom']))if((_0x10c0a4[_0x39a248(0xea)](_0x43bfd7[_0x39a248(0xde)],void 0x0)||_0x10c0a4['ELqNQ'](_0x324cd0,_0x43bfd7[_0x39a248(0xde)]))&&(_0x10c0a4[_0x39a248(0xea)](_0x43bfd7[_0x39a248(0xe9)],void 0x0)||_0x10c0a4['RHwxL'](_0x324cd0,_0x43bfd7[_0x39a248(0xe9)]))){_0xcb76cc=_0x207ec9;break;}}_0xcb76cc!==this['currentBreakpoint']&&(this[_0x39a248(0xdf)]=_0xcb76cc,this['notifyListeners']());}[_0x2b8f2a(0xc5)](_0x150cd0){const _0xe00927=_0x2b8f2a;return this['listeners']['add'](_0x150cd0),()=>this[_0xe00927(0xc3)][_0xe00927(0xaf)](_0x150cd0);}[_0x2b8f2a(0xda)](){const _0xe795fd=_0x2b8f2a;this[_0xe795fd(0xc3)]['forEach'](_0x2a9ef6=>_0x2a9ef6(this[_0xe795fd(0xdf)]));}['matches'](_0x2b8cb5){const _0x4f653f=_0x2b8f2a;let _0x11f97b=this[_0x4f653f(0xec)][_0x4f653f(0xe0)](_0x2b8cb5);return _0x11f97b?_0x11f97b['matches']:![];}[_0x2b8f2a(0xbf)](){const _0xce6d22=_0x2b8f2a;this[_0xce6d22(0xb2)]&&(this[_0xce6d22(0xec)][_0xce6d22(0xbe)](_0x2749d8=>{const _0x5b8aa6=_0xce6d22;_0x2749d8[_0x5b8aa6(0xbd)](_0x5b8aa6(0xd5),this[_0x5b8aa6(0xb2)]);}),this['boundHandler']=null),this['mediaQueryListeners'][_0xce6d22(0xd7)](),this['listeners']['clear']();}},s=null;function p(_0x48cd59){return s||(s=new o(_0x48cd59)),s;}function c(_0x5f4e9e){const _0x4aa984=_0x2b8f2a,_0x2df653={'MTaon':_0x4aa984(0xcd),'laTDT':function(_0x7477c,_0x51e3b3){return _0x7477c(_0x51e3b3);},'nAcMC':_0x4aa984(0xb0),'Hxnaf':function(_0x130d58,_0x14c7bf){return _0x130d58===_0x14c7bf;},'DFsLg':function(_0x5795cb,_0x417937){return _0x5795cb===_0x417937;},'prWzY':function(_0x51e191,_0x584931){return _0x51e191===_0x584931;},'mUwqL':_0x4aa984(0xb6)};let [_0x14ebd1,_0x2513f7]=react[_0x4aa984(0xd3)](_0x2df653[_0x4aa984(0xe4)]),_0x18c7c4=_0x2df653[_0x4aa984(0xdd)](p,_0x5f4e9e);return react[_0x4aa984(0xe5)](()=>(_0x2513f7(_0x18c7c4[_0x4aa984(0xdb)]()),_0x18c7c4[_0x4aa984(0xc5)](_0x1dbc45=>{_0x2513f7(_0x1dbc45);})),[_0x5f4e9e]),{'currentBreakpoint':_0x14ebd1,'isMobile':_0x14ebd1===_0x2df653[_0x4aa984(0xca)],'isTablet':_0x2df653[_0x4aa984(0xe6)](_0x14ebd1,'tablet'),'isDesktop':_0x2df653[_0x4aa984(0xd6)](_0x14ebd1,_0x4aa984(0xcd)),'isWide':_0x2df653['prWzY'](_0x14ebd1,_0x2df653[_0x4aa984(0xd9)]),'matches':_0x152450=>_0x18c7c4[_0x4aa984(0xc8)](_0x152450)};}exports[_0x2b8f2a(0xbc)]=c;
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- const _0x35e2c0=_0x384a;(function(_0x21316d,_0xb1c7d7){const _0x4d4789=_0x384a,_0x67da43=_0x21316d();while(!![]){try{const _0x5da577=-parseInt(_0x4d4789(0xe7))/0x1*(-parseInt(_0x4d4789(0xd5))/0x2)+-parseInt(_0x4d4789(0xdc))/0x3*(parseInt(_0x4d4789(0xdd))/0x4)+parseInt(_0x4d4789(0xb7))/0x5+-parseInt(_0x4d4789(0xe5))/0x6*(-parseInt(_0x4d4789(0xbd))/0x7)+parseInt(_0x4d4789(0xc5))/0x8*(-parseInt(_0x4d4789(0xc7))/0x9)+-parseInt(_0x4d4789(0xd1))/0xa*(parseInt(_0x4d4789(0xaf))/0xb)+-parseInt(_0x4d4789(0xe0))/0xc*(-parseInt(_0x4d4789(0xb0))/0xd);if(_0x5da577===_0xb1c7d7)break;else _0x67da43['push'](_0x67da43['shift']());}catch(_0x4e5280){_0x67da43['push'](_0x67da43['shift']());}}}(_0x57d3,0xba882));import{useState,useEffect}from'react';function _0x57d3(){const _0x197e4b=['uejAvvG','z2v0q3vYCMvUDejYzwfRCg9PBNq','mJC1nJyYnxbkz0HvBa','z2v0qNjLywTWB2LUDhm','zgvZDhjVEq','z2v0','Aw5UzxjxAwr0Aa','BKzzBw8','mtu0qMfzDNbm','yLrTsge','zgvSzxrL','reTLuwy','Bw9IAwXL','y3vZDg9T','ywrK','zgv0zwn0q3vYCMvUDejYzwfRCg9PBNq','mtzgrvbosu4','yNjLywTWB2LUDhm','nJqWotK3mwPiv2LOuW','sgHeu2O','BwHMtwq','y2XLyxi','kg1PBI13Awr0AdOG','B3jIy0e','DgfIBgv0','zgvZA3rVCa','ChGP','BM90Awz5tgLZDgvUzxjZ','mti0nZG2mfzZtxPZsa','C3vIC2nYAwjL','y3vYCMvUDejYzwfRCg9PBNq','C2v0','mZGXmJznv2LrEM4','z2v0qNjLywTWB2LUDenVBMzPzW','yNbyAue','BwvKAwfrDwvYEuXPC3rLBMvYCW','BgLZDgvUzxjZ','Bwf4','zM9YrwfJAa','m1f3zuz0wG','nJa1odKXmKjdsw9JyW','uLb1Cu0','z2v0twvKAwfrDwvYEq','mZeWmtG4AgDys1Pn','ChvZAa','AM9PBG','BwLU','y2HHBMDL','mteZnZG0r05Auu5m','wMnhuxO','ndrcB21YBvO','igfUzca','D2LKzq','A2v5CW','C2v0DxbnzwrPyvf1zxj5tgLZDgvUzxjZ','kg1HEc13Awr0AdOG','wK9gv1G','CvvUCKm','mJjIBufjthi','mta3ovvcwgzfAa','CuveB1e','Bwf0y2HnzwrPyq','yM91BMriyw5KBgvY','ywrKrxzLBNrmAxn0zw5LCG'];_0x57d3=function(){return _0x197e4b;};return _0x57d3();}function _0x384a(_0x4684db,_0x12678d){_0x4684db=_0x4684db-0xaf;const _0x57d310=_0x57d3();let _0x384a05=_0x57d310[_0x4684db];if(_0x384a['NyhAVU']===undefined){var _0x3c5a58=function(_0x428dc9){const _0x5ad685='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x44dee2='',_0x429f45='';for(let _0x10e486=0x0,_0x56f3ea,_0x378ce5,_0x33992b=0x0;_0x378ce5=_0x428dc9['charAt'](_0x33992b++);~_0x378ce5&&(_0x56f3ea=_0x10e486%0x4?_0x56f3ea*0x40+_0x378ce5:_0x378ce5,_0x10e486++%0x4)?_0x44dee2+=String['fromCharCode'](0xff&_0x56f3ea>>(-0x2*_0x10e486&0x6)):0x0){_0x378ce5=_0x5ad685['indexOf'](_0x378ce5);}for(let _0x4b5348=0x0,_0x2be14c=_0x44dee2['length'];_0x4b5348<_0x2be14c;_0x4b5348++){_0x429f45+='%'+('00'+_0x44dee2['charCodeAt'](_0x4b5348)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x429f45);};_0x384a['gwzYJf']=_0x3c5a58,_0x384a['CqDbOC']={},_0x384a['NyhAVU']=!![];}const _0x2adf46=_0x57d310[0x0],_0x152e83=_0x4684db+_0x2adf46,_0x29d88d=_0x384a['CqDbOC'][_0x152e83];return!_0x29d88d?(_0x384a05=_0x384a['gwzYJf'](_0x384a05),_0x384a['CqDbOC'][_0x152e83]=_0x384a05):_0x384a05=_0x29d88d,_0x384a05;}var a={'mobile':{'max':0x2ff},'tablet':{'min':0x300,'max':0x3ff},'desktop':{'min':0x400,'max':0x780},'wide':{'min':0x781}},o=class{constructor(_0x53f6aa=a){const _0x3a2a16=_0x384a,_0x204e27={'orbcA':_0x3a2a16(0xce),'bpXiA':function(_0x486419,_0xcee48f){return _0x486419<_0xcee48f;}};this[_0x3a2a16(0xd8)]=new Map(),this[_0x3a2a16(0xd3)]=_0x204e27[_0x3a2a16(0xcc)],this[_0x3a2a16(0xd9)]=new Set(),this[_0x3a2a16(0xb3)]=null,(this['breakpoints']=_0x53f6aa,_0x204e27[_0x3a2a16(0xd7)](typeof window,'u')&&(this[_0x3a2a16(0xeb)](),this[_0x3a2a16(0xc4)]()));}['getCurrentBreakpoint'](){const _0x171a94=_0x384a;return this[_0x171a94(0xd3)];}[_0x35e2c0(0xb8)](){const _0x3ce893=_0x35e2c0;return this[_0x3ce893(0xc6)];}[_0x35e2c0(0xdf)](_0xca6901){const _0x463a55=_0x35e2c0,_0x15c901={'bTmHa':function(_0x315738,_0x4e2ab7){return _0x315738!==_0x4e2ab7;},'ZcGQz':_0x463a55(0xe8)};let _0x38749e=this[_0x463a55(0xd6)](_0xca6901);if(!_0x38749e)return'';let _0x420c2d=[];return _0x15c901[_0x463a55(0xbe)](_0x38749e[_0x463a55(0xe3)],void 0x0)&&_0x420c2d[_0x463a55(0xe1)](_0x463a55(0xcb)+_0x38749e[_0x463a55(0xe3)]+_0x463a55(0xcf)),_0x38749e[_0x463a55(0xda)]!==void 0x0&&_0x420c2d[_0x463a55(0xe1)](_0x463a55(0xec)+_0x38749e[_0x463a55(0xda)]+'px)'),_0x420c2d[_0x463a55(0xe2)](_0x15c901[_0x463a55(0xe6)]);}['getBreakpointConfig'](_0x1b7d43){const _0x215c65=_0x35e2c0;return _0x1b7d43 in this['breakpoints']?this[_0x215c65(0xc6)][_0x1b7d43]:this['breakpoints'][_0x215c65(0xc2)]&&_0x1b7d43 in this[_0x215c65(0xc6)][_0x215c65(0xc2)]?this[_0x215c65(0xc6)][_0x215c65(0xc2)][_0x1b7d43]:null;}['setupMediaQueryListeners'](){const _0x250654=_0x35e2c0,_0x3310e3={'hlWyg':_0x250654(0xe4)};this[_0x250654(0xb3)]=()=>this['detectCurrentBreakpoint'](),Object['keys'](this[_0x250654(0xc6)])['forEach'](_0x1c1b4f=>{const _0x4d38a7=_0x250654;if(_0x1c1b4f===_0x4d38a7(0xc2))return;let _0x514062=this[_0x4d38a7(0xdf)](_0x1c1b4f);if(_0x514062){let _0x1a133=window[_0x4d38a7(0xb2)](_0x514062);this[_0x4d38a7(0xd8)]['set'](_0x1c1b4f,_0x1a133),_0x1a133[_0x4d38a7(0xb4)](_0x4d38a7(0xe4),this[_0x4d38a7(0xb3)]);}}),this['breakpoints']['custom']&&Object[_0x250654(0xea)](this[_0x250654(0xc6)][_0x250654(0xc2)])[_0x250654(0xdb)](_0x5a832e=>{const _0x477884=_0x250654;let _0x3d4d5e=this[_0x477884(0xdf)](_0x5a832e);if(_0x3d4d5e){let _0x412dab=window[_0x477884(0xb2)](_0x3d4d5e);this[_0x477884(0xd8)][_0x477884(0xd4)](_0x5a832e,_0x412dab),_0x412dab[_0x477884(0xb4)](_0x3310e3['hlWyg'],this[_0x477884(0xb3)]);}});}[_0x35e2c0(0xc4)](){const _0x300e5c=_0x35e2c0,_0x38d34a={'DKeQf':_0x300e5c(0xce),'ZOFWX':_0x300e5c(0xc1),'qEDoQ':function(_0x4725d3,_0x4fe5f5){return _0x4725d3>=_0x4fe5f5;},'HhDSj':function(_0x1c240b,_0x2612fd){return _0x1c240b<=_0x2612fd;},'KlMLo':_0x300e5c(0xcd),'wmZaN':_0x300e5c(0xe9),'RPuqM':function(_0x3ef5ef,_0x546eb8){return _0x3ef5ef===_0x546eb8;},'EJygj':function(_0x2a7893,_0x44d757){return _0x2a7893!==_0x44d757;}};let _0x413db1=window[_0x300e5c(0xbb)],_0x1601f7=_0x38d34a[_0x300e5c(0xc0)];if(_0x413db1<=this[_0x300e5c(0xc6)][_0x300e5c(0xc1)][_0x300e5c(0xda)]?_0x1601f7=_0x38d34a[_0x300e5c(0xed)]:_0x38d34a[_0x300e5c(0xb1)](_0x413db1,this[_0x300e5c(0xc6)][_0x300e5c(0xcd)][_0x300e5c(0xe3)])&&_0x38d34a[_0x300e5c(0xc8)](_0x413db1,this[_0x300e5c(0xc6)]['tablet'][_0x300e5c(0xda)])?_0x1601f7=_0x38d34a['KlMLo']:_0x38d34a['qEDoQ'](_0x413db1,this[_0x300e5c(0xc6)]['desktop']['min'])&&_0x413db1<=this[_0x300e5c(0xc6)]['desktop'][_0x300e5c(0xda)]?_0x1601f7=_0x300e5c(0xce):_0x413db1>=this[_0x300e5c(0xc6)]['wide']['min']&&(_0x1601f7=_0x38d34a['wmZaN']),this['breakpoints'][_0x300e5c(0xc2)]){for(let [_0x157d1e,_0x2e4dea]of Object['entries'](this[_0x300e5c(0xc6)][_0x300e5c(0xc2)]))if((_0x2e4dea[_0x300e5c(0xe3)]===void 0x0||_0x413db1>=_0x2e4dea[_0x300e5c(0xe3)])&&(_0x38d34a[_0x300e5c(0xde)](_0x2e4dea['max'],void 0x0)||_0x38d34a[_0x300e5c(0xc8)](_0x413db1,_0x2e4dea[_0x300e5c(0xda)]))){_0x1601f7=_0x157d1e;break;}}_0x38d34a['EJygj'](_0x1601f7,this[_0x300e5c(0xd3)])&&(this[_0x300e5c(0xd3)]=_0x1601f7,this[_0x300e5c(0xd0)]());}[_0x35e2c0(0xd2)](_0x4472a5){const _0x2f407e=_0x35e2c0;return this['listeners'][_0x2f407e(0xc3)](_0x4472a5),()=>this[_0x2f407e(0xd9)][_0x2f407e(0xbf)](_0x4472a5);}[_0x35e2c0(0xd0)](){const _0x130cae=_0x35e2c0;this[_0x130cae(0xd9)][_0x130cae(0xdb)](_0x238e85=>_0x238e85(this[_0x130cae(0xd3)]));}['matches'](_0x538d0e){const _0x267a99=_0x35e2c0;let _0x2be7cf=this[_0x267a99(0xd8)][_0x267a99(0xba)](_0x538d0e);return _0x2be7cf?_0x2be7cf['matches']:![];}[_0x35e2c0(0xb9)](){const _0x47811c=_0x35e2c0;this[_0x47811c(0xb3)]&&(this[_0x47811c(0xd8)][_0x47811c(0xdb)](_0x351194=>{const _0x44814d=_0x47811c;_0x351194['removeEventListener'](_0x44814d(0xe4),this['boundHandler']);}),this[_0x47811c(0xb3)]=null),this['mediaQueryListeners'][_0x47811c(0xca)](),this['listeners'][_0x47811c(0xca)]();}},s=null;function p(_0x31fea1){return s||(s=new o(_0x31fea1)),s;}function b(_0x154c49){const _0x5b27b1=_0x35e2c0,_0x10fd48={'YDVpP':function(_0x5c8dd9,_0x1385cc){return _0x5c8dd9(_0x1385cc);},'PBZUX':function(_0x430118,_0x1c841b){return _0x430118(_0x1c841b);},'nFYmo':_0x5b27b1(0xce),'mhfMd':function(_0xd22f5a,_0x7326f7){return _0xd22f5a(_0x7326f7);},'qUnrC':_0x5b27b1(0xc1),'XxCZo':function(_0x24550c,_0x43a94b){return _0x24550c===_0x43a94b;}};let [_0x1ef90c,_0x481fe8]=_0x10fd48[_0x5b27b1(0xb5)](useState,_0x10fd48[_0x5b27b1(0xbc)]),_0x2231ea=_0x10fd48[_0x5b27b1(0xc9)](p,_0x154c49);return useEffect(()=>(_0x481fe8(_0x2231ea[_0x5b27b1(0xb6)]()),_0x2231ea[_0x5b27b1(0xd2)](_0x54d5ac=>{_0x10fd48['YDVpP'](_0x481fe8,_0x54d5ac);})),[_0x154c49]),{'currentBreakpoint':_0x1ef90c,'isMobile':_0x1ef90c===_0x10fd48[_0x5b27b1(0xee)],'isTablet':_0x1ef90c===_0x5b27b1(0xcd),'isDesktop':_0x1ef90c===_0x10fd48[_0x5b27b1(0xbc)],'isWide':_0x10fd48['XxCZo'](_0x1ef90c,'wide'),'matches':_0x57423a=>_0x2231ea['matches'](_0x57423a)};}export{b as useBreakpoints};
2
+ const _0x205af5=_0x515d;(function(_0x5f1c1a,_0x3e71f8){const _0x390b17=_0x515d,_0x670748=_0x5f1c1a();while(!![]){try{const _0x123416=parseInt(_0x390b17(0x151))/0x1+parseInt(_0x390b17(0x12d))/0x2+-parseInt(_0x390b17(0x12e))/0x3*(-parseInt(_0x390b17(0x165))/0x4)+parseInt(_0x390b17(0x14e))/0x5+-parseInt(_0x390b17(0x12c))/0x6*(-parseInt(_0x390b17(0x12b))/0x7)+-parseInt(_0x390b17(0x155))/0x8*(-parseInt(_0x390b17(0x150))/0x9)+parseInt(_0x390b17(0x14f))/0xa*(-parseInt(_0x390b17(0x130))/0xb);if(_0x123416===_0x3e71f8)break;else _0x670748['push'](_0x670748['shift']());}catch(_0x1308f4){_0x670748['push'](_0x670748['shift']());}}}(_0xbbaa,0xbe983));function _0xbbaa(){const _0x2df14e=['Bwf0y2HnzwrPyq','y213vgW','C3vIC2nYAwjL','A2v5CW','swrWuee','neXTqwHtza','z2v0twvKAwfrDwvYEq','mta3mtyYotnoDLLZtu4','nNzbEuvIsa','mta1mdi4nKjwwuTvsG','odmXmZi3DNPPsefk','y3vYCMvUDejYzwfRCg9PBNq','ntuYmKXjzxfzvq','BxD4vfu','Bwf4','BM90Awz5tgLZDgvUzxjZ','CMzMuvi','BgLZDgvUzxjZ','AwTNA2K','y2HHBMDL','vhPdwhG','z2v0q3vYCMvUDejYzwfRCg9PBNq','zgv0zwn0q3vYCMvUDejYzwfRCg9PBNq','zgvZA3rVCa','zM9YrwfJAa','ChGP','kg1PBI13Awr0AdOG','yuvOAM8','BwLU','DgfIBgv0','igfUzca','z2v0qNjLywTWB2LUDenVBMzPzW','C2v0','z2v0','C2v0DxbnzwrPyvf1zxj5tgLZDgvUzxjZ','Aw5UzxjxAwr0Aa','A3LsB1y','CuHurMS','BwvKAwfrDwvYEuXPC3rLBMvYCW','sMn4C1e','Bwf0y2HLCW','yNjLywTWB2LUDhm','nde0mtGWnujZCfPZCq','oda2nZbtsNjWuwO','mJK3zLbAsgXf','odu5nda2Ee14tKXS','zgvSzxrL','CMvTB3zLrxzLBNrmAxn0zw5LCG','ywrK','mtK2mJe2vNbJyKry','ChvZAa','A3jKsg0','DgXxChy','Bw9IAwXL','y2XLyxi','Afrhvxu','y3vZDg9T','yM91BMriyw5KBgvY','D2LKzq','kg1HEc13Awr0AdOG'];_0xbbaa=function(){return _0x2df14e;};return _0xbbaa();}function _0x515d(_0x248ef7,_0x1cd984){_0x248ef7=_0x248ef7-0x12a;const _0xbbaadc=_0xbbaa();let _0x515de9=_0xbbaadc[_0x248ef7];if(_0x515d['QnREjg']===undefined){var _0x57c40a=function(_0x24d44e){const _0x996902='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4e9289='',_0x342e8d='';for(let _0x4cf023=0x0,_0xaccc10,_0x3c9603,_0x2f20b1=0x0;_0x3c9603=_0x24d44e['charAt'](_0x2f20b1++);~_0x3c9603&&(_0xaccc10=_0x4cf023%0x4?_0xaccc10*0x40+_0x3c9603:_0x3c9603,_0x4cf023++%0x4)?_0x4e9289+=String['fromCharCode'](0xff&_0xaccc10>>(-0x2*_0x4cf023&0x6)):0x0){_0x3c9603=_0x996902['indexOf'](_0x3c9603);}for(let _0xd316ec=0x0,_0x3120d0=_0x4e9289['length'];_0xd316ec<_0x3120d0;_0xd316ec++){_0x342e8d+='%'+('00'+_0x4e9289['charCodeAt'](_0xd316ec)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x342e8d);};_0x515d['AzckKQ']=_0x57c40a,_0x515d['bRAuFc']={},_0x515d['QnREjg']=!![];}const _0x31edfa=_0xbbaadc[0x0],_0x1affb7=_0x248ef7+_0x31edfa,_0x5b27c3=_0x515d['bRAuFc'][_0x1affb7];return!_0x5b27c3?(_0x515de9=_0x515d['AzckKQ'](_0x515de9),_0x515d['bRAuFc'][_0x1affb7]=_0x515de9):_0x515de9=_0x5b27c3,_0x515de9;}import{useState,useEffect}from'react';var a={'mobile':{'max':0x2ff},'tablet':{'min':0x300,'max':0x3ff},'desktop':{'min':0x400,'max':0x780},'wide':{'min':0x781}},o=class{constructor(_0x8c28a2=a){const _0xdd2559=_0x515d,_0x5ab9c0={'qHTFk':function(_0x46d0bd,_0x4909a6){return _0x46d0bd<_0x4909a6;}};this[_0xdd2559(0x14a)]=new Map(),this[_0xdd2559(0x12f)]=_0xdd2559(0x13b),this[_0xdd2559(0x135)]=new Set(),this[_0xdd2559(0x15d)]=null,(this[_0xdd2559(0x14d)]=_0x8c28a2,_0x5ab9c0[_0xdd2559(0x149)](typeof window,'u')&&(this[_0xdd2559(0x146)](),this[_0xdd2559(0x13a)]()));}['getCurrentBreakpoint'](){return this['currentBreakpoint'];}['getBreakpoints'](){const _0x2c04fd=_0x515d;return this[_0x2c04fd(0x14d)];}[_0x205af5(0x12a)](_0x400f5b){const _0x316230=_0x205af5;let _0x49b124=this[_0x316230(0x143)](_0x400f5b);if(!_0x49b124)return'';let _0x2c5056=[];return _0x49b124[_0x316230(0x140)]!==void 0x0&&_0x2c5056[_0x316230(0x156)](_0x316230(0x13e)+_0x49b124[_0x316230(0x140)]+_0x316230(0x13d)),_0x49b124[_0x316230(0x132)]!==void 0x0&&_0x2c5056['push'](_0x316230(0x15f)+_0x49b124[_0x316230(0x132)]+_0x316230(0x13d)),_0x2c5056['join'](_0x316230(0x142));}['getBreakpointConfig'](_0x57d2fc){const _0x3443cc=_0x205af5,_0xdebc1b={'OqRJV':function(_0x173cd8,_0x3b27d1){return _0x173cd8 in _0x3b27d1;},'TzCXx':function(_0x358627,_0x493afb){return _0x358627 in _0x493afb;}};return _0xdebc1b['OqRJV'](_0x57d2fc,this[_0x3443cc(0x14d)])?this[_0x3443cc(0x14d)][_0x57d2fc]:this[_0x3443cc(0x14d)][_0x3443cc(0x15c)]&&_0xdebc1b[_0x3443cc(0x138)](_0x57d2fc,this['breakpoints'][_0x3443cc(0x15c)])?this[_0x3443cc(0x14d)]['custom'][_0x57d2fc]:null;}[_0x205af5(0x146)](){const _0x5bc535=_0x205af5,_0x1a4ae1={'JcxsQ':_0x5bc535(0x15c),'wWzdN':_0x5bc535(0x137)};this['boundHandler']=()=>this['detectCurrentBreakpoint'](),Object[_0x5bc535(0x163)](this[_0x5bc535(0x14d)])[_0x5bc535(0x13c)](_0x3c1ddf=>{const _0x471cec=_0x5bc535;if(_0x3c1ddf===_0x1a4ae1[_0x471cec(0x14b)])return;let _0x5796bf=this['getMediaQuery'](_0x3c1ddf);if(_0x5796bf){let _0x5edc21=window[_0x471cec(0x160)](_0x5796bf);this['mediaQueryListeners'][_0x471cec(0x144)](_0x3c1ddf,_0x5edc21),_0x5edc21['addEventListener'](_0x1a4ae1['wWzdN'],this['boundHandler']);}}),this[_0x5bc535(0x14d)][_0x5bc535(0x15c)]&&Object[_0x5bc535(0x163)](this['breakpoints']['custom'])['forEach'](_0xb97a42=>{const _0x31ee50=_0x5bc535;let _0x35cad6=this[_0x31ee50(0x12a)](_0xb97a42);if(_0x35cad6){let _0x15160c=window[_0x31ee50(0x160)](_0x35cad6);this[_0x31ee50(0x14a)][_0x31ee50(0x144)](_0xb97a42,_0x15160c),_0x15160c['addEventListener']('change',this[_0x31ee50(0x15d)]);}});}[_0x205af5(0x13a)](){const _0x377fdd=_0x205af5,_0x5da12c={'IdpPA':_0x377fdd(0x13b),'hTGUu':function(_0x1d0507,_0x1d454d){return _0x1d0507<=_0x1d454d;},'NqzQy':function(_0x2d1124,_0x375ed1){return _0x2d1124>=_0x375ed1;},'rffQR':function(_0x983f50,_0x554e3c){return _0x983f50>=_0x554e3c;},'cmwTl':function(_0x2b3038,_0x1fb943){return _0x2b3038!==_0x1fb943;}};let _0x3f5870=window[_0x377fdd(0x147)],_0xf37058=_0x5da12c[_0x377fdd(0x164)];if(_0x5da12c[_0x377fdd(0x15b)](_0x3f5870,this[_0x377fdd(0x14d)]['mobile'][_0x377fdd(0x132)])?_0xf37058=_0x377fdd(0x159):_0x5da12c['NqzQy'](_0x3f5870,this[_0x377fdd(0x14d)]['tablet'][_0x377fdd(0x140)])&&_0x3f5870<=this[_0x377fdd(0x14d)]['tablet'][_0x377fdd(0x132)]?_0xf37058=_0x377fdd(0x141):_0x3f5870>=this[_0x377fdd(0x14d)]['desktop']['min']&&_0x5da12c['hTGUu'](_0x3f5870,this['breakpoints'][_0x377fdd(0x13b)][_0x377fdd(0x132)])?_0xf37058=_0x5da12c['IdpPA']:_0x5da12c[_0x377fdd(0x134)](_0x3f5870,this[_0x377fdd(0x14d)][_0x377fdd(0x15e)]['min'])&&(_0xf37058=_0x377fdd(0x15e)),this[_0x377fdd(0x14d)][_0x377fdd(0x15c)]){for(let [_0xdb3b91,_0x15ac3e]of Object['entries'](this[_0x377fdd(0x14d)][_0x377fdd(0x15c)]))if((_0x15ac3e[_0x377fdd(0x140)]===void 0x0||_0x5da12c[_0x377fdd(0x134)](_0x3f5870,_0x15ac3e[_0x377fdd(0x140)]))&&(_0x15ac3e['max']===void 0x0||_0x3f5870<=_0x15ac3e[_0x377fdd(0x132)])){_0xf37058=_0xdb3b91;break;}}_0x5da12c[_0x377fdd(0x161)](_0xf37058,this[_0x377fdd(0x12f)])&&(this[_0x377fdd(0x12f)]=_0xf37058,this['notifyListeners']());}[_0x205af5(0x162)](_0x17cae1){const _0x4388cc=_0x205af5;return this[_0x4388cc(0x135)][_0x4388cc(0x154)](_0x17cae1),()=>this['listeners'][_0x4388cc(0x152)](_0x17cae1);}[_0x205af5(0x133)](){const _0x19af78=_0x205af5;this[_0x19af78(0x135)][_0x19af78(0x13c)](_0x43c19a=>_0x43c19a(this[_0x19af78(0x12f)]));}[_0x205af5(0x14c)](_0x538e13){const _0x3e7062=_0x205af5;let _0x3ffb75=this[_0x3e7062(0x14a)][_0x3e7062(0x145)](_0x538e13);return _0x3ffb75?_0x3ffb75['matches']:![];}['destroy'](){const _0x3576a5=_0x205af5;this[_0x3576a5(0x15d)]&&(this[_0x3576a5(0x14a)][_0x3576a5(0x13c)](_0x39ca7e=>{const _0x301d1e=_0x3576a5;_0x39ca7e[_0x301d1e(0x153)]('change',this[_0x301d1e(0x15d)]);}),this[_0x3576a5(0x15d)]=null),this['mediaQueryListeners'][_0x3576a5(0x15a)](),this[_0x3576a5(0x135)][_0x3576a5(0x15a)]();}},s=null;function p(_0x25bef1){return s||(s=new o(_0x25bef1)),s;}function c(_0x330f79){const _0x50861c=_0x205af5,_0x461f59={'krdHm':function(_0x6a5dc2,_0x42676b){return _0x6a5dc2(_0x42676b);},'aEhjo':_0x50861c(0x13b),'kyRoV':function(_0x1ea80b,_0x3d6486){return _0x1ea80b(_0x3d6486);},'mwxTU':function(_0xe2c5de,_0x611992){return _0xe2c5de===_0x611992;},'ikgki':_0x50861c(0x159),'tlWpv':_0x50861c(0x15e)};let [_0x1cb96b,_0x36e745]=_0x461f59[_0x50861c(0x157)](useState,_0x461f59[_0x50861c(0x13f)]),_0x33becd=_0x461f59[_0x50861c(0x148)](p,_0x330f79);return useEffect(()=>(_0x36e745(_0x33becd[_0x50861c(0x139)]()),_0x33becd[_0x50861c(0x162)](_0x32d7af=>{const _0x49af8a=_0x50861c;_0x461f59[_0x49af8a(0x157)](_0x36e745,_0x32d7af);})),[_0x330f79]),{'currentBreakpoint':_0x1cb96b,'isMobile':_0x461f59[_0x50861c(0x131)](_0x1cb96b,_0x461f59[_0x50861c(0x136)]),'isTablet':_0x461f59['mwxTU'](_0x1cb96b,'tablet'),'isDesktop':_0x461f59[_0x50861c(0x131)](_0x1cb96b,'desktop'),'isWide':_0x1cb96b===_0x461f59[_0x50861c(0x158)],'matches':_0x1cd014=>_0x33becd['matches'](_0x1cd014)};}export{c as useBreakpoints};
package/dist/index.d.mts CHANGED
@@ -289,14 +289,56 @@ interface WidgetConfig {
289
289
  */
290
290
  responsive?: WidgetResponsiveConfig;
291
291
  }
292
+ /**
293
+ * A variant's identity within its slot. A plain string, not a union: everything
294
+ * downstream is generic over N variants. The two-variant policy lives in ONE
295
+ * place — the POLICY block of ../core/section-variants.
296
+ *
297
+ * Arm A is always Variant A, so an experiment references a section by id alone.
298
+ */
299
+ type SectionVariantId = string;
300
+ /**
301
+ * The alternative body for one section slot: replaces `name`/`type`/`settings`/
302
+ * `widgets` while the slot keeps its id. A full body, not a settings patch,
303
+ * because `type` may differ between variants.
304
+ *
305
+ * Note "variant" is overloaded here — a widget's code variant (V1/V2) and a
306
+ * template suffix are different things. A SECTION variant is merchant data.
307
+ */
308
+ interface SectionVariant {
309
+ variantId: SectionVariantId;
310
+ name: string;
311
+ type: string;
312
+ settings: SectionSettings;
313
+ widgets: WidgetConfig[];
314
+ createdAt?: string;
315
+ createdBy?: string;
316
+ }
317
+ /**
318
+ * `{ [sectionId]: "a" | "b" }`. Empty or absent means "render every section's
319
+ * live variant" — all traffic that is not previewing or bucketed.
320
+ */
321
+ type SectionVariantSelection = Record<string, SectionVariantId>;
292
322
  /**
293
323
  * Section configuration
294
324
  *
295
325
  * Defines a section of a page containing widgets.
326
+ *
327
+ * **Variant invariants** (both fields optional; absent ⇒ default variant only,
328
+ * the shape every stored `pageConfig` has today):
329
+ *
330
+ * 1. The live variant's body IS the top-level `name`/`type`/`settings`/
331
+ * `widgets`. The renderer never dereferences `liveVariantId`.
332
+ * 2. `variants` never contains an entry matching `liveVariantId` — one
333
+ * representation of what traffic sees, so the two cannot disagree.
334
+ * 3. `variants` holds the NON-live variants only; how many is policy
335
+ * (`MAX_SECTION_VARIANTS`), not shape.
336
+ *
337
+ * Making another variant live is therefore a body SWAP, not a pointer write.
296
338
  */
297
339
  interface SectionConfig {
298
340
  /**
299
- * Unique section identifier
341
+ * Unique section identifier — the stable SLOT id, unchanged across versions
300
342
  */
301
343
  id: string;
302
344
  /**
@@ -315,6 +357,15 @@ interface SectionConfig {
315
357
  * Widgets contained in this section
316
358
  */
317
359
  widgets: WidgetConfig[];
360
+ /**
361
+ * Which variant the top-level body above represents.
362
+ * Absent ⇒ the slot has only Variant A and no B has been created (today's shape).
363
+ */
364
+ liveVariantId?: SectionVariantId;
365
+ /**
366
+ * The NON-live variant only — at most one entry (invariants 2 and 3 above).
367
+ */
368
+ variants?: SectionVariant[];
318
369
  }
319
370
  /**
320
371
  * Page configuration
@@ -623,6 +674,7 @@ declare class WidgetRegistry implements IWidgetRegistry {
623
674
  *
624
675
  * Defines the context passed to the page builder for rendering.
625
676
  */
677
+
626
678
  /**
627
679
  * Viewport breakpoint type
628
680
  */
@@ -682,14 +734,41 @@ interface RouteContext {
682
734
  */
683
735
  query: Record<string, string | string[] | undefined>;
684
736
  /**
685
- * Whether to fetch template from API (for visual editor integration)
737
+ * Whether to fetch template from API (for visual editor integration).
738
+ *
739
+ * NOT read on the storefront render path. This resolver ignores it — templates
740
+ * always load through the injected `ITemplateLoader`, and `loadTemplate()` only
741
+ * receives (merchantName, templateName, variant), so a page's routeContext
742
+ * never reaches a reader. Editor-vs-filesystem is selected once, at the
743
+ * composition root, from `NEXT_PUBLIC_ENABLE_EDITOR_CHANGES` (which loader gets
744
+ * injected). Setting this in a page's routeContext has no effect.
745
+ *
746
+ * It IS load-bearing in one place: `migrate-theme` stamps it onto the
747
+ * routeContext it uploads as backend template metadata, and the in-app editor
748
+ * reads that metadata back when resolving a template for editing.
686
749
  */
687
750
  fetchAPITemplate?: boolean;
751
+ /**
752
+ * Assigned page-template suffix for this resource (Page Templates feature).
753
+ * When set, the resolver uses it as the template variant, so the storefront
754
+ * fetches `{merchant}_{templateName}_{suffix}` instead of the default. Sourced
755
+ * from the product/collection's `template_suffix`; absent ⇒ "default".
756
+ * A missing/unknown suffix falls back to the default template (never errors).
757
+ */
758
+ templateSuffix?: string;
688
759
  /**
689
760
  * API data for template variant resolution
690
761
  * Used by the template resolver to determine which variant to render
691
762
  */
692
763
  apiData?: Record<string, any>;
764
+ /**
765
+ * Which section variant to render per slot: `{ [sectionId]: "a" | "b" }`.
766
+ * Set only by the `/variant/[arm]` mirror routes; absent everywhere else, so
767
+ * the overlay is a no-op returning the config by reference.
768
+ *
769
+ * Independent of `templateSuffix`, which chooses WHICH template to load.
770
+ */
771
+ sectionVariants?: SectionVariantSelection;
693
772
  }
694
773
 
695
774
  /**
@@ -938,6 +1017,115 @@ interface PageBuilder {
938
1017
  */
939
1018
  declare function createPageBuilder(options: PageBuilderOptions): PageBuilder;
940
1019
 
1020
+ /**
1021
+ * Section variant resolution and policy.
1022
+ *
1023
+ * The ONE place a variant is chosen — the editor applies a selection before
1024
+ * pushing to its preview iframe, the renderer after resolving a template, so
1025
+ * the two cannot disagree about what a selection means.
1026
+ *
1027
+ * Everything above the POLICY heading is generic over N variants; the
1028
+ * two-variant rule lives only below it. Do not scatter it elsewhere.
1029
+ *
1030
+ * @module core/section-variants
1031
+ */
1032
+
1033
+ /**
1034
+ * Overlay a variant selection onto a page config.
1035
+ *
1036
+ * For each section named by `selection`, that variant's body replaces the
1037
+ * section's inline body while the slot keeps its `id`. Everything else is
1038
+ * returned untouched.
1039
+ *
1040
+ * Three contractual behaviours:
1041
+ *
1042
+ * 1. An empty/absent selection returns the SAME OBJECT REFERENCE — what makes
1043
+ * the overlay free for unbucketed traffic. Do not "tidy" into a copy.
1044
+ * 2. An unknown `sectionId` is ignored (a cookie may name a deleted section).
1045
+ * 3. A missing variant falls back to the live body — every failure path here
1046
+ * resolves to the live variant, never an error.
1047
+ */
1048
+ declare function applySectionVariants(pageConfig: PageConfig, selection?: SectionVariantSelection | null): PageConfig;
1049
+ /**
1050
+ * The variant of `sectionId` that a selection resolves to, or the section's live
1051
+ * variant when the selection doesn't name it. Useful for labelling UI without
1052
+ * re-deriving the overlay.
1053
+ */
1054
+ declare function resolvedVariantId(section: VariantSlot & {
1055
+ id: string;
1056
+ }, selection?: SectionVariantSelection | null): SectionVariantId;
1057
+ /**
1058
+ * The minimum an inspection/policy helper needs from a slot: which variant is
1059
+ * live, and the ids of the others. Deliberately narrower than `SectionConfig` so
1060
+ * callers holding a loosely-typed `pageConfig` section (the editor) can use these
1061
+ * without casting or materialising full variant bodies.
1062
+ */
1063
+ interface VariantSlot {
1064
+ liveVariantId?: SectionVariantId;
1065
+ variants?: Pick<SectionVariant, "variantId">[];
1066
+ }
1067
+ /**
1068
+ * The live variant's id. A section that predates variants (no `liveVariantId`)
1069
+ * is treated as holding the default variant, so callers never deal with
1070
+ * `undefined` — that is what keeps "unversioned" from being a special case
1071
+ * everywhere else.
1072
+ */
1073
+ declare function liveVariantIdOf(section: Pick<VariantSlot, "liveVariantId">): SectionVariantId;
1074
+ /**
1075
+ * Every variant id on a slot, live one first, in stable display order.
1076
+ *
1077
+ * Sorted by `VARIANT_ORDER` so A always precedes B regardless of which is
1078
+ * currently live — a merchant who made B the default should still see the pair
1079
+ * listed A, B rather than the order they happen to be stored in.
1080
+ */
1081
+ declare function listSectionVariantIds(section: VariantSlot): SectionVariantId[];
1082
+ /** How many variants a slot holds, counting the live one. */
1083
+ declare function sectionVariantCount(section: VariantSlot): number;
1084
+ /** Does this slot hold the given variant, live or stored? */
1085
+ declare function hasSectionVariant(section: VariantSlot, variantId: SectionVariantId): boolean;
1086
+ /**
1087
+ * True once a slot has more than the default variant — i.e. it can take part in
1088
+ * an A/B experiment. Admin uses this to show which sections are selectable.
1089
+ */
1090
+ declare function isSectionVariantEnabled(section: VariantSlot): boolean;
1091
+ /** The original body every slot starts with: Variant A. */
1092
+ declare const DEFAULT_VARIANT_ID: SectionVariantId;
1093
+ /**
1094
+ * How many variants one section slot may hold, including the default.
1095
+ *
1096
+ * **2 today** — a merchant creates Variant B and cannot create a third. Raising
1097
+ * this is the single change needed to allow more: id minting, ordering,
1098
+ * labelling, the overlay, and every store mutator are already generic.
1099
+ */
1100
+ declare const MAX_SECTION_VARIANTS = 2;
1101
+ /**
1102
+ * Merchant-facing label for a variant. The only place these strings live, so UI
1103
+ * in the editor and in Admin cannot drift apart.
1104
+ *
1105
+ * The default variant is labelled "(Default)" because that is what distinguishes
1106
+ * it for a merchant: it is what visitors see when no test is running.
1107
+ */
1108
+ declare function sectionVariantLabel(variantId: SectionVariantId): string;
1109
+ /** Can the merchant create another variant on this slot? */
1110
+ declare function canCreateSectionVariant(section: VariantSlot): boolean;
1111
+ /**
1112
+ * The id the next created variant should get, or null when the cap is reached.
1113
+ *
1114
+ * Walks the alphabet from the default so it stays correct if a variant is ever
1115
+ * removed and re-added, and needs no change when the cap rises.
1116
+ */
1117
+ declare function nextSectionVariantId(section: VariantSlot): SectionVariantId | null;
1118
+ /**
1119
+ * Build the body for a newly created variant: a deep copy of the source body
1120
+ * with fresh widget ids.
1121
+ *
1122
+ * Both details matter. The deep copy is why editing the new variant can never
1123
+ * reach back into the one it was cloned from — they diverge from creation. The
1124
+ * fresh ids are because two widgets sharing an id within one `pageConfig` would
1125
+ * collide in the editor iframe's override store.
1126
+ */
1127
+ declare function buildVariantFromSection(section: Pick<SectionConfig, "name" | "type" | "settings" | "widgets">, variantId: SectionVariantId, makeWidgetId: (previousId: string) => string, now?: () => string): SectionVariant;
1128
+
941
1129
  /**
942
1130
  * Layout and Alignment Options
943
1131
  *
@@ -1255,4 +1443,4 @@ declare function createSectionRendererFromComponent(Component: React.ComponentTy
1255
1443
  children: React.ReactNode[];
1256
1444
  }>): SectionRenderer;
1257
1445
 
1258
- export { ASPECT_RATIO_OPTIONS, type AspectRatioOption, type Breakpoint, type BreakpointConfig, CARD_STYLE_OPTIONS, type CardStyleOption, type ChromeResult, DATA_SOURCE_TYPES, DEFAULT_BREAKPOINTS, DEFAULT_LOCALE, type DataSourceConfig, type DataSourceType, DefaultSectionWrapper, type FileSystemPresetOptions, type ITemplateLoader, type IThemeLoader, type IWidgetRegistry, type Locale, type PageBuilder, type PageBuilderOptions, type PageConfig, PageConfigHelpers, type RenderChromeParams, type RenderPageParams, type ResponsiveSpacing, type RouteContext, SECTION_ALIGNMENT_OPTIONS, SECTION_LAYOUT_OPTIONS, SECTION_TYPES, type SectionAlignmentOption, type SectionConfig, type SectionLayoutOption, type SectionRegistry, type SectionRenderContext, type SectionRenderer, type SectionSchema, type SectionSettings, type SectionType, type Spacing, TEXT_ALIGNMENT_OPTIONS, type Template, type TemplateVariantRegistry, type TextAlignmentOption, type Theme, type ThemeConfig, type ThemeRole, type ValidationResult, type VariantRegistryResult, type WidgetConfig, type WidgetEntry, type WidgetProps, WidgetRegistry, type WidgetResponsiveConfig, type WidgetSchema, type WidgetSchemaRegistry, createDefaultSectionRenderer, createFileSystemPageBuilder, createPageBuilder, createSectionRendererFromComponent, getPageBuilder, resetPageBuilder };
1446
+ export { ASPECT_RATIO_OPTIONS, type AspectRatioOption, type Breakpoint, type BreakpointConfig, CARD_STYLE_OPTIONS, type CardStyleOption, type ChromeResult, DATA_SOURCE_TYPES, DEFAULT_BREAKPOINTS, DEFAULT_LOCALE, DEFAULT_VARIANT_ID, type DataSourceConfig, type DataSourceType, DefaultSectionWrapper, type FileSystemPresetOptions, type ITemplateLoader, type IThemeLoader, type IWidgetRegistry, type Locale, MAX_SECTION_VARIANTS, type PageBuilder, type PageBuilderOptions, type PageConfig, PageConfigHelpers, type RenderChromeParams, type RenderPageParams, type ResponsiveSpacing, type RouteContext, SECTION_ALIGNMENT_OPTIONS, SECTION_LAYOUT_OPTIONS, SECTION_TYPES, type SectionAlignmentOption, type SectionConfig, type SectionLayoutOption, type SectionRegistry, type SectionRenderContext, type SectionRenderer, type SectionSchema, type SectionSettings, type SectionType, type SectionVariant, type SectionVariantId, type SectionVariantSelection, type Spacing, TEXT_ALIGNMENT_OPTIONS, type Template, type TemplateVariantRegistry, type TextAlignmentOption, type Theme, type ThemeConfig, type ThemeRole, type ValidationResult, type VariantRegistryResult, type WidgetConfig, type WidgetEntry, type WidgetProps, WidgetRegistry, type WidgetResponsiveConfig, type WidgetSchema, type WidgetSchemaRegistry, applySectionVariants, buildVariantFromSection, canCreateSectionVariant, createDefaultSectionRenderer, createFileSystemPageBuilder, createPageBuilder, createSectionRendererFromComponent, getPageBuilder, hasSectionVariant, isSectionVariantEnabled, listSectionVariantIds, liveVariantIdOf, nextSectionVariantId, resetPageBuilder, resolvedVariantId, sectionVariantCount, sectionVariantLabel };
package/dist/index.d.ts CHANGED
@@ -289,14 +289,56 @@ interface WidgetConfig {
289
289
  */
290
290
  responsive?: WidgetResponsiveConfig;
291
291
  }
292
+ /**
293
+ * A variant's identity within its slot. A plain string, not a union: everything
294
+ * downstream is generic over N variants. The two-variant policy lives in ONE
295
+ * place — the POLICY block of ../core/section-variants.
296
+ *
297
+ * Arm A is always Variant A, so an experiment references a section by id alone.
298
+ */
299
+ type SectionVariantId = string;
300
+ /**
301
+ * The alternative body for one section slot: replaces `name`/`type`/`settings`/
302
+ * `widgets` while the slot keeps its id. A full body, not a settings patch,
303
+ * because `type` may differ between variants.
304
+ *
305
+ * Note "variant" is overloaded here — a widget's code variant (V1/V2) and a
306
+ * template suffix are different things. A SECTION variant is merchant data.
307
+ */
308
+ interface SectionVariant {
309
+ variantId: SectionVariantId;
310
+ name: string;
311
+ type: string;
312
+ settings: SectionSettings;
313
+ widgets: WidgetConfig[];
314
+ createdAt?: string;
315
+ createdBy?: string;
316
+ }
317
+ /**
318
+ * `{ [sectionId]: "a" | "b" }`. Empty or absent means "render every section's
319
+ * live variant" — all traffic that is not previewing or bucketed.
320
+ */
321
+ type SectionVariantSelection = Record<string, SectionVariantId>;
292
322
  /**
293
323
  * Section configuration
294
324
  *
295
325
  * Defines a section of a page containing widgets.
326
+ *
327
+ * **Variant invariants** (both fields optional; absent ⇒ default variant only,
328
+ * the shape every stored `pageConfig` has today):
329
+ *
330
+ * 1. The live variant's body IS the top-level `name`/`type`/`settings`/
331
+ * `widgets`. The renderer never dereferences `liveVariantId`.
332
+ * 2. `variants` never contains an entry matching `liveVariantId` — one
333
+ * representation of what traffic sees, so the two cannot disagree.
334
+ * 3. `variants` holds the NON-live variants only; how many is policy
335
+ * (`MAX_SECTION_VARIANTS`), not shape.
336
+ *
337
+ * Making another variant live is therefore a body SWAP, not a pointer write.
296
338
  */
297
339
  interface SectionConfig {
298
340
  /**
299
- * Unique section identifier
341
+ * Unique section identifier — the stable SLOT id, unchanged across versions
300
342
  */
301
343
  id: string;
302
344
  /**
@@ -315,6 +357,15 @@ interface SectionConfig {
315
357
  * Widgets contained in this section
316
358
  */
317
359
  widgets: WidgetConfig[];
360
+ /**
361
+ * Which variant the top-level body above represents.
362
+ * Absent ⇒ the slot has only Variant A and no B has been created (today's shape).
363
+ */
364
+ liveVariantId?: SectionVariantId;
365
+ /**
366
+ * The NON-live variant only — at most one entry (invariants 2 and 3 above).
367
+ */
368
+ variants?: SectionVariant[];
318
369
  }
319
370
  /**
320
371
  * Page configuration
@@ -623,6 +674,7 @@ declare class WidgetRegistry implements IWidgetRegistry {
623
674
  *
624
675
  * Defines the context passed to the page builder for rendering.
625
676
  */
677
+
626
678
  /**
627
679
  * Viewport breakpoint type
628
680
  */
@@ -682,14 +734,41 @@ interface RouteContext {
682
734
  */
683
735
  query: Record<string, string | string[] | undefined>;
684
736
  /**
685
- * Whether to fetch template from API (for visual editor integration)
737
+ * Whether to fetch template from API (for visual editor integration).
738
+ *
739
+ * NOT read on the storefront render path. This resolver ignores it — templates
740
+ * always load through the injected `ITemplateLoader`, and `loadTemplate()` only
741
+ * receives (merchantName, templateName, variant), so a page's routeContext
742
+ * never reaches a reader. Editor-vs-filesystem is selected once, at the
743
+ * composition root, from `NEXT_PUBLIC_ENABLE_EDITOR_CHANGES` (which loader gets
744
+ * injected). Setting this in a page's routeContext has no effect.
745
+ *
746
+ * It IS load-bearing in one place: `migrate-theme` stamps it onto the
747
+ * routeContext it uploads as backend template metadata, and the in-app editor
748
+ * reads that metadata back when resolving a template for editing.
686
749
  */
687
750
  fetchAPITemplate?: boolean;
751
+ /**
752
+ * Assigned page-template suffix for this resource (Page Templates feature).
753
+ * When set, the resolver uses it as the template variant, so the storefront
754
+ * fetches `{merchant}_{templateName}_{suffix}` instead of the default. Sourced
755
+ * from the product/collection's `template_suffix`; absent ⇒ "default".
756
+ * A missing/unknown suffix falls back to the default template (never errors).
757
+ */
758
+ templateSuffix?: string;
688
759
  /**
689
760
  * API data for template variant resolution
690
761
  * Used by the template resolver to determine which variant to render
691
762
  */
692
763
  apiData?: Record<string, any>;
764
+ /**
765
+ * Which section variant to render per slot: `{ [sectionId]: "a" | "b" }`.
766
+ * Set only by the `/variant/[arm]` mirror routes; absent everywhere else, so
767
+ * the overlay is a no-op returning the config by reference.
768
+ *
769
+ * Independent of `templateSuffix`, which chooses WHICH template to load.
770
+ */
771
+ sectionVariants?: SectionVariantSelection;
693
772
  }
694
773
 
695
774
  /**
@@ -938,6 +1017,115 @@ interface PageBuilder {
938
1017
  */
939
1018
  declare function createPageBuilder(options: PageBuilderOptions): PageBuilder;
940
1019
 
1020
+ /**
1021
+ * Section variant resolution and policy.
1022
+ *
1023
+ * The ONE place a variant is chosen — the editor applies a selection before
1024
+ * pushing to its preview iframe, the renderer after resolving a template, so
1025
+ * the two cannot disagree about what a selection means.
1026
+ *
1027
+ * Everything above the POLICY heading is generic over N variants; the
1028
+ * two-variant rule lives only below it. Do not scatter it elsewhere.
1029
+ *
1030
+ * @module core/section-variants
1031
+ */
1032
+
1033
+ /**
1034
+ * Overlay a variant selection onto a page config.
1035
+ *
1036
+ * For each section named by `selection`, that variant's body replaces the
1037
+ * section's inline body while the slot keeps its `id`. Everything else is
1038
+ * returned untouched.
1039
+ *
1040
+ * Three contractual behaviours:
1041
+ *
1042
+ * 1. An empty/absent selection returns the SAME OBJECT REFERENCE — what makes
1043
+ * the overlay free for unbucketed traffic. Do not "tidy" into a copy.
1044
+ * 2. An unknown `sectionId` is ignored (a cookie may name a deleted section).
1045
+ * 3. A missing variant falls back to the live body — every failure path here
1046
+ * resolves to the live variant, never an error.
1047
+ */
1048
+ declare function applySectionVariants(pageConfig: PageConfig, selection?: SectionVariantSelection | null): PageConfig;
1049
+ /**
1050
+ * The variant of `sectionId` that a selection resolves to, or the section's live
1051
+ * variant when the selection doesn't name it. Useful for labelling UI without
1052
+ * re-deriving the overlay.
1053
+ */
1054
+ declare function resolvedVariantId(section: VariantSlot & {
1055
+ id: string;
1056
+ }, selection?: SectionVariantSelection | null): SectionVariantId;
1057
+ /**
1058
+ * The minimum an inspection/policy helper needs from a slot: which variant is
1059
+ * live, and the ids of the others. Deliberately narrower than `SectionConfig` so
1060
+ * callers holding a loosely-typed `pageConfig` section (the editor) can use these
1061
+ * without casting or materialising full variant bodies.
1062
+ */
1063
+ interface VariantSlot {
1064
+ liveVariantId?: SectionVariantId;
1065
+ variants?: Pick<SectionVariant, "variantId">[];
1066
+ }
1067
+ /**
1068
+ * The live variant's id. A section that predates variants (no `liveVariantId`)
1069
+ * is treated as holding the default variant, so callers never deal with
1070
+ * `undefined` — that is what keeps "unversioned" from being a special case
1071
+ * everywhere else.
1072
+ */
1073
+ declare function liveVariantIdOf(section: Pick<VariantSlot, "liveVariantId">): SectionVariantId;
1074
+ /**
1075
+ * Every variant id on a slot, live one first, in stable display order.
1076
+ *
1077
+ * Sorted by `VARIANT_ORDER` so A always precedes B regardless of which is
1078
+ * currently live — a merchant who made B the default should still see the pair
1079
+ * listed A, B rather than the order they happen to be stored in.
1080
+ */
1081
+ declare function listSectionVariantIds(section: VariantSlot): SectionVariantId[];
1082
+ /** How many variants a slot holds, counting the live one. */
1083
+ declare function sectionVariantCount(section: VariantSlot): number;
1084
+ /** Does this slot hold the given variant, live or stored? */
1085
+ declare function hasSectionVariant(section: VariantSlot, variantId: SectionVariantId): boolean;
1086
+ /**
1087
+ * True once a slot has more than the default variant — i.e. it can take part in
1088
+ * an A/B experiment. Admin uses this to show which sections are selectable.
1089
+ */
1090
+ declare function isSectionVariantEnabled(section: VariantSlot): boolean;
1091
+ /** The original body every slot starts with: Variant A. */
1092
+ declare const DEFAULT_VARIANT_ID: SectionVariantId;
1093
+ /**
1094
+ * How many variants one section slot may hold, including the default.
1095
+ *
1096
+ * **2 today** — a merchant creates Variant B and cannot create a third. Raising
1097
+ * this is the single change needed to allow more: id minting, ordering,
1098
+ * labelling, the overlay, and every store mutator are already generic.
1099
+ */
1100
+ declare const MAX_SECTION_VARIANTS = 2;
1101
+ /**
1102
+ * Merchant-facing label for a variant. The only place these strings live, so UI
1103
+ * in the editor and in Admin cannot drift apart.
1104
+ *
1105
+ * The default variant is labelled "(Default)" because that is what distinguishes
1106
+ * it for a merchant: it is what visitors see when no test is running.
1107
+ */
1108
+ declare function sectionVariantLabel(variantId: SectionVariantId): string;
1109
+ /** Can the merchant create another variant on this slot? */
1110
+ declare function canCreateSectionVariant(section: VariantSlot): boolean;
1111
+ /**
1112
+ * The id the next created variant should get, or null when the cap is reached.
1113
+ *
1114
+ * Walks the alphabet from the default so it stays correct if a variant is ever
1115
+ * removed and re-added, and needs no change when the cap rises.
1116
+ */
1117
+ declare function nextSectionVariantId(section: VariantSlot): SectionVariantId | null;
1118
+ /**
1119
+ * Build the body for a newly created variant: a deep copy of the source body
1120
+ * with fresh widget ids.
1121
+ *
1122
+ * Both details matter. The deep copy is why editing the new variant can never
1123
+ * reach back into the one it was cloned from — they diverge from creation. The
1124
+ * fresh ids are because two widgets sharing an id within one `pageConfig` would
1125
+ * collide in the editor iframe's override store.
1126
+ */
1127
+ declare function buildVariantFromSection(section: Pick<SectionConfig, "name" | "type" | "settings" | "widgets">, variantId: SectionVariantId, makeWidgetId: (previousId: string) => string, now?: () => string): SectionVariant;
1128
+
941
1129
  /**
942
1130
  * Layout and Alignment Options
943
1131
  *
@@ -1255,4 +1443,4 @@ declare function createSectionRendererFromComponent(Component: React.ComponentTy
1255
1443
  children: React.ReactNode[];
1256
1444
  }>): SectionRenderer;
1257
1445
 
1258
- export { ASPECT_RATIO_OPTIONS, type AspectRatioOption, type Breakpoint, type BreakpointConfig, CARD_STYLE_OPTIONS, type CardStyleOption, type ChromeResult, DATA_SOURCE_TYPES, DEFAULT_BREAKPOINTS, DEFAULT_LOCALE, type DataSourceConfig, type DataSourceType, DefaultSectionWrapper, type FileSystemPresetOptions, type ITemplateLoader, type IThemeLoader, type IWidgetRegistry, type Locale, type PageBuilder, type PageBuilderOptions, type PageConfig, PageConfigHelpers, type RenderChromeParams, type RenderPageParams, type ResponsiveSpacing, type RouteContext, SECTION_ALIGNMENT_OPTIONS, SECTION_LAYOUT_OPTIONS, SECTION_TYPES, type SectionAlignmentOption, type SectionConfig, type SectionLayoutOption, type SectionRegistry, type SectionRenderContext, type SectionRenderer, type SectionSchema, type SectionSettings, type SectionType, type Spacing, TEXT_ALIGNMENT_OPTIONS, type Template, type TemplateVariantRegistry, type TextAlignmentOption, type Theme, type ThemeConfig, type ThemeRole, type ValidationResult, type VariantRegistryResult, type WidgetConfig, type WidgetEntry, type WidgetProps, WidgetRegistry, type WidgetResponsiveConfig, type WidgetSchema, type WidgetSchemaRegistry, createDefaultSectionRenderer, createFileSystemPageBuilder, createPageBuilder, createSectionRendererFromComponent, getPageBuilder, resetPageBuilder };
1446
+ export { ASPECT_RATIO_OPTIONS, type AspectRatioOption, type Breakpoint, type BreakpointConfig, CARD_STYLE_OPTIONS, type CardStyleOption, type ChromeResult, DATA_SOURCE_TYPES, DEFAULT_BREAKPOINTS, DEFAULT_LOCALE, DEFAULT_VARIANT_ID, type DataSourceConfig, type DataSourceType, DefaultSectionWrapper, type FileSystemPresetOptions, type ITemplateLoader, type IThemeLoader, type IWidgetRegistry, type Locale, MAX_SECTION_VARIANTS, type PageBuilder, type PageBuilderOptions, type PageConfig, PageConfigHelpers, type RenderChromeParams, type RenderPageParams, type ResponsiveSpacing, type RouteContext, SECTION_ALIGNMENT_OPTIONS, SECTION_LAYOUT_OPTIONS, SECTION_TYPES, type SectionAlignmentOption, type SectionConfig, type SectionLayoutOption, type SectionRegistry, type SectionRenderContext, type SectionRenderer, type SectionSchema, type SectionSettings, type SectionType, type SectionVariant, type SectionVariantId, type SectionVariantSelection, type Spacing, TEXT_ALIGNMENT_OPTIONS, type Template, type TemplateVariantRegistry, type TextAlignmentOption, type Theme, type ThemeConfig, type ThemeRole, type ValidationResult, type VariantRegistryResult, type WidgetConfig, type WidgetEntry, type WidgetProps, WidgetRegistry, type WidgetResponsiveConfig, type WidgetSchema, type WidgetSchemaRegistry, applySectionVariants, buildVariantFromSection, canCreateSectionVariant, createDefaultSectionRenderer, createFileSystemPageBuilder, createPageBuilder, createSectionRendererFromComponent, getPageBuilder, hasSectionVariant, isSectionVariantEnabled, listSectionVariantIds, liveVariantIdOf, nextSectionVariantId, resetPageBuilder, resolvedVariantId, sectionVariantCount, sectionVariantLabel };
package/dist/index.js CHANGED
@@ -1,15 +1 @@
1
- 'use strict';var b=require('react'),jsxRuntime=require('react/jsx-runtime');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var b__default=/*#__PURE__*/_interopDefault(b);var x="en";var R=class{constructor(e="en",t={}){this.locale=e,this.messages=t;}getLocale(){return this.locale}getMessages(){return this.messages}translate(e,t){if(typeof e!="string")return String(e);if(!e.startsWith("t:"))return e;let r=e.slice(2),n=this.getNestedValue(this.messages,r);return n==null?r:typeof n!="string"?n:t?this.interpolate(n,t):n}translateRaw(e){if(typeof e!="string"||!e.startsWith("t:"))return e;let t=e.slice(2),r=this.getNestedValue(this.messages,t);return r!==void 0?r:e}translateObject(e,t){if(e==null)return e;if(typeof e=="string"){if(e.startsWith("t:")){let r=this.translateRaw(e);return typeof r!="string"?r:t?this.interpolate(r,t):r}return e}if(Array.isArray(e))return e.map(r=>this.translateObject(r,t));if(typeof e=="object"){let r={};for(let[n,o]of Object.entries(e))r[n]=this.translateObject(o,t);return r}return e}getNestedValue(e,t){if(!t||!e)return;let r=t.split("."),n=e;for(let o of r){if(n==null)return;n=n[o];}return n}interpolate(e,t){return e.replace(/\{(\w+)\}/g,(r,n)=>{let o=t[n];return o!==void 0?String(o):r})}};var g={PRODUCT:"PRODUCT",PRODUCTS:"PRODUCTS",PRODUCTS_BY_HANDLES:"PRODUCTS_BY_HANDLES",COLLECTION:"COLLECTION",COLLECTIONS:"COLLECTIONS",COLLECTION_BY_HANDLES:"COLLECTION_BY_HANDLES",COLLECTION_FILTERS:"COLLECTION_FILTERS",STATIC:"STATIC",FETCH_REQUEST:"FETCH_REQUEST",GRAPHQL_REQUEST:"GRAPHQL_REQUEST"};var C=class{constructor(e){this.commerceClient=e;}async fetchPageData(e){let{merchantName:t,pageConfig:r,routeContext:n}=e,o={merchantName:t},a=this.collectRequirements(r,n),s=await this.fetchAllData(a);return {...o,...s}}collectRequirements(e,t){let r=[];if(e.dataSources)for(let[n,o]of Object.entries(e.dataSources))r.push({type:o.type,params:{...o.params,...t.params},required:o.required||false,sourceId:n,options:o.options});return r}async fetchAllData(e){let t={};return await Promise.all(e.map(async r=>{try{let n=await this.fetchSingleRequirement(r);t[r.sourceId]=n;}catch(n){if(console.error(`Error fetching data for ${r.sourceId}:`,n),r.required)throw n;t[r.sourceId]=null;}})),t}async fetchSingleRequirement(e){let{type:t,params:r,options:n}=e;switch(t){case g.STATIC:return r;case g.PRODUCT:return this.commerceClient.getProduct(r,n);case g.PRODUCTS:return this.commerceClient.getProducts(r,n);case g.PRODUCTS_BY_HANDLES:return this.commerceClient.getProductsByHandles(r,n);case g.COLLECTION:return this.commerceClient.getCollection(r,n);case g.COLLECTIONS:return this.commerceClient.getCollections(r,n);case g.COLLECTION_BY_HANDLES:return this.commerceClient.getCollectionsByHandles(r,n);case g.COLLECTION_FILTERS:return this.commerceClient.getCollectionFilters(r,n);case g.FETCH_REQUEST:return this.commerceClient.fetchRequest(r);case g.GRAPHQL_REQUEST:return this.commerceClient.graphqlRequest(r);default:return console.warn(`Unknown data source type: ${t}`),null}}};var h=class{constructor(e){this.widgetRegistry=e;}createWidgets({pageConfig:e,pageData:t,routeContext:r,translationService:n}){let o={};for(let a of e.sections){if(!a.widgets?.length){console.warn(`Section ${a.id} has no widgets.`);continue}for(let s of a.widgets){let c=this.createSingleWidget(s,e,t,r,n);c&&(o[s.id]=c);}}return o}createSingleWidget(e,t,r,n,o){try{let a=this.widgetRegistry.get(e.type);if(!a)return console.error(`Widget type not found: ${e.type}`),console.error("Available widgets:",this.widgetRegistry.getRegisteredTypes()),null;let s=this.prepareWidgetData(e,t,r);if(s===null)return null;let c={key:e.id,id:e.id,data:s,settings:e.settings,routeContext:n};return o&&(c.locale=o.getLocale()),b__default.default.createElement(a,c)}catch(a){return console.error(`Error creating widget: ${e.id}`,a),null}}prepareWidgetData(e,t,r){if(!e.dataSourceKey)return {};let n=e.dataSourceKey,o=r[n];return (t.dataSources?.[n]?.required||false)&&!o?(console.error(`Required data not available for widget: ${e.id} (dataSourceKey: ${n})`),null):o||{}}};var T=class{constructor(e){this.renderSectionWrapper=e;}renderLayout({pageConfig:e,widgets:t,styles:r,routeContext:n,isEditing:o=false,onSelectSection:a,onSelectWidget:s}){return jsxRuntime.jsx("div",{className:"page-container",children:e.sections.map(c=>jsxRuntime.jsx(b__default.default.Fragment,{children:this.renderSection(c,t,r,o,a,s)},c.id))})}renderSection(e,t,r,n=false,o,a){let s=e.widgets.map(d=>{let p=t[d.id];if(!p)return null;let m=b__default.default.cloneElement(p,{key:d.id,...d.responsive&&{responsive:d.responsive}});return n?jsxRuntime.jsxs("div",{className:"relative",style:{overflow:"visible"},children:[jsxRuntime.jsx("div",{className:"absolute inset-0 pointer-events-auto rounded cursor-pointer","data-widget-id":d.id,style:{zIndex:1e4,border:"2px solid transparent",transition:"border-color 0.2s",borderRadius:"0.375rem"},onClick:l=>{l.preventDefault(),l.stopPropagation(),a&&a(e.id,d.id);},onMouseEnter:l=>{l.currentTarget.style.borderColor="#EF4444";},onMouseLeave:l=>{l.currentTarget.style.borderColor="transparent";}}),m]},d.id):m}).filter(Boolean),c=this.renderSectionWrapper(e,s,r);return n?jsxRuntime.jsxs("div",{className:"relative",style:{overflow:"visible"},children:[jsxRuntime.jsx("div",{className:"absolute inset-0 pointer-events-auto rounded-md cursor-pointer","data-section-id":e.id}),c]},e.id):c}};var P=class{constructor(e){this.themeLoader=e;}async processStyles({merchantName:e,pageConfig:t}){try{return {...(await this.themeLoader.loadTheme(e)).config,...t.theme}}catch(r){throw console.error(`Error processing styles for merchant ${e}:`,r),new Error(`Failed to process styles for merchant ${e}: ${r instanceof Error?r.message:"Unknown error"}`)}}};var I=new Map,v=class{constructor(e){this.templateLoader=e;}async resolveTemplate({merchantName:e,routeContext:t,variant:r}){if(!e)throw new Error("Merchant name is required");let{templateName:n,apiData:o}=t||{};if(!n)throw new Error("Template name is required in the route context");let a=r||(o?await this.determineVariant(e,n,o):"default"),s=`${e}-${n}-${a}`;if(I.has(s))return I.get(s);let c;try{c=await this.loadMerchantTemplate(e,n,a),this.validateTemplate(c)&&I.set(s,c);}catch(d){throw console.error(`Error loading merchant template for ${e}/${n}:`,d),new Error(`Unable to load template for ${e}/${n}. Make sure the template exists.`)}if(!this.validateTemplate(c))throw new Error(`Invalid template configuration for ${e}/${n}`);return c}async loadMerchantTemplate(e,t,r="default"){try{let n=await this.templateLoader.loadTemplate(e,t,r);if(!n)throw new Error(`Template not returned for ${e}/${t}/${r}`);return n}catch(n){if(r!=="default")return console.warn(`Template variant "${r}" not found for ${e}/${t}, falling back to default`),this.loadMerchantTemplate(e,t,"default");throw console.error(`Error loading template ${e}/${t}/${r}:`,n),n}}validateTemplate(e){if(!e.id||!e.sections)return console.error("Template validation failed: Missing required fields (id, or sections)"),false;if(!Array.isArray(e.sections)||e.sections.length===0)return console.error("Template validation failed: Sections must be a non-empty array"),false;for(let t of e.sections){if(!t.id||!t.widgets||!Array.isArray(t.widgets))return console.error("Template validation failed: Each section must have id and widgets array"),console.error("Section structure:",{id:t.id,hasWidgets:!!t.widgets,isArray:Array.isArray(t.widgets)}),false;if(!t.name||!t.type)return console.error("Template validation failed: Each section must have name and type"),console.error("Section:",{id:t.id,name:t.name,type:t.type}),false;if(!t.settings)return console.error("Template validation failed: Each section must have settings"),console.error("Section:",{id:t.id,hasSettings:!!t.settings}),false;for(let r of t.widgets){if(!r.id||!r.type||!r.name)return console.error("Template validation failed: Each widget must have id, type, and name"),console.error("Widget:",{id:r.id,type:r.type,name:r.name}),false;if(!r.settings)return console.error("Template validation failed: Each widget must have settings"),console.error("Widget:",{id:r.id,hasSettings:!!r.settings}),false}}return true}clearCache(){I.clear();}async determineVariant(e,t,r){try{if(!this.templateLoader.loadVariantRegistry)return "default";let n=await this.templateLoader.loadVariantRegistry(e);if(!n||!n.variantRegistry)return "default";let o=n.variantRegistry[t];if(!o)return "default";let{apiField:a,variantMap:s,defaultVariant:c}=o,d=this.getNestedValue(r,a);return d&&s&&s[d]?s[d]:c||"default"}catch(n){return console.warn(`Failed to load variant registry for template type ${t}:`,n),"default"}}getNestedValue(e,t){return t.split(".").reduce((r,n)=>r&&r[n]!==void 0?r[n]:void 0,e)}};function k(i,e="desktop"){let n=i.settings.responsive?.[e]||{padding:i.settings.padding||{top:0,right:0,bottom:0,left:0},margin:i.settings.margin},o=n.padding?`${n.padding.top}px ${n.padding.right}px ${n.padding.bottom}px ${n.padding.left}px`:"0",a=n.margin?`${n.margin.top}px ${n.margin.right}px ${n.margin.bottom}px ${n.margin.left}px`:void 0;return {padding:o,margin:a}}function f(i,e,t){let{styles:r,breakpoint:n="desktop"}=t,{layout:o}=i.settings,a=k(i,n),s={width:"100%",padding:a.padding,...a.margin&&{margin:a.margin},...o==="page"&&{maxWidth:r?.spacing?.container||"1280px",marginLeft:"auto",marginRight:"auto"}};return b__default.default.createElement("section",{key:i.id,"data-section-id":i.id,"data-section-type":i.type,"data-breakpoint":n,style:s},e)}function M(){return f}function U(i,e){if(i)for(let t of i.sections??[])for(let r of t.widgets??[]){let n=r.settings?.menuHandle;typeof n=="string"&&n.length>0&&e.add(n);}}var E=class{constructor(e){let{commerceClient:t,themeLoader:r,templateLoader:n,widgetRegistry:o,sectionRenderer:a,defaultLocale:s="en"}=e;this.templateResolver=new v(n),this.dataFetcher=new C(t),this.widgetFactory=new h(o),this.styleProcessor=new P(r),this.sectionRenderer=a||f,this.defaultLocale=s;}createLayoutRenderer(e){let t=this.sectionRenderer,r=(n,o,a)=>t(n,o,{styles:a,routeContext:e,breakpoint:"desktop"});return new T(r)}async renderPage({merchantName:e,pageConfig:t,routeContext:r,locale:n,messages:o}){let a=n||this.defaultLocale,s=new R(a,o||{}),c=t||await this.templateResolver.resolveTemplate({merchantName:e,routeContext:r}),d=this.translatePageConfig(c,s),p=await this.dataFetcher.fetchPageData({merchantName:e,pageConfig:d,routeContext:r}),m=await this.styleProcessor.processStyles({merchantName:e,pageConfig:d}),l=this.widgetFactory.createWidgets({pageConfig:d,pageData:p,routeContext:r,translationService:s});return this.createLayoutRenderer(r).renderLayout({pageConfig:d,widgets:l,styles:m,routeContext:r})}async renderChrome({merchantName:e,locale:t,messages:r,headerConfig:n,footerConfig:o,headerTemplateName:a="header",footerTemplateName:s="footer"}){let c=new Set,d=async(l,A)=>{try{let u={templateName:l,path:"/",params:{},query:{},fetchAPITemplate:!0},_=A??await this.templateResolver.resolveTemplate({merchantName:e,routeContext:u});return U(_,c),await this.renderPage({merchantName:e,pageConfig:_,routeContext:u,locale:t,messages:r})}catch(u){return console.error(JSON.stringify({level:"error",service:"builder",message:"renderChrome slot failed",slot:l,merchantName:e,error:u instanceof Error?u.message:String(u)})),null}},[p,m]=await Promise.all([d(a,n),d(s,o)]);return {header:p,footer:m,menuHandles:[...c]}}clearCache(){this.templateResolver.clearCache();}validateConfig(e){let t=[];return e.id||t.push("Page config must have an id"),(!e.sections||!Array.isArray(e.sections))&&t.push("Page config must have a sections array"),(!e.dataSources||typeof e.dataSources!="object")&&t.push("Page config must have a dataSources object"),e.sections?.forEach((r,n)=>{r.id||t.push(`Section at index ${n} must have an id`),(!r.widgets||!Array.isArray(r.widgets))&&t.push(`Section "${r.id}" must have a widgets array`),r.widgets?.forEach((o,a)=>{o.id||t.push(`Widget at section "${r.id}" index ${a} must have an id`),o.type||t.push(`Widget "${o.id}" must have a type`);});}),{valid:t.length===0,errors:t}}translatePageConfig(e,t){return {...e,sections:e.sections.map(r=>({...r,widgets:r.widgets.map(n=>({...n,settings:t.translateObject(n.settings||{})}))}))}}};function O(i){if(!i.commerceClient)throw new Error("commerceClient is required");if(!i.themeLoader)throw new Error("themeLoader is required");if(!i.templateLoader)throw new Error("templateLoader is required");if(!i.widgetRegistry)throw new Error("widgetRegistry is required");let e=new E({commerceClient:i.commerceClient,themeLoader:i.themeLoader,templateLoader:i.templateLoader,widgetRegistry:i.widgetRegistry,sectionRenderer:i.sectionRenderer,defaultLocale:i.defaultLocale});return {renderPage:t=>e.renderPage(t),renderChrome:t=>e.renderChrome(t),clearCache:()=>e.clearCache(),validateConfig:t=>e.validateConfig(t)}}var y=class{constructor(){this.widgets=new Map;}register(e,t){if(!e){console.warn("WidgetRegistry: Cannot register widget with empty type");return}this.widgets.set(e,t);}registerAll(e){for(let{type:t,component:r}of e)this.register(t,r);}get(e){return this.widgets.get(e)}has(e){return this.widgets.has(e)}getRegisteredTypes(){return Array.from(this.widgets.keys())}clear(){this.widgets.clear();}get size(){return this.widgets.size}};var w=class{static getUsedDataSources(e){let t=new Set;for(let r of e.sections)for(let n of r.widgets)n.dataSourceKey&&t.add(n.dataSourceKey);return Array.from(t)}static findWidget(e,t){for(let r of e.sections){let n=r.widgets.find(o=>o.id===t);if(n)return n}return null}static findSection(e,t){return e.sections.find(r=>r.id===t)||null}static generateId(e){return `${e}-${Date.now()}-${Math.random().toString(36).substr(2,9)}`}static validate(e){let t=[];return e.id||t.push("Page config must have an id"),(!e.sections||!Array.isArray(e.sections))&&t.push("Page config must have a sections array"),(!e.dataSources||typeof e.dataSources!="object")&&t.push("Page config must have a dataSources object"),e.sections?.forEach((r,n)=>{r.id||t.push(`Section at index ${n} must have an id`),(!r.widgets||!Array.isArray(r.widgets))&&t.push(`Section "${r.id}" must have a widgets array`),r.widgets?.forEach((o,a)=>{o.id||t.push(`Widget at section "${r.id}" index ${a} must have an id`),o.type||t.push(`Widget "${o.id}" must have a type`);});}),{valid:t.length===0,errors:t}}};var H={HEADER_SECTION:"HEADER_SECTION",GRID_SECTION:"GRID_SECTION",HERO_SECTION:"HERO_SECTION",CONTENT_SECTION:"CONTENT_SECTION",FOOTER_SECTION:"FOOTER_SECTION"},Y={PAGE:"page",FULL:"full"},V={LEFT:"left",CENTER:"center",RIGHT:"right"},G={SQUARE:"1:1",STANDARD:"4:3",CLASSIC:"3:2",WIDE:"16:9"},Q={LEFT:"left",CENTER:"center",RIGHT:"right"},K={STANDARD:"standard",COMPACT:"compact",MINIMAL:"minimal"};var j={mobile:{max:767},tablet:{min:768,max:1023},desktop:{min:1024,max:1920},wide:{min:1921}};var L=null;function z(i){let e=[];if((!i.widgets||!Array.isArray(i.widgets))&&e.push("widgets (array of { type, component })"),i.commerceClient||e.push("commerceClient (ICommerceClient)"),i.themeLoader||e.push("themeLoader (IThemeLoader)"),i.templateLoader||e.push("templateLoader (ITemplateLoader)"),e.length>0)throw new Error(`[PageBuilder] Missing required options:
2
- `+e.map(t=>` - ${t}`).join(`
3
- `)+`
4
-
5
- Example usage:
6
- import { WIDGET_MANIFEST } from "@/widgets/.generated/manifest";
7
- import { getCommerceClient } from "@/lib/data-layer";
8
-
9
- getPageBuilder({
10
- widgets: WIDGET_MANIFEST,
11
- commerceClient: getCommerceClient(),
12
- themeLoader: { loadTheme: async (merchant) => ... },
13
- templateLoader: { loadTemplate: async (...) => ... },
14
- });`)}function N(i){z(i);let e=new y;e.registerAll(i.widgets);let t=i.sectionRenderer||f;return O({commerceClient:i.commerceClient,themeLoader:i.themeLoader,templateLoader:i.templateLoader,widgetRegistry:e,sectionRenderer:t,defaultLocale:i.defaultLocale||"en"})}function W(i){if(!L){if(!i)throw new Error(`[PageBuilder] getPageBuilder() requires options on first call.
15
- Provide widgets, commerceClient, themeLoader, and templateLoader.`);L=N(i);}return L}function q(){L=null;}function F(i){return (e,t,r)=>b__default.default.createElement(i,{section:e,styles:r.styles,children:t})}exports.ASPECT_RATIO_OPTIONS=G;exports.CARD_STYLE_OPTIONS=K;exports.DATA_SOURCE_TYPES=g;exports.DEFAULT_BREAKPOINTS=j;exports.DEFAULT_LOCALE=x;exports.DefaultSectionWrapper=f;exports.PageConfigHelpers=w;exports.SECTION_ALIGNMENT_OPTIONS=V;exports.SECTION_LAYOUT_OPTIONS=Y;exports.SECTION_TYPES=H;exports.TEXT_ALIGNMENT_OPTIONS=Q;exports.WidgetRegistry=y;exports.createDefaultSectionRenderer=M;exports.createFileSystemPageBuilder=N;exports.createPageBuilder=O;exports.createSectionRendererFromComponent=F;exports.getPageBuilder=W;exports.resetPageBuilder=q;
1
+ 'use strict';const _0x10b02b=_0x4253;(function(_0x281766,_0x84ab28){const _0x426a17=_0x4253,_0x255c0e=_0x281766();while(!![]){try{const _0x30bcfa=-parseInt(_0x426a17(0x26c))/0x1+-parseInt(_0x426a17(0x278))/0x2+parseInt(_0x426a17(0x277))/0x3*(parseInt(_0x426a17(0x2a2))/0x4)+parseInt(_0x426a17(0x222))/0x5+parseInt(_0x426a17(0x2d2))/0x6*(-parseInt(_0x426a17(0x263))/0x7)+parseInt(_0x426a17(0x252))/0x8+parseInt(_0x426a17(0x294))/0x9*(-parseInt(_0x426a17(0x29f))/0xa);if(_0x30bcfa===_0x84ab28)break;else _0x255c0e['push'](_0x255c0e['shift']());}catch(_0x400641){_0x255c0e['push'](_0x255c0e['shift']());}}}(_0x3722,0x77c82));var Z=require(_0x10b02b(0x2dd)),jsxRuntime=require(_0x10b02b(0x286));function _interopDefault(_0xf65d28){const _0x3f1f7f=_0x10b02b;return _0xf65d28&&_0xf65d28[_0x3f1f7f(0x2a3)]?_0xf65d28:{'default':_0xf65d28};}var Z__default=_interopDefault(Z),N='en',R=class{constructor(_0x30c626='en',_0x5dd95b={}){const _0x4bd544=_0x10b02b;this[_0x4bd544(0x255)]=_0x30c626,this[_0x4bd544(0x218)]=_0x5dd95b;}['getLocale'](){const _0x422a2e=_0x10b02b;return this[_0x422a2e(0x255)];}['getMessages'](){const _0x530672=_0x10b02b;return this[_0x530672(0x218)];}[_0x10b02b(0x2b7)](_0x50a47d,_0x44ba22){const _0xc37989=_0x10b02b,_0x168524={'pvCPq':_0xc37989(0x227)};if(typeof _0x50a47d!=_0x168524['pvCPq'])return String(_0x50a47d);if(!_0x50a47d[_0xc37989(0x283)]('t:'))return _0x50a47d;let _0x9d569f=_0x50a47d[_0xc37989(0x2ab)](0x2),_0x5ad5e4=this[_0xc37989(0x232)](this[_0xc37989(0x218)],_0x9d569f);return _0x5ad5e4==null?_0x9d569f:typeof _0x5ad5e4!='string'?_0x5ad5e4:_0x44ba22?this[_0xc37989(0x1e4)](_0x5ad5e4,_0x44ba22):_0x5ad5e4;}[_0x10b02b(0x1f8)](_0xfb57b6){const _0x3fdbeb=_0x10b02b,_0x5462eb={'NHVLf':function(_0x190bcb,_0x3b7ee3){return _0x190bcb!=_0x3b7ee3;}};if(_0x5462eb[_0x3fdbeb(0x1d8)](typeof _0xfb57b6,'string')||!_0xfb57b6['startsWith']('t:'))return _0xfb57b6;let _0xc00e63=_0xfb57b6['slice'](0x2),_0x3e3218=this[_0x3fdbeb(0x232)](this[_0x3fdbeb(0x218)],_0xc00e63);return _0x3e3218!==void 0x0?_0x3e3218:_0xfb57b6;}[_0x10b02b(0x23f)](_0x3a4ad7,_0x5fd99f){const _0x26e39d=_0x10b02b,_0x36a767={'amaVi':function(_0x5668bd,_0x305598){return _0x5668bd==_0x305598;},'ttnad':_0x26e39d(0x227),'WteBS':function(_0x5796b9,_0x598621){return _0x5796b9!=_0x598621;}};if(_0x36a767[_0x26e39d(0x2e5)](_0x3a4ad7,null))return _0x3a4ad7;if(typeof _0x3a4ad7==_0x36a767[_0x26e39d(0x2d3)]){if(_0x3a4ad7[_0x26e39d(0x283)]('t:')){let _0x2534e9=this[_0x26e39d(0x1f8)](_0x3a4ad7);return _0x36a767[_0x26e39d(0x229)](typeof _0x2534e9,_0x36a767['ttnad'])?_0x2534e9:_0x5fd99f?this['interpolate'](_0x2534e9,_0x5fd99f):_0x2534e9;}return _0x3a4ad7;}if(Array[_0x26e39d(0x2b5)](_0x3a4ad7))return _0x3a4ad7[_0x26e39d(0x2d9)](_0x1acf9b=>this[_0x26e39d(0x23f)](_0x1acf9b,_0x5fd99f));if(_0x36a767[_0x26e39d(0x2e5)](typeof _0x3a4ad7,_0x26e39d(0x254))){let _0x1447ae={};for(let [_0x28e0c6,_0x1934e9]of Object[_0x26e39d(0x2be)](_0x3a4ad7))_0x1447ae[_0x28e0c6]=this[_0x26e39d(0x23f)](_0x1934e9,_0x5fd99f);return _0x1447ae;}return _0x3a4ad7;}['getNestedValue'](_0x401d5c,_0x52529a){const _0x25acde={'ApfFC':function(_0x3b8079,_0x4af09d){return _0x3b8079==_0x4af09d;}};if(!_0x52529a||!_0x401d5c)return;let _0x401e73=_0x52529a['split']('.'),_0x2be0c7=_0x401d5c;for(let _0x1753a4 of _0x401e73){if(_0x25acde['ApfFC'](_0x2be0c7,null))return;_0x2be0c7=_0x2be0c7[_0x1753a4];}return _0x2be0c7;}[_0x10b02b(0x1e4)](_0x40602f,_0x48e299){const _0x2066ed=_0x10b02b,_0x25a116={'ZiDMk':function(_0x1177b2,_0x3e0b63){return _0x1177b2(_0x3e0b63);}};return _0x40602f[_0x2066ed(0x213)](/\{(\w+)\}/g,(_0x208374,_0x52f70e)=>{let _0x5d74f4=_0x48e299[_0x52f70e];return _0x5d74f4!==void 0x0?_0x25a116['ZiDMk'](String,_0x5d74f4):_0x208374;});}};function b(_0x44242d,_0x24bd18){const _0x5522dc=_0x10b02b,_0x1aebca={'zmYUa':_0x5522dc(0x254),'pMFnd':function(_0x3ff74d,_0x360541,_0x557c91){return _0x3ff74d(_0x360541,_0x557c91);},'htMeg':function(_0x401a6b,_0x17afe0){return _0x401a6b===_0x17afe0;}};if(!_0x24bd18||_0x1aebca[_0x5522dc(0x2c2)](Object['keys'](_0x24bd18)[_0x5522dc(0x226)],0x0)||!Array['isArray'](_0x44242d[_0x5522dc(0x21c)]))return _0x44242d;let _0x30df91=![],_0x96f836=_0x44242d[_0x5522dc(0x21c)][_0x5522dc(0x2d9)](_0x3b92e2=>{if(!_0x3b92e2||typeof _0x3b92e2!=_0x1aebca['zmYUa'])return _0x3b92e2;let _0x1ce858=_0x1aebca['pMFnd'](Y,_0x3b92e2,_0x24bd18[_0x3b92e2['id']]);return _0x1ce858!==_0x3b92e2&&(_0x30df91=!![]),_0x1ce858;});return _0x30df91?{..._0x44242d,'sections':_0x96f836}:_0x44242d;}function _0x3722(){const _0x25381b=['C2vJDgLVBG','CMvXDwLYzwq','Axntzwn0Aw9UvMfYAwfUDevUywjSzwq','DgvTCgXHDgvmB2fKzxiGAxmGCMvXDwLYzwq','vgvTCgXHDguGDMfSAwrHDgLVBIbMywLSzwq6ievHy2GGD2LKz2v0ig11C3qGAgf2zsbZzxr0Aw5NCW','CMvUzgvYq2HYB21L','CLPNEhi','C3vIC3rY','y3jLyxrLu2vJDgLVBLjLBMrLCMvYrNjVBunVBxbVBMvUDa','mtaWjq','yNvPBgrLCG','zMv0y2HqywDLrgf0yq','sKzMsLq','v2LKz2v0igf0ihnLy3rPB24GiG','ywrK','rwThz3a','rKvuq0HFuKvrvuvtva','mti4mhb4','CgfNzq','zKrgtxm','CMvNAxn0zxjbBgW','cGPfEgfTCgXLihvZywDLoGOGigLTCg9YDcb7ifDjreDfvf9nqu5jrKvtvcb9igzYB20GiKaVD2LKz2v0CY8Uz2vUzxjHDgvKl21HBMLMzxn0iJSkicbPBxbVCNqGEYbNzxrdB21TzxjJzunSAwvUDcb9igzYB20GiKaVBgLIl2rHDgeTBgf5zxiIoWOGiaOGigDLDfbHz2vcDwLSzgvYkhSkicaGihDPzgDLDhm6ifDjreDfvf9nqu5jrKvtvcWkicaGignVBw1LCMnLq2XPzw50oIbNzxrdB21TzxjJzunSAwvUDcGPlaOGicaGDgHLBwvmB2fKzxi6ihSGBg9HzfrOzw1LoIbHC3LUyYaOBwvYy2HHBNqPid0+ic4UlIb9laOGicaGDgvTCgXHDgvmB2fKzxi6ihSGBg9HzfrLBxbSyxrLoIbHC3LUyYaOlI4Uksa9pIaUlI4GFsWkicb9ktS','CMvWBgfJzq','ChjVy2vZC1n0EwXLCW','CMvZzxrqywDLqNvPBgrLCG','zMv0y2HtAw5NBgvszxf1AxjLBwvUDa','y2XLyxjdywnOzq','BwvZC2fNzxm','zMLUza','C0TwDuC','iIbTDxn0igHHDMuGysb0ExbL','C2vJDgLVBNm','z2v0q29SBgvJDgLVBNm','zM9VDgvY','v2LKz2v0ici','z2v0uMvNAxn0zxjLzfr5CgvZ','uNrYDhm','ndmZndGZnwzoDNnxrW','A1bYqNm','CMfUzg9T','zNjVBq','BgvUz3rO','C3rYAw5N','rhPjuuS','v3rLqLm','zgvZA3rVCa','q09mtevdveLptL9cwv9iqu5etevt','DMfYAwfUDeLK','AxPrAwO','C2vJDgLVBLzHCMLHBNrmywjLBa','mty6oq','CMHLEeu','z2fWqNq','z2v0tMvZDgvKvMfSDwu','Bg9Hze1LCMnOyw50vgvTCgXHDgu','y2fUq3jLyxrLu2vJDgLVBLzHCMLHBNq','CM9HreS','z2v0q29SBgvJDgLVBKzPBhrLCNm','ig11C3qGAgf2zsbHBIbPza','DMfYAwfUDfjLz2LZDhj5','rMfPBgvKihrVihbYB2nLC3mGC3r5BgvZigzVCIbTzxjJAgfUDca','u1rbveLd','CMvSyxrPDMu','mNb4ihnVBgLKihrYyw5ZCgfYzw50','t3jbuuu','q09mtevdveLptG','DhjHBNnSyxrLt2jQzwn0','y3jLyxrLtgf5B3v0uMvUzgvYzxi','v2LKz2v0uMvNAxn0CNK','w1bHz2vcDwLSzgvYxsbnAxnZAw5NihjLCxvPCMvKig9WDgLVBNm6cG','DgvTCgXHDgvmB2fKzxi','mc4ZnZvYzw0','rhffrva','y2vUDgvY','ANn4CW','iIbPBMrLEca','y3jLyxrLrwXLBwvUDa','C2v0DgLUz3m','ALrLuhe','y29TBwvYy2vdBgLLBNqGkeLdB21TzxjJzunSAwvUDcK','z2v0uhjVzhvJDhm','ywXS','BgL2zvzHCMLHBNrjza','BwfYz2LU','CMvUzgvYtgf5B3v0','nZi1mZCWnefbv09mvW','DgvTCgXHDgvszxnVBhzLCG','B2jQzwn0','Bg9JywXL','svLowuS','Aw5JBhvKzxm','qMLnuMy','zgv0zxjTAw5LvMfYAwfUDa','DhLWzq','v2LKz2v0ihr5CguGBM90igzVDw5KoIa','C3rYAw5NAwz5','se5tyxa','DgLNv2m','zgf0yvnVDxjJzxm','CMvZB2X2zvrLBxbSyxrL','BM93','y3vYCMvUDfrHCMDLDa','mtK1nJeYouHXsgrSqq','rxjYB3iGChjVy2vZC2LUzYbZDhLSzxmGzM9Yig1LCMnOyw50ia','ANn4','C3rHBMrHCMq','rwnbz1O','AM9PBG','revgqvvmvf9cuKvbs1bpsu5uuW','zgf0yuzLDgnOzxi','BgL2zvzHCMLHBNrjze9M','ntiZndiYs3rIswLe','y3jLyxrLrMLSzvn5C3rLBvbHz2vcDwLSzgvY','r1jbueHrtf9srvfvrvnu','zgf0yvnVDxjJzuTLEq','rwnhDgq','C2L6zq','z2v0ugfNzuj1AwXKzxi','mtOX','re5uuKK','vgvTCgXHDguGDMfSAwrHDgLVBIbMywLSzwq6ifnLy3rPB25Zig11C3qGyMuGysbUB24Tzw1WDhKGyxjYyxK','revgqvvmvf9mt0nbteu','m3brDeflyq','ota3odaWve5dsKfr','sw52ywXPzcb0zw1WBgf0zsbJB25MAwD1CMf0Aw9UigzVCIa','D1Hhufa','C291CMnLswq','BffmtMu','ufjprfvdva','C2vJDgLVBLzHCMLHBNrZ','yM9YzgvYq29SB3i','rMfPBgvKihrVigXVywqGDMfYAwfUDcbYzwDPC3rYEsbMB3iGDgvTCgXHDguGDhLWzsa','v2LKz2v0oG','DxHArMC','C3rHCNrZv2L0Aa','CMLNAhq','CMvKDwnL','CMvHy3qVANn4lxj1BNrPBwu','ExvMqwK','z2v0q29SBgvJDgLVBNncEuHHBMrSzxm','DvfMy1K','D2LKz2v0rMfJDg9YEq','BMvZtfO','CvrQz2i','ywjZB2X1DguGAw5ZzxqTmcbWB2LUDgvYlwv2zw50CY1HDxrVihjVDw5KzwqTBwqGy3vYC29YlxbVAw50zxi','y29SBgvJDfjLCxvPCMvTzw50CW','u2vJDgLVBIbHDcbPBMrLEca','zMLUzfDPzgDLDa','u2zwrwK','DgvTCgXHDgvmB2fKzxiGkeLuzw1WBgf0zuXVywrLCIK','Dg9vChbLCKnHC2u','mJDdsMDez1q','C2v0','Dg9tDhjPBMC','rxjYB3iGy3jLyxrPBMCGD2LKz2v0oIa','y3jLyxrLv2LKz2v0CW','z2vUzxjHDgvjza','zMLSDgvY','vgvTCgXHDguGDMfSAwrHDgLVBIbMywLSzwq6ievHy2GGC2vJDgLVBIbTDxn0igHHDMuGAwqGyw5KihDPzgDLDhmGyxjYyxK','y29UzMLN','u2vJDgLVBIa','ChGG','mZeYntmWBwnkzhDq','z2v0','u0rZtK4','mJuWntq3mLzAqNPbAW','x19LC01VzhvSzq','CgfKzgLUzW','yxv0BW','C3r5Bgu','y3jLyxrLu2LUz2XLv2LKz2v0','vgvTCgXHDguGDMfSAwrHDgLVBIbMywLSzwq6ievHy2GGD2LKz2v0ig11C3qGAgf2zsbPzcWGDhLWzsWGyw5Kig5HBwu','DgHLBwu','rMDytfq','C2XPy2u','D2LKz2v0uMvNAxn0CNK','BMfTzq','DMfSAwrHDgvuzw1WBgf0zq','s1f0Bu4','vw5RBM93BIbLCNjVCG','C2vJDgLVBLzHCMLHBNrdB3vUDa','D2fYBG','ugfNzsbJB25MAwCGBxvZDcbOyxzLigeGC2vJDgLVBNmGyxjYyxK','C2vJDgLVBLjLBMrLCMvY','AxnbCNjHEq','vgvTCgXHDguGDMfSAwrHDgLVBIbMywLSzwq6ie1PC3nPBMCGCMvXDwLYzwqGzMLLBgrZicHPzcWGB3iGC2vJDgLVBNmP','DhjHBNnSyxrL','EKfUEg8','iIbUB3qGzM91BMqGzM9Yia','ChjLCgfYzvDPzgDLDerHDge','DMfYAwfUDhm','y29TBwvYy2vdBgLLBNq','Aw5KzxHpzG','zw50CMLLCW','ufjprfvdvfm','CMvZCg9UC2L2zq','C29Tzq','AhrnzwC','DfjXr20','zgvMyxvSDeXVy2fSzq','yM90Dg9T','C3rVCfbYB3bHz2f0Aw9U','vgvTCgXHDguGDMfSAwrHDgLVBIbMywLSzwq6ievHy2GGC2vJDgLVBIbTDxn0igHHDMuGC2v0DgLUz3m','A2v5CW','z2v0uhjVzhvJDa','mZOY','ChvZAa','yxbWBhLtzwn0Aw9UvMfYAwfUDhm','refuqv9tt1vsq0vFvfLqrvm','ALfwDhG','zgL2','C0zZwKC','Dg9W','mtH4r2LYrKC','DhrUywq','zxjYB3i','igHHCYbUBYb3AwrNzxrZlG','vw5RBM93BIbKyxrHihnVDxjJzsb0ExbLoIa','iIbTDxn0igHHDMuGysb3AwrNzxrZigfYCMf5','q2Pyy1O','BwfW','y29TCgfJDa','tK9RBwW','rgvMyxvSDfnLy3rPB25xCMfWCgvY','CMvHy3q','DMfSAwrHDgu','zNvSBa','u2vJDgLVBIbZDhj1y3r1CMu6','vMfYAwfUDca','q0fsrf9tvfLmrv9pufrjt05t','Bg9JywXLq29TCgfYzq','AwXYAhu','yw1HvMK','zgvMyxvSDa','vwrKBMq','q09mtevdveLptL9gsuXurvjt','BwLUAw1HBa','vgvTCgXHDguGDMfSAwrHDgLVBIbMywLSzwq6ievHy2GGC2vJDgLVBIbTDxn0igHHDMuGBMfTzsbHBMqGDhLWzq','u2vJDgLVBJO','ufLKBg4','y3jLyxrLugfNzuj1AwXKzxi','z2v0q29SBgvJDgLVBG','CMvUzgvYu2vJDgLVBLDYyxbWzxi','rxjYB3iGBg9HzgLUzYbTzxjJAgfUDcb0zw1WBgf0zsbMB3iG','BwvZC2fNzq','Ehnluhq','CMvUzgvYugfNzq','lcbMywXSAw5NigjHy2SGDg8GzgvMyxvSDa','rxjYB3iGzMv0y2HPBMCGzgf0ysbMB3iG','zM9YrwfJAa','DgHLBwvmB2fKzxiGAxmGCMvXDwLYzwq','DMfSAwrHDgvdB25MAwC','DgHLBwvmB2fKzxi','ChjLDMvUDerLzMf1Bhq','Bg9HzfrOzw1L','icHKyxrHu291CMnLs2v5oIa','z2v0tg9JywXL','q09ovevovf9trunusu9o','s0rtweO','tKHwtgy','CgfNzs1JB250ywLUzxi','DhjHBNnSyxrLugfNzunVBMzPzW','uKHmqNi','q09mtevdveLptLm','revgqvvmvf9wqvjjqu5ux0Le','C3r5BgvqCM9JzxnZB3i','vgvTCgXHDguGDMfYAwfUDcaI','CeTlyM4','C1jJvK8','z2v0uhjVzhvJDhncEuHHBMrSzxm','ugfNzsbJB25MAwCGBxvZDcbOyxzLigeGzgf0yvnVDxjJzxmGB2jQzwn0','Aw50zxjWB2XHDgu','ALHvExK','ugfNzsbJB25MAwCGBxvZDcbOyxzLigfUigLK','CMvUzgvYq2HYB21LihnSB3qGzMfPBgvK','y2XLyxi','qxzHAwXHyMXLihDPzgDLDhm6','vgvTCgXHDguGBMfTzsbPCYbYzxf1AxjLzcbPBIb0AguGCM91DguGy29UDgv4Da','CMvZB2X2zwrwyxjPyw50swq','uhLTzNi','AgfZ','y2XVBMvfBgvTzw50','v2LKz2v0uMvNAxn0CNK6ienHBM5VDcbYzwDPC3rLCIb3AwrNzxqGD2L0AcbLBxb0Esb0ExbL','CMvNAxn0zxi','u2vJDgLVBIaI','zhr5ugu','BgLZDfnLy3rPB25wyxjPyw50swrZ','lIbnywTLihn1CMuGDgHLihrLBxbSyxrLigv4Axn0CY4','BgvMDa','zMv0y2HbBgXeyxrH','C3bSAxq','DhjHBNnSyxrLuMf3','D2LKz2v0CW','yNvPBgrwyxjPyw50rNjVBvnLy3rPB24','CLfND2C','yM9YzgvYlwnVBg9YidaUmNm'];_0x3722=function(){return _0x25381b;};return _0x3722();}function Y(_0x31586c,_0x402719){const _0x59aea3=_0x10b02b,_0x25be74={'SDsNN':function(_0x5837cf,_0x21d746){return _0x5837cf===_0x21d746;},'EcGtd':function(_0x54b77b,_0x50d95f){return _0x54b77b(_0x50d95f);}};if(!_0x402719||_0x25be74[_0x59aea3(0x2a1)](_0x402719,u(_0x31586c)))return _0x31586c;let _0x291e2d=Array['isArray'](_0x31586c['variants'])?_0x31586c[_0x59aea3(0x2bb)][_0x59aea3(0x219)](_0x113850=>_0x113850&&_0x113850['variantId']===_0x402719):void 0x0;if(!_0x291e2d)return _0x31586c;let {variantId:_0xd97267,createdAt:_0x172dc8,createdBy:_0x36c54c,..._0x5d749a}=_0x291e2d,_0x3d560d={'variantId':_0x25be74[_0x59aea3(0x270)](u,_0x31586c),'name':_0x31586c['name'],'type':_0x31586c[_0x59aea3(0x25a)],'settings':_0x31586c[_0x59aea3(0x24a)],'widgets':_0x31586c['widgets'],'createdAt':_0x172dc8,'createdBy':_0x36c54c},_0x18dfe9=[...(Array[_0x59aea3(0x2b5)](_0x31586c['variants'])?_0x31586c[_0x59aea3(0x2bb)]:[])['filter'](_0x40c207=>_0x40c207&&_0x40c207['variantId']!==_0xd97267),_0x3d560d];return{..._0x31586c,..._0x5d749a,'liveVariantId':_0xd97267,'variants':_0x18dfe9};}function G(_0x3f5edc,_0x511920){const _0x5b857c=_0x10b02b,_0x1ecf5a={'sFsZG':function(_0x1d80c0,_0x307219){return _0x1d80c0(_0x307219);},'KQtmN':function(_0x453d4d,_0x3e56dd){return _0x453d4d(_0x3e56dd);}};let _0x1cc7c4=_0x511920?.[_0x3f5edc['id']];return _0x1cc7c4&&(_0x1cc7c4===_0x1ecf5a[_0x5b857c(0x2d0)](u,_0x3f5edc)||(_0x3f5edc[_0x5b857c(0x2bb)]??[])[_0x5b857c(0x2c1)](_0x53ddfe=>_0x53ddfe[_0x5b857c(0x22c)]===_0x1cc7c4))?_0x1cc7c4:_0x1ecf5a[_0x5b857c(0x2af)](u,_0x3f5edc);}function u(_0x2ebd0f){const _0x21df65=_0x10b02b;return _0x2ebd0f[_0x21df65(0x24f)]??h;}function C(_0x3e8d53){const _0x5957ff=_0x10b02b;let _0x49248c=new Set([u(_0x3e8d53)]);for(let _0x17c7c9 of _0x3e8d53[_0x5957ff(0x2bb)]??[])_0x49248c[_0x5957ff(0x20b)](_0x17c7c9[_0x5957ff(0x22c)]);return[..._0x49248c]['sort'](j);}function _(_0x52abe1){const _0x456692={'yBCBr':function(_0x1bbcee,_0x13313f){return _0x1bbcee(_0x13313f);}};return _0x456692['yBCBr'](C,_0x52abe1)['length'];}function K(_0x4f5d9c,_0x504e2f){const _0x462c42=_0x10b02b,_0x1f80a2={'ltntr':function(_0x4d17cb,_0x192a06){return _0x4d17cb(_0x192a06);}};return _0x1f80a2['ltntr'](C,_0x4f5d9c)[_0x462c42(0x257)](_0x504e2f);}function _0x4253(_0x466c9a,_0x1cc686){_0x466c9a=_0x466c9a-0x1c9;const _0x3722d0=_0x3722();let _0x42537a=_0x3722d0[_0x466c9a];if(_0x4253['abfZlu']===undefined){var _0x210cd9=function(_0x30b4d1){const _0x42ba09='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3d95d='',_0x2882c7='';for(let _0x5b0e5a=0x0,_0x41af91,_0x30a171,_0x1f6cbf=0x0;_0x30a171=_0x30b4d1['charAt'](_0x1f6cbf++);~_0x30a171&&(_0x41af91=_0x5b0e5a%0x4?_0x41af91*0x40+_0x30a171:_0x30a171,_0x5b0e5a++%0x4)?_0x3d95d+=String['fromCharCode'](0xff&_0x41af91>>(-0x2*_0x5b0e5a&0x6)):0x0){_0x30a171=_0x42ba09['indexOf'](_0x30a171);}for(let _0x9eefea=0x0,_0x4c9c60=_0x3d95d['length'];_0x9eefea<_0x4c9c60;_0x9eefea++){_0x2882c7+='%'+('00'+_0x3d95d['charCodeAt'](_0x9eefea)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2882c7);};_0x4253['vVAlLx']=_0x210cd9,_0x4253['TkNIfT']={},_0x4253['abfZlu']=!![];}const _0x51b371=_0x3722d0[0x0],_0x4e125c=_0x466c9a+_0x51b371,_0x253073=_0x4253['TkNIfT'][_0x4e125c];return!_0x253073?(_0x42537a=_0x4253['vVAlLx'](_0x42537a),_0x4253['TkNIfT'][_0x4e125c]=_0x42537a):_0x42537a=_0x253073,_0x42537a;}function Q(_0x266dbd){return _(_0x266dbd)>0x1;}var h='a',V=0x2,k=['a','b'];function j(_0x1bce13,_0x2737ca){const _0x49ba1f=_0x10b02b,_0x65ab22={'jQVtx':function(_0x113951,_0x142142){return _0x113951!==_0x142142;},'HNSap':function(_0x21b016,_0x1a751b){return _0x21b016-_0x1a751b;}};let _0x1b6e2=k[_0x49ba1f(0x2bd)](_0x1bce13),_0x52c4c7=k[_0x49ba1f(0x2bd)](_0x2737ca);return _0x65ab22[_0x49ba1f(0x2ce)](_0x1b6e2,-0x1)&&_0x65ab22[_0x49ba1f(0x2ce)](_0x52c4c7,-0x1)?_0x65ab22[_0x49ba1f(0x25d)](_0x1b6e2,_0x52c4c7):_0x1b6e2!==-0x1?-0x1:_0x52c4c7!==-0x1?0x1:_0x1bce13[_0x49ba1f(0x2e3)](_0x2737ca);}function X(_0x176c19){const _0x278030=_0x10b02b,_0x3fa66b={'izQij':function(_0x355b66,_0x406217){return _0x355b66===_0x406217;},'JFfJT':'Variant\x20A\x20(Default)'};return _0x3fa66b[_0x278030(0x22d)](_0x176c19,h)?_0x3fa66b[_0x278030(0x209)]:_0x278030(0x2e1)+_0x176c19[_0x278030(0x293)]();}function B(_0x55fe01){const _0xa4cfd7=_0x10b02b,_0x27fdfd={'CjXcZ':function(_0x3dbeca,_0x36d30c){return _0x3dbeca<_0x36d30c;}};return _0x27fdfd[_0xa4cfd7(0x2d8)](_(_0x55fe01),V);}function z(_0x5c88e1){const _0x536e4e=_0x10b02b,_0x245439={'qTjgb':function(_0x4a7626,_0x474ac0){return _0x4a7626(_0x474ac0);},'fDFMs':function(_0x51303a,_0x1b3a66){return _0x51303a<_0x1b3a66;}};if(!_0x245439[_0x536e4e(0x28c)](B,_0x5c88e1))return null;let _0x467a3f=new Set(_0x245439[_0x536e4e(0x28c)](C,_0x5c88e1)),_0x150d63=h['charCodeAt'](0x0);for(let _0x49e460=0x0;_0x245439[_0x536e4e(0x210)](_0x49e460,V);_0x49e460+=0x1){let _0x546101=String['fromCharCode'](_0x150d63+_0x49e460);if(!_0x467a3f[_0x536e4e(0x1ed)](_0x546101))return _0x546101;}return null;}function J(_0x274664,_0x41537c,_0x328b2b,_0x41ee02=()=>new Date()['toISOString']()){const _0xe2ff77=_0x10b02b,_0x25398a={'EkGgp':function(_0x3308da,_0x19d842){return _0x3308da(_0x19d842);}};return{'variantId':_0x41537c,'name':_0x274664[_0xe2ff77(0x2ad)],'type':_0x274664[_0xe2ff77(0x25a)],'settings':structuredClone(_0x274664[_0xe2ff77(0x24a)]??{}),'widgets':_0x25398a[_0xe2ff77(0x20c)](structuredClone,_0x274664[_0xe2ff77(0x1f9)]??[])[_0xe2ff77(0x2d9)](_0x274a5f=>({..._0x274a5f,'id':_0x328b2b(_0x274a5f['id'])})),'createdAt':_0x41ee02()};}var l={'PRODUCT':'PRODUCT','PRODUCTS':_0x10b02b(0x2bf),'PRODUCTS_BY_HANDLES':'PRODUCTS_BY_HANDLES','COLLECTION':_0x10b02b(0x23e),'COLLECTIONS':'COLLECTIONS','COLLECTION_BY_HANDLES':_0x10b02b(0x22b),'COLLECTION_FILTERS':_0x10b02b(0x2e8),'STATIC':_0x10b02b(0x23a),'FETCH_REQUEST':_0x10b02b(0x20d),'GRAPHQL_REQUEST':_0x10b02b(0x26e)},T=class{constructor(_0x5e107e){const _0x4b95be=_0x10b02b;this[_0x4b95be(0x2bc)]=_0x5e107e;}async[_0x10b02b(0x208)](_0xc9119a){const _0x302297=_0x10b02b;let {merchantName:_0x16e5eb,pageConfig:_0xdb8d62,routeContext:_0x479350}=_0xc9119a,_0x14e498={'merchantName':_0x16e5eb},_0x2d6a5b=this['collectRequirements'](_0xdb8d62,_0x479350),_0x48d0e6=await this[_0x302297(0x1f6)](_0x2d6a5b);return{..._0x14e498,..._0x48d0e6};}[_0x10b02b(0x28e)](_0x428e40,_0x4abca5){const _0x31554f=_0x10b02b,_0xdb6c54={'RHLBr':function(_0x115155,_0x51ffb1){return _0x115155!=_0x51ffb1;},'zAnxo':_0x31554f(0x254),'pKKbn':function(_0xd9b7a7,_0x328304){return _0xd9b7a7(_0x328304);}};let _0x56e557=[],_0x38fe2b=new Set(),_0x364cb9=new Set(),_0x3d4d63=_0x20735e=>Array[_0x31554f(0x2b5)](_0x20735e)?_0x20735e:[];for(let _0x7d2960 of _0x3d4d63(_0x428e40['sections']))if(!(!_0x7d2960||_0xdb6c54[_0x31554f(0x1db)](typeof _0x7d2960,_0xdb6c54[_0x31554f(0x2b8)]))){for(let _0x34d123 of _0x3d4d63(_0x7d2960[_0x31554f(0x1f9)]))_0x34d123?.[_0x31554f(0x26f)]&&_0x38fe2b['add'](_0x34d123[_0x31554f(0x26f)]);for(let _0x1fa6f2 of _0xdb6c54[_0x31554f(0x1e0)](_0x3d4d63,_0x7d2960[_0x31554f(0x2bb)]))for(let _0x5836f7 of _0x3d4d63(_0x1fa6f2?.[_0x31554f(0x1f9)]))_0x5836f7?.[_0x31554f(0x26f)]&&_0x364cb9[_0x31554f(0x20b)](_0x5836f7['dataSourceKey']);}if(_0x428e40[_0x31554f(0x25f)]){for(let [_0x3913e6,_0x72a831]of Object[_0x31554f(0x2be)](_0x428e40[_0x31554f(0x25f)]))_0x364cb9['has'](_0x3913e6)&&!_0x38fe2b['has'](_0x3913e6)||_0x56e557[_0x31554f(0x2cb)]({'type':_0x72a831['type'],'params':{..._0x72a831['params'],..._0x4abca5['params']},'required':_0x72a831[_0x31554f(0x1fe)]||![],'sourceId':_0x3913e6,'options':_0x72a831['options']});}return _0x56e557;}async['fetchAllData'](_0x5ee629){const _0x2c6111=_0x10b02b;let _0x18a5a4={};return await Promise[_0x2c6111(0x24e)](_0x5ee629['map'](async _0x43c670=>{const _0x4e2b6d=_0x2c6111;try{let _0x24f2ad=await this[_0x4e2b6d(0x216)](_0x43c670);_0x18a5a4[_0x43c670[_0x4e2b6d(0x27b)]]=_0x24f2ad;}catch(_0x5a3d8e){if(console[_0x4e2b6d(0x2d4)](_0x4e2b6d(0x1cd)+_0x43c670['sourceId']+':',_0x5a3d8e),_0x43c670['required'])throw _0x5a3d8e;_0x18a5a4[_0x43c670[_0x4e2b6d(0x27b)]]=null;}})),_0x18a5a4;}async['fetchSingleRequirement'](_0x442c45){const _0x5b1b2e=_0x10b02b;let {type:_0x51bec3,params:_0x58b7cf,options:_0x62bd9f}=_0x442c45;switch(_0x51bec3){case l[_0x5b1b2e(0x23a)]:return _0x58b7cf;case l[_0x5b1b2e(0x27d)]:return this['commerceClient'][_0x5b1b2e(0x2c9)](_0x58b7cf,_0x62bd9f);case l['PRODUCTS']:return this['commerceClient'][_0x5b1b2e(0x24d)](_0x58b7cf,_0x62bd9f);case l['PRODUCTS_BY_HANDLES']:return this[_0x5b1b2e(0x2bc)][_0x5b1b2e(0x1e2)](_0x58b7cf,_0x62bd9f);case l[_0x5b1b2e(0x23e)]:return this['commerceClient'][_0x5b1b2e(0x2ee)](_0x58b7cf,_0x62bd9f);case l[_0x5b1b2e(0x1dc)]:return this[_0x5b1b2e(0x2bc)][_0x5b1b2e(0x21d)](_0x58b7cf,_0x62bd9f);case l[_0x5b1b2e(0x22b)]:return this[_0x5b1b2e(0x2bc)][_0x5b1b2e(0x288)](_0x58b7cf,_0x62bd9f);case l[_0x5b1b2e(0x2e8)]:return this[_0x5b1b2e(0x2bc)][_0x5b1b2e(0x236)](_0x58b7cf,_0x62bd9f);case l[_0x5b1b2e(0x20d)]:return this[_0x5b1b2e(0x2bc)]['fetchRequest'](_0x58b7cf);case l[_0x5b1b2e(0x26e)]:return this[_0x5b1b2e(0x2bc)]['graphqlRequest'](_0x58b7cf);default:return console[_0x5b1b2e(0x2b2)](_0x5b1b2e(0x2d6)+_0x51bec3),null;}}},I=class{constructor(_0xedadf1){const _0x3b50ff=_0x10b02b;this[_0x3b50ff(0x2ac)]=_0xedadf1;}[_0x10b02b(0x298)]({pageConfig:_0x229903,pageData:_0x8ab459,routeContext:_0x51e00b,translationService:_0x9d9532}){const _0x41db25=_0x10b02b;let _0x36d209={};for(let _0x2fb13d of _0x229903[_0x41db25(0x21c)]){if(!_0x2fb13d[_0x41db25(0x1f9)]?.['length']){console['warn'](_0x41db25(0x29d)+_0x2fb13d['id']+_0x41db25(0x2d5));continue;}for(let _0x2d5366 of _0x2fb13d[_0x41db25(0x1f9)]){let _0x2c346c=this[_0x41db25(0x2a7)](_0x2d5366,_0x229903,_0x8ab459,_0x51e00b,_0x9d9532);_0x2c346c&&(_0x36d209[_0x2d5366['id']]=_0x2c346c);}}return _0x36d209;}[_0x10b02b(0x2a7)](_0x4e916a,_0x26e68a,_0x372436,_0x2d1e4d,_0x203306){const _0x584302=_0x10b02b;try{let _0x524ba6=this[_0x584302(0x2ac)][_0x584302(0x2a0)](_0x4e916a['type']);if(!_0x524ba6)return console[_0x584302(0x2d4)](_0x584302(0x25b)+_0x4e916a['type']),console[_0x584302(0x2d4)](_0x584302(0x1e9),this[_0x584302(0x2ac)][_0x584302(0x220)]()),null;let _0xaef11e=this[_0x584302(0x2ba)](_0x4e916a,_0x26e68a,_0x372436);if(_0xaef11e===null)return null;let _0xfdab18={'key':_0x4e916a['id'],'id':_0x4e916a['id'],'data':_0xaef11e,'settings':_0x4e916a['settings'],'routeContext':_0x2d1e4d};return _0x203306&&(_0xfdab18['locale']=_0x203306[_0x584302(0x1d5)]()),Z__default[_0x584302(0x2e6)][_0x584302(0x249)](_0x524ba6,_0xfdab18);}catch(_0x59e15f){return console[_0x584302(0x2d4)](_0x584302(0x297)+_0x4e916a['id'],_0x59e15f),null;}}[_0x10b02b(0x2ba)](_0x496dc6,_0x48e10e,_0x3191f1){const _0x353a03=_0x10b02b,_0x71201={'BiMRf':function(_0x52ce32,_0x27ddf6){return _0x52ce32||_0x27ddf6;}};if(!_0x496dc6[_0x353a03(0x26f)])return{};let _0x3de9de=_0x496dc6[_0x353a03(0x26f)],_0xc788b6=_0x3191f1[_0x3de9de];return(_0x48e10e[_0x353a03(0x25f)]?.[_0x3de9de]?.[_0x353a03(0x1fe)]||![])&&!_0xc788b6?(console[_0x353a03(0x2d4)]('Required\x20data\x20not\x20available\x20for\x20widget:\x20'+_0x496dc6['id']+_0x353a03(0x1d4)+_0x3de9de+')'),null):_0x71201[_0x353a03(0x258)](_0xc788b6,{});}},v=class{constructor(_0x4db9ef){const _0x18bd6c=_0x10b02b;this[_0x18bd6c(0x2ef)]=_0x4db9ef;}[_0x10b02b(0x251)]({pageConfig:_0x1b7003,widgets:_0xbb061e,styles:_0x9efe00,routeContext:_0x5eb96a,isEditing:_0x1e0224=![],onSelectSection:_0x4c3337,onSelectWidget:_0x5664f3}){const _0x27eedc=_0x10b02b,_0x4d1ae0={'rhexE':_0x27eedc(0x2cf),'cHlAm':_0x27eedc(0x1d9)};return jsxRuntime[_0x27eedc(0x265)](_0x4d1ae0[_0x27eedc(0x230)],{'className':_0x4d1ae0['cHlAm'],'children':_0x1b7003[_0x27eedc(0x21c)]['map'](_0x4375bd=>jsxRuntime[_0x27eedc(0x265)](Z['Suspense'],{'fallback':null,'children':this['renderSection'](_0x4375bd,_0xbb061e,_0x9efe00,_0x1e0224,_0x4c3337,_0x5664f3)},_0x4375bd['id']))});}['renderSection'](_0x26c478,_0x1874d5,_0x561b45,_0x25da00=![],_0x969dc2,_0x362d7d){const _0x31ced8=_0x10b02b,_0x3e223c={'jTePq':_0x31ced8(0x2cf),'DqEEP':'absolute\x20inset-0\x20pointer-events-auto\x20rounded\x20cursor-pointer','EZEhL':_0x31ced8(0x244),'roaDK':'relative','OrAQE':_0x31ced8(0x28d)};let _0x425ee7=_0x26c478[_0x31ced8(0x1f9)][_0x31ced8(0x2d9)](_0x25254d=>{const _0x495848=_0x31ced8,_0x2e0dd4={'DNTRI':function(_0x2251f5,_0x544748,_0x302099){return _0x2251f5(_0x544748,_0x302099);}};let _0x3f8d61=_0x1874d5[_0x25254d['id']];if(!_0x3f8d61)return null;let _0x116780=Z__default['default'][_0x495848(0x1ee)](_0x3f8d61,{'key':_0x25254d['id'],..._0x25254d[_0x495848(0x2c0)]&&{'responsive':_0x25254d[_0x495848(0x2c0)]}});return _0x25da00?jsxRuntime[_0x495848(0x247)](_0x3e223c[_0x495848(0x24b)],{'className':_0x495848(0x23b),'style':{'overflow':'visible'},'children':[jsxRuntime[_0x495848(0x265)](_0x495848(0x2cf),{'className':_0x3e223c[_0x495848(0x245)],'data-widget-id':_0x25254d['id'],'style':{'zIndex':0x2710,'border':_0x495848(0x23c),'transition':_0x495848(0x1fc),'borderRadius':_0x3e223c['EZEhL']},'onClick':_0x4ee089=>{const _0x519c51=_0x495848;_0x4ee089[_0x519c51(0x1d2)](),_0x4ee089[_0x519c51(0x2c6)](),_0x362d7d&&_0x2e0dd4[_0x519c51(0x274)](_0x362d7d,_0x26c478['id'],_0x25254d['id']);},'onMouseEnter':_0x4ed509=>{const _0x50f2ca=_0x495848;_0x4ed509['currentTarget'][_0x50f2ca(0x2a6)][_0x50f2ca(0x27f)]='#EF4444';},'onMouseLeave':_0xa49525=>{const _0xf1aeaa=_0x495848;_0xa49525[_0xf1aeaa(0x262)][_0xf1aeaa(0x2a6)][_0xf1aeaa(0x27f)]='transparent';}}),_0x116780]},_0x25254d['id']):_0x116780;})[_0x31ced8(0x29a)](Boolean),_0x4f0de2=this['renderSectionWrapper'](_0x26c478,_0x425ee7,_0x561b45);return _0x25da00?jsxRuntime[_0x31ced8(0x247)](_0x3e223c[_0x31ced8(0x24b)],{'className':_0x3e223c[_0x31ced8(0x235)],'style':{'overflow':'visible'},'children':[jsxRuntime[_0x31ced8(0x265)](_0x31ced8(0x2cf),{'className':_0x3e223c[_0x31ced8(0x23d)],'data-section-id':_0x26c478['id']}),_0x4f0de2]},_0x26c478['id']):_0x4f0de2;}},x=class{constructor(_0x5f248b){const _0x295915=_0x10b02b;this[_0x295915(0x1d1)]=_0x5f248b;}async[_0x10b02b(0x214)]({merchantName:_0x185a7d,pageConfig:_0x174b15}){const _0x4d5ed5=_0x10b02b;try{return{...(await this['themeLoader'][_0x4d5ed5(0x1d3)](_0x185a7d))[_0x4d5ed5(0x29c)],..._0x174b15[_0x4d5ed5(0x2a9)]};}catch(_0x2794f1){throw console[_0x4d5ed5(0x2d4)](_0x4d5ed5(0x264)+_0x185a7d+':',_0x2794f1),new Error(_0x4d5ed5(0x239)+_0x185a7d+':\x20'+(_0x2794f1 instanceof Error?_0x2794f1[_0x4d5ed5(0x1c9)]:_0x4d5ed5(0x2b0)));}}},E=new Map(),L=class{constructor(_0x326a42){const _0x7dfb5a=_0x10b02b;this[_0x7dfb5a(0x243)]=_0x326a42;}async[_0x10b02b(0x260)]({merchantName:_0x4f0c68,routeContext:_0x1eeb52,variant:_0x101b58}){const _0x1ee328=_0x10b02b,_0x20fe30={'wUkYG':'Merchant\x20name\x20is\x20required','lQLNe':function(_0x4e490a,_0x13a355){return _0x4e490a||_0x13a355;}};if(!_0x4f0c68)throw new Error(_0x20fe30['wUkYG']);let {templateName:_0x5b517e,apiData:_0x275e3b,templateSuffix:_0x4b9428}=_0x20fe30[_0x1ee328(0x27c)](_0x1eeb52,{});if(!_0x5b517e)throw new Error(_0x1ee328(0x1ea));let _0xc8f1d5=_0x20fe30[_0x1ee328(0x27c)](_0x101b58,_0x4b9428)||(_0x275e3b?await this[_0x1ee328(0x259)](_0x4f0c68,_0x5b517e,_0x275e3b):_0x1ee328(0x2e6)),_0x59c21f=_0x4f0c68+'-'+_0x5b517e+'-'+_0xc8f1d5;if(E[_0x1ee328(0x1ed)](_0x59c21f))return E['get'](_0x59c21f);let _0x4d7629;try{_0x4d7629=await this[_0x1ee328(0x233)](_0x4f0c68,_0x5b517e,_0xc8f1d5),this[_0x1ee328(0x2ae)](_0x4d7629)&&E[_0x1ee328(0x295)](_0x59c21f,_0x4d7629);}catch(_0xe63527){throw console[_0x1ee328(0x2d4)](_0x1ee328(0x2f0)+_0x4f0c68+'/'+_0x5b517e+':',_0xe63527),new Error('Unable\x20to\x20load\x20template\x20for\x20'+_0x4f0c68+'/'+_0x5b517e+_0x1ee328(0x1f4));}if(!this[_0x1ee328(0x2ae)](_0x4d7629))throw new Error(_0x1ee328(0x279)+_0x4f0c68+'/'+_0x5b517e);return _0x4d7629;}async[_0x10b02b(0x233)](_0x573b20,_0x232063,_0x4737d7=_0x10b02b(0x2e6)){const _0xc765ce=_0x10b02b;try{let _0x40b4f6=await this['templateLoader']['loadTemplate'](_0x573b20,_0x232063,_0x4737d7);if(!_0x40b4f6)throw new Error('Template\x20not\x20returned\x20for\x20'+_0x573b20+'/'+_0x232063+'/'+_0x4737d7);return _0x40b4f6;}catch(_0x4509de){if(_0x4737d7!==_0xc765ce(0x2e6))return console[_0xc765ce(0x2b2)](_0xc765ce(0x1df)+_0x4737d7+_0xc765ce(0x2b9)+_0x573b20+'/'+_0x232063+_0xc765ce(0x1cc)),this[_0xc765ce(0x233)](_0x573b20,_0x232063,'default');throw console[_0xc765ce(0x2d4)]('Error\x20loading\x20template\x20'+_0x573b20+'/'+_0x232063+'/'+_0x4737d7+':',_0x4509de),_0x4509de;}}[_0x10b02b(0x2ae)](_0x5db148){const _0xabb4fd=_0x10b02b,_0x271f4e={'kPrBs':_0xabb4fd(0x2b6),'KDSXJ':_0xabb4fd(0x275),'PYdln':_0xabb4fd(0x2ea),'yufAi':_0xabb4fd(0x2c7),'Pymfr':_0xabb4fd(0x2eb),'UrCxu':_0xabb4fd(0x201)};if(!_0x5db148['id']||!_0x5db148[_0xabb4fd(0x21c)])return console[_0xabb4fd(0x2d4)](_0x271f4e[_0xabb4fd(0x223)]),![];if(!Array[_0xabb4fd(0x2b5)](_0x5db148[_0xabb4fd(0x21c)])||_0x5db148['sections'][_0xabb4fd(0x226)]===0x0)return console[_0xabb4fd(0x2d4)](_0x271f4e[_0xabb4fd(0x1d7)]),![];for(let _0x3a6006 of _0x5db148[_0xabb4fd(0x21c)]){if(!_0x3a6006['id']||!_0x3a6006[_0xabb4fd(0x1f9)]||!Array[_0xabb4fd(0x2b5)](_0x3a6006[_0xabb4fd(0x1f9)]))return console[_0xabb4fd(0x2d4)](_0xabb4fd(0x29b)),console['error'](_0xabb4fd(0x2e0),{'id':_0x3a6006['id'],'hasWidgets':!!_0x3a6006[_0xabb4fd(0x1f9)],'isArray':Array[_0xabb4fd(0x2b5)](_0x3a6006[_0xabb4fd(0x1f9)])}),![];if(!_0x3a6006[_0xabb4fd(0x2ad)]||!_0x3a6006[_0xabb4fd(0x25a)])return console[_0xabb4fd(0x2d4)](_0x271f4e[_0xabb4fd(0x2ec)]),console[_0xabb4fd(0x2d4)](_0xabb4fd(0x2eb),{'id':_0x3a6006['id'],'name':_0x3a6006[_0xabb4fd(0x2ad)],'type':_0x3a6006['type']}),![];if(!_0x3a6006[_0xabb4fd(0x24a)])return console[_0xabb4fd(0x2d4)](_0x271f4e[_0xabb4fd(0x287)]),console[_0xabb4fd(0x2d4)](_0x271f4e[_0xabb4fd(0x1ec)],{'id':_0x3a6006['id'],'hasSettings':!!_0x3a6006['settings']}),![];for(let _0x581852 of _0x3a6006[_0xabb4fd(0x1f9)]){if(!_0x581852['id']||!_0x581852['type']||!_0x581852[_0xabb4fd(0x2ad)])return console['error'](_0xabb4fd(0x2a8)),console[_0xabb4fd(0x2d4)](_0xabb4fd(0x281),{'id':_0x581852['id'],'type':_0x581852[_0xabb4fd(0x25a)],'name':_0x581852[_0xabb4fd(0x2ad)]}),![];if(!_0x581852[_0xabb4fd(0x24a)])return console[_0xabb4fd(0x2d4)](_0x271f4e['UrCxu']),console['error'](_0xabb4fd(0x281),{'id':_0x581852['id'],'hasSettings':!!_0x581852[_0xabb4fd(0x24a)]}),![];}}return!![];}[_0x10b02b(0x217)](){const _0x3f21a1=_0x10b02b;E[_0x3f21a1(0x1e8)]();}async[_0x10b02b(0x259)](_0x470688,_0x34e802,_0x268886){const _0x596938=_0x10b02b,_0x5b48cc={'tRqGm':'default'};try{if(!this[_0x596938(0x243)]['loadVariantRegistry'])return'default';let _0x4bc9af=await this[_0x596938(0x243)]['loadVariantRegistry'](_0x470688);if(!_0x4bc9af||!_0x4bc9af['variantRegistry'])return'default';let _0x95141e=_0x4bc9af[_0x596938(0x238)][_0x34e802];if(!_0x95141e)return _0x5b48cc[_0x596938(0x2c3)];let {apiField:_0x1b679e,variantMap:_0x28bf0b,defaultVariant:_0x3252fd}=_0x95141e,_0x194a55=this['getNestedValue'](_0x268886,_0x1b679e);return _0x194a55&&_0x28bf0b&&_0x28bf0b[_0x194a55]?_0x28bf0b[_0x194a55]:_0x3252fd||_0x5b48cc[_0x596938(0x2c3)];}catch(_0x4f4d05){return console[_0x596938(0x2b2)](_0x596938(0x280)+_0x34e802+':',_0x4f4d05),'default';}}[_0x10b02b(0x232)](_0x511ad4,_0x47e2eb){const _0x31242b=_0x10b02b;return _0x47e2eb[_0x31242b(0x1f7)]('.')[_0x31242b(0x285)]((_0x2e97f7,_0x37541e)=>_0x2e97f7&&_0x2e97f7[_0x37541e]!==void 0x0?_0x2e97f7[_0x37541e]:void 0x0,_0x511ad4);}};function ne(_0xb9be56,_0x2e665f=_0x10b02b(0x22a)){const _0x4c2ca5=_0x10b02b;let _0x2865ae=_0xb9be56[_0x4c2ca5(0x24a)][_0x4c2ca5(0x2c0)]?.[_0x2e665f]||{'padding':_0xb9be56[_0x4c2ca5(0x24a)]['padding']||{'top':0x0,'right':0x0,'bottom':0x0,'left':0x0},'margin':_0xb9be56[_0x4c2ca5(0x24a)][_0x4c2ca5(0x250)]},_0x3e268b=_0x2865ae[_0x4c2ca5(0x2a4)]?_0x2865ae[_0x4c2ca5(0x2a4)][_0x4c2ca5(0x2d1)]+_0x4c2ca5(0x29e)+_0x2865ae[_0x4c2ca5(0x2a4)][_0x4c2ca5(0x284)]+_0x4c2ca5(0x29e)+_0x2865ae[_0x4c2ca5(0x2a4)][_0x4c2ca5(0x2c5)]+_0x4c2ca5(0x29e)+_0x2865ae[_0x4c2ca5(0x2a4)][_0x4c2ca5(0x1f5)]+'px':'0',_0x3c65aa=_0x2865ae[_0x4c2ca5(0x250)]?_0x2865ae['margin']['top']+_0x4c2ca5(0x29e)+_0x2865ae[_0x4c2ca5(0x250)][_0x4c2ca5(0x284)]+_0x4c2ca5(0x29e)+_0x2865ae[_0x4c2ca5(0x250)][_0x4c2ca5(0x2c5)]+_0x4c2ca5(0x29e)+_0x2865ae[_0x4c2ca5(0x250)][_0x4c2ca5(0x1f5)]+'px':void 0x0;return{'padding':_0x3e268b,'margin':_0x3c65aa};}function y(_0x5767c6,_0x2e9fd8,_0x404b57){const _0x1833ce=_0x10b02b,_0x55747c={'rQgwg':_0x1833ce(0x206),'xsKPt':function(_0x43b0d9,_0x42d798){return _0x43b0d9===_0x42d798;},'GRPHG':'page','EcAgZ':_0x1833ce(0x2a5)};let {styles:_0x46a881,breakpoint:_0x3928af=_0x1833ce(0x22a)}=_0x404b57,{layout:_0x59fe9b}=_0x5767c6[_0x1833ce(0x24a)],_0x39b2b6=ne(_0x5767c6,_0x3928af),_0x37149b={'width':_0x55747c[_0x1833ce(0x1fb)],'padding':_0x39b2b6[_0x1833ce(0x2a4)],..._0x39b2b6[_0x1833ce(0x250)]&&{'margin':_0x39b2b6[_0x1833ce(0x250)]},..._0x55747c[_0x1833ce(0x1ca)](_0x59fe9b,_0x55747c['GRPHG'])&&{'maxWidth':_0x46a881?.['spacing']?.['container']||_0x1833ce(0x20e),'marginLeft':_0x55747c['EcAgZ'],'marginRight':_0x55747c[_0x1833ce(0x267)]}};return Z__default[_0x1833ce(0x2e6)][_0x1833ce(0x249)](_0x1833ce(0x1fd),{'key':_0x5767c6['id'],'data-section-id':_0x5767c6['id'],'data-section-type':_0x5767c6['type'],'data-breakpoint':_0x3928af,'style':_0x37149b},_0x2e9fd8);}function ie(){return y;}function ae(_0x13977a,_0x41e7d7){const _0x392019=_0x10b02b,_0x2d82f1={'Rtrts':function(_0x51ae09,_0x489153){return _0x51ae09==_0x489153;}};if(_0x13977a){for(let _0x7b3ed9 of _0x13977a[_0x392019(0x21c)]??[])for(let _0x1fbca1 of _0x7b3ed9[_0x392019(0x1f9)]??[]){let _0x2f96b6=_0x1fbca1[_0x392019(0x24a)]?.['menuHandle'];_0x2d82f1[_0x392019(0x221)](typeof _0x2f96b6,'string')&&_0x2f96b6['length']>0x0&&_0x41e7d7[_0x392019(0x20b)](_0x2f96b6);}}}var O=class{constructor(_0x121c7d){const _0x2e02a3=_0x10b02b;let {commerceClient:_0x1b29f5,themeLoader:_0x603ed9,templateLoader:_0xe6b7db,widgetRegistry:_0x1e051,sectionRenderer:_0x4a2778,defaultLocale:_0x1ab836='en'}=_0x121c7d;this[_0x2e02a3(0x253)]=new L(_0xe6b7db),this[_0x2e02a3(0x26a)]=new T(_0x1b29f5),this[_0x2e02a3(0x28a)]=new I(_0x1e051),this[_0x2e02a3(0x1de)]=new x(_0x603ed9),this[_0x2e02a3(0x2b4)]=_0x4a2778||y,this[_0x2e02a3(0x2c4)]=_0x1ab836;}[_0x10b02b(0x240)](_0x167c5a){const _0x49ec5f=_0x10b02b;let _0x52ead0=this[_0x49ec5f(0x2b4)],_0x501886=(_0x1d7525,_0x2e44a4,_0x32f101)=>_0x52ead0(_0x1d7525,_0x2e44a4,{'styles':_0x32f101,'routeContext':_0x167c5a,'breakpoint':_0x49ec5f(0x22a)});return new v(_0x501886);}async['renderPage']({merchantName:_0x3ff265,pageConfig:_0x161e27,routeContext:_0x2aabb1,locale:_0x6e3dc,messages:_0x598e38}){const _0x1ae276=_0x10b02b,_0x27439f={'NOkml':function(_0x1767a7,_0x2aa3f5){return _0x1767a7||_0x2aa3f5;},'uxZFg':function(_0xd12407,_0x5d15dd,_0x3141a8){return _0xd12407(_0x5d15dd,_0x3141a8);}};let _0x2324aa=_0x6e3dc||this[_0x1ae276(0x2c4)],_0x587af9=new R(_0x2324aa,_0x27439f[_0x1ae276(0x2db)](_0x598e38,{})),_0x3245a2=_0x161e27||await this[_0x1ae276(0x253)]['resolveTemplate']({'merchantName':_0x3ff265,'routeContext':_0x2aabb1}),_0x5e51d3=_0x27439f[_0x1ae276(0x282)](b,_0x3245a2,_0x2aabb1?.[_0x1ae276(0x27e)]),_0x2d3330=this[_0x1ae276(0x1da)](_0x5e51d3,_0x587af9),_0x47864d=await this['dataFetcher'][_0x1ae276(0x208)]({'merchantName':_0x3ff265,'pageConfig':_0x2d3330,'routeContext':_0x2aabb1}),_0x89df77=await this['styleProcessor']['processStyles']({'merchantName':_0x3ff265,'pageConfig':_0x2d3330}),_0x2b6c54=this[_0x1ae276(0x28a)][_0x1ae276(0x298)]({'pageConfig':_0x2d3330,'pageData':_0x47864d,'routeContext':_0x2aabb1,'translationService':_0x587af9});return this[_0x1ae276(0x240)](_0x2aabb1)[_0x1ae276(0x251)]({'pageConfig':_0x2d3330,'widgets':_0x2b6c54,'styles':_0x89df77,'routeContext':_0x2aabb1});}async[_0x10b02b(0x202)]({merchantName:_0x303e10,locale:_0x5e3ef0,messages:_0x470e64,headerConfig:_0x518afc,footerConfig:_0x56ea22,headerTemplateName:_0x42e380='header',footerTemplateName:_0x7ce585=_0x10b02b(0x21e)}){const _0x1def5a=_0x10b02b,_0x2810eb={'sRcVO':_0x1def5a(0x2d4),'Uddnd':_0x1def5a(0x1e7),'SfVEi':function(_0x5b779e,_0x421df9){return _0x5b779e instanceof _0x421df9;},'IYNYK':function(_0x40e5d1,_0x36b7e4,_0x461e76){return _0x40e5d1(_0x36b7e4,_0x461e76);}};let _0x17fa42=new Set(),_0x1b21af=async(_0xdf9bcf,_0x592d58)=>{const _0x524aaf=_0x1def5a;try{let _0x897807={'templateName':_0xdf9bcf,'path':'/','params':{},'query':{},'fetchAPITemplate':!0x0},_0x755a96=_0x592d58??await this['templateResolver'][_0x524aaf(0x260)]({'merchantName':_0x303e10,'routeContext':_0x897807});return ae(_0x755a96,_0x17fa42),await this[_0x524aaf(0x1cb)]({'merchantName':_0x303e10,'pageConfig':_0x755a96,'routeContext':_0x897807,'locale':_0x5e3ef0,'messages':_0x470e64});}catch(_0x311dba){return console['error'](JSON[_0x524aaf(0x25c)]({'level':_0x2810eb[_0x524aaf(0x1e1)],'service':_0x524aaf(0x207),'message':_0x2810eb[_0x524aaf(0x2e7)],'slot':_0xdf9bcf,'merchantName':_0x303e10,'error':_0x2810eb[_0x524aaf(0x291)](_0x311dba,Error)?_0x311dba[_0x524aaf(0x1c9)]:String(_0x311dba)})),null;}},[_0x24024a,_0x4ce567]=await Promise['all']([_0x2810eb[_0x1def5a(0x256)](_0x1b21af,_0x42e380,_0x518afc),_0x1b21af(_0x7ce585,_0x56ea22)]);return{'header':_0x24024a,'footer':_0x4ce567,'menuHandles':[..._0x17fa42]};}[_0x10b02b(0x217)](){const _0x36e16a=_0x10b02b;this[_0x36e16a(0x253)][_0x36e16a(0x217)]();}[_0x10b02b(0x1d0)](_0x33ba88){const _0x46d6d9=_0x10b02b,_0x445fac={'nesLZ':_0x46d6d9(0x2b3),'dtyPe':_0x46d6d9(0x254),'DzIQK':function(_0x33b7f1,_0x3da172){return _0x33b7f1===_0x3da172;}};let _0x838891=[];return _0x33ba88['id']||_0x838891[_0x46d6d9(0x2cb)](_0x46d6d9(0x1e6)),(!_0x33ba88['sections']||!Array['isArray'](_0x33ba88['sections']))&&_0x838891['push'](_0x445fac[_0x46d6d9(0x28b)]),(!_0x33ba88[_0x46d6d9(0x25f)]||typeof _0x33ba88[_0x46d6d9(0x25f)]!=_0x445fac[_0x46d6d9(0x1f2)])&&_0x838891['push'](_0x46d6d9(0x1e3)),_0x33ba88[_0x46d6d9(0x21c)]?.[_0x46d6d9(0x1ce)]((_0x1fd13a,_0x4ff8fe)=>{const _0xe4e0e=_0x46d6d9;_0x1fd13a['id']||_0x838891[_0xe4e0e(0x2cb)](_0xe4e0e(0x28f)+_0x4ff8fe+_0xe4e0e(0x237)),(!_0x1fd13a[_0xe4e0e(0x1f9)]||!Array[_0xe4e0e(0x2b5)](_0x1fd13a['widgets']))&&_0x838891['push'](_0xe4e0e(0x1f1)+_0x1fd13a['id']+_0xe4e0e(0x2d7)),_0x1fd13a[_0xe4e0e(0x1f9)]?.[_0xe4e0e(0x1ce)]((_0x30143e,_0x2864bb)=>{const _0x4aa781=_0xe4e0e;_0x30143e['id']||_0x838891[_0x4aa781(0x2cb)](_0x4aa781(0x20a)+_0x1fd13a['id']+_0x4aa781(0x248)+_0x2864bb+_0x4aa781(0x237)),_0x30143e[_0x4aa781(0x25a)]||_0x838891[_0x4aa781(0x2cb)]('Widget\x20\x22'+_0x30143e['id']+_0x4aa781(0x21b));});}),{'valid':_0x445fac[_0x46d6d9(0x228)](_0x838891[_0x46d6d9(0x226)],0x0),'errors':_0x838891};}[_0x10b02b(0x1da)](_0x2b3729,_0x133c48){const _0x4f5381=_0x10b02b;return{..._0x2b3729,'sections':_0x2b3729[_0x4f5381(0x21c)][_0x4f5381(0x2d9)](_0x5a1000=>({..._0x5a1000,'widgets':_0x5a1000[_0x4f5381(0x1f9)]['map'](_0x8ace4=>({..._0x8ace4,'settings':_0x133c48['translateObject'](_0x8ace4[_0x4f5381(0x24a)]||{})}))}))};}};function D(_0x325e8e){const _0x16f1dd=_0x10b02b,_0x5234b1={'gapBt':'commerceClient\x20is\x20required','jXUyy':_0x16f1dd(0x200),'uQfcY':'widgetRegistry\x20is\x20required'};if(!_0x325e8e[_0x16f1dd(0x2bc)])throw new Error(_0x5234b1[_0x16f1dd(0x231)]);if(!_0x325e8e[_0x16f1dd(0x1d1)])throw new Error(_0x16f1dd(0x1cf));if(!_0x325e8e[_0x16f1dd(0x243)])throw new Error(_0x5234b1[_0x16f1dd(0x1e5)]);if(!_0x325e8e[_0x16f1dd(0x2ac)])throw new Error(_0x5234b1[_0x16f1dd(0x289)]);let _0x26ac19=new O({'commerceClient':_0x325e8e[_0x16f1dd(0x2bc)],'themeLoader':_0x325e8e[_0x16f1dd(0x1d1)],'templateLoader':_0x325e8e[_0x16f1dd(0x243)],'widgetRegistry':_0x325e8e['widgetRegistry'],'sectionRenderer':_0x325e8e['sectionRenderer'],'defaultLocale':_0x325e8e[_0x16f1dd(0x2c4)]});return{'renderPage':_0x1b49c2=>_0x26ac19[_0x16f1dd(0x1cb)](_0x1b49c2),'renderChrome':_0x513baf=>_0x26ac19[_0x16f1dd(0x202)](_0x513baf),'clearCache':()=>_0x26ac19['clearCache'](),'validateConfig':_0x127b84=>_0x26ac19[_0x16f1dd(0x1d0)](_0x127b84)};}var S=class{constructor(){const _0x176bb1=_0x10b02b;this[_0x176bb1(0x1f9)]=new Map();}[_0x10b02b(0x1f0)](_0x4adc53,_0x170101){const _0x115e78=_0x10b02b,_0x291675={'rZgxr':_0x115e78(0x1ef)};if(!_0x4adc53){console[_0x115e78(0x2b2)](_0x291675[_0x115e78(0x203)]);return;}this[_0x115e78(0x1f9)][_0x115e78(0x295)](_0x4adc53,_0x170101);}['registerAll'](_0x1f2bde){const _0xb1e78f=_0x10b02b;for(let {type:_0xed778,component:_0x13d38d}of _0x1f2bde)this[_0xb1e78f(0x1f0)](_0xed778,_0x13d38d);}[_0x10b02b(0x2a0)](_0x569eb7){const _0x3546ef=_0x10b02b;return this[_0x3546ef(0x1f9)]['get'](_0x569eb7);}[_0x10b02b(0x1ed)](_0x384c79){const _0x3507fc=_0x10b02b;return this[_0x3507fc(0x1f9)][_0x3507fc(0x1ed)](_0x384c79);}[_0x10b02b(0x220)](){const _0x33c142=_0x10b02b;return Array[_0x33c142(0x225)](this[_0x33c142(0x1f9)][_0x33c142(0x2c8)]());}[_0x10b02b(0x1e8)](){const _0x4f0d2b=_0x10b02b;this[_0x4f0d2b(0x1f9)][_0x4f0d2b(0x1e8)]();}get[_0x10b02b(0x271)](){const _0x4886a1=_0x10b02b;return this[_0x4886a1(0x1f9)][_0x4886a1(0x271)];}},W=class{static['getUsedDataSources'](_0x255714){const _0x896693=_0x10b02b;let _0x2fc456=new Set();for(let _0x244c25 of _0x255714[_0x896693(0x21c)])for(let _0x5dc19e of _0x244c25[_0x896693(0x1f9)])_0x5dc19e[_0x896693(0x26f)]&&_0x2fc456[_0x896693(0x20b)](_0x5dc19e['dataSourceKey']);return Array[_0x896693(0x225)](_0x2fc456);}static[_0x10b02b(0x290)](_0x5eca2b,_0x56a31a){const _0x2165e8=_0x10b02b;for(let _0x475962 of _0x5eca2b[_0x2165e8(0x21c)]){let _0x37b3c7=_0x475962[_0x2165e8(0x1f9)]['find'](_0x2d1006=>_0x2d1006['id']===_0x56a31a);if(_0x37b3c7)return _0x37b3c7;}return null;}static['findSection'](_0xdee7b5,_0x20e59b){const _0xd52542=_0x10b02b;return _0xdee7b5['sections'][_0xd52542(0x219)](_0x2858d6=>_0x2858d6['id']===_0x20e59b)||null;}static[_0x10b02b(0x299)](_0xfe0f08){const _0x244a56=_0x10b02b;return _0xfe0f08+'-'+Date[_0x244a56(0x261)]()+'-'+Math[_0x244a56(0x224)]()[_0x244a56(0x296)](0x24)[_0x244a56(0x204)](0x2,0x9);}static[_0x10b02b(0x2de)](_0x20cb47){const _0x6beda3=_0x10b02b,_0x3c3099={'IFPii':_0x6beda3(0x2b3),'pNHga':function(_0x287b5b,_0x1c57ef){return _0x287b5b!=_0x1c57ef;},'tigWc':_0x6beda3(0x1e3)};let _0x1ce27f=[];return _0x20cb47['id']||_0x1ce27f[_0x6beda3(0x2cb)](_0x6beda3(0x1e6)),(!_0x20cb47[_0x6beda3(0x21c)]||!Array[_0x6beda3(0x2b5)](_0x20cb47[_0x6beda3(0x21c)]))&&_0x1ce27f[_0x6beda3(0x2cb)](_0x3c3099['IFPii']),(!_0x20cb47[_0x6beda3(0x25f)]||_0x3c3099['pNHga'](typeof _0x20cb47[_0x6beda3(0x25f)],'object'))&&_0x1ce27f[_0x6beda3(0x2cb)](_0x3c3099[_0x6beda3(0x25e)]),_0x20cb47[_0x6beda3(0x21c)]?.[_0x6beda3(0x1ce)]((_0x412d8e,_0x20a9f0)=>{const _0x1ef48d=_0x6beda3;_0x412d8e['id']||_0x1ce27f[_0x1ef48d(0x2cb)](_0x1ef48d(0x28f)+_0x20a9f0+_0x1ef48d(0x237)),(!_0x412d8e[_0x1ef48d(0x1f9)]||!Array['isArray'](_0x412d8e[_0x1ef48d(0x1f9)]))&&_0x1ce27f[_0x1ef48d(0x2cb)](_0x1ef48d(0x1f1)+_0x412d8e['id']+_0x1ef48d(0x2d7)),_0x412d8e['widgets']?.['forEach']((_0x3adf5c,_0x293bbc)=>{const _0x3b02da=_0x1ef48d;_0x3adf5c['id']||_0x1ce27f['push'](_0x3b02da(0x20a)+_0x412d8e['id']+_0x3b02da(0x248)+_0x293bbc+_0x3b02da(0x237)),_0x3adf5c[_0x3b02da(0x25a)]||_0x1ce27f['push'](_0x3b02da(0x21f)+_0x3adf5c['id']+_0x3b02da(0x21b));});}),{'valid':_0x1ce27f[_0x6beda3(0x226)]===0x0,'errors':_0x1ce27f};}},oe={'HEADER_SECTION':'HEADER_SECTION','GRID_SECTION':'GRID_SECTION','HERO_SECTION':'HERO_SECTION','CONTENT_SECTION':_0x10b02b(0x1d6),'FOOTER_SECTION':'FOOTER_SECTION'},se={'PAGE':_0x10b02b(0x20f),'FULL':_0x10b02b(0x2df)},ce={'LEFT':_0x10b02b(0x1f5),'CENTER':_0x10b02b(0x246),'RIGHT':'right'},de={'SQUARE':_0x10b02b(0x273),'STANDARD':'4:3','CLASSIC':_0x10b02b(0x2ca),'WIDE':_0x10b02b(0x22f)},le={'LEFT':_0x10b02b(0x1f5),'CENTER':_0x10b02b(0x246),'RIGHT':_0x10b02b(0x284)},ge={'STANDARD':_0x10b02b(0x266),'COMPACT':_0x10b02b(0x2da),'MINIMAL':_0x10b02b(0x2e9)},pe={'mobile':{'max':0x2ff},'tablet':{'min':0x300,'max':0x3ff},'desktop':{'min':0x400,'max':0x780},'wide':{'min':0x781}},w=null;function ue(_0x1a39f7){const _0x184c16=_0x10b02b,_0x303eca={'ilrhu':_0x184c16(0x24c),'FgXLT':'themeLoader\x20(IThemeLoader)','YEAsN':_0x184c16(0x292),'sKVuG':function(_0x5ef007,_0x158f3b){return _0x5ef007+_0x158f3b;}};let _0x327567=[];if((!_0x1a39f7[_0x184c16(0x1f9)]||!Array[_0x184c16(0x2b5)](_0x1a39f7[_0x184c16(0x1f9)]))&&_0x327567[_0x184c16(0x2cb)]('widgets\x20(array\x20of\x20{\x20type,\x20component\x20})'),_0x1a39f7[_0x184c16(0x2bc)]||_0x327567[_0x184c16(0x2cb)](_0x303eca[_0x184c16(0x2e4)]),_0x1a39f7[_0x184c16(0x1d1)]||_0x327567[_0x184c16(0x2cb)](_0x303eca[_0x184c16(0x2aa)]),_0x1a39f7[_0x184c16(0x243)]||_0x327567[_0x184c16(0x2cb)](_0x303eca['YEAsN']),_0x327567['length']>0x0)throw new Error(_0x303eca[_0x184c16(0x21a)](_0x184c16(0x242)+_0x327567[_0x184c16(0x2d9)](_0x41d969=>'\x20\x20-\x20'+_0x41d969)[_0x184c16(0x268)]('\x0a'),_0x184c16(0x212)));}function q(_0x5990d8){const _0x4d356c=_0x10b02b,_0x40736a={'wXGPP':function(_0x6103aa,_0x5c54b7){return _0x6103aa(_0x5c54b7);}};_0x40736a[_0x4d356c(0x27a)](ue,_0x5990d8);let _0x3dbe5e=new S();_0x3dbe5e[_0x4d356c(0x211)](_0x5990d8[_0x4d356c(0x1f9)]);let _0x6c31e0=_0x5990d8[_0x4d356c(0x2b4)]||y;return D({'commerceClient':_0x5990d8['commerceClient'],'themeLoader':_0x5990d8[_0x4d356c(0x1d1)],'templateLoader':_0x5990d8['templateLoader'],'widgetRegistry':_0x3dbe5e,'sectionRenderer':_0x6c31e0,'defaultLocale':_0x5990d8['defaultLocale']||'en'});}function M(_0x439f1a){if(!w){if(!_0x439f1a)throw new Error('[PageBuilder]\x20getPageBuilder()\x20requires\x20options\x20on\x20first\x20call.\x0aProvide\x20widgets,\x20commerceClient,\x20themeLoader,\x20and\x20templateLoader.');w=q(_0x439f1a);}return w;}function U(){w=null;}function H(_0x592213){const _0x4f7c9f=_0x10b02b;return(_0x4acebb,_0x54c6cc,_0x3633e6)=>Z__default[_0x4f7c9f(0x2e6)][_0x4f7c9f(0x249)](_0x592213,{'section':_0x4acebb,'styles':_0x3633e6['styles'],'children':_0x54c6cc});}exports['ASPECT_RATIO_OPTIONS']=de,exports[_0x10b02b(0x2e2)]=ge,exports[_0x10b02b(0x2cd)]=l,exports[_0x10b02b(0x269)]=pe,exports[_0x10b02b(0x276)]=N,exports[_0x10b02b(0x1dd)]=h,exports[_0x10b02b(0x2dc)]=y,exports['MAX_SECTION_VARIANTS']=V,exports['PageConfigHelpers']=W,exports['SECTION_ALIGNMENT_OPTIONS']=ce,exports['SECTION_LAYOUT_OPTIONS']=se,exports['SECTION_TYPES']=oe,exports['TEXT_ALIGNMENT_OPTIONS']=le,exports[_0x10b02b(0x241)]=S,exports[_0x10b02b(0x2cc)]=b,exports[_0x10b02b(0x1fa)]=J,exports[_0x10b02b(0x234)]=B,exports['createDefaultSectionRenderer']=ie,exports[_0x10b02b(0x26d)]=q,exports[_0x10b02b(0x2ed)]=D,exports[_0x10b02b(0x205)]=H,exports[_0x10b02b(0x272)]=M,exports['hasSectionVariant']=K,exports[_0x10b02b(0x1ff)]=Q,exports[_0x10b02b(0x1f3)]=C,exports[_0x10b02b(0x26b)]=u,exports['nextSectionVariantId']=z,exports[_0x10b02b(0x215)]=U,exports[_0x10b02b(0x1eb)]=G,exports[_0x10b02b(0x2b1)]=_,exports[_0x10b02b(0x22e)]=X;
package/dist/index.mjs CHANGED
@@ -1,15 +1 @@
1
- import b from'react';import {jsx,jsxs}from'react/jsx-runtime';var x="en";var R=class{constructor(e="en",t={}){this.locale=e,this.messages=t;}getLocale(){return this.locale}getMessages(){return this.messages}translate(e,t){if(typeof e!="string")return String(e);if(!e.startsWith("t:"))return e;let r=e.slice(2),n=this.getNestedValue(this.messages,r);return n==null?r:typeof n!="string"?n:t?this.interpolate(n,t):n}translateRaw(e){if(typeof e!="string"||!e.startsWith("t:"))return e;let t=e.slice(2),r=this.getNestedValue(this.messages,t);return r!==void 0?r:e}translateObject(e,t){if(e==null)return e;if(typeof e=="string"){if(e.startsWith("t:")){let r=this.translateRaw(e);return typeof r!="string"?r:t?this.interpolate(r,t):r}return e}if(Array.isArray(e))return e.map(r=>this.translateObject(r,t));if(typeof e=="object"){let r={};for(let[n,o]of Object.entries(e))r[n]=this.translateObject(o,t);return r}return e}getNestedValue(e,t){if(!t||!e)return;let r=t.split("."),n=e;for(let o of r){if(n==null)return;n=n[o];}return n}interpolate(e,t){return e.replace(/\{(\w+)\}/g,(r,n)=>{let o=t[n];return o!==void 0?String(o):r})}};var g={PRODUCT:"PRODUCT",PRODUCTS:"PRODUCTS",PRODUCTS_BY_HANDLES:"PRODUCTS_BY_HANDLES",COLLECTION:"COLLECTION",COLLECTIONS:"COLLECTIONS",COLLECTION_BY_HANDLES:"COLLECTION_BY_HANDLES",COLLECTION_FILTERS:"COLLECTION_FILTERS",STATIC:"STATIC",FETCH_REQUEST:"FETCH_REQUEST",GRAPHQL_REQUEST:"GRAPHQL_REQUEST"};var C=class{constructor(e){this.commerceClient=e;}async fetchPageData(e){let{merchantName:t,pageConfig:r,routeContext:n}=e,o={merchantName:t},a=this.collectRequirements(r,n),s=await this.fetchAllData(a);return {...o,...s}}collectRequirements(e,t){let r=[];if(e.dataSources)for(let[n,o]of Object.entries(e.dataSources))r.push({type:o.type,params:{...o.params,...t.params},required:o.required||false,sourceId:n,options:o.options});return r}async fetchAllData(e){let t={};return await Promise.all(e.map(async r=>{try{let n=await this.fetchSingleRequirement(r);t[r.sourceId]=n;}catch(n){if(console.error(`Error fetching data for ${r.sourceId}:`,n),r.required)throw n;t[r.sourceId]=null;}})),t}async fetchSingleRequirement(e){let{type:t,params:r,options:n}=e;switch(t){case g.STATIC:return r;case g.PRODUCT:return this.commerceClient.getProduct(r,n);case g.PRODUCTS:return this.commerceClient.getProducts(r,n);case g.PRODUCTS_BY_HANDLES:return this.commerceClient.getProductsByHandles(r,n);case g.COLLECTION:return this.commerceClient.getCollection(r,n);case g.COLLECTIONS:return this.commerceClient.getCollections(r,n);case g.COLLECTION_BY_HANDLES:return this.commerceClient.getCollectionsByHandles(r,n);case g.COLLECTION_FILTERS:return this.commerceClient.getCollectionFilters(r,n);case g.FETCH_REQUEST:return this.commerceClient.fetchRequest(r);case g.GRAPHQL_REQUEST:return this.commerceClient.graphqlRequest(r);default:return console.warn(`Unknown data source type: ${t}`),null}}};var h=class{constructor(e){this.widgetRegistry=e;}createWidgets({pageConfig:e,pageData:t,routeContext:r,translationService:n}){let o={};for(let a of e.sections){if(!a.widgets?.length){console.warn(`Section ${a.id} has no widgets.`);continue}for(let s of a.widgets){let c=this.createSingleWidget(s,e,t,r,n);c&&(o[s.id]=c);}}return o}createSingleWidget(e,t,r,n,o){try{let a=this.widgetRegistry.get(e.type);if(!a)return console.error(`Widget type not found: ${e.type}`),console.error("Available widgets:",this.widgetRegistry.getRegisteredTypes()),null;let s=this.prepareWidgetData(e,t,r);if(s===null)return null;let c={key:e.id,id:e.id,data:s,settings:e.settings,routeContext:n};return o&&(c.locale=o.getLocale()),b.createElement(a,c)}catch(a){return console.error(`Error creating widget: ${e.id}`,a),null}}prepareWidgetData(e,t,r){if(!e.dataSourceKey)return {};let n=e.dataSourceKey,o=r[n];return (t.dataSources?.[n]?.required||false)&&!o?(console.error(`Required data not available for widget: ${e.id} (dataSourceKey: ${n})`),null):o||{}}};var T=class{constructor(e){this.renderSectionWrapper=e;}renderLayout({pageConfig:e,widgets:t,styles:r,routeContext:n,isEditing:o=false,onSelectSection:a,onSelectWidget:s}){return jsx("div",{className:"page-container",children:e.sections.map(c=>jsx(b.Fragment,{children:this.renderSection(c,t,r,o,a,s)},c.id))})}renderSection(e,t,r,n=false,o,a){let s=e.widgets.map(d=>{let p=t[d.id];if(!p)return null;let m=b.cloneElement(p,{key:d.id,...d.responsive&&{responsive:d.responsive}});return n?jsxs("div",{className:"relative",style:{overflow:"visible"},children:[jsx("div",{className:"absolute inset-0 pointer-events-auto rounded cursor-pointer","data-widget-id":d.id,style:{zIndex:1e4,border:"2px solid transparent",transition:"border-color 0.2s",borderRadius:"0.375rem"},onClick:l=>{l.preventDefault(),l.stopPropagation(),a&&a(e.id,d.id);},onMouseEnter:l=>{l.currentTarget.style.borderColor="#EF4444";},onMouseLeave:l=>{l.currentTarget.style.borderColor="transparent";}}),m]},d.id):m}).filter(Boolean),c=this.renderSectionWrapper(e,s,r);return n?jsxs("div",{className:"relative",style:{overflow:"visible"},children:[jsx("div",{className:"absolute inset-0 pointer-events-auto rounded-md cursor-pointer","data-section-id":e.id}),c]},e.id):c}};var P=class{constructor(e){this.themeLoader=e;}async processStyles({merchantName:e,pageConfig:t}){try{return {...(await this.themeLoader.loadTheme(e)).config,...t.theme}}catch(r){throw console.error(`Error processing styles for merchant ${e}:`,r),new Error(`Failed to process styles for merchant ${e}: ${r instanceof Error?r.message:"Unknown error"}`)}}};var I=new Map,v=class{constructor(e){this.templateLoader=e;}async resolveTemplate({merchantName:e,routeContext:t,variant:r}){if(!e)throw new Error("Merchant name is required");let{templateName:n,apiData:o}=t||{};if(!n)throw new Error("Template name is required in the route context");let a=r||(o?await this.determineVariant(e,n,o):"default"),s=`${e}-${n}-${a}`;if(I.has(s))return I.get(s);let c;try{c=await this.loadMerchantTemplate(e,n,a),this.validateTemplate(c)&&I.set(s,c);}catch(d){throw console.error(`Error loading merchant template for ${e}/${n}:`,d),new Error(`Unable to load template for ${e}/${n}. Make sure the template exists.`)}if(!this.validateTemplate(c))throw new Error(`Invalid template configuration for ${e}/${n}`);return c}async loadMerchantTemplate(e,t,r="default"){try{let n=await this.templateLoader.loadTemplate(e,t,r);if(!n)throw new Error(`Template not returned for ${e}/${t}/${r}`);return n}catch(n){if(r!=="default")return console.warn(`Template variant "${r}" not found for ${e}/${t}, falling back to default`),this.loadMerchantTemplate(e,t,"default");throw console.error(`Error loading template ${e}/${t}/${r}:`,n),n}}validateTemplate(e){if(!e.id||!e.sections)return console.error("Template validation failed: Missing required fields (id, or sections)"),false;if(!Array.isArray(e.sections)||e.sections.length===0)return console.error("Template validation failed: Sections must be a non-empty array"),false;for(let t of e.sections){if(!t.id||!t.widgets||!Array.isArray(t.widgets))return console.error("Template validation failed: Each section must have id and widgets array"),console.error("Section structure:",{id:t.id,hasWidgets:!!t.widgets,isArray:Array.isArray(t.widgets)}),false;if(!t.name||!t.type)return console.error("Template validation failed: Each section must have name and type"),console.error("Section:",{id:t.id,name:t.name,type:t.type}),false;if(!t.settings)return console.error("Template validation failed: Each section must have settings"),console.error("Section:",{id:t.id,hasSettings:!!t.settings}),false;for(let r of t.widgets){if(!r.id||!r.type||!r.name)return console.error("Template validation failed: Each widget must have id, type, and name"),console.error("Widget:",{id:r.id,type:r.type,name:r.name}),false;if(!r.settings)return console.error("Template validation failed: Each widget must have settings"),console.error("Widget:",{id:r.id,hasSettings:!!r.settings}),false}}return true}clearCache(){I.clear();}async determineVariant(e,t,r){try{if(!this.templateLoader.loadVariantRegistry)return "default";let n=await this.templateLoader.loadVariantRegistry(e);if(!n||!n.variantRegistry)return "default";let o=n.variantRegistry[t];if(!o)return "default";let{apiField:a,variantMap:s,defaultVariant:c}=o,d=this.getNestedValue(r,a);return d&&s&&s[d]?s[d]:c||"default"}catch(n){return console.warn(`Failed to load variant registry for template type ${t}:`,n),"default"}}getNestedValue(e,t){return t.split(".").reduce((r,n)=>r&&r[n]!==void 0?r[n]:void 0,e)}};function k(i,e="desktop"){let n=i.settings.responsive?.[e]||{padding:i.settings.padding||{top:0,right:0,bottom:0,left:0},margin:i.settings.margin},o=n.padding?`${n.padding.top}px ${n.padding.right}px ${n.padding.bottom}px ${n.padding.left}px`:"0",a=n.margin?`${n.margin.top}px ${n.margin.right}px ${n.margin.bottom}px ${n.margin.left}px`:void 0;return {padding:o,margin:a}}function f(i,e,t){let{styles:r,breakpoint:n="desktop"}=t,{layout:o}=i.settings,a=k(i,n),s={width:"100%",padding:a.padding,...a.margin&&{margin:a.margin},...o==="page"&&{maxWidth:r?.spacing?.container||"1280px",marginLeft:"auto",marginRight:"auto"}};return b.createElement("section",{key:i.id,"data-section-id":i.id,"data-section-type":i.type,"data-breakpoint":n,style:s},e)}function M(){return f}function U(i,e){if(i)for(let t of i.sections??[])for(let r of t.widgets??[]){let n=r.settings?.menuHandle;typeof n=="string"&&n.length>0&&e.add(n);}}var E=class{constructor(e){let{commerceClient:t,themeLoader:r,templateLoader:n,widgetRegistry:o,sectionRenderer:a,defaultLocale:s="en"}=e;this.templateResolver=new v(n),this.dataFetcher=new C(t),this.widgetFactory=new h(o),this.styleProcessor=new P(r),this.sectionRenderer=a||f,this.defaultLocale=s;}createLayoutRenderer(e){let t=this.sectionRenderer,r=(n,o,a)=>t(n,o,{styles:a,routeContext:e,breakpoint:"desktop"});return new T(r)}async renderPage({merchantName:e,pageConfig:t,routeContext:r,locale:n,messages:o}){let a=n||this.defaultLocale,s=new R(a,o||{}),c=t||await this.templateResolver.resolveTemplate({merchantName:e,routeContext:r}),d=this.translatePageConfig(c,s),p=await this.dataFetcher.fetchPageData({merchantName:e,pageConfig:d,routeContext:r}),m=await this.styleProcessor.processStyles({merchantName:e,pageConfig:d}),l=this.widgetFactory.createWidgets({pageConfig:d,pageData:p,routeContext:r,translationService:s});return this.createLayoutRenderer(r).renderLayout({pageConfig:d,widgets:l,styles:m,routeContext:r})}async renderChrome({merchantName:e,locale:t,messages:r,headerConfig:n,footerConfig:o,headerTemplateName:a="header",footerTemplateName:s="footer"}){let c=new Set,d=async(l,A)=>{try{let u={templateName:l,path:"/",params:{},query:{},fetchAPITemplate:!0},_=A??await this.templateResolver.resolveTemplate({merchantName:e,routeContext:u});return U(_,c),await this.renderPage({merchantName:e,pageConfig:_,routeContext:u,locale:t,messages:r})}catch(u){return console.error(JSON.stringify({level:"error",service:"builder",message:"renderChrome slot failed",slot:l,merchantName:e,error:u instanceof Error?u.message:String(u)})),null}},[p,m]=await Promise.all([d(a,n),d(s,o)]);return {header:p,footer:m,menuHandles:[...c]}}clearCache(){this.templateResolver.clearCache();}validateConfig(e){let t=[];return e.id||t.push("Page config must have an id"),(!e.sections||!Array.isArray(e.sections))&&t.push("Page config must have a sections array"),(!e.dataSources||typeof e.dataSources!="object")&&t.push("Page config must have a dataSources object"),e.sections?.forEach((r,n)=>{r.id||t.push(`Section at index ${n} must have an id`),(!r.widgets||!Array.isArray(r.widgets))&&t.push(`Section "${r.id}" must have a widgets array`),r.widgets?.forEach((o,a)=>{o.id||t.push(`Widget at section "${r.id}" index ${a} must have an id`),o.type||t.push(`Widget "${o.id}" must have a type`);});}),{valid:t.length===0,errors:t}}translatePageConfig(e,t){return {...e,sections:e.sections.map(r=>({...r,widgets:r.widgets.map(n=>({...n,settings:t.translateObject(n.settings||{})}))}))}}};function O(i){if(!i.commerceClient)throw new Error("commerceClient is required");if(!i.themeLoader)throw new Error("themeLoader is required");if(!i.templateLoader)throw new Error("templateLoader is required");if(!i.widgetRegistry)throw new Error("widgetRegistry is required");let e=new E({commerceClient:i.commerceClient,themeLoader:i.themeLoader,templateLoader:i.templateLoader,widgetRegistry:i.widgetRegistry,sectionRenderer:i.sectionRenderer,defaultLocale:i.defaultLocale});return {renderPage:t=>e.renderPage(t),renderChrome:t=>e.renderChrome(t),clearCache:()=>e.clearCache(),validateConfig:t=>e.validateConfig(t)}}var y=class{constructor(){this.widgets=new Map;}register(e,t){if(!e){console.warn("WidgetRegistry: Cannot register widget with empty type");return}this.widgets.set(e,t);}registerAll(e){for(let{type:t,component:r}of e)this.register(t,r);}get(e){return this.widgets.get(e)}has(e){return this.widgets.has(e)}getRegisteredTypes(){return Array.from(this.widgets.keys())}clear(){this.widgets.clear();}get size(){return this.widgets.size}};var w=class{static getUsedDataSources(e){let t=new Set;for(let r of e.sections)for(let n of r.widgets)n.dataSourceKey&&t.add(n.dataSourceKey);return Array.from(t)}static findWidget(e,t){for(let r of e.sections){let n=r.widgets.find(o=>o.id===t);if(n)return n}return null}static findSection(e,t){return e.sections.find(r=>r.id===t)||null}static generateId(e){return `${e}-${Date.now()}-${Math.random().toString(36).substr(2,9)}`}static validate(e){let t=[];return e.id||t.push("Page config must have an id"),(!e.sections||!Array.isArray(e.sections))&&t.push("Page config must have a sections array"),(!e.dataSources||typeof e.dataSources!="object")&&t.push("Page config must have a dataSources object"),e.sections?.forEach((r,n)=>{r.id||t.push(`Section at index ${n} must have an id`),(!r.widgets||!Array.isArray(r.widgets))&&t.push(`Section "${r.id}" must have a widgets array`),r.widgets?.forEach((o,a)=>{o.id||t.push(`Widget at section "${r.id}" index ${a} must have an id`),o.type||t.push(`Widget "${o.id}" must have a type`);});}),{valid:t.length===0,errors:t}}};var H={HEADER_SECTION:"HEADER_SECTION",GRID_SECTION:"GRID_SECTION",HERO_SECTION:"HERO_SECTION",CONTENT_SECTION:"CONTENT_SECTION",FOOTER_SECTION:"FOOTER_SECTION"},Y={PAGE:"page",FULL:"full"},V={LEFT:"left",CENTER:"center",RIGHT:"right"},G={SQUARE:"1:1",STANDARD:"4:3",CLASSIC:"3:2",WIDE:"16:9"},Q={LEFT:"left",CENTER:"center",RIGHT:"right"},K={STANDARD:"standard",COMPACT:"compact",MINIMAL:"minimal"};var j={mobile:{max:767},tablet:{min:768,max:1023},desktop:{min:1024,max:1920},wide:{min:1921}};var L=null;function z(i){let e=[];if((!i.widgets||!Array.isArray(i.widgets))&&e.push("widgets (array of { type, component })"),i.commerceClient||e.push("commerceClient (ICommerceClient)"),i.themeLoader||e.push("themeLoader (IThemeLoader)"),i.templateLoader||e.push("templateLoader (ITemplateLoader)"),e.length>0)throw new Error(`[PageBuilder] Missing required options:
2
- `+e.map(t=>` - ${t}`).join(`
3
- `)+`
4
-
5
- Example usage:
6
- import { WIDGET_MANIFEST } from "@/widgets/.generated/manifest";
7
- import { getCommerceClient } from "@/lib/data-layer";
8
-
9
- getPageBuilder({
10
- widgets: WIDGET_MANIFEST,
11
- commerceClient: getCommerceClient(),
12
- themeLoader: { loadTheme: async (merchant) => ... },
13
- templateLoader: { loadTemplate: async (...) => ... },
14
- });`)}function N(i){z(i);let e=new y;e.registerAll(i.widgets);let t=i.sectionRenderer||f;return O({commerceClient:i.commerceClient,themeLoader:i.themeLoader,templateLoader:i.templateLoader,widgetRegistry:e,sectionRenderer:t,defaultLocale:i.defaultLocale||"en"})}function W(i){if(!L){if(!i)throw new Error(`[PageBuilder] getPageBuilder() requires options on first call.
15
- Provide widgets, commerceClient, themeLoader, and templateLoader.`);L=N(i);}return L}function q(){L=null;}function F(i){return (e,t,r)=>b.createElement(i,{section:e,styles:r.styles,children:t})}export{G as ASPECT_RATIO_OPTIONS,K as CARD_STYLE_OPTIONS,g as DATA_SOURCE_TYPES,j as DEFAULT_BREAKPOINTS,x as DEFAULT_LOCALE,f as DefaultSectionWrapper,w as PageConfigHelpers,V as SECTION_ALIGNMENT_OPTIONS,Y as SECTION_LAYOUT_OPTIONS,H as SECTION_TYPES,Q as TEXT_ALIGNMENT_OPTIONS,y as WidgetRegistry,M as createDefaultSectionRenderer,N as createFileSystemPageBuilder,O as createPageBuilder,F as createSectionRendererFromComponent,W as getPageBuilder,q as resetPageBuilder};
1
+ const _0x2b2367=_0x1d9a;(function(_0xe7a8a2,_0x2268b7){const _0x23194d=_0x1d9a,_0x1ae5f5=_0xe7a8a2();while(!![]){try{const _0x40f374=parseInt(_0x23194d(0xd8))/0x1+parseInt(_0x23194d(0x17a))/0x2+parseInt(_0x23194d(0x18c))/0x3*(parseInt(_0x23194d(0x1a5))/0x4)+-parseInt(_0x23194d(0x17e))/0x5+-parseInt(_0x23194d(0x12a))/0x6*(parseInt(_0x23194d(0x114))/0x7)+parseInt(_0x23194d(0xb3))/0x8+-parseInt(_0x23194d(0x102))/0x9*(-parseInt(_0x23194d(0xa3))/0xa);if(_0x40f374===_0x2268b7)break;else _0x1ae5f5['push'](_0x1ae5f5['shift']());}catch(_0x505dcc){_0x1ae5f5['push'](_0x1ae5f5['shift']());}}}(_0x2ac7,0x9429b));import _0x3c2ddc,{Suspense}from'react';import{jsx,jsxs}from'react/jsx-runtime';var N='en',R=class{constructor(_0x375e7f='en',_0x559d8f={}){const _0x40d32b=_0x1d9a;this['locale']=_0x375e7f,this[_0x40d32b(0xb7)]=_0x559d8f;}[_0x2b2367(0xb8)](){const _0x425516=_0x2b2367;return this[_0x425516(0xdb)];}['getMessages'](){const _0x1c2b8f=_0x2b2367;return this[_0x1c2b8f(0xb7)];}[_0x2b2367(0x13f)](_0x54a858,_0x14b349){const _0x241506=_0x2b2367,_0x1124db={'tALdE':'string','hZWkQ':function(_0x2bcbb8,_0x1022b1){return _0x2bcbb8(_0x1022b1);},'trqfL':function(_0x355b33,_0x500940){return _0x355b33==_0x500940;},'FAXmM':function(_0x438381,_0x501d3e){return _0x438381!=_0x501d3e;}};if(typeof _0x54a858!=_0x1124db['tALdE'])return _0x1124db[_0x241506(0x192)](String,_0x54a858);if(!_0x54a858[_0x241506(0xb2)]('t:'))return _0x54a858;let _0x1e6e21=_0x54a858[_0x241506(0x105)](0x2),_0x87447f=this['getNestedValue'](this[_0x241506(0xb7)],_0x1e6e21);return _0x1124db[_0x241506(0xe4)](_0x87447f,null)?_0x1e6e21:_0x1124db[_0x241506(0x11e)](typeof _0x87447f,_0x241506(0xfe))?_0x87447f:_0x14b349?this[_0x241506(0x16a)](_0x87447f,_0x14b349):_0x87447f;}[_0x2b2367(0x13e)](_0x380cf7){const _0x1511fa=_0x2b2367,_0x1787ab={'JCAci':function(_0x3820f6,_0x4626c3){return _0x3820f6!=_0x4626c3;},'QsnTy':function(_0x4aea6b,_0xcd27fc){return _0x4aea6b!==_0xcd27fc;}};if(_0x1787ab['JCAci'](typeof _0x380cf7,_0x1511fa(0xfe))||!_0x380cf7[_0x1511fa(0xb2)]('t:'))return _0x380cf7;let _0x3bd08a=_0x380cf7[_0x1511fa(0x105)](0x2),_0x553e83=this[_0x1511fa(0xaf)](this[_0x1511fa(0xb7)],_0x3bd08a);return _0x1787ab['QsnTy'](_0x553e83,void 0x0)?_0x553e83:_0x380cf7;}[_0x2b2367(0x10e)](_0x496988,_0x57e37e){const _0x59f49e=_0x2b2367,_0x2268ba={'SjefF':function(_0x45f75d,_0x2d7135){return _0x45f75d==_0x2d7135;},'tmbJY':'string'};if(_0x496988==null)return _0x496988;if(_0x2268ba['SjefF'](typeof _0x496988,_0x2268ba['tmbJY'])){if(_0x496988[_0x59f49e(0xb2)]('t:')){let _0x10abde=this['translateRaw'](_0x496988);return typeof _0x10abde!=_0x2268ba[_0x59f49e(0xca)]?_0x10abde:_0x57e37e?this[_0x59f49e(0x16a)](_0x10abde,_0x57e37e):_0x10abde;}return _0x496988;}if(Array[_0x59f49e(0xf5)](_0x496988))return _0x496988['map'](_0x17f504=>this['translateObject'](_0x17f504,_0x57e37e));if(typeof _0x496988=='object'){let _0xf8ed0d={};for(let [_0x4652fa,_0x15c835]of Object['entries'](_0x496988))_0xf8ed0d[_0x4652fa]=this['translateObject'](_0x15c835,_0x57e37e);return _0xf8ed0d;}return _0x496988;}[_0x2b2367(0xaf)](_0x35c650,_0x226c32){const _0x37c1ca=_0x2b2367,_0x50607e={'bmjQG':function(_0x55a8b3,_0x38fb86){return _0x55a8b3||_0x38fb86;}};if(_0x50607e['bmjQG'](!_0x226c32,!_0x35c650))return;let _0x16fa69=_0x226c32[_0x37c1ca(0xdf)]('.'),_0x3caa88=_0x35c650;for(let _0x5bb915 of _0x16fa69){if(_0x3caa88==null)return;_0x3caa88=_0x3caa88[_0x5bb915];}return _0x3caa88;}[_0x2b2367(0x16a)](_0x5e84d7,_0x43138a){const _0x5599f0=_0x2b2367,_0x4c57a={'KDKMe':function(_0x4c87f6,_0x3ce0dd){return _0x4c87f6(_0x3ce0dd);}};return _0x5e84d7[_0x5599f0(0xd6)](/\{(\w+)\}/g,(_0x2ff40b,_0x406f4f)=>{let _0x3bbbcb=_0x43138a[_0x406f4f];return _0x3bbbcb!==void 0x0?_0x4c57a['KDKMe'](String,_0x3bbbcb):_0x2ff40b;});}};function b(_0x33675a,_0x1b38cf){const _0x3a1494=_0x2b2367,_0x253bdf={'pRsax':function(_0x32db03,_0x2efbf1){return _0x32db03!=_0x2efbf1;},'sJAJK':function(_0x4cf6a1,_0x28ff76,_0x3ca6e3){return _0x4cf6a1(_0x28ff76,_0x3ca6e3);}};if(!_0x1b38cf||Object[_0x3a1494(0xed)](_0x1b38cf)['length']===0x0||!Array['isArray'](_0x33675a[_0x3a1494(0xe8)]))return _0x33675a;let _0x41eee4=![],_0x584ab2=_0x33675a[_0x3a1494(0xe8)]['map'](_0x4223af=>{const _0x375cd7=_0x3a1494;if(!_0x4223af||_0x253bdf[_0x375cd7(0xd5)](typeof _0x4223af,_0x375cd7(0x1ae)))return _0x4223af;let _0x45ecf9=_0x253bdf[_0x375cd7(0xbf)](Y,_0x4223af,_0x1b38cf[_0x4223af['id']]);return _0x45ecf9!==_0x4223af&&(_0x41eee4=!![]),_0x45ecf9;});return _0x41eee4?{..._0x33675a,'sections':_0x584ab2}:_0x33675a;}function Y(_0x5838d6,_0x368ab3){const _0x4fd50f=_0x2b2367,_0x375000={'NsJiZ':function(_0x11d129,_0x33f77a){return _0x11d129(_0x33f77a);}};if(!_0x368ab3||_0x368ab3===_0x375000['NsJiZ'](u,_0x5838d6))return _0x5838d6;let _0x371007=Array[_0x4fd50f(0xf5)](_0x5838d6[_0x4fd50f(0x129)])?_0x5838d6['variants'][_0x4fd50f(0x11a)](_0xc73a45=>_0xc73a45&&_0xc73a45[_0x4fd50f(0x16f)]===_0x368ab3):void 0x0;if(!_0x371007)return _0x5838d6;let {variantId:_0x50d5c1,createdAt:_0x236356,createdBy:_0x125bd8,..._0x2c3143}=_0x371007,_0x5c1c5f={'variantId':u(_0x5838d6),'name':_0x5838d6[_0x4fd50f(0x169)],'type':_0x5838d6[_0x4fd50f(0x198)],'settings':_0x5838d6[_0x4fd50f(0xdd)],'widgets':_0x5838d6[_0x4fd50f(0xf1)],'createdAt':_0x236356,'createdBy':_0x125bd8},_0x4288b4=[...(Array[_0x4fd50f(0xf5)](_0x5838d6['variants'])?_0x5838d6['variants']:[])[_0x4fd50f(0x164)](_0x12661f=>_0x12661f&&_0x12661f['variantId']!==_0x50d5c1),_0x5c1c5f];return{..._0x5838d6,..._0x2c3143,'liveVariantId':_0x50d5c1,'variants':_0x4288b4};}function G(_0x9d59ed,_0x3fa896){const _0x37c53b=_0x2b2367,_0x381509={'Jpjhq':function(_0xce31a5,_0x2e110b){return _0xce31a5(_0x2e110b);}};let _0x5b3314=_0x3fa896?.[_0x9d59ed['id']];return _0x5b3314&&(_0x5b3314===_0x381509['Jpjhq'](u,_0x9d59ed)||(_0x9d59ed[_0x37c53b(0x129)]??[])[_0x37c53b(0x196)](_0x40d6e0=>_0x40d6e0['variantId']===_0x5b3314))?_0x5b3314:_0x381509[_0x37c53b(0xeb)](u,_0x9d59ed);}function u(_0x1ec0f3){const _0x26c4be=_0x2b2367;return _0x1ec0f3[_0x26c4be(0x139)]??h;}function C(_0x3ceeb7){const _0x136122=_0x2b2367;let _0x568388=new Set([u(_0x3ceeb7)]);for(let _0x85af4b of _0x3ceeb7['variants']??[])_0x568388[_0x136122(0xa4)](_0x85af4b['variantId']);return[..._0x568388]['sort'](j);}function _(_0x68ac4){const _0x1e24b6=_0x2b2367,_0x111943={'xwGbd':function(_0x1d31ae,_0x104f7a){return _0x1d31ae(_0x104f7a);}};return _0x111943['xwGbd'](C,_0x68ac4)[_0x1e24b6(0x175)];}function _0x2ac7(){const _0x386e4e=['zgvMyxvSDa','zgvZA3rVCa','z2vUzxjHDgvjza','ywX2u2e','mNb4ihnVBgLKihrYyw5ZCgfYzw50','ywXS','zMLSDgvY','DgvTCgXHDgvmB2fKzxiGAxmGCMvXDwLYzwq','CMvUzgvYu2vJDgLVBLDYyxbWzxi','runMtNu','A1nru00','BMfTzq','Aw50zxjWB2XHDgu','wuDArfu','CMvUzgvYq2HYB21LihnSB3qGzMfPBgvK','ChjLDMvUDerLzMf1Bhq','v2LKz2v0ihr5CguGBM90igzVDw5KoIa','DMfYAwfUDeLK','rfzTv2G','iIbUB3qGzM91BMqGzM9Yia','CMvUzgvYq2HYB21L','ENv3Deq','BwfYz2LU','BgvUz3rO','rMfPBgvKihrVigXVywqGDMfYAwfUDcbYzwDPC3rYEsbMB3iGDgvTCgXHDguGDhLWzsa','tMDkyxe','ChjVy2vZC1n0EwXLCW','CMvNAxn0zxi','odC0odu4Aw9pEvPe','z2v0','z2v0uMvNAxn0zxjLzfr5CgvZ','ywjZB2X1DguGAw5ZzxqTmcbWB2LUDgvYlwv2zw50CY1HDxrVihjVDw5KzwqTBwqGy3vYC29YlxbVAw50zxi','mZu4odG5mfnxANzvsW','y3jLyxrLrwXLBwvUDa','CgfNzq','DMfSAwrHDgvdB25MAwC','icHKyxrHu291CMnLs2v5oIa','vw5RBM93BIbKyxrHihnVDxjJzsb0ExbLoIa','Bgjhuvm','y2XLyxi','q09mtevdveLptG','BeTAwLi','v2LKz2v0igf0ihnLy3rPB24GiG','Aw5JBhvKzxm','AgfZ','y29TBwvYy2vdBgLLBNqGAxmGCMvXDwLYzwq','mJeYnJGYm0LksKDUAG','sw52ywXPzcb0zw1WBgf0zsbJB25MAwD1CMf0Aw9UigzVCIa','zgf0yuzLDgnOzxi','zMv0y2HtAw5NBgvszxf1AxjLBwvUDa','y2HHCKnVzgvbDa','D2fYBG','AfPxA1e','CMvUzgvYtgf5B3v0','C2v0','BwvZC2fNzq','C29Tzq','CMvZB2X2zvrLBxbSyxrL','DhLWzq','Dg9ju09tDhjPBMC','C3rVCfbYB3bHz2f0Aw9U','z2v0q29SBgvJDgLVBG','vKvZCgu','cGPfEgfTCgXLihvZywDLoGOGigLTCg9YDcb7ifDjreDfvf9nqu5jrKvtvcb9igzYB20GiKaVD2LKz2v0CY8Uz2vUzxjHDgvKl21HBMLMzxn0iJSkicbPBxbVCNqGEYbNzxrdB21TzxjJzunSAwvUDcb9igzYB20GiKaVBgLIl2rHDgeTBgf5zxiIoWOGiaOGigDLDfbHz2vcDwLSzgvYkhSkicaGihDPzgDLDhm6ifDjreDfvf9nqu5jrKvtvcWkicaGignVBw1LCMnLq2XPzw50oIbNzxrdB21TzxjJzunSAwvUDcGPlaOGicaGDgHLBwvmB2fKzxi6ihSGBg9HzfrOzw1LoIbHC3LUyYaOBwvYy2HHBNqPid0+ic4UlIb9laOGicaGDgvTCgXHDgvmB2fKzxi6ihSGBg9HzfrLBxbSyxrLoIbHC3LUyYaOlI4Uksa9pIaUlI4GFsWkicb9ktS','BwLUAw1HBa','DgvTCgXHDgvszxnVBhzLCG','BwfW','rxjYB3iGChjVy2vZC2LUzYbZDhLSzxmGzM9Yig1LCMnOyw50ia','CMvZCg9UC2L2zq','u2vJDgLVBJO','C3bHy2LUzW','ngP4zhPuAG','ndOZ','BgvMDa','D2LKz2v0uMvNAxn0CNK','rxjYB3iGy3jLyxrPBMCGD2LKz2v0oIa','CgfYyw1Z','zMv0y2HbBgXeyxrH','Aun0vvO','CMvUzgvYu2vJDgLVBG','B2jQzwn0','vMfYAwfUDca','vw5HyMXLihrVigXVywqGDgvTCgXHDguGzM9Yia','zM9VDgvY','ufjprfvdvfnFqLLFseforeXfuW','mtb5tg9fs3q','ywrK','txvuEeS','q09mtevdveLptL9gsuXurvjt','BwvUDuHHBMrSzq','vgvTCgXHDguGBM90ihjLDhvYBMvKigzVCIa','zgv0zxjTAw5LvMfYAwfUDa','C3vIC3rY','r1jjrf9trunusu9o','vgvTCgXHDguGBMfTzsbPCYbYzxf1AxjLzcbPBIb0AguGCM91DguGy29UDgv4Da','DMfSAwrHDgvuzw1WBgf0zq','rKvuq0HFuKvrvuvtva','z2v0tMvZDgvKvMfSDwu','vgvTCgXHDguGDMfSAwrHDgLVBIbMywLSzwq6ie1PC3nPBMCGCMvXDwLYzwqGzMLLBgrZicHPzcWGB3iGC2vJDgLVBNmP','ufjprfvdvfm','C3rHCNrZv2L0Aa','odK1mZzgtvjnCg8','vgvTCgXHDguGDMfSAwrHDgLVBIbMywLSzwq6ievHy2GGC2vJDgLVBIbTDxn0igHHDMuGC2v0DgLUz3m','w1bHz2vcDwLSzgvYxsbnAxnZAw5NihjLCxvPCMvKig9WDgLVBNm6cG','u2vJDgLVBIbHDcbPBMrLEca','BwvZC2fNzxm','z2v0tg9JywXL','y2XLyxjdywnOzq','q09mtevdveLptLm','ugfNzsbJB25MAwCGBxvZDcbOyxzLigfUigLK','yK9kv1a','y3vYCMvUDfrHCMDLDa','DhjHBNnSyxrLugfNzunVBMzPzW','C0PbsKS','AM9PBG','vw5RBM93BIbLCNjVCG','rMfPBgvKihrVihbYB2nLC3mGC3r5BgvZigzVCIbTzxjJAgfUDca','y29TBwvYy2vdBgLLBNq','zuL1zwC','iIbPBMrLEca','zLPXBKG','C3r5Bgu','twvYy2HHBNqGBMfTzsbPCYbYzxf1AxjLza','wNzuDfK','Dg1IsLK','iIbTDxn0igHHDMuGysb0ExbL','sevst19trunusu9o','DgvTCgXHDgvmB2fKzxiGkeLuzw1WBgf0zuXVywrLCIK','DgHLBwvmB2fKzxiGAxmGCMvXDwLYzwq','v2LKz2v0oG','CgfKzgLUzW','q09mtevdveLptL9cwv9iqu5etevt','D2LKz2v0rMfJDg9YEq','Bg9Hze1LCMnOyw50vgvTCgXHDgu','C3r5BgvqCM9JzxnZB3i','CfjZyxG','CMvWBgfJzq','y0zZDhK','mZK4nZq5r3nPAhDz','mc4ZnZvYzw0','y3jLyxrLtgf5B3v0uMvUzgvYzxi','Bg9JywXL','u2vJDgLVBIbZDhj1y3r1CMu6','C2v0DgLUz3m','u1rbveLd','C3bSAxq','z2v0uhjVzhvJDhm','u2vJDgLVBIaI','Dg9W','zgvMyxvSDeXVy2fSzq','DhjXzKW','mti4mhb4','vMfYAwfUDcbbicHezwzHDwX0kq','zMLUzfnLy3rPB24','C2vJDgLVBNm','y3jLyxrLv2LKz2v0CW','z2v0q29SBgvJDgLVBNncEuHHBMrSzxm','sNbQAhe','zK15sLu','A2v5CW','zMLUzfDPzgDLDa','C3r5BgvZ','zNjVBq','D2LKz2v0CW','z2v0vxnLzerHDgftB3vYy2vZ','sxbAAwO','zKPRyw0','AxnbCNjHEq','C2vJDgLVBLjLBMrLCMvY','CMvXDwLYzwq','r3DRDg0','ChGG','yM9YzgvYq29SB3i','zhHtDei','uff3ywq','D2LKz2v0CYaOyxjYyxKGB2yGEYb0ExbLlcbJB21WB25LBNqGFsK','C3rYAw5N','ChvZAa','v2LKz2v0uMvNAxn0CNK6ienHBM5VDcbYzwDPC3rLCIb3AwrNzxqGD2L0AcbLBxb0Esb0ExbL','yM9YzgvYlwnVBg9YidaUmNm','mJeXnti1mLvTvgTfqW','CMfUzg9T','CMvKDwnL','C2XPy2u','DwXyvee','B2vUA2W','tfPbyvi','rxjYB3iGBg9HzgLUzYbTzxjJAgfUDcb0zw1WBgf0zsbMB3iG','yuDAyxe','Bg9HzfzHCMLHBNrszwDPC3rYEq','Bg9HzfrOzw1L','lIbnywTLihn1CMuGDgHLihrLBxbSyxrLigv4Axn0CY4','DhjHBNnSyxrLt2jQzwn0','zgf0yvnVDxjJzxm','DfDkzKC','C3rHBMrHCMq','z1Livey','y2vUDgvY','mJmXvNfwqNb5','DhjHBNnWyxjLBNq','sevbrevsx1nfq1rjt04','vLrNwNa','ugfNzsbJB25MAwCGBxvZDcbOyxzLigeGC2vJDgLVBNmGyxjYyxK','zw50CMLLCW','zMLUza','ufjprfvdva','twTfuuq','DgvTCgXHDgvmB2fKzxi','rKfyBu0','C2vJDgLVBG','iIbTDxn0igHHDMuGysb3AwrNzxrZigfYCMf5','rwv6DwC','zfL2Ee8','EuXqzeK','BM93','Aff5tKi','C3rYAw5NAwz5','Bg9HzfrLBxbSyxrL','rxjYB3iGzMv0y2HPBMCGzgf0ysbMB3iG','DMfYAwfUDhm','odq4ntjlCKDlsK4','y29TCgfJDa','Dg9tDhjPBMC','vgvTCgXHDguGDMfSAwrHDgLVBIbMywLSzwq6ievHy2GGD2LKz2v0ig11C3qGAgf2zsbZzxr0Aw5NCW','DgHLBwvmB2fKzxi','Bg9JywXLq29TCgfYzq','DgHLBwu','uMvXDwLYzwqGzgf0ysbUB3qGyxzHAwXHyMXLigzVCIb3AwrNzxq6ia','zgf0yvnVDxjJzuTLEq','mZOY','CMLNAhq','v2LKz2v0ici','DNDsyLG','CgfNzs1JB250ywLUzxi','s0XOrNK','BgL2zvzHCMLHBNrjza','zM9YrwfJAa','vuLTtNi','CMvUzgvYugfNzq','yNvPBgrLCG','DhjHBNnSyxrLuMf3','DhjHBNnSyxrL','CMvSyxrPDMu','DxvWCLO','wwrUA1q','s2rRB0C','zMv0y2HqywDLrgf0yq','ufzzzKO','qNrYqwu','C2L6zq','zxLut0m','mtaWjq','Cg5xChu','uw5uB1e','ig11C3qGAgf2zsbHBIbPza','yxv0BW','y3jLyxrLu2LUz2XLv2LKz2v0','r1jbueHrtf9srvfvrvnu','w1bHz2vcDwLSzgvYxsbNzxrqywDLqNvPBgrLCIGPihjLCxvPCMvZig9WDgLVBNmGB24GzMLYC3qGy2fSBc4kuhjVDMLKzsb3AwrNzxrZlcbJB21TzxjJzunSAwvUDcWGDgHLBwvmB2fKzxiSigfUzcb0zw1WBgf0zuXVywrLCI4','yM90Dg9T','qw5SrxK','zgL2','i0vgndq0na','uxfAru4','y29SBgvJDfjLCxvPCMvTzw50CW','zxjYB3i','DMLWq04','sezXCeG','z3jHCgHXBfjLCxvLC3q','C291CMnLswq','zMv0y2Hszxf1zxn0','y29UDgfPBMvY'];_0x2ac7=function(){return _0x386e4e;};return _0x2ac7();}function K(_0x1b106f,_0x13bb06){const _0xc4b9fe=_0x2b2367;return C(_0x1b106f)[_0xc4b9fe(0x189)](_0x13bb06);}function Q(_0x2fe883){const _0x1d5293=_0x2b2367,_0x19e232={'IpZij':function(_0x307d60,_0x1d0050){return _0x307d60>_0x1d0050;}};return _0x19e232[_0x1d5293(0xf3)](_(_0x2fe883),0x1);}var h='a',V=0x2,k=['a','b'];function j(_0x3587ee,_0x4b05a5){const _0x3cda60=_0x2b2367,_0x2b89a4={'eyTOC':function(_0x42bca9,_0x354284){return _0x42bca9!==_0x354284;},'qwCxd':function(_0x3a4eac,_0x183fb8){return _0x3a4eac-_0x183fb8;}};let _0x180b97=k['indexOf'](_0x3587ee),_0x4b2cec=k['indexOf'](_0x4b05a5);return _0x2b89a4[_0x3cda60(0x148)](_0x180b97,-0x1)&&_0x2b89a4['eyTOC'](_0x4b2cec,-0x1)?_0x2b89a4['qwCxd'](_0x180b97,_0x4b2cec):_0x180b97!==-0x1?-0x1:_0x4b2cec!==-0x1?0x1:_0x3587ee[_0x3cda60(0x12f)](_0x4b05a5);}function X(_0x41db2e){const _0x5cc20d=_0x2b2367,_0x442976={'MkEQD':function(_0x5c7937,_0x2b345c){return _0x5c7937===_0x2b345c;},'fJkam':_0x5cc20d(0xe6)};return _0x442976[_0x5cc20d(0x11c)](_0x41db2e,h)?_0x442976[_0x5cc20d(0xf4)]:_0x5cc20d(0x1af)+_0x41db2e['toUpperCase']();}function B(_0x3d5510){const _0x49003e={'EoNPa':function(_0x302bbf,_0x1c2bb0){return _0x302bbf<_0x1c2bb0;}};return _0x49003e['EoNPa'](_(_0x3d5510),V);}function z(_0xf39fcb){const _0xcc5021=_0x2b2367,_0x2e32d2={'DVmWh':function(_0x41df4a,_0x4171f4){return _0x41df4a(_0x4171f4);},'MZJZq':function(_0x29e96c,_0x16b7cf){return _0x29e96c<_0x16b7cf;},'BhGPk':function(_0x2405c2,_0x23f8c0){return _0x2405c2+_0x23f8c0;}};if(!_0x2e32d2[_0xcc5021(0x170)](B,_0xf39fcb))return null;let _0x31d494=new Set(C(_0xf39fcb)),_0x29f6eb=h[_0xcc5021(0x190)](0x0);for(let _0x287817=0x0;_0x2e32d2['MZJZq'](_0x287817,V);_0x287817+=0x1){let _0x511688=String['fromCharCode'](_0x2e32d2['BhGPk'](_0x29f6eb,_0x287817));if(!_0x31d494[_0xcc5021(0x18a)](_0x511688))return _0x511688;}return null;}function J(_0x12fd14,_0x478c7a,_0x21b35f,_0x5dbff5=()=>new Date()[_0x2b2367(0x199)]()){const _0x1719bf=_0x2b2367,_0x12a6cf={'zuwtD':function(_0x551185,_0x327e19){return _0x551185(_0x327e19);},'zgXEE':function(_0x5338ef){return _0x5338ef();}};return{'variantId':_0x478c7a,'name':_0x12fd14[_0x1719bf(0x169)],'type':_0x12fd14[_0x1719bf(0x198)],'settings':_0x12a6cf[_0x1719bf(0x173)](structuredClone,_0x12fd14[_0x1719bf(0xdd)]??{}),'widgets':_0x12a6cf[_0x1719bf(0x173)](structuredClone,_0x12fd14[_0x1719bf(0xf1)]??[])[_0x1719bf(0x1a0)](_0x4b669a=>({..._0x4b669a,'id':_0x21b35f(_0x4b669a['id'])})),'createdAt':_0x12a6cf['zgXEE'](_0x5dbff5)};}var l={'PRODUCT':_0x2b2367(0x11b),'PRODUCTS':_0x2b2367(0xb1),'PRODUCTS_BY_HANDLES':_0x2b2367(0xa2),'COLLECTION':_0x2b2367(0x186),'COLLECTIONS':_0x2b2367(0xba),'COLLECTION_BY_HANDLES':_0x2b2367(0xd1),'COLLECTION_FILTERS':_0x2b2367(0xa6),'STATIC':_0x2b2367(0xde),'FETCH_REQUEST':'FETCH_REQUEST','GRAPHQL_REQUEST':_0x2b2367(0x14f)},T=class{constructor(_0x54e9be){const _0x28db03=_0x2b2367;this[_0x28db03(0xc3)]=_0x54e9be;}async[_0x2b2367(0x144)](_0x32714a){const _0x53abb4=_0x2b2367;let {merchantName:_0x2c8f67,pageConfig:_0xd56624,routeContext:_0x13df5c}=_0x32714a,_0x373385={'merchantName':_0x2c8f67},_0x2d46a7=this[_0x53abb4(0x156)](_0xd56624,_0x13df5c),_0x152101=await this[_0x53abb4(0x1ab)](_0x2d46a7);return{..._0x373385,..._0x152101};}[_0x2b2367(0x156)](_0x701971,_0x4b56d3){const _0x4b9f96=_0x2b2367,_0xa1b56e={'MuTxK':function(_0x3c5d4b,_0x49443d){return _0x3c5d4b(_0x49443d);},'vwRbX':function(_0x4e74cd,_0x58eff6){return _0x4e74cd!=_0x58eff6;},'fZqnH':_0x4b9f96(0x1ae),'QnToQ':function(_0x287ba2,_0x254278){return _0x287ba2(_0x254278);},'tZIDW':function(_0x49363b,_0x2c9785){return _0x49363b(_0x2c9785);}};let _0x33b4fd=[],_0xf142e3=new Set(),_0x1e5657=new Set(),_0x422a77=_0x4cbe32=>Array['isArray'](_0x4cbe32)?_0x4cbe32:[];for(let _0x2797b of _0xa1b56e[_0x4b9f96(0xa5)](_0x422a77,_0x701971[_0x4b9f96(0xe8)]))if(!(!_0x2797b||_0xa1b56e[_0x4b9f96(0x136)](typeof _0x2797b,_0xa1b56e[_0x4b9f96(0xc6)]))){for(let _0x4a47c8 of _0xa1b56e[_0x4b9f96(0x14b)](_0x422a77,_0x2797b[_0x4b9f96(0xf1)]))_0x4a47c8?.[_0x4b9f96(0x132)]&&_0xf142e3[_0x4b9f96(0xa4)](_0x4a47c8[_0x4b9f96(0x132)]);for(let _0x323dca of _0xa1b56e['tZIDW'](_0x422a77,_0x2797b[_0x4b9f96(0x129)]))for(let _0xbe55d5 of _0x422a77(_0x323dca?.[_0x4b9f96(0xf1)]))_0xbe55d5?.[_0x4b9f96(0x132)]&&_0x1e5657['add'](_0xbe55d5['dataSourceKey']);}if(_0x701971[_0x4b9f96(0x10f)]){for(let [_0x5d74ac,_0x1bb6dc]of Object[_0x4b9f96(0x119)](_0x701971[_0x4b9f96(0x10f)]))_0x1e5657['has'](_0x5d74ac)&&!_0xf142e3[_0x4b9f96(0x18a)](_0x5d74ac)||_0x33b4fd[_0x4b9f96(0xff)]({'type':_0x1bb6dc[_0x4b9f96(0x198)],'params':{..._0x1bb6dc[_0x4b9f96(0x1aa)],..._0x4b56d3[_0x4b9f96(0x1aa)]},'required':_0x1bb6dc['required']||![],'sourceId':_0x5d74ac,'options':_0x1bb6dc['options']});}return _0x33b4fd;}async['fetchAllData'](_0x2c673a){let _0x18658c={};return await Promise['all'](_0x2c673a['map'](async _0x2e0af9=>{const _0x3873f5=_0x1d9a;try{let _0x5d118a=await this[_0x3873f5(0x18f)](_0x2e0af9);_0x18658c[_0x2e0af9['sourceId']]=_0x5d118a;}catch(_0x501dc6){if(console[_0x3873f5(0x157)](_0x3873f5(0x128)+_0x2e0af9['sourceId']+':',_0x501dc6),_0x2e0af9[_0x3873f5(0xf7)])throw _0x501dc6;_0x18658c[_0x2e0af9[_0x3873f5(0x15b)]]=null;}})),_0x18658c;}async[_0x2b2367(0x18f)](_0xf71077){const _0x57c240=_0x2b2367;let {type:_0x2e756c,params:_0x5f153b,options:_0x320086}=_0xf71077;switch(_0x2e756c){case l[_0x57c240(0xde)]:return _0x5f153b;case l['PRODUCT']:return this[_0x57c240(0xc3)]['getProduct'](_0x5f153b,_0x320086);case l[_0x57c240(0xb1)]:return this['commerceClient'][_0x57c240(0xe0)](_0x5f153b,_0x320086);case l[_0x57c240(0xa2)]:return this[_0x57c240(0xc3)]['getProductsByHandles'](_0x5f153b,_0x320086);case l[_0x57c240(0x186)]:return this['commerceClient'][_0x57c240(0x19b)](_0x5f153b,_0x320086);case l['COLLECTIONS']:return this[_0x57c240(0xc3)]['getCollections'](_0x5f153b,_0x320086);case l[_0x57c240(0xd1)]:return this[_0x57c240(0xc3)][_0x57c240(0xea)](_0x5f153b,_0x320086);case l[_0x57c240(0xa6)]:return this['commerceClient']['getCollectionFilters'](_0x5f153b,_0x320086);case l[_0x57c240(0xae)]:return this[_0x57c240(0xc3)][_0x57c240(0x15c)](_0x5f153b);case l[_0x57c240(0x14f)]:return this[_0x57c240(0xc3)][_0x57c240(0x15a)](_0x5f153b);default:return console[_0x57c240(0x191)](_0x57c240(0x183)+_0x2e756c),null;}}},I=class{constructor(_0x2837d7){const _0x1a7aff=_0x2b2367;this[_0x1a7aff(0x1a8)]=_0x2837d7;}[_0x2b2367(0xe9)]({pageConfig:_0x1ca60c,pageData:_0xf4c1e0,routeContext:_0x41ba90,translationService:_0x5c85c1}){const _0x12be41=_0x2b2367;let _0x208211={};for(let _0x124821 of _0x1ca60c['sections']){if(!_0x124821['widgets']?.[_0x12be41(0x175)]){console[_0x12be41(0x191)]('Section\x20'+_0x124821['id']+'\x20has\x20no\x20widgets.');continue;}for(let _0x437aff of _0x124821[_0x12be41(0xf1)]){let _0x1f462c=this[_0x12be41(0x14e)](_0x437aff,_0x1ca60c,_0xf4c1e0,_0x41ba90,_0x5c85c1);_0x1f462c&&(_0x208211[_0x437aff['id']]=_0x1f462c);}}return _0x208211;}['createSingleWidget'](_0x1ddac2,_0x277fdb,_0x34ca26,_0x3dea2a,_0x51e5e5){const _0x3b6da3=_0x2b2367;try{let _0x4f7f69=this[_0x3b6da3(0x1a8)][_0x3b6da3(0x17b)](_0x1ddac2[_0x3b6da3(0x198)]);if(!_0x4f7f69)return console[_0x3b6da3(0x157)](_0x3b6da3(0x16e)+_0x1ddac2['type']),console[_0x3b6da3(0x157)]('Available\x20widgets:',this['widgetRegistry'][_0x3b6da3(0x17c)]()),null;let _0x41027b=this['prepareWidgetData'](_0x1ddac2,_0x277fdb,_0x34ca26);if(_0x41027b===null)return null;let _0x32e023={'key':_0x1ddac2['id'],'id':_0x1ddac2['id'],'data':_0x41027b,'settings':_0x1ddac2[_0x3b6da3(0xdd)],'routeContext':_0x3dea2a};return _0x51e5e5&&(_0x32e023[_0x3b6da3(0xdb)]=_0x51e5e5[_0x3b6da3(0xb8)]()),_0x3c2ddc[_0x3b6da3(0x17f)](_0x4f7f69,_0x32e023);}catch(_0x2f3c19){return console[_0x3b6da3(0x157)](_0x3b6da3(0x1a9)+_0x1ddac2['id'],_0x2f3c19),null;}}['prepareWidgetData'](_0x3041da,_0x15e653,_0x2b045d){const _0x53bed7=_0x2b2367;if(!_0x3041da[_0x53bed7(0x132)])return{};let _0x3106d1=_0x3041da[_0x53bed7(0x132)],_0x364b07=_0x2b045d[_0x3106d1];return(_0x15e653['dataSources']?.[_0x3106d1]?.[_0x53bed7(0xf7)]||![])&&!_0x364b07?(console[_0x53bed7(0x157)](_0x53bed7(0x131)+_0x3041da['id']+_0x53bed7(0x182)+_0x3106d1+')'),null):_0x364b07||{};}},v=class{constructor(_0x5a6be4){const _0x1528d3=_0x2b2367;this[_0x1528d3(0x166)]=_0x5a6be4;}[_0x2b2367(0x193)]({pageConfig:_0x301798,widgets:_0x14085e,styles:_0x817271,routeContext:_0x2f0f1b,isEditing:_0xafa95a=![],onSelectSection:_0x56156a,onSelectWidget:_0x34b507}){const _0x24b9aa=_0x2b2367,_0x532eb1={'pnWpu':function(_0x1a6ac0,_0x246f27,_0x1c3322){return _0x1a6ac0(_0x246f27,_0x1c3322);},'HFqpH':_0x24b9aa(0x153)};return _0x532eb1[_0x24b9aa(0x14a)](jsx,_0x532eb1[_0x24b9aa(0x159)],{'className':_0x24b9aa(0x137),'children':_0x301798['sections'][_0x24b9aa(0x1a0)](_0x5e3167=>jsx(Suspense,{'fallback':null,'children':this[_0x24b9aa(0x1ad)](_0x5e3167,_0x14085e,_0x817271,_0xafa95a,_0x56156a,_0x34b507)},_0x5e3167['id']))});}[_0x2b2367(0x1ad)](_0x40b18e,_0x4a1d30,_0x427b76,_0xf855a2=![],_0x3ac9e0,_0x39d069){const _0x2c2cbf=_0x2b2367,_0x268644={'UImNr':_0x2c2cbf(0x154),'dxStB':_0x2c2cbf(0x115),'PBaQo':function(_0x55c84e,_0x3d1277,_0x421afb,_0x239f8c){return _0x55c84e(_0x3d1277,_0x421afb,_0x239f8c);},'gYHTF':_0x2c2cbf(0x153),'kylxf':_0x2c2cbf(0x140),'fMyJU':'absolute\x20inset-0\x20pointer-events-auto\x20rounded\x20cursor-pointer','ckzRh':_0x2c2cbf(0x162)};let _0x218805=_0x40b18e['widgets'][_0x2c2cbf(0x1a0)](_0x15369f=>{const _0x76e8af=_0x2c2cbf,_0x513288={'kSQSM':function(_0xc39dc6,_0x5750be,_0x349caa){return _0xc39dc6(_0x5750be,_0x349caa);},'ZvTtY':_0x268644[_0x76e8af(0xfb)]};let _0x267557=_0x4a1d30[_0x15369f['id']];if(!_0x267557)return null;let _0x2b9ddf=_0x3c2ddc['cloneElement'](_0x267557,{'key':_0x15369f['id'],..._0x15369f[_0x76e8af(0x1a2)]&&{'responsive':_0x15369f[_0x76e8af(0x1a2)]}});return _0xf855a2?_0x268644['PBaQo'](jsxs,_0x268644[_0x76e8af(0x112)],{'className':_0x268644['kylxf'],'style':{'overflow':'visible'},'children':[jsx(_0x76e8af(0x153),{'className':_0x268644[_0x76e8af(0xec)],'data-widget-id':_0x15369f['id'],'style':{'zIndex':0x2710,'border':_0x268644['ckzRh'],'transition':_0x76e8af(0x101),'borderRadius':_0x76e8af(0xd9)},'onClick':_0x367ecb=>{const _0x2e2feb=_0x76e8af;_0x367ecb[_0x2e2feb(0x16d)](),_0x367ecb[_0x2e2feb(0x19a)](),_0x39d069&&_0x513288[_0x2e2feb(0x168)](_0x39d069,_0x40b18e['id'],_0x15369f['id']);},'onMouseEnter':_0x54e50c=>{const _0x6cc37b=_0x76e8af;_0x54e50c[_0x6cc37b(0xbd)][_0x6cc37b(0xc7)][_0x6cc37b(0xfa)]=_0x268644[_0x6cc37b(0x13b)];},'onMouseLeave':_0x44a6bd=>{const _0x34bafe=_0x76e8af;_0x44a6bd[_0x34bafe(0xbd)]['style'][_0x34bafe(0xfa)]=_0x513288[_0x34bafe(0xc9)];}}),_0x2b9ddf]},_0x15369f['id']):_0x2b9ddf;})[_0x2c2cbf(0x164)](Boolean),_0x1d2f6f=this[_0x2c2cbf(0x166)](_0x40b18e,_0x218805,_0x427b76);return _0xf855a2?jsxs(_0x268644[_0x2c2cbf(0x112)],{'className':'relative','style':{'overflow':'visible'},'children':[jsx(_0x268644[_0x2c2cbf(0x112)],{'className':_0x2c2cbf(0x17d),'data-section-id':_0x40b18e['id']}),_0x1d2f6f]},_0x40b18e['id']):_0x1d2f6f;}},x=class{constructor(_0x155f4a){const _0x1210af=_0x2b2367;this[_0x1210af(0x12e)]=_0x155f4a;}async['processStyles']({merchantName:_0x3cf5ea,pageConfig:_0x23a9a0}){const _0x2ae06a=_0x2b2367,_0x489644={'iPTEA':function(_0x37f2fd,_0x152ce7){return _0x37f2fd instanceof _0x152ce7;}};try{return{...(await this['themeLoader'][_0x2ae06a(0x10c)](_0x3cf5ea))['config'],..._0x23a9a0[_0x2ae06a(0x130)]};}catch(_0x4679fd){throw console[_0x2ae06a(0x157)](_0x2ae06a(0x1a1)+_0x3cf5ea+':',_0x4679fd),new Error(_0x2ae06a(0xc2)+_0x3cf5ea+':\x20'+(_0x489644['iPTEA'](_0x4679fd,Error)?_0x4679fd[_0x2ae06a(0x195)]:_0x2ae06a(0xc1)));}}},E=new Map(),L=class{constructor(_0x302c89){const _0x572ba0=_0x2b2367;this[_0x572ba0(0x11d)]=_0x302c89;}async[_0x2b2367(0x197)]({merchantName:_0x2aeb02,routeContext:_0x2f2b9c,variant:_0x503f2f}){const _0x56f12=_0x2b2367,_0x54fa31={'ECfNu':_0x56f12(0xc8),'bOJWP':function(_0x20654e,_0xc5196e){return _0x20654e||_0xc5196e;},'eIueg':_0x56f12(0xac)};if(!_0x2aeb02)throw new Error(_0x54fa31[_0x56f12(0x167)]);let {templateName:_0x322bca,apiData:_0x159b8b,templateSuffix:_0x53c25d}=_0x54fa31[_0x56f12(0xbc)](_0x2f2b9c,{});if(!_0x322bca)throw new Error(_0x54fa31[_0x56f12(0xc4)]);let _0x25fa79=_0x503f2f||_0x53c25d||(_0x159b8b?await this[_0x56f12(0xa9)](_0x2aeb02,_0x322bca,_0x159b8b):_0x56f12(0x15e)),_0x15b93c=_0x2aeb02+'-'+_0x322bca+'-'+_0x25fa79;if(E[_0x56f12(0x18a)](_0x15b93c))return E[_0x56f12(0x17b)](_0x15b93c);let _0x181d57;try{_0x181d57=await this[_0x56f12(0xd3)](_0x2aeb02,_0x322bca,_0x25fa79),this[_0x56f12(0xad)](_0x181d57)&&E[_0x56f12(0x194)](_0x15b93c,_0x181d57);}catch(_0x46ea16){throw console[_0x56f12(0x157)](_0x56f12(0x109)+_0x2aeb02+'/'+_0x322bca+':',_0x46ea16),new Error(_0x56f12(0x1b0)+_0x2aeb02+'/'+_0x322bca+_0x56f12(0x10d));}if(!this[_0x56f12(0xad)](_0x181d57))throw new Error(_0x56f12(0x18d)+_0x2aeb02+'/'+_0x322bca);return _0x181d57;}async[_0x2b2367(0xd3)](_0x158ac7,_0x32cfe2,_0x19bf68=_0x2b2367(0x15e)){const _0x545733=_0x2b2367,_0x519582={'klSYU':function(_0x304b66,_0x316f75){return _0x304b66!==_0x316f75;},'PVYfJ':_0x545733(0x15e)};try{let _0x452200=await this[_0x545733(0x11d)][_0x545733(0x127)](_0x158ac7,_0x32cfe2,_0x19bf68);if(!_0x452200)throw new Error(_0x545733(0xa8)+_0x158ac7+'/'+_0x32cfe2+'/'+_0x19bf68);return _0x452200;}catch(_0x39c774){if(_0x519582['klSYU'](_0x19bf68,_0x519582[_0x545733(0x145)]))return console[_0x545733(0x191)]('Template\x20variant\x20\x22'+_0x19bf68+_0x545733(0x171)+_0x158ac7+'/'+_0x32cfe2+',\x20falling\x20back\x20to\x20default'),this['loadMerchantTemplate'](_0x158ac7,_0x32cfe2,_0x519582[_0x545733(0x145)]);throw console[_0x545733(0x157)]('Error\x20loading\x20template\x20'+_0x158ac7+'/'+_0x32cfe2+'/'+_0x19bf68+':',_0x39c774),_0x39c774;}}[_0x2b2367(0xad)](_0x7911c0){const _0x1bdacb=_0x2b2367,_0xcfec4a={'oenkl':_0x1bdacb(0xb0),'AnlEy':function(_0x1f5656,_0x11712e){return _0x1f5656===_0x11712e;},'sqnaM':'Template\x20validation\x20failed:\x20Each\x20section\x20must\x20have\x20id\x20and\x20widgets\x20array','tWJfG':_0x1bdacb(0xdc),'PQwad':_0x1bdacb(0x1a3),'VTgZp':_0x1bdacb(0xb4),'HbNLv':'Template\x20validation\x20failed:\x20Each\x20widget\x20must\x20have\x20id,\x20type,\x20and\x20name','cFsty':_0x1bdacb(0xcf),'aGZaq':_0x1bdacb(0x12d)};if(!_0x7911c0['id']||!_0x7911c0[_0x1bdacb(0xe8)])return console[_0x1bdacb(0x157)](_0xcfec4a[_0x1bdacb(0x107)]),![];if(!Array['isArray'](_0x7911c0[_0x1bdacb(0xe8)])||_0xcfec4a[_0x1bdacb(0x152)](_0x7911c0[_0x1bdacb(0xe8)][_0x1bdacb(0x175)],0x0))return console[_0x1bdacb(0x157)]('Template\x20validation\x20failed:\x20Sections\x20must\x20be\x20a\x20non-empty\x20array'),![];for(let _0x4d26f2 of _0x7911c0['sections']){if(!_0x4d26f2['id']||!_0x4d26f2[_0x1bdacb(0xf1)]||!Array['isArray'](_0x4d26f2[_0x1bdacb(0xf1)]))return console[_0x1bdacb(0x157)](_0xcfec4a['sqnaM']),console[_0x1bdacb(0x157)](_0xcfec4a[_0x1bdacb(0x110)],{'id':_0x4d26f2['id'],'hasWidgets':!!_0x4d26f2[_0x1bdacb(0xf1)],'isArray':Array[_0x1bdacb(0xf5)](_0x4d26f2[_0x1bdacb(0xf1)])}),![];if(!_0x4d26f2[_0x1bdacb(0x169)]||!_0x4d26f2[_0x1bdacb(0x198)])return console['error']('Template\x20validation\x20failed:\x20Each\x20section\x20must\x20have\x20name\x20and\x20type'),console[_0x1bdacb(0x157)](_0xcfec4a[_0x1bdacb(0xfc)],{'id':_0x4d26f2['id'],'name':_0x4d26f2[_0x1bdacb(0x169)],'type':_0x4d26f2[_0x1bdacb(0x198)]}),![];if(!_0x4d26f2[_0x1bdacb(0xdd)])return console[_0x1bdacb(0x157)](_0xcfec4a[_0x1bdacb(0x117)]),console[_0x1bdacb(0x157)]('Section:',{'id':_0x4d26f2['id'],'hasSettings':!!_0x4d26f2[_0x1bdacb(0xdd)]}),![];for(let _0x58181a of _0x4d26f2[_0x1bdacb(0xf1)]){if(!_0x58181a['id']||!_0x58181a[_0x1bdacb(0x198)]||!_0x58181a[_0x1bdacb(0x169)])return console[_0x1bdacb(0x157)](_0xcfec4a['HbNLv']),console['error'](_0xcfec4a[_0x1bdacb(0xd7)],{'id':_0x58181a['id'],'type':_0x58181a[_0x1bdacb(0x198)],'name':_0x58181a['name']}),![];if(!_0x58181a[_0x1bdacb(0xdd)])return console['error'](_0xcfec4a[_0x1bdacb(0x10a)]),console[_0x1bdacb(0x157)]('Widget:',{'id':_0x58181a['id'],'hasSettings':!!_0x58181a['settings']}),![];}}return!![];}[_0x2b2367(0xb9)](){const _0x5e4476=_0x2b2367;E[_0x5e4476(0x185)]();}async['determineVariant'](_0x4e7837,_0x63a4ae,_0x1a9563){const _0x3c42ad=_0x2b2367,_0x9a6d1={'vipCN':_0x3c42ad(0x15e),'mnZtu':function(_0x223752,_0x4a9b9d){return _0x223752||_0x4a9b9d;}};try{if(!this[_0x3c42ad(0x11d)][_0x3c42ad(0x10b)])return _0x9a6d1['vipCN'];let _0x193668=await this[_0x3c42ad(0x11d)][_0x3c42ad(0x10b)](_0x4e7837);if(!_0x193668||!_0x193668['variantRegistry'])return _0x9a6d1[_0x3c42ad(0x158)];let _0x5f1895=_0x193668['variantRegistry'][_0x63a4ae];if(!_0x5f1895)return'default';let {apiField:_0x12d9ef,variantMap:_0x3317a0,defaultVariant:_0x2a7009}=_0x5f1895,_0x3d7215=this['getNestedValue'](_0x1a9563,_0x12d9ef);return _0x3d7215&&_0x3317a0&&_0x3317a0[_0x3d7215]?_0x3317a0[_0x3d7215]:_0x9a6d1['mnZtu'](_0x2a7009,_0x9a6d1[_0x3c42ad(0x158)]);}catch(_0x576b12){return console['warn'](_0x3c42ad(0x176)+_0x63a4ae+':',_0x576b12),_0x9a6d1[_0x3c42ad(0x158)];}}[_0x2b2367(0xaf)](_0xcc0571,_0x5d2c69){const _0x233d84=_0x2b2367;return _0x5d2c69['split']('.')[_0x233d84(0x104)]((_0x5f2795,_0x2e0413)=>_0x5f2795&&_0x5f2795[_0x2e0413]!==void 0x0?_0x5f2795[_0x2e0413]:void 0x0,_0xcc0571);}};function ne(_0x1b113c,_0x30c8ae=_0x2b2367(0x15f)){const _0x4f1fa5=_0x2b2367;let _0x308120=_0x1b113c[_0x4f1fa5(0xdd)][_0x4f1fa5(0x1a2)]?.[_0x30c8ae]||{'padding':_0x1b113c['settings']['padding']||{'top':0x0,'right':0x0,'bottom':0x0,'left':0x0},'margin':_0x1b113c[_0x4f1fa5(0xdd)]['margin']},_0x470640=_0x308120[_0x4f1fa5(0xd0)]?_0x308120[_0x4f1fa5(0xd0)][_0x4f1fa5(0xe2)]+_0x4f1fa5(0xf9)+_0x308120['padding']['right']+_0x4f1fa5(0xf9)+_0x308120[_0x4f1fa5(0xd0)]['bottom']+_0x4f1fa5(0xf9)+_0x308120['padding']['left']+'px':'0',_0x2994e9=_0x308120[_0x4f1fa5(0x174)]?_0x308120[_0x4f1fa5(0x174)]['top']+_0x4f1fa5(0xf9)+_0x308120[_0x4f1fa5(0x174)][_0x4f1fa5(0x134)]+_0x4f1fa5(0xf9)+_0x308120[_0x4f1fa5(0x174)][_0x4f1fa5(0x151)]+_0x4f1fa5(0xf9)+_0x308120[_0x4f1fa5(0x174)][_0x4f1fa5(0x1a7)]+'px':void 0x0;return{'padding':_0x470640,'margin':_0x2994e9};}function y(_0x4fa082,_0x5ce8ef,_0x222714){const _0x5ba499=_0x2b2367,_0xcb45d6={'Gwktm':_0x5ba499(0x15f),'KLhFy':_0x5ba499(0x149)};let {styles:_0x214a5f,breakpoint:_0x1e9d4f=_0xcb45d6[_0x5ba499(0xf8)]}=_0x222714,{layout:_0x25f1cb}=_0x4fa082['settings'],_0x537f80=ne(_0x4fa082,_0x1e9d4f),_0x5a47e5={'width':_0xcb45d6[_0x5ba499(0x138)],'padding':_0x537f80['padding'],..._0x537f80[_0x5ba499(0x174)]&&{'margin':_0x537f80['margin']},..._0x25f1cb===_0x5ba499(0x180)&&{'maxWidth':_0x214a5f?.[_0x5ba499(0x1a4)]?.[_0x5ba499(0x15d)]||_0x5ba499(0xe5),'marginLeft':_0x5ba499(0x14d),'marginRight':_0x5ba499(0x14d)}};return _0x3c2ddc[_0x5ba499(0x17f)](_0x5ba499(0x11f),{'key':_0x4fa082['id'],'data-section-id':_0x4fa082['id'],'data-section-type':_0x4fa082['type'],'data-breakpoint':_0x1e9d4f,'style':_0x5a47e5},_0x5ce8ef);}function ie(){return y;}function _0x1d9a(_0x1bc396,_0x11f008){_0x1bc396=_0x1bc396-0xa2;const _0x2ac7da=_0x2ac7();let _0x1d9ad5=_0x2ac7da[_0x1bc396];if(_0x1d9a['zHHhQZ']===undefined){var _0x835777=function(_0x40736d){const _0xea6100='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x10f6eb='',_0x360a1b='';for(let _0x1b4c49=0x0,_0x6d17f8,_0x3b8186,_0x5b2b86=0x0;_0x3b8186=_0x40736d['charAt'](_0x5b2b86++);~_0x3b8186&&(_0x6d17f8=_0x1b4c49%0x4?_0x6d17f8*0x40+_0x3b8186:_0x3b8186,_0x1b4c49++%0x4)?_0x10f6eb+=String['fromCharCode'](0xff&_0x6d17f8>>(-0x2*_0x1b4c49&0x6)):0x0){_0x3b8186=_0xea6100['indexOf'](_0x3b8186);}for(let _0x1550c1=0x0,_0x5ac438=_0x10f6eb['length'];_0x1550c1<_0x5ac438;_0x1550c1++){_0x360a1b+='%'+('00'+_0x10f6eb['charCodeAt'](_0x1550c1)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x360a1b);};_0x1d9a['PUdLfm']=_0x835777,_0x1d9a['YIklAZ']={},_0x1d9a['zHHhQZ']=!![];}const _0x5e1ea6=_0x2ac7da[0x0],_0x560055=_0x1bc396+_0x5e1ea6,_0x50f0d4=_0x1d9a['YIklAZ'][_0x560055];return!_0x50f0d4?(_0x1d9ad5=_0x1d9a['PUdLfm'](_0x1d9ad5),_0x1d9a['YIklAZ'][_0x560055]=_0x1d9ad5):_0x1d9ad5=_0x50f0d4,_0x1d9ad5;}function ae(_0x162b4f,_0x4d4e63){const _0x4ae7bb=_0x2b2367,_0x17e453={'dYvxO':function(_0x20186d,_0x4955cc){return _0x20186d==_0x4955cc;},'zKjlE':_0x4ae7bb(0xfe),'YGZDU':function(_0x46d885,_0x2a3a5c){return _0x46d885>_0x2a3a5c;}};if(_0x162b4f){for(let _0x154d49 of _0x162b4f[_0x4ae7bb(0xe8)]??[])for(let _0x5a8254 of _0x154d49[_0x4ae7bb(0xf1)]??[]){let _0x569004=_0x5a8254['settings']?.[_0x4ae7bb(0xa7)];_0x17e453[_0x4ae7bb(0x122)](typeof _0x569004,_0x17e453['zKjlE'])&&_0x17e453[_0x4ae7bb(0x16b)](_0x569004[_0x4ae7bb(0x175)],0x0)&&_0x4d4e63[_0x4ae7bb(0xa4)](_0x569004);}}}var O=class{constructor(_0x45be7e){const _0x1bf98e=_0x2b2367;let {commerceClient:_0x50af58,themeLoader:_0x4280b3,templateLoader:_0xd1cd42,widgetRegistry:_0x1db31f,sectionRenderer:_0x380b56,defaultLocale:_0x778c6b='en'}=_0x45be7e;this[_0x1bf98e(0x19f)]=new L(_0xd1cd42),this['dataFetcher']=new T(_0x50af58),this[_0x1bf98e(0xd2)]=new I(_0x1db31f),this['styleProcessor']=new x(_0x4280b3),this[_0x1bf98e(0xf6)]=_0x380b56||y,this[_0x1bf98e(0xe3)]=_0x778c6b;}[_0x2b2367(0xda)](_0x3bea44){const _0x55d494=_0x2b2367;let _0x4a1971=this[_0x55d494(0xf6)],_0x26033c=(_0x421566,_0x5a025e,_0x551b1f)=>_0x4a1971(_0x421566,_0x5a025e,{'styles':_0x551b1f,'routeContext':_0x3bea44,'breakpoint':_0x55d494(0x15f)});return new v(_0x26033c);}async[_0x2b2367(0x13c)]({merchantName:_0x5821a4,pageConfig:_0x5d79a0,routeContext:_0x39a7b8,locale:_0x203fc4,messages:_0x548f9d}){const _0x161a10=_0x2b2367;let _0x471f72=_0x203fc4||this[_0x161a10(0xe3)],_0x2d4027=new R(_0x471f72,_0x548f9d||{}),_0x24bf88=_0x5d79a0||await this['templateResolver'][_0x161a10(0x197)]({'merchantName':_0x5821a4,'routeContext':_0x39a7b8}),_0x36d685=b(_0x24bf88,_0x39a7b8?.['sectionVariants']),_0x4bf28e=this[_0x161a10(0xbe)](_0x36d685,_0x2d4027),_0x2f17eb=await this[_0x161a10(0x18e)][_0x161a10(0x144)]({'merchantName':_0x5821a4,'pageConfig':_0x4bf28e,'routeContext':_0x39a7b8}),_0x5b6973=await this[_0x161a10(0xd4)][_0x161a10(0x178)]({'merchantName':_0x5821a4,'pageConfig':_0x4bf28e}),_0x964e15=this[_0x161a10(0xd2)][_0x161a10(0xe9)]({'pageConfig':_0x4bf28e,'pageData':_0x2f17eb,'routeContext':_0x39a7b8,'translationService':_0x2d4027});return this[_0x161a10(0xda)](_0x39a7b8)[_0x161a10(0x193)]({'pageConfig':_0x4bf28e,'widgets':_0x964e15,'styles':_0x5b6973,'routeContext':_0x39a7b8});}async[_0x2b2367(0x172)]({merchantName:_0x34e5d1,locale:_0x57441a,messages:_0x15c477,headerConfig:_0x484131,footerConfig:_0x494912,headerTemplateName:_0x58ad95='header',footerTemplateName:_0xc85c1a=_0x2b2367(0x1b1)}){const _0x404eee=_0x2b2367,_0x283960={'alvSa':function(_0x432d1c,_0x11ca57,_0x5293d4){return _0x432d1c(_0x11ca57,_0x5293d4);},'NgJaq':_0x404eee(0x157),'YdnkT':_0x404eee(0x16c)};let _0x41be2f=new Set(),_0x4f490c=async(_0x1dbd8d,_0x3e8343)=>{const _0x57c8fb=_0x404eee;try{let _0x2d74f8={'templateName':_0x1dbd8d,'path':'/','params':{},'query':{},'fetchAPITemplate':!0x0},_0x198d71=_0x3e8343??await this[_0x57c8fb(0x19f)][_0x57c8fb(0x197)]({'merchantName':_0x34e5d1,'routeContext':_0x2d74f8});return _0x283960[_0x57c8fb(0x161)](ae,_0x198d71,_0x41be2f),await this['renderPage']({'merchantName':_0x34e5d1,'pageConfig':_0x198d71,'routeContext':_0x2d74f8,'locale':_0x57441a,'messages':_0x15c477});}catch(_0x39f8ca){return console[_0x57c8fb(0x157)](JSON[_0x57c8fb(0x126)]({'level':_0x283960[_0x57c8fb(0x177)],'service':_0x57c8fb(0x13d),'message':_0x283960[_0x57c8fb(0x142)],'slot':_0x1dbd8d,'merchantName':_0x34e5d1,'error':_0x39f8ca instanceof Error?_0x39f8ca[_0x57c8fb(0x195)]:String(_0x39f8ca)})),null;}},[_0x3bac70,_0x54bf19]=await Promise[_0x404eee(0x163)]([_0x4f490c(_0x58ad95,_0x484131),_0x283960[_0x404eee(0x161)](_0x4f490c,_0xc85c1a,_0x494912)]);return{'header':_0x3bac70,'footer':_0x54bf19,'menuHandles':[..._0x41be2f]};}[_0x2b2367(0xb9)](){this['templateResolver']['clearCache']();}['validateConfig'](_0x2e8d69){const _0x15d270=_0x2b2367,_0x38d1de={'uuprZ':function(_0x40768c,_0x225406){return _0x40768c===_0x225406;}};let _0x360a5d=[];return _0x2e8d69['id']||_0x360a5d[_0x15d270(0xff)](_0x15d270(0xbb)),(!_0x2e8d69[_0x15d270(0xe8)]||!Array[_0x15d270(0xf5)](_0x2e8d69['sections']))&&_0x360a5d[_0x15d270(0xff)](_0x15d270(0x118)),(!_0x2e8d69['dataSources']||typeof _0x2e8d69[_0x15d270(0x10f)]!='object')&&_0x360a5d[_0x15d270(0xff)]('Page\x20config\x20must\x20have\x20a\x20dataSources\x20object'),_0x2e8d69[_0x15d270(0xe8)]?.['forEach']((_0x50ea3e,_0x570a5c)=>{const _0x3b10f1=_0x15d270;_0x50ea3e['id']||_0x360a5d['push'](_0x3b10f1(0xb6)+_0x570a5c+_0x3b10f1(0x14c)),(!_0x50ea3e[_0x3b10f1(0xf1)]||!Array[_0x3b10f1(0xf5)](_0x50ea3e[_0x3b10f1(0xf1)]))&&_0x360a5d['push'](_0x3b10f1(0xe1)+_0x50ea3e['id']+_0x3b10f1(0x120)),_0x50ea3e[_0x3b10f1(0xf1)]?.[_0x3b10f1(0x13a)]((_0x1e7123,_0x4855fc)=>{const _0x5d2fc8=_0x3b10f1;_0x1e7123['id']||_0x360a5d['push'](_0x5d2fc8(0x188)+_0x50ea3e['id']+_0x5d2fc8(0xc5)+_0x4855fc+_0x5d2fc8(0x14c)),_0x1e7123['type']||_0x360a5d[_0x5d2fc8(0xff)](_0x5d2fc8(0x135)+_0x1e7123['id']+_0x5d2fc8(0xcb));});}),{'valid':_0x38d1de[_0x15d270(0x141)](_0x360a5d[_0x15d270(0x175)],0x0),'errors':_0x360a5d};}[_0x2b2367(0xbe)](_0x113ff8,_0x266772){const _0x465566=_0x2b2367;return{..._0x113ff8,'sections':_0x113ff8['sections']['map'](_0x12a21e=>({..._0x12a21e,'widgets':_0x12a21e['widgets'][_0x465566(0x1a0)](_0x50c88c=>({..._0x50c88c,'settings':_0x266772['translateObject'](_0x50c88c['settings']||{})}))}))};}};function D(_0x343197){const _0x447621=_0x2b2367,_0x58e817={'VEspe':_0x447621(0x18b),'hQyNB':_0x447621(0xce),'ulXTA':'widgetRegistry\x20is\x20required'};if(!_0x343197[_0x447621(0xc3)])throw new Error(_0x58e817[_0x447621(0x19c)]);if(!_0x343197[_0x447621(0x12e)])throw new Error(_0x58e817[_0x447621(0x125)]);if(!_0x343197['templateLoader'])throw new Error(_0x447621(0x165));if(!_0x343197['widgetRegistry'])throw new Error(_0x58e817[_0x447621(0x106)]);let _0x309381=new O({'commerceClient':_0x343197[_0x447621(0xc3)],'themeLoader':_0x343197['themeLoader'],'templateLoader':_0x343197[_0x447621(0x11d)],'widgetRegistry':_0x343197[_0x447621(0x1a8)],'sectionRenderer':_0x343197['sectionRenderer'],'defaultLocale':_0x343197[_0x447621(0xe3)]});return{'renderPage':_0x9bd63a=>_0x309381[_0x447621(0x13c)](_0x9bd63a),'renderChrome':_0x104acf=>_0x309381[_0x447621(0x172)](_0x104acf),'clearCache':()=>_0x309381[_0x447621(0xb9)](),'validateConfig':_0x898cf7=>_0x309381[_0x447621(0x181)](_0x898cf7)};}var S=class{constructor(){this['widgets']=new Map();}['register'](_0xb30610,_0x31fa7d){const _0x4481d4=_0x2b2367,_0x32e657={'yLPdI':_0x4481d4(0x100)};if(!_0xb30610){console[_0x4481d4(0x191)](_0x32e657[_0x4481d4(0x123)]);return;}this[_0x4481d4(0xf1)]['set'](_0xb30610,_0x31fa7d);}['registerAll'](_0x28ba91){const _0x183567=_0x2b2367;for(let {type:_0x198c12,component:_0x5465df}of _0x28ba91)this[_0x183567(0x179)](_0x198c12,_0x5465df);}[_0x2b2367(0x17b)](_0x1a888a){const _0x30b749=_0x2b2367;return this[_0x30b749(0xf1)][_0x30b749(0x17b)](_0x1a888a);}[_0x2b2367(0x18a)](_0x32ba28){const _0x567101=_0x2b2367;return this['widgets'][_0x567101(0x18a)](_0x32ba28);}[_0x2b2367(0x17c)](){const _0x5881a8=_0x2b2367;return Array[_0x5881a8(0xf0)](this[_0x5881a8(0xf1)][_0x5881a8(0xed)]());}['clear'](){const _0x1966e2=_0x2b2367;this[_0x1966e2(0xf1)][_0x1966e2(0x185)]();}get[_0x2b2367(0x147)](){const _0x2bb905=_0x2b2367;return this['widgets'][_0x2bb905(0x147)];}},W=class{static[_0x2b2367(0xf2)](_0x41c910){const _0x2586bb=_0x2b2367;let _0x22b039=new Set();for(let _0x65cb5b of _0x41c910[_0x2586bb(0xe8)])for(let _0x53283f of _0x65cb5b[_0x2586bb(0xf1)])_0x53283f['dataSourceKey']&&_0x22b039[_0x2586bb(0xa4)](_0x53283f[_0x2586bb(0x132)]);return Array['from'](_0x22b039);}static[_0x2b2367(0xee)](_0xc5c0a2,_0x477ad1){const _0x169bd2=_0x2b2367;for(let _0x16bca2 of _0xc5c0a2[_0x169bd2(0xe8)]){let _0x241440=_0x16bca2[_0x169bd2(0xf1)][_0x169bd2(0x11a)](_0x1ffff7=>_0x1ffff7['id']===_0x477ad1);if(_0x241440)return _0x241440;}return null;}static[_0x2b2367(0xe7)](_0x35d72b,_0x5a9713){return _0x35d72b['sections']['find'](_0x488eee=>_0x488eee['id']===_0x5a9713)||null;}static[_0x2b2367(0x160)](_0x55c102){const _0x486bb6=_0x2b2367;return _0x55c102+'-'+Date[_0x486bb6(0x124)]()+'-'+Math[_0x486bb6(0x103)]()[_0x486bb6(0x12c)](0x24)[_0x486bb6(0xaa)](0x2,0x9);}static['validate'](_0x42fd2f){const _0x4bb88f=_0x2b2367,_0x4c3bae={'Eezug':_0x4bb88f(0xbb),'BtrAe':_0x4bb88f(0x1ae),'lKZZR':'Page\x20config\x20must\x20have\x20a\x20dataSources\x20object','LZAaR':function(_0x2917c4,_0x1eebe4){return _0x2917c4===_0x1eebe4;}};let _0x524766=[];return _0x42fd2f['id']||_0x524766[_0x4bb88f(0xff)](_0x4c3bae[_0x4bb88f(0x121)]),(!_0x42fd2f[_0x4bb88f(0xe8)]||!Array[_0x4bb88f(0xf5)](_0x42fd2f[_0x4bb88f(0xe8)]))&&_0x524766['push'](_0x4bb88f(0x118)),(!_0x42fd2f[_0x4bb88f(0x10f)]||typeof _0x42fd2f[_0x4bb88f(0x10f)]!=_0x4c3bae[_0x4bb88f(0x146)])&&_0x524766['push'](_0x4c3bae[_0x4bb88f(0x187)]),_0x42fd2f[_0x4bb88f(0xe8)]?.['forEach']((_0x253da7,_0x4f1081)=>{const _0x3fce4b=_0x4bb88f;_0x253da7['id']||_0x524766[_0x3fce4b(0xff)]('Section\x20at\x20index\x20'+_0x4f1081+'\x20must\x20have\x20an\x20id'),(!_0x253da7[_0x3fce4b(0xf1)]||!Array[_0x3fce4b(0xf5)](_0x253da7[_0x3fce4b(0xf1)]))&&_0x524766[_0x3fce4b(0xff)]('Section\x20\x22'+_0x253da7['id']+_0x3fce4b(0x120)),_0x253da7[_0x3fce4b(0xf1)]?.[_0x3fce4b(0x13a)]((_0x1044b0,_0x59b04c)=>{const _0x388e5c=_0x3fce4b;_0x1044b0['id']||_0x524766[_0x388e5c(0xff)](_0x388e5c(0x188)+_0x253da7['id']+'\x22\x20index\x20'+_0x59b04c+_0x388e5c(0x14c)),_0x1044b0[_0x388e5c(0x198)]||_0x524766[_0x388e5c(0xff)](_0x388e5c(0x135)+_0x1044b0['id']+_0x388e5c(0xcb));});}),{'valid':_0x4c3bae[_0x4bb88f(0x108)](_0x524766[_0x4bb88f(0x175)],0x0),'errors':_0x524766};}},oe={'HEADER_SECTION':_0x2b2367(0x116),'GRID_SECTION':_0x2b2367(0xab),'HERO_SECTION':_0x2b2367(0xcc),'CONTENT_SECTION':'CONTENT_SECTION','FOOTER_SECTION':'FOOTER_SECTION'},se={'PAGE':_0x2b2367(0x180),'FULL':'full'},ce={'LEFT':_0x2b2367(0x1a7),'CENTER':_0x2b2367(0x113),'RIGHT':'right'},de={'SQUARE':'1:1','STANDARD':_0x2b2367(0x1a6),'CLASSIC':_0x2b2367(0x133),'WIDE':'16:9'},le={'LEFT':'left','CENTER':_0x2b2367(0x113),'RIGHT':_0x2b2367(0x134)},ge={'STANDARD':_0x2b2367(0x111),'COMPACT':_0x2b2367(0x12b),'MINIMAL':_0x2b2367(0x19e)},pe={'mobile':{'max':0x2ff},'tablet':{'min':0x300,'max':0x3ff},'desktop':{'min':0x400,'max':0x780},'wide':{'min':0x781}},w=null;function ue(_0x3290b4){const _0x22859f=_0x2b2367,_0x33ed5b={'KdkoG':_0x22859f(0xfd),'QqZEN':'themeLoader\x20(IThemeLoader)','iCtUZ':function(_0x59769f,_0x5a6765){return _0x59769f>_0x5a6765;}};let _0x2d44d9=[];if((!_0x3290b4[_0x22859f(0xf1)]||!Array[_0x22859f(0xf5)](_0x3290b4['widgets']))&&_0x2d44d9[_0x22859f(0xff)](_0x33ed5b[_0x22859f(0x143)]),_0x3290b4[_0x22859f(0xc3)]||_0x2d44d9[_0x22859f(0xff)]('commerceClient\x20(ICommerceClient)'),_0x3290b4[_0x22859f(0x12e)]||_0x2d44d9[_0x22859f(0xff)](_0x33ed5b[_0x22859f(0x155)]),_0x3290b4['templateLoader']||_0x2d44d9[_0x22859f(0xff)](_0x22859f(0xcd)),_0x33ed5b[_0x22859f(0x1ac)](_0x2d44d9[_0x22859f(0x175)],0x0))throw new Error(_0x22859f(0xb5)+_0x2d44d9[_0x22859f(0x1a0)](_0x50910f=>'\x20\x20-\x20'+_0x50910f)[_0x22859f(0xc0)]('\x0a')+_0x22859f(0x19d));}function q(_0x189868){const _0x39e6e5=_0x2b2367,_0x34a4f6={'lbGQS':function(_0x50712c,_0x43b0ab){return _0x50712c(_0x43b0ab);}};ue(_0x189868);let _0x593903=new S();_0x593903['registerAll'](_0x189868[_0x39e6e5(0xf1)]);let _0x1bbd89=_0x189868[_0x39e6e5(0xf6)]||y;return _0x34a4f6[_0x39e6e5(0x184)](D,{'commerceClient':_0x189868[_0x39e6e5(0xc3)],'themeLoader':_0x189868[_0x39e6e5(0x12e)],'templateLoader':_0x189868[_0x39e6e5(0x11d)],'widgetRegistry':_0x593903,'sectionRenderer':_0x1bbd89,'defaultLocale':_0x189868[_0x39e6e5(0xe3)]||'en'});}function M(_0x39715b){const _0x11a8cd=_0x2b2367;if(!w){if(!_0x39715b)throw new Error(_0x11a8cd(0x150));w=q(_0x39715b);}return w;}function U(){w=null;}function H(_0x19f00e){const _0x92829b=_0x2b2367;return(_0x54645b,_0x2480cb,_0x1d9386)=>_0x3c2ddc[_0x92829b(0x17f)](_0x19f00e,{'section':_0x54645b,'styles':_0x1d9386[_0x92829b(0xef)],'children':_0x2480cb});}export{de as ASPECT_RATIO_OPTIONS,ge as CARD_STYLE_OPTIONS,l as DATA_SOURCE_TYPES,pe as DEFAULT_BREAKPOINTS,N as DEFAULT_LOCALE,h as DEFAULT_VARIANT_ID,y as DefaultSectionWrapper,V as MAX_SECTION_VARIANTS,W as PageConfigHelpers,ce as SECTION_ALIGNMENT_OPTIONS,se as SECTION_LAYOUT_OPTIONS,oe as SECTION_TYPES,le as TEXT_ALIGNMENT_OPTIONS,S as WidgetRegistry,b as applySectionVariants,J as buildVariantFromSection,B as canCreateSectionVariant,ie as createDefaultSectionRenderer,q as createFileSystemPageBuilder,D as createPageBuilder,H as createSectionRendererFromComponent,M as getPageBuilder,K as hasSectionVariant,Q as isSectionVariantEnabled,C as listSectionVariantIds,u as liveVariantIdOf,z as nextSectionVariantId,U as resetPageBuilder,G as resolvedVariantId,_ as sectionVariantCount,X as sectionVariantLabel};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shopkit/builder",
3
- "version": "0.1.5",
3
+ "version": "0.2.0",
4
4
  "description": "Page builder for creating dynamic storefronts with configurable widgets and layouts",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",