@manifest-editor/components 1.4.0 → 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.js CHANGED
@@ -33,6 +33,13 @@ function ActionButton({
33
33
  );
34
34
  }
35
35
 
36
+ // src/AccessibilityButton.tsx
37
+ import { Button as Button2 } from "react-aria-components";
38
+ import { jsx as jsx2 } from "react/jsx-runtime";
39
+ function AccessibilityButton({ className: className2, children, ...props }) {
40
+ return /* @__PURE__ */ jsx2(Button2, { className: ["sr-only focus:not-sr-only p-2 bg-white text-black", className2].join(" "), ...props, children });
41
+ }
42
+
36
43
  // src/utils.ts
37
44
  import { clsx } from "clsx";
38
45
  import { twMerge as twMerge2 } from "tailwind-merge";
@@ -56,9 +63,9 @@ import {
56
63
  useRole
57
64
  } from "@floating-ui/react";
58
65
  import * as React from "react";
59
- import { Button as Button2 } from "react-aria-components";
66
+ import { Button as Button3 } from "react-aria-components";
60
67
  import { twMerge as twMerge3 } from "tailwind-merge";
61
- import { jsx as jsx2 } from "react/jsx-runtime";
68
+ import { jsx as jsx3 } from "react/jsx-runtime";
62
69
  function useTooltip({
63
70
  initialOpen = false,
64
71
  placement = "top",
@@ -114,7 +121,7 @@ var useTooltipContext = () => {
114
121
  };
115
122
  function Tooltip({ children, ...options }) {
116
123
  const tooltip = useTooltip(options);
117
- return /* @__PURE__ */ jsx2(TooltipContext.Provider, { value: tooltip, children });
124
+ return /* @__PURE__ */ jsx3(TooltipContext.Provider, { value: tooltip, children });
118
125
  }
119
126
  var TooltipTrigger = React.forwardRef(function TooltipTrigger2({ children, asChild = false, ...props }, propRef) {
120
127
  const context = useTooltipContext();
@@ -131,8 +138,8 @@ var TooltipTrigger = React.forwardRef(function TooltipTrigger2({ children, asChi
131
138
  })
132
139
  );
133
140
  }
134
- return /* @__PURE__ */ jsx2(
135
- Button2,
141
+ return /* @__PURE__ */ jsx3(
142
+ Button3,
136
143
  {
137
144
  ref,
138
145
  "data-state": context.open ? "open" : "closed",
@@ -146,7 +153,7 @@ var TooltipContent = React.forwardRef(function TooltipContent2({ style, root, ..
146
153
  const ref = useMergeRefs([context.refs.setFloating, propRef]);
147
154
  if (!context.open)
148
155
  return null;
149
- return /* @__PURE__ */ jsx2(FloatingPortal, { root, children: /* @__PURE__ */ jsx2(
156
+ return /* @__PURE__ */ jsx3(FloatingPortal, { root, children: /* @__PURE__ */ jsx3(
150
157
  "div",
151
158
  {
152
159
  ref,
@@ -159,7 +166,7 @@ var TooltipContent = React.forwardRef(function TooltipContent2({ style, root, ..
159
166
  ) });
160
167
  });
161
168
  function DefaultTooltipContent(props) {
162
- return /* @__PURE__ */ jsx2(
169
+ return /* @__PURE__ */ jsx3(
163
170
  TooltipContent,
164
171
  {
165
172
  root: props.root,
@@ -170,23 +177,23 @@ function DefaultTooltipContent(props) {
170
177
  }
171
178
 
172
179
  // src/Sidebar.tsx
173
- import { jsx as jsx3, jsxs } from "react/jsx-runtime";
180
+ import { jsx as jsx4, jsxs } from "react/jsx-runtime";
174
181
  function Sidebar({ children }) {
175
- return /* @__PURE__ */ jsx3("div", { className: "w-full h-full flex flex-col overflow-hidden", children });
182
+ return /* @__PURE__ */ jsx4("div", { className: "w-full h-full flex flex-col overflow-hidden", children });
176
183
  }
177
184
  function SidebarContent({
178
185
  children,
179
186
  className: className2,
180
187
  padding
181
188
  }) {
182
- return /* @__PURE__ */ jsx3("div", { className: cn("flex-1 min-h-0 overflow-y-auto pb-64", className2, padding && "px-3 pt-3"), children });
189
+ return /* @__PURE__ */ jsx4("div", { className: cn("flex-1 min-h-0 overflow-y-auto pb-64", className2, padding && "px-3 pt-3"), children });
183
190
  }
184
191
  function SidebarHeader(props) {
185
192
  const { actions, title } = props;
186
193
  return /* @__PURE__ */ 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: [
187
- /* @__PURE__ */ jsx3("div", { className: "flex-1", children: title }),
188
- /* @__PURE__ */ jsx3("div", { className: "ml-auto flex gap-2 items-center", children: actions?.map((action, index) => /* @__PURE__ */ jsxs(Tooltip, { placement: "bottom", children: [
189
- /* @__PURE__ */ jsx3(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx3(
194
+ /* @__PURE__ */ jsx4("div", { className: "flex-1", children: title }),
195
+ /* @__PURE__ */ jsx4("div", { className: "ml-auto flex gap-2 items-center", children: actions?.map((action, index) => /* @__PURE__ */ jsxs(Tooltip, { placement: "bottom", children: [
196
+ /* @__PURE__ */ jsx4(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx4(
190
197
  "button",
191
198
  {
192
199
  className: cn(
@@ -202,7 +209,7 @@ function SidebarHeader(props) {
202
209
  },
203
210
  index
204
211
  ) }),
205
- !action.disabled ? /* @__PURE__ */ jsx3(DefaultTooltipContent, { children: action.title }) : null
212
+ !action.disabled ? /* @__PURE__ */ jsx4(DefaultTooltipContent, { children: action.title }) : null
206
213
  ] }, index)) })
207
214
  ] });
208
215
  }
@@ -211,9 +218,9 @@ function SidebarHeader(props) {
211
218
  import { Fragment } from "react/jsx-runtime";
212
219
 
213
220
  // src/PanelSideMenuItem.tsx
214
- import { jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
221
+ import { jsx as jsx5, jsxs as jsxs2 } from "react/jsx-runtime";
215
222
  function PanelSideMenuItem(props) {
216
- return /* @__PURE__ */ jsx4(Tooltip, { placement: "right", children: /* @__PURE__ */ jsx4(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxs2(
223
+ return /* @__PURE__ */ jsx5(Tooltip, { placement: "right", children: /* @__PURE__ */ jsx5(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxs2(
217
224
  "button",
218
225
  {
219
226
  className: cn(
@@ -224,18 +231,18 @@ function PanelSideMenuItem(props) {
224
231
  onMouseDown: props.onClick,
225
232
  children: [
226
233
  props.icon,
227
- /* @__PURE__ */ jsx4(TooltipContent, { className: "bg-me-gray-900 text-white text-sm px-3 py-2 rounded opacity-90 z-50", children: props.label })
234
+ /* @__PURE__ */ jsx5(TooltipContent, { className: "bg-me-gray-900 text-white text-sm px-3 py-2 rounded opacity-90 z-50", children: props.label })
228
235
  ]
229
236
  }
230
237
  ) }) });
231
238
  }
232
239
 
233
240
  // src/PanelSideMenu.tsx
234
- import { jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
241
+ import { jsx as jsx6, jsxs as jsxs3 } from "react/jsx-runtime";
235
242
  function PanelSideMenu(props) {
236
- return /* @__PURE__ */ jsx5("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__ */ jsxs3(Fragment, { children: [
237
- panel.divide ? /* @__PURE__ */ jsx5("div", { className: "flex-1 block w-2 min-h-1" }) : null,
238
- /* @__PURE__ */ jsx5(
243
+ return /* @__PURE__ */ jsx6("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__ */ jsxs3(Fragment, { children: [
244
+ panel.divide ? /* @__PURE__ */ jsx6("div", { className: "flex-1 block w-2 min-h-1" }) : null,
245
+ /* @__PURE__ */ jsx6(
239
246
  PanelSideMenuItem,
240
247
  {
241
248
  label: panel.label,
@@ -249,12 +256,12 @@ function PanelSideMenu(props) {
249
256
  }
250
257
 
251
258
  // src/ThumbnailGridContainer.tsx
252
- import { jsx as jsx6 } from "react/jsx-runtime";
259
+ import { jsx as jsx7 } from "react/jsx-runtime";
253
260
  function ThumbnailGridContainer(props) {
254
261
  if (props.wide) {
255
- return /* @__PURE__ */ jsx6("div", { className: "grid grid-md gap-4 p-4 overflow-y-auto", children: props.children });
262
+ return /* @__PURE__ */ jsx7("div", { className: "grid grid-md gap-4 p-4 overflow-y-auto", children: props.children });
256
263
  }
257
- return /* @__PURE__ */ jsx6("div", { className: "grid grid-cols-2 gap-4 p-4", children: props.children });
264
+ return /* @__PURE__ */ jsx7("div", { className: "grid grid-cols-2 gap-4 p-4", children: props.children });
258
265
  }
259
266
 
260
267
  // src/LazyThumbnail.tsx
@@ -273,9 +280,9 @@ import { LazyLoadComponent } from "react-lazy-load-image-component";
273
280
  import { twMerge as twMerge4 } from "tailwind-merge";
274
281
 
275
282
  // src/Spinner.tsx
276
- import { jsx as jsx7, jsxs as jsxs4 } from "react/jsx-runtime";
283
+ import { jsx as jsx8, jsxs as jsxs4 } from "react/jsx-runtime";
277
284
  function Spinner(props) {
278
- return /* @__PURE__ */ jsx7(
285
+ return /* @__PURE__ */ jsx8(
279
286
  "svg",
280
287
  {
281
288
  width: "1em",
@@ -285,8 +292,8 @@ function Spinner(props) {
285
292
  stroke: "currentColor",
286
293
  ...props,
287
294
  children: /* @__PURE__ */ jsxs4("g", { transform: "translate(2 2)", strokeWidth: 5, fill: "none", fillRule: "evenodd", children: [
288
- /* @__PURE__ */ jsx7("circle", { strokeOpacity: 0.5, cx: 18, cy: 18, r: 18 }),
289
- /* @__PURE__ */ jsx7("path", { d: "M36 18c0-9.94-8.06-18-18-18", children: /* @__PURE__ */ jsx7(
295
+ /* @__PURE__ */ jsx8("circle", { strokeOpacity: 0.5, cx: 18, cy: 18, r: 18 }),
296
+ /* @__PURE__ */ jsx8("path", { d: "M36 18c0-9.94-8.06-18-18-18", children: /* @__PURE__ */ jsx8(
290
297
  "animateTransform",
291
298
  {
292
299
  attributeName: "transform",
@@ -303,7 +310,7 @@ function Spinner(props) {
303
310
  }
304
311
 
305
312
  // src/icons/TextIcon.tsx
306
- import { jsx as jsx8, jsxs as jsxs5 } from "react/jsx-runtime";
313
+ import { jsx as jsx9, jsxs as jsxs5 } from "react/jsx-runtime";
307
314
  function TextIcon(props) {
308
315
  return /* @__PURE__ */ jsxs5(
309
316
  "svg",
@@ -314,8 +321,8 @@ function TextIcon(props) {
314
321
  viewBox: "0 0 24 24",
315
322
  ...props,
316
323
  children: [
317
- /* @__PURE__ */ jsx8("title", { children: "Text" }),
318
- /* @__PURE__ */ jsx8(
324
+ /* @__PURE__ */ jsx9("title", { children: "Text" }),
325
+ /* @__PURE__ */ jsx9(
319
326
  "path",
320
327
  {
321
328
  fill: "currentColor",
@@ -328,12 +335,12 @@ function TextIcon(props) {
328
335
  }
329
336
 
330
337
  // src/LazyThumbnail.tsx
331
- import { jsx as jsx9, jsxs as jsxs6 } from "react/jsx-runtime";
338
+ import { jsx as jsx10, jsxs as jsxs6 } from "react/jsx-runtime";
332
339
  function LazyThumbnail({
333
340
  cover,
334
341
  fade = true
335
342
  }) {
336
- return /* @__PURE__ */ jsx9(LazyLoadComponent, { children: /* @__PURE__ */ jsx9(LazyThumbnailInner, { cover, fade }) });
343
+ return /* @__PURE__ */ jsx10(LazyLoadComponent, { children: /* @__PURE__ */ jsx10(LazyThumbnailInner, { cover, fade }) });
337
344
  }
338
345
  var renderCache = /* @__PURE__ */ new Map();
339
346
  function LazyThumbnailInner({
@@ -367,7 +374,7 @@ function LazyThumbnailInner({
367
374
  [isCached]
368
375
  );
369
376
  return /* @__PURE__ */ jsxs6("div", { className: `w-full h-full relative`, children: [
370
- thumbnail?.id ? /* @__PURE__ */ jsx9(
377
+ thumbnail?.id ? /* @__PURE__ */ jsx10(
371
378
  "img",
372
379
  {
373
380
  onLoad: () => setIsLoading(false),
@@ -376,15 +383,15 @@ function LazyThumbnailInner({
376
383
  alt: "",
377
384
  className: `w-full h-full ${cover ? "object-cover" : "object-contain"} ${!isLoading ? isCached ? "" : "animate-fadeIn" : "opacity-0"}`
378
385
  }
379
- ) : /* @__PURE__ */ jsx9(ThumbnailFallback, {}),
380
- !thumbnail?.id || isLoading ? /* @__PURE__ */ jsx9(
386
+ ) : /* @__PURE__ */ jsx10(ThumbnailFallback, {}),
387
+ !thumbnail?.id || isLoading ? /* @__PURE__ */ jsx10(
381
388
  "div",
382
389
  {
383
390
  className: twMerge4(
384
391
  "absolute inset-0 flex items-center justify-center bg-me-gray-100 text-2xl z-10",
385
392
  fade && "animate-fadeIn"
386
393
  ),
387
- children: /* @__PURE__ */ jsx9(Spinner, {})
394
+ children: /* @__PURE__ */ jsx10(Spinner, {})
388
395
  }
389
396
  ) : null
390
397
  ] });
@@ -392,9 +399,9 @@ function LazyThumbnailInner({
392
399
  function ThumbnailFallback() {
393
400
  const [strategy] = useRenderingStrategy();
394
401
  if (strategy.type === "textual-content") {
395
- return /* @__PURE__ */ jsx9("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__ */ jsx9(TextIcon, { className: "w-16 h-16" }) });
402
+ return /* @__PURE__ */ jsx10("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__ */ jsx10(TextIcon, { className: "w-16 h-16" }) });
396
403
  }
397
- return /* @__PURE__ */ jsx9("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" });
404
+ return /* @__PURE__ */ jsx10("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" });
398
405
  }
399
406
 
400
407
  // src/CanvasThumbnailGridItem.tsx
@@ -402,18 +409,18 @@ import { CanvasContext } from "react-iiif-vault";
402
409
 
403
410
  // src/CanvasLabel.tsx
404
411
  import { LocaleString, useCanvas as useCanvas2 } from "react-iiif-vault";
405
- import { jsx as jsx10 } from "react/jsx-runtime";
412
+ import { jsx as jsx11 } from "react/jsx-runtime";
406
413
  function CanvasLabel(props) {
407
414
  const canvas = useCanvas2();
408
415
  if (!canvas)
409
416
  return null;
410
- return /* @__PURE__ */ jsx10(LocaleString, { className: props.className, as: props.as, children: canvas.label });
417
+ return /* @__PURE__ */ jsx11(LocaleString, { className: props.className, as: props.as, children: canvas.label });
411
418
  }
412
419
 
413
420
  // src/Card3D.tsx
414
421
  import { useLayoutEffect as useLayoutEffect2, useRef as useRef2 } from "react";
415
422
  import { twMerge as twMerge5 } from "tailwind-merge";
416
- import { jsx as jsx11, jsxs as jsxs7 } from "react/jsx-runtime";
423
+ import { jsx as jsx12, jsxs as jsxs7 } from "react/jsx-runtime";
417
424
  function Card3D({
418
425
  className: className2,
419
426
  shouldTranslate,
@@ -497,7 +504,7 @@ function Card3D({
497
504
  ...props,
498
505
  children: [
499
506
  children,
500
- /* @__PURE__ */ jsx11(
507
+ /* @__PURE__ */ jsx12(
501
508
  "div",
502
509
  {
503
510
  className: "pointer-events-none absolute inset-0 transition-all",
@@ -513,10 +520,10 @@ function Card3D({
513
520
  }
514
521
 
515
522
  // src/CanvasThumbnailGridItem.tsx
516
- import { jsx as jsx12, jsxs as jsxs8 } from "react/jsx-runtime";
523
+ import { jsx as jsx13, jsxs as jsxs8 } from "react/jsx-runtime";
517
524
  function CanvasThumbnailGridItem(props) {
518
- return /* @__PURE__ */ jsx12(CanvasContext, { canvas: props.id, children: /* @__PURE__ */ jsxs8("div", { onMouseDown: props.onClick, className: "flex flex-col", "data-canvas-selected": props.selected, children: [
519
- /* @__PURE__ */ jsx12("div", { className: "bg-me-gray-100 w-full aspect-square flex-1 overflow-hidden rounded", children: /* @__PURE__ */ jsx12(
525
+ return /* @__PURE__ */ jsx13(CanvasContext, { canvas: props.id, children: /* @__PURE__ */ jsxs8("div", { onMouseDown: props.onClick, className: "flex flex-col", "data-canvas-selected": props.selected, children: [
526
+ /* @__PURE__ */ jsx13("div", { className: "bg-me-gray-100 w-full aspect-square flex-1 overflow-hidden rounded", children: /* @__PURE__ */ jsx13(
520
527
  Card3D,
521
528
  {
522
529
  "data-canvas-selected": props.active,
@@ -525,17 +532,17 @@ function CanvasThumbnailGridItem(props) {
525
532
  "border-2 border-transparent p-1 w-full h-full rounded",
526
533
  props.selected && "border-me-primary-500"
527
534
  ),
528
- children: /* @__PURE__ */ jsx12(LazyThumbnail, {})
535
+ children: /* @__PURE__ */ jsx13(LazyThumbnail, {})
529
536
  }
530
537
  ) }),
531
- /* @__PURE__ */ jsx12(CanvasLabel, { className: "text-sm text-center truncate mt-1", as: "div" })
538
+ /* @__PURE__ */ jsx13(CanvasLabel, { className: "text-sm text-center truncate mt-1", as: "div" })
532
539
  ] }) });
533
540
  }
534
541
 
535
542
  // src/Modal.tsx
536
543
  import { CloseButton, Dialog, DialogPanel, DialogTitle } from "@headlessui/react";
537
544
  import { createPortal } from "react-dom";
538
- import { Fragment as Fragment2, jsx as jsx13, jsxs as jsxs9 } from "react/jsx-runtime";
545
+ import { Fragment as Fragment2, jsx as jsx14, jsxs as jsxs9 } from "react/jsx-runtime";
539
546
  function ModalBackSlot({ children }) {
540
547
  const element = document.getElementById("modal-back-slot");
541
548
  if (!element)
@@ -543,14 +550,14 @@ function ModalBackSlot({ children }) {
543
550
  return createPortal(children, element);
544
551
  }
545
552
  function Modal({ id, title, open = true, onClose, actions, children }) {
546
- return /* @__PURE__ */ jsx13(Fragment2, { children: /* @__PURE__ */ jsxs9(Dialog, { open, onClose, id, className: "relative z-[500]", children: [
547
- /* @__PURE__ */ jsx13("div", { className: `fixed inset-0 bg-black/30 animate-fadeIn z-[501]`, "aria-hidden": "true" }),
548
- /* @__PURE__ */ jsx13("div", { className: "fixed inset-0 flex w-screen items-center justify-center p-4 z-[502]", children: /* @__PURE__ */ jsx13("div", { className: "relative p-4 w-full max-w-4xl max-h-full", children: /* @__PURE__ */ jsxs9(DialogPanel, { className: "relative bg-white rounded-lg overflow-hidden shadow-2xl max-h-[80vh] flex flex-col", children: [
553
+ return /* @__PURE__ */ jsx14(Fragment2, { children: /* @__PURE__ */ jsxs9(Dialog, { open, onClose, id, className: "relative z-[500]", children: [
554
+ /* @__PURE__ */ jsx14("div", { className: `fixed inset-0 bg-black/30 animate-fadeIn z-[501]`, "aria-hidden": "true" }),
555
+ /* @__PURE__ */ jsx14("div", { className: "fixed inset-0 flex w-screen items-center justify-center p-4 z-[502]", children: /* @__PURE__ */ jsx14("div", { className: "relative p-4 w-full max-w-4xl max-h-full", children: /* @__PURE__ */ jsxs9(DialogPanel, { className: "relative bg-white rounded-lg overflow-hidden shadow-2xl max-h-[80vh] flex flex-col", children: [
549
556
  /* @__PURE__ */ jsxs9("div", { className: "flex items-center justify-between gap-3 p-4 rounded-t-lg sticky top-0 bg-white", children: [
550
- /* @__PURE__ */ jsx13("div", { id: "modal-back-slot" }),
551
- /* @__PURE__ */ jsx13(DialogTitle, { className: "text-xl font-semibold text-gray-900 ", children: title }),
557
+ /* @__PURE__ */ jsx14("div", { id: "modal-back-slot" }),
558
+ /* @__PURE__ */ jsx14(DialogTitle, { className: "text-xl font-semibold text-gray-900 ", children: title }),
552
559
  /* @__PURE__ */ jsxs9(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: [
553
- /* @__PURE__ */ jsx13(
560
+ /* @__PURE__ */ jsx14(
554
561
  "svg",
555
562
  {
556
563
  className: "w-3 h-3",
@@ -558,7 +565,7 @@ function Modal({ id, title, open = true, onClose, actions, children }) {
558
565
  xmlns: "http://www.w3.org/2000/svg",
559
566
  fill: "none",
560
567
  viewBox: "0 0 14 14",
561
- children: /* @__PURE__ */ jsx13(
568
+ children: /* @__PURE__ */ jsx14(
562
569
  "path",
563
570
  {
564
571
  stroke: "currentColor",
@@ -570,23 +577,23 @@ function Modal({ id, title, open = true, onClose, actions, children }) {
570
577
  )
571
578
  }
572
579
  ),
573
- /* @__PURE__ */ jsx13("span", { className: "sr-only", children: "Close" })
580
+ /* @__PURE__ */ jsx14("span", { className: "sr-only", children: "Close" })
574
581
  ] })
575
582
  ] }),
576
- /* @__PURE__ */ jsx13("div", { className: "flex-1 min-h-0 overflow-y-auto flex flex-col", children }),
577
- actions ? /* @__PURE__ */ jsx13("div", { className: "flex items-center p-4 border-t border-gray-200 rounded-b justify-end", children: actions }) : null
583
+ /* @__PURE__ */ jsx14("div", { className: "flex-1 min-h-0 overflow-y-auto flex flex-col", children }),
584
+ actions ? /* @__PURE__ */ jsx14("div", { className: "flex items-center p-4 border-t border-gray-200 rounded-b justify-end", children: actions }) : null
578
585
  ] }) }) })
579
586
  ] }) });
580
587
  }
581
588
 
582
589
  // src/ControlButton.tsx
583
- import { jsx as jsx14 } from "react/jsx-runtime";
590
+ import { jsx as jsx15 } from "react/jsx-runtime";
584
591
  function ControlButton({
585
592
  children,
586
593
  className: className2,
587
594
  ...props
588
595
  }) {
589
- return /* @__PURE__ */ jsx14(
596
+ return /* @__PURE__ */ jsx15(
590
597
  "button",
591
598
  {
592
599
  className: cn(
@@ -600,9 +607,9 @@ function ControlButton({
600
607
  }
601
608
 
602
609
  // src/OpaqueControls.tsx
603
- import { jsx as jsx15 } from "react/jsx-runtime";
610
+ import { jsx as jsx16 } from "react/jsx-runtime";
604
611
  function OpaqueControls(props) {
605
- return /* @__PURE__ */ jsx15(
612
+ return /* @__PURE__ */ jsx16(
606
613
  "div",
607
614
  {
608
615
  className: cn("flex w-full p-0.5 opacity-0 transition-opacity duration-300 gap-2", props.active && "opacity-1"),
@@ -618,9 +625,9 @@ import {
618
625
  Tab as BaseTab,
619
626
  TabPanel as BaseTabPanel
620
627
  } from "react-aria-components";
621
- import { jsx as jsx16 } from "react/jsx-runtime";
628
+ import { jsx as jsx17 } from "react/jsx-runtime";
622
629
  function Tabs({ className: className2, children, ...props }) {
623
- return /* @__PURE__ */ jsx16(
630
+ return /* @__PURE__ */ jsx17(
624
631
  BaseTabs,
625
632
  {
626
633
  className: (state) => {
@@ -637,7 +644,7 @@ function TabList({
637
644
  children,
638
645
  ...props
639
646
  }) {
640
- return /* @__PURE__ */ jsx16(
647
+ return /* @__PURE__ */ jsx17(
641
648
  BaseTabList,
642
649
  {
643
650
  className: (state) => {
@@ -650,7 +657,7 @@ function TabList({
650
657
  );
651
658
  }
652
659
  function Tab({ className: className2, children, ...props }) {
653
- return /* @__PURE__ */ jsx16(
660
+ return /* @__PURE__ */ jsx17(
654
661
  BaseTab,
655
662
  {
656
663
  className: (state) => {
@@ -668,7 +675,7 @@ function Tab({ className: className2, children, ...props }) {
668
675
  );
669
676
  }
670
677
  function TabPanel({ className: className2, children, ...props }) {
671
- return /* @__PURE__ */ jsx16(
678
+ return /* @__PURE__ */ jsx17(
672
679
  BaseTabPanel,
673
680
  {
674
681
  className: (state) => {
@@ -684,9 +691,9 @@ function TabPanel({ className: className2, children, ...props }) {
684
691
  // src/CreatorGrid.tsx
685
692
  import { ListBox, ListBoxItem } from "react-aria-components";
686
693
  import { twMerge as twMerge6 } from "tailwind-merge";
687
- import { jsx as jsx17, jsxs as jsxs10 } from "react/jsx-runtime";
694
+ import { jsx as jsx18, jsxs as jsxs10 } from "react/jsx-runtime";
688
695
  function CreatorGrid(props) {
689
- return /* @__PURE__ */ jsx17(
696
+ return /* @__PURE__ */ jsx18(
690
697
  ListBox,
691
698
  {
692
699
  orientation: "horizontal",
@@ -694,7 +701,7 @@ function CreatorGrid(props) {
694
701
  selectionMode: "single",
695
702
  items: props.items,
696
703
  className: "grid grid-sm gap-4 p-4 mb-8",
697
- children: (item) => /* @__PURE__ */ jsx17(CreatorGridItem, { ...item })
704
+ children: (item) => /* @__PURE__ */ jsx18(CreatorGridItem, { ...item })
698
705
  }
699
706
  );
700
707
  }
@@ -709,17 +716,17 @@ function CreatorGridItem(props) {
709
716
  $s.isFocused && "border-me-primary-500 outline-me-primary-500 outline-2"
710
717
  ),
711
718
  children: [
712
- /* @__PURE__ */ jsx17("div", { className: "rounded bg-me-gray-300 mb-2 flex items-center justify-center py-1 aspect-square", children: /* @__PURE__ */ jsx17("div", { className: "text-center [&>svg]:w-16 [&>svg]:h-16", children: props.icon }) }),
713
- /* @__PURE__ */ jsx17("div", { className: "text-center font-semibold text-sm", children: props.title }),
714
- /* @__PURE__ */ jsx17("div", { className: "text-sm text-center text-black/50", children: props.description })
719
+ /* @__PURE__ */ jsx18("div", { className: "rounded bg-me-gray-300 mb-2 flex items-center justify-center py-1 aspect-square", children: /* @__PURE__ */ jsx18("div", { className: "text-center [&>svg]:w-16 [&>svg]:h-16", children: props.icon }) }),
720
+ /* @__PURE__ */ jsx18("div", { className: "text-center font-semibold text-sm", children: props.title }),
721
+ /* @__PURE__ */ jsx18("div", { className: "text-sm text-center text-black/50", children: props.description })
715
722
  ]
716
723
  }
717
724
  );
718
725
  }
719
726
 
720
727
  // src/icons/DownloadIcon.tsx
721
- import { jsx as jsx18 } from "react/jsx-runtime";
722
- var DownloadIcon = (props) => /* @__PURE__ */ jsx18("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", fill: "#5f6368", viewBox: "0 -960 960 960", ...props, children: /* @__PURE__ */ jsx18(
728
+ import { jsx as jsx19 } from "react/jsx-runtime";
729
+ var DownloadIcon = (props) => /* @__PURE__ */ jsx19("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", fill: "#5f6368", viewBox: "0 -960 960 960", ...props, children: /* @__PURE__ */ jsx19(
723
730
  "path",
724
731
  {
725
732
  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",
@@ -729,10 +736,10 @@ var DownloadIcon = (props) => /* @__PURE__ */ jsx18("svg", { xmlns: "http://www.
729
736
 
730
737
  // src/DownloadButton.tsx
731
738
  import { useId } from "react-aria";
732
- import { jsx as jsx19, jsxs as jsxs11 } from "react/jsx-runtime";
739
+ import { jsx as jsx20, jsxs as jsxs11 } from "react/jsx-runtime";
733
740
  function DownloadButton({ label, id: _id, getData, fileName, fileType }) {
734
741
  const id = useId(_id);
735
- return /* @__PURE__ */ jsx19(Tooltip, { placement: "bottom", children: /* @__PURE__ */ jsxs11(
742
+ return /* @__PURE__ */ jsx20(Tooltip, { placement: "bottom", children: /* @__PURE__ */ jsxs11(
736
743
  TooltipTrigger,
737
744
  {
738
745
  className: "bg-me-gray-100 hover:bg-me-primary-500 hover:text-white p-1 rounded-md text-me-primary-500 text-2xl",
@@ -740,8 +747,8 @@ function DownloadButton({ label, id: _id, getData, fileName, fileType }) {
740
747
  id,
741
748
  onPress: () => createDownload(getData(), fileName, fileType),
742
749
  children: [
743
- /* @__PURE__ */ jsx19(DownloadIcon, { "aria-labelledby": _id }),
744
- /* @__PURE__ */ jsx19(DefaultTooltipContent, { children: label })
750
+ /* @__PURE__ */ jsx20(DownloadIcon, { "aria-labelledby": _id }),
751
+ /* @__PURE__ */ jsx20(DefaultTooltipContent, { children: label })
745
752
  ]
746
753
  }
747
754
  ) });
@@ -761,11 +768,11 @@ function createDownload(data, fileName, fileType = "text/json") {
761
768
  }
762
769
 
763
770
  // src/AtlasBanner.tsx
764
- import { jsx as jsx20, jsxs as jsxs12 } from "react/jsx-runtime";
771
+ import { jsx as jsx21, jsxs as jsxs12 } from "react/jsx-runtime";
765
772
  function AtlasBanner({ children, controlsId }) {
766
773
  return /* @__PURE__ */ jsxs12("div", { className: "bg-me-gray-100 border-b text-black p-1 flex gap-4 items-center h-12", children: [
767
- /* @__PURE__ */ jsx20("div", { className: "px-4", children }),
768
- /* @__PURE__ */ jsx20("div", { id: controlsId || "atlas-controls", className: "flex gap-2" })
774
+ /* @__PURE__ */ jsx21("div", { className: "px-4", children }),
775
+ /* @__PURE__ */ jsx21("div", { id: controlsId || "atlas-controls", className: "flex gap-2" })
769
776
  ] });
770
777
  }
771
778
 
@@ -773,7 +780,7 @@ function AtlasBanner({ children, controlsId }) {
773
780
  import { RenderSvgEditorControls } from "react-iiif-vault";
774
781
 
775
782
  // src/icons/DrawIcon.tsx
776
- import { jsx as jsx21, jsxs as jsxs13 } from "react/jsx-runtime";
783
+ import { jsx as jsx22, jsxs as jsxs13 } from "react/jsx-runtime";
777
784
  var DrawIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ jsxs13(
778
785
  "svg",
779
786
  {
@@ -784,8 +791,8 @@ var DrawIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ jsxs13(
784
791
  "aria-labelledby": titleId,
785
792
  ...props,
786
793
  children: [
787
- title ? /* @__PURE__ */ jsx21("title", { id: titleId, children: title }) : null,
788
- /* @__PURE__ */ jsx21(
794
+ title ? /* @__PURE__ */ jsx22("title", { id: titleId, children: title }) : null,
795
+ /* @__PURE__ */ jsx22(
789
796
  "path",
790
797
  {
791
798
  fill: "currentColor",
@@ -797,7 +804,7 @@ var DrawIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ jsxs13(
797
804
  );
798
805
 
799
806
  // src/icons/PolygonIcon.tsx
800
- import { jsx as jsx22, jsxs as jsxs14 } from "react/jsx-runtime";
807
+ import { jsx as jsx23, jsxs as jsxs14 } from "react/jsx-runtime";
801
808
  var PolygonIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ jsxs14(
802
809
  "svg",
803
810
  {
@@ -808,8 +815,8 @@ var PolygonIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ jsxs14(
808
815
  "aria-labelledby": titleId,
809
816
  ...props,
810
817
  children: [
811
- title ? /* @__PURE__ */ jsx22("title", { id: titleId, children: title }) : null,
812
- /* @__PURE__ */ jsx22(
818
+ title ? /* @__PURE__ */ jsx23("title", { id: titleId, children: title }) : null,
819
+ /* @__PURE__ */ jsx23(
813
820
  "path",
814
821
  {
815
822
  fill: "currentColor",
@@ -821,33 +828,33 @@ var PolygonIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ jsxs14(
821
828
  );
822
829
 
823
830
  // src/icons/LineIcon.tsx
824
- import { jsx as jsx23, jsxs as jsxs15 } from "react/jsx-runtime";
831
+ import { jsx as jsx24, jsxs as jsxs15 } from "react/jsx-runtime";
825
832
  function LineIcon({ title, titleId, ...props }) {
826
833
  return /* @__PURE__ */ jsxs15("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", "aria-labelledby": titleId, ...props, children: [
827
- title ? /* @__PURE__ */ jsx23("title", { id: titleId, children: title }) : null,
834
+ title ? /* @__PURE__ */ jsx24("title", { id: titleId, children: title }) : null,
828
835
  /* @__PURE__ */ jsxs15("g", { fill: "none", fillRule: "evenodd", children: [
829
- /* @__PURE__ */ jsx23("circle", { cx: 4.5, cy: 4.5, r: 2.5, fill: "currentColor" }),
830
- /* @__PURE__ */ jsx23("circle", { cx: 15.5, cy: 15.5, r: 2.5, fill: "currentColor" }),
831
- /* @__PURE__ */ jsx23("path", { stroke: "currentColor", strokeLinecap: "square", strokeWidth: 2, d: "m13.5 13.5-9-9" })
836
+ /* @__PURE__ */ jsx24("circle", { cx: 4.5, cy: 4.5, r: 2.5, fill: "currentColor" }),
837
+ /* @__PURE__ */ jsx24("circle", { cx: 15.5, cy: 15.5, r: 2.5, fill: "currentColor" }),
838
+ /* @__PURE__ */ jsx24("path", { stroke: "currentColor", strokeLinecap: "square", strokeWidth: 2, d: "m13.5 13.5-9-9" })
832
839
  ] })
833
840
  ] });
834
841
  }
835
842
 
836
843
  // src/icons/LineBoxIcon.tsx
837
- import { jsx as jsx24, jsxs as jsxs16 } from "react/jsx-runtime";
844
+ import { jsx as jsx25, jsxs as jsxs16 } from "react/jsx-runtime";
838
845
  function LineBoxIcon({ title, titleId, ...props }) {
839
846
  return /* @__PURE__ */ jsxs16("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", "aria-labelledby": titleId, ...props, children: [
840
- title ? /* @__PURE__ */ jsx24("title", { id: titleId, children: title }) : null,
847
+ title ? /* @__PURE__ */ jsx25("title", { id: titleId, children: title }) : null,
841
848
  /* @__PURE__ */ jsxs16("g", { fill: "none", fillRule: "evenodd", children: [
842
- /* @__PURE__ */ jsx24("path", { d: "M0 0h20v20H0z" }),
843
- /* @__PURE__ */ jsx24("path", { stroke: "currentColor", strokeLinecap: "square", strokeWidth: 2, d: "m8.5 11.5 6-6M16 4v3m0-3h-3m0 14L2 7" }),
844
- /* @__PURE__ */ jsx24("path", { stroke: "currentColor", strokeOpacity: 0.407, strokeWidth: 2, d: "m2 7 5-5 11 11-5 5z" })
849
+ /* @__PURE__ */ jsx25("path", { d: "M0 0h20v20H0z" }),
850
+ /* @__PURE__ */ jsx25("path", { stroke: "currentColor", strokeLinecap: "square", strokeWidth: 2, d: "m8.5 11.5 6-6M16 4v3m0-3h-3m0 14L2 7" }),
851
+ /* @__PURE__ */ jsx25("path", { stroke: "currentColor", strokeOpacity: 0.407, strokeWidth: 2, d: "m2 7 5-5 11 11-5 5z" })
845
852
  ] })
846
853
  ] });
847
854
  }
848
855
 
849
856
  // src/icons/ShapesIcon.tsx
850
- import { jsx as jsx25, jsxs as jsxs17 } from "react/jsx-runtime";
857
+ import { jsx as jsx26, jsxs as jsxs17 } from "react/jsx-runtime";
851
858
  var ShapesIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ jsxs17(
852
859
  "svg",
853
860
  {
@@ -858,8 +865,8 @@ var ShapesIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ jsxs17(
858
865
  "aria-labelledby": titleId,
859
866
  ...props,
860
867
  children: [
861
- title ? /* @__PURE__ */ jsx25("title", { id: titleId, children: title }) : null,
862
- /* @__PURE__ */ jsx25(
868
+ title ? /* @__PURE__ */ jsx26("title", { id: titleId, children: title }) : null,
869
+ /* @__PURE__ */ jsx26(
863
870
  "path",
864
871
  {
865
872
  fill: "currentColor",
@@ -871,7 +878,7 @@ var ShapesIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ jsxs17(
871
878
  );
872
879
 
873
880
  // src/icons/SquareIcon.tsx
874
- import { jsx as jsx26, jsxs as jsxs18 } from "react/jsx-runtime";
881
+ import { jsx as jsx27, jsxs as jsxs18 } from "react/jsx-runtime";
875
882
  var SquareIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ jsxs18(
876
883
  "svg",
877
884
  {
@@ -882,8 +889,8 @@ var SquareIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ jsxs18(
882
889
  "aria-labelledby": titleId,
883
890
  ...props,
884
891
  children: [
885
- title ? /* @__PURE__ */ jsx26("title", { id: titleId, children: title }) : null,
886
- /* @__PURE__ */ jsx26(
892
+ title ? /* @__PURE__ */ jsx27("title", { id: titleId, children: title }) : null,
893
+ /* @__PURE__ */ jsx27(
887
894
  "path",
888
895
  {
889
896
  fill: "currentColor",
@@ -895,7 +902,7 @@ var SquareIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ jsxs18(
895
902
  );
896
903
 
897
904
  // src/icons/TriangleIcon.tsx
898
- import { jsx as jsx27, jsxs as jsxs19 } from "react/jsx-runtime";
905
+ import { jsx as jsx28, jsxs as jsxs19 } from "react/jsx-runtime";
899
906
  var TriangleIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ jsxs19(
900
907
  "svg",
901
908
  {
@@ -906,14 +913,14 @@ var TriangleIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ jsxs19(
906
913
  "aria-labelledby": titleId,
907
914
  ...props,
908
915
  children: [
909
- title ? /* @__PURE__ */ jsx27("title", { id: titleId, children: title }) : null,
910
- /* @__PURE__ */ jsx27("path", { d: "m80-160 400-640 400 640H80Zm144-80h512L480-650 224-240Zm256-205Z", fill: "currentColor" })
916
+ title ? /* @__PURE__ */ jsx28("title", { id: titleId, children: title }) : null,
917
+ /* @__PURE__ */ jsx28("path", { d: "m80-160 400-640 400 640H80Zm144-80h512L480-650 224-240Zm256-205Z", fill: "currentColor" })
911
918
  ]
912
919
  }
913
920
  );
914
921
 
915
922
  // src/icons/HexagonIcon.tsx
916
- import { jsx as jsx28, jsxs as jsxs20 } from "react/jsx-runtime";
923
+ import { jsx as jsx29, jsxs as jsxs20 } from "react/jsx-runtime";
917
924
  var HexagonIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ jsxs20(
918
925
  "svg",
919
926
  {
@@ -924,8 +931,8 @@ var HexagonIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ jsxs20(
924
931
  "aria-labelledby": titleId,
925
932
  ...props,
926
933
  children: [
927
- title ? /* @__PURE__ */ jsx28("title", { id: titleId, children: title }) : null,
928
- /* @__PURE__ */ jsx28(
934
+ title ? /* @__PURE__ */ jsx29("title", { id: titleId, children: title }) : null,
935
+ /* @__PURE__ */ jsx29(
929
936
  "path",
930
937
  {
931
938
  fill: "currentColor",
@@ -937,12 +944,12 @@ var HexagonIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ jsxs20(
937
944
  );
938
945
 
939
946
  // src/icons/DeleteForeverIcon.tsx
940
- import { jsx as jsx29, jsxs as jsxs21 } from "react/jsx-runtime";
947
+ import { jsx as jsx30, jsxs as jsxs21 } from "react/jsx-runtime";
941
948
  function DeleteForeverIcon(props) {
942
949
  return /* @__PURE__ */ jsxs21("svg", { height: "1em", width: "1em", viewBox: "0 0 24 24", ...props, children: [
943
- /* @__PURE__ */ jsx29("path", { d: "M0 0h24v24H0z", fill: "none" }),
944
- /* @__PURE__ */ jsx29("path", { d: "M0 0h24v24H0V0z", fill: "none" }),
945
- /* @__PURE__ */ jsx29(
950
+ /* @__PURE__ */ jsx30("path", { d: "M0 0h24v24H0z", fill: "none" }),
951
+ /* @__PURE__ */ jsx30("path", { d: "M0 0h24v24H0V0z", fill: "none" }),
952
+ /* @__PURE__ */ jsx30(
946
953
  "path",
947
954
  {
948
955
  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",
@@ -954,18 +961,18 @@ function DeleteForeverIcon(props) {
954
961
 
955
962
  // src/SvgControlBar.tsx
956
963
  import { useEffect as useEffect2 } from "react";
957
- import { jsx as jsx30 } from "react/jsx-runtime";
964
+ import { jsx as jsx31 } from "react/jsx-runtime";
958
965
  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';
959
966
  var icons = {
960
- DrawIcon: /* @__PURE__ */ jsx30(DrawIcon, {}),
961
- PolygonIcon: /* @__PURE__ */ jsx30(PolygonIcon, {}),
962
- LineIcon: /* @__PURE__ */ jsx30(LineIcon, {}),
963
- LineBoxIcon: /* @__PURE__ */ jsx30(LineBoxIcon, {}),
964
- ShapesIcon: /* @__PURE__ */ jsx30(ShapesIcon, {}),
965
- SquareIcon: /* @__PURE__ */ jsx30(SquareIcon, {}),
966
- TriangleIcon: /* @__PURE__ */ jsx30(TriangleIcon, {}),
967
- HexagonIcon: /* @__PURE__ */ jsx30(HexagonIcon, {}),
968
- DeleteForeverIcon: /* @__PURE__ */ jsx30(DeleteForeverIcon, {})
967
+ DrawIcon: /* @__PURE__ */ jsx31(DrawIcon, {}),
968
+ PolygonIcon: /* @__PURE__ */ jsx31(PolygonIcon, {}),
969
+ LineIcon: /* @__PURE__ */ jsx31(LineIcon, {}),
970
+ LineBoxIcon: /* @__PURE__ */ jsx31(LineBoxIcon, {}),
971
+ ShapesIcon: /* @__PURE__ */ jsx31(ShapesIcon, {}),
972
+ SquareIcon: /* @__PURE__ */ jsx31(SquareIcon, {}),
973
+ TriangleIcon: /* @__PURE__ */ jsx31(TriangleIcon, {}),
974
+ HexagonIcon: /* @__PURE__ */ jsx31(HexagonIcon, {}),
975
+ DeleteForeverIcon: /* @__PURE__ */ jsx31(DeleteForeverIcon, {})
969
976
  };
970
977
  function SvgControlBar({
971
978
  helper,
@@ -975,7 +982,7 @@ function SvgControlBar({
975
982
  useEffect2(() => {
976
983
  helper.stamps.square();
977
984
  }, []);
978
- return /* @__PURE__ */ jsx30(
985
+ return /* @__PURE__ */ jsx31(
979
986
  RenderSvgEditorControls,
980
987
  {
981
988
  icons,
@@ -990,18 +997,18 @@ function SvgControlBar({
990
997
  }
991
998
 
992
999
  // src/ConfirmSelectionButton.tsx
993
- import { Button as Button3 } from "react-aria-components";
994
- import { jsx as jsx31 } from "react/jsx-runtime";
1000
+ import { Button as Button4 } from "react-aria-components";
1001
+ import { jsx as jsx32 } from "react/jsx-runtime";
995
1002
  function ConfirmSelectionButton({ onPress, children }) {
996
- return /* @__PURE__ */ jsx31(Button3, { className: "bg-me-primary-500 px-3 py-1 hover:bg-me-primary-600 text-white rounded", onPress, children });
1003
+ return /* @__PURE__ */ jsx32(Button4, { className: "bg-me-primary-500 px-3 py-1 hover:bg-me-primary-600 text-white rounded", onPress, children });
997
1004
  }
998
1005
 
999
1006
  // src/ManifestOverviewEmptyState.tsx
1000
- import { Button as Button4 } from "react-aria-components";
1001
- import { jsx as jsx32, jsxs as jsxs22 } from "react/jsx-runtime";
1007
+ import { Button as Button5 } from "react-aria-components";
1008
+ import { jsx as jsx33, jsxs as jsxs22 } from "react/jsx-runtime";
1002
1009
  function ManifestOverviewEmptyState({ onCreate, canCreate }) {
1003
1010
  return /* @__PURE__ */ jsxs22("div", { className: "flex items-center flex-col gap-5 py-16", children: [
1004
- /* @__PURE__ */ jsx32(
1011
+ /* @__PURE__ */ jsx33(
1005
1012
  Card3D,
1006
1013
  {
1007
1014
  shouldTranslate: true,
@@ -1009,10 +1016,10 @@ function ManifestOverviewEmptyState({ onCreate, canCreate }) {
1009
1016
  className: "border-2 border-dotted bg-black/5 aspect-[3/4] rounded w-32 border-black"
1010
1017
  }
1011
1018
  ),
1012
- /* @__PURE__ */ jsx32("div", { className: "font-bold text-lg", children: "Let's get started!" }),
1013
- /* @__PURE__ */ jsx32("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." }),
1014
- canCreate ? /* @__PURE__ */ jsx32(
1015
- Button4,
1019
+ /* @__PURE__ */ jsx33("div", { className: "font-bold text-lg", children: "Let's get started!" }),
1020
+ /* @__PURE__ */ jsx33("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." }),
1021
+ canCreate ? /* @__PURE__ */ jsx33(
1022
+ Button5,
1016
1023
  {
1017
1024
  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",
1018
1025
  onPress: onCreate,
@@ -1030,7 +1037,7 @@ import {
1030
1037
  useState as useState3
1031
1038
  } from "react";
1032
1039
  import {
1033
- Button as Button5,
1040
+ Button as Button6,
1034
1041
  Menu,
1035
1042
  MenuItem,
1036
1043
  MenuTrigger,
@@ -1042,7 +1049,7 @@ import {
1042
1049
  } from "react-aria-components";
1043
1050
  import { createHideableComponent } from "@react-aria/collections";
1044
1051
  import { createPortal as createPortal2 } from "react-dom";
1045
- import { Fragment as Fragment3, jsx as jsx33, jsxs as jsxs23 } from "react/jsx-runtime";
1052
+ import { Fragment as Fragment3, jsx as jsx34, jsxs as jsxs23 } from "react/jsx-runtime";
1046
1053
  function SidebarTabs({
1047
1054
  menu,
1048
1055
  menuId,
@@ -1100,14 +1107,14 @@ function SidebarTabs({
1100
1107
  onSelectionChange,
1101
1108
  children: [
1102
1109
  /* @__PURE__ */ jsxs23("div", { className: "flex items-center w-full tab-shadow", children: [
1103
- /* @__PURE__ */ jsx33(
1110
+ /* @__PURE__ */ jsx34(
1104
1111
  TabList2,
1105
1112
  {
1106
1113
  ref,
1107
1114
  className: "flex-1 overflow-hidden w-full flex text-sm whitespace-nowrap",
1108
1115
  children: menu.map((item, idx) => {
1109
1116
  const isHidden = hidden >= menu.length - idx;
1110
- return /* @__PURE__ */ jsx33(
1117
+ return /* @__PURE__ */ jsx34(
1111
1118
  Tab2,
1112
1119
  {
1113
1120
  ref: (el) => itemsRef.current[idx] = el,
@@ -1126,9 +1133,9 @@ function SidebarTabs({
1126
1133
  })
1127
1134
  }
1128
1135
  ),
1129
- /* @__PURE__ */ jsx33("div", { ref: setHiddenMenu, id: "hidden-menu" })
1136
+ /* @__PURE__ */ jsx34("div", { ref: setHiddenMenu, id: "hidden-menu" })
1130
1137
  ] }),
1131
- menu.map((item) => /* @__PURE__ */ jsx33(
1138
+ menu.map((item) => /* @__PURE__ */ jsx34(
1132
1139
  TabPanel2,
1133
1140
  {
1134
1141
  id: item.id,
@@ -1142,7 +1149,7 @@ function SidebarTabs({
1142
1149
  menuId
1143
1150
  ),
1144
1151
  hiddenMenu && hidden > 0 ? createPortal2(
1145
- /* @__PURE__ */ jsx33(
1152
+ /* @__PURE__ */ jsx34(
1146
1153
  MoreMenu,
1147
1154
  {
1148
1155
  hidden,
@@ -1158,8 +1165,8 @@ function SidebarTabs({
1158
1165
  }
1159
1166
  var MoreMenu = createHideableComponent(({ selectedIndex, hidden, menuHidden, selectedKey, onSelectionChange }) => {
1160
1167
  return /* @__PURE__ */ jsxs23(MenuTrigger, { children: [
1161
- /* @__PURE__ */ jsx33(
1162
- Button5,
1168
+ /* @__PURE__ */ jsx34(
1169
+ Button6,
1163
1170
  {
1164
1171
  className: cn(
1165
1172
  "border-none rounded bg-gray-100 px-1.5 py-1 mr-2 mb-1 text-me-primary-500 semibold uppercase text-[10px]",
@@ -1168,12 +1175,12 @@ var MoreMenu = createHideableComponent(({ selectedIndex, hidden, menuHidden, sel
1168
1175
  children: "MORE"
1169
1176
  }
1170
1177
  ),
1171
- /* @__PURE__ */ jsx33(Popover, { children: menuHidden.length ? /* @__PURE__ */ jsx33(
1178
+ /* @__PURE__ */ jsx34(Popover, { children: menuHidden.length ? /* @__PURE__ */ jsx34(
1172
1179
  Menu,
1173
1180
  {
1174
1181
  className: "bg-white rounded shadow-lg flex flex-col gap-0.5 p-0.5 min-w-28",
1175
1182
  children: menuHidden.map((item) => {
1176
- return /* @__PURE__ */ jsx33(
1183
+ return /* @__PURE__ */ jsx34(
1177
1184
  MenuItem,
1178
1185
  {
1179
1186
  className: (state) => cn(
@@ -1193,7 +1200,7 @@ var MoreMenu = createHideableComponent(({ selectedIndex, hidden, menuHidden, sel
1193
1200
 
1194
1201
  // src/MetadataContainer.tsx
1195
1202
  import { LocaleString as LocaleString2 } from "react-iiif-vault";
1196
- import { jsx as jsx34, jsxs as jsxs24 } from "react/jsx-runtime";
1203
+ import { jsx as jsx35, jsxs as jsxs24 } from "react/jsx-runtime";
1197
1204
  function MetadataContainer({
1198
1205
  className: className2,
1199
1206
  label,
@@ -1209,7 +1216,7 @@ function MetadataContainer({
1209
1216
  ),
1210
1217
  ...props,
1211
1218
  children: [
1212
- /* @__PURE__ */ jsx34(LocaleString2, { className: "text-lg font-bold text-[#333] mb-2", as: "h3", children: label }),
1219
+ /* @__PURE__ */ jsx35(LocaleString2, { className: "text-lg font-bold text-[#333] mb-2", as: "h3", children: label }),
1213
1220
  children
1214
1221
  ]
1215
1222
  }
@@ -1217,9 +1224,9 @@ function MetadataContainer({
1217
1224
  }
1218
1225
 
1219
1226
  // src/EmptyState.tsx
1220
- import { jsx as jsx35 } from "react/jsx-runtime";
1227
+ import { jsx as jsx36 } from "react/jsx-runtime";
1221
1228
  function EmptyState(props) {
1222
- return /* @__PURE__ */ jsx35(
1229
+ return /* @__PURE__ */ jsx36(
1223
1230
  "div",
1224
1231
  {
1225
1232
  className: cn(
@@ -1233,9 +1240,9 @@ function EmptyState(props) {
1233
1240
  }
1234
1241
 
1235
1242
  // src/ManifestEditorLogo.tsx
1236
- import { jsx as jsx36, jsxs as jsxs25 } from "react/jsx-runtime";
1243
+ import { jsx as jsx37, jsxs as jsxs25 } from "react/jsx-runtime";
1237
1244
  function ManifestEditorLogo(props) {
1238
- return /* @__PURE__ */ jsx36(
1245
+ return /* @__PURE__ */ jsx37(
1239
1246
  "svg",
1240
1247
  {
1241
1248
  width: "1em",
@@ -1245,16 +1252,16 @@ function ManifestEditorLogo(props) {
1245
1252
  className: "me-logo h-[23px] w-[176px]",
1246
1253
  ...props,
1247
1254
  children: /* @__PURE__ */ jsxs25("g", { fill: "none", children: [
1248
- /* @__PURE__ */ jsx36(
1255
+ /* @__PURE__ */ jsx37(
1249
1256
  "path",
1250
1257
  {
1251
1258
  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",
1252
1259
  fill: "#000"
1253
1260
  }
1254
1261
  ),
1255
- /* @__PURE__ */ jsx36("path", { fill: "#E94581", className: "me-logo-1", d: "M0 13.343 13.343 0l13.343 13.343-13.343 13.343z" }),
1256
- /* @__PURE__ */ jsx36("path", { fill: "#E94581", className: "me-logo-2", d: "M12.137 13.346 25.48.003l13.343 13.343L25.48 26.69z" }),
1257
- /* @__PURE__ */ jsx36("path", { fill: "#C63E75", className: "me-logo-3", d: "m12.104 13.348 7.311-7.311 7.312 7.311-7.312 7.312z" })
1262
+ /* @__PURE__ */ jsx37("path", { fill: "#E94581", className: "me-logo-1", d: "M0 13.343 13.343 0l13.343 13.343-13.343 13.343z" }),
1263
+ /* @__PURE__ */ jsx37("path", { fill: "#E94581", className: "me-logo-2", d: "M12.137 13.346 25.48.003l13.343 13.343L25.48 26.69z" }),
1264
+ /* @__PURE__ */ jsx37("path", { fill: "#C63E75", className: "me-logo-3", d: "m12.104 13.348 7.311-7.311 7.312 7.311-7.312 7.312z" })
1258
1265
  ] })
1259
1266
  }
1260
1267
  );
@@ -1262,9 +1269,9 @@ function ManifestEditorLogo(props) {
1262
1269
 
1263
1270
  // src/Forms.tsx
1264
1271
  import { Input, Label, Form as RAForm, Radio, RadioGroup, TextArea } from "react-aria-components";
1265
- import { jsx as jsx37 } from "react/jsx-runtime";
1272
+ import { jsx as jsx38 } from "react/jsx-runtime";
1266
1273
  function MeLabel({ className: className2, ...props }) {
1267
- return /* @__PURE__ */ jsx37(
1274
+ return /* @__PURE__ */ jsx38(
1268
1275
  Label,
1269
1276
  {
1270
1277
  className: cn(
@@ -1277,7 +1284,7 @@ function MeLabel({ className: className2, ...props }) {
1277
1284
  );
1278
1285
  }
1279
1286
  function MeRadioGroup({ className: className2, ...props }) {
1280
- return /* @__PURE__ */ jsx37(
1287
+ return /* @__PURE__ */ jsx38(
1281
1288
  RadioGroup,
1282
1289
  {
1283
1290
  className: cn(
@@ -1290,7 +1297,7 @@ function MeRadioGroup({ className: className2, ...props }) {
1290
1297
  );
1291
1298
  }
1292
1299
  function MeRadio({ className: className2, ...props }) {
1293
- return /* @__PURE__ */ jsx37(
1300
+ return /* @__PURE__ */ jsx38(
1294
1301
  Radio,
1295
1302
  {
1296
1303
  className: (state) => cn(
@@ -1303,7 +1310,7 @@ function MeRadio({ className: className2, ...props }) {
1303
1310
  );
1304
1311
  }
1305
1312
  function MeForm({ className: className2, ...props }) {
1306
- return /* @__PURE__ */ jsx37(
1313
+ return /* @__PURE__ */ jsx38(
1307
1314
  RAForm,
1308
1315
  {
1309
1316
  className: cn(
@@ -1316,7 +1323,7 @@ function MeForm({ className: className2, ...props }) {
1316
1323
  );
1317
1324
  }
1318
1325
  function MeInput({ className: className2, ...props }) {
1319
- return /* @__PURE__ */ jsx37(
1326
+ return /* @__PURE__ */ jsx38(
1320
1327
  Input,
1321
1328
  {
1322
1329
  className: cn(
@@ -1330,7 +1337,7 @@ function MeInput({ className: className2, ...props }) {
1330
1337
  );
1331
1338
  }
1332
1339
  function MeTextArea({ className: className2, ...props }) {
1333
- return /* @__PURE__ */ jsx37(
1340
+ return /* @__PURE__ */ jsx38(
1334
1341
  TextArea,
1335
1342
  {
1336
1343
  className: cn(
@@ -1348,7 +1355,7 @@ function MeInputContainer({
1348
1355
  className: className2,
1349
1356
  ...props
1350
1357
  }) {
1351
- return /* @__PURE__ */ jsx37(
1358
+ return /* @__PURE__ */ jsx38(
1352
1359
  "div",
1353
1360
  {
1354
1361
  className: cn(
@@ -1398,12 +1405,12 @@ import {
1398
1405
  toolbarPlugin
1399
1406
  } from "@mdxeditor/editor";
1400
1407
  import { useMemo as useMemo3 } from "react";
1401
- import { Fragment as Fragment4, jsx as jsx38, jsxs as jsxs26 } from "react/jsx-runtime";
1408
+ import { Fragment as Fragment4, jsx as jsx39, jsxs as jsxs26 } from "react/jsx-runtime";
1402
1409
  function MDXEditor({
1403
1410
  editorRef,
1404
1411
  ...props
1405
1412
  }) {
1406
- return /* @__PURE__ */ jsx38(
1413
+ return /* @__PURE__ */ jsx39(
1407
1414
  BaseMDXEditor,
1408
1415
  {
1409
1416
  plugins: useMemo3(
@@ -1421,12 +1428,12 @@ function MDXEditor({
1421
1428
  toolbarClassName: "mdx-toolbar",
1422
1429
  toolbarContents: () => /* @__PURE__ */ jsxs26(Fragment4, { children: [
1423
1430
  " ",
1424
- /* @__PURE__ */ jsx38(UndoRedo, {}),
1425
- /* @__PURE__ */ jsx38(BoldItalicUnderlineToggles, {}),
1426
- /* @__PURE__ */ jsx38(BlockTypeSelect, {}),
1427
- /* @__PURE__ */ jsx38(ListsToggle, { options: ["bullet", "number"] }),
1428
- /* @__PURE__ */ jsx38(CreateLink, {}),
1429
- /* @__PURE__ */ jsx38(InsertImage, {})
1431
+ /* @__PURE__ */ jsx39(UndoRedo, {}),
1432
+ /* @__PURE__ */ jsx39(BoldItalicUnderlineToggles, {}),
1433
+ /* @__PURE__ */ jsx39(BlockTypeSelect, {}),
1434
+ /* @__PURE__ */ jsx39(ListsToggle, { options: ["bullet", "number"] }),
1435
+ /* @__PURE__ */ jsx39(CreateLink, {}),
1436
+ /* @__PURE__ */ jsx39(InsertImage, {})
1430
1437
  ] })
1431
1438
  })
1432
1439
  ],
@@ -1439,7 +1446,7 @@ function MDXEditor({
1439
1446
  }
1440
1447
 
1441
1448
  // src/HTMLEditor.tsx
1442
- import { jsx as jsx39 } from "react/jsx-runtime";
1449
+ import { jsx as jsx40 } from "react/jsx-runtime";
1443
1450
  var converter = new Converter();
1444
1451
  converter.setFlavor("github");
1445
1452
  var turndownService = new TurndownService();
@@ -1467,7 +1474,7 @@ function HTMLEditor({
1467
1474
  }
1468
1475
  };
1469
1476
  }, []);
1470
- return /* @__PURE__ */ jsx39(
1477
+ return /* @__PURE__ */ jsx40(
1471
1478
  MDXEditor,
1472
1479
  {
1473
1480
  editorRef,
@@ -1493,7 +1500,7 @@ function HTMLEditor({
1493
1500
 
1494
1501
  // src/IconButton.tsx
1495
1502
  import { twMerge as twMerge7 } from "tailwind-merge";
1496
- import { jsx as jsx40, jsxs as jsxs27 } from "react/jsx-runtime";
1503
+ import { jsx as jsx41, jsxs as jsxs27 } from "react/jsx-runtime";
1497
1504
  function IconButton({
1498
1505
  children,
1499
1506
  active,
@@ -1504,9 +1511,10 @@ function IconButton({
1504
1511
  className: className2,
1505
1512
  placement = "top"
1506
1513
  }) {
1507
- return /* @__PURE__ */ jsx40(Tooltip, { placement, children: /* @__PURE__ */ jsxs27(
1514
+ return /* @__PURE__ */ jsx41(Tooltip, { placement, children: /* @__PURE__ */ jsxs27(
1508
1515
  TooltipTrigger,
1509
1516
  {
1517
+ "aria-label": label,
1510
1518
  onClick: onPress,
1511
1519
  className: twMerge7(
1512
1520
  "rounded flex items-center bg-white justify-center p-2 hover:bg-gray-100 text-2xl",
@@ -1516,14 +1524,14 @@ function IconButton({
1516
1524
  ),
1517
1525
  children: [
1518
1526
  children,
1519
- /* @__PURE__ */ jsx40(DefaultTooltipContent, { root, className: "translate-x-3 z-50", children: label })
1527
+ /* @__PURE__ */ jsx41(DefaultTooltipContent, { root, className: "translate-x-3 z-50", children: label })
1520
1528
  ]
1521
1529
  }
1522
1530
  ) });
1523
1531
  }
1524
1532
 
1525
1533
  // src/ItemWithHandle.tsx
1526
- import { jsx as jsx41, jsxs as jsxs28 } from "react/jsx-runtime";
1534
+ import { jsx as jsx42, jsxs as jsxs28 } from "react/jsx-runtime";
1527
1535
  function ItemWithHandle({
1528
1536
  children,
1529
1537
  handle,
@@ -1535,7 +1543,7 @@ function ItemWithHandle({
1535
1543
  "absolute flex p-1 gap-1 bg-white z-1 right-1 top-1 rounded"
1536
1544
  ) : "flex-shrink-0 flex items-center gap-1 px-1";
1537
1545
  return /* @__PURE__ */ jsxs28("div", { className: grid ? "relative flex flex-col" : "flex items-center", children: [
1538
- /* @__PURE__ */ jsx41("div", { className: "flex-1 min-w-0", style: { flex: 1, minWidth: 0 }, children }),
1546
+ /* @__PURE__ */ jsx42("div", { className: "flex-1 min-w-0", style: { flex: 1, minWidth: 0 }, children }),
1539
1547
  /* @__PURE__ */ jsxs28("div", { className: gridStyleClassName, children: [
1540
1548
  actions,
1541
1549
  handle
@@ -1545,9 +1553,9 @@ function ItemWithHandle({
1545
1553
 
1546
1554
  // src/HandleContainer.tsx
1547
1555
  import { forwardRef as forwardRef2 } from "react";
1548
- import { jsx as jsx42 } from "react/jsx-runtime";
1556
+ import { jsx as jsx43 } from "react/jsx-runtime";
1549
1557
  var HandleContainer = forwardRef2(function HandleContainer2({ className: className2, ...props }, ref) {
1550
- return /* @__PURE__ */ jsx42(
1558
+ return /* @__PURE__ */ jsx43(
1551
1559
  "div",
1552
1560
  {
1553
1561
  ref,
@@ -1558,13 +1566,12 @@ var HandleContainer = forwardRef2(function HandleContainer2({ className: classNa
1558
1566
  });
1559
1567
 
1560
1568
  // src/CollectionListItem.tsx
1561
- import { Button as Button6 } from "react-aria-components";
1562
1569
  import { LocaleString as LocaleString3, useCollection } from "react-iiif-vault";
1563
1570
 
1564
1571
  // src/icons/CollectionIcon.tsx
1565
- import { jsx as jsx43 } from "react/jsx-runtime";
1572
+ import { jsx as jsx44 } from "react/jsx-runtime";
1566
1573
  function CollectionIcon(props) {
1567
- return /* @__PURE__ */ jsx43(
1574
+ return /* @__PURE__ */ jsx44(
1568
1575
  "svg",
1569
1576
  {
1570
1577
  xmlns: "http://www.w3.org/2000/svg",
@@ -1574,7 +1581,7 @@ function CollectionIcon(props) {
1574
1581
  "aria-label": "collection",
1575
1582
  role: "img",
1576
1583
  ...props,
1577
- children: /* @__PURE__ */ jsx43(
1584
+ children: /* @__PURE__ */ jsx44(
1578
1585
  "path",
1579
1586
  {
1580
1587
  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",
@@ -1586,37 +1593,42 @@ function CollectionIcon(props) {
1586
1593
  }
1587
1594
 
1588
1595
  // src/CollectionListItem.tsx
1589
- import { jsx as jsx44, jsxs as jsxs29 } from "react/jsx-runtime";
1596
+ import { usePress } from "react-aria";
1597
+ import { getValue } from "@iiif/helpers/i18n";
1598
+ import { jsx as jsx45, jsxs as jsxs29 } from "react/jsx-runtime";
1590
1599
  function CollectionListItem({ isActive, onAction }) {
1591
1600
  const collection = useCollection({});
1601
+ const { pressProps } = usePress({
1602
+ onPress: onAction
1603
+ });
1592
1604
  return /* @__PURE__ */ jsxs29(
1593
- Button6,
1605
+ "li",
1594
1606
  {
1607
+ "aria-label": getValue(collection?.label),
1595
1608
  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",
1596
- onPress: onAction,
1597
1609
  "data-active": isActive || void 0,
1610
+ ...pressProps,
1598
1611
  children: [
1599
- /* @__PURE__ */ jsx44(
1612
+ /* @__PURE__ */ jsx45(
1600
1613
  CollectionIcon,
1601
1614
  {
1602
1615
  "data-active": isActive || void 0,
1603
1616
  className: "flex-shrink-0 text-2xl data-[active]:text-me-primary-500 text-gray-400"
1604
1617
  }
1605
1618
  ),
1606
- /* @__PURE__ */ jsx44(LocaleString3, { children: collection?.label })
1619
+ /* @__PURE__ */ jsx45(LocaleString3, { children: collection?.label })
1607
1620
  ]
1608
1621
  }
1609
1622
  );
1610
1623
  }
1611
1624
 
1612
1625
  // src/ManifestListItem.tsx
1613
- import { Button as Button7 } from "react-aria-components";
1614
1626
  import { LocaleString as LocaleString4, useManifest } from "react-iiif-vault";
1615
1627
 
1616
1628
  // src/icons/ManifestIcon.tsx
1617
- import { jsx as jsx45 } from "react/jsx-runtime";
1629
+ import { jsx as jsx46 } from "react/jsx-runtime";
1618
1630
  function ManifestIcon(props) {
1619
- return /* @__PURE__ */ jsx45(
1631
+ return /* @__PURE__ */ jsx46(
1620
1632
  "svg",
1621
1633
  {
1622
1634
  xmlns: "http://www.w3.org/2000/svg",
@@ -1626,7 +1638,7 @@ function ManifestIcon(props) {
1626
1638
  "aria-label": "manifest",
1627
1639
  role: "img",
1628
1640
  ...props,
1629
- children: /* @__PURE__ */ jsx45(
1641
+ children: /* @__PURE__ */ jsx46(
1630
1642
  "path",
1631
1643
  {
1632
1644
  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",
@@ -1638,35 +1650,41 @@ function ManifestIcon(props) {
1638
1650
  }
1639
1651
 
1640
1652
  // src/ManifestListItem.tsx
1641
- import { jsx as jsx46, jsxs as jsxs30 } from "react/jsx-runtime";
1653
+ import { usePress as usePress2 } from "react-aria";
1654
+ import { getValue as getValue2 } from "@iiif/helpers";
1655
+ import { jsx as jsx47, jsxs as jsxs30 } from "react/jsx-runtime";
1642
1656
  function ManifestListItem({ isActive, onAction }) {
1643
1657
  const manifest = useManifest();
1658
+ const { pressProps } = usePress2({
1659
+ onPress: onAction
1660
+ });
1644
1661
  return /* @__PURE__ */ jsxs30(
1645
- Button7,
1662
+ "li",
1646
1663
  {
1664
+ "aria-label": getValue2(manifest?.label),
1647
1665
  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",
1648
- onPress: onAction,
1649
1666
  "data-active": isActive || void 0,
1667
+ ...pressProps,
1650
1668
  children: [
1651
- /* @__PURE__ */ jsx46(
1669
+ /* @__PURE__ */ jsx47(
1652
1670
  ManifestIcon,
1653
1671
  {
1654
1672
  "data-active": isActive || void 0,
1655
1673
  className: "flex-shrink-0 text-2xl data-[active]:text-me-primary-500 text-gray-400"
1656
1674
  }
1657
1675
  ),
1658
- /* @__PURE__ */ jsx46(LocaleString4, { children: manifest?.label })
1676
+ /* @__PURE__ */ jsx47(LocaleString4, { children: manifest?.label })
1659
1677
  ]
1660
1678
  }
1661
1679
  );
1662
1680
  }
1663
1681
 
1664
1682
  // src/icons/CreateCanvasIcon.tsx
1665
- import { jsx as jsx47, jsxs as jsxs31 } from "react/jsx-runtime";
1683
+ import { jsx as jsx48, jsxs as jsxs31 } from "react/jsx-runtime";
1666
1684
  function CreateCanvasIcon() {
1667
1685
  return /* @__PURE__ */ jsxs31("svg", { xmlns: "http://www.w3.org/2000/svg", height: "24", viewBox: "0 0 24 24", width: "24", children: [
1668
- /* @__PURE__ */ jsx47("path", { d: "M0 0h24v24H0V0z", fill: "none" }),
1669
- /* @__PURE__ */ jsx47(
1686
+ /* @__PURE__ */ jsx48("path", { d: "M0 0h24v24H0V0z", fill: "none" }),
1687
+ /* @__PURE__ */ jsx48(
1670
1688
  "path",
1671
1689
  {
1672
1690
  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",
@@ -1677,8 +1695,8 @@ function CreateCanvasIcon() {
1677
1695
  }
1678
1696
 
1679
1697
  // src/icons/AddImageIcon.tsx
1680
- import { jsx as jsx48 } from "react/jsx-runtime";
1681
- var AddImageIcon = (props) => /* @__PURE__ */ jsx48("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", fill: "#5f6368", viewBox: "0 -960 960 960", ...props, children: /* @__PURE__ */ jsx48(
1698
+ import { jsx as jsx49 } from "react/jsx-runtime";
1699
+ var AddImageIcon = (props) => /* @__PURE__ */ jsx49("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", fill: "#5f6368", viewBox: "0 -960 960 960", ...props, children: /* @__PURE__ */ jsx49(
1682
1700
  "path",
1683
1701
  {
1684
1702
  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",
@@ -1687,7 +1705,7 @@ var AddImageIcon = (props) => /* @__PURE__ */ jsx48("svg", { xmlns: "http://www.
1687
1705
  ) });
1688
1706
 
1689
1707
  // src/icons/IIIFLogo.tsx
1690
- import { jsx as jsx49, jsxs as jsxs32 } from "react/jsx-runtime";
1708
+ import { jsx as jsx50, jsxs as jsxs32 } from "react/jsx-runtime";
1691
1709
  var IIIFLogo = ({ mono = true, ...props }) => /* @__PURE__ */ jsxs32(
1692
1710
  "svg",
1693
1711
  {
@@ -1698,7 +1716,7 @@ var IIIFLogo = ({ mono = true, ...props }) => /* @__PURE__ */ jsxs32(
1698
1716
  ...props,
1699
1717
  viewBox: "0 0 493.36 441.333",
1700
1718
  children: [
1701
- /* @__PURE__ */ jsx49(
1719
+ /* @__PURE__ */ jsx50(
1702
1720
  "path",
1703
1721
  {
1704
1722
  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",
@@ -1711,7 +1729,7 @@ var IIIFLogo = ({ mono = true, ...props }) => /* @__PURE__ */ jsxs32(
1711
1729
  transform: "matrix(.13333 0 0 -.13333 0 441.333)"
1712
1730
  }
1713
1731
  ),
1714
- /* @__PURE__ */ jsx49(
1732
+ /* @__PURE__ */ jsx50(
1715
1733
  "path",
1716
1734
  {
1717
1735
  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",
@@ -1724,7 +1742,7 @@ var IIIFLogo = ({ mono = true, ...props }) => /* @__PURE__ */ jsxs32(
1724
1742
  transform: "matrix(.13333 0 0 -.13333 0 441.333)"
1725
1743
  }
1726
1744
  ),
1727
- /* @__PURE__ */ jsx49(
1745
+ /* @__PURE__ */ jsx50(
1728
1746
  "path",
1729
1747
  {
1730
1748
  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",
@@ -1737,7 +1755,7 @@ var IIIFLogo = ({ mono = true, ...props }) => /* @__PURE__ */ jsxs32(
1737
1755
  transform: "matrix(.13333 0 0 -.13333 0 441.333)"
1738
1756
  }
1739
1757
  ),
1740
- /* @__PURE__ */ jsx49(
1758
+ /* @__PURE__ */ jsx50(
1741
1759
  "path",
1742
1760
  {
1743
1761
  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",
@@ -1755,8 +1773,8 @@ var IIIFLogo = ({ mono = true, ...props }) => /* @__PURE__ */ jsxs32(
1755
1773
  );
1756
1774
 
1757
1775
  // src/icons/HTMLIcon.tsx
1758
- import { jsx as jsx50 } from "react/jsx-runtime";
1759
- var HTMLIcon = (props) => /* @__PURE__ */ jsx50("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", fill: "#5f6368", viewBox: "0 -960 960 960", ...props, children: /* @__PURE__ */ jsx50(
1776
+ import { jsx as jsx51 } from "react/jsx-runtime";
1777
+ var HTMLIcon = (props) => /* @__PURE__ */ jsx51("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", fill: "#5f6368", viewBox: "0 -960 960 960", ...props, children: /* @__PURE__ */ jsx51(
1760
1778
  "path",
1761
1779
  {
1762
1780
  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",
@@ -1765,8 +1783,8 @@ var HTMLIcon = (props) => /* @__PURE__ */ jsx50("svg", { xmlns: "http://www.w3.o
1765
1783
  ) });
1766
1784
 
1767
1785
  // src/icons/IIIFBrowserIcon.tsx
1768
- import { jsx as jsx51 } from "react/jsx-runtime";
1769
- var IIIFBrowserIcon = (props) => /* @__PURE__ */ jsx51("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", fill: "#5f6368", viewBox: "0 -960 960 960", ...props, children: /* @__PURE__ */ jsx51(
1786
+ import { jsx as jsx52 } from "react/jsx-runtime";
1787
+ var IIIFBrowserIcon = (props) => /* @__PURE__ */ jsx52("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", fill: "#5f6368", viewBox: "0 -960 960 960", ...props, children: /* @__PURE__ */ jsx52(
1770
1788
  "path",
1771
1789
  {
1772
1790
  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",
@@ -1775,12 +1793,12 @@ var IIIFBrowserIcon = (props) => /* @__PURE__ */ jsx51("svg", { xmlns: "http://w
1775
1793
  ) });
1776
1794
 
1777
1795
  // src/icons/InfoIcon.tsx
1778
- import { jsx as jsx52, jsxs as jsxs33 } from "react/jsx-runtime";
1796
+ import { jsx as jsx53, jsxs as jsxs33 } from "react/jsx-runtime";
1779
1797
  function InfoIcon({ title, titleId, ...props }) {
1780
1798
  return /* @__PURE__ */ jsxs33("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", "aria-labelledby": titleId, ...props, children: [
1781
- title ? /* @__PURE__ */ jsx52("title", { id: titleId, children: title }) : null,
1782
- /* @__PURE__ */ jsx52("path", { d: "M0 0h24v24H0V0z", fill: "none" }),
1783
- /* @__PURE__ */ jsx52(
1799
+ title ? /* @__PURE__ */ jsx53("title", { id: titleId, children: title }) : null,
1800
+ /* @__PURE__ */ jsx53("path", { d: "M0 0h24v24H0V0z", fill: "none" }),
1801
+ /* @__PURE__ */ jsx53(
1784
1802
  "path",
1785
1803
  {
1786
1804
  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",
@@ -1791,7 +1809,7 @@ function InfoIcon({ title, titleId, ...props }) {
1791
1809
  }
1792
1810
 
1793
1811
  // src/icons/ListingIcon.tsx
1794
- import { jsx as jsx53, jsxs as jsxs34 } from "react/jsx-runtime";
1812
+ import { jsx as jsx54, jsxs as jsxs34 } from "react/jsx-runtime";
1795
1813
  function ListingIcon({
1796
1814
  title,
1797
1815
  titleId,
@@ -1807,12 +1825,12 @@ function ListingIcon({
1807
1825
  "aria-labelledby": titleId,
1808
1826
  ...props,
1809
1827
  children: [
1810
- title ? /* @__PURE__ */ jsx53("title", { id: titleId, children: title }) : null,
1828
+ title ? /* @__PURE__ */ jsx54("title", { id: titleId, children: title }) : null,
1811
1829
  /* @__PURE__ */ jsxs34("g", { fill: "none", children: [
1812
- /* @__PURE__ */ jsx53("path", { d: "M0 0h24v24H0V0z" }),
1813
- /* @__PURE__ */ jsx53("path", { d: "M0 0h24v24H0V0z", opacity: ".87" })
1830
+ /* @__PURE__ */ jsx54("path", { d: "M0 0h24v24H0V0z" }),
1831
+ /* @__PURE__ */ jsx54("path", { d: "M0 0h24v24H0V0z", opacity: ".87" })
1814
1832
  ] }),
1815
- /* @__PURE__ */ jsx53(
1833
+ /* @__PURE__ */ jsx54(
1816
1834
  "path",
1817
1835
  {
1818
1836
  d: "M3 13h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7zm-4 6h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7z",
@@ -1825,8 +1843,8 @@ function ListingIcon({
1825
1843
  }
1826
1844
 
1827
1845
  // src/icons/YouTubeIcon.tsx
1828
- import { jsx as jsx54 } from "react/jsx-runtime";
1829
- var YouTubeIcon = (props) => /* @__PURE__ */ jsx54("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", fill: "#5f6368", viewBox: "0 -960 960 960", ...props, children: /* @__PURE__ */ jsx54(
1846
+ import { jsx as jsx55 } from "react/jsx-runtime";
1847
+ var YouTubeIcon = (props) => /* @__PURE__ */ jsx55("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", fill: "#5f6368", viewBox: "0 -960 960 960", ...props, children: /* @__PURE__ */ jsx55(
1830
1848
  "path",
1831
1849
  {
1832
1850
  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",
@@ -1835,7 +1853,7 @@ var YouTubeIcon = (props) => /* @__PURE__ */ jsx54("svg", { xmlns: "http://www.w
1835
1853
  ) });
1836
1854
 
1837
1855
  // src/icons/ListEditIcon.tsx
1838
- import { jsx as jsx55, jsxs as jsxs35 } from "react/jsx-runtime";
1856
+ import { jsx as jsx56, jsxs as jsxs35 } from "react/jsx-runtime";
1839
1857
  function ListEditIcon({
1840
1858
  title,
1841
1859
  titleId,
@@ -1851,17 +1869,17 @@ function ListEditIcon({
1851
1869
  "aria-labelledby": titleId,
1852
1870
  ...props,
1853
1871
  children: [
1854
- title ? /* @__PURE__ */ jsx55("title", { id: titleId, children: title }) : null,
1855
- /* @__PURE__ */ jsx55("path", { d: "M0 0h24v24H0V0z", fill: "none" }),
1856
- /* @__PURE__ */ jsx55("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" })
1872
+ title ? /* @__PURE__ */ jsx56("title", { id: titleId, children: title }) : null,
1873
+ /* @__PURE__ */ jsx56("path", { d: "M0 0h24v24H0V0z", fill: "none" }),
1874
+ /* @__PURE__ */ jsx56("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" })
1857
1875
  ]
1858
1876
  }
1859
1877
  );
1860
1878
  }
1861
1879
 
1862
1880
  // src/icons/VideoIcon.tsx
1863
- import { jsx as jsx56 } from "react/jsx-runtime";
1864
- var VideoIcon = (props) => /* @__PURE__ */ jsx56("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", fill: "#5f6368", viewBox: "0 -960 960 960", ...props, children: /* @__PURE__ */ jsx56(
1881
+ import { jsx as jsx57 } from "react/jsx-runtime";
1882
+ var VideoIcon = (props) => /* @__PURE__ */ jsx57("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", fill: "#5f6368", viewBox: "0 -960 960 960", ...props, children: /* @__PURE__ */ jsx57(
1865
1883
  "path",
1866
1884
  {
1867
1885
  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",
@@ -1870,8 +1888,8 @@ var VideoIcon = (props) => /* @__PURE__ */ jsx56("svg", { xmlns: "http://www.w3.
1870
1888
  ) });
1871
1889
 
1872
1890
  // src/icons/AudioIcon.tsx
1873
- import { jsx as jsx57 } from "react/jsx-runtime";
1874
- var AudioIcon = (props) => /* @__PURE__ */ jsx57("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", fill: "#5f6368", viewBox: "0 -960 960 960", ...props, children: /* @__PURE__ */ jsx57(
1891
+ import { jsx as jsx58 } from "react/jsx-runtime";
1892
+ var AudioIcon = (props) => /* @__PURE__ */ jsx58("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", fill: "#5f6368", viewBox: "0 -960 960 960", ...props, children: /* @__PURE__ */ jsx58(
1875
1893
  "path",
1876
1894
  {
1877
1895
  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",
@@ -1880,8 +1898,8 @@ var AudioIcon = (props) => /* @__PURE__ */ jsx57("svg", { xmlns: "http://www.w3.
1880
1898
  ) });
1881
1899
 
1882
1900
  // src/icons/EmptyCanvasIcon.tsx
1883
- import { jsx as jsx58 } from "react/jsx-runtime";
1884
- var EmptyCanvasIcon = (props) => /* @__PURE__ */ jsx58("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", fill: "#5f6368", viewBox: "0 -960 960 960", ...props, children: /* @__PURE__ */ jsx58(
1901
+ import { jsx as jsx59 } from "react/jsx-runtime";
1902
+ var EmptyCanvasIcon = (props) => /* @__PURE__ */ jsx59("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", fill: "#5f6368", viewBox: "0 -960 960 960", ...props, children: /* @__PURE__ */ jsx59(
1885
1903
  "path",
1886
1904
  {
1887
1905
  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",
@@ -1890,7 +1908,7 @@ var EmptyCanvasIcon = (props) => /* @__PURE__ */ jsx58("svg", { xmlns: "http://w
1890
1908
  ) });
1891
1909
 
1892
1910
  // src/icons/AddIcon.tsx
1893
- import { jsx as jsx59, jsxs as jsxs36 } from "react/jsx-runtime";
1911
+ import { jsx as jsx60, jsxs as jsxs36 } from "react/jsx-runtime";
1894
1912
  function AddIcon({
1895
1913
  className: className2,
1896
1914
  inline,
@@ -1908,15 +1926,15 @@ function AddIcon({
1908
1926
  style: { verticalAlign: inline ? "bottom" : void 0 },
1909
1927
  className: className2,
1910
1928
  children: [
1911
- /* @__PURE__ */ jsx59("path", { d: "M0 0h24v24H0z", fill: "none" }),
1912
- /* @__PURE__ */ jsx59("path", { d: "M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z", fill: "currentColor" })
1929
+ /* @__PURE__ */ jsx60("path", { d: "M0 0h24v24H0z", fill: "none" }),
1930
+ /* @__PURE__ */ jsx60("path", { d: "M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z", fill: "currentColor" })
1913
1931
  ]
1914
1932
  }
1915
1933
  );
1916
1934
  }
1917
1935
 
1918
1936
  // src/icons/MoreMenu.tsx
1919
- import { jsx as jsx60, jsxs as jsxs37 } from "react/jsx-runtime";
1937
+ import { jsx as jsx61, jsxs as jsxs37 } from "react/jsx-runtime";
1920
1938
  function MoreMenu2() {
1921
1939
  return /* @__PURE__ */ jsxs37(
1922
1940
  "svg",
@@ -1926,8 +1944,8 @@ function MoreMenu2() {
1926
1944
  viewBox: "0 0 24 24",
1927
1945
  width: "1em",
1928
1946
  children: [
1929
- /* @__PURE__ */ jsx60("path", { d: "M0 0h24v24H0z", fill: "none" }),
1930
- /* @__PURE__ */ jsx60(
1947
+ /* @__PURE__ */ jsx61("path", { d: "M0 0h24v24H0z", fill: "none" }),
1948
+ /* @__PURE__ */ jsx61(
1931
1949
  "path",
1932
1950
  {
1933
1951
  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",
@@ -1940,9 +1958,9 @@ function MoreMenu2() {
1940
1958
  }
1941
1959
 
1942
1960
  // src/icons/PreviewIcon.tsx
1943
- import { jsx as jsx61 } from "react/jsx-runtime";
1961
+ import { jsx as jsx62 } from "react/jsx-runtime";
1944
1962
  function PreviewIcon(props) {
1945
- return /* @__PURE__ */ jsx61("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", ...props, children: /* @__PURE__ */ jsx61(
1963
+ return /* @__PURE__ */ jsx62("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", ...props, children: /* @__PURE__ */ jsx62(
1946
1964
  "path",
1947
1965
  {
1948
1966
  fill: "currentColor",
@@ -1952,9 +1970,9 @@ function PreviewIcon(props) {
1952
1970
  }
1953
1971
 
1954
1972
  // src/icons/ImageListIcon.tsx
1955
- import { jsx as jsx62 } from "react/jsx-runtime";
1973
+ import { jsx as jsx63 } from "react/jsx-runtime";
1956
1974
  function ImageListIcon(props) {
1957
- return /* @__PURE__ */ jsx62("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", ...props, children: /* @__PURE__ */ jsx62(
1975
+ return /* @__PURE__ */ jsx63("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", ...props, children: /* @__PURE__ */ jsx63(
1958
1976
  "path",
1959
1977
  {
1960
1978
  fill: "currentColor",
@@ -1964,16 +1982,16 @@ function ImageListIcon(props) {
1964
1982
  }
1965
1983
 
1966
1984
  // src/icons/BackIcon.tsx
1967
- import { jsx as jsx63 } from "react/jsx-runtime";
1985
+ import { jsx as jsx64 } from "react/jsx-runtime";
1968
1986
  function BackIcon(props) {
1969
- return /* @__PURE__ */ jsx63("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", ...props, children: /* @__PURE__ */ jsx63("path", { fill: "currentColor", d: "M20 11H7.83l5.59-5.59L12 4l-8 8l8 8l1.41-1.41L7.83 13H20z" }) });
1987
+ return /* @__PURE__ */ jsx64("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", ...props, children: /* @__PURE__ */ jsx64("path", { fill: "currentColor", d: "M20 11H7.83l5.59-5.59L12 4l-8 8l8 8l1.41-1.41L7.83 13H20z" }) });
1970
1988
  }
1971
1989
 
1972
1990
  // src/icons/GridIcon.tsx
1973
- import { jsx as jsx64, jsxs as jsxs38 } from "react/jsx-runtime";
1991
+ import { jsx as jsx65, jsxs as jsxs38 } from "react/jsx-runtime";
1974
1992
  function GridIcon(props) {
1975
1993
  return /* @__PURE__ */ jsxs38("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", ...props, children: [
1976
- /* @__PURE__ */ jsx64(
1994
+ /* @__PURE__ */ jsx65(
1977
1995
  "path",
1978
1996
  {
1979
1997
  fill: "currentColor",
@@ -1981,7 +1999,7 @@ function GridIcon(props) {
1981
1999
  opacity: ".3"
1982
2000
  }
1983
2001
  ),
1984
- /* @__PURE__ */ jsx64(
2002
+ /* @__PURE__ */ jsx65(
1985
2003
  "path",
1986
2004
  {
1987
2005
  fill: "currentColor",
@@ -1992,9 +2010,9 @@ function GridIcon(props) {
1992
2010
  }
1993
2011
 
1994
2012
  // src/icons/ScaledImageIcon.tsx
1995
- import { jsx as jsx65 } from "react/jsx-runtime";
2013
+ import { jsx as jsx66 } from "react/jsx-runtime";
1996
2014
  function ScaledImageIcon(props) {
1997
- return /* @__PURE__ */ jsx65("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", ...props, children: /* @__PURE__ */ jsx65(
2015
+ return /* @__PURE__ */ jsx66("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", ...props, children: /* @__PURE__ */ jsx66(
1998
2016
  "path",
1999
2017
  {
2000
2018
  fill: "currentColor",
@@ -2005,9 +2023,9 @@ function ScaledImageIcon(props) {
2005
2023
 
2006
2024
  // src/ErrorMessage.tsx
2007
2025
  import { twMerge as twMerge8 } from "tailwind-merge";
2008
- import { jsx as jsx66 } from "react/jsx-runtime";
2026
+ import { jsx as jsx67 } from "react/jsx-runtime";
2009
2027
  function ErrorMessage({ children, small = false, className: className2 }) {
2010
- return /* @__PURE__ */ jsx66(
2028
+ return /* @__PURE__ */ jsx67(
2011
2029
  "div",
2012
2030
  {
2013
2031
  className: twMerge8(
@@ -2044,11 +2062,11 @@ function useFastList(list, firstRender = 24) {
2044
2062
 
2045
2063
  // src/RenderTextualContent.tsx
2046
2064
  import { useState as useState6 } from "react";
2047
- import { Button as Button8 } from "react-aria-components";
2065
+ import { Button as Button7 } from "react-aria-components";
2048
2066
  import {
2049
2067
  LocaleString as LocaleString5
2050
2068
  } from "react-iiif-vault";
2051
- import { jsx as jsx67, jsxs as jsxs39 } from "react/jsx-runtime";
2069
+ import { jsx as jsx68, jsxs as jsxs39 } from "react/jsx-runtime";
2052
2070
  function RenderTextualContent(props) {
2053
2071
  const languages = props.strategy.items.map(
2054
2072
  (item) => Object.keys(item.text)[0]
@@ -2058,9 +2076,9 @@ function RenderTextualContent(props) {
2058
2076
  (item) => Object.keys(item.text)[0] === langauge
2059
2077
  );
2060
2078
  return /* @__PURE__ */ jsxs39("div", { className: "overflow-y-auto bg-white shadow", children: [
2061
- /* @__PURE__ */ jsx67("div", { className: "flex gap-2 border-b", children: languages.map((language) => {
2062
- return /* @__PURE__ */ jsx67(
2063
- Button8,
2079
+ /* @__PURE__ */ jsx68("div", { className: "flex gap-2 border-b", children: languages.map((language) => {
2080
+ return /* @__PURE__ */ jsx68(
2081
+ Button7,
2064
2082
  {
2065
2083
  className: `py-1 px-3 ${langauge === language ? "bg-me-500 text-white" : "bg-white text-black"}`,
2066
2084
  onPress: () => setLanguage(language),
@@ -2069,11 +2087,11 @@ function RenderTextualContent(props) {
2069
2087
  language
2070
2088
  );
2071
2089
  }) }),
2072
- /* @__PURE__ */ jsx67("div", { className: "p-4 prose", children: /* @__PURE__ */ jsx67(
2090
+ /* @__PURE__ */ jsx68("div", { className: "p-4 prose", children: /* @__PURE__ */ jsx68(
2073
2091
  LocaleString5,
2074
2092
  {
2075
2093
  enableDangerouslySetInnerHTML: true,
2076
- defaultText: /* @__PURE__ */ jsx67("span", { className: "text-gray-500 my-8", children: "No content available" }),
2094
+ defaultText: /* @__PURE__ */ jsx68("span", { className: "text-gray-500 my-8", children: "No content available" }),
2077
2095
  children: selected?.text
2078
2096
  }
2079
2097
  ) })
@@ -2087,15 +2105,15 @@ import "@vidstack/react/player/styles/default/captions.css";
2087
2105
  import "@vidstack/react/player/styles/default/layouts/video.css";
2088
2106
  import { MediaPlayer, MediaProvider, Poster, Gesture, Track } from "@vidstack/react";
2089
2107
  import { defaultLayoutIcons, DefaultVideoLayout } from "@vidstack/react/player/layouts/default";
2090
- import { getValue } from "@iiif/helpers";
2108
+ import { getValue as getValue3 } from "@iiif/helpers";
2091
2109
  import { useRef as useRef5 } from "react";
2092
- import { Fragment as Fragment5, jsx as jsx68, jsxs as jsxs40 } from "react/jsx-runtime";
2110
+ import { Fragment as Fragment5, jsx as jsx69, jsxs as jsxs40 } from "react/jsx-runtime";
2093
2111
  function IIIFMediaPlayer(props) {
2094
2112
  const mediaPlayer = useRef5(null);
2095
2113
  const captions = props.captions || [];
2096
2114
  const language = props.language;
2097
2115
  const timeRef = useRef5(props.startTime || 0);
2098
- return /* @__PURE__ */ jsx68(
2116
+ return /* @__PURE__ */ jsx69(
2099
2117
  MediaPlayer,
2100
2118
  {
2101
2119
  onTimeUpdate: (time) => {
@@ -2118,27 +2136,27 @@ function IIIFMediaPlayer(props) {
2118
2136
  ],
2119
2137
  children: /* @__PURE__ */ jsxs40(MediaProvider, { className: "w-full h-full [&>video]:w-full [&>video]:h-full [&>video]:object-contain", children: [
2120
2138
  captions.map((caption) => {
2121
- return /* @__PURE__ */ jsx68(
2139
+ return /* @__PURE__ */ jsx69(
2122
2140
  Track,
2123
2141
  {
2124
2142
  src: caption.id,
2125
2143
  kind: "subtitles",
2126
- label: getValue(caption.label),
2144
+ label: getValue3(caption.label),
2127
2145
  default: caption.language === language,
2128
2146
  language: caption.language
2129
2147
  },
2130
2148
  caption.id
2131
2149
  );
2132
2150
  }),
2133
- props.poster ? /* @__PURE__ */ jsx68(
2151
+ props.poster ? /* @__PURE__ */ jsx69(
2134
2152
  Poster,
2135
2153
  {
2136
2154
  className: "absolute inset-0 bg-black block h-full w-full opacity-0 transition-opacity data-[visible]:opacity-100 object-contain",
2137
2155
  src: props.poster
2138
2156
  }
2139
2157
  ) : null,
2140
- /* @__PURE__ */ jsx68(Gestures, {}),
2141
- /* @__PURE__ */ jsx68(
2158
+ /* @__PURE__ */ jsx69(Gestures, {}),
2159
+ /* @__PURE__ */ jsx69(
2142
2160
  DefaultVideoLayout,
2143
2161
  {
2144
2162
  className: "z-1",
@@ -2152,7 +2170,7 @@ function IIIFMediaPlayer(props) {
2152
2170
  }
2153
2171
  function Gestures() {
2154
2172
  return /* @__PURE__ */ jsxs40(Fragment5, { children: [
2155
- /* @__PURE__ */ jsx68(
2173
+ /* @__PURE__ */ jsx69(
2156
2174
  Gesture,
2157
2175
  {
2158
2176
  className: "pointer-coarse:hidden absolute top-0 start-12 bottom-20 right-0 -z-1 block",
@@ -2160,10 +2178,11 @@ function Gestures() {
2160
2178
  action: "toggle:paused"
2161
2179
  }
2162
2180
  ),
2163
- /* @__PURE__ */ jsx68(Gesture, { className: "absolute inset-0 z-0 block h-full w-full", event: "dblpointerup", action: "toggle:fullscreen" })
2181
+ /* @__PURE__ */ jsx69(Gesture, { className: "absolute inset-0 z-0 block h-full w-full", event: "dblpointerup", action: "toggle:fullscreen" })
2164
2182
  ] });
2165
2183
  }
2166
2184
  export {
2185
+ AccessibilityButton,
2167
2186
  ActionButton,
2168
2187
  AddIcon,
2169
2188
  AddImageIcon,