@manifest-editor/shell 2.0.0 → 2.0.1-next.0.41d9217

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/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import{ActionButton as e,CreatorGrid as t,DefaultTooltipContent as n,DownloadButton as r,EmptyState as i,ErrorMessage as a,Form as o,GridIcon as s,IconButton as c,IconHandle as l,ManifestEditorLogo as u,Modal as d,ModalBackSlot as f,PaddedSidebarContainer as p,PanelSideMenu as m,ResetIcon as h,ResizeHandle as g,Sidebar as _,SidebarContent as v,SidebarHeader as y,SidebarTabs as b,Spinner as ee,Tab as x,TabList as te,TabPanel as S,Tabs as C,Tooltip as w,TooltipTrigger as T,useLocalStorage as E,useOptionalLocalStorage as ne,useOptionalLocalStorage as re}from"@manifest-editor/components";import{Component as ie,Fragment as ae,Suspense as oe,createContext as D,createElement as se,createRef as ce,forwardRef as le,memo as ue,useCallback as O,useContext as k,useEffect as A,useImperativeHandle as de,useLayoutEffect as fe,useMemo as j,useReducer as M,useRef as N,useState as P}from"react";import{Fragment as F,jsx as I,jsxs as L}from"react/jsx-runtime";import R,{ThemeProvider as pe,css as z}from"styled-components";import me from"react-accessible-dropdown-menu-hook";import{AtlasStoreProvider as he,AtlasStoreProvider as ge,AtlasStoreReactContext as _e,CollectionContext as ve,ImageServiceLoaderContext as ye,ManifestContext as be,ReactVaultContext as xe,ResourceReactContext as Se,VaultProvider as Ce,useAtlasStore as we,useCurrentAnnotationMetadata as Te,useExistingVault as Ee,useManifest as De,useResourceContext as Oe,useVault as B,useVaultSelector as ke}from"react-iiif-vault";import{original as Ae,produce as je}from"immer";import{getValue as Me}from"@iiif/helpers";import*as Ne from"@iiif/helpers/vault";import{Vault as Pe}from"@iiif/helpers/vault";import{isSpecificResource as Fe,toRef as V}from"@iiif/parser";import{Creator as Ie,matchBasedOnResource as Le}from"@manifest-editor/creator-api";import{ErrorBoundary as Re}from"react-error-boundary";import{create as ze,createStore as Be,useStore as H}from"zustand";import{addReference as Ve,batchActions as He,modifyEntityField as Ue,reorderEntityField as We,requestResource as Ge}from"@iiif/helpers/vault/actions";import{actionListFromResource as Ke}from"@iiif/helpers/vault/utility";import{EditorInstance as qe}from"@manifest-editor/editor-api";import Je from"mitt";import{useDebounce as Ye}from"tiny-use-debounce";import{Transition as Xe}from"react-transition-group";import Ze from"shallowequal";import{ImageServiceLoader as Qe}from"@atlas-viewer/iiif-image-api";var $e=!0,et=`Invariant failed`;function U(e,t){if(!e){if($e)throw Error(et);var n=typeof t==`function`?t():t,r=n?`${et}: ${n}`:et;throw Error(r)}}const tt={previews:[],behaviorPresets:[`auto-advance`,`no-auto-advance`,`repeat`,`no-repeat`,`unordered`,`individuals`,`continuous`,`paged`,`non-paged`,`facing-pages`,`multi-part`,`together`,`sequence`,`thumbnail-nav`,`no-nav`,`hidden`],defaultPreview:null,editorConfig:{},newTemplates:null,i18n:{advancedLanguageMode:!1,availableLanguages:[`en`,`cy`,`nl`,`fr`],defaultLanguage:`en`},editorFeatureFlags:{enableMultiImageCanvases:!0,enableMultiMediaCanvases:!0,annotationPopups:!1,rememberCanvasId:!0,manifestGridOptions:!1,rememberLeftPanelId:!1},uploadBackends:[],export:{baseIdentifier:null,version:3}},nt=D(tt),rt=D(()=>{});function it(){return k(nt)}function at(){return k(rt)}function ot({children:e,config:t,saveConfig:n}){let[r,i]=P(null),a=j(()=>({...tt,...t||{},...r||{},editorFeatureFlags:{...tt.editorFeatureFlags,...t?.editorFeatureFlags||{},...r?.editorFeatureFlags}}),[t,r]),o=O(e=>{i(e),n&&n(e)},[t]);return I(rt.Provider,{value:o,children:I(nt.Provider,{value:a,children:e})})}const st=D(null),ct=D(null),lt=D({state:null,setState:()=>{}});function ut(){let e=k(ct);return U(e,`Hook useAppInstance must be used inside <AppProvider />`),e}function W(){let e=k(st);return U(e,`Hook useApp must be used inside <AppProvider />`),e}function dt(){return k(lt)}function ft(e){let[t,n,r]=E(`app-state/${e.appId}/${e.instanceId}`,e.initialState||{}),i=O(e=>{let t=r.current?JSON.parse(r.current||`{}`):{},i=(typeof e==`function`?e(t):e)||{};n({...t,...i})},[]);A(()=>{e.args&&i(e.args)},[e.appId]);let a=j(()=>({state:t||{},setState:i}),[i,t]);return I(lt.Provider,{value:a,children:e.children})}function pt({instanceId:e,appId:t,args:n,definition:r,children:i,initialState:a}){let o=j(()=>({instanceId:e,appId:t,args:n}),[e,t,n]),s=j(()=>a||{},[e]);return I(ot,{config:r.config||{},children:I(st.Provider,{value:r,children:I(ct.Provider,{value:o,children:I(ft,{instanceId:o.instanceId,appId:o.appId,args:o.args,initialState:s,children:i})})})})}const mt=D(null);function ht(){let e=k(mt);return U(e,`Hook useApps must be used inside <MultiAppProvider />`),e}function gt(e,t=!1){let[n,r]=re(`SelectedApplication`,e||{id:`splash`},!t);return[n,r]}function _t({apps:e,initialApp:t,saveCurrentApp:n=!0,instanceId:r,children:i,config:a={}}){let{defaultApp:o=`splash`,collectionApp:s=`collection-editor`,manifestApp:c=`manifest-editor`}=a,[l,u]=gt(t,n),d=e=>{e===`Manifest`&&u({id:c}),e===`Collection`&&u({id:s})},f=j(()=>({currentApp:l||{id:o},initialApp:t||{id:o},apps:e,changeApp:u,changeProjectType:d}),[t,e,l]),p=e[f.currentApp.id];return!l||!p?null:I(pt,{appId:l.id,definition:p,instanceId:l.id+r,args:l.args,children:I(mt.Provider,{value:f,children:i})})}const vt=R.div`
1
+ import{ActionButton as e,CreatorGrid as t,DefaultTooltipContent as n,DownloadButton as r,EmptyState as i,ErrorMessage as a,Form as o,GridIcon as s,IconButton as c,IconHandle as l,ManifestEditorLogo as u,Modal as d,ModalBackSlot as f,PaddedSidebarContainer as p,PanelSideMenu as m,ResetIcon as h,ResizeHandle as g,Sidebar as _,SidebarContent as v,SidebarHeader as y,SidebarTabs as b,Spinner as ee,Tab as x,TabList as te,TabPanel as S,Tabs as C,Tooltip as w,TooltipTrigger as T,useLocalStorage as E,useOptionalLocalStorage as ne,useOptionalLocalStorage as re}from"@manifest-editor/components";import{Component as ie,Fragment as ae,Suspense as oe,createContext as D,createElement as se,createRef as ce,forwardRef as le,memo as ue,useCallback as O,useContext as k,useEffect as A,useImperativeHandle as de,useLayoutEffect as fe,useMemo as j,useReducer as M,useRef as N,useState as P}from"react";import{Fragment as F,jsx as I,jsxs as L}from"react/jsx-runtime";import R,{ThemeProvider as pe,css as z}from"styled-components";import me from"react-accessible-dropdown-menu-hook";import{AtlasStoreProvider as he,AtlasStoreProvider as ge,AtlasStoreReactContext as _e,CollectionContext as ve,ImageServiceLoaderContext as ye,ManifestContext as be,ReactVaultContext as xe,ResourceReactContext as Se,VaultProvider as Ce,useAtlasStore as we,useCurrentAnnotationMetadata as Te,useExistingVault as Ee,useManifest as De,useResourceContext as Oe,useVault as B,useVaultSelector as ke}from"react-iiif-vault";import{original as Ae,produce as je}from"immer";import{getValue as Me}from"@iiif/helpers";import*as Ne from"@iiif/helpers/vault";import{Vault as Pe}from"@iiif/helpers/vault";import{isSpecificResource as Fe,toRef as V}from"@iiif/parser";import{Creator as Ie,matchBasedOnResource as Le}from"@manifest-editor/creator-api";import{create as Re,createStore as ze,useStore as H}from"zustand";import{ErrorBoundary as Be}from"react-error-boundary";import{addReference as Ve,batchActions as He,modifyEntityField as Ue,reorderEntityField as We,requestResource as Ge}from"@iiif/helpers/vault/actions";import{actionListFromResource as Ke}from"@iiif/helpers/vault/utility";import{EditorInstance as qe}from"@manifest-editor/editor-api";import Je from"mitt";import{useDebounce as Ye}from"tiny-use-debounce";import{Transition as Xe}from"react-transition-group";import Ze from"shallowequal";import{ImageServiceLoader as Qe}from"@atlas-viewer/iiif-image-api";var $e=!0,et=`Invariant failed`;function U(e,t){if(!e){if($e)throw Error(et);var n=typeof t==`function`?t():t,r=n?`${et}: ${n}`:et;throw Error(r)}}const tt={previews:[],behaviorPresets:[`auto-advance`,`no-auto-advance`,`repeat`,`no-repeat`,`unordered`,`individuals`,`continuous`,`paged`,`non-paged`,`facing-pages`,`multi-part`,`together`,`sequence`,`thumbnail-nav`,`no-nav`,`hidden`],defaultPreview:null,editorConfig:{},newTemplates:null,i18n:{advancedLanguageMode:!1,availableLanguages:[`en`,`cy`,`nl`,`fr`],defaultLanguage:`en`},editorFeatureFlags:{enableMultiImageCanvases:!0,enableMultiMediaCanvases:!0,annotationPopups:!1,rememberCanvasId:!0,manifestGridOptions:!1,rememberLeftPanelId:!1},uploadBackends:[],export:{baseIdentifier:null,version:3}},nt=D(tt),rt=D(()=>{});function it(){return k(nt)}function at(){return k(rt)}function ot({children:e,config:t,saveConfig:n}){let[r,i]=P(null),a=j(()=>({...tt,...t||{},...r||{},editorFeatureFlags:{...tt.editorFeatureFlags,...t?.editorFeatureFlags||{},...r?.editorFeatureFlags}}),[t,r]),o=O(e=>{i(e),n&&n(e)},[t]);return I(rt.Provider,{value:o,children:I(nt.Provider,{value:a,children:e})})}const st=D(null),ct=D(null),lt=D({state:null,setState:()=>{}});function ut(){let e=k(ct);return U(e,`Hook useAppInstance must be used inside <AppProvider />`),e}function W(){let e=k(st);return U(e,`Hook useApp must be used inside <AppProvider />`),e}function dt(){return k(lt)}function ft(e){let[t,n,r]=E(`app-state/${e.appId}/${e.instanceId}`,e.initialState||{}),i=O(e=>{let t=r.current?JSON.parse(r.current||`{}`):{},i=(typeof e==`function`?e(t):e)||{};n({...t,...i})},[]);A(()=>{e.args&&i(e.args)},[e.appId]);let a=j(()=>({state:t||{},setState:i}),[i,t]);return I(lt.Provider,{value:a,children:e.children})}function pt({instanceId:e,appId:t,args:n,definition:r,children:i,initialState:a}){let o=j(()=>({instanceId:e,appId:t,args:n}),[e,t,n]),s=j(()=>a||{},[e]);return I(ot,{config:r.config||{},children:I(st.Provider,{value:r,children:I(ct.Provider,{value:o,children:I(ft,{instanceId:o.instanceId,appId:o.appId,args:o.args,initialState:s,children:i})})})})}const mt=D(null);function ht(){let e=k(mt);return U(e,`Hook useApps must be used inside <MultiAppProvider />`),e}function gt(e,t=!1){let[n,r]=re(`SelectedApplication`,e||{id:`splash`},!t);return[n,r]}function _t({apps:e,initialApp:t,saveCurrentApp:n=!0,instanceId:r,children:i,config:a={}}){let{defaultApp:o=`splash`,collectionApp:s=`collection-editor`,manifestApp:c=`manifest-editor`}=a,[l,u]=gt(t,n),d=e=>{e===`Manifest`&&u({id:c}),e===`Collection`&&u({id:s})},f=j(()=>({currentApp:l||{id:o},initialApp:t||{id:o},apps:e,changeApp:u,changeProjectType:d}),[t,e,l]),p=e[f.currentApp.id];return!l||!p?null:I(pt,{appId:l.id,definition:p,instanceId:l.id+r,args:l.args,children:I(mt.Provider,{value:f,children:i})})}const vt=R.div`
2
2
  display: flex;
3
3
  align-items: center;
4
4
  height: 3em;
@@ -236,7 +236,7 @@ import{ActionButton as e,CreatorGrid as t,DefaultTooltipContent as n,DownloadBut
236
236
  border-radius: 5px;
237
237
  user-select: none;
238
238
  cursor: not-allowed;
239
- `;function tn({downloadEnabled:e,fileName:t}){let{active:n,configs:i,actions:a,selected:o}=Ht(),s=B(),c=it(),l=Et(),u=i.filter(e=>e.type===`external-manifest-preview`),{isOpen:d,buttonProps:f,itemProps:p}=me(u.length);return u.length===0?I(en,{children:`Preview not available`}):L(F,{children:[e?I(`div`,{className:`mr-4`,children:I(r,{fileName:t||`manifest.json`,label:`Download manifest`,getData:()=>c.export&&c.export.version===2?JSON.stringify(s.toPresentation2(l),null,2):JSON.stringify(s.toPresentation3(l),null,2)})}):null,L(Gt,{children:[I(Kt,{onClick:()=>{if(!o){let e=c.defaultPreview;if(e){let t=i.find(t=>t.id===e);if(t){a.selectPreview(t.id);return}}a.selectPreview(i[0].id)}a.updatePreviews()},children:`Preview`}),I(qt,{$open:d,...f,children:I(St,{})}),I(Jt,{$open:d,children:u.map((e,t)=>{let r=n.indexOf(e.id)===-1;return L(Yt,{...p[t],children:[I(Zt,{$status:r?`available`:e.id===o?`active`:`configured`}),I(Qt,{onClick:()=>{a.selectPreview(e.id)},children:e.label}),r?null:I($t,{onClick:()=>a.deletePreview(e.id),children:I(xt,{})})]},e.id)})})]})]})}const nn=ue(function(e){let[t]=E(`menu-hidden`);return I(yt,{children:L(vt,{children:[I(bt,{onClick:e.onClickLogo,children:I(u,{})}),I(tn,{})]})})}),rn=D(null);function an(){return k(rn)||null}function on(e,t){let n=an();return n?n[e][t]:null}function sn({children:e,menu:t}){return I(rn.Provider,{value:t,children:e})}function cn(){return k(_e)}function ln(e){if(!e)return null;if(e.points.length>2){let t=Math.min(...e.points.map(e=>e[0])),n=Math.min(...e.points.map(e=>e[1])),r=Math.max(0,...e.points.map(e=>e[0])),i=Math.max(0,...e.points.map(e=>e[1]));return{x:t,y:n,width:r-t,height:i-n}}return null}const un=async e=>new Promise((t,n)=>{let r=document.createElement(`img`);r.onload=()=>t(r),r.onerror=()=>n(),r.src=e,r.complete&&t(r)}),dn=async e=>new Promise((t,n)=>{let r=document.createElement(`video`);r.onloadedmetadata=()=>t(r),r.onerror=()=>n(),r.preload=`metadata`,r.src=e});async function fn(){}async function pn(e,...t){if(!e)return;if(e.endsWith(`.mp3`)||e.endsWith(`.mp4`)||e.endsWith(`.m4a`)||e.endsWith(`.m4v`))try{let t=await dn(e);if(t){let n=t.videoWidth===0;return{id:e,type:t.videoWidth===0?`Sound`:`Video`,width:t.videoWidth||void 0,height:t.videoHeight||void 0,duration:t.duration,format:n?`audio/mp4`:`video/mp4`}}}catch{}let n=null;try{await fetch(e,{method:`HEAD`}),n=await fetch(e)}catch{return gn(e)}if(!n.ok&&(n=await fetch(e+`/info.json`),!n.ok))return gn(e);let r=n.headers.get(`Content-Type`);if(r?.includes(`image/`))return gn(e,r);let i=null;try{i=await n.json()}catch{return null}return await hn(i,e)}function mn(e){return e.protocol&&e.protocol===`http://iiif.io/api/image`?(e.type||(e.type=`ImageService`),e):null}async function hn(e,t){let n=mn(e);if(n)return n;if(!(e.id||e[`@id`]))return null;let r=await new Ne.Vault().load(t,e);if(r&&(r&&r?.type===`Manifest`||r?.type===`Collection`))return{id:t,type:r.type,label:Me(r.label)}}async function gn(e,t){let n=e.split(`/`);if(n.length>=8){let e=n.slice(-4);if(e[3].split(`.`).length===2&&(e[2][0]===`!`||e[2]===e[2])){let e=await _n(n.slice(0,n.length-4).join(`/`)+`/info.json`);if(e&&e?.type&&e?.type?.startsWith(`ImageService`))return e}}try{let n=await un(e);return{id:e,type:`Image`,width:n.width,height:n.height,format:await vn(e,t)}}catch{}return null}async function _n(e){try{let t=await fetch(e);return t.ok?await hn(await t.json(),e):null}catch(e){return console.log(e),null}}async function vn(e,t){if(t)return t;try{let t=(await fetch(e,{method:`HEAD`,mode:`no-cors`})).headers.get(`Content-type`);if(t)return t}catch{}let n=e.toLowerCase();return n.endsWith(`jpg`)||n.endsWith(`jpeg`)?`image/jpeg`:n.endsWith(`png`)?`image/png`:`image/jpeg`}async function yn(e){try{let t=await un(e);if(t)return{width:t.naturalWidth||t.width,height:t.naturalHeight||t.height}}catch{return null}return null}const bn=D(null),xn=D(null);function Sn(){return k(xn)}function Cn(){return k(bn)}function wn(){return W().layout}function Tn(){let e=W(),t=e.layout,n=k(bn),r=k(xn);return j(()=>({actions:n,state:r,...t}),[e,r])}const En=e=>L(`svg`,{xmlns:`http://www.w3.org/2000/svg`,height:`1em`,width:`1em`,viewBox:`0 0 24 24`,...e,children:[I(`path`,{d:`M0 0h24v24H0z`,fill:`none`}),I(`path`,{d:`M0 0h24v24H0z`,fill:`none`}),I(`path`,{d:`M12 17.27 18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z`,fill:`currentColor`})]}),Dn=({style:e})=>L(`svg`,{xmlns:`http://www.w3.org/2000/svg`,height:`1rem`,viewBox:`0 0 24 24`,width:`1rem`,fill:`#000000`,style:e,children:[I(`path`,{d:`M0 0h24v24H0z`,fill:`none`}),I(`path`,{d:`M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z`})]});function On(e){let t=e.error.toString(),[n,r]=P(!1);return L(p,{children:[I(a,{className:`mb-2`,children:t}),I(Wt,{onClick:e.resetErrorBoundary,children:`Try again`})]})}function kn(e){return e&&e.pinnable}function An({initial:e,fallback:t,options:n={}}){return Math.max(n.minWidth||0,Math.min(n.maxWidth||1/0,e||t))}function jn(e){return typeof e==`string`?se(`div`,{dangerouslySetInnerHTML:{__html:e}}):e}const Mn=R.div`
239
+ `;function tn({downloadEnabled:e,fileName:t}){let{active:n,configs:i,actions:a,selected:o}=Ht(),s=B(),c=it(),l=Et(),u=i.filter(e=>e.type===`external-manifest-preview`),{isOpen:d,buttonProps:f,itemProps:p}=me(u.length);return u.length===0?I(en,{children:`Preview not available`}):L(F,{children:[e?I(`div`,{className:`mr-4`,children:I(r,{fileName:t||`manifest.json`,label:`Download manifest`,getData:()=>c.export&&c.export.version===2?JSON.stringify(s.toPresentation2(l),null,2):JSON.stringify(s.toPresentation3(l),null,2)})}):null,L(Gt,{children:[I(Kt,{onClick:()=>{if(!o){let e=c.defaultPreview;if(e){let t=i.find(t=>t.id===e);if(t){a.selectPreview(t.id);return}}a.selectPreview(i[0].id)}a.updatePreviews()},children:`Preview`}),I(qt,{$open:d,...f,children:I(St,{})}),I(Jt,{$open:d,children:u.map((e,t)=>{let r=n.indexOf(e.id)===-1;return L(Yt,{...p[t],children:[I(Zt,{$status:r?`available`:e.id===o?`active`:`configured`}),I(Qt,{onClick:()=>{a.selectPreview(e.id)},children:e.label}),r?null:I($t,{onClick:()=>a.deletePreview(e.id),children:I(xt,{})})]},e.id)})})]})]})}const nn=ue(function(e){let[t]=E(`menu-hidden`);return I(yt,{children:L(vt,{children:[I(bt,{onClick:e.onClickLogo,children:I(u,{})}),I(tn,{})]})})}),rn=D(null);function an(){return k(rn)||null}function on(e,t){let n=an();return n?n[e][t]:null}function sn({children:e,menu:t}){return I(rn.Provider,{value:t,children:e})}function cn(){return k(_e)}function ln(e){if(!e)return null;if(e.points.length>2){let t=Math.min(...e.points.map(e=>e[0])),n=Math.min(...e.points.map(e=>e[1])),r=Math.max(0,...e.points.map(e=>e[0])),i=Math.max(0,...e.points.map(e=>e[1]));return{x:t,y:n,width:r-t,height:i-n}}return null}const un=async e=>new Promise((t,n)=>{let r=document.createElement(`img`);r.onload=()=>t(r),r.onerror=()=>n(),r.src=e,r.complete&&t(r)}),dn=async e=>new Promise((t,n)=>{let r=document.createElement(`video`);r.onloadedmetadata=()=>t(r),r.onerror=()=>n(),r.preload=`metadata`,r.src=e});async function fn(){}async function pn(e,...t){if(!e)return;if(e.endsWith(`.mp3`)||e.endsWith(`.mp4`)||e.endsWith(`.m4a`)||e.endsWith(`.m4v`))try{let t=await dn(e);if(t){let n=t.videoWidth===0;return{id:e,type:t.videoWidth===0?`Sound`:`Video`,width:t.videoWidth||void 0,height:t.videoHeight||void 0,duration:t.duration,format:n?`audio/mp4`:`video/mp4`}}}catch{}let n=null;try{await fetch(e,{method:`HEAD`}),n=await fetch(e)}catch{return gn(e)}if(!n.ok&&(n=await fetch(e+`/info.json`),!n.ok))return gn(e);let r=n.headers.get(`Content-Type`);if(r?.includes(`image/`))return gn(e,r);let i=null;try{i=await n.json()}catch{return null}return await hn(i,e)}function mn(e){return e.protocol&&e.protocol===`http://iiif.io/api/image`?(e.type||(e.type=`ImageService`),e):null}async function hn(e,t){let n=mn(e);if(n)return n;if(!(e.id||e[`@id`]))return null;let r=await new Ne.Vault().load(t,e);if(r&&(r&&r?.type===`Manifest`||r?.type===`Collection`))return{id:t,type:r.type,label:Me(r.label)}}async function gn(e,t){let n=e.split(`/`);if(n.length>=8){let e=n.slice(-4);if(e[3].split(`.`).length===2&&(e[2][0]===`!`||e[2]===e[2])){let e=await _n(n.slice(0,n.length-4).join(`/`)+`/info.json`);if(e&&e?.type&&e?.type?.startsWith(`ImageService`))return e}}try{let n=await un(e);return{id:e,type:`Image`,width:n.width,height:n.height,format:await vn(e,t)}}catch{}return null}async function _n(e){try{let t=await fetch(e);return t.ok?await hn(await t.json(),e):null}catch(e){return console.log(e),null}}async function vn(e,t){if(t)return t;try{let t=(await fetch(e,{method:`HEAD`,mode:`no-cors`})).headers.get(`Content-type`);if(t)return t}catch{}let n=e.toLowerCase();return n.endsWith(`jpg`)||n.endsWith(`jpeg`)?`image/jpeg`:n.endsWith(`png`)?`image/png`:`image/jpeg`}async function yn(e){try{let t=await un(e);if(t)return{width:t.naturalWidth||t.width,height:t.naturalHeight||t.height}}catch{return null}return null}async function bn(e){let t;try{await fetch(e).then(e=>e.json().catch(e=>{console.error(`'${e}' happened!`)})).then(e=>{t={...e}})}catch(e){console.log(e)}return t}function xn(e,t,n){return`create_${e}_${t}_${V(n)?.type||`unknown`}`}function Sn(e,t,n=`text/json`){let r=e instanceof Blob?e:new Blob([e],{type:n}),i=document.createElement(`a`);i.download=t,i.href=window.URL.createObjectURL(r);let a=new MouseEvent(`click`,{view:window,bubbles:!0,cancelable:!0});i.dispatchEvent(a),i.remove()}async function Cn(e){return navigator.clipboard.writeText(typeof e==`string`?e:JSON.stringify(e,null,2))}function wn(){return`${Math.random().toString(36).substr(2)}-${Date.now().toString(36)}`}function Tn(e,t){let{default:n,config:r,...i}=e,a={metadata:n,layout:{leftPanels:[],rightPanels:[],centerPanels:[],...i},config:r};return t?t(a):a}function En(e,t,n){return{...e,metadata:t,config:{...e.config||{},...n.config||{}},layout:{...e.layout,leftPanels:[...(e.layout.leftPanels||[]).filter(e=>n?.leftPanelIds?n.leftPanelIds.includes(e.id):!0),...n?.leftPanels||[]],annotations:[...n?.annotations||[],...e.layout.annotations||[]],canvasEditors:[...n?.canvasEditors||[],...e.layout.canvasEditors||[]],creators:[...n?.creators||[],...e.layout.creators||[]],background:[...e.layout?.background||[],...n?.background||[]],editors:[...n?.editors||[],...e.layout.editors||[]],rightPanels:[...e.layout.rightPanels||[],...n?.rightPanels||[]],centerPanels:[...e.layout.centerPanels||[],...n?.centerPanels||[]],modals:[...e.layout.modals||[],...n?.modalPanels||[]]}}}const Dn=Re(e=>({regions:{},resources:[],setRegion:(t,n)=>{e(e=>({...e.regions,regions:{[t]:n||null}}))},setHighlight:t=>{e({resources:Array.isArray(t)?t:[t]})},highlight:t=>{e(e=>e.resources.indexOf(t)===-1?{resources:[...e.resources,t]}:e)},clearHighlight:t=>{e(e=>({resources:e.resources.filter(e=>e!==t)}))}}));function On(e){let t=j(()=>wn(),[]),n=Dn(e=>e.regions[t]),r=Dn(e=>e.setRegion);A(()=>{n&&e?n!==e&&(n.x!==e.x||n.y!==e.y||n.width!==e.width||n.height!==e.height)&&r(t,e||null):r(t,e||null)},[n]),A(()=>()=>r(t,null),[])}function kn(e){let t=Dn(e=>e.highlight),n=Dn(e=>e.clearHighlight);return A(()=>()=>{e&&n(e)},[n,e]),j(()=>({onMouseEnter(){e&&t(e)},onMouseLeave(){e&&n(e)}}),[e,t,n])}const An=e=>L(`svg`,{xmlns:`http://www.w3.org/2000/svg`,height:`1em`,width:`1em`,viewBox:`0 0 24 24`,...e,children:[I(`path`,{d:`M0 0h24v24H0z`,fill:`none`}),I(`path`,{d:`M0 0h24v24H0z`,fill:`none`}),I(`path`,{d:`M12 17.27 18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z`,fill:`currentColor`})]}),jn=({style:e})=>L(`svg`,{xmlns:`http://www.w3.org/2000/svg`,height:`1rem`,viewBox:`0 0 24 24`,width:`1rem`,fill:`#000000`,style:e,children:[I(`path`,{d:`M0 0h24v24H0z`,fill:`none`}),I(`path`,{d:`M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z`})]}),Mn=D(null),Nn=D(null);function Pn(){return k(Nn)}function Fn(){return k(Mn)}function In(){return W().layout}function Ln(){let e=W(),t=e.layout,n=k(Mn),r=k(Nn);return j(()=>({actions:n,state:r,...t}),[e,r])}function Rn(e){let t=e.error.toString(),[n,r]=P(!1);return L(p,{children:[I(a,{className:`mb-2`,children:t}),I(Wt,{onClick:e.resetErrorBoundary,children:`Try again`})]})}function zn(e){return e&&e.pinnable}function Bn({initial:e,fallback:t,options:n={}}){return Math.max(n.minWidth||0,Math.min(n.maxWidth||1/0,e||t))}function Vn(e){return typeof e==`string`?se(`div`,{dangerouslySetInnerHTML:{__html:e}}):e}const Hn=R.div`
240
240
  position: relative;
241
241
  display: inline-block;
242
242
  `;R.div`
@@ -254,7 +254,7 @@ import{ActionButton as e,CreatorGrid as t,DefaultTooltipContent as n,DownloadBut
254
254
  background-color: ${e=>e.theme.color.lightgrey||`lightgrey`};
255
255
  }
256
256
  }
257
- `;const Nn=R.button`
257
+ `;const Un=R.button`
258
258
  padding: 0 ${e=>e.theme.padding.small||`0.5rem`};
259
259
  color: ${e=>e.theme.color.main||`none`};
260
260
  background-color: ${e=>e.theme.color.white||`white`};
@@ -281,7 +281,7 @@ import{ActionButton as e,CreatorGrid as t,DefaultTooltipContent as n,DownloadBut
281
281
  color: #fff;
282
282
  }
283
283
  `}
284
- `,Pn=R.div`
284
+ `,Wn=R.div`
285
285
  display: none;
286
286
  flex-direction: column;
287
287
  position: absolute;
@@ -308,17 +308,17 @@ import{ActionButton as e,CreatorGrid as t,DefaultTooltipContent as n,DownloadBut
308
308
  ${e=>e.$open&&z`
309
309
  display: flex;
310
310
  `}
311
- `,Fn=R.div`
311
+ `,Gn=R.div`
312
312
  color: #999;
313
313
  text-transform: uppercase;
314
314
  font-weight: 600;
315
315
  padding: 0.7em;
316
316
  font-size: 0.875em;
317
- `,In=R.div`
317
+ `,Kn=R.div`
318
318
  height: 1px;
319
319
  margin: 0 0.5em;
320
320
  background: #eee;
321
- `,Ln=D(null);function Rn(){return k(Ln)}const zn=R.div`
321
+ `,qn=D(null);function Jn(){return k(qn)}const Yn=R.div`
322
322
  display: flex;
323
323
  flex-direction: column;
324
324
  position: relative;
@@ -370,7 +370,7 @@ import{ActionButton as e,CreatorGrid as t,DefaultTooltipContent as n,DownloadBut
370
370
  &[data-state="unmounted"] {
371
371
  transform: translateX(100%);
372
372
  }
373
- `,Bn=R.div`
373
+ `,Xn=R.div`
374
374
  background: #fff;
375
375
  display: flex;
376
376
  height: 2.8em;
@@ -404,15 +404,15 @@ import{ActionButton as e,CreatorGrid as t,DefaultTooltipContent as n,DownloadBut
404
404
  svg {
405
405
  font-size: 1.2em;
406
406
  }
407
- `,Vn=R.div`
407
+ `,Zn=R.div`
408
408
  flex: 1 1 0px;
409
- `,Hn=R.div`
409
+ `,Qn=R.div`
410
410
  font-size: 0.875em;
411
411
  flex: 1 1 0px;
412
412
  padding-left: 1em;
413
413
  text-align: center;
414
414
  align-self: center;
415
- `,Un=R.div`
415
+ `,$n=R.div`
416
416
  flex: 1 1 0px;
417
417
  display: flex;
418
418
 
@@ -423,7 +423,7 @@ import{ActionButton as e,CreatorGrid as t,DefaultTooltipContent as n,DownloadBut
423
423
  > * {
424
424
  min-width: 0;
425
425
  }
426
- `;function Wn({panel:e,state:t,actions:n,isLeft:r,pinActions:i=n,transition:a,close:o,available:s=[],style:c,noHeader:l}){let u=k(xe)||null,[d,f]=P(!1),p=dt(),m=Tn(),{tabs:h,pinnable:g,hideHeader:_}=e?.options||{},v=[p.state.canvasId,e?.id],y=j(()=>(s||[]).filter(e=>!e.requiresState),[s]),{itemProps:b,isOpen:ee,setIsOpen:x}=me(y.length),[te,S]=P(``),C=N();A(()=>f(!1),v),A(()=>S(``),[e]),A(()=>(C.current=S,()=>{C.current=void 0}),[]);let w=O(e=>{C.current&&C.current(e)},[]),T=O(r=>{let i=e?t.stack.length?n.popStack:e.backAction?()=>e&&e.backAction&&e.backAction(t,{...m,current:n},p):null:null;r&&(!i||r.metaKey)&&y.length?(r.preventDefault(),x(!0)):i&&i()},[n,p,m,e,x,t,y.length]),E=r=>{n.change({id:r.id,state:r.defaultState,stacked:!!(t.stack.length||e?.backAction)})};if(!e||!t.current)return null;let ne=e.backAction||t.stack.length?I(q,{onClick:T,children:I(Dn,{})}):null,re=I(q,{onClick:o||n.close,children:I(xt,{})});return I(Ln.Provider,{value:w,children:L(zn,{"data-state":a,"data-flipped":r,style:c,"data-header":!l,children:[l?null:L(Bn,{"data-tabs":!!h,"data-error":d,children:[L(Mn,{style:{display:`flex`,height:`100%`},children:[e.renderBackAction?e.renderBackAction({backAction:T,fallback:ne}):ne,y.length?L(Pn,{$open:ee,style:{left:`0.5em`},children:[I(Fn,{children:`All panels`}),I(In,{}),y.map((t,n)=>I(Nn,{...b[n],onClick:()=>E(t),$active:e.id===t.id,children:t.label},n))]}):null]}),te?I(Hn,{children:te}):_?I(Vn,{}):I(Hn,{children:e.label}),g?t.pinned?I(q,{onClick:i.unpin,children:I(En,{fill:`orange`})}):I(q,{onClick:()=>i.pin({id:e.id,state:t.state}),children:I(En,{fill:`#ddd`})}):null,e.renderCloseAction?e.renderCloseAction({closeAction:o||n.close,fallback:re}):re]}),I(Un,{className:`OverrideScrollbar`,children:I(Re,{onError:()=>f(!0),FallbackComponent:On,resetKeys:v,onReset:()=>f(!1),children:jn(e.render(t.state||e.defaultState||{},{...m,current:n,vault:u,transition:a},p))})})]})})}async function Gn(e){let t;try{await fetch(e).then(e=>e.json().catch(e=>{console.error(`'${e}' happened!`)})).then(e=>{t={...e}})}catch(e){console.log(e)}return t}function Kn(e,t,n){return`create_${e}_${t}_${V(n)?.type||`unknown`}`}function qn(e,t,n=`text/json`){let r=e instanceof Blob?e:new Blob([e],{type:n}),i=document.createElement(`a`);i.download=t,i.href=window.URL.createObjectURL(r);let a=new MouseEvent(`click`,{view:window,bubbles:!0,cancelable:!0});i.dispatchEvent(a),i.remove()}async function Jn(e){return navigator.clipboard.writeText(typeof e==`string`?e:JSON.stringify(e,null,2))}function Yn(){return`${Math.random().toString(36).substr(2)}-${Date.now().toString(36)}`}function Xn(e,t){let{default:n,config:r,...i}=e,a={metadata:n,layout:{leftPanels:[],rightPanels:[],centerPanels:[],...i},config:r};return t?t(a):a}function Zn(e,t,n){return{...e,metadata:t,config:{...e.config||{},...n.config||{}},layout:{...e.layout,leftPanels:[...(e.layout.leftPanels||[]).filter(e=>n?.leftPanelIds?n.leftPanelIds.includes(e.id):!0),...n?.leftPanels||[]],annotations:[...n?.annotations||[],...e.layout.annotations||[]],canvasEditors:[...n?.canvasEditors||[],...e.layout.canvasEditors||[]],creators:[...n?.creators||[],...e.layout.creators||[]],background:[...e.layout?.background||[],...n?.background||[]],editors:[...n?.editors||[],...e.layout.editors||[]],rightPanels:[...e.layout.rightPanels||[],...n?.rightPanels||[]],centerPanels:[...e.layout.centerPanels||[],...n?.centerPanels||[]],modals:[...e.layout.modals||[],...n?.modalPanels||[]]}}}const Qn=ze(e=>({regions:{},resources:[],setRegion:(t,n)=>{e(e=>({...e.regions,regions:{[t]:n||null}}))},setHighlight:t=>{e({resources:Array.isArray(t)?t:[t]})},highlight:t=>{e(e=>e.resources.indexOf(t)===-1?{resources:[...e.resources,t]}:e)},clearHighlight:t=>{e(e=>({resources:e.resources.filter(e=>e!==t)}))}}));function $n(e){let t=j(()=>Yn(),[]),n=Qn(e=>e.regions[t]),r=Qn(e=>e.setRegion);A(()=>{n&&e?n!==e&&(n.x!==e.x||n.y!==e.y||n.width!==e.width||n.height!==e.height)&&r(t,e||null):r(t,e||null)},[n]),A(()=>()=>r(t,null),[])}function er(e){let t=Qn(e=>e.highlight),n=Qn(e=>e.clearHighlight);return A(()=>()=>{e&&n(e)},[n,e]),j(()=>({onMouseEnter(){e&&t(e)},onMouseLeave(){e&&n(e)}}),[e,t,n])}function tr(e=`vault://homepage-collection.json`){let t=new Pe,n=window.localStorage.getItem(`preview-vault-collection`),r=!1;if(n)try{let i=JSON.parse(n);if(i.id&&i.id===e){t.dispatch(Ge({id:i.id}));let e=Ke(i.id,i);t.dispatch(He({actions:e})),r=!0}}catch{}if(!r){let n=Ke(e,{"@context":`http://iiif.io/api/presentation/3/context.json`,id:e,type:`Collection`,label:{en:[`Recent items`]},items:[]});t.dispatch(Ge({id:e})),t.dispatch(He({actions:n}))}return t.on(`after:@iiif/REMOVE_REFERENCE`,n=>{n.action.payload.id===e&&window.localStorage.setItem(`preview-vault-collection`,JSON.stringify(t.toPresentation3({id:e,type:`Collection`})))}),{vault:t,unsubscribe:()=>{},addHistory:(n,r)=>{let i=t.getState();if(n&&r&&(r===`Collection`||r===`Manifest`)){let a=i.iiif.entities.Collection[e];if(a){let i=a.items.findIndex(e=>e.id===n);i===-1?t.dispatch(Ve({id:e,type:`Collection`,reference:{id:n,type:r},key:`items`,index:0})):t.dispatch(We({id:e,type:`Collection`,key:`items`,startIndex:i,endIndex:0})),window.localStorage.setItem(`preview-vault-collection`,JSON.stringify(t.toPresentation3({id:e,type:`Collection`})))}}},clearHistory:()=>{t.dispatch(Ue({id:e,type:`Collection`,key:`items`,value:[]})),window.localStorage.setItem(`preview-vault-collection`,JSON.stringify(t.toPresentation3({id:e,type:`Collection`})))}}}function nr(){return k(rr)}const rr=D(new Pe),ir=D({addHistory:(e,t)=>{},clearHistory:()=>{}}),ar=`manifest-editor://homepage-collection.json`;function or(){return k(ir)}function sr(e){let{vault:t,unsubscribe:n,addHistory:r,clearHistory:i}=j(()=>tr(ar),[]);return A(()=>n,[]),I(ir.Provider,{value:{addHistory:r,clearHistory:i},children:I(rr.Provider,{value:t,children:e.children})})}function cr({children:e}){return I(Ce,{vault:nr(),children:e})}function lr(e,t,n,r,i){let a=B(),o=W(),{create:s,edit:c}=Cn(),l=j(()=>Le({type:n,parent:e,index:0,property:t},o.layout.creators||[],{vault:a}),[e,t,o.layout.creators,n,a]),u=e&&l.length!==0,d=O((a,o)=>{e&&s({type:n,parent:V(e),property:t,index:a,target:r,initialData:o,...i||{}})},[s,e,t,n,i,r]),f=O((a,o,c)=>{e&&s({type:n,filter:a,parent:V(e),property:t,index:o,target:r,initialData:c,...i||{}})},[s,e,t,n,i,r]);return[u,{create:d,edit:O((n,r)=>{c(n,e?{parent:V(e),property:t,index:r}:void 0)},[c,e,t]),createFiltered:f,creator:O((a,o)=>{e&&s({type:n,initialCreator:a,parent:V(e),property:t,target:r,initialData:o,...i||{}})},[n,t,e,r,s,i]),buttonProps:j(()=>({"data-action-id":Kn(n,t,e)}),[n,t,e])}]}function ur(){let e=B(),t=nr(),n=W();return j(()=>new Ie(e,n.layout.creators||[],t),[n.layout.creators,e])}const dr=ue(function(t){let n=B(),{edit:r,modal:o}=Cn(),[s,c]=P(!1),[l,u]=P(null),d=ur(),f=N(!1),p=t.resource.initialData?.selector;$n(p);let m={targetType:t.resource.type,parent:t.resource.parent?{property:t.resource.property,atIndex:t.resource.index,resource:t.resource.parent}:void 0,target:t.resource.target,initialData:t.resource.initialData},h=e=>{try{if(s||f.current)return;c(!0),f.current=!0,d.create(t.creator.id,e,m).catch(e=>(u(e?.message||`Unknown error`),null)).then(async e=>{if(t.onCreate?.(),t.skipEditingOnCreate||!e)return;let n=Array.isArray(e)?e[0]:e;c(!1),o.popStack(),o.close(),n&&r(n,{parent:V(t.resource.parent),property:t.resource.property,index:t.resource.index})})}catch(e){u(e?.message||`Unknown error`)}},g=async()=>!0;if(A(()=>{t.resource.initialData?.showEmptyForm||!t.creator.render&&!s&&h({})},[t.creator]),l)return I(`div`,{className:`flex flex-col items-center p-4`,children:I(a,{children:l})});let _=I(`div`,{className:`flex flex-col items-center py-8`,children:L(`div`,{className:`flex gap-2 items-center`,children:[I(ee,{}),` `,I(`span`,{children:`Loading`})]})});return s?_:t.creator.render?I(F,{children:I(oe,{fallback:_,children:t.creator.render({vault:n,runCreate:h,validate:g,options:m})})}):L(F,{children:[I(i,{children:`No options available`}),I(e,{primary:!0,onPress:()=>h({}),children:t.creator.actionButton||`Create`})]})});function fr(e){let n=W(),r=B(),[i,a]=P(e.resource.initialCreator||``),o=Rn(),l=j(()=>Le(e.resource,n.layout.creators||[],{vault:r}),[e.resource,n.layout.creators,r]);l.length===1&&!i&&a(l[0].id);let u=l.find(e=>e.id===i);if(A(()=>{u&&o?.(u.label)}),l.length===0)return I(`div`,{children:`Not currently supported`});let d=I(f,{children:I(c,{root:document.getElementById(`headlessui-portal-root`)||void 0,label:`Back to Add content options`,className:`group`,placement:`right`,onPress:()=>a(``),children:I(s,{className:`text-2xl opacity-50 group-hover:opacity-70`})})});return u?u.hiddenModal?L(F,{children:[d,I(dr,{creator:u,resource:e.resource})]}):L(`div`,{children:[d,I(`div`,{className:`p-2 py-6`,children:I(dr,{creator:u,resource:e.resource})})]}):I(t,{label:`Select a type`,items:l.map(e=>({id:e.id,title:e.label,description:e.summary||``,icon:e.icon,onClick:()=>a(e.id)}))})}const pr={id:`@manifest-editor/creator`,label:`Add content`,options:{hideHeader:!0,tabs:!1},render(e){return I(fr,{resource:e})}};function mr(e,t){switch(t.type){case`setStack`:return{...e,stack:t.payload.resources,current:t.payload.resources[0]||null};case`edit`:{let n=t.payload.reset;return(t.payload.resource?.resource.source?.type===`Manifest`||t.payload.resource?.resource.source?.type===`Canvas`)&&(n=!0),e.current?.resource.source.id===t.payload.resource?.resource.source.id?{...e,current:t.payload.resource}:{...e,current:t.payload.resource,stack:n?[]:e.current?[e.current,...e.stack]:e.stack}}case`syncRemoval`:{let n=V(t.payload.resource.resource);if(!n||!e.stack.find(e=>V(e.resource)?.id===n.id))return e;let r=e.current?.resource.id===n.id?null:e.current,i=hr(e.stack.filter(e=>V(e.resource)?.id!==n.id),r);return{...e,stack:i,current:r}}case`updateCurrent`:return{...e,current:t.payload.resource};case`back`:{let t=e.stack[0];return{...e,stack:e.stack.slice(1),current:t||null}}case`close`:return{...e,stack:[],current:null};case`create`:return t.payload.resource===null?{...e,create:null}:{...e,create:t.payload}}return e}function hr(e,t){let n=[],r=null;for(let t of e)r?.resource.id!==t.resource.id&&(n.push(t),r=t);return r&&r.resource.id===t?.resource.id?n.slice(0,n.length-1):n}const gr={stack:[],current:null,create:null},J=D(gr),_r=D({edit(){},close(){},back(){},setStack(){},updateCurrent(){},create(){return()=>{}}});function vr(){return k(_r)}function yr(){return k(J).current}function br(){return k(J).stack}function xr(){return k(J).create}function Sr(){let{manifest:e}=Oe(),t=B(),[n,r]=M(e=>e+1,0);U(e,`Manifest not found`);let i=j(()=>new qe({reference:{id:e,type:`Manifest`},vault:t}),[e,t]);return A(()=>i.observe.start(r),[i]),i.observe.key=`${n}`,i.observe.reset(),i}function Cr(){let{collection:e}=Oe(),t=B(),[n,r]=M(e=>e+1,0);U(e,`Collection not found`);let i=j(()=>new qe({reference:{id:e,type:`Collection`},vault:t}),[e,t]);return A(()=>i.observe.start(r),[i]),i.observe.key=`${n}`,i.observe.reset(),i}function wr(e,t={}){let n=B(),[r,i]=M(e=>e+1,0);!t.allowNull&&U(e,`Resource not found`);let a=j(()=>t.allowNull&&!e?null:new qe({reference:V(e),vault:n,context:{resource:e,parent:t.parent,index:t.index,parentProperty:t.parentProperty}}),[e,n]);return A(()=>a?.observe.start(i),[a]),a&&(a.observe.key=`${r}`,a.observe.reset()),a}function Tr(){let{annotationPage:e}=Oe();return U(e,`Annotation page not found`),wr({id:e,type:`AnnotationPage`})}function Er(){let e=yr(),t=B(),[n,r]=M(e=>e+1,0);U(e,`No resource selected`);let i=j(()=>new qe({reference:e.resource.source||e.resource,vault:t}),[e,t]);return A(()=>i.observe.start(r),[i]),i.observe.key=`${n}`,i.observe.reset(),i}function Dr(e){let t=B(),[n,r]=M(mr,e),i=O(e=>{r(e)},[]);A(()=>t.on(`@iiif/REMOVE_REFERENCE`,e=>{let t=e.action,n={id:t.payload.id,type:t.payload.type},i=t.payload.reference;r({type:`syncRemoval`,payload:{resource:{parent:n,resource:i}}})}),[t]);let a=O((e,t=!1)=>i({type:`edit`,payload:{resource:e,reset:t}}),[]),o=O(e=>i({type:`setStack`,payload:{resources:e}}),[]),s=O(e=>i({type:`updateCurrent`,payload:{resource:e}}),[]),c=O(()=>i({type:`close`}),[]),l=O(()=>i({type:`back`}),[]),u=O((e,t)=>(i({type:`create`,payload:{resource:e,options:t}}),()=>{i({type:`create`,payload:{resource:null}})}),[]);return[n,j(()=>({edit:a,updateCurrent:s,close:c,back:l,create:u,setStack:o}),[])]}function Or(e){let{instanceId:t}=ut(),[n,r]=Dr(e.initialState||gr);return I(_r.Provider,{value:r,children:I(J.Provider,{value:n,children:e.children})},t)}function kr({resource:e,children:t}){let{instanceId:n}=ut(),[r,i]=Dr(j(()=>({create:null,stack:[],current:{resource:{type:`SpecificResource`,source:{id:e.id,type:e.type}}}}),[]));return I(_r.Provider,{value:i,children:I(J.Provider,{value:r,children:t})},n)}function Ar({fallback:e,backAction:t}){let n=br(),{back:r}=vr();return n.length?I(q,{onClick:r,children:I(Dn,{})}):e}function jr({closeAction:e,fallback:t}){let n=br();return yr()||n.length?I(q,{onClick:()=>{e()},children:I(xt,{})}):t}function Mr(e,t,n,r){let i=t.filter(t=>t.resourceType===e.resource.source.type);if(i.length===0)return null;for(let t of i){let i=[],a={},o=(t.editors||[]).filter(t=>{if(r.hideTabs&&r.hideTabs.includes(t.id)||r.onlyTabs&&!r.onlyTabs.includes(t.id))return!1;if(t.supports.sortKey){if(i.includes(t.supports.sortKey))return!1;t.supports.sortFallback&&(a[t.supports.sortKey]=t)}return n.edit&&!t.supports.edit||t.supports.custom&&t.supports.custom(e,n.vault)===!1?!1:(t.supports.sortKey&&i.push(t.supports.sortKey),!0)}),s=Object.keys(a);for(let e of s)!i.includes(e)&&a[e]&&!o.includes(a[e])&&o.push(a[e]);if(o.length)return{...t,editors:o}}return null}function Nr({currentTab:e=void 0}){let t=yr(),n=k(Se),r=W(),i=Et(),a=B(),{change:o}=Cn(),s=Rn(),{editorConfig:c}=it(),l=t?.resource.source?.id,u=t?.resource.source?.type,d=l!==i.id;l&&d&&i.type===`Collection`&&u===`Collection`&&(u=`EmbeddedCollection`);let f=(u?c[u]:c.All)||{},p=j(()=>{let e={...n},r=t?.resource.source.id,i=t?.resource.source.type,a={Collection:`collection`,Manifest:`manifest`,Range:`range`,Canvas:`canvas`,Annotation:`annotation`,AnnotationPage:`annotationPage`};return i&&a[i]&&(e[a[i]]=r),e},[t,n]);function m(e){return t?I(Se.Provider,{value:p,children:e}):e}let h=j(()=>{if(!t)return null;let e=r.layout.editors||[];return Mr(t,(r.layout.resources||[]).map(t=>typeof t==`string`?{id:`@default/`+t,label:t,resourceType:t,auto:!0,editors:e.filter(e=>e.supports.resourceTypes.includes(t))}:t),{edit:!0,vault:a},f)},[t,r]);if(A(()=>{s(h?.label||``)},[h]),A(()=>{let t=h?.editors.map(e=>e.id)||[];t.find(t=>t===e)||o(`@manifest-editor/editor`,{currentTab:t[0]})},[h?.editors,e,o]),!t||!h)return null;if(f.singleTab){let e=(h?.editors||[]).find(e=>e.id===f.singleTab);if(e)return m(I(`div`,{className:`w-full`,children:e.component(f)},t.resource.source?.id))}return m(I(b,{isNested:d,rootResource:i,menuId:t.resource.source.id,menu:(h?.editors||[]).map((e,t)=>({id:e.id,label:e.label,renderComponent:()=>e.component(f)})),selectedKey:e,onSelectionChange:e=>{o(`@manifest-editor/editor`,{currentTab:e})}},t.resource.source?.id))}const Pr={id:`@manifest-editor/editor`,label:`Editor`,options:{hideHeader:!0,tabs:!0,minWidth:400},renderBackAction:({backAction:e,fallback:t})=>I(Ar,{backAction:e,fallback:t}),renderCloseAction:({closeAction:e,fallback:t})=>I(jr,{closeAction:e,fallback:t}),render({currentTab:e}){return I(Nr,{currentTab:e})}},Fr={color:{main:`#B84C74`,mainHover:`#4a89ff`,logoPink:`#E94581`,white:`white`,grey:`grey`,black:`black`,lightgrey:`#F8F9FA`,mediumgrey:`#dddddd`,danger:`#a90e21`,warning:`#e38627`,lightdanger:`#ffeaea`,lightsuccess:`#c5e8c5`,success:`#6ccd55`,greyOverlay:`rgba(0, 0, 0, 0.2)`,highlight:`#faeed7`},iiifColor:{manifest:`rgba(0, 0, 0, 0.2)`,canvas:`rgba(255, 222, 219, 0.8)`,service:`rgba(13, 110, 253, 0.8)`,annotation:`rgba(247, 226, 173, 0.8)`,contentResource:`rgba(207, 247, 255, 0.8)`,ranges:`rgba(144, 213, 157, 0.8)`},padding:{xs:`0.25rem`,small:`0.5rem`,medium:`1rem`,large:`2rem`},device:{mobile:`375px`,tablet:`768px`,laptop:`992px`,desktop:`1200px`},shadows:{standard:`rgba(0, 0, 0, 0.1) 0px 1px 3px 0px, rgba(0, 0, 0, 0.05) 0px 5px 15px 0px`,bottom:`rgba(0, 0, 0, 0.1) 0px 4px 2px -2px`}};function Ir(e){let{}=e,t=B(),n=W(),r=j(()=>Le(e.resource,n.layout.creators||[],{vault:t}),[e.resource,n.layout.creators,t]);return r.length===0?I(`div`,{children:`No supported creators found`}):I(`div`,{children:L(C,{className:`w-full flex-1 overflow-hidden flex flex-col`,children:[I(te,{className:`flex-1 overflow-hidden w-full flex text-sm whitespace-nowrap`,items:r,children:e=>I(x,{id:e.id,children:e.label})}),r.map(t=>I(S,{id:t.id,className:`p-2`,children:I(pe,{theme:Fr,children:I(dr,{creator:t,resource:e.resource,onCreate:e.onCreate,skipEditingOnCreate:!0})})},t.id))]})})}function Lr(e){let[t,n]=P(!1),r=N(),i=N(0);function a(t){i.current--,!(t&&i.current!==0)&&(r.current&&(clearTimeout(r.current),r.current=0),r.current=setTimeout(()=>{n(!1)},e))}function o(){i.current++,r.current&&clearTimeout(r.current),n(!0)}return j(()=>[t,{set:o,clear:a}],[t])}function Rr(){let t=Ht(),n=Et(),r=it(),i=at(),[a,s]=Lr(2e3);function c(e){e.preventDefault();let t=new FormData(e.target);i({defaultPreview:t.get(`defaultPreview`),i18n:{...r.i18n||{},advancedLanguageMode:t.get(`advancedLanguageMode`)===`on`,availableLanguages:(t.get(`availableLanguages`)||``).split(`,`).map(e=>e.trim()),defaultLanguage:t.get(`defaultLanguage`)},export:{...r.export||{},version:t.get(`isVersion2`)===`on`?2:3,baseIdentifier:t.get(`base`)||null},editorFeatureFlags:{...r.editorFeatureFlags||{},rememberCanvasId:t.get(`rememberCanvasId`)===`on`,rememberLeftPanelId:t.get(`rememberLeftPanelId`)===`on`,annotationPopups:t.get(`annotationPopups`)===`on`,manifestGridOptions:t.get(`manifestGridOptions`)===`on`,enableMultiImageCanvases:t.get(`enableMultiImageCanvases`)===`on`,enableMultiMediaCanvases:t.get(`enableMultiMediaCanvases`)===`on`}}),s.set(),s.clear()}return L(_,{children:[I(y,{title:`Workspace configuration`}),a?I(`div`,{className:`bg-me-primary-500 text-white p-3 text-sm`,children:`Changes saved`}):null,I(v,{className:`p-4`,children:L(o.Form,{onSubmit:c,className:`flex flex-col gap-3`,children:[L(o.InputContainer,{children:[I(o.Label,{htmlFor:`defaultLanguage`,children:`Default Language`}),I(o.Input,{type:`text`,name:`defaultLanguage`,id:`defaultLanguage`,defaultValue:r.i18n?.defaultLanguage||``})]}),L(o.InputContainer,{children:[I(o.Label,{htmlFor:`availableLanguages`,children:`Available Languages`}),I(o.Input,{type:`text`,name:`availableLanguages`,id:`availableLanguages`,defaultValue:(r.i18n?.availableLanguages||[]).join(`, `)})]}),L(o.InputContainer,{horizontal:!0,className:`my-3`,children:[I(o.Input,{type:`checkbox`,name:`advancedLanguageMode`,id:`advancedLanguageMode`,defaultChecked:r.i18n?.advancedLanguageMode||!1}),I(o.Label,{htmlFor:`advancedLanguageMode`,children:`Advanced Language Mode`})]}),L(o.InputContainer,{horizontal:!0,className:`my-3`,children:[I(o.Input,{type:`checkbox`,name:`textGranularityEnabled`,id:`textGranularityEnabled`,defaultChecked:r.i18n?.textGranularityEnabled||!1}),I(o.Label,{htmlFor:`textGranularityEnabled`,children:`Enable text granularity`})]}),L(o.InputContainer,{horizontal:!0,className:`my-3`,children:[I(o.Input,{type:`checkbox`,name:`rememberCanvasId`,id:`rememberCanvasId`,defaultChecked:r.editorFeatureFlags?.rememberCanvasId||!1}),I(o.Label,{htmlFor:`rememberCanvasId`,children:`Remember Canvas ID`})]}),L(o.InputContainer,{horizontal:!0,className:`my-3`,children:[I(o.Input,{type:`checkbox`,name:`rememberLeftPanelId`,id:`rememberLeftPanelId`,defaultChecked:r.editorFeatureFlags?.rememberLeftPanelId||!1}),I(o.Label,{htmlFor:`rememberLeftPanelId`,children:`Remember Left panel`})]}),L(o.InputContainer,{horizontal:!0,className:`my-3`,children:[I(o.Input,{type:`checkbox`,name:`manifestGridOptions`,id:`manifestGridOptions`,defaultChecked:r.editorFeatureFlags?.manifestGridOptions||!1}),I(o.Label,{htmlFor:`manifestGridOptions`,children:`Manifest Grid Options`})]}),L(o.InputContainer,{horizontal:!0,className:`my-3`,children:[I(o.Input,{type:`checkbox`,name:`isVersion2`,id:`isVersion2`,defaultChecked:r.export?.version===2}),L(o.Label,{htmlFor:`isVersion2`,children:[`Export Presentation 2 `,n.type,`s`]})]}),L(o.InputContainer,{children:[I(o.Label,{htmlFor:`defaultPreview`,children:`Default preview`}),I(`div`,{children:t.configs.map((e,t)=>e.type===`iiif-preview-service`?null:L(o.InputContainer,{horizontal:!0,children:[I(o.Input,{type:`radio`,id:e.id,name:`defaultPreview`,value:e.id,defaultChecked:r.defaultPreview?r.defaultPreview===e.id:t===0}),I(`label`,{htmlFor:e.id,children:e.label})]},e.id))})]}),n.type===`Manifest`?I(`a`,{className:`text-sm text-me-primary-500 hover:underline hover:text-me-primary-600`,href:window.location.pathname.includes(`/exhibition`)?window.location.pathname.replace(`/exhibition`,``)||`/`:`${window.location.pathname}/exhibition`,children:window.location.pathname.includes(`/exhibition`)?`Return to Manifest Editor`:`Go to Exhibition Editor`}):null,I(`div`,{className:`mt-5`,children:I(e,{type:`submit`,children:`Save changes`})})]})})]})}function zr(){return Be((e,t)=>({specificMenus:{},resourceMenus:{},hookMenuItem(t){let n=Yn(),r=t.resource?.id||``,i=t.resource?.type;return i?r?(e(e=>({specificMenus:{...e.specificMenus,[r]:{...e.specificMenus[r]||{},menus:{...e.specificMenus[r]?.menus||{},[n]:{sectionTitle:t.sectionTitle,items:t.items}}}}})),()=>{e(e=>({specificMenus:{...e.specificMenus,[r]:{...e.specificMenus[r]||{},menus:{...e.specificMenus[r]?.menus||{},[n]:void 0}}}}))}):(e(e=>({resourceMenus:{...e.resourceMenus,[i]:{...e.resourceMenus[i]||{},menus:{...e.resourceMenus[i]?.menus||{},[n]:{sectionTitle:t.sectionTitle,items:t.items}}}}})),()=>{e(e=>({resourceMenus:{...e.resourceMenus,[i]:{...e.resourceMenus[i]||{},menus:{...e.resourceMenus[i]?.menus||{},[n]:void 0}}}}))}):()=>{}}}))}const Br=D(null);function Vr({children:e}){let t=j(()=>zr(),[]);return I(Br.Provider,{value:t,children:e})}function Hr(){let e=k(Br);if(!e)throw Error(`useContextMenuStore must be used within a ContextMenuProvider`);return e}function Ur(e){let t=Hr(),n=H(t,e=>e.resourceMenus),r=H(t,e=>e.specificMenus);return j(()=>{let t=r[e.id||``]?.menus||{},i=n[e.type]?.menus||{},a=Object.values(t).flat(),o=[...Object.values(i).flat(),...a].filter(e=>e!==void 0),s=[],c=[];for(let e of o){let t=[];for(let n of e.items||[])n.id&&s.includes(n.id)||(s.push(n.id),t.push(n));t.length&&c.push({...e,items:t})}return Wr(c)},[r,n,e.id,e.type])}function Wr(e){let t={},n=[];e.forEach(e=>{if(!e)return;let r=e.sectionTitle;if(!r){n.push(...e.items||[]);return}t[r]||(t[r]=[]),t[r].push(...e.items)});let r=Object.entries(t).map(([e,t])=>({sectionTitle:e,items:t}));return n.length&&r.push({items:n}),r}function Gr(e,t=[]){let n=H(Hr(),e=>e.hookMenuItem);A(()=>n(e),[n,e.resource?.id,e.resource?.type,...t])}var Kr={};function qr(e){return L(`div`,{className:Kr.CenterPanelContainer,children:[e.title||e.close?L(`div`,{className:Kr.CenterPanelHeader,children:[e.title?I(`h2`,{className:Kr.CenterPanelTitle,children:e.title}):null,e.close?I(K,{className:Kr.CenterPanelClose,onClick:e.close,children:I(xt,{})}):null]}):null,e.children]})}const Jr=R.div`
426
+ `;function er({panel:e,state:t,actions:n,isLeft:r,pinActions:i=n,transition:a,close:o,available:s=[],style:c,noHeader:l}){let u=k(xe)||null,[d,f]=P(!1),p=dt(),m=Ln(),{tabs:h,pinnable:g,hideHeader:_}=e?.options||{},v=[p.state.canvasId,e?.id],y=j(()=>(s||[]).filter(e=>!e.requiresState),[s]),{itemProps:b,isOpen:ee,setIsOpen:x}=me(y.length),[te,S]=P(``),C=N();A(()=>f(!1),v),A(()=>S(``),[e]),A(()=>(C.current=S,()=>{C.current=void 0}),[]);let w=O(e=>{C.current&&C.current(e)},[]),T=O(r=>{let i=e?t.stack.length?n.popStack:e.backAction?()=>e&&e.backAction&&e.backAction(t,{...m,current:n},p):null:null;r&&(!i||r.metaKey)&&y.length?(r.preventDefault(),x(!0)):i&&i()},[n,p,m,e,x,t,y.length]),E=r=>{n.change({id:r.id,state:r.defaultState,stacked:!!(t.stack.length||e?.backAction)})};if(!e||!t.current)return null;let ne=e.backAction||t.stack.length?I(q,{onClick:T,children:I(jn,{})}):null,re=I(q,{onClick:o||n.close,children:I(xt,{})});return I(qn.Provider,{value:w,children:L(Yn,{"data-state":a,"data-flipped":r,style:c,"data-header":!l,children:[l?null:L(Xn,{"data-tabs":!!h,"data-error":d,children:[L(Hn,{style:{display:`flex`,height:`100%`},children:[e.renderBackAction?e.renderBackAction({backAction:T,fallback:ne}):ne,y.length?L(Wn,{$open:ee,style:{left:`0.5em`},children:[I(Gn,{children:`All panels`}),I(Kn,{}),y.map((t,n)=>I(Un,{...b[n],onClick:()=>E(t),$active:e.id===t.id,children:t.label},n))]}):null]}),te?I(Qn,{children:te}):_?I(Zn,{}):I(Qn,{children:e.label}),g?t.pinned?I(q,{onClick:i.unpin,children:I(An,{fill:`orange`})}):I(q,{onClick:()=>i.pin({id:e.id,state:t.state}),children:I(An,{fill:`#ddd`})}):null,e.renderCloseAction?e.renderCloseAction({closeAction:o||n.close,fallback:re}):re]}),I($n,{className:`OverrideScrollbar`,children:I(Be,{onError:()=>f(!0),FallbackComponent:Rn,resetKeys:v,onReset:()=>f(!1),children:Vn(e.render(t.state||e.defaultState||{},{...m,current:n,vault:u,transition:a},p))})})]})})}function tr(e=`vault://homepage-collection.json`){let t=new Pe,n=window.localStorage.getItem(`preview-vault-collection`),r=!1;if(n)try{let i=JSON.parse(n);if(i.id&&i.id===e){t.dispatch(Ge({id:i.id}));let e=Ke(i.id,i);t.dispatch(He({actions:e})),r=!0}}catch{}if(!r){let n=Ke(e,{"@context":`http://iiif.io/api/presentation/3/context.json`,id:e,type:`Collection`,label:{en:[`Recent items`]},items:[]});t.dispatch(Ge({id:e})),t.dispatch(He({actions:n}))}return t.on(`after:@iiif/REMOVE_REFERENCE`,n=>{n.action.payload.id===e&&window.localStorage.setItem(`preview-vault-collection`,JSON.stringify(t.toPresentation3({id:e,type:`Collection`})))}),{vault:t,unsubscribe:()=>{},addHistory:(n,r)=>{let i=t.getState();if(n&&r&&(r===`Collection`||r===`Manifest`)){let a=i.iiif.entities.Collection[e];if(a){let i=a.items.findIndex(e=>e.id===n);i===-1?t.dispatch(Ve({id:e,type:`Collection`,reference:{id:n,type:r},key:`items`,index:0})):t.dispatch(We({id:e,type:`Collection`,key:`items`,startIndex:i,endIndex:0})),window.localStorage.setItem(`preview-vault-collection`,JSON.stringify(t.toPresentation3({id:e,type:`Collection`})))}}},clearHistory:()=>{t.dispatch(Ue({id:e,type:`Collection`,key:`items`,value:[]})),window.localStorage.setItem(`preview-vault-collection`,JSON.stringify(t.toPresentation3({id:e,type:`Collection`})))}}}function nr(){return k(rr)}const rr=D(new Pe),ir=D({addHistory:(e,t)=>{},clearHistory:()=>{}}),ar=`manifest-editor://homepage-collection.json`;function or(){return k(ir)}function sr(e){let{vault:t,unsubscribe:n,addHistory:r,clearHistory:i}=j(()=>tr(ar),[]);return A(()=>n,[]),I(ir.Provider,{value:{addHistory:r,clearHistory:i},children:I(rr.Provider,{value:t,children:e.children})})}function cr({children:e}){return I(Ce,{vault:nr(),children:e})}function lr(e,t,n,r,i){let a=B(),o=W(),{create:s,edit:c}=Fn(),l=j(()=>Le({type:n,parent:e,index:0,property:t},o.layout.creators||[],{vault:a}),[e,t,o.layout.creators,n,a]),u=e&&l.length!==0,d=O((a,o)=>{if(e)return s({type:n,parent:V(e),property:t,index:a,target:r,initialData:o,...i||{}})},[s,e,t,n,i,r]),f=O((a,o,c)=>{if(e)return s({type:n,filter:a,parent:V(e),property:t,index:o,target:r,initialData:c,...i||{}})},[s,e,t,n,i,r]);return[u,{create:d,edit:O((n,r)=>{c(n,e?{parent:V(e),property:t,index:r}:void 0)},[c,e,t]),createFiltered:f,creator:O((a,o)=>{if(e)return s({type:n,initialCreator:a,parent:V(e),property:t,target:r,initialData:o,...i||{}})},[n,t,e,r,s,i]),buttonProps:j(()=>({"data-action-id":xn(n,t,e)}),[n,t,e])}]}function ur(){let e=B(),t=nr(),n=W();return j(()=>new Ie(e,n.layout.creators||[],t),[n.layout.creators,e])}const dr=ue(function(t){let n=B(),{edit:r,modal:o}=Fn(),[s,c]=P(!1),[l,u]=P(null),d=ur(),f=N(!1),p=t.resource.initialData?.selector;On(p);let m={targetType:t.resource.type,parent:t.resource.parent?{property:t.resource.property,atIndex:t.resource.index,resource:t.resource.parent}:void 0,target:t.resource.target,initialData:t.resource.initialData},h=e=>{try{if(s||f.current)return;c(!0),f.current=!0,d.create(t.creator.id,e,m).catch(e=>(u(e?.message||`Unknown error`),null)).then(async e=>{if(t.onCreate?.(),t.skipEditingOnCreate||!e)return;let n=Array.isArray(e)?e[0]:e;c(!1),o.popStack(),o.close(),n&&r(n,{parent:V(t.resource.parent),property:t.resource.property,index:t.resource.index})})}catch(e){u(e?.message||`Unknown error`)}},g=async()=>!0;if(A(()=>{t.resource.initialData?.showEmptyForm||!t.creator.render&&!s&&h({})},[t.creator]),l)return I(`div`,{className:`flex flex-col items-center p-4`,children:I(a,{children:l})});let _=I(`div`,{className:`flex flex-col items-center py-8`,children:L(`div`,{className:`flex gap-2 items-center`,children:[I(ee,{}),` `,I(`span`,{children:`Loading`})]})});return s?_:t.creator.render?I(F,{children:I(oe,{fallback:_,children:t.creator.render({vault:n,runCreate:h,validate:g,options:m})})}):L(F,{children:[I(i,{children:`No options available`}),I(e,{primary:!0,onPress:()=>h({}),children:t.creator.actionButton||`Create`})]})});function fr(e){let n=W(),r=B(),[a,o]=P(e.resource.initialCreator||``),l=Jn(),u=j(()=>Le(e.resource,n.layout.creators||[],{vault:r}),[e.resource,n.layout.creators,r]);u.length===1&&!a&&o(u[0].id);let d=u.find(e=>e.id===a);if(A(()=>{d&&l?.(d.label)}),u.length===0)return I(i,{children:`Not currently supported`});let p=I(f,{children:I(c,{root:document.getElementById(`headlessui-portal-root`)||void 0,label:`Back to Add content options`,className:`group`,placement:`right`,onPress:()=>o(``),children:I(s,{className:`text-2xl opacity-50 group-hover:opacity-70`})})});return d?d.hiddenModal?L(F,{children:[p,I(dr,{creator:d,resource:e.resource})]}):L(`div`,{children:[p,I(`div`,{className:`p-2 py-6`,children:I(dr,{creator:d,resource:e.resource})})]}):I(t,{label:`Select a type`,items:u.map(e=>({id:e.id,title:e.label,description:e.summary||``,icon:e.icon,onClick:()=>o(e.id)}))})}const pr={id:`@manifest-editor/creator`,label:`Add content`,options:{hideHeader:!0,tabs:!1},render(e){return I(fr,{resource:e})}};function mr(e,t){switch(t.type){case`setStack`:return{...e,stack:t.payload.resources,current:t.payload.resources[0]||null};case`edit`:{let n=t.payload.reset;return(t.payload.resource?.resource.source?.type===`Manifest`||t.payload.resource?.resource.source?.type===`Canvas`)&&(n=!0),e.current?.resource.source.id===t.payload.resource?.resource.source.id?{...e,current:t.payload.resource}:{...e,current:t.payload.resource,stack:n?[]:e.current?[e.current,...e.stack]:e.stack}}case`syncRemoval`:{let n=V(t.payload.resource.resource);if(!n||!e.stack.find(e=>V(e.resource)?.id===n.id))return e;let r=e.current?.resource.id===n.id?null:e.current,i=hr(e.stack.filter(e=>V(e.resource)?.id!==n.id),r);return{...e,stack:i,current:r}}case`updateCurrent`:return{...e,current:t.payload.resource};case`back`:{let t=e.stack[0];return{...e,stack:e.stack.slice(1),current:t||null}}case`close`:return{...e,stack:[],current:null};case`create`:return t.payload.resource===null?{...e,create:null}:{...e,create:t.payload}}return e}function hr(e,t){let n=[],r=null;for(let t of e)r?.resource.id!==t.resource.id&&(n.push(t),r=t);return r&&r.resource.id===t?.resource.id?n.slice(0,n.length-1):n}const gr={stack:[],current:null,create:null},J=D(gr),_r=D({edit(){},close(){},back(){},setStack(){},updateCurrent(){},create(){return()=>{}}});function vr(){return k(_r)}function yr(){return k(J).current}function br(){return k(J).stack}function xr(){return k(J).create}function Sr(){let{manifest:e}=Oe(),t=B(),[n,r]=M(e=>e+1,0);U(e,`Manifest not found`);let i=j(()=>new qe({reference:{id:e,type:`Manifest`},vault:t}),[e,t]);return A(()=>i.observe.start(r),[i]),i.observe.key=`${n}`,i.observe.reset(),i}function Cr(){let{collection:e}=Oe(),t=B(),[n,r]=M(e=>e+1,0);U(e,`Collection not found`);let i=j(()=>new qe({reference:{id:e,type:`Collection`},vault:t}),[e,t]);return A(()=>i.observe.start(r),[i]),i.observe.key=`${n}`,i.observe.reset(),i}function wr(e,t={}){let n=B(),[r,i]=M(e=>e+1,0);!t.allowNull&&U(e,`Resource not found`);let a=j(()=>t.allowNull&&!e?null:new qe({reference:V(e),vault:n,context:{resource:e,parent:t.parent,index:t.index,parentProperty:t.parentProperty}}),[e,n]);return A(()=>a?.observe.start(i),[a]),a&&(a.observe.key=`${r}`,a.observe.reset()),a}function Tr(){let{annotationPage:e}=Oe();return U(e,`Annotation page not found`),wr({id:e,type:`AnnotationPage`})}function Er(){let e=yr(),t=B(),[n,r]=M(e=>e+1,0);U(e,`No resource selected`);let i=j(()=>new qe({reference:e.resource.source||e.resource,vault:t}),[e,t]);return A(()=>i.observe.start(r),[i]),i.observe.key=`${n}`,i.observe.reset(),i}function Dr(e){let t=B(),[n,r]=M(mr,e),i=O(e=>{r(e)},[]);A(()=>t.on(`@iiif/REMOVE_REFERENCE`,e=>{let t=e.action,n={id:t.payload.id,type:t.payload.type},i=t.payload.reference;r({type:`syncRemoval`,payload:{resource:{parent:n,resource:i}}})}),[t]);let a=O((e,t=!1)=>i({type:`edit`,payload:{resource:e,reset:t}}),[]),o=O(e=>i({type:`setStack`,payload:{resources:e}}),[]),s=O(e=>i({type:`updateCurrent`,payload:{resource:e}}),[]),c=O(()=>i({type:`close`}),[]),l=O(()=>i({type:`back`}),[]),u=O((e,t)=>(i({type:`create`,payload:{resource:e,options:t}}),()=>{i({type:`create`,payload:{resource:null}})}),[]);return[n,j(()=>({edit:a,updateCurrent:s,close:c,back:l,create:u,setStack:o}),[])]}function Or(e){let{instanceId:t}=ut(),[n,r]=Dr(e.initialState||gr);return I(_r.Provider,{value:r,children:I(J.Provider,{value:n,children:e.children})},t)}function kr({resource:e,children:t}){let{instanceId:n}=ut(),[r,i]=Dr(j(()=>({create:null,stack:[],current:{resource:{type:`SpecificResource`,source:{id:e.id,type:e.type}}}}),[]));return I(_r.Provider,{value:i,children:I(J.Provider,{value:r,children:t})},n)}function Ar({fallback:e,backAction:t}){let n=br(),{back:r}=vr();return n.length?I(q,{onClick:r,children:I(jn,{})}):e}function jr({closeAction:e,fallback:t}){let n=br();return yr()||n.length?I(q,{onClick:()=>{e()},children:I(xt,{})}):t}function Mr(e,t,n,r){let i=t.filter(t=>t.resourceType===e.resource.source.type);if(i.length===0)return null;for(let t of i){let i=[],a={},o=(t.editors||[]).filter(t=>{if(r.hideTabs&&r.hideTabs.includes(t.id)||r.onlyTabs&&!r.onlyTabs.includes(t.id))return!1;if(t.supports.sortKey){if(i.includes(t.supports.sortKey))return!1;t.supports.sortFallback&&(a[t.supports.sortKey]=t)}return n.edit&&!t.supports.edit||t.supports.custom&&t.supports.custom(e,n.vault)===!1?!1:(t.supports.sortKey&&i.push(t.supports.sortKey),!0)}),s=Object.keys(a);for(let e of s)!i.includes(e)&&a[e]&&!o.includes(a[e])&&o.push(a[e]);if(o.length)return{...t,editors:o}}return null}function Nr({currentTab:e=void 0}){let t=yr(),n=k(Se),r=W(),i=Et(),a=B(),{change:o}=Fn(),s=Jn(),{editorConfig:c}=it(),l=t?.resource.source?.id,u=t?.resource.source?.type,d=l!==i.id;l&&d&&i.type===`Collection`&&u===`Collection`&&(u=`EmbeddedCollection`);let f=(u?c[u]:c.All)||{},p=j(()=>{let e={...n},r=t?.resource.source.id,i=t?.resource.source.type,a={Collection:`collection`,Manifest:`manifest`,Range:`range`,Canvas:`canvas`,Annotation:`annotation`,AnnotationPage:`annotationPage`};return i&&a[i]&&(e[a[i]]=r),e},[t,n]);function m(e){return t?I(Se.Provider,{value:p,children:e}):e}let h=j(()=>{if(!t)return null;let e=r.layout.editors||[];return Mr(t,(r.layout.resources||[]).map(t=>typeof t==`string`?{id:`@default/`+t,label:t,resourceType:t,auto:!0,editors:e.filter(e=>e.supports.resourceTypes.includes(t))}:t),{edit:!0,vault:a},f)},[t,r]);if(A(()=>{s(h?.label||``)},[h]),A(()=>{let t=h?.editors.map(e=>e.id)||[];t.find(t=>t===e)||o(`@manifest-editor/editor`,{currentTab:t[0]})},[h?.editors,e,o]),!t||!h)return null;if(f.singleTab){let e=(h?.editors||[]).find(e=>e.id===f.singleTab);if(e)return m(I(`div`,{className:`w-full`,children:e.component(f)},t.resource.source?.id))}return m(I(b,{isNested:d,rootResource:i,menuId:t.resource.source.id,menu:(h?.editors||[]).map((e,t)=>({id:e.id,label:e.label,renderComponent:()=>e.component(f)})),selectedKey:e,onSelectionChange:e=>{o(`@manifest-editor/editor`,{currentTab:e})}},t.resource.source?.id))}const Pr={id:`@manifest-editor/editor`,label:`Editor`,options:{hideHeader:!0,tabs:!0,minWidth:400},renderBackAction:({backAction:e,fallback:t})=>I(Ar,{backAction:e,fallback:t}),renderCloseAction:({closeAction:e,fallback:t})=>I(jr,{closeAction:e,fallback:t}),render({currentTab:e}){return I(Nr,{currentTab:e})}},Fr={color:{main:`#B84C74`,mainHover:`#4a89ff`,logoPink:`#E94581`,white:`white`,grey:`grey`,black:`black`,lightgrey:`#F8F9FA`,mediumgrey:`#dddddd`,danger:`#a90e21`,warning:`#e38627`,lightdanger:`#ffeaea`,lightsuccess:`#c5e8c5`,success:`#6ccd55`,greyOverlay:`rgba(0, 0, 0, 0.2)`,highlight:`#faeed7`},iiifColor:{manifest:`rgba(0, 0, 0, 0.2)`,canvas:`rgba(255, 222, 219, 0.8)`,service:`rgba(13, 110, 253, 0.8)`,annotation:`rgba(247, 226, 173, 0.8)`,contentResource:`rgba(207, 247, 255, 0.8)`,ranges:`rgba(144, 213, 157, 0.8)`},padding:{xs:`0.25rem`,small:`0.5rem`,medium:`1rem`,large:`2rem`},device:{mobile:`375px`,tablet:`768px`,laptop:`992px`,desktop:`1200px`},shadows:{standard:`rgba(0, 0, 0, 0.1) 0px 1px 3px 0px, rgba(0, 0, 0, 0.05) 0px 5px 15px 0px`,bottom:`rgba(0, 0, 0, 0.1) 0px 4px 2px -2px`}};function Ir(e){let{}=e,t=B(),n=W(),r=j(()=>Le(e.resource,n.layout.creators||[],{vault:t}),[e.resource,n.layout.creators,t]);return r.length===0?I(`div`,{children:`No supported creators found`}):I(`div`,{children:L(C,{className:`w-full flex-1 overflow-hidden flex flex-col`,children:[I(te,{className:`flex-1 overflow-hidden w-full flex text-sm whitespace-nowrap`,items:r,children:e=>I(x,{id:e.id,children:e.label})}),r.map(t=>I(S,{id:t.id,className:`p-2`,children:I(pe,{theme:Fr,children:I(dr,{creator:t,resource:e.resource,onCreate:e.onCreate,skipEditingOnCreate:!0})})},t.id))]})})}function Lr(e){let[t,n]=P(!1),r=N(),i=N(0);function a(t){i.current--,!(t&&i.current!==0)&&(r.current&&(clearTimeout(r.current),r.current=0),r.current=setTimeout(()=>{n(!1)},e))}function o(){i.current++,r.current&&clearTimeout(r.current),n(!0)}return j(()=>[t,{set:o,clear:a}],[t])}function Rr(){let t=Ht(),n=Et(),r=it(),i=at(),[a,s]=Lr(2e3);function c(e){e.preventDefault();let t=new FormData(e.target);i({defaultPreview:t.get(`defaultPreview`),i18n:{...r.i18n||{},advancedLanguageMode:t.get(`advancedLanguageMode`)===`on`,availableLanguages:(t.get(`availableLanguages`)||``).split(`,`).map(e=>e.trim()),defaultLanguage:t.get(`defaultLanguage`)},export:{...r.export||{},version:t.get(`isVersion2`)===`on`?2:3,baseIdentifier:t.get(`base`)||null},editorFeatureFlags:{...r.editorFeatureFlags||{},rememberCanvasId:t.get(`rememberCanvasId`)===`on`,rememberLeftPanelId:t.get(`rememberLeftPanelId`)===`on`,annotationPopups:t.get(`annotationPopups`)===`on`,manifestGridOptions:t.get(`manifestGridOptions`)===`on`,enableMultiImageCanvases:t.get(`enableMultiImageCanvases`)===`on`,enableMultiMediaCanvases:t.get(`enableMultiMediaCanvases`)===`on`}}),s.set(),s.clear()}return L(_,{children:[I(y,{title:`Workspace configuration`}),a?I(`div`,{className:`bg-me-primary-500 text-white p-3 text-sm`,children:`Changes saved`}):null,I(v,{className:`p-4`,children:L(o.Form,{onSubmit:c,className:`flex flex-col gap-3`,children:[L(o.InputContainer,{children:[I(o.Label,{htmlFor:`defaultLanguage`,children:`Default Language`}),I(o.Input,{type:`text`,name:`defaultLanguage`,id:`defaultLanguage`,defaultValue:r.i18n?.defaultLanguage||``})]}),L(o.InputContainer,{children:[I(o.Label,{htmlFor:`availableLanguages`,children:`Available Languages`}),I(o.Input,{type:`text`,name:`availableLanguages`,id:`availableLanguages`,defaultValue:(r.i18n?.availableLanguages||[]).join(`, `)})]}),L(o.InputContainer,{horizontal:!0,className:`my-3`,children:[I(o.Input,{type:`checkbox`,name:`advancedLanguageMode`,id:`advancedLanguageMode`,defaultChecked:r.i18n?.advancedLanguageMode||!1}),I(o.Label,{htmlFor:`advancedLanguageMode`,children:`Advanced Language Mode`})]}),L(o.InputContainer,{horizontal:!0,className:`my-3`,children:[I(o.Input,{type:`checkbox`,name:`textGranularityEnabled`,id:`textGranularityEnabled`,defaultChecked:r.i18n?.textGranularityEnabled||!1}),I(o.Label,{htmlFor:`textGranularityEnabled`,children:`Enable text granularity`})]}),L(o.InputContainer,{horizontal:!0,className:`my-3`,children:[I(o.Input,{type:`checkbox`,name:`rememberCanvasId`,id:`rememberCanvasId`,defaultChecked:r.editorFeatureFlags?.rememberCanvasId||!1}),I(o.Label,{htmlFor:`rememberCanvasId`,children:`Remember Canvas ID`})]}),L(o.InputContainer,{horizontal:!0,className:`my-3`,children:[I(o.Input,{type:`checkbox`,name:`rememberLeftPanelId`,id:`rememberLeftPanelId`,defaultChecked:r.editorFeatureFlags?.rememberLeftPanelId||!1}),I(o.Label,{htmlFor:`rememberLeftPanelId`,children:`Remember Left panel`})]}),L(o.InputContainer,{horizontal:!0,className:`my-3`,children:[I(o.Input,{type:`checkbox`,name:`manifestGridOptions`,id:`manifestGridOptions`,defaultChecked:r.editorFeatureFlags?.manifestGridOptions||!1}),I(o.Label,{htmlFor:`manifestGridOptions`,children:`Manifest Grid Options`})]}),L(o.InputContainer,{horizontal:!0,className:`my-3`,children:[I(o.Input,{type:`checkbox`,name:`isVersion2`,id:`isVersion2`,defaultChecked:r.export?.version===2}),L(o.Label,{htmlFor:`isVersion2`,children:[`Export Presentation 2 `,n.type,`s`]})]}),L(o.InputContainer,{children:[I(o.Label,{htmlFor:`defaultPreview`,children:`Default preview`}),I(`div`,{children:t.configs.map((e,t)=>e.type===`iiif-preview-service`?null:L(o.InputContainer,{horizontal:!0,children:[I(o.Input,{type:`radio`,id:e.id,name:`defaultPreview`,value:e.id,defaultChecked:r.defaultPreview?r.defaultPreview===e.id:t===0}),I(`label`,{htmlFor:e.id,children:e.label})]},e.id))})]}),n.type===`Manifest`?I(`a`,{className:`text-sm text-me-primary-500 hover:underline hover:text-me-primary-600`,href:window.location.pathname.includes(`/exhibition`)?window.location.pathname.replace(`/exhibition`,``)||`/`:`${window.location.pathname}/exhibition`,children:window.location.pathname.includes(`/exhibition`)?`Return to Manifest Editor`:`Go to Exhibition Editor`}):null,I(`div`,{className:`mt-5`,children:I(e,{type:`submit`,children:`Save changes`})})]})})]})}function zr(){return ze((e,t)=>({specificMenus:{},resourceMenus:{},hookMenuItem(t){let n=wn(),r=t.resource?.id||``,i=t.resource?.type;return i?r?(e(e=>({specificMenus:{...e.specificMenus,[r]:{...e.specificMenus[r]||{},menus:{...e.specificMenus[r]?.menus||{},[n]:{sectionTitle:t.sectionTitle,items:t.items}}}}})),()=>{e(e=>({specificMenus:{...e.specificMenus,[r]:{...e.specificMenus[r]||{},menus:{...e.specificMenus[r]?.menus||{},[n]:void 0}}}}))}):(e(e=>({resourceMenus:{...e.resourceMenus,[i]:{...e.resourceMenus[i]||{},menus:{...e.resourceMenus[i]?.menus||{},[n]:{sectionTitle:t.sectionTitle,items:t.items}}}}})),()=>{e(e=>({resourceMenus:{...e.resourceMenus,[i]:{...e.resourceMenus[i]||{},menus:{...e.resourceMenus[i]?.menus||{},[n]:void 0}}}}))}):()=>{}}}))}const Br=D(null);function Vr({children:e}){let t=j(()=>zr(),[]);return I(Br.Provider,{value:t,children:e})}function Hr(){let e=k(Br);if(!e)throw Error(`useContextMenuStore must be used within a ContextMenuProvider`);return e}function Ur(e){let t=Hr(),n=H(t,e=>e.resourceMenus),r=H(t,e=>e.specificMenus);return j(()=>{let t=r[e.id||``]?.menus||{},i=n[e.type]?.menus||{},a=Object.values(t).flat(),o=[...Object.values(i).flat(),...a].filter(e=>e!==void 0),s=[],c=[];for(let e of o){let t=[];for(let n of e.items||[])n.id&&s.includes(n.id)||(s.push(n.id),t.push(n));t.length&&c.push({...e,items:t})}return Wr(c)},[r,n,e.id,e.type])}function Wr(e){let t={},n=[];e.forEach(e=>{if(!e)return;let r=e.sectionTitle;if(!r){n.push(...e.items||[]);return}t[r]||(t[r]=[]),t[r].push(...e.items)});let r=Object.entries(t).map(([e,t])=>({sectionTitle:e,items:t}));return n.length&&r.push({items:n}),r}function Gr(e,t=[]){let n=H(Hr(),e=>e.hookMenuItem);A(()=>n(e),[n,e.resource?.id,e.resource?.type,...t])}var Kr={};function qr(e){return L(`div`,{className:Kr.CenterPanelContainer,children:[e.title||e.close?L(`div`,{className:Kr.CenterPanelHeader,children:[e.title?I(`h2`,{className:Kr.CenterPanelTitle,children:e.title}):null,e.close?I(K,{className:Kr.CenterPanelClose,onClick:e.close,children:I(xt,{})}):null]}):null,e.children]})}const Jr=R.div`
427
427
  flex: 1;
428
428
  display: flex;
429
429
  width: 100%;
@@ -618,7 +618,7 @@ import{ActionButton as e,CreatorGrid as t,DefaultTooltipContent as n,DownloadBut
618
618
  position: sticky;
619
619
  bottom: 0;
620
620
  }
621
- `;function fi(e){let t=De(),n=B(),r=Cn(),i=j(()=>JSON.stringify(n.toPresentation3(t),null,2),[t,n]),a=j(()=>JSON.stringify(n.toPresentation2(t),null,2),[t,n]);return I(qr,{title:`Export manifest`,close:r.centerPanel.popStack,children:I(`div`,{style:{flex:1,overflowY:`auto`},children:I(li,{items:[{label:`Presentation 3`,description:`Download this version by clicking the "Download" button.`,maxHeight:400,large:!0,initialOpen:!0,overflow:!0,icon:I(K,{onClick:()=>qn(i,`manifest.json`),children:I(ui,{})}),children:L(`div`,{style:{maxWidth:`100%`},children:[I(`pre`,{style:{whiteSpace:`pre-wrap`},children:JSON.stringify(n.toPresentation3(t),null,2)}),L(di,{"data-sticky":`true`,children:[I(K,{onClick:()=>Jn(i),children:`Copy to clipboard`}),I(K,{onClick:()=>qn(i,`manifest.json`),children:`Download`})]})]})},{label:`Presentation 2`,description:`Download this version by clicking the "Download" button.`,maxHeight:400,large:!0,icon:I(K,{onClick:()=>qn(a,`manifest.json`),children:I(ui,{})}),children:L(`div`,{style:{maxWidth:`100%`},children:[I(`pre`,{style:{whiteSpace:`pre-wrap`},children:JSON.stringify(n.toPresentation2(t),null,2)}),L(di,{"data-sticky":`true`,children:[I(K,{onClick:()=>Jn(a),children:`Copy to clipboard`}),I(K,{onClick:()=>qn(a,`manifest.json`),children:`Download`})]})]})}]})})})}const pi=D(Je());function mi({children:e,emitter:t}){return I(pi.Provider,{value:t,children:e})}function hi(){return k(pi)}function gi(e,t,n=[]){let r=k(pi);A(()=>{let n=e=>{t(e)};return r.on(e,n),()=>{r.off(e,n)}},[r,e,...n])}function _i(e,t=[]){let n=t.length?t:Array(e.length).fill(!1);if(typeof window>`u`)return n;let r=e.map(e=>window.matchMedia(e)),i=()=>r.map(e=>e.matches),[a,o]=P(i);return fe(()=>{let e=()=>o(i);return r.forEach(t=>t.addListener(e)),()=>r.forEach(t=>t.removeListener(e))},[]),a}function vi(e,t,n,r=!0){let i=Ye(t,n);A(()=>typeof window>`u`?()=>void 0:(window.addEventListener(`beforeunload`,t,!1),()=>{t(),window.removeEventListener(`beforeunload`,t)}),[t]),A(()=>{if(e&&r)return e.subscribe(i,!0)},[i,e,r])}function yi(){let e=we(),t=H(e,e=>e.switchTool),n=H(e,e=>e.polygonState.currentTool),r=H(e,e=>e.polygonState.selectedStamp),i=H(e,e=>e.polygonState.showBoundingBox);return j(()=>({currentTool:n,selectedStamp:r,draw:{active:n===`pencil`,enable:t.draw},polygon:{active:n===`pen`,enable:t.pen},line:{active:n===`line`,enable:t.line},lineBox:{active:n===`lineBox`,enable:t.lineBox},square:{active:n===`box`,enable:t.box},triangle:{active:r?.id===`triangle`,enable:t.triangle},hexagon:{active:r?.id===`hexagon`,enable:t.hexagon},circle:{active:r?.id===`circle`,enable:t.circle},remove:{active:i,enable:t.remove}}),[i,r,n,t])}function bi({key:e,initialValue:t,requestId:n,getInitialValue:r}){let[i,a]=Te({requestId:n}),[o,s]=P(r&&r(i)||i[e]||t);return[o,O(t=>{a({[e]:t}),s(t)},[])]}const xi=R.div`
621
+ `;function fi(e){let t=De(),n=B(),r=Fn(),i=j(()=>JSON.stringify(n.toPresentation3(t),null,2),[t,n]),a=j(()=>JSON.stringify(n.toPresentation2(t),null,2),[t,n]);return I(qr,{title:`Export manifest`,close:r.centerPanel.popStack,children:I(`div`,{style:{flex:1,overflowY:`auto`},children:I(li,{items:[{label:`Presentation 3`,description:`Download this version by clicking the "Download" button.`,maxHeight:400,large:!0,initialOpen:!0,overflow:!0,icon:I(K,{onClick:()=>Sn(i,`manifest.json`),children:I(ui,{})}),children:L(`div`,{style:{maxWidth:`100%`},children:[I(`pre`,{style:{whiteSpace:`pre-wrap`},children:JSON.stringify(n.toPresentation3(t),null,2)}),L(di,{"data-sticky":`true`,children:[I(K,{onClick:()=>Cn(i),children:`Copy to clipboard`}),I(K,{onClick:()=>Sn(i,`manifest.json`),children:`Download`})]})]})},{label:`Presentation 2`,description:`Download this version by clicking the "Download" button.`,maxHeight:400,large:!0,icon:I(K,{onClick:()=>Sn(a,`manifest.json`),children:I(ui,{})}),children:L(`div`,{style:{maxWidth:`100%`},children:[I(`pre`,{style:{whiteSpace:`pre-wrap`},children:JSON.stringify(n.toPresentation2(t),null,2)}),L(di,{"data-sticky":`true`,children:[I(K,{onClick:()=>Cn(a),children:`Copy to clipboard`}),I(K,{onClick:()=>Sn(a,`manifest.json`),children:`Download`})]})]})}]})})})}const pi=D(Je());function mi({children:e,emitter:t}){return I(pi.Provider,{value:t,children:e})}function hi(){return k(pi)}function gi(e,t,n=[]){let r=k(pi);A(()=>{let n=e=>{t(e)};return r.on(e,n),()=>{r.off(e,n)}},[r,e,...n])}function _i(e,t=[]){let n=t.length?t:Array(e.length).fill(!1);if(typeof window>`u`)return n;let r=e.map(e=>window.matchMedia(e)),i=()=>r.map(e=>e.matches),[a,o]=P(i);return fe(()=>{let e=()=>o(i);return r.forEach(t=>t.addListener(e)),()=>r.forEach(t=>t.removeListener(e))},[]),a}function vi(e,t,n,r=!0){let i=Ye(t,n);A(()=>typeof window>`u`?()=>void 0:(window.addEventListener(`beforeunload`,t,!1),()=>{t(),window.removeEventListener(`beforeunload`,t)}),[t]),A(()=>{if(e&&r)return e.subscribe(i,!0)},[i,e,r])}function yi(){let e=we(),t=H(e,e=>e.switchTool),n=H(e,e=>e.polygonState.currentTool),r=H(e,e=>e.polygonState.selectedStamp),i=H(e,e=>e.polygonState.showBoundingBox);return j(()=>({currentTool:n,selectedStamp:r,draw:{active:n===`pencil`,enable:t.draw},polygon:{active:n===`pen`,enable:t.pen},line:{active:n===`line`,enable:t.line},lineBox:{active:n===`lineBox`,enable:t.lineBox},square:{active:n===`box`,enable:t.box},triangle:{active:r?.id===`triangle`,enable:t.triangle},hexagon:{active:r?.id===`hexagon`,enable:t.hexagon},circle:{active:r?.id===`circle`,enable:t.circle},remove:{active:i,enable:t.remove}}),[i,r,n,t])}function bi({key:e,initialValue:t,requestId:n,getInitialValue:r}){let[i,a]=Te({requestId:n}),[o,s]=P(r&&r(i)||i[e]||t);return[o,O(t=>{a({[e]:t}),s(t)},[])]}const xi=R.div`
622
622
  position: relative;
623
623
  width: 1px;
624
624
  background: rgba(0, 0, 0, 0.2);
@@ -713,7 +713,7 @@ import{ActionButton as e,CreatorGrid as t,DefaultTooltipContent as n,DownloadBut
713
713
  top: 0;
714
714
  bottom: 0;
715
715
  z-index: 51; // This will always be quite high.
716
- `,Ei=le(function({dir:e,open:t,actions:r,reset:i},a){let[o,s]=P(!0),c=`mt-[calc(50vh+8px)]`,u=e===`left`?`${c} ml-[13px]`:`${c} ml-[3px]`;return L(xi,{onClick:()=>r.open(),children:[I(Ti,{$open:t,$dir:e,className:`group`,children:t?null:L(w,{placement:e===`left`?`right`:`left`,children:[I(T,{as:Ci,$dir:e,onClick:e=>r.open(),children:I(St,{className:`text-2xl`,rotate:e===`right`?90:270})}),I(n,{children:`Open`})]})}),L(w,{placement:e===`left`?`right`:`left`,children:[I(T,{"aria-label":`Resize panel`,asChild:!0,children:I(`div`,{children:L(wi,{ref:a,$open:t,$dir:e,className:`group`,children:[t?L(w,{placement:e===`left`?`right`:`left`,children:[I(T,{as:l,onPress:()=>r.close(),children:I(`div`,{onMouseOut:()=>{s(!0)},onMouseOver:()=>{s(!1)},children:I(xt,{})})}),I(n,{children:`Close`})]}):null,i&&t?L(w,{placement:e===`left`?`right`:`left`,children:[I(T,{as:l,onPress:()=>i(),children:I(`div`,{onMouseOut:()=>{s(!0)},onMouseOver:()=>{s(!1)},children:I(h,{})})}),I(n,{children:`Reset`})]}):null,t?L(w,{placement:e===`left`?`right`:`left`,children:[I(T,{asChild:!0,"aria-label":`Resize panel`,children:I(`div`,{onMouseOut:()=>{s(!0)},onMouseOver:()=>{s(!1)},children:I(g,{"aria-label":`Resize panel`})})}),I(n,{children:`Resize panel`})]}):null]})})}),o&&I(n,{className:u,children:`Resize panel`})]})]})});function Di(e){return I(`svg`,{width:`1em`,height:`1em`,viewBox:`0 0 42 42`,xmlns:`http://www.w3.org/2000/svg`,stroke:`currentColor`,...e,children:L(`g`,{transform:`translate(2 2)`,strokeWidth:5,fill:`none`,fillRule:`evenodd`,children:[I(`circle`,{strokeOpacity:.5,cx:18,cy:18,r:18}),I(`path`,{d:`M36 18c0-9.94-8.06-18-18-18`,children:I(`animateTransform`,{attributeName:`transform`,type:`rotate`,from:`0 18 18`,to:`360 18 18`,dur:`1s`,repeatCount:`indefinite`})})]})})}var Y={};function Oi(){return L(F,{children:[I(`div`,{"data-header":`true`,className:Y.ghostLoadingBlock}),L(`div`,{className:Y.ghostBlockList,children:[I(`div`,{className:Y.ghostLoadingBlock}),I(`div`,{className:Y.ghostLoadingBlock}),I(`div`,{className:Y.ghostLoadingBlock}),I(`div`,{className:Y.ghostLoadingBlock})]})]})}function ki(e,t,n,r=[]){fe(()=>{let r=e.current;if(r)return r.addEventListener(t,n),()=>{r.removeEventListener(t,n)}},[t,...r])}function Ai(e,t,n,r){return Math.sqrt(Math.abs(n-e)**2+Math.abs(r-t)**2)}function ji(e,t,n,r){return n||(r?r/e:t)}function Mi(e,t={}){let n=N(null),r=N(null),i=N(null),a=N(null),o=N(.5),[s,c]=P(!1),l=N(!1),u=N(0),d=N({x:0,y:0}),[{widthA:f,widthB:p},m]=E(`resize-layout/${e}`,{widthA:`auto`,widthB:`${An({initial:t.widthA,fallback:320,options:{minWidth:t.minWidthPx,maxWidth:t.maxWidthPx}})}px`}),{loading:h=!1}=t;return ki(a,`mousedown`,e=>{d.current.x=e.pageX,d.current.y=e.pageY,u.current&&(clearTimeout(u.current),u.current=0),u.current=setTimeout(()=>{c(!0),l.current=!0},350)},[h]),ki({current:typeof window<`u`?window:void 0},`mouseup`,()=>{let e=n.current;if(e&&l.current){let{x:n,width:r}=e.getBoundingClientRect(),i=t.marginLeft||0,a=ji(r,.8,t.maxWidthPct,t.maxWidthPx)*r,s=ji(r,.2,t.minWidthPct,t.minWidthPx)*r;if(t.left){let e=o.current*r-i;m({widthA:`${(1-o.current)*r-i}`,widthB:`${e>a?a:e<s?s:e}px`})}else{let e=1-o.current*r-i;m({widthA:`${e>a?a:e<s?s:e}px`,widthB:`${o.current*r-i}px`})}c(!1),l.current=!1,t.onDragEnd&&t.onDragEnd()}clearTimeout(u.current),u.current=0},[h]),ki(n,`mousemove`,e=>{if(!l.current&&u.current&&Ai(d.current.x,d.current.y,e.pageX,e.pageY)>20&&(c(!0),l.current=!0,clearTimeout(u.current),u.current=0),l.current&&r.current){let i=n.current;if(i){let{x:n,width:a}=i.getBoundingClientRect(),s=t.marginLeft||0,c=t.left||!1,l=ji(a,.8,t.maxWidthPct,t.maxWidthPx),u=ji(a,.2,t.minWidthPct,t.minWidthPx);o.current=(a+n-e.pageX-5)/a,c&&(o.current=1-o.current),o.current=o.current<u?u:o.current,o.current=o.current>l?l:o.current,r.current.style.width=`${o.current*a-s}px`}}},[s,h]),{refs:{container:n,resizer:a,resizableDiv:r,otherDiv:i},setWidths:m,isDragging:s,widthA:f,widthB:p}}const Ni=R.div`
716
+ `,Ei=le(function({dir:e,open:t,actions:r,reset:i},a){let[o,s]=P(!0),c=`mt-[calc(50vh+8px)]`,u=e===`left`?`${c} ml-[13px]`:`${c} ml-[3px]`;return L(xi,{onClick:()=>r.open(),children:[I(Ti,{$open:t,$dir:e,className:`group`,children:t?null:L(w,{placement:e===`left`?`right`:`left`,children:[I(T,{as:Ci,$dir:e,onClick:e=>r.open(),children:I(St,{className:`text-2xl`,rotate:e===`right`?90:270})}),I(n,{children:`Open`})]})}),L(w,{placement:e===`left`?`right`:`left`,children:[I(T,{"aria-label":`Resize panel`,asChild:!0,children:I(`div`,{children:L(wi,{ref:a,$open:t,$dir:e,className:`group`,children:[t?L(w,{placement:e===`left`?`right`:`left`,children:[I(T,{as:l,onPress:()=>r.close(),children:I(`div`,{onMouseOut:()=>{s(!0)},onMouseOver:()=>{s(!1)},children:I(xt,{})})}),I(n,{children:`Close`})]}):null,i&&t?L(w,{placement:e===`left`?`right`:`left`,children:[I(T,{as:l,onPress:()=>i(),children:I(`div`,{onMouseOut:()=>{s(!0)},onMouseOver:()=>{s(!1)},children:I(h,{})})}),I(n,{children:`Reset`})]}):null,t?L(w,{placement:e===`left`?`right`:`left`,children:[I(T,{asChild:!0,"aria-label":`Resize panel`,children:I(`div`,{onMouseOut:()=>{s(!0)},onMouseOver:()=>{s(!1)},children:I(g,{"aria-label":`Resize panel`})})}),I(n,{children:`Resize panel`})]}):null]})})}),o&&I(n,{className:u,children:`Resize panel`})]})]})});function Di(e){return I(`svg`,{width:`1em`,height:`1em`,viewBox:`0 0 42 42`,xmlns:`http://www.w3.org/2000/svg`,stroke:`currentColor`,...e,children:L(`g`,{transform:`translate(2 2)`,strokeWidth:5,fill:`none`,fillRule:`evenodd`,children:[I(`circle`,{strokeOpacity:.5,cx:18,cy:18,r:18}),I(`path`,{d:`M36 18c0-9.94-8.06-18-18-18`,children:I(`animateTransform`,{attributeName:`transform`,type:`rotate`,from:`0 18 18`,to:`360 18 18`,dur:`1s`,repeatCount:`indefinite`})})]})})}var Y={};function Oi(){return L(F,{children:[I(`div`,{"data-header":`true`,className:Y.ghostLoadingBlock}),L(`div`,{className:Y.ghostBlockList,children:[I(`div`,{className:Y.ghostLoadingBlock}),I(`div`,{className:Y.ghostLoadingBlock}),I(`div`,{className:Y.ghostLoadingBlock}),I(`div`,{className:Y.ghostLoadingBlock})]})]})}function ki(e,t,n,r=[]){fe(()=>{let r=e.current;if(r)return r.addEventListener(t,n),()=>{r.removeEventListener(t,n)}},[t,...r])}function Ai(e,t,n,r){return Math.sqrt(Math.abs(n-e)**2+Math.abs(r-t)**2)}function ji(e,t,n,r){return n||(r?r/e:t)}function Mi(e,t={}){let n=N(null),r=N(null),i=N(null),a=N(null),o=N(.5),[s,c]=P(!1),l=N(!1),u=N(0),d=N({x:0,y:0}),[{widthA:f,widthB:p},m]=E(`resize-layout/${e}`,{widthA:`auto`,widthB:`${Bn({initial:t.widthA,fallback:320,options:{minWidth:t.minWidthPx,maxWidth:t.maxWidthPx}})}px`}),{loading:h=!1}=t;return ki(a,`mousedown`,e=>{d.current.x=e.pageX,d.current.y=e.pageY,u.current&&(clearTimeout(u.current),u.current=0),u.current=setTimeout(()=>{c(!0),l.current=!0},350)},[h]),ki({current:typeof window<`u`?window:void 0},`mouseup`,()=>{let e=n.current;if(e&&l.current){let{x:n,width:r}=e.getBoundingClientRect(),i=t.marginLeft||0,a=ji(r,.8,t.maxWidthPct,t.maxWidthPx)*r,s=ji(r,.2,t.minWidthPct,t.minWidthPx)*r;if(t.left){let e=o.current*r-i;m({widthA:`${(1-o.current)*r-i}`,widthB:`${e>a?a:e<s?s:e}px`})}else{let e=1-o.current*r-i;m({widthA:`${e>a?a:e<s?s:e}px`,widthB:`${o.current*r-i}px`})}c(!1),l.current=!1,t.onDragEnd&&t.onDragEnd()}clearTimeout(u.current),u.current=0},[h]),ki(n,`mousemove`,e=>{if(!l.current&&u.current&&Ai(d.current.x,d.current.y,e.pageX,e.pageY)>20&&(c(!0),l.current=!0,clearTimeout(u.current),u.current=0),l.current&&r.current){let i=n.current;if(i){let{x:n,width:a}=i.getBoundingClientRect(),s=t.marginLeft||0,c=t.left||!1,l=ji(a,.8,t.maxWidthPct,t.maxWidthPx),u=ji(a,.2,t.minWidthPct,t.minWidthPx);o.current=(a+n-e.pageX-5)/a,c&&(o.current=1-o.current),o.current=o.current<u?u:o.current,o.current=o.current>l?l:o.current,r.current.style.width=`${o.current*a-s}px`}}},[s,h]),{refs:{container:n,resizer:a,resizableDiv:r,otherDiv:i},setWidths:m,isDragging:s,widthA:f,widthB:p}}const Ni=R.div`
717
717
  position: relative;
718
718
  display: flex;
719
719
  flex: 1;
@@ -796,7 +796,7 @@ import{ActionButton as e,CreatorGrid as t,DefaultTooltipContent as n,DownloadBut
796
796
  transform: translateY(0);
797
797
  `}
798
798
 
799
- ${Bn} {
799
+ ${Xn} {
800
800
  box-shadow: none;
801
801
  padding-left: 0.5em;
802
802
  padding-right: 0.5em;
@@ -984,6 +984,6 @@ import{ActionButton as e,CreatorGrid as t,DefaultTooltipContent as n,DownloadBut
984
984
  flex: 1;
985
985
  min-width: 0;
986
986
  overflow: hidden;
987
- `,Qi=ue(function(e){let t=dt(),n=Tn(),{vault:r}=k(xe),i=r||void 0,a=N(null),o=N(null),{loading:s,state:c,leftPanels:l,centerPanels:u,rightPanels:f,modals:p=[],actions:h}=n,g=l.find(e=>e.id===c.leftPanel.current),_=f.find(e=>e.id===c.rightPanel.current),v=u.find(e=>e.id===c.centerPanel.current),y=p.find(e=>e.id===c.modal.current),b=c.pinnedRightPanel.pinned?f.find(e=>e.id===c.pinnedRightPanel.current):void 0,[ee]=_i([`(max-width: 1020px)`]),x=e.isLoading||!1,te=j(()=>(n.background||[]).map((e,t)=>I(ae,{children:e.render()},t)),[n.background]),S=Mi(`left-panel/${g?.id}`,{left:!0,marginLeft:60,minWidthPx:g?.options?.minWidth||200,maxWidthPx:g?.options?.maxWidth||720,loading:s}),C=Mi(`right-panel/${_?.id}`,{left:!1,minWidthPx:_?.options?.minWidth||320,maxWidthPx:_?.options?.maxWidth||720,loading:s}),w=_&&(b?.id!==_.id||!Ze(c.pinnedRightPanel.state,c.rightPanel.state)),T=S.widthB===`auto`?void 0:()=>S.setWidths({widthA:`auto`,widthB:An({options:g?.options,fallback:320})}),E=C.widthB===`auto`?void 0:()=>C.setWidths({widthA:`auto`,widthB:An({options:_?.options,fallback:320})});if(fe(()=>{ee&&c.leftPanel.open&&c.rightPanel.open&&(h.leftPanel.close(),h.rightPanel.close())},[ee]),fe(()=>{if(v&&v.onMount)return v.onMount(c.centerPanel.state||v.defaultState||{},{...n,current:h.centerPanel,vault:i},t)},[c.centerPanel.current]),fe(()=>{f.length&&h.rightPanel.change({id:f[0].id}),l.length&&h.leftPanel.change({id:l[0].id}),u.length&&h.centerPanel.change({id:u[0].id})},[]),s)return null;let ne=t=>I(Xi,{$menu:e.leftPanelMenuPosition||`bottom`,ref:S.refs.resizableDiv,className:t?`transition transition-${t}`:``,style:{width:c.leftPanel.open||t!==`exited`?S.widthB:void 0,minWidth:g?.options?.minWidth},children:x?I(Zi,{children:I(Oi,{})}):L(F,{children:[e.leftPanelMenu?I(X,{$open:c.leftPanel.open&&t!==`exited`,$position:e.leftPanelMenuPosition||`bottom`,children:e.leftPanelMenu}):null,I(Zi,{children:c.leftPanel.open||t!==`exited`?I(F,{children:g?I(Wn,{isLeft:!0,noHeader:!0,transition:t,panel:g,state:c.leftPanel,actions:h.leftPanel}):null}):null})]})}),re=()=>!y||c.modal.open===!1?null:I(d,{title:y.label,onClose:()=>h.modal.close(),children:jn(y.render(c.modal.state||y.defaultState||{},{...n,current:h.modal,vault:i},t))}),ie=()=>L(Xi,{$menu:e.centerPanelMenuPosition||`top`,children:[e.centerPanelMenu?I(X,{$open:c.centerPanel.open,$position:e.centerPanelMenuPosition||`top`,children:e.centerPanelMenu}):null,I(Zi,{children:I(Re,{resetKeys:[v?.id],FallbackComponent:On,children:x?I(`div`,{style:{display:`flex`,flex:1,justifyContent:`center`,alignItems:`center`},children:I(Di,{stroke:`rgba(0,0,0,.3)`,fontSize:`2em`})}):c.centerPanel.open&&v?jn(v.render(c.centerPanel.state||v.defaultState||{},{...n,current:h.centerPanel,vault:i},t)):null})})]}),oe=t=>I(Xi,{$menu:e.rightPanelMenuPosition||`bottom`,ref:C.refs.resizableDiv,className:t?`transition transition-${t}`:``,style:{width:c.rightPanel.open||t!==`exited`?C.widthB:void 0,minWidth:_?.options?.minWidth},children:x?I(Zi,{children:I(Oi,{})}):L(F,{children:[e.rightPanelMenu?I(X,{$open:c.rightPanel.open,$position:e.rightPanelMenuPosition||`bottom`,children:e.rightPanelMenu}):null,I(Zi,{children:c.rightPanel.open||t!==`exited`?L(F,{children:[w?I(Wn,{panel:_,state:c.rightPanel,actions:h.rightPanel,pinActions:h.pinnedRightPanel,available:f}):null,b?I(Wn,{panel:b,state:c.pinnedRightPanel,actions:h.pinnedRightPanel,close:h.rightPanel.close}):null]}):null})]})});return ee?L(Ui,{children:[e.hideHeader?null:L(Wi,{children:[e.header||null,e.menu?I(`menu`,{children:e.menu}):null]}),I(Ki,{children:L(Ni,{children:[I(Pi,{children:ie()}),L(Fi,{children:[l.length>0?I(Ii,{onClick:h.leftPanel.toggle,children:g?.label}):null,f.length>0?I(Ri,{children:L(zi,{onClick:h.rightPanel.toggle,children:[I(St,{rotate:180}),_?.label]})}):null,I(Li,{children:`Preview`})]}),f.length>0?I(Bi,{$open:c.rightPanel.open,children:oe()}):null,l.length>0?I(Vi,{$open:c.leftPanel.open,children:ne()}):null,l.length>0||f.length>0?I(Hi,{$open:c.leftPanel.open||c.rightPanel.open,onClick:()=>{h.leftPanel.close(),h.rightPanel.close()}}):null]})})]}):L(Ui,{className:`manifest-editor ${e.className}`,children:[e.hideHeader?null:L(Wi,{children:[e.header||null,e.menu?I(`menu`,{children:e.menu}):null]}),L(Ki,{ref:e=>{S.refs.container.current=e,C.refs.container.current=e},children:[l.length>0?I(m,{current:c.leftPanel.current,items:l.map(e=>({id:e.id,label:e.label,icon:e.icon,divide:e.divide,onClick:()=>{c.leftPanel.current===e.id?h.leftPanel.toggle():h.leftPanel.change({id:e.id})}})),open:c.leftPanel.open}):null,l.length>0?I(Xe,{nodeRef:a,in:c.leftPanel.open,timeout:400,unmountOnExit:!1,children:e=>L(F,{children:[I(qi,{ref:a,$width:S.widthB,$state:e,$motion:!0,children:ne(e)}),I(Ei,{ref:S.refs.resizer,reset:T,dir:`left`,transition:e,open:c.leftPanel.open||e!==`exited`,actions:h.leftPanel})]})}):null,I(Ji,{children:ie()}),f.length>0?I(Xe,{nodeRef:o,in:c.rightPanel.open,timeout:400,unmountOnExit:!1,children:e=>L(F,{children:[I(Ei,{ref:C.refs.resizer,dir:`right`,reset:E,open:c.rightPanel.open,actions:h.rightPanel}),I(Yi,{ref:o,$width:C.widthB,$state:e,$motion:!0,children:oe(e)})]})}):null]}),I(Gi,{children:e.footer||null}),I(`div`,{className:`hidden`,children:te}),I(F,{children:re()})]})});function Z(e,t){function n(){t({type:`popStack`,panel:e,payload:void 0})}function r(n){t({type:`change`,panel:e,payload:n})}function i(n){t({type:`open`,panel:e,payload:n})}function a(){t({type:`close`,panel:e,payload:void 0})}function o(){t({type:`toggle`,panel:e,payload:void 0})}function s(){t({type:`minimise`,panel:e,payload:void 0})}function c(n){t({type:`maximise`,panel:e,payload:n})}function l(n){t({type:`setCustomWidth`,panel:e,payload:n})}function u(){t({type:`resetSize`,panel:e,payload:void 0})}function d(n){t({type:`pin`,panel:e,payload:n})}function f(){t({type:`unpin`,panel:e,payload:void 0})}return j(()=>({popStack:n,change:r,open:i,close:a,toggle:o,minimise:s,maximise:c,setCustomWidth:l,resetSize:u,pin:d,unpin:f}),[])}function $i(e,t){if(t.payload&&t.payload.stacked){if(e.current){let n=e.stack[e.stack.length-1];if(n&&n.id===e.current)return;t.payload.unique&&(e.stack=e.stack.filter(t=>t.id!==e.current)),e.stack.push({id:e.current,state:e.state?{...Ae(e.state)}:{}})}}else e.stack=[]}function ea(e,t){switch(t.type){case`popStack`:if(e.stack.length){let t=e.stack[e.stack.length-1];t&&(e.current=t.id,e.state=t.state),e.stack=e.stack.slice(0,-1)}break;case`change`:t.payload.id!==e.current&&$i(e,t),e.state=t.payload.state,e.current=t.payload.id;break;case`close`:e.open=!1;break;case`open`:e.open=!0,t.payload&&(t.payload.id!==e.current&&$i(e,t),e.state=t.payload.state,e.current=t.payload.id);break;case`toggle`:e.open=!e.open;break;case`maximise`:e.minimised=!1,t.payload&&(e.state=t.payload.state,e.current=t.payload.id);break;case`minimise`:e.minimised=!0;break;case`setCustomWidth`:e.customWidth=t.payload;break;case`resetSize`:e.customWidth=void 0}if(kn(e))switch(t.type){case`pin`:e.pinned=!0,e.state=t.payload.state,e.current=t.payload.id;break;case`unpin`:e.pinned=!1,e.state=void 0;break}}const ta=je((e,t)=>{switch(t.panel){case`centerPanel`:ea(e.centerPanel,t);break;case`leftPanel`:ea(e.leftPanel,t);break;case`rightPanel`:ea(e.rightPanel,t);break;case`modal`:ea(e.modal,t);break;case`pinnedRightPanel`:ea(e.pinnedRightPanel,t);break}});function Q(){return{customWidth:void 0,minimised:!1,open:!0,current:null,state:null,stack:[]}}function na(){return{leftPanel:Q(),centerPanel:Q(),rightPanel:Q(),modal:Q(),pinnedRightPanel:{...Q(),pinnable:!0,pinned:!1}}}const ra=D({resource:null});function ia(){return k(ra)}function aa(){let e=B(),{resource:t}=ia();U(t,`Nothing selected`);let{id:n,type:r}=t;return ke(()=>e.get({id:n,type:r}),[n,r])}function oa(){let{resource:e}=ia();return e}function sa({resource:e,children:t}){let{id:n,type:r}=e||{};return I(ra.Provider,{value:j(()=>({resource:n&&r?{id:n,type:r}:null}),[n,r]),children:t})}var ca=class extends ie{constructor(...e){super(...e),G(this,`state`,{hasError:!1})}static getDerivedStateFromError(e){return console.error(e),{hasError:!0}}componentDidCatch(e,t){console.error(`Uncaught error:`,e,t)}render(){return this.state.hasError?I(`h1`,{children:`Sorry.. there was an error`}):this.props.children}};function la(e,t){return typeof e==`string`?{id:e,state:t}:e}const ua=ue(function(e){let t=W(),n=hi(),r=t.layout,[i,a]=M(ta,void 0,na),o={centerPanel:Z(`centerPanel`,a),leftPanel:Z(`leftPanel`,a),rightPanel:Z(`rightPanel`,a),pinnedRightPanel:Z(`pinnedRightPanel`,a),modal:Z(`modal`,a),editingStack:vr()};function s(e){let t=r.rightPanels.find(t=>t.id===e);if(t)return[t,o.rightPanel,o.pinnedRightPanel];let n=r.centerPanels.find(t=>t.id===e);if(n)return[n,o.centerPanel];let i=r.leftPanels.find(t=>t.id===e);if(i)return[i,o.leftPanel];U(!1,`Was not able to find panel with id "${e}"`)}function c(e,t){let{id:r,state:i,stacked:a}=la(e,t),[o,c,l]=s(r);if(l&&o.options?.openPinned)l.pin({id:r,state:{...o.defaultState||{},...i||{}}});else{let e={id:r,state:{...o.defaultState||{},...i||{}},stacked:a};n.emit(`layout.open`,e),c.open(e)}}function l(e,t){let{id:r,state:i}=la(e,t),[a,o]=s(r),c={id:r,state:{...a.defaultState||{},...i||{}},stacked:!0};n.emit(`layout.open`,c),o.open(c)}function u(e,t){let{id:r,state:i,stacked:a}=la(e,t),[o,c]=s(r),l={id:r,state:{...o.defaultState||{},...i||{}},stacked:a};n.emit(`layout.change`,l),c.change(l)}function d(e,t){let{id:r}=la(e,t),[,i]=s(r);n.emit(`layout.close`,{id:r}),i.close()}function f(e,t){let{id:r}=la(e,t),[,i]=s(r);n.emit(`layout.toggle`,{id:r}),i.toggle()}function p(e,t={},{reset:i,property:a,stacked:s,forceOpen:c}={}){let l={resource:Fe(e)?e:{type:`SpecificResource`,source:e},...t};n.emit(`layout.edit`,l),o.editingStack.edit(l,i),r.rightPanels.find(e=>e.id===`@manifest-editor/editor`)&&(c?o.rightPanel.open({id:`@manifest-editor/editor`,stacked:s!==!1,state:{property:a},unique:!0}):o.rightPanel.change({id:`@manifest-editor/editor`,stacked:s!==!1,state:{property:a},unique:!0}))}function m(e){o.editingStack.create(e,{}),n.emit(`layout.create`,e),r.modals?.find(e=>e.id===`@manifest-editor/creator`)?o.modal.open({id:`@manifest-editor/creator`,stacked:!0,unique:!0,state:e}):r.rightPanels.find(e=>e.id===`@manifest-editor/creator`)&&o.rightPanel.open({id:`@manifest-editor/creator`,stacked:!0,unique:!0,state:e})}let h={open:c,change:u,close:d,toggle:f,stack:l,edit:p,create:m};return I(bn.Provider,{value:j(()=>({...o,...h}),[r]),children:I(xn.Provider,{value:i,children:e.children})})}),da=[{id:`universal-viewer`,config:{url:`https://universalviewer.dev/#?iiifManifestId={manifestId}`},type:`external-manifest-preview`,label:`Universal viewer`},{id:`mirador-3`,type:`external-manifest-preview`,label:`Mirador 3`,config:{url:`https://tomcrane.github.io/scratch/mirador3/?iiif-content={manifestId}`}},{id:`annona`,type:`external-manifest-preview`,label:`Annona`,config:{url:`https://ncsu-libraries.github.io/annona/tools/#/display?url={manifestId}&viewtype=iiif-storyboard&settings=%7B%22fullpage%22%3Atrue%7D`}},{id:`iiif-preview`,config:{url:`https://iiif-preview.digirati.services/store`},type:`iiif-preview-service`,label:`IIIF Preview`}],fa=new Qe({approximateServices:!0,verificationsRequired:8,enableFetching:!0});function pa({config:e,saveConfig:t,children:n,theme:r,previews:i,resource:a,editing:o}){let s=it(),c=j(()=>({...s,...e,previews:e?.previews||s.previews||da}),[s,e]);return I(ca,{children:I(ye.Provider,{value:fa,children:I(Ot,{resource:a,children:I(sr,{children:I(pe,{theme:r||Fr,children:I(ot,{config:c,saveConfig:t,children:I(Or,{children:I(ua,{children:I(Vr,{children:I(Bt,{previews:i||[],configs:c.previews,children:I(ge,{children:n})})})})})})})})})})})}const ma={},ha=D(`global`);function ga(){return k(ha)}function _a(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}function va(e){let t=ga(),[,n]=M(e=>e+1,0),r=j(()=>(ma[t]||(ma[t]={}),ma[t][e]||(ma[t][e]={name:e,emitter:Je(),status:`idle`,promise:Promise.resolve(),abort:new AbortController,reject:()=>void 0,resolve:()=>void 0}),ma[t][e]),[t,e]);return $(r,`abort`,n),$(r,`error`,n),$(r,`complete`,n),$(r,`running`,n),r}function $(e,t,n){let r=O(()=>n(e),[n]);A(()=>{let n=e.emitter;return n.on(t,r),()=>n.off(t,r)},[t,r,e.emitter])}const ya=()=>void 0;function ba(e,t){let n=va(e);return $(n,`complete`,t||ya),[e=>{n.status===`running`&&(n.abort.abort(),n.emitter.emit(`abort`)),n.error&&(n.error=``);let t=_a();t.promise.then(()=>n.emitter.emit(`complete`)).catch(()=>n.emitter.emit(`error`)),n.status=`running`,n.request=e,n.promise=t.promise,n.resolve=t.resolve,n.reject=t.reject,n.emitter.emit(`running`)},n]}function xa(e,t){let n=va(e);return $(n,`running`,t),[e=>{n.status===`running`&&(n.response=e,n.status=`complete`,n.resolve())},n,(e,t)=>{n.status===`running`&&(n.error=t||e,n.status=`error`,n.reject(e))}]}function Sa({children:e}){return I(ha.Provider,{value:j(()=>`id-${Date.now()}`,[]),children:e})}function Ca(e){return!1}function wa({as:e,reference:t,onReference:n,onLink:r,onAnalysis:i,onDropReference:a,onDropLink:o,onDropAnalysis:s,onPasteReference:c,onPasteLink:l,onPasteAnalysis:u,...d}){let f=e||`div`,p=a||n,m=c||n,h=l||r,g=u||i,_=j(()=>t,[t?.id,t?.type]),v=O(function(e){e.defaultPrevented||(e.preventDefault(),e.clipboardData&&_&&_.id&&_.type&&e.clipboardData.setData(`application/json+vault`,JSON.stringify({id:_.id,type:_.type})))},[_]),y=O(async function(e){if(!e.defaultPrevented&&(e.preventDefault(),e.clipboardData)){if(d.onLoading&&d.onLoading(),m){let t=e.clipboardData.getData(`application/json+vault`);if(t)try{let e=JSON.parse(t);e&&e.id&&e.type&&m(e)}catch{}}if(h||g){let t=e.clipboardData.getData(`text`);if(t.startsWith(`http`)){let e=t.split(`
988
- `);for(let t of e){if(g)try{let e=await Ca(t);if(e){g(e);continue}}catch{}h&&h(t)}}}d.onComplete&&d.onComplete()}},[]),b=O(function(e){e.defaultPrevented||(e.preventDefault(),e.dataTransfer&&d.draggable&&(e.dataTransfer.effectAllowed=`all`,_&&_.id&&_.type&&e.dataTransfer.setData(`application/json+vault`,JSON.stringify({id:_.id,type:_.type}))))},[]);return I(f,{onCopy:v,onPaste:y,onDrop:O(async function(e){if(e.preventDefault(),e.dataTransfer){if(p){let t=e.dataTransfer.getData(`application/json+vault`);if(t)try{let n=JSON.parse(t);n&&n.id&&n.type&&p(n,e)}catch{return}}let t=e.dataTransfer.getData(`application/json`);if(t){JSON.parse(t);return}if(e.dataTransfer.getData(`text/plain`))return}},[]),onDragOver:O(e=>{e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=`copy`)},[]),onDragStart:b,tabIndex:-1,...d})}export{nn as AppHeader,sn as AppMenuProvider,pt as AppProvider,ct as AppReactContext,Dt as AppResourceInstanceProvider,Ot as AppResourceProvider,lt as AppStateReactContext,he as AtlasStoreProvider,_e as AtlasStoreReactContext,Ir as BaseAnnotationCreator,Nr as BaseEditor,Ar as BaseEditorBackButton,jr as BaseEditorCloseButton,Rr as ConfigEditor,ot as ConfigProvider,nt as ConfigReactContext,Vr as ContextMenuProvider,Br as ContextMenuReactContext,Or as EditingStack,J as EditingStackContext,mi as EventEmitterProvider,fi as ExportPanel,ar as HOMEPAGE_COLLECTION,xi as HandleContainer,Ei as HandleControls,kr as InlineEditingStack,Qi as Layout,bn as LayoutActionsReactContext,xn as LayoutStateReactContext,Wn as ModularPanel,Bn as ModularPanelHeader,q as ModulePanelButton,_t as MultiAppProvider,On as PanelError,tn as PreviewButton,Bt as PreviewProvider,cr as PreviewVaultBoundary,sr as PreviewVaultContext,st as PrimeAppReactContext,pi as ReactEmitterContext,sa as ResourceEditingProvider,ra as ResourceEditingReactContext,rt as SaveConfigReactContext,pa as ShellProvider,Sa as TaskBridge,wa as UniversalCopyTarget,pn as analyse,hn as analyseJson,pr as baseCreator,Pr as baseEditor,Jn as copyToClipboard,Kn as createActionIdentity,qn as createDownload,tr as createPreviewVault,fn as detectMedia,Mr as editBasedOnResource,Zn as extendApp,na as getDefaultLayoutState,Q as getDefaultPanelState,vn as getFormat,yn as getImageDimensions,Gn as getManifestNomalized,kn as isPinnableState,ta as layoutReducer,Xn as mapApp,An as panelSizing,ln as polygonToBoundingBox,Yn as randomId,jn as renderHelper,bi as useAnnotationCreatorState,Tr as useAnnotationPageEditor,W as useApp,ut as useAppInstance,an as useAppMenu,on as useAppMenuItem,Et as useAppResource,Tt as useAppResourceInstance,dt as useAppState,ht as useApps,cn as useAtlasStore,wn as useAvailableLayouts,Cr as useCollectionEditor,it as useConfig,xr as useCreatingResource,lr as useCreator,Gr as useCustomContextMenu,Lr as useDecayState,ia as useEditingContext,yr as useEditingResource,br as useEditingResourceStack,vr as useEditingStack,Er as useEditor,hi as useEmitter,gi as useEvent,wr as useGenericEditor,Qn as useHighlightedImageResource,er as useHoverHighlightImageResource,ur as useInlineCreator,Cn as useLayoutActions,Tn as useLayoutProvider,Sn as useLayoutState,E as useLocalStorage,Sr as useManifestEditor,_i as useMatchMedia,ne as useOptionalLocalStorage,oa as useOptionalResource,Z as usePanelActions,Ht as usePreviewContext,or as usePreviewHistory,nr as usePreviewVault,Vt as usePreviews,aa as useResource,Ur as useResourceContextMenuItems,at as useSaveConfig,vi as useSaveVault,Rn as useSetCustomTitle,yi as useSvgTools,va as useTask,ba as useTaskDispatch,$ as useTaskEvent,xa as useTaskRunner,$n as useTemporaryHighlight};
987
+ `,Qi=ue(function(e){let t=dt(),n=Ln(),{vault:r}=k(xe),i=r||void 0,a=N(null),o=N(null),{loading:s,state:c,leftPanels:l,centerPanels:u,rightPanels:f,modals:p=[],actions:h}=n,g=l.find(e=>e.id===c.leftPanel.current),_=f.find(e=>e.id===c.rightPanel.current),v=u.find(e=>e.id===c.centerPanel.current),y=p.find(e=>e.id===c.modal.current),b=c.pinnedRightPanel.pinned?f.find(e=>e.id===c.pinnedRightPanel.current):void 0,[ee]=_i([`(max-width: 1020px)`]),x=e.isLoading||!1,te=j(()=>(n.background||[]).map((e,t)=>I(ae,{children:e.render()},t)),[n.background]),S=Mi(`left-panel/${g?.id}`,{left:!0,marginLeft:60,minWidthPx:g?.options?.minWidth||200,maxWidthPx:g?.options?.maxWidth||720,loading:s}),C=Mi(`right-panel/${_?.id}`,{left:!1,minWidthPx:_?.options?.minWidth||320,maxWidthPx:_?.options?.maxWidth||720,loading:s}),w=_&&(b?.id!==_.id||!Ze(c.pinnedRightPanel.state,c.rightPanel.state)),T=S.widthB===`auto`?void 0:()=>S.setWidths({widthA:`auto`,widthB:Bn({options:g?.options,fallback:320})}),E=C.widthB===`auto`?void 0:()=>C.setWidths({widthA:`auto`,widthB:Bn({options:_?.options,fallback:320})});if(fe(()=>{ee&&c.leftPanel.open&&c.rightPanel.open&&(h.leftPanel.close(),h.rightPanel.close())},[ee]),fe(()=>{if(v&&v.onMount)return v.onMount(c.centerPanel.state||v.defaultState||{},{...n,current:h.centerPanel,vault:i},t)},[c.centerPanel.current]),fe(()=>{f.length&&h.rightPanel.change({id:f[0].id}),l.length&&h.leftPanel.change({id:l[0].id}),u.length&&h.centerPanel.change({id:u[0].id})},[]),s)return null;let ne=t=>I(Xi,{$menu:e.leftPanelMenuPosition||`bottom`,ref:S.refs.resizableDiv,className:[`manifest-editor`,t?`transition transition-${t}`:``].join(` `),style:{width:c.leftPanel.open||t!==`exited`?S.widthB:void 0,minWidth:g?.options?.minWidth},children:x?I(Zi,{children:I(Oi,{})}):L(F,{children:[e.leftPanelMenu?I(X,{$open:c.leftPanel.open&&t!==`exited`,$position:e.leftPanelMenuPosition||`bottom`,children:e.leftPanelMenu}):null,I(Zi,{children:c.leftPanel.open||t!==`exited`?I(F,{children:g?I(er,{isLeft:!0,noHeader:!0,transition:t,panel:g,state:c.leftPanel,actions:h.leftPanel}):null}):null})]})}),re=()=>!y||c.modal.open===!1?null:I(d,{title:y.label,onClose:()=>h.modal.close(),children:Vn(y.render(c.modal.state||y.defaultState||{},{...n,current:h.modal,vault:i},t))}),ie=()=>L(Xi,{$menu:e.centerPanelMenuPosition||`top`,children:[e.centerPanelMenu?I(X,{$open:c.centerPanel.open,$position:e.centerPanelMenuPosition||`top`,children:e.centerPanelMenu}):null,I(Zi,{children:I(Be,{resetKeys:[v?.id],FallbackComponent:Rn,children:x?I(`div`,{style:{display:`flex`,flex:1,justifyContent:`center`,alignItems:`center`},children:I(Di,{stroke:`rgba(0,0,0,.3)`,fontSize:`2em`})}):c.centerPanel.open&&v?Vn(v.render(c.centerPanel.state||v.defaultState||{},{...n,current:h.centerPanel,vault:i},t)):null})})]}),oe=t=>I(Xi,{$menu:e.rightPanelMenuPosition||`bottom`,ref:C.refs.resizableDiv,className:t?`transition transition-${t}`:``,style:{width:c.rightPanel.open||t!==`exited`?C.widthB:void 0,minWidth:_?.options?.minWidth},children:x?I(Zi,{children:I(Oi,{})}):L(F,{children:[e.rightPanelMenu?I(X,{$open:c.rightPanel.open,$position:e.rightPanelMenuPosition||`bottom`,children:e.rightPanelMenu}):null,I(Zi,{children:c.rightPanel.open||t!==`exited`?L(F,{children:[w?I(er,{panel:_,state:c.rightPanel,actions:h.rightPanel,pinActions:h.pinnedRightPanel,available:f}):null,b?I(er,{panel:b,state:c.pinnedRightPanel,actions:h.pinnedRightPanel,close:h.rightPanel.close}):null]}):null})]})});return ee?L(Ui,{children:[e.hideHeader?null:L(Wi,{children:[e.header||null,e.menu?I(`menu`,{children:e.menu}):null]}),I(Ki,{children:L(Ni,{children:[I(Pi,{children:ie()}),L(Fi,{children:[l.length>0?I(Ii,{onClick:h.leftPanel.toggle,children:g?.label}):null,f.length>0?I(Ri,{children:L(zi,{onClick:h.rightPanel.toggle,children:[I(St,{rotate:180}),_?.label]})}):null,I(Li,{children:`Preview`})]}),f.length>0?I(Bi,{$open:c.rightPanel.open,children:oe()}):null,l.length>0?I(Vi,{$open:c.leftPanel.open,children:ne()}):null,l.length>0||f.length>0?I(Hi,{$open:c.leftPanel.open||c.rightPanel.open,onClick:()=>{h.leftPanel.close(),h.rightPanel.close()}}):null]})})]}):L(Ui,{id:e.htmlId||`manifest-editor-container`,className:`manifest-editor ${e.className||``}`,children:[e.hideHeader?null:L(Wi,{children:[e.header||null,e.menu?I(`menu`,{children:e.menu}):null]}),L(Ki,{ref:e=>{S.refs.container.current=e,C.refs.container.current=e},children:[l.length>0?I(m,{current:c.leftPanel.current,items:l.map(e=>({id:e.id,label:e.label,icon:e.icon,divide:e.divide,onClick:()=>{c.leftPanel.current===e.id?h.leftPanel.toggle():h.leftPanel.change({id:e.id})}})),open:c.leftPanel.open}):null,l.length>0?I(Xe,{nodeRef:a,in:c.leftPanel.open,timeout:400,unmountOnExit:!1,children:e=>L(F,{children:[I(qi,{ref:a,$width:S.widthB,$state:e,$motion:!0,children:ne(e)}),I(Ei,{ref:S.refs.resizer,reset:T,dir:`left`,transition:e,open:c.leftPanel.open||e!==`exited`,actions:h.leftPanel})]})}):null,I(Ji,{children:ie()}),f.length>0?I(Xe,{nodeRef:o,in:c.rightPanel.open,timeout:400,unmountOnExit:!1,children:e=>L(F,{children:[I(Ei,{ref:C.refs.resizer,dir:`right`,reset:E,open:c.rightPanel.open,actions:h.rightPanel}),I(Yi,{ref:o,$width:C.widthB,$state:e,$motion:!0,children:oe(e)})]})}):null]}),I(Gi,{children:e.footer||null}),I(`div`,{className:`hidden`,children:te}),I(F,{children:re()})]})});function Z(e,t){function n(){t({type:`popStack`,panel:e,payload:void 0})}function r(n){t({type:`change`,panel:e,payload:n})}function i(n){t({type:`open`,panel:e,payload:n})}function a(){t({type:`close`,panel:e,payload:void 0})}function o(){t({type:`toggle`,panel:e,payload:void 0})}function s(){t({type:`minimise`,panel:e,payload:void 0})}function c(n){t({type:`maximise`,panel:e,payload:n})}function l(n){t({type:`setCustomWidth`,panel:e,payload:n})}function u(){t({type:`resetSize`,panel:e,payload:void 0})}function d(n){t({type:`pin`,panel:e,payload:n})}function f(){t({type:`unpin`,panel:e,payload:void 0})}return j(()=>({popStack:n,change:r,open:i,close:a,toggle:o,minimise:s,maximise:c,setCustomWidth:l,resetSize:u,pin:d,unpin:f}),[])}function $i(e,t){if(t.payload&&t.payload.stacked){if(e.current){let n=e.stack[e.stack.length-1];if(n&&n.id===e.current)return;t.payload.unique&&(e.stack=e.stack.filter(t=>t.id!==e.current)),e.stack.push({id:e.current,state:e.state?{...Ae(e.state)}:{}})}}else e.stack=[]}function ea(e,t){switch(t.type){case`popStack`:if(e.stack.length){let t=e.stack[e.stack.length-1];t&&(e.current=t.id,e.state=t.state),e.stack=e.stack.slice(0,-1)}break;case`change`:t.payload.id!==e.current&&$i(e,t),e.state=t.payload.state,e.current=t.payload.id;break;case`close`:e.open=!1;break;case`open`:e.open=!0,t.payload&&(t.payload.id!==e.current&&$i(e,t),e.state=t.payload.state,e.current=t.payload.id);break;case`toggle`:e.open=!e.open;break;case`maximise`:e.minimised=!1,t.payload&&(e.state=t.payload.state,e.current=t.payload.id);break;case`minimise`:e.minimised=!0;break;case`setCustomWidth`:e.customWidth=t.payload;break;case`resetSize`:e.customWidth=void 0}if(zn(e))switch(t.type){case`pin`:e.pinned=!0,e.state=t.payload.state,e.current=t.payload.id;break;case`unpin`:e.pinned=!1,e.state=void 0;break}}const ta=je((e,t)=>{switch(t.panel){case`centerPanel`:ea(e.centerPanel,t);break;case`leftPanel`:ea(e.leftPanel,t);break;case`rightPanel`:ea(e.rightPanel,t);break;case`modal`:ea(e.modal,t);break;case`pinnedRightPanel`:ea(e.pinnedRightPanel,t);break}});function Q(){return{customWidth:void 0,minimised:!1,open:!0,current:null,state:null,stack:[]}}function na(){return{leftPanel:Q(),centerPanel:Q(),rightPanel:Q(),modal:Q(),pinnedRightPanel:{...Q(),pinnable:!0,pinned:!1}}}const ra=D({resource:null});function ia(){return k(ra)}function aa(){let e=B(),{resource:t}=ia();U(t,`Nothing selected`);let{id:n,type:r}=t;return ke(()=>e.get({id:n,type:r}),[n,r])}function oa(){let{resource:e}=ia();return e}function sa({resource:e,children:t}){let{id:n,type:r}=e||{};return I(ra.Provider,{value:j(()=>({resource:n&&r?{id:n,type:r}:null}),[n,r]),children:t})}var ca=class extends ie{constructor(...e){super(...e),G(this,`state`,{hasError:!1})}static getDerivedStateFromError(e){return console.error(e),{hasError:!0}}componentDidCatch(e,t){console.error(`Uncaught error:`,e,t)}render(){return this.state.hasError?I(`h1`,{children:`Sorry.. there was an error`}):this.props.children}};function la(e,t){return typeof e==`string`?{id:e,state:t}:e}const ua=ue(function(e){let t=W(),n=hi(),r=t.layout,[i,a]=M(ta,void 0,na),o={centerPanel:Z(`centerPanel`,a),leftPanel:Z(`leftPanel`,a),rightPanel:Z(`rightPanel`,a),pinnedRightPanel:Z(`pinnedRightPanel`,a),modal:Z(`modal`,a),editingStack:vr()};function s(e){let t=r.rightPanels.find(t=>t.id===e);if(t)return[t,o.rightPanel,o.pinnedRightPanel];let n=r.centerPanels.find(t=>t.id===e);if(n)return[n,o.centerPanel];let i=r.leftPanels.find(t=>t.id===e);if(i)return[i,o.leftPanel];U(!1,`Was not able to find panel with id "${e}"`)}function c(e,t){let{id:r,state:i,stacked:a}=la(e,t),[o,c,l]=s(r);if(l&&o.options?.openPinned)l.pin({id:r,state:{...o.defaultState||{},...i||{}}});else{let e={id:r,state:{...o.defaultState||{},...i||{}},stacked:a};n.emit(`layout.open`,e),c.open(e)}}function l(e,t){let{id:r,state:i}=la(e,t),[a,o]=s(r),c={id:r,state:{...a.defaultState||{},...i||{}},stacked:!0};n.emit(`layout.open`,c),o.open(c)}function u(e,t){let{id:r,state:i,stacked:a}=la(e,t),[o,c]=s(r),l={id:r,state:{...o.defaultState||{},...i||{}},stacked:a};n.emit(`layout.change`,l),c.change(l)}function d(e,t){let{id:r}=la(e,t),[,i]=s(r);n.emit(`layout.close`,{id:r}),i.close()}function f(e,t){let{id:r}=la(e,t),[,i]=s(r);n.emit(`layout.toggle`,{id:r}),i.toggle()}function p(e,t={},{reset:i,property:a,stacked:s,forceOpen:c}={}){let l={resource:Fe(e)?e:{type:`SpecificResource`,source:e},...t};n.emit(`layout.edit`,l),o.editingStack.edit(l,i),r.rightPanels.find(e=>e.id===`@manifest-editor/editor`)&&(c?o.rightPanel.open({id:`@manifest-editor/editor`,stacked:s!==!1,state:{property:a},unique:!0}):o.rightPanel.change({id:`@manifest-editor/editor`,stacked:s!==!1,state:{property:a},unique:!0}))}function m(e){o.editingStack.create(e,{}),n.emit(`layout.create`,e),r.modals?.find(e=>e.id===`@manifest-editor/creator`)?o.modal.open({id:`@manifest-editor/creator`,stacked:!0,unique:!0,state:e}):r.rightPanels.find(e=>e.id===`@manifest-editor/creator`)&&o.rightPanel.open({id:`@manifest-editor/creator`,stacked:!0,unique:!0,state:e})}let h={open:c,change:u,close:d,toggle:f,stack:l,edit:p,create:m};return I(Mn.Provider,{value:j(()=>({...o,...h}),[r]),children:I(Nn.Provider,{value:i,children:e.children})})}),da=[{id:`universal-viewer`,config:{url:`https://universalviewer.dev/#?iiifManifestId={manifestId}`},type:`external-manifest-preview`,label:`Universal viewer`},{id:`mirador-3`,type:`external-manifest-preview`,label:`Mirador 3`,config:{url:`https://tomcrane.github.io/scratch/mirador3/?iiif-content={manifestId}`}},{id:`annona`,type:`external-manifest-preview`,label:`Annona`,config:{url:`https://ncsu-libraries.github.io/annona/tools/#/display?url={manifestId}&viewtype=iiif-storyboard&settings=%7B%22fullpage%22%3Atrue%7D`}},{id:`iiif-preview`,config:{url:`https://iiif-preview.digirati.services/store`},type:`iiif-preview-service`,label:`IIIF Preview`}],fa=new Qe({approximateServices:!0,verificationsRequired:8,enableFetching:!0});function pa({config:e,saveConfig:t,children:n,theme:r,previews:i,resource:a,editing:o}){let s=it(),c=j(()=>({...s,...e,previews:e?.previews||s.previews||da}),[s,e]);return I(ca,{children:I(ye.Provider,{value:fa,children:I(Ot,{resource:a,children:I(sr,{children:I(pe,{theme:r||Fr,children:I(ot,{config:c,saveConfig:t,children:I(Or,{children:I(ua,{children:I(Vr,{children:I(Bt,{previews:i||[],configs:c.previews,children:I(ge,{children:n})})})})})})})})})})})}const ma={},ha=D(`global`);function ga(){return k(ha)}function _a(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}function va(e){let t=ga(),[,n]=M(e=>e+1,0),r=j(()=>(ma[t]||(ma[t]={}),ma[t][e]||(ma[t][e]={name:e,emitter:Je(),status:`idle`,promise:Promise.resolve(),abort:new AbortController,reject:()=>void 0,resolve:()=>void 0}),ma[t][e]),[t,e]);return $(r,`abort`,n),$(r,`error`,n),$(r,`complete`,n),$(r,`running`,n),r}function $(e,t,n){let r=O(()=>n(e),[n]);A(()=>{let n=e.emitter;return n.on(t,r),()=>n.off(t,r)},[t,r,e.emitter])}const ya=()=>void 0;function ba(e,t){let n=va(e);return $(n,`complete`,t||ya),[e=>{n.status===`running`&&(n.abort.abort(),n.emitter.emit(`abort`)),n.error&&(n.error=``);let t=_a();t.promise.then(()=>n.emitter.emit(`complete`)).catch(()=>n.emitter.emit(`error`)),n.status=`running`,n.request=e,n.promise=t.promise,n.resolve=t.resolve,n.reject=t.reject,n.emitter.emit(`running`)},n]}function xa(e,t){let n=va(e);return $(n,`running`,t),[e=>{n.status===`running`&&(n.response=e,n.status=`complete`,n.resolve())},n,(e,t)=>{n.status===`running`&&(n.error=t||e,n.status=`error`,n.reject(e))}]}function Sa({children:e}){return I(ha.Provider,{value:j(()=>`id-${Date.now()}`,[]),children:e})}function Ca(e){return!1}function wa({as:e,reference:t,onReference:n,onLink:r,onAnalysis:i,onDropReference:a,onDropLink:o,onDropAnalysis:s,onPasteReference:c,onPasteLink:l,onPasteAnalysis:u,...d}){let f=e||`div`,p=a||n,m=c||n,h=l||r,g=u||i,_=j(()=>t,[t?.id,t?.type]),v=O(function(e){e.defaultPrevented||(e.preventDefault(),e.clipboardData&&_&&_.id&&_.type&&e.clipboardData.setData(`application/json+vault`,JSON.stringify({id:_.id,type:_.type})))},[_]),y=O(async function(e){if(!e.defaultPrevented&&(e.preventDefault(),e.clipboardData)){if(d.onLoading&&d.onLoading(),m){let t=e.clipboardData.getData(`application/json+vault`);if(t)try{let e=JSON.parse(t);e&&e.id&&e.type&&m(e)}catch{}}if(h||g){let t=e.clipboardData.getData(`text`);if(t.startsWith(`http`)){let e=t.split(`
988
+ `);for(let t of e){if(g)try{let e=await Ca(t);if(e){g(e);continue}}catch{}h&&h(t)}}}d.onComplete&&d.onComplete()}},[]),b=O(function(e){e.defaultPrevented||(e.preventDefault(),e.dataTransfer&&d.draggable&&(e.dataTransfer.effectAllowed=`all`,_&&_.id&&_.type&&e.dataTransfer.setData(`application/json+vault`,JSON.stringify({id:_.id,type:_.type}))))},[]);return I(f,{onCopy:v,onPaste:y,onDrop:O(async function(e){if(e.preventDefault(),e.dataTransfer){if(p){let t=e.dataTransfer.getData(`application/json+vault`);if(t)try{let n=JSON.parse(t);n&&n.id&&n.type&&p(n,e)}catch{return}}let t=e.dataTransfer.getData(`application/json`);if(t){JSON.parse(t);return}if(e.dataTransfer.getData(`text/plain`))return}},[]),onDragOver:O(e=>{e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=`copy`)},[]),onDragStart:b,tabIndex:-1,...d})}export{nn as AppHeader,sn as AppMenuProvider,pt as AppProvider,ct as AppReactContext,Dt as AppResourceInstanceProvider,Ot as AppResourceProvider,lt as AppStateReactContext,he as AtlasStoreProvider,_e as AtlasStoreReactContext,Ir as BaseAnnotationCreator,Nr as BaseEditor,Ar as BaseEditorBackButton,jr as BaseEditorCloseButton,Rr as ConfigEditor,ot as ConfigProvider,nt as ConfigReactContext,Vr as ContextMenuProvider,Br as ContextMenuReactContext,Or as EditingStack,J as EditingStackContext,mi as EventEmitterProvider,fi as ExportPanel,ar as HOMEPAGE_COLLECTION,xi as HandleContainer,Ei as HandleControls,kr as InlineEditingStack,Qi as Layout,Mn as LayoutActionsReactContext,Nn as LayoutStateReactContext,er as ModularPanel,Xn as ModularPanelHeader,q as ModulePanelButton,_t as MultiAppProvider,Rn as PanelError,tn as PreviewButton,Bt as PreviewProvider,cr as PreviewVaultBoundary,sr as PreviewVaultContext,st as PrimeAppReactContext,pi as ReactEmitterContext,sa as ResourceEditingProvider,ra as ResourceEditingReactContext,rt as SaveConfigReactContext,pa as ShellProvider,Sa as TaskBridge,wa as UniversalCopyTarget,pn as analyse,hn as analyseJson,pr as baseCreator,Pr as baseEditor,Cn as copyToClipboard,xn as createActionIdentity,Sn as createDownload,tr as createPreviewVault,fn as detectMedia,Mr as editBasedOnResource,En as extendApp,na as getDefaultLayoutState,Q as getDefaultPanelState,vn as getFormat,yn as getImageDimensions,bn as getManifestNomalized,zn as isPinnableState,ta as layoutReducer,Tn as mapApp,Bn as panelSizing,ln as polygonToBoundingBox,wn as randomId,Vn as renderHelper,bi as useAnnotationCreatorState,Tr as useAnnotationPageEditor,W as useApp,ut as useAppInstance,an as useAppMenu,on as useAppMenuItem,Et as useAppResource,Tt as useAppResourceInstance,dt as useAppState,ht as useApps,cn as useAtlasStore,In as useAvailableLayouts,Cr as useCollectionEditor,it as useConfig,xr as useCreatingResource,lr as useCreator,Gr as useCustomContextMenu,Lr as useDecayState,ia as useEditingContext,yr as useEditingResource,br as useEditingResourceStack,vr as useEditingStack,Er as useEditor,hi as useEmitter,gi as useEvent,wr as useGenericEditor,Dn as useHighlightedImageResource,kn as useHoverHighlightImageResource,ur as useInlineCreator,Fn as useLayoutActions,Ln as useLayoutProvider,Pn as useLayoutState,E as useLocalStorage,Sr as useManifestEditor,_i as useMatchMedia,ne as useOptionalLocalStorage,oa as useOptionalResource,Z as usePanelActions,Ht as usePreviewContext,or as usePreviewHistory,nr as usePreviewVault,Vt as usePreviews,aa as useResource,Ur as useResourceContextMenuItems,at as useSaveConfig,vi as useSaveVault,Jn as useSetCustomTitle,yi as useSvgTools,va as useTask,ba as useTaskDispatch,$ as useTaskEvent,xa as useTaskRunner,On as useTemporaryHighlight};
989
989
  //# sourceMappingURL=index.js.map