@manifest-editor/manifest-preset 2.1.0 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components-Bl3IFBTG.js +24 -0
- package/dist/components-Bl3IFBTG.js.map +1 -0
- package/dist/components-CoVIXUVJ.cjs +24 -0
- package/dist/components-CoVIXUVJ.cjs.map +1 -0
- package/dist/components.cjs +1 -1
- package/dist/components.d.cts +18 -37
- package/dist/components.d.cts.map +1 -1
- package/dist/components.d.ts +18 -37
- package/dist/components.d.ts.map +1 -1
- package/dist/components.js +1 -1
- package/dist/index.cjs +12 -19
- package/dist/index.cjs.map +1 -0
- package/dist/index.css +21 -2
- package/dist/index.d.cts +14 -19
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +13 -18
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -21
- package/dist/index.js.map +1 -1
- package/dist/rolldown-runtime-DK3Fl9T5.js +1 -0
- package/package.json +23 -23
- package/dist/chunk-rxeKSoNa.js +0 -1
- package/dist/components-CPY_Y0GC.js +0 -24
- package/dist/components-CPY_Y0GC.js.map +0 -1
- package/dist/components-D_51CKYD.cjs +0 -23
- package/dist/index.css.map +0 -1
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import{CanvasGrid as e,CanvasList as t,InlineLocaleStringEditor as n,InputContainer as r,createAppActions as i,useInStack as a,useToggleList as o}from"@manifest-editor/editors";import{FLAG_TAG as s,ManifestEditorCanvasProgressOverlay as c,ManifestEditorTagIcon as l,ManifestEditorTagOverlay as u,getCanvasProgressStatusFromState as d,getResourceTagsFromState as f,useApp as p,useConfig as m,useCreator as h,useEditingResource as g,useEditingStack as _,useLayoutActions as v,useLayoutMode as y,useLayoutState as b,useManifestEditor as x,useResourceTagActions as S,useResourceTags as C}from"@manifest-editor/shell";import{ActionButton as w,AddIcon as ee,CanvasThumbnailGridItem as te,CheckIcon as T,CreateCanvasIcon as E,IIIFBrowserIcon as D,ManifestIcon as O,ManifestOverviewEmptyState as ne,Sidebar as k,SidebarContent as A,SidebarHeader as j,ThumbnailGridContainer as M,useFastList as N,useGridOptions as re}from"@manifest-editor/components";import{useLayoutEffect as P,useMemo as F,useState as ie}from"react";import{LocaleString as I,ManifestMetadata as L,useManifest as R,useVaultSelector as z}from"react-iiif-vault";import{Fragment as B,jsx as V,jsxs as H}from"react/jsx-runtime";import U from"styled-components";import{toRef as W}from"@iiif/parser";const ae=U.div`
|
|
2
|
+
flex: 1 1 0;
|
|
3
|
+
min-height: 0;
|
|
4
|
+
overflow-y: auto;
|
|
5
|
+
padding-inline-start: var(--manifest-editor-layout-left-sidebar-small, 0px);
|
|
6
|
+
padding-inline-end: var(--manifest-editor-layout-right-sidebar-small, 0px);
|
|
7
|
+
|
|
8
|
+
> .grid {
|
|
9
|
+
overflow-y: visible;
|
|
10
|
+
}
|
|
11
|
+
`,oe=U.div`
|
|
12
|
+
display: flex;
|
|
13
|
+
align-items: center;
|
|
14
|
+
justify-content: space-between;
|
|
15
|
+
gap: 0.5rem;
|
|
16
|
+
padding-block: 0.5rem;
|
|
17
|
+
padding-inline-start: calc(
|
|
18
|
+
0.5rem + var(--manifest-editor-layout-left-sidebar-small, 0px)
|
|
19
|
+
);
|
|
20
|
+
padding-inline-end: calc(
|
|
21
|
+
0.5rem + var(--manifest-editor-layout-right-sidebar-large, 0px)
|
|
22
|
+
);
|
|
23
|
+
`,G={id:`overview`,label:`Overview`,icon:V(O,{}),render:()=>V(K,{})};function K(){let{metadata:e}=p(),{edit:t,open:n}=v(),{structural:r,technical:i}=x(),{items:o}=r,{editorFeatureFlags:{manifestGridOptions:c=!1}}=m(),u=i.id.get(),g=a(`Canvas`)?.resource.source.id,[_,S]=h({id:u,type:`Manifest`},`items`,`Canvas`,void 0,{isPainting:!0}),C=N(o.get(),24),T=y(),{leftPanel:E}=b(),O=E.current===`left-panel-manifest`,[{size:k},A]=re(`manifest-grid-size`),[j,P]=ie(!1),I=F(()=>(C||[]).map(e=>e.id).join(`|`),[C]),L=z(e=>{let t={};for(let n of C||[])t[n.id]=f(e,{id:n.id,type:`Canvas`});return t},[I]),R=z(e=>{let t={};for(let n of C||[])t[n.id]=d(e,{id:n.id,type:`Canvas`});return t},[I]),[U,W]=F(()=>{let e=(C||[]).filter(e=>L[e.id]?.some(e=>e.type===s.type&&e.id===s.id));return j?[e,e.length]:[C||[],e.length]},[C,L,j]),G=e.id===`exhibition-slideshow-editor`?`exhibition-slideshow-slide`:e.id===`exhibition-editor`?`exhibition-slide`:null,K=G?(e,t)=>S.createFiltered(G,e,t):S.create;return!C||C.length===0?V(`div`,{children:V(ne,{onCreate:K,canCreate:_})}):H(B,{children:[c?H(oe,{children:[A,H(`div`,{className:`flex gap-2`,children:[W>0&&H(w,{primary:j,"aria-pressed":j,onPress:()=>P(e=>!e),children:[V(l,{icon:s.icon,className:`text-xl`}),` Show only flagged`]}),H(w,{isDisabled:!_,onPress:()=>K(),children:[V(ee,{className:`text-xl`}),` Add new canvas`]}),V(w,{"aria-label":`Browse IIIF resources`,onPress:()=>S.creator(`@manifest-editor/iiif-browser-creator`),children:V(D,{"aria-hidden":`true`,className:`text-xl`})})]})]}):null,j&&U.length===0?V(`div`,{className:`p-6 text-sm text-gray-500`,children:`No flagged canvases`}):V(ae,{children:V(M,{wide:!0,size:k,children:U.map(e=>V(te,{id:e.id,selected:e.id===g,active:e.id===g,icon:V(se,{tags:L[e.id]||[],status:R[e.id]||`none`}),onClick:()=>{n({id:`current-canvas`}),T==="default"&&O&&n({id:`canvas-listing`,state:{gridView:!0}}),S.edit(e)}},e.id))})})]})}function se({tags:e,status:t}){return H(B,{children:[V(c,{status:t}),V(u,{tags:e})]})}const q=({title:e,titleId:t,...n})=>H(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,width:`1em`,height:`1em`,"aria-labelledby":t,...n,children:[e?V(`title`,{id:t,children:e}):null,H(`g`,{fill:`none`,children:[V(`path`,{d:`M0 0h24v24H0V0z`}),V(`path`,{d:`M0 0h24v24H0V0z`,opacity:`.87`})]}),V(`path`,{d:`M3 13h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7zm-4 6h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7z`,fill:`currentColor`})]}),ce={id:`canvas-listing`,label:`Canvases`,icon:V(q,{}),render:(e,t,n)=>V(J,{gridView:e.gridView||localStorage.getItem(`canvas-listing-view-mode`)===`grid`,onChangeGridView:e=>{localStorage.setItem(`canvas-listing-view-mode`,e?`grid`:`list`),t.actions.change(`canvas-listing`,{gridView:e})}})};function J({gridView:e,onChangeGridView:t}){let{structural:n,technical:r}=x(),[i,a]=o(),{items:s}=n,c={id:r.id.get(),type:`Manifest`},[l,u]=h(c,`items`,`Canvas`,void 0,{isPainting:!0}),d=N(s.get(),24);return P(()=>{let e=document.querySelector(`[data-canvas-selected="true"]`);e&&e.scrollIntoView({block:`center`})},[d,e]),H(k,{children:[V(j,{title:`Canvases`,actions:[{icon:V(B,{children:e?V(q,{width:24,height:24}):V(de,{})}),title:e?`List view`:`Grid view`,onClick:()=>{t(!e)}},{icon:V($,{}),title:`Edit canvases`,toggled:i.items,onClick:()=>a(`items`)},{icon:V(D,{className:`text-2xl`}),title:`IIIF Browser`,onClick:()=>u.creator(`@manifest-editor/iiif-browser-creator`),disabled:!l},{icon:V(E,{}),title:`Add new canvas`,onClick:()=>u.create(),disabled:!l}]}),V(e?X:Z,{isEditing:i.items})]})}function Y(){let{edit:e,open:t,leftPanel:n}=v(),r=y(),i=a(`Canvas`),{technical:o,structural:s}=x(),{items:c}=s,l={id:o.id.get(),type:`Manifest`},u=N(c.get(),24),[d,f]=h(l,`items`,`Canvas`,void 0,{isPainting:!0});return{canvas:i,canvases:u,items:c,canvasActions:f,open:t,edit:e,closeAfterCanvasSelect:()=>{r===`focused`&&n.close()},canCreateCanvas:d}}function X({isEditing:t}){let{canvas:n,items:r,canvasActions:a,open:o,closeAfterCanvasSelect:s}=Y(),c=R(),l=_(),u=r.get(),d=n?.resource.source.id,f=u.findIndex(e=>e.id===d),p=f&&f>0?Number(f-1):0;function m(){l.close();let e=r.get();e&&e.length>0?a.edit(e[p]):a.edit(c)}return V(A,{children:V(M,{children:V(e,{id:r.focusId(),list:r.get()||[],inlineHandle:!1,activeId:n?.resource.source.id,reorder:t?e=>r.reorder(e.startIndex,e.endIndex):void 0,onSelect:(e,t)=>{o({id:`current-canvas`}),a.edit(e,t),s()},createActions:i(r,m),inlineActions:t?Q:void 0,thumbnailIcon:le})})})}function Z({isEditing:e,onDelete:n}){let{canvas:a,items:o,canvasActions:s,open:c,closeAfterCanvasSelect:l}=Y(),u=R(),d=_(),f=o.get()||[],p=a?.resource.source.id,m=f.findIndex(e=>e.id===p),h=m&&m>0?Number(m-1):0;function g(){d.close();let e=o.get();e&&e.length>0?s.edit(e[h]):s.edit(u)}return V(A,{className:`p-3`,children:V(r,{$wide:!0,children:V(t,{id:o.focusId(),list:o.get()||[],inlineHandle:!1,activeId:a?.resource.source.id,reorder:e?e=>o.reorder(e.startIndex,e.endIndex):void 0,onSelect:(e,t)=>{c({id:`current-canvas`}),s.edit(e,t),l()},createActions:(e,t,r)=>i(o,()=>n?n(e.id):g())(e,t,r),inlineActions:e?Q:void 0})})})}function Q(e){let t=W(e);return t?.id?V(ue,{canvasId:t.id}):null}function le(e){let t=W(e);if(!t?.id)return null;let n={id:t.id,type:`Canvas`};return H(B,{children:[V(c,{resource:n}),V(u,{resource:n})]})}function ue({canvasId:e}){let t={id:e,type:`Canvas`},n=C(t),{toggleTag:r}=S(t),i=n.some(e=>e.type===s.type&&e.id===s.id);return V(`button`,{type:`button`,"aria-label":i?`Remove flag`:`Flag canvas`,"aria-pressed":i,title:i?`Remove flag`:`Flag canvas`,className:[`relative flex aspect-square items-center justify-center rounded-sm p-0.5 text-xl hover:bg-me-primary-100`,i?`bg-red-100 text-red-700`:`text-gray-500`].join(` `),onPointerDown:e=>e.stopPropagation(),onClick:e=>{e.preventDefault(),e.stopPropagation(),r(s)},children:V(l,{icon:s.icon,className:`h-6 w-6`})})}function $(e){return H(`svg`,{className:`text-xl`,xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,viewBox:`0 0 24 24`,...e,children:[V(`path`,{d:`M0 0h24v24H0V0z`,fill:`none`}),V(`path`,{d:`M14.06 9.02l.92.92L5.92 19H5v-.92l9.06-9.06M17.66 3c-.25 0-.51.1-.7.29l-1.83 1.83 3.75 3.75 1.83-1.83c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.2-.2-.45-.29-.71-.29zm-3.6 3.19L3 17.25V21h3.75L17.81 9.94l-3.75-3.75z`,fill:`currentColor`})]})}function de(){return H(`svg`,{xmlns:`http://www.w3.org/2000/svg`,height:`24`,viewBox:`0 0 24 24`,width:`24`,children:[V(`path`,{d:`M0 0h24v24H0V0z`,fill:`none`}),V(`path`,{d:`M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM8 20H4v-4h4v4zm0-6H4v-4h4v4zm0-6H4V4h4v4zm6 12h-4v-4h4v4zm0-6h-4v-4h4v4zm0-6h-4V4h4v4zm6 12h-4v-4h4v4zm0-6h-4v-4h4v4zm0-6h-4V4h4v4z`,fill:`currentColor`})]})}function fe({title:e,titleId:t,...n}){return H(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,"aria-labelledby":t,...n,children:[e?V(`title`,{id:t,children:e}):null,V(`path`,{d:`M0 0h24v24H0V0z`,fill:`none`}),V(`path`,{d:`M11 7h2v2h-2zm0 4h2v6h-2zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z`,fill:`currentColor`})]})}const pe={id:`left-panel-manifest`,label:`Manifest summary`,icon:V(fe,{}),render:(e,t,n)=>V(he,{})};function me(e){return V(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,viewBox:`0 0 24 24`,...e,children:V(`path`,{fill:`currentColor`,d:`m15 16l-4 4h10v-4zm-2.94-8.81L3 16.25V20h3.75l9.06-9.06zm1.072-1.067l2.539-2.539l3.747 3.748L16.88 9.87z`})})}function he(){let{descriptive:e,technical:t}=x(),r=t.id.get(),i=e.label.get(),a=e.summary.get(),o=e.requiredStatement.get(),s=e.metadata.get(),c=g(),l=_(),{rightPanel:u}=b(),{edit:d,rightPanel:f}=v(),p=u.open&&u.current===`@manifest-editor/editor`&&c?.resource.source.id===r&&c.resource.source.type===`Manifest`;return H(k,{children:[V(j,{title:`Manifest summary`,actions:[{icon:V(p?T:me,{className:`text-xl`}),title:p?`Finish editing`:`Edit metadata`,toggled:p,onClick:()=>{if(p){f.close(),l.close();return}d({id:r,type:`Manifest`},void 0,{forceOpen:!0,selectedTab:`@manifest-editor/descriptive-properties`})}}]}),H(A,{className:`p-4`,children:[V(n,{as:`h2`,placeholder:`Add an exhibition title`,className:`text-lg font-semibold [&>a]:underline [&>a]:hover:text-slate-400`,buttonClassName:`border border-gray-300 bg-white p-2 pr-16 mb-3`,editButtonClassName:`top-1 right-1 bottom-auto opacity-100 shadow-none bg-me-gray-100 text-me-primary-700 font-semibold`,editor:e.label,children:i}),V(n,{multiline:!0,enableDangerouslySetInnerHTML:!0,as:`p`,placeholder:`Add an exhibition summary`,className:`text-sm text-slate-800 block [&>a]:underline [&>a]:hover:text-slate-400`,buttonClassName:`border border-gray-300 bg-white p-2 pr-16 mb-3`,editButtonClassName:`top-1 right-1 bottom-auto opacity-100 shadow-none bg-me-gray-100 text-me-primary-700 font-semibold`,editor:e.summary,children:a}),V(`hr`,{}),o?H(B,{children:[H(`div`,{className:`py-2 text-black`,children:[V(I,{as:`h3`,className:`font-bold text-black w-full text-sm font-semibold mb-0 [&>a]:underline [&>a]:hover:text-slate-400`,children:o.label}),V(I,{enableDangerouslySetInnerHTML:!0,className:`text-sm [&>a]:underline [&>a]:hover:text-slate-400`,children:o.value})]}),V(`hr`,{})]}):null,s&&s.length===0?V(`div`,{className:`py-2 text-gray-600`,children:`You can add some descriptive metadata for this manifest using the editing panel on the right`}):null,V(L,{allowHtml:!0,classes:{container:`w-full`,row:`border-b border-gray-200 flex flex-col flex-wrap py-2`,label:`font-bold text-black w-full text-sm font-semibold mb-1`,value:`text-sm text-black block [&>span>a]:underline [&>span>a]:hover:text-slate-400`,empty:`text-gray-600`}})]})]})}export{Z as a,de as c,Y as d,K as f,X as i,$ as l,he as n,J as o,G as p,pe as r,q as s,fe as t,ce as u};
|
|
24
|
+
//# sourceMappingURL=components-Bl3IFBTG.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components-Bl3IFBTG.js","names":["ListEditIcon","ManifestIcon"],"sources":["../src/center-panels/manifest-overview.tsx","../src/left-panels/canvas-listing.tsx","../src/left-panels/manifest.tsx"],"sourcesContent":["import {\n ActionButton,\n AddIcon,\n CanvasThumbnailGridItem,\n IIIFBrowserIcon,\n ManifestIcon,\n ManifestOverviewEmptyState,\n ThumbnailGridContainer,\n useFastList,\n useGridOptions,\n} from \"@manifest-editor/components\";\nimport { EditableCanvasLabel, useInStack } from \"@manifest-editor/editors\";\nimport {\n FLAG_TAG,\n getCanvasProgressStatusFromState,\n getResourceTagsFromState,\n type LayoutPanel,\n ManifestEditorCanvasProgressOverlay,\n ManifestEditorTagIcon,\n ManifestEditorTagOverlay,\n useApp,\n useConfig,\n useCreator,\n useLayoutActions,\n useLayoutMode,\n useLayoutState,\n useManifestEditor,\n} from \"@manifest-editor/shell\";\nimport { useMemo, useState } from \"react\";\nimport { useVaultSelector } from \"react-iiif-vault\";\nimport styled from \"styled-components\";\n\nconst CanvasGridLayoutOffset = styled.div`\n flex: 1 1 0;\n min-height: 0;\n overflow-y: auto;\n padding-inline-start: var(--manifest-editor-layout-left-sidebar-small, 0px);\n padding-inline-end: var(--manifest-editor-layout-right-sidebar-small, 0px);\n\n > .grid {\n overflow-y: visible;\n }\n`;\n\nconst CanvasGridControls = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 0.5rem;\n padding-block: 0.5rem;\n padding-inline-start: calc(\n 0.5rem + var(--manifest-editor-layout-left-sidebar-small, 0px)\n );\n padding-inline-end: calc(\n 0.5rem + var(--manifest-editor-layout-right-sidebar-large, 0px)\n );\n`;\n\nexport const manifestOverview: LayoutPanel = {\n id: \"overview\",\n label: \"Overview\",\n icon: <ManifestIcon />,\n render: () => <ManifestOverviewCenterPanel />,\n};\n\nexport function ManifestOverviewCenterPanel() {\n const { metadata } = useApp();\n const { edit, open } = useLayoutActions();\n const { structural, technical } = useManifestEditor();\n const { items } = structural;\n const {\n editorFeatureFlags: { manifestGridOptions = false },\n } = useConfig();\n const manifestId = technical.id.get();\n const canvas = useInStack(\"Canvas\");\n const currentCanvasId = canvas?.resource.source.id;\n const manifest = { id: manifestId, type: \"Manifest\" };\n const [canCreateCanvas, canvasActions] = useCreator(manifest, \"items\", \"Canvas\", undefined, { isPainting: true });\n const canvases = useFastList(items.get(), 24);\n const layoutMode = useLayoutMode();\n const { leftPanel } = useLayoutState();\n const isEditingManifest = leftPanel.current === \"left-panel-manifest\";\n const [{ size }, gridOptions] = useGridOptions(\"manifest-grid-size\");\n const [showOnlyFlagged, setShowOnlyFlagged] = useState(false);\n const canvasIds = useMemo(() => (canvases || []).map((item) => item.id).join(\"|\"), [canvases]);\n const canvasTags = useVaultSelector(\n (state) => {\n const tags: Record<string, ReturnType<typeof getResourceTagsFromState>> = {};\n for (const item of canvases || []) {\n tags[item.id] = getResourceTagsFromState(state, {\n id: item.id,\n type: \"Canvas\",\n });\n }\n return tags;\n },\n [canvasIds],\n );\n const canvasProgressStatuses = useVaultSelector(\n (state) => {\n const statuses: Record<string, ReturnType<typeof getCanvasProgressStatusFromState>> = {};\n for (const item of canvases || []) {\n statuses[item.id] = getCanvasProgressStatusFromState(state, {\n id: item.id,\n type: \"Canvas\",\n });\n }\n return statuses;\n },\n [canvasIds],\n );\n const [visibleCanvases, numberOfFlaggedCanvases] = useMemo(() => {\n const flaggedCanvases = (canvases || []).filter((item) =>\n canvasTags[item.id]?.some((tag) => tag.type === FLAG_TAG.type && tag.id === FLAG_TAG.id),\n );\n\n if (!showOnlyFlagged) {\n return [canvases || [], flaggedCanvases.length] as const;\n }\n return [flaggedCanvases, flaggedCanvases.length] as const;\n }, [canvases, canvasTags, showOnlyFlagged]);\n\n const exhibitionCreatorFilter =\n metadata.id === \"exhibition-slideshow-editor\"\n ? \"exhibition-slideshow-slide\"\n : metadata.id === \"exhibition-editor\"\n ? \"exhibition-slide\"\n : null;\n const createCanvas = exhibitionCreatorFilter\n ? (index: any, data: any) => {\n return canvasActions.createFiltered(exhibitionCreatorFilter, index, data);\n }\n : canvasActions.create;\n\n if (!canvases || canvases.length === 0) {\n return (\n <div>\n <ManifestOverviewEmptyState onCreate={createCanvas} canCreate={canCreateCanvas} />\n </div>\n );\n }\n return (\n <>\n {manifestGridOptions ? (\n <CanvasGridControls>\n {gridOptions}\n <div className=\"flex gap-2\">\n {numberOfFlaggedCanvases > 0 && (\n <ActionButton\n primary={showOnlyFlagged}\n aria-pressed={showOnlyFlagged}\n onPress={() => setShowOnlyFlagged((showing) => !showing)}\n >\n <ManifestEditorTagIcon icon={FLAG_TAG.icon} className=\"text-xl\" /> Show only flagged\n </ActionButton>\n )}\n <ActionButton isDisabled={!canCreateCanvas} onPress={() => createCanvas()}>\n <AddIcon className=\"text-xl\" /> Add new canvas\n </ActionButton>\n <ActionButton aria-label=\"Browse IIIF resources\" onPress={() => canvasActions.creator(\"@manifest-editor/iiif-browser-creator\")}>\n <IIIFBrowserIcon aria-hidden=\"true\" className=\"text-xl\" />\n </ActionButton>\n </div>\n </CanvasGridControls>\n ) : null}\n {showOnlyFlagged && visibleCanvases.length === 0 ? (\n <div className=\"p-6 text-sm text-gray-500\">No flagged canvases</div>\n ) : (\n <CanvasGridLayoutOffset>\n <ThumbnailGridContainer wide size={size}>\n {visibleCanvases.map((item) => (\n <CanvasThumbnailGridItem\n id={item.id}\n key={item.id}\n selected={item.id === currentCanvasId}\n active={item.id === currentCanvasId}\n icon={\n <CanvasThumbnailFeedback\n tags={canvasTags[item.id] || []}\n status={canvasProgressStatuses[item.id] || \"none\"}\n />\n }\n onClick={() => {\n open({ id: \"current-canvas\" });\n if (layoutMode === \"default\" && isEditingManifest) {\n open({ id: \"canvas-listing\", state: { gridView: true } });\n }\n canvasActions.edit(item);\n }}\n />\n ))}\n </ThumbnailGridContainer>\n </CanvasGridLayoutOffset>\n )}\n </>\n );\n}\n\nfunction CanvasThumbnailFeedback({\n tags,\n status,\n}: {\n tags: ReturnType<typeof getResourceTagsFromState>;\n status: ReturnType<typeof getCanvasProgressStatusFromState>;\n}) {\n return (\n <>\n <ManifestEditorCanvasProgressOverlay status={status} />\n <ManifestEditorTagOverlay tags={tags} />\n </>\n );\n}\n","import {\n CanvasThumbnailGridItem,\n CreateCanvasIcon,\n IIIFBrowserIcon,\n Sidebar,\n SidebarContent,\n SidebarHeader,\n ThumbnailGridContainer,\n useFastList,\n} from \"@manifest-editor/components\";\nimport { manifestBrowserCreator } from \"@manifest-editor/creators\";\nimport { toRef } from \"@iiif/parser\";\nimport {\n CanvasGrid,\n CanvasList,\n createAppActions,\n InputContainer,\n useInStack,\n useToggleList,\n} from \"@manifest-editor/editors\";\nimport {\n FLAG_TAG,\n type LayoutPanel,\n ManifestEditorCanvasProgressOverlay,\n ManifestEditorTagIcon,\n ManifestEditorTagOverlay,\n useCreator,\n useEditingStack,\n useLayoutActions,\n useLayoutMode,\n useManifestEditor,\n useResourceTagActions,\n useResourceTags,\n} from \"@manifest-editor/shell\";\nimport { type SVGProps, useEffect, useLayoutEffect } from \"react\";\nimport { useCollection, useManifest } from \"react-iiif-vault\";\n\nexport const CanvasListingIcon = ({\n title,\n titleId,\n ...props\n}: SVGProps<SVGSVGElement> & { title?: string; titleId?: string }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n width=\"1em\"\n height=\"1em\"\n aria-labelledby={titleId}\n {...props}\n >\n {title ? <title id={titleId}>{title}</title> : null}\n\n <g fill=\"none\">\n <path d=\"M0 0h24v24H0V0z\" />\n <path d=\"M0 0h24v24H0V0z\" opacity=\".87\" />\n </g>\n <path\n d=\"M3 13h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7zm-4 6h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport const canvasListing: LayoutPanel = {\n id: \"canvas-listing\",\n label: \"Canvases\",\n icon: <CanvasListingIcon />,\n render: (state, ctx, app) => {\n return (\n <CanvasListing\n gridView={\n state.gridView ||\n localStorage.getItem(\"canvas-listing-view-mode\") === \"grid\"\n }\n onChangeGridView={(gridView) => {\n localStorage.setItem(\n \"canvas-listing-view-mode\",\n gridView ? \"grid\" : \"list\",\n );\n ctx.actions.change(\"canvas-listing\", { gridView });\n }}\n />\n );\n },\n};\n\nexport function CanvasListing({\n gridView,\n onChangeGridView,\n}: {\n gridView: boolean;\n onChangeGridView: (gridView: boolean) => void;\n}) {\n const { structural, technical } = useManifestEditor();\n const [toggled, toggle] = useToggleList();\n const { items } = structural;\n const manifestId = technical.id.get();\n const manifest = { id: manifestId, type: \"Manifest\" };\n const [canCreateCanvas, canvasActions] = useCreator(\n manifest,\n \"items\",\n \"Canvas\",\n undefined,\n { isPainting: true },\n );\n const canvases = useFastList(items.get(), 24);\n\n useLayoutEffect(() => {\n const selected = document.querySelector('[data-canvas-selected=\"true\"]');\n if (selected) {\n selected.scrollIntoView({ block: \"center\" });\n }\n }, [canvases, gridView]);\n\n return (\n <Sidebar>\n <SidebarHeader\n title=\"Canvases\"\n actions={[\n {\n icon: (\n <>\n {gridView ? (\n <CanvasListingIcon width={24} height={24} />\n ) : (\n <CanvasThumbnailsIcon />\n )}\n </>\n ),\n title: gridView ? \"List view\" : \"Grid view\",\n onClick: () => {\n onChangeGridView(!gridView);\n },\n },\n {\n icon: <ListEditIcon />,\n title: \"Edit canvases\",\n toggled: toggled.items,\n onClick: () => toggle(\"items\"),\n },\n {\n icon: <IIIFBrowserIcon className=\"text-2xl\" />,\n title: \"IIIF Browser\",\n onClick: () =>\n canvasActions.creator(\"@manifest-editor/iiif-browser-creator\"),\n disabled: !canCreateCanvas,\n },\n {\n icon: <CreateCanvasIcon />,\n title: \"Add new canvas\",\n onClick: () => canvasActions.create(),\n disabled: !canCreateCanvas,\n },\n ]}\n />\n {gridView ? (\n <CanvasGridView isEditing={toggled.items} />\n ) : (\n <CanvasListView isEditing={toggled.items} />\n )}\n </Sidebar>\n );\n}\n\nexport function useEditCanvasItems() {\n const { edit, open, leftPanel } = useLayoutActions();\n const layoutMode = useLayoutMode();\n const canvas = useInStack(\"Canvas\");\n const { technical, structural } = useManifestEditor();\n const { items } = structural;\n const manifestId = technical.id.get();\n const manifest = { id: manifestId, type: \"Manifest\" };\n const canvases = useFastList(items.get(), 24);\n const [canCreateCanvas, canvasActions] = useCreator(\n manifest,\n \"items\",\n \"Canvas\",\n undefined,\n { isPainting: true },\n );\n\n const closeAfterCanvasSelect = () => {\n if (layoutMode === \"focused\") {\n leftPanel.close();\n }\n };\n\n return {\n canvas,\n canvases,\n items,\n canvasActions,\n open,\n edit,\n closeAfterCanvasSelect,\n canCreateCanvas,\n };\n}\n\nexport function CanvasGridView({ isEditing }: { isEditing: boolean }) {\n const { canvas, items, canvasActions, open, closeAfterCanvasSelect } =\n useEditCanvasItems();\n const manifest = useManifest();\n const editingStack = useEditingStack();\n const canvases = items.get();\n const canvasId = canvas?.resource.source.id;\n\n // Find current canvas to get its index before deleting it\n const canvasIndex = canvases.findIndex((canv) => canv.id === canvasId);\n const prevCanvasIndex: number =\n canvasIndex && canvasIndex > 0 ? Number(canvasIndex - 1) : 0;\n\n function onDeleteCanvas() {\n editingStack.close(); // close the deleted canvas\n const newCanvases = items.get(); // refresh canvases\n\n if (newCanvases && newCanvases.length > 0) {\n canvasActions.edit(newCanvases[prevCanvasIndex]);\n } else {\n canvasActions.edit(manifest);\n }\n }\n\n return (\n <SidebarContent>\n <ThumbnailGridContainer>\n <CanvasGrid\n id={items.focusId()}\n list={items.get() || []}\n inlineHandle={false}\n activeId={canvas?.resource.source.id}\n reorder={\n isEditing\n ? (t: any) => items.reorder(t.startIndex, t.endIndex)\n : undefined\n }\n onSelect={(item: any, idx: number) => {\n open({ id: \"current-canvas\" });\n canvasActions.edit(item, idx);\n closeAfterCanvasSelect();\n }}\n createActions={createAppActions(items, onDeleteCanvas)}\n inlineActions={isEditing ? renderCanvasFlagInlineAction : undefined}\n thumbnailIcon={renderCanvasTagThumbnailOverlay}\n />\n </ThumbnailGridContainer>\n </SidebarContent>\n );\n}\n\nexport function CanvasListView({\n isEditing,\n onDelete,\n}: {\n isEditing: boolean;\n onDelete?: (deletedId: string) => void;\n}) {\n const { canvas, items, canvasActions, open, closeAfterCanvasSelect } =\n useEditCanvasItems();\n const manifest = useManifest();\n const editingStack = useEditingStack();\n const canvases = items.get() || [];\n const canvasId = canvas?.resource.source.id;\n\n // Find current canvas to get its index before deleting it\n const canvasIndex = canvases.findIndex((canv) => canv.id === canvasId);\n const prevCanvasIndex: number =\n canvasIndex && canvasIndex > 0 ? Number(canvasIndex - 1) : 0;\n\n function onDeleteCanvas() {\n editingStack.close(); // close the deleted canvas\n const newCanvases = items.get(); // refresh canvases\n\n if (newCanvases && newCanvases.length > 0) {\n canvasActions.edit(newCanvases[prevCanvasIndex]);\n } else {\n canvasActions.edit(manifest);\n }\n }\n\n return (\n <SidebarContent className=\"p-3\">\n <InputContainer $wide>\n <CanvasList\n id={items.focusId()}\n list={items.get() || []}\n inlineHandle={false}\n activeId={canvas?.resource.source.id}\n reorder={\n isEditing\n ? (t) => items.reorder(t.startIndex, t.endIndex)\n : undefined\n }\n onSelect={(item, idx) => {\n open({ id: \"current-canvas\" });\n canvasActions.edit(item, idx);\n closeAfterCanvasSelect();\n }}\n createActions={(ref, index, item) =>\n createAppActions(items, () =>\n onDelete ? onDelete(ref.id) : onDeleteCanvas(),\n )(ref, index, item)\n }\n inlineActions={isEditing ? renderCanvasFlagInlineAction : undefined}\n />\n </InputContainer>\n </SidebarContent>\n );\n}\n\nfunction renderCanvasFlagInlineAction(ref: any) {\n const canvas = toRef(ref);\n if (!canvas?.id) {\n return null;\n }\n\n return <CanvasFlagInlineAction canvasId={canvas.id} />;\n}\n\nfunction renderCanvasTagThumbnailOverlay(ref: any) {\n const canvas = toRef(ref);\n if (!canvas?.id) {\n return null;\n }\n\n const resource = { id: canvas.id, type: \"Canvas\" };\n\n return (\n <>\n <ManifestEditorCanvasProgressOverlay resource={resource} />\n <ManifestEditorTagOverlay resource={resource} />\n </>\n );\n}\n\nfunction CanvasFlagInlineAction({ canvasId }: { canvasId: string }) {\n const resource = { id: canvasId, type: \"Canvas\" };\n const tags = useResourceTags(resource);\n const { toggleTag } = useResourceTagActions(resource);\n const flagged = tags.some(\n (tag) => tag.type === FLAG_TAG.type && tag.id === FLAG_TAG.id,\n );\n\n return (\n <button\n type=\"button\"\n aria-label={flagged ? \"Remove flag\" : \"Flag canvas\"}\n aria-pressed={flagged}\n title={flagged ? \"Remove flag\" : \"Flag canvas\"}\n className={[\n \"relative flex aspect-square items-center justify-center rounded-sm p-0.5 text-xl hover:bg-me-primary-100\",\n flagged ? \"bg-red-100 text-red-700\" : \"text-gray-500\",\n ].join(\" \")}\n onPointerDown={(e) => e.stopPropagation()}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n toggleTag(FLAG_TAG);\n }}\n >\n <ManifestEditorTagIcon icon={FLAG_TAG.icon} className=\"h-6 w-6\" />\n </button>\n );\n}\n\nexport function ListEditIcon(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg\n className=\"text-xl\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 24 24\"\n {...props}\n >\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\n <path\n d=\"M14.06 9.02l.92.92L5.92 19H5v-.92l9.06-9.06M17.66 3c-.25 0-.51.1-.7.29l-1.83 1.83 3.75 3.75 1.83-1.83c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.2-.2-.45-.29-.71-.29zm-3.6 3.19L3 17.25V21h3.75L17.81 9.94l-3.75-3.75z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\n\nexport function CanvasThumbnailsIcon() {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n width=\"24\"\n >\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\n <path\n d=\"M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM8 20H4v-4h4v4zm0-6H4v-4h4v4zm0-6H4V4h4v4zm6 12h-4v-4h4v4zm0-6h-4v-4h4v4zm0-6h-4V4h4v4zm6 12h-4v-4h4v4zm0-6h-4v-4h4v4zm0-6h-4V4h4v4z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\n","import {\n CheckIcon,\n Sidebar,\n SidebarContent,\n SidebarHeader,\n} from \"@manifest-editor/components\";\nimport { InlineLocaleStringEditor } from \"@manifest-editor/editors\";\nimport {\n type LayoutPanel,\n useEditingResource,\n useEditingStack,\n useLayoutActions,\n useLayoutState,\n useManifestEditor,\n} from \"@manifest-editor/shell\";\nimport type { SVGProps } from \"react\";\nimport { LocaleString, ManifestMetadata } from \"react-iiif-vault\";\n\nexport function ManifestIcon({\n title,\n titleId,\n ...props\n}: SVGProps<SVGSVGElement> & { title?: string; titleId?: string }) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"1em\"\n height=\"1em\"\n aria-labelledby={titleId}\n {...props}\n >\n {title ? <title id={titleId}>{title}</title> : null}\n\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\n <path\n d=\"M11 7h2v2h-2zm0 4h2v6h-2zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\n\nexport const manifestPanel: LayoutPanel = {\n id: \"left-panel-manifest\",\n label: \"Manifest summary\",\n icon: <ManifestIcon />,\n render: (state, ctx, app) => {\n return <ManifestPanel />;\n },\n};\n\nfunction EditManifestMetadataIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 24 24\"\n {...props}\n >\n {/* Icon from Google Material Icons by Material Design Authors - https://github.com/material-icons/material-icons/blob/master/LICENSE */}\n <path\n fill=\"currentColor\"\n d=\"m15 16l-4 4h10v-4zm-2.94-8.81L3 16.25V20h3.75l9.06-9.06zm1.072-1.067l2.539-2.539l3.747 3.748L16.88 9.87z\"\n />\n </svg>\n );\n}\n\nexport function ManifestPanel() {\n const { descriptive, technical } = useManifestEditor();\n const id = technical.id.get();\n const label = descriptive.label.get();\n const summary = descriptive.summary.get();\n const requiredStatement = descriptive.requiredStatement.get();\n const metadata = descriptive.metadata.get();\n const editingResource = useEditingResource();\n const editingStack = useEditingStack();\n const { rightPanel } = useLayoutState();\n const { edit, rightPanel: rightPanelActions } = useLayoutActions();\n const isEditingManifest =\n rightPanel.open &&\n rightPanel.current === \"@manifest-editor/editor\" &&\n editingResource?.resource.source.id === id &&\n editingResource.resource.source.type === \"Manifest\";\n\n return (\n <Sidebar>\n <SidebarHeader\n title=\"Manifest summary\"\n actions={[\n {\n icon: isEditingManifest ? (\n <CheckIcon className=\"text-xl\" />\n ) : (\n <EditManifestMetadataIcon className=\"text-xl\" />\n ),\n title: isEditingManifest ? \"Finish editing\" : \"Edit metadata\",\n toggled: isEditingManifest,\n onClick: () => {\n if (isEditingManifest) {\n rightPanelActions.close();\n editingStack.close();\n return;\n }\n\n edit({ id, type: \"Manifest\" }, undefined, {\n forceOpen: true,\n selectedTab: \"@manifest-editor/descriptive-properties\",\n });\n },\n },\n ]}\n />\n <SidebarContent className=\"p-4\">\n <InlineLocaleStringEditor\n as=\"h2\"\n placeholder=\"Add an exhibition title\"\n className=\"text-lg font-semibold [&>a]:underline [&>a]:hover:text-slate-400\"\n buttonClassName=\"border border-gray-300 bg-white p-2 pr-16 mb-3\"\n editButtonClassName=\"top-1 right-1 bottom-auto opacity-100 shadow-none bg-me-gray-100 text-me-primary-700 font-semibold\"\n editor={descriptive.label}\n >\n {label}\n </InlineLocaleStringEditor>\n\n <InlineLocaleStringEditor\n multiline\n enableDangerouslySetInnerHTML\n as=\"p\"\n placeholder=\"Add an exhibition summary\"\n className=\"text-sm text-slate-800 block [&>a]:underline [&>a]:hover:text-slate-400\"\n buttonClassName=\"border border-gray-300 bg-white p-2 pr-16 mb-3\"\n editButtonClassName=\"top-1 right-1 bottom-auto opacity-100 shadow-none bg-me-gray-100 text-me-primary-700 font-semibold\"\n editor={descriptive.summary}\n >\n {summary}\n </InlineLocaleStringEditor>\n\n <hr />\n {requiredStatement ? (\n <>\n <div className=\"py-2 text-black\">\n <LocaleString\n as=\"h3\"\n className=\"font-bold text-black w-full text-sm font-semibold mb-0 [&>a]:underline [&>a]:hover:text-slate-400\"\n >\n {requiredStatement.label}\n </LocaleString>\n <LocaleString\n enableDangerouslySetInnerHTML\n className=\"text-sm [&>a]:underline [&>a]:hover:text-slate-400\"\n >\n {requiredStatement.value}\n </LocaleString>\n </div>\n\n <hr />\n </>\n ) : null}\n\n {metadata && metadata.length === 0 ? (\n <div className=\"py-2 text-gray-600\">\n You can add some descriptive metadata for this manifest using the\n editing panel on the right\n </div>\n ) : null}\n\n <ManifestMetadata\n allowHtml\n classes={{\n container: \"w-full\",\n row: \"border-b border-gray-200 flex flex-col flex-wrap py-2\",\n label: \"font-bold text-black w-full text-sm font-semibold mb-1\",\n value:\n \"text-sm text-black block [&>span>a]:underline [&>span>a]:hover:text-slate-400\",\n empty: \"text-gray-600\",\n }}\n />\n </SidebarContent>\n </Sidebar>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,o)=>(o=n==null?{}:e(i(n)),s(r||!n||!n.__esModule||!a.call(n,`default`)?t(o,`default`,{value:n,enumerable:!0}):o,n));let l=require("@manifest-editor/editors"),u=require("@manifest-editor/shell"),d=require("@manifest-editor/components"),f=require("react"),p=require("react-iiif-vault"),m=require("react/jsx-runtime"),h=require("styled-components");h=c(h,1);let g=require("@iiif/parser");const _=h.default.div`
|
|
2
|
+
flex: 1 1 0;
|
|
3
|
+
min-height: 0;
|
|
4
|
+
overflow-y: auto;
|
|
5
|
+
padding-inline-start: var(--manifest-editor-layout-left-sidebar-small, 0px);
|
|
6
|
+
padding-inline-end: var(--manifest-editor-layout-right-sidebar-small, 0px);
|
|
7
|
+
|
|
8
|
+
> .grid {
|
|
9
|
+
overflow-y: visible;
|
|
10
|
+
}
|
|
11
|
+
`,v=h.default.div`
|
|
12
|
+
display: flex;
|
|
13
|
+
align-items: center;
|
|
14
|
+
justify-content: space-between;
|
|
15
|
+
gap: 0.5rem;
|
|
16
|
+
padding-block: 0.5rem;
|
|
17
|
+
padding-inline-start: calc(
|
|
18
|
+
0.5rem + var(--manifest-editor-layout-left-sidebar-small, 0px)
|
|
19
|
+
);
|
|
20
|
+
padding-inline-end: calc(
|
|
21
|
+
0.5rem + var(--manifest-editor-layout-right-sidebar-large, 0px)
|
|
22
|
+
);
|
|
23
|
+
`,y={id:`overview`,label:`Overview`,icon:(0,m.jsx)(d.ManifestIcon,{}),render:()=>(0,m.jsx)(b,{})};function b(){let{metadata:e}=(0,u.useApp)(),{edit:t,open:n}=(0,u.useLayoutActions)(),{structural:r,technical:i}=(0,u.useManifestEditor)(),{items:a}=r,{editorFeatureFlags:{manifestGridOptions:o=!1}}=(0,u.useConfig)(),s=i.id.get(),c=(0,l.useInStack)(`Canvas`)?.resource.source.id,[h,g]=(0,u.useCreator)({id:s,type:`Manifest`},`items`,`Canvas`,void 0,{isPainting:!0}),y=(0,d.useFastList)(a.get(),24),b=(0,u.useLayoutMode)(),{leftPanel:S}=(0,u.useLayoutState)(),C=S.current===`left-panel-manifest`,[{size:w},T]=(0,d.useGridOptions)(`manifest-grid-size`),[E,D]=(0,f.useState)(!1),O=(0,f.useMemo)(()=>(y||[]).map(e=>e.id).join(`|`),[y]),k=(0,p.useVaultSelector)(e=>{let t={};for(let n of y||[])t[n.id]=(0,u.getResourceTagsFromState)(e,{id:n.id,type:`Canvas`});return t},[O]),A=(0,p.useVaultSelector)(e=>{let t={};for(let n of y||[])t[n.id]=(0,u.getCanvasProgressStatusFromState)(e,{id:n.id,type:`Canvas`});return t},[O]),[j,M]=(0,f.useMemo)(()=>{let e=(y||[]).filter(e=>k[e.id]?.some(e=>e.type===u.FLAG_TAG.type&&e.id===u.FLAG_TAG.id));return E?[e,e.length]:[y||[],e.length]},[y,k,E]),N=e.id===`exhibition-slideshow-editor`?`exhibition-slideshow-slide`:e.id===`exhibition-editor`?`exhibition-slide`:null,P=N?(e,t)=>g.createFiltered(N,e,t):g.create;return!y||y.length===0?(0,m.jsx)(`div`,{children:(0,m.jsx)(d.ManifestOverviewEmptyState,{onCreate:P,canCreate:h})}):(0,m.jsxs)(m.Fragment,{children:[o?(0,m.jsxs)(v,{children:[T,(0,m.jsxs)(`div`,{className:`flex gap-2`,children:[M>0&&(0,m.jsxs)(d.ActionButton,{primary:E,"aria-pressed":E,onPress:()=>D(e=>!e),children:[(0,m.jsx)(u.ManifestEditorTagIcon,{icon:u.FLAG_TAG.icon,className:`text-xl`}),` Show only flagged`]}),(0,m.jsxs)(d.ActionButton,{isDisabled:!h,onPress:()=>P(),children:[(0,m.jsx)(d.AddIcon,{className:`text-xl`}),` Add new canvas`]}),(0,m.jsx)(d.ActionButton,{"aria-label":`Browse IIIF resources`,onPress:()=>g.creator(`@manifest-editor/iiif-browser-creator`),children:(0,m.jsx)(d.IIIFBrowserIcon,{"aria-hidden":`true`,className:`text-xl`})})]})]}):null,E&&j.length===0?(0,m.jsx)(`div`,{className:`p-6 text-sm text-gray-500`,children:`No flagged canvases`}):(0,m.jsx)(_,{children:(0,m.jsx)(d.ThumbnailGridContainer,{wide:!0,size:w,children:j.map(e=>(0,m.jsx)(d.CanvasThumbnailGridItem,{id:e.id,selected:e.id===c,active:e.id===c,icon:(0,m.jsx)(x,{tags:k[e.id]||[],status:A[e.id]||`none`}),onClick:()=>{n({id:`current-canvas`}),b==="default"&&C&&n({id:`canvas-listing`,state:{gridView:!0}}),g.edit(e)}},e.id))})})]})}function x({tags:e,status:t}){return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(u.ManifestEditorCanvasProgressOverlay,{status:t}),(0,m.jsx)(u.ManifestEditorTagOverlay,{tags:e})]})}const S=({title:e,titleId:t,...n})=>(0,m.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,width:`1em`,height:`1em`,"aria-labelledby":t,...n,children:[e?(0,m.jsx)(`title`,{id:t,children:e}):null,(0,m.jsxs)(`g`,{fill:`none`,children:[(0,m.jsx)(`path`,{d:`M0 0h24v24H0V0z`}),(0,m.jsx)(`path`,{d:`M0 0h24v24H0V0z`,opacity:`.87`})]}),(0,m.jsx)(`path`,{d:`M3 13h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7zm-4 6h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7z`,fill:`currentColor`})]}),C={id:`canvas-listing`,label:`Canvases`,icon:(0,m.jsx)(S,{}),render:(e,t,n)=>(0,m.jsx)(w,{gridView:e.gridView||localStorage.getItem(`canvas-listing-view-mode`)===`grid`,onChangeGridView:e=>{localStorage.setItem(`canvas-listing-view-mode`,e?`grid`:`list`),t.actions.change(`canvas-listing`,{gridView:e})}})};function w({gridView:e,onChangeGridView:t}){let{structural:n,technical:r}=(0,u.useManifestEditor)(),[i,a]=(0,l.useToggleList)(),{items:o}=n,s={id:r.id.get(),type:`Manifest`},[c,p]=(0,u.useCreator)(s,`items`,`Canvas`,void 0,{isPainting:!0}),h=(0,d.useFastList)(o.get(),24);return(0,f.useLayoutEffect)(()=>{let e=document.querySelector(`[data-canvas-selected="true"]`);e&&e.scrollIntoView({block:`center`})},[h,e]),(0,m.jsxs)(d.Sidebar,{children:[(0,m.jsx)(d.SidebarHeader,{title:`Canvases`,actions:[{icon:(0,m.jsx)(m.Fragment,{children:e?(0,m.jsx)(S,{width:24,height:24}):(0,m.jsx)(M,{})}),title:e?`List view`:`Grid view`,onClick:()=>{t(!e)}},{icon:(0,m.jsx)(j,{}),title:`Edit canvases`,toggled:i.items,onClick:()=>a(`items`)},{icon:(0,m.jsx)(d.IIIFBrowserIcon,{className:`text-2xl`}),title:`IIIF Browser`,onClick:()=>p.creator(`@manifest-editor/iiif-browser-creator`),disabled:!c},{icon:(0,m.jsx)(d.CreateCanvasIcon,{}),title:`Add new canvas`,onClick:()=>p.create(),disabled:!c}]}),e?(0,m.jsx)(E,{isEditing:i.items}):(0,m.jsx)(D,{isEditing:i.items})]})}function T(){let{edit:e,open:t,leftPanel:n}=(0,u.useLayoutActions)(),r=(0,u.useLayoutMode)(),i=(0,l.useInStack)(`Canvas`),{technical:a,structural:o}=(0,u.useManifestEditor)(),{items:s}=o,c={id:a.id.get(),type:`Manifest`},f=(0,d.useFastList)(s.get(),24),[p,m]=(0,u.useCreator)(c,`items`,`Canvas`,void 0,{isPainting:!0});return{canvas:i,canvases:f,items:s,canvasActions:m,open:t,edit:e,closeAfterCanvasSelect:()=>{r===`focused`&&n.close()},canCreateCanvas:p}}function E({isEditing:e}){let{canvas:t,items:n,canvasActions:r,open:i,closeAfterCanvasSelect:a}=T(),o=(0,p.useManifest)(),s=(0,u.useEditingStack)(),c=n.get(),f=t?.resource.source.id,h=c.findIndex(e=>e.id===f),g=h&&h>0?Number(h-1):0;function _(){s.close();let e=n.get();e&&e.length>0?r.edit(e[g]):r.edit(o)}return(0,m.jsx)(d.SidebarContent,{children:(0,m.jsx)(d.ThumbnailGridContainer,{children:(0,m.jsx)(l.CanvasGrid,{id:n.focusId(),list:n.get()||[],inlineHandle:!1,activeId:t?.resource.source.id,reorder:e?e=>n.reorder(e.startIndex,e.endIndex):void 0,onSelect:(e,t)=>{i({id:`current-canvas`}),r.edit(e,t),a()},createActions:(0,l.createAppActions)(n,_),inlineActions:e?O:void 0,thumbnailIcon:k})})})}function D({isEditing:e,onDelete:t}){let{canvas:n,items:r,canvasActions:i,open:a,closeAfterCanvasSelect:o}=T(),s=(0,p.useManifest)(),c=(0,u.useEditingStack)(),f=r.get()||[],h=n?.resource.source.id,g=f.findIndex(e=>e.id===h),_=g&&g>0?Number(g-1):0;function v(){c.close();let e=r.get();e&&e.length>0?i.edit(e[_]):i.edit(s)}return(0,m.jsx)(d.SidebarContent,{className:`p-3`,children:(0,m.jsx)(l.InputContainer,{$wide:!0,children:(0,m.jsx)(l.CanvasList,{id:r.focusId(),list:r.get()||[],inlineHandle:!1,activeId:n?.resource.source.id,reorder:e?e=>r.reorder(e.startIndex,e.endIndex):void 0,onSelect:(e,t)=>{a({id:`current-canvas`}),i.edit(e,t),o()},createActions:(e,n,i)=>(0,l.createAppActions)(r,()=>t?t(e.id):v())(e,n,i),inlineActions:e?O:void 0})})})}function O(e){let t=(0,g.toRef)(e);return t?.id?(0,m.jsx)(A,{canvasId:t.id}):null}function k(e){let t=(0,g.toRef)(e);if(!t?.id)return null;let n={id:t.id,type:`Canvas`};return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(u.ManifestEditorCanvasProgressOverlay,{resource:n}),(0,m.jsx)(u.ManifestEditorTagOverlay,{resource:n})]})}function A({canvasId:e}){let t={id:e,type:`Canvas`},n=(0,u.useResourceTags)(t),{toggleTag:r}=(0,u.useResourceTagActions)(t),i=n.some(e=>e.type===u.FLAG_TAG.type&&e.id===u.FLAG_TAG.id);return(0,m.jsx)(`button`,{type:`button`,"aria-label":i?`Remove flag`:`Flag canvas`,"aria-pressed":i,title:i?`Remove flag`:`Flag canvas`,className:[`relative flex aspect-square items-center justify-center rounded-sm p-0.5 text-xl hover:bg-me-primary-100`,i?`bg-red-100 text-red-700`:`text-gray-500`].join(` `),onPointerDown:e=>e.stopPropagation(),onClick:e=>{e.preventDefault(),e.stopPropagation(),r(u.FLAG_TAG)},children:(0,m.jsx)(u.ManifestEditorTagIcon,{icon:u.FLAG_TAG.icon,className:`h-6 w-6`})})}function j(e){return(0,m.jsxs)(`svg`,{className:`text-xl`,xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,viewBox:`0 0 24 24`,...e,children:[(0,m.jsx)(`path`,{d:`M0 0h24v24H0V0z`,fill:`none`}),(0,m.jsx)(`path`,{d:`M14.06 9.02l.92.92L5.92 19H5v-.92l9.06-9.06M17.66 3c-.25 0-.51.1-.7.29l-1.83 1.83 3.75 3.75 1.83-1.83c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.2-.2-.45-.29-.71-.29zm-3.6 3.19L3 17.25V21h3.75L17.81 9.94l-3.75-3.75z`,fill:`currentColor`})]})}function M(){return(0,m.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,height:`24`,viewBox:`0 0 24 24`,width:`24`,children:[(0,m.jsx)(`path`,{d:`M0 0h24v24H0V0z`,fill:`none`}),(0,m.jsx)(`path`,{d:`M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM8 20H4v-4h4v4zm0-6H4v-4h4v4zm0-6H4V4h4v4zm6 12h-4v-4h4v4zm0-6h-4v-4h4v4zm0-6h-4V4h4v4zm6 12h-4v-4h4v4zm0-6h-4v-4h4v4zm0-6h-4V4h4v4z`,fill:`currentColor`})]})}function N({title:e,titleId:t,...n}){return(0,m.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,"aria-labelledby":t,...n,children:[e?(0,m.jsx)(`title`,{id:t,children:e}):null,(0,m.jsx)(`path`,{d:`M0 0h24v24H0V0z`,fill:`none`}),(0,m.jsx)(`path`,{d:`M11 7h2v2h-2zm0 4h2v6h-2zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z`,fill:`currentColor`})]})}const P={id:`left-panel-manifest`,label:`Manifest summary`,icon:(0,m.jsx)(N,{}),render:(e,t,n)=>(0,m.jsx)(I,{})};function F(e){return(0,m.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,viewBox:`0 0 24 24`,...e,children:(0,m.jsx)(`path`,{fill:`currentColor`,d:`m15 16l-4 4h10v-4zm-2.94-8.81L3 16.25V20h3.75l9.06-9.06zm1.072-1.067l2.539-2.539l3.747 3.748L16.88 9.87z`})})}function I(){let{descriptive:e,technical:t}=(0,u.useManifestEditor)(),n=t.id.get(),r=e.label.get(),i=e.summary.get(),a=e.requiredStatement.get(),o=e.metadata.get(),s=(0,u.useEditingResource)(),c=(0,u.useEditingStack)(),{rightPanel:f}=(0,u.useLayoutState)(),{edit:h,rightPanel:g}=(0,u.useLayoutActions)(),_=f.open&&f.current===`@manifest-editor/editor`&&s?.resource.source.id===n&&s.resource.source.type===`Manifest`;return(0,m.jsxs)(d.Sidebar,{children:[(0,m.jsx)(d.SidebarHeader,{title:`Manifest summary`,actions:[{icon:_?(0,m.jsx)(d.CheckIcon,{className:`text-xl`}):(0,m.jsx)(F,{className:`text-xl`}),title:_?`Finish editing`:`Edit metadata`,toggled:_,onClick:()=>{if(_){g.close(),c.close();return}h({id:n,type:`Manifest`},void 0,{forceOpen:!0,selectedTab:`@manifest-editor/descriptive-properties`})}}]}),(0,m.jsxs)(d.SidebarContent,{className:`p-4`,children:[(0,m.jsx)(l.InlineLocaleStringEditor,{as:`h2`,placeholder:`Add an exhibition title`,className:`text-lg font-semibold [&>a]:underline [&>a]:hover:text-slate-400`,buttonClassName:`border border-gray-300 bg-white p-2 pr-16 mb-3`,editButtonClassName:`top-1 right-1 bottom-auto opacity-100 shadow-none bg-me-gray-100 text-me-primary-700 font-semibold`,editor:e.label,children:r}),(0,m.jsx)(l.InlineLocaleStringEditor,{multiline:!0,enableDangerouslySetInnerHTML:!0,as:`p`,placeholder:`Add an exhibition summary`,className:`text-sm text-slate-800 block [&>a]:underline [&>a]:hover:text-slate-400`,buttonClassName:`border border-gray-300 bg-white p-2 pr-16 mb-3`,editButtonClassName:`top-1 right-1 bottom-auto opacity-100 shadow-none bg-me-gray-100 text-me-primary-700 font-semibold`,editor:e.summary,children:i}),(0,m.jsx)(`hr`,{}),a?(0,m.jsxs)(m.Fragment,{children:[(0,m.jsxs)(`div`,{className:`py-2 text-black`,children:[(0,m.jsx)(p.LocaleString,{as:`h3`,className:`font-bold text-black w-full text-sm font-semibold mb-0 [&>a]:underline [&>a]:hover:text-slate-400`,children:a.label}),(0,m.jsx)(p.LocaleString,{enableDangerouslySetInnerHTML:!0,className:`text-sm [&>a]:underline [&>a]:hover:text-slate-400`,children:a.value})]}),(0,m.jsx)(`hr`,{})]}):null,o&&o.length===0?(0,m.jsx)(`div`,{className:`py-2 text-gray-600`,children:`You can add some descriptive metadata for this manifest using the editing panel on the right`}):null,(0,m.jsx)(p.ManifestMetadata,{allowHtml:!0,classes:{container:`w-full`,row:`border-b border-gray-200 flex flex-col flex-wrap py-2`,label:`font-bold text-black w-full text-sm font-semibold mb-1`,value:`text-sm text-black block [&>span>a]:underline [&>span>a]:hover:text-slate-400`,empty:`text-gray-600`}})]})]})}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return C}});
|
|
24
|
+
//# sourceMappingURL=components-CoVIXUVJ.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components-CoVIXUVJ.cjs","names":["ManifestIcon","useApp","useLayoutActions","useManifestEditor","useConfig","useInStack","useCreator","useFastList","useLayoutMode","useLayoutState","useGridOptions","useState","useMemo","useVaultSelector","getResourceTagsFromState","getCanvasProgressStatusFromState","FLAG_TAG","ManifestOverviewEmptyState","ActionButton","ManifestEditorTagIcon","AddIcon","IIIFBrowserIcon","ThumbnailGridContainer","CanvasThumbnailGridItem","ManifestEditorCanvasProgressOverlay","ManifestEditorTagOverlay","useManifestEditor","useToggleList","useCreator","useFastList","Sidebar","SidebarHeader","IIIFBrowserIcon","CreateCanvasIcon","useLayoutActions","useLayoutMode","useInStack","useManifest","useEditingStack","SidebarContent","ThumbnailGridContainer","CanvasGrid","createAppActions","InputContainer","CanvasList","toRef","ManifestEditorCanvasProgressOverlay","ManifestEditorTagOverlay","useResourceTags","useResourceTagActions","FLAG_TAG","ManifestEditorTagIcon","useManifestEditor","useEditingResource","useEditingStack","useLayoutState","useLayoutActions","Sidebar","SidebarHeader","CheckIcon","SidebarContent","InlineLocaleStringEditor","LocaleString","ManifestMetadata"],"sources":["../src/center-panels/manifest-overview.tsx","../src/left-panels/canvas-listing.tsx","../src/left-panels/manifest.tsx"],"sourcesContent":["import {\n ActionButton,\n AddIcon,\n CanvasThumbnailGridItem,\n IIIFBrowserIcon,\n ManifestIcon,\n ManifestOverviewEmptyState,\n ThumbnailGridContainer,\n useFastList,\n useGridOptions,\n} from \"@manifest-editor/components\";\nimport { EditableCanvasLabel, useInStack } from \"@manifest-editor/editors\";\nimport {\n FLAG_TAG,\n getCanvasProgressStatusFromState,\n getResourceTagsFromState,\n type LayoutPanel,\n ManifestEditorCanvasProgressOverlay,\n ManifestEditorTagIcon,\n ManifestEditorTagOverlay,\n useApp,\n useConfig,\n useCreator,\n useLayoutActions,\n useLayoutMode,\n useLayoutState,\n useManifestEditor,\n} from \"@manifest-editor/shell\";\nimport { useMemo, useState } from \"react\";\nimport { useVaultSelector } from \"react-iiif-vault\";\nimport styled from \"styled-components\";\n\nconst CanvasGridLayoutOffset = styled.div`\n flex: 1 1 0;\n min-height: 0;\n overflow-y: auto;\n padding-inline-start: var(--manifest-editor-layout-left-sidebar-small, 0px);\n padding-inline-end: var(--manifest-editor-layout-right-sidebar-small, 0px);\n\n > .grid {\n overflow-y: visible;\n }\n`;\n\nconst CanvasGridControls = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 0.5rem;\n padding-block: 0.5rem;\n padding-inline-start: calc(\n 0.5rem + var(--manifest-editor-layout-left-sidebar-small, 0px)\n );\n padding-inline-end: calc(\n 0.5rem + var(--manifest-editor-layout-right-sidebar-large, 0px)\n );\n`;\n\nexport const manifestOverview: LayoutPanel = {\n id: \"overview\",\n label: \"Overview\",\n icon: <ManifestIcon />,\n render: () => <ManifestOverviewCenterPanel />,\n};\n\nexport function ManifestOverviewCenterPanel() {\n const { metadata } = useApp();\n const { edit, open } = useLayoutActions();\n const { structural, technical } = useManifestEditor();\n const { items } = structural;\n const {\n editorFeatureFlags: { manifestGridOptions = false },\n } = useConfig();\n const manifestId = technical.id.get();\n const canvas = useInStack(\"Canvas\");\n const currentCanvasId = canvas?.resource.source.id;\n const manifest = { id: manifestId, type: \"Manifest\" };\n const [canCreateCanvas, canvasActions] = useCreator(manifest, \"items\", \"Canvas\", undefined, { isPainting: true });\n const canvases = useFastList(items.get(), 24);\n const layoutMode = useLayoutMode();\n const { leftPanel } = useLayoutState();\n const isEditingManifest = leftPanel.current === \"left-panel-manifest\";\n const [{ size }, gridOptions] = useGridOptions(\"manifest-grid-size\");\n const [showOnlyFlagged, setShowOnlyFlagged] = useState(false);\n const canvasIds = useMemo(() => (canvases || []).map((item) => item.id).join(\"|\"), [canvases]);\n const canvasTags = useVaultSelector(\n (state) => {\n const tags: Record<string, ReturnType<typeof getResourceTagsFromState>> = {};\n for (const item of canvases || []) {\n tags[item.id] = getResourceTagsFromState(state, {\n id: item.id,\n type: \"Canvas\",\n });\n }\n return tags;\n },\n [canvasIds],\n );\n const canvasProgressStatuses = useVaultSelector(\n (state) => {\n const statuses: Record<string, ReturnType<typeof getCanvasProgressStatusFromState>> = {};\n for (const item of canvases || []) {\n statuses[item.id] = getCanvasProgressStatusFromState(state, {\n id: item.id,\n type: \"Canvas\",\n });\n }\n return statuses;\n },\n [canvasIds],\n );\n const [visibleCanvases, numberOfFlaggedCanvases] = useMemo(() => {\n const flaggedCanvases = (canvases || []).filter((item) =>\n canvasTags[item.id]?.some((tag) => tag.type === FLAG_TAG.type && tag.id === FLAG_TAG.id),\n );\n\n if (!showOnlyFlagged) {\n return [canvases || [], flaggedCanvases.length] as const;\n }\n return [flaggedCanvases, flaggedCanvases.length] as const;\n }, [canvases, canvasTags, showOnlyFlagged]);\n\n const exhibitionCreatorFilter =\n metadata.id === \"exhibition-slideshow-editor\"\n ? \"exhibition-slideshow-slide\"\n : metadata.id === \"exhibition-editor\"\n ? \"exhibition-slide\"\n : null;\n const createCanvas = exhibitionCreatorFilter\n ? (index: any, data: any) => {\n return canvasActions.createFiltered(exhibitionCreatorFilter, index, data);\n }\n : canvasActions.create;\n\n if (!canvases || canvases.length === 0) {\n return (\n <div>\n <ManifestOverviewEmptyState onCreate={createCanvas} canCreate={canCreateCanvas} />\n </div>\n );\n }\n return (\n <>\n {manifestGridOptions ? (\n <CanvasGridControls>\n {gridOptions}\n <div className=\"flex gap-2\">\n {numberOfFlaggedCanvases > 0 && (\n <ActionButton\n primary={showOnlyFlagged}\n aria-pressed={showOnlyFlagged}\n onPress={() => setShowOnlyFlagged((showing) => !showing)}\n >\n <ManifestEditorTagIcon icon={FLAG_TAG.icon} className=\"text-xl\" /> Show only flagged\n </ActionButton>\n )}\n <ActionButton isDisabled={!canCreateCanvas} onPress={() => createCanvas()}>\n <AddIcon className=\"text-xl\" /> Add new canvas\n </ActionButton>\n <ActionButton aria-label=\"Browse IIIF resources\" onPress={() => canvasActions.creator(\"@manifest-editor/iiif-browser-creator\")}>\n <IIIFBrowserIcon aria-hidden=\"true\" className=\"text-xl\" />\n </ActionButton>\n </div>\n </CanvasGridControls>\n ) : null}\n {showOnlyFlagged && visibleCanvases.length === 0 ? (\n <div className=\"p-6 text-sm text-gray-500\">No flagged canvases</div>\n ) : (\n <CanvasGridLayoutOffset>\n <ThumbnailGridContainer wide size={size}>\n {visibleCanvases.map((item) => (\n <CanvasThumbnailGridItem\n id={item.id}\n key={item.id}\n selected={item.id === currentCanvasId}\n active={item.id === currentCanvasId}\n icon={\n <CanvasThumbnailFeedback\n tags={canvasTags[item.id] || []}\n status={canvasProgressStatuses[item.id] || \"none\"}\n />\n }\n onClick={() => {\n open({ id: \"current-canvas\" });\n if (layoutMode === \"default\" && isEditingManifest) {\n open({ id: \"canvas-listing\", state: { gridView: true } });\n }\n canvasActions.edit(item);\n }}\n />\n ))}\n </ThumbnailGridContainer>\n </CanvasGridLayoutOffset>\n )}\n </>\n );\n}\n\nfunction CanvasThumbnailFeedback({\n tags,\n status,\n}: {\n tags: ReturnType<typeof getResourceTagsFromState>;\n status: ReturnType<typeof getCanvasProgressStatusFromState>;\n}) {\n return (\n <>\n <ManifestEditorCanvasProgressOverlay status={status} />\n <ManifestEditorTagOverlay tags={tags} />\n </>\n );\n}\n","import {\n CanvasThumbnailGridItem,\n CreateCanvasIcon,\n IIIFBrowserIcon,\n Sidebar,\n SidebarContent,\n SidebarHeader,\n ThumbnailGridContainer,\n useFastList,\n} from \"@manifest-editor/components\";\nimport { manifestBrowserCreator } from \"@manifest-editor/creators\";\nimport { toRef } from \"@iiif/parser\";\nimport {\n CanvasGrid,\n CanvasList,\n createAppActions,\n InputContainer,\n useInStack,\n useToggleList,\n} from \"@manifest-editor/editors\";\nimport {\n FLAG_TAG,\n type LayoutPanel,\n ManifestEditorCanvasProgressOverlay,\n ManifestEditorTagIcon,\n ManifestEditorTagOverlay,\n useCreator,\n useEditingStack,\n useLayoutActions,\n useLayoutMode,\n useManifestEditor,\n useResourceTagActions,\n useResourceTags,\n} from \"@manifest-editor/shell\";\nimport { type SVGProps, useEffect, useLayoutEffect } from \"react\";\nimport { useCollection, useManifest } from \"react-iiif-vault\";\n\nexport const CanvasListingIcon = ({\n title,\n titleId,\n ...props\n}: SVGProps<SVGSVGElement> & { title?: string; titleId?: string }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n width=\"1em\"\n height=\"1em\"\n aria-labelledby={titleId}\n {...props}\n >\n {title ? <title id={titleId}>{title}</title> : null}\n\n <g fill=\"none\">\n <path d=\"M0 0h24v24H0V0z\" />\n <path d=\"M0 0h24v24H0V0z\" opacity=\".87\" />\n </g>\n <path\n d=\"M3 13h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7zm-4 6h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport const canvasListing: LayoutPanel = {\n id: \"canvas-listing\",\n label: \"Canvases\",\n icon: <CanvasListingIcon />,\n render: (state, ctx, app) => {\n return (\n <CanvasListing\n gridView={\n state.gridView ||\n localStorage.getItem(\"canvas-listing-view-mode\") === \"grid\"\n }\n onChangeGridView={(gridView) => {\n localStorage.setItem(\n \"canvas-listing-view-mode\",\n gridView ? \"grid\" : \"list\",\n );\n ctx.actions.change(\"canvas-listing\", { gridView });\n }}\n />\n );\n },\n};\n\nexport function CanvasListing({\n gridView,\n onChangeGridView,\n}: {\n gridView: boolean;\n onChangeGridView: (gridView: boolean) => void;\n}) {\n const { structural, technical } = useManifestEditor();\n const [toggled, toggle] = useToggleList();\n const { items } = structural;\n const manifestId = technical.id.get();\n const manifest = { id: manifestId, type: \"Manifest\" };\n const [canCreateCanvas, canvasActions] = useCreator(\n manifest,\n \"items\",\n \"Canvas\",\n undefined,\n { isPainting: true },\n );\n const canvases = useFastList(items.get(), 24);\n\n useLayoutEffect(() => {\n const selected = document.querySelector('[data-canvas-selected=\"true\"]');\n if (selected) {\n selected.scrollIntoView({ block: \"center\" });\n }\n }, [canvases, gridView]);\n\n return (\n <Sidebar>\n <SidebarHeader\n title=\"Canvases\"\n actions={[\n {\n icon: (\n <>\n {gridView ? (\n <CanvasListingIcon width={24} height={24} />\n ) : (\n <CanvasThumbnailsIcon />\n )}\n </>\n ),\n title: gridView ? \"List view\" : \"Grid view\",\n onClick: () => {\n onChangeGridView(!gridView);\n },\n },\n {\n icon: <ListEditIcon />,\n title: \"Edit canvases\",\n toggled: toggled.items,\n onClick: () => toggle(\"items\"),\n },\n {\n icon: <IIIFBrowserIcon className=\"text-2xl\" />,\n title: \"IIIF Browser\",\n onClick: () =>\n canvasActions.creator(\"@manifest-editor/iiif-browser-creator\"),\n disabled: !canCreateCanvas,\n },\n {\n icon: <CreateCanvasIcon />,\n title: \"Add new canvas\",\n onClick: () => canvasActions.create(),\n disabled: !canCreateCanvas,\n },\n ]}\n />\n {gridView ? (\n <CanvasGridView isEditing={toggled.items} />\n ) : (\n <CanvasListView isEditing={toggled.items} />\n )}\n </Sidebar>\n );\n}\n\nexport function useEditCanvasItems() {\n const { edit, open, leftPanel } = useLayoutActions();\n const layoutMode = useLayoutMode();\n const canvas = useInStack(\"Canvas\");\n const { technical, structural } = useManifestEditor();\n const { items } = structural;\n const manifestId = technical.id.get();\n const manifest = { id: manifestId, type: \"Manifest\" };\n const canvases = useFastList(items.get(), 24);\n const [canCreateCanvas, canvasActions] = useCreator(\n manifest,\n \"items\",\n \"Canvas\",\n undefined,\n { isPainting: true },\n );\n\n const closeAfterCanvasSelect = () => {\n if (layoutMode === \"focused\") {\n leftPanel.close();\n }\n };\n\n return {\n canvas,\n canvases,\n items,\n canvasActions,\n open,\n edit,\n closeAfterCanvasSelect,\n canCreateCanvas,\n };\n}\n\nexport function CanvasGridView({ isEditing }: { isEditing: boolean }) {\n const { canvas, items, canvasActions, open, closeAfterCanvasSelect } =\n useEditCanvasItems();\n const manifest = useManifest();\n const editingStack = useEditingStack();\n const canvases = items.get();\n const canvasId = canvas?.resource.source.id;\n\n // Find current canvas to get its index before deleting it\n const canvasIndex = canvases.findIndex((canv) => canv.id === canvasId);\n const prevCanvasIndex: number =\n canvasIndex && canvasIndex > 0 ? Number(canvasIndex - 1) : 0;\n\n function onDeleteCanvas() {\n editingStack.close(); // close the deleted canvas\n const newCanvases = items.get(); // refresh canvases\n\n if (newCanvases && newCanvases.length > 0) {\n canvasActions.edit(newCanvases[prevCanvasIndex]);\n } else {\n canvasActions.edit(manifest);\n }\n }\n\n return (\n <SidebarContent>\n <ThumbnailGridContainer>\n <CanvasGrid\n id={items.focusId()}\n list={items.get() || []}\n inlineHandle={false}\n activeId={canvas?.resource.source.id}\n reorder={\n isEditing\n ? (t: any) => items.reorder(t.startIndex, t.endIndex)\n : undefined\n }\n onSelect={(item: any, idx: number) => {\n open({ id: \"current-canvas\" });\n canvasActions.edit(item, idx);\n closeAfterCanvasSelect();\n }}\n createActions={createAppActions(items, onDeleteCanvas)}\n inlineActions={isEditing ? renderCanvasFlagInlineAction : undefined}\n thumbnailIcon={renderCanvasTagThumbnailOverlay}\n />\n </ThumbnailGridContainer>\n </SidebarContent>\n );\n}\n\nexport function CanvasListView({\n isEditing,\n onDelete,\n}: {\n isEditing: boolean;\n onDelete?: (deletedId: string) => void;\n}) {\n const { canvas, items, canvasActions, open, closeAfterCanvasSelect } =\n useEditCanvasItems();\n const manifest = useManifest();\n const editingStack = useEditingStack();\n const canvases = items.get() || [];\n const canvasId = canvas?.resource.source.id;\n\n // Find current canvas to get its index before deleting it\n const canvasIndex = canvases.findIndex((canv) => canv.id === canvasId);\n const prevCanvasIndex: number =\n canvasIndex && canvasIndex > 0 ? Number(canvasIndex - 1) : 0;\n\n function onDeleteCanvas() {\n editingStack.close(); // close the deleted canvas\n const newCanvases = items.get(); // refresh canvases\n\n if (newCanvases && newCanvases.length > 0) {\n canvasActions.edit(newCanvases[prevCanvasIndex]);\n } else {\n canvasActions.edit(manifest);\n }\n }\n\n return (\n <SidebarContent className=\"p-3\">\n <InputContainer $wide>\n <CanvasList\n id={items.focusId()}\n list={items.get() || []}\n inlineHandle={false}\n activeId={canvas?.resource.source.id}\n reorder={\n isEditing\n ? (t) => items.reorder(t.startIndex, t.endIndex)\n : undefined\n }\n onSelect={(item, idx) => {\n open({ id: \"current-canvas\" });\n canvasActions.edit(item, idx);\n closeAfterCanvasSelect();\n }}\n createActions={(ref, index, item) =>\n createAppActions(items, () =>\n onDelete ? onDelete(ref.id) : onDeleteCanvas(),\n )(ref, index, item)\n }\n inlineActions={isEditing ? renderCanvasFlagInlineAction : undefined}\n />\n </InputContainer>\n </SidebarContent>\n );\n}\n\nfunction renderCanvasFlagInlineAction(ref: any) {\n const canvas = toRef(ref);\n if (!canvas?.id) {\n return null;\n }\n\n return <CanvasFlagInlineAction canvasId={canvas.id} />;\n}\n\nfunction renderCanvasTagThumbnailOverlay(ref: any) {\n const canvas = toRef(ref);\n if (!canvas?.id) {\n return null;\n }\n\n const resource = { id: canvas.id, type: \"Canvas\" };\n\n return (\n <>\n <ManifestEditorCanvasProgressOverlay resource={resource} />\n <ManifestEditorTagOverlay resource={resource} />\n </>\n );\n}\n\nfunction CanvasFlagInlineAction({ canvasId }: { canvasId: string }) {\n const resource = { id: canvasId, type: \"Canvas\" };\n const tags = useResourceTags(resource);\n const { toggleTag } = useResourceTagActions(resource);\n const flagged = tags.some(\n (tag) => tag.type === FLAG_TAG.type && tag.id === FLAG_TAG.id,\n );\n\n return (\n <button\n type=\"button\"\n aria-label={flagged ? \"Remove flag\" : \"Flag canvas\"}\n aria-pressed={flagged}\n title={flagged ? \"Remove flag\" : \"Flag canvas\"}\n className={[\n \"relative flex aspect-square items-center justify-center rounded-sm p-0.5 text-xl hover:bg-me-primary-100\",\n flagged ? \"bg-red-100 text-red-700\" : \"text-gray-500\",\n ].join(\" \")}\n onPointerDown={(e) => e.stopPropagation()}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n toggleTag(FLAG_TAG);\n }}\n >\n <ManifestEditorTagIcon icon={FLAG_TAG.icon} className=\"h-6 w-6\" />\n </button>\n );\n}\n\nexport function ListEditIcon(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg\n className=\"text-xl\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 24 24\"\n {...props}\n >\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\n <path\n d=\"M14.06 9.02l.92.92L5.92 19H5v-.92l9.06-9.06M17.66 3c-.25 0-.51.1-.7.29l-1.83 1.83 3.75 3.75 1.83-1.83c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.2-.2-.45-.29-.71-.29zm-3.6 3.19L3 17.25V21h3.75L17.81 9.94l-3.75-3.75z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\n\nexport function CanvasThumbnailsIcon() {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n width=\"24\"\n >\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\n <path\n d=\"M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM8 20H4v-4h4v4zm0-6H4v-4h4v4zm0-6H4V4h4v4zm6 12h-4v-4h4v4zm0-6h-4v-4h4v4zm0-6h-4V4h4v4zm6 12h-4v-4h4v4zm0-6h-4v-4h4v4zm0-6h-4V4h4v4z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\n","import {\n CheckIcon,\n Sidebar,\n SidebarContent,\n SidebarHeader,\n} from \"@manifest-editor/components\";\nimport { InlineLocaleStringEditor } from \"@manifest-editor/editors\";\nimport {\n type LayoutPanel,\n useEditingResource,\n useEditingStack,\n useLayoutActions,\n useLayoutState,\n useManifestEditor,\n} from \"@manifest-editor/shell\";\nimport type { SVGProps } from \"react\";\nimport { LocaleString, ManifestMetadata } from \"react-iiif-vault\";\n\nexport function ManifestIcon({\n title,\n titleId,\n ...props\n}: SVGProps<SVGSVGElement> & { title?: string; titleId?: string }) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"1em\"\n height=\"1em\"\n aria-labelledby={titleId}\n {...props}\n >\n {title ? <title id={titleId}>{title}</title> : null}\n\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\n <path\n d=\"M11 7h2v2h-2zm0 4h2v6h-2zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\n\nexport const manifestPanel: LayoutPanel = {\n id: \"left-panel-manifest\",\n label: \"Manifest summary\",\n icon: <ManifestIcon />,\n render: (state, ctx, app) => {\n return <ManifestPanel />;\n },\n};\n\nfunction EditManifestMetadataIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 24 24\"\n {...props}\n >\n {/* Icon from Google Material Icons by Material Design Authors - https://github.com/material-icons/material-icons/blob/master/LICENSE */}\n <path\n fill=\"currentColor\"\n d=\"m15 16l-4 4h10v-4zm-2.94-8.81L3 16.25V20h3.75l9.06-9.06zm1.072-1.067l2.539-2.539l3.747 3.748L16.88 9.87z\"\n />\n </svg>\n );\n}\n\nexport function ManifestPanel() {\n const { descriptive, technical } = useManifestEditor();\n const id = technical.id.get();\n const label = descriptive.label.get();\n const summary = descriptive.summary.get();\n const requiredStatement = descriptive.requiredStatement.get();\n const metadata = descriptive.metadata.get();\n const editingResource = useEditingResource();\n const editingStack = useEditingStack();\n const { rightPanel } = useLayoutState();\n const { edit, rightPanel: rightPanelActions } = useLayoutActions();\n const isEditingManifest =\n rightPanel.open &&\n rightPanel.current === \"@manifest-editor/editor\" &&\n editingResource?.resource.source.id === id &&\n editingResource.resource.source.type === \"Manifest\";\n\n return (\n <Sidebar>\n <SidebarHeader\n title=\"Manifest summary\"\n actions={[\n {\n icon: isEditingManifest ? (\n <CheckIcon className=\"text-xl\" />\n ) : (\n <EditManifestMetadataIcon className=\"text-xl\" />\n ),\n title: isEditingManifest ? \"Finish editing\" : \"Edit metadata\",\n toggled: isEditingManifest,\n onClick: () => {\n if (isEditingManifest) {\n rightPanelActions.close();\n editingStack.close();\n return;\n }\n\n edit({ id, type: \"Manifest\" }, undefined, {\n forceOpen: true,\n selectedTab: \"@manifest-editor/descriptive-properties\",\n });\n },\n },\n ]}\n />\n <SidebarContent className=\"p-4\">\n <InlineLocaleStringEditor\n as=\"h2\"\n placeholder=\"Add an exhibition title\"\n className=\"text-lg font-semibold [&>a]:underline [&>a]:hover:text-slate-400\"\n buttonClassName=\"border border-gray-300 bg-white p-2 pr-16 mb-3\"\n editButtonClassName=\"top-1 right-1 bottom-auto opacity-100 shadow-none bg-me-gray-100 text-me-primary-700 font-semibold\"\n editor={descriptive.label}\n >\n {label}\n </InlineLocaleStringEditor>\n\n <InlineLocaleStringEditor\n multiline\n enableDangerouslySetInnerHTML\n as=\"p\"\n placeholder=\"Add an exhibition summary\"\n className=\"text-sm text-slate-800 block [&>a]:underline [&>a]:hover:text-slate-400\"\n buttonClassName=\"border border-gray-300 bg-white p-2 pr-16 mb-3\"\n editButtonClassName=\"top-1 right-1 bottom-auto opacity-100 shadow-none bg-me-gray-100 text-me-primary-700 font-semibold\"\n editor={descriptive.summary}\n >\n {summary}\n </InlineLocaleStringEditor>\n\n <hr />\n {requiredStatement ? (\n <>\n <div className=\"py-2 text-black\">\n <LocaleString\n as=\"h3\"\n className=\"font-bold text-black w-full text-sm font-semibold mb-0 [&>a]:underline [&>a]:hover:text-slate-400\"\n >\n {requiredStatement.label}\n </LocaleString>\n <LocaleString\n enableDangerouslySetInnerHTML\n className=\"text-sm [&>a]:underline [&>a]:hover:text-slate-400\"\n >\n {requiredStatement.value}\n </LocaleString>\n </div>\n\n <hr />\n </>\n ) : null}\n\n {metadata && metadata.length === 0 ? (\n <div className=\"py-2 text-gray-600\">\n You can add some descriptive metadata for this manifest using the\n editing panel on the right\n </div>\n ) : null}\n\n <ManifestMetadata\n allowHtml\n classes={{\n container: \"w-full\",\n row: \"border-b border-gray-200 flex flex-col flex-wrap py-2\",\n label: \"font-bold text-black w-full text-sm font-semibold mb-1\",\n value:\n \"text-sm text-black block [&>span>a]:underline [&>span>a]:hover:text-slate-400\",\n empty: \"text-gray-600\",\n }}\n />\n </SidebarContent>\n </Sidebar>\n );\n}\n"],"mappings":"y3BAgCA,MAAM,EAAyB,EAAA,QAAO,GAAG;;;;;;;;;;EAYnC,EAAqB,EAAA,QAAO,GAAG;;;;;;;;;;;;EAcxB,EAAgC,CAC3C,GAAI,WACJ,MAAO,WACP,MAAM,EAAA,EAAA,IAAA,CAACA,EAAAA,aAAD,CAAe,CAAA,EACrB,YAAc,EAAA,EAAA,IAAA,CAAC,EAAD,CAA8B,CAAA,CAC9C,EAEA,SAAgB,GAA8B,CAC5C,GAAM,CAAE,aAAA,EAAaC,EAAAA,OAAAA,CAAO,EACtB,CAAE,OAAM,SAAA,EAASC,EAAAA,iBAAAA,CAAiB,EAClC,CAAE,aAAY,cAAA,EAAcC,EAAAA,kBAAAA,CAAkB,EAC9C,CAAE,SAAU,EACZ,CACJ,mBAAoB,CAAE,sBAAsB,MAAA,EAC1CC,EAAAA,UAAAA,CAAU,EACR,EAAa,EAAU,GAAG,IAAI,EAE9B,GAAA,EADSC,EAAAA,WAAAA,CAAW,QACG,CAAC,EAAE,SAAS,OAAO,GAE1C,CAAC,EAAiB,IAAA,EAAiBC,EAAAA,WAAAA,CAAW,CADjC,GAAI,EAAY,KAAM,UACkB,EAAG,QAAS,SAAU,IAAA,GAAW,CAAE,WAAY,EAAK,CAAC,EAC1G,GAAA,EAAWC,EAAAA,YAAAA,CAAY,EAAM,IAAI,EAAG,EAAE,EACtC,GAAA,EAAaC,EAAAA,cAAAA,CAAc,EAC3B,CAAE,cAAA,EAAcC,EAAAA,eAAAA,CAAe,EAC/B,EAAoB,EAAU,UAAY,sBAC1C,CAAC,CAAE,QAAQ,IAAA,EAAeC,EAAAA,eAAAA,CAAe,oBAAoB,EAC7D,CAAC,EAAiB,IAAA,EAAsBC,EAAAA,SAAAA,CAAS,EAAK,EACtD,GAAA,EAAYC,EAAAA,QAAAA,MAAe,GAAY,CAAC,EAAA,CAAG,IAAK,GAAS,EAAK,EAAE,CAAC,CAAC,KAAK,GAAG,EAAG,CAAC,CAAQ,CAAC,EACvF,GAAA,EAAaC,EAAAA,iBAAAA,CAChB,GAAU,CACT,IAAM,EAAoE,CAAC,EAC3E,IAAK,IAAM,KAAQ,GAAY,CAAC,EAC9B,EAAK,EAAK,KAAA,EAAMC,EAAAA,yBAAAA,CAAyB,EAAO,CAC9C,GAAI,EAAK,GACT,KAAM,QACR,CAAC,EAEH,OAAO,CACT,EACA,CAAC,CAAS,CACZ,EACM,GAAA,EAAyBD,EAAAA,iBAAAA,CAC5B,GAAU,CACT,IAAM,EAAgF,CAAC,EACvF,IAAK,IAAM,KAAQ,GAAY,CAAC,EAC9B,EAAS,EAAK,KAAA,EAAME,EAAAA,iCAAAA,CAAiC,EAAO,CAC1D,GAAI,EAAK,GACT,KAAM,QACR,CAAC,EAEH,OAAO,CACT,EACA,CAAC,CAAS,CACZ,EACM,CAAC,EAAiB,IAAA,EAA2BH,EAAAA,QAAAA,KAAc,CAC/D,IAAM,GAAmB,GAAY,CAAC,EAAA,CAAG,OAAQ,GAC/C,EAAW,EAAK,GAAG,EAAE,KAAM,GAAQ,EAAI,OAASI,EAAAA,SAAS,MAAQ,EAAI,KAAOA,EAAAA,SAAS,EAAE,CACzF,EAKA,OAHK,EAGE,CAAC,EAAiB,EAAgB,MAAM,EAFtC,CAAC,GAAY,CAAC,EAAG,EAAgB,MAAM,CAGlD,EAAG,CAAC,EAAU,EAAY,CAAe,CAAC,EAEpC,EACJ,EAAS,KAAO,8BACZ,6BACA,EAAS,KAAO,oBACd,mBACA,KACF,EAAe,GAChB,EAAY,IACJ,EAAc,eAAe,EAAyB,EAAO,CAAI,EAE1E,EAAc,OASlB,MAPI,CAAC,GAAY,EAAS,SAAW,GAEjC,EAAA,EAAA,IAAA,CAAC,MAAD,CAAA,UACE,EAAA,EAAA,IAAA,CAACC,EAAAA,2BAAD,CAA4B,SAAU,EAAc,UAAW,CAAkB,CAAA,CAC9E,CAAA,GAIP,EAAA,EAAA,KAAA,CAAA,EAAA,SAAA,CAAA,SAAA,CACG,GACC,EAAA,EAAA,KAAA,CAAC,EAAD,CAAA,SAAA,CACG,GACD,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,aAAf,SAAA,CACG,EAA0B,IACzB,EAAA,EAAA,KAAA,CAACC,EAAAA,aAAD,CACE,QAAS,EACT,eAAc,EACd,YAAe,EAAoB,GAAY,CAAC,CAAO,EAHzD,SAAA,EAKE,EAAA,EAAA,IAAA,CAACC,EAAAA,sBAAD,CAAuB,KAAMH,EAAAA,SAAS,KAAM,UAAU,SAAW,CAAA,EAAC,oBACtD,KAEhB,EAAA,EAAA,KAAA,CAACE,EAAAA,aAAD,CAAc,WAAY,CAAC,EAAiB,YAAe,EAAa,EAAxE,SAAA,EACE,EAAA,EAAA,IAAA,CAACE,EAAAA,QAAD,CAAS,UAAU,SAAW,CAAA,EAAC,iBACnB,KACd,EAAA,EAAA,IAAA,CAACF,EAAAA,aAAD,CAAc,aAAW,wBAAwB,YAAe,EAAc,QAAQ,uCAAuC,EAC3H,UAAA,EAAA,EAAA,IAAA,CAACG,EAAAA,gBAAD,CAAiB,cAAY,OAAO,UAAU,SAAW,CAAA,CAC7C,CAAA,CACX,CACa,CAAA,CAAA,CAAA,CAAA,EAClB,KACH,GAAmB,EAAgB,SAAW,GAC7C,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,4BAA4B,SAAA,qBAAwB,CAAA,GAEnE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAA,UACE,EAAA,EAAA,IAAA,CAACC,EAAAA,uBAAD,CAAwB,KAAA,GAAW,OAChC,SAAA,EAAgB,IAAK,IACpB,EAAA,EAAA,IAAA,CAACC,EAAAA,wBAAD,CACE,GAAI,EAAK,GAET,SAAU,EAAK,KAAO,EACtB,OAAQ,EAAK,KAAO,EACpB,MACE,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,KAAM,EAAW,EAAK,KAAO,CAAC,EAC9B,OAAQ,EAAuB,EAAK,KAAO,MAC5C,CAAA,EAEH,YAAe,CACb,EAAK,CAAE,GAAI,gBAAiB,CAAC,EACzB,IAAe,WAAa,GAC9B,EAAK,CAAE,GAAI,iBAAkB,MAAO,CAAE,SAAU,EAAK,CAAE,CAAC,EAE1D,EAAc,KAAK,CAAI,CACzB,CACD,EAhBM,EAAK,EAgBX,CACF,CACqB,CAAA,CACF,CAAA,CAE1B,CAAA,CAAA,CAEN,CAEA,SAAS,EAAwB,CAC/B,OACA,UAIC,CACD,OACE,EAAA,EAAA,KAAA,CAAA,EAAA,SAAA,CAAA,SAAA,EACE,EAAA,EAAA,IAAA,CAACC,EAAAA,oCAAD,CAA6C,QAAS,CAAA,GACtD,EAAA,EAAA,IAAA,CAACC,EAAAA,yBAAD,CAAgC,MAAO,CAAA,CACvC,CAAA,CAAA,CAEN,CC9KA,MAAa,GAAqB,CAChC,QACA,UACA,GAAG,MAEH,EAAA,EAAA,KAAA,CAAC,MAAD,CACE,MAAM,6BACN,QAAQ,YACR,MAAM,MACN,OAAO,MACP,kBAAiB,EACjB,GAAI,EANN,SAAA,CAQG,GAAQ,EAAA,EAAA,IAAA,CAAC,QAAD,CAAO,GAAI,EAAU,SAAA,CAAa,CAAA,EAAI,MAE/C,EAAA,EAAA,KAAA,CAAC,IAAD,CAAG,KAAK,OAAR,SAAA,EACE,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,EAAE,iBAAmB,CAAA,GAC3B,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,EAAE,kBAAkB,QAAQ,KAAO,CAAA,CACxC,KACH,EAAA,EAAA,IAAA,CAAC,OAAD,CACE,EAAE,+KACF,KAAK,cACN,CAAA,CACE,IAGM,EAA6B,CACxC,GAAI,iBACJ,MAAO,WACP,MAAM,EAAA,EAAA,IAAA,CAAC,EAAD,CAAoB,CAAA,EAC1B,QAAS,EAAO,EAAK,KAEjB,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,SACE,EAAM,UACN,aAAa,QAAQ,0BAA0B,IAAM,OAEvD,iBAAmB,GAAa,CAC9B,aAAa,QACX,2BACA,EAAW,OAAS,MACtB,EACA,EAAI,QAAQ,OAAO,iBAAkB,CAAE,UAAS,CAAC,CACnD,CACD,CAAA,CAGP,EAEA,SAAgB,EAAc,CAC5B,WACA,oBAIC,CACD,GAAM,CAAE,aAAY,cAAA,EAAcC,EAAAA,kBAAAA,CAAkB,EAC9C,CAAC,EAAS,IAAA,EAAUC,EAAAA,cAAAA,CAAc,EAClC,CAAE,SAAU,EAEZ,EAAW,CAAE,GADA,EAAU,GAAG,IACA,EAAG,KAAM,UAAW,EAC9C,CAAC,EAAiB,IAAA,EAAiBC,EAAAA,WAAAA,CACvC,EACA,QACA,SACA,IAAA,GACA,CAAE,WAAY,EAAK,CACrB,EACM,GAAA,EAAWC,EAAAA,YAAAA,CAAY,EAAM,IAAI,EAAG,EAAE,EAS5C,OAPA,EAAA,EAAA,gBAAA,KAAsB,CACpB,IAAM,EAAW,SAAS,cAAc,+BAA+B,EACnE,GACF,EAAS,eAAe,CAAE,MAAO,QAAS,CAAC,CAE/C,EAAG,CAAC,EAAU,CAAQ,CAAC,GAGrB,EAAA,EAAA,KAAA,CAACC,EAAAA,QAAD,CAAA,SAAA,EACE,EAAA,EAAA,IAAA,CAACC,EAAAA,cAAD,CACE,MAAM,WACN,QAAS,CACP,CACE,MACE,EAAA,EAAA,IAAA,CAAA,EAAA,SAAA,CAAA,SACG,GACC,EAAA,EAAA,IAAA,CAAC,EAAD,CAAmB,MAAO,GAAI,OAAQ,EAAK,CAAA,GAE3C,EAAA,EAAA,IAAA,CAAC,EAAD,CAAuB,CAAA,CAEzB,CAAA,EAEJ,MAAO,EAAW,YAAc,YAChC,YAAe,CACb,EAAiB,CAAC,CAAQ,CAC5B,CACF,EACA,CACE,MAAM,EAAA,EAAA,IAAA,CAAC,EAAD,CAAe,CAAA,EACrB,MAAO,gBACP,QAAS,EAAQ,MACjB,YAAe,EAAO,OAAO,CAC/B,EACA,CACE,MAAM,EAAA,EAAA,IAAA,CAACC,EAAAA,gBAAD,CAAiB,UAAU,UAAY,CAAA,EAC7C,MAAO,eACP,YACE,EAAc,QAAQ,uCAAuC,EAC/D,SAAU,CAAC,CACb,EACA,CACE,MAAM,EAAA,EAAA,IAAA,CAACC,EAAAA,iBAAD,CAAmB,CAAA,EACzB,MAAO,iBACP,YAAe,EAAc,OAAO,EACpC,SAAU,CAAC,CACb,CACF,CACD,CAAA,EACA,GACC,EAAA,EAAA,IAAA,CAAC,EAAD,CAAgB,UAAW,EAAQ,KAAQ,CAAA,GAE3C,EAAA,EAAA,IAAA,CAAC,EAAD,CAAgB,UAAW,EAAQ,KAAQ,CAAA,CAEtC,CAAA,CAAA,CAEb,CAEA,SAAgB,GAAqB,CACnC,GAAM,CAAE,OAAM,OAAM,cAAA,EAAcC,EAAAA,iBAAAA,CAAiB,EAC7C,GAAA,EAAaC,EAAAA,cAAAA,CAAc,EAC3B,GAAA,EAASC,EAAAA,WAAAA,CAAW,QAAQ,EAC5B,CAAE,YAAW,eAAA,EAAeV,EAAAA,kBAAAA,CAAkB,EAC9C,CAAE,SAAU,EAEZ,EAAW,CAAE,GADA,EAAU,GAAG,IACA,EAAG,KAAM,UAAW,EAC9C,GAAA,EAAWG,EAAAA,YAAAA,CAAY,EAAM,IAAI,EAAG,EAAE,EACtC,CAAC,EAAiB,IAAA,EAAiBD,EAAAA,WAAAA,CACvC,EACA,QACA,SACA,IAAA,GACA,CAAE,WAAY,EAAK,CACrB,EAQA,MAAO,CACL,SACA,WACA,QACA,gBACA,OACA,OACA,2BAbmC,CAC/B,IAAe,WACjB,EAAU,MAAM,CAEpB,EAUE,iBACF,CACF,CAEA,SAAgB,EAAe,CAAE,aAAqC,CACpE,GAAM,CAAE,SAAQ,QAAO,gBAAe,OAAM,0BAC1C,EAAmB,EACf,GAAA,EAAWS,EAAAA,YAAAA,CAAY,EACvB,GAAA,EAAeC,EAAAA,gBAAAA,CAAgB,EAC/B,EAAW,EAAM,IAAI,EACrB,EAAW,GAAQ,SAAS,OAAO,GAGnC,EAAc,EAAS,UAAW,GAAS,EAAK,KAAO,CAAQ,EAC/D,EACJ,GAAe,EAAc,EAAI,OAAO,EAAc,CAAC,EAAI,EAE7D,SAAS,GAAiB,CACxB,EAAa,MAAM,EACnB,IAAM,EAAc,EAAM,IAAI,EAE1B,GAAe,EAAY,OAAS,EACtC,EAAc,KAAK,EAAY,EAAgB,EAE/C,EAAc,KAAK,CAAQ,CAE/B,CAEA,OACE,EAAA,EAAA,IAAA,CAACC,EAAAA,eAAD,CAAA,UACE,EAAA,EAAA,IAAA,CAACC,EAAAA,uBAAD,CAAA,UACE,EAAA,EAAA,IAAA,CAACC,EAAAA,WAAD,CACE,GAAI,EAAM,QAAQ,EAClB,KAAM,EAAM,IAAI,GAAK,CAAC,EACtB,aAAc,GACd,SAAU,GAAQ,SAAS,OAAO,GAClC,QACE,EACK,GAAW,EAAM,QAAQ,EAAE,WAAY,EAAE,QAAQ,EAClD,IAAA,GAEN,UAAW,EAAW,IAAgB,CACpC,EAAK,CAAE,GAAI,gBAAiB,CAAC,EAC7B,EAAc,KAAK,EAAM,CAAG,EAC5B,EAAuB,CACzB,EACA,eAAA,EAAeC,EAAAA,iBAAAA,CAAiB,EAAO,CAAc,EACrD,cAAe,EAAY,EAA+B,IAAA,GAC1D,cAAe,CAChB,CAAA,CACqB,CAAA,CACV,CAAA,CAEpB,CAEA,SAAgB,EAAe,CAC7B,YACA,YAIC,CACD,GAAM,CAAE,SAAQ,QAAO,gBAAe,OAAM,0BAC1C,EAAmB,EACf,GAAA,EAAWL,EAAAA,YAAAA,CAAY,EACvB,GAAA,EAAeC,EAAAA,gBAAAA,CAAgB,EAC/B,EAAW,EAAM,IAAI,GAAK,CAAC,EAC3B,EAAW,GAAQ,SAAS,OAAO,GAGnC,EAAc,EAAS,UAAW,GAAS,EAAK,KAAO,CAAQ,EAC/D,EACJ,GAAe,EAAc,EAAI,OAAO,EAAc,CAAC,EAAI,EAE7D,SAAS,GAAiB,CACxB,EAAa,MAAM,EACnB,IAAM,EAAc,EAAM,IAAI,EAE1B,GAAe,EAAY,OAAS,EACtC,EAAc,KAAK,EAAY,EAAgB,EAE/C,EAAc,KAAK,CAAQ,CAE/B,CAEA,OACE,EAAA,EAAA,IAAA,CAACC,EAAAA,eAAD,CAAgB,UAAU,MACxB,UAAA,EAAA,EAAA,IAAA,CAACI,EAAAA,eAAD,CAAgB,MAAA,GACd,UAAA,EAAA,EAAA,IAAA,CAACC,EAAAA,WAAD,CACE,GAAI,EAAM,QAAQ,EAClB,KAAM,EAAM,IAAI,GAAK,CAAC,EACtB,aAAc,GACd,SAAU,GAAQ,SAAS,OAAO,GAClC,QACE,EACK,GAAM,EAAM,QAAQ,EAAE,WAAY,EAAE,QAAQ,EAC7C,IAAA,GAEN,UAAW,EAAM,IAAQ,CACvB,EAAK,CAAE,GAAI,gBAAiB,CAAC,EAC7B,EAAc,KAAK,EAAM,CAAG,EAC5B,EAAuB,CACzB,EACA,eAAgB,EAAK,EAAO,KAAA,EAC1BF,EAAAA,iBAAAA,CAAiB,MACf,EAAW,EAAS,EAAI,EAAE,EAAI,EAAe,CAC/C,CAAC,CAAC,EAAK,EAAO,CAAI,EAEpB,cAAe,EAAY,EAA+B,IAAA,EAC3D,CAAA,CACa,CAAA,CACF,CAAA,CAEpB,CAEA,SAAS,EAA6B,EAAU,CAC9C,IAAM,GAAA,EAASG,EAAAA,MAAAA,CAAM,CAAG,EAKxB,OAJK,GAAQ,IAIN,EAAA,EAAA,IAAA,CAAC,EAAD,CAAwB,SAAU,EAAO,EAAK,CAAA,EAH5C,IAIX,CAEA,SAAS,EAAgC,EAAU,CACjD,IAAM,GAAA,EAASA,EAAAA,MAAAA,CAAM,CAAG,EACxB,GAAI,CAAC,GAAQ,GACX,OAAO,KAGT,IAAM,EAAW,CAAE,GAAI,EAAO,GAAI,KAAM,QAAS,EAEjD,OACE,EAAA,EAAA,KAAA,CAAA,EAAA,SAAA,CAAA,SAAA,EACE,EAAA,EAAA,IAAA,CAACC,EAAAA,oCAAD,CAA+C,UAAW,CAAA,GAC1D,EAAA,EAAA,IAAA,CAACC,EAAAA,yBAAD,CAAoC,UAAW,CAAA,CAC/C,CAAA,CAAA,CAEN,CAEA,SAAS,EAAuB,CAAE,YAAkC,CAClE,IAAM,EAAW,CAAE,GAAI,EAAU,KAAM,QAAS,EAC1C,GAAA,EAAOC,EAAAA,gBAAAA,CAAgB,CAAQ,EAC/B,CAAE,cAAA,EAAcC,EAAAA,sBAAAA,CAAsB,CAAQ,EAC9C,EAAU,EAAK,KAClB,GAAQ,EAAI,OAASC,EAAAA,SAAS,MAAQ,EAAI,KAAOA,EAAAA,SAAS,EAC7D,EAEA,OACE,EAAA,EAAA,IAAA,CAAC,SAAD,CACE,KAAK,SACL,aAAY,EAAU,cAAgB,cACtC,eAAc,EACd,MAAO,EAAU,cAAgB,cACjC,UAAW,CACT,2GACA,EAAU,0BAA4B,eACxC,CAAC,CAAC,KAAK,GAAG,EACV,cAAgB,GAAM,EAAE,gBAAgB,EACxC,QAAU,GAAM,CACd,EAAE,eAAe,EACjB,EAAE,gBAAgB,EAClB,EAAUA,EAAAA,QAAQ,CACpB,EAEA,UAAA,EAAA,EAAA,IAAA,CAACC,EAAAA,sBAAD,CAAuB,KAAMD,EAAAA,SAAS,KAAM,UAAU,SAAW,CAAA,CAC3D,CAAA,CAEZ,CAEA,SAAgB,EAAa,EAAsC,CACjE,OACE,EAAA,EAAA,KAAA,CAAC,MAAD,CACE,UAAU,UACV,MAAM,6BACN,MAAM,MACN,OAAO,MACP,QAAQ,YACR,GAAI,EANN,SAAA,EAQE,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,EAAE,kBAAkB,KAAK,MAAQ,CAAA,GACvC,EAAA,EAAA,IAAA,CAAC,OAAD,CACE,EAAE,mNACF,KAAK,cACN,CAAA,CACE,GAET,CAEA,SAAgB,GAAuB,CACrC,OACE,EAAA,EAAA,KAAA,CAAC,MAAD,CACE,MAAM,6BACN,OAAO,KACP,QAAQ,YACR,MAAM,KAJR,SAAA,EAME,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,EAAE,kBAAkB,KAAK,MAAQ,CAAA,GACvC,EAAA,EAAA,IAAA,CAAC,OAAD,CACE,EAAE,mNACF,KAAK,cACN,CAAA,CACE,GAET,CC7XA,SAAgB,EAAa,CAC3B,QACA,UACA,GAAG,GAC8D,CACjE,OACE,EAAA,EAAA,KAAA,CAAC,MAAD,CACE,MAAM,6BACN,MAAM,MACN,OAAO,MACP,kBAAiB,EACjB,GAAI,EALN,SAAA,CAOG,GAAQ,EAAA,EAAA,IAAA,CAAC,QAAD,CAAO,GAAI,EAAU,SAAA,CAAa,CAAA,EAAI,MAE/C,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,EAAE,kBAAkB,KAAK,MAAQ,CAAA,GACvC,EAAA,EAAA,IAAA,CAAC,OAAD,CACE,EAAE,uJACF,KAAK,cACN,CAAA,CACE,GAET,CAEA,MAAa,EAA6B,CACxC,GAAI,sBACJ,MAAO,mBACP,MAAM,EAAA,EAAA,IAAA,CAAC,EAAD,CAAe,CAAA,EACrB,QAAS,EAAO,EAAK,KACZ,EAAA,EAAA,IAAA,CAAC,EAAD,CAAgB,CAAA,CAE3B,EAEA,SAAS,EAAyB,EAAgC,CAChE,OACE,EAAA,EAAA,IAAA,CAAC,MAAD,CACE,MAAM,6BACN,MAAM,MACN,OAAO,MACP,QAAQ,YACR,GAAI,EAGJ,UAAA,EAAA,EAAA,IAAA,CAAC,OAAD,CACE,KAAK,eACL,EAAE,0GACH,CAAA,CACE,CAAA,CAET,CAEA,SAAgB,GAAgB,CAC9B,GAAM,CAAE,cAAa,cAAA,EAAcE,EAAAA,kBAAAA,CAAkB,EAC/C,EAAK,EAAU,GAAG,IAAI,EACtB,EAAQ,EAAY,MAAM,IAAI,EAC9B,EAAU,EAAY,QAAQ,IAAI,EAClC,EAAoB,EAAY,kBAAkB,IAAI,EACtD,EAAW,EAAY,SAAS,IAAI,EACpC,GAAA,EAAkBC,EAAAA,mBAAAA,CAAmB,EACrC,GAAA,EAAeC,EAAAA,gBAAAA,CAAgB,EAC/B,CAAE,eAAA,EAAeC,EAAAA,eAAAA,CAAe,EAChC,CAAE,OAAM,WAAY,IAAA,EAAsBC,EAAAA,iBAAAA,CAAiB,EAC3D,EACJ,EAAW,MACX,EAAW,UAAY,2BACvB,GAAiB,SAAS,OAAO,KAAO,GACxC,EAAgB,SAAS,OAAO,OAAS,WAE3C,OACE,EAAA,EAAA,KAAA,CAACC,EAAAA,QAAD,CAAA,SAAA,EACE,EAAA,EAAA,IAAA,CAACC,EAAAA,cAAD,CACE,MAAM,mBACN,QAAS,CACP,CACE,KAAM,GACJ,EAAA,EAAA,IAAA,CAACC,EAAAA,UAAD,CAAW,UAAU,SAAW,CAAA,GAEhC,EAAA,EAAA,IAAA,CAAC,EAAD,CAA0B,UAAU,SAAW,CAAA,EAEjD,MAAO,EAAoB,iBAAmB,gBAC9C,QAAS,EACT,YAAe,CACb,GAAI,EAAmB,CACrB,EAAkB,MAAM,EACxB,EAAa,MAAM,EACnB,MACF,CAEA,EAAK,CAAE,KAAI,KAAM,UAAW,EAAG,IAAA,GAAW,CACxC,UAAW,GACX,YAAa,yCACf,CAAC,CACH,CACF,CACF,CACD,CAAA,GACD,EAAA,EAAA,KAAA,CAACC,EAAAA,eAAD,CAAgB,UAAU,MAA1B,SAAA,EACE,EAAA,EAAA,IAAA,CAACC,EAAAA,yBAAD,CACE,GAAG,KACH,YAAY,0BACZ,UAAU,mEACV,gBAAgB,iDAChB,oBAAoB,qGACpB,OAAQ,EAAY,MAEnB,SAAA,CACuB,CAAA,GAE1B,EAAA,EAAA,IAAA,CAACA,EAAAA,yBAAD,CACE,UAAA,GACA,8BAAA,GACA,GAAG,IACH,YAAY,4BACZ,UAAU,0EACV,gBAAgB,iDAChB,oBAAoB,qGACpB,OAAQ,EAAY,QAEnB,SAAA,CACuB,CAAA,GAE1B,EAAA,EAAA,IAAA,CAAC,KAAD,CAAK,CAAA,EACJ,GACC,EAAA,EAAA,KAAA,CAAA,EAAA,SAAA,CAAA,SAAA,EACE,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,kBAAf,SAAA,EACE,EAAA,EAAA,IAAA,CAACC,EAAAA,aAAD,CACE,GAAG,KACH,UAAU,oGAET,SAAA,EAAkB,KACP,CAAA,GACd,EAAA,EAAA,IAAA,CAACA,EAAAA,aAAD,CACE,8BAAA,GACA,UAAU,qDAET,SAAA,EAAkB,KACP,CAAA,CACX,CAEL,CAAA,GAAA,EAAA,EAAA,IAAA,CAAC,KAAD,CAAK,CAAA,CACL,CAAA,CAAA,EACA,KAEH,GAAY,EAAS,SAAW,GAC/B,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,qBAAqB,SAAA,8FAG/B,CAAA,EACH,MAEJ,EAAA,EAAA,IAAA,CAACC,EAAAA,iBAAD,CACE,UAAA,GACA,QAAS,CACP,UAAW,SACX,IAAK,wDACL,MAAO,yDACP,MACE,gFACF,MAAO,eACT,CACD,CAAA,CACa,CACT,CAAA,CAAA,CAAA,CAAA,CAEb"}
|
package/dist/components.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./components-CoVIXUVJ.cjs");exports.CanvasGridView=e.i,exports.CanvasListView=e.a,exports.CanvasListing=e.o,exports.CanvasListingIcon=e.s,exports.CanvasThumbnailsIcon=e.c,exports.ListEditIcon=e.l,exports.ManifestIcon=e.t,exports.ManifestOverviewCenterPanel=e.f,exports.ManifestPanel=e.n,exports.useEditCanvasItems=e.d;
|
package/dist/components.d.cts
CHANGED
|
@@ -1,36 +1,24 @@
|
|
|
1
|
-
import * as react_jsx_runtime1 from "react/jsx-runtime";
|
|
2
|
-
import * as _manifest_editor_shell0 from "@manifest-editor/shell";
|
|
3
1
|
import { LayoutPanel } from "@manifest-editor/shell";
|
|
4
|
-
import * as _iiif_presentation_32 from "@iiif/presentation-3";
|
|
5
|
-
import * as _manifest_editor_editor_api0 from "@manifest-editor/editor-api";
|
|
6
2
|
import { SVGProps } from "react";
|
|
7
|
-
|
|
8
3
|
//#region src/center-panels/manifest-overview.d.ts
|
|
9
|
-
declare function ManifestOverviewCenterPanel():
|
|
4
|
+
declare function ManifestOverviewCenterPanel(): import("react").JSX.Element;
|
|
10
5
|
//#endregion
|
|
11
6
|
//#region src/left-panels/canvas-listing.d.ts
|
|
12
|
-
declare const CanvasListingIcon: ({
|
|
13
|
-
title,
|
|
14
|
-
titleId,
|
|
15
|
-
...props
|
|
16
|
-
}: SVGProps<SVGSVGElement> & {
|
|
7
|
+
declare const CanvasListingIcon: ({ title, titleId, ...props }: SVGProps<SVGSVGElement> & {
|
|
17
8
|
title?: string;
|
|
18
9
|
titleId?: string;
|
|
19
|
-
}) =>
|
|
20
|
-
declare function CanvasListing({
|
|
21
|
-
gridView,
|
|
22
|
-
onChangeGridView
|
|
23
|
-
}: {
|
|
10
|
+
}) => import("react").JSX.Element;
|
|
11
|
+
declare function CanvasListing({ gridView, onChangeGridView }: {
|
|
24
12
|
gridView: boolean;
|
|
25
13
|
onChangeGridView: (gridView: boolean) => void;
|
|
26
|
-
}):
|
|
14
|
+
}): import("react").JSX.Element;
|
|
27
15
|
declare function useEditCanvasItems(): {
|
|
28
|
-
canvas:
|
|
16
|
+
canvas: import("@manifest-editor/shell").EditableResource | undefined;
|
|
29
17
|
canvases: {
|
|
30
18
|
type: string;
|
|
31
19
|
id: string;
|
|
32
20
|
}[];
|
|
33
|
-
items:
|
|
21
|
+
items: import("@manifest-editor/editor-api").BaseReferenceListEditor<Partial<import("@iiif/presentation-3").DescriptiveProperties> & Partial<import("@iiif/presentation-3").TechnicalProperties> & Partial<import("@iiif/presentation-3").LinkingProperties> & Partial<import("@iiif/presentation-3").StructuralProperties<unknown>> & Partial<import("@iiif/presentation-3").NavPlaceExtension & import("@iiif/presentation-3").TextGranularityExtension>, {
|
|
34
22
|
type: string;
|
|
35
23
|
id: string;
|
|
36
24
|
}>;
|
|
@@ -52,7 +40,7 @@ declare function useEditCanvasItems(): {
|
|
|
52
40
|
unique?: boolean;
|
|
53
41
|
}): void;
|
|
54
42
|
};
|
|
55
|
-
edit: (resource:
|
|
43
|
+
edit: (resource: import("@iiif/presentation-3").Reference | import("@iiif/presentation-3").SpecificResource, context?: Omit<import("@manifest-editor/shell").EditableResource, "resource">, options?: {
|
|
56
44
|
reset?: boolean;
|
|
57
45
|
property?: string;
|
|
58
46
|
stacked?: boolean | undefined;
|
|
@@ -62,29 +50,22 @@ declare function useEditCanvasItems(): {
|
|
|
62
50
|
closeAfterCanvasSelect: () => void;
|
|
63
51
|
canCreateCanvas: any;
|
|
64
52
|
};
|
|
65
|
-
declare function CanvasGridView({
|
|
66
|
-
isEditing
|
|
67
|
-
}: {
|
|
53
|
+
declare function CanvasGridView({ isEditing }: {
|
|
68
54
|
isEditing: boolean;
|
|
69
|
-
}):
|
|
70
|
-
declare function CanvasListView({
|
|
71
|
-
isEditing
|
|
72
|
-
}: {
|
|
55
|
+
}): import("react").JSX.Element;
|
|
56
|
+
declare function CanvasListView({ isEditing, onDelete }: {
|
|
73
57
|
isEditing: boolean;
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
declare function
|
|
58
|
+
onDelete?: (deletedId: string) => void;
|
|
59
|
+
}): import("react").JSX.Element;
|
|
60
|
+
declare function ListEditIcon(props: React.SVGProps<SVGSVGElement>): import("react").JSX.Element;
|
|
61
|
+
declare function CanvasThumbnailsIcon(): import("react").JSX.Element;
|
|
77
62
|
//#endregion
|
|
78
63
|
//#region src/left-panels/manifest.d.ts
|
|
79
|
-
declare function ManifestIcon({
|
|
80
|
-
title,
|
|
81
|
-
titleId,
|
|
82
|
-
...props
|
|
83
|
-
}: SVGProps<SVGSVGElement> & {
|
|
64
|
+
declare function ManifestIcon({ title, titleId, ...props }: SVGProps<SVGSVGElement> & {
|
|
84
65
|
title?: string;
|
|
85
66
|
titleId?: string;
|
|
86
|
-
}):
|
|
87
|
-
declare function ManifestPanel():
|
|
67
|
+
}): import("react").JSX.Element;
|
|
68
|
+
declare function ManifestPanel(): import("react").JSX.Element;
|
|
88
69
|
//#endregion
|
|
89
70
|
export { CanvasGridView, CanvasListView, CanvasListing, CanvasListingIcon, CanvasThumbnailsIcon, ListEditIcon, ManifestIcon, ManifestOverviewCenterPanel, ManifestPanel, useEditCanvasItems };
|
|
90
71
|
//# sourceMappingURL=components.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components.d.cts","names":[],"sources":["../src/center-panels/manifest-overview.tsx","../src/left-panels/canvas-listing.tsx","../src/left-panels/manifest.tsx"],"
|
|
1
|
+
{"version":3,"file":"components.d.cts","names":[],"sources":["../src/center-panels/manifest-overview.tsx","../src/left-panels/canvas-listing.tsx","../src/left-panels/manifest.tsx"],"mappings":";;;iBAiEgB,+CAA2B,IAAA;;;cC5B9B,sBAAiB,OAAA,YAAA,SAI3B,SAAS;EAAmB;EAAgB;sBAAkB,IAAA;iBA6CjD,gBACd,UACA;EAEA;EACA,mBAAmB;oBACpB,IAAA;iBAwEe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmCA,iBAAiB;EAAe;oBAAoB,IAAA;iBAmDpD,iBACd,WACA;EAEA;EACA,YAAY;oBACb,IAAA;iBA6Ge,aAAa,OAAO,MAAM,SAAS,iCAAc,IAAA;iBAmBjD,wCAAoB,IAAA;;;iBC9WpB,eACd,OACA,YACG,SACF,SAAS;EAAmB;EAAgB;oBAAkB,IAAA;iBA+CjD,iCAAa,IAAA"}
|
package/dist/components.d.ts
CHANGED
|
@@ -1,36 +1,24 @@
|
|
|
1
|
-
import * as _manifest_editor_shell0 from "@manifest-editor/shell";
|
|
2
1
|
import { LayoutPanel } from "@manifest-editor/shell";
|
|
3
2
|
import { SVGProps } from "react";
|
|
4
|
-
import * as react_jsx_runtime1 from "react/jsx-runtime";
|
|
5
|
-
import * as _manifest_editor_editor_api0 from "@manifest-editor/editor-api";
|
|
6
|
-
import * as _iiif_presentation_32 from "@iiif/presentation-3";
|
|
7
|
-
|
|
8
3
|
//#region src/center-panels/manifest-overview.d.ts
|
|
9
|
-
declare function ManifestOverviewCenterPanel():
|
|
4
|
+
declare function ManifestOverviewCenterPanel(): import("react").JSX.Element;
|
|
10
5
|
//#endregion
|
|
11
6
|
//#region src/left-panels/canvas-listing.d.ts
|
|
12
|
-
declare const CanvasListingIcon: ({
|
|
13
|
-
title,
|
|
14
|
-
titleId,
|
|
15
|
-
...props
|
|
16
|
-
}: SVGProps<SVGSVGElement> & {
|
|
7
|
+
declare const CanvasListingIcon: ({ title, titleId, ...props }: SVGProps<SVGSVGElement> & {
|
|
17
8
|
title?: string;
|
|
18
9
|
titleId?: string;
|
|
19
|
-
}) =>
|
|
20
|
-
declare function CanvasListing({
|
|
21
|
-
gridView,
|
|
22
|
-
onChangeGridView
|
|
23
|
-
}: {
|
|
10
|
+
}) => import("react").JSX.Element;
|
|
11
|
+
declare function CanvasListing({ gridView, onChangeGridView }: {
|
|
24
12
|
gridView: boolean;
|
|
25
13
|
onChangeGridView: (gridView: boolean) => void;
|
|
26
|
-
}):
|
|
14
|
+
}): import("react").JSX.Element;
|
|
27
15
|
declare function useEditCanvasItems(): {
|
|
28
|
-
canvas:
|
|
16
|
+
canvas: import("@manifest-editor/shell").EditableResource | undefined;
|
|
29
17
|
canvases: {
|
|
30
18
|
type: string;
|
|
31
19
|
id: string;
|
|
32
20
|
}[];
|
|
33
|
-
items:
|
|
21
|
+
items: import("@manifest-editor/editor-api").BaseReferenceListEditor<Partial<import("@iiif/presentation-3").DescriptiveProperties> & Partial<import("@iiif/presentation-3").TechnicalProperties> & Partial<import("@iiif/presentation-3").LinkingProperties> & Partial<import("@iiif/presentation-3").StructuralProperties<unknown>> & Partial<import("@iiif/presentation-3").NavPlaceExtension & import("@iiif/presentation-3").TextGranularityExtension>, {
|
|
34
22
|
type: string;
|
|
35
23
|
id: string;
|
|
36
24
|
}>;
|
|
@@ -52,7 +40,7 @@ declare function useEditCanvasItems(): {
|
|
|
52
40
|
unique?: boolean;
|
|
53
41
|
}): void;
|
|
54
42
|
};
|
|
55
|
-
edit: (resource:
|
|
43
|
+
edit: (resource: import("@iiif/presentation-3").Reference | import("@iiif/presentation-3").SpecificResource, context?: Omit<import("@manifest-editor/shell").EditableResource, "resource">, options?: {
|
|
56
44
|
reset?: boolean;
|
|
57
45
|
property?: string;
|
|
58
46
|
stacked?: boolean | undefined;
|
|
@@ -62,29 +50,22 @@ declare function useEditCanvasItems(): {
|
|
|
62
50
|
closeAfterCanvasSelect: () => void;
|
|
63
51
|
canCreateCanvas: any;
|
|
64
52
|
};
|
|
65
|
-
declare function CanvasGridView({
|
|
66
|
-
isEditing
|
|
67
|
-
}: {
|
|
53
|
+
declare function CanvasGridView({ isEditing }: {
|
|
68
54
|
isEditing: boolean;
|
|
69
|
-
}):
|
|
70
|
-
declare function CanvasListView({
|
|
71
|
-
isEditing
|
|
72
|
-
}: {
|
|
55
|
+
}): import("react").JSX.Element;
|
|
56
|
+
declare function CanvasListView({ isEditing, onDelete }: {
|
|
73
57
|
isEditing: boolean;
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
declare function
|
|
58
|
+
onDelete?: (deletedId: string) => void;
|
|
59
|
+
}): import("react").JSX.Element;
|
|
60
|
+
declare function ListEditIcon(props: React.SVGProps<SVGSVGElement>): import("react").JSX.Element;
|
|
61
|
+
declare function CanvasThumbnailsIcon(): import("react").JSX.Element;
|
|
77
62
|
//#endregion
|
|
78
63
|
//#region src/left-panels/manifest.d.ts
|
|
79
|
-
declare function ManifestIcon({
|
|
80
|
-
title,
|
|
81
|
-
titleId,
|
|
82
|
-
...props
|
|
83
|
-
}: SVGProps<SVGSVGElement> & {
|
|
64
|
+
declare function ManifestIcon({ title, titleId, ...props }: SVGProps<SVGSVGElement> & {
|
|
84
65
|
title?: string;
|
|
85
66
|
titleId?: string;
|
|
86
|
-
}):
|
|
87
|
-
declare function ManifestPanel():
|
|
67
|
+
}): import("react").JSX.Element;
|
|
68
|
+
declare function ManifestPanel(): import("react").JSX.Element;
|
|
88
69
|
//#endregion
|
|
89
70
|
export { CanvasGridView, CanvasListView, CanvasListing, CanvasListingIcon, CanvasThumbnailsIcon, ListEditIcon, ManifestIcon, ManifestOverviewCenterPanel, ManifestPanel, useEditCanvasItems };
|
|
90
71
|
//# sourceMappingURL=components.d.ts.map
|
package/dist/components.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components.d.ts","names":[],"sources":["../src/center-panels/manifest-overview.tsx","../src/left-panels/canvas-listing.tsx","../src/left-panels/manifest.tsx"],"
|
|
1
|
+
{"version":3,"file":"components.d.ts","names":[],"sources":["../src/center-panels/manifest-overview.tsx","../src/left-panels/canvas-listing.tsx","../src/left-panels/manifest.tsx"],"mappings":";;;iBAiEgB,+CAA2B,IAAA;;;cC5B9B,sBAAiB,OAAA,YAAA,SAI3B,SAAS;EAAmB;EAAgB;sBAAkB,IAAA;iBA6CjD,gBACd,UACA;EAEA;EACA,mBAAmB;oBACpB,IAAA;iBAwEe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmCA,iBAAiB;EAAe;oBAAoB,IAAA;iBAmDpD,iBACd,WACA;EAEA;EACA,YAAY;oBACb,IAAA;iBA6Ge,aAAa,OAAO,MAAM,SAAS,iCAAc,IAAA;iBAmBjD,wCAAoB,IAAA;;;iBC9WpB,eACd,OACA,YACG,SACF,SAAS;EAAmB;EAAgB;oBAAkB,IAAA;iBA+CjD,iCAAa,IAAA"}
|
package/dist/components.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e,c as t,d as n,f as r,i,l as a,n as o,o as s,s as c,t as l}from"./components-
|
|
1
|
+
import{a as e,c as t,d as n,f as r,i,l as a,n as o,o as s,s as c,t as l}from"./components-Bl3IFBTG.js";export{i as CanvasGridView,e as CanvasListView,s as CanvasListing,c as CanvasListingIcon,t as CanvasThumbnailsIcon,a as ListEditIcon,l as ManifestIcon,r as ManifestOverviewCenterPanel,o as ManifestPanel,n as useEditCanvasItems};
|