diff --git a/composer.json b/composer.json index 04e022cf44..5efd40d061 100644 --- a/composer.json +++ b/composer.json @@ -4,7 +4,8 @@ "license": "MIT", "require": { "php": "^8.0", - "ext-intl": "*" + "ext-intl": "*", + "tgalopin/html-sanitizer": "^1.5" }, "require-dev": { "akaunting/laravel-money": "^1.2|^2.0|^3.0", diff --git a/composer.lock b/composer.lock index 2c536f2761..7248ef4a24 100644 --- a/composer.lock +++ b/composer.lock @@ -4,8 +4,246 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "32419f12137a3f8e6d278c0821f3fc50", - "packages": [], + "content-hash": "0b3ec236e12575179c6394412a128409", + "packages": [ + { + "name": "league/uri-parser", + "version": "1.4.1", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/uri-parser.git", + "reference": "671548427e4c932352d9b9279fdfa345bf63fa00" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/uri-parser/zipball/671548427e4c932352d9b9279fdfa345bf63fa00", + "reference": "671548427e4c932352d9b9279fdfa345bf63fa00", + "shasum": "" + }, + "require": { + "php": ">=7.0.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^2.0", + "phpstan/phpstan": "^0.9.2", + "phpstan/phpstan-phpunit": "^0.9.4", + "phpstan/phpstan-strict-rules": "^0.9.0", + "phpunit/phpunit": "^6.0" + }, + "suggest": { + "ext-intl": "Allow parsing RFC3987 compliant hosts", + "league/uri-schemes": "Allow validating and normalizing URI parsing results" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "League\\Uri\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ignace Nyamagana Butera", + "email": "nyamsprod@gmail.com", + "homepage": "https://nyamsprod.com" + } + ], + "description": "userland URI parser RFC 3986 compliant", + "homepage": "https://github.com/thephpleague/uri-parser", + "keywords": [ + "parse_url", + "parser", + "rfc3986", + "rfc3987", + "uri", + "url" + ], + "support": { + "issues": "https://github.com/thephpleague/uri-parser/issues", + "source": "https://github.com/thephpleague/uri-parser/tree/master" + }, + "time": "2018-11-22T07:55:51+00:00" + }, + { + "name": "masterminds/html5", + "version": "2.7.5", + "source": { + "type": "git", + "url": "https://github.com/Masterminds/html5-php.git", + "reference": "f640ac1bdddff06ea333a920c95bbad8872429ab" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/f640ac1bdddff06ea333a920c95bbad8872429ab", + "reference": "f640ac1bdddff06ea333a920c95bbad8872429ab", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-dom": "*", + "ext-libxml": "*", + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Masterminds\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Matt Butcher", + "email": "technosophos@gmail.com" + }, + { + "name": "Matt Farina", + "email": "matt@mattfarina.com" + }, + { + "name": "Asmir Mustafic", + "email": "goetas@gmail.com" + } + ], + "description": "An HTML5 parser and serializer.", + "homepage": "http://masterminds.github.io/html5-php", + "keywords": [ + "HTML5", + "dom", + "html", + "parser", + "querypath", + "serializer", + "xml" + ], + "support": { + "issues": "https://github.com/Masterminds/html5-php/issues", + "source": "https://github.com/Masterminds/html5-php/tree/2.7.5" + }, + "time": "2021-07-01T14:25:37+00:00" + }, + { + "name": "psr/log", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001", + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/3.0.0" + }, + "time": "2021-07-14T16:46:02+00:00" + }, + { + "name": "tgalopin/html-sanitizer", + "version": "1.5.0", + "source": { + "type": "git", + "url": "https://github.com/tgalopin/html-sanitizer.git", + "reference": "5d02dcb6f2ea4f505731eac440798caa1b3b0913" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/tgalopin/html-sanitizer/zipball/5d02dcb6f2ea4f505731eac440798caa1b3b0913", + "reference": "5d02dcb6f2ea4f505731eac440798caa1b3b0913", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "league/uri-parser": "^1.4.1", + "masterminds/html5": "^2.4", + "php": ">=7.1", + "psr/log": "^1.0|^2.0|^3.0" + }, + "require-dev": { + "phpunit/phpunit": "^7.4", + "symfony/var-dumper": "^4.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "HtmlSanitizer\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Titouan Galopin", + "email": "galopintitouan@gmail.com" + } + ], + "description": "Sanitize untrustworthy HTML user input", + "support": { + "issues": "https://github.com/tgalopin/html-sanitizer/issues", + "source": "https://github.com/tgalopin/html-sanitizer/tree/1.5.0" + }, + "abandoned": "symfony/html-sanitizer", + "time": "2021-09-14T08:27:50+00:00" + } + ], "packages-dev": [ { "name": "akaunting/laravel-money", @@ -6510,56 +6748,6 @@ }, "time": "2016-08-06T14:39:51+00:00" }, - { - "name": "psr/log", - "version": "3.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001", - "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001", - "shasum": "" - }, - "require": { - "php": ">=8.0.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Log\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", - "keywords": [ - "log", - "psr", - "psr-3" - ], - "support": { - "source": "https://github.com/php-fig/log/tree/3.0.0" - }, - "time": "2021-07-14T16:46:02+00:00" - }, { "name": "psr/simple-cache", "version": "3.0.0", diff --git a/package-lock.json b/package-lock.json index 03c12862ea..2fab863a5d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,6 +21,7 @@ "chart.js": "^3.6.0", "choices.js": "^10.1.0", "dayjs": "^1.10.6", + "dompurify": "^2.3.8", "esbuild": "^0.8.57", "filepond": "^4.28.2", "filepond-plugin-file-validate-size": "^2.2.4", @@ -4128,6 +4129,12 @@ "url": "https://github.com/fb55/domhandler?sponsor=1" } }, + "node_modules/dompurify": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.3.8.tgz", + "integrity": "sha512-eVhaWoVibIzqdGYjwsBWodIQIaXFSB+cKDf4cfxLMsK0xiud6SE+/WCVx/Xw/UwQsa4cS3T2eITcdtmTg2UKcw==", + "dev": true + }, "node_modules/domutils": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", @@ -12695,6 +12702,12 @@ "domelementtype": "^2.0.1" } }, + "dompurify": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.3.8.tgz", + "integrity": "sha512-eVhaWoVibIzqdGYjwsBWodIQIaXFSB+cKDf4cfxLMsK0xiud6SE+/WCVx/Xw/UwQsa4cS3T2eITcdtmTg2UKcw==", + "dev": true + }, "domutils": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", diff --git a/package.json b/package.json index 5c39fd433a..ee8ebb1210 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "chart.js": "^3.6.0", "choices.js": "^10.1.0", "dayjs": "^1.10.6", + "dompurify": "^2.3.8", "esbuild": "^0.8.57", "filepond": "^4.28.2", "filepond-plugin-file-validate-size": "^2.2.4", diff --git a/packages/admin/dist/app.js b/packages/admin/dist/app.js index d2731ce635..e9cc570da1 100644 --- a/packages/admin/dist/app.js +++ b/packages/admin/dist/app.js @@ -1,17 +1,17 @@ -(()=>{var t,e={757:(t,e,n)=>{t.exports=n(666)},884:(t,e,n)=>{"use strict";var i,r,o,a,s=!1,u=!1,l=[];function c(t){!function(t){l.includes(t)||l.push(t);u||s||(s=!0,queueMicrotask(d))}(t)}function h(t){let e=l.indexOf(t);-1!==e&&l.splice(e,1)}function d(){s=!1,u=!0;for(let t=0;t{(void 0===e||e.includes(n))&&(i.forEach((t=>t())),delete t._x_attributeCleanups[n])}))}var _=new MutationObserver(S),E=!1;function x(){_.observe(document,{subtree:!0,childList:!0,attributes:!0,attributeOldValue:!0}),E=!0}function w(){(A=A.concat(_.takeRecords())).length&&!D&&(D=!0,queueMicrotask((()=>{S(A),A.length=0,D=!1}))),_.disconnect(),E=!1}var A=[],D=!1;function C(t){if(!E)return t();w();let e=t();return x(),e}var T=!1,k=[];function S(t){if(T)return void(k=k.concat(t));let e=[],n=[],i=new Map,r=new Map;for(let o=0;o1===t.nodeType&&e.push(t))),t[o].removedNodes.forEach((t=>1===t.nodeType&&n.push(t)))),"attributes"===t[o].type)){let e=t[o].target,n=t[o].attributeName,a=t[o].oldValue,s=()=>{i.has(e)||i.set(e,[]),i.get(e).push({name:n,value:e.getAttribute(n)})},u=()=>{r.has(e)||r.set(e,[]),r.get(e).push(n)};e.hasAttribute(n)&&null===a?s():e.hasAttribute(n)?(u(),s()):u()}r.forEach(((t,e)=>{b(e,t)})),i.forEach(((t,e)=>{g.forEach((n=>n(e,t)))}));for(let t of n)if(!e.includes(t)&&(m.forEach((e=>e(t))),t._x_cleanups))for(;t._x_cleanups.length;)t._x_cleanups.pop()();e.forEach((t=>{t._x_ignoreSelf=!0,t._x_ignore=!0}));for(let t of e)n.includes(t)||t.isConnected&&(delete t._x_ignoreSelf,delete t._x_ignore,v.forEach((e=>e(t))),t._x_ignore=!0,t._x_ignoreSelf=!0);e.forEach((t=>{delete t._x_ignoreSelf,delete t._x_ignore})),e=null,n=null,i=null,r=null}function I(t){return L(R(t))}function O(t,e,n){return t._x_dataStack=[e,...R(n||t)],()=>{t._x_dataStack=t._x_dataStack.filter((t=>t!==e))}}function M(t,e){let n=t._x_dataStack[0];Object.entries(e).forEach((([t,e])=>{n[t]=e}))}function R(t){return t._x_dataStack?t._x_dataStack:"function"==typeof ShadowRoot&&t instanceof ShadowRoot?R(t.host):t.parentNode?R(t.parentNode):[]}function L(t){let e=new Proxy({},{ownKeys:()=>Array.from(new Set(t.flatMap((t=>Object.keys(t))))),has:(e,n)=>t.some((t=>t.hasOwnProperty(n))),get:(n,i)=>(t.find((t=>{if(t.hasOwnProperty(i)){let n=Object.getOwnPropertyDescriptor(t,i);if(n.get&&n.get._x_alreadyBound||n.set&&n.set._x_alreadyBound)return!0;if((n.get||n.set)&&n.enumerable){let r=n.get,o=n.set,a=n;r=r&&r.bind(e),o=o&&o.bind(e),r&&(r._x_alreadyBound=!0),o&&(o._x_alreadyBound=!0),Object.defineProperty(t,i,{...a,get:r,set:o})}return!0}return!1}))||{})[i],set:(e,n,i)=>{let r=t.find((t=>t.hasOwnProperty(n)));return r?r[n]=i:t[t.length-1][n]=i,!0}});return e}function P(t){let e=(n,i="")=>{Object.entries(Object.getOwnPropertyDescriptors(n)).forEach((([r,{value:o,enumerable:a}])=>{if(!1===a||void 0===o)return;let s=""===i?r:`${i}.${r}`;var u;"object"==typeof o&&null!==o&&o._x_interceptor?n[r]=o.initialize(t,s,r):"object"!=typeof(u=o)||Array.isArray(u)||null===u||o===n||o instanceof Element||e(o,s)}))};return e(t)}function F(t,e=(()=>{})){let n={initialValue:void 0,_x_interceptor:!0,initialize(e,n,i){return t(this.initialValue,(()=>function(t,e){return e.split(".").reduce(((t,e)=>t[e]),t)}(e,n)),(t=>N(e,n,t)),n,i)}};return e(n),t=>{if("object"==typeof t&&null!==t&&t._x_interceptor){let e=n.initialize.bind(n);n.initialize=(i,r,o)=>{let a=t.initialize(i,r,o);return n.initialValue=a,e(i,r,o)}}else n.initialValue=t;return n}}function N(t,e,n){if("string"==typeof e&&(e=e.split(".")),1!==e.length){if(0===e.length)throw error;return t[e[0]]||(t[e[0]]={}),N(t[e[0]],e.slice(1),n)}t[e[0]]=n}var B={};function j(t,e){B[t]=e}function V(t,e){return Object.entries(B).forEach((([n,i])=>{Object.defineProperty(t,`$${n}`,{get(){let[t,n]=rt(e);return t={interceptor:F,...t},y(e,n),i(e,t)},enumerable:!1})})),t}function z(t,e,n,...i){try{return n(...i)}catch(n){U(n,t,e)}}function U(t,e,n){Object.assign(t,{el:e,expression:n}),console.warn(`Alpine Expression Error: ${t.message}\n\n${n?'Expression: "'+n+'"\n\n':""}`,e),setTimeout((()=>{throw t}),0)}var G=!0;function W(t,e,n={}){let i;return H(t,e)((t=>i=t),n),i}function H(...t){return q(...t)}var q=$;function $(t,e){let n={};V(n,t);let i=[n,...R(t)];if("function"==typeof e)return function(t,e){return(n=(()=>{}),{scope:i={},params:r=[]}={})=>{X(n,e.apply(L([i,...t]),r))}}(i,e);let r=function(t,e,n){let i=function(t,e){if(Y[t])return Y[t];let n=Object.getPrototypeOf((async function(){})).constructor,i=/^[\n\s]*if.*\(.*\)/.test(t)||/^(let|const)\s/.test(t)?`(() => { ${t} })()`:t;let r=(()=>{try{return new n(["__self","scope"],`with (scope) { __self.result = ${i} }; __self.finished = true; return __self.result;`)}catch(n){return U(n,e,t),Promise.resolve()}})();return Y[t]=r,r}(e,n);return(r=(()=>{}),{scope:o={},params:a=[]}={})=>{i.result=void 0,i.finished=!1;let s=L([o,...t]);if("function"==typeof i){let t=i(i,s).catch((t=>U(t,n,e)));i.finished?(X(r,i.result,s,a,n),i.result=void 0):t.then((t=>{X(r,t,s,a,n)})).catch((t=>U(t,n,e))).finally((()=>i.result=void 0))}}}(i,e,t);return z.bind(null,t,e,r)}var Y={};function X(t,e,n,i,r){if(G&&"function"==typeof e){let o=e.apply(n,i);o instanceof Promise?o.then((e=>X(t,e,n,i))).catch((t=>U(t,r,e))):t(o)}else t(e)}var K="x-";function Z(t=""){return K+t}var J={};function Q(t,e){J[t]=e}function tt(t,e,n){let i={},r=Array.from(e).map(at(((t,e)=>i[t]=e))).filter(lt).map(function(t,e){return({name:n,value:i})=>{let r=n.match(ct()),o=n.match(/:([a-zA-Z0-9\-:]+)/),a=n.match(/\.[^.\]]+(?=[^\]]*$)/g)||[],s=e||t[n]||n;return{type:r?r[1]:null,value:o?o[1]:null,modifiers:a.map((t=>t.replace(".",""))),expression:i,original:s}}}(i,n)).sort(ft);return r.map((e=>function(t,e){let n=()=>{},i=J[e.type]||n,[r,o]=rt(t);!function(t,e,n){t._x_attributeCleanups||(t._x_attributeCleanups={}),t._x_attributeCleanups[e]||(t._x_attributeCleanups[e]=[]),t._x_attributeCleanups[e].push(n)}(t,e.original,o);let a=()=>{t._x_ignore||t._x_ignoreSelf||(i.inline&&i.inline(t,e,r),i=i.bind(i,t,e,r),et?nt.get(it).push(i):i())};return a.runCleanups=o,a}(t,e)))}var et=!1,nt=new Map,it=Symbol();function rt(t){let e=[],[n,i]=function(t){let e=()=>{};return[n=>{let i=r(n);return t._x_effects||(t._x_effects=new Set,t._x_runEffects=()=>{t._x_effects.forEach((t=>t()))}),t._x_effects.add(i),e=()=>{void 0!==i&&(t._x_effects.delete(i),o(i))},i},()=>{e()}]}(t);e.push(i);let a={Alpine:Kt,effect:n,cleanup:t=>e.push(t),evaluateLater:H.bind(H,t),evaluate:W.bind(W,t)};return[a,()=>e.forEach((t=>t()))]}var ot=(t,e)=>({name:n,value:i})=>(n.startsWith(t)&&(n=n.replace(t,e)),{name:n,value:i});function at(t=(()=>{})){return({name:e,value:n})=>{let{name:i,value:r}=st.reduce(((t,e)=>e(t)),{name:e,value:n});return i!==e&&t(i,e),{name:i,value:r}}}var st=[];function ut(t){st.push(t)}function lt({name:t}){return ct().test(t)}var ct=()=>new RegExp(`^${K}([^:^.]+)\\b`);var ht="DEFAULT",dt=["ignore","ref","data","id","bind","init","for","mask","model","modelable","transition","show","if",ht,"teleport","element"];function ft(t,e){let n=-1===dt.indexOf(t.type)?ht:t.type,i=-1===dt.indexOf(e.type)?ht:e.type;return dt.indexOf(n)-dt.indexOf(i)}function pt(t,e,n={}){t.dispatchEvent(new CustomEvent(e,{detail:n,bubbles:!0,composed:!0,cancelable:!0}))}var gt=[],mt=!1;function vt(t=(()=>{})){return queueMicrotask((()=>{mt||setTimeout((()=>{yt()}))})),new Promise((e=>{gt.push((()=>{t(),e()}))}))}function yt(){for(mt=!1;gt.length;)gt.shift()()}function bt(t,e){if("function"==typeof ShadowRoot&&t instanceof ShadowRoot)return void Array.from(t.children).forEach((t=>bt(t,e)));let n=!1;if(e(t,(()=>n=!0)),n)return;let i=t.firstElementChild;for(;i;)bt(i,e),i=i.nextElementSibling}function _t(t,...e){console.warn(`Alpine Warning: ${t}`,...e)}var Et=[],xt=[];function wt(){return Et.map((t=>t()))}function At(){return Et.concat(xt).map((t=>t()))}function Dt(t){Et.push(t)}function Ct(t){xt.push(t)}function Tt(t,e=!1){return kt(t,(t=>{if((e?At():wt()).some((e=>t.matches(e))))return!0}))}function kt(t,e){if(t){if(e(t))return t;if(t._x_teleportBack&&(t=t._x_teleportBack),t.parentElement)return kt(t.parentElement,e)}}function St(t,e=bt){!function(t){et=!0;let e=Symbol();it=e,nt.set(e,[]);let n=()=>{for(;nt.get(e).length;)nt.get(e).shift()();nt.delete(e)};t(n),et=!1,n()}((()=>{e(t,((t,e)=>{tt(t,t.attributes).forEach((t=>t())),t._x_ignore&&e()}))}))}function It(t,e){return Array.isArray(e)?Ot(t,e.join(" ")):"object"==typeof e&&null!==e?function(t,e){let n=t=>t.split(" ").filter(Boolean),i=Object.entries(e).flatMap((([t,e])=>!!e&&n(t))).filter(Boolean),r=Object.entries(e).flatMap((([t,e])=>!e&&n(t))).filter(Boolean),o=[],a=[];return r.forEach((e=>{t.classList.contains(e)&&(t.classList.remove(e),a.push(e))})),i.forEach((e=>{t.classList.contains(e)||(t.classList.add(e),o.push(e))})),()=>{a.forEach((e=>t.classList.add(e))),o.forEach((e=>t.classList.remove(e)))}}(t,e):"function"==typeof e?It(t,e()):Ot(t,e)}function Ot(t,e){return e=!0===e?e="":e||"",n=e.split(" ").filter((e=>!t.classList.contains(e))).filter(Boolean),t.classList.add(...n),()=>{t.classList.remove(...n)};var n}function Mt(t,e){return"object"==typeof e&&null!==e?function(t,e){let n={};return Object.entries(e).forEach((([e,i])=>{n[e]=t.style[e],e.startsWith("--")||(e=e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()),t.style.setProperty(e,i)})),setTimeout((()=>{0===t.style.length&&t.removeAttribute("style")})),()=>{Mt(t,n)}}(t,e):function(t,e){let n=t.getAttribute("style",e);return t.setAttribute("style",e),()=>{t.setAttribute("style",n||"")}}(t,e)}function Rt(t,e=(()=>{})){let n=!1;return function(){n?e.apply(this,arguments):(n=!0,t.apply(this,arguments))}}function Lt(t,e,n={}){t._x_transition||(t._x_transition={enter:{during:n,start:n,end:n},leave:{during:n,start:n,end:n},in(n=(()=>{}),i=(()=>{})){Ft(t,e,{during:this.enter.during,start:this.enter.start,end:this.enter.end},n,i)},out(n=(()=>{}),i=(()=>{})){Ft(t,e,{during:this.leave.during,start:this.leave.start,end:this.leave.end},n,i)}})}function Pt(t){let e=t.parentNode;if(e)return e._x_hidePromise?e:Pt(e)}function Ft(t,e,{during:n,start:i,end:r}={},o=(()=>{}),a=(()=>{})){if(t._x_transitioning&&t._x_transitioning.cancel(),0===Object.keys(n).length&&0===Object.keys(i).length&&0===Object.keys(r).length)return o(),void a();let s,u,l;!function(t,e){let n,i,r,o=Rt((()=>{C((()=>{n=!0,i||e.before(),r||(e.end(),yt()),e.after(),t.isConnected&&e.cleanup(),delete t._x_transitioning}))}));t._x_transitioning={beforeCancels:[],beforeCancel(t){this.beforeCancels.push(t)},cancel:Rt((function(){for(;this.beforeCancels.length;)this.beforeCancels.shift()();o()})),finish:o},C((()=>{e.start(),e.during()})),mt=!0,requestAnimationFrame((()=>{if(n)return;let o=1e3*Number(getComputedStyle(t).transitionDuration.replace(/,.*/,"").replace("s","")),a=1e3*Number(getComputedStyle(t).transitionDelay.replace(/,.*/,"").replace("s",""));0===o&&(o=1e3*Number(getComputedStyle(t).animationDuration.replace("s",""))),C((()=>{e.before()})),i=!0,requestAnimationFrame((()=>{n||(C((()=>{e.end()})),yt(),setTimeout(t._x_transitioning.finish,o+a),r=!0)}))}))}(t,{start(){s=e(t,i)},during(){u=e(t,n)},before:o,end(){s(),l=e(t,r)},after:a,cleanup(){u(),l()}})}function Nt(t,e,n){if(-1===t.indexOf(e))return n;const i=t[t.indexOf(e)+1];if(!i)return n;if("scale"===e&&isNaN(i))return n;if("duration"===e){let t=i.match(/([0-9]+)ms/);if(t)return t[1]}return"origin"===e&&["top","right","left","center","bottom"].includes(t[t.indexOf(e)+2])?[i,t[t.indexOf(e)+2]].join(" "):i}Q("transition",((t,{value:e,modifiers:n,expression:i},{evaluate:r})=>{"function"==typeof i&&(i=r(i)),i?function(t,e,n){Lt(t,It,""),{enter:e=>{t._x_transition.enter.during=e},"enter-start":e=>{t._x_transition.enter.start=e},"enter-end":e=>{t._x_transition.enter.end=e},leave:e=>{t._x_transition.leave.during=e},"leave-start":e=>{t._x_transition.leave.start=e},"leave-end":e=>{t._x_transition.leave.end=e}}[n](e)}(t,i,e):function(t,e,n){Lt(t,Mt);let i=!e.includes("in")&&!e.includes("out")&&!n,r=i||e.includes("in")||["enter"].includes(n),o=i||e.includes("out")||["leave"].includes(n);e.includes("in")&&!i&&(e=e.filter(((t,n)=>nn>e.indexOf("out"))));let a=!e.includes("opacity")&&!e.includes("scale"),s=a||e.includes("opacity"),u=a||e.includes("scale"),l=s?0:1,c=u?Nt(e,"scale",95)/100:1,h=Nt(e,"delay",0),d=Nt(e,"origin","center"),f="opacity, transform",p=Nt(e,"duration",150)/1e3,g=Nt(e,"duration",75)/1e3,m="cubic-bezier(0.4, 0.0, 0.2, 1)";r&&(t._x_transition.enter.during={transformOrigin:d,transitionDelay:h,transitionProperty:f,transitionDuration:`${p}s`,transitionTimingFunction:m},t._x_transition.enter.start={opacity:l,transform:`scale(${c})`},t._x_transition.enter.end={opacity:1,transform:"scale(1)"});o&&(t._x_transition.leave.during={transformOrigin:d,transitionDelay:h,transitionProperty:f,transitionDuration:`${g}s`,transitionTimingFunction:m},t._x_transition.leave.start={opacity:1,transform:"scale(1)"},t._x_transition.leave.end={opacity:l,transform:`scale(${c})`})}(t,n,e)})),window.Element.prototype._x_toggleAndCascadeWithTransitions=function(t,e,n,i){let r=()=>{"visible"===document.visibilityState?requestAnimationFrame(n):setTimeout(n)};e?t._x_transition&&(t._x_transition.enter||t._x_transition.leave)?t._x_transition.enter&&(Object.entries(t._x_transition.enter.during).length||Object.entries(t._x_transition.enter.start).length||Object.entries(t._x_transition.enter.end).length)?t._x_transition.in(n):r():t._x_transition?t._x_transition.in(n):r():(t._x_hidePromise=t._x_transition?new Promise(((e,n)=>{t._x_transition.out((()=>{}),(()=>e(i))),t._x_transitioning.beforeCancel((()=>n({isFromCancelledTransition:!0})))})):Promise.resolve(i),queueMicrotask((()=>{let e=Pt(t);e?(e._x_hideChildren||(e._x_hideChildren=[]),e._x_hideChildren.push(t)):queueMicrotask((()=>{let e=t=>{let n=Promise.all([t._x_hidePromise,...(t._x_hideChildren||[]).map(e)]).then((([t])=>t()));return delete t._x_hidePromise,delete t._x_hideChildren,n};e(t).catch((t=>{if(!t.isFromCancelledTransition)throw t}))}))})))};var Bt=!1;function jt(t,e=(()=>{})){return(...n)=>Bt?e(...n):t(...n)}function Vt(t,e,n,r=[]){switch(t._x_bindings||(t._x_bindings=i({})),t._x_bindings[e]=n,e=r.includes("camel")?e.toLowerCase().replace(/-(\w)/g,((t,e)=>e.toUpperCase())):e){case"value":!function(t,e){if("radio"===t.type)void 0===t.attributes.value&&(t.value=e),window.fromModel&&(t.checked=zt(t.value,e));else if("checkbox"===t.type)Number.isInteger(e)?t.value=e:Number.isInteger(e)||Array.isArray(e)||"boolean"==typeof e||[null,void 0].includes(e)?Array.isArray(e)?t.checked=e.some((e=>zt(e,t.value))):t.checked=!!e:t.value=String(e);else if("SELECT"===t.tagName)!function(t,e){const n=[].concat(e).map((t=>t+""));Array.from(t.options).forEach((t=>{t.selected=n.includes(t.value)}))}(t,e);else{if(t.value===e)return;t.value=e}}(t,n);break;case"style":!function(t,e){t._x_undoAddedStyles&&t._x_undoAddedStyles();t._x_undoAddedStyles=Mt(t,e)}(t,n);break;case"class":!function(t,e){t._x_undoAddedClasses&&t._x_undoAddedClasses();t._x_undoAddedClasses=It(t,e)}(t,n);break;default:!function(t,e,n){[null,void 0,!1].includes(n)&&function(t){return!["aria-pressed","aria-checked","aria-expanded","aria-selected"].includes(t)}(e)?t.removeAttribute(e):(Ut(e)&&(n=e),function(t,e,n){t.getAttribute(e)!=n&&t.setAttribute(e,n)}(t,e,n))}(t,e,n)}}function zt(t,e){return t==e}function Ut(t){return["disabled","checked","required","readonly","hidden","open","selected","autofocus","itemscope","multiple","novalidate","allowfullscreen","allowpaymentrequest","formnovalidate","autoplay","controls","loop","muted","playsinline","default","ismap","reversed","async","defer","nomodule"].includes(t)}function Gt(t,e){var n;return function(){var i=this,r=arguments,o=function(){n=null,t.apply(i,r)};clearTimeout(n),n=setTimeout(o,e)}}function Wt(t,e){let n;return function(){let i=this,r=arguments;n||(t.apply(i,r),n=!0,setTimeout((()=>n=!1),e))}}var Ht={},qt=!1;var $t={};var Yt={};var Xt={get reactive(){return i},get release(){return o},get effect(){return r},get raw(){return a},version:"3.10.0",flushAndStopDeferringMutations:function(){T=!1,S(k),k=[]},dontAutoEvaluateFunctions:function(t){let e=G;G=!1,t(),G=e},disableEffectScheduling:function(t){f=!1,t(),f=!0},setReactivityEngine:function(t){i=t.reactive,o=t.release,r=e=>t.effect(e,{scheduler:t=>{f?c(t):t()}}),a=t.raw},closestDataStack:R,skipDuringClone:jt,addRootSelector:Dt,addInitSelector:Ct,addScopeToNode:O,deferMutations:function(){T=!0},mapAttributes:ut,evaluateLater:H,setEvaluator:function(t){q=t},mergeProxies:L,findClosest:kt,closestRoot:Tt,interceptor:F,transition:Ft,setStyles:Mt,mutateDom:C,directive:Q,throttle:Wt,debounce:Gt,evaluate:W,initTree:St,nextTick:vt,prefixed:Z,prefix:function(t){K=t},plugin:function(t){t(Kt)},magic:j,store:function(t,e){if(qt||(Ht=i(Ht),qt=!0),void 0===e)return Ht[t];Ht[t]=e,"object"==typeof e&&null!==e&&e.hasOwnProperty("init")&&"function"==typeof e.init&&Ht[t].init(),P(Ht[t])},start:function(){document.body||_t("Unable to initialize. Trying to load Alpine before `` is available. Did you forget to add `defer` in Alpine's `