UNPKG

@silexlabs/grapesjs-advanced-selector

Version:

A GrapesJS plugin for managing advanced CSS selectors with a visual interface

171 lines 99.5 kB
/*! @silexlabs/grapesjs-advanced-selector - 1.6.0 */ !function(e,t){'object'==typeof exports&&'object'==typeof module?module.exports=t():'function'==typeof define&&define.amd?define([],t):'object'==typeof exports?exports["@silexlabs/grapesjs-advanced-selector"]=t():e["@silexlabs/grapesjs-advanced-selector"]=t()}('undefined'!=typeof globalThis?globalThis:'undefined'!=typeof window?window:this,(()=>(()=>{"use strict";var e={d:(t,o)=>{for(var s in o)e.o(o,s)&&!e.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:o[s]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{'undefined'!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:'Module'}),Object.defineProperty(e,'__esModule',{value:!0})}},t={};e.r(t),e.d(t,{complexSelectorFromString:()=>Je,complexSelectorToString:()=>qe,default:()=>go,editStyle:()=>rt,getComponentSelector:()=>at,getSelectors:()=>st,matchSelectorAll:()=>it,name:()=>So,setComponentSelector:()=>nt});const o=globalThis,s=o.ShadowRoot&&(void 0===o.ShadyCSS||o.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,r=Symbol(),i=new WeakMap;class l{constructor(e,t,o){if(this._$cssResult$=!0,o!==r)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=t}get styleSheet(){let e=this.o;const t=this.t;if(s&&void 0===e){const o=void 0!==t&&1===t.length;o&&(e=i.get(t)),void 0===e&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),o&&i.set(t,e))}return e}toString(){return this.cssText}}const n=e=>new l("string"==typeof e?e:e+"",void 0,r),a=(e,...t)=>{const o=1===e.length?e[0]:t.reduce(((t,o,s)=>t+(e=>{if(!0===e._$cssResult$)return e.cssText;if("number"==typeof e)return e;throw Error("Value passed to 'css' function must be a 'css' function result: "+e+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(o)+e[s+1]),e[0]);return new l(o,e,r)},c=s?e=>e:e=>e instanceof CSSStyleSheet?(e=>{let t="";for(const o of e.cssRules)t+=o.cssText;return n(t)})(e):e,{is:d,defineProperty:h,getOwnPropertyDescriptor:p,getOwnPropertyNames:u,getOwnPropertySymbols:v,getPrototypeOf:m}=Object,S=globalThis,g=S.trustedTypes,f=g?g.emptyScript:"",y=S.reactiveElementPolyfillSupport,b=(e,t)=>e,C={toAttribute(e,t){switch(t){case Boolean:e=e?f:null;break;case Object:case Array:e=null==e?e:JSON.stringify(e)}return e},fromAttribute(e,t){let o=e;switch(t){case Boolean:o=null!==e;break;case Number:o=null===e?null:Number(e);break;case Object:case Array:try{o=JSON.parse(e)}catch(e){o=null}}return o}},$=(e,t)=>!d(e,t),_={attribute:!0,type:String,converter:C,reflect:!1,useDefault:!1,hasChanged:$};Symbol.metadata??=Symbol("metadata"),S.litPropertyMetadata??=new WeakMap;class A extends HTMLElement{static addInitializer(e){this._$Ei(),(this.l??=[]).push(e)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(e,t=_){if(t.state&&(t.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(e)&&((t=Object.create(t)).wrapped=!0),this.elementProperties.set(e,t),!t.noAccessor){const o=Symbol(),s=this.getPropertyDescriptor(e,o,t);void 0!==s&&h(this.prototype,e,s)}}static getPropertyDescriptor(e,t,o){const{get:s,set:r}=p(this.prototype,e)??{get(){return this[t]},set(e){this[t]=e}};return{get:s,set(t){const i=s?.call(this);r?.call(this,t),this.requestUpdate(e,i,o)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)??_}static _$Ei(){if(this.hasOwnProperty(b("elementProperties")))return;const e=m(this);e.finalize(),void 0!==e.l&&(this.l=[...e.l]),this.elementProperties=new Map(e.elementProperties)}static finalize(){if(this.hasOwnProperty(b("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(b("properties"))){const e=this.properties,t=[...u(e),...v(e)];for(const o of t)this.createProperty(o,e[o])}const e=this[Symbol.metadata];if(null!==e){const t=litPropertyMetadata.get(e);if(void 0!==t)for(const[e,o]of t)this.elementProperties.set(e,o)}this._$Eh=new Map;for(const[e,t]of this.elementProperties){const o=this._$Eu(e,t);void 0!==o&&this._$Eh.set(o,e)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(e){const t=[];if(Array.isArray(e)){const o=new Set(e.flat(1/0).reverse());for(const e of o)t.unshift(c(e))}else void 0!==e&&t.push(c(e));return t}static _$Eu(e,t){const o=t.attribute;return!1===o?void 0:"string"==typeof o?o:"string"==typeof e?e.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((e=>this.enableUpdating=e)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((e=>e(this)))}addController(e){(this._$EO??=new Set).add(e),void 0!==this.renderRoot&&this.isConnected&&e.hostConnected?.()}removeController(e){this._$EO?.delete(e)}_$E_(){const e=new Map,t=this.constructor.elementProperties;for(const o of t.keys())this.hasOwnProperty(o)&&(e.set(o,this[o]),delete this[o]);e.size>0&&(this._$Ep=e)}createRenderRoot(){const e=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return((e,t)=>{if(s)e.adoptedStyleSheets=t.map((e=>e instanceof CSSStyleSheet?e:e.styleSheet));else for(const s of t){const t=document.createElement("style"),r=o.litNonce;void 0!==r&&t.setAttribute("nonce",r),t.textContent=s.cssText,e.appendChild(t)}})(e,this.constructor.elementStyles),e}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((e=>e.hostConnected?.()))}enableUpdating(e){}disconnectedCallback(){this._$EO?.forEach((e=>e.hostDisconnected?.()))}attributeChangedCallback(e,t,o){this._$AK(e,o)}_$ET(e,t){const o=this.constructor.elementProperties.get(e),s=this.constructor._$Eu(e,o);if(void 0!==s&&!0===o.reflect){const r=(void 0!==o.converter?.toAttribute?o.converter:C).toAttribute(t,o.type);this._$Em=e,null==r?this.removeAttribute(s):this.setAttribute(s,r),this._$Em=null}}_$AK(e,t){const o=this.constructor,s=o._$Eh.get(e);if(void 0!==s&&this._$Em!==s){const e=o.getPropertyOptions(s),r="function"==typeof e.converter?{fromAttribute:e.converter}:void 0!==e.converter?.fromAttribute?e.converter:C;this._$Em=s;const i=r.fromAttribute(t,e.type);this[s]=i??this._$Ej?.get(s)??i,this._$Em=null}}requestUpdate(e,t,o,s=!1,r){if(void 0!==e){const i=this.constructor;if(!1===s&&(r=this[e]),o??=i.getPropertyOptions(e),!((o.hasChanged??$)(r,t)||o.useDefault&&o.reflect&&r===this._$Ej?.get(e)&&!this.hasAttribute(i._$Eu(e,o))))return;this.C(e,t,o)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(e,t,{useDefault:o,reflect:s,wrapped:r},i){o&&!(this._$Ej??=new Map).has(e)&&(this._$Ej.set(e,i??t??this[e]),!0!==r||void 0!==i)||(this._$AL.has(e)||(this.hasUpdated||o||(t=void 0),this._$AL.set(e,t)),!0===s&&this._$Em!==e&&(this._$Eq??=new Set).add(e))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(e){Promise.reject(e)}const e=this.scheduleUpdate();return null!=e&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[e,t]of this._$Ep)this[e]=t;this._$Ep=void 0}const e=this.constructor.elementProperties;if(e.size>0)for(const[t,o]of e){const{wrapped:e}=o,s=this[t];!0!==e||this._$AL.has(t)||void 0===s||this.C(t,void 0,o,s)}}let e=!1;const t=this._$AL;try{e=this.shouldUpdate(t),e?(this.willUpdate(t),this._$EO?.forEach((e=>e.hostUpdate?.())),this.update(t)):this._$EM()}catch(t){throw e=!1,this._$EM(),t}e&&this._$AE(t)}willUpdate(e){}_$AE(e){this._$EO?.forEach((e=>e.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(e){return!0}update(e){this._$Eq&&=this._$Eq.forEach((e=>this._$ET(e,this[e]))),this._$EM()}updated(e){}firstUpdated(e){}}A.elementStyles=[],A.shadowRootOptions={mode:"open"},A[b("elementProperties")]=new Map,A[b("finalized")]=new Map,y?.({ReactiveElement:A}),(S.reactiveElementVersions??=[]).push("2.1.2");const E=globalThis,w=E.trustedTypes,W=w?w.createPolicy("lit-html",{createHTML:e=>e}):void 0,U="$lit$",z=`lit$${Math.random().toFixed(9).slice(2)}$`,R="?"+z,T=`<${R}>`,P=document,k=()=>P.createComment(""),L=e=>null===e||"object"!=typeof e&&"function"!=typeof e,x=Array.isArray,I=e=>x(e)||"function"==typeof e?.[Symbol.iterator],O="[ \t\n\f\r]",N=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,j=/-->/g,D=/>/g,M=RegExp(`>|${O}(?:([^\\s"'>=/]+)(${O}*=${O}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),H=/'/g,F=/"/g,B=/^(?:script|style|textarea|title)$/i,V=e=>(t,...o)=>({_$litType$:e,strings:t,values:o}),G=V(1),q=V(2),Y=(V(3),Symbol.for("lit-noChange")),Z=Symbol.for("lit-nothing"),J=new WeakMap,K=P.createTreeWalker(P,129);function Q(e,t){if(!x(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==W?W.createHTML(t):t}const X=(e,t)=>{const o=e.length-1,s=[];let r,i=2===t?"<svg>":3===t?"<math>":"",l=N;for(let t=0;t<o;t++){const o=e[t];let n,a,c=-1,d=0;for(;d<o.length&&(l.lastIndex=d,a=l.exec(o),null!==a);)d=l.lastIndex,l===N?"!--"===a[1]?l=j:void 0!==a[1]?l=D:void 0!==a[2]?(B.test(a[2])&&(r=RegExp("</"+a[2],"g")),l=M):void 0!==a[3]&&(l=M):l===M?">"===a[0]?(l=r??N,c=-1):void 0===a[1]?c=-2:(c=l.lastIndex-a[2].length,n=a[1],l=void 0===a[3]?M:'"'===a[3]?F:H):l===F||l===H?l=M:l===j||l===D?l=N:(l=M,r=void 0);const h=l===M&&e[t+1].startsWith("/>")?" ":"";i+=l===N?o+T:c>=0?(s.push(n),o.slice(0,c)+U+o.slice(c)+z+h):o+z+(-2===c?t:h)}return[Q(e,i+(e[o]||"<?>")+(2===t?"</svg>":3===t?"</math>":"")),s]};class ee{constructor({strings:e,_$litType$:t},o){let s;this.parts=[];let r=0,i=0;const l=e.length-1,n=this.parts,[a,c]=X(e,t);if(this.el=ee.createElement(a,o),K.currentNode=this.el.content,2===t||3===t){const e=this.el.content.firstChild;e.replaceWith(...e.childNodes)}for(;null!==(s=K.nextNode())&&n.length<l;){if(1===s.nodeType){if(s.hasAttributes())for(const e of s.getAttributeNames())if(e.endsWith(U)){const t=c[i++],o=s.getAttribute(e).split(z),l=/([.?@])?(.*)/.exec(t);n.push({type:1,index:r,name:l[2],strings:o,ctor:"."===l[1]?ie:"?"===l[1]?le:"@"===l[1]?ne:re}),s.removeAttribute(e)}else e.startsWith(z)&&(n.push({type:6,index:r}),s.removeAttribute(e));if(B.test(s.tagName)){const e=s.textContent.split(z),t=e.length-1;if(t>0){s.textContent=w?w.emptyScript:"";for(let o=0;o<t;o++)s.append(e[o],k()),K.nextNode(),n.push({type:2,index:++r});s.append(e[t],k())}}}else if(8===s.nodeType)if(s.data===R)n.push({type:2,index:r});else{let e=-1;for(;-1!==(e=s.data.indexOf(z,e+1));)n.push({type:7,index:r}),e+=z.length-1}r++}}static createElement(e,t){const o=P.createElement("template");return o.innerHTML=e,o}}function te(e,t,o=e,s){if(t===Y)return t;let r=void 0!==s?o._$Co?.[s]:o._$Cl;const i=L(t)?void 0:t._$litDirective$;return r?.constructor!==i&&(r?._$AO?.(!1),void 0===i?r=void 0:(r=new i(e),r._$AT(e,o,s)),void 0!==s?(o._$Co??=[])[s]=r:o._$Cl=r),void 0!==r&&(t=te(e,r._$AS(e,t.values),r,s)),t}class oe{constructor(e,t){this._$AV=[],this._$AN=void 0,this._$AD=e,this._$AM=t}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(e){const{el:{content:t},parts:o}=this._$AD,s=(e?.creationScope??P).importNode(t,!0);K.currentNode=s;let r=K.nextNode(),i=0,l=0,n=o[0];for(;void 0!==n;){if(i===n.index){let t;2===n.type?t=new se(r,r.nextSibling,this,e):1===n.type?t=new n.ctor(r,n.name,n.strings,this,e):6===n.type&&(t=new ae(r,this,e)),this._$AV.push(t),n=o[++l]}i!==n?.index&&(r=K.nextNode(),i++)}return K.currentNode=P,s}p(e){let t=0;for(const o of this._$AV)void 0!==o&&(void 0!==o.strings?(o._$AI(e,o,t),t+=o.strings.length-2):o._$AI(e[t])),t++}}class se{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(e,t,o,s){this.type=2,this._$AH=Z,this._$AN=void 0,this._$AA=e,this._$AB=t,this._$AM=o,this.options=s,this._$Cv=s?.isConnected??!0}get parentNode(){let e=this._$AA.parentNode;const t=this._$AM;return void 0!==t&&11===e?.nodeType&&(e=t.parentNode),e}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(e,t=this){e=te(this,e,t),L(e)?e===Z||null==e||""===e?(this._$AH!==Z&&this._$AR(),this._$AH=Z):e!==this._$AH&&e!==Y&&this._(e):void 0!==e._$litType$?this.$(e):void 0!==e.nodeType?this.T(e):I(e)?this.k(e):this._(e)}O(e){return this._$AA.parentNode.insertBefore(e,this._$AB)}T(e){this._$AH!==e&&(this._$AR(),this._$AH=this.O(e))}_(e){this._$AH!==Z&&L(this._$AH)?this._$AA.nextSibling.data=e:this.T(P.createTextNode(e)),this._$AH=e}$(e){const{values:t,_$litType$:o}=e,s="number"==typeof o?this._$AC(e):(void 0===o.el&&(o.el=ee.createElement(Q(o.h,o.h[0]),this.options)),o);if(this._$AH?._$AD===s)this._$AH.p(t);else{const e=new oe(s,this),o=e.u(this.options);e.p(t),this.T(o),this._$AH=e}}_$AC(e){let t=J.get(e.strings);return void 0===t&&J.set(e.strings,t=new ee(e)),t}k(e){x(this._$AH)||(this._$AH=[],this._$AR());const t=this._$AH;let o,s=0;for(const r of e)s===t.length?t.push(o=new se(this.O(k()),this.O(k()),this,this.options)):o=t[s],o._$AI(r),s++;s<t.length&&(this._$AR(o&&o._$AB.nextSibling,s),t.length=s)}_$AR(e=this._$AA.nextSibling,t){for(this._$AP?.(!1,!0,t);e&&e!==this._$AB;){const t=e.nextSibling;e.remove(),e=t}}setConnected(e){void 0===this._$AM&&(this._$Cv=e,this._$AP?.(e))}}class re{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(e,t,o,s,r){this.type=1,this._$AH=Z,this._$AN=void 0,this.element=e,this.name=t,this._$AM=s,this.options=r,o.length>2||""!==o[0]||""!==o[1]?(this._$AH=Array(o.length-1).fill(new String),this.strings=o):this._$AH=Z}_$AI(e,t=this,o,s){const r=this.strings;let i=!1;if(void 0===r)e=te(this,e,t,0),i=!L(e)||e!==this._$AH&&e!==Y,i&&(this._$AH=e);else{const s=e;let l,n;for(e=r[0],l=0;l<r.length-1;l++)n=te(this,s[o+l],t,l),n===Y&&(n=this._$AH[l]),i||=!L(n)||n!==this._$AH[l],n===Z?e=Z:e!==Z&&(e+=(n??"")+r[l+1]),this._$AH[l]=n}i&&!s&&this.j(e)}j(e){e===Z?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,e??"")}}class ie extends re{constructor(){super(...arguments),this.type=3}j(e){this.element[this.name]=e===Z?void 0:e}}class le extends re{constructor(){super(...arguments),this.type=4}j(e){this.element.toggleAttribute(this.name,!!e&&e!==Z)}}class ne extends re{constructor(e,t,o,s,r){super(e,t,o,s,r),this.type=5}_$AI(e,t=this){if((e=te(this,e,t,0)??Z)===Y)return;const o=this._$AH,s=e===Z&&o!==Z||e.capture!==o.capture||e.once!==o.once||e.passive!==o.passive,r=e!==Z&&(o===Z||s);s&&this.element.removeEventListener(this.name,this,o),r&&this.element.addEventListener(this.name,this,e),this._$AH=e}handleEvent(e){"function"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,e):this._$AH.handleEvent(e)}}class ae{constructor(e,t,o){this.element=e,this.type=6,this._$AN=void 0,this._$AM=t,this.options=o}get _$AU(){return this._$AM._$AU}_$AI(e){te(this,e)}}const ce={M:U,P:z,A:R,C:1,L:X,R:oe,D:I,V:te,I:se,H:re,N:le,U:ne,B:ie,F:ae},de=E.litHtmlPolyfillSupport;de?.(ee,se),(E.litHtmlVersions??=[]).push("3.3.0");const he=(e,t,o)=>{const s=o?.renderBefore??t;let r=s._$litPart$;if(void 0===r){const e=o?.renderBefore??null;s._$litPart$=r=new se(t.insertBefore(k(),e),e,void 0,o??{})}return r._$AI(e),r},pe=globalThis;class ue extends A{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const e=super.createRenderRoot();return this.renderOptions.renderBefore??=e.firstChild,e}update(e){const t=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(e),this._$Do=he(t,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return Y}}ue._$litElement$=!0,ue["finalized"]=!0,pe.litElementHydrateSupport?.({LitElement:ue});const ve=pe.litElementPolyfillSupport;ve?.({LitElement:ue});var me;(pe.litElementVersions??=[]).push("4.2.2"),function(e){e["HOVER"]="hover",e["ACTIVE"]="active",e["FOCUS"]="focus",e["FOCUS_WITHIN"]="focus-within",e["FOCUS_VISIBLE"]="focus-visible",e["VISITED"]="visited",e["LINK"]="link",e["ANY_LINK"]="any-link",e["FIRST_CHILD"]="first-child",e["LAST_CHILD"]="last-child",e["NTH_CHILD"]="nth-child",e["NTH_LAST_CHILD"]="nth-last-child",e["ONLY_CHILD"]="only-child",e["FIRST_OF_TYPE"]="first-of-type",e["LAST_OF_TYPE"]="last-of-type",e["NTH_OF_TYPE"]="nth-of-type",e["NTH_LAST_OF_TYPE"]="nth-last-of-type",e["ONLY_OF_TYPE"]="only-of-type",e["EMPTY"]="empty",e["ROOT"]="root",e["SCOPE"]="scope",e["TARGET"]="target",e["BEFORE"]="before",e["AFTER"]="after",e["FIRST_LINE"]="first-line",e["FIRST_LETTER"]="first-letter",e["ENABLED"]="enabled",e["DISABLED"]="disabled",e["CHECKED"]="checked",e["INDETERMINATE"]="indeterminate",e["DEFAULT"]="default",e["VALID"]="valid",e["INVALID"]="invalid",e["IN_RANGE"]="in-range",e["OUT_OF_RANGE"]="out-of-range",e["REQUIRED"]="required",e["OPTIONAL"]="optional",e["READ_ONLY"]="read-only",e["READ_WRITE"]="read-write",e["LANG"]="lang",e["DIR"]="dir"}(me||(me={}));const Se=[{type:me.HOVER,hasParam:!1,sentencePre:'On mouse',helpLink:'https://developer.mozilla.org/en-US/docs/Web/CSS/:hover'},{type:me.ACTIVE,hasParam:!1,sentencePre:'When',helpLink:'https://developer.mozilla.org/en-US/docs/Web/CSS/:active'},{type:me.FOCUS,hasParam:!1,sentencePre:'When it has the',helpLink:'https://developer.mozilla.org/en-US/docs/Web/CSS/:focus'},{type:me.FOCUS_WITHIN,hasParam:!1,sentencePre:'When the',helpLink:'https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-within'},{type:me.FOCUS_VISIBLE,hasParam:!1,sentencePre:'When the',helpLink:'https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible'},{type:me.VISITED,hasParam:!1,sentencePre:'When',helpLink:'https://developer.mozilla.org/en-US/docs/Web/CSS/:visited'},{type:me.LINK,hasParam:!1,sentencePre:'When it is a',helpLink:'https://developer.mozilla.org/en-US/docs/Web/CSS/:link'},{type:me.ANY_LINK,hasParam:!1,sentencePre:'When it is a',helpLink:'https://developer.mozilla.org/en-US/docs/Web/CSS/:any-link'},{type:me.FIRST_CHILD,hasParam:!1,sentencePre:'When it is the',helpLink:'https://developer.mozilla.org/en-US/docs/Web/CSS/:first-child'},{type:me.LAST_CHILD,hasParam:!1,sentencePre:'When it is the',helpLink:'https://developer.mozilla.org/en-US/docs/Web/CSS/:last-child'},{type:me.NTH_CHILD,hasParam:!0,sentencePre:'When it is the',helpLink:'https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-child'},{type:me.NTH_LAST_CHILD,hasParam:!0,sentencePre:'When it is the',helpLink:'https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-last-child'},{type:me.ONLY_CHILD,hasParam:!1,sentencePre:'When it is the',helpLink:'https://developer.mozilla.org/en-US/docs/Web/CSS/:only-child'},{type:me.FIRST_OF_TYPE,hasParam:!1,sentencePre:'When it is the',helpLink:'https://developer.mozilla.org/en-US/docs/Web/CSS/:first-of-type'},{type:me.LAST_OF_TYPE,hasParam:!1,sentencePre:'When it is the',helpLink:'https://developer.mozilla.org/en-US/docs/Web/CSS/:last-of-type'},{type:me.NTH_OF_TYPE,hasParam:!0,sentencePre:'When it is the',helpLink:'https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-of-type'},{type:me.NTH_LAST_OF_TYPE,hasParam:!0,sentencePre:'When it is the',helpLink:'https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-last-of-type'},{type:me.ONLY_OF_TYPE,hasParam:!1,sentencePre:'When it is the',helpLink:'https://developer.mozilla.org/en-US/docs/Web/CSS/:only-of-type'},{type:me.EMPTY,hasParam:!1,sentencePre:'When it is',helpLink:'https://developer.mozilla.org/en-US/docs/Web/CSS/:empty'},{type:me.ROOT,hasParam:!1,sentencePre:'When it is the',helpLink:'https://developer.mozilla.org/en-US/docs/Web/CSS/:root'},{type:me.SCOPE,hasParam:!1,sentencePre:'When it is within',helpLink:'https://developer.mozilla.org/en-US/docs/Web/CSS/:scope'},{type:me.TARGET,hasParam:!1,sentencePre:'When URL matches',helpLink:'https://developer.mozilla.org/en-US/docs/Web/CSS/:target'},{type:me.BEFORE,hasParam:!1,sentencePre:'Style the',sentencePost:'pseudo-element',helpLink:'https://developer.mozilla.org/en-US/docs/Web/CSS/::before'},{type:me.AFTER,hasParam:!1,sentencePre:'Style the',sentencePost:'pseudo-element',helpLink:'https://developer.mozilla.org/en-US/docs/Web/CSS/::after'},{type:me.FIRST_LINE,hasParam:!1,sentencePre:'Style the',helpLink:'https://developer.mozilla.org/en-US/docs/Web/CSS/::first-line'},{type:me.FIRST_LETTER,hasParam:!1,sentencePre:'Style the',helpLink:'https://developer.mozilla.org/en-US/docs/Web/CSS/::first-letter'},{type:me.ENABLED,hasParam:!1,sentencePre:'When it is',helpLink:'https://developer.mozilla.org/en-US/docs/Web/CSS/:enabled'},{type:me.DISABLED,hasParam:!1,sentencePre:'When it is',helpLink:'https://developer.mozilla.org/en-US/docs/Web/CSS/:disabled'},{type:me.CHECKED,hasParam:!1,sentencePre:'When it is',helpLink:'https://developer.mozilla.org/en-US/docs/Web/CSS/:checked'},{type:me.INDETERMINATE,hasParam:!1,sentencePre:'When it is',helpLink:'https://developer.mozilla.org/en-US/docs/Web/CSS/:indeterminate'},{type:me.REQUIRED,hasParam:!1,sentencePre:'When it is',helpLink:'https://developer.mozilla.org/en-US/docs/Web/CSS/:required'},{type:me.OPTIONAL,hasParam:!1,sentencePre:'When it is',helpLink:'https://developer.mozilla.org/en-US/docs/Web/CSS/:optional'},{type:me.LANG,hasParam:!0,sentencePre:'When it matches',helpLink:'https://developer.mozilla.org/en-US/docs/Web/CSS/:lang'},{type:me.DIR,hasParam:!0,sentencePre:'When the text direction is',helpLink:'https://developer.mozilla.org/en-US/docs/Web/CSS/:dir'}];function ge(e){var t;return e.hasParam?`:${e.type}(${null!==(t=e.param)&&void 0!==t?t:''})`:`:${e.type}`}var fe,ye;!function(e){e["TAG"]="tag",e["CUSTOM_TAG"]="custom-tag",e["CLASS"]="class",e["ID"]="id",e["ATTRIBUTE"]="attribute",e["UNIVERSAL"]="universal",e["UNKNOWN"]="unknown"}(fe||(fe={})),function(e){e["EQUALS"]="=",e["INCLUDES"]="~=",e["DASH_MATCH"]="|=",e["PREFIX_MATCH"]="^=",e["SUFFIX_MATCH"]="$=",e["SUBSTRING_MATCH"]="*="}(ye||(ye={}));const be=['id','class','style','name','type','value','placeholder','href','src','alt','title','width','height','disabled','checked','selected','hidden','readonly','multiple','required','min','max','step','pattern','autocomplete','autofocus','spellcheck','contenteditable','dir','lang','tabindex','accesskey','role'],Ce=['a','abbr','address','area','article','aside','audio','b','base','bdi','bdo','blockquote','body','br','button','canvas','caption','cite','code','col','colgroup','data','datalist','dd','del','details','dfn','dialog','div','dl','dt','em','embed','fieldset','figcaption','figure','footer','form','h1','h2','h3','h4','h5','h6','head','header','hgroup','hr','html','i','iframe','img','input','ins','kbd','label','legend','li','link','main','map','mark','meta','meter','nav','noscript','object','ol','optgroup','option','output','p','param','picture','pre','progress','q','rb','rp','rt','rtc','ruby','s','samp','script','section','select','slot','small','source','span','strong','style','sub','summary','sup','table','tbody','td','template','textarea','tfoot','th','thead','time','title','tr','track','u','ul','var','video','wbr'],$e=[' '],_e={[fe.TAG]:{color:'var(--gjs-color-blue, #3b97e3)'},[fe.CUSTOM_TAG]:{color:'var(--gjs-color-blue, #3b97e3)'},[fe.CLASS]:{color:'var(--gjs-color-green, #62c462)'},[fe.ID]:{color:'var(--gjs-tertiary-color, #8873FE)'},[fe.ATTRIBUTE]:{color:'var(--gjs-color-yellow, #ffca6f)'},[fe.UNIVERSAL]:{color:'var(--gjs-color-red, #dd3636)'},[fe.UNKNOWN]:{color:'var(--gjs-color-red, #dd3636)'}},Ae='•',Ee='#',we='[ ]',We='',Ue='⚛',ze='⚛',Re='?';function Te(e,t,o=!0){if(e.type!==t.type)return!1;if(!o&&e.active!==t.active)return!1;switch(e.type){case fe.TAG:case fe.CUSTOM_TAG:case fe.CLASS:case fe.ID:{const o=t;return e.value===o.value}case fe.ATTRIBUTE:{const o=e,s=t;return o.operator===s.operator&&((!o.operator||o.attributeValue===s.attributeValue)&&o.value===s.value)}case fe.UNIVERSAL:return!0;default:return!1}}function Pe(e){var t;switch(e.type){case fe.ATTRIBUTE:{const o=e;return`[${o.value||''}${o.operator?`${o.operator}"${null!==(t=o.attributeValue)&&void 0!==t?t:''}"`:''}]`}case fe.CLASS:return`.${e.value||''}`;case fe.ID:return`#${e.value||''}`;case fe.TAG:case fe.CUSTOM_TAG:return e.value||'';case fe.UNIVERSAL:return'*';default:return''}}function ke(e){if(e.type===fe.ATTRIBUTE){return`[${e.value||''}]`}return Pe(e)}function Le(e){if(''===e)return e;if('*'===e)return e;const t=$e.map((e=>`\\${e}`)).join('|'),o=e.toLowerCase().replace(new RegExp(t,'g'),'-'),s=e.replace(new RegExp(t,'g'),'-');if(o.match(/^[0-9-]/))return!1;if(o.startsWith('-'))return!1;if(o.match(/^\[[a-z-]*\]?$/)&&be.includes(o.replace('[','').replace(']','')))return o.replace(']','')+']';const r=e.match(/^\[([\w-]+)\s*=\s*"([^"]*)"?\]?$/);if(r){const[,e,t]=r;if(be.includes(e))return`[${e}="${t}"]`}return o.match(/^\[data-[_a-zA-Z]+[_a-zA-Z0-9]*\]?$/)?o.replace(']','')+']':o.match(/^[a-z-]*[a-z]$/)&&o.includes('-')&&window.customElements.get(o)||o.match(/^[a-z]*$/)&&Ce.includes(o)?o:s.match(/^\.-?[_a-zA-Z]+[_a-zA-Z0-9-]*$/)||s.match(/^#-?[_a-zA-Z]+[_a-zA-Z0-9-]*$/)?s:!!s.match(/^-?[_a-zA-Z]+[_a-zA-Z0-9-]*[_a-zA-Z0-9]$/)&&'.'+s}function xe(e,t=!1){if(!t&&!e.active)return 0;switch(e.type){case fe.TAG:return 1;case fe.CLASS:case fe.ATTRIBUTE:case fe.CUSTOM_TAG:return 10;case fe.ID:return 100;case fe.UNIVERSAL:return 0;default:return console.warn(`Unknown selector type: ${e.type}`),0}}function Ie(e){switch(e.type){case fe.TAG:case fe.CUSTOM_TAG:return 1;case fe.ID:return 2;case fe.CLASS:return 3;case fe.ATTRIBUTE:return 4;case fe.UNIVERSAL:return 5;default:return 6}}function Oe(e,t=!1){var o;if(e.selectors.length>1&&(null===(o=e.selectors.find((e=>'universal'===e.type)))||void 0===o?void 0:o.active))return console.warn('The universal selector can only be used alone'),`*${e.pseudoClass?ge(e.pseudoClass):''}`;const s=e.selectors.filter((e=>e.active)).sort(((e,t)=>Ie(e)-Ie(t))).map(Pe).join('');if(!s)return'';return`${s}${!t&&e.pseudoClass?ge(e.pseudoClass):''}`}function Ne(e){return e.selectors.filter((e=>e.active)).reduce(((e,t)=>e+xe(t)),0)+(e.pseudoClass?10:0)}function je(e){const t=e.match(/(#[-\w]+)|(\.[-\w]+)|(\*)|([a-zA-Z][-a-zA-Z0-9]*)|(\[([a-zA-Z][-a-zA-Z0-9]*)\s*([~|^$*]?=)?\s*"?([^"\]]*)"?\])|(:[-\w]+(\([^)]*\))?)/g);if(!t)throw new Error(`Invalid selector: ${e}`);const o=[];let s;return t.forEach((e=>{if(e.startsWith('#'))o.push({type:fe.ID,value:e.slice(1),active:!0});else if(e.startsWith('.'))o.push({type:fe.CLASS,value:e.slice(1),active:!0});else if(e.startsWith('[')){const t=e.match(/^\[([a-zA-Z][-a-zA-Z0-9]*)\s*([~|^$*]?=)?\s*"?([^"\]]*)"?\]$/);if(t){const e={type:fe.ATTRIBUTE,value:t[1],attributeValue:t[3]||'',active:!0};t[2]&&(e.operator=t[2]),o.push(e)}}else if('*'===e)o.push({type:fe.UNIVERSAL,active:!0});else if(e.match(/^[a-zA-Z][-a-zA-Z0-9]*$/))o.push({type:fe.TAG,value:e,active:!0});else if(e.startsWith(':')){const t=e.match(/:([-\w]+)(\([^)]*\))?/);if(t){if(s={...Se.find((e=>e.type===t[1]))},!s)throw new Error(`Pseudo-class not found: ${t[1]}`);s.hasParam&&t[2]&&(s={...s,param:t[2].slice(1,-1)})}}})),s?{selectors:o,pseudoClass:s}:{selectors:o}}function De(e,t){const o=[...e.selectors];return t.selectors.forEach((e=>{o.some((t=>t.type===e.type&&t.value===e.value))||o.push(e)})),{selectors:o,pseudoClass:e.pseudoClass||t.pseudoClass||null}}function Me(e,t){return e.map((e=>{const o=t.find((t=>t.type===e.type&&t.value===e.value));return{...e,active:!!o&&o.active}}))}var He;!function(e){e["HAS"]="has",e["NOT"]="not",e["IS"]="is",e["WHERE"]="where",e["CHILD"]=">",e["DESCENDANT"]=" ",e["ADJACENT"]="+",e["GENERAL_SIBLING"]="~"}(He||(He={}));const Fe=[{type:He.DESCENDANT,hasParam:!1,sentencePre:'When it is',displayName:'inside of',helpLink:'https://developer.mozilla.org/en-US/docs/Web/CSS/Descendant_combinator',isCombinator:!0,stringRepresentation:' '},{type:He.CHILD,hasParam:!1,sentencePre:'When it is a',displayName:'direct child of',helpLink:'https://developer.mozilla.org/en-US/docs/Web/CSS/Child_combinator',isCombinator:!0,stringRepresentation:' > '},{type:He.ADJACENT,hasParam:!1,sentencePre:'When it is',displayName:'adjacent to',helpLink:'https://developer.mozilla.org/en-US/docs/Web/CSS/Adjacent_sibling_combinator',isCombinator:!0,stringRepresentation:' + '},{type:He.GENERAL_SIBLING,hasParam:!1,sentencePre:'When it is',displayName:'after',helpLink:'https://developer.mozilla.org/en-US/docs/Web/CSS/General_sibling_combinator',isCombinator:!0,stringRepresentation:' ~ '},{type:He.HAS,hasParam:!1,sentencePre:'When it',displayName:'contains',helpLink:'https://developer.mozilla.org/en-US/docs/Web/CSS/:has',isCombinator:!1,stringRepresentation:':has'},{type:He.NOT,hasParam:!1,sentencePre:'When it',displayName:'does not match',helpLink:'https://developer.mozilla.org/en-US/docs/Web/CSS/:not',isCombinator:!1,stringRepresentation:':not'},{type:He.IS,hasParam:!1,sentencePre:'When it',displayName:'matches',helpLink:'https://developer.mozilla.org/en-US/docs/Web/CSS/:is',isCombinator:!1,stringRepresentation:':is'},{type:He.WHERE,hasParam:!1,sentencePre:'When it',displayName:'matches (no spec)',helpLink:'https://developer.mozilla.org/en-US/docs/Web/CSS/:where',isCombinator:!1,stringRepresentation:':where'}];function Be(e,t){const o=t?Oe(t):'';if(!o)return'';switch(e.type){case He.HAS:case He.NOT:case He.IS:case He.WHERE:return`${e.stringRepresentation}(${o})`;case He.CHILD:case He.ADJACENT:case He.GENERAL_SIBLING:case He.DESCENDANT:return`${e.stringRepresentation}${o}`;default:throw new Error(`Unknown operator type: ${e.type}`)}}function Ve(e){const t=Fe.find((t=>e===t.stringRepresentation));if(!t)throw new Error(`Operator not found: ${e}`);return{...t}}const Ge={mainSelector:{selectors:[]}};function qe(e,t=!1){var o;return(e.operator?Be(e.operator,e.relatedSelector):'')?!0===(null===(o=e.operator)||void 0===o?void 0:o.isCombinator)?`${e.relatedSelector?Oe(e.relatedSelector,t):''}${Be(e.operator,e.mainSelector)}`:`${Oe(e.mainSelector,t)}${Be(e.operator,e.relatedSelector)}`:Oe(e.mainSelector,t)}function Ye(e){return{...e,mainSelector:{...e.mainSelector,pseudoClass:void 0},relatedSelector:e.relatedSelector?{...e.relatedSelector,pseudoClass:void 0}:void 0}}function Ze(e){let t=0;return e.mainSelector&&(t+=Ne(e.mainSelector)),e.relatedSelector&&(t+=Ne(e.relatedSelector)),t}function Je(e,t){const o=t?{atRule:t}:{},s=e.match(/:(\w+)\((.+)\)$/);if(s){const[,t,r]=s,i=e.replace(s[0],'');return{mainSelector:i?je(i):{selectors:[]},operator:Ve(`:${t}`),relatedSelector:je(r),...o}}const r=e.replace(/ ([>+~]) /,'$1').split(/([>+~ ])/),i=r.shift(),l=r.shift(),n=l&&' '!==l?` ${l} `:l;if(n&&i){const e=r.join('');return{mainSelector:e?je(e):{selectors:[]},operator:Ve(n),relatedSelector:je(i),...o}}return{mainSelector:i?je(i):{selectors:[]},...o}}function Ke(e,t){return{mainSelector:De(e.mainSelector,t.mainSelector),relatedSelector:e.relatedSelector&&t.relatedSelector?De(e.relatedSelector,t.relatedSelector):e.relatedSelector||t.relatedSelector,operator:e.operator||t.operator,atRule:e.atRule||t.atRule}}const Qe='silex-page-body',Xe=/(^|[,\s>+~])body(?![a-zA-Z0-9_-])/g;function et(e){return e.includes(Qe)?e:e.replace(Xe,`$1.${Qe}`)}const tt=new Set;function ot(e,t){var o;if(!t)return'';const s=null===(o=null==e?void 0:e.I18n)||void 0===o?void 0:o.t(t);return s||(tt.add(t),console.info(`Untranslated key "${t}", call editor.runCommand("i18n:info") to see all untranslated keys`)),s||t}function st(e){return e.getSelectedAll().flatMap((t=>e.CssComposer.getRules().reduce(((e,o)=>{var s;const r=o.clone();if(0===Object.keys(r.getStyle()).length)return e;const i=r.getSelectorsString();if(!i)return console.warn('Empty selector for rule',r.get('state'),{rule:r}),e;try{const o=Je(i,r.getAtRule()),l=qe(Ye(o));((null===(s=t.view)||void 0===s?void 0:s.el.matches(et(l)))||'body'===t.tagName.toLowerCase()&&l.toLowerCase().startsWith('html'))&&e.push(o)}catch(e){console.warn('Error matching selector',i,e)}return e}),[])))}function rt(e,t){var o;const s=null===(o=e.DeviceManager.getSelected())||void 0===o?void 0:o.get('widthMedia'),r={atRuleType:s?'media':'',atRuleParams:s?`(max-width: ${s})`:''},i=e.CssComposer.getRule(t,r),l=e.CssComposer.setRule(t,null==i?void 0:i.getStyle(),{addStyles:!!(null==i?void 0:i.getStyle()),...r});e.StyleManager.select(l)}function it(e,t){try{const o=et(e);return t.some((t=>{var s,r;return!('body'!==(null===(s=t.tagName)||void 0===s?void 0:s.toLowerCase())||!e.toLowerCase().startsWith('html'))||(null===(r=t.view)||void 0===r?void 0:r.el.matches(o))}))}catch{return!1}}function lt(e,t,o){if(t.type===o.type)if(Te(t,o))console.warn('No change',t,o);else switch(t.type){case fe.ID:throw new Error('Cannot rename ID selector');case fe.CLASS:!function(e,t,o){if(!t||!o||t===o)return void console.warn('Invalid class names or same names provided.');const s=e.SelectorManager,r=s.get(t);if(!r)return void console.warn(`Class "${t}" not found.`);const i=(e,t)=>{var o;const s=[],r=e.get('selector');if(null===(o=null==r?void 0:r.mainSelector)||void 0===o?void 0:o.selectors){r.mainSelector.selectors.some((e=>e.type===fe.CLASS&&e.value===t))&&s.push(e)}return e.components().forEach((e=>{s.push(...i(e,t))})),s},l=e.Pages.getAll().flatMap((e=>i(e.getMainComponent(),t)));r.set('name',o),l.forEach((e=>{const s=at(e);nt(e,{...s,mainSelector:{...s.mainSelector,selectors:s.mainSelector.selectors.filter((e=>e.type!==fe.CLASS||e.value!==o)).map((e=>e.type===fe.CLASS&&e.value===t?{...e,value:o}:e))}})}))}(e,t.value,o.value);break;case fe.TAG:throw new Error('Cannot rename ID selector');default:console.error('Cannot rename selector: Unknown Type',{oldSelector:t,newSelector:o})}else console.warn('Cannot rename to a different types',t,o)}function nt(e,t){e.set('selector',{...t});const o=[];t.mainSelector.selectors.forEach((t=>{switch(t.type){case'id':e.setId(t.value);break;case'class':o.push(t.value);break;case'tag':break;default:console.warn('Unhandled selector type',t)}}));const s=[...e.getClasses().filter((e=>!o.includes(e))),...o];e.setClass(s)}function at(e){var t;const o=e.getClasses();return{...null!==(t=e.get('selector'))&&void 0!==t?t:{mainSelector:{selectors:o.map((e=>({type:fe.CLASS,value:e,active:!1})))}}}}function ct(e,t,o){var s;if(!o.operator)return[];const r=[];switch(null===(s=o.operator)||void 0===s?void 0:s.type){case He.HAS:t.forEach((e=>{r.push(...dt(ut(e),o.relatedSelector||{selectors:[]}))}));break;case He.NOT:r.push(...Ce.map((e=>({type:fe.TAG,value:e,active:!0})))),t.forEach((t=>{const s=t.getClasses();e.CssComposer.getAll().forEach((e=>{e.getSelectors().forEach((e=>{if(!e.get('private'))if(1!==e.get('type')||s.includes(e.get('name'))){if(2===e.get('type')){const t={type:fe.ID,value:e.get('name'),active:!0};pt(t,o.relatedSelector,r)&&r.push(t)}}else{const t={type:fe.CLASS,value:e.get('name'),active:!0};pt(t,o.relatedSelector,r)&&r.push(t)}}))}))}));break;case He.IS:case He.WHERE:r.push(...dt(t,o.relatedSelector||{selectors:[]}));break;case He.CHILD:t.forEach((e=>{const t=e.parent();t&&r.push(...dt([t],o.relatedSelector||{selectors:[]}))}));break;case He.DESCENDANT:t.forEach((e=>{r.push(...dt(function(e){const t=[];let o=e.parent();for(;o;)t.push(o),o=o.parent();return t}(e),o.relatedSelector||{selectors:[]}))}));break;case He.ADJACENT:const s=t.map((e=>vt(e)[0])).filter((e=>!!e));r.push(...dt(s,o.relatedSelector||{selectors:[]}));break;case He.GENERAL_SIBLING:const i=t.flatMap(vt).filter((e=>!!e));r.push(...dt(i,o.relatedSelector||{selectors:[]}));break;default:throw console.error('Unhandled operator',o.operator),new Error(`Unhandled operator: ${o.operator}`)}return r}function dt(e,t){const o=[];return e.forEach((e=>{ht(e,o,t)})),e.flatMap((e=>e.getClasses())).forEach((e=>{o.some((t=>t.type===fe.CLASS&&t.value===e))||t.selectors.some((t=>t.active&&t.type===fe.CLASS&&t.value===e))||o.push({type:fe.CLASS,value:e,active:!0})})),e.forEach((e=>{if('function'==typeof e.getAttributes){const s=e.getAttributes({noStyle:!0,noClass:!0});Object.keys(s).forEach((e=>{if('id'===e)return;if(o.some((t=>t.type===fe.ATTRIBUTE&&t.value===e)))return;if(t.selectors.some((t=>t.active&&t.type===fe.ATTRIBUTE&&t.value===e)))return;const r={type:fe.ATTRIBUTE,value:e,active:!0};s[e]&&(r.operator=ye.EQUALS,r.attributeValue=s[e]),o.push(r)}))}})),o}function ht(e,t,o){const s=e.tagName.toLowerCase(),r={type:fe.TAG,value:s,active:!0};if(pt(r,o,t)&&t.push(r),'body'===s){const e={type:fe.TAG,value:'html',active:!0};pt(e,o,t)&&t.push(e)}}function pt(e,t,o){return!t.selectors.some((t=>Te(t,e)))&&!o.some((t=>Te(t,e)))}function ut(e){return e.components().reduce(((e,t)=>[...e,t,...ut(t)]),[])}function vt(e){var t,o;return null!==(o=null===(t=e.parent())||void 0===t?void 0:t.components().filter((t=>t!==e)))&&void 0!==o?o:[]}const mt={attribute:!0,type:String,converter:C,reflect:!1,hasChanged:$},St=(e=mt,t,o)=>{const{kind:s,metadata:r}=o;let i=globalThis.litPropertyMetadata.get(r);if(void 0===i&&globalThis.litPropertyMetadata.set(r,i=new Map),"setter"===s&&((e=Object.create(e)).wrapped=!0),i.set(o.name,e),"accessor"===s){const{name:s}=o;return{set(o){const r=t.get.call(this);t.set.call(this,o),this.requestUpdate(s,r,e,!0,o)},init(t){return void 0!==t&&this.C(s,void 0,e,t),t}}}if("setter"===s){const{name:s}=o;return function(o){const r=this[s];t.call(this,o),this.requestUpdate(s,r,e,!0,o)}}throw Error("Unsupported decorator location: "+s)};function gt(e){return(t,o)=>"object"==typeof o?St(e,t,o):((e,t,o)=>{const s=t.hasOwnProperty(o);return t.constructor.createProperty(o,e),s?Object.getOwnPropertyDescriptor(t,o):void 0})(e,t,o)}var ft=void 0&&(void 0).__decorate||function(e,t,o,s){var r,i=arguments.length,l=i<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,o):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,o,s);else for(var n=e.length-1;n>=0;n--)(r=e[n])&&(l=(i<3?r(l):i>3?r(t,o,l):r(t,o))||l);return i>3&&l&&Object.defineProperty(t,o,l),l};class yt extends ue{constructor(){super(...arguments),this.t=e=>e}connectedCallback(){super.connectedCallback();document.querySelectorAll('style, link[rel="stylesheet"]').forEach((e=>{var t;null===(t=this.shadowRoot)||void 0===t||t.appendChild(e.cloneNode(!0))}))}}ft([gt()],yt.prototype,"t",void 0);const bt=5;class Ct extends HTMLInputElement{constructor(){super(),this.addEventListener('input',(()=>this.adjustWidth())),this.adjustWidth(),requestAnimationFrame((()=>this.adjustWidth()))}adjustWidth(){var e;this.style.width=`${Math.max(null===(e=this.value)||void 0===e?void 0:e.length,bt)}ch`}}function $t(e){return a` ${n(e)} { border: none; -webkit-appearance: none; -moz-appearance: none; appearance: none; font-family: inherit; cursor: pointer; /* chrome */ background: var(--gjs-main-color, #444); /* in chrome, make the dropdown text align to the left, with padding */ text-align-last: center; padding: 0 0.5rem; text-align: left; padding: 0 0.5rem; } `}function _t(e){return a` ${n(e)} { border: none; border-bottom: 1px dashed; background: none; text-align: center; font-family: inherit; } `}customElements.get('resize-input')||customElements.define('resize-input',Ct,{extends:'input'});const At=a` :focus-visible { outline: 1px solid var(--gjs-tertiary-color, #ddd); } `,{I:Et}=ce,wt=1,Wt=2,Ut=e=>(...t)=>({_$litDirective$:e,values:t});class zt{constructor(e){}get _$AU(){return this._$AM._$AU}_$AT(e,t,o){this._$Ct=e,this._$AM=t,this._$Ci=o}_$AS(e,t){return this.update(e,t)}update(e,t){return this.render(...t)}}const Rt=(e,t)=>{const o=e._$AN;if(void 0===o)return!1;for(const e of o)e._$AO?.(t,!1),Rt(e,t);return!0},Tt=e=>{let t,o;do{if(void 0===(t=e._$AM))break;o=t._$AN,o.delete(e),e=t}while(0===o?.size)},Pt=e=>{for(let t;t=e._$AM;e=t){let o=t._$AN;if(void 0===o)t._$AN=o=new Set;else if(o.has(e))break;o.add(e),xt(t)}};function kt(e){void 0!==this._$AN?(Tt(this),this._$AM=e,Pt(this)):this._$AM=e}function Lt(e,t=!1,o=0){const s=this._$AH,r=this._$AN;if(void 0!==r&&0!==r.size)if(t)if(Array.isArray(s))for(let e=o;e<s.length;e++)Rt(s[e],!1),Tt(s[e]);else null!=s&&(Rt(s,!1),Tt(s));else Rt(this,e)}const xt=e=>{e.type==Wt&&(e._$AP??=Lt,e._$AQ??=kt)};class It extends zt{constructor(){super(...arguments),this._$AN=void 0}_$AT(e,t,o){super._$AT(e,t,o),Pt(this),this.isConnected=e._$AU}_$AO(e,t=!0){e!==this.isConnected&&(this.isConnected=e,e?this.reconnected?.():this.disconnected?.()),t&&(Rt(this,e),Tt(this))}setValue(e){if((e=>void 0===e.strings)(this._$Ct))this._$Ct._$AI(e,this);else{const t=[...this._$Ct._$AH];t[this._$Ci]=e,this._$Ct._$AI(t,this,0)}}disconnected(){}reconnected(){}}const Ot=()=>new Nt;class Nt{}const jt=new WeakMap,Dt=Ut(class extends It{render(e){return Z}update(e,[t]){const o=t!==this.G;return o&&void 0!==this.G&&this.rt(void 0),(o||this.lt!==this.ct)&&(this.G=t,this.ht=e.options?.host,this.rt(this.ct=e.element)),Z}rt(e){if(this.isConnected||(e=void 0),"function"==typeof this.G){const t=this.ht??globalThis;let o=jt.get(t);void 0===o&&(o=new WeakMap,jt.set(t,o)),void 0!==o.get(this.G)&&this.G.call(this.ht,void 0),o.set(this.G,e),void 0!==e&&this.G.call(this.ht,e)}else this.G.value=e}get lt(){return"function"==typeof this.G?jt.get(this.ht??globalThis)?.get(this.G):this.G?.value}disconnected(){this.lt===this.ct&&this.rt(void 0)}reconnected(){this.rt(this.ct)}});var Mt=void 0&&(void 0).__decorate||function(e,t,o,s){var r,i=arguments.length,l=i<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,o):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,o,s);else for(var n=e.length-1;n>=0;n--)(r=e[n])&&(l=(i<3?r(l):i>3?r(t,o,l):r(t,o))||l);return i>3&&l&&Object.defineProperty(t,o,l),l};class Ht extends yt{constructor(){super(...arguments),this.options=[],this.placeholder='Select an option',this.paramRef=Ot()}render(){var e;return this.value?G` <section> <main> ${this.t(this.value.sentencePre)} <span class="unbreakable"> ${this.renderList()} ${null!==(e=this.value.sentencePost)&&void 0!==e?e:''} ${this.renderParam()} </span> </main> <aside> ${this.renderButtons()} </aside> </section> `:G` ${this.renderList()} `}select(e){this.value=e,this.dispatchEvent(new CustomEvent('change',{bubbles:!0,composed:!0,detail:e})),requestAnimationFrame((()=>{var e;return null===(e=this.paramRef.value)||void 0===e?void 0:e.focus()}))}renderList(){return G` <select class="asm-inline-select__select" @change=${e=>{const t=this.options[e.target.selectedIndex-1];this.select(t)}} > <option .selected=${!this.value} >${this.placeholder}</option> ${this.options.map((e=>{var t;return G` <option .selected=${(null===(t=this.value)||void 0===t?void 0:t.type)===e.type} >${e.displayName?this.t(e.displayName):e.type}</option> `}))} </select> `}renderButtons(){var e;return G` ${(null===(e=this.value)||void 0===e?void 0:e.helpLink)?G` <a .title=${this.t('Help')} class="asm-inline-select__btn" href=${this.t(this.value.helpLink)} target="_blank" >?</a>`:G``}<a href="#" .title=${this.t('Remove')} class="asm-inline-select__btn" @click=${e=>{this.select(),e.preventDefault()}} >\u2715</a> `}renderParam(){var e,t;return(null===(e=this.value)||void 0===e?void 0:e.hasParam)?G` ( <input is="resize-input" id="resize-input" ${Dt(this.paramRef)} type="text" autocomplete="off" .value=${null!==(t=this.value.param)&&void 0!==t?t:''} placeholder="" @input=${e=>{this.select({...this.value,param:e.target.value})}} /> ) `:G``}}Ht.styles=a` :host { ${At} & { display: block; text-align: left; padding: 0 0.5rem; margin: 0.5rem 0; } button:hover, a:hover { transform: translateY(1px); color: var(--gjs-primary-color, #333); } input, select, button, inline-select { font-family: inherit; font-size: inherit; color: var(--gjs-secondary-color, #333); margin: 0; padding: 0; } section { display: flex; } ${$t('select')} select { border-bottom: 1px dashed; } aside { flex: 0 0 auto; } ${_t('input')} input { text-align: center; } .asm-inline-select__btn { font-size: 0.8rem; text-decoration: none; border-radius: 50%; color: var(--gjs-secondary-color, #333); /* make the link a circle */ display: inline-block; width: .5rem; height: .5rem; text-align: center; line-height: .7rem; font-size: .7rem; padding: 4px; &:hover { background-color: var(--gjs-secondary-color, #fff); } } .unbreakable { white-space: nowrap; margin: 0 0.4rem; } } `;Mt([gt({type:Object,reflect:!1})],Ht.prototype,"value",void 0),Mt([gt({type:Array,reflect:!1})],Ht.prototype,"options",void 0),Mt([gt({type:String,reflect:!1})],Ht.prototype,"placeholder",void 0),customElements.get('inline-select')||customElements.define('inline-select',Ht);const Ft="important",Bt=" !"+Ft,Vt=Ut(class extends zt{constructor(e){if(super(e),e.type!==wt||"style"!==e.name||e.strings?.length>2)throw Error("The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.")}render(e){return Object.keys(e).reduce(((t,o)=>{const s=e[o];return null==s?t:t+`${o=o.includes("-")?o:o.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,"-$&").toLowerCase()}:${s};`}),"")}update(e,[t]){const{style:o}=e.element;if(void 0===this.ft)return this.ft=new Set(Object.keys(t)),this.render(t);for(const e of this.ft)null==t[e]&&(this.ft.delete(e),e.includes("-")?o.removeProperty(e):o[e]=null);for(const e in t){const s=t[e];if(null!=s){this.ft.add(e);const t="string"==typeof s&&s.endsWith(Bt);e.includes("-")||t?o.setProperty(e,t?s.slice(0,-11):s,t?Ft:""):o[e]=s}}return Y}});var Gt=void 0&&(void 0).__decorate||function(e,t,o,s){var r,i=arguments.length,l=i<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,o):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,o,s);else for(var n=e.length-1;n>=0;n--)(r=e[n])&&(l=(i<3?r(l):i>3?r(t,o,l):r(t,o))||l);return i>3&&l&&Object.defineProperty(t,o,l),l};class qt extends yt{constructor(){super(...arguments),this.suggestions=[],this._editing=!1,this.readonly=!1,this.selectorInputRef=Ot(),this.attributeOptionsAttrValueRef=Ot(),this.mainRef=Ot(),this.datalistSelectionInProgress=!1}get value(){return this._value}set value(e){try{this._value='string'==typeof e?JSON.parse(e):e}catch(t){console.error('Error parsing value for selector',{sel:e,error:t})}this.requestUpdate()}get editing(){return this._editing}set editing(e){this._editing=e}focus(){var e;null===(e=this.selectorInputRef.value)||void 0===e||e.focus()}render(){return this.value?G` <section class="${this.value.type===fe.ID?'asm-simple-selector__id':''}" tabindex="0" @keydown=${e=>{'Enter'!==e.key&&' '!==e.key||(this.value={...this.value,active:!this.value.active},this.dispatchEvent(new CustomEvent('change',{detail:this.value})))}} @dblclick=${()=>this.edit()} @click=${()=>{this.value={...this.value,active:!this.value.active},this.dispatchEvent(new CustomEvent('change',{detail:this.value}))}} > <header> ${this.editing?'':function(e){switch(e.type){case fe.ATTRIBUTE:return we;case fe.CLASS:return Ae;case fe.ID:return Ee;case fe.TAG:return ze;case fe.UNIVERSAL:return We;case fe.CUSTOM_TAG:return Ue;default:return Re}}(this.value)} </header> ${this.renderMain()} <footer> ${this.value.type!==fe.ID?G` <button .title=${this.t('Delete')} class="gjs-btn-prim asm-simple-selector__delete-button" @keydown=${e=>{'Enter'!==e.key&&' '!==e.key||e.stopPropagation()}} @click=${e=>{this.dispatchEvent(new CustomEvent('delete',{detail:this.value})),e.stopPropagation()}} > &times; </button> `:''} <input type="checkbox" autocomplete="off" class="asm-simple-selector__active" .checked=${this.value.active} /> </footer> </section> `:G`<div>Initializing</div>`}edit(){this.hasAttribute('readonly')?console.warn('Cannot edit a readonly selector'):(this.editing=!0,requestAnimationFrame((()=>this.focus())))}select(e){var t;const o={...e};delete o.createText,delete o.createValue,!e||e.keepEditing?requestAnimationFrame((()=>this.focus())):(this.editing=!1,null===(t=this.attributeOptionsAttrValueRef.value)||void 0===t||t.blur()),this.dispatchEvent(new CustomEvent('change',{detail:o}))}cancelEdit(){var e,t;null===(e=this.attributeOptionsAttrValueRef.value)||void 0===e||e.blur(),this.editing&&(this.editing=!1,(null===(t=this.value)||void 0===t?void 0:t.type)===fe.UNKNOWN?this.dispatchEvent(new CustomEvent('delete',{detail:this.value})):this.dispatchEvent(new CustomEvent('cancel',{detail:this.value})))}updated(e){var t,o;if(super.updated(e),this.value){const e=(null===(t=this.selectorInputRef.value)||void 0===t?void 0:t.value)||'';null===(o=this.selectorInputRef.value)||void 0===o||o.setCustomValidity(!1===Le(e)?'Invalid selector':'')}}renderMain(){var e,t,o;const s=(null===(e=this.selectorInputRef.value)||void 0===e?void 0:e.value)||'',r=Le(s),i=function(e,t){const o=[];if(e){const t=!0;if('*'===e)o.push({createText:'*',type:fe.UNIVERSAL,active:t});else if(e.startsWith('.'))o.push({createText:e,type:fe.CLASS,value:e.slice(1),active:t});else if(e.startsWith('[')){const[s