@manifest-editor/manifest-preset 2.2.2-next.0.903673e → 2.3.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.
@@ -0,0 +1,20 @@
1
+ import{createMessageReference as e}from"@manifest-editor/i18n/core";import{CanvasGrid as t,CanvasList as n,InlineLocaleStringEditor as r,InputContainer as i,createAppActions as a,useInStack as o,useToggleList as s}from"@manifest-editor/editors";import{FLAG_TAG as c,ManifestEditorCanvasProgressOverlay as l,ManifestEditorTagIcon as u,ManifestEditorTagOverlay as d,getCanvasProgressStatusFromState as f,getResourceTagsFromState as p,useApp as m,useConfig as h,useCreator as g,useEditingResource as _,useEditingStack as v,useLayoutActions as y,useLayoutMode as b,useLayoutState as x,useManifestEditor as S,useResourceTagActions as C,useResourceTags as w}from"@manifest-editor/shell";import{useTranslations as T}from"@manifest-editor/i18n";import{ActionButton as E,AddIcon as ee,CanvasThumbnailGridItem as te,CheckIcon as D,CreateCanvasIcon as O,IIIFBrowserIcon as k,ManifestIcon as A,ManifestOverviewEmptyState as ne,Sidebar as j,SidebarContent as M,SidebarHeader as N,ThumbnailGridContainer as P,useFastList as F,useGridOptions as re}from"@manifest-editor/components";import{useLayoutEffect as I,useMemo as L,useState as ie}from"react";import{LocaleString as R,ManifestMetadata as z,useManifest as B,useVaultSelector as V}from"react-iiif-vault";import{Fragment as H,jsx as U,jsxs as W}from"react/jsx-runtime";import G from"styled-components";import{toRef as K}from"@iiif/parser";function q(t,n){return e(`manifest`,t,n?{values:n}:void 0)}const ae=G.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=G.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(0.5rem + var(--manifest-editor-layout-left-sidebar-small, 0px));
18
+ padding-inline-end: calc(0.5rem + var(--manifest-editor-layout-right-sidebar-large, 0px));
19
+ `,J={id:`overview`,label:`Overview`,labelMessage:q(`panels.overview`),icon:U(A,{}),render:()=>U(Y,{})};function Y(){let e=T(`manifest`),{metadata:t}=m(),{edit:n,open:r}=y(),{structural:i,technical:a}=S(),{items:s}=i,{editorFeatureFlags:{manifestGridOptions:l=!1}}=h(),d=a.id.get(),_=o(`Canvas`)?.resource.source.id,[v,C]=g({id:d,type:`Manifest`},`items`,`Canvas`,void 0,{isPainting:!0}),w=F(s.get(),24),D=b(),{leftPanel:O}=x(),A=O.current===`left-panel-manifest`,[{size:j},M]=re(`manifest-grid-size`),[N,I]=ie(!1),R=L(()=>(w||[]).map(e=>e.id).join(`|`),[w]),z=V(e=>{let t={};for(let n of w||[])t[n.id]=p(e,{id:n.id,type:`Canvas`});return t},[R]),B=V(e=>{let t={};for(let n of w||[])t[n.id]=f(e,{id:n.id,type:`Canvas`});return t},[R]),[G,K]=L(()=>{let e=(w||[]).filter(e=>z[e.id]?.some(e=>e.type===c.type&&e.id===c.id));return N?[e,e.length]:[w||[],e.length]},[w,z,N]),q=t.id===`exhibition-slideshow-editor`?`exhibition-slideshow-slide`:t.id===`exhibition-editor`?`exhibition-slide`:null,J=q?(e,t)=>C.createFiltered(q,e,t):C.create;return!w||w.length===0?U(`div`,{children:U(ne,{onCreate:J,canCreate:v})}):W(H,{children:[l?W(oe,{children:[M,W(`div`,{className:`flex gap-2`,children:[K>0&&W(E,{primary:N,"aria-pressed":N,onPress:()=>I(e=>!e),children:[U(u,{icon:c.icon,className:`text-xl`}),` `,e(`workflow.showOnlyFlagged`)]}),W(E,{isDisabled:!v,onPress:()=>J(),children:[U(ee,{className:`text-xl`}),` `,e(`workflow.addNewCanvas`)]}),U(E,{"aria-label":e(`workflow.browseIiifResources`),onPress:()=>C.creator(`@manifest-editor/iiif-browser-creator`),children:U(k,{"aria-hidden":`true`,className:`text-xl`})})]})]}):null,N&&G.length===0?U(`div`,{className:`p-6 text-sm text-gray-500`,children:e(`workflow.noFlaggedCanvases`)}):U(ae,{children:U(P,{wide:!0,size:j,children:G.map(e=>U(te,{id:e.id,selected:e.id===_,active:e.id===_,icon:U(se,{tags:z[e.id]||[],status:B[e.id]||`none`}),onClick:()=>{r({id:`current-canvas`}),D==="default"&&A&&r({id:`canvas-listing`,state:{gridView:!0}}),C.edit(e)}},e.id))})})]})}function se({tags:e,status:t}){return W(H,{children:[U(l,{status:t}),U(d,{tags:e})]})}const X=({title:e,titleId:t,...n})=>W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,width:`1em`,height:`1em`,"aria-labelledby":t,...n,children:[e?U(`title`,{id:t,children:e}):null,W(`g`,{fill:`none`,children:[U(`path`,{d:`M0 0h24v24H0V0z`}),U(`path`,{d:`M0 0h24v24H0V0z`,opacity:`.87`})]}),U(`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`,labelMessage:q(`panels.canvases`),icon:U(X,{}),render:(e,t,n)=>U(Z,{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 Z({gridView:e,onChangeGridView:t}){let n=T(`manifest`),{structural:r,technical:i}=S(),[a,o]=s(),{items:c}=r,l={id:i.id.get(),type:`Manifest`},[u,d]=g(l,`items`,`Canvas`,void 0,{isPainting:!0}),f=F(c.get(),24);return I(()=>{let e=document.querySelector(`[data-canvas-selected="true"]`);e&&e.scrollIntoView({block:`center`})},[f,e]),W(j,{children:[U(N,{title:n(`panels.canvases`),actions:[{icon:U(H,{children:e?U(X,{width:24,height:24}):U(me,{})}),title:n(e?`workflow.listView`:`workflow.gridView`),onClick:()=>{t(!e)}},{icon:U(pe,{}),title:n(`workflow.editCanvases`),toggled:a.items,onClick:()=>o(`items`)},{icon:U(k,{className:`text-2xl`}),title:n(`workflow.iiifBrowser`),onClick:()=>d.creator(`@manifest-editor/iiif-browser-creator`),disabled:!u},{icon:U(O,{}),title:n(`workflow.addNewCanvas`),onClick:()=>d.create(),disabled:!u}]}),U(e?$:le,{isEditing:a.items})]})}function Q(){let{edit:e,open:t,leftPanel:n}=y(),r=b(),i=o(`Canvas`),{technical:a,structural:s}=S(),{items:c}=s,l={id:a.id.get(),type:`Manifest`},u=F(c.get(),24),[d,f]=g(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 $({isEditing:e}){let{canvas:n,items:r,canvasActions:i,open:o,closeAfterCanvasSelect:s}=Q(),c=B(),l=v(),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?i.edit(e[p]):i.edit(c)}return U(M,{children:U(P,{children:U(t,{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)=>{o({id:`current-canvas`}),i.edit(e,t),s()},createActions:a(r,m),inlineActions:e?ue:void 0,thumbnailIcon:de})})})}function le({isEditing:e,onDelete:t}){let{canvas:r,items:o,canvasActions:s,open:c,closeAfterCanvasSelect:l}=Q(),u=B(),d=v(),f=o.get()||[],p=r?.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 U(M,{className:`p-3`,children:U(i,{$wide:!0,children:U(n,{id:o.focusId(),list:o.get()||[],inlineHandle:!1,activeId:r?.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,n,r)=>a(o,()=>t?t(e.id):g())(e,n,r),inlineActions:e?ue:void 0})})})}function ue(e){let t=K(e);return t?.id?U(fe,{canvasId:t.id}):null}function de(e){let t=K(e);if(!t?.id)return null;let n={id:t.id,type:`Canvas`};return W(H,{children:[U(l,{resource:n}),U(d,{resource:n})]})}function fe({canvasId:e}){let t=T(`manifest`),n={id:e,type:`Canvas`},r=w(n),{toggleTag:i}=C(n),a=r.some(e=>e.type===c.type&&e.id===c.id);return U(`button`,{type:`button`,"aria-label":t(a?`workflow.removeFlag`:`workflow.flagCanvas`),"aria-pressed":a,title:t(a?`workflow.removeFlag`:`workflow.flagCanvas`),className:[`relative flex aspect-square items-center justify-center rounded-sm p-0.5 text-xl hover:bg-me-primary-100`,a?`bg-red-100 text-red-700`:`text-gray-500`].join(` `),onPointerDown:e=>e.stopPropagation(),onClick:e=>{e.preventDefault(),e.stopPropagation(),i(c)},children:U(u,{icon:c.icon,className:`h-6 w-6`})})}function pe(e){return W(`svg`,{className:`text-xl`,xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,viewBox:`0 0 24 24`,...e,children:[U(`path`,{d:`M0 0h24v24H0V0z`,fill:`none`}),U(`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 me(){return W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,height:`24`,viewBox:`0 0 24 24`,width:`24`,children:[U(`path`,{d:`M0 0h24v24H0V0z`,fill:`none`}),U(`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 he({title:e,titleId:t,...n}){return W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,"aria-labelledby":t,...n,children:[e?U(`title`,{id:t,children:e}):null,U(`path`,{d:`M0 0h24v24H0V0z`,fill:`none`}),U(`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 ge={id:`left-panel-manifest`,label:`Manifest summary`,labelMessage:q(`workflow.manifestSummary`),icon:U(he,{}),render:(e,t,n)=>U(ve,{})};function _e(e){return U(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,viewBox:`0 0 24 24`,...e,children:U(`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 ve(){let e=T(`manifest`),{descriptive:t,technical:n}=S(),i=n.id.get(),a=t.label.get(),o=t.summary.get(),s=t.requiredStatement.get(),c=t.metadata.get(),l=_(),u=v(),{rightPanel:d}=x(),{edit:f,rightPanel:p}=y(),m=d.open&&d.current===`@manifest-editor/editor`&&l?.resource.source.id===i&&l.resource.source.type===`Manifest`;return W(j,{children:[U(N,{title:e(`workflow.manifestSummary`),actions:[{icon:U(m?D:_e,{className:`text-xl`}),title:e(m?`workflow.finishEditing`:`workflow.editMetadata`),toggled:m,onClick:()=>{if(m){p.close(),u.close();return}f({id:i,type:`Manifest`},void 0,{forceOpen:!0,selectedTab:`@manifest-editor/descriptive-properties`})}}]}),W(M,{className:`p-4`,children:[U(r,{as:`h2`,placeholder:e(`workflow.manifestTitlePlaceholder`),className:`text-lg font-semibold [&>a]:underline [&>a]:hover:text-slate-400`,buttonClassName:`mb-3`,editor:t.label,children:a}),U(r,{multiline:!0,enableDangerouslySetInnerHTML:!0,as:`p`,placeholder:e(`workflow.manifestSummaryPlaceholder`),className:`text-sm text-slate-800 block [&>a]:underline [&>a]:hover:text-slate-400`,buttonClassName:`mb-3`,editor:t.summary,children:o}),U(`hr`,{}),s?W(H,{children:[W(`div`,{className:`py-2 text-black`,children:[U(R,{as:`h3`,className:`font-bold text-black w-full text-sm font-semibold mb-0 [&>a]:underline [&>a]:hover:text-slate-400`,children:s.label}),U(R,{enableDangerouslySetInnerHTML:!0,className:`text-sm [&>a]:underline [&>a]:hover:text-slate-400`,children:s.value})]}),U(`hr`,{})]}):null,c&&c.length===0?U(`div`,{className:`py-2 text-gray-600`,children:e(`workflow.metadataHelp`)}):null,U(z,{allowHtml:!0,classes:{container:`w-full`,row:`border-b border-gray-200 flex flex-col py-2`,label:`font-bold text-black w-full text-sm font-semibold mb-1 [overflow-wrap:anywhere]`,value:`text-sm text-black block [overflow-wrap:anywhere] [&>span>a]:underline [&>span>a]:hover:text-slate-400`,empty:`text-gray-600`}})]})]})}export{le as a,me as c,Q as d,Y as f,$ as i,pe as l,q as m,ve as n,Z as o,J as p,ge as r,X as s,he as t,ce as u};
20
+ //# sourceMappingURL=components-8lKnKGG1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components-8lKnKGG1.js","names":["ListEditIcon","ManifestIcon"],"sources":["../src/i18n.ts","../src/center-panels/manifest-overview.tsx","../src/left-panels/canvas-listing.tsx","../src/left-panels/manifest.tsx"],"sourcesContent":["import { createMessageReference, type MessageReference, type MessageValues } from \"@manifest-editor/i18n/core\";\n\n/** Display metadata only. Never put a translator in IIIF, task or worker payloads. */\nexport function manifestMessage(key: string, values?: MessageValues): MessageReference {\n return createMessageReference(\"manifest\", key, values ? { values } : undefined);\n}\n","import { useTranslations } from \"@manifest-editor/i18n\";\nimport { manifestMessage } from \"../i18n\";\nimport {\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(0.5rem + var(--manifest-editor-layout-left-sidebar-small, 0px));\n padding-inline-end: calc(0.5rem + var(--manifest-editor-layout-right-sidebar-large, 0px));\n`;\n\nexport const manifestOverview: LayoutPanel = {\n id: \"overview\",\n label: \"Overview\",\n labelMessage: manifestMessage(\"panels.overview\"),\n icon: <ManifestIcon />,\n render: () => <ManifestOverviewCenterPanel />,\n};\n\nexport function ManifestOverviewCenterPanel() {\n const t = useTranslations(\"manifest\");\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\" /> {t(\"workflow.showOnlyFlagged\")}\n </ActionButton>\n )}\n <ActionButton isDisabled={!canCreateCanvas} onPress={() => createCanvas()}>\n <AddIcon className=\"text-xl\" /> {t(\"workflow.addNewCanvas\")}\n </ActionButton>\n <ActionButton\n aria-label={t(\"workflow.browseIiifResources\")}\n onPress={() => canvasActions.creator(\"@manifest-editor/iiif-browser-creator\")}\n >\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\">{t(\"workflow.noFlaggedCanvases\")}</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 { useTranslations } from \"@manifest-editor/i18n\";\nimport { manifestMessage } from \"../i18n\";\nimport {\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 labelMessage: manifestMessage(\"panels.canvases\"),\n icon: <CanvasListingIcon />,\n render: (state, ctx, app) => {\n return (\n <CanvasListing\n gridView={state.gridView || localStorage.getItem(\"canvas-listing-view-mode\") === \"grid\"}\n onChangeGridView={(gridView) => {\n localStorage.setItem(\"canvas-listing-view-mode\", gridView ? \"grid\" : \"list\");\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 t = useTranslations(\"manifest\");\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(manifest, \"items\", \"Canvas\", undefined, { isPainting: true });\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={t(\"panels.canvases\")}\n actions={[\n {\n icon: <>{gridView ? <CanvasListingIcon width={24} height={24} /> : <CanvasThumbnailsIcon />}</>,\n title: gridView ? t(\"workflow.listView\") : t(\"workflow.gridView\"),\n onClick: () => {\n onChangeGridView(!gridView);\n },\n },\n {\n icon: <ListEditIcon />,\n title: t(\"workflow.editCanvases\"),\n toggled: toggled.items,\n onClick: () => toggle(\"items\"),\n },\n {\n icon: <IIIFBrowserIcon className=\"text-2xl\" />,\n title: t(\"workflow.iiifBrowser\"),\n onClick: () => canvasActions.creator(\"@manifest-editor/iiif-browser-creator\"),\n disabled: !canCreateCanvas,\n },\n {\n icon: <CreateCanvasIcon />,\n title: t(\"workflow.addNewCanvas\"),\n onClick: () => canvasActions.create(),\n disabled: !canCreateCanvas,\n },\n ]}\n />\n {gridView ? <CanvasGridView isEditing={toggled.items} /> : <CanvasListView isEditing={toggled.items} />}\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(manifest, \"items\", \"Canvas\", undefined, { isPainting: true });\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 } = 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 = 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={isEditing ? (t: any) => items.reorder(t.startIndex, t.endIndex) : undefined}\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 } = 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 = 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={isEditing ? (t) => items.reorder(t.startIndex, t.endIndex) : undefined}\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, () => (onDelete ? onDelete(ref.id) : onDeleteCanvas()))(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 t = useTranslations(\"manifest\");\n const resource = { id: canvasId, type: \"Canvas\" };\n const tags = useResourceTags(resource);\n const { toggleTag } = useResourceTagActions(resource);\n const flagged = tags.some((tag) => tag.type === FLAG_TAG.type && tag.id === FLAG_TAG.id);\n\n return (\n <button\n type=\"button\"\n aria-label={flagged ? t(\"workflow.removeFlag\") : t(\"workflow.flagCanvas\")}\n aria-pressed={flagged}\n title={flagged ? t(\"workflow.removeFlag\") : t(\"workflow.flagCanvas\")}\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 className=\"text-xl\" xmlns=\"http://www.w3.org/2000/svg\" width=\"1em\" height=\"1em\" viewBox=\"0 0 24 24\" {...props}>\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 xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\">\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 { useTranslations } from \"@manifest-editor/i18n\";\nimport { manifestMessage } from \"../i18n\";\nimport {\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 labelMessage: manifestMessage(\"workflow.manifestSummary\"),\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 t = useTranslations(\"manifest\");\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={t(\"workflow.manifestSummary\")}\n actions={[\n {\n icon: isEditingManifest ? (\n <CheckIcon className=\"text-xl\" />\n ) : (\n <EditManifestMetadataIcon className=\"text-xl\" />\n ),\n title: isEditingManifest ? t(\"workflow.finishEditing\") : t(\"workflow.editMetadata\"),\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={t(\"workflow.manifestTitlePlaceholder\")}\n className=\"text-lg font-semibold [&>a]:underline [&>a]:hover:text-slate-400\"\n buttonClassName=\"mb-3\"\n editor={descriptive.label}\n >\n {label}\n </InlineLocaleStringEditor>\n\n <InlineLocaleStringEditor\n multiline\n enableDangerouslySetInnerHTML\n as=\"p\"\n placeholder={t(\"workflow.manifestSummaryPlaceholder\")}\n className=\"text-sm text-slate-800 block [&>a]:underline [&>a]:hover:text-slate-400\"\n buttonClassName=\"mb-3\"\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 {t(\"workflow.metadataHelp\")}\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 py-2\",\n label:\n \"font-bold text-black w-full text-sm font-semibold mb-1 [overflow-wrap:anywhere]\",\n value:\n \"text-sm text-black block [overflow-wrap:anywhere] [&>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,20 @@
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/i18n/core"),u=require("@manifest-editor/editors"),d=require("@manifest-editor/shell"),f=require("@manifest-editor/i18n"),p=require("@manifest-editor/components"),m=require("react"),h=require("react-iiif-vault"),g=require("react/jsx-runtime"),_=require("styled-components");_=c(_,1);let v=require("@iiif/parser");function y(e,t){return(0,l.createMessageReference)(`manifest`,e,t?{values:t}:void 0)}const b=_.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
+ `,x=_.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(0.5rem + var(--manifest-editor-layout-left-sidebar-small, 0px));
18
+ padding-inline-end: calc(0.5rem + var(--manifest-editor-layout-right-sidebar-large, 0px));
19
+ `,S={id:`overview`,label:`Overview`,labelMessage:y(`panels.overview`),icon:(0,g.jsx)(p.ManifestIcon,{}),render:()=>(0,g.jsx)(C,{})};function C(){let e=(0,f.useTranslations)(`manifest`),{metadata:t}=(0,d.useApp)(),{edit:n,open:r}=(0,d.useLayoutActions)(),{structural:i,technical:a}=(0,d.useManifestEditor)(),{items:o}=i,{editorFeatureFlags:{manifestGridOptions:s=!1}}=(0,d.useConfig)(),c=a.id.get(),l=(0,u.useInStack)(`Canvas`)?.resource.source.id,[_,v]=(0,d.useCreator)({id:c,type:`Manifest`},`items`,`Canvas`,void 0,{isPainting:!0}),y=(0,p.useFastList)(o.get(),24),S=(0,d.useLayoutMode)(),{leftPanel:C}=(0,d.useLayoutState)(),T=C.current===`left-panel-manifest`,[{size:E},D]=(0,p.useGridOptions)(`manifest-grid-size`),[O,k]=(0,m.useState)(!1),A=(0,m.useMemo)(()=>(y||[]).map(e=>e.id).join(`|`),[y]),j=(0,h.useVaultSelector)(e=>{let t={};for(let n of y||[])t[n.id]=(0,d.getResourceTagsFromState)(e,{id:n.id,type:`Canvas`});return t},[A]),M=(0,h.useVaultSelector)(e=>{let t={};for(let n of y||[])t[n.id]=(0,d.getCanvasProgressStatusFromState)(e,{id:n.id,type:`Canvas`});return t},[A]),[N,P]=(0,m.useMemo)(()=>{let e=(y||[]).filter(e=>j[e.id]?.some(e=>e.type===d.FLAG_TAG.type&&e.id===d.FLAG_TAG.id));return O?[e,e.length]:[y||[],e.length]},[y,j,O]),F=t.id===`exhibition-slideshow-editor`?`exhibition-slideshow-slide`:t.id===`exhibition-editor`?`exhibition-slide`:null,I=F?(e,t)=>v.createFiltered(F,e,t):v.create;return!y||y.length===0?(0,g.jsx)(`div`,{children:(0,g.jsx)(p.ManifestOverviewEmptyState,{onCreate:I,canCreate:_})}):(0,g.jsxs)(g.Fragment,{children:[s?(0,g.jsxs)(x,{children:[D,(0,g.jsxs)(`div`,{className:`flex gap-2`,children:[P>0&&(0,g.jsxs)(p.ActionButton,{primary:O,"aria-pressed":O,onPress:()=>k(e=>!e),children:[(0,g.jsx)(d.ManifestEditorTagIcon,{icon:d.FLAG_TAG.icon,className:`text-xl`}),` `,e(`workflow.showOnlyFlagged`)]}),(0,g.jsxs)(p.ActionButton,{isDisabled:!_,onPress:()=>I(),children:[(0,g.jsx)(p.AddIcon,{className:`text-xl`}),` `,e(`workflow.addNewCanvas`)]}),(0,g.jsx)(p.ActionButton,{"aria-label":e(`workflow.browseIiifResources`),onPress:()=>v.creator(`@manifest-editor/iiif-browser-creator`),children:(0,g.jsx)(p.IIIFBrowserIcon,{"aria-hidden":`true`,className:`text-xl`})})]})]}):null,O&&N.length===0?(0,g.jsx)(`div`,{className:`p-6 text-sm text-gray-500`,children:e(`workflow.noFlaggedCanvases`)}):(0,g.jsx)(b,{children:(0,g.jsx)(p.ThumbnailGridContainer,{wide:!0,size:E,children:N.map(e=>(0,g.jsx)(p.CanvasThumbnailGridItem,{id:e.id,selected:e.id===l,active:e.id===l,icon:(0,g.jsx)(w,{tags:j[e.id]||[],status:M[e.id]||`none`}),onClick:()=>{r({id:`current-canvas`}),S==="default"&&T&&r({id:`canvas-listing`,state:{gridView:!0}}),v.edit(e)}},e.id))})})]})}function w({tags:e,status:t}){return(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(d.ManifestEditorCanvasProgressOverlay,{status:t}),(0,g.jsx)(d.ManifestEditorTagOverlay,{tags:e})]})}const T=({title:e,titleId:t,...n})=>(0,g.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,g.jsx)(`title`,{id:t,children:e}):null,(0,g.jsxs)(`g`,{fill:`none`,children:[(0,g.jsx)(`path`,{d:`M0 0h24v24H0V0z`}),(0,g.jsx)(`path`,{d:`M0 0h24v24H0V0z`,opacity:`.87`})]}),(0,g.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`})]}),E={id:`canvas-listing`,label:`Canvases`,labelMessage:y(`panels.canvases`),icon:(0,g.jsx)(T,{}),render:(e,t,n)=>(0,g.jsx)(D,{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 D({gridView:e,onChangeGridView:t}){let n=(0,f.useTranslations)(`manifest`),{structural:r,technical:i}=(0,d.useManifestEditor)(),[a,o]=(0,u.useToggleList)(),{items:s}=r,c={id:i.id.get(),type:`Manifest`},[l,h]=(0,d.useCreator)(c,`items`,`Canvas`,void 0,{isPainting:!0}),_=(0,p.useFastList)(s.get(),24);return(0,m.useLayoutEffect)(()=>{let e=document.querySelector(`[data-canvas-selected="true"]`);e&&e.scrollIntoView({block:`center`})},[_,e]),(0,g.jsxs)(p.Sidebar,{children:[(0,g.jsx)(p.SidebarHeader,{title:n(`panels.canvases`),actions:[{icon:(0,g.jsx)(g.Fragment,{children:e?(0,g.jsx)(T,{width:24,height:24}):(0,g.jsx)(F,{})}),title:n(e?`workflow.listView`:`workflow.gridView`),onClick:()=>{t(!e)}},{icon:(0,g.jsx)(P,{}),title:n(`workflow.editCanvases`),toggled:a.items,onClick:()=>o(`items`)},{icon:(0,g.jsx)(p.IIIFBrowserIcon,{className:`text-2xl`}),title:n(`workflow.iiifBrowser`),onClick:()=>h.creator(`@manifest-editor/iiif-browser-creator`),disabled:!l},{icon:(0,g.jsx)(p.CreateCanvasIcon,{}),title:n(`workflow.addNewCanvas`),onClick:()=>h.create(),disabled:!l}]}),e?(0,g.jsx)(k,{isEditing:a.items}):(0,g.jsx)(A,{isEditing:a.items})]})}function O(){let{edit:e,open:t,leftPanel:n}=(0,d.useLayoutActions)(),r=(0,d.useLayoutMode)(),i=(0,u.useInStack)(`Canvas`),{technical:a,structural:o}=(0,d.useManifestEditor)(),{items:s}=o,c={id:a.id.get(),type:`Manifest`},l=(0,p.useFastList)(s.get(),24),[f,m]=(0,d.useCreator)(c,`items`,`Canvas`,void 0,{isPainting:!0});return{canvas:i,canvases:l,items:s,canvasActions:m,open:t,edit:e,closeAfterCanvasSelect:()=>{r===`focused`&&n.close()},canCreateCanvas:f}}function k({isEditing:e}){let{canvas:t,items:n,canvasActions:r,open:i,closeAfterCanvasSelect:a}=O(),o=(0,h.useManifest)(),s=(0,d.useEditingStack)(),c=n.get(),l=t?.resource.source.id,f=c.findIndex(e=>e.id===l),m=f&&f>0?Number(f-1):0;function _(){s.close();let e=n.get();e&&e.length>0?r.edit(e[m]):r.edit(o)}return(0,g.jsx)(p.SidebarContent,{children:(0,g.jsx)(p.ThumbnailGridContainer,{children:(0,g.jsx)(u.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,u.createAppActions)(n,_),inlineActions:e?j:void 0,thumbnailIcon:M})})})}function A({isEditing:e,onDelete:t}){let{canvas:n,items:r,canvasActions:i,open:a,closeAfterCanvasSelect:o}=O(),s=(0,h.useManifest)(),c=(0,d.useEditingStack)(),l=r.get()||[],f=n?.resource.source.id,m=l.findIndex(e=>e.id===f),_=m&&m>0?Number(m-1):0;function v(){c.close();let e=r.get();e&&e.length>0?i.edit(e[_]):i.edit(s)}return(0,g.jsx)(p.SidebarContent,{className:`p-3`,children:(0,g.jsx)(u.InputContainer,{$wide:!0,children:(0,g.jsx)(u.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,u.createAppActions)(r,()=>t?t(e.id):v())(e,n,i),inlineActions:e?j:void 0})})})}function j(e){let t=(0,v.toRef)(e);return t?.id?(0,g.jsx)(N,{canvasId:t.id}):null}function M(e){let t=(0,v.toRef)(e);if(!t?.id)return null;let n={id:t.id,type:`Canvas`};return(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(d.ManifestEditorCanvasProgressOverlay,{resource:n}),(0,g.jsx)(d.ManifestEditorTagOverlay,{resource:n})]})}function N({canvasId:e}){let t=(0,f.useTranslations)(`manifest`),n={id:e,type:`Canvas`},r=(0,d.useResourceTags)(n),{toggleTag:i}=(0,d.useResourceTagActions)(n),a=r.some(e=>e.type===d.FLAG_TAG.type&&e.id===d.FLAG_TAG.id);return(0,g.jsx)(`button`,{type:`button`,"aria-label":t(a?`workflow.removeFlag`:`workflow.flagCanvas`),"aria-pressed":a,title:t(a?`workflow.removeFlag`:`workflow.flagCanvas`),className:[`relative flex aspect-square items-center justify-center rounded-sm p-0.5 text-xl hover:bg-me-primary-100`,a?`bg-red-100 text-red-700`:`text-gray-500`].join(` `),onPointerDown:e=>e.stopPropagation(),onClick:e=>{e.preventDefault(),e.stopPropagation(),i(d.FLAG_TAG)},children:(0,g.jsx)(d.ManifestEditorTagIcon,{icon:d.FLAG_TAG.icon,className:`h-6 w-6`})})}function P(e){return(0,g.jsxs)(`svg`,{className:`text-xl`,xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,viewBox:`0 0 24 24`,...e,children:[(0,g.jsx)(`path`,{d:`M0 0h24v24H0V0z`,fill:`none`}),(0,g.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 F(){return(0,g.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,height:`24`,viewBox:`0 0 24 24`,width:`24`,children:[(0,g.jsx)(`path`,{d:`M0 0h24v24H0V0z`,fill:`none`}),(0,g.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 I({title:e,titleId:t,...n}){return(0,g.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,"aria-labelledby":t,...n,children:[e?(0,g.jsx)(`title`,{id:t,children:e}):null,(0,g.jsx)(`path`,{d:`M0 0h24v24H0V0z`,fill:`none`}),(0,g.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 L={id:`left-panel-manifest`,label:`Manifest summary`,labelMessage:y(`workflow.manifestSummary`),icon:(0,g.jsx)(I,{}),render:(e,t,n)=>(0,g.jsx)(z,{})};function R(e){return(0,g.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,viewBox:`0 0 24 24`,...e,children:(0,g.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 z(){let e=(0,f.useTranslations)(`manifest`),{descriptive:t,technical:n}=(0,d.useManifestEditor)(),r=n.id.get(),i=t.label.get(),a=t.summary.get(),o=t.requiredStatement.get(),s=t.metadata.get(),c=(0,d.useEditingResource)(),l=(0,d.useEditingStack)(),{rightPanel:m}=(0,d.useLayoutState)(),{edit:_,rightPanel:v}=(0,d.useLayoutActions)(),y=m.open&&m.current===`@manifest-editor/editor`&&c?.resource.source.id===r&&c.resource.source.type===`Manifest`;return(0,g.jsxs)(p.Sidebar,{children:[(0,g.jsx)(p.SidebarHeader,{title:e(`workflow.manifestSummary`),actions:[{icon:y?(0,g.jsx)(p.CheckIcon,{className:`text-xl`}):(0,g.jsx)(R,{className:`text-xl`}),title:e(y?`workflow.finishEditing`:`workflow.editMetadata`),toggled:y,onClick:()=>{if(y){v.close(),l.close();return}_({id:r,type:`Manifest`},void 0,{forceOpen:!0,selectedTab:`@manifest-editor/descriptive-properties`})}}]}),(0,g.jsxs)(p.SidebarContent,{className:`p-4`,children:[(0,g.jsx)(u.InlineLocaleStringEditor,{as:`h2`,placeholder:e(`workflow.manifestTitlePlaceholder`),className:`text-lg font-semibold [&>a]:underline [&>a]:hover:text-slate-400`,buttonClassName:`mb-3`,editor:t.label,children:i}),(0,g.jsx)(u.InlineLocaleStringEditor,{multiline:!0,enableDangerouslySetInnerHTML:!0,as:`p`,placeholder:e(`workflow.manifestSummaryPlaceholder`),className:`text-sm text-slate-800 block [&>a]:underline [&>a]:hover:text-slate-400`,buttonClassName:`mb-3`,editor:t.summary,children:a}),(0,g.jsx)(`hr`,{}),o?(0,g.jsxs)(g.Fragment,{children:[(0,g.jsxs)(`div`,{className:`py-2 text-black`,children:[(0,g.jsx)(h.LocaleString,{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}),(0,g.jsx)(h.LocaleString,{enableDangerouslySetInnerHTML:!0,className:`text-sm [&>a]:underline [&>a]:hover:text-slate-400`,children:o.value})]}),(0,g.jsx)(`hr`,{})]}):null,s&&s.length===0?(0,g.jsx)(`div`,{className:`py-2 text-gray-600`,children:e(`workflow.metadataHelp`)}):null,(0,g.jsx)(h.ManifestMetadata,{allowHtml:!0,classes:{container:`w-full`,row:`border-b border-gray-200 flex flex-col py-2`,label:`font-bold text-black w-full text-sm font-semibold mb-1 [overflow-wrap:anywhere]`,value:`text-sm text-black block [overflow-wrap:anywhere] [&>span>a]:underline [&>span>a]:hover:text-slate-400`,empty:`text-gray-600`}})]})]})}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return E}});
20
+ //# sourceMappingURL=components-CkquOgim.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components-CkquOgim.cjs","names":["createMessageReference","ManifestIcon","useTranslations","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","useTranslations","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","useTranslations","useManifestEditor","useEditingResource","useEditingStack","useLayoutState","useLayoutActions","Sidebar","SidebarHeader","CheckIcon","SidebarContent","InlineLocaleStringEditor","LocaleString","ManifestMetadata"],"sources":["../src/i18n.ts","../src/center-panels/manifest-overview.tsx","../src/left-panels/canvas-listing.tsx","../src/left-panels/manifest.tsx"],"sourcesContent":["import { createMessageReference, type MessageReference, type MessageValues } from \"@manifest-editor/i18n/core\";\n\n/** Display metadata only. Never put a translator in IIIF, task or worker payloads. */\nexport function manifestMessage(key: string, values?: MessageValues): MessageReference {\n return createMessageReference(\"manifest\", key, values ? { values } : undefined);\n}\n","import { useTranslations } from \"@manifest-editor/i18n\";\nimport { manifestMessage } from \"../i18n\";\nimport {\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(0.5rem + var(--manifest-editor-layout-left-sidebar-small, 0px));\n padding-inline-end: calc(0.5rem + var(--manifest-editor-layout-right-sidebar-large, 0px));\n`;\n\nexport const manifestOverview: LayoutPanel = {\n id: \"overview\",\n label: \"Overview\",\n labelMessage: manifestMessage(\"panels.overview\"),\n icon: <ManifestIcon />,\n render: () => <ManifestOverviewCenterPanel />,\n};\n\nexport function ManifestOverviewCenterPanel() {\n const t = useTranslations(\"manifest\");\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\" /> {t(\"workflow.showOnlyFlagged\")}\n </ActionButton>\n )}\n <ActionButton isDisabled={!canCreateCanvas} onPress={() => createCanvas()}>\n <AddIcon className=\"text-xl\" /> {t(\"workflow.addNewCanvas\")}\n </ActionButton>\n <ActionButton\n aria-label={t(\"workflow.browseIiifResources\")}\n onPress={() => canvasActions.creator(\"@manifest-editor/iiif-browser-creator\")}\n >\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\">{t(\"workflow.noFlaggedCanvases\")}</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 { useTranslations } from \"@manifest-editor/i18n\";\nimport { manifestMessage } from \"../i18n\";\nimport {\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 labelMessage: manifestMessage(\"panels.canvases\"),\n icon: <CanvasListingIcon />,\n render: (state, ctx, app) => {\n return (\n <CanvasListing\n gridView={state.gridView || localStorage.getItem(\"canvas-listing-view-mode\") === \"grid\"}\n onChangeGridView={(gridView) => {\n localStorage.setItem(\"canvas-listing-view-mode\", gridView ? \"grid\" : \"list\");\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 t = useTranslations(\"manifest\");\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(manifest, \"items\", \"Canvas\", undefined, { isPainting: true });\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={t(\"panels.canvases\")}\n actions={[\n {\n icon: <>{gridView ? <CanvasListingIcon width={24} height={24} /> : <CanvasThumbnailsIcon />}</>,\n title: gridView ? t(\"workflow.listView\") : t(\"workflow.gridView\"),\n onClick: () => {\n onChangeGridView(!gridView);\n },\n },\n {\n icon: <ListEditIcon />,\n title: t(\"workflow.editCanvases\"),\n toggled: toggled.items,\n onClick: () => toggle(\"items\"),\n },\n {\n icon: <IIIFBrowserIcon className=\"text-2xl\" />,\n title: t(\"workflow.iiifBrowser\"),\n onClick: () => canvasActions.creator(\"@manifest-editor/iiif-browser-creator\"),\n disabled: !canCreateCanvas,\n },\n {\n icon: <CreateCanvasIcon />,\n title: t(\"workflow.addNewCanvas\"),\n onClick: () => canvasActions.create(),\n disabled: !canCreateCanvas,\n },\n ]}\n />\n {gridView ? <CanvasGridView isEditing={toggled.items} /> : <CanvasListView isEditing={toggled.items} />}\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(manifest, \"items\", \"Canvas\", undefined, { isPainting: true });\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 } = 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 = 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={isEditing ? (t: any) => items.reorder(t.startIndex, t.endIndex) : undefined}\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 } = 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 = 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={isEditing ? (t) => items.reorder(t.startIndex, t.endIndex) : undefined}\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, () => (onDelete ? onDelete(ref.id) : onDeleteCanvas()))(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 t = useTranslations(\"manifest\");\n const resource = { id: canvasId, type: \"Canvas\" };\n const tags = useResourceTags(resource);\n const { toggleTag } = useResourceTagActions(resource);\n const flagged = tags.some((tag) => tag.type === FLAG_TAG.type && tag.id === FLAG_TAG.id);\n\n return (\n <button\n type=\"button\"\n aria-label={flagged ? t(\"workflow.removeFlag\") : t(\"workflow.flagCanvas\")}\n aria-pressed={flagged}\n title={flagged ? t(\"workflow.removeFlag\") : t(\"workflow.flagCanvas\")}\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 className=\"text-xl\" xmlns=\"http://www.w3.org/2000/svg\" width=\"1em\" height=\"1em\" viewBox=\"0 0 24 24\" {...props}>\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 xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\">\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 { useTranslations } from \"@manifest-editor/i18n\";\nimport { manifestMessage } from \"../i18n\";\nimport {\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 labelMessage: manifestMessage(\"workflow.manifestSummary\"),\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 t = useTranslations(\"manifest\");\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={t(\"workflow.manifestSummary\")}\n actions={[\n {\n icon: isEditingManifest ? (\n <CheckIcon className=\"text-xl\" />\n ) : (\n <EditManifestMetadataIcon className=\"text-xl\" />\n ),\n title: isEditingManifest ? t(\"workflow.finishEditing\") : t(\"workflow.editMetadata\"),\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={t(\"workflow.manifestTitlePlaceholder\")}\n className=\"text-lg font-semibold [&>a]:underline [&>a]:hover:text-slate-400\"\n buttonClassName=\"mb-3\"\n editor={descriptive.label}\n >\n {label}\n </InlineLocaleStringEditor>\n\n <InlineLocaleStringEditor\n multiline\n enableDangerouslySetInnerHTML\n as=\"p\"\n placeholder={t(\"workflow.manifestSummaryPlaceholder\")}\n className=\"text-sm text-slate-800 block [&>a]:underline [&>a]:hover:text-slate-400\"\n buttonClassName=\"mb-3\"\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 {t(\"workflow.metadataHelp\")}\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 py-2\",\n label:\n \"font-bold text-black w-full text-sm font-semibold mb-1 [overflow-wrap:anywhere]\",\n value:\n \"text-sm text-black block [overflow-wrap:anywhere] [&>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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"}
@@ -1 +1 @@
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;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./components-CkquOgim.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;
@@ -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"],"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"}
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":";;;iBAgEgB,+CAA2B,IAAA;;;cCzB9B,sBAAiB,OAAA,YAAA,SAI3B,SAAS;EAAmB;EAAgB;sBAAkB,IAAA;iBAwCjD,gBACd,UACA;EAEA;EACA,mBAAmB;oBACpB,IAAA;iBAsDe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA6BA,iBAAiB;EAAe;oBAAoB,IAAA;iBA6CpD,iBACd,WACA;EAEA;EACA,YAAY;oBACb,IAAA;iBAoGe,aAAa,OAAO,MAAM,SAAS,iCAAc,IAAA;iBAYjD,wCAAoB,IAAA;;;iBC3TpB,eACd,OACA,YACG,SACF,SAAS;EAAmB;EAAgB;oBAAkB,IAAA;iBAgDjD,iCAAa,IAAA"}
@@ -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"],"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"}
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":";;;iBAgEgB,+CAA2B,IAAA;;;cCzB9B,sBAAiB,OAAA,YAAA,SAI3B,SAAS;EAAmB;EAAgB;sBAAkB,IAAA;iBAwCjD,gBACd,UACA;EAEA;EACA,mBAAmB;oBACpB,IAAA;iBAsDe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA6BA,iBAAiB;EAAe;oBAAoB,IAAA;iBA6CpD,iBACd,WACA;EAEA;EACA,YAAY;oBACb,IAAA;iBAoGe,aAAa,OAAO,MAAM,SAAS,iCAAc,IAAA;iBAYjD,wCAAoB,IAAA;;;iBC3TpB,eACd,OACA,YACG,SACF,SAAS;EAAmB;EAAgB;oBAAkB,IAAA;iBAgDjD,iCAAa,IAAA"}
@@ -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-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};
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-8lKnKGG1.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};