@dskripchenko/embed 1.0.6 → 1.1.0

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/dist/embed.js CHANGED
@@ -1,6 +1,6 @@
1
- (function(){function e(e){return typeof e==`string`&&e.trim().toLowerCase().startsWith(`ru`)?`ru`:`en`}function t(e){return e===`light`||e===`dark`||e===`system`}function n(e){let t=e.trim();return t.endsWith(`/`)?t:`${t}/`}function r(r={},i=document,a={}){let o=i.documentElement,s=typeof matchMedia==`function`?matchMedia(`(prefers-color-scheme: dark)`):null,c=new Set,l=null,u=null,d=`https://cdn.jsdelivr.net/npm/`,f={...a},p=!1,m=_();function h(){let e=o.getAttribute(`data-theme`);return e===`dark`||e===`light`?e:null}function g(){return l===`light`||l===`dark`?l:l===`system`?s?.matches?`dark`:`light`:h()??`light`}function _(){return Object.freeze({theme:l,resolvedTheme:g(),locale:u??e(o.getAttribute(`lang`)),cdnBase:d,versions:Object.freeze({...f})})}function v(){if(l===null)return;let e=g();o.getAttribute(`data-theme`)!==e&&(p=!0,o.setAttribute(`data-theme`,e),p=!1)}function y(){let e=_(),t=e.theme!==m.theme||e.resolvedTheme!==m.resolvedTheme||e.locale!==m.locale||e.cdnBase!==m.cdnBase||JSON.stringify(e.versions)!==JSON.stringify(m.versions);if(m=e,t)for(let e of[...c])try{e(m)}catch(e){console.error(`[dsk-embed] config listener failed`,e)}}function b(r){return`theme`in r&&(r.theme===null||r.theme===void 0?l=null:t(r.theme)?l=r.theme:console.warn(`[dsk-embed] unknown theme "${String(r.theme)}"; use light, dark or system`)),`locale`in r&&(u=r.locale?e(r.locale):null),typeof r.cdnBase==`string`&&r.cdnBase.trim()!==``&&(d=n(r.cdnBase)),r.versions&&typeof r.versions==`object`&&(f={...f,...r.versions}),v(),y(),m}let x=typeof MutationObserver==`function`?new MutationObserver(()=>{if(p)return;let e=h();l!==null&&e&&e!==g()&&(l=e),y()}):null;x?.observe(o,{attributes:!0,attributeFilter:[`data-theme`,`lang`]});let S=()=>{v(),y()};return s?.addEventListener?.(`change`,S),b(r),{get:()=>m,configure:b,subscribe(e){return c.add(e),()=>c.delete(e)},dispose(){x?.disconnect(),s?.removeEventListener?.(`change`,S),c.clear()}}}function i(e){return e.startsWith(`dsk:`)?e:`dsk:`+e}function a(e=document){let t=new Map;function n(n,a,o){let s=i(n),c=e=>{o&&r(n,a),a(e.detail,e)},l=t.get(a);return l||t.set(a,l=new Map),l.has(s)||(l.set(s,c),e.addEventListener(s,c)),()=>r(n,a)}function r(n,r){let a=i(n),o=t.get(r)?.get(a);o&&(e.removeEventListener(a,o),t.get(r)?.delete(a))}return{on:(e,t)=>n(e,t,!1),once:(e,t)=>n(e,t,!0),off:r,emit(t,n,r){let a=new CustomEvent(i(t),{detail:n,bubbles:!0,composed:!0,cancelable:!0});return(r??e).dispatchEvent(a)}}}function o(e){return e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}function s(e){return e.attr??o(e.prop)}var c=new Set([`false`,`0`,`off`,`no`]);function l(e){if(e!==null)return!c.has(e.trim().toLowerCase())}function u(e){if(e===null||e.trim()===``)return;let t=Number(e);return Number.isFinite(t)?t:void 0}function d(e){if(e===null)return;let t=e.trim();if(t===``)return[];if(t.startsWith(`[`)){let e=JSON.parse(t);if(!Array.isArray(e))throw SyntaxError(`expected a JSON array`);return e.map(e=>String(e))}return t.split(`,`).map(e=>e.trim()).filter(e=>e!==``)}function f(e){return d(e)?.map(Number).filter(e=>Number.isFinite(e))}function p(e){if(e!==null&&e.trim()!==``)return JSON.parse(e)}function m(e){if(e===null)return;let t=e.trim().toLowerCase();return t===`session`||t===`local`?t:l(t)}function h(e,t){switch(e.type){case`string`:return t??void 0;case`boolean`:return l(t);case`number`:return u(t);case`list`:return d(t);case`numbers`:return f(t);case`json`:return p(t);case`credentials`:return m(t);case`enum`:return t!==null&&e.values?.includes(t.trim())?t.trim():void 0}}function g(e,t){let n={},r=[];for(let i of t){let t=s(i);try{let r=h(i,e.getAttribute(t));r!==void 0&&(n[i.prop]=r)}catch(e){r.push({attr:t,message:e instanceof Error?e.message:String(e)})}}return{props:n,errors:r}}var _=[{prop:`locale`,type:`string`},{prop:`loading`,type:`enum`,values:[`lazy`,`eager`]}],v=[{prop:`src`,type:`string`},{prop:`loop`,type:`boolean`},{prop:`preload`,type:`enum`,values:[`none`,`metadata`,`auto`]},{prop:`crossorigin`,type:`enum`,values:[``,`anonymous`,`use-credentials`]},{prop:`exclusive`,type:`boolean`},{prop:`resumeKey`,type:`string`},{prop:`rates`,type:`numbers`},{prop:`hotkeys`,type:`boolean`},{prop:`hlsOptions`,type:`json`}],y={"dsk-video":[..._,...v,{prop:`sources`,type:`json`},{prop:`tracks`,type:`json`},{prop:`poster`,type:`string`},{prop:`thumbnails`,type:`string`},{prop:`autoplay`,type:`boolean`},{prop:`muted`,type:`boolean`},{prop:`controls`,type:`boolean`},{prop:`aspectRatio`,type:`string`},{prop:`label`,type:`string`},{prop:`autoHide`,type:`number`}],"dsk-audio":[..._,...v,{prop:`type`,type:`string`},{prop:`trackTitle`,type:`string`},{prop:`artist`,type:`string`},{prop:`tracks`,type:`json`},{prop:`variant`,type:`enum`,values:[`default`,`mini`]},{prop:`waveform`,type:`boolean`},{prop:`peaks`,type:`numbers`},{prop:`waveformMaxBytes`,type:`number`},{prop:`waveformMaxDuration`,type:`number`},{prop:`autoAdvance`,type:`boolean`},{prop:`showVolume`,type:`boolean`},{prop:`showRate`,type:`boolean`},{prop:`showPlaylist`,type:`boolean`},{prop:`index`,type:`number`}],"dsk-diagram":[..._,{prop:`src`,type:`string`},{prop:`label`,type:`string`}],"dsk-openapi":[..._,{prop:`mode`,type:`enum`,values:[`reference`,`operation`,`block`,`editor`]},{prop:`view`,type:`enum`,values:[`visual`,`source`,`preview`]},{prop:`src`,type:`string`},{prop:`specs`,type:`json`},{prop:`active`,type:`string`},{prop:`operation`,type:`string`},{prop:`referenceUrl`,type:`string`},{prop:`specId`,type:`string`},{prop:`tryIt`,type:`boolean`},{prop:`proxy`,type:`string`},{prop:`baseUrl`,type:`string`},{prop:`defaultSnippet`,type:`string`},{prop:`snippetTargets`,type:`list`},{prop:`persistCredentials`,type:`credentials`},{prop:`hashNavigation`,type:`boolean`},{prop:`heading`,type:`string`},{prop:`editable`,type:`boolean`},{prop:`height`,type:`string`}],"dsk-flow":[..._,{prop:`src`,type:`string`},{prop:`pollUrl`,type:`string`},{prop:`pollInterval`,type:`number`},{prop:`state`,type:`json`},{prop:`editable`,type:`boolean`},{prop:`readonly`,type:`boolean`},{prop:`toggleUrl`,type:`string`},{prop:`subgraphUrl`,type:`string`},{prop:`direction`,type:`enum`,values:[`TB`,`LR`,`auto`]},{prop:`edgeStyle`,type:`enum`,values:[`orthogonal`,`smooth`]},{prop:`wheel`,type:`enum`,values:[`zoom`,`pan`]},{prop:`minimap`,type:`boolean`},{prop:`controls`,type:`boolean`},{prop:`details`,type:`boolean`},{prop:`statusBar`,type:`boolean`},{prop:`palette`,type:`list`},{prop:`height`,type:`string`},{prop:`name`,type:`string`},{prop:`openapiTarget`,type:`string`},{prop:`mediaTarget`,type:`string`}],"dsk-markdown":[..._,{prop:`src`,type:`string`},{prop:`toc`,type:`boolean`},{prop:`tocDepth`,type:`number`},{prop:`linkBase`,type:`string`},{prop:`imageBase`,type:`string`}],"dsk-editor":[..._,{prop:`value`,type:`string`},{prop:`name`,type:`string`},{prop:`input`,type:`string`},{prop:`placeholder`,type:`string`},{prop:`readonly`,type:`boolean`},{prop:`toolbar`,type:`boolean`},{prop:`minHeight`,type:`string`},{prop:`maxHeight`,type:`string`},{prop:`resizable`,type:`boolean`}]},b=new Set([`SCRIPT`,`TEMPLATE`,`SOURCE`,`TRACK`,`INPUT`]);function x(e){let t=e.replace(/\r\n?/g,`
1
+ (function(){function e(e){return typeof e==`string`&&e.trim().toLowerCase().startsWith(`ru`)?`ru`:`en`}function t(e){return e===`light`||e===`dark`||e===`system`}function n(e){let t=e.trim();return t.endsWith(`/`)?t:`${t}/`}function r(r={},i=document,a={}){let o=i.documentElement,s=typeof matchMedia==`function`?matchMedia(`(prefers-color-scheme: dark)`):null,c=new Set,l=null,u=null,d=`https://cdn.jsdelivr.net/npm/`,f={...a},p=!1,m=_();function h(){let e=o.getAttribute(`data-theme`);return e===`dark`||e===`light`?e:null}function g(){return l===`light`||l===`dark`?l:l===`system`?s?.matches?`dark`:`light`:h()??`light`}function _(){return Object.freeze({theme:l,resolvedTheme:g(),locale:u??e(o.getAttribute(`lang`)),cdnBase:d,versions:Object.freeze({...f})})}function v(){if(l===null)return;let e=g();o.getAttribute(`data-theme`)!==e&&(p=!0,o.setAttribute(`data-theme`,e),p=!1)}function y(){let e=_(),t=e.theme!==m.theme||e.resolvedTheme!==m.resolvedTheme||e.locale!==m.locale||e.cdnBase!==m.cdnBase||JSON.stringify(e.versions)!==JSON.stringify(m.versions);if(m=e,t)for(let e of[...c])try{e(m)}catch(e){console.error(`[dsk-embed] config listener failed`,e)}}function b(r){return`theme`in r&&(r.theme===null||r.theme===void 0?l=null:t(r.theme)?l=r.theme:console.warn(`[dsk-embed] unknown theme "${String(r.theme)}"; use light, dark or system`)),`locale`in r&&(u=r.locale?e(r.locale):null),typeof r.cdnBase==`string`&&r.cdnBase.trim()!==``&&(d=n(r.cdnBase)),r.versions&&typeof r.versions==`object`&&(f={...f,...r.versions}),v(),y(),m}let x=typeof MutationObserver==`function`?new MutationObserver(()=>{if(p)return;let e=h();l!==null&&e&&e!==g()&&(l=e),y()}):null;x?.observe(o,{attributes:!0,attributeFilter:[`data-theme`,`lang`]});let S=()=>{v(),y()};return s?.addEventListener?.(`change`,S),b(r),{get:()=>m,configure:b,subscribe(e){return c.add(e),()=>c.delete(e)},dispose(){x?.disconnect(),s?.removeEventListener?.(`change`,S),c.clear()}}}function i(e){return e.startsWith(`dsk:`)?e:`dsk:`+e}function a(e=document){let t=new Map;function n(n,a,o){let s=i(n),c=e=>{o&&r(n,a),a(e.detail,e)},l=t.get(a);return l||t.set(a,l=new Map),l.has(s)||(l.set(s,c),e.addEventListener(s,c)),()=>r(n,a)}function r(n,r){let a=i(n),o=t.get(r)?.get(a);o&&(e.removeEventListener(a,o),t.get(r)?.delete(a))}return{on:(e,t)=>n(e,t,!1),once:(e,t)=>n(e,t,!0),off:r,emit(t,n,r){let a=new CustomEvent(i(t),{detail:n,bubbles:!0,composed:!0,cancelable:!0});return(r??e).dispatchEvent(a)}}}function o(e){return e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}function s(e){return e.attr??o(e.prop)}var c=new Set([`false`,`0`,`off`,`no`]);function l(e){if(e!==null)return!c.has(e.trim().toLowerCase())}function u(e){if(e===null||e.trim()===``)return;let t=Number(e);return Number.isFinite(t)?t:void 0}function d(e){if(e===null)return;let t=e.trim();if(t===``)return[];if(t.startsWith(`[`)){let e=JSON.parse(t);if(!Array.isArray(e))throw SyntaxError(`expected a JSON array`);return e.map(e=>String(e))}return t.split(`,`).map(e=>e.trim()).filter(e=>e!==``)}function f(e){return d(e)?.map(Number).filter(e=>Number.isFinite(e))}function p(e){if(e!==null&&e.trim()!==``)return JSON.parse(e)}function m(e){if(e===null)return;let t=e.trim().toLowerCase();return t===`session`||t===`local`?t:l(t)}function h(e,t){switch(e.type){case`string`:return t??void 0;case`boolean`:return l(t);case`number`:return u(t);case`list`:return d(t);case`numbers`:return f(t);case`json`:return p(t);case`credentials`:return m(t);case`enum`:return t!==null&&e.values?.includes(t.trim())?t.trim():void 0}}function g(e,t){let n={},r=[];for(let i of t){let t=s(i);try{let r=h(i,e.getAttribute(t));r!==void 0&&(n[i.prop]=r)}catch(e){r.push({attr:t,message:e instanceof Error?e.message:String(e)})}}return{props:n,errors:r}}var _=[{prop:`locale`,type:`string`},{prop:`loading`,type:`enum`,values:[`lazy`,`eager`]}],v=[{prop:`src`,type:`string`},{prop:`loop`,type:`boolean`},{prop:`preload`,type:`enum`,values:[`none`,`metadata`,`auto`]},{prop:`crossorigin`,type:`enum`,values:[``,`anonymous`,`use-credentials`]},{prop:`exclusive`,type:`boolean`},{prop:`resumeKey`,type:`string`},{prop:`rates`,type:`numbers`},{prop:`hotkeys`,type:`boolean`},{prop:`hlsOptions`,type:`json`}],y={"dsk-video":[..._,...v,{prop:`sources`,type:`json`},{prop:`tracks`,type:`json`},{prop:`poster`,type:`string`},{prop:`thumbnails`,type:`string`},{prop:`autoplay`,type:`boolean`},{prop:`muted`,type:`boolean`},{prop:`controls`,type:`boolean`},{prop:`aspectRatio`,type:`string`},{prop:`label`,type:`string`},{prop:`autoHide`,type:`number`}],"dsk-audio":[..._,...v,{prop:`type`,type:`string`},{prop:`trackTitle`,type:`string`},{prop:`artist`,type:`string`},{prop:`tracks`,type:`json`},{prop:`variant`,type:`enum`,values:[`default`,`mini`]},{prop:`waveform`,type:`boolean`},{prop:`peaks`,type:`numbers`},{prop:`waveformMaxBytes`,type:`number`},{prop:`waveformMaxDuration`,type:`number`},{prop:`autoAdvance`,type:`boolean`},{prop:`showVolume`,type:`boolean`},{prop:`showRate`,type:`boolean`},{prop:`showPlaylist`,type:`boolean`},{prop:`index`,type:`number`}],"dsk-diagram":[..._,{prop:`src`,type:`string`},{prop:`label`,type:`string`}],"dsk-openapi":[..._,{prop:`mode`,type:`enum`,values:[`reference`,`operation`,`block`,`editor`]},{prop:`view`,type:`enum`,values:[`visual`,`source`,`preview`]},{prop:`src`,type:`string`},{prop:`specs`,type:`json`},{prop:`active`,type:`string`},{prop:`operation`,type:`string`},{prop:`referenceUrl`,type:`string`},{prop:`specId`,type:`string`},{prop:`tryIt`,type:`boolean`},{prop:`proxy`,type:`string`},{prop:`baseUrl`,type:`string`},{prop:`defaultSnippet`,type:`string`},{prop:`snippetTargets`,type:`list`},{prop:`persistCredentials`,type:`credentials`},{prop:`hashNavigation`,type:`boolean`},{prop:`heading`,type:`string`},{prop:`editable`,type:`boolean`},{prop:`height`,type:`string`}],"dsk-flow":[..._,{prop:`src`,type:`string`},{prop:`pollUrl`,type:`string`},{prop:`pollInterval`,type:`number`},{prop:`state`,type:`json`},{prop:`editable`,type:`boolean`},{prop:`readonly`,type:`boolean`},{prop:`toggleUrl`,type:`string`},{prop:`subgraphUrl`,type:`string`},{prop:`direction`,type:`enum`,values:[`TB`,`LR`,`auto`]},{prop:`edgeStyle`,type:`enum`,values:[`orthogonal`,`smooth`]},{prop:`wheel`,type:`enum`,values:[`zoom`,`pan`]},{prop:`minimap`,type:`boolean`},{prop:`controls`,type:`boolean`},{prop:`details`,type:`boolean`},{prop:`statusBar`,type:`boolean`},{prop:`palette`,type:`list`},{prop:`height`,type:`string`},{prop:`name`,type:`string`},{prop:`openapiTarget`,type:`string`},{prop:`mediaTarget`,type:`string`}],"dsk-board":[..._,{prop:`src`,type:`string`},{prop:`boardUrl`,type:`string`},{prop:`pollInterval`,type:`number`},{prop:`editable`,type:`boolean`},{prop:`readonly`,type:`boolean`},{prop:`lockable`,type:`boolean`},{prop:`minimap`,type:`boolean`},{prop:`height`,type:`string`},{prop:`name`,type:`string`},{prop:`userId`,type:`string`},{prop:`userName`,type:`string`},{prop:`userColor`,type:`string`}],"dsk-markdown":[..._,{prop:`src`,type:`string`},{prop:`toc`,type:`boolean`},{prop:`tocDepth`,type:`number`},{prop:`linkBase`,type:`string`},{prop:`imageBase`,type:`string`}],"dsk-editor":[..._,{prop:`value`,type:`string`},{prop:`name`,type:`string`},{prop:`input`,type:`string`},{prop:`placeholder`,type:`string`},{prop:`readonly`,type:`boolean`},{prop:`toolbar`,type:`boolean`},{prop:`minHeight`,type:`string`},{prop:`maxHeight`,type:`string`},{prop:`resizable`,type:`boolean`}]},b=new Set([`SCRIPT`,`TEMPLATE`,`SOURCE`,`TRACK`,`INPUT`]);function x(e){let t=e.replace(/\r\n?/g,`
2
2
  `).split(`
3
3
  `);for(;t.length>0&&t[0].trim()===``;)t.shift();for(;t.length>0&&t[t.length-1].trim()===``;)t.pop();let n=1/0;for(let e of t)e.trim()!==``&&(n=Math.min(n,e.length-e.trimStart().length));return!Number.isFinite(n)||n===0?t.join(`
4
4
  `):t.map(e=>e.slice(Math.min(n,e.length-e.trimStart().length))).join(`
5
- `)}function S(e){let t=(e.getAttribute(`type`)??``).trim().toLowerCase();return t!==``&&t!==`module`&&!/javascript|ecmascript/.test(t)}function C(e){for(let t of Array.from(e.children))if(t.tagName===`SCRIPT`&&S(t))return x(t.textContent??``);for(let t of Array.from(e.children))if(t.tagName===`TEMPLATE`)return x(t.innerHTML);let t=``;for(let n of Array.from(e.childNodes))(n.nodeType===Node.TEXT_NODE||n.nodeType===Node.ELEMENT_NODE&&!b.has(n.tagName)&&!n.hasAttribute(`data-dsk-root`))&&(t+=n.textContent??``);return x(t)}function w(e){let t={};for(let n of Array.from(e.attributes)){let e=n.name.startsWith(`data-`)?n.name.slice(5):n.name;(!(e in t)||n.name.startsWith(`data-`))&&(t[e]=n.value)}return t}function T(e){let t=[],n=[];for(let r of Array.from(e.children))r.tagName===`SOURCE`?t.push(w(r)):r.tagName===`TRACK`&&n.push(w(r));return{sources:t,tracks:n}}var ee={"dsk-video":{plugin:`media`,methods:[`play`,`pause`,`toggle`,`seek`,`playChapter`],getters:[`state`,`media`,`chapters`],objects:[]},"dsk-audio":{plugin:`media`,methods:[`play`,`pause`,`toggle`,`seek`,`next`,`prev`],getters:[`state`,`media`],objects:[]},"dsk-diagram":{plugin:`diagram`,methods:[],getters:[`svg`],objects:[]},"dsk-openapi":{plugin:`openapi`,methods:[`go`,`open`,`print`],getters:[`loaded`,`value`],objects:[`spec`,`send`,`labels`]},"dsk-flow":{plugin:`flow`,methods:[`fit`,`select`,`enter`,`back`,`refresh`,`undo`,`redo`],getters:[`stack`],objects:[`graph`,`loadSubgraph`,`persistToggle`,`labels`,`registry`]},"dsk-markdown":{plugin:`markdown`,methods:[],getters:[`value`],objects:[]},"dsk-editor":{plugin:`editor`,methods:[`focus`],getters:[`controller`],objects:[]}},E=null,D={io:null};function O(e,t){typeof IntersectionObserver==`function`?(D.io??=new IntersectionObserver(e=>{for(let t of e)t.isIntersecting&&(D.io.unobserve(t.target),t.target._dskLazyStart?.())},{rootMargin:`200px`}),e._dskLazyStart=t,D.io.observe(e)):t()}function k(t,n,r){let i=r.map(s);class a extends HTMLElement{static get observedAttributes(){return i}_overrides={};_source=null;_children={sources:[],tracks:[]};_instance=null;_container=null;_starting=!1;_waitingForParse=!1;_updateQueued=!1;_resolveReady;_ready;constructor(){super(),this._ready=new Promise(e=>this._resolveReady=e)}get ready(){return this._ready}get source(){return this._source===null&&this._capture(),this._source??``}set source(e){this._source=String(e??``),this._queueUpdate()}connectedCallback(){this._instance||this._starting||(document.readyState===`loading`?this._waitingForParse||(this._waitingForParse=!0,document.addEventListener(`DOMContentLoaded`,()=>{this._waitingForParse=!1,this.isConnected&&this.connectedCallback()},{once:!0})):this.getAttribute(`loading`)===`lazy`?O(this,()=>this._start()):this._start())}disconnectedCallback(){D.io?.unobserve(this),queueMicrotask(()=>{this.isConnected||this._destroy()})}attributeChangedCallback(e,t,n){t!==n&&(e===`loading`&&n!==`lazy`&&!this._instance&&!this._starting&&this.isConnected&&this._start(),this._queueUpdate())}refresh(){this._capture(!0),this._queueUpdate()}_capture(e=!1){(this._source===null||e)&&(this._source=C(this),this._children=T(this))}_props(){let{props:e,errors:n}=g(this,r);for(let e of n)console.warn(`[dsk-embed] <${t} ${e.attr}>: ${e.message}`);return{...e,...this._overrides}}_locale(){let t=this._overrides.locale??this.getAttribute(`locale`);return typeof t==`string`&&t!==``?e(t):E?.config().locale??`en`}_queueUpdate(){this._instance&&!this._updateQueued&&(this._updateQueued=!0,queueMicrotask(()=>{this._updateQueued=!1,this._instance?.update()}))}_start(){let e=E;if(!e||this._starting||this._instance)return;this._starting=!0,this._capture();for(let e of Array.from(this.childNodes))e.nodeType===Node.ELEMENT_NODE&&b.has(e.tagName)||e.nodeType===Node.ELEMENT_NODE&&e.hasAttribute(`data-dsk-root`)||e.remove();let r=document.createElement(`div`);r.setAttribute(`data-dsk-root`,``),r.className=`dsk-root`,this.appendChild(r),this._container=r,this.setAttribute(`data-dsk-state`,`loading`),e.load(n.plugin).then(i=>{if(!this.isConnected||this._container!==r)return;if(!i.mountElement)throw Error(`plugin ${n.plugin} has no elements`);let a={host:e,el:this,tag:t,container:r,props:()=>this._props(),source:()=>this.source,children:()=>this._children,emit:(t,n)=>e.emit(t,n,this),locale:()=>this._locale()};this._instance=i.mountElement(a),this.setAttribute(`data-dsk-state`,`ready`),this._resolveReady(),e.emit(`ready`,{tag:t},this)}).catch(n=>{let i=n instanceof Error?n.message:String(n);console.error(`[dsk-embed] <${t}> failed to load`,n),this.setAttribute(`data-dsk-state`,`error`),r.replaceChildren();let a=document.createElement(`div`);a.className=`dsk-error`,a.setAttribute(`role`,`alert`),a.textContent=i,r.appendChild(a),e.emit(`error`,{tag:t,message:i},this)}).finally(()=>{this._starting=!1})}_destroy(){if(this._instance)try{this._instance.destroy()}catch(e){console.error(`[dsk-embed] <${t}> destroy failed`,e)}this._instance=null,this._container?.remove(),this._container=null,this.removeAttribute(`data-dsk-state`),this._ready=new Promise(e=>this._resolveReady=e)}}let o=a.prototype;for(let e of r)e.prop in o||Object.defineProperty(o,e.prop,{configurable:!0,enumerable:!0,get(){let t=this._instance?.api;return t&&e.prop in t?t[e.prop]:e.prop in this._overrides?this._overrides[e.prop]:this._props()[e.prop]},set(t){t===void 0?delete this._overrides[e.prop]:this._overrides[e.prop]=t,this._queueUpdate()}});for(let e of n.objects)Object.defineProperty(o,e,{configurable:!0,enumerable:!0,get(){let t=this._instance?.api;return t&&e in t?t[e]:this._overrides[e]},set(t){t===void 0?delete this._overrides[e]:this._overrides[e]=t,this._queueUpdate()}});for(let e of n.methods)o[e]=function(...n){let r=()=>{let r=this._instance?.api?.[e];if(typeof r!=`function`)throw Error(`<${t}>.${e}() is not available`);return r(...n)};return this._instance?r():this.ready.then(r)};for(let e of n.getters)Object.defineProperty(o,e,{configurable:!0,enumerable:!0,get(){return this._instance?.api?.[e]}});return a}function te(e,t=customElements){E=e;for(let[e,n]of Object.entries(ee))t.get(e)||t.define(e,k(e,n,y[e]??[]))}var ne=/^[a-z0-9][a-z0-9_+.-]*$/;function A(e){return String(e).trim().toLowerCase()}function re(e){if(typeof e==`function`)return e;if(e&&typeof e==`object`&&(typeof e.mount==`function`||typeof e.html==`string`)){let t=e;return()=>t}throw TypeError("a block renderer is a function, or an object with `html` or `mount`")}function j(){let e=new Map,t=new Set,n=()=>{for(let e of[...t])e()},r={register(t,i){let a=A(t);if(!ne.test(a))throw TypeError(`invalid block language "${t}"`);let o=re(i);return e.set(a,o),n(),()=>{e.get(a)===o&&r.unregister(a)}},unregister(t){e.delete(A(t))&&n()},get:t=>e.get(A(t)),has:t=>e.has(A(t)),languages:()=>[...e.keys()],all:()=>Object.fromEntries(e),subscribe(e){return t.add(e),()=>t.delete(e)}};return r}var M=new WeakMap,N=`[data-dsk-root], [contenteditable], .uid-markdown, dsk-markdown, dsk-editor`;function P(e,t){for(let n of[t,e]){if(!n)continue;let e=n.getAttribute(`data-lang`)??n.getAttribute(`data-language`);if(e)return e.trim().toLowerCase();for(let e of Array.from(n.classList)){let t=/^(?:language|lang)-(.+)$/.exec(e);if(t)return t[1].toLowerCase()}}return null}function F(e,t,n={}){let r=n.languages?.map(e=>e.toLowerCase()),i=[],a=[];e instanceof HTMLElement&&e.tagName===`PRE`&&a.push(e),a.push(...Array.from(e.querySelectorAll(`pre`)));for(let e of a){if(e.hasAttribute(`data-dsk-failed`)||e.closest(N))continue;let n=e.querySelector(`:scope > code`),a=P(e,n);a&&t.has(a)&&(!r||r.includes(a))&&i.push({pre:e,code:(n??e).textContent??``,language:a})}return i}function I(e){return e instanceof Error?e.message:String(e)}function L(e,t,n){t.setAttribute(`data-dsk-failed`,``),t.title=n,e.isConnected&&e.replaceWith(t),M.delete(e)}async function R(e,t,n={}){let r=F(e,t,n),i=0,a=r.map(async({pre:e,code:n,language:r})=>{let a=t.get(r),o=document.createElement(`div`);o.className=`dsk-block dsk-block--${r}`,o.setAttribute(`data-dsk-block`,r),o.setAttribute(`data-dsk-state`,`loading`),e.replaceWith(o),M.set(o,{pre:e,handle:null});let s;try{s=await a(n,{language:r,index:i++})}catch(t){return L(o,e,I(t)),0}if(!o.isConnected)return 0;if(!s||s.error!==void 0||s.html===void 0&&!s.mount)return L(o,e,s?.error??`nothing to render`),0;if(s.mount)try{let t=s.mount(o,{code:n,language:r,editable:!1,setCode:()=>{}});M.set(o,{pre:e,handle:typeof t==`function`?{destroy:t}:t??null})}catch(t){return L(o,e,I(t)),0}else o.innerHTML=s.html;return o.setAttribute(`data-dsk-state`,`ready`),1});return(await Promise.all(a)).reduce((e,t)=>e+t,0)}function z(e){let t=0,n=[];e instanceof Element&&e.hasAttribute(`data-dsk-block`)&&n.push(e),n.push(...Array.from(e.querySelectorAll(`[data-dsk-block]`)));for(let e of n){let n=M.get(e);if(n){try{n.handle?.destroy?.()}catch(e){console.error(`[dsk-embed] block destroy failed`,e)}e.replaceWith(n.pre),M.delete(e),t++}}return t}var B={mermaid:`diagram`,openapi:`openapi`,flow:`flow`,video:`media`,audio:`media`};function V(e){let t=r(e.config??{},document,e.versions),n=j(),i=a(document),o=new Map,s={version:e.version,config:()=>t.get(),onConfig:e=>t.subscribe(e),blocks:n,emit:(e,t,n)=>i.emit(e,t,n),load(n){let r=o.get(n);return r||(r=e.loadPlugin(n,t.get()).then(e=>(e.setup?.(s),e)),r.catch(()=>o.delete(n)),o.set(n,r)),r}};for(let[e,t]of Object.entries(B))n.register(e,async(n,r)=>{let i=(await s.load(t)).renderers?.[e];return i?i(n,r):{error:`no ${e} renderer in the ${t} plugin`}});t.subscribe(e=>{i.emit(`config`,{theme:e.theme,resolvedTheme:e.resolvedTheme,locale:e.locale})});let c={version:e.version,mode:e.mode,versions:Object.freeze({...e.versions}),importMap:e.importMap??null,get config(){return t.get()},configure:e=>t.configure(e),blocks:{register:(e,t)=>n.register(e,t),unregister:e=>n.unregister(e),has:e=>n.has(e),list:()=>n.languages()},on:i.on,once:i.once,off:i.off,emit:i.emit,renderBlocks:(e=document.body,t)=>R(e,n,t),unrenderBlocks:(e=document.body)=>z(e),preload:async(...e)=>{await Promise.all(e.map(e=>s.load(e)))},host:s};return te(s),c}function H(e){let t={...globalThis.DskEmbedConfig??{}};if(e){let n=e.getAttribute(`data-theme`),r=e.getAttribute(`data-locale`),i=e.getAttribute(`data-cdn-base`);n&&(t.theme=n),r&&(t.locale=r),i&&(t.cdnBase=i)}return t}function U(e,t){if(!t||!t.hasAttribute(`data-render-blocks`))return;let n=t.getAttribute(`data-render-blocks`)||`body`,r=()=>{for(let t of Array.from(document.querySelectorAll(n)))e.renderBlocks(t)};document.readyState===`loading`?document.addEventListener(`DOMContentLoaded`,r,{once:!0}):r()}var W={vue:[`vue`,`dist/vue.runtime.esm-browser.prod.js`],"@dskripchenko/ui":[`@dskripchenko/ui`,`dist/index.mjs`],"@dskripchenko/ui/hls":[`@dskripchenko/ui`,`dist/hls/index.mjs`],"@dskripchenko/wysiwyg":[`@dskripchenko/wysiwyg`,`dist/index.mjs`],"@dskripchenko/diagrams":[`@dskripchenko/diagrams`,`dist/index.mjs`],"@dskripchenko/openapi":[`@dskripchenko/openapi`,`dist/index.mjs`],"@dskripchenko/openapi/vue":[`@dskripchenko/openapi`,`dist/vue.mjs`],"@dskripchenko/flow":[`@dskripchenko/flow`,`dist/index.mjs`],"@dskripchenko/flow/vue":[`@dskripchenko/flow`,`dist/vue.mjs`],"@dskripchenko/flow/mermaid":[`@dskripchenko/flow`,`dist/mermaid.mjs`]},G={tokens:[`@dskripchenko/ui`,`dist/styles/tokens.css`],themes:[`@dskripchenko/ui`,`dist/styles/themes.css`],kit:[`@dskripchenko/ui`,`dist/styles/index.css`],openapi:[`@dskripchenko/openapi`,`dist/style.css`],flow:[`@dskripchenko/flow`,`dist/style.css`],editor:[`@dskripchenko/wysiwyg`,`dist/style.css`]};function K(e,t,n,r){return`${e}${t}@${n}/${r}`}function ie(e,t){let n={};for(let[r,[i,a]]of Object.entries(W)){let o=t[i];if(!o)throw Error(`no version pinned for ${i}`);n[r]=K(e,i,o,a)}return{imports:n}}function q(e,t,n){let[r,i]=G[n];return K(e,r,t[r],i)}function J(e=document){let t={};for(let n of Array.from(e.querySelectorAll(`script[type="importmap"]`)))try{let e=JSON.parse(n.textContent??`{}`);for(let[n,r]of Object.entries(e.imports??{}))n in t||(t[n]=r)}catch{}return{imports:t}}function Y(e,t=document){let n=J(t),r={},i=[],a={};for(let[t,o]of Object.entries(e.imports)){let e=n.imports[t];e===void 0?(r[t]=o,a[t]=o):(a[t]=e,e!==o&&i.push({specifier:t,page:e,embed:o}))}let o=Object.keys(r);if(o.length>0){let e=t.createElement(`script`);e.type=`importmap`,e.setAttribute(`data-dsk-embed`,``),e.textContent=JSON.stringify({imports:r},null,2);let n=t.querySelector(`script[type="module"]`),i=n&&n.parentNode?n:null;i?i.parentNode.insertBefore(e,i):(t.head??t.documentElement).appendChild(e)}return{map:{imports:a},added:o,conflicts:i}}var ae={diagram:[`tokens`,`themes`],media:[`tokens`,`themes`,`kit`],markdown:[`tokens`,`themes`,`kit`],openapi:[`tokens`,`themes`,`kit`,`openapi`],flow:[`tokens`,`themes`,`kit`,`flow`],editor:[`tokens`,`themes`,`kit`,`editor`]},X=new Map;function oe(e){return e.head.querySelector(`link[rel="stylesheet"]:not([data-dsk-embed]), style:not([data-dsk-embed])`)}function se(e){let t=e.head.querySelectorAll(`link[data-dsk-embed], style[data-dsk-embed]`);return t.length>0?t[t.length-1]:null}function Z(e,t){let n=se(e);if(n)n.after(t);else{let n=oe(e);n?n.before(t):e.head.appendChild(t)}}function ce(e,t=document){let n=X.get(e);if(n)return n;if(Array.from(t.querySelectorAll(`link[rel="stylesheet"]`)).find(t=>t.href===e))return X.set(e,Promise.resolve()),X.get(e);let r=t.createElement(`link`);r.rel=`stylesheet`,r.href=e,r.setAttribute(`data-dsk-embed`,``);let i=new Promise(t=>{r.addEventListener(`load`,()=>t(),{once:!0}),r.addEventListener(`error`,()=>{console.error(`[dsk-embed] stylesheet failed to load: ${e}`),t()},{once:!0})});return Z(t,r),X.set(e,i),i}function le(e,t,n=document){if(n.querySelector(`style[data-dsk-embed="${e}"]`))return;let r=n.createElement(`style`);r.setAttribute(`data-dsk-embed`,e),r.textContent=t,Z(n,r)}var ue=`:root:not([data-theme]) { --uid-surface-base: var(--uid-color-zinc-50); --uid-surface-raised: var(--uid-color-white); --uid-surface-overlay: var(--uid-color-white); --uid-text-primary: var(--uid-color-zinc-900); --uid-text-secondary: var(--uid-color-zinc-500); --uid-text-tertiary: var(--uid-color-zinc-400); --uid-text-on-accent: var(--uid-color-white); --uid-border-subtle: var(--uid-color-zinc-200); --uid-border-default: var(--uid-color-zinc-300); --uid-border-hover: var(--uid-color-zinc-400); --uid-accent: var(--uid-color-teal-500); --uid-accent-hover: var(--uid-color-teal-600); --uid-accent-subtle: var(--uid-color-teal-50); --uid-accent-text: var(--uid-color-teal-700); --uid-danger: var(--uid-color-rose-600); --uid-danger-hover: var(--uid-color-rose-700); --uid-danger-subtle: var(--uid-color-rose-50); --uid-success: var(--uid-color-emerald-600); --uid-success-subtle: var(--uid-color-emerald-50); --uid-warning: var(--uid-color-amber-600); --uid-warning-subtle: var(--uid-color-amber-50); --uid-info: var(--uid-color-blue-600); --uid-info-subtle: var(--uid-color-blue-50); --uid-shadow-sm: 0 1px 2px rgb(0 0 0 / 0.05); --uid-shadow-md: 0 4px 12px rgb(0 0 0 / 0.08); --uid-shadow-lg: 0 8px 24px rgb(0 0 0 / 0.12); --uid-shadow-xl: 0 20px 60px rgb(0 0 0 / 0.3); }
6
- :where(dsk-video,dsk-audio,dsk-diagram,dsk-openapi,dsk-flow,dsk-markdown,dsk-editor){min-width:0;display:block;position:relative}:where(dsk-video,dsk-audio,dsk-diagram,dsk-openapi,dsk-flow,dsk-markdown,dsk-editor):not([data-dsk-state]){visibility:hidden;min-height:2rem;overflow:hidden}:where(.dsk-root){min-width:0;display:block}:where([data-dsk-state=loading],.dsk-block[data-dsk-state=loading]){border-radius:var(--uid-radius-md,8px);background:var(--uid-color-bg-subtle,#7f7f7f14);animation:1.4s ease-in-out infinite dsk-pulse}:where(dsk-video[data-dsk-state=loading]){aspect-ratio:16/9}:where(dsk-audio[data-dsk-state=loading]){min-height:72px}:where(dsk-diagram[data-dsk-state=loading],dsk-markdown[data-dsk-state=loading]){min-height:120px}:where(dsk-openapi[data-dsk-state=loading],dsk-editor[data-dsk-state=loading]){min-height:240px}:where(.dsk-block[data-dsk-state=loading]){min-height:96px}@keyframes dsk-pulse{50%{opacity:.55}}@media (prefers-reduced-motion:reduce){:where([data-dsk-state=loading],.dsk-block[data-dsk-state=loading]){animation:none}}:where(.dsk-error){padding:var(--uid-space-sm,8px) var(--uid-space-md,12px);border:1px solid var(--uid-danger,#dc2626);border-radius:var(--uid-radius-md,8px);color:var(--uid-danger,#dc2626);background:var(--uid-danger-subtle,#dc262614);font:13px/1.45 var(--uid-font-family-mono,ui-monospace, monospace);white-space:pre-wrap;overflow-wrap:anywhere}:where(dsk-video,dsk-audio,dsk-diagram,dsk-openapi,dsk-flow,dsk-markdown,dsk-editor,.dsk-block,[class^=uid-],[class*=\\ uid-]),:where(dsk-video,dsk-audio,dsk-diagram,dsk-openapi,dsk-flow,dsk-markdown,dsk-editor,.dsk-block,[class^=uid-],[class*=\\ uid-]) *,:where(dsk-video,dsk-audio,dsk-diagram,dsk-openapi,dsk-flow,dsk-markdown,dsk-editor,.dsk-block,[class^=uid-],[class*=\\ uid-]) :before,:where(dsk-video,dsk-audio,dsk-diagram,dsk-openapi,dsk-flow,dsk-markdown,dsk-editor,.dsk-block,[class^=uid-],[class*=\\ uid-]) :after{box-sizing:border-box}:where(dsk-video,dsk-audio,dsk-openapi,dsk-flow,dsk-editor,.dsk-block,[class^=uid-],[class*=\\ uid-]) :where(button,input,textarea,select){font:inherit}:where(dsk-video,dsk-audio,dsk-diagram,dsk-openapi,dsk-flow,dsk-markdown,dsk-editor,.dsk-block,body>[class^=uid-],body>[class*=\\ uid-]){font-family:var(--uid-font-family-sans);line-height:var(--uid-line-height-normal);color:var(--uid-text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:where(body>[class^=uid-],body>[class*=\\ uid-]){font-size:var(--uid-font-size-md)}:where([class^=uid-],[class*=\\ uid-]):focus-visible{outline:2px solid var(--uid-color-focus-ring);outline-offset:2px}:root{--dg-font-family:var(--uid-font-family-sans);--dg-text:var(--uid-text-primary);--dg-text-muted:var(--uid-text-secondary);--dg-line:var(--uid-text-tertiary);--dg-node-fill:var(--uid-accent-subtle);--dg-node-stroke:var(--uid-accent);--dg-node-text:var(--uid-text-primary);--dg-cluster-fill:var(--uid-color-bg-subtle);--dg-cluster-stroke:var(--uid-border-default);--dg-cluster-text:var(--uid-text-secondary);--dg-edge-label-fill:var(--uid-surface-raised);--dg-note-fill:var(--uid-warning-subtle);--dg-note-stroke:var(--uid-warning);--dg-note-text:var(--uid-text-primary);--dg-actor-fill:var(--uid-accent-subtle);--dg-actor-stroke:var(--uid-accent);--dg-activation-fill:var(--uid-accent-subtle);--dg-lifeline:var(--uid-border-default);--dg-block-stroke:var(--uid-border-hover);--dg-block-label-fill:var(--uid-color-bg-subtle);--dg-grid:var(--uid-border-subtle);--dg-task-fill:var(--uid-accent);--dg-task-stroke:var(--uid-accent-hover);--dg-task-active-fill:var(--uid-accent-subtle);--dg-task-done-fill:var(--uid-border-default);--dg-task-done-stroke:var(--uid-border-hover);--dg-task-crit-fill:var(--uid-danger);--dg-task-crit-stroke:var(--uid-danger-hover);--dg-task-text:var(--uid-text-on-accent);--dg-task-text-dark:var(--uid-text-primary);--dg-today:var(--uid-danger);--dg-state-start:var(--uid-text-primary);--dg-pie-stroke:var(--uid-surface-raised);--dg-row-fill:var(--uid-surface-raised);--dg-row-alt-fill:var(--uid-color-bg-subtle);--dg-c4-boundary-stroke:var(--uid-text-secondary);--dg-c4-boundary-text:var(--uid-text-primary);--dg-c4-node-stroke:var(--uid-text-secondary);--dg-c4-node-text:var(--uid-text-primary)}:root[data-theme=dark]{--dg-c4-person-fill:#1f5c99;--dg-c4-person-stroke:#6aa5e0;--dg-c4-system-fill:#1f6fbf;--dg-c4-system-stroke:#7bb4ee;--dg-c4-container-fill:#3b7fc0;--dg-c4-container-stroke:#93c5fd;--dg-c4-component-stroke:#bfdbfe;--dg-c4-external-fill:#5f6670;--dg-c4-external-stroke:#9ca3af}:where(.dsk-diagram){overflow-x:auto}:where(.dsk-diagram) svg{max-width:100%;height:auto;margin-inline:auto;display:block}:where(.dsk-block){margin:var(--uid-space-md,12px) 0;min-width:0}:where(.dsk-block--mermaid){overflow-x:auto}:where(.dsk-block--mermaid) svg{max-width:100%;height:auto;margin-inline:auto;display:block}:where(.dsk-flow-frame){border:1px solid var(--uid-border-subtle);border-radius:var(--uid-radius-md);background:var(--uid-surface-raised);position:relative;overflow:hidden}:where(.dsk-media){min-width:0}`;function Q(e,t){return e.replace(/(@dskripchenko\/embed)@[^/]+\//,`$1@${t}/`).replace(/[?#].*$/,``).replace(/[^/]*$/,``)}function de(e){let t=/^(.*\/)@dskripchenko\/embed@[^/]+\//.exec(e);return t?t[1]:null}var $=`1.0.6`,fe={vue:`3.5.44`,"@dskripchenko/ui":`1.16.0`,"@dskripchenko/wysiwyg":`0.5.3`,"@dskripchenko/diagrams":`1.1.0`,"@dskripchenko/openapi":`1.1.3`,"@dskripchenko/flow":`1.1.1`};function pe(){return document.currentScript instanceof HTMLScriptElement?document.currentScript:Array.from(document.querySelectorAll(`script[src]`)).reverse().find(e=>/\/embed(\.min)?\.js(\?|#|$)/.test(e.src))??null}function me(){if(window.DskEmbed){console.warn(`[dsk-embed] already loaded (${window.DskEmbed.mode} ${window.DskEmbed.version}); this copy is ignored`);return}let e=pe();e||console.warn(`[dsk-embed] cannot find its own <script>; assuming the default CDN`),e?.type===`module`&&console.warn(`[dsk-embed] embed.js runs best as a classic <script>: from a module the import map may come too late in browsers without multiple import maps`);let t=e?.src??`https://cdn.jsdelivr.net/npm/@dskripchenko/embed@${$}/dist/embed.js`,r=H(e),i=Q(t,$),a=n(r.cdnBase??de(t)??`https://cdn.jsdelivr.net/npm/`),o={...fe,...r.versions??{}},{map:s,conflicts:c}=Y(ie(a,o));for(let e of c)console.warn(`[dsk-embed] the page maps "${e.specifier}" to ${e.page}; the embed was built against ${e.embed}. A second copy of Vue or the kit breaks the elements — map both to the same file.`);le(`base`,ue);let l=V({mode:`loader`,version:$,versions:o,importMap:s,config:{...r,cdnBase:a,versions:o},async loadPlugin(e){let t=ae[e].map(e=>ce(q(a,o,e))),n=import(`${i}plugins/${e}.js`),[r]=await Promise.all([n,...t]);return r}});window.DskEmbed=l,U(l,e),document.dispatchEvent(new CustomEvent(`dsk:embed-ready`,{detail:{version:$,mode:`loader`}}))}me()})();
5
+ `)}function S(e){let t=(e.getAttribute(`type`)??``).trim().toLowerCase();return t!==``&&t!==`module`&&!/javascript|ecmascript/.test(t)}function C(e){for(let t of Array.from(e.children))if(t.tagName===`SCRIPT`&&S(t))return x(t.textContent??``);for(let t of Array.from(e.children))if(t.tagName===`TEMPLATE`)return x(t.innerHTML);let t=``;for(let n of Array.from(e.childNodes))(n.nodeType===Node.TEXT_NODE||n.nodeType===Node.ELEMENT_NODE&&!b.has(n.tagName)&&!n.hasAttribute(`data-dsk-root`))&&(t+=n.textContent??``);return x(t)}function w(e){let t={};for(let n of Array.from(e.attributes)){let e=n.name.startsWith(`data-`)?n.name.slice(5):n.name;(!(e in t)||n.name.startsWith(`data-`))&&(t[e]=n.value)}return t}function T(e){let t=[],n=[];for(let r of Array.from(e.children))r.tagName===`SOURCE`?t.push(w(r)):r.tagName===`TRACK`&&n.push(w(r));return{sources:t,tracks:n}}var ee={"dsk-video":{plugin:`media`,methods:[`play`,`pause`,`toggle`,`seek`,`playChapter`],getters:[`state`,`media`,`chapters`],objects:[]},"dsk-audio":{plugin:`media`,methods:[`play`,`pause`,`toggle`,`seek`,`next`,`prev`],getters:[`state`,`media`],objects:[]},"dsk-diagram":{plugin:`diagram`,methods:[],getters:[`svg`],objects:[]},"dsk-openapi":{plugin:`openapi`,methods:[`go`,`open`,`print`],getters:[`loaded`,`value`],objects:[`spec`,`send`,`labels`]},"dsk-flow":{plugin:`flow`,methods:[`fit`,`select`,`enter`,`back`,`refresh`,`undo`,`redo`],getters:[`stack`],objects:[`graph`,`loadSubgraph`,`persistToggle`,`labels`,`registry`]},"dsk-markdown":{plugin:`markdown`,methods:[],getters:[`value`],objects:[]},"dsk-board":{plugin:`board`,methods:[`fit`,`select`,`toPng`,`toSvg`,`undo`,`redo`],getters:[`value`],objects:[`board`,`provider`,`labels`]},"dsk-editor":{plugin:`editor`,methods:[`focus`],getters:[`controller`],objects:[]}},E=null,D={io:null};function O(e,t){typeof IntersectionObserver==`function`?(D.io??=new IntersectionObserver(e=>{for(let t of e)t.isIntersecting&&(D.io.unobserve(t.target),t.target._dskLazyStart?.())},{rootMargin:`200px`}),e._dskLazyStart=t,D.io.observe(e)):t()}function k(t,n,r){let i=r.map(s);class a extends HTMLElement{static get observedAttributes(){return i}_overrides={};_source=null;_children={sources:[],tracks:[]};_instance=null;_container=null;_starting=!1;_waitingForParse=!1;_updateQueued=!1;_resolveReady;_ready;constructor(){super(),this._ready=new Promise(e=>this._resolveReady=e)}get ready(){return this._ready}get source(){return this._source===null&&this._capture(),this._source??``}set source(e){this._source=String(e??``),this._queueUpdate()}connectedCallback(){this._instance||this._starting||(document.readyState===`loading`?this._waitingForParse||(this._waitingForParse=!0,document.addEventListener(`DOMContentLoaded`,()=>{this._waitingForParse=!1,this.isConnected&&this.connectedCallback()},{once:!0})):this.getAttribute(`loading`)===`lazy`?O(this,()=>this._start()):this._start())}disconnectedCallback(){D.io?.unobserve(this),queueMicrotask(()=>{this.isConnected||this._destroy()})}attributeChangedCallback(e,t,n){t!==n&&(e===`loading`&&n!==`lazy`&&!this._instance&&!this._starting&&this.isConnected&&this._start(),this._queueUpdate())}refresh(){this._capture(!0),this._queueUpdate()}_capture(e=!1){(this._source===null||e)&&(this._source=C(this),this._children=T(this))}_props(){let{props:e,errors:n}=g(this,r);for(let e of n)console.warn(`[dsk-embed] <${t} ${e.attr}>: ${e.message}`);return{...e,...this._overrides}}_locale(){let t=this._overrides.locale??this.getAttribute(`locale`);return typeof t==`string`&&t!==``?e(t):E?.config().locale??`en`}_queueUpdate(){this._instance&&!this._updateQueued&&(this._updateQueued=!0,queueMicrotask(()=>{this._updateQueued=!1,this._instance?.update()}))}_start(){let e=E;if(!e||this._starting||this._instance)return;this._starting=!0,this._capture();for(let e of Array.from(this.childNodes))e.nodeType===Node.ELEMENT_NODE&&b.has(e.tagName)||e.nodeType===Node.ELEMENT_NODE&&e.hasAttribute(`data-dsk-root`)||e.remove();let r=document.createElement(`div`);r.setAttribute(`data-dsk-root`,``),r.className=`dsk-root`,this.appendChild(r),this._container=r,this.setAttribute(`data-dsk-state`,`loading`),e.load(n.plugin).then(i=>{if(!this.isConnected||this._container!==r)return;if(!i.mountElement)throw Error(`plugin ${n.plugin} has no elements`);let a={host:e,el:this,tag:t,container:r,props:()=>this._props(),source:()=>this.source,children:()=>this._children,emit:(t,n)=>e.emit(t,n,this),locale:()=>this._locale()};this._instance=i.mountElement(a),this.setAttribute(`data-dsk-state`,`ready`),this._resolveReady(),e.emit(`ready`,{tag:t},this)}).catch(n=>{let i=n instanceof Error?n.message:String(n);console.error(`[dsk-embed] <${t}> failed to load`,n),this.setAttribute(`data-dsk-state`,`error`),r.replaceChildren();let a=document.createElement(`div`);a.className=`dsk-error`,a.setAttribute(`role`,`alert`),a.textContent=i,r.appendChild(a),e.emit(`error`,{tag:t,message:i},this)}).finally(()=>{this._starting=!1})}_destroy(){if(this._instance)try{this._instance.destroy()}catch(e){console.error(`[dsk-embed] <${t}> destroy failed`,e)}this._instance=null,this._container?.remove(),this._container=null,this.removeAttribute(`data-dsk-state`),this._ready=new Promise(e=>this._resolveReady=e)}}let o=a.prototype;for(let e of r)e.prop in o||Object.defineProperty(o,e.prop,{configurable:!0,enumerable:!0,get(){let t=this._instance?.api;return t&&e.prop in t?t[e.prop]:e.prop in this._overrides?this._overrides[e.prop]:this._props()[e.prop]},set(t){t===void 0?delete this._overrides[e.prop]:this._overrides[e.prop]=t,this._queueUpdate()}});for(let e of n.objects)Object.defineProperty(o,e,{configurable:!0,enumerable:!0,get(){let t=this._instance?.api;return t&&e in t?t[e]:this._overrides[e]},set(t){t===void 0?delete this._overrides[e]:this._overrides[e]=t,this._queueUpdate()}});for(let e of n.methods)o[e]=function(...n){let r=()=>{let r=this._instance?.api?.[e];if(typeof r!=`function`)throw Error(`<${t}>.${e}() is not available`);return r(...n)};return this._instance?r():this.ready.then(r)};for(let e of n.getters)Object.defineProperty(o,e,{configurable:!0,enumerable:!0,get(){return this._instance?.api?.[e]}});return a}function te(e,t=customElements){E=e;for(let[e,n]of Object.entries(ee))t.get(e)||t.define(e,k(e,n,y[e]??[]))}var ne=/^[a-z0-9][a-z0-9_+.-]*$/;function A(e){return String(e).trim().toLowerCase()}function re(e){if(typeof e==`function`)return e;if(e&&typeof e==`object`&&(typeof e.mount==`function`||typeof e.html==`string`)){let t=e;return()=>t}throw TypeError("a block renderer is a function, or an object with `html` or `mount`")}function j(){let e=new Map,t=new Set,n=()=>{for(let e of[...t])e()},r={register(t,i){let a=A(t);if(!ne.test(a))throw TypeError(`invalid block language "${t}"`);let o=re(i);return e.set(a,o),n(),()=>{e.get(a)===o&&r.unregister(a)}},unregister(t){e.delete(A(t))&&n()},get:t=>e.get(A(t)),has:t=>e.has(A(t)),languages:()=>[...e.keys()],all:()=>Object.fromEntries(e),subscribe(e){return t.add(e),()=>t.delete(e)}};return r}var M=new WeakMap,N=`[data-dsk-root], [contenteditable], .uid-markdown, dsk-markdown, dsk-editor`;function P(e,t){for(let n of[t,e]){if(!n)continue;let e=n.getAttribute(`data-lang`)??n.getAttribute(`data-language`);if(e)return e.trim().toLowerCase();for(let e of Array.from(n.classList)){let t=/^(?:language|lang)-(.+)$/.exec(e);if(t)return t[1].toLowerCase()}}return null}function F(e,t,n={}){let r=n.languages?.map(e=>e.toLowerCase()),i=[],a=[];e instanceof HTMLElement&&e.tagName===`PRE`&&a.push(e),a.push(...Array.from(e.querySelectorAll(`pre`)));for(let e of a){if(e.hasAttribute(`data-dsk-failed`)||e.closest(N))continue;let n=e.querySelector(`:scope > code`),a=P(e,n);a&&t.has(a)&&(!r||r.includes(a))&&i.push({pre:e,code:(n??e).textContent??``,language:a})}return i}function I(e){return e instanceof Error?e.message:String(e)}function L(e,t,n){t.setAttribute(`data-dsk-failed`,``),t.title=n,e.isConnected&&e.replaceWith(t),M.delete(e)}async function R(e,t,n={}){let r=F(e,t,n),i=0,a=r.map(async({pre:e,code:n,language:r})=>{let a=t.get(r),o=document.createElement(`div`);o.className=`dsk-block dsk-block--${r}`,o.setAttribute(`data-dsk-block`,r),o.setAttribute(`data-dsk-state`,`loading`),e.replaceWith(o),M.set(o,{pre:e,handle:null});let s;try{s=await a(n,{language:r,index:i++})}catch(t){return L(o,e,I(t)),0}if(!o.isConnected)return 0;if(!s||s.error!==void 0||s.html===void 0&&!s.mount)return L(o,e,s?.error??`nothing to render`),0;if(s.mount)try{let t=s.mount(o,{code:n,language:r,editable:!1,setCode:()=>{}});M.set(o,{pre:e,handle:typeof t==`function`?{destroy:t}:t??null})}catch(t){return L(o,e,I(t)),0}else o.innerHTML=s.html;return o.setAttribute(`data-dsk-state`,`ready`),1});return(await Promise.all(a)).reduce((e,t)=>e+t,0)}function z(e){let t=0,n=[];e instanceof Element&&e.hasAttribute(`data-dsk-block`)&&n.push(e),n.push(...Array.from(e.querySelectorAll(`[data-dsk-block]`)));for(let e of n){let n=M.get(e);if(n){try{n.handle?.destroy?.()}catch(e){console.error(`[dsk-embed] block destroy failed`,e)}e.replaceWith(n.pre),M.delete(e),t++}}return t}var B={mermaid:`diagram`,openapi:`openapi`,flow:`flow`,board:`board`,video:`media`,audio:`media`};function V(e){let t=r(e.config??{},document,e.versions),n=j(),i=a(document),o=new Map,s={version:e.version,config:()=>t.get(),onConfig:e=>t.subscribe(e),blocks:n,emit:(e,t,n)=>i.emit(e,t,n),load(n){let r=o.get(n);return r||(r=e.loadPlugin(n,t.get()).then(e=>(e.setup?.(s),e)),r.catch(()=>o.delete(n)),o.set(n,r)),r}};for(let[e,t]of Object.entries(B))n.register(e,async(n,r)=>{let i=(await s.load(t)).renderers?.[e];return i?i(n,r):{error:`no ${e} renderer in the ${t} plugin`}});t.subscribe(e=>{i.emit(`config`,{theme:e.theme,resolvedTheme:e.resolvedTheme,locale:e.locale})});let c={version:e.version,mode:e.mode,versions:Object.freeze({...e.versions}),importMap:e.importMap??null,get config(){return t.get()},configure:e=>t.configure(e),blocks:{register:(e,t)=>n.register(e,t),unregister:e=>n.unregister(e),has:e=>n.has(e),list:()=>n.languages()},on:i.on,once:i.once,off:i.off,emit:i.emit,renderBlocks:(e=document.body,t)=>R(e,n,t),unrenderBlocks:(e=document.body)=>z(e),preload:async(...e)=>{await Promise.all(e.map(e=>s.load(e)))},host:s};return te(s),c}function H(e){let t={...globalThis.DskEmbedConfig??{}};if(e){let n=e.getAttribute(`data-theme`),r=e.getAttribute(`data-locale`),i=e.getAttribute(`data-cdn-base`);n&&(t.theme=n),r&&(t.locale=r),i&&(t.cdnBase=i)}return t}function U(e,t){if(!t||!t.hasAttribute(`data-render-blocks`))return;let n=t.getAttribute(`data-render-blocks`)||`body`,r=()=>{for(let t of Array.from(document.querySelectorAll(n)))e.renderBlocks(t)};document.readyState===`loading`?document.addEventListener(`DOMContentLoaded`,r,{once:!0}):r()}var W={vue:[`vue`,`dist/vue.runtime.esm-browser.prod.js`],"@dskripchenko/ui":[`@dskripchenko/ui`,`dist/index.mjs`],"@dskripchenko/ui/hls":[`@dskripchenko/ui`,`dist/hls/index.mjs`],"@dskripchenko/wysiwyg":[`@dskripchenko/wysiwyg`,`dist/index.mjs`],"@dskripchenko/diagrams":[`@dskripchenko/diagrams`,`dist/index.mjs`],"@dskripchenko/openapi":[`@dskripchenko/openapi`,`dist/index.mjs`],"@dskripchenko/openapi/vue":[`@dskripchenko/openapi`,`dist/vue.mjs`],"@dskripchenko/flow":[`@dskripchenko/flow`,`dist/index.mjs`],"@dskripchenko/flow/vue":[`@dskripchenko/flow`,`dist/vue.mjs`],"@dskripchenko/flow/mermaid":[`@dskripchenko/flow`,`dist/mermaid.mjs`],"@dskripchenko/board":[`@dskripchenko/board`,`dist/index.mjs`],"@dskripchenko/board/vue":[`@dskripchenko/board`,`dist/vue.mjs`]},G={tokens:[`@dskripchenko/ui`,`dist/styles/tokens.css`],themes:[`@dskripchenko/ui`,`dist/styles/themes.css`],kit:[`@dskripchenko/ui`,`dist/styles/index.css`],openapi:[`@dskripchenko/openapi`,`dist/style.css`],flow:[`@dskripchenko/flow`,`dist/style.css`],board:[`@dskripchenko/board`,`dist/style.css`],editor:[`@dskripchenko/wysiwyg`,`dist/style.css`]};function K(e,t,n,r){return`${e}${t}@${n}/${r}`}function ie(e,t){let n={};for(let[r,[i,a]]of Object.entries(W)){let o=t[i];if(!o)throw Error(`no version pinned for ${i}`);n[r]=K(e,i,o,a)}return{imports:n}}function q(e,t,n){let[r,i]=G[n];return K(e,r,t[r],i)}function J(e=document){let t={};for(let n of Array.from(e.querySelectorAll(`script[type="importmap"]`)))try{let e=JSON.parse(n.textContent??`{}`);for(let[n,r]of Object.entries(e.imports??{}))n in t||(t[n]=r)}catch{}return{imports:t}}function Y(e,t=document){let n=J(t),r={},i=[],a={};for(let[t,o]of Object.entries(e.imports)){let e=n.imports[t];e===void 0?(r[t]=o,a[t]=o):(a[t]=e,e!==o&&i.push({specifier:t,page:e,embed:o}))}let o=Object.keys(r);if(o.length>0){let e=t.createElement(`script`);e.type=`importmap`,e.setAttribute(`data-dsk-embed`,``),e.textContent=JSON.stringify({imports:r},null,2);let n=t.querySelector(`script[type="module"]`),i=n&&n.parentNode?n:null;i?i.parentNode.insertBefore(e,i):(t.head??t.documentElement).appendChild(e)}return{map:{imports:a},added:o,conflicts:i}}var ae={diagram:[`tokens`,`themes`],media:[`tokens`,`themes`,`kit`],markdown:[`tokens`,`themes`,`kit`],openapi:[`tokens`,`themes`,`kit`,`openapi`],flow:[`tokens`,`themes`,`kit`,`flow`],editor:[`tokens`,`themes`,`kit`,`editor`],board:[`tokens`,`themes`,`kit`,`board`]},X=new Map;function oe(e){return e.head.querySelector(`link[rel="stylesheet"]:not([data-dsk-embed]), style:not([data-dsk-embed])`)}function se(e){let t=e.head.querySelectorAll(`link[data-dsk-embed], style[data-dsk-embed]`);return t.length>0?t[t.length-1]:null}function Z(e,t){let n=se(e);if(n)n.after(t);else{let n=oe(e);n?n.before(t):e.head.appendChild(t)}}function ce(e,t=document){let n=X.get(e);if(n)return n;if(Array.from(t.querySelectorAll(`link[rel="stylesheet"]`)).find(t=>t.href===e))return X.set(e,Promise.resolve()),X.get(e);let r=t.createElement(`link`);r.rel=`stylesheet`,r.href=e,r.setAttribute(`data-dsk-embed`,``);let i=new Promise(t=>{r.addEventListener(`load`,()=>t(),{once:!0}),r.addEventListener(`error`,()=>{console.error(`[dsk-embed] stylesheet failed to load: ${e}`),t()},{once:!0})});return Z(t,r),X.set(e,i),i}function le(e,t,n=document){if(n.querySelector(`style[data-dsk-embed="${e}"]`))return;let r=n.createElement(`style`);r.setAttribute(`data-dsk-embed`,e),r.textContent=t,Z(n,r)}var ue=`:root:not([data-theme]) { --uid-surface-base: var(--uid-color-zinc-50); --uid-surface-raised: var(--uid-color-white); --uid-surface-overlay: var(--uid-color-white); --uid-text-primary: var(--uid-color-zinc-900); --uid-text-secondary: var(--uid-color-zinc-500); --uid-text-tertiary: var(--uid-color-zinc-400); --uid-text-on-accent: var(--uid-color-white); --uid-border-subtle: var(--uid-color-zinc-200); --uid-border-default: var(--uid-color-zinc-300); --uid-border-hover: var(--uid-color-zinc-400); --uid-accent: var(--uid-color-teal-500); --uid-accent-hover: var(--uid-color-teal-600); --uid-accent-subtle: var(--uid-color-teal-50); --uid-accent-text: var(--uid-color-teal-700); --uid-danger: var(--uid-color-rose-600); --uid-danger-hover: var(--uid-color-rose-700); --uid-danger-subtle: var(--uid-color-rose-50); --uid-success: var(--uid-color-emerald-600); --uid-success-subtle: var(--uid-color-emerald-50); --uid-warning: var(--uid-color-amber-600); --uid-warning-subtle: var(--uid-color-amber-50); --uid-info: var(--uid-color-blue-600); --uid-info-subtle: var(--uid-color-blue-50); --uid-shadow-sm: 0 1px 2px rgb(0 0 0 / 0.05); --uid-shadow-md: 0 4px 12px rgb(0 0 0 / 0.08); --uid-shadow-lg: 0 8px 24px rgb(0 0 0 / 0.12); --uid-shadow-xl: 0 20px 60px rgb(0 0 0 / 0.3); }
6
+ :where(dsk-video,dsk-audio,dsk-diagram,dsk-openapi,dsk-flow,dsk-board,dsk-markdown,dsk-editor){min-width:0;display:block;position:relative}:where(dsk-video,dsk-audio,dsk-diagram,dsk-openapi,dsk-flow,dsk-board,dsk-markdown,dsk-editor):not([data-dsk-state]){visibility:hidden;min-height:2rem;overflow:hidden}:where(.dsk-root){min-width:0;display:block}:where([data-dsk-state=loading],.dsk-block[data-dsk-state=loading]){border-radius:var(--uid-radius-md,8px);background:var(--uid-color-bg-subtle,#7f7f7f14);animation:1.4s ease-in-out infinite dsk-pulse}:where(dsk-video[data-dsk-state=loading]){aspect-ratio:16/9}:where(dsk-audio[data-dsk-state=loading]){min-height:72px}:where(dsk-diagram[data-dsk-state=loading],dsk-markdown[data-dsk-state=loading]){min-height:120px}:where(dsk-openapi[data-dsk-state=loading],dsk-editor[data-dsk-state=loading]){min-height:240px}:where(.dsk-block[data-dsk-state=loading]){min-height:96px}@keyframes dsk-pulse{50%{opacity:.55}}@media (prefers-reduced-motion:reduce){:where([data-dsk-state=loading],.dsk-block[data-dsk-state=loading]){animation:none}}:where(.dsk-error){padding:var(--uid-space-sm,8px) var(--uid-space-md,12px);border:1px solid var(--uid-danger,#dc2626);border-radius:var(--uid-radius-md,8px);color:var(--uid-danger,#dc2626);background:var(--uid-danger-subtle,#dc262614);font:13px/1.45 var(--uid-font-family-mono,ui-monospace, monospace);white-space:pre-wrap;overflow-wrap:anywhere}:where(dsk-video,dsk-audio,dsk-diagram,dsk-openapi,dsk-flow,dsk-board,dsk-markdown,dsk-editor,.dsk-block,[class^=uid-],[class*=\\ uid-]),:where(dsk-video,dsk-audio,dsk-diagram,dsk-openapi,dsk-flow,dsk-board,dsk-markdown,dsk-editor,.dsk-block,[class^=uid-],[class*=\\ uid-]) *,:where(dsk-video,dsk-audio,dsk-diagram,dsk-openapi,dsk-flow,dsk-board,dsk-markdown,dsk-editor,.dsk-block,[class^=uid-],[class*=\\ uid-]) :before,:where(dsk-video,dsk-audio,dsk-diagram,dsk-openapi,dsk-flow,dsk-board,dsk-markdown,dsk-editor,.dsk-block,[class^=uid-],[class*=\\ uid-]) :after{box-sizing:border-box}:where(dsk-video,dsk-audio,dsk-openapi,dsk-flow,dsk-editor,.dsk-block,[class^=uid-],[class*=\\ uid-]) :where(button,input,textarea,select){font:inherit}:where(dsk-video,dsk-audio,dsk-diagram,dsk-openapi,dsk-flow,dsk-board,dsk-markdown,dsk-editor,.dsk-block,body>[class^=uid-],body>[class*=\\ uid-]){font-family:var(--uid-font-family-sans);line-height:var(--uid-line-height-normal);color:var(--uid-text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:where(body>[class^=uid-],body>[class*=\\ uid-]){font-size:var(--uid-font-size-md)}:where([class^=uid-],[class*=\\ uid-]):focus-visible{outline:2px solid var(--uid-color-focus-ring);outline-offset:2px}:root{--dg-font-family:var(--uid-font-family-sans);--dg-text:var(--uid-text-primary);--dg-text-muted:var(--uid-text-secondary);--dg-line:var(--uid-text-tertiary);--dg-node-fill:var(--uid-accent-subtle);--dg-node-stroke:var(--uid-accent);--dg-node-text:var(--uid-text-primary);--dg-cluster-fill:var(--uid-color-bg-subtle);--dg-cluster-stroke:var(--uid-border-default);--dg-cluster-text:var(--uid-text-secondary);--dg-edge-label-fill:var(--uid-surface-raised);--dg-note-fill:var(--uid-warning-subtle);--dg-note-stroke:var(--uid-warning);--dg-note-text:var(--uid-text-primary);--dg-actor-fill:var(--uid-accent-subtle);--dg-actor-stroke:var(--uid-accent);--dg-activation-fill:var(--uid-accent-subtle);--dg-lifeline:var(--uid-border-default);--dg-block-stroke:var(--uid-border-hover);--dg-block-label-fill:var(--uid-color-bg-subtle);--dg-grid:var(--uid-border-subtle);--dg-task-fill:var(--uid-accent);--dg-task-stroke:var(--uid-accent-hover);--dg-task-active-fill:var(--uid-accent-subtle);--dg-task-done-fill:var(--uid-border-default);--dg-task-done-stroke:var(--uid-border-hover);--dg-task-crit-fill:var(--uid-danger);--dg-task-crit-stroke:var(--uid-danger-hover);--dg-task-text:var(--uid-text-on-accent);--dg-task-text-dark:var(--uid-text-primary);--dg-today:var(--uid-danger);--dg-state-start:var(--uid-text-primary);--dg-pie-stroke:var(--uid-surface-raised);--dg-row-fill:var(--uid-surface-raised);--dg-row-alt-fill:var(--uid-color-bg-subtle);--dg-c4-boundary-stroke:var(--uid-text-secondary);--dg-c4-boundary-text:var(--uid-text-primary);--dg-c4-node-stroke:var(--uid-text-secondary);--dg-c4-node-text:var(--uid-text-primary)}:root[data-theme=dark]{--dg-c4-person-fill:#1f5c99;--dg-c4-person-stroke:#6aa5e0;--dg-c4-system-fill:#1f6fbf;--dg-c4-system-stroke:#7bb4ee;--dg-c4-container-fill:#3b7fc0;--dg-c4-container-stroke:#93c5fd;--dg-c4-component-stroke:#bfdbfe;--dg-c4-external-fill:#5f6670;--dg-c4-external-stroke:#9ca3af}:where(.dsk-diagram){overflow-x:auto}:where(.dsk-diagram) svg{max-width:100%;height:auto;margin-inline:auto;display:block}:where(.dsk-block){margin:var(--uid-space-md,12px) 0;min-width:0}:where(.dsk-block--mermaid){overflow-x:auto}:where(.dsk-block--mermaid) svg{max-width:100%;height:auto;margin-inline:auto;display:block}:where(.dsk-flow-frame,.dsk-board-frame){border:1px solid var(--uid-border-subtle);border-radius:var(--uid-radius-md);background:var(--uid-surface-raised);position:relative;overflow:hidden}:where(.dsk-media){min-width:0}`;function Q(e,t){return e.replace(/(@dskripchenko\/embed)@[^/]+\//,`$1@${t}/`).replace(/[?#].*$/,``).replace(/[^/]*$/,``)}function de(e){let t=/^(.*\/)@dskripchenko\/embed@[^/]+\//.exec(e);return t?t[1]:null}var $=`1.1.0`,fe={vue:`3.5.44`,"@dskripchenko/ui":`1.16.0`,"@dskripchenko/wysiwyg":`0.5.3`,"@dskripchenko/diagrams":`1.1.0`,"@dskripchenko/openapi":`1.1.3`,"@dskripchenko/flow":`1.1.1`,"@dskripchenko/board":`0.2.1`};function pe(){return document.currentScript instanceof HTMLScriptElement?document.currentScript:Array.from(document.querySelectorAll(`script[src]`)).reverse().find(e=>/\/embed(\.min)?\.js(\?|#|$)/.test(e.src))??null}function me(){if(window.DskEmbed){console.warn(`[dsk-embed] already loaded (${window.DskEmbed.mode} ${window.DskEmbed.version}); this copy is ignored`);return}let e=pe();e||console.warn(`[dsk-embed] cannot find its own <script>; assuming the default CDN`),e?.type===`module`&&console.warn(`[dsk-embed] embed.js runs best as a classic <script>: from a module the import map may come too late in browsers without multiple import maps`);let t=e?.src??`https://cdn.jsdelivr.net/npm/@dskripchenko/embed@${$}/dist/embed.js`,r=H(e),i=Q(t,$),a=n(r.cdnBase??de(t)??`https://cdn.jsdelivr.net/npm/`),o={...fe,...r.versions??{}},{map:s,conflicts:c}=Y(ie(a,o));for(let e of c)console.warn(`[dsk-embed] the page maps "${e.specifier}" to ${e.page}; the embed was built against ${e.embed}. A second copy of Vue or the kit breaks the elements — map both to the same file.`);le(`base`,ue);let l=V({mode:`loader`,version:$,versions:o,importMap:s,config:{...r,cdnBase:a,versions:o},async loadPlugin(e){let t=ae[e].map(e=>ce(q(a,o,e))),n=import(`${i}plugins/${e}.js`),[r]=await Promise.all([n,...t]);return r}});window.DskEmbed=l,U(l,e),document.dispatchEvent(new CustomEvent(`dsk:embed-ready`,{detail:{version:$,mode:`loader`}}))}me()})();
@@ -9,6 +9,8 @@
9
9
  "@dskripchenko/openapi/vue": "https://cdn.jsdelivr.net/npm/@dskripchenko/openapi@1.1.3/dist/vue.mjs",
10
10
  "@dskripchenko/flow": "https://cdn.jsdelivr.net/npm/@dskripchenko/flow@1.1.1/dist/index.mjs",
11
11
  "@dskripchenko/flow/vue": "https://cdn.jsdelivr.net/npm/@dskripchenko/flow@1.1.1/dist/vue.mjs",
12
- "@dskripchenko/flow/mermaid": "https://cdn.jsdelivr.net/npm/@dskripchenko/flow@1.1.1/dist/mermaid.mjs"
12
+ "@dskripchenko/flow/mermaid": "https://cdn.jsdelivr.net/npm/@dskripchenko/flow@1.1.1/dist/mermaid.mjs",
13
+ "@dskripchenko/board": "https://cdn.jsdelivr.net/npm/@dskripchenko/board@0.2.1/dist/index.mjs",
14
+ "@dskripchenko/board/vue": "https://cdn.jsdelivr.net/npm/@dskripchenko/board@0.2.1/dist/vue.mjs"
13
15
  }
14
16
  }
@@ -0,0 +1 @@
1
+ import{n as e}from"../chunks/attrs-ommFQqA5.js";import{a as t,c as n,i as r,l as i,n as a,o,r as s,t as c}from"../chunks/runtime-C8zlTt5D.js";import{h as l,shallowRef as u}from"vue";import{httpProvider as d,parseBoard as f}from"@dskripchenko/board";import{BoardEditor as p}from"@dskripchenko/board/vue";function m(e){n(e)}function h(){return{version:1,objects:{}}}function g(n){let i=r(),o=u(null),m=u(null),g=null,_=``,v=null,y=``;function b(){let e=n.props().name;typeof e==`string`&&e!==``&&(v||(v=document.createElement(`input`),v.type=`hidden`,n.el.appendChild(v)),v.name=e,v.value=o.value?JSON.stringify(o.value):``)}function x(e,t){let n=typeof t==`number`&&t>0?Math.max(250,t):0,r=`${e}|${n}`;return g&&_===r||(g?.close?.(),g=d(n?{base:e,wait:0,interval:n}:{base:e}),_=r),g}async function S(){let e=n.props();if(typeof e.boardUrl==`string`&&e.boardUrl!==``){m.value=null;return}let t=e.board===void 0?typeof e.src==`string`&&e.src!==``?`src:${e.src}`:`source:${n.source()}`:`object`;if(t!==y||t===`object`){y=t;try{let t=e.board===void 0?typeof e.src==`string`&&e.src!==``?await a(e.src):n.source().trim()||h():e.board;o.value=f(t),m.value=null,b(),n.emit(`load`,{objects:Object.keys(o.value.objects).length})}catch(e){m.value=c(e),n.emit(`error`,{message:m.value})}}}let C=t(n,t=>{let r=t.props;if(m.value)return l(`div`,{class:`dsk-error`,role:`alert`},m.value);let a=typeof r.boardUrl==`string`&&r.boardUrl!==``,c=`var(--dsk-board-height, ${e(r.height,`560px`)})`;if(!a&&!o.value)return l(`div`,{class:`dsk-board-frame`,style:{height:c}});let u=typeof r.userName==`string`&&r.userName!==``?{id:typeof r.userId==`string`?r.userId:void 0,name:r.userName,color:typeof r.userColor==`string`?r.userColor:void 0}:null;return l(`div`,{class:`dsk-board-frame`,style:{height:c}},[s(p,{ref:i.set,locale:t.locale,readonly:a?r.readonly===!0:r.editable!==!0,minimap:r.minimap!==!1,...r.labels&&typeof r.labels==`object`?{labels:r.labels}:{},...a?{provider:r.provider&&typeof r.provider==`object`?r.provider:x(r.boardUrl,r.pollInterval),user:u}:{modelValue:o.value},style:{height:`100%`},"onUpdate:modelValue":e=>{o.value=e,b()},onChange:e=>n.emit(`change`,{board:e.board,ops:e.ops,origin:e.origin}),onSelection:e=>n.emit(`select`,{ids:e})})])});S();let w=e=>(...t)=>{let n=i.ref.value?.[e];if(typeof n!=`function`)throw Error(`${String(e)}() is not available here`);return n(...t)};return{update(){C.refresh(),S()},destroy(){C.unmount(),g?.close?.(),v?.remove()},api:{fit:w(`fit`),select:w(`select`),toPng:w(`toPng`),toSvg:w(`toSvg`),undo:()=>i.ref.value?.doc?.undo(),redo:()=>i.ref.value?.doc?.redo(),get value(){return o.value}}}}var _={async board(e){let t;try{t=f(e.trim()||h())}catch(e){return{error:c(e)}}return{mount(e){e.classList.add(`dsk-board-frame`),e.style.height=`420px`;let n=u(t),r=o(e,()=>s(p,{modelValue:n.value,readonly:!0,minimap:!1,locale:i.locale,style:{height:`100%`}}));return{update(e){try{n.value=f(e)}catch{}},destroy:()=>r.unmount()}}}}};export{g as mountElement,_ as renderers,m as setup};
@@ -1 +1 @@
1
- import{n as e}from"../chunks/attrs-DGIcWUXu.js";import{a as t,c as n,i as r,l as i,n as a,o,r as s,t as c}from"../chunks/runtime-C8zlTt5D.js";import{h as l,shallowReactive as u,shallowRef as d}from"vue";import{parseGraph as f}from"@dskripchenko/flow";import{FlowEditor as p,FlowView as m}from"@dskripchenko/flow/vue";function h(e){n(e)}var g=null;function _(){return g??=import(`@dskripchenko/flow/mermaid`),g.catch(()=>g=null),g}async function v(e){if(e&&typeof e==`object`)return f(e);let t=String(e??``).trim();if(t===``)return f({version:1,nodes:[],edges:[]});if(t.startsWith(`{`))return f(t);let{fromMermaid:n}=await _();return n(t)}function y(e,t){let n=new URL(e,document.baseURI);return t.path&&t.path.length>0&&n.searchParams.set(`path`,t.path.join(`,`)),t.ref&&n.searchParams.set(`ref`,t.ref),n.href}function b(e,t){if(e.includes(`{ref}`))return e.replace(`{ref}`,encodeURIComponent(t));let n=new URL(e,document.baseURI);return n.searchParams.set(`ref`,t),n.href}async function x(e,t){let n=await fetch(e,{signal:t,credentials:`same-origin`,headers:{Accept:`application/json`}});if(!n.ok)throw Error(`${e}: HTTP ${n.status}`);return n.json()}var S=[`direction`,`edgeStyle`,`wheel`,`minimap`,`controls`,`details`,`statusBar`,`labels`,`registry`];function C(e,t){let n=e.data??{},r=e=>typeof e==`string`&&e!==``?document.querySelector(e):null,i=r(t.openapiTarget);i&&typeof n.operation==`string`&&n.operation!==``&&Promise.resolve(i.go?.(n.operation)).catch(e=>console.warn(`[dsk-embed] openapi-target:`,c(e)));let a=r(t.mediaTarget);if(a&&(n.chapter!==void 0||n.time!==void 0)){let e=n.chapter===void 0?Promise.resolve(a.seek?.(Number(n.time))).then(()=>a.play?.()):a.playChapter?.(n.chapter);Promise.resolve(e).catch(e=>console.warn(`[dsk-embed] media-target:`,c(e)))}}function w(n){let i=r(),o=d(null),u=d(null),f=null,h=``;function g(){let e=n.props().name;typeof e==`string`&&e!==``&&(f||(f=document.createElement(`input`),f.type=`hidden`,n.el.appendChild(f)),f.name=e,f.value=o.value?JSON.stringify(o.value):``)}async function w(){let e=n.props(),t=e.graph===void 0?typeof e.src==`string`&&e.src!==``?`src:${e.src}`:`source:${n.source()}`:`object`;if(t!==h||t===`object`){h=t;try{let t=e.graph===void 0?typeof e.src==`string`&&e.src!==``?await v(await a(e.src)):await v(n.source()):await v(e.graph);o.value=t,u.value=null,g(),n.emit(`load`,{nodes:t.nodes.length,edges:t.edges.length})}catch(e){u.value=c(e),n.emit(`error`,{message:u.value})}}}let T=t(n,t=>{let r=t.props;if(u.value)return l(`div`,{class:`dsk-error`,role:`alert`},u.value);if(!o.value)return l(`div`,{class:`dsk-flow-frame`,style:{height:e(r.height,`480px`)}});let a={};for(let e of S)r[e]!==void 0&&(a[e]=r[e]);let d=`var(--dsk-flow-height, ${e(r.height,r.editable?`600px`:`480px`)})`;if(r.editable)return l(`div`,{class:`dsk-flow-frame`,style:{height:d}},[s(p,{...a,ref:i.set,modelValue:o.value,locale:t.locale,readonly:r.readonly===!0,...Array.isArray(r.palette)?{palette:r.palette}:{},mermaid:e=>{if(!E)throw Error(`Mermaid import is still loading; try again`);return E(e)},style:{height:`100%`},"onUpdate:modelValue":e=>{o.value=e,g()},onChange:e=>{o.value=e.graph,g(),n.emit(`change`,{graph:e.graph,description:e.description,source:e.source})},onSelect:e=>n.emit(`select`,{ids:e}),onValidate:e=>n.emit(`validate`,{issues:e})})]);let f=typeof r.pollUrl==`string`&&r.pollUrl!==``?r.pollUrl:null,h=typeof r.toggleUrl==`string`&&r.toggleUrl!==``?r.toggleUrl:null,_=typeof r.persistToggle==`function`?r.persistToggle:null,w=typeof r.subgraphUrl==`string`&&r.subgraphUrl!==``?r.subgraphUrl:null,T=typeof r.loadSubgraph==`function`?r.loadSubgraph:null;return l(`div`,{class:`dsk-flow-frame`,style:{height:d}},[s(m,{...a,ref:i.set,graph:o.value,locale:t.locale,style:{height:`100%`},...r.state===void 0?{}:{state:r.state},...f?{poll:{intervalMs:typeof r.pollInterval==`number`?r.pollInterval:5e3,fetch:(e,t)=>x(y(f,t),e)}}:{},...h||_?{toggleable:!0,persistToggle:async e=>{if(_)return _(e);let t=await fetch(h,{method:`POST`,credentials:`same-origin`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify(e)});if(!t.ok)throw Error(`${t.status} ${t.statusText}`.trim());return t},onToggle:(e,t)=>n.emit(`toggle`,{...e,ok:t.ok,...t.ok?{}:{rolledBack:t.rolledBack}})}:{},...T?{loadSubgraph:T}:w?{loadSubgraph:e=>x(b(w,e)).then(e=>v(e))}:{},onSelect:e=>{n.emit(`select`,e?{kind:e.kind,id:e.id,path:e.path,element:e.element}:null),e?.kind===`node`&&(n.emit(`node`,{id:e.id,path:e.path,node:e.element,data:e.element.data??{}}),C(e.element,{openapiTarget:r.openapiTarget,mediaTarget:r.mediaTarget}))},onNavigate:e=>n.emit(`navigate`,{path:e.map(e=>e.nodeId).filter(Boolean)}),"onToggle-error":(e,t)=>n.emit(`toggle-error`,{change:e,message:c(t)}),"onPoll-error":e=>n.emit(`poll-error`,{message:c(e)})})])}),E=null;n.props().editable&&_().then(e=>E=e.fromMermaid,()=>void 0),w();let D=e=>(...t)=>{let n=i.ref.value?.[e];if(typeof n!=`function`)throw Error(`${String(e)}() is not available here`);return n(...t)};return{update(){T.refresh(),w(),n.props().editable&&!E&&_().then(e=>E=e.fromMermaid,()=>void 0)},destroy(){T.unmount(),f?.remove()},api:{fit:D(`fit`),select:D(`select`),enter:D(`enter`),back:D(`back`),refresh:D(`refresh`),undo:D(`undo`),redo:D(`redo`),get stack(){return i.ref.value?.stack},get graph(){return o.value}}}}var T={async flow(e){let t;try{t=await v(e)}catch(e){return{error:c(e)}}return{mount(e){e.classList.add(`dsk-flow-frame`),e.style.height=`420px`;let n=u({graph:t}),r=o(e,()=>s(m,{graph:n.graph,locale:i.locale,minimap:!1,statusBar:!1,style:{height:`100%`},onSelect:t=>{t?.kind===`node`&&e.dispatchEvent(new CustomEvent(`dsk:node`,{bubbles:!0,composed:!0,detail:{id:t.id,path:t.path,node:t.element,data:t.element.data??{}}}))}}));return{update(e){v(e).then(e=>n.graph=e,()=>void 0)},destroy:()=>r.unmount()}}}}};export{C as followNode,w as mountElement,y as pollUrl,T as renderers,h as setup,b as subgraphUrl,v as toGraph};
1
+ import{n as e}from"../chunks/attrs-ommFQqA5.js";import{a as t,c as n,i as r,l as i,n as a,o,r as s,t as c}from"../chunks/runtime-C8zlTt5D.js";import{h as l,shallowReactive as u,shallowRef as d}from"vue";import{parseGraph as f}from"@dskripchenko/flow";import{FlowEditor as p,FlowView as m}from"@dskripchenko/flow/vue";function h(e){n(e)}var g=null;function _(){return g??=import(`@dskripchenko/flow/mermaid`),g.catch(()=>g=null),g}async function v(e){if(e&&typeof e==`object`)return f(e);let t=String(e??``).trim();if(t===``)return f({version:1,nodes:[],edges:[]});if(t.startsWith(`{`))return f(t);let{fromMermaid:n}=await _();return n(t)}function y(e,t){let n=new URL(e,document.baseURI);return t.path&&t.path.length>0&&n.searchParams.set(`path`,t.path.join(`,`)),t.ref&&n.searchParams.set(`ref`,t.ref),n.href}function b(e,t){if(e.includes(`{ref}`))return e.replace(`{ref}`,encodeURIComponent(t));let n=new URL(e,document.baseURI);return n.searchParams.set(`ref`,t),n.href}async function x(e,t){let n=await fetch(e,{signal:t,credentials:`same-origin`,headers:{Accept:`application/json`}});if(!n.ok)throw Error(`${e}: HTTP ${n.status}`);return n.json()}var S=[`direction`,`edgeStyle`,`wheel`,`minimap`,`controls`,`details`,`statusBar`,`labels`,`registry`];function C(e,t){let n=e.data??{},r=e=>typeof e==`string`&&e!==``?document.querySelector(e):null,i=r(t.openapiTarget);i&&typeof n.operation==`string`&&n.operation!==``&&Promise.resolve(i.go?.(n.operation)).catch(e=>console.warn(`[dsk-embed] openapi-target:`,c(e)));let a=r(t.mediaTarget);if(a&&(n.chapter!==void 0||n.time!==void 0)){let e=n.chapter===void 0?Promise.resolve(a.seek?.(Number(n.time))).then(()=>a.play?.()):a.playChapter?.(n.chapter);Promise.resolve(e).catch(e=>console.warn(`[dsk-embed] media-target:`,c(e)))}}function w(n){let i=r(),o=d(null),u=d(null),f=null,h=``;function g(){let e=n.props().name;typeof e==`string`&&e!==``&&(f||(f=document.createElement(`input`),f.type=`hidden`,n.el.appendChild(f)),f.name=e,f.value=o.value?JSON.stringify(o.value):``)}async function w(){let e=n.props(),t=e.graph===void 0?typeof e.src==`string`&&e.src!==``?`src:${e.src}`:`source:${n.source()}`:`object`;if(t!==h||t===`object`){h=t;try{let t=e.graph===void 0?typeof e.src==`string`&&e.src!==``?await v(await a(e.src)):await v(n.source()):await v(e.graph);o.value=t,u.value=null,g(),n.emit(`load`,{nodes:t.nodes.length,edges:t.edges.length})}catch(e){u.value=c(e),n.emit(`error`,{message:u.value})}}}let T=t(n,t=>{let r=t.props;if(u.value)return l(`div`,{class:`dsk-error`,role:`alert`},u.value);if(!o.value)return l(`div`,{class:`dsk-flow-frame`,style:{height:e(r.height,`480px`)}});let a={};for(let e of S)r[e]!==void 0&&(a[e]=r[e]);let d=`var(--dsk-flow-height, ${e(r.height,r.editable?`600px`:`480px`)})`;if(r.editable)return l(`div`,{class:`dsk-flow-frame`,style:{height:d}},[s(p,{...a,ref:i.set,modelValue:o.value,locale:t.locale,readonly:r.readonly===!0,...Array.isArray(r.palette)?{palette:r.palette}:{},mermaid:e=>{if(!E)throw Error(`Mermaid import is still loading; try again`);return E(e)},style:{height:`100%`},"onUpdate:modelValue":e=>{o.value=e,g()},onChange:e=>{o.value=e.graph,g(),n.emit(`change`,{graph:e.graph,description:e.description,source:e.source})},onSelect:e=>n.emit(`select`,{ids:e}),onValidate:e=>n.emit(`validate`,{issues:e})})]);let f=typeof r.pollUrl==`string`&&r.pollUrl!==``?r.pollUrl:null,h=typeof r.toggleUrl==`string`&&r.toggleUrl!==``?r.toggleUrl:null,_=typeof r.persistToggle==`function`?r.persistToggle:null,w=typeof r.subgraphUrl==`string`&&r.subgraphUrl!==``?r.subgraphUrl:null,T=typeof r.loadSubgraph==`function`?r.loadSubgraph:null;return l(`div`,{class:`dsk-flow-frame`,style:{height:d}},[s(m,{...a,ref:i.set,graph:o.value,locale:t.locale,style:{height:`100%`},...r.state===void 0?{}:{state:r.state},...f?{poll:{intervalMs:typeof r.pollInterval==`number`?r.pollInterval:5e3,fetch:(e,t)=>x(y(f,t),e)}}:{},...h||_?{toggleable:!0,persistToggle:async e=>{if(_)return _(e);let t=await fetch(h,{method:`POST`,credentials:`same-origin`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify(e)});if(!t.ok)throw Error(`${t.status} ${t.statusText}`.trim());return t},onToggle:(e,t)=>n.emit(`toggle`,{...e,ok:t.ok,...t.ok?{}:{rolledBack:t.rolledBack}})}:{},...T?{loadSubgraph:T}:w?{loadSubgraph:e=>x(b(w,e)).then(e=>v(e))}:{},onSelect:e=>{n.emit(`select`,e?{kind:e.kind,id:e.id,path:e.path,element:e.element}:null),e?.kind===`node`&&(n.emit(`node`,{id:e.id,path:e.path,node:e.element,data:e.element.data??{}}),C(e.element,{openapiTarget:r.openapiTarget,mediaTarget:r.mediaTarget}))},onNavigate:e=>n.emit(`navigate`,{path:e.map(e=>e.nodeId).filter(Boolean)}),"onToggle-error":(e,t)=>n.emit(`toggle-error`,{change:e,message:c(t)}),"onPoll-error":e=>n.emit(`poll-error`,{message:c(e)})})])}),E=null;n.props().editable&&_().then(e=>E=e.fromMermaid,()=>void 0),w();let D=e=>(...t)=>{let n=i.ref.value?.[e];if(typeof n!=`function`)throw Error(`${String(e)}() is not available here`);return n(...t)};return{update(){T.refresh(),w(),n.props().editable&&!E&&_().then(e=>E=e.fromMermaid,()=>void 0)},destroy(){T.unmount(),f?.remove()},api:{fit:D(`fit`),select:D(`select`),enter:D(`enter`),back:D(`back`),refresh:D(`refresh`),undo:D(`undo`),redo:D(`redo`),get stack(){return i.ref.value?.stack},get graph(){return o.value}}}}var T={async flow(e){let t;try{t=await v(e)}catch(e){return{error:c(e)}}return{mount(e){e.classList.add(`dsk-flow-frame`),e.style.height=`420px`;let n=u({graph:t}),r=o(e,()=>s(m,{graph:n.graph,locale:i.locale,minimap:!1,statusBar:!1,style:{height:`100%`},onSelect:t=>{t?.kind===`node`&&e.dispatchEvent(new CustomEvent(`dsk:node`,{bubbles:!0,composed:!0,detail:{id:t.id,path:t.path,node:t.element,data:t.element.data??{}}}))}}));return{update(e){v(e).then(e=>n.graph=e,()=>void 0)},destroy:()=>r.unmount()}}}}};export{C as followNode,w as mountElement,y as pollUrl,T as renderers,h as setup,b as subgraphUrl,v as toGraph};
@@ -1 +1 @@
1
- import{n as e,t}from"../chunks/attrs-DGIcWUXu.js";import{a as n,c as r,i,o as a,r as o,s}from"../chunks/runtime-C8zlTt5D.js";import{shallowReactive as c,watch as l}from"vue";import{UidAudio as u,UidVideo as d}from"@dskripchenko/ui";var f=`application/x-mpegURL`;function p(e){return/\.m3u8$/i.test(e.replace(/[?#].*$/,``))}function m(e){return typeof e==`string`&&e.trim()!==``?e:void 0}function h(e){let t=typeof e==`number`?e:typeof e==`string`&&e.trim()!==``?Number(e):NaN;return Number.isFinite(t)?t:void 0}function g(e){return e==null||e===``?[]:Array.isArray(e)?e:[e]}function _(e){if(typeof e==`string`)return m(e);if(e&&typeof e==`object`){let t=e;return m(t.src)??m(t.url)}}function v(e,t){return(t&&typeof t==`object`?m(t.type):void 0)||(p(e)?f:void 0)}function y(e){let t=[];for(let n of g(e)){let e=_(n);if(!e)continue;let r=n&&typeof n==`object`?n:{},i=v(e,n),a=m(r.label);t.push({src:e,...i?{type:i}:{},...a?{label:a}:{}})}return t}function b(e){let t=[];for(let n of g(e)){if(!n||typeof n!=`object`)continue;let e=n,r=m(e.src);if(!r)continue;let i=e.kind===`captions`||e.kind===`chapters`?e.kind:`subtitles`,a=e.default===!0||e.default===``||e.default===`true`||e.default==="default";t.push({src:r,kind:i,...m(e.srclang)?{srclang:e.srclang}:{},...m(e.label)?{label:e.label}:{},...a?{default:!0}:{}})}return t}function x(e){let t=[];for(let n of g(e)){let e=_(n);if(!e)continue;let r=n&&typeof n==`object`?n:{},i=v(e,n),a=Array.isArray(r.peaks)?r.peaks.filter(e=>typeof e==`number`):typeof r.peaks==`string`?r.peaks.split(`,`).map(Number).filter(e=>Number.isFinite(e)):void 0,o=h(r.duration);t.push({src:e,...i?{type:i}:{},...m(r.title)?{title:r.title}:{},...m(r.artist)?{artist:r.artist}:{},...o===void 0?{}:{duration:o},...a&&a.length>0?{peaks:a}:{}})}return t}var S=[`poster`,`thumbnails`,`autoplay`,`muted`,`loop`,`preload`,`controls`,`crossorigin`,`exclusive`,`resumeKey`,`rates`,`hotkeys`,`autoHide`,`hlsOptions`];function C(e,n={sources:[],tracks:[]}){let r={};for(let t of S)e[t]!==void 0&&(r[t]=e[t]);let i=y(e.sources);i.length===0&&(i=y(n.sources)),i.length===0&&typeof e.src==`string`&&e.src!==``&&(i=y(e.src)),r.sources=i,r.tracks=b(e.tracks===void 0?n.tracks:e.tracks);let a=t(e.aspectRatio);return a&&(r.aspectRatio=a),typeof e.label==`string`&&(r.title=e.label),r}var w=[`loop`,`preload`,`crossorigin`,`exclusive`,`resumeKey`,`rates`,`hotkeys`,`hlsOptions`,`variant`,`waveform`,`waveformMaxBytes`,`waveformMaxDuration`,`autoAdvance`,`showVolume`,`showRate`,`showPlaylist`];function T(e,t={sources:[],tracks:[]}){let n={};for(let t of w)e[t]!==void 0&&(n[t]=e[t]);let r=x(e.tracks);if(r.length===0&&(r=x(t.sources)),r.length===0&&typeof e.src==`string`&&e.src!==``&&(r=x([{src:e.src,type:e.type}])),r.length>1)n.tracks=r;else if(r.length===1){let t=r[0];n.src=t.src,t.type&&(n.type=t.type);let i=m(e.trackTitle)??t.title,a=m(e.artist)??t.artist;i&&(n.title=i),a&&(n.artist=a),t.peaks&&(n.peaks=t.peaks)}return Array.isArray(e.peaks)&&e.peaks.length>0&&(n.peaks=e.peaks),typeof e.index==`number`&&(n.index=e.index),n}function E(e,t){if(typeof t==`number`||/^\d+$/.test(String(t).trim()))return e[Number(t)];let n=String(t).trim().toLowerCase();return e.find(e=>e.title.toLowerCase()===n)??e.find(e=>e.title.toLowerCase().includes(n))}var D=class extends Error{},O=/^([A-Za-z_][\w-]*)\s*:(?:\s+(.*))?$/;function k(e){let t=e.trim();if(t===``)return``;if(t.startsWith(`"`)&&t.endsWith(`"`)||t.startsWith(`'`)&&t.endsWith(`'`)){if(t.startsWith(`"`))try{return JSON.parse(t)}catch{return t.slice(1,-1)}return t.slice(1,-1).replace(/''/g,`'`)}if(t.startsWith(`[`)&&t.endsWith(`]`)){let e=t.slice(1,-1).trim();return e===``?[]:e.split(`,`).map(e=>k(e))}return t===`true`?!0:t===`false`?!1:t===`null`||t===`~`?null:/^-?\d+(\.\d+)?$/.test(t)?Number(t):t}function A(e){return e.length-e.trimStart().length}function j(e,t,n){let r=[];for(;t<e.length;){let i=e[t];if(A(i)<n||!i.trimStart().startsWith(`-`))break;if(A(i)>n)throw new D(`line ${t+1}: unexpected indentation`);let a=i.trimStart().slice(1).trim(),o=O.exec(a);if(!o){r.push(k(a)),t++;continue}let s={[o[1]]:k(o[2]??``)},c=A(i)+(i.trimStart().length-i.trimStart().slice(1).trimStart().length);for(t++;t<e.length&&A(e[t])>=c&&!e[t].trimStart().startsWith(`-`);){let n=O.exec(e[t].trim());if(!n)throw new D(`line ${t+1}: expected "key: value"`);s[n[1]]=k(n[2]??``),t++}r.push(s)}return[r,t]}function M(e){let t=e.split(/\r?\n/).map(e=>e.replace(/\s+#.*$/,``)).filter(e=>e.trim()!==``&&!e.trim().startsWith(`#`));if(t.length>0&&t[0].trimStart().startsWith(`-`)){let[e,n]=j(t,0,A(t[0]));if(n<t.length)throw new D(`line ${n+1}: unexpected content after the list`);return e}let n={},r=0;for(;r<t.length;){let e=t[r];if(A(e)!==0)throw new D(`line ${r+1}: unexpected indentation`);let i=O.exec(e.trim());if(!i)throw new D(`line ${r+1}: expected "key: value"`);if(r++,i[2]!==void 0&&i[2].trim()!==``)n[i[1]]=k(i[2]);else if(r<t.length&&A(t[r])>0&&t[r].trimStart().startsWith(`-`)){let[e,a]=j(t,r,A(t[r]));n[i[1]]=e,r=a}else n[i[1]]=null}return n}function N(e){let t=e.trim();if(t===``)throw new D(`the block is empty`);if(t.startsWith(`{`)||t.startsWith(`[`)){let e;try{e=JSON.parse(t)}catch(e){throw new D(e instanceof Error?e.message:String(e))}if(!e||typeof e!=`object`)throw new D(`expected an object or a list`);return e}let n=t.split(/\r?\n/).map(e=>e.trim()).filter(e=>e!==``&&!e.startsWith(`#`));if(n.every(e=>!O.test(e)&&!e.startsWith(`-`)&&!/\s/.test(e)))return n.length===1?{src:n[0]}:n.map(e=>({src:e}));let r=M(t);if(!r||typeof r!=`object`)throw new D(`expected "key: value" pairs or a list`);return r}function P(e){return typeof e==`string`&&e!==``?e:void 0}function F(e){return typeof e==`boolean`?e:void 0}function I(e){let t=N(e),n=Array.isArray(t)?{}:t,r={sources:Array.isArray(t)?t:n.sources??(n.src||n.url?[n]:[]),tracks:n.tracks,poster:P(n.poster),thumbnails:P(n.thumbnails),label:P(n.title),aspectRatio:typeof n.aspectRatio==`number`?String(n.aspectRatio):P(n.aspectRatio),autoplay:F(n.autoplay),muted:F(n.muted)??F(n.autoplay),loop:F(n.loop),maxWidth:typeof n.maxWidth==`number`||typeof n.maxWidth==`string`?n.maxWidth:void 0};return Object.fromEntries(Object.entries(r).filter(([,e])=>e!==void 0))}function L(e){let t=N(e),n=Array.isArray(t)?{}:t,r={tracks:Array.isArray(t)?t:Array.isArray(n.tracks)?n.tracks:[n],trackTitle:P(n.title),artist:P(n.artist),waveform:F(n.waveform),loop:F(n.loop),variant:n.mini===!0||n.variant===`mini`?`mini`:void 0,peaks:Array.isArray(n.peaks)?n.peaks.filter(e=>typeof e==`number`):void 0,maxWidth:typeof n.maxWidth==`number`||typeof n.maxWidth==`string`?n.maxWidth:void 0};return Object.fromEntries(Object.entries(r).filter(([,e])=>e!==void 0))}function R(e){r(e)}function z(e){return e.readyState>=1?Promise.resolve():new Promise(t=>e.addEventListener(`loadedmetadata`,()=>t(),{once:!0}))}function B(e){let t=e?.media;return{currentTime:t?.currentTime??0,duration:t?.duration??0,src:t?.currentSrc??``}}function V(e){let t=i(),n=null,r=()=>e(`timeupdate`,B(t.ref.value)),a=l(()=>t.ref.value?.media??null,e=>{n?.removeEventListener(`timeupdate`,r),n=e,n?.addEventListener(`timeupdate`,r)}),o={ref:t.set,onPlay:()=>e(`play`,B(t.ref.value)),onPause:()=>e(`pause`,B(t.ref.value)),onEnded:()=>e(`ended`,B(t.ref.value)),onError:t=>e(`error`,t),onQualitychange:t=>e(`qualitychange`,{label:t}),onAudiotrackchange:t=>e(`audiotrackchange`,{label:t}),onTrackchange:t=>e(`trackchange`,{index:t}),onChapterchange:(t,n)=>e(`chapterchange`,t?{index:n,title:t.title,start:t.start,end:t.end}:null)},s=()=>{let e=t.ref.value;if(!e)throw Error(`the player is not ready`);return e},c={play:()=>s().play(),pause:()=>s().pause(),toggle:()=>s().toggle(),async seek(e){let t=s().media;t&&await z(t),s().seek(Number(e))},next:()=>s().next?.(),prev:()=>s().prev?.(),get state(){return t.ref.value?.state},get media(){return t.ref.value?.media??null},get chapters(){return(t.ref.value?.chapters??[]).map((e,t)=>({index:t,title:e.title,start:e.start,end:e.end}))},async loadChapters(e=4e3){let t=Date.now();for(;c.chapters.length===0&&Date.now()-t<e;)await new Promise(e=>setTimeout(e,50));return c.chapters},async playChapter(t){let n=E(await c.loadChapters(),t);if(!n)throw Error(`no chapter "${String(t)}"`);let r=s();return r.seekToChapter?r.seekToChapter(n.index):await c.seek(n.start),await r.play(),e(`chapter`,n),n},dispose(){a(),n?.removeEventListener(`timeupdate`,r)}};return{handlers:o,api:c}}function H(e){return JSON.stringify(e.sources??e.tracks??e.src??``)}function U(e){let t=e.tag===`dsk-video`,{handlers:r,api:i}=V(e.emit),a=n(e,n=>{let i=t?C(n.props,n.children):T(n.props,n.children);return o(t?d:u,{...i,key:H(i),class:`dsk-media`,...r,...t?{}:{"onUpdate:index":t=>e.emit(`trackchange`,{index:t})}})});return{update:()=>a.refresh(),destroy(){i.dispose(),a.unmount()},api:i}}function W(t){return n=>{let r=t===`video`?I:L,i;try{i=r(n);let e=t===`video`?C(i):T(i);if(t===`video`&&e.sources.length===0)return{error:"no video source: give `src` or `sources`"};if(t===`audio`&&!e.src&&!e.tracks)return{error:"no audio source: give `src` or `tracks`"}}catch(e){if(e instanceof D||e instanceof SyntaxError)return{error:e.message};throw e}return{mount(n){n.classList.add(`dsk-media`,`dsk-media--${t}`);let l=c({props:i}),f=s(),{handlers:p,api:m}=V((e,t)=>f.emit(e,t,n));n.dskPlayer=m;let h=a(n,()=>{n.style.maxWidth=e(l.props.maxWidth)??``;let r=t===`video`?C(l.props):T(l.props);return o(t===`video`?d:u,{...r,key:H(r),...p})});return{update(e){try{l.props=r(e)}catch{}},destroy(){m.dispose(),h.unmount()}}}}}}var G={video:W(`video`),audio:W(`audio`)};export{U as mountElement,G as renderers,R as setup};
1
+ import{n as e,t}from"../chunks/attrs-ommFQqA5.js";import{a as n,c as r,i,o as a,r as o,s}from"../chunks/runtime-C8zlTt5D.js";import{shallowReactive as c,watch as l}from"vue";import{UidAudio as u,UidVideo as d}from"@dskripchenko/ui";var f=`application/x-mpegURL`;function p(e){return/\.m3u8$/i.test(e.replace(/[?#].*$/,``))}function m(e){return typeof e==`string`&&e.trim()!==``?e:void 0}function h(e){let t=typeof e==`number`?e:typeof e==`string`&&e.trim()!==``?Number(e):NaN;return Number.isFinite(t)?t:void 0}function g(e){return e==null||e===``?[]:Array.isArray(e)?e:[e]}function _(e){if(typeof e==`string`)return m(e);if(e&&typeof e==`object`){let t=e;return m(t.src)??m(t.url)}}function v(e,t){return(t&&typeof t==`object`?m(t.type):void 0)||(p(e)?f:void 0)}function y(e){let t=[];for(let n of g(e)){let e=_(n);if(!e)continue;let r=n&&typeof n==`object`?n:{},i=v(e,n),a=m(r.label);t.push({src:e,...i?{type:i}:{},...a?{label:a}:{}})}return t}function b(e){let t=[];for(let n of g(e)){if(!n||typeof n!=`object`)continue;let e=n,r=m(e.src);if(!r)continue;let i=e.kind===`captions`||e.kind===`chapters`?e.kind:`subtitles`,a=e.default===!0||e.default===``||e.default===`true`||e.default==="default";t.push({src:r,kind:i,...m(e.srclang)?{srclang:e.srclang}:{},...m(e.label)?{label:e.label}:{},...a?{default:!0}:{}})}return t}function x(e){let t=[];for(let n of g(e)){let e=_(n);if(!e)continue;let r=n&&typeof n==`object`?n:{},i=v(e,n),a=Array.isArray(r.peaks)?r.peaks.filter(e=>typeof e==`number`):typeof r.peaks==`string`?r.peaks.split(`,`).map(Number).filter(e=>Number.isFinite(e)):void 0,o=h(r.duration);t.push({src:e,...i?{type:i}:{},...m(r.title)?{title:r.title}:{},...m(r.artist)?{artist:r.artist}:{},...o===void 0?{}:{duration:o},...a&&a.length>0?{peaks:a}:{}})}return t}var S=[`poster`,`thumbnails`,`autoplay`,`muted`,`loop`,`preload`,`controls`,`crossorigin`,`exclusive`,`resumeKey`,`rates`,`hotkeys`,`autoHide`,`hlsOptions`];function C(e,n={sources:[],tracks:[]}){let r={};for(let t of S)e[t]!==void 0&&(r[t]=e[t]);let i=y(e.sources);i.length===0&&(i=y(n.sources)),i.length===0&&typeof e.src==`string`&&e.src!==``&&(i=y(e.src)),r.sources=i,r.tracks=b(e.tracks===void 0?n.tracks:e.tracks);let a=t(e.aspectRatio);return a&&(r.aspectRatio=a),typeof e.label==`string`&&(r.title=e.label),r}var w=[`loop`,`preload`,`crossorigin`,`exclusive`,`resumeKey`,`rates`,`hotkeys`,`hlsOptions`,`variant`,`waveform`,`waveformMaxBytes`,`waveformMaxDuration`,`autoAdvance`,`showVolume`,`showRate`,`showPlaylist`];function T(e,t={sources:[],tracks:[]}){let n={};for(let t of w)e[t]!==void 0&&(n[t]=e[t]);let r=x(e.tracks);if(r.length===0&&(r=x(t.sources)),r.length===0&&typeof e.src==`string`&&e.src!==``&&(r=x([{src:e.src,type:e.type}])),r.length>1)n.tracks=r;else if(r.length===1){let t=r[0];n.src=t.src,t.type&&(n.type=t.type);let i=m(e.trackTitle)??t.title,a=m(e.artist)??t.artist;i&&(n.title=i),a&&(n.artist=a),t.peaks&&(n.peaks=t.peaks)}return Array.isArray(e.peaks)&&e.peaks.length>0&&(n.peaks=e.peaks),typeof e.index==`number`&&(n.index=e.index),n}function E(e,t){if(typeof t==`number`||/^\d+$/.test(String(t).trim()))return e[Number(t)];let n=String(t).trim().toLowerCase();return e.find(e=>e.title.toLowerCase()===n)??e.find(e=>e.title.toLowerCase().includes(n))}var D=class extends Error{},O=/^([A-Za-z_][\w-]*)\s*:(?:\s+(.*))?$/;function k(e){let t=e.trim();if(t===``)return``;if(t.startsWith(`"`)&&t.endsWith(`"`)||t.startsWith(`'`)&&t.endsWith(`'`)){if(t.startsWith(`"`))try{return JSON.parse(t)}catch{return t.slice(1,-1)}return t.slice(1,-1).replace(/''/g,`'`)}if(t.startsWith(`[`)&&t.endsWith(`]`)){let e=t.slice(1,-1).trim();return e===``?[]:e.split(`,`).map(e=>k(e))}return t===`true`?!0:t===`false`?!1:t===`null`||t===`~`?null:/^-?\d+(\.\d+)?$/.test(t)?Number(t):t}function A(e){return e.length-e.trimStart().length}function j(e,t,n){let r=[];for(;t<e.length;){let i=e[t];if(A(i)<n||!i.trimStart().startsWith(`-`))break;if(A(i)>n)throw new D(`line ${t+1}: unexpected indentation`);let a=i.trimStart().slice(1).trim(),o=O.exec(a);if(!o){r.push(k(a)),t++;continue}let s={[o[1]]:k(o[2]??``)},c=A(i)+(i.trimStart().length-i.trimStart().slice(1).trimStart().length);for(t++;t<e.length&&A(e[t])>=c&&!e[t].trimStart().startsWith(`-`);){let n=O.exec(e[t].trim());if(!n)throw new D(`line ${t+1}: expected "key: value"`);s[n[1]]=k(n[2]??``),t++}r.push(s)}return[r,t]}function M(e){let t=e.split(/\r?\n/).map(e=>e.replace(/\s+#.*$/,``)).filter(e=>e.trim()!==``&&!e.trim().startsWith(`#`));if(t.length>0&&t[0].trimStart().startsWith(`-`)){let[e,n]=j(t,0,A(t[0]));if(n<t.length)throw new D(`line ${n+1}: unexpected content after the list`);return e}let n={},r=0;for(;r<t.length;){let e=t[r];if(A(e)!==0)throw new D(`line ${r+1}: unexpected indentation`);let i=O.exec(e.trim());if(!i)throw new D(`line ${r+1}: expected "key: value"`);if(r++,i[2]!==void 0&&i[2].trim()!==``)n[i[1]]=k(i[2]);else if(r<t.length&&A(t[r])>0&&t[r].trimStart().startsWith(`-`)){let[e,a]=j(t,r,A(t[r]));n[i[1]]=e,r=a}else n[i[1]]=null}return n}function N(e){let t=e.trim();if(t===``)throw new D(`the block is empty`);if(t.startsWith(`{`)||t.startsWith(`[`)){let e;try{e=JSON.parse(t)}catch(e){throw new D(e instanceof Error?e.message:String(e))}if(!e||typeof e!=`object`)throw new D(`expected an object or a list`);return e}let n=t.split(/\r?\n/).map(e=>e.trim()).filter(e=>e!==``&&!e.startsWith(`#`));if(n.every(e=>!O.test(e)&&!e.startsWith(`-`)&&!/\s/.test(e)))return n.length===1?{src:n[0]}:n.map(e=>({src:e}));let r=M(t);if(!r||typeof r!=`object`)throw new D(`expected "key: value" pairs or a list`);return r}function P(e){return typeof e==`string`&&e!==``?e:void 0}function F(e){return typeof e==`boolean`?e:void 0}function I(e){let t=N(e),n=Array.isArray(t)?{}:t,r={sources:Array.isArray(t)?t:n.sources??(n.src||n.url?[n]:[]),tracks:n.tracks,poster:P(n.poster),thumbnails:P(n.thumbnails),label:P(n.title),aspectRatio:typeof n.aspectRatio==`number`?String(n.aspectRatio):P(n.aspectRatio),autoplay:F(n.autoplay),muted:F(n.muted)??F(n.autoplay),loop:F(n.loop),maxWidth:typeof n.maxWidth==`number`||typeof n.maxWidth==`string`?n.maxWidth:void 0};return Object.fromEntries(Object.entries(r).filter(([,e])=>e!==void 0))}function L(e){let t=N(e),n=Array.isArray(t)?{}:t,r={tracks:Array.isArray(t)?t:Array.isArray(n.tracks)?n.tracks:[n],trackTitle:P(n.title),artist:P(n.artist),waveform:F(n.waveform),loop:F(n.loop),variant:n.mini===!0||n.variant===`mini`?`mini`:void 0,peaks:Array.isArray(n.peaks)?n.peaks.filter(e=>typeof e==`number`):void 0,maxWidth:typeof n.maxWidth==`number`||typeof n.maxWidth==`string`?n.maxWidth:void 0};return Object.fromEntries(Object.entries(r).filter(([,e])=>e!==void 0))}function R(e){r(e)}function z(e){return e.readyState>=1?Promise.resolve():new Promise(t=>e.addEventListener(`loadedmetadata`,()=>t(),{once:!0}))}function B(e){let t=e?.media;return{currentTime:t?.currentTime??0,duration:t?.duration??0,src:t?.currentSrc??``}}function V(e){let t=i(),n=null,r=()=>e(`timeupdate`,B(t.ref.value)),a=l(()=>t.ref.value?.media??null,e=>{n?.removeEventListener(`timeupdate`,r),n=e,n?.addEventListener(`timeupdate`,r)}),o={ref:t.set,onPlay:()=>e(`play`,B(t.ref.value)),onPause:()=>e(`pause`,B(t.ref.value)),onEnded:()=>e(`ended`,B(t.ref.value)),onError:t=>e(`error`,t),onQualitychange:t=>e(`qualitychange`,{label:t}),onAudiotrackchange:t=>e(`audiotrackchange`,{label:t}),onTrackchange:t=>e(`trackchange`,{index:t}),onChapterchange:(t,n)=>e(`chapterchange`,t?{index:n,title:t.title,start:t.start,end:t.end}:null)},s=()=>{let e=t.ref.value;if(!e)throw Error(`the player is not ready`);return e},c={play:()=>s().play(),pause:()=>s().pause(),toggle:()=>s().toggle(),async seek(e){let t=s().media;t&&await z(t),s().seek(Number(e))},next:()=>s().next?.(),prev:()=>s().prev?.(),get state(){return t.ref.value?.state},get media(){return t.ref.value?.media??null},get chapters(){return(t.ref.value?.chapters??[]).map((e,t)=>({index:t,title:e.title,start:e.start,end:e.end}))},async loadChapters(e=4e3){let t=Date.now();for(;c.chapters.length===0&&Date.now()-t<e;)await new Promise(e=>setTimeout(e,50));return c.chapters},async playChapter(t){let n=E(await c.loadChapters(),t);if(!n)throw Error(`no chapter "${String(t)}"`);let r=s();return r.seekToChapter?r.seekToChapter(n.index):await c.seek(n.start),await r.play(),e(`chapter`,n),n},dispose(){a(),n?.removeEventListener(`timeupdate`,r)}};return{handlers:o,api:c}}function H(e){return JSON.stringify(e.sources??e.tracks??e.src??``)}function U(e){let t=e.tag===`dsk-video`,{handlers:r,api:i}=V(e.emit),a=n(e,n=>{let i=t?C(n.props,n.children):T(n.props,n.children);return o(t?d:u,{...i,key:H(i),class:`dsk-media`,...r,...t?{}:{"onUpdate:index":t=>e.emit(`trackchange`,{index:t})}})});return{update:()=>a.refresh(),destroy(){i.dispose(),a.unmount()},api:i}}function W(t){return n=>{let r=t===`video`?I:L,i;try{i=r(n);let e=t===`video`?C(i):T(i);if(t===`video`&&e.sources.length===0)return{error:"no video source: give `src` or `sources`"};if(t===`audio`&&!e.src&&!e.tracks)return{error:"no audio source: give `src` or `tracks`"}}catch(e){if(e instanceof D||e instanceof SyntaxError)return{error:e.message};throw e}return{mount(n){n.classList.add(`dsk-media`,`dsk-media--${t}`);let l=c({props:i}),f=s(),{handlers:p,api:m}=V((e,t)=>f.emit(e,t,n));n.dskPlayer=m;let h=a(n,()=>{n.style.maxWidth=e(l.props.maxWidth)??``;let r=t===`video`?C(l.props):T(l.props);return o(t===`video`?d:u,{...r,key:H(r),...p})});return{update(e){try{l.props=r(e)}catch{}},destroy(){m.dispose(),h.unmount()}}}}}}var G={video:W(`video`),audio:W(`audio`)};export{U as mountElement,G as renderers,R as setup};
@@ -1 +1 @@
1
- import{n as e}from"../chunks/attrs-DGIcWUXu.js";import{a as t,c as n,i as r,l as i,n as a,o,r as s,t as c}from"../chunks/runtime-C8zlTt5D.js";import{shallowReactive as l}from"vue";import{OpenApiBlock as u,OpenApiEditor as d,OpenApiOperation as f,OpenApiReference as p,proxySend as m}from"@dskripchenko/openapi/vue";function h(e){n(e)}var g=/* @__PURE__ */ new Map;function _(e){let t=g.get(e);return t||(t=()=>a(e),g.set(e,t)),t}function v(e){if(!Array.isArray(e))return;let t=[];return e.forEach((e,n)=>{if(!e||typeof e!=`object`)return;let r=e,i=typeof r.id==`string`&&r.id!==``?r.id:`spec-${n+1}`,a=typeof r.src==`string`?_(r.src):r.content??r.spec;a!==void 0&&t.push({id:i,...typeof r.name==`string`?{name:r.name}:{},spec:a})}),t}function y(e){return/^(operation|schema|tag|webhook)\//.test(e)||e.startsWith(`#`)?e.replace(/^#/,``):`operation/${e}`}var b=[`tryIt`,`baseUrl`,`defaultSnippet`,`snippetTargets`,`persistCredentials`,`send`,`labels`],x=/* @__PURE__ */ new Map;function S(e){let t=x.get(e);return t||(t=m(e),x.set(e,t)),t}function C(e){let t={};for(let n of b)e[n]!==void 0&&(t[n]=e[n]);return t.send===void 0&&typeof e.proxy==`string`&&e.proxy!==``&&(t.send=S(e.proxy)),t}function w(e){return(e?.document)?.info?.title}function T(n){let i=r(),a=null,o=t(n,t=>{let r=t.props,o=r.mode??(r.operation?`operation`:`reference`),l=t.locale,m=e(r.height),h=e=>s(`div`,{class:`dsk-openapi dsk-openapi--${String(o)}`,style:m?{height:`var(--dsk-openapi-height, ${m})`,overflow:`auto`,"--oa-viewport-h":`var(--dsk-openapi-height, ${m})`}:void 0},[e]);if(o===`block`){let e=a??t.source;return h(s(u,{...C(r),source:e,editable:r.editable===!0,locale:l,"onUpdate:source":e=>{a=e,n.emit(`change`,{source:e})}}))}if(o===`editor`)return h(s(d,{modelValue:a??t.source,...r.view?{view:r.view}:{},locale:l,...r.baseUrl?{baseUrl:r.baseUrl}:{},...r.labels?{labels:r.labels}:{},"onUpdate:modelValue":e=>{a=e,n.emit(`change`,{source:e})},onIssues:e=>n.emit(`issues`,{issues:e})}));let g=r.spec??(typeof r.src==`string`&&r.src!==``?_(r.src):t.source||void 0),y={ref:i.set,onLoaded:(e,t)=>n.emit(`loaded`,{id:t??`spec`,title:w(e)}),onError:(e,t)=>n.emit(`error`,{id:t??`spec`,message:c(e)})};if(o===`operation`)return h(s(f,{...C(r),...y,spec:g,operation:String(r.operation??``),locale:l,...r.referenceUrl?{referenceUrl:r.referenceUrl}:{},...r.specId?{specId:r.specId}:{}}));let b=v(r.specs);return h(s(p,{...C(r),...y,...b?{specs:b}:{spec:g},...r.active?{active:r.active}:{},...r.heading?{title:r.heading}:{},...r.hashNavigation===void 0?{}:{hashNavigation:r.hashNavigation},locale:l,"onUpdate:active":e=>n.emit(`active`,{id:e})}))}),l=()=>{let e=i.ref.value;if(!e)throw Error(`the reference is not ready`);return e};return{update(){n.source()!==o.view.source&&(a=null),o.refresh()},destroy:()=>o.unmount(),api:{go:(e,t)=>l().go(y(String(e)),t),open:e=>l().open(e),print:()=>l().print?.(),get loaded(){return i.ref.value?.spec??null},get value(){return a??n.source()}}}}var E={openapi(){return{mount(e,t){e.classList.add(`dsk-openapi-block`);let n=l({code:t.code}),r=o(e,()=>s(u,{source:n.code,editable:t.editable,locale:i.locale,"onUpdate:source":e=>{n.code=e,t.setCode(e)}}));return{update(e){e!==n.code&&(n.code=e)},destroy:()=>r.unmount()}}}}};export{y as anchorOf,T as mountElement,E as renderers,h as setup,_ as specLoader,v as toSpecs};
1
+ import{n as e}from"../chunks/attrs-ommFQqA5.js";import{a as t,c as n,i as r,l as i,n as a,o,r as s,t as c}from"../chunks/runtime-C8zlTt5D.js";import{shallowReactive as l}from"vue";import{OpenApiBlock as u,OpenApiEditor as d,OpenApiOperation as f,OpenApiReference as p,proxySend as m}from"@dskripchenko/openapi/vue";function h(e){n(e)}var g=/* @__PURE__ */ new Map;function _(e){let t=g.get(e);return t||(t=()=>a(e),g.set(e,t)),t}function v(e){if(!Array.isArray(e))return;let t=[];return e.forEach((e,n)=>{if(!e||typeof e!=`object`)return;let r=e,i=typeof r.id==`string`&&r.id!==``?r.id:`spec-${n+1}`,a=typeof r.src==`string`?_(r.src):r.content??r.spec;a!==void 0&&t.push({id:i,...typeof r.name==`string`?{name:r.name}:{},spec:a})}),t}function y(e){return/^(operation|schema|tag|webhook)\//.test(e)||e.startsWith(`#`)?e.replace(/^#/,``):`operation/${e}`}var b=[`tryIt`,`baseUrl`,`defaultSnippet`,`snippetTargets`,`persistCredentials`,`send`,`labels`],x=/* @__PURE__ */ new Map;function S(e){let t=x.get(e);return t||(t=m(e),x.set(e,t)),t}function C(e){let t={};for(let n of b)e[n]!==void 0&&(t[n]=e[n]);return t.send===void 0&&typeof e.proxy==`string`&&e.proxy!==``&&(t.send=S(e.proxy)),t}function w(e){return(e?.document)?.info?.title}function T(n){let i=r(),a=null,o=t(n,t=>{let r=t.props,o=r.mode??(r.operation?`operation`:`reference`),l=t.locale,m=e(r.height),h=e=>s(`div`,{class:`dsk-openapi dsk-openapi--${String(o)}`,style:m?{height:`var(--dsk-openapi-height, ${m})`,overflow:`auto`,"--oa-viewport-h":`var(--dsk-openapi-height, ${m})`}:void 0},[e]);if(o===`block`){let e=a??t.source;return h(s(u,{...C(r),source:e,editable:r.editable===!0,locale:l,"onUpdate:source":e=>{a=e,n.emit(`change`,{source:e})}}))}if(o===`editor`)return h(s(d,{modelValue:a??t.source,...r.view?{view:r.view}:{},locale:l,...r.baseUrl?{baseUrl:r.baseUrl}:{},...r.labels?{labels:r.labels}:{},"onUpdate:modelValue":e=>{a=e,n.emit(`change`,{source:e})},onIssues:e=>n.emit(`issues`,{issues:e})}));let g=r.spec??(typeof r.src==`string`&&r.src!==``?_(r.src):t.source||void 0),y={ref:i.set,onLoaded:(e,t)=>n.emit(`loaded`,{id:t??`spec`,title:w(e)}),onError:(e,t)=>n.emit(`error`,{id:t??`spec`,message:c(e)})};if(o===`operation`)return h(s(f,{...C(r),...y,spec:g,operation:String(r.operation??``),locale:l,...r.referenceUrl?{referenceUrl:r.referenceUrl}:{},...r.specId?{specId:r.specId}:{}}));let b=v(r.specs);return h(s(p,{...C(r),...y,...b?{specs:b}:{spec:g},...r.active?{active:r.active}:{},...r.heading?{title:r.heading}:{},...r.hashNavigation===void 0?{}:{hashNavigation:r.hashNavigation},locale:l,"onUpdate:active":e=>n.emit(`active`,{id:e})}))}),l=()=>{let e=i.ref.value;if(!e)throw Error(`the reference is not ready`);return e};return{update(){n.source()!==o.view.source&&(a=null),o.refresh()},destroy:()=>o.unmount(),api:{go:(e,t)=>l().go(y(String(e)),t),open:e=>l().open(e),print:()=>l().print?.(),get loaded(){return i.ref.value?.spec??null},get value(){return a??n.source()}}}}var E={openapi(){return{mount(e,t){e.classList.add(`dsk-openapi-block`);let n=l({code:t.code}),r=o(e,()=>s(u,{source:n.code,editable:t.editable,locale:i.locale,"onUpdate:source":e=>{n.code=e,t.setCode(e)}}));return{update(e){e!==n.code&&(n.code=e)},destroy:()=>r.unmount()}}}}};export{y as anchorOf,T as mountElement,E as renderers,h as setup,_ as specLoader,v as toSpecs};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dskripchenko/embed",
3
- "version": "1.0.6",
3
+ "version": "1.1.0",
4
4
  "description": "Drop-in custom elements for any web page from a CDN: video and audio players, Mermaid diagrams, OpenAPI references, process flows, live markdown and a WYSIWYG editor, sharing one Vue runtime and cooperating through a block registry and an event bus.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -51,6 +51,7 @@
51
51
  "prepublishOnly": "pnpm build"
52
52
  },
53
53
  "devDependencies": {
54
+ "@dskripchenko/board": "0.2.1",
54
55
  "@dskripchenko/diagrams": "1.1.0",
55
56
  "@dskripchenko/flow": "1.1.1",
56
57
  "@dskripchenko/openapi": "1.1.3",