@manifest-editor/components 1.3.1 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -31,13 +31,17 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
31
31
  // src/index.tsx
32
32
  var src_exports = {};
33
33
  __export(src_exports, {
34
+ AccessibilityButton: () => AccessibilityButton,
34
35
  ActionButton: () => ActionButton,
35
36
  AddIcon: () => AddIcon,
36
37
  AddImageIcon: () => AddImageIcon,
37
38
  AtlasBanner: () => AtlasBanner,
38
39
  AudioIcon: () => AudioIcon,
40
+ BackIcon: () => BackIcon,
39
41
  CanvasThumbnailGridItem: () => CanvasThumbnailGridItem,
40
42
  Card3D: () => Card3D,
43
+ CollectionIcon: () => CollectionIcon,
44
+ CollectionListItem: () => CollectionListItem,
41
45
  ConfirmSelectionButton: () => ConfirmSelectionButton,
42
46
  ControlButton: () => ControlButton,
43
47
  CreateCanvasIcon: () => CreateCanvasIcon,
@@ -50,6 +54,7 @@ __export(src_exports, {
50
54
  EmptyState: () => EmptyState,
51
55
  ErrorMessage: () => ErrorMessage,
52
56
  Form: () => Form,
57
+ GridIcon: () => GridIcon,
53
58
  HTMLEditor: () => HTMLEditor,
54
59
  HTMLIcon: () => HTMLIcon,
55
60
  HandleContainer: () => HandleContainer,
@@ -57,21 +62,31 @@ __export(src_exports, {
57
62
  IIIFLogo: () => IIIFLogo,
58
63
  IIIFMediaPlayer: () => IIIFMediaPlayer,
59
64
  IconButton: () => IconButton,
65
+ ImageListIcon: () => ImageListIcon,
66
+ InfoIcon: () => InfoIcon,
60
67
  ItemWithHandle: () => ItemWithHandle,
61
68
  LazyThumbnail: () => LazyThumbnail,
69
+ ListEditIcon: () => ListEditIcon,
70
+ ListingIcon: () => ListingIcon,
62
71
  MDXEditor: () => MDXEditor,
63
72
  ManifestEditorLogo: () => ManifestEditorLogo,
73
+ ManifestIcon: () => ManifestIcon,
74
+ ManifestListItem: () => ManifestListItem,
64
75
  ManifestOverviewEmptyState: () => ManifestOverviewEmptyState,
65
76
  MetadataContainer: () => MetadataContainer,
66
77
  Modal: () => Modal,
78
+ ModalBackSlot: () => ModalBackSlot,
67
79
  MoreMenu: () => MoreMenu2,
68
80
  OpaqueControls: () => OpaqueControls,
69
81
  PanelSideMenu: () => PanelSideMenu,
82
+ PreviewIcon: () => PreviewIcon,
70
83
  RenderTextualContent: () => RenderTextualContent,
84
+ ScaledImageIcon: () => ScaledImageIcon,
71
85
  Sidebar: () => Sidebar,
72
86
  SidebarContent: () => SidebarContent,
73
87
  SidebarHeader: () => SidebarHeader,
74
88
  SidebarTabs: () => SidebarTabs,
89
+ Spinner: () => Spinner,
75
90
  SvgControlBar: () => SvgControlBar,
76
91
  Tab: () => Tab,
77
92
  TabList: () => TabList,
@@ -94,32 +109,27 @@ var import_dist = require("iiif-browser/dist/index.css");
94
109
 
95
110
  // src/ActionButton.tsx
96
111
  var import_react_aria_components = require("react-aria-components");
97
-
98
- // src/utils.ts
99
- var import_clsx = require("clsx");
100
112
  var import_tailwind_merge = require("tailwind-merge");
101
- var cn = (...inputs) => {
102
- return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
103
- };
104
-
105
- // src/ActionButton.tsx
106
113
  var import_jsx_runtime = require("react/jsx-runtime");
107
114
  function ActionButton({
108
115
  className: className2,
109
116
  primary,
110
117
  center,
118
+ large,
111
119
  children,
112
120
  ...props
113
121
  }) {
114
122
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
115
123
  import_react_aria_components.Button,
116
124
  {
117
- className: cn(
125
+ className: (t) => (0, import_tailwind_merge.twMerge)(
118
126
  //
119
- "border-none flex gap-1 items-center px-2 py-1 bg-gray-100 text-me-primary-500 text-sm rounded hover:bg-gray-200",
127
+ "border-none flex gap-1 items-center bg-gray-100 text-me-primary-500 text-sm rounded hover:bg-gray-200",
120
128
  primary ? "bg-me-primary-500 text-white hover:bg-me-primary-600" : "",
121
129
  center ? "place-content-center" : "",
122
- className2
130
+ large ? "px-4 py-2" : "px-2 py-1",
131
+ t.isDisabled ? "opacity-70 cursor-not-allowed pointer-events-none" : "",
132
+ typeof className2 === "string" ? className2 : className2?.(t)
123
133
  ),
124
134
  ...props,
125
135
  children
@@ -127,12 +137,26 @@ function ActionButton({
127
137
  );
128
138
  }
129
139
 
130
- // src/Tooltip.tsx
131
- var React = __toESM(require("react"), 1);
132
- var import_react = require("@floating-ui/react");
140
+ // src/AccessibilityButton.tsx
133
141
  var import_react_aria_components2 = require("react-aria-components");
134
- var import_tailwind_merge2 = require("tailwind-merge");
135
142
  var import_jsx_runtime2 = require("react/jsx-runtime");
143
+ function AccessibilityButton({ className: className2, children, ...props }) {
144
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_react_aria_components2.Button, { className: ["sr-only focus:not-sr-only p-2 bg-white text-black", className2].join(" "), ...props, children });
145
+ }
146
+
147
+ // src/utils.ts
148
+ var import_clsx = require("clsx");
149
+ var import_tailwind_merge2 = require("tailwind-merge");
150
+ var cn = (...inputs) => {
151
+ return (0, import_tailwind_merge2.twMerge)((0, import_clsx.clsx)(inputs));
152
+ };
153
+
154
+ // src/Tooltip.tsx
155
+ var import_react = require("@floating-ui/react");
156
+ var React = __toESM(require("react"), 1);
157
+ var import_react_aria_components3 = require("react-aria-components");
158
+ var import_tailwind_merge3 = require("tailwind-merge");
159
+ var import_jsx_runtime3 = require("react/jsx-runtime");
136
160
  function useTooltip({
137
161
  initialOpen = false,
138
162
  placement = "top",
@@ -186,12 +210,9 @@ var useTooltipContext = () => {
186
210
  }
187
211
  return context;
188
212
  };
189
- function Tooltip({
190
- children,
191
- ...options
192
- }) {
213
+ function Tooltip({ children, ...options }) {
193
214
  const tooltip = useTooltip(options);
194
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(TooltipContext.Provider, { value: tooltip, children });
215
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(TooltipContext.Provider, { value: tooltip, children });
195
216
  }
196
217
  var TooltipTrigger = React.forwardRef(function TooltipTrigger2({ children, asChild = false, ...props }, propRef) {
197
218
  const context = useTooltipContext();
@@ -208,8 +229,8 @@ var TooltipTrigger = React.forwardRef(function TooltipTrigger2({ children, asChi
208
229
  })
209
230
  );
210
231
  }
211
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
212
- import_react_aria_components2.Button,
232
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
233
+ import_react_aria_components3.Button,
213
234
  {
214
235
  ref,
215
236
  "data-state": context.open ? "open" : "closed",
@@ -218,12 +239,12 @@ var TooltipTrigger = React.forwardRef(function TooltipTrigger2({ children, asChi
218
239
  }
219
240
  );
220
241
  });
221
- var TooltipContent = React.forwardRef(function TooltipContent2({ style, ...props }, propRef) {
242
+ var TooltipContent = React.forwardRef(function TooltipContent2({ style, root, ...props }, propRef) {
222
243
  const context = useTooltipContext();
223
244
  const ref = (0, import_react.useMergeRefs)([context.refs.setFloating, propRef]);
224
245
  if (!context.open)
225
246
  return null;
226
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_react.FloatingPortal, { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
247
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_react.FloatingPortal, { root, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
227
248
  "div",
228
249
  {
229
250
  ref,
@@ -236,36 +257,34 @@ var TooltipContent = React.forwardRef(function TooltipContent2({ style, ...props
236
257
  ) });
237
258
  });
238
259
  function DefaultTooltipContent(props) {
239
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
260
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
240
261
  TooltipContent,
241
262
  {
242
- className: (0, import_tailwind_merge2.twMerge)(
243
- "bg-me-gray-900 text-white text-sm px-3 py-2 rounded-lg opacity-90 z-50",
244
- props.className
245
- ),
263
+ root: props.root,
264
+ className: (0, import_tailwind_merge3.twMerge)("bg-me-gray-900 text-white text-sm px-3 py-2 rounded opacity-90 z-50", props.className),
246
265
  children: props.children
247
266
  }
248
267
  );
249
268
  }
250
269
 
251
270
  // src/Sidebar.tsx
252
- var import_jsx_runtime3 = require("react/jsx-runtime");
271
+ var import_jsx_runtime4 = require("react/jsx-runtime");
253
272
  function Sidebar({ children }) {
254
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "w-full h-full flex flex-col overflow-hidden", children });
273
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "w-full h-full flex flex-col overflow-hidden", children });
255
274
  }
256
275
  function SidebarContent({
257
276
  children,
258
277
  className: className2,
259
278
  padding
260
279
  }) {
261
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: cn("flex-1 min-h-0 overflow-y-auto pb-64", className2, padding && "px-3 pt-3"), children });
280
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: cn("flex-1 min-h-0 overflow-y-auto pb-64", className2, padding && "px-3 pt-3"), children });
262
281
  }
263
282
  function SidebarHeader(props) {
264
283
  const { actions, title } = props;
265
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "bg-me-gray-100 h-12 flex items-center px-3 z-10 text-black border-b-me-gray-300 border-b flex-shrink-0", children: [
266
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "flex-1", children: title }),
267
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "ml-auto flex gap-2 items-center", children: actions?.map((action, index) => /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(Tooltip, { placement: "bottom", children: [
268
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
284
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "bg-me-gray-100 h-12 flex items-center px-3 z-10 text-black border-b-me-gray-300 border-b flex-shrink-0", children: [
285
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "flex-1", children: title }),
286
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "ml-auto flex gap-2 items-center", children: actions?.map((action, index) => /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(Tooltip, { placement: "bottom", children: [
287
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
269
288
  "button",
270
289
  {
271
290
  className: cn(
@@ -281,18 +300,18 @@ function SidebarHeader(props) {
281
300
  },
282
301
  index
283
302
  ) }),
284
- !action.disabled ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(DefaultTooltipContent, { children: action.title }) : null
303
+ !action.disabled ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(DefaultTooltipContent, { children: action.title }) : null
285
304
  ] }, index)) })
286
305
  ] });
287
306
  }
288
307
 
289
308
  // src/PanelSideMenu.tsx
290
- var import_jsx_runtime5 = require("react/jsx-runtime");
309
+ var import_jsx_runtime6 = require("react/jsx-runtime");
291
310
 
292
311
  // src/PanelSideMenuItem.tsx
293
- var import_jsx_runtime4 = require("react/jsx-runtime");
312
+ var import_jsx_runtime5 = require("react/jsx-runtime");
294
313
  function PanelSideMenuItem(props) {
295
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Tooltip, { placement: "right", children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
314
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Tooltip, { placement: "right", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
296
315
  "button",
297
316
  {
298
317
  className: cn(
@@ -303,18 +322,18 @@ function PanelSideMenuItem(props) {
303
322
  onMouseDown: props.onClick,
304
323
  children: [
305
324
  props.icon,
306
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(TooltipContent, { className: "bg-me-gray-900 text-white text-sm px-3 py-2 rounded-lg opacity-90 z-50", children: props.label })
325
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(TooltipContent, { className: "bg-me-gray-900 text-white text-sm px-3 py-2 rounded opacity-90 z-50", children: props.label })
307
326
  ]
308
327
  }
309
328
  ) }) });
310
329
  }
311
330
 
312
331
  // src/PanelSideMenu.tsx
313
- var import_jsx_runtime6 = require("react/jsx-runtime");
332
+ var import_jsx_runtime7 = require("react/jsx-runtime");
314
333
  function PanelSideMenu(props) {
315
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "bg-white border-me-gray-300 border-t border-r flex flex-col w-12 pb-2", "data-open": props.open, children: props.items.map((panel) => /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime5.Fragment, { children: [
316
- panel.divide ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "flex-1 block w-2 min-h-1" }) : null,
317
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
334
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "bg-white border-me-gray-300 border-t border-r flex flex-col w-12 pb-2", "data-open": props.open, children: props.items.map((panel) => /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_jsx_runtime6.Fragment, { children: [
335
+ panel.divide ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "flex-1 block w-2 min-h-1" }) : null,
336
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
318
337
  PanelSideMenuItem,
319
338
  {
320
339
  label: panel.label,
@@ -328,24 +347,24 @@ function PanelSideMenu(props) {
328
347
  }
329
348
 
330
349
  // src/ThumbnailGridContainer.tsx
331
- var import_jsx_runtime7 = require("react/jsx-runtime");
350
+ var import_jsx_runtime8 = require("react/jsx-runtime");
332
351
  function ThumbnailGridContainer(props) {
333
352
  if (props.wide) {
334
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "grid grid-md gap-4 p-4 overflow-y-auto", children: props.children });
353
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "grid grid-md gap-4 p-4 overflow-y-auto", children: props.children });
335
354
  }
336
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "grid grid-cols-2 gap-4 p-4", children: props.children });
355
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "grid grid-cols-2 gap-4 p-4", children: props.children });
337
356
  }
338
357
 
339
358
  // src/LazyThumbnail.tsx
340
359
  var import_react2 = require("react");
341
360
  var import_react_iiif_vault = require("react-iiif-vault");
342
361
  var import_react_lazy_load_image_component = require("react-lazy-load-image-component");
343
- var import_tailwind_merge3 = require("tailwind-merge");
362
+ var import_tailwind_merge4 = require("tailwind-merge");
344
363
 
345
364
  // src/Spinner.tsx
346
- var import_jsx_runtime8 = require("react/jsx-runtime");
365
+ var import_jsx_runtime9 = require("react/jsx-runtime");
347
366
  function Spinner(props) {
348
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
367
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
349
368
  "svg",
350
369
  {
351
370
  width: "1em",
@@ -354,9 +373,9 @@ function Spinner(props) {
354
373
  xmlns: "http://www.w3.org/2000/svg",
355
374
  stroke: "currentColor",
356
375
  ...props,
357
- children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("g", { transform: "translate(2 2)", strokeWidth: 5, fill: "none", fillRule: "evenodd", children: [
358
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("circle", { strokeOpacity: 0.5, cx: 18, cy: 18, r: 18 }),
359
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("path", { d: "M36 18c0-9.94-8.06-18-18-18", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
376
+ children: /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("g", { transform: "translate(2 2)", strokeWidth: 5, fill: "none", fillRule: "evenodd", children: [
377
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("circle", { strokeOpacity: 0.5, cx: 18, cy: 18, r: 18 }),
378
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("path", { d: "M36 18c0-9.94-8.06-18-18-18", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
360
379
  "animateTransform",
361
380
  {
362
381
  attributeName: "transform",
@@ -373,9 +392,9 @@ function Spinner(props) {
373
392
  }
374
393
 
375
394
  // src/icons/TextIcon.tsx
376
- var import_jsx_runtime9 = require("react/jsx-runtime");
395
+ var import_jsx_runtime10 = require("react/jsx-runtime");
377
396
  function TextIcon(props) {
378
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
397
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
379
398
  "svg",
380
399
  {
381
400
  xmlns: "http://www.w3.org/2000/svg",
@@ -384,8 +403,8 @@ function TextIcon(props) {
384
403
  viewBox: "0 0 24 24",
385
404
  ...props,
386
405
  children: [
387
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("title", { children: "Text" }),
388
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
406
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("title", { children: "Text" }),
407
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
389
408
  "path",
390
409
  {
391
410
  fill: "currentColor",
@@ -398,12 +417,12 @@ function TextIcon(props) {
398
417
  }
399
418
 
400
419
  // src/LazyThumbnail.tsx
401
- var import_jsx_runtime10 = require("react/jsx-runtime");
420
+ var import_jsx_runtime11 = require("react/jsx-runtime");
402
421
  function LazyThumbnail({
403
422
  cover,
404
423
  fade = true
405
424
  }) {
406
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_lazy_load_image_component.LazyLoadComponent, { children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(LazyThumbnailInner, { cover, fade }) });
425
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_lazy_load_image_component.LazyLoadComponent, { children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(LazyThumbnailInner, { cover, fade }) });
407
426
  }
408
427
  var renderCache = /* @__PURE__ */ new Map();
409
428
  function LazyThumbnailInner({
@@ -436,8 +455,8 @@ function LazyThumbnailInner({
436
455
  },
437
456
  [isCached]
438
457
  );
439
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: `w-full h-full relative`, children: [
440
- thumbnail?.id ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
458
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: `w-full h-full relative`, children: [
459
+ thumbnail?.id ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
441
460
  "img",
442
461
  {
443
462
  onLoad: () => setIsLoading(false),
@@ -446,15 +465,15 @@ function LazyThumbnailInner({
446
465
  alt: "",
447
466
  className: `w-full h-full ${cover ? "object-cover" : "object-contain"} ${!isLoading ? isCached ? "" : "animate-fadeIn" : "opacity-0"}`
448
467
  }
449
- ) : /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(ThumbnailFallback, {}),
450
- !thumbnail?.id || isLoading ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
468
+ ) : /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(ThumbnailFallback, {}),
469
+ !thumbnail?.id || isLoading ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
451
470
  "div",
452
471
  {
453
- className: (0, import_tailwind_merge3.twMerge)(
472
+ className: (0, import_tailwind_merge4.twMerge)(
454
473
  "absolute inset-0 flex items-center justify-center bg-me-gray-100 text-2xl z-10",
455
474
  fade && "animate-fadeIn"
456
475
  ),
457
- children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Spinner, {})
476
+ children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Spinner, {})
458
477
  }
459
478
  ) : null
460
479
  ] });
@@ -462,9 +481,9 @@ function LazyThumbnailInner({
462
481
  function ThumbnailFallback() {
463
482
  const [strategy] = (0, import_react_iiif_vault.useRenderingStrategy)();
464
483
  if (strategy.type === "textual-content") {
465
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "text-black/30 flex items-center justify-center h-full bg-me-gray-100 animate-fadeInDelayed absolute inset-0 z-20", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(TextIcon, { className: "w-16 h-16" }) });
484
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "text-black/30 flex items-center justify-center h-full bg-me-gray-100 animate-fadeInDelayed absolute inset-0 z-20", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(TextIcon, { className: "w-16 h-16" }) });
466
485
  }
467
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "text-black/30 flex items-center justify-center h-full bg-me-gray-100 animate-fadeInDelayed absolute inset-0 z-20", children: "No thumbnail" });
486
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "text-black/30 flex items-center justify-center h-full bg-me-gray-100 animate-fadeInDelayed absolute inset-0 z-20", children: "No thumbnail" });
468
487
  }
469
488
 
470
489
  // src/CanvasThumbnailGridItem.tsx
@@ -472,18 +491,18 @@ var import_react_iiif_vault3 = require("react-iiif-vault");
472
491
 
473
492
  // src/CanvasLabel.tsx
474
493
  var import_react_iiif_vault2 = require("react-iiif-vault");
475
- var import_jsx_runtime11 = require("react/jsx-runtime");
494
+ var import_jsx_runtime12 = require("react/jsx-runtime");
476
495
  function CanvasLabel(props) {
477
496
  const canvas = (0, import_react_iiif_vault2.useCanvas)();
478
497
  if (!canvas)
479
498
  return null;
480
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_iiif_vault2.LocaleString, { className: props.className, as: props.as, children: canvas.label });
499
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_iiif_vault2.LocaleString, { className: props.className, as: props.as, children: canvas.label });
481
500
  }
482
501
 
483
502
  // src/Card3D.tsx
484
503
  var import_react3 = require("react");
485
- var import_tailwind_merge4 = require("tailwind-merge");
486
- var import_jsx_runtime12 = require("react/jsx-runtime");
504
+ var import_tailwind_merge5 = require("tailwind-merge");
505
+ var import_jsx_runtime13 = require("react/jsx-runtime");
487
506
  function Card3D({
488
507
  className: className2,
489
508
  shouldTranslate,
@@ -554,11 +573,11 @@ function Card3D({
554
573
  outer.current.removeEventListener("mousemove", mousemove);
555
574
  };
556
575
  }, []);
557
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
576
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
558
577
  "div",
559
578
  {
560
579
  ref: outer,
561
- className: (0, import_tailwind_merge4.twMerge)(
580
+ className: (0, import_tailwind_merge5.twMerge)(
562
581
  //
563
582
  "relative transition-all hover:duration-50",
564
583
  shouldTranslate && "hover:shadow-xl",
@@ -567,7 +586,7 @@ function Card3D({
567
586
  ...props,
568
587
  children: [
569
588
  children,
570
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
589
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
571
590
  "div",
572
591
  {
573
592
  className: "pointer-events-none absolute inset-0 transition-all",
@@ -583,10 +602,10 @@ function Card3D({
583
602
  }
584
603
 
585
604
  // src/CanvasThumbnailGridItem.tsx
586
- var import_jsx_runtime13 = require("react/jsx-runtime");
605
+ var import_jsx_runtime14 = require("react/jsx-runtime");
587
606
  function CanvasThumbnailGridItem(props) {
588
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react_iiif_vault3.CanvasContext, { canvas: props.id, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { onMouseDown: props.onClick, className: "flex flex-col", "data-canvas-selected": props.selected, children: [
589
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: "bg-me-gray-100 w-full aspect-square flex-1 overflow-hidden rounded", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
607
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_iiif_vault3.CanvasContext, { canvas: props.id, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { onMouseDown: props.onClick, className: "flex flex-col", "data-canvas-selected": props.selected, children: [
608
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "bg-me-gray-100 w-full aspect-square flex-1 overflow-hidden rounded", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
590
609
  Card3D,
591
610
  {
592
611
  "data-canvas-selected": props.active,
@@ -595,82 +614,68 @@ function CanvasThumbnailGridItem(props) {
595
614
  "border-2 border-transparent p-1 w-full h-full rounded",
596
615
  props.selected && "border-me-primary-500"
597
616
  ),
598
- children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(LazyThumbnail, {})
617
+ children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(LazyThumbnail, {})
599
618
  }
600
619
  ) }),
601
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(CanvasLabel, { className: "text-sm text-center truncate mt-1", as: "div" })
620
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(CanvasLabel, { className: "text-sm text-center truncate mt-1", as: "div" })
602
621
  ] }) });
603
622
  }
604
623
 
605
624
  // src/Modal.tsx
606
625
  var import_react4 = require("@headlessui/react");
607
- var import_jsx_runtime14 = require("react/jsx-runtime");
608
- function Modal({
609
- id,
610
- title,
611
- open = true,
612
- onClose,
613
- actions,
614
- children
615
- }) {
616
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_jsx_runtime14.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
617
- import_react4.Dialog,
618
- {
619
- open,
620
- onClose,
621
- id,
622
- className: "relative z-[500]",
623
- children: [
624
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
625
- "div",
626
- {
627
- className: `fixed inset-0 bg-black/30 animate-fadeIn z-[501]`,
628
- "aria-hidden": "true"
629
- }
630
- ),
631
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "fixed inset-0 flex w-screen items-center justify-center p-4 z-[502]", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "relative p-4 w-full max-w-4xl max-h-full", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_react4.DialogPanel, { className: "relative bg-white rounded-lg overflow-hidden shadow-2xl max-h-[80vh] flex flex-col", children: [
632
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "flex items-center justify-between p-4 md:p-5 rounded-t-lg sticky top-0 bg-white", children: [
633
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react4.DialogTitle, { className: "text-xl font-semibold text-gray-900 ", children: title }),
634
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_react4.CloseButton, { className: "text-gray-400 bg-transparent hover:bg-gray-200 hover:text-gray-900 rounded-lg text-sm w-8 h-8 ms-auto inline-flex justify-center items-center", children: [
635
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
636
- "svg",
626
+ var import_react_dom = require("react-dom");
627
+ var import_jsx_runtime15 = require("react/jsx-runtime");
628
+ function ModalBackSlot({ children }) {
629
+ const element = document.getElementById("modal-back-slot");
630
+ if (!element)
631
+ return null;
632
+ return (0, import_react_dom.createPortal)(children, element);
633
+ }
634
+ function Modal({ id, title, open = true, onClose, actions, children }) {
635
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_jsx_runtime15.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_react4.Dialog, { open, onClose, id, className: "relative z-[500]", children: [
636
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: `fixed inset-0 bg-black/30 animate-fadeIn z-[501]`, "aria-hidden": "true" }),
637
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "fixed inset-0 flex w-screen items-center justify-center p-4 z-[502]", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "relative p-4 w-full max-w-4xl max-h-full", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_react4.DialogPanel, { className: "relative bg-white rounded-lg overflow-hidden shadow-2xl max-h-[80vh] flex flex-col", children: [
638
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "flex items-center justify-between gap-3 p-4 rounded-t-lg sticky top-0 bg-white", children: [
639
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { id: "modal-back-slot" }),
640
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react4.DialogTitle, { className: "text-xl font-semibold text-gray-900 ", children: title }),
641
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_react4.CloseButton, { className: "text-gray-400 bg-transparent hover:bg-gray-200 hover:text-gray-900 rounded-lg text-sm w-8 h-8 ms-auto inline-flex justify-center items-center", children: [
642
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
643
+ "svg",
644
+ {
645
+ className: "w-3 h-3",
646
+ "aria-hidden": "true",
647
+ xmlns: "http://www.w3.org/2000/svg",
648
+ fill: "none",
649
+ viewBox: "0 0 14 14",
650
+ children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
651
+ "path",
637
652
  {
638
- className: "w-3 h-3",
639
- "aria-hidden": "true",
640
- xmlns: "http://www.w3.org/2000/svg",
641
- fill: "none",
642
- viewBox: "0 0 14 14",
643
- children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
644
- "path",
645
- {
646
- stroke: "currentColor",
647
- strokeLinecap: "round",
648
- strokeLinejoin: "round",
649
- strokeWidth: "2",
650
- d: "m1 1 6 6m0 0 6 6M7 7l6-6M7 7l-6 6"
651
- }
652
- )
653
+ stroke: "currentColor",
654
+ strokeLinecap: "round",
655
+ strokeLinejoin: "round",
656
+ strokeWidth: "2",
657
+ d: "m1 1 6 6m0 0 6 6M7 7l6-6M7 7l-6 6"
653
658
  }
654
- ),
655
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "sr-only", children: "Close" })
656
- ] })
657
- ] }),
658
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "flex-1 min-h-0 overflow-y-auto flex flex-col", children }),
659
- actions ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "flex items-center p-4 md:p-5 border-t border-gray-200 rounded-b justify-end", children: actions }) : null
660
- ] }) }) })
661
- ]
662
- }
663
- ) });
659
+ )
660
+ }
661
+ ),
662
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "sr-only", children: "Close" })
663
+ ] })
664
+ ] }),
665
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "flex-1 min-h-0 overflow-y-auto flex flex-col", children }),
666
+ actions ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "flex items-center p-4 border-t border-gray-200 rounded-b justify-end", children: actions }) : null
667
+ ] }) }) })
668
+ ] }) });
664
669
  }
665
670
 
666
671
  // src/ControlButton.tsx
667
- var import_jsx_runtime15 = require("react/jsx-runtime");
672
+ var import_jsx_runtime16 = require("react/jsx-runtime");
668
673
  function ControlButton({
669
674
  children,
670
675
  className: className2,
671
676
  ...props
672
677
  }) {
673
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
678
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
674
679
  "button",
675
680
  {
676
681
  className: cn(
@@ -684,9 +689,9 @@ function ControlButton({
684
689
  }
685
690
 
686
691
  // src/OpaqueControls.tsx
687
- var import_jsx_runtime16 = require("react/jsx-runtime");
692
+ var import_jsx_runtime17 = require("react/jsx-runtime");
688
693
  function OpaqueControls(props) {
689
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
694
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
690
695
  "div",
691
696
  {
692
697
  className: cn("flex w-full p-0.5 opacity-0 transition-opacity duration-300 gap-2", props.active && "opacity-1"),
@@ -696,11 +701,11 @@ function OpaqueControls(props) {
696
701
  }
697
702
 
698
703
  // src/Tabs.tsx
699
- var import_react_aria_components3 = require("react-aria-components");
700
- var import_jsx_runtime17 = require("react/jsx-runtime");
704
+ var import_react_aria_components4 = require("react-aria-components");
705
+ var import_jsx_runtime18 = require("react/jsx-runtime");
701
706
  function Tabs({ className: className2, children, ...props }) {
702
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
703
- import_react_aria_components3.Tabs,
707
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
708
+ import_react_aria_components4.Tabs,
704
709
  {
705
710
  className: (state) => {
706
711
  const cs = typeof className2 === "function" ? className2(state) : className2;
@@ -716,8 +721,8 @@ function TabList({
716
721
  children,
717
722
  ...props
718
723
  }) {
719
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
720
- import_react_aria_components3.TabList,
724
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
725
+ import_react_aria_components4.TabList,
721
726
  {
722
727
  className: (state) => {
723
728
  const cs = typeof className2 === "function" ? className2(state) : className2;
@@ -729,8 +734,8 @@ function TabList({
729
734
  );
730
735
  }
731
736
  function Tab({ className: className2, children, ...props }) {
732
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
733
- import_react_aria_components3.Tab,
737
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
738
+ import_react_aria_components4.Tab,
734
739
  {
735
740
  className: (state) => {
736
741
  const cs = typeof className2 === "function" ? className2(state) : className2;
@@ -747,8 +752,8 @@ function Tab({ className: className2, children, ...props }) {
747
752
  );
748
753
  }
749
754
  function TabPanel({ className: className2, children, ...props }) {
750
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
751
- import_react_aria_components3.TabPanel,
755
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
756
+ import_react_aria_components4.TabPanel,
752
757
  {
753
758
  className: (state) => {
754
759
  const cs = typeof className2 === "function" ? className2(state) : className2;
@@ -761,44 +766,44 @@ function TabPanel({ className: className2, children, ...props }) {
761
766
  }
762
767
 
763
768
  // src/CreatorGrid.tsx
764
- var import_react_aria_components4 = require("react-aria-components");
765
- var import_tailwind_merge5 = require("tailwind-merge");
766
- var import_jsx_runtime18 = require("react/jsx-runtime");
769
+ var import_react_aria_components5 = require("react-aria-components");
770
+ var import_tailwind_merge6 = require("tailwind-merge");
771
+ var import_jsx_runtime19 = require("react/jsx-runtime");
767
772
  function CreatorGrid(props) {
768
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
769
- import_react_aria_components4.ListBox,
773
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
774
+ import_react_aria_components5.ListBox,
770
775
  {
771
776
  orientation: "horizontal",
772
777
  "aria-label": props.label,
773
778
  selectionMode: "single",
774
779
  items: props.items,
775
780
  className: "grid grid-sm gap-4 p-4 mb-8",
776
- children: (item) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(CreatorGridItem, { ...item })
781
+ children: (item) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(CreatorGridItem, { ...item })
777
782
  }
778
783
  );
779
784
  }
780
785
  function CreatorGridItem(props) {
781
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
782
- import_react_aria_components4.ListBoxItem,
786
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
787
+ import_react_aria_components5.ListBoxItem,
783
788
  {
784
789
  id: props.id,
785
790
  onAction: props.onClick,
786
- className: ($s) => (0, import_tailwind_merge5.twMerge)(
791
+ className: ($s) => (0, import_tailwind_merge6.twMerge)(
787
792
  "bg-white p-2 border-me-gray-300 rounded-md border hover:border-me-primary-500",
788
793
  $s.isFocused && "border-me-primary-500 outline-me-primary-500 outline-2"
789
794
  ),
790
795
  children: [
791
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "rounded bg-me-gray-300 mb-2 flex items-center justify-center py-1 aspect-square", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "text-center [&>svg]:w-16 [&>svg]:h-16", children: props.icon }) }),
792
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "text-center font-semibold text-sm", children: props.title }),
793
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "text-sm text-center text-black/50", children: props.description })
796
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "rounded bg-me-gray-300 mb-2 flex items-center justify-center py-1 aspect-square", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "text-center [&>svg]:w-16 [&>svg]:h-16", children: props.icon }) }),
797
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "text-center font-semibold text-sm", children: props.title }),
798
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "text-sm text-center text-black/50", children: props.description })
794
799
  ]
795
800
  }
796
801
  );
797
802
  }
798
803
 
799
804
  // src/icons/DownloadIcon.tsx
800
- var import_jsx_runtime19 = require("react/jsx-runtime");
801
- var DownloadIcon = (props) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", fill: "#5f6368", viewBox: "0 -960 960 960", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
805
+ var import_jsx_runtime20 = require("react/jsx-runtime");
806
+ var DownloadIcon = (props) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", fill: "#5f6368", viewBox: "0 -960 960 960", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
802
807
  "path",
803
808
  {
804
809
  d: "M480-320 280-520l56-58 104 104v-326h80v326l104-104 56 58-200 200ZM240-160q-33 0-56.5-23.5T160-240v-120h80v120h480v-120h80v120q0 33-23.5 56.5T720-160H240Z",
@@ -808,10 +813,10 @@ var DownloadIcon = (props) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("svg
808
813
 
809
814
  // src/DownloadButton.tsx
810
815
  var import_react_aria = require("react-aria");
811
- var import_jsx_runtime20 = require("react/jsx-runtime");
816
+ var import_jsx_runtime21 = require("react/jsx-runtime");
812
817
  function DownloadButton({ label, id: _id, getData, fileName, fileType }) {
813
818
  const id = (0, import_react_aria.useId)(_id);
814
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Tooltip, { placement: "bottom", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
819
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Tooltip, { placement: "bottom", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
815
820
  TooltipTrigger,
816
821
  {
817
822
  className: "bg-me-gray-100 hover:bg-me-primary-500 hover:text-white p-1 rounded-md text-me-primary-500 text-2xl",
@@ -819,8 +824,8 @@ function DownloadButton({ label, id: _id, getData, fileName, fileType }) {
819
824
  id,
820
825
  onPress: () => createDownload(getData(), fileName, fileType),
821
826
  children: [
822
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(DownloadIcon, { "aria-labelledby": _id }),
823
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(DefaultTooltipContent, { children: label })
827
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(DownloadIcon, { "aria-labelledby": _id }),
828
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(DefaultTooltipContent, { children: label })
824
829
  ]
825
830
  }
826
831
  ) });
@@ -840,11 +845,11 @@ function createDownload(data, fileName, fileType = "text/json") {
840
845
  }
841
846
 
842
847
  // src/AtlasBanner.tsx
843
- var import_jsx_runtime21 = require("react/jsx-runtime");
848
+ var import_jsx_runtime22 = require("react/jsx-runtime");
844
849
  function AtlasBanner({ children, controlsId }) {
845
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "bg-me-gray-100 border-b text-black p-1 flex gap-4 items-center h-12", children: [
846
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "px-4", children }),
847
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { id: controlsId || "atlas-controls", className: "flex gap-2" })
850
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "bg-me-gray-100 border-b text-black p-1 flex gap-4 items-center h-12", children: [
851
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "px-4", children }),
852
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { id: controlsId || "atlas-controls", className: "flex gap-2" })
848
853
  ] });
849
854
  }
850
855
 
@@ -852,8 +857,8 @@ function AtlasBanner({ children, controlsId }) {
852
857
  var import_react_iiif_vault4 = require("react-iiif-vault");
853
858
 
854
859
  // src/icons/DrawIcon.tsx
855
- var import_jsx_runtime22 = require("react/jsx-runtime");
856
- var DrawIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
860
+ var import_jsx_runtime23 = require("react/jsx-runtime");
861
+ var DrawIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
857
862
  "svg",
858
863
  {
859
864
  xmlns: "http://www.w3.org/2000/svg",
@@ -863,8 +868,8 @@ var DrawIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0, import_jsx_
863
868
  "aria-labelledby": titleId,
864
869
  ...props,
865
870
  children: [
866
- title ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("title", { id: titleId, children: title }) : null,
867
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
871
+ title ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("title", { id: titleId, children: title }) : null,
872
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
868
873
  "path",
869
874
  {
870
875
  fill: "currentColor",
@@ -876,8 +881,8 @@ var DrawIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0, import_jsx_
876
881
  );
877
882
 
878
883
  // src/icons/PolygonIcon.tsx
879
- var import_jsx_runtime23 = require("react/jsx-runtime");
880
- var PolygonIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
884
+ var import_jsx_runtime24 = require("react/jsx-runtime");
885
+ var PolygonIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
881
886
  "svg",
882
887
  {
883
888
  xmlns: "http://www.w3.org/2000/svg",
@@ -887,8 +892,8 @@ var PolygonIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0, import_j
887
892
  "aria-labelledby": titleId,
888
893
  ...props,
889
894
  children: [
890
- title ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("title", { id: titleId, children: title }) : null,
891
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
895
+ title ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("title", { id: titleId, children: title }) : null,
896
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
892
897
  "path",
893
898
  {
894
899
  fill: "currentColor",
@@ -900,34 +905,34 @@ var PolygonIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0, import_j
900
905
  );
901
906
 
902
907
  // src/icons/LineIcon.tsx
903
- var import_jsx_runtime24 = require("react/jsx-runtime");
908
+ var import_jsx_runtime25 = require("react/jsx-runtime");
904
909
  function LineIcon({ title, titleId, ...props }) {
905
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", "aria-labelledby": titleId, ...props, children: [
906
- title ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("title", { id: titleId, children: title }) : null,
907
- /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("g", { fill: "none", fillRule: "evenodd", children: [
908
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("circle", { cx: 4.5, cy: 4.5, r: 2.5, fill: "currentColor" }),
909
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("circle", { cx: 15.5, cy: 15.5, r: 2.5, fill: "currentColor" }),
910
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("path", { stroke: "currentColor", strokeLinecap: "square", strokeWidth: 2, d: "m13.5 13.5-9-9" })
910
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", "aria-labelledby": titleId, ...props, children: [
911
+ title ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("title", { id: titleId, children: title }) : null,
912
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("g", { fill: "none", fillRule: "evenodd", children: [
913
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("circle", { cx: 4.5, cy: 4.5, r: 2.5, fill: "currentColor" }),
914
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("circle", { cx: 15.5, cy: 15.5, r: 2.5, fill: "currentColor" }),
915
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("path", { stroke: "currentColor", strokeLinecap: "square", strokeWidth: 2, d: "m13.5 13.5-9-9" })
911
916
  ] })
912
917
  ] });
913
918
  }
914
919
 
915
920
  // src/icons/LineBoxIcon.tsx
916
- var import_jsx_runtime25 = require("react/jsx-runtime");
921
+ var import_jsx_runtime26 = require("react/jsx-runtime");
917
922
  function LineBoxIcon({ title, titleId, ...props }) {
918
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", "aria-labelledby": titleId, ...props, children: [
919
- title ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("title", { id: titleId, children: title }) : null,
920
- /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("g", { fill: "none", fillRule: "evenodd", children: [
921
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("path", { d: "M0 0h20v20H0z" }),
922
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("path", { stroke: "currentColor", strokeLinecap: "square", strokeWidth: 2, d: "m8.5 11.5 6-6M16 4v3m0-3h-3m0 14L2 7" }),
923
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("path", { stroke: "currentColor", strokeOpacity: 0.407, strokeWidth: 2, d: "m2 7 5-5 11 11-5 5z" })
923
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", "aria-labelledby": titleId, ...props, children: [
924
+ title ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("title", { id: titleId, children: title }) : null,
925
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("g", { fill: "none", fillRule: "evenodd", children: [
926
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("path", { d: "M0 0h20v20H0z" }),
927
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("path", { stroke: "currentColor", strokeLinecap: "square", strokeWidth: 2, d: "m8.5 11.5 6-6M16 4v3m0-3h-3m0 14L2 7" }),
928
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("path", { stroke: "currentColor", strokeOpacity: 0.407, strokeWidth: 2, d: "m2 7 5-5 11 11-5 5z" })
924
929
  ] })
925
930
  ] });
926
931
  }
927
932
 
928
933
  // src/icons/ShapesIcon.tsx
929
- var import_jsx_runtime26 = require("react/jsx-runtime");
930
- var ShapesIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
934
+ var import_jsx_runtime27 = require("react/jsx-runtime");
935
+ var ShapesIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
931
936
  "svg",
932
937
  {
933
938
  xmlns: "http://www.w3.org/2000/svg",
@@ -937,8 +942,8 @@ var ShapesIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0, import_js
937
942
  "aria-labelledby": titleId,
938
943
  ...props,
939
944
  children: [
940
- title ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("title", { id: titleId, children: title }) : null,
941
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
945
+ title ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("title", { id: titleId, children: title }) : null,
946
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
942
947
  "path",
943
948
  {
944
949
  fill: "currentColor",
@@ -950,8 +955,8 @@ var ShapesIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0, import_js
950
955
  );
951
956
 
952
957
  // src/icons/SquareIcon.tsx
953
- var import_jsx_runtime27 = require("react/jsx-runtime");
954
- var SquareIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
958
+ var import_jsx_runtime28 = require("react/jsx-runtime");
959
+ var SquareIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
955
960
  "svg",
956
961
  {
957
962
  xmlns: "http://www.w3.org/2000/svg",
@@ -961,8 +966,8 @@ var SquareIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0, import_js
961
966
  "aria-labelledby": titleId,
962
967
  ...props,
963
968
  children: [
964
- title ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("title", { id: titleId, children: title }) : null,
965
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
969
+ title ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("title", { id: titleId, children: title }) : null,
970
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
966
971
  "path",
967
972
  {
968
973
  fill: "currentColor",
@@ -974,8 +979,8 @@ var SquareIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0, import_js
974
979
  );
975
980
 
976
981
  // src/icons/TriangleIcon.tsx
977
- var import_jsx_runtime28 = require("react/jsx-runtime");
978
- var TriangleIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
982
+ var import_jsx_runtime29 = require("react/jsx-runtime");
983
+ var TriangleIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
979
984
  "svg",
980
985
  {
981
986
  xmlns: "http://www.w3.org/2000/svg",
@@ -985,15 +990,15 @@ var TriangleIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0, import_
985
990
  "aria-labelledby": titleId,
986
991
  ...props,
987
992
  children: [
988
- title ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("title", { id: titleId, children: title }) : null,
989
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("path", { d: "m80-160 400-640 400 640H80Zm144-80h512L480-650 224-240Zm256-205Z", fill: "currentColor" })
993
+ title ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("title", { id: titleId, children: title }) : null,
994
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("path", { d: "m80-160 400-640 400 640H80Zm144-80h512L480-650 224-240Zm256-205Z", fill: "currentColor" })
990
995
  ]
991
996
  }
992
997
  );
993
998
 
994
999
  // src/icons/HexagonIcon.tsx
995
- var import_jsx_runtime29 = require("react/jsx-runtime");
996
- var HexagonIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
1000
+ var import_jsx_runtime30 = require("react/jsx-runtime");
1001
+ var HexagonIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
997
1002
  "svg",
998
1003
  {
999
1004
  xmlns: "http://www.w3.org/2000/svg",
@@ -1003,8 +1008,8 @@ var HexagonIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0, import_j
1003
1008
  "aria-labelledby": titleId,
1004
1009
  ...props,
1005
1010
  children: [
1006
- title ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("title", { id: titleId, children: title }) : null,
1007
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
1011
+ title ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("title", { id: titleId, children: title }) : null,
1012
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
1008
1013
  "path",
1009
1014
  {
1010
1015
  fill: "currentColor",
@@ -1016,12 +1021,12 @@ var HexagonIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0, import_j
1016
1021
  );
1017
1022
 
1018
1023
  // src/icons/DeleteForeverIcon.tsx
1019
- var import_jsx_runtime30 = require("react/jsx-runtime");
1024
+ var import_jsx_runtime31 = require("react/jsx-runtime");
1020
1025
  function DeleteForeverIcon(props) {
1021
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("svg", { height: "1em", width: "1em", viewBox: "0 0 24 24", ...props, children: [
1022
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("path", { d: "M0 0h24v24H0z", fill: "none" }),
1023
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("path", { d: "M0 0h24v24H0V0z", fill: "none" }),
1024
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
1026
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("svg", { height: "1em", width: "1em", viewBox: "0 0 24 24", ...props, children: [
1027
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("path", { d: "M0 0h24v24H0z", fill: "none" }),
1028
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("path", { d: "M0 0h24v24H0V0z", fill: "none" }),
1029
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
1025
1030
  "path",
1026
1031
  {
1027
1032
  d: "M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zm2.46-7.12l1.41-1.41L12 12.59l2.12-2.12 1.41 1.41L13.41 14l2.12 2.12-1.41 1.41L12 15.41l-2.12 2.12-1.41-1.41L10.59 14l-2.13-2.12zM15.5 4l-1-1h-5l-1 1H5v2h14V4z",
@@ -1033,18 +1038,18 @@ function DeleteForeverIcon(props) {
1033
1038
 
1034
1039
  // src/SvgControlBar.tsx
1035
1040
  var import_react5 = require("react");
1036
- var import_jsx_runtime31 = require("react/jsx-runtime");
1041
+ var import_jsx_runtime32 = require("react/jsx-runtime");
1037
1042
  var className = 'bg-me-gray-100 border hover:bg-me-gray-300 rounded p-1 text-2xl text-me-primary-500 data-[active="true"]:border-me-primary-600';
1038
1043
  var icons = {
1039
- DrawIcon: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(DrawIcon, {}),
1040
- PolygonIcon: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(PolygonIcon, {}),
1041
- LineIcon: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(LineIcon, {}),
1042
- LineBoxIcon: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(LineBoxIcon, {}),
1043
- ShapesIcon: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(ShapesIcon, {}),
1044
- SquareIcon: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(SquareIcon, {}),
1045
- TriangleIcon: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(TriangleIcon, {}),
1046
- HexagonIcon: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(HexagonIcon, {}),
1047
- DeleteForeverIcon: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(DeleteForeverIcon, {})
1044
+ DrawIcon: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(DrawIcon, {}),
1045
+ PolygonIcon: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(PolygonIcon, {}),
1046
+ LineIcon: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(LineIcon, {}),
1047
+ LineBoxIcon: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(LineBoxIcon, {}),
1048
+ ShapesIcon: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(ShapesIcon, {}),
1049
+ SquareIcon: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(SquareIcon, {}),
1050
+ TriangleIcon: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(TriangleIcon, {}),
1051
+ HexagonIcon: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(HexagonIcon, {}),
1052
+ DeleteForeverIcon: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(DeleteForeverIcon, {})
1048
1053
  };
1049
1054
  function SvgControlBar({
1050
1055
  helper,
@@ -1054,7 +1059,7 @@ function SvgControlBar({
1054
1059
  (0, import_react5.useEffect)(() => {
1055
1060
  helper.stamps.square();
1056
1061
  }, []);
1057
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
1062
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
1058
1063
  import_react_iiif_vault4.RenderSvgEditorControls,
1059
1064
  {
1060
1065
  icons,
@@ -1069,18 +1074,18 @@ function SvgControlBar({
1069
1074
  }
1070
1075
 
1071
1076
  // src/ConfirmSelectionButton.tsx
1072
- var import_react_aria_components5 = require("react-aria-components");
1073
- var import_jsx_runtime32 = require("react/jsx-runtime");
1077
+ var import_react_aria_components6 = require("react-aria-components");
1078
+ var import_jsx_runtime33 = require("react/jsx-runtime");
1074
1079
  function ConfirmSelectionButton({ onPress, children }) {
1075
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_react_aria_components5.Button, { className: "bg-me-primary-500 px-3 py-1 hover:bg-me-primary-600 text-white rounded", onPress, children });
1080
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_react_aria_components6.Button, { className: "bg-me-primary-500 px-3 py-1 hover:bg-me-primary-600 text-white rounded", onPress, children });
1076
1081
  }
1077
1082
 
1078
1083
  // src/ManifestOverviewEmptyState.tsx
1079
- var import_react_aria_components6 = require("react-aria-components");
1080
- var import_jsx_runtime33 = require("react/jsx-runtime");
1084
+ var import_react_aria_components7 = require("react-aria-components");
1085
+ var import_jsx_runtime34 = require("react/jsx-runtime");
1081
1086
  function ManifestOverviewEmptyState({ onCreate, canCreate }) {
1082
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: "flex items-center flex-col gap-5 py-16", children: [
1083
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
1087
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "flex items-center flex-col gap-5 py-16", children: [
1088
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
1084
1089
  Card3D,
1085
1090
  {
1086
1091
  shouldTranslate: true,
@@ -1088,10 +1093,10 @@ function ManifestOverviewEmptyState({ onCreate, canCreate }) {
1088
1093
  className: "border-2 border-dotted bg-black/5 aspect-[3/4] rounded w-32 border-black"
1089
1094
  }
1090
1095
  ),
1091
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "font-bold text-lg", children: "Let's get started!" }),
1092
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "max-w-xl px-5 my-4", children: "Add a title and top level information for this manifest using the editing panel on the right, and then add some canvases and content." }),
1093
- canCreate ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
1094
- import_react_aria_components6.Button,
1096
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: "font-bold text-lg", children: "Let's get started!" }),
1097
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: "max-w-xl px-5 my-4", children: "Add a title and top level information for this manifest using the editing panel on the right, and then add some canvases and content." }),
1098
+ canCreate ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
1099
+ import_react_aria_components7.Button,
1095
1100
  {
1096
1101
  className: "px-8 font-bold py-2 border rounded-lg border-me-primary-500 text-me-primary-500 hover:border-me-primary-600 hover:text-me-primary-600",
1097
1102
  onPress: onCreate,
@@ -1103,10 +1108,10 @@ function ManifestOverviewEmptyState({ onCreate, canCreate }) {
1103
1108
 
1104
1109
  // src/SidebarTabs.tsx
1105
1110
  var import_react6 = require("react");
1106
- var import_react_aria_components7 = require("react-aria-components");
1111
+ var import_react_aria_components8 = require("react-aria-components");
1107
1112
  var import_collections = require("@react-aria/collections");
1108
- var import_react_dom = require("react-dom");
1109
- var import_jsx_runtime34 = require("react/jsx-runtime");
1113
+ var import_react_dom2 = require("react-dom");
1114
+ var import_jsx_runtime35 = require("react/jsx-runtime");
1110
1115
  function SidebarTabs({
1111
1116
  menu,
1112
1117
  menuId,
@@ -1155,24 +1160,24 @@ function SidebarTabs({
1155
1160
  };
1156
1161
  }, []);
1157
1162
  const menuHidden = menu.filter((item, idx) => hidden >= menu.length - idx);
1158
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_jsx_runtime34.Fragment, { children: [
1159
- /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
1160
- import_react_aria_components7.Tabs,
1163
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_jsx_runtime35.Fragment, { children: [
1164
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
1165
+ import_react_aria_components8.Tabs,
1161
1166
  {
1162
1167
  className: "w-full flex-1 overflow-hidden flex flex-col",
1163
1168
  selectedKey,
1164
1169
  onSelectionChange,
1165
1170
  children: [
1166
- /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "flex items-center w-full tab-shadow", children: [
1167
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
1168
- import_react_aria_components7.TabList,
1171
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "flex items-center w-full tab-shadow", children: [
1172
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
1173
+ import_react_aria_components8.TabList,
1169
1174
  {
1170
1175
  ref,
1171
1176
  className: "flex-1 overflow-hidden w-full flex text-sm whitespace-nowrap",
1172
1177
  children: menu.map((item, idx) => {
1173
1178
  const isHidden = hidden >= menu.length - idx;
1174
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
1175
- import_react_aria_components7.Tab,
1179
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
1180
+ import_react_aria_components8.Tab,
1176
1181
  {
1177
1182
  ref: (el) => itemsRef.current[idx] = el,
1178
1183
  id: item.id,
@@ -1190,10 +1195,10 @@ function SidebarTabs({
1190
1195
  })
1191
1196
  }
1192
1197
  ),
1193
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { ref: setHiddenMenu, id: "hidden-menu" })
1198
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { ref: setHiddenMenu, id: "hidden-menu" })
1194
1199
  ] }),
1195
- menu.map((item) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
1196
- import_react_aria_components7.TabPanel,
1200
+ menu.map((item) => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
1201
+ import_react_aria_components8.TabPanel,
1197
1202
  {
1198
1203
  id: item.id,
1199
1204
  className: "flex-1 overflow-y-auto h-full",
@@ -1205,8 +1210,8 @@ function SidebarTabs({
1205
1210
  },
1206
1211
  menuId
1207
1212
  ),
1208
- hiddenMenu && hidden > 0 ? (0, import_react_dom.createPortal)(
1209
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
1213
+ hiddenMenu && hidden > 0 ? (0, import_react_dom2.createPortal)(
1214
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
1210
1215
  MoreMenu,
1211
1216
  {
1212
1217
  hidden,
@@ -1221,9 +1226,9 @@ function SidebarTabs({
1221
1226
  ] });
1222
1227
  }
1223
1228
  var MoreMenu = (0, import_collections.createHideableComponent)(({ selectedIndex, hidden, menuHidden, selectedKey, onSelectionChange }) => {
1224
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_react_aria_components7.MenuTrigger, { children: [
1225
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
1226
- import_react_aria_components7.Button,
1229
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_react_aria_components8.MenuTrigger, { children: [
1230
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
1231
+ import_react_aria_components8.Button,
1227
1232
  {
1228
1233
  className: cn(
1229
1234
  "border-none rounded bg-gray-100 px-1.5 py-1 mr-2 mb-1 text-me-primary-500 semibold uppercase text-[10px]",
@@ -1232,13 +1237,13 @@ var MoreMenu = (0, import_collections.createHideableComponent)(({ selectedIndex,
1232
1237
  children: "MORE"
1233
1238
  }
1234
1239
  ),
1235
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_react_aria_components7.Popover, { children: menuHidden.length ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
1236
- import_react_aria_components7.Menu,
1240
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_react_aria_components8.Popover, { children: menuHidden.length ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
1241
+ import_react_aria_components8.Menu,
1237
1242
  {
1238
1243
  className: "bg-white rounded shadow-lg flex flex-col gap-0.5 p-0.5 min-w-28",
1239
1244
  children: menuHidden.map((item) => {
1240
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
1241
- import_react_aria_components7.MenuItem,
1245
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
1246
+ import_react_aria_components8.MenuItem,
1242
1247
  {
1243
1248
  className: (state) => cn(
1244
1249
  "hover:bg-me-gray-100 p-1 rounded-sm text-sm",
@@ -1257,15 +1262,15 @@ var MoreMenu = (0, import_collections.createHideableComponent)(({ selectedIndex,
1257
1262
 
1258
1263
  // src/MetadataContainer.tsx
1259
1264
  var import_react_iiif_vault5 = require("react-iiif-vault");
1260
- var import_jsx_runtime35 = require("react/jsx-runtime");
1265
+ var import_jsx_runtime36 = require("react/jsx-runtime");
1261
1266
  function MetadataContainer({
1262
1267
  className: className2,
1263
1268
  label,
1264
1269
  children,
1265
1270
  ...props
1266
1271
  }) {
1267
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
1268
- "div",
1272
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
1273
+ "fieldset",
1269
1274
  {
1270
1275
  className: cn(
1271
1276
  "hover:ring ring-gray-200 focus-within:ring-me-primary-500 focus-within:ring p-2 rounded mb-2",
@@ -1273,7 +1278,7 @@ function MetadataContainer({
1273
1278
  ),
1274
1279
  ...props,
1275
1280
  children: [
1276
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_react_iiif_vault5.LocaleString, { className: "text-lg font-bold text-[#333] mb-2", as: "h3", children: label }),
1281
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react_iiif_vault5.LocaleString, { className: "text-lg font-bold text-[#333] mb-2", as: "h3", children: label }),
1277
1282
  children
1278
1283
  ]
1279
1284
  }
@@ -1281,9 +1286,9 @@ function MetadataContainer({
1281
1286
  }
1282
1287
 
1283
1288
  // src/EmptyState.tsx
1284
- var import_jsx_runtime36 = require("react/jsx-runtime");
1289
+ var import_jsx_runtime37 = require("react/jsx-runtime");
1285
1290
  function EmptyState(props) {
1286
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
1291
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
1287
1292
  "div",
1288
1293
  {
1289
1294
  className: cn(
@@ -1297,9 +1302,9 @@ function EmptyState(props) {
1297
1302
  }
1298
1303
 
1299
1304
  // src/ManifestEditorLogo.tsx
1300
- var import_jsx_runtime37 = require("react/jsx-runtime");
1305
+ var import_jsx_runtime38 = require("react/jsx-runtime");
1301
1306
  function ManifestEditorLogo(props) {
1302
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
1307
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
1303
1308
  "svg",
1304
1309
  {
1305
1310
  width: "1em",
@@ -1308,28 +1313,28 @@ function ManifestEditorLogo(props) {
1308
1313
  xmlns: "http://www.w3.org/2000/svg",
1309
1314
  className: "me-logo h-[23px] w-[176px]",
1310
1315
  ...props,
1311
- children: /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("g", { fill: "none", children: [
1312
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
1316
+ children: /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("g", { fill: "none", children: [
1317
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
1313
1318
  "path",
1314
1319
  {
1315
1320
  d: "M62.558 5.41v14.873h-2.983v-9.675l-3.985 9.675h-2.26l-4.006-9.675v9.675H46.34V5.41h3.388l4.73 11.06L59.19 5.41zm2.173 8.928c0-1.194.238-2.252.714-3.176.476-.923 1.123-1.633 1.94-2.13.816-.498 1.73-.746 2.738-.746.88 0 1.651.177 2.312.532.66.355 1.19.803 1.588 1.343V8.477h3.004v11.806h-3.004v-1.726c-.384.554-.913 1.012-1.588 1.374-.675.363-1.453.544-2.334.544-.994 0-1.9-.256-2.717-.767-.816-.512-1.463-1.233-1.939-2.163-.476-.93-.714-2-.714-3.207Zm9.292.042c0-.724-.143-1.346-.427-1.864a3.005 3.005 0 0 0-1.15-1.194 3.076 3.076 0 0 0-1.556-.415c-.554 0-1.066.135-1.534.405-.47.27-.85.664-1.14 1.182-.292.519-.437 1.133-.437 1.844 0 .71.145 1.331.437 1.864.29.533.674.941 1.15 1.226.476.284.984.426 1.524.426.554 0 1.073-.139 1.556-.416a3.005 3.005 0 0 0 1.15-1.193c.284-.519.427-1.14.427-1.865Zm12.466-6.073c1.406 0 2.543.444 3.41 1.332.866.888 1.3 2.127 1.3 3.718v6.926h-2.984v-6.52c0-.938-.234-1.66-.703-2.164-.47-.504-1.108-.756-1.918-.756-.824 0-1.474.252-1.95.756-.476.505-.714 1.226-.714 2.163v6.521h-2.983V8.477h2.983v1.47a4.121 4.121 0 0 1 1.524-1.203 4.713 4.713 0 0 1 2.035-.437Zm9.057-1.237c-.526 0-.963-.166-1.311-.5a1.657 1.657 0 0 1-.522-1.247c0-.497.174-.912.522-1.246.348-.334.785-.5 1.31-.5.526 0 .963.166 1.311.5.348.334.522.75.522 1.246 0 .498-.174.913-.522 1.247-.348.334-.785.5-1.31.5Zm1.47 1.407v11.806h-2.983V8.477h2.983Zm8.354 2.451h-2.068v9.355h-3.026v-9.355h-1.342v-2.45h1.342V7.88c0-1.45.412-2.515 1.236-3.197.824-.682 2.067-1.001 3.73-.959V6.24c-.725-.014-1.23.106-1.513.362-.284.256-.427.718-.427 1.385v.49h2.068v2.451Zm12.913 3.197c0 .426-.028.81-.085 1.15h-8.63c.07.853.369 1.52.895 2.003.525.483 1.172.725 1.939.725 1.108 0 1.896-.476 2.365-1.428h3.218c-.34 1.137-.994 2.07-1.96 2.802-.967.732-2.153 1.098-3.56 1.098-1.136 0-2.155-.252-3.057-.757a5.325 5.325 0 0 1-2.11-2.141c-.504-.924-.756-1.99-.756-3.197 0-1.222.248-2.294.745-3.218a5.204 5.204 0 0 1 2.089-2.13c.895-.498 1.925-.746 3.09-.746 1.122 0 2.127.241 3.015.724a5.1 5.1 0 0 1 2.067 2.057c.49.887.735 1.907.735 3.058Zm-3.09-.853c-.014-.767-.29-1.381-.83-1.843-.54-.462-1.201-.693-1.982-.693-.74 0-1.36.224-1.865.671-.504.448-.813 1.07-.927 1.865h5.604Zm9.782 7.203c-.966 0-1.833-.174-2.6-.522-.767-.348-1.375-.82-1.822-1.417a3.591 3.591 0 0 1-.735-1.982h3.004c.057.454.281.83.672 1.13.39.298.877.447 1.46.447.568 0 1.012-.114 1.331-.341.32-.227.48-.519.48-.874 0-.383-.196-.671-.586-.863-.391-.192-1.012-.401-1.865-.629-.88-.213-1.602-.433-2.163-.66a3.755 3.755 0 0 1-1.449-1.044c-.405-.47-.607-1.101-.607-1.897 0-.653.188-1.25.564-1.79.377-.54.917-.966 1.62-1.279.703-.312 1.53-.468 2.483-.468 1.406 0 2.528.351 3.367 1.054.838.704 1.3 1.652 1.385 2.845h-2.856c-.042-.469-.238-.841-.586-1.118-.348-.277-.813-.416-1.396-.416-.54 0-.955.1-1.246.298a.951.951 0 0 0-.437.831c0 .398.199.7.597.906.397.206 1.015.416 1.854.629.852.213 1.555.433 2.11.66a3.727 3.727 0 0 1 1.438 1.055c.405.476.614 1.105.628 1.886 0 .682-.188 1.293-.564 1.833-.377.54-.917.962-1.62 1.268-.703.305-1.524.458-2.461.458Zm10.569-9.547v5.711c0 .398.096.686.288.863.192.178.515.267.97.267h1.385v2.514h-1.875c-2.515 0-3.772-1.222-3.772-3.665v-5.69h-1.407v-2.45h1.407v-2.92h3.004v2.92h2.643v2.45h-2.643Zm12.851-3.111v3.73h5.007v2.364h-5.007v3.943h5.647v2.43h-8.631V5.386h8.63v2.43zm7.585 6.521c0-1.194.239-2.252.715-3.176.476-.923 1.126-1.633 1.95-2.13.824-.498 1.74-.746 2.749-.746.767 0 1.498.167 2.194.5.697.334 1.25.778 1.663 1.332V4.514h3.026v15.77h-3.026v-1.748c-.37.582-.888 1.051-1.556 1.406s-1.442.533-2.323.533a5.07 5.07 0 0 1-2.727-.767c-.824-.512-1.474-1.233-1.95-2.163-.476-.93-.714-2-.714-3.207Zm9.292.042c0-.724-.142-1.346-.426-1.864a3.005 3.005 0 0 0-1.151-1.194 3.076 3.076 0 0 0-1.556-.415 3.02 3.02 0 0 0-1.534.405c-.469.27-.849.664-1.14 1.182-.291.519-.437 1.133-.437 1.844 0 .71.146 1.331.437 1.864.291.533.675.941 1.15 1.226a2.93 2.93 0 0 0 1.524.426c.554 0 1.073-.139 1.556-.416a3.005 3.005 0 0 0 1.15-1.193c.285-.519.427-1.14.427-1.865Zm7.438-7.31c-.527 0-.963-.166-1.311-.5a1.657 1.657 0 0 1-.523-1.247c0-.497.174-.912.523-1.246.348-.334.784-.5 1.31-.5s.963.166 1.31.5c.349.334.523.75.523 1.246 0 .498-.174.913-.522 1.247-.348.334-.785.5-1.31.5Zm1.47 1.407v11.806h-2.984V8.477h2.984Zm6.414 2.451v5.711c0 .398.096.686.287.863.192.178.515.267.97.267h1.385v2.514h-1.875c-2.515 0-3.772-1.222-3.772-3.665v-5.69h-1.406v-2.45h1.406v-2.92h3.005v2.92h2.642v2.45h-2.642Zm10.036 9.547c-1.136 0-2.159-.252-3.068-.757a5.447 5.447 0 0 1-2.141-2.141c-.519-.924-.778-1.99-.778-3.197s.266-2.273.799-3.196a5.553 5.553 0 0 1 2.184-2.142c.924-.504 1.954-.756 3.09-.756 1.137 0 2.167.252 3.09.756a5.553 5.553 0 0 1 2.184 2.142c.533.923.8 1.989.8 3.196 0 1.208-.274 2.273-.821 3.197a5.681 5.681 0 0 1-2.216 2.141c-.93.505-1.971.757-3.122.757Zm0-2.6a3.1 3.1 0 0 0 1.524-.394c.476-.263.856-.657 1.14-1.183.285-.526.427-1.165.427-1.918 0-1.122-.295-1.985-.885-2.589a2.907 2.907 0 0 0-2.163-.906c-.852 0-1.566.302-2.141.906-.576.604-.863 1.467-.863 2.59 0 1.122.28 1.985.841 2.588.562.604 1.268.906 2.12.906Zm11.338-7.565a4.194 4.194 0 0 1 1.502-1.47c.618-.356 1.325-.533 2.12-.533v3.132h-.788c-.938 0-1.644.22-2.12.661-.476.44-.714 1.208-.714 2.302v5.881h-2.984V8.477h2.984v1.833Z",
1316
1321
  fill: "#000"
1317
1322
  }
1318
1323
  ),
1319
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("path", { fill: "#E94581", className: "me-logo-1", d: "M0 13.343 13.343 0l13.343 13.343-13.343 13.343z" }),
1320
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("path", { fill: "#E94581", className: "me-logo-2", d: "M12.137 13.346 25.48.003l13.343 13.343L25.48 26.69z" }),
1321
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("path", { fill: "#C63E75", className: "me-logo-3", d: "m12.104 13.348 7.311-7.311 7.312 7.311-7.312 7.312z" })
1324
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("path", { fill: "#E94581", className: "me-logo-1", d: "M0 13.343 13.343 0l13.343 13.343-13.343 13.343z" }),
1325
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("path", { fill: "#E94581", className: "me-logo-2", d: "M12.137 13.346 25.48.003l13.343 13.343L25.48 26.69z" }),
1326
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("path", { fill: "#C63E75", className: "me-logo-3", d: "m12.104 13.348 7.311-7.311 7.312 7.311-7.312 7.312z" })
1322
1327
  ] })
1323
1328
  }
1324
1329
  );
1325
1330
  }
1326
1331
 
1327
1332
  // src/Forms.tsx
1328
- var import_react_aria_components8 = require("react-aria-components");
1329
- var import_jsx_runtime38 = require("react/jsx-runtime");
1333
+ var import_react_aria_components9 = require("react-aria-components");
1334
+ var import_jsx_runtime39 = require("react/jsx-runtime");
1330
1335
  function MeLabel({ className: className2, ...props }) {
1331
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
1332
- import_react_aria_components8.Label,
1336
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
1337
+ import_react_aria_components9.Label,
1333
1338
  {
1334
1339
  className: cn(
1335
1340
  //
@@ -1341,8 +1346,8 @@ function MeLabel({ className: className2, ...props }) {
1341
1346
  );
1342
1347
  }
1343
1348
  function MeRadioGroup({ className: className2, ...props }) {
1344
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
1345
- import_react_aria_components8.RadioGroup,
1349
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
1350
+ import_react_aria_components9.RadioGroup,
1346
1351
  {
1347
1352
  className: cn(
1348
1353
  //
@@ -1354,8 +1359,8 @@ function MeRadioGroup({ className: className2, ...props }) {
1354
1359
  );
1355
1360
  }
1356
1361
  function MeRadio({ className: className2, ...props }) {
1357
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
1358
- import_react_aria_components8.Radio,
1362
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
1363
+ import_react_aria_components9.Radio,
1359
1364
  {
1360
1365
  className: (state) => cn(
1361
1366
  //
@@ -1367,8 +1372,8 @@ function MeRadio({ className: className2, ...props }) {
1367
1372
  );
1368
1373
  }
1369
1374
  function MeForm({ className: className2, ...props }) {
1370
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
1371
- import_react_aria_components8.Form,
1375
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
1376
+ import_react_aria_components9.Form,
1372
1377
  {
1373
1378
  className: cn(
1374
1379
  //
@@ -1380,8 +1385,22 @@ function MeForm({ className: className2, ...props }) {
1380
1385
  );
1381
1386
  }
1382
1387
  function MeInput({ className: className2, ...props }) {
1383
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
1384
- import_react_aria_components8.Input,
1388
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
1389
+ import_react_aria_components9.Input,
1390
+ {
1391
+ className: cn(
1392
+ //
1393
+ "p-2 bg-me-gray-100 border-b border-b-me-gray-500",
1394
+ "focus:ring-0 outline-0 focus:border-me-primary-500 focus:bg-[#ECEEF5]",
1395
+ className2
1396
+ ),
1397
+ ...props
1398
+ }
1399
+ );
1400
+ }
1401
+ function MeTextArea({ className: className2, ...props }) {
1402
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
1403
+ import_react_aria_components9.TextArea,
1385
1404
  {
1386
1405
  className: cn(
1387
1406
  //
@@ -1398,7 +1417,7 @@ function MeInputContainer({
1398
1417
  className: className2,
1399
1418
  ...props
1400
1419
  }) {
1401
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
1420
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
1402
1421
  "div",
1403
1422
  {
1404
1423
  className: cn(
@@ -1417,7 +1436,8 @@ var Form = {
1417
1436
  Label: MeLabel,
1418
1437
  InputContainer: MeInputContainer,
1419
1438
  RadioGroup: MeRadioGroup,
1420
- Radio: MeRadio
1439
+ Radio: MeRadio,
1440
+ TextArea: MeTextArea
1421
1441
  };
1422
1442
 
1423
1443
  // src/HTMLEditor.tsx
@@ -1430,12 +1450,12 @@ var import_turndown = __toESM(require("turndown"), 1);
1430
1450
  var import_style = require("@mdxeditor/editor/style.css");
1431
1451
  var import_editor = require("@mdxeditor/editor");
1432
1452
  var import_react7 = require("react");
1433
- var import_jsx_runtime39 = require("react/jsx-runtime");
1453
+ var import_jsx_runtime40 = require("react/jsx-runtime");
1434
1454
  function MDXEditor({
1435
1455
  editorRef,
1436
1456
  ...props
1437
1457
  }) {
1438
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
1458
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
1439
1459
  import_editor.MDXEditor,
1440
1460
  {
1441
1461
  plugins: (0, import_react7.useMemo)(
@@ -1451,14 +1471,14 @@ function MDXEditor({
1451
1471
  (0, import_editor.diffSourcePlugin)(),
1452
1472
  (0, import_editor.toolbarPlugin)({
1453
1473
  toolbarClassName: "mdx-toolbar",
1454
- toolbarContents: () => /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_jsx_runtime39.Fragment, { children: [
1474
+ toolbarContents: () => /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_jsx_runtime40.Fragment, { children: [
1455
1475
  " ",
1456
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_editor.UndoRedo, {}),
1457
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_editor.BoldItalicUnderlineToggles, {}),
1458
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_editor.BlockTypeSelect, {}),
1459
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_editor.ListsToggle, { options: ["bullet", "number"] }),
1460
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_editor.CreateLink, {}),
1461
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_editor.InsertImage, {})
1476
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_editor.UndoRedo, {}),
1477
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_editor.BoldItalicUnderlineToggles, {}),
1478
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_editor.BlockTypeSelect, {}),
1479
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_editor.ListsToggle, { options: ["bullet", "number"] }),
1480
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_editor.CreateLink, {}),
1481
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_editor.InsertImage, {})
1462
1482
  ] })
1463
1483
  })
1464
1484
  ],
@@ -1471,7 +1491,7 @@ function MDXEditor({
1471
1491
  }
1472
1492
 
1473
1493
  // src/HTMLEditor.tsx
1474
- var import_jsx_runtime40 = require("react/jsx-runtime");
1494
+ var import_jsx_runtime41 = require("react/jsx-runtime");
1475
1495
  var converter = new import_showdown.Converter();
1476
1496
  converter.setFlavor("github");
1477
1497
  var turndownService = new import_turndown.default();
@@ -1499,7 +1519,7 @@ function HTMLEditor({
1499
1519
  }
1500
1520
  };
1501
1521
  }, []);
1502
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
1522
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
1503
1523
  MDXEditor,
1504
1524
  {
1505
1525
  editorRef,
@@ -1524,34 +1544,39 @@ function HTMLEditor({
1524
1544
  }
1525
1545
 
1526
1546
  // src/IconButton.tsx
1527
- var import_tailwind_merge6 = require("tailwind-merge");
1528
- var import_jsx_runtime41 = require("react/jsx-runtime");
1547
+ var import_tailwind_merge7 = require("tailwind-merge");
1548
+ var import_jsx_runtime42 = require("react/jsx-runtime");
1529
1549
  function IconButton({
1530
1550
  children,
1531
1551
  active,
1532
1552
  label,
1533
1553
  disabled,
1534
- onPress
1554
+ onPress,
1555
+ root,
1556
+ className: className2,
1557
+ placement = "top"
1535
1558
  }) {
1536
- return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Tooltip, { placement: "top", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
1559
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Tooltip, { placement, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
1537
1560
  TooltipTrigger,
1538
1561
  {
1562
+ "aria-label": label,
1539
1563
  onClick: onPress,
1540
- className: (0, import_tailwind_merge6.twMerge)(
1564
+ className: (0, import_tailwind_merge7.twMerge)(
1541
1565
  "rounded flex items-center bg-white justify-center p-2 hover:bg-gray-100 text-2xl",
1542
1566
  active ? "bg-me-primary-500 bg-opacity-40 hover:bg-opacity-70 hover:bg-me-primary-500" : "",
1543
- disabled ? "opacity-50 pointer-events-none" : ""
1567
+ disabled ? "opacity-50 pointer-events-none" : "",
1568
+ className2
1544
1569
  ),
1545
1570
  children: [
1546
1571
  children,
1547
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(DefaultTooltipContent, { className: "translate-x-3", children: label })
1572
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(DefaultTooltipContent, { root, className: "translate-x-3 z-50", children: label })
1548
1573
  ]
1549
1574
  }
1550
1575
  ) });
1551
1576
  }
1552
1577
 
1553
1578
  // src/ItemWithHandle.tsx
1554
- var import_jsx_runtime42 = require("react/jsx-runtime");
1579
+ var import_jsx_runtime43 = require("react/jsx-runtime");
1555
1580
  function ItemWithHandle({
1556
1581
  children,
1557
1582
  handle,
@@ -1562,9 +1587,9 @@ function ItemWithHandle({
1562
1587
  // Tailwind
1563
1588
  "absolute flex p-1 gap-1 bg-white z-1 right-1 top-1 rounded"
1564
1589
  ) : "flex-shrink-0 flex items-center gap-1 px-1";
1565
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", { className: grid ? "relative flex flex-col" : "flex items-center", children: [
1566
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", { className: "flex-1 min-w-0", style: { flex: 1, minWidth: 0 }, children }),
1567
- /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", { className: gridStyleClassName, children: [
1590
+ return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: grid ? "relative flex flex-col" : "flex items-center", children: [
1591
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "flex-1 min-w-0", style: { flex: 1, minWidth: 0 }, children }),
1592
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: gridStyleClassName, children: [
1568
1593
  actions,
1569
1594
  handle
1570
1595
  ] })
@@ -1573,9 +1598,9 @@ function ItemWithHandle({
1573
1598
 
1574
1599
  // src/HandleContainer.tsx
1575
1600
  var import_react9 = require("react");
1576
- var import_jsx_runtime43 = require("react/jsx-runtime");
1601
+ var import_jsx_runtime44 = require("react/jsx-runtime");
1577
1602
  var HandleContainer = (0, import_react9.forwardRef)(function HandleContainer2({ className: className2, ...props }, ref) {
1578
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
1603
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
1579
1604
  "div",
1580
1605
  {
1581
1606
  ref,
@@ -1585,12 +1610,126 @@ var HandleContainer = (0, import_react9.forwardRef)(function HandleContainer2({
1585
1610
  );
1586
1611
  });
1587
1612
 
1613
+ // src/CollectionListItem.tsx
1614
+ var import_react_iiif_vault6 = require("react-iiif-vault");
1615
+
1616
+ // src/icons/CollectionIcon.tsx
1617
+ var import_jsx_runtime45 = require("react/jsx-runtime");
1618
+ function CollectionIcon(props) {
1619
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
1620
+ "svg",
1621
+ {
1622
+ xmlns: "http://www.w3.org/2000/svg",
1623
+ width: "1em",
1624
+ height: "1em",
1625
+ viewBox: "0 -960 960 960",
1626
+ "aria-label": "collection",
1627
+ role: "img",
1628
+ ...props,
1629
+ children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
1630
+ "path",
1631
+ {
1632
+ d: "M320-320h480v-480h-80v280l-100-60-100 60v-280H320v480Zm0 80q-33 0-56.5-23.5T240-320v-480q0-33 23.5-56.5T320-880h480q33 0 56.5 23.5T880-800v480q0 33-23.5 56.5T800-240H320ZM160-80q-33 0-56.5-23.5T80-160v-560h80v560h560v80H160Zm360-720h200-200Zm-200 0h480-480Z",
1633
+ fill: "currentColor"
1634
+ }
1635
+ )
1636
+ }
1637
+ );
1638
+ }
1639
+
1640
+ // src/CollectionListItem.tsx
1641
+ var import_react_aria2 = require("react-aria");
1642
+ var import_i18n = require("@iiif/helpers/i18n");
1643
+ var import_jsx_runtime46 = require("react/jsx-runtime");
1644
+ function CollectionListItem({ isActive, onAction }) {
1645
+ const collection = (0, import_react_iiif_vault6.useCollection)({});
1646
+ const { pressProps } = (0, import_react_aria2.usePress)({
1647
+ onPress: onAction
1648
+ });
1649
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
1650
+ "li",
1651
+ {
1652
+ "aria-label": (0, import_i18n.getValue)(collection?.label),
1653
+ className: "border-b-2 border-b-gray-200 flex p-2 gap-3 text-left truncate items-center w-full hover:bg-gray-100 data-[active]:bg-gray-200 data-[active]:border-b-me-primary-500",
1654
+ "data-active": isActive || void 0,
1655
+ ...pressProps,
1656
+ children: [
1657
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
1658
+ CollectionIcon,
1659
+ {
1660
+ "data-active": isActive || void 0,
1661
+ className: "flex-shrink-0 text-2xl data-[active]:text-me-primary-500 text-gray-400"
1662
+ }
1663
+ ),
1664
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_react_iiif_vault6.LocaleString, { children: collection?.label })
1665
+ ]
1666
+ }
1667
+ );
1668
+ }
1669
+
1670
+ // src/ManifestListItem.tsx
1671
+ var import_react_iiif_vault7 = require("react-iiif-vault");
1672
+
1673
+ // src/icons/ManifestIcon.tsx
1674
+ var import_jsx_runtime47 = require("react/jsx-runtime");
1675
+ function ManifestIcon(props) {
1676
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
1677
+ "svg",
1678
+ {
1679
+ xmlns: "http://www.w3.org/2000/svg",
1680
+ width: "1em",
1681
+ height: "1em",
1682
+ viewBox: "20 -910 960 960",
1683
+ "aria-label": "manifest",
1684
+ role: "img",
1685
+ ...props,
1686
+ children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
1687
+ "path",
1688
+ {
1689
+ d: "M480-160q-48-38-104-59t-116-21q-42 0-82.5 11T100-198q-21 11-40.5-1T40-234v-482q0-11 5.5-21T62-752q46-24 96-36t102-12q58 0 113.5 15T480-740v484q51-32 107-48t113-16q36 0 70.5 6t69.5 18v-480q15 5 29.5 10.5T898-752q11 5 16.5 15t5.5 21v482q0 23-19.5 35t-40.5 1q-37-20-77.5-31T700-240q-60 0-116 21t-104 59Zm80-200v-380l200-200v400L560-360Zm-160 65v-396q-33-14-68.5-21.5T260-720q-37 0-72 7t-68 21v397q35-13 69.5-19t70.5-6q36 0 70.5 6t69.5 19Zm0 0v-396 396Z",
1690
+ fill: "currentColor"
1691
+ }
1692
+ )
1693
+ }
1694
+ );
1695
+ }
1696
+
1697
+ // src/ManifestListItem.tsx
1698
+ var import_react_aria3 = require("react-aria");
1699
+ var import_helpers = require("@iiif/helpers");
1700
+ var import_jsx_runtime48 = require("react/jsx-runtime");
1701
+ function ManifestListItem({ isActive, onAction }) {
1702
+ const manifest = (0, import_react_iiif_vault7.useManifest)();
1703
+ const { pressProps } = (0, import_react_aria3.usePress)({
1704
+ onPress: onAction
1705
+ });
1706
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(
1707
+ "li",
1708
+ {
1709
+ "aria-label": (0, import_helpers.getValue)(manifest?.label),
1710
+ className: "border-b-2 border-b-gray-200 flex p-2 gap-3 text-left truncate items-center w-full hover:bg-gray-100 data-[active]:bg-gray-200 data-[active]:border-b-me-primary-500",
1711
+ "data-active": isActive || void 0,
1712
+ ...pressProps,
1713
+ children: [
1714
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
1715
+ ManifestIcon,
1716
+ {
1717
+ "data-active": isActive || void 0,
1718
+ className: "flex-shrink-0 text-2xl data-[active]:text-me-primary-500 text-gray-400"
1719
+ }
1720
+ ),
1721
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_react_iiif_vault7.LocaleString, { children: manifest?.label })
1722
+ ]
1723
+ }
1724
+ );
1725
+ }
1726
+
1588
1727
  // src/icons/CreateCanvasIcon.tsx
1589
- var import_jsx_runtime44 = require("react/jsx-runtime");
1728
+ var import_jsx_runtime49 = require("react/jsx-runtime");
1590
1729
  function CreateCanvasIcon() {
1591
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("svg", { xmlns: "http://www.w3.org/2000/svg", height: "24", viewBox: "0 0 24 24", width: "24", children: [
1592
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("path", { d: "M0 0h24v24H0V0z", fill: "none" }),
1593
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
1730
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("svg", { xmlns: "http://www.w3.org/2000/svg", height: "24", viewBox: "0 0 24 24", width: "24", children: [
1731
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("path", { d: "M0 0h24v24H0V0z", fill: "none" }),
1732
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
1594
1733
  "path",
1595
1734
  {
1596
1735
  d: "M13 11h-2v3H8v2h3v3h2v-3h3v-2h-3zm1-9H6c-1.1 0-2 .9-2 2v16c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm4 18H6V4h7v5h5v11z",
@@ -1601,8 +1740,8 @@ function CreateCanvasIcon() {
1601
1740
  }
1602
1741
 
1603
1742
  // src/icons/AddImageIcon.tsx
1604
- var import_jsx_runtime45 = require("react/jsx-runtime");
1605
- var AddImageIcon = (props) => /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", fill: "#5f6368", viewBox: "0 -960 960 960", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
1743
+ var import_jsx_runtime50 = require("react/jsx-runtime");
1744
+ var AddImageIcon = (props) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", fill: "#5f6368", viewBox: "0 -960 960 960", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
1606
1745
  "path",
1607
1746
  {
1608
1747
  d: "M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h360v80H200v560h560v-360h80v360q0 33-23.5 56.5T760-120H200Zm480-480v-80h-80v-80h80v-80h80v80h80v80h-80v80h-80ZM240-280h480L570-480 450-320l-90-120-120 160Zm-40-480v560-560Z",
@@ -1611,8 +1750,8 @@ var AddImageIcon = (props) => /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("svg
1611
1750
  ) });
1612
1751
 
1613
1752
  // src/icons/IIIFLogo.tsx
1614
- var import_jsx_runtime46 = require("react/jsx-runtime");
1615
- var IIIFLogo = ({ mono = true, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
1753
+ var import_jsx_runtime51 = require("react/jsx-runtime");
1754
+ var IIIFLogo = ({ mono = true, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
1616
1755
  "svg",
1617
1756
  {
1618
1757
  xmlns: "http://www.w3.org/2000/svg",
@@ -1622,7 +1761,7 @@ var IIIFLogo = ({ mono = true, ...props }) => /* @__PURE__ */ (0, import_jsx_run
1622
1761
  ...props,
1623
1762
  viewBox: "0 0 493.36 441.333",
1624
1763
  children: [
1625
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
1764
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
1626
1765
  "path",
1627
1766
  {
1628
1767
  d: "m65.242 2178.75 710-263.75-1.25-1900-708.75 261.25v1902.5m738.903 461.34c81.441-240.91-26.473-436.2-241.04-436.2-214.558 0-454.511 195.29-535.953 436.2-81.433 240.89 26.48 436.18 241.039 436.18 214.567 0 454.512-195.29 535.954-436.18",
@@ -1635,7 +1774,7 @@ var IIIFLogo = ({ mono = true, ...props }) => /* @__PURE__ */ (0, import_jsx_run
1635
1774
  transform: "matrix(.13333 0 0 -.13333 0 441.333)"
1636
1775
  }
1637
1776
  ),
1638
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
1777
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
1639
1778
  "path",
1640
1779
  {
1641
1780
  d: "M1678.58 2178.75 968.578 1915l1.25-1900 708.752 261.25v1902.5m-743.498 461.34c-81.437-240.91 26.477-436.2 241.038-436.2 214.56 0 454.51 195.29 535.96 436.2 81.43 240.89-26.48 436.18-241.04 436.18-214.57 0-454.52-195.29-535.958-436.18",
@@ -1648,7 +1787,7 @@ var IIIFLogo = ({ mono = true, ...props }) => /* @__PURE__ */ (0, import_jsx_run
1648
1787
  transform: "matrix(.13333 0 0 -.13333 0 441.333)"
1649
1788
  }
1650
1789
  ),
1651
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
1790
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
1652
1791
  "path",
1653
1792
  {
1654
1793
  d: "m1860.24 2178.75 710-263.75-1.25-1900-708.75 261.25v1902.5m743.5 461.34c81.45-240.91-26.47-436.2-241.03-436.2-214.58 0-454.52 195.29-535.96 436.2-81.44 240.89 26.48 436.18 241.03 436.18 214.57 0 454.51-195.29 535.96-436.18",
@@ -1661,7 +1800,7 @@ var IIIFLogo = ({ mono = true, ...props }) => /* @__PURE__ */ (0, import_jsx_run
1661
1800
  transform: "matrix(.13333 0 0 -.13333 0 441.333)"
1662
1801
  }
1663
1802
  ),
1664
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
1803
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
1665
1804
  "path",
1666
1805
  {
1667
1806
  d: "M3700.24 3310v-652.5s-230 90-257.5-142.5c-2.5-247.5 0-336.25 0-336.25l257.5 83.75V1690l-258.61-92.5v-1335L2735.24 0v2360s-15 850 965 950",
@@ -1679,8 +1818,8 @@ var IIIFLogo = ({ mono = true, ...props }) => /* @__PURE__ */ (0, import_jsx_run
1679
1818
  );
1680
1819
 
1681
1820
  // src/icons/HTMLIcon.tsx
1682
- var import_jsx_runtime47 = require("react/jsx-runtime");
1683
- var HTMLIcon = (props) => /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", fill: "#5f6368", viewBox: "0 -960 960 960", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
1821
+ var import_jsx_runtime52 = require("react/jsx-runtime");
1822
+ var HTMLIcon = (props) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", fill: "#5f6368", viewBox: "0 -960 960 960", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
1684
1823
  "path",
1685
1824
  {
1686
1825
  d: "M0-360v-240h60v80h80v-80h60v240h-60v-100H60v100H0Zm310 0v-180h-70v-60h200v60h-70v180h-60Zm170 0v-200q0-17 11.5-28.5T520-600h180q17 0 28.5 11.5T740-560v200h-60v-180h-40v140h-60v-140h-40v180h-60Zm320 0v-240h60v180h100v60H800Z",
@@ -1689,8 +1828,8 @@ var HTMLIcon = (props) => /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("svg", {
1689
1828
  ) });
1690
1829
 
1691
1830
  // src/icons/IIIFBrowserIcon.tsx
1692
- var import_jsx_runtime48 = require("react/jsx-runtime");
1693
- var IIIFBrowserIcon = (props) => /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", fill: "#5f6368", viewBox: "0 -960 960 960", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
1831
+ var import_jsx_runtime53 = require("react/jsx-runtime");
1832
+ var IIIFBrowserIcon = (props) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", fill: "#5f6368", viewBox: "0 -960 960 960", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
1694
1833
  "path",
1695
1834
  {
1696
1835
  d: "M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h200v80H200v560h560v-214l80 80v134q0 33-23.5 56.5T760-120H200Zm40-160 120-160 90 120 120-160 150 200H240Zm622-144L738-548q-21 14-45 21t-51 7q-74 0-126-52.5T464-700q0-75 52.5-127.5T644-880q75 0 127.5 52.5T824-700q0 27-8 52t-20 46l122 122-56 56ZM644-600q42 0 71-29t29-71q0-42-29-71t-71-29q-42 0-71 29t-29 71q0 42 29 71t71 29Z",
@@ -1698,9 +1837,59 @@ var IIIFBrowserIcon = (props) => /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("
1698
1837
  }
1699
1838
  ) });
1700
1839
 
1840
+ // src/icons/InfoIcon.tsx
1841
+ var import_jsx_runtime54 = require("react/jsx-runtime");
1842
+ function InfoIcon({ title, titleId, ...props }) {
1843
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", "aria-labelledby": titleId, ...props, children: [
1844
+ title ? /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("title", { id: titleId, children: title }) : null,
1845
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("path", { d: "M0 0h24v24H0V0z", fill: "none" }),
1846
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
1847
+ "path",
1848
+ {
1849
+ 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",
1850
+ fill: "currentColor"
1851
+ }
1852
+ )
1853
+ ] });
1854
+ }
1855
+
1856
+ // src/icons/ListingIcon.tsx
1857
+ var import_jsx_runtime55 = require("react/jsx-runtime");
1858
+ function ListingIcon({
1859
+ title,
1860
+ titleId,
1861
+ ...props
1862
+ }) {
1863
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
1864
+ "svg",
1865
+ {
1866
+ xmlns: "http://www.w3.org/2000/svg",
1867
+ viewBox: "0 0 24 24",
1868
+ width: "1em",
1869
+ height: "1em",
1870
+ "aria-labelledby": titleId,
1871
+ ...props,
1872
+ children: [
1873
+ title ? /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("title", { id: titleId, children: title }) : null,
1874
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("g", { fill: "none", children: [
1875
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("path", { d: "M0 0h24v24H0V0z" }),
1876
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("path", { d: "M0 0h24v24H0V0z", opacity: ".87" })
1877
+ ] }),
1878
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
1879
+ "path",
1880
+ {
1881
+ d: "M3 13h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7zm-4 6h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7z",
1882
+ fill: "currentColor"
1883
+ }
1884
+ )
1885
+ ]
1886
+ }
1887
+ );
1888
+ }
1889
+
1701
1890
  // src/icons/YouTubeIcon.tsx
1702
- var import_jsx_runtime49 = require("react/jsx-runtime");
1703
- var YouTubeIcon = (props) => /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", fill: "#5f6368", viewBox: "0 -960 960 960", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
1891
+ var import_jsx_runtime56 = require("react/jsx-runtime");
1892
+ var YouTubeIcon = (props) => /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", fill: "#5f6368", viewBox: "0 -960 960 960", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
1704
1893
  "path",
1705
1894
  {
1706
1895
  d: "M616-242q-27 1-51.5 1.5t-43.5.5h-41q-71 0-133-2-53-2-104.5-5.5T168-257q-26-7-45-26t-26-45q-6-23-9.5-56T82-447q-2-36-2-73t2-73q2-30 5.5-63t9.5-56q7-26 26-45t45-26q23-6 74.5-9.5T347-798q62-2 133-2t133 2q53 2 104.5 5.5T792-783q26 7 45 26t26 45q6 23 9.5 56t5.5 63q2 36 2 73v17q-19-8-39-12.5t-41-4.5q-83 0-141.5 58.5T600-320q0 21 4 40.5t12 37.5ZM400-400l208-120-208-120v240Zm360 200v-80h-80v-80h80v-80h80v80h80v80h-80v80h-80Z",
@@ -1708,9 +1897,34 @@ var YouTubeIcon = (props) => /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("svg"
1708
1897
  }
1709
1898
  ) });
1710
1899
 
1900
+ // src/icons/ListEditIcon.tsx
1901
+ var import_jsx_runtime57 = require("react/jsx-runtime");
1902
+ function ListEditIcon({
1903
+ title,
1904
+ titleId,
1905
+ ...props
1906
+ }) {
1907
+ return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
1908
+ "svg",
1909
+ {
1910
+ xmlns: "http://www.w3.org/2000/svg",
1911
+ height: "24",
1912
+ viewBox: "0 0 24 24",
1913
+ width: "24",
1914
+ "aria-labelledby": titleId,
1915
+ ...props,
1916
+ children: [
1917
+ title ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("title", { id: titleId, children: title }) : null,
1918
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("path", { d: "M0 0h24v24H0V0z", fill: "none" }),
1919
+ /* @__PURE__ */ (0, import_jsx_runtime57.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" })
1920
+ ]
1921
+ }
1922
+ );
1923
+ }
1924
+
1711
1925
  // src/icons/VideoIcon.tsx
1712
- var import_jsx_runtime50 = require("react/jsx-runtime");
1713
- var VideoIcon = (props) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", fill: "#5f6368", viewBox: "0 -960 960 960", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
1926
+ var import_jsx_runtime58 = require("react/jsx-runtime");
1927
+ var VideoIcon = (props) => /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", fill: "#5f6368", viewBox: "0 -960 960 960", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
1714
1928
  "path",
1715
1929
  {
1716
1930
  d: "M160-160q-33 0-56.5-23.5T80-240v-480q0-33 23.5-56.5T160-800h480q33 0 56.5 23.5T720-720v180l160-160v440L720-420v180q0 33-23.5 56.5T640-160H160Zm0-80h480v-480H160v480Zm0 0v-480 480Z",
@@ -1719,8 +1933,8 @@ var VideoIcon = (props) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("svg",
1719
1933
  ) });
1720
1934
 
1721
1935
  // src/icons/AudioIcon.tsx
1722
- var import_jsx_runtime51 = require("react/jsx-runtime");
1723
- var AudioIcon = (props) => /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", fill: "#5f6368", viewBox: "0 -960 960 960", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
1936
+ var import_jsx_runtime59 = require("react/jsx-runtime");
1937
+ var AudioIcon = (props) => /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", fill: "#5f6368", viewBox: "0 -960 960 960", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
1724
1938
  "path",
1725
1939
  {
1726
1940
  d: "M480-400q-50 0-85-35t-35-85v-240q0-50 35-85t85-35q50 0 85 35t35 85v240q0 50-35 85t-85 35Zm0-240Zm-40 520v-123q-104-14-172-93t-68-184h80q0 83 58.5 141.5T480-320q83 0 141.5-58.5T680-520h80q0 105-68 184t-172 93v123h-80Zm40-360q17 0 28.5-11.5T520-520v-240q0-17-11.5-28.5T480-800q-17 0-28.5 11.5T440-760v240q0 17 11.5 28.5T480-480Z",
@@ -1729,8 +1943,8 @@ var AudioIcon = (props) => /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("svg",
1729
1943
  ) });
1730
1944
 
1731
1945
  // src/icons/EmptyCanvasIcon.tsx
1732
- var import_jsx_runtime52 = require("react/jsx-runtime");
1733
- var EmptyCanvasIcon = (props) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", fill: "#5f6368", viewBox: "0 -960 960 960", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
1946
+ var import_jsx_runtime60 = require("react/jsx-runtime");
1947
+ var EmptyCanvasIcon = (props) => /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", fill: "#5f6368", viewBox: "0 -960 960 960", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
1734
1948
  "path",
1735
1949
  {
1736
1950
  d: "M240-80q-33 0-56.5-23.5T160-160v-640q0-33 23.5-56.5T240-880h320l240 240v480q0 33-23.5 56.5T720-80H240Zm280-520v-200H240v640h480v-440H520ZM240-800v200-200 640-640Z",
@@ -1739,14 +1953,14 @@ var EmptyCanvasIcon = (props) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("
1739
1953
  ) });
1740
1954
 
1741
1955
  // src/icons/AddIcon.tsx
1742
- var import_jsx_runtime53 = require("react/jsx-runtime");
1956
+ var import_jsx_runtime61 = require("react/jsx-runtime");
1743
1957
  function AddIcon({
1744
1958
  className: className2,
1745
1959
  inline,
1746
1960
  height = 16,
1747
1961
  color = "black"
1748
1962
  }) {
1749
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
1963
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
1750
1964
  "svg",
1751
1965
  {
1752
1966
  xmlns: "http://www.w3.org/2000/svg",
@@ -1757,17 +1971,17 @@ function AddIcon({
1757
1971
  style: { verticalAlign: inline ? "bottom" : void 0 },
1758
1972
  className: className2,
1759
1973
  children: [
1760
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("path", { d: "M0 0h24v24H0z", fill: "none" }),
1761
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("path", { d: "M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z", fill: "currentColor" })
1974
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("path", { d: "M0 0h24v24H0z", fill: "none" }),
1975
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("path", { d: "M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z", fill: "currentColor" })
1762
1976
  ]
1763
1977
  }
1764
1978
  );
1765
1979
  }
1766
1980
 
1767
1981
  // src/icons/MoreMenu.tsx
1768
- var import_jsx_runtime54 = require("react/jsx-runtime");
1982
+ var import_jsx_runtime62 = require("react/jsx-runtime");
1769
1983
  function MoreMenu2() {
1770
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
1984
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
1771
1985
  "svg",
1772
1986
  {
1773
1987
  xmlns: "http://www.w3.org/2000/svg",
@@ -1775,8 +1989,8 @@ function MoreMenu2() {
1775
1989
  viewBox: "0 0 24 24",
1776
1990
  width: "1em",
1777
1991
  children: [
1778
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("path", { d: "M0 0h24v24H0z", fill: "none" }),
1779
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
1992
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("path", { d: "M0 0h24v24H0z", fill: "none" }),
1993
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
1780
1994
  "path",
1781
1995
  {
1782
1996
  d: "M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z",
@@ -1788,14 +2002,78 @@ function MoreMenu2() {
1788
2002
  );
1789
2003
  }
1790
2004
 
2005
+ // src/icons/PreviewIcon.tsx
2006
+ var import_jsx_runtime63 = require("react/jsx-runtime");
2007
+ function PreviewIcon(props) {
2008
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2009
+ "path",
2010
+ {
2011
+ fill: "currentColor",
2012
+ d: "M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5M12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5s5 2.24 5 5s-2.24 5-5 5m0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3s3-1.34 3-3s-1.34-3-3-3"
2013
+ }
2014
+ ) });
2015
+ }
2016
+
2017
+ // src/icons/ImageListIcon.tsx
2018
+ var import_jsx_runtime64 = require("react/jsx-runtime");
2019
+ function ImageListIcon(props) {
2020
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
2021
+ "path",
2022
+ {
2023
+ fill: "currentColor",
2024
+ d: "M1 5h2v14H1zm4 0h2v14H5zm17 0H10c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1M11 17l2.5-3.15L15.29 16l2.5-3.22L21 17z"
2025
+ }
2026
+ ) });
2027
+ }
2028
+
2029
+ // src/icons/BackIcon.tsx
2030
+ var import_jsx_runtime65 = require("react/jsx-runtime");
2031
+ function BackIcon(props) {
2032
+ return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("path", { fill: "currentColor", d: "M20 11H7.83l5.59-5.59L12 4l-8 8l8 8l1.41-1.41L7.83 13H20z" }) });
2033
+ }
2034
+
2035
+ // src/icons/GridIcon.tsx
2036
+ var import_jsx_runtime66 = require("react/jsx-runtime");
2037
+ function GridIcon(props) {
2038
+ return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", ...props, children: [
2039
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
2040
+ "path",
2041
+ {
2042
+ fill: "currentColor",
2043
+ d: "M10 10h4v4h-4zm0 6h4v4h-4zM4 4h4v4H4zm0 6h4v4H4zm0 6h4v4H4zM16 4h4v4h-4zm0 6h4v4h-4zm0 6h4v4h-4zM10 4h4v4h-4z",
2044
+ opacity: ".3"
2045
+ }
2046
+ ),
2047
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
2048
+ "path",
2049
+ {
2050
+ fill: "currentColor",
2051
+ 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-2M8 20H4v-4h4zm0-6H4v-4h4zm0-6H4V4h4zm6 12h-4v-4h4zm0-6h-4v-4h4zm0-6h-4V4h4zm6 12h-4v-4h4zm0-6h-4v-4h4zm0-6h-4V4h4z"
2052
+ }
2053
+ )
2054
+ ] });
2055
+ }
2056
+
2057
+ // src/icons/ScaledImageIcon.tsx
2058
+ var import_jsx_runtime67 = require("react/jsx-runtime");
2059
+ function ScaledImageIcon(props) {
2060
+ return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
2061
+ "path",
2062
+ {
2063
+ fill: "currentColor",
2064
+ d: "M21 15h2v2h-2zm0-4h2v2h-2zm2 8h-2v2c1 0 2-1 2-2M13 3h2v2h-2zm8 4h2v2h-2zm0-4v2h2c0-1-1-2-2-2M1 7h2v2H1zm16-4h2v2h-2zm0 16h2v2h-2zM3 3C2 3 1 4 1 5h2zm6 0h2v2H9zM5 3h2v2H5zm-4 8v8c0 1.1.9 2 2 2h12V11zm2 8l2.5-3.21l1.79 2.15l2.5-3.22L13 19z"
2065
+ }
2066
+ ) });
2067
+ }
2068
+
1791
2069
  // src/ErrorMessage.tsx
1792
- var import_tailwind_merge7 = require("tailwind-merge");
1793
- var import_jsx_runtime55 = require("react/jsx-runtime");
2070
+ var import_tailwind_merge8 = require("tailwind-merge");
2071
+ var import_jsx_runtime68 = require("react/jsx-runtime");
1794
2072
  function ErrorMessage({ children, small = false, className: className2 }) {
1795
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
2073
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
1796
2074
  "div",
1797
2075
  {
1798
- className: (0, import_tailwind_merge7.twMerge)(
2076
+ className: (0, import_tailwind_merge8.twMerge)(
1799
2077
  "bg-red-500 text-white",
1800
2078
  "border-1 drop-shadow border-red-700 w-full rounded-md py-2 px-4 leading-[1.9em] flex items-center",
1801
2079
  "has-[a]:text-white",
@@ -1829,9 +2107,9 @@ function useFastList(list, firstRender = 24) {
1829
2107
 
1830
2108
  // src/RenderTextualContent.tsx
1831
2109
  var import_react11 = require("react");
1832
- var import_react_aria_components9 = require("react-aria-components");
1833
- var import_react_iiif_vault6 = require("react-iiif-vault");
1834
- var import_jsx_runtime56 = require("react/jsx-runtime");
2110
+ var import_react_aria_components10 = require("react-aria-components");
2111
+ var import_react_iiif_vault8 = require("react-iiif-vault");
2112
+ var import_jsx_runtime69 = require("react/jsx-runtime");
1835
2113
  function RenderTextualContent(props) {
1836
2114
  const languages = props.strategy.items.map(
1837
2115
  (item) => Object.keys(item.text)[0]
@@ -1840,10 +2118,10 @@ function RenderTextualContent(props) {
1840
2118
  const selected = props.strategy.items.find(
1841
2119
  (item) => Object.keys(item.text)[0] === langauge
1842
2120
  );
1843
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "overflow-y-auto bg-white shadow", children: [
1844
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "flex gap-2 border-b", children: languages.map((language) => {
1845
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
1846
- import_react_aria_components9.Button,
2121
+ return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "overflow-y-auto bg-white shadow", children: [
2122
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "flex gap-2 border-b", children: languages.map((language) => {
2123
+ return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
2124
+ import_react_aria_components10.Button,
1847
2125
  {
1848
2126
  className: `py-1 px-3 ${langauge === language ? "bg-me-500 text-white" : "bg-white text-black"}`,
1849
2127
  onPress: () => setLanguage(language),
@@ -1852,11 +2130,11 @@ function RenderTextualContent(props) {
1852
2130
  language
1853
2131
  );
1854
2132
  }) }),
1855
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "p-4 prose", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
1856
- import_react_iiif_vault6.LocaleString,
2133
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "p-4 prose", children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
2134
+ import_react_iiif_vault8.LocaleString,
1857
2135
  {
1858
2136
  enableDangerouslySetInnerHTML: true,
1859
- defaultText: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "text-gray-500 my-8", children: "No content available" }),
2137
+ defaultText: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "text-gray-500 my-8", children: "No content available" }),
1860
2138
  children: selected?.text
1861
2139
  }
1862
2140
  ) })
@@ -1870,15 +2148,15 @@ var import_captions = require("@vidstack/react/player/styles/default/captions.cs
1870
2148
  var import_video = require("@vidstack/react/player/styles/default/layouts/video.css");
1871
2149
  var import_react12 = require("@vidstack/react");
1872
2150
  var import_default = require("@vidstack/react/player/layouts/default");
1873
- var import_helpers = require("@iiif/helpers");
2151
+ var import_helpers2 = require("@iiif/helpers");
1874
2152
  var import_react13 = require("react");
1875
- var import_jsx_runtime57 = require("react/jsx-runtime");
2153
+ var import_jsx_runtime70 = require("react/jsx-runtime");
1876
2154
  function IIIFMediaPlayer(props) {
1877
2155
  const mediaPlayer = (0, import_react13.useRef)(null);
1878
2156
  const captions = props.captions || [];
1879
2157
  const language = props.language;
1880
2158
  const timeRef = (0, import_react13.useRef)(props.startTime || 0);
1881
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
2159
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
1882
2160
  import_react12.MediaPlayer,
1883
2161
  {
1884
2162
  onTimeUpdate: (time) => {
@@ -1899,29 +2177,29 @@ function IIIFMediaPlayer(props) {
1899
2177
  type: props.media.format
1900
2178
  }
1901
2179
  ],
1902
- children: /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_react12.MediaProvider, { className: "w-full h-full [&>video]:w-full [&>video]:h-full [&>video]:object-contain", children: [
2180
+ children: /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(import_react12.MediaProvider, { className: "w-full h-full [&>video]:w-full [&>video]:h-full [&>video]:object-contain", children: [
1903
2181
  captions.map((caption) => {
1904
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
2182
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
1905
2183
  import_react12.Track,
1906
2184
  {
1907
2185
  src: caption.id,
1908
2186
  kind: "subtitles",
1909
- label: (0, import_helpers.getValue)(caption.label),
2187
+ label: (0, import_helpers2.getValue)(caption.label),
1910
2188
  default: caption.language === language,
1911
2189
  language: caption.language
1912
2190
  },
1913
2191
  caption.id
1914
2192
  );
1915
2193
  }),
1916
- props.poster ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
2194
+ props.poster ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
1917
2195
  import_react12.Poster,
1918
2196
  {
1919
2197
  className: "absolute inset-0 bg-black block h-full w-full opacity-0 transition-opacity data-[visible]:opacity-100 object-contain",
1920
2198
  src: props.poster
1921
2199
  }
1922
2200
  ) : null,
1923
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Gestures, {}),
1924
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
2201
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Gestures, {}),
2202
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
1925
2203
  import_default.DefaultVideoLayout,
1926
2204
  {
1927
2205
  className: "z-1",
@@ -1934,8 +2212,8 @@ function IIIFMediaPlayer(props) {
1934
2212
  );
1935
2213
  }
1936
2214
  function Gestures() {
1937
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_jsx_runtime57.Fragment, { children: [
1938
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
2215
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(import_jsx_runtime70.Fragment, { children: [
2216
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
1939
2217
  import_react12.Gesture,
1940
2218
  {
1941
2219
  className: "pointer-coarse:hidden absolute top-0 start-12 bottom-20 right-0 -z-1 block",
@@ -1943,6 +2221,6 @@ function Gestures() {
1943
2221
  action: "toggle:paused"
1944
2222
  }
1945
2223
  ),
1946
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_react12.Gesture, { className: "absolute inset-0 z-0 block h-full w-full", event: "dblpointerup", action: "toggle:fullscreen" })
2224
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_react12.Gesture, { className: "absolute inset-0 z-0 block h-full w-full", event: "dblpointerup", action: "toggle:fullscreen" })
1947
2225
  ] });
1948
2226
  }