@strifeapp/strife 0.2.8-alpha → 0.2.9-alpha

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.
@@ -0,0 +1,2 @@
1
+ import{u as e,C as t,A as s,S as n}from'./index-5cf30423.js';class i extends HTMLAnchorElement{constructor(){super(),this.tabIndex=0}connectedCallback(){e(this,(e=>this.render(e)))}render(e){if(e){this.href=e.href;const t=this.childNodes;if(0===t.length)this.textContent=e.text;else for(const s of t)s.nodeType===Node.TEXT_NODE&&(s.nodeValue=e.text);'_blank'===e.target&&(this.target=e.target)}}}customElements.define('str-anchor',i,{extends:'a'});const r=e=>e.startsWith('http://')||e.startsWith('https://')?e:'https:'+e,d='https://cdn.strife.app/AS3SX_-B59mU1hdDS7B_YfI5Lu9Ut-kLpdaAhraKgy4/w:1/h:1/aHR0cHM6Ly9zdHJpZmUuYi1jZG4ubmV0L3RyYW5zcGFyZW50MXgxLnBuZw.png',c=e=>{e.classList.contains('previewing')||(e.classList.add('previewing'),e.src||e.classList.add('previewing--empty'),e.style.width=e.width+'px',e.style.height=e.height+'px',e.style.setProperty('--img-previewing-url',`url(${e.src})`),e.style.setProperty('--img-previewing-size','100%'),e.style.setProperty('--img-previewing-position','0px,0px'),e.src=d)},l=(e,t)=>{if(e instanceof HTMLImageElement)if(t&&t.source&&t.source.crop){c(e);const s=e.offsetWidth/t.width,n=e.offsetWidth/2-t.source.originalWidth*(t.source.crop.zoom*s)*t.source.crop.focusX,i=e.offsetHeight/2-t.source.originalHeight*(t.source.crop.zoom*s)*t.source.crop.focusY,r=t.source.originalWidth/e.offsetWidth*(t.source.crop.zoom*s);e.style.setProperty('--img-previewing-url',`url(${t.source.originalPreview})`),e.style.setProperty('--img-previewing-size',100*r+'%'),e.style.setProperty('--img-previewing-position',`${n}px ${i}px`),t.source.originalPreview?e.classList.remove('previewing--empty'):e.classList.add('previewing--empty')}else t&&t.draft?(e.style.setProperty('--img-previewing-url',`url(${t.draft+'?cb='+Date.now()})`),e.style.setProperty('--img-previewing-size','100%'),e.style.setProperty('--img-previewing-position','0px,0px'),e.classList.remove('previewing--empty')):e.classList.add('previewing--empty')};customElements.define('str-picture',class extends HTMLPictureElement{_currentSrc;constructor(){super(),this.image=this.querySelector('img'),this.tabIndex=0,this.image.complete?this.init():(this.image.addEventListener('load',(e=>{this.init()}),{once:!0}),this.image.addEventListener('error',(e=>{this.init()}),{once:!0})),this._initied=new Promise(((e,t)=>{this.loadedResolve=e,this.loadedReject=t}))}connectedCallback(){}init(){this.initPreview(),e(this,(e=>{this.render(e)}))}initPreview(){(e=>{const t=e.querySelector('img');if(t.classList.contains('previewing'))return;const s=[...e.querySelectorAll('source')],n=s.find((e=>{if(t.currentSrc){const s=new URL(r(t.currentSrc)),n=new URL(r(e.srcset));return s.href===n.href}return window.matchMedia(e.media).matches}));n&&(t.dataset.propertyMedia=n.dataset?.propertyMedia,!t.currentSrc&&n.width&&n.height&&t.classList.add('previewing--empty'),t.classList.add('previewing'),t.style.maxWidth='100%',t.style.width=n.width+'px',t.style.aspectRatio=n.width/n.height,t.style.setProperty('--img-previewing-url',`url(${t.currentSrc||n.srcset})`),t.style.setProperty('--img-previewing-size','100%'),t.style.setProperty('--img-previewing-position','0px,0px'),t.src=d,s.forEach((e=>{e.srcset=d})))})(this),this.image.addEventListener('load',(e=>{this.loadedResolve()}),{once:!0})}render(e){this._initied.then((()=>{((e,t)=>{if(!(e instanceof HTMLPictureElement))return;const s=e.querySelector('img'),n=s.dataset?.propertyMedia;n&&t?l(s,t[n]):console.warn('No property media found on picture element',window.name,s)})(this,e)}))}disconnectedCallback(){}},{extends:'picture'}),customElements.define('str-img',class extends HTMLImageElement{constructor(){super(),this.tabIndex=0,this.complete?this.init():(this.addEventListener('load',(e=>{this.init()}),{once:!0}),this.addEventListener('error',(e=>{this.init()}),{once:!0})),this._loaded=new Promise(((e,t)=>{this.loadedResolve=e,this.loadedReject=t}))}connectedCallback(){}init(){this.initPreview(),e(this,(e=>{this.render(e)}))}initPreview(){c(this),this.addEventListener('load',(e=>{this.loadedResolve()}),{once:!0})}render(e){this._loaded.then((()=>{l(this,e)}))}disconnectedCallback(){}},{extends:'img'});class a extends HTMLTimeElement{constructor(){super(),this.tabIndex=0}connectedCallback(){e(this,(e=>this.render(e)))}render(e){e&&(this.textContent=((e,t)=>{if(!t)return e;const s=new Date(e);if(isNaN(s))return'Invalid Date';const n=s.getFullYear(),i=String(n).slice(-2),r=String(s.getMonth()+1).padStart(2,'0'),d=new Intl.DateTimeFormat('en-US',{month:'short'}).format(s),c={yyyy:n,yy:i,MMMM:new Intl.DateTimeFormat('en-US',{month:'long'}).format(s),MMM:d,MM:r,dd:String(s.getDate()).padStart(2,'0'),d:String(s.getDate()),hh:String(s.getHours()).padStart(2,'0'),mm:String(s.getMinutes()).padStart(2,'0'),ss:String(s.getSeconds()).padStart(2,'0')},l=new RegExp(Object.keys(c).join('|'),'g');return t.replace(l,(e=>c[e]))})(e,this.dataset.format))}}customElements.define('str-time',a,{extends:'time'});const o=t=>{e(t,(e=>{m(t,e)}))},m=(e,t)=>{e.textContent=t};customElements.define('str-address',class extends HTMLElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'address'}),customElements.define('str-p',class extends HTMLParagraphElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'p'}),customElements.define('str-span',class extends HTMLSpanElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'span'}),customElements.define('str-strong',class extends HTMLElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'strong'}),customElements.define('str-h1',class extends HTMLHeadingElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'h1'}),customElements.define('str-h2',class extends HTMLHeadingElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'h2'}),customElements.define('str-h3',class extends HTMLHeadingElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'h3'}),customElements.define('str-h4',class extends HTMLHeadingElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'h4'}),customElements.define('str-h5',class extends HTMLHeadingElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'h5'}),customElements.define('str-h6',class extends HTMLHeadingElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'h6'}),customElements.define('str-abbr',class extends HTMLElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'abbr'}),customElements.define('str-b',class extends HTMLElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'b'}),customElements.define('str-button',class extends HTMLButtonElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'button'}),customElements.define('str-cite',class extends HTMLElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'cite'}),customElements.define('str-code',class extends HTMLElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'code'}),customElements.define('str-dfn',class extends HTMLElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'dfn'}),customElements.define('str-em',class extends HTMLElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'em'}),customElements.define('str-i',class extends HTMLElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'i'}),customElements.define('str-label',class extends HTMLLabelElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'label'}),customElements.define('str-mark',class extends HTMLElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'mark'}),customElements.define('str-q',class extends HTMLQuoteElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'q'}),customElements.define('str-sub',class extends HTMLElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'sub'}),customElements.define('str-sup',class extends HTMLElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'sup'});let h=null;const p=t=>{h=n.instance,e(t,((e,s)=>{u(t,e,s)}))},u=(e,t,s)=>{document.startViewTransition?document.startViewTransition((()=>{f(e,t,s)})):f(e,t,s)},f=(e,n,i)=>{const r=((e,t)=>{t.iterate||t.model;var s=t.templates.find((e=>e.collection===t.model['@metadata']['@collection']));let n=e;e.includes('.')&&(n=e.split('.')[0]);const i=s?.editors.find((e=>e.editor.propertyName===n)),r=i?.editor.type;if(e!==n)switch(r){case'chapters':const[s,r]=e.split('.').slice(1),d=t.model[n][Number(s)],c=t.templates.find((e=>e.normalizedName===d['@strife']?.template)),l=c?.editors.find((e=>e.editor.propertyName===r));return l?.editor.type;case'collection':const[a,o]=e.split('.').slice(1),m=t.templates.find((e=>e.collection===t.iterate['@metadata']['@collection'])),h=m?.editors.find((e=>e.editor.propertyName===o));return h?.editor.type;case'content-template':const[p]=e.split('.').slice(1),u=t.templates.find((e=>e.normalizedName===i.editor.attributes.templateId)),f=u?.editors.find((e=>e.editor.propertyName===p));return f?.editor.type}return r})(e.dataset.field,i);switch(e.innerHTML='',r){case'collection':((e,t,s)=>{t.documents&&t.documents.forEach(((t,n)=>{let i=document.getElementById(`collection_${e.dataset.field}`).content;e.appendChild(i.cloneNode(!0)),e.querySelectorAll(`[is^="str-"]:not([data-field^="${e.dataset.field}."])`).forEach((i=>{const r=i.dataset.field;var d,c;i.dataset.field=`${e.dataset.field}.${n}.${r}`,i.render((d=r,c=t,d?.split('.').reduce(((e,t)=>e?.[t]),c)),{templates:s.templates,model:s.model,iterate:t})}))}))})(e,n,i);break;case'chapters':((e,t,s)=>{t.forEach(((t,n)=>{let i=document.getElementById(t['@strife'].template).content;e.appendChild(i.cloneNode(!0)),e.querySelectorAll(`[is^="str-"]:not([data-field^="${e.dataset.field}."])`).forEach(((i,r)=>{const d=i.dataset.field;i.dataset.field=`${e.dataset.field}.${n}.${d}`,i.render(t[d],s)}))}))})(e,n,i);break;case'html':e.innerHTML=n;break;case'text':e.textContent=n;break;default:e.innerHTML=`<p>Unsupported container type: ${r} for ${e.tagName}</p>`}switch(r){case'collection':case'chapters':setTimeout((()=>{h.send({cmd:t.EU,updates:[{action:s.SYNC,context:{name:window.name,height:document.body.scrollHeight}}]})}),300)}};customElements.define('str-div',class extends HTMLDivElement{connectedCallback(){p(this)}render(e,t){u(this,e,t)}},{extends:'div'}),customElements.define('str-ul',class extends HTMLUListElement{connectedCallback(){p(this)}render(e,t){u(this,e,t)}},{extends:'ul'}),customElements.define('str-ol',class extends HTMLOListElement{connectedCallback(){p(this)}render(e,t){u(this,e,t)}},{extends:'ol'}),customElements.define('str-section',class extends HTMLElement{connectedCallback(){p(this)}render(e,t){u(this,e,t)}},{extends:'section'}),customElements.define('str-header',class extends HTMLElement{connectedCallback(){p(this)}render(e,t){u(this,e,t)}},{extends:'header'}),customElements.define('str-footer',class extends HTMLElement{connectedCallback(){p(this)}render(e,t){u(this,e,t)}},{extends:'footer'}),customElements.define('str-nav',class extends HTMLElement{connectedCallback(){p(this)}render(e,t){u(this,e,t)}},{extends:'nav'}),customElements.define('str-article',class extends HTMLElement{connectedCallback(){p(this)}render(e,t){u(this,e,t)}},{extends:'article'}),customElements.define('str-main',class extends HTMLElement{connectedCallback(){p(this)}render(e,t){u(this,e,t)}},{extends:'main'}),customElements.define('str-aside',class extends HTMLElement{connectedCallback(){p(this)}render(e,t){u(this,e,t)}},{extends:'aside'}),customElements.define('str-blockquote',class extends HTMLElement{connectedCallback(){p(this)}render(e,t){u(this,e,t)}},{extends:'blockquote'});
2
+ //# sourceMappingURL=index-5ae83dda.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-5ae83dda.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ const e={CONNECT:1,HSHK:2,EU:4,SYNC:8},t={NONE:8,EDIT:16,RESET:32,INIT:64,SYNC:128,STATE:256};class a extends MessageChannel{static _instanceCache;static get instance(){return this._instanceCache||(this._instanceCache=new a),this._instanceCache}invoke(){this.port1.addEventListener('message',(t=>{t.data.cmd===e.CONNECT&&this.onConnected(t)}),{once:!0}),this.port1.start(),this._ready=new Promise(((e,t)=>{this.readyResolve=e,this.readyReject=t})),this._ready.then((()=>{console.log(`SENDING HSHK FROM SDK IN WINDOW ${window.name}`),window.top.postMessage({cmd:e.HSHK,context:{name:window.name,height:document.body.scrollHeight}},'*',[this.port2])}));const t=document.querySelectorAll('[is^="str-"]:not(:defined)');if(t.length){const e=[...t].map((e=>customElements.whenDefined(e.getAttribute('is'))));Promise.all(e).then((()=>(performance.mark('mark-3'),performance.measure('Import elements complete','mark-2','mark-3'),console.debug(`${performance.now().toFixed(1)}ms: [${window.name}] Import elements complete took ${performance.getEntriesByName('Import elements complete')[0].duration.toFixed(1)}ms`),this.readyResolve())))}else switch(document.readyState){case'loading':case'interactive':document.onreadystatechange=()=>{'complete'===document.readyState&&this.readyResolve()};break;case'complete':this.readyResolve()}}constructor(){super(),this.broadcastChannel=new BroadcastChannel('app.broadcast')}subscribe(e){if('function'!=typeof e)throw new Error('messageHandler must be a function!');const t=t=>{try{e(t)}catch(e){console.error('Error in messageHandler:',e)}},n=e=>{try{this.broadcastChannel.postMessage(e.data)}catch(e){console.error('Error in messageHandler:',e)}};return this.broadcastChannel.addEventListener('message',t),this.port1.addEventListener('message',t),this.port1.addEventListener('message',n),()=>{this.broadcastChannel.removeEventListener('message',t),this.port1.removeEventListener('message',t),this.port1.removeEventListener('message',n),this.port1.close(),a._instanceCache=null}}send(e){this.port1.postMessage(e),this.broadcastChannel.postMessage(e)}onConnected(e){return e}}const n=n=>{if('function'!=typeof n)throw new Error('messageHandler must be a function!');return a.instance.subscribe((a=>{try{if(a.data.cmd===e.SYNC)for(const e of a.data.sync)e.action!==t.STATE||n(e.state)}catch(e){console.error('Error in messageHandler:',e)}}))},s=[],r=({data:n})=>{try{if(n.cmd===e.SYNC){n.sync.forEach((e=>{switch(e.action){case t.INIT:s.forEach((({self:t,handler:a})=>{const n=e.data.find((e=>e.propertyName===t.dataset.field));e.currentPath===window.location.pathname&&n&&(t.dataset.placeholder=n.placeholder)}));break;case t.EDIT:case t.RESET:s.forEach((({self:a,handler:n})=>{if(e.currentPath===window.location.pathname&&(e.action===t.RESET||e.data.some((e=>e.name===a.dataset.field)))){const t=e.data.findIndex((e=>e.name===a.dataset.field));t>=0&&n(e.data[t].value,e.context)}}))}}));a.instance.send({cmd:e.EU,updates:[{action:t.SYNC,context:{name:window.name,height:document.body.scrollHeight}}]})}}catch(e){console.error(e)}},o=(e,t)=>{s.push({self:e,handler:t})},c=()=>{'undefined'!=typeof window&&window.top!==window.self&&(performance.mark('mark-2'),performance.measure('Import elements started','mark-1','mark-2'),console.debug(`${performance.now().toFixed(1)}ms: [${window.name}] Import elements started after ${performance.getEntriesByName('Import elements started')[0].duration.toFixed(1)}ms`),import('./index-5ae83dda.js'),a.instance.invoke(),a.instance.subscribe(r))};performance.mark('mark-1');export{t as A,e as C,a as S,c as r,n as s,o as u};
2
+ //# sourceMappingURL=index-5cf30423.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-5cf30423.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export{a as initImage,i as initPicture,c as ready,b as renderImage,r as renderPicture,s as subscribe,u as useState}from'./index-e24587fc.js';
1
+ export{r as ready,s as subscribe,u as useState}from'./index-5cf30423.js';
2
2
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ :root{--str-placeholder-text-opacity:0.3;--str-placeholder-background-color:#09f;--str-placeholder-background-opacity:0.8}img.previewing{--img-previewing-url:"";--img-previewing-size:100%;--img-previewing-position:0px 0px;background-image:var(--img-previewing-url);background-position:var(--img-previewing-position);background-repeat:no-repeat;background-size:var(--img-previewing-size)}img.previewing.previewing--empty{background-image:repeating-linear-gradient(45deg,var(--str-placeholder-background-color) 0,transparent 1px,transparent 0,transparent 50%);background-position:0 0;background-repeat:repeat;background-size:15px 15px;opacity:var(--str-placeholder-background-opacity);outline:solid 1px var(--str-placeholder-background-color)}:where([is^=str-h]:empty,[is^=str-textarea]:empty,[is^=str-address]:empty,[is^=str-anchor]:empty,[is^=str-p]:empty):before{color:inherit;content:attr(data-placeholder);opacity:var(--str-placeholder-text-opacity)}::view-transition-new(root),::view-transition-old(root){animation-duration:.5s}
package/package.json CHANGED
@@ -1,22 +1,27 @@
1
1
  {
2
2
  "name": "@strifeapp/strife",
3
- "version": "0.2.8-alpha",
4
- "description": "The Strife SDK for JavaScript.",
3
+ "version": "0.2.9-alpha",
4
+ "description": "The Strife Client SDK for Strife Live Preview",
5
5
  "keywords": [],
6
6
  "files": [
7
7
  "dist"
8
8
  ],
9
+ "style": "dist/strife.min.css",
9
10
  "source": "index.js",
10
11
  "module": "dist/index.js",
11
12
  "unpkg": "dist/index.js",
12
13
  "scripts": {
13
14
  "build": "npx rollup -c -i index.js -d dist",
14
- "prepublishOnly": "npm run clean && npm run build && npm run copy",
15
+ "build:styles": "postcss ./composition/index.css -o dist/strife.min.css --verbose",
16
+ "prepublishOnly": "npm run clean && npm run build && npm run build:styles",
15
17
  "copy": "cp ./composition/index.css ./dist/index.css",
16
18
  "clean": "rimraf dist"
17
19
  },
18
20
  "devDependencies": {
19
21
  "acorn-import-assertions": "^1.8.0",
22
+ "cssnano": "^6.0.1",
23
+ "postcss": "^8.4.31",
24
+ "postcss-cli": "^10.1.0",
20
25
  "rimraf": "^5.0.5",
21
26
  "rollup": "^2.64.0",
22
27
  "rollup-plugin-import-assert": "^2.1.0",
package/README.md DELETED
@@ -1,4 +0,0 @@
1
- This is the Strife javascript SDK.
2
-
3
- Visit the [Strife developer documentation](https://developers.strife.app/docs/)
4
- for tutorials and examples about how to get started with Strife.
@@ -1,2 +0,0 @@
1
- import{u as e,i as t,r as s,a as n,b as d,C as i,A as l,S as a}from'./index-e24587fc.js';class c extends HTMLAnchorElement{constructor(){super(),this.tabIndex=0}connectedCallback(){e(this,(e=>this.render(e)))}render(e){if(e){this.href=e.href;const t=this.childNodes;if(0===t.length)this.textContent=e.text;else for(const s of t)s.nodeType===Node.TEXT_NODE&&(s.nodeValue=e.text);'_blank'===e.target&&(this.target=e.target)}}}customElements.define('str-anchor',c,{extends:'a'}),customElements.define('str-picture',class extends HTMLPictureElement{_currentSrc;constructor(){super(),this.image=this.querySelector('img'),this.tabIndex=0,this.image.complete?this.init():(this.image.addEventListener('load',(e=>{this.init()}),{once:!0}),this.image.addEventListener('error',(e=>{this.init()}),{once:!0})),this._initied=new Promise(((e,t)=>{this.loadedResolve=e,this.loadedReject=t}))}connectedCallback(){}init(){this.initPreview(),e(this,(e=>{this.render(e)}))}initPreview(){t(this),this.image.addEventListener('load',(e=>{this.loadedResolve()}),{once:!0})}render(e){this._initied.then((()=>{s(this,e)}))}disconnectedCallback(){}},{extends:'picture'}),customElements.define('str-img',class extends HTMLImageElement{constructor(){super(),this.tabIndex=0,this.complete?this.init():(this.addEventListener('load',(e=>{this.init()}),{once:!0}),this.addEventListener('error',(e=>{this.init()}),{once:!0})),this._loaded=new Promise(((e,t)=>{this.loadedResolve=e,this.loadedReject=t}))}connectedCallback(){}init(){this.initPreview(),e(this,(e=>{this.render(e)}))}initPreview(){n(this),this.addEventListener('load',(e=>{this.loadedResolve()}),{once:!0})}render(e){this._loaded.then((()=>{d(this,e)}))}disconnectedCallback(){}},{extends:'img'});class r extends HTMLTimeElement{constructor(){super(),this.tabIndex=0}connectedCallback(){e(this,(e=>this.render(e)))}render(e){e&&(this.textContent=((e,t)=>{if(!t)return e;const s=new Date(e);if(isNaN(s))return'Invalid Date';const n=s.getFullYear(),d=String(n).slice(-2),i=String(s.getMonth()+1).padStart(2,'0'),l=new Intl.DateTimeFormat('en-US',{month:'short'}).format(s),a={yyyy:n,yy:d,MMMM:new Intl.DateTimeFormat('en-US',{month:'long'}).format(s),MMM:l,MM:i,dd:String(s.getDate()).padStart(2,'0'),d:String(s.getDate()),hh:String(s.getHours()).padStart(2,'0'),mm:String(s.getMinutes()).padStart(2,'0'),ss:String(s.getSeconds()).padStart(2,'0')},c=new RegExp(Object.keys(a).join('|'),'g');return t.replace(c,(e=>a[e]))})(e,this.dataset.format))}}customElements.define('str-time',r,{extends:'time'});const o=t=>{e(t,(e=>{m(t,e)}))},m=(e,t)=>{e.textContent=t};customElements.define('str-address',class extends HTMLElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'address'}),customElements.define('str-p',class extends HTMLParagraphElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'p'}),customElements.define('str-span',class extends HTMLSpanElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'span'}),customElements.define('str-strong',class extends HTMLElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'strong'}),customElements.define('str-h1',class extends HTMLHeadingElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'h1'}),customElements.define('str-h2',class extends HTMLHeadingElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'h2'}),customElements.define('str-h3',class extends HTMLHeadingElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'h3'}),customElements.define('str-h4',class extends HTMLHeadingElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'h4'}),customElements.define('str-h5',class extends HTMLHeadingElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'h5'}),customElements.define('str-h6',class extends HTMLHeadingElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'h6'}),customElements.define('str-abbr',class extends HTMLElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'abbr'}),customElements.define('str-b',class extends HTMLElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'b'}),customElements.define('str-button',class extends HTMLButtonElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'button'}),customElements.define('str-cite',class extends HTMLElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'cite'}),customElements.define('str-code',class extends HTMLElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'code'}),customElements.define('str-dfn',class extends HTMLElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'dfn'}),customElements.define('str-em',class extends HTMLElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'em'}),customElements.define('str-i',class extends HTMLElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'i'}),customElements.define('str-label',class extends HTMLLabelElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'label'}),customElements.define('str-mark',class extends HTMLElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'mark'}),customElements.define('str-q',class extends HTMLQuoteElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'q'}),customElements.define('str-sub',class extends HTMLElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'sub'}),customElements.define('str-sup',class extends HTMLElement{connectedCallback(){o(this)}render(e){m(this,e)}},{extends:'sup'});let h=null;const u=t=>{h=a.instance,e(t,((e,s)=>{E(t,e,s)})),h.send({cmd:i.EU,updates:[{action:l.INIT,context:{propertyName:t.dataset.field}}]})},E=(e,t,s)=>{document.startViewTransition?document.startViewTransition((()=>{x(e,t,s)})):x(e,t,s)},x=(e,t,s)=>{const n=((e,t)=>{t.iterate||t.model;var s=t.templates.find((e=>e.collection===t.model['@metadata']['@collection']));let n=e;e.includes('.')&&(n=e.split('.')[0]);const d=s?.editors.find((e=>e.editor.propertyName===n)),i=d?.editor.type;if(e!==n)switch(i){case'chapters':const[s,i]=e.split('.').slice(1),l=t.model[n][Number(s)],a=t.templates.find((e=>e.normalizedName===l['@strife']?.template)),c=a?.editors.find((e=>e.editor.propertyName===i));return c?.editor.type;case'collection':const[r,o]=e.split('.').slice(1),m=t.templates.find((e=>e.collection===t.iterate['@metadata']['@collection'])),h=m?.editors.find((e=>e.editor.propertyName===o));return h?.editor.type;case'content-template':const[u]=e.split('.').slice(1),E=t.templates.find((e=>e.normalizedName===d.editor.attributes.templateId)),x=E?.editors.find((e=>e.editor.propertyName===u));return x?.editor.type}return i})(e.dataset.field,s);switch(e.innerHTML='',n){case'collection':((e,t,s)=>{t.documents&&t.documents.forEach(((t,n)=>{let d=document.getElementById(`collection_${e.dataset.field}`).content;e.appendChild(d.cloneNode(!0)),e.querySelectorAll(`[is^="str-"]:not([data-field^="${e.dataset.field}."])`).forEach((d=>{const i=d.dataset.field;var l,a;d.dataset.field=`${e.dataset.field}.${n}.${i}`,d.render((l=i,a=t,l?.split('.').reduce(((e,t)=>e?.[t]),a)),{templates:s.templates,model:s.model,iterate:t})}))}))})(e,t,s);break;case'chapters':((e,t,s)=>{t.forEach(((t,n)=>{let d=document.getElementById(t['@strife'].template).content;e.appendChild(d.cloneNode(!0)),e.querySelectorAll(`[is^="str-"]:not([data-field^="${e.dataset.field}."])`).forEach(((d,i)=>{const l=d.dataset.field;d.dataset.field=`${e.dataset.field}.${n}.${l}`,d.render(t[l],s)}))}))})(e,t,s);break;case'html':e.innerHTML=t;break;case'text':e.textContent=t;break;default:e.innerHTML=`<p>Unsupported container type: ${n} for ${e.tagName}</p>`}switch(n){case'collection':case'chapters':setTimeout((()=>{h.send({cmd:i.EU,updates:[{action:l.SYNC,context:{name:window.name,height:document.body.scrollHeight}}]})}),300)}};customElements.define('str-div',class extends HTMLDivElement{connectedCallback(){u(this)}render(e,t){E(this,e,t)}},{extends:'div'}),customElements.define('str-ul',class extends HTMLUListElement{connectedCallback(){u(this)}render(e,t){E(this,e,t)}},{extends:'ul'}),customElements.define('str-ol',class extends HTMLOListElement{connectedCallback(){u(this)}render(e,t){E(this,e,t)}},{extends:'ol'}),customElements.define('str-section',class extends HTMLElement{connectedCallback(){u(this)}render(e,t){E(this,e,t)}},{extends:'section'}),customElements.define('str-header',class extends HTMLElement{connectedCallback(){u(this)}render(e,t){E(this,e,t)}},{extends:'header'}),customElements.define('str-footer',class extends HTMLElement{connectedCallback(){u(this)}render(e,t){E(this,e,t)}},{extends:'footer'}),customElements.define('str-nav',class extends HTMLElement{connectedCallback(){u(this)}render(e,t){E(this,e,t)}},{extends:'nav'}),customElements.define('str-article',class extends HTMLElement{connectedCallback(){u(this)}render(e,t){E(this,e,t)}},{extends:'article'}),customElements.define('str-main',class extends HTMLElement{connectedCallback(){u(this)}render(e,t){E(this,e,t)}},{extends:'main'}),customElements.define('str-aside',class extends HTMLElement{connectedCallback(){u(this)}render(e,t){E(this,e,t)}},{extends:'aside'}),customElements.define('str-blockquote',class extends HTMLElement{connectedCallback(){u(this)}render(e,t){E(this,e,t)}},{extends:'blockquote'});
2
- //# sourceMappingURL=index-a5c03c15.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-a5c03c15.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- const e={CONNECT:1,HSHK:2,EU:4,SYNC:8},t={NONE:8,EDIT:16,RESET:32,INIT:64,SYNC:128,STATE:256};class s extends MessageChannel{static _instanceCache;static get instance(){return this._instanceCache||(this._instanceCache=new s),this._instanceCache}invoke(){switch(this.port1.addEventListener('message',(t=>{t.data.cmd===e.CONNECT&&this.onConnected(t)}),{once:!0}),this.port1.start(),this._ready=new Promise(((e,t)=>{this.readyResolve=e,this.readyReject=t})),this._ready.then((()=>{console.log(`SENDING HSHK FROM SDK IN WINDOW ${window.name}`),window.top.postMessage({cmd:e.HSHK,context:{name:window.name,height:document.body.scrollHeight}},'*',[this.port2])})),document.readyState){case'loading':case'interactive':document.onreadystatechange=()=>{'complete'===document.readyState&&this.readyResolve()};break;case'complete':this.readyResolve()}}constructor(){super(),this.broadcastChannel=new BroadcastChannel('app.broadcast')}subscribe(e){if('function'!=typeof e)throw new Error('messageHandler must be a function!');const t=t=>{try{e(t)}catch(e){console.error('Error in messageHandler:',e)}},r=e=>{try{this.broadcastChannel.postMessage(e.data)}catch(e){console.error('Error in messageHandler:',e)}};return this.broadcastChannel.addEventListener('message',t),this.port1.addEventListener('message',t),this.port1.addEventListener('message',r),()=>{this.broadcastChannel.removeEventListener('message',t),this.port1.removeEventListener('message',t),this.port1.removeEventListener('message',r),this.port1.close(),s._instanceCache=null}}send(e){this.port1.postMessage(e),this.broadcastChannel.postMessage(e)}onConnected(e){return e}}const r=r=>{if('function'!=typeof r)throw new Error('messageHandler must be a function!');return s.instance.subscribe((s=>{try{if(s.data.cmd===e.SYNC)for(const e of s.data.sync)e.action!==t.STATE||r(e.state)}catch(e){console.error('Error in messageHandler:',e)}}))},i=(e,t)=>{if(t&&t.source&&t.source.crop){const s=e.offsetWidth/t.width,r=e.offsetWidth/2-t.source.originalWidth*(t.source.crop.zoom*s)*t.source.crop.focusX,i=e.offsetHeight/2-t.source.originalHeight*(t.source.crop.zoom*s)*t.source.crop.focusY,a=t.source.originalWidth/e.offsetWidth*(t.source.crop.zoom*s);e.style.setProperty('--img-previewing-url',`url(${t.source.originalPreview})`),e.style.setProperty('--img-previewing-size',100*a+'%'),e.style.setProperty('--img-previewing-position',`${r}px ${i}px`),t.source.originalPreview?e.classList.remove('previewing--empty'):e.classList.add('previewing--empty')}else t&&t.draft?(e.style.setProperty('--img-previewing-url',`url(${t.draft+'?cb='+Date.now()})`),e.style.setProperty('--img-previewing-size','100%'),e.style.setProperty('--img-previewing-position','0px,0px'),e.classList.remove('previewing--empty')):e.classList.add('previewing--empty')},a=e=>{e.classList.add('previewing'),e.src||e.classList.add('previewing--empty'),e.style.width=e.width+'px',e.style.height=e.height+'px',e.style.setProperty('--img-previewing-url',`url(${e.src})`),e.style.setProperty('--img-previewing-size','100%'),e.style.setProperty('--img-previewing-position','0px,0px'),e.src=d},n=e=>{const t=e.querySelector('img'),s=[...e.querySelectorAll('source')],r=s.find((e=>{if(t.currentSrc){const s=new URL(o(t.currentSrc)),r=new URL(o(e.srcset));return s.href===r.href}return window.matchMedia(e.media).matches}));r&&(t.dataset.propertyMedia=r.dataset?.propertyMedia,!t.currentSrc&&r.width&&r.height&&t.classList.add('previewing--empty'),t.classList.add('previewing'),t.style.maxWidth='100%',t.style.width=r.width+'px',t.style.aspectRatio=r.width/r.height,t.style.setProperty('--img-previewing-url',`url(${t.currentSrc||r.srcset})`),t.style.setProperty('--img-previewing-size','100%'),t.style.setProperty('--img-previewing-position','0px,0px'),t.src=d,s.forEach((e=>{e.srcset=d})))},o=e=>e.startsWith('http://')||e.startsWith('https://')?e:'https:'+e,c=(e,t)=>{const s=e.querySelector('img'),r=s.dataset?.propertyMedia;r&&t?i(s,t[r]):console.warn('No property media found on picture element',window.name,s)},d='https://cdn.strife.app/AS3SX_-B59mU1hdDS7B_YfI5Lu9Ut-kLpdaAhraKgy4/w:1/h:1/aHR0cHM6Ly9zdHJpZmUuYi1jZG4ubmV0L3RyYW5zcGFyZW50MXgxLnBuZw.png',p=[],h=({data:r})=>{try{if(r.cmd===e.SYNC){r.sync.forEach((e=>{switch(e.action){case t.INIT:p.forEach((({self:t,handler:s})=>{const r=e.data.find((e=>e.propertyName===t.dataset.field));e.currentPath===window.location.pathname&&r&&(t.dataset.placeholder=r.placeholder)}));break;case t.EDIT:case t.RESET:p.forEach((({self:s,handler:r})=>{if(e.currentPath===window.location.pathname&&(e.action===t.RESET||e.data.some((e=>e.name===s.dataset.field)))){const t=e.data.findIndex((e=>e.name===s.dataset.field));t>=0&&r(e.data[t].value,e.context)}}))}}));s.instance.send({cmd:e.EU,updates:[{action:t.SYNC,context:{name:window.name,height:document.body.scrollHeight}}]})}}catch(e){console.error(e)}},l=(e,t)=>p.push({self:e,handler:t}),m=()=>{'undefined'!=typeof window&&window.top!==window.self&&(import('./index-a5c03c15.js'),s.instance.invoke(),s.instance.subscribe(h))};export{t as A,e as C,s as S,a,i as b,m as c,n as i,c as r,r as s,l as u};
2
- //# sourceMappingURL=index-e24587fc.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-e24587fc.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
package/dist/index.css DELETED
@@ -1,37 +0,0 @@
1
- :root {
2
- --str-placeholder-text-opacity: 0.3;
3
- --str-placeholder-background-color: #0099ff;
4
- --str-placeholder-background-opacity: 0.8;
5
- }
6
- img.previewing {
7
- --img-previewing-url: '';
8
- --img-previewing-size: 100%;
9
- --img-previewing-position: 0px 0px;
10
- background-image: var(--img-previewing-url);
11
- background-repeat: no-repeat;
12
- background-position: var(--img-previewing-position);
13
- background-size: var(--img-previewing-size);
14
- }
15
- img.previewing.previewing--empty {
16
- background-image: repeating-linear-gradient(45deg, var(--str-placeholder-background-color) 0, transparent 1px, transparent 0, transparent 50%);
17
- background-repeat: repeat;
18
- background-position: 0 0;
19
- background-size: 15px 15px;
20
- outline: solid 1px var(--str-placeholder-background-color);
21
- opacity: var(--str-placeholder-background-opacity);
22
- }
23
-
24
-
25
-
26
- :where([is^="str-h"]:empty, [is^="str-textarea"]:empty, [is^="str-address"]:empty, [is^="str-anchor"]:empty, [is^="str-p"]:empty)::before {
27
- color: inherit;
28
-
29
- opacity: var(--str-placeholder-text-opacity);
30
-
31
- content: attr(data-placeholder);
32
- }
33
-
34
- ::view-transition-old(root),
35
- ::view-transition-new(root) {
36
- animation-duration: 0.5s;
37
- }