{"version":3,"file":"webpack-chunks/chunk.7498.02ae20f5fefec8fd7252.js","mappings":"oKAEe,MAAMA,UAAkBC,EAAAA,UACtCC,cACCC,SAASC,WAETC,KAAKC,cAAeC,EAAAA,EAAAA,aACpBF,KAAKG,MAAQ,CACZC,QAAS,EACTC,aAAc,EACdC,WAAW,GAIbC,gBAAgBH,EAAQI,GAAY,GACnCR,KAAKS,SAAS,CAAEL,OAAAA,EAAQC,aAAcD,IAClCI,GACHR,KAAKU,YAAYN,GAInBM,YAAYC,GACX,MAAMC,EAAUZ,KAAKC,aAAaY,QAAQC,iBAAiB,UAC3Dd,KAAKS,SAAS,CAAEJ,aAAcM,EAAUL,WAAW,IACnDM,EAAQD,GAAUI,QAGnBC,OAAOC,GACN,MAAM,cAAEC,GAAkBD,EACV,IAAIjB,KAAKC,aAAaY,QAAQC,iBAAiB,WAClDK,SAASD,IACrBlB,KAAKS,SAAS,CAAEH,WAAW,IAI7Bc,WAAU,EAAEH,EAAF,IAAKI,IACd,MAAM,IAAEC,GAAQL,GACV,SAAEM,GAAavB,KAAKwB,OACpB,aAAEnB,GAAiBL,KAAKG,MACxBsB,EAAMF,EAASG,OAErB,IAAIf,EAAW,KACf,OAAQW,GACP,IAAK,OACL,IAAK,YACJL,EAAEU,iBAEDhB,EADGN,EAAe,GAAKoB,EACZ,EAEApB,EAAe,EAE3BL,KAAKU,YAAYC,GACjB,MACD,IAAK,KACL,IAAK,UACJM,EAAEU,iBAEDhB,EADGN,EAAe,EAAI,EACXoB,EAAM,EAENpB,EAAe,EAE3BL,KAAKU,YAAYC,GACjB,MACD,IAAK,QACL,IAAK,QACJX,KAAKO,gBAAgBc,GACrB,MACD,IAAK,OACJrB,KAAKO,gBAAgB,GAAG,GACxB,MACD,IAAK,MACJP,KAAKO,gBAAgBkB,EAAM,GAAG,IAKjCG,SAEC,IAAI,SAAEL,GAAavB,KAAKwB,MAwBxB,OAtBKxB,KAAKwB,MAAMK,UAEfN,EAAWO,MAAMC,QAAQR,GAAYA,EAAW,CAACA,GACjDA,EAAWA,EAASS,KAAI,CAACC,EAAOZ,KACxBa,EAAAA,EAAAA,cAAaD,EAAO,CAC1B7B,OAAQJ,KAAKG,MAAMC,SAAWiB,EAC9Bc,OAAQnC,KAAKwB,MAAMW,OACnBd,IAAAA,EACAhB,aAAcL,KAAKG,MAAME,aACzB+B,QAAS,CAACnB,EAAGI,KACZJ,EAAEU,iBAEF,MAAMU,EAAerC,KAAKG,MAAMC,SAAWiB,GAAO,EAAIA,EACtDrB,KAAKO,gBAAgB8B,IAEtBjB,UAAW,EAAGH,EAAAA,EAAGI,IAAAA,KAAUrB,KAAKoB,UAAU,CAAEH,EAAAA,EAAGI,IAAAA,SAQjD,2BACCiB,aAAW,YACXC,aAAYC,KAAKC,UAAUzC,KAAKwB,MAAMkB,YACtCC,qBAAmB,QACnBC,UAAY,+BAA8B5C,KAAKwB,MAAMoB,YACrDC,IAAK7C,KAAKC,aACVe,OAASC,GAAMjB,KAAKgB,OAAOC,IAE1BM,IChGL,MAfwBC,IACvB,MAAM,SAAED,KAAauB,GAAStB,GACxB,sBAAEuB,EAAwB,2BAA8BD,EAE9D,OACC,2BAAKR,aAAW,iBAAiBM,UAAWG,GACzCxB,EAASS,IAERT,EAASS,KAAI,CAACC,EAAOZ,IACd2B,GAAGC,QAAQf,aAAaD,EAAO,IAAKa,EAAMxB,IAAKD,MAFtDE,I,mBCPN,SAAS2B,IAA2Q,OAA9PA,EAAWC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIvD,UAAU2B,OAAQ4B,IAAK,CAAE,IAAIC,EAASxD,UAAUuD,GAAI,IAAK,IAAIhC,KAAOiC,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQjC,KAAQ+B,EAAO/B,GAAOiC,EAAOjC,IAAY,OAAO+B,IAA2BM,MAAM3D,KAAMD,WAIhT,IAAI6D,EAAoB,gBAAoB,OAAQ,CAClDC,cAAe,QACfC,eAAgB,QAChBC,YAAa,EACbC,EAAG,kBAWL,MARA,SAAoBxC,GAClB,OAAoB,gBAAoB,MAAO0B,EAAS,CACtDe,KAAM,OACNC,QAAS,YACTC,OAAQ,gBACP3C,GAAQoC,ICdE,SAASQ,EAAK5C,GAC5B,OAAO,oBAAC,EAAYA,GCuDrB,MAxD0BA,IAEzB,MAAM,qBACL6C,EAAuB,8EADlB,mBAELC,EAAqB,+BAFhB,QAGLlC,EAAU,SAHL,UAQLhB,EAAY,SARP,QAaLS,GAAU,EAbL,OAcLzB,GAAS,EAdJ,IAeLiB,GAAM,EAfD,SAgBLkD,GAAW,EAhBN,OAiBLpC,EAAS,oBACNX,EAEEgD,EAAa3C,EAAU,MAAQ,SACrC,OACC,oBAAC2C,EAAD,CACCC,GAAK,GAAEtC,KAAUd,YACjBqD,gBAAgB,GAAEvC,KAAUd,SAC5BiB,aAAW,mBACXM,UAAW+B,GAAAA,CACT,4GACDN,EACAC,GAEDM,gBAAexE,EAAS,OAAS,QACjCgC,QAAUnB,IAETmB,EAAQnB,EAAGI,IAEZD,UAAYH,IAEXG,EAAU,CAAEH,EAAAA,EAAGI,IAAAA,MAGfG,EAAMD,SACNgD,GACA,oBAAC,EAAD,CACC3B,UAAW+B,GAAAA,CACT,2FACDvE,EAAS,WAAa,QChDb,MAAMyE,UAAsBjF,EAAAA,UAC1CC,cACCC,SAASC,WACTC,KAAK6C,KAAM3C,EAAAA,EAAAA,aACXF,KAAKG,MAAQ,CACZ2E,OAAQ,KAIVC,qBACC,MAAMD,EAAS9E,KAAK6C,IAAIhC,QAAQmE,aAC5BF,GAAU9E,KAAKG,MAAM2E,QACxB9E,KAAKS,SAAS,CAAEqE,OAAAA,IAIlBG,oBAECC,YAAW,KACV,MAAMJ,EAAS9E,KAAK6C,IAAIhC,QAAQmE,aAC5BF,GAAU9E,KAAKG,MAAM2E,QACxB9E,KAAKS,SAAS,CAAEqE,OAAAA,MAEf,KAGJlD,SACC,MAAM,OACLxB,EADK,SAEL+E,GAAW,EAFN,OAGLhD,EAAS,mBAHJ,IAILd,GAAM,GACHrB,KAAKwB,MACT,OACC,2BACCqB,IAAK7C,KAAK6C,IACV4B,GAAK,GAAEtC,KAAUd,SACjB+D,kBAAkB,GAAEjD,KAAUd,YAC9BiB,aAAW,gBACXM,UAAU,6CACVyC,MAAO,CACNC,UAAWlF,GAAU+E,EAAWnF,KAAKG,MAAM2E,OAAS,IAGrD,2BAAKlC,UAAU,+BAA+B5C,KAAKwB,MAAMD,Y,cC9C9C,SAASgE,GAAc,SAAEhE,IACvC,OAAO,2BAAKiE,KAAK,UAAU5C,UAAU,gBAAgBrB,G,+MC4BtD,OAAekE,EAAAA,EAAAA,aA1Bf,UAAa,QAAErD,EAAF,GAAWqC,EAAX,KAAeiB,EAAf,SAAqBnE,KAAaC,GAASqB,GACvD,OACC,gCACCA,IAAKA,EACL4B,GAAK,OAAMA,IACXe,KAAK,MACLG,gBAAeD,EACfhB,gBAAgB,SAAQD,IAIxBmB,SAAUF,OAAOG,GAAa,EAC9BzD,QAASA,EACTQ,UAAW+B,GAAAA,CACV,0GACAe,EACG,mDACA,qCAEAlE,GAEHD,M,+MCXJ,OAAekE,EAAAA,EAAAA,aAXf,SAAkBjE,EAAOqB,GACxB,OACC,6BACCD,UAAU,4CACNpB,EAFL,CAGCJ,UAAYH,MACZ4B,IAAKA,QCNO,SAASiD,GAAS,GAAErB,EAAF,KAAMiB,EAAN,SAAYnE,IAC5C,OACC,2BACCiE,KAAK,WACLf,GAAK,SAAQA,IACbW,kBAAkB,OAAMX,IACxBmB,SAAS,IACThD,UAAW+B,GAAAA,CAAW,CAAC,CAAEoB,QAASL,MAEjCnE,G,+MCLJ,OAAekE,EAAAA,EAAAA,aAJf,SAAuBjE,EAAOqB,GAC7B,OAAO,6BAAKD,UAAU,8BAAiCpB,EAAhD,CAAuDqB,IAAKA,Q,+MCgBpE,MAAMmD,GAAcC,EAAAA,EAAAA,oBAAcJ,GA0FlC,MAAMK,EAAW,EAAG3E,SAAAA,MACnB,MAAOkD,IAAM0B,EAAAA,EAAAA,UAAU,KAAIC,KAAKC,SAASC,SAAS,IAAIC,MAAM,MACtD1D,GAAM2D,EAAAA,EAAAA,WACN,SACLC,EADK,UAELC,EAFK,oBAGLC,EAHK,aAILC,EAJK,UAKLC,EALK,aAMLC,EANK,UAOLC,EAPK,aAQLC,GAnBF,WACC,MAAMC,GAAUC,EAAAA,EAAAA,YAAWlB,GAC3B,QAAgBH,IAAZoB,EACH,MAAM,IAAIE,MAAM,2CAEjB,OAAOF,EAeHG,GACEC,EAAOC,IAAAA,SAAAA,QAAuB/F,GAC9BgG,EAAQF,EAAKG,MAAMC,IAAD,YAA6B,WAApBA,MAAAA,GAAA,UAAAA,EAAKC,YAAL,eAAWC,SACtCC,EAAUP,EAAKG,MAAMC,IAAD,YAA6B,aAApBA,MAAAA,GAAA,UAAAA,EAAKC,YAAL,eAAWC,SAW9C,OAVAE,EAAAA,EAAAA,YAAU,KACTd,EAAUtC,GACH,IAAMuC,EAAavC,KAExB,KACHqD,EAAAA,EAAAA,kBAAgB,KACXlB,GAAgBC,IAAcpC,GACjC5B,EAAIhC,QAAQE,UAEX,CAAC6F,EAAcC,IAEjB,qCACEkB,EAAAA,EAAAA,cACA,kBAAC,EAAD,KACKR,EAAM/F,MADX,CAECqB,IAAKA,EACL4B,GAAIA,EACJiB,KAAMmB,IAAcpC,EACpBrC,QAAS,IAAM0E,EAAarC,GAC5BrD,UAAWuF,KAEZF,IAEAsB,EAAAA,EAAAA,cACA,kBAACjC,EAAD,CAAUrB,GAAIA,EAAIiB,KAAMmB,IAAcpC,GACpCmD,GAEFlB,KAKJ,SAASsB,EAASL,GAMjB,MALW,CACV,CAACA,GAAD,EAAO,SAAEpG,KACDA,GAGGoG,GAEbzB,EAASqB,MAAQS,EAAS,SAC1B9B,EAAS0B,QAAUI,EAAS,WCxJ5B,OACCrI,UADc,EAEdsI,eAFc,EAGdC,iBAHc,EAIdrD,cAJc,EAKdsD,UDED,UAAmB,SAAE5G,EAAF,0BAAY6G,IAC9B,MAAOxB,EAAcyB,IAAmBlC,EAAAA,EAAAA,WAAS,IAC1CU,EAAWC,IAAgBX,EAAAA,EAAAA,UAAS,OACpCM,EAAU6B,IAAenC,EAAAA,EAAAA,UAAS,OAClCO,EAAW6B,IAAgBpC,EAAAA,EAAAA,UAAS,OACpCqC,EAAQC,IAAatC,EAAAA,EAAAA,UAAS,IAC/BuC,EAAQ,CACbjC,SAAAA,EACAC,UAAAA,EACAE,aAAAA,EACAC,UAAAA,EACAF,oBAAoB1F,GACnB,IAAImH,EAEJ,OADAC,GAAgB,GACRpH,EAAE0H,SACT,KAAKC,EAAAA,GAAAA,KACJ3H,EAAEU,iBACF+G,EAAMG,oBACN,MACD,KAAKD,EAAAA,GAAAA,IACJ3H,EAAEU,iBACF+G,EAAMI,mBACN,MACD,KAAKF,EAAAA,GAAAA,KACJF,EAAMK,uBACN,MACD,KAAKH,EAAAA,GAAAA,MACJF,EAAMM,qBAMTlC,aAAAA,EACAkC,mBACC,MAAMC,EAAMT,EAAOA,EAAOU,QAAQrC,GAAa,GAC3CoC,EAAKnC,EAAamC,GACjBP,EAAMG,qBAEZE,uBACC,MAAME,EAAMT,EAAOA,EAAOU,QAAQrC,GAAa,GAC3CoC,EAAKnC,EAAamC,GACjBP,EAAMI,oBAEZD,oBACC/B,EAAa0B,EAAO,KAErBM,mBACChC,EAAa0B,EAAOA,EAAO9G,OAAS,KAErCqF,UAAUtC,GAETgE,GAAWU,GAAS,IAAIA,EAAM1E,MAE/BuC,aAAavC,GAEZgE,GAAWU,GAASA,EAAKC,QAAQ9H,GAAQA,IAAQmD,QAWnD,OAPAoD,EAAAA,EAAAA,YAAU,KACJhB,GAAc2B,EAAOa,MAAM5E,GAAOA,IAAOoC,KAC7CC,EAAa0B,EAAO,MAGnB,CAAChG,KAAKC,UAAU+F,GAAS3B,IAG3B,oCACC,kBAACtB,EAAD,KACC,kBAAC,EAAD,CAAU1C,IAAKyF,IACf,kBAAC,EAAD,CAAezF,IAAK0F,KAErB,kBAACvC,EAAYsD,SAAb,CAAsBZ,MAAOA,GAC3BjC,GAAYC,EAAYnF,EAAW,QC3EvC2E,SANc,EAOdqD,cAbqBrD,EAASqB,MAc9BiC,gBAbuBtD,EAAS0B,QAqBhC6B,gBAAiBnC,IAAAA,MAAW,IAC3B,iCAEDoC,gBAAiBpC,IAAAA,MAAW,IAC3B,iCAEDqC,qBAAsBrC,IAAAA,MAAW,IAChC,iCAEDsC,YAAatC,IAAAA,MAAW,IACvB,oEAEDuC,WAAYvC,IAAAA,MAAW,IACtB,oEAEDwC,eAAgBxC,IAAAA,MAAW,IAC1B,iCAEDyC,iBAAkBzC,IAAAA,MAAW,IAC5B,0DAED0C,eAAgB1C,IAAAA,MAAW,IAC1B,iCAED2C,YAxCc,KAyCdC,KAAM5C,IAAAA,MAAW,IAAM,0DACvB6C,SAAU7C,IAAAA,MAAW,IAAM,iCAC3B8C,eAAgB9C,IAAAA,MAAW,IAC1B,iCAID+C,UAAW/C,IAAAA,MAAW,IAAM,wDAC5BgD,QAAShD,IAAAA,MAAW,IACnB,+BAEDiD,iBAAkBjD,IAAAA,MAAW,IAC5B,iCAEDkD,YAAalD,IAAAA,MAAW,IACvB,iCAEDmD,UAAWnD,IAAAA,MAAW,IAAM,2D,UCxDb,IAJDoD,SAAS5J,iBAAiB,iBAIXsI,QAAQuB,IACrC,IAAIC,EAASD,EAAKE,cAElB,QADWD,MAAAA,OAAH,EAAGA,EAAQE,QAAQ,oBAkClBC,SAASJ,IAClB,IAAIK,EAAOL,EAAKM,WA7BjB,SAAuBC,EAAgBjI,GACtC,MAAMkI,EAAaT,SAASU,cAAc,OACpCC,EAA6D,UAA/CpI,EAAQqI,aAAa,sBACzCH,EAAWI,UAAYtI,EAAQgI,WAE/BrJ,EAAAA,EAAAA,QAAOsJ,EAAgBC,GAAY,KAKlC,MAAMK,EAAW,IAAIC,kBAAiB,CAACC,EAAGF,KACzCvI,EAAQ0I,YAAYN,EAAcF,EAAWS,WAAW,GAAKT,GAC7DK,EAASK,gBAEVL,EAASM,QAAQX,EAAY,CAC5BzI,YAAY,EACZqJ,WAAW,EACXC,SAAS,IAGV9G,YAAW,KACVsG,EAASK,aACT5I,EAAQ0I,YAAYN,EAAcF,EAAWS,WAAW,GAAKT,KAC3D,QAOJc,CCnDD,EAAgBC,EAAYlB,IAuB1B,kBAAC,EAAAmB,SAAD,CAAUC,SAAU,yBAAKC,wBAAyB,CAAEC,OAAQtB,OAC1DuB,EAAAA,EAAAA,IAAMvB,EAAM,CAAEwB,QAvBjB,SAASC,GAAS,QAAEC,EAAF,SAAWnL,IAE5B,GAAImL,GAAWA,EAAQ,cAAe,CACrC,IAAKR,EAAWQ,EAAQ,eAAgB,OACxC,MAAM9M,EAAYsM,EAAWQ,EAAQ,eAC/BC,EAAcD,EAAQ,cACtBlL,EAAUmL,EAAcnK,KAAK+J,MAAMI,GAAe,GAElDC,EAAuBrL,EAAS6H,QAAQnH,GAE7B,SAAfA,EAAMyF,MACU,SAAfzF,EAAMyF,MAAmBzF,EAAM4K,KAAKC,OAAOpL,SAG9C,OACC,kBAAC9B,EAAc4B,GACbuL,EAAAA,EAAAA,IAAWH,EAAsB,CAAEJ,QAASC,UDkCnCO,CAAUd,EAAYlB,GAAOL,O,8EEArC,MAAM/B,EAAe,CAC3BqE,IAAK,GACLC,KAAM,GACNC,KAAM,GACNC,GAAI,GACJC,MAAO,GACPC,KAAM,GACNC,OAAQ,IAgCF,MAAMC,EAAiB,CAACC,EAAM,MAEpC,GAAIA,EAAIC,MAAM,0BAA2B,CAExC,MAAO,CACNC,SAAU,UACVC,IAAM,iCAHIH,EAAIC,MAAM,0BAA0B,2CAKzC,GAAID,EAAIC,MAAM,kBAAmB,CAEvC,MAAO,CACNC,SAAU,UACVC,IAAM,iCAHIH,EAAIC,MAAM,kBAAkB,2CAKjC,GAAID,EAAIC,MAAM,sBAAuB,CAE3C,MAAO,CACNC,SAAU,QACVC,IAAM,kCAHIH,EAAIC,MAAM,sBAAsB,MAO5C,MAAO,CACNC,SAAU,UACVC,IAAKH","sources":["webpack://wfp-usa/./wp-content/themes/tombras/blocks/components/react-accordion/wrapper/Accordion.jsx","webpack://wfp-usa/./wp-content/themes/tombras/blocks/components/react-accordion-panel/components/AccordionPanel.jsx","webpack://wfp-usa/./wp-content/themes/tombras/assets/icons/chevron.svg","webpack://wfp-usa/./wp-content/themes/tombras/blocks/components/react-accordion-panel/components/Icon.jsx","webpack://wfp-usa/./wp-content/themes/tombras/blocks/components/react-accordion-panel/components/AccordionHeading.jsx","webpack://wfp-usa/./wp-content/themes/tombras/blocks/components/react-accordion-panel/components/AccordionBody.jsx","webpack://wfp-usa/./wp-content/themes/tombras/blocks/components/tabs/components/ui/TabsContainer.jsx","webpack://wfp-usa/./wp-content/themes/tombras/blocks/components/tabs/components/ui/Tab.jsx","webpack://wfp-usa/./wp-content/themes/tombras/blocks/components/tabs/components/ui/TabsList.jsx","webpack://wfp-usa/./wp-content/themes/tombras/blocks/components/tabs/components/ui/TabPanel.jsx","webpack://wfp-usa/./wp-content/themes/tombras/blocks/components/tabs/components/ui/TabsPanelList.jsx","webpack://wfp-usa/./wp-content/themes/tombras/blocks/components/tabs/components/Tabs.jsx","webpack://wfp-usa/./wp-content/themes/tombras/blocks/components/lazyComponents.js","webpack://wfp-usa/./wp-content/themes/tombras/blocks/utils/block-hydration.js","webpack://wfp-usa/./wp-content/themes/tombras/blocks/utils/htmlToJSX.jsx","webpack://wfp-usa/./wp-content/themes/tombras/blocks/utils/helper.jsx"],"sourcesContent":["import { Component, createRef, cloneElement } from \"@wordpress/element\";\n\nexport default class Accordion extends Component {\n\tconstructor() {\n\t\tsuper(...arguments);\n\n\t\tthis.accordionRef = createRef();\n\t\tthis.state = {\n\t\t\tactive: -1,\n\t\t\tcurrentFocus: 0,\n\t\t\tisFocused: false,\n\t\t};\n\t}\n\n\tupdateActiveIdx(active, takeFocus = false) {\n\t\tthis.setState({ active, currentFocus: active });\n\t\tif (takeFocus) {\n\t\t\tthis.updateFocus(active);\n\t\t}\n\t}\n\n\tupdateFocus(newFocus) {\n\t\tconst buttons = this.accordionRef.current.querySelectorAll(\"button\");\n\t\tthis.setState({ currentFocus: newFocus, isFocused: true });\n\t\tbuttons[newFocus].focus();\n\t}\n\n\tonBlur(e) {\n\t\tconst { relatedTarget } = e;\n\t\tconst buttons = [...this.accordionRef.current.querySelectorAll(\"button\")];\n\t\tif (!buttons.includes(relatedTarget)) {\n\t\t\tthis.setState({ isFocused: false });\n\t\t}\n\t}\n\n\tonKeyDown({ e, idx }) {\n\t\tconst { key } = e;\n\t\tconst { children } = this.props;\n\t\tconst { currentFocus } = this.state;\n\t\tconst len = children.length;\n\n\t\tlet newFocus = null;\n\t\tswitch (key) {\n\t\t\tcase \"Down\":\n\t\t\tcase \"ArrowDown\":\n\t\t\t\te.preventDefault();\n\t\t\t\tif (currentFocus + 1 >= len) {\n\t\t\t\t\tnewFocus = 0;\n\t\t\t\t} else {\n\t\t\t\t\tnewFocus = currentFocus + 1;\n\t\t\t\t}\n\t\t\t\tthis.updateFocus(newFocus);\n\t\t\t\tbreak;\n\t\t\tcase \"Up\":\n\t\t\tcase \"ArrowUp\":\n\t\t\t\te.preventDefault();\n\t\t\t\tif (currentFocus - 1 < 0) {\n\t\t\t\t\tnewFocus = len - 1;\n\t\t\t\t} else {\n\t\t\t\t\tnewFocus = currentFocus - 1;\n\t\t\t\t}\n\t\t\t\tthis.updateFocus(newFocus);\n\t\t\t\tbreak;\n\t\t\tcase \"Space\":\n\t\t\tcase \"Enter\":\n\t\t\t\tthis.updateActiveIdx(idx);\n\t\t\t\tbreak;\n\t\t\tcase \"Home\":\n\t\t\t\tthis.updateActiveIdx(0, true);\n\t\t\t\tbreak;\n\t\t\tcase \"End\":\n\t\t\t\tthis.updateActiveIdx(len - 1, true);\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\trender() {\n\t\tconsole.log(78, this.props);\n\t\tlet { children } = this.props;\n\n\t\tif (!this.props.isAdmin) {\n\t\t\tconsole.log(\"this is NOT admin\");\n\t\t\tchildren = Array.isArray(children) ? children : [children];\n\t\t\tchildren = children.map((child, idx) => {\n\t\t\t\treturn cloneElement(child, {\n\t\t\t\t\tactive: this.state.active === idx,\n\t\t\t\t\tanchor: this.props.anchor,\n\t\t\t\t\tidx,\n\t\t\t\t\tcurrentFocus: this.state.currentFocus,\n\t\t\t\t\tonClick: (e, idx) => {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tconsole.log(\"set new active tab\", e, idx);\n\t\t\t\t\t\tconst newActiveIdx = this.state.active === idx ? -1 : idx;\n\t\t\t\t\t\tthis.updateActiveIdx(newActiveIdx);\n\t\t\t\t\t},\n\t\t\t\t\tonKeyDown: ({ e, idx }) => this.onKeyDown({ e, idx }),\n\t\t\t\t});\n\t\t\t});\n\t\t} else {\n\t\t\tconsole.log(\"this is admin technically\");\n\t\t}\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\tdata-react=\"Accordion\"\n\t\t\t\tdata-props={JSON.stringify(this.props.attributes)}\n\t\t\t\tdata-react-replace=\"false\"\n\t\t\t\tclassName={`accordion accordion-wrapper ${this.props.className}`}\n\t\t\t\tref={this.accordionRef}\n\t\t\t\tonBlur={(e) => this.onBlur(e)}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t}\n}\n","const AccordionPanel = (props) => {\n\tconst { children, ...rest } = props;\n\tconst { outerLookAndFeelClass = \"border-b-2 border-white\" } = rest;\n\tconsole.log(children);\n\treturn (\n\t\t<div data-react=\"AccordionPanel\" className={outerLookAndFeelClass}>\n\t\t\t{!children.map\n\t\t\t\t? children\n\t\t\t\t: children.map((child, idx) => {\n\t\t\t\t\t\treturn wp.element.cloneElement(child, { ...rest, key: idx });\n\t\t\t\t  })}\n\t\t</div>\n\t);\n};\n\nexport default AccordionPanel;\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nvar _ref = /*#__PURE__*/React.createElement(\"path\", {\n  strokeLinecap: \"round\",\n  strokeLinejoin: \"round\",\n  strokeWidth: 4,\n  d: \"M5 15l7-7 7 7\"\n});\n\nfunction SvgChevron(props) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    fill: \"none\",\n    viewBox: \"0 0 24 24\",\n    stroke: \"currentColor\"\n  }, props), _ref);\n}\n\nexport default SvgChevron;","import Chevron from \"!jsx!../../../../assets/icons/chevron.svg\";\n\nexport default function icon(props) {\n\treturn <Chevron {...props} />;\n}\n","import classnames from \"classnames\";\nimport DefaultIcon from \"./Icon.jsx\";\nconst AccordionHeading = (props) => {\n\tconsole.log(\"accordion heading props\", props);\n\tconst {\n\t\taccessibilityClasses = \"hover:bg-primary-300 hover:text-white focus:bg-primary-300 focus:text-white\",\n\t\tlookAndFeelClasses = \"text-left px-4 lg:px-10 py-4\",\n\t\tonClick = () => {\n\t\t\tconsole.warn(\n\t\t\t\t\"[ACCORDION HEADING]: Click handlers not bound in this context. If you find yourself seeing this message outside of the context of a backend system, please check props being passed in.\",\n\t\t\t);\n\t\t},\n\t\tonKeyDown = () => {\n\t\t\tconsole.warn(\n\t\t\t\t\"[ACCORDION HEADING]: Key down handlers not bound in this context. If you find yourself seeing this message outside of the context of a backend system, please check props being passed in.\",\n\t\t\t);\n\t\t},\n\t\tisAdmin = false,\n\t\tactive = true,\n\t\tidx = -1,\n\t\tshowIcon = true,\n\t\tanchor = \"accordion-anchor\",\n\t} = props;\n\n\tconst ButtonType = isAdmin ? \"div\" : \"button\";\n\treturn (\n\t\t<ButtonType\n\t\t\tid={`${anchor}-${idx}-heading`}\n\t\t\taria-controls={`${anchor}-${idx}-body`}\n\t\t\tdata-react=\"AccordionHeading\"\n\t\t\tclassName={classnames(\n\t\t\t\t`bg-primary-500 text-white w-full flex justify-between items-center transition-all duration-75 ease-in-out`,\n\t\t\t\taccessibilityClasses,\n\t\t\t\tlookAndFeelClasses,\n\t\t\t)}\n\t\t\taria-expanded={active ? \"true\" : \"false\"}\n\t\t\tonClick={(e) => {\n\t\t\t\tconsole.log(\"[gb] clicked\");\n\t\t\t\tonClick(e, idx);\n\t\t\t}}\n\t\t\tonKeyDown={(e) => {\n\t\t\t\tconsole.log(\"[gb] key down\");\n\t\t\t\tonKeyDown({ e, idx });\n\t\t\t}}\n\t\t>\n\t\t\t{props.children}\n\t\t\t{showIcon && (\n\t\t\t\t<DefaultIcon\n\t\t\t\t\tclassName={classnames(\n\t\t\t\t\t\t`origin-center transform h-4 w-4 rotate-180 transition-transform ease-in-out duration-200`,\n\t\t\t\t\t\tactive ? \"rotate-0\" : \"\",\n\t\t\t\t\t)}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</ButtonType>\n\t);\n};\n\nexport default AccordionHeading;\n","import { Component, createRef } from \"@wordpress/element\";\n\nexport default class AccordionBody extends Component {\n\tconstructor() {\n\t\tsuper(...arguments);\n\t\tthis.ref = createRef();\n\t\tthis.state = {\n\t\t\theight: 1000,\n\t\t};\n\t}\n\n\tcomponentDidUpdate() {\n\t\tconst height = this.ref.current.scrollHeight;\n\t\tif (height != this.state.height) {\n\t\t\tthis.setState({ height });\n\t\t}\n\t}\n\n\tcomponentDidMount() {\n\t\t// hacky way to get around waiting for children to render...\n\t\tsetTimeout(() => {\n\t\t\tconst height = this.ref.current.scrollHeight;\n\t\t\tif (height != this.state.height) {\n\t\t\t\tthis.setState({ height });\n\t\t\t}\n\t\t}, 1000);\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tactive,\n\t\t\tshowBody = false,\n\t\t\tanchor = \"accordion-anchor\",\n\t\t\tidx = -1,\n\t\t} = this.props;\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={this.ref}\n\t\t\t\tid={`${anchor}-${idx}-body`}\n\t\t\t\taria-labelledby={`${anchor}-${idx}-heading`}\n\t\t\t\tdata-react=\"AccordionBody\"\n\t\t\t\tclassName=\"overflow-hidden transition-all ease-in-out\"\n\t\t\t\tstyle={{\n\t\t\t\t\tmaxHeight: active || showBody ? this.state.height : 0,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<div className=\"px-4 py-6 text-lg space-y-2\">{this.props.children}</div>\n\t\t\t</div>\n\t\t);\n\t}\n}\n","export default function TabsContainer({ children }) {\n\treturn <div role=\"tablist\" className=\"tombras-tabs\">{children}</div>;\n}\n","import { forwardRef } from \"@wordpress/element\";\n\nimport classnames from \"classnames\";\nfunction Tab({ onClick, id, show, children, ...props }, ref) {\n\treturn (\n\t\t<button\n\t\t\tref={ref}\n\t\t\tid={`tab-${id}`}\n\t\t\trole=\"tab\"\n\t\t\taria-selected={show}\n\t\t\taria-controls={`panel-${id}`}\n\t\t\t// if the tab is active we want undefined so that it has a natural tab index order\n\t\t\t// if it's not selected, per a11y rules, we don't want it tabbable as the\n\t\t\t// arrow/home/end keys will provide navigation for us.\n\t\t\ttabIndex={show ? undefined : -1}\n\t\t\tonClick={onClick}\n\t\t\tclassName={classnames(\n\t\t\t\t\"flex items-center py-2 px-1 cursor-pointer whitespace-nowrap text-lg font-family-roboto border-b-2 pt-4\",\n\t\t\t\tshow\n\t\t\t\t\t? \"border-b-primary-500 text-primary-500 font-bold \"\n\t\t\t\t\t: \"border-transparent text-gray-700\",\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t</button>\n\t);\n}\n\nexport default forwardRef(Tab);\n","import { forwardRef } from \"@wordpress/element\";\n\nfunction TabsList(props, ref) {\n\treturn (\n\t\t<div\n\t\t\tclassName=\"overflow-auto flex gap-10 justify-center\"\n\t\t\t{...props}\n\t\t\tonKeyDown={(e) => console.log(`key event (button list):`, e)}\n\t\t\tref={ref}\n\t\t/>\n\t);\n}\n\nexport default forwardRef(TabsList);\n","import classnames from \"classnames\";\n\nexport default function TabPanel({ id, show, children }) {\n\treturn (\n\t\t<div\n\t\t\trole=\"tabpanel\"\n\t\t\tid={`panel-${id}`}\n\t\t\taria-labelledby={`tab-${id}`}\n\t\t\ttabIndex=\"0\"\n\t\t\tclassName={classnames([{ hidden: !show }])}\n\t\t>\n\t\t\t{children}\n\t\t</div>\n\t);\n}\n","import { forwardRef } from \"@wordpress/element\";\n\nfunction TabsPanelList(props, ref) {\n\treturn <div className=\"hide-caption text-gray-900\" {...props} ref={ref} />;\n}\n\nexport default forwardRef(TabsPanelList);\n","import React from \"react\";\nimport {\n\tuseState,\n\tuseRef,\n\tuseContext,\n\tuseEffect,\n\tuseLayoutEffect,\n\tcreatePortal,\n\tcreateContext,\n} from \"@wordpress/element\";\n\nimport {KeyboardKeys } from \"../../../utils/helper.jsx\";\n\nimport TabsContainer from \"./ui/TabsContainer.jsx\";\nimport Tab from \"./ui/Tab.jsx\";\nimport TabsList from \"./ui/TabsList.jsx\";\nimport TabPanel from \"./ui/TabPanel.jsx\";\nimport TabsPanelList from \"./ui/TabsPanelList.jsx\";\n\nconst TabsContext = createContext(undefined);\n\nfunction TabPortal({ children, disableKeyboardNavigation }) {\n\tconst [keyboardUsed, setKeyboardUsed] = useState(false);\n\tconst [activeTab, setActiveTab] = useState(null);\n\tconst [tabsList, setTabsList] = useState(null);\n\tconst [tabsPanel, setTabsPanel] = useState(null);\n\tconst [tabIDs, setTabIDs] = useState([]);\n\tconst value = {\n\t\ttabsList,\n\t\ttabsPanel,\n\t\tkeyboardUsed,\n\t\tactiveTab,\n\t\thandleKeyboardEvent(e) {\n\t\t\tif (disableKeyboardNavigation) return;\n\t\t\tsetKeyboardUsed(true);\n\t\t\tswitch (e.keyCode) {\n\t\t\t\tcase KeyboardKeys.home:\n\t\t\t\t\te.preventDefault(); // prevent scrolling of page\n\t\t\t\t\tvalue.setFirstTabActive();\n\t\t\t\t\tbreak;\n\t\t\t\tcase KeyboardKeys.end:\n\t\t\t\t\te.preventDefault(); // prevent scrolling of page\n\t\t\t\t\tvalue.setLastTabActive();\n\t\t\t\t\tbreak;\n\t\t\t\tcase KeyboardKeys.left:\n\t\t\t\t\tvalue.setPreviousTabActive();\n\t\t\t\t\tbreak;\n\t\t\t\tcase KeyboardKeys.right:\n\t\t\t\t\tvalue.setNextTabActive();\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t},\n\t\tsetActiveTab,\n\t\tsetNextTabActive() {\n\t\t\tconst tab = tabIDs[tabIDs.indexOf(activeTab) + 1];\n\t\t\tif (tab) setActiveTab(tab);\n\t\t\telse value.setFirstTabActive();\n\t\t},\n\t\tsetPreviousTabActive() {\n\t\t\tconst tab = tabIDs[tabIDs.indexOf(activeTab) - 1];\n\t\t\tif (tab) setActiveTab(tab);\n\t\t\telse value.setLastTabActive();\n\t\t},\n\t\tsetFirstTabActive() {\n\t\t\tsetActiveTab(tabIDs[0]);\n\t\t},\n\t\tsetLastTabActive() {\n\t\t\tsetActiveTab(tabIDs[tabIDs.length - 1]);\n\t\t},\n\t\taddTabKey(id) {\n\t\t\tconsole.log(`added tab key: ${id}`);\n\t\t\tsetTabIDs((keys) => [...keys, id]);\n\t\t},\n\t\tremoveTabKey(id) {\n\t\t\tconsole.log(`removed tab key: ${id}`);\n\t\t\tsetTabIDs((keys) => keys.filter((key) => key !== id));\n\t\t},\n\t};\n\n\tuseEffect(() => {\n\t\tif (!activeTab || !tabIDs.some((id) => id === activeTab)) {\n\t\t\tsetActiveTab(tabIDs[0]);\n\t\t}\n\t\t// eslint-disable-next-line\n\t}, [JSON.stringify(tabIDs), activeTab]);\n\n\treturn (\n\t\t<>\n\t\t\t<TabsContainer>\n\t\t\t\t<TabsList ref={setTabsList} />\n\t\t\t\t<TabsPanelList ref={setTabsPanel} />\n\t\t\t</TabsContainer>\n\t\t\t<TabsContext.Provider value={value}>\n\t\t\t\t{tabsList && tabsPanel ? children : null}\n\t\t\t</TabsContext.Provider>\n\t\t</>\n\t);\n}\n\nfunction useTabs() {\n\tconst context = useContext(TabsContext);\n\tif (context === undefined) {\n\t\tthrow new Error(\"useTabs must be used within TabsContext\");\n\t}\n\treturn context;\n}\n\nconst TabShell = ({ children }) => {\n\tconst [id] = useState(`id${Math.random().toString(16).slice(2)}`);\n\tconst ref = useRef();\n\tconst {\n\t\ttabsList,\n\t\ttabsPanel,\n\t\thandleKeyboardEvent,\n\t\tkeyboardUsed,\n\t\tactiveTab,\n\t\tsetActiveTab,\n\t\taddTabKey,\n\t\tremoveTabKey,\n\t} = useTabs();\n\tconst kids = React.Children.toArray(children);\n\tconst Label = kids.find((kid) => kid?.type?.name === \"Label\");\n\tconst Content = kids.find((kid) => kid?.type?.name === \"Content\");\n\tuseEffect(() => {\n\t\taddTabKey(id);\n\t\treturn () => removeTabKey(id);\n\t\t// eslint-disable-next-line\n\t}, []);\n\tuseLayoutEffect(() => {\n\t\tif (keyboardUsed && activeTab === id) {\n\t\t\tref.current.focus();\n\t\t}\n\t}, [keyboardUsed, activeTab]);\n\treturn (\n\t\t<>\n\t\t\t{createPortal(\n\t\t\t\t<Tab\n\t\t\t\t\t{...Label.props}\n\t\t\t\t\tref={ref}\n\t\t\t\t\tid={id}\n\t\t\t\t\tshow={activeTab === id}\n\t\t\t\t\tonClick={() => setActiveTab(id)}\n\t\t\t\t\tonKeyDown={handleKeyboardEvent}\n\t\t\t\t/>,\n\t\t\t\ttabsList,\n\t\t\t)}\n\t\t\t{createPortal(\n\t\t\t\t<TabPanel id={id} show={activeTab === id}>\n\t\t\t\t\t{Content}\n\t\t\t\t</TabPanel>,\n\t\t\t\ttabsPanel,\n\t\t\t)}\n\t\t</>\n\t);\n};\nfunction makeSlot(name) {\n\tlet slot = {\n\t\t[name]({ children }) {\n\t\t\treturn children;\n\t\t},\n\t};\n\treturn slot[name];\n}\nTabShell.Label = makeSlot(\"Label\");\nTabShell.Content = makeSlot(\"Content\");\n\nexport { TabPortal, TabShell };\n","import React from \"react\";\nimport { SwiperSlide } from \"swiper/react\";\nimport Accordion from \"./react-accordion/wrapper/Accordion.jsx\";\nimport AccordionPanel from \"./react-accordion-panel/components/AccordionPanel.jsx\";\nimport AccordionHeading from \"./react-accordion-panel/components/AccordionHeading.jsx\";\nimport AccordionBody from \"./react-accordion-panel/components/AccordionBody.jsx\";\n\nimport { TabPortal, TabShell } from \"./tabs/components/Tabs.jsx\";\nconst TabShellLabel = TabShell.Label;\nconst TabShellContent = TabShell.Content;\n\n/**\n * Test: is the name of the component defined in data-react=\"<NAME_HERE>\" attribute\n */\nexport default {\n\tAccordion,\n\tAccordionPanel,\n\tAccordionHeading,\n\tAccordionBody,\n\tTabPortal,\n\tTabShell,\n\tTabShellLabel,\n\tTabShellContent,\n\t// AccordionPanel: React.lazy(\n\t// \t() => \"./react-accordion-panel/components/accordion-panel.jsx\"\n\t// ),\n\t// Carousel: React.lazy(() =>\n\t// \timport(\"./react-carousel/components/Carousel.jsx\"),\n\t// ),\n\t// Slide: React.lazy(() => import(\"./react-slide/components/Slide.jsx\")),\n\tLatestPostsGrid: React.lazy(() =>\n\t\timport(\"./latest-posts/components/effects/PostQueryComponent.jsx\"),\n\t),\n\tLatestPostsCard: React.lazy(() =>\n\t\timport(\"./latest-posts/components/templates/Card.jsx\"),\n\t),\n\tSampleComponentReact: React.lazy(() =>\n\t\timport(\"./a-sample-react-block/components/SampleComponentReact.jsx\"),\n\t),\n\tIFrameModal: React.lazy(() =>\n\t\timport(\"./embed-iframe/components/frontend/Modal.jsx\"),\n\t),\n\tVideoEmbed: React.lazy(() =>\n\t\timport(\"./embed-iframe/components/frontend/VideoEmbed.jsx\"),\n\t),\n\tTeaserCarousel: React.lazy(() =>\n\t\timport(\"./teasers/components/Save/TeaserCarousel.jsx\"),\n\t),\n\tFullWidthHotspot: React.lazy(() =>\n\t\timport(\"./hotspot-full-width/components/Save/Frontend.jsx\"),\n\t),\n\tSwiperCarousel: React.lazy(() =>\n\t\timport(\"./swiper-carousel/components/Frontend/index.jsx\"),\n\t),\n\tSwiperSlide,\n\tQuiz: React.lazy(() => import(\"./quiz/components/Save/Frontend.jsx\")),\n\tTimeline: React.lazy(() => import(\"./timeline/components/Save/Frontend.jsx\")),\n\tSwiperControls: React.lazy(() =>\n\t\timport(\n\t\t\t\"./timeline/inner-blocks/timeline-item/components/Save/SwiperControls.jsx\"\n\t\t),\n\t),\n\tVideoHero: React.lazy(() => import(\"./hero/components/Save/Frontend.jsx\")),\n\tHotspot: React.lazy(() =>\n\t\timport(\"./hotspot/components/Frontend/Hotspot.jsx\"),\n\t),\n\tHotspotSelectors: React.lazy(() =>\n\t\timport(\"./hotspot/components/Frontend/HotspotSelectorPanel.jsx\"),\n\t),\n\tHotspotItem: React.lazy(() =>\n\t\timport(\"./hotspot/inner-blocks/hotspot-item/components/Panel.jsx\"),\n\t),\n\tCountdown: React.lazy(() => import(\"./countdown/components/Countdown.jsx\")),\n};\n","// we may need to punt on this and move to render?\n// reason being it's not technically SSR but...\n// it's basically the saved output of react so might as well be\nimport { render } from \"react-dom\";\n\n// all possible components lazy loaded\nimport components from \"../components/lazyComponents.js\"; //\" /components/lazyComponents.js\";\n// parser that wraps each dom tree parsed in a <Suspense/> tag\n// fallback is same HTML dangerously set as HTML\nimport htmlToJSX from \"./htmlToJSX.jsx\";\n\n// All possible nodes to make interactive\nlet domNodes = document.querySelectorAll(\"[data-react]\");\n// algo to reduce nodes down to root nodes\n// this is due to htmlToJSX recursively walking down\n// node tree to render all comoponents\nlet rootNodes = [...domNodes].filter((node) => {\n\tlet parent = node.parentElement;\n\tlet next = parent?.closest(\"[data-react]\");\n\treturn !next;\n});\n\n// helper function to ensure the root nodes are\n// not injected into but actually replaced\nfunction renderReplace(reactComponent, element) {\n\tconst targetNode = document.createElement(\"div\");\n\tconst fullReplace = element.getAttribute(\"data-react-replace\") !== \"false\";\n\ttargetNode.innerHTML = element.outerHTML;\n\t// render(reactComponent, element);\n\trender(reactComponent, targetNode, () => {\n\t\t// Due to lazy loading components we need to wait for the dom to be ready\n\t\t// before asking the element to be replaced with our targetNode's child.\n\t\t// We're assuming on the first mutation observed React has attached itself\n\t\t// so we should be able to safely replace the server rendered DOM Node with React's\n\t\tconst observer = new MutationObserver((_, observer) => {\n\t\t\telement.replaceWith(fullReplace ? targetNode.childNodes[0] : targetNode);\n\t\t\tobserver.disconnect();\n\t\t});\n\t\tobserver.observe(targetNode, {\n\t\t\tattributes: true,\n\t\t\tchildList: true,\n\t\t\tsubtree: true,\n\t\t});\n\t\t// TODO: make this smarter on handling if component wasn't lazy loaded instead of a static timing\n\t\tsetTimeout(() => {\n\t\t\tobserver.disconnect();\n\t\t\telement.replaceWith(fullReplace ? targetNode.childNodes[0] : targetNode);\n\t\t}, 750);\n\t});\n}\n\n// now we just loop through nodes and make them reactive\nrootNodes.forEach((node) => {\n\tlet html = node.outerHTML;\n\trenderReplace(htmlToJSX(components, html), node);\n});\n\n// debug\n// console.log(\"root nodes\", rootNodes);\n","import React, { Suspense } from \"react\";\nimport parse, { domToReact } from \"html-react-parser\";\n\nexport default (components, html) => {\n\tfunction replacer({ attribs, children }) {\n\t\tconsole.log(`ATTRIBS:`, attribs, `\\n\\n\\nCHILDREN:`, children);\n\t\tif (attribs && attribs[\"data-react\"]) {\n\t\t\tif (!components[attribs[\"data-react\"]]) return;\n\t\t\tconst Component = components[attribs[\"data-react\"]];\n\t\t\tconst propsString = attribs[\"data-props\"];\n\t\t\tconst props = !!propsString ? JSON.parse(propsString) : {};\n\t\t\tconsole.log(\"hydrating props\", props);\n\t\t\tconst emptyChildrenRemoved = children.filter((child) => {\n\t\t\t\treturn (\n\t\t\t\t\tchild.type !== \"text\" ||\n\t\t\t\t\t(child.type === \"text\" && child.data.trim().length)\n\t\t\t\t);\n\t\t\t});\n\t\t\treturn (\n\t\t\t\t<Component {...props}>\n\t\t\t\t\t{domToReact(emptyChildrenRemoved, { replace: replacer })}\n\t\t\t\t</Component>\n\t\t\t);\n\t\t}\n\t}\n\treturn (\n\t\t<Suspense fallback={<div dangerouslySetInnerHTML={{ __html: html }} />}>\n\t\t\t{parse(html, { replace: replacer })}\n\t\t</Suspense>\n\t);\n};\n","export const THEME_URL = \"/wp-content/themes/tombras\";\n\n/**\n * Helper Functions\n */\n\n// Import helper dependencies\n// import md5 from \"md5\";\n\n// TODO: decide if we can delete this\n// // Generate a unique ID for the notice block\n// export function generateUniqueID(input) {\n// \treturn md5(input).substr(0, 6);\n// }\n\nexport function retrieveImageObjectBySize(image, size = \"full\") {\n\t// console.log(`size: ${size}`, image);\n\tif (!image) return null;\n\tconsole.log(\"retrieve image\", image);\n\tif (image[\"sizes\"][size]) {\n\t\tconsole.log(\"retrived image size\", image[\"sizes\"][size]);\n\t\treturn image[\"sizes\"][size];\n\t}\n\tconsole.log(\"failed to find image of size\", size);\n\treturn image[\"sizes\"][\"full\"];\n}\n\n/**\n * Used to get a previous screen value to show in UI instead of 'unset', helper to know what/if any value is set for a smaller screen\n * @param {string[]} Screens array of screen names, such as ['default', 'sm', 'md', ...]\n * @param {string} currentScreen The currently selected string\n * @param {key: []} values Hash of padding/margins where key is screen name and value is array of strings, each index represents top/right/bottom/left\n * @param {number?} position If values is an array, the position in the array to use, otherwise the values hash value is returned\n */\nexport function findImpliedValue(screens, currentScreen, values, position) {\n\tconsole.log({ screens, currentScreen, values });\n\tlet screenIndex = screens.indexOf(currentScreen);\n\twhile (--screenIndex > -1) {\n\t\tlet value = Number.isInteger(position)\n\t\t\t? values[screens[screenIndex]][position]\n\t\t\t: values[screens[screenIndex]];\n\t\tif (value) {\n\t\t\t// we've found a value set for a previous screen\n\t\t\t// so we're returning a string in the format of `(screnName: unitValue)` where 'default' is changed to 'xs'\n\t\t\treturn `(${\n\t\t\t\tscreens[screenIndex] == \"default\" ? \"xs\" : screens[screenIndex]\n\t\t\t}: ${value.split(\"-\").pop()})`;\n\t\t}\n\t}\n\t// there are no known values set for any screen\n\treturn \"unset\";\n}\n\n// Key map for common keys listened for\nexport const KeyboardKeys = {\n\tend: 35,\n\thome: 36,\n\tleft: 37,\n\tup: 38,\n\tright: 39,\n\tdown: 40,\n\tdelete: 46,\n};\n\n// Key directional map to determine navigation route\n// left/up would be 'go back' subtract from current index\n// right/down would be 'go forward' add to current index\nexport const KeyboardKeysDirection = {\n\t37: -1,\n\t38: -1,\n\t39: 1,\n\t40: 1,\n};\n\nexport function getInlineBackgroundStyles(attributes) {\n\treturn !attributes.useVideo && attributes.backgroundImageData.id\n\t\t? {\n\t\t\t\tbackgroundSize: attributes.backgroundRepeat\n\t\t\t\t\t? \"\"\n\t\t\t\t\t: attributes.backgroundCover\n\t\t\t\t\t? \"cover\"\n\t\t\t\t\t: \"contain\",\n\t\t\t\tbackgroundRepeat: attributes.backgroundRepeat ? \"repeat\" : \"no-repeat\",\n\t\t\t\tbackgroundImage: `url(${attributes.backgroundImageData.url})`,\n\t\t\t\tbackgroundPosition: attributes.backgroundRepeat\n\t\t\t\t\t? \"\"\n\t\t\t\t\t: `${attributes.focalPoint.x * 100}% ${\n\t\t\t\t\t\t\tattributes.focalPoint.y * 100\n\t\t\t\t\t  }%`,\n\t\t  }\n\t\t: {};\n}\n\nexport const decipherSource = (src = \"\") => {\n\t// matches youtu.be/1234\n\tif (src.match(/[&,youtu\\.be]\\/([^&]+)/)) {\n\t\tconst id = src.match(/[&,youtu\\.be]\\/([^&]+)/)[1];\n\t\treturn {\n\t\t\tplatform: \"youtube\",\n\t\t\turl: `https://www.youtube.com/embed/${id}?modestbranding=1&rel=0&enablejsapi=1`,\n\t\t};\n\t} else if (src.match(/[&,?v]=([^&]+)/)) {\n\t\tconst id = src.match(/[&,?v]=([^&]+)/)[1];\n\t\treturn {\n\t\t\tplatform: \"youtube\",\n\t\t\turl: `https://www.youtube.com/embed/${id}?modestbranding=1&rel=0&enablejsapi=1`,\n\t\t};\n\t} else if (src.match(/vimeo.com\\/([^&]+)/)) {\n\t\tconst id = src.match(/vimeo.com\\/([^&]+)/)[1];\n\t\treturn {\n\t\t\tplatform: \"vimeo\",\n\t\t\turl: `https://player.vimeo.com/video/${id}`,\n\t\t};\n\t}\n\n\treturn {\n\t\tplatform: \"unknown\",\n\t\turl: src,\n\t};\n};\n"],"names":["Accordion","Component","constructor","super","arguments","this","accordionRef","createRef","state","active","currentFocus","isFocused","updateActiveIdx","takeFocus","setState","updateFocus","newFocus","buttons","current","querySelectorAll","focus","onBlur","e","relatedTarget","includes","onKeyDown","idx","key","children","props","len","length","preventDefault","render","isAdmin","Array","isArray","map","child","cloneElement","anchor","onClick","newActiveIdx","data-react","data-props","JSON","stringify","attributes","data-react-replace","className","ref","rest","outerLookAndFeelClass","wp","element","_extends","Object","assign","target","i","source","prototype","hasOwnProperty","call","apply","_ref","strokeLinecap","strokeLinejoin","strokeWidth","d","fill","viewBox","stroke","icon","accessibilityClasses","lookAndFeelClasses","showIcon","ButtonType","id","aria-controls","classnames","aria-expanded","AccordionBody","height","componentDidUpdate","scrollHeight","componentDidMount","setTimeout","showBody","aria-labelledby","style","maxHeight","TabsContainer","role","forwardRef","show","aria-selected","tabIndex","undefined","TabPanel","hidden","TabsContext","createContext","TabShell","useState","Math","random","toString","slice","useRef","tabsList","tabsPanel","handleKeyboardEvent","keyboardUsed","activeTab","setActiveTab","addTabKey","removeTabKey","context","useContext","Error","useTabs","kids","React","Label","find","kid","type","name","Content","useEffect","useLayoutEffect","createPortal","makeSlot","AccordionPanel","AccordionHeading","TabPortal","disableKeyboardNavigation","setKeyboardUsed","setTabsList","setTabsPanel","tabIDs","setTabIDs","value","keyCode","KeyboardKeys","setFirstTabActive","setLastTabActive","setPreviousTabActive","setNextTabActive","tab","indexOf","keys","filter","some","Provider","TabShellLabel","TabShellContent","LatestPostsGrid","LatestPostsCard","SampleComponentReact","IFrameModal","VideoEmbed","TeaserCarousel","FullWidthHotspot","SwiperCarousel","SwiperSlide","Quiz","Timeline","SwiperControls","VideoHero","Hotspot","HotspotSelectors","HotspotItem","Countdown","document","node","parent","parentElement","closest","forEach","html","outerHTML","reactComponent","targetNode","createElement","fullReplace","getAttribute","innerHTML","observer","MutationObserver","_","replaceWith","childNodes","disconnect","observe","childList","subtree","renderReplace","components","Suspense","fallback","dangerouslySetInnerHTML","__html","parse","replace","replacer","attribs","propsString","emptyChildrenRemoved","data","trim","domToReact","htmlToJSX","end","home","left","up","right","down","delete","decipherSource","src","match","platform","url"],"sourceRoot":""}