@plitzi/plitzi-builder 0.37.7 → 0.37.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +30 -0
- package/dist/package.json.d.ts +1 -1
- package/dist/plitzi-builder.js +2 -2
- package/dist/plitzi-builder.js.gz +0 -0
- package/package.json +15 -15
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,35 @@
|
|
|
1
1
|
# @plitzi/plitzi-builder
|
|
2
2
|
|
|
3
|
+
## 0.37.8
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 4d10e0a: ## Fixed: an api container could not read a file from a CDN
|
|
8
|
+
|
|
9
|
+
- **What happened:** the api container sent `Content-Type: application/json` on every request, including a GET with no
|
|
10
|
+
body to describe. That made every read a non-simple cross-origin request, so the browser asked the host's
|
|
11
|
+
permission first.
|
|
12
|
+
- **Who it hit:** hosts that allow plain cross-origin reads (GET and HEAD from any origin, the usual CORS of a public
|
|
13
|
+
bucket, the space's own CDN among them) refused that preflight. The file never loaded. Tremor's world outlines on
|
|
14
|
+
`cdn-dev.plitzi.com` are one example.
|
|
15
|
+
- **What changes:** a read now sends `Accept: application/json`, and `Content-Type` goes only with a body, unless the
|
|
16
|
+
author set their own. Headers the author adds still make the request non-simple, as they must.
|
|
17
|
+
|
|
18
|
+
- Updated dependencies [4d10e0a]
|
|
19
|
+
- @plitzi/sdk-auth@0.37.8
|
|
20
|
+
- @plitzi/sdk-authoring@0.37.8
|
|
21
|
+
- @plitzi/sdk-dev-tools@0.37.8
|
|
22
|
+
- @plitzi/sdk-elements@0.37.8
|
|
23
|
+
- @plitzi/sdk-event-bridge@0.37.8
|
|
24
|
+
- @plitzi/sdk-interactions@0.37.8
|
|
25
|
+
- @plitzi/sdk-navigation@0.37.8
|
|
26
|
+
- @plitzi/sdk-plugins@0.37.8
|
|
27
|
+
- @plitzi/sdk-schema@0.37.8
|
|
28
|
+
- @plitzi/sdk-shared@0.37.8
|
|
29
|
+
- @plitzi/sdk-style@0.37.8
|
|
30
|
+
- @plitzi/sdk-variables@0.37.8
|
|
31
|
+
- @plitzi/plitzi-sdk@0.37.8
|
|
32
|
+
|
|
3
33
|
## 0.37.7
|
|
4
34
|
|
|
5
35
|
### Patch Changes
|
package/dist/package.json.d.ts
CHANGED
package/dist/plitzi-builder.js
CHANGED
|
@@ -80,7 +80,7 @@ return c(e,SH(t,{addHelmetDataAttr:!0,addKey:n}))}function zH(e,t){const n=[];fo
|
|
|
80
80
|
return M(NH,{value:i,children:e})};function AH(e){return nH[e]??e}function TH(e){const t=function(e){const t={};for(const[n,r]of Object.entries(e))t[n]=Array.isArray(r)?r.slice():r;return t}(e);for(const n of Object.values(e))if(Array.isArray(n)){for(const e of n)if(e)for(const t of Object.keys(e)){const n=AH(t);n!==t&&(e[n]=e[t],delete e[t])}}else if(n&&"object"==typeof n){const e=n;for(const t of Object.keys(e)){const n=AH(t);n!==t&&(e[n]=e[t],delete e[t])}}return n.forEach(e.children,e=>{if(null==e)return;if("object"!=typeof e||!("props"in e))throw Error(`"${typeof e}" is not a valid <Helmet> descendant`);let n;const r={};if(e.props)for(const[t,a]of Object.entries(e.props))"children"===t?n=a:r[AH(t)]=a;let{type:i}=e;switch("symbol"==typeof i&&(i=i.toString()),function(e,t){if("string"!=typeof e)throw Error("You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.");if(!tH.includes(e))throw Error(`Only elements types ${tH.join(", ")} are allowed. Helmet does not support rendering <${e}> elements. Refer to our API for more information.`);if(t&&"string"!=typeof t&&!Array.isArray(t))throw Error(`Helmet expects a string as a child of <${e}>. Did you forget to wrap your children in braces? ( <${e}>{\`\`}</${e}> ) Refer to our API for more information.`)}(i,n),i){case $X.BASE:t.base=r;break;case $X.BODY:t.bodyAttributes=r;break;case $X.FRAGMENT:!function(e,t){const n=e;for(const[r,i]of Object.entries(t))if(Array.isArray(i)){const e=n[r];n[r]=e?e.concat(i):i}else n[r]=i}(t,TH({children:n}));break;case $X.HTML:t.htmlAttributes=r;break;case $X.LINK:case $X.META:if(n)throw Error(`<${i} /> elements are self-closing and can not contain children. Refer to our API for more information.`);pH(t,i,r);break;case $X.NOSCRIPT:case $X.SCRIPT:void 0!==n&&(r.innerHTML=n),pH(t,i,r);break;case $X.STYLE:r.cssText=n,pH(t,i,r);break;case $X.TITLE:t.titleAttributes=r,"string"==typeof n?t.title=n:Array.isArray(n)&&(t.title=n.join(""));case $X.HEAD:}}),delete t.children,t}var PH=e=>{const t=j(8),n=m(NH);if(!n)throw Error("<Helmet> component must be within a <HelmetProvider> children tree");const r=w();let i,a,o;return n.update(r,TH(e)),t[0]!==n||t[1]!==r||t[2]!==e?(i=()=>{n.update(r,TH(e)),n.clientApply()},t[0]=n,t[1]=r,t[2]=e,t[3]=i):i=t[3],y(i),t[4]!==n||t[5]!==r?(a=()=>()=>{n.update(r,void 0),n.clientApply()},o=[n,r],t[4]=n,t[5]=r,t[6]=a,t[7]=o):(a=t[6],o=t[7]),y(a,o),null};Bw(),Aj(),Hs(),Rw(),Iw(),na(),fo();var MH=rj(({ref:e,seoEnabled:t=!1,seoPageTitle:n="Title",seoPageDescription:r="Description",className:i="",layout:a="",layoutContainer:o="",children:s})=>{let{id:l}=Bo(),{settings:{previewMode:c},contexts:{InteractionsContext:d}}=Ub(),{interactionsManager:u}=m(d),[[h,f]]=sr(["navigation.routeParams","navigation.queryParams"]),p=((e,t)=>{let n=v(ln),r=z(YX),i=g(e=>n?n.subscribePath("schema.flat",e):()=>{},[n]),a=g(()=>{let i=e&&n?mw(e=>{let t=(e=>n.getPath(e))(`schema.flat.${e}`);return(e=>"object"==typeof e&&!!e&&"definition"in e&&"attributes"in e)(t)?t:void 0},e,t):YX;return((e,t)=>e.length===t.length&&e.every((e,n)=>e.layout===t[n].layout&&e.slot===t[n].slot))(r.current,i)||(r.current=i),r.current},[n,e,t]);return E(i,a,a)})(a,o),b=S(()=>(e=>e.map(e=>({...e,plitziElementLayout:{containerId:e.slot,rootId:e.slot,type:"layout"}})))(p),[p]),x=S(()=>((e,t,n)=>e.reduce((e,{layout:n,slot:r,plitziElementLayout:i})=>/* @__PURE__ */M(ny,{body:e,children:/* @__PURE__ */M(qX,{internalProps:{id:n,rootId:t,plitziElementLayout:i}})},r),n))(b,l,s),[b,l,s]);return y(()=>{let e=!1;return queueMicrotask(()=>{e||u.interactionTrigger(l,"onPageLoad",{pageId:l,routeParams:h,queryParams:f})}),()=>{e=!0}},[l,u,f,h]),/* @__PURE__ */I(qb,{ref:e,className:Ja("plitzi-component__page",i),interactionTriggers:HX.triggers,children:[t&&c&&/* @__PURE__ */I(PH,{children:[!!n&&/* @__PURE__ */M("title",{children:n}),!!r&&/* @__PURE__ */M("meta",{name:"description",content:r})]}),x]})}),IH=Object.assign(MH,HX);Aj(),Rw(),fo();var RH=rj(({ref:e,className:t="",icon:n="fas fa-flag",size:r="fa-1x",iconAnimation:i="",label:a=""})=>{let o=a?{role:"img","aria-label":a}:{"aria-hidden":!0};/* @__PURE__ */
|
|
81
81
|
return M(qb,{ref:e,tag:"i",className:Ja("plitzi-component__fontawesome",t,n,r,i),...o})}),DH=Object.assign(RH,{type:"fontAwesome",content:{attributes:{icon:"fas fa-flag",size:"fa-1x",iconAnimation:""},definition:{label:"Font Awesome",type:"fontAwesome",description:"Renders a Font Awesome icon by its icon name.",bindings:{},styleSelectors:{base:""},initialState:{visibility:!0}},builder:{canDelete:!0,canSelect:!0,canDragDrop:!0,canMove:!0,canTemplate:!0,itemsAllowed:[],itemsNotAllowed:[]},market:{category:"media",owner:"Plitzi",verified:!0,license:"MIT",website:"https://plitzi.com",backgroundColor:"#4422ee",icon:"fa-solid fa-font-awesome"},defaultStyle:{name:"Font Awesome",displayMode:"desktop",style:{base:{default:{display:"inline-block","font-size":"16px"}}}},settings:{}}});Aj(),Rw(),Iw(),fo();var LH="data:image/svg+xml;base64,"+btoa('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 1200" fill="none">\n <rect width="1200" height="1200" fill="#EAEAEA" rx="3"/>\n <path fill="#FAFAFA" opacity="0.5" d="M600.709 736.5c-75.454 0-136.621-61.167-136.621-136.62 0-75.454 61.167-136.621 136.621-136.621 75.453 0 136.62 61.167 136.62 136.621 0 75.453-61.167 136.62-136.62 136.62Z"/>\n <path stroke="#C9C9C9" stroke-width="2.418" opacity="0.5" d="M600.709 736.5c-75.454 0-136.621-61.167-136.621-136.62 0-75.454 61.167-136.621 136.621-136.621 75.453 0 136.62 61.167 136.62 136.621 0 75.453-61.167 136.62-136.62 136.62Z"/>\n <path stroke="url(#a)" stroke-width="2.418" d="M0-1.209h553.581" transform="scale(1 -1) rotate(45 1163.11 91.165)"/>\n <path stroke="url(#b)" stroke-width="2.418" d="M404.846 598.671h391.726"/>\n <path stroke="url(#c)" stroke-width="2.418" d="M599.5 795.742V404.017"/>\n <path stroke="url(#d)" stroke-width="2.418" d="m795.717 796.597-391.441-391.44"/>\n <path fill="#fff" d="M600.709 656.704c-31.384 0-56.825-25.441-56.825-56.824 0-31.384 25.441-56.825 56.825-56.825 31.383 0 56.824 25.441 56.824 56.825 0 31.383-25.441 56.824-56.824 56.824Z"/>\n <path fill="#666" fill-rule="evenodd" d="M616.426 586.58h-31.434v16.176l3.553-3.554.531-.531h9.068l.074-.074 8.463-8.463h2.565l7.18 7.181V586.58Zm-15.715 14.654 3.698 3.699 1.283 1.282-2.565 2.565-1.282-1.283-5.2-5.199h-6.066l-5.514 5.514-.073.073v2.876a2.418 2.418 0 0 0 2.418 2.418h26.598a2.418 2.418 0 0 0 2.418-2.418v-8.317l-8.463-8.463-7.181 7.181-.071.072Zm-19.347 5.442v4.085a6.045 6.045 0 0 0 6.046 6.045h26.598a6.044 6.044 0 0 0 6.045-6.045v-7.108l1.356-1.355-1.282-1.283-.074-.073v-17.989h-38.689v23.43l-.146.146.146.147Z" clip-rule="evenodd"/>\n <path stroke="#C9C9C9" stroke-width="2.418" d="M600.709 656.704c-31.384 0-56.825-25.441-56.825-56.824 0-31.384 25.441-56.825 56.825-56.825 31.383 0 56.824 25.441 56.824 56.825 0 31.383-25.441 56.824-56.824 56.824Z"/>\n <defs>\n <linearGradient id="a" x1="554.061" x2="-.48" y1=".083" y2=".087" gradientUnits="userSpaceOnUse">\n <stop stop-color="#C9C9C9" stop-opacity="0"/><stop offset=".208" stop-color="#C9C9C9"/><stop offset=".792" stop-color="#C9C9C9"/><stop offset="1" stop-color="#C9C9C9" stop-opacity="0"/>\n </linearGradient>\n <linearGradient id="b" x1="796.912" x2="404.507" y1="599.963" y2="599.965" gradientUnits="userSpaceOnUse">\n <stop stop-color="#C9C9C9" stop-opacity="0"/><stop offset=".208" stop-color="#C9C9C9"/><stop offset=".792" stop-color="#C9C9C9"/><stop offset="1" stop-color="#C9C9C9" stop-opacity="0"/>\n </linearGradient>\n <linearGradient id="c" x1="600.792" x2="600.794" y1="403.677" y2="796.082" gradientUnits="userSpaceOnUse">\n <stop stop-color="#C9C9C9" stop-opacity="0"/><stop offset=".208" stop-color="#C9C9C9"/><stop offset=".792" stop-color="#C9C9C9"/><stop offset="1" stop-color="#C9C9C9" stop-opacity="0"/>\n </linearGradient>\n <linearGradient id="d" x1="404.85" x2="796.972" y1="403.903" y2="796.02" gradientUnits="userSpaceOnUse">\n <stop stop-color="#C9C9C9" stop-opacity="0"/><stop offset=".208" stop-color="#C9C9C9"/><stop offset=".792" stop-color="#C9C9C9"/><stop offset="1" stop-color="#C9C9C9" stop-opacity="0"/>\n </linearGradient>\n <clipPath id="e"><path fill="#fff" d="M581.364 580.535h38.689v38.689h-38.689z"/></clipPath>\n </defs>\n</svg>'),jH=rj(({ref:e,className:t="",src:n,alt:r="",decorative:i=!1,fetchPriority:a="auto",loadMode:o})=>{let{settings:{previewMode:s}}=Ub(),l=n||"https://cdn.plitzi.com/resources/img/placeholder-img.svg",c=i?"":r,[d,u]=N(void 0),h=d===l,f=g(()=>u(l),[l]),p=h?LH:l,m=h?{"data-plitzi-failed":l}:{},v="auto"===o?void 0:o;/* @__PURE__ */
|
|
82
82
|
return M(qb,s?{tag:"img",draggable:!1,ref:e,className:Ja("plitzi-component__image",t),src:p,alt:c,loading:v,fetchPriority:a,onError:h?void 0:f,...m}:{ref:e,className:Ja("plitzi-component__image image--edit-mode",t),children:/* @__PURE__ */M("img",{draggable:!1,src:p,alt:c,loading:v,fetchPriority:a,onError:h?void 0:f,...m})})}),QH=Object.assign(jH,{type:"image",attributeValues:{fetchPriority:["high","low","auto"],loadMode:["auto","eager","lazy"]},content:{attributes:{src:"https://cdn.plitzi.com/resources/img/placeholder-img.svg",alt:"",decorative:!1,fetchPriority:"auto",loadMode:"auto"},definition:{label:"Image",type:"image",description:"Displays an image from a URL.",bindings:{},styleSelectors:{base:""},initialState:{visibility:!0}},builder:{canDelete:!0,canSelect:!0,canDragDrop:!0,canMove:!0,canTemplate:!0,itemsAllowed:[],itemsNotAllowed:[]},market:{category:"media",owner:"Plitzi",verified:!0,license:"MIT",website:"https://plitzi.com",backgroundColor:"#4422ee",icon:"fa-solid fa-image"},defaultStyle:{name:"Image",displayMode:"desktop",style:{base:{default:{display:"block",width:"140px",height:"140px"}}}},settings:{}}});Aj(),Rw(),Iw(),fo();var VH,FH,BH,UH,_H,qH,WH,ZH,XH,HH,YH,GH,$H,KH,JH,eY,tY=rj(({ref:e,src:t,autoPlay:n=!1,playsInline:r=!1,loop:i=!1,muted:a=!0,className:o=""})=>{let{settings:{previewMode:s}}=Ub();/* @__PURE__ */
|
|
83
|
-
return M(qb,s?{tag:"video",draggable:!1,ref:e,className:Ja("plitzi-component__video",o),src:t,autoPlay:n,playsInline:r,loop:i,muted:a}:{ref:e,className:Ja("plitzi-component__video video--edit-mode",o),children:/* @__PURE__ */M("video",{src:t,autoPlay:n,playsInline:r,loop:i,muted:a,children:/* @__PURE__ */M("track",{kind:"captions"})})})}),nY=Object.assign(tY,{type:"video",content:{attributes:{src:"",autoPlay:!1,playsInline:!1,loop:!1,muted:!0},definition:{label:"Video",type:"video",description:"Embeds a video from a URL.",bindings:{},styleSelectors:{base:""},initialState:{visibility:!0}},builder:{canDelete:!0,canSelect:!0,canDragDrop:!0,canMove:!0,canTemplate:!0,itemsAllowed:[],itemsNotAllowed:[]},market:{category:"media",owner:"Plitzi",verified:!0,license:"MIT",website:"https://plitzi.com",backgroundColor:"#4422ee",icon:"fa-solid fa-video"},defaultStyle:{name:"Video",displayMode:"desktop",style:{base:{default:{display:"block",width:"400px",height:"250px"}}}},settings:{}}}),rY={type:"apiContainer",attributeValues:{subType:["","div","header","footer","nav","main","section","article","aside","address","figure"],method:["get","post","put","delete","patch"],credentials:["include","omit","same-origin"],pagination:["none","url","append"]},sourceType:"apiContainer",triggers:{onApiError:{action:"onApiError",title:"On Api Error",type:"trigger",params:{},preview:{url:"",method:"",status:"",data:""}},onApiSuccess:{action:"onApiSuccess",title:"On Api Success",type:"trigger",params:{},preview:{url:"",method:"",status:"",data:""}}},callbacks:{performQuery:{action:"performQuery",title:"Perform Query",type:"callback",preview:{},params:{input:{label:"Input (server providers)",type:"codemirror-json",defaultValue:"{}",description:"Values handed to a server-driven provider with its request, beside the page’s own route and query params — a search, a filter. Kept for the pages it loads after (`loadMore`, `goToPage`) until the next query."}}},loadMore:{action:"loadMore",title:"Load More",type:"callback",preview:{},params:{}},goToPage:{action:"goToPage",title:"Go To Page",type:"callback",preview:{},params:{page:{label:"Page",defaultValue:"1",type:"text"}}},writeRecord:{action:"writeRecord",title:"Write Record",type:"callback",preview:{action:"create"},params:{action:{label:"Endpoint",defaultValue:"create",type:"text"},recordId:{label:"Record Id",defaultValue:"",type:"text"}}}},content:{attributes:{query:"",method:"get",accessToken:"",mockData:"{}",subType:"",credentials:"same-origin",connector:"",resource:"",limit:"10",singleRecord:!1,filters:[],pagination:"none",pageParam:"page",renderWhileLoading:!1,cache:!1,staleTime:30,gcTime:300},definition:{label:"Api Container",type:"apiContainer",description:'Fetches data from a backend HTTP API (its `query`/`method`/`credentials`) and exposes the response as a data source ITS DESCENDANTS bind to (source `apiContainer_<id>.data`; only elements inside it can consume it). This is how you get backend data into the frontend. Its `mockData` prop is builder-only sample data — the published runtime fetches the real `query`, so always set a real query for production. With `cache: true` a browser request is kept for `staleTime` seconds (default 30) and shared with every provider asking the same thing; it is off unless set. A flow refreshes it with `performQuery` or the global `invalidateQueries` step, and `refreshSeconds` makes it ask again on its own every N seconds (either runtime; paused while the tab is hidden) — the way to keep a queue, feed or status board current without a plugin. Its `subType` (container tag) is empty by default, and then it renders NO element of its own: its children lay out directly in its parent, and any class, variant or style binding on it applies to nothing. To style the provider itself give it a tag (`subType: "div"`, `section`, …); otherwise style its parent or a child.',items:[],bindings:{},styleSelectors:{base:""},initialState:{visibility:!0}},builder:{canDelete:!0,canSelect:!0,canDragDrop:!0,canMove:!0,canTemplate:!0,itemsAllowed:[],itemsNotAllowed:[]},market:{category:"provider",owner:"Plitzi",verified:!0,license:"MIT",website:"https://plitzi.com",backgroundColor:"#4422ee",icon:"fa-solid fa-server"},defaultStyle:{name:"Api Container",displayMode:"desktop",style:{base:{default:{}}},subTypes:{}},settings:{}}},iY=(e,t,n)=>n?void 0===e.record:Array.isArray(e.records)?0===t.length:(e=>null==e||""===e||Array.isArray(e)&&0===e.length||"object"==typeof e&&!Array.isArray(e)&&0===Object.keys(e).length)(e.data),aY=de(()=>{pn(),VH=3e5,FH=e=>{let t=3735928559,n=1103547991;for(let r=0;r<e.length;r++){let i=e.charCodeAt(r);t=Math.imul(t^i,2654435761),n=Math.imul(n^i,1597334677)}return t=Math.imul(t^t>>>16,2246822507)^Math.imul(n^n>>>13,3266489909),n=Math.imul(n^n>>>16,2246822507)^Math.imul(t^t>>>13,3266489909),(4294967296*(2097151&n)+(t>>>0)).toString(36)},BH=e=>`entries.${FH(e)}`,UH=class{store;runtimes=/* @__PURE__ */new Map;epochValue=0;unwatch;constructor(e=Pt({entries:{}},{id:"queries"})){this.store=e}get epoch(){return this.epochValue}getEntry(e){let t=this.store.getPath(BH(e));return t?.key===e?t:void 0}hasAnswer(e){return void 0!==this.getEntry(e)&&void 0!==this.store.getFreshness(BH(e))}usage(e){let t=this.runtimes.get(FH(e));return t&&{observers:t.observers.size,holds:t.holds,collectAt:t.collectAt}}remove(e){let t=this.runtimes.get(FH(e));return!(!t||t.observers.size>0||t.holds>0||(this.cancelGc(t),this.collect(t),0))}hold(e,t=VH){let n=this.ensure(e);return n.gcTime=t,n.holds++,this.cancelGc(n),()=>{n.holds--,this.scheduleGc(n)}}observe(e,t){let n=this.ensure(e),{isCacheable:r}=t,i={meta:t.meta,staleTime:t.staleTime,fetcher:t.fetcher,isCacheable:r&&(e=>r(e))};return n.observers.add(i),this.cancelGc(n),(!this.hasAnswer(e)||this.store.isStale(BH(e)))&&this.fetch(n,i),()=>{n.observers.delete(i),this.scheduleGc(n)}}async fetchQuery(e,t){let n=this.ensure(e);if(void 0!==t.gcTime&&(n.gcTime=t.gcTime),this.hasAnswer(e)&&!this.store.isStale(BH(e)))return this.scheduleGc(n),this.getEntry(e)?.data;let{isCacheable:r}=t;await this.fetch(n,{meta:t.meta,staleTime:t.staleTime,fetcher:t.fetcher,isCacheable:r&&(e=>r(e))});let i=this.getEntry(e)?.data;return this.scheduleGc(n),i}refetch(e){let t=this.runtimes.get(FH(e));return t?this.invalidateOne(t):Promise.resolve()}invalidate(e){let t=[];return this.runtimes.forEach(n=>{let r=this.getEntry(n.key);!r||e&&!e({url:r.url,tags:r.tags})||t.push(this.invalidateOne(n))}),Promise.all(t).then(()=>{})}reset({refetch:e=!0}={}){if(this.epochValue++,this.runtimes.forEach(e=>{e.version++,e.inFlight=void 0,e.controller?.abort(),e.controller=void 0}),this.store.setState("entries",{}),!e)return this.runtimes.forEach(e=>this.markUnasked(e)),Promise.resolve();let t=[];return this.runtimes.forEach(e=>t.push(this.fetchActive(e))),Promise.all(t).then(()=>{})}markUnasked(e){let t=e.observers.values().next();if(t.done)return;let n={key:e.key,url:t.value.meta.url,tags:[...e.tags],isFetching:!1};this.store.setState(BH(e.key),n,{ttl:0})}invalidateOne(e){return 0===this.store.expire(BH(e.key)).length&&e.version++,this.fetchActive(e)}onExpired(e){let t=this.runtimes.get(e.slice(8).split(".")[0]);t&&(t.version++,this.fetchActive(t))}fetchActive(e){let t=e.observers.values().next();return t.done?Promise.resolve():this.fetch(e,t.value)}fetch(e,t){if(e.inFlight)return e.inFlight;let{key:n}=e,{url:r}=t.meta;t.meta.tags?.forEach(t=>e.tags.add(t));let i=[...e.tags],a=BH(n);this.getEntry(n)?this.store.setState(`${a}.isFetching`,!0):this.store.setState(a,{key:n,url:r,tags:i,isFetching:!0});let o=this.epochValue,s=e.version,l=l=>{if(o!==this.epochValue||this.runtimes.get(FH(n))!==e)return Promise.resolve();e.inFlight=void 0,e.controller=void 0;let c=s!==e.version;if("error"in l){let e=this.getEntry(n);this.store.setState(a,{key:n,url:r,tags:i,data:e?.data,error:l.error,isFetching:!1},{ttl:0})}else{let o=!c&&(t.isCacheable?.(l.data)??!0);this.store.setState(a,{key:n,url:r,tags:i,data:l.data,isFetching:!1},{ttl:o?this.ttlOf(e,t):0})}return c?this.fetchActive(e):Promise.resolve()},c=new AbortController;return e.controller=c,e.inFlight=t.fetcher(c.signal).then(e=>l({data:e}),e=>l({error:e})),e.inFlight}ttlOf(e,t){let n=e.observers.size>0?1/0:t.staleTime;return e.observers.forEach(e=>{n=Math.min(n,e.staleTime)}),n}ensure(e){let t=FH(e),n=this.runtimes.get(t);return n||(n={key:e,tags:/* @__PURE__ */new Set,observers:/* @__PURE__ */new Set,holds:0,version:0,gcTime:3e5},this.runtimes.set(t,n)),this.unwatch??=this.store.watchFreshness("entries",e=>{"expired"===e.type&&this.onExpired(e.path)}),n}cancelGc(e){clearTimeout(e.gcTimer),e.gcTimer=void 0,e.collectAt=void 0}scheduleGc(e){if(!(e.holds>0||e.observers.size>0)){if(this.cancelGc(e),e.gcTime<=0)return void this.collect(e);e.collectAt=Date.now()+e.gcTime,e.gcTimer=setTimeout(()=>this.collect(e),e.gcTime)}}collect(e){let t=FH(e.key);this.runtimes.get(t)===e&&0===e.holds&&0===e.observers.size&&(this.runtimes.delete(t),e.controller?.abort(),this.store.setState(BH(e.key),void 0,{unmount:!0}))}},_H=new UH}),oY=de(()=>{aY(),ta(),({useStore:qH}=Vn()),WH=({key:e,meta:t,fetcher:n,enabled:r=!0,staleTime:i,gcTime:a=VH,isCacheable:o})=>{let s=void 0!==e,[l]=qH(BH(e??""),{store:_H.store,enabled:s}),c=s&&l?.key===e?l:void 0,d=void 0!==c&&_H.hasAnswer(c.key),u=z(n),h=z(o);y(()=>{u.current=n,h.current=o},[n,o]),y(()=>void 0===e?void 0:_H.hold(e,a),[e,a]);let{url:f}=t,p=t.tags?.join("\0")??"";y(()=>{if(r&&void 0!==e)return _H.observe(e,{meta:{url:f,tags:p?p.split("\0"):[]},staleTime:i,fetcher:e=>u.current(e),isCacheable:e=>h.current?.(e)??!0})},[r,e,f,p,i]);let m=d?c.data:void 0,v=z(void 0);void 0===m?v.current&&v.current.epoch!==_H.epoch&&(v.current=void 0):v.current={epoch:_H.epoch,data:m};let b=m??v.current?.data,x=(c?.isFetching??!1)||r&&s&&!d;return{data:b,isFetching:x,isLoading:x&&void 0===b,refetch:g(()=>{r&&void 0!==e&&_H.refetch(e)},[r,e])}}}),sY=de(()=>{aY(),oY(),ZH=()=>typeof location>"u"?void 0:location.href,XH=e=>{try{return new URL(e,ZH()).origin}catch{return}},HH=e=>{let t=XH(e);return t?_H.invalidate(e=>XH(e.url)===t):Promise.resolve()},YH=e=>Array.isArray(e)?e.filter(e=>"string"==typeof e&&""!==e.trim()).map(e=>e.trim()):"string"==typeof e?e.split(",").map(e=>e.trim()).filter(Boolean):[],GH=e=>{try{return new URL(e,ZH()).href}catch{return e}},$H=({url:e,elements:t})=>{let n=e?GH(e):void 0;return e=>(void 0===n||GH(e.url).startsWith(n))&&(!t?.length||t.some(t=>e.tags?.includes(t)??!1))},KH=(e={})=>e.url||e.elements?.length?_H.invalidate($H(e)):_H.invalidate(),JH=({method:e,url:t,credentials:n,headers:r})=>JSON.stringify([e.toLowerCase(),t,n,Object.entries(r).filter(([e])=>"content-type"!==e.toLowerCase()).sort(([e],[t])=>e<t?-1:+(e>t))]),eY=({mode:e,fallback:t,elements:n,url:r})=>{let i="origin"===e||"all"===e||"elements"===e||"none"===e?e:t;if("none"===i)return Promise.resolve();if("elements"===i){let e=YH(n);return e.length>0?KH({elements:e}):Promise.resolve()}return"origin"===i&&r?HH(r):KH()}});ka(),zc(),_w(),sY();var lY=e=>e.status<400,cY=(e,t)=>{let n="number"==typeof e?e:Number(e);return 1e3*(Number.isFinite(n)&&n>=0?n:t)};_w(),sY(),zc();var dY=e=>rc(e).map(e=>({path:e,name:e.split(".").slice(-2).join(" ")}));Aj(),Hs(),Rw(),Iw(),na(),ta(),zc(),dj(),fo(),Mb(),Ib(),Tb();var uY=rj(({ref:e,className:t="",children:n,query:r="",method:i="get",accessToken:a="",when:o=nc,headers:s=nc,mockData:l="{}",subType:c="",credentials:d="same-origin",singleRecord:u=!1,pagination:h="none",pageParam:f="page",renderWhileLoading:p=!1,cache:v=!1,staleTime:b=30,gcTime:x=300,refreshSeconds:k=0})=>{let{id:O,visible:C,definition:{label:E="Api Container",runtime:A,items:T}}=Bo(),P="server"===A,{loaded:I,stale:R,location:D,elementData:L,refresh:j}=Mj(),Q=vb(rY.sourceType,O),{settings:{previewMode:V},contexts:{InteractionsContext:F}}=Ub(),{interactionsManager:B}=m(F),[[U,_,q]]=sr(["navigation.routeParams","navigation.queryParams","navigation.navigate"]),W=S(()=>a?{...s,Authorization:`Bearer ${a}`}:s,[s,a]),Z=S(()=>!(P||!C||!(V&&r&&(o===nc||lp(o,{...U,..._}))||!V&&(r||l&&"{}"!==l&&l!==nc))),[P,C,V,r,o,U,_,l]),X=S(()=>[O],[O]),{isLoading:H,isFetching:Y,data:G,refetch:$,isSuccess:K,isError:J}=(({url:e="",method:t="get",mock:n,customHeaders:r=nc,enabled:i=!0,credentials:a="same-origin",cache:o=!1,staleTime:s=30,gcTime:l=300,tags:c})=>{let d=(e=>!!e&&"{}"!==e&&e!==nc)(n),u=w(),h=!d&&(!e||Bi(e)),f=S(()=>{if(d||h)return;let n=JH({method:t,url:e,credentials:a,headers:r});return o?n:`${n}#${u}`},[d,h,e,t,a,r,o,u]),p=g(n=>(async(e,t,n,r,i)=>{if(!e)return{status:400,data:"URL is required"};let a=new Headers(r);a.has("Content-Type")||a.set("Content-Type","application/json");let o={method:t,credentials:n,headers:a,signal:i};"get"!==t&&(o.body="{}");try{let t=await fetch(e,o),n=await t.json(),r=dy(t.status,n);return r&&sy({reason:r,url:e}),{status:t.status,data:n}}catch(e){if(i.aborted)throw e;return{status:500,data:e.message}}})(e,t,a,r,n),[e,t,a,r]),m=WH({key:f,meta:{url:e,tags:c},fetcher:p,enabled:i,staleTime:o?cY(s,30):0,gcTime:o?cY(l,300):0,isCacheable:lY}),v=S(()=>d?(e=>{if("string"!=typeof e)return{status:200,data:e};try{return{status:200,data:JSON.parse(e)}}catch(e){return{status:500,data:e.message}}})(n):void 0,[d,n]),b=i&&v?v:m.data,y=!v&&m.isFetching;return{isLoading:y&&void 0===b,isFetching:y,data:b,refetch:m.refetch,isSuccess:!h&&!y&&!!b&&b.status<400,isError:!h&&!y&&!!b&&b.status>=400}})({url:r,method:i,credentials:d,mock:V?void 0:l,customHeaders:W,enabled:Z,cache:v,staleTime:b,gcTime:x,tags:X}),ee=P&&!!D&&D!==LD(),te=P&&I&&!ee&&null===L,ne=S(()=>{if(!P)return G??nc;if(L)return L;if(I)return nc;if("string"!=typeof l)return l;try{return JSON.parse(l||"{}")}catch{return nc}},[P,G,L,I,l]),re=P?ee:Y,ie=P?ee:H,ae=z({}),oe=g((e,t)=>j(e,{...ae.current,...t}),[j]),se=g(async()=>{P?await oe([O]):$()},[P,$,oe,O]),le=g(async({input:e}={})=>{let t=(e=>{let t=e;if("string"==typeof t)try{t=JSON.parse(t||"{}")}catch{return}if("object"==typeof t&&t&&!Array.isArray(t))return Object.fromEntries(Object.entries(t).flatMap(([e,t])=>"string"==typeof t||"number"==typeof t||"boolean"==typeof t?[[e,String(t)]]:[]))})(e);t&&(ae.current=t),await se()},[se]);(({seconds:e,enabled:t,refresh:n})=>{let r=z(n);r.current=n;let i=Number(e),a=t&&Number.isFinite(i)&&i>0;y(()=>{if(!a)return;let e=!1,t=setInterval(()=>{e||"hidden"===document.visibilityState||(e=!0,Promise.resolve().then(()=>r.current()).catch(()=>{}).finally(()=>{e=!1}))},1e3*i);return()=>clearInterval(t)},[a,i])})({seconds:k,enabled:C&&(P?I&&!ee:Z),refresh:se});let ce=ne,de=S(()=>Array.isArray(ce.records)?ce.records:[],[ce.records]),{records:ue,isLoadingMore:he,goToPage:fe,loadMore:pe}=(({elementId:e,mode:t,pageParam:n,records:r,page:i,refresh:a,navigate:o})=>{let[s,l]=N(r),[c,d]=N(!1),u=z(0);y(()=>{if("append"===t){if(i<=1)return u.current=1,void l(r);u.current!==i&&(u.current=i,l(e=>[...e,...r]))}},[t,i,r]);let h=g(async r=>{let i=Math.max(r,1);if("url"!==t){if(a){d(!0);try{await a([e],{[n]:String(i)})}finally{d(!1)}}}else o?.(((e,t)=>{if(typeof window>"u")return"";let n=new URL(window.location.href);return t<=1?n.searchParams.delete(e):n.searchParams.set(e,String(t)),`${n.pathname}${n.search}`})(n,i))},[t,o,n,a,e]),f=g(()=>h(i+1),[h,i]);return{records:"append"===t?s:r,isLoadingMore:c,goToPage:h,loadMore:f}})({elementId:O,mode:h,pageParam:f,records:de,page:ce.pageInfo?.page??1,refresh:oe,navigate:q}),me=(({serverMode:e,isSuccess:t,isError:n,rscResolved:r,rscPending:i,elementData:a})=>e?r&&!i?null==a?"error":"success":void 0:t?"success":n?"error":void 0)({serverMode:P,isSuccess:K,isError:J,rscResolved:I,rscPending:ee,elementData:L});y(()=>{!re&&O&&me&&B.interactionTrigger(O,"success"===me?"onApiSuccess":"onApiError",{url:r,method:i,...ne})},[ne,O,B,re,i,me,r]);let ge=S(()=>({...ne,...Array.isArray(ce.records)?{records:ue}:nc,isLoading:re||he,isEmpty:iY(ce,ue,u),hasError:te,errorMessage:te?"The data provider could not be reached":"",isStale:P&&R}),[ne,ce.records,ce.record,ue,re,he,u,te,P,R]),ve=g(()=>dY(ge),[ge]);bb({id:O,source:Q,name:E||`API - ${O}`,fields:ve});let{writeRecord:be}=(({elementId:e,enabled:t,actionPath:n="/_action",onDone:r})=>({writeRecord:g(async(i={})=>{let{action:a,recordId:o,...s}=i;if(!t||"string"!=typeof a||!a)return;let l=await fetch(n,{method:"POST",headers:{"Content-Type":"application/json"},credentials:"same-origin",body:JSON.stringify({elementId:e,action:a,recordId:o,values:s})});if(!l.ok){let e=dy(l.status,await l.json().catch(()=>{}));throw e&&sy({reason:e,url:n}),Error(`Write failed with status ${l.status}`)}let c=await l.json();return KH(),await(r?.()),c.record},[n,e,t,r])}))({elementId:O,enabled:P,onDone:se}),ye=S(()=>{let e={performQuery:{...rY.callbacks.performQuery,title:`Perform Query ${E}`,callback:le},loadMore:{...rY.callbacks.loadMore,title:`Load More ${E}`,callback:pe},goToPage:{...rY.callbacks.goToPage,title:`Go To Page ${E}`,callback:({page:e})=>fe(Number(e)||1)}};return P&&(e.writeRecord={...rY.callbacks.writeRecord,title:`Write Record ${E}`,callback:be}),e},[E,le,pe,fe,P,be]),xe=S(()=>Q?{runtime:{sources:{[Q]:ge}}}:nc,[ge,Q]);/* @__PURE__ */
|
|
83
|
+
return M(qb,s?{tag:"video",draggable:!1,ref:e,className:Ja("plitzi-component__video",o),src:t,autoPlay:n,playsInline:r,loop:i,muted:a}:{ref:e,className:Ja("plitzi-component__video video--edit-mode",o),children:/* @__PURE__ */M("video",{src:t,autoPlay:n,playsInline:r,loop:i,muted:a,children:/* @__PURE__ */M("track",{kind:"captions"})})})}),nY=Object.assign(tY,{type:"video",content:{attributes:{src:"",autoPlay:!1,playsInline:!1,loop:!1,muted:!0},definition:{label:"Video",type:"video",description:"Embeds a video from a URL.",bindings:{},styleSelectors:{base:""},initialState:{visibility:!0}},builder:{canDelete:!0,canSelect:!0,canDragDrop:!0,canMove:!0,canTemplate:!0,itemsAllowed:[],itemsNotAllowed:[]},market:{category:"media",owner:"Plitzi",verified:!0,license:"MIT",website:"https://plitzi.com",backgroundColor:"#4422ee",icon:"fa-solid fa-video"},defaultStyle:{name:"Video",displayMode:"desktop",style:{base:{default:{display:"block",width:"400px",height:"250px"}}}},settings:{}}}),rY={type:"apiContainer",attributeValues:{subType:["","div","header","footer","nav","main","section","article","aside","address","figure"],method:["get","post","put","delete","patch"],credentials:["include","omit","same-origin"],pagination:["none","url","append"]},sourceType:"apiContainer",triggers:{onApiError:{action:"onApiError",title:"On Api Error",type:"trigger",params:{},preview:{url:"",method:"",status:"",data:""}},onApiSuccess:{action:"onApiSuccess",title:"On Api Success",type:"trigger",params:{},preview:{url:"",method:"",status:"",data:""}}},callbacks:{performQuery:{action:"performQuery",title:"Perform Query",type:"callback",preview:{},params:{input:{label:"Input (server providers)",type:"codemirror-json",defaultValue:"{}",description:"Values handed to a server-driven provider with its request, beside the page’s own route and query params — a search, a filter. Kept for the pages it loads after (`loadMore`, `goToPage`) until the next query."}}},loadMore:{action:"loadMore",title:"Load More",type:"callback",preview:{},params:{}},goToPage:{action:"goToPage",title:"Go To Page",type:"callback",preview:{},params:{page:{label:"Page",defaultValue:"1",type:"text"}}},writeRecord:{action:"writeRecord",title:"Write Record",type:"callback",preview:{action:"create"},params:{action:{label:"Endpoint",defaultValue:"create",type:"text"},recordId:{label:"Record Id",defaultValue:"",type:"text"}}}},content:{attributes:{query:"",method:"get",accessToken:"",mockData:"{}",subType:"",credentials:"same-origin",connector:"",resource:"",limit:"10",singleRecord:!1,filters:[],pagination:"none",pageParam:"page",renderWhileLoading:!1,cache:!1,staleTime:30,gcTime:300},definition:{label:"Api Container",type:"apiContainer",description:'Fetches data from a backend HTTP API (its `query`/`method`/`credentials`) and exposes the response as a data source ITS DESCENDANTS bind to (source `apiContainer_<id>.data`; only elements inside it can consume it). This is how you get backend data into the frontend. Its `mockData` prop is builder-only sample data — the published runtime fetches the real `query`, so always set a real query for production. With `cache: true` a browser request is kept for `staleTime` seconds (default 30) and shared with every provider asking the same thing; it is off unless set. A flow refreshes it with `performQuery` or the global `invalidateQueries` step, and `refreshSeconds` makes it ask again on its own every N seconds (either runtime; paused while the tab is hidden) — the way to keep a queue, feed or status board current without a plugin. Its `subType` (container tag) is empty by default, and then it renders NO element of its own: its children lay out directly in its parent, and any class, variant or style binding on it applies to nothing. To style the provider itself give it a tag (`subType: "div"`, `section`, …); otherwise style its parent or a child.',items:[],bindings:{},styleSelectors:{base:""},initialState:{visibility:!0}},builder:{canDelete:!0,canSelect:!0,canDragDrop:!0,canMove:!0,canTemplate:!0,itemsAllowed:[],itemsNotAllowed:[]},market:{category:"provider",owner:"Plitzi",verified:!0,license:"MIT",website:"https://plitzi.com",backgroundColor:"#4422ee",icon:"fa-solid fa-server"},defaultStyle:{name:"Api Container",displayMode:"desktop",style:{base:{default:{}}},subTypes:{}},settings:{}}},iY=(e,t,n)=>n?void 0===e.record:Array.isArray(e.records)?0===t.length:(e=>null==e||""===e||Array.isArray(e)&&0===e.length||"object"==typeof e&&!Array.isArray(e)&&0===Object.keys(e).length)(e.data),aY=de(()=>{pn(),VH=3e5,FH=e=>{let t=3735928559,n=1103547991;for(let r=0;r<e.length;r++){let i=e.charCodeAt(r);t=Math.imul(t^i,2654435761),n=Math.imul(n^i,1597334677)}return t=Math.imul(t^t>>>16,2246822507)^Math.imul(n^n>>>13,3266489909),n=Math.imul(n^n>>>16,2246822507)^Math.imul(t^t>>>13,3266489909),(4294967296*(2097151&n)+(t>>>0)).toString(36)},BH=e=>`entries.${FH(e)}`,UH=class{store;runtimes=/* @__PURE__ */new Map;epochValue=0;unwatch;constructor(e=Pt({entries:{}},{id:"queries"})){this.store=e}get epoch(){return this.epochValue}getEntry(e){let t=this.store.getPath(BH(e));return t?.key===e?t:void 0}hasAnswer(e){return void 0!==this.getEntry(e)&&void 0!==this.store.getFreshness(BH(e))}usage(e){let t=this.runtimes.get(FH(e));return t&&{observers:t.observers.size,holds:t.holds,collectAt:t.collectAt}}remove(e){let t=this.runtimes.get(FH(e));return!(!t||t.observers.size>0||t.holds>0||(this.cancelGc(t),this.collect(t),0))}hold(e,t=VH){let n=this.ensure(e);return n.gcTime=t,n.holds++,this.cancelGc(n),()=>{n.holds--,this.scheduleGc(n)}}observe(e,t){let n=this.ensure(e),{isCacheable:r}=t,i={meta:t.meta,staleTime:t.staleTime,fetcher:t.fetcher,isCacheable:r&&(e=>r(e))};return n.observers.add(i),this.cancelGc(n),(!this.hasAnswer(e)||this.store.isStale(BH(e)))&&this.fetch(n,i),()=>{n.observers.delete(i),this.scheduleGc(n)}}async fetchQuery(e,t){let n=this.ensure(e);if(void 0!==t.gcTime&&(n.gcTime=t.gcTime),this.hasAnswer(e)&&!this.store.isStale(BH(e)))return this.scheduleGc(n),this.getEntry(e)?.data;let{isCacheable:r}=t;await this.fetch(n,{meta:t.meta,staleTime:t.staleTime,fetcher:t.fetcher,isCacheable:r&&(e=>r(e))});let i=this.getEntry(e)?.data;return this.scheduleGc(n),i}refetch(e){let t=this.runtimes.get(FH(e));return t?this.invalidateOne(t):Promise.resolve()}invalidate(e){let t=[];return this.runtimes.forEach(n=>{let r=this.getEntry(n.key);!r||e&&!e({url:r.url,tags:r.tags})||t.push(this.invalidateOne(n))}),Promise.all(t).then(()=>{})}reset({refetch:e=!0}={}){if(this.epochValue++,this.runtimes.forEach(e=>{e.version++,e.inFlight=void 0,e.controller?.abort(),e.controller=void 0}),this.store.setState("entries",{}),!e)return this.runtimes.forEach(e=>this.markUnasked(e)),Promise.resolve();let t=[];return this.runtimes.forEach(e=>t.push(this.fetchActive(e))),Promise.all(t).then(()=>{})}markUnasked(e){let t=e.observers.values().next();if(t.done)return;let n={key:e.key,url:t.value.meta.url,tags:[...e.tags],isFetching:!1};this.store.setState(BH(e.key),n,{ttl:0})}invalidateOne(e){return 0===this.store.expire(BH(e.key)).length&&e.version++,this.fetchActive(e)}onExpired(e){let t=this.runtimes.get(e.slice(8).split(".")[0]);t&&(t.version++,this.fetchActive(t))}fetchActive(e){let t=e.observers.values().next();return t.done?Promise.resolve():this.fetch(e,t.value)}fetch(e,t){if(e.inFlight)return e.inFlight;let{key:n}=e,{url:r}=t.meta;t.meta.tags?.forEach(t=>e.tags.add(t));let i=[...e.tags],a=BH(n);this.getEntry(n)?this.store.setState(`${a}.isFetching`,!0):this.store.setState(a,{key:n,url:r,tags:i,isFetching:!0});let o=this.epochValue,s=e.version,l=l=>{if(o!==this.epochValue||this.runtimes.get(FH(n))!==e)return Promise.resolve();e.inFlight=void 0,e.controller=void 0;let c=s!==e.version;if("error"in l){let e=this.getEntry(n);this.store.setState(a,{key:n,url:r,tags:i,data:e?.data,error:l.error,isFetching:!1},{ttl:0})}else{let o=!c&&(t.isCacheable?.(l.data)??!0);this.store.setState(a,{key:n,url:r,tags:i,data:l.data,isFetching:!1},{ttl:o?this.ttlOf(e,t):0})}return c?this.fetchActive(e):Promise.resolve()},c=new AbortController;return e.controller=c,e.inFlight=t.fetcher(c.signal).then(e=>l({data:e}),e=>l({error:e})),e.inFlight}ttlOf(e,t){let n=e.observers.size>0?1/0:t.staleTime;return e.observers.forEach(e=>{n=Math.min(n,e.staleTime)}),n}ensure(e){let t=FH(e),n=this.runtimes.get(t);return n||(n={key:e,tags:/* @__PURE__ */new Set,observers:/* @__PURE__ */new Set,holds:0,version:0,gcTime:3e5},this.runtimes.set(t,n)),this.unwatch??=this.store.watchFreshness("entries",e=>{"expired"===e.type&&this.onExpired(e.path)}),n}cancelGc(e){clearTimeout(e.gcTimer),e.gcTimer=void 0,e.collectAt=void 0}scheduleGc(e){if(!(e.holds>0||e.observers.size>0)){if(this.cancelGc(e),e.gcTime<=0)return void this.collect(e);e.collectAt=Date.now()+e.gcTime,e.gcTimer=setTimeout(()=>this.collect(e),e.gcTime)}}collect(e){let t=FH(e.key);this.runtimes.get(t)===e&&0===e.holds&&0===e.observers.size&&(this.runtimes.delete(t),e.controller?.abort(),this.store.setState(BH(e.key),void 0,{unmount:!0}))}},_H=new UH}),oY=de(()=>{aY(),ta(),({useStore:qH}=Vn()),WH=({key:e,meta:t,fetcher:n,enabled:r=!0,staleTime:i,gcTime:a=VH,isCacheable:o})=>{let s=void 0!==e,[l]=qH(BH(e??""),{store:_H.store,enabled:s}),c=s&&l?.key===e?l:void 0,d=void 0!==c&&_H.hasAnswer(c.key),u=z(n),h=z(o);y(()=>{u.current=n,h.current=o},[n,o]),y(()=>void 0===e?void 0:_H.hold(e,a),[e,a]);let{url:f}=t,p=t.tags?.join("\0")??"";y(()=>{if(r&&void 0!==e)return _H.observe(e,{meta:{url:f,tags:p?p.split("\0"):[]},staleTime:i,fetcher:e=>u.current(e),isCacheable:e=>h.current?.(e)??!0})},[r,e,f,p,i]);let m=d?c.data:void 0,v=z(void 0);void 0===m?v.current&&v.current.epoch!==_H.epoch&&(v.current=void 0):v.current={epoch:_H.epoch,data:m};let b=m??v.current?.data,x=(c?.isFetching??!1)||r&&s&&!d;return{data:b,isFetching:x,isLoading:x&&void 0===b,refetch:g(()=>{r&&void 0!==e&&_H.refetch(e)},[r,e])}}}),sY=de(()=>{aY(),oY(),ZH=()=>typeof location>"u"?void 0:location.href,XH=e=>{try{return new URL(e,ZH()).origin}catch{return}},HH=e=>{let t=XH(e);return t?_H.invalidate(e=>XH(e.url)===t):Promise.resolve()},YH=e=>Array.isArray(e)?e.filter(e=>"string"==typeof e&&""!==e.trim()).map(e=>e.trim()):"string"==typeof e?e.split(",").map(e=>e.trim()).filter(Boolean):[],GH=e=>{try{return new URL(e,ZH()).href}catch{return e}},$H=({url:e,elements:t})=>{let n=e?GH(e):void 0;return e=>(void 0===n||GH(e.url).startsWith(n))&&(!t?.length||t.some(t=>e.tags?.includes(t)??!1))},KH=(e={})=>e.url||e.elements?.length?_H.invalidate($H(e)):_H.invalidate(),JH=({method:e,url:t,credentials:n,headers:r})=>JSON.stringify([e.toLowerCase(),t,n,Object.entries(r).filter(([e])=>"content-type"!==e.toLowerCase()).sort(([e],[t])=>e<t?-1:+(e>t))]),eY=({mode:e,fallback:t,elements:n,url:r})=>{let i="origin"===e||"all"===e||"elements"===e||"none"===e?e:t;if("none"===i)return Promise.resolve();if("elements"===i){let e=YH(n);return e.length>0?KH({elements:e}):Promise.resolve()}return"origin"===i&&r?HH(r):KH()}});ka(),zc(),_w(),sY();var lY=e=>e.status<400,cY=(e,t)=>{let n="number"==typeof e?e:Number(e);return 1e3*(Number.isFinite(n)&&n>=0?n:t)};_w(),sY(),zc();var dY=e=>rc(e).map(e=>({path:e,name:e.split(".").slice(-2).join(" ")}));Aj(),Hs(),Rw(),Iw(),na(),ta(),zc(),dj(),fo(),Mb(),Ib(),Tb();var uY=rj(({ref:e,className:t="",children:n,query:r="",method:i="get",accessToken:a="",when:o=nc,headers:s=nc,mockData:l="{}",subType:c="",credentials:d="same-origin",singleRecord:u=!1,pagination:h="none",pageParam:f="page",renderWhileLoading:p=!1,cache:v=!1,staleTime:b=30,gcTime:x=300,refreshSeconds:k=0})=>{let{id:O,visible:C,definition:{label:E="Api Container",runtime:A,items:T}}=Bo(),P="server"===A,{loaded:I,stale:R,location:D,elementData:L,refresh:j}=Mj(),Q=vb(rY.sourceType,O),{settings:{previewMode:V},contexts:{InteractionsContext:F}}=Ub(),{interactionsManager:B}=m(F),[[U,_,q]]=sr(["navigation.routeParams","navigation.queryParams","navigation.navigate"]),W=S(()=>a?{...s,Authorization:`Bearer ${a}`}:s,[s,a]),Z=S(()=>!(P||!C||!(V&&r&&(o===nc||lp(o,{...U,..._}))||!V&&(r||l&&"{}"!==l&&l!==nc))),[P,C,V,r,o,U,_,l]),X=S(()=>[O],[O]),{isLoading:H,isFetching:Y,data:G,refetch:$,isSuccess:K,isError:J}=(({url:e="",method:t="get",mock:n,customHeaders:r=nc,enabled:i=!0,credentials:a="same-origin",cache:o=!1,staleTime:s=30,gcTime:l=300,tags:c})=>{let d=(e=>!!e&&"{}"!==e&&e!==nc)(n),u=w(),h=!d&&(!e||Bi(e)),f=S(()=>{if(d||h)return;let n=JH({method:t,url:e,credentials:a,headers:r});return o?n:`${n}#${u}`},[d,h,e,t,a,r,o,u]),p=g(n=>(async(e,t,n,r,i)=>{if(!e)return{status:400,data:"URL is required"};let a=new Headers(r);a.has("Accept")||a.set("Accept","application/json");let o={method:t,credentials:n,headers:a,signal:i};"get"!==t&&(o.body="{}",a.has("Content-Type")||a.set("Content-Type","application/json"));try{let t=await fetch(e,o),n=await t.json(),r=dy(t.status,n);return r&&sy({reason:r,url:e}),{status:t.status,data:n}}catch(e){if(i.aborted)throw e;return{status:500,data:e.message}}})(e,t,a,r,n),[e,t,a,r]),m=WH({key:f,meta:{url:e,tags:c},fetcher:p,enabled:i,staleTime:o?cY(s,30):0,gcTime:o?cY(l,300):0,isCacheable:lY}),v=S(()=>d?(e=>{if("string"!=typeof e)return{status:200,data:e};try{return{status:200,data:JSON.parse(e)}}catch(e){return{status:500,data:e.message}}})(n):void 0,[d,n]),b=i&&v?v:m.data,y=!v&&m.isFetching;return{isLoading:y&&void 0===b,isFetching:y,data:b,refetch:m.refetch,isSuccess:!h&&!y&&!!b&&b.status<400,isError:!h&&!y&&!!b&&b.status>=400}})({url:r,method:i,credentials:d,mock:V?void 0:l,customHeaders:W,enabled:Z,cache:v,staleTime:b,gcTime:x,tags:X}),ee=P&&!!D&&D!==LD(),te=P&&I&&!ee&&null===L,ne=S(()=>{if(!P)return G??nc;if(L)return L;if(I)return nc;if("string"!=typeof l)return l;try{return JSON.parse(l||"{}")}catch{return nc}},[P,G,L,I,l]),re=P?ee:Y,ie=P?ee:H,ae=z({}),oe=g((e,t)=>j(e,{...ae.current,...t}),[j]),se=g(async()=>{P?await oe([O]):$()},[P,$,oe,O]),le=g(async({input:e}={})=>{let t=(e=>{let t=e;if("string"==typeof t)try{t=JSON.parse(t||"{}")}catch{return}if("object"==typeof t&&t&&!Array.isArray(t))return Object.fromEntries(Object.entries(t).flatMap(([e,t])=>"string"==typeof t||"number"==typeof t||"boolean"==typeof t?[[e,String(t)]]:[]))})(e);t&&(ae.current=t),await se()},[se]);(({seconds:e,enabled:t,refresh:n})=>{let r=z(n);r.current=n;let i=Number(e),a=t&&Number.isFinite(i)&&i>0;y(()=>{if(!a)return;let e=!1,t=setInterval(()=>{e||"hidden"===document.visibilityState||(e=!0,Promise.resolve().then(()=>r.current()).catch(()=>{}).finally(()=>{e=!1}))},1e3*i);return()=>clearInterval(t)},[a,i])})({seconds:k,enabled:C&&(P?I&&!ee:Z),refresh:se});let ce=ne,de=S(()=>Array.isArray(ce.records)?ce.records:[],[ce.records]),{records:ue,isLoadingMore:he,goToPage:fe,loadMore:pe}=(({elementId:e,mode:t,pageParam:n,records:r,page:i,refresh:a,navigate:o})=>{let[s,l]=N(r),[c,d]=N(!1),u=z(0);y(()=>{if("append"===t){if(i<=1)return u.current=1,void l(r);u.current!==i&&(u.current=i,l(e=>[...e,...r]))}},[t,i,r]);let h=g(async r=>{let i=Math.max(r,1);if("url"!==t){if(a){d(!0);try{await a([e],{[n]:String(i)})}finally{d(!1)}}}else o?.(((e,t)=>{if(typeof window>"u")return"";let n=new URL(window.location.href);return t<=1?n.searchParams.delete(e):n.searchParams.set(e,String(t)),`${n.pathname}${n.search}`})(n,i))},[t,o,n,a,e]),f=g(()=>h(i+1),[h,i]);return{records:"append"===t?s:r,isLoadingMore:c,goToPage:h,loadMore:f}})({elementId:O,mode:h,pageParam:f,records:de,page:ce.pageInfo?.page??1,refresh:oe,navigate:q}),me=(({serverMode:e,isSuccess:t,isError:n,rscResolved:r,rscPending:i,elementData:a})=>e?r&&!i?null==a?"error":"success":void 0:t?"success":n?"error":void 0)({serverMode:P,isSuccess:K,isError:J,rscResolved:I,rscPending:ee,elementData:L});y(()=>{!re&&O&&me&&B.interactionTrigger(O,"success"===me?"onApiSuccess":"onApiError",{url:r,method:i,...ne})},[ne,O,B,re,i,me,r]);let ge=S(()=>({...ne,...Array.isArray(ce.records)?{records:ue}:nc,isLoading:re||he,isEmpty:iY(ce,ue,u),hasError:te,errorMessage:te?"The data provider could not be reached":"",isStale:P&&R}),[ne,ce.records,ce.record,ue,re,he,u,te,P,R]),ve=g(()=>dY(ge),[ge]);bb({id:O,source:Q,name:E||`API - ${O}`,fields:ve});let{writeRecord:be}=(({elementId:e,enabled:t,actionPath:n="/_action",onDone:r})=>({writeRecord:g(async(i={})=>{let{action:a,recordId:o,...s}=i;if(!t||"string"!=typeof a||!a)return;let l=await fetch(n,{method:"POST",headers:{"Content-Type":"application/json"},credentials:"same-origin",body:JSON.stringify({elementId:e,action:a,recordId:o,values:s})});if(!l.ok){let e=dy(l.status,await l.json().catch(()=>{}));throw e&&sy({reason:e,url:n}),Error(`Write failed with status ${l.status}`)}let c=await l.json();return KH(),await(r?.()),c.record},[n,e,t,r])}))({elementId:O,enabled:P,onDone:se}),ye=S(()=>{let e={performQuery:{...rY.callbacks.performQuery,title:`Perform Query ${E}`,callback:le},loadMore:{...rY.callbacks.loadMore,title:`Load More ${E}`,callback:pe},goToPage:{...rY.callbacks.goToPage,title:`Go To Page ${E}`,callback:({page:e})=>fe(Number(e)||1)}};return P&&(e.writeRecord={...rY.callbacks.writeRecord,title:`Write Record ${E}`,callback:be}),e},[E,le,pe,fe,P,be]),xe=S(()=>Q?{runtime:{sources:{[Q]:ge}}}:nc,[ge,Q]);/* @__PURE__ */
|
|
84
84
|
return M(qb,{ref:e,tag:V||T?.length?c:"div",className:Ja("plitzi-component__api-container",t),interactionTriggers:rY.triggers,interactionCallbacks:ye,children:(!ie||p)&&/* @__PURE__ */M(Tn,{inherit:"live",name:`Api:${O}`,value:xe,children:n})})}),hY=Object.assign(uY,rY),fY=[500,1e3,2e3,5e3,1e4],pY=e=>"object"==typeof e&&!!e&&"connection"in e&&"string"==typeof e.connection&&"refused"in e&&Array.isArray(e.refused),mY=e=>"object"==typeof e&&!!e&&"topic"in e&&"string"==typeof e.topic&&"type"in e&&"string"==typeof e.type,gY=e=>{let t="message",n=[];for(let r of e.split("\n"))r.startsWith("event: ")?t=r.slice(7):r.startsWith("data: ")&&n.push(r.slice(6));if(n.length)try{return{event:t,data:JSON.parse(n.join("\n"))}}catch{return}},vY=/* @__PURE__ */new Map,bY=/* @__PURE__ */new WeakMap;na();var yY=(e,{grant:t,presence:n,onMessage:r,onJoin:i,onLeave:a}={})=>{let[o]=rr("realtime.endpoint"),[s]=rr("realtime.transport"),l=S(()=>o&&typeof window<"u"?((e,t="sse")=>{let n=`${t} ${e}`,r=vY.get(n);if(r)return r;let i=((e,{transport:t="sse",fetchImpl:n=fetch,WebSocketImpl:r=globalThis.WebSocket}={})=>{let i,a,o,s=/* @__PURE__ */new Map,l=/* @__PURE__ */new Map,c=/* @__PURE__ */new Set,d="idle",u=/* @__PURE__ */new Map,h=0,f="websocket"===t&&"function"==typeof r,p=e=>{d=e,c.forEach(t=>t(e))},m=()=>[...s.keys()].sort().join(","),g=e=>{"$revoked"===e.type&&"server"===e.from&&u.set(e.topic,"revoked"),s.get(e.topic)?.forEach(t=>t(e))},v=(e,t)=>{e.me=t.connection,u=new Map(t.refused.map(e=>[e.topic,e.reason])),h=0,p("open")},b=e=>{if(i!==e)return;p("connecting");let t=fY[Math.min(h,fY.length-1)];h+=1,o=setTimeout(w,t)},y=(t,r)=>{let a,o=new AbortController,s={topics:t,transport:"sse",close:()=>o.abort(),publish:async(t,r,o)=>{if(!a)return!1;let l=await n(e,{method:"POST",headers:{"content-type":"application/json"},credentials:"same-origin",body:JSON.stringify({token:a,topic:t,type:r,data:o})}).catch(()=>{});return 401===l?.status&&i===s&&w(),l?.ok??!1}};return n(`${e}?${r}`,{headers:{accept:"text/event-stream"},credentials:"same-origin",signal:o.signal}).then(async e=>{if(!e.ok)return u=new Map(t.split(",").map(t=>[t,`http_${e.status}`])),void p("closed");throw await(async e=>{let t=e.body?.getReader();if(!t)return;let n=new TextDecoder,r="";for(;;){let{done:e,value:i}=await t.read();if(e)return;r+=n.decode(i,{stream:!0});let o=r.indexOf("\n\n");for(;-1!==o;){let e=gY(r.slice(0,o));r=r.slice(o+2),o=r.indexOf("\n\n"),"ready"===e?.event&&pY(e.data)?(a=e.data.token,v(s,e.data)):"message"===e?.event&&mY(e.data)&&g(e.data)}}})(e),Error("The realtime stream ended")}).catch(()=>{o.signal.aborted||b(s)}),s},x=(t,n)=>{let a=new r(((e,t)=>{let n=new URL(`${e}?${t}`,globalThis.location.href);return n.protocol="https:"===n.protocol?"wss:":"ws:",n.href})(e,n)),o=/* @__PURE__ */new Map,s=0,l=!1,c=!1,d=()=>{o.forEach(e=>e(!1)),o.clear()},u={topics:t,transport:"websocket",close:()=>{c=!0,d(),a.close()},publish:(e,t,n)=>new Promise(r=>{if(a.readyState!==a.OPEN)return void r(!1);s+=1;let i=s,l=setTimeout(()=>{o.delete(i),r(!1)},5e3);o.set(i,e=>{clearTimeout(l),r(e)}),a.send(JSON.stringify({id:i,topic:e,type:t,data:n}))})};return a.onmessage=e=>{let t=(e=>{try{let t=JSON.parse(String(e));return"object"==typeof t&&t&&"event"in t&&"string"==typeof t.event?{event:t.event,data:"data"in t?t.data:void 0}:void 0}catch{return}})(e.data);"ready"===t?.event&&pY(t.data)?(l=!0,v(u,t.data)):"message"===t?.event&&mY(t.data)?g(t.data):"ack"===t?.event&&(e=>"object"==typeof e&&!!e&&"id"in e&&"number"==typeof e.id&&"ok"in e&&"boolean"==typeof e.ok)(t.data)&&(o.get(t.data.id)?.(t.data.ok),o.delete(t.data.id))},a.onclose=()=>{if(d(),!c&&i===u){if(!l)return f=!1,void w();b(u)}},u};function w(){i?.close(),i=void 0;let e=m();if(!e)return void p("idle");p("connecting");let t=(e=>{let t=e.split(",").flatMap(e=>l.get(e)??[]);return`topics=${encodeURIComponent(e)}${t.length?`&grants=${encodeURIComponent(t.join(","))}`:""}`})(e);i=f?x(e,t):y(e,t)}let k=(e=!1)=>{clearTimeout(a),clearTimeout(o),a=setTimeout(()=>{(e||i?.topics!==m())&&w()},30)},O=e=>"open"===d&&!0===i?.topics.split(",").includes(e),S={subscribe:(e,t)=>{let n=s.get(e)??/* @__PURE__ */new Set;return n.add(t),s.set(e,n),k(),()=>{n.delete(t),n.size||(s.delete(e),l.delete(e),k())}},grant:(e,t)=>{if(l.get(e)===t)return;t?l.set(e,t):l.delete(e);let n=O(e)&&!u.has(e);t&&s.has(e)&&!n&&k(!0)},publish:async(e,t,n)=>!(!(await(e=>O(e)?Promise.resolve(!0):new Promise(t=>{let n=setTimeout(()=>{r(),t(!1)},5e3),r=S.onStatus(i=>{("closed"===i||O(e))&&(clearTimeout(n),r(),t("closed"!==i))})}))(e))||!i)&&i.publish(e,t,n),onStatus:e=>(c.add(e),()=>c.delete(e)),get status(){return d},get me(){return i?.me},get transport(){return i?.transport??(f?"websocket":"sse")},refusal:e=>u.get(e)};return S})(e,{transport:t});return vY.set(n,i),i})(o,s):void 0,[o,s]),[c,d]=N(!1),[u,h]=N([]),f=z(void 0),p=z({onMessage:r,onJoin:i,onLeave:a});y(()=>{p.current={onMessage:r,onJoin:i,onLeave:a}}),y(()=>{l&&e&&t&&l.grant(e,t)},[l,e,t]),y(()=>{if(!l||!e)return;let t=((e,t,n)=>{let r=bY.get(e)??/* @__PURE__ */new Map;bY.set(e,r);let i=r.get(t)??((e,t,n)=>{let r,i=/* @__PURE__ */new Map,a=/* @__PURE__ */new Set,o=/* @__PURE__ */new Set,s=!1,l=()=>[...s&&e.me?[{from:e.me,state:r,me:!0}]:[],...[...i.values()].map(e=>e.member)],c=()=>{let e=l();o.forEach(t=>t.onChange(e))},d=e=>{let t=e.flatMap(e=>{let t=i.get(e);return i.delete(e),t?[t.member]:[]});if(t.length){c();for(let e of t)o.forEach(t=>t.onDepart?.(e))}},u=()=>{s&&e.publish(t,"$presence",r)},h=e.subscribe(t,t=>{if(t.from!==e.me){if("$presence"===t.type){let e={from:t.from,...t.user?{user:t.user}:{},state:t.data,me:!1},n=!i.has(t.from)&&a.delete(t.from);i.set(t.from,{member:e,heardAt:Date.now()}),c(),n&&o.forEach(t=>t.onArrive?.(e))}else"$leave"===t.type?(a.delete(t.from),d([t.from])):"$join"===t.type?(a.add(t.from),u()):"$revoked"===t.type&&"server"===t.from&&(i.clear(),a.clear(),c());o.forEach(e=>e.onMessage?.(t))}}),f=e.onStatus(e=>{"open"===e&&(u(),c())}),p=setInterval(()=>{u();let e=Date.now();d([...i].filter(([,t])=>e-t.heardAt>65e3).map(([e])=>e))},2e4);return{members:l,set:e=>{r=e,s=!0,u(),c()},listeners:o,teardown:()=>{clearInterval(p),f(),h(),n()}}})(e,t,()=>r.delete(t));r.set(t,i),i.listeners.add(n);let a=i.members();return a.length&&n.onChange(a),{set:i.set,members:i.members,stop:()=>{i.listeners.delete(n)&&!i.listeners.size&&i.teardown()}}})(l,e,{onChange:h,onMessage:e=>{"$revoked"===e.type&&"server"===e.from&&d(!1),p.current.onMessage?.(e)},onArrive:e=>p.current.onJoin?.(e),onDepart:e=>p.current.onLeave?.(e)});f.current=t,d("open"===l.status&&!l.refusal(e));let n=l.onStatus(t=>d("open"===t&&!l.refusal(e)));return()=>{n(),t.stop(),f.current=void 0,h([]),d(!1)}},[l,e]);let m=void 0===n?void 0:JSON.stringify(n);y(()=>{void 0!==m&&f.current?.set(JSON.parse(m))},[m,l,e]);let v=g((t,n)=>l&&e?l.publish(e,t,n):Promise.resolve(!1),[l,e]),b=g(e=>f.current?.set(e),[]);return{connected:c,me:c?l?.me:void 0,members:u,publish:v,setPresence:b}},xY={type:"channel",attributeValues:{subType:["","div","section","aside","main"]},sourceType:"channel",triggers:{onMessage:{action:"onMessage",title:"On Message",type:"trigger",params:{},preview:{type:"",data:"",from:"",user:"",at:""}},onJoin:{action:"onJoin",title:"On Join",type:"trigger",params:{},preview:{from:"",user:"",state:{}}},onLeave:{action:"onLeave",title:"On Leave",type:"trigger",params:{},preview:{from:"",user:"",state:{}}}},callbacks:{publish:{action:"publish",title:"Publish",type:"callback",preview:{},params:{type:{label:"Type",defaultValue:"",type:"text"},data:{label:"Data (JSON or a template)",defaultValue:"",type:"text"}}},setPresence:{action:"setPresence",title:"Set Presence",type:"callback",preview:{},params:{data:{label:"State (JSON or a template)",defaultValue:"",type:"text"}}}},content:{attributes:{topic:"",grant:"",keep:20,subType:""},definition:{label:"Channel",type:"channel",description:"A realtime channel: every page on the same `topic` hears what any of them publishes, within milliseconds. The topic must match a channel the space declares in its settings (`channels`), e.g. `board:{{ id }}` under `board:{id}`. A topic of a private channel (`grant: true`) opens only with `grant`, bound to the grant the action that let this visitor in returned (its `realtime.grant` step). ITS DESCENDANTS bind to its source `channel_<id>`: `connected`, `members` (with the state each announced), `messages` (the last `keep`) and `last`. It fires `onMessage`; `onJoin` when somebody who came after this page has announced who they are, and `onLeave` when somebody goes — each with `from`, `user` and the `state` they announced; and answers `publish({ type, data })` and `setPresence({ data })`; `presence` is the state this page announces (a name, a colour). Closed in the builder and anywhere without a server.",items:[],bindings:{},styleSelectors:{base:""},initialState:{visibility:!0}},builder:{canDelete:!0,canSelect:!0,canDragDrop:!0,canMove:!0,canTemplate:!0,itemsAllowed:[],itemsNotAllowed:[]},market:{category:"provider",owner:"Plitzi",verified:!0,license:"MIT",website:"https://plitzi.com",backgroundColor:"#4422ee",icon:"fa-solid fa-tower-broadcast"},defaultStyle:{name:"Channel",displayMode:"desktop",style:{base:{default:{}}},subTypes:{}},settings:{}}};Aj(),Hs(),Rw(),Iw(),ta(),zc(),fo(),Mb(),Ib();var wY=e=>{if("string"!=typeof e)return e;try{return JSON.parse(e)}catch{return e}},kY=/* @__PURE__ */new Set(["$presence","$join","$leave"]),OY=rj(({ref:e,className:t,children:n,topic:r="",grant:i="",presence:a,keep:o=20,subType:s=""})=>{let{id:l,definition:{label:c="Channel"}}=Bo(),{settings:{previewMode:d},contexts:{InteractionsContext:u}}=Ub(),{interactionsManager:h}=m(u),f=Math.max(0,Number(o)||0),[p,v]=N([]),b=g(e=>{kY.has(e.type)||(f>0&&v(t=>[...t,e].slice(-f)),h.interactionTrigger(l,"onMessage",{...e}))},[l,h,f]),y=g(({from:e,user:t,state:n})=>{h.interactionTrigger(l,"onJoin",{from:e,user:t??"",state:n})},[l,h]),x=g(({from:e,user:t,state:n})=>{h.interactionTrigger(l,"onLeave",{from:e,user:t??"",state:n})},[l,h]),w=yY(d&&r?r:void 0,{grant:i||void 0,presence:void 0===a||""===a?void 0:wY(a),onMessage:b,onJoin:y,onLeave:x}),k=S(()=>({publish:{...xY.callbacks.publish,callback:({type:e,data:t})=>"string"==typeof e&&e?w.publish(e,wY(t)):Promise.resolve(!1)},setPresence:{...xY.callbacks.setPresence,callback:({data:e})=>w.setPresence(wY(e))}}),[w]),O=vb(xY.sourceType,l),C=S(()=>({connected:w.connected,me:w.me??"",members:w.members,messages:p,last:p.at(-1)??null}),[w.connected,w.me,w.members,p]),z=g(()=>dY(C),[C]);bb({id:l,source:O,name:c||`Channel - ${l}`,fields:z});let E=S(()=>O?{runtime:{sources:{[O]:C}}}:nc,[C,O]);/* @__PURE__ */
|
|
85
85
|
return M(qb,{ref:e,tag:s,className:Ja("plitzi-component__channel",t),interactionTriggers:xY.triggers,interactionCallbacks:k,children:/* @__PURE__ */M(Tn,{inherit:"live",name:`Channel:${l}`,value:E,children:n})})}),SY=Object.assign(OY,xY),CY=["div","header","footer","nav","main","section","article","aside","figure"];Aj(),Rw(),fo();var zY=rj(({ref:e,className:t="",subType:n="div",label:r="",decorative:i=!1,children:a})=>{let o=!i&&r&&CY.includes(n)?{"aria-label":r,..."div"===n?{role:"group"}:{}}:{},s=i?{"aria-hidden":!0}:{};/* @__PURE__ */
|
|
86
86
|
return M(qb,{ref:e,tag:n,className:Ja(`plitzi-component__container plitzi-component__container-${n}`,t),...o,...s,children:a})}),NY=Object.assign(zY,{type:"container",attributeValues:{subType:["div","header","footer","nav","main","section","article","aside","address","figure","dl","dt","dd","li","h1","h2","h3","h4","h5","h6"]},content:{attributes:{subType:"div"},definition:{label:"Container",type:"container",description:"Generic layout box (a div). The primary building block for structure: groups and positions child elements with flex/grid. Reach for it whenever you need to wrap or arrange other elements.",items:[],bindings:{},styleSelectors:{base:""},initialState:{visibility:!0}},builder:{canDelete:!0,canSelect:!0,canDragDrop:!0,canMove:!0,canTemplate:!0,itemsAllowed:[],itemsNotAllowed:[]},market:{category:"structure",owner:"Plitzi",verified:!0,license:"MIT",website:"https://plitzi.com",backgroundColor:"#4422ee",icon:"fa-regular fa-square"},defaultStyle:{name:"Container",displayMode:"desktop",style:{base:{default:{}}},subTypes:{}},settings:{}}}),EY={type:"dialogContainer",sourceType:"dialogContainer",triggers:{onDialogAccept:{action:"onDialogAccept",title:"On Dialog Accept",type:"trigger",params:{metadata:{type:"text",defaultValue:""}},preview:{metadata:""}},onDialogReject:{action:"onDialogReject",title:"On Dialog Reject",type:"trigger",params:{metadata:{type:"text",defaultValue:""}},preview:{metadata:""}},onDialogOpen:{action:"onDialogOpen",title:"On Dialog Open",type:"trigger",params:{metadata:{type:"text",defaultValue:""}},preview:{metadata:""}},onDialogClose:{action:"onDialogClose",title:"On Dialog Close",type:"trigger",params:{metadata:{type:"text",defaultValue:""}},preview:{metadata:""}}},callbacks:{openDialog:{action:"openDialog",title:"Open Dialog",type:"callback",params:{metadata:{type:"text",defaultValue:""}},preview:{metadata:""}},closeDialog:{action:"closeDialog",title:"Close Dialog",type:"callback",preview:{},params:{}}},content:{attributes:{headerLabel:"Dialog Header",acceptButtonLabel:"Accept",rejectButtonLabel:"Cancel",autoHideAfterClick:!0},definition:{label:"Dialog Container",type:"dialogContainer",description:"A native <dialog> container shown or hidden through interactions (e.g. an onClick open/close).",items:[],bindings:{},loadStrategy:"lazy",styleSelectors:{base:"",backgroundContainer:"",rootContainer:"",headerContainer:"",headerTitle:"",headerCloseButton:"",bodyContainer:"",footerContainer:"",acceptButton:"",cancelButton:""},initialState:{visibility:!0}},builder:{canDelete:!0,canSelect:!0,canDragDrop:!0,canMove:!0,canTemplate:!0,itemsAllowed:[],itemsNotAllowed:[]},market:{category:"structure",owner:"Plitzi",verified:!0,license:"MIT",website:"https://plitzi.com",backgroundColor:"#4422ee",icon:"fa-regular fa-clone"},defaultStyle:{name:"Dialog Container",displayMode:"desktop",style:{base:{default:{position:"absolute",top:"0",bottom:"0",left:"0",right:"0"}},backgroundContainer:{default:{height:"100%",width:"100%",left:"0",top:"0",position:"absolute","background-color":"black",opacity:"0.5"}},rootContainer:{default:{display:"flex","flex-direction":"column",position:"absolute",top:"50%",left:"50%",width:"500px",height:"300px","background-color":"light-dark(white, oklch(0.21 0.006 285.885))",transform:"translate3d(-50%, -50%, 0px)","padding-top":"20px","padding-bottom":"20px","padding-left":"20px","padding-right":"20px","border-top-left-radius":"8px","border-top-right-radius":"8px","border-bottom-left-radius":"8px","border-bottom-right-radius":"8px"}},headerContainer:{default:{display:"flex","align-items":"center","justify-content":"space-between"}},headerTitle:{default:{"font-size":"20px","font-weight":"500","line-height":"1.2",color:"#333"}},headerCloseButton:{default:{height:"20px",width:"20px",padding:"4px",display:"flex","justify-content":"center","align-items":"center",cursor:"pointer"}},bodyContainer:{default:{display:"flex","flex-direction":"column","flex-grow":"1","flex-basis":"0"}},footerContainer:{default:{display:"flex","justify-content":"flex-end","margin-top":"8px"}}},subTypes:{}},settings:{}},initialItems:["container"]},AY=({panelRef:e,open:t,onClose:n})=>{let r=x(n);y(()=>{let n=e.current;if(!t||!n)return;let i=n.ownerDocument.activeElement;n.contains(i)||n.focus({preventScroll:!0});let a=e=>{if(e.defaultPrevented)return;if("Escape"===e.key)return e.preventDefault(),void r();if("Tab"!==e.key)return;let t=(e=>[...e.querySelectorAll('a[href], button:not([disabled]), input:not([disabled]):not([type="hidden"]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"]), [contenteditable="true"]')].filter(e=>"function"!=typeof e.checkVisibility||e.checkVisibility()))(n);if(0===t.length)return e.preventDefault(),void n.focus({preventScroll:!0});let i=t[0],a=t[t.length-1],o=n.ownerDocument.activeElement;!e.shiftKey||o!==i&&o!==n&&n.contains(o)?!e.shiftKey&&(o===a||!n.contains(o))&&(e.preventDefault(),i.focus()):(e.preventDefault(),a.focus())},o=n.ownerDocument.defaultView;return o?.addEventListener("keydown",a),()=>{o?.removeEventListener("keydown",a),i instanceof HTMLElement&&i.isConnected&&i.focus({preventScroll:!0})}},[t,e])};Aj(),Hs(),Rw(),Iw(),ta(),zc(),fo(),Mb(),Ib();var TY=rj(({ref:e,className:t="",children:n,headerLabel:r="Dialog Header",acceptButtonLabel:i="Accept",acceptButtonLabelLoading:a="Loading...",rejectButtonLabel:o="Cancel",autoHideAfterClick:s=!0})=>{let{id:l,rootId:c,visible:d,setElementState:u,definition:{styleSelectors:h,label:f="Dialog"},elementState:p}=Bo(),v=vb(EY.sourceType,l),{settings:{previewMode:b},contexts:{InteractionsContext:x}}=Ub(),{interactionsManager:w}=m(x),[k,O]=N({}),[C,E]=N(!1),A=z(null),T=`${c}_${l}_title`,P=g(e=>{let{metadata:t}=e;if(t&&"object"==typeof t)O(t);else if("string"==typeof t)try{O(JSON.parse(t))}catch{O({content:t})}else O("boolean"==typeof t||"number"==typeof t?{content:t}:{});u(e=>({...e,visibility:!0}))},[u,O]),R=g(()=>{w.interactionTrigger(l,"onDialogClose",{metadata:k}),O({}),u(e=>({...e,visibility:!1}))},[w,u,O,k,l]),D=g(()=>{s&&(w.interactionTrigger(l,"onDialogClose",{metadata:k}),O({}),u(e=>({...e,visibility:!1})))},[w,s,u,O,k,l]),L=g(async()=>{E(!0),await w.interactionTrigger(l,"onDialogAccept",{metadata:k}),E(!1),u(e=>({...e,visibility:!1}))},[w,l,k,u]),j=g(async()=>{E(!0),await w.interactionTrigger(l,"onDialogReject",{metadata:k}),E(!1),u(e=>({...e,visibility:!1}))},[w,l,k,u]),Q=S(()=>({openDialog:{...EY.callbacks.openDialog,title:`Open ${f}`,callback:P},closeDialog:{...EY.callbacks.closeDialog,title:`Close ${f}`,callback:R}}),[R,P,f]);AY({panelRef:A,open:!!b&&d,onClose:()=>{j()}}),y(()=>{!1!==p.visibility&&w.interactionTrigger(l,"onDialogOpen",{metadata:k})},[l,w,k,p.visibility]);let V=g(()=>dY(k),[k]);bb({id:l,source:v,name:f||`Dialog - ${l}`,fields:V});let F=S(()=>v?{runtime:{sources:{[v]:k}}}:nc,[v,k]);/* @__PURE__ */
|
|
@@ -2453,5 +2453,5 @@ return M(uw,{value:_,children:e})};Ws(),wj(),zZe(),gk(),vk(),CD(),na();var Ytt=(
|
|
|
2453
2453
|
return M(yM,{value:W,children:e})},Gtt=l({});Gtt.displayName="StyleContext",wj(),gk(),na(),lk();var $tt=({children:e,style:t,includeSubscriptions:n=!0,middlewares:r=[]})=>{let{subscriptionManager:i}=m(bw),[a,o]=W9e(Btt,t??Sx,r);ir("style",a);let s=g((e,t=!1)=>o({type:Ftt.STYLE_UPDATE,style:e,fromSubscriptions:t}),[o]),l=g((e,t,n,r,i,a,s=!1)=>{t||=Qfe(n),o({type:Ftt.STYLE_ADD_SELECTOR,displayMode:e,selector:t,selectorType:n,path:r,value:i,params:a,fromSubscriptions:s})},[o]),c=g((e,t,n,r,i,a=!1)=>o({type:Ftt.STYLE_UPDATE_SELECTOR,displayMode:e,selector:t,path:n,value:r,params:i,fromSubscriptions:a}),[o]),d=g((e,t,n=!1)=>o({type:Ftt.STYLE_REMOVE_SELECTOR,displayMode:e,selector:t,fromSubscriptions:n}),[o]),u=g((e,t,n=!1)=>o({type:Ftt.STYLE_REMOVE_SELECTORS,displayMode:e,selectors:t,fromSubscriptions:n}),[o]),h=g((e,t,n,r,i,a=!1)=>{o({type:Ftt.STYLE_ADD_SELECTOR_VARIABLE,displayMode:e,selector:t,category:n,name:r,value:i,fromSubscriptions:a})},[o]),f=g((e,t,n,r,i,a=!1)=>{o({type:Ftt.STYLE_UPDATE_SELECTOR_VARIABLE,displayMode:e,selector:t,category:n,name:r,value:i,fromSubscriptions:a})},[o]),p=g((e,t,n,r,i=!1)=>{o({type:Ftt.STYLE_REMOVE_SELECTOR_VARIABLE,displayMode:e,selector:t,category:n,name:r,fromSubscriptions:i})},[o]),v=g((e,t,n,r=!1)=>o({type:Ftt.STYLE_ADD_VARIABLE,category:e,name:t,value:n,fromSubscriptions:r}),[o]),b=g((e,t,n,r=!1)=>o({type:Ftt.STYLE_UPDATE_VARIABLE,category:e,name:t,value:n,fromSubscriptions:r}),[o]),x=g((e,t,n=!1)=>o({type:Ftt.STYLE_REMOVE_VARIABLE,category:e,name:t,fromSubscriptions:n}),[o]),w=g((e,t=!1)=>o({type:Ftt.STYLE_ADD_FONT,font:e,fromSubscriptions:t}),[o]),k=g((e,t,n=!1)=>o({type:Ftt.STYLE_UPDATE_FONT,family:e,font:t,fromSubscriptions:n}),[o]),O=g((e,t=!1)=>o({type:Ftt.STYLE_REMOVE_FONT,family:e,fromSubscriptions:t}),[o]),C=g((e,t=!1)=>o({type:Ftt.STYLE_ADD_TEMPLATE,platform:e,fromSubscriptions:t}),[o]),z=g((e,t,n=!1)=>{o({type:Ftt.STYLE_UPDATE_SETTINGS,path:e,value:t,fromSubscriptions:n})},[o]);y(()=>{if(n)return i.subscribe("STYLE_UPDATED",e=>s(e,!0)),i.subscribe("STYLE_ADD_SELECTOR",({displayMode:e,selector:t,type:n,path:r,style:i,params:a})=>l(e,t,n,r,i,a,!0)),i.subscribe("STYLE_UPDATE_SELECTOR",({displayMode:e,selector:t,path:n,style:r,params:i})=>c(e,t,n,r,i,!0)),i.subscribe("STYLE_REMOVE_SELECTOR",({displayMode:e,selector:t})=>d(e,t,!0)),i.subscribe("STYLE_REMOVE_SELECTORS",({displayMode:e,selectors:t})=>u(e,t,!0)),i.subscribe("STYLE_ADD_SELECTOR_VARIABLE",({displayMode:e,selector:t,category:n,name:r,value:i})=>h(e,t,n,r,i,!0)),i.subscribe("STYLE_UPDATE_SELECTOR_VARIABLE",({displayMode:e,selector:t,category:n,name:r,value:i})=>f(e,t,n,r,i,!0)),i.subscribe("STYLE_REMOVE_SELECTOR_VARIABLE",({displayMode:e,selector:t,category:n,name:r})=>p(e,t,n,r,!0)),i.subscribe("STYLE_ADD_VARIABLE",({category:e,name:t,value:n})=>v(e,t,n,!0)),i.subscribe("STYLE_UPDATE_VARIABLE",({category:e,name:t,value:n})=>b(e,t,n,!0)),i.subscribe("STYLE_REMOVE_VARIABLE",({category:e,name:t})=>x(e,t,!0)),i.subscribe("STYLE_ADD_FONT",({font:e})=>w(e,!0)),i.subscribe("STYLE_UPDATE_FONT",({family:e,font:t})=>k(e,t,!0)),i.subscribe("STYLE_REMOVE_FONT",({family:e})=>O(e,!0)),i.subscribe("STYLE_UPDATE_SETTINGS",({path:e,value:t})=>z(e,t,!0)),()=>i.unsubscribe(["STYLE_UPDATED","STYLE_ADD_SELECTOR","STYLE_UPDATE_SELECTOR","STYLE_REMOVE_SELECTOR","STYLE_REMOVE_SELECTORS","STYLE_ADD_SELECTOR_VARIABLE","STYLE_UPDATE_SELECTOR_VARIABLE","STYLE_REMOVE_SELECTOR_VARIABLE","STYLE_ADD_VARIABLE","STYLE_UPDATE_VARIABLE","STYLE_REMOVE_VARIABLE","STYLE_ADD_FONT","STYLE_UPDATE_FONT","STYLE_REMOVE_FONT","STYLE_UPDATE_SETTINGS"],!0)},[i,n,s,l,c,d,u,h,f,p,v,b,x,w,k,O,z]);let N=S(()=>({styleUpdate:s,styleAddSelector:l,styleUpdateSelector:c,styleRemoveSelector:d,styleRemoveSelectors:u,styleAddSelectorVariable:h,styleUpdateSelectorVariable:f,styleRemoveSelectorVariable:p,styleAddVariable:v,styleUpdateVariable:b,styleRemoveVariable:x,styleAddFont:w,styleUpdateFont:k,styleRemoveFont:O,styleAddTemplate:C,styleUpdateSettings:z}),[s,l,c,d,u,h,f,p,v,b,x,w,k,O,C,z]);return SL("main",N),/* @__PURE__ */M(Gtt,{value:N,children:e})};zZe(),vk();var Ktt=({children:e,includeSubscriptions:t=!0})=>{const{style:n}=m(yw),{enqueueMiddleware:r}=m(Ztt),{undoableMiddleware:i}=m(nNe),a=S(()=>[{middleware:i},{middleware:r,filterCallback:ex}],[r,i]);/* @__PURE__ */
|
|
2454
2454
|
return M($tt,{style:n,middlewares:a,includeSubscriptions:t,children:e})};Ws();var Jtt={past:[],future:[],canUndo:!1,canRedo:!1},ent=(e=Jtt,t)=>{switch(t.type){case"undoableAddUndo":{const n=Va(t,["type"]),r=[...e.past,n];return{past:r,future:[],canUndo:r.length>0,canRedo:!1}}case"undoableUndo":case"undoableRedo":return{past:t.past,future:t.future,canUndo:t.past.length>0,canRedo:t.future.length>0};case"undoableClearHistory":return 0===e.past.length&&0===e.future.length?e:Jtt;default:return e}};zZe();var tnt=({children:e})=>{const[t,n]=C(ent,Jtt),r=z(t);r.current=t;const i=g((e,t=!0)=>{switch(e.action.type){case Stt[e.action.type]:{const n=e;return void n.dispatch({type:Stt.SCHEMA_UPDATE,schema:t?n.prevState:n.nextState})}case Ftt[e.action.type]:{const n=e;return void n.dispatch({type:Ftt.STYLE_UPDATE,style:t?n.prevState:n.nextState})}case Utt[e.action.type]:{const n=e,r=n.prevState.segmentId;return void n.dispatch({type:Utt.SEGMENTS_UPDATE,segment:t?n.prevState[r]:n.nextState[r],segmentId:r})}default:return}},[]),a=g((e,t,r,i)=>{n({type:"undoableAddUndo",prevState:e,action:t,nextState:r,dispatch:i})},[n]),o=g(()=>{const{canUndo:e,past:t,future:a}=r.current;if(e){const e=t.pop();if(!e)return;const r=[...a,e];i(e),n({type:"undoableUndo",past:t,future:r})}},[n,i]),s=g(()=>{const{canRedo:e,past:t,future:a}=r.current;if(e){const e=a.pop();if(!e)return;const r=[...t,e];i(e,!1),n({type:"undoableRedo",past:r,future:a})}},[n,i]),l=g(()=>{n({type:"undoableClearHistory"})},[n]),c=g((e,t,n,r)=>{ex(r)?a(e,r,t,n):r.fromSubscriptions&&l()},[a,l]),{canUndo:d,canRedo:u}=t,h=S(()=>({canUndo:d,canRedo:u,dispatchUndoable:n,undoableAddUndo:a,undoableUndo:o,undoableRedo:s,undoableClearHistory:l,undoableMiddleware:c}),[d,u,n,a,o,s,l,c]);/* @__PURE__ */
|
|
2455
2455
|
return M(nNe,{value:h,children:e})},nnt=({children:e,instanceId:t,webKey:n="",webId:r,environment:i="main",userKey:a="",server:o,includeSubscriptions:s=!0,includeRealTime:l=!0,debugMode:c=!1})=>/* @__PURE__ */M(btt,{instanceId:t,webKey:n,webId:r,environment:i,userKey:a,server:o,children:/* @__PURE__ */M(xtt,{includeSubscriptions:s,includeRealTime:l,children:/* @__PURE__ */M(Xtt,{includeSubscriptions:s,children:/* @__PURE__ */M(tnt,{children:/* @__PURE__ */M(ize,{debugMode:c,children:/* @__PURE__ */M(Ytt,{children:/* @__PURE__ */M(htt,{children:/* @__PURE__ */M(dtt,{children:/* @__PURE__ */M(ktt,{children:/* @__PURE__ */M(kse,{children:/* @__PURE__ */M(Htt,{includeSubscriptions:s,children:/* @__PURE__ */M(Ktt,{includeSubscriptions:s,children:/* @__PURE__ */M(Ize,{server:o,children:/* @__PURE__ */M(ftt,{children:e})})})})})})})})})})})})})});Whe(),na();var rnt=({webKey:e="",webId:t,userKey:n="",instanceId:r="",server:i,environment:a="main",includeSubscriptions:o=!0,includeRealTime:s=!0,externalStyle:l="",debugMode:c=!1,functionsWorkerUrl:d=""})=>{const[u,h]=N(!1),[f,p]=_he("builder-state.app.displayBorderComponents","black"),[m,g]=N(1),[v,b]=N("desktop"),[y,x]=N(!1);hr("displayMode",v),hr(["render.previewMode","render.debugMode","render.environment"],[u,c,a]);const w=S(()=>({previewMode:u,debugMode:c,setPreviewMode:h,displayBorderComponents:f,setDisplayBorderComponents:p,zoom:m,setZoom:g,displayMode:v,setDisplayMode:b,mobilePreview:y,setMobilePreview:x,functionsWorkerUrl:d}),[u,c,h,f,p,m,g,v,b,y,x,d]),k=S(()=>/* @__PURE__ */M(nnt,{instanceId:r,webKey:e,webId:t,environment:a,userKey:n,server:i,includeSubscriptions:o,includeRealTime:s,debugMode:c,children:/* @__PURE__ */M(HCe,{children:/* @__PURE__ */M(qze,{children:/* @__PURE__ */M(ise,{renderLeftPopup:!1,renderRightPopup:!1,renderFloatingPopup:!u,children:/* @__PURE__ */M(YXe,{innerClassName:"flex",enabled:c,instanceId:r,children:/* @__PURE__ */M(ott,{externalStyle:l})})})})})}),[r,e,t,a,n,i,o,s,u,c,l]);/* @__PURE__ */
|
|
2456
|
-
return M(ase,{value:w,children:k})},int=e=>{const t=new Headers;return e.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach(e=>{const n=e.split(":"),r=n.shift()?.trim();if(r){const e=n.join(":").trim();t.append(r,e)}}),t},ant=(e,t)=>t?.customFetch?((e,t)=>new Promise((n,r)=>{const i=new XMLHttpRequest;i.onload=()=>{const e={url:"",status:i.status,statusText:i.statusText,headers:int(i.getAllResponseHeaders()||"")};e.url="responseURL"in i?i.responseURL:e.headers.get("X-Request-URL")??"";const t=i.response??i.responseText;n(new Response(t,e))},i.onerror=e=>{r(/* @__PURE__ */new TypeError("Network request failed")),t?.onError&&t.onError(e)},i.ontimeout=()=>{r(/* @__PURE__ */new TypeError("Network request failed"))},i.open(t?.method??"GET",e,!0),t?.headers&&Object.keys(t.headers).forEach(e=>{const n=t.headers;n[e]&&i.setRequestHeader(e,n[e])}),t?.onProgress&&(i.upload.onprogress=t.onProgress),t?.onAbortPossible&&t.onAbortPossible(()=>{i.abort()}),t?.body&&i.send(t.body)}))(e,t):fetch(e,t),ont={name:"@plitzi/plitzi-builder",version:"0.37.7",homepage:"./",license:"AGPL-3.0",files:["dist"],repository:{type:"https",url:"https://github.com/plitzi/plitzi-workspace.git"},type:"module",main:"dist/plitzi-builder.js",module:"dist/plitzi-builder.js",types:"dist/index.d.ts",exports:{".":{types:"./dist/index.d.ts",import:"./dist/plitzi-builder.js",default:"./dist/plitzi-builder.js"},"./plitzi-builder.css":"./dist/plitzi-builder.css","./plitzi-builder-vendor.js":"./dist/plitzi-builder-vendor.js","./plitzi-builder-dev-vendor.js":"./dist/plitzi-builder-dev-vendor.js","./plitzi-builder-dev-vendor.js.map":"./dist/plitzi-builder-dev-vendor.js.map"},dependencies:{"@apollo/client":"^4.3.1","@codemirror/autocomplete":"^6","@codemirror/lint":"^6","@codemirror/state":"^6","@fortawesome/fontawesome-free":"^7.3.1","@plitzi/nexus":"^1.3.1","@plitzi/plitzi-sdk":"workspace:*","@plitzi/plitzi-ui":"^1.6.24","@plitzi/sdk-auth":"workspace:*","@plitzi/sdk-authoring":"workspace:*","@plitzi/sdk-dev-tools":"workspace:*","@plitzi/sdk-elements":"workspace:*","@plitzi/sdk-event-bridge":"workspace:*","@plitzi/sdk-interactions":"workspace:*","@plitzi/sdk-navigation":"workspace:*","@plitzi/sdk-plugins":"workspace:*","@plitzi/sdk-schema":"workspace:*","@plitzi/sdk-shared":"workspace:*","@plitzi/sdk-style":"workspace:*","@plitzi/sdk-variables":"workspace:*","@tanstack/react-virtual":"^3.14.13","@typescript/vfs":"^1.6.5","@valtown/codemirror-ts":"^2.3.1","@xyflow/react":"^12.11.6","apollo-upload-client":"^20.0.0",clsx:"^2.1.1",comlink:"^4.4.2",graphql:"^17.0.2","graphql-ws":"^6.2.2",immer:"^11.1.18",jszip:"^3.10.2","react-hook-form":"^7.88.0","react-router-dom":"^7.18.4",swr:"^2.5.1",uuid:"^14.0.2",zod:"^4.6.5"},peerDependencies:{react:"^19","react-dom":"^19"},devDependencies:{"@babel/compat-data":"^8.0.5","@babel/core":"^8.0.6","@babel/helper-builder-react-jsx-experimental":"^7.12.11","@babel/helper-validator-identifier":"^8.0.6","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-transform-private-methods":"^8.0.1","@babel/plugin-transform-runtime":"^8.0.6","@babel/polyfill":"^7.12.1","@babel/preset-env":"^8.0.6","@babel/preset-react":"^8.0.1","@plitzi/sdk-server":"workspace:*","@tailwindcss/postcss":"^4.3.3","css-loader":"^7.1.5",eslint:"^9.39.5","eslint-plugin-import":"^2.32.0","flow-bin":"^0.332.0",postcss:"^8.5.28","postcss-loader":"^8.2.1","postcss-scss":"^4.0.9",prettier:"^3.9.9","prop-types":"^15.8.1",react:"^19.3.0","react-dom":"^19.3.0","react-refresh":"^0.19.0","react-test-renderer":"^19.3.0",sass:"^1.105.0","sass-embedded":"^1.105.0","sass-loader":"^17.0.1",stylelint:"^17.15.0","stylelint-order":"^8.1.1","stylelint-scss":"^7.3.0",terser:"^5.51.2",typescript:"^6.0.3",vite:"^8.3.1","vite-plugin-dts":"^5.1.1","vite-plugin-ejs":"^2.0.0","vite-plugin-mkcert":"^2.1.0","vite-plugin-react":"^4.0.1",vitest:"^5.0.1"},scripts:{start:"vite dev --mode development",test:"vitest run","test:coverage":"",lint:"TIMING=1 eslint ./src","lint-style":'stylelint "**/*.scss" --custom-syntax postcss-scss',"lint-style:fix":'stylelint "**/*.scss" --custom-syntax postcss-scss --fix',typecheck:"tsc -p tsconfig.app.json --noEmit","build:dev":"tsc -p tsconfig.app.json --noEmit && vite build --mode development && vite build --config vite.functions-worker.config.ts --mode development","build:dev-watch":"tsc -p tsconfig.app.json --noEmit && vite build --mode development --watch","build:dev-gzip":"tsc -p tsconfig.app.json --noEmit && ONLY_GZIP=1 vite build --mode development","build:dev-analyze":"tsc -p tsconfig.app.json --noEmit && ONLY_ANALYZE=1 vite build --mode development","build:prod":"tsc -p tsconfig.app.json --noEmit && vite build && vite build --config vite.functions-worker.config.ts","build:prod-watch":"tsc -p tsconfig.app.json --noEmit && vite build --watch","build:prod-gzip":"tsc -p tsconfig.app.json --noEmit && ONLY_GZIP=1 vite build","build:prod-analyze":"tsc -p tsconfig.app.json --noEmit && ONLY_ANALYZE=1 vite build","build-vendor:dev":"vite build --config vite.vendor.config.ts --mode development","build-vendor:prod":"vite build --config vite.vendor.config.ts"},eslintConfig:{extends:"react-app"},browserslist:{production:[">0.2%","not dead","not op_mini all"],development:["last 1 chrome version","last 1 firefox version","last 1 safari version"]}};vv(),rb(),dme(),Uv(),Soe(),MLe(),xv(),dv(),pv(),Xv(),Ov(),Ab(),Jv(),Ev(),Pv(),Af(),Whe(),fo(),zb(),pn(),ta(),pj(),zc(),fj(),na(),Nj();var snt={Button:ug,FileUpload:aue,ContentEditable:eQ,Card:Woe,Form:Pue,Input:Ug,Switch:Cg,Checkbox:Jg,Select:kg,Select2:Yg,Heading:Lae,Flex:ig,ContainerResizable:goe,ContainerCollapsable:Kpe,Icon:lg,IconGroup:Xfe,Popup:nse,Sidebar:Roe,Tree:QLe,Accordion:voe,QueryBuilder:fb,Alert:Rae,Modal:xse,Text:LLe,Label:vg,TextArea:Vae,ContainerFrame:lse,KVInput:Hae,Markdown:GZ,MenuList:rpe,ContainerDraggable:Koe,Breadcrumb:wLe,CodeMirror:Pae,ErrorMessage:pg,ColorPicker:Ude,MetricInput:dpe,ContainerTabs:CLe,ContainerFloating:Lg,Badge:yLe},lnt=e=>{const{children:t,server:r,webKey:i="",includeSubscriptions:a=!0,userKey:o="",className:s="min-h-screen",debugMode:l=!1}=e,c=S(()=>function(e){if(!e)return 0;let t={};try{let n=e.split(".")[1],r=typeof window<"u"?window.atob(n):Buffer.from(n,"base64").toString();t=JSON.parse(r)}catch{return 0}return Na(t,"data.spaceId",0)}(i),[i]),[d,u]=_he(`web_${c}_state.instanceId`,"","sessionStorage"),[f,p]=_he("builder-state.debugMode",!1,"localStorage",l),m=S(()=>(e=>{const t={apiServer:"https://api.plitzi.com",ssrServer:"https://ssr.plitzi.com",basePath:"",host:"https://plitzi.com",serverUrl:"https://server.plitzi.com",fontsBaseUrl:"",websocketServer:"wss://server.plitzi.com",subscriptionServer:"wss://server.plitzi.com/subscriptions",location:void 0,...e};return"/"===t.basePath?t.basePath="":t.basePath&&(t.basePath=t.basePath.replaceAll("//","/")),t})(r),[r]),v=g(e=>{e.shiftKey&&"F12"===e.key&&p(e=>!e)},[p]);y(()=>{l&&window.addEventListener("keydown",v)},[v,l]),y(()=>{},[]);let b=!1;try{eCe(),b=!0}catch{b=!1}y(()=>{const e=db();u(e)},[c,u]);const x=g((e,t,n,r)=>{if(!e)return;const i=new bDe,a=new GLe({uri:e.serverUrl,fetch:ant}),s=new fLe(e=>{const n={...e.headers??{},"plitzi-instance-id":r,"plitzi-access-token":o,"sdk-version":ont.version,"Apollo-Require-Preflight":"true"};return t&&(n.authorization=`Bearer ${t}`),{headers:n}}),l=xDe.from([sje(e.serverUrl),cje(),s,a]);if(!n||!e.subscriptionServer)return new eLe({link:l,cache:i});const c=function(e){const{url:t,connectionParams:n,lazy:r=!0,onNonLazyError:i=console.error,lazyCloseTimeout:a=0,keepAlive:o=0,disablePong:s,connectionAckWaitTimeout:l=0,retryAttempts:c=5,retryWait:d=async function(e){const t=Math.pow(2,e);await new Promise(e=>setTimeout(e,1e3*t+Math.floor(2700*Math.random()+300)))},shouldRetry:u=aje,on:h,webSocketImpl:f,generateID:p=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)})},jsonMessageReplacer:m,jsonMessageReviver:g}=e;let v;if(f){if(!("function"==typeof(b=f)&&"constructor"in b&&"CLOSED"in b&&"CLOSING"in b&&"CONNECTING"in b&&"OPEN"in b))throw new Error("Invalid WebSocket implementation provided");v=f}else"undefined"!=typeof WebSocket?v=WebSocket:"undefined"!=typeof global?v=global.WebSocket||global.MozWebSocket:"undefined"!=typeof window&&(v=window.WebSocket||window.MozWebSocket);var b;if(!v)throw new Error("WebSocket implementation missing; on Node you can `import WebSocket from 'ws';` and pass `webSocketImpl: WebSocket` to `createClient`");const y=v,x=(()=>{const e=/* @__PURE__ */(()=>{const e={};return{on:(t,n)=>(e[t]=n,()=>{delete e[t]}),emit(t){"id"in t&&e[t.id]?.(t)}}})(),t={connecting:h?.connecting?[h.connecting]:[],opened:h?.opened?[h.opened]:[],connected:h?.connected?[h.connected]:[],ping:h?.ping?[h.ping]:[],pong:h?.pong?[h.pong]:[],message:h?.message?[e.emit,h.message]:[e.emit],closed:h?.closed?[h.closed]:[],error:h?.error?[h.error]:[]};return{onMessage:e.on,on(e,n){const r=t[e];return r.push(n),()=>{const e=r.indexOf(n);e>-1&&r.splice(e,1)}},emit(e,...n){for(const r of[...t[e]])r(...n)}}})();function w(e){const t=[x.on("error",n=>{t.forEach(e=>e()),e(n)}),x.on("closed",n=>{t.forEach(e=>e()),e(n)})]}let k,O,S=0,C=!1,z=0,N=!1;async function E(){clearTimeout(O);const[e,r]=await(k??(k=new Promise((e,r)=>(async()=>{if(C){if(await d(z),!S)return k=void 0,r({code:1e3,reason:"All Subscriptions Gone"});z++}x.emit("connecting",C);const i=new y("function"==typeof t?await t():t,"graphql-transport-ws");let a,c;function u(){isFinite(o)&&o>0&&(clearTimeout(c),c=setTimeout(()=>{i.readyState===y.OPEN&&(i.send(rje({type:tje.Ping})),x.emit("ping",!1,void 0))},o))}w(e=>{k=void 0,clearTimeout(a),clearTimeout(c),r(e),e instanceof ije&&(i.close(4499,"Terminated"),i.onerror=null,i.onclose=null)}),i.onerror=e=>x.emit("error",e),i.onclose=e=>x.emit("closed",e),i.onopen=async()=>{try{x.emit("opened",i);const e="function"==typeof n?await n():n;if(i.readyState!==y.OPEN)return;i.send(rje(e?{type:tje.ConnectionInit,payload:e}:{type:tje.ConnectionInit},m)),isFinite(l)&&l>0&&(a=setTimeout(()=>{i.close(eje.ConnectionAcknowledgementTimeout,"Connection acknowledgement timeout")},l)),u()}catch(e){x.emit("error",e),i.close(eje.InternalClientError,JLe(e instanceof Error?e.message:String(e),"Internal client error"))}};let h=!1;i.onmessage=({data:t})=>{try{const n=function(e,t){return nje("string"==typeof e?JSON.parse(e,t):e)}(t,g);if(x.emit("message",n),"ping"===n.type||"pong"===n.type)return x.emit(n.type,!0,n.payload),void("pong"===n.type?u():s||(i.send(rje(n.payload?{type:tje.Pong,payload:n.payload}:{type:tje.Pong})),x.emit("pong",!1,n.payload)));if(h)return;if(n.type!==tje.ConnectionAck)throw new Error(`First message cannot be of type ${n.type}`);clearTimeout(a),h=!0,x.emit("connected",i,n.payload,C),C=!1,z=0,e([i,new Promise((e,t)=>w(t))])}catch(n){i.onmessage=null,x.emit("error",n),i.close(eje.BadResponse,JLe(n instanceof Error?n.message:String(n),"Bad response"))}}})())));e.readyState===y.CLOSING&&await r;let i=()=>{};const c=new Promise(e=>i=e);return[e,i,Promise.race([c.then(()=>{if(!S){const t=()=>e.close(1e3,"Normal Closure");isFinite(a)&&a>0?O=setTimeout(()=>{e.readyState===y.OPEN&&t()},a):t()}}),r])]}function A(e){if(aje(e)&&(t=e.code,![1e3,1001,1006,1005,1012,1013,1014].includes(t)&&t>=1e3&&t<=1999||[eje.InternalServerError,eje.InternalClientError,eje.BadRequest,eje.BadResponse,eje.Unauthorized,eje.SubprotocolNotAcceptable,eje.SubscriberAlreadyExists,eje.TooManyInitialisationRequests].includes(e.code)))throw e;var t;if(N)return!1;if(aje(e)&&1e3===e.code)return S>0;if(!c||z>=c)throw e;if(!u(e))throw e;return C=!0}function T(e,t){const n=p(e);let r=!1,i=!1,a=()=>{S--,r=!0};return(async()=>{for(S++;;)try{const[o,s,l]=await E();if(r)return s();const c=x.onMessage(n,e=>{switch(e.type){case tje.Next:return void t.next(e.payload);case tje.Error:return i=!0,r=!0,t.error(e.payload),void a();case tje.Complete:return r=!0,void a()}});return o.send(rje({id:n,type:tje.Subscribe,payload:e},m)),a=()=>{r||o.readyState!==y.OPEN||o.send(rje({id:n,type:tje.Complete},m)),S--,r=!0,s()},void(await l.finally(c))}catch(o){if(!A(o))return}})().then(()=>{i||t.complete()}).catch(e=>{t.error(e)}),()=>{r||a()}}return r||(async()=>{for(S++;;)try{const[,,e]=await E();await e}catch(e){try{if(!A(e))return}catch(t){return i?.(t)}}})(),{on:x.on,subscribe:T,iterate(e){const t=[],n={done:!1,error:null,resolve:()=>{}},r=T(e,{next(e){t.push(e),n.resolve()},error(e){n.done=!0,n.error=e,n.resolve()},complete(){n.done=!0,n.resolve()}}),i=async function*(){for(;;){for(t.length||await new Promise(e=>n.resolve=e);t.length;)yield t.shift();if(n.error)throw n.error;if(n.done)return}}();return i.throw=async e=>(n.done||(n.done=!0,n.error=e,n.resolve()),{done:!0,value:void 0}),i.return=async()=>(r(),{done:!0,value:void 0}),i},async dispose(){if(N=!0,k){const[e]=await k;e.close(1e3,"Normal Closure")}},terminate(){k&&x.emit("closed",new ije)}}}({url:e.subscriptionServer,shouldRetry:()=>!0,retryAttempts:1/0,connectionParams:{authToken:t,instanceId:r,userToken:o},onNonLazyError:e=>{if(e instanceof Error){const{message:t}=e;"Space Not Allowed"!==t&&"Invalid Token"!==t&&"Missing auth token"!==t&&"Missing instanceId"!==t&&"Access Not Authorized"!==t&&"Token Invalid"!==t||c.dispose()}}}),d=new pLe(c),u=xDe.split(({query:e})=>{const t=JMe(e);return"OperationDefinition"===t.kind&&t.operation===lTe},xDe.from([cje(),d]),l),h=new eLe({link:u,cache:i});return h.subscriptionClient=c,h},[o]),w=S(()=>x(m,i,a,d),[x,m,i,a,d]),k=S(()=>{const e={};return t?(n.forEach(t,t=>{if(!h(t))return;const{renderType:n,component:r,settings:i,definition:a,...o}=t.props;if(!n||!r)return;const s=r;s.type=n,s.pluginSettings=i,s.extraProps=o,a&&(s.content=a),e[n]=s}),e):e},[t]);y(()=>{if(w)return()=>{const e=w.subscriptionClient;e&&e.dispose()}},[w]);const O=S(()=>w&&/* @__PURE__ */M(vLe,{client:w,children:/* @__PURE__ */M(eoe,{localCustomComponents:k,localComponents:Q,children:/* @__PURE__ */M(Cwe,{children:/* @__PURE__ */M(rnt,{...Va(e,["children","server"]),debugMode:f,server:m,instanceId:d,webId:c})})})}),[w,f,d,k,e,m,c]),C=S(()=>({styleSelector:"base",collaboration:{collaborators:[]},render:{...W,previewMode:!1}}),[]);/* @__PURE__ */
|
|
2456
|
+
return M(ase,{value:w,children:k})},int=e=>{const t=new Headers;return e.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach(e=>{const n=e.split(":"),r=n.shift()?.trim();if(r){const e=n.join(":").trim();t.append(r,e)}}),t},ant=(e,t)=>t?.customFetch?((e,t)=>new Promise((n,r)=>{const i=new XMLHttpRequest;i.onload=()=>{const e={url:"",status:i.status,statusText:i.statusText,headers:int(i.getAllResponseHeaders()||"")};e.url="responseURL"in i?i.responseURL:e.headers.get("X-Request-URL")??"";const t=i.response??i.responseText;n(new Response(t,e))},i.onerror=e=>{r(/* @__PURE__ */new TypeError("Network request failed")),t?.onError&&t.onError(e)},i.ontimeout=()=>{r(/* @__PURE__ */new TypeError("Network request failed"))},i.open(t?.method??"GET",e,!0),t?.headers&&Object.keys(t.headers).forEach(e=>{const n=t.headers;n[e]&&i.setRequestHeader(e,n[e])}),t?.onProgress&&(i.upload.onprogress=t.onProgress),t?.onAbortPossible&&t.onAbortPossible(()=>{i.abort()}),t?.body&&i.send(t.body)}))(e,t):fetch(e,t),ont={name:"@plitzi/plitzi-builder",version:"0.37.8",homepage:"./",license:"AGPL-3.0",files:["dist"],repository:{type:"https",url:"https://github.com/plitzi/plitzi-workspace.git"},type:"module",main:"dist/plitzi-builder.js",module:"dist/plitzi-builder.js",types:"dist/index.d.ts",exports:{".":{types:"./dist/index.d.ts",import:"./dist/plitzi-builder.js",default:"./dist/plitzi-builder.js"},"./plitzi-builder.css":"./dist/plitzi-builder.css","./plitzi-builder-vendor.js":"./dist/plitzi-builder-vendor.js","./plitzi-builder-dev-vendor.js":"./dist/plitzi-builder-dev-vendor.js","./plitzi-builder-dev-vendor.js.map":"./dist/plitzi-builder-dev-vendor.js.map"},dependencies:{"@apollo/client":"^4.3.1","@codemirror/autocomplete":"^6","@codemirror/lint":"^6","@codemirror/state":"^6","@fortawesome/fontawesome-free":"^7.3.1","@plitzi/nexus":"^1.3.1","@plitzi/plitzi-sdk":"workspace:*","@plitzi/plitzi-ui":"^1.6.24","@plitzi/sdk-auth":"workspace:*","@plitzi/sdk-authoring":"workspace:*","@plitzi/sdk-dev-tools":"workspace:*","@plitzi/sdk-elements":"workspace:*","@plitzi/sdk-event-bridge":"workspace:*","@plitzi/sdk-interactions":"workspace:*","@plitzi/sdk-navigation":"workspace:*","@plitzi/sdk-plugins":"workspace:*","@plitzi/sdk-schema":"workspace:*","@plitzi/sdk-shared":"workspace:*","@plitzi/sdk-style":"workspace:*","@plitzi/sdk-variables":"workspace:*","@tanstack/react-virtual":"^3.14.13","@typescript/vfs":"^1.6.5","@valtown/codemirror-ts":"^2.3.1","@xyflow/react":"^12.11.6","apollo-upload-client":"^20.0.0",clsx:"^2.1.1",comlink:"^4.4.2",graphql:"^17.0.2","graphql-ws":"^6.2.2",immer:"^11.1.18",jszip:"^3.10.2","react-hook-form":"^7.88.0","react-router-dom":"^7.18.4",swr:"^2.5.1",uuid:"^14.0.2",zod:"^4.6.5"},peerDependencies:{react:"^19","react-dom":"^19"},devDependencies:{"@babel/compat-data":"^8.0.5","@babel/core":"^8.0.6","@babel/helper-builder-react-jsx-experimental":"^7.12.11","@babel/helper-validator-identifier":"^8.0.6","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-transform-private-methods":"^8.0.1","@babel/plugin-transform-runtime":"^8.0.6","@babel/polyfill":"^7.12.1","@babel/preset-env":"^8.0.6","@babel/preset-react":"^8.0.1","@plitzi/sdk-server":"workspace:*","@tailwindcss/postcss":"^4.3.3","css-loader":"^7.1.5",eslint:"^9.39.5","eslint-plugin-import":"^2.32.0","flow-bin":"^0.332.0",postcss:"^8.5.28","postcss-loader":"^8.2.1","postcss-scss":"^4.0.9",prettier:"^3.9.9","prop-types":"^15.8.1",react:"^19.3.0","react-dom":"^19.3.0","react-refresh":"^0.19.0","react-test-renderer":"^19.3.0",sass:"^1.105.0","sass-embedded":"^1.105.0","sass-loader":"^17.0.1",stylelint:"^17.15.0","stylelint-order":"^8.1.1","stylelint-scss":"^7.3.0",terser:"^5.51.2",typescript:"^6.0.3",vite:"^8.3.1","vite-plugin-dts":"^5.1.1","vite-plugin-ejs":"^2.0.0","vite-plugin-mkcert":"^2.1.0","vite-plugin-react":"^4.0.1",vitest:"^5.0.1"},scripts:{start:"vite dev --mode development",test:"vitest run","test:coverage":"",lint:"TIMING=1 eslint ./src","lint-style":'stylelint "**/*.scss" --custom-syntax postcss-scss',"lint-style:fix":'stylelint "**/*.scss" --custom-syntax postcss-scss --fix',typecheck:"tsc -p tsconfig.app.json --noEmit","build:dev":"tsc -p tsconfig.app.json --noEmit && vite build --mode development && vite build --config vite.functions-worker.config.ts --mode development","build:dev-watch":"tsc -p tsconfig.app.json --noEmit && vite build --mode development --watch","build:dev-gzip":"tsc -p tsconfig.app.json --noEmit && ONLY_GZIP=1 vite build --mode development","build:dev-analyze":"tsc -p tsconfig.app.json --noEmit && ONLY_ANALYZE=1 vite build --mode development","build:prod":"tsc -p tsconfig.app.json --noEmit && vite build && vite build --config vite.functions-worker.config.ts","build:prod-watch":"tsc -p tsconfig.app.json --noEmit && vite build --watch","build:prod-gzip":"tsc -p tsconfig.app.json --noEmit && ONLY_GZIP=1 vite build","build:prod-analyze":"tsc -p tsconfig.app.json --noEmit && ONLY_ANALYZE=1 vite build","build-vendor:dev":"vite build --config vite.vendor.config.ts --mode development","build-vendor:prod":"vite build --config vite.vendor.config.ts"},eslintConfig:{extends:"react-app"},browserslist:{production:[">0.2%","not dead","not op_mini all"],development:["last 1 chrome version","last 1 firefox version","last 1 safari version"]}};vv(),rb(),dme(),Uv(),Soe(),MLe(),xv(),dv(),pv(),Xv(),Ov(),Ab(),Jv(),Ev(),Pv(),Af(),Whe(),fo(),zb(),pn(),ta(),pj(),zc(),fj(),na(),Nj();var snt={Button:ug,FileUpload:aue,ContentEditable:eQ,Card:Woe,Form:Pue,Input:Ug,Switch:Cg,Checkbox:Jg,Select:kg,Select2:Yg,Heading:Lae,Flex:ig,ContainerResizable:goe,ContainerCollapsable:Kpe,Icon:lg,IconGroup:Xfe,Popup:nse,Sidebar:Roe,Tree:QLe,Accordion:voe,QueryBuilder:fb,Alert:Rae,Modal:xse,Text:LLe,Label:vg,TextArea:Vae,ContainerFrame:lse,KVInput:Hae,Markdown:GZ,MenuList:rpe,ContainerDraggable:Koe,Breadcrumb:wLe,CodeMirror:Pae,ErrorMessage:pg,ColorPicker:Ude,MetricInput:dpe,ContainerTabs:CLe,ContainerFloating:Lg,Badge:yLe},lnt=e=>{const{children:t,server:r,webKey:i="",includeSubscriptions:a=!0,userKey:o="",className:s="min-h-screen",debugMode:l=!1}=e,c=S(()=>function(e){if(!e)return 0;let t={};try{let n=e.split(".")[1],r=typeof window<"u"?window.atob(n):Buffer.from(n,"base64").toString();t=JSON.parse(r)}catch{return 0}return Na(t,"data.spaceId",0)}(i),[i]),[d,u]=_he(`web_${c}_state.instanceId`,"","sessionStorage"),[f,p]=_he("builder-state.debugMode",!1,"localStorage",l),m=S(()=>(e=>{const t={apiServer:"https://api.plitzi.com",ssrServer:"https://ssr.plitzi.com",basePath:"",host:"https://plitzi.com",serverUrl:"https://server.plitzi.com",fontsBaseUrl:"",websocketServer:"wss://server.plitzi.com",subscriptionServer:"wss://server.plitzi.com/subscriptions",location:void 0,...e};return"/"===t.basePath?t.basePath="":t.basePath&&(t.basePath=t.basePath.replaceAll("//","/")),t})(r),[r]),v=g(e=>{e.shiftKey&&"F12"===e.key&&p(e=>!e)},[p]);y(()=>{l&&window.addEventListener("keydown",v)},[v,l]),y(()=>{},[]);let b=!1;try{eCe(),b=!0}catch{b=!1}y(()=>{const e=db();u(e)},[c,u]);const x=g((e,t,n,r)=>{if(!e)return;const i=new bDe,a=new GLe({uri:e.serverUrl,fetch:ant}),s=new fLe(e=>{const n={...e.headers??{},"plitzi-instance-id":r,"plitzi-access-token":o,"sdk-version":ont.version,"Apollo-Require-Preflight":"true"};return t&&(n.authorization=`Bearer ${t}`),{headers:n}}),l=xDe.from([sje(e.serverUrl),cje(),s,a]);if(!n||!e.subscriptionServer)return new eLe({link:l,cache:i});const c=function(e){const{url:t,connectionParams:n,lazy:r=!0,onNonLazyError:i=console.error,lazyCloseTimeout:a=0,keepAlive:o=0,disablePong:s,connectionAckWaitTimeout:l=0,retryAttempts:c=5,retryWait:d=async function(e){const t=Math.pow(2,e);await new Promise(e=>setTimeout(e,1e3*t+Math.floor(2700*Math.random()+300)))},shouldRetry:u=aje,on:h,webSocketImpl:f,generateID:p=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)})},jsonMessageReplacer:m,jsonMessageReviver:g}=e;let v;if(f){if(!("function"==typeof(b=f)&&"constructor"in b&&"CLOSED"in b&&"CLOSING"in b&&"CONNECTING"in b&&"OPEN"in b))throw new Error("Invalid WebSocket implementation provided");v=f}else"undefined"!=typeof WebSocket?v=WebSocket:"undefined"!=typeof global?v=global.WebSocket||global.MozWebSocket:"undefined"!=typeof window&&(v=window.WebSocket||window.MozWebSocket);var b;if(!v)throw new Error("WebSocket implementation missing; on Node you can `import WebSocket from 'ws';` and pass `webSocketImpl: WebSocket` to `createClient`");const y=v,x=(()=>{const e=/* @__PURE__ */(()=>{const e={};return{on:(t,n)=>(e[t]=n,()=>{delete e[t]}),emit(t){"id"in t&&e[t.id]?.(t)}}})(),t={connecting:h?.connecting?[h.connecting]:[],opened:h?.opened?[h.opened]:[],connected:h?.connected?[h.connected]:[],ping:h?.ping?[h.ping]:[],pong:h?.pong?[h.pong]:[],message:h?.message?[e.emit,h.message]:[e.emit],closed:h?.closed?[h.closed]:[],error:h?.error?[h.error]:[]};return{onMessage:e.on,on(e,n){const r=t[e];return r.push(n),()=>{const e=r.indexOf(n);e>-1&&r.splice(e,1)}},emit(e,...n){for(const r of[...t[e]])r(...n)}}})();function w(e){const t=[x.on("error",n=>{t.forEach(e=>e()),e(n)}),x.on("closed",n=>{t.forEach(e=>e()),e(n)})]}let k,O,S=0,C=!1,z=0,N=!1;async function E(){clearTimeout(O);const[e,r]=await(k??(k=new Promise((e,r)=>(async()=>{if(C){if(await d(z),!S)return k=void 0,r({code:1e3,reason:"All Subscriptions Gone"});z++}x.emit("connecting",C);const i=new y("function"==typeof t?await t():t,"graphql-transport-ws");let a,c;function u(){isFinite(o)&&o>0&&(clearTimeout(c),c=setTimeout(()=>{i.readyState===y.OPEN&&(i.send(rje({type:tje.Ping})),x.emit("ping",!1,void 0))},o))}w(e=>{k=void 0,clearTimeout(a),clearTimeout(c),r(e),e instanceof ije&&(i.close(4499,"Terminated"),i.onerror=null,i.onclose=null)}),i.onerror=e=>x.emit("error",e),i.onclose=e=>x.emit("closed",e),i.onopen=async()=>{try{x.emit("opened",i);const e="function"==typeof n?await n():n;if(i.readyState!==y.OPEN)return;i.send(rje(e?{type:tje.ConnectionInit,payload:e}:{type:tje.ConnectionInit},m)),isFinite(l)&&l>0&&(a=setTimeout(()=>{i.close(eje.ConnectionAcknowledgementTimeout,"Connection acknowledgement timeout")},l)),u()}catch(e){x.emit("error",e),i.close(eje.InternalClientError,JLe(e instanceof Error?e.message:String(e),"Internal client error"))}};let h=!1;i.onmessage=({data:t})=>{try{const n=function(e,t){return nje("string"==typeof e?JSON.parse(e,t):e)}(t,g);if(x.emit("message",n),"ping"===n.type||"pong"===n.type)return x.emit(n.type,!0,n.payload),void("pong"===n.type?u():s||(i.send(rje(n.payload?{type:tje.Pong,payload:n.payload}:{type:tje.Pong})),x.emit("pong",!1,n.payload)));if(h)return;if(n.type!==tje.ConnectionAck)throw new Error(`First message cannot be of type ${n.type}`);clearTimeout(a),h=!0,x.emit("connected",i,n.payload,C),C=!1,z=0,e([i,new Promise((e,t)=>w(t))])}catch(n){i.onmessage=null,x.emit("error",n),i.close(eje.BadResponse,JLe(n instanceof Error?n.message:String(n),"Bad response"))}}})())));e.readyState===y.CLOSING&&await r;let i=()=>{};const c=new Promise(e=>i=e);return[e,i,Promise.race([c.then(()=>{if(!S){const t=()=>e.close(1e3,"Normal Closure");isFinite(a)&&a>0?O=setTimeout(()=>{e.readyState===y.OPEN&&t()},a):t()}}),r])]}function A(e){if(aje(e)&&(t=e.code,![1e3,1001,1006,1005,1012,1013,1014].includes(t)&&t>=1e3&&t<=1999||[eje.InternalServerError,eje.InternalClientError,eje.BadRequest,eje.BadResponse,eje.Unauthorized,eje.SubprotocolNotAcceptable,eje.SubscriberAlreadyExists,eje.TooManyInitialisationRequests].includes(e.code)))throw e;var t;if(N)return!1;if(aje(e)&&1e3===e.code)return S>0;if(!c||z>=c)throw e;if(!u(e))throw e;return C=!0}function T(e,t){const n=p(e);let r=!1,i=!1,a=()=>{S--,r=!0};return(async()=>{for(S++;;)try{const[o,s,l]=await E();if(r)return s();const c=x.onMessage(n,e=>{switch(e.type){case tje.Next:return void t.next(e.payload);case tje.Error:return i=!0,r=!0,t.error(e.payload),void a();case tje.Complete:return r=!0,void a()}});return o.send(rje({id:n,type:tje.Subscribe,payload:e},m)),a=()=>{r||o.readyState!==y.OPEN||o.send(rje({id:n,type:tje.Complete},m)),S--,r=!0,s()},void(await l.finally(c))}catch(o){if(!A(o))return}})().then(()=>{i||t.complete()}).catch(e=>{t.error(e)}),()=>{r||a()}}return r||(async()=>{for(S++;;)try{const[,,e]=await E();await e}catch(e){try{if(!A(e))return}catch(t){return i?.(t)}}})(),{on:x.on,subscribe:T,iterate(e){const t=[],n={done:!1,error:null,resolve:()=>{}},r=T(e,{next(e){t.push(e),n.resolve()},error(e){n.done=!0,n.error=e,n.resolve()},complete(){n.done=!0,n.resolve()}}),i=async function*(){for(;;){for(t.length||await new Promise(e=>n.resolve=e);t.length;)yield t.shift();if(n.error)throw n.error;if(n.done)return}}();return i.throw=async e=>(n.done||(n.done=!0,n.error=e,n.resolve()),{done:!0,value:void 0}),i.return=async()=>(r(),{done:!0,value:void 0}),i},async dispose(){if(N=!0,k){const[e]=await k;e.close(1e3,"Normal Closure")}},terminate(){k&&x.emit("closed",new ije)}}}({url:e.subscriptionServer,shouldRetry:()=>!0,retryAttempts:1/0,connectionParams:{authToken:t,instanceId:r,userToken:o},onNonLazyError:e=>{if(e instanceof Error){const{message:t}=e;"Space Not Allowed"!==t&&"Invalid Token"!==t&&"Missing auth token"!==t&&"Missing instanceId"!==t&&"Access Not Authorized"!==t&&"Token Invalid"!==t||c.dispose()}}}),d=new pLe(c),u=xDe.split(({query:e})=>{const t=JMe(e);return"OperationDefinition"===t.kind&&t.operation===lTe},xDe.from([cje(),d]),l),h=new eLe({link:u,cache:i});return h.subscriptionClient=c,h},[o]),w=S(()=>x(m,i,a,d),[x,m,i,a,d]),k=S(()=>{const e={};return t?(n.forEach(t,t=>{if(!h(t))return;const{renderType:n,component:r,settings:i,definition:a,...o}=t.props;if(!n||!r)return;const s=r;s.type=n,s.pluginSettings=i,s.extraProps=o,a&&(s.content=a),e[n]=s}),e):e},[t]);y(()=>{if(w)return()=>{const e=w.subscriptionClient;e&&e.dispose()}},[w]);const O=S(()=>w&&/* @__PURE__ */M(vLe,{client:w,children:/* @__PURE__ */M(eoe,{localCustomComponents:k,localComponents:Q,children:/* @__PURE__ */M(Cwe,{children:/* @__PURE__ */M(rnt,{...Va(e,["children","server"]),debugMode:f,server:m,instanceId:d,webId:c})})})}),[w,f,d,k,e,m,c]),C=S(()=>({styleSelector:"base",collaboration:{collaborators:[]},render:{...W,previewMode:!1}}),[]);/* @__PURE__ */
|
|
2457
2457
|
return M(Tn,{value:C,middlewares:[Me(Lb("builder")),iL(c),...f?[nj(),Ae({shouldRecord:e=>!e?.startsWith("runtime.elements")&&!e?.startsWith("collaboration")&&!e?.startsWith("theme")})]:[]],children:/* @__PURE__ */M(qM,{defaultTheme:"dark",cookieName:"builder-theme",children:/* @__PURE__ */M(DLe,{components:snt,children:/* @__PURE__ */I(dse,{className:Ja("plitzi-builder flex items-stretch",s),children:[!b&&/* @__PURE__ */M(QCe,{basename:m.basePath??"",children:O}),b&&O]})})})})};function cnt(e,t={},n={},r=!1){const i=()=>(r||tx(),/* @__PURE__ */M(lnt,{...t,debugMode:r,children:Object.keys(n).map(e=>/* @__PURE__ */M(fNe.Plugin,{renderType:e,settings:n[e].pluginSettings,definition:n[e].content,component:n[e]},e))}));"undefined"!=typeof document&&A.createRoot(document.getElementById(e)).render(/* @__PURE__ */M(i,{}))}Aj(),Hs(),Vw(),Rw(),Qw(),ek(),Iw(),na();var dnt=e=>{const{debugMode:t=!1,children:n}=e;return y(()=>{t||tx()},[t]),/* @__PURE__ */M(lnt,{...e,children:n})};dnt.Plugin=fNe.Plugin;var{version:unt}=ont;export{Yb as ComponentContext,eoe as ComponentProvider,Ij as JsxManager,_b as PlitziServiceProvider,Uj as PluginManager,Gb as PluginRemote,RY as ReplicaProvider,qb as RootElement,dnt as default,cnt as render,ur as useBuilderStore,Bo as useElement,Ub as usePlitziServiceContext,Mj as useRscData,unt as version,rj as withElement};
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plitzi/plitzi-builder",
|
|
3
|
-
"version": "0.37.
|
|
3
|
+
"version": "0.37.8",
|
|
4
4
|
"homepage": "./",
|
|
5
5
|
"license": "AGPL-3.0",
|
|
6
6
|
"files": [
|
|
@@ -32,20 +32,20 @@
|
|
|
32
32
|
"@codemirror/state": "^6",
|
|
33
33
|
"@fortawesome/fontawesome-free": "^7.3.1",
|
|
34
34
|
"@plitzi/nexus": "^1.3.1",
|
|
35
|
-
"@plitzi/plitzi-sdk": "0.37.
|
|
35
|
+
"@plitzi/plitzi-sdk": "0.37.8",
|
|
36
36
|
"@plitzi/plitzi-ui": "^1.6.24",
|
|
37
|
-
"@plitzi/sdk-auth": "0.37.
|
|
38
|
-
"@plitzi/sdk-authoring": "0.37.
|
|
39
|
-
"@plitzi/sdk-dev-tools": "0.37.
|
|
40
|
-
"@plitzi/sdk-elements": "0.37.
|
|
41
|
-
"@plitzi/sdk-event-bridge": "0.37.
|
|
42
|
-
"@plitzi/sdk-interactions": "0.37.
|
|
43
|
-
"@plitzi/sdk-navigation": "0.37.
|
|
44
|
-
"@plitzi/sdk-plugins": "0.37.
|
|
45
|
-
"@plitzi/sdk-schema": "0.37.
|
|
46
|
-
"@plitzi/sdk-shared": "0.37.
|
|
47
|
-
"@plitzi/sdk-style": "0.37.
|
|
48
|
-
"@plitzi/sdk-variables": "0.37.
|
|
37
|
+
"@plitzi/sdk-auth": "0.37.8",
|
|
38
|
+
"@plitzi/sdk-authoring": "0.37.8",
|
|
39
|
+
"@plitzi/sdk-dev-tools": "0.37.8",
|
|
40
|
+
"@plitzi/sdk-elements": "0.37.8",
|
|
41
|
+
"@plitzi/sdk-event-bridge": "0.37.8",
|
|
42
|
+
"@plitzi/sdk-interactions": "0.37.8",
|
|
43
|
+
"@plitzi/sdk-navigation": "0.37.8",
|
|
44
|
+
"@plitzi/sdk-plugins": "0.37.8",
|
|
45
|
+
"@plitzi/sdk-schema": "0.37.8",
|
|
46
|
+
"@plitzi/sdk-shared": "0.37.8",
|
|
47
|
+
"@plitzi/sdk-style": "0.37.8",
|
|
48
|
+
"@plitzi/sdk-variables": "0.37.8",
|
|
49
49
|
"@tanstack/react-virtual": "^3.14.13",
|
|
50
50
|
"@typescript/vfs": "^1.6.5",
|
|
51
51
|
"@valtown/codemirror-ts": "^2.3.1",
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
"@babel/polyfill": "^7.12.1",
|
|
79
79
|
"@babel/preset-env": "^8.0.6",
|
|
80
80
|
"@babel/preset-react": "^8.0.1",
|
|
81
|
-
"@plitzi/sdk-server": "0.37.
|
|
81
|
+
"@plitzi/sdk-server": "0.37.8",
|
|
82
82
|
"@tailwindcss/postcss": "^4.3.3",
|
|
83
83
|
"css-loader": "^7.1.5",
|
|
84
84
|
"eslint": "^9.39.5",
|