@manifest-editor/components 1.3.1 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +409 -150
- package/dist/index.css +92 -5
- package/dist/index.d.cts +61 -8
- package/dist/index.d.ts +61 -8
- package/dist/index.js +417 -163
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -5,32 +5,27 @@ import "iiif-browser/dist/index.css";
|
|
|
5
5
|
|
|
6
6
|
// src/ActionButton.tsx
|
|
7
7
|
import { Button } from "react-aria-components";
|
|
8
|
-
|
|
9
|
-
// src/utils.ts
|
|
10
|
-
import { clsx } from "clsx";
|
|
11
8
|
import { twMerge } from "tailwind-merge";
|
|
12
|
-
var cn = (...inputs) => {
|
|
13
|
-
return twMerge(clsx(inputs));
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
// src/ActionButton.tsx
|
|
17
9
|
import { jsx } from "react/jsx-runtime";
|
|
18
10
|
function ActionButton({
|
|
19
11
|
className: className2,
|
|
20
12
|
primary,
|
|
21
13
|
center,
|
|
14
|
+
large,
|
|
22
15
|
children,
|
|
23
16
|
...props
|
|
24
17
|
}) {
|
|
25
18
|
return /* @__PURE__ */ jsx(
|
|
26
19
|
Button,
|
|
27
20
|
{
|
|
28
|
-
className:
|
|
21
|
+
className: (t) => twMerge(
|
|
29
22
|
//
|
|
30
|
-
"border-none flex gap-1 items-center
|
|
23
|
+
"border-none flex gap-1 items-center bg-gray-100 text-me-primary-500 text-sm rounded hover:bg-gray-200",
|
|
31
24
|
primary ? "bg-me-primary-500 text-white hover:bg-me-primary-600" : "",
|
|
32
25
|
center ? "place-content-center" : "",
|
|
33
|
-
|
|
26
|
+
large ? "px-4 py-2" : "px-2 py-1",
|
|
27
|
+
t.isDisabled ? "opacity-70 cursor-not-allowed pointer-events-none" : "",
|
|
28
|
+
typeof className2 === "string" ? className2 : className2?.(t)
|
|
34
29
|
),
|
|
35
30
|
...props,
|
|
36
31
|
children
|
|
@@ -38,24 +33,31 @@ function ActionButton({
|
|
|
38
33
|
);
|
|
39
34
|
}
|
|
40
35
|
|
|
36
|
+
// src/utils.ts
|
|
37
|
+
import { clsx } from "clsx";
|
|
38
|
+
import { twMerge as twMerge2 } from "tailwind-merge";
|
|
39
|
+
var cn = (...inputs) => {
|
|
40
|
+
return twMerge2(clsx(inputs));
|
|
41
|
+
};
|
|
42
|
+
|
|
41
43
|
// src/Tooltip.tsx
|
|
42
|
-
import * as React from "react";
|
|
43
44
|
import {
|
|
44
|
-
|
|
45
|
+
FloatingPortal,
|
|
45
46
|
autoUpdate,
|
|
46
|
-
offset,
|
|
47
47
|
flip,
|
|
48
|
+
offset,
|
|
48
49
|
shift,
|
|
49
|
-
useHover,
|
|
50
|
-
useFocus,
|
|
51
50
|
useDismiss,
|
|
52
|
-
|
|
51
|
+
useFloating,
|
|
52
|
+
useFocus,
|
|
53
|
+
useHover,
|
|
53
54
|
useInteractions,
|
|
54
55
|
useMergeRefs,
|
|
55
|
-
|
|
56
|
+
useRole
|
|
56
57
|
} from "@floating-ui/react";
|
|
58
|
+
import * as React from "react";
|
|
57
59
|
import { Button as Button2 } from "react-aria-components";
|
|
58
|
-
import { twMerge as
|
|
60
|
+
import { twMerge as twMerge3 } from "tailwind-merge";
|
|
59
61
|
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
60
62
|
function useTooltip({
|
|
61
63
|
initialOpen = false,
|
|
@@ -110,10 +112,7 @@ var useTooltipContext = () => {
|
|
|
110
112
|
}
|
|
111
113
|
return context;
|
|
112
114
|
};
|
|
113
|
-
function Tooltip({
|
|
114
|
-
children,
|
|
115
|
-
...options
|
|
116
|
-
}) {
|
|
115
|
+
function Tooltip({ children, ...options }) {
|
|
117
116
|
const tooltip = useTooltip(options);
|
|
118
117
|
return /* @__PURE__ */ jsx2(TooltipContext.Provider, { value: tooltip, children });
|
|
119
118
|
}
|
|
@@ -142,12 +141,12 @@ var TooltipTrigger = React.forwardRef(function TooltipTrigger2({ children, asChi
|
|
|
142
141
|
}
|
|
143
142
|
);
|
|
144
143
|
});
|
|
145
|
-
var TooltipContent = React.forwardRef(function TooltipContent2({ style, ...props }, propRef) {
|
|
144
|
+
var TooltipContent = React.forwardRef(function TooltipContent2({ style, root, ...props }, propRef) {
|
|
146
145
|
const context = useTooltipContext();
|
|
147
146
|
const ref = useMergeRefs([context.refs.setFloating, propRef]);
|
|
148
147
|
if (!context.open)
|
|
149
148
|
return null;
|
|
150
|
-
return /* @__PURE__ */ jsx2(FloatingPortal, { children: /* @__PURE__ */ jsx2(
|
|
149
|
+
return /* @__PURE__ */ jsx2(FloatingPortal, { root, children: /* @__PURE__ */ jsx2(
|
|
151
150
|
"div",
|
|
152
151
|
{
|
|
153
152
|
ref,
|
|
@@ -163,10 +162,8 @@ function DefaultTooltipContent(props) {
|
|
|
163
162
|
return /* @__PURE__ */ jsx2(
|
|
164
163
|
TooltipContent,
|
|
165
164
|
{
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
props.className
|
|
169
|
-
),
|
|
165
|
+
root: props.root,
|
|
166
|
+
className: twMerge3("bg-me-gray-900 text-white text-sm px-3 py-2 rounded opacity-90 z-50", props.className),
|
|
170
167
|
children: props.children
|
|
171
168
|
}
|
|
172
169
|
);
|
|
@@ -227,7 +224,7 @@ function PanelSideMenuItem(props) {
|
|
|
227
224
|
onMouseDown: props.onClick,
|
|
228
225
|
children: [
|
|
229
226
|
props.icon,
|
|
230
|
-
/* @__PURE__ */ jsx4(TooltipContent, { className: "bg-me-gray-900 text-white text-sm px-3 py-2 rounded
|
|
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 })
|
|
231
228
|
]
|
|
232
229
|
}
|
|
233
230
|
) }) });
|
|
@@ -273,7 +270,7 @@ import {
|
|
|
273
270
|
useThumbnail
|
|
274
271
|
} from "react-iiif-vault";
|
|
275
272
|
import { LazyLoadComponent } from "react-lazy-load-image-component";
|
|
276
|
-
import { twMerge as
|
|
273
|
+
import { twMerge as twMerge4 } from "tailwind-merge";
|
|
277
274
|
|
|
278
275
|
// src/Spinner.tsx
|
|
279
276
|
import { jsx as jsx7, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
@@ -383,7 +380,7 @@ function LazyThumbnailInner({
|
|
|
383
380
|
!thumbnail?.id || isLoading ? /* @__PURE__ */ jsx9(
|
|
384
381
|
"div",
|
|
385
382
|
{
|
|
386
|
-
className:
|
|
383
|
+
className: twMerge4(
|
|
387
384
|
"absolute inset-0 flex items-center justify-center bg-me-gray-100 text-2xl z-10",
|
|
388
385
|
fade && "animate-fadeIn"
|
|
389
386
|
),
|
|
@@ -415,7 +412,7 @@ function CanvasLabel(props) {
|
|
|
415
412
|
|
|
416
413
|
// src/Card3D.tsx
|
|
417
414
|
import { useLayoutEffect as useLayoutEffect2, useRef as useRef2 } from "react";
|
|
418
|
-
import { twMerge as
|
|
415
|
+
import { twMerge as twMerge5 } from "tailwind-merge";
|
|
419
416
|
import { jsx as jsx11, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
420
417
|
function Card3D({
|
|
421
418
|
className: className2,
|
|
@@ -491,7 +488,7 @@ function Card3D({
|
|
|
491
488
|
"div",
|
|
492
489
|
{
|
|
493
490
|
ref: outer,
|
|
494
|
-
className:
|
|
491
|
+
className: twMerge5(
|
|
495
492
|
//
|
|
496
493
|
"relative transition-all hover:duration-50",
|
|
497
494
|
shouldTranslate && "hover:shadow-xl",
|
|
@@ -536,69 +533,50 @@ function CanvasThumbnailGridItem(props) {
|
|
|
536
533
|
}
|
|
537
534
|
|
|
538
535
|
// src/Modal.tsx
|
|
539
|
-
import {
|
|
540
|
-
|
|
541
|
-
Dialog,
|
|
542
|
-
DialogPanel,
|
|
543
|
-
DialogTitle
|
|
544
|
-
} from "@headlessui/react";
|
|
536
|
+
import { CloseButton, Dialog, DialogPanel, DialogTitle } from "@headlessui/react";
|
|
537
|
+
import { createPortal } from "react-dom";
|
|
545
538
|
import { Fragment as Fragment2, jsx as jsx13, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
546
|
-
function
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
/* @__PURE__ */ jsxs9("div", { className: "flex items-center justify-between p-4 md:p-5 rounded-t-lg sticky top-0 bg-white", children: [
|
|
571
|
-
/* @__PURE__ */ jsx13(DialogTitle, { className: "text-xl font-semibold text-gray-900 ", children: title }),
|
|
572
|
-
/* @__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: [
|
|
573
|
-
/* @__PURE__ */ jsx13(
|
|
574
|
-
"svg",
|
|
539
|
+
function ModalBackSlot({ children }) {
|
|
540
|
+
const element = document.getElementById("modal-back-slot");
|
|
541
|
+
if (!element)
|
|
542
|
+
return null;
|
|
543
|
+
return createPortal(children, element);
|
|
544
|
+
}
|
|
545
|
+
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: [
|
|
549
|
+
/* @__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 }),
|
|
552
|
+
/* @__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(
|
|
554
|
+
"svg",
|
|
555
|
+
{
|
|
556
|
+
className: "w-3 h-3",
|
|
557
|
+
"aria-hidden": "true",
|
|
558
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
559
|
+
fill: "none",
|
|
560
|
+
viewBox: "0 0 14 14",
|
|
561
|
+
children: /* @__PURE__ */ jsx13(
|
|
562
|
+
"path",
|
|
575
563
|
{
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
children: /* @__PURE__ */ jsx13(
|
|
582
|
-
"path",
|
|
583
|
-
{
|
|
584
|
-
stroke: "currentColor",
|
|
585
|
-
strokeLinecap: "round",
|
|
586
|
-
strokeLinejoin: "round",
|
|
587
|
-
strokeWidth: "2",
|
|
588
|
-
d: "m1 1 6 6m0 0 6 6M7 7l6-6M7 7l-6 6"
|
|
589
|
-
}
|
|
590
|
-
)
|
|
564
|
+
stroke: "currentColor",
|
|
565
|
+
strokeLinecap: "round",
|
|
566
|
+
strokeLinejoin: "round",
|
|
567
|
+
strokeWidth: "2",
|
|
568
|
+
d: "m1 1 6 6m0 0 6 6M7 7l6-6M7 7l-6 6"
|
|
591
569
|
}
|
|
592
|
-
)
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
}
|
|
601
|
-
) });
|
|
570
|
+
)
|
|
571
|
+
}
|
|
572
|
+
),
|
|
573
|
+
/* @__PURE__ */ jsx13("span", { className: "sr-only", children: "Close" })
|
|
574
|
+
] })
|
|
575
|
+
] }),
|
|
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
|
|
578
|
+
] }) }) })
|
|
579
|
+
] }) });
|
|
602
580
|
}
|
|
603
581
|
|
|
604
582
|
// src/ControlButton.tsx
|
|
@@ -705,7 +683,7 @@ function TabPanel({ className: className2, children, ...props }) {
|
|
|
705
683
|
|
|
706
684
|
// src/CreatorGrid.tsx
|
|
707
685
|
import { ListBox, ListBoxItem } from "react-aria-components";
|
|
708
|
-
import { twMerge as
|
|
686
|
+
import { twMerge as twMerge6 } from "tailwind-merge";
|
|
709
687
|
import { jsx as jsx17, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
710
688
|
function CreatorGrid(props) {
|
|
711
689
|
return /* @__PURE__ */ jsx17(
|
|
@@ -726,7 +704,7 @@ function CreatorGridItem(props) {
|
|
|
726
704
|
{
|
|
727
705
|
id: props.id,
|
|
728
706
|
onAction: props.onClick,
|
|
729
|
-
className: ($s) =>
|
|
707
|
+
className: ($s) => twMerge6(
|
|
730
708
|
"bg-white p-2 border-me-gray-300 rounded-md border hover:border-me-primary-500",
|
|
731
709
|
$s.isFocused && "border-me-primary-500 outline-me-primary-500 outline-2"
|
|
732
710
|
),
|
|
@@ -1063,7 +1041,7 @@ import {
|
|
|
1063
1041
|
Tabs as Tabs2
|
|
1064
1042
|
} from "react-aria-components";
|
|
1065
1043
|
import { createHideableComponent } from "@react-aria/collections";
|
|
1066
|
-
import { createPortal } from "react-dom";
|
|
1044
|
+
import { createPortal as createPortal2 } from "react-dom";
|
|
1067
1045
|
import { Fragment as Fragment3, jsx as jsx33, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
1068
1046
|
function SidebarTabs({
|
|
1069
1047
|
menu,
|
|
@@ -1163,7 +1141,7 @@ function SidebarTabs({
|
|
|
1163
1141
|
},
|
|
1164
1142
|
menuId
|
|
1165
1143
|
),
|
|
1166
|
-
hiddenMenu && hidden > 0 ?
|
|
1144
|
+
hiddenMenu && hidden > 0 ? createPortal2(
|
|
1167
1145
|
/* @__PURE__ */ jsx33(
|
|
1168
1146
|
MoreMenu,
|
|
1169
1147
|
{
|
|
@@ -1223,7 +1201,7 @@ function MetadataContainer({
|
|
|
1223
1201
|
...props
|
|
1224
1202
|
}) {
|
|
1225
1203
|
return /* @__PURE__ */ jsxs24(
|
|
1226
|
-
"
|
|
1204
|
+
"fieldset",
|
|
1227
1205
|
{
|
|
1228
1206
|
className: cn(
|
|
1229
1207
|
"hover:ring ring-gray-200 focus-within:ring-me-primary-500 focus-within:ring p-2 rounded mb-2",
|
|
@@ -1283,7 +1261,7 @@ function ManifestEditorLogo(props) {
|
|
|
1283
1261
|
}
|
|
1284
1262
|
|
|
1285
1263
|
// src/Forms.tsx
|
|
1286
|
-
import { Label, Form as RAForm,
|
|
1264
|
+
import { Input, Label, Form as RAForm, Radio, RadioGroup, TextArea } from "react-aria-components";
|
|
1287
1265
|
import { jsx as jsx37 } from "react/jsx-runtime";
|
|
1288
1266
|
function MeLabel({ className: className2, ...props }) {
|
|
1289
1267
|
return /* @__PURE__ */ jsx37(
|
|
@@ -1351,6 +1329,20 @@ function MeInput({ className: className2, ...props }) {
|
|
|
1351
1329
|
}
|
|
1352
1330
|
);
|
|
1353
1331
|
}
|
|
1332
|
+
function MeTextArea({ className: className2, ...props }) {
|
|
1333
|
+
return /* @__PURE__ */ jsx37(
|
|
1334
|
+
TextArea,
|
|
1335
|
+
{
|
|
1336
|
+
className: cn(
|
|
1337
|
+
//
|
|
1338
|
+
"p-2 bg-me-gray-100 border-b border-b-me-gray-500",
|
|
1339
|
+
"focus:ring-0 outline-0 focus:border-me-primary-500 focus:bg-[#ECEEF5]",
|
|
1340
|
+
className2
|
|
1341
|
+
),
|
|
1342
|
+
...props
|
|
1343
|
+
}
|
|
1344
|
+
);
|
|
1345
|
+
}
|
|
1354
1346
|
function MeInputContainer({
|
|
1355
1347
|
horizontal,
|
|
1356
1348
|
className: className2,
|
|
@@ -1375,7 +1367,8 @@ var Form = {
|
|
|
1375
1367
|
Label: MeLabel,
|
|
1376
1368
|
InputContainer: MeInputContainer,
|
|
1377
1369
|
RadioGroup: MeRadioGroup,
|
|
1378
|
-
Radio: MeRadio
|
|
1370
|
+
Radio: MeRadio,
|
|
1371
|
+
TextArea: MeTextArea
|
|
1379
1372
|
};
|
|
1380
1373
|
|
|
1381
1374
|
// src/HTMLEditor.tsx
|
|
@@ -1499,27 +1492,31 @@ function HTMLEditor({
|
|
|
1499
1492
|
}
|
|
1500
1493
|
|
|
1501
1494
|
// src/IconButton.tsx
|
|
1502
|
-
import { twMerge as
|
|
1495
|
+
import { twMerge as twMerge7 } from "tailwind-merge";
|
|
1503
1496
|
import { jsx as jsx40, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
1504
1497
|
function IconButton({
|
|
1505
1498
|
children,
|
|
1506
1499
|
active,
|
|
1507
1500
|
label,
|
|
1508
1501
|
disabled,
|
|
1509
|
-
onPress
|
|
1502
|
+
onPress,
|
|
1503
|
+
root,
|
|
1504
|
+
className: className2,
|
|
1505
|
+
placement = "top"
|
|
1510
1506
|
}) {
|
|
1511
|
-
return /* @__PURE__ */ jsx40(Tooltip, { placement
|
|
1507
|
+
return /* @__PURE__ */ jsx40(Tooltip, { placement, children: /* @__PURE__ */ jsxs27(
|
|
1512
1508
|
TooltipTrigger,
|
|
1513
1509
|
{
|
|
1514
1510
|
onClick: onPress,
|
|
1515
|
-
className:
|
|
1511
|
+
className: twMerge7(
|
|
1516
1512
|
"rounded flex items-center bg-white justify-center p-2 hover:bg-gray-100 text-2xl",
|
|
1517
1513
|
active ? "bg-me-primary-500 bg-opacity-40 hover:bg-opacity-70 hover:bg-me-primary-500" : "",
|
|
1518
|
-
disabled ? "opacity-50 pointer-events-none" : ""
|
|
1514
|
+
disabled ? "opacity-50 pointer-events-none" : "",
|
|
1515
|
+
className2
|
|
1519
1516
|
),
|
|
1520
1517
|
children: [
|
|
1521
1518
|
children,
|
|
1522
|
-
/* @__PURE__ */ jsx40(DefaultTooltipContent, { className: "translate-x-3", children: label })
|
|
1519
|
+
/* @__PURE__ */ jsx40(DefaultTooltipContent, { root, className: "translate-x-3 z-50", children: label })
|
|
1523
1520
|
]
|
|
1524
1521
|
}
|
|
1525
1522
|
) });
|
|
@@ -1560,12 +1557,116 @@ var HandleContainer = forwardRef2(function HandleContainer2({ className: classNa
|
|
|
1560
1557
|
);
|
|
1561
1558
|
});
|
|
1562
1559
|
|
|
1560
|
+
// src/CollectionListItem.tsx
|
|
1561
|
+
import { Button as Button6 } from "react-aria-components";
|
|
1562
|
+
import { LocaleString as LocaleString3, useCollection } from "react-iiif-vault";
|
|
1563
|
+
|
|
1564
|
+
// src/icons/CollectionIcon.tsx
|
|
1565
|
+
import { jsx as jsx43 } from "react/jsx-runtime";
|
|
1566
|
+
function CollectionIcon(props) {
|
|
1567
|
+
return /* @__PURE__ */ jsx43(
|
|
1568
|
+
"svg",
|
|
1569
|
+
{
|
|
1570
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
1571
|
+
width: "1em",
|
|
1572
|
+
height: "1em",
|
|
1573
|
+
viewBox: "0 -960 960 960",
|
|
1574
|
+
"aria-label": "collection",
|
|
1575
|
+
role: "img",
|
|
1576
|
+
...props,
|
|
1577
|
+
children: /* @__PURE__ */ jsx43(
|
|
1578
|
+
"path",
|
|
1579
|
+
{
|
|
1580
|
+
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",
|
|
1581
|
+
fill: "currentColor"
|
|
1582
|
+
}
|
|
1583
|
+
)
|
|
1584
|
+
}
|
|
1585
|
+
);
|
|
1586
|
+
}
|
|
1587
|
+
|
|
1588
|
+
// src/CollectionListItem.tsx
|
|
1589
|
+
import { jsx as jsx44, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
1590
|
+
function CollectionListItem({ isActive, onAction }) {
|
|
1591
|
+
const collection = useCollection({});
|
|
1592
|
+
return /* @__PURE__ */ jsxs29(
|
|
1593
|
+
Button6,
|
|
1594
|
+
{
|
|
1595
|
+
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
|
+
"data-active": isActive || void 0,
|
|
1598
|
+
children: [
|
|
1599
|
+
/* @__PURE__ */ jsx44(
|
|
1600
|
+
CollectionIcon,
|
|
1601
|
+
{
|
|
1602
|
+
"data-active": isActive || void 0,
|
|
1603
|
+
className: "flex-shrink-0 text-2xl data-[active]:text-me-primary-500 text-gray-400"
|
|
1604
|
+
}
|
|
1605
|
+
),
|
|
1606
|
+
/* @__PURE__ */ jsx44(LocaleString3, { children: collection?.label })
|
|
1607
|
+
]
|
|
1608
|
+
}
|
|
1609
|
+
);
|
|
1610
|
+
}
|
|
1611
|
+
|
|
1612
|
+
// src/ManifestListItem.tsx
|
|
1613
|
+
import { Button as Button7 } from "react-aria-components";
|
|
1614
|
+
import { LocaleString as LocaleString4, useManifest } from "react-iiif-vault";
|
|
1615
|
+
|
|
1616
|
+
// src/icons/ManifestIcon.tsx
|
|
1617
|
+
import { jsx as jsx45 } from "react/jsx-runtime";
|
|
1618
|
+
function ManifestIcon(props) {
|
|
1619
|
+
return /* @__PURE__ */ jsx45(
|
|
1620
|
+
"svg",
|
|
1621
|
+
{
|
|
1622
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
1623
|
+
width: "1em",
|
|
1624
|
+
height: "1em",
|
|
1625
|
+
viewBox: "20 -910 960 960",
|
|
1626
|
+
"aria-label": "manifest",
|
|
1627
|
+
role: "img",
|
|
1628
|
+
...props,
|
|
1629
|
+
children: /* @__PURE__ */ jsx45(
|
|
1630
|
+
"path",
|
|
1631
|
+
{
|
|
1632
|
+
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",
|
|
1633
|
+
fill: "currentColor"
|
|
1634
|
+
}
|
|
1635
|
+
)
|
|
1636
|
+
}
|
|
1637
|
+
);
|
|
1638
|
+
}
|
|
1639
|
+
|
|
1640
|
+
// src/ManifestListItem.tsx
|
|
1641
|
+
import { jsx as jsx46, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
1642
|
+
function ManifestListItem({ isActive, onAction }) {
|
|
1643
|
+
const manifest = useManifest();
|
|
1644
|
+
return /* @__PURE__ */ jsxs30(
|
|
1645
|
+
Button7,
|
|
1646
|
+
{
|
|
1647
|
+
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
|
+
"data-active": isActive || void 0,
|
|
1650
|
+
children: [
|
|
1651
|
+
/* @__PURE__ */ jsx46(
|
|
1652
|
+
ManifestIcon,
|
|
1653
|
+
{
|
|
1654
|
+
"data-active": isActive || void 0,
|
|
1655
|
+
className: "flex-shrink-0 text-2xl data-[active]:text-me-primary-500 text-gray-400"
|
|
1656
|
+
}
|
|
1657
|
+
),
|
|
1658
|
+
/* @__PURE__ */ jsx46(LocaleString4, { children: manifest?.label })
|
|
1659
|
+
]
|
|
1660
|
+
}
|
|
1661
|
+
);
|
|
1662
|
+
}
|
|
1663
|
+
|
|
1563
1664
|
// src/icons/CreateCanvasIcon.tsx
|
|
1564
|
-
import { jsx as
|
|
1665
|
+
import { jsx as jsx47, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
1565
1666
|
function CreateCanvasIcon() {
|
|
1566
|
-
return /* @__PURE__ */
|
|
1567
|
-
/* @__PURE__ */
|
|
1568
|
-
/* @__PURE__ */
|
|
1667
|
+
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(
|
|
1569
1670
|
"path",
|
|
1570
1671
|
{
|
|
1571
1672
|
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",
|
|
@@ -1576,8 +1677,8 @@ function CreateCanvasIcon() {
|
|
|
1576
1677
|
}
|
|
1577
1678
|
|
|
1578
1679
|
// src/icons/AddImageIcon.tsx
|
|
1579
|
-
import { jsx as
|
|
1580
|
-
var AddImageIcon = (props) => /* @__PURE__ */
|
|
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(
|
|
1581
1682
|
"path",
|
|
1582
1683
|
{
|
|
1583
1684
|
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",
|
|
@@ -1586,8 +1687,8 @@ var AddImageIcon = (props) => /* @__PURE__ */ jsx44("svg", { xmlns: "http://www.
|
|
|
1586
1687
|
) });
|
|
1587
1688
|
|
|
1588
1689
|
// src/icons/IIIFLogo.tsx
|
|
1589
|
-
import { jsx as
|
|
1590
|
-
var IIIFLogo = ({ mono = true, ...props }) => /* @__PURE__ */
|
|
1690
|
+
import { jsx as jsx49, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
1691
|
+
var IIIFLogo = ({ mono = true, ...props }) => /* @__PURE__ */ jsxs32(
|
|
1591
1692
|
"svg",
|
|
1592
1693
|
{
|
|
1593
1694
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -1597,7 +1698,7 @@ var IIIFLogo = ({ mono = true, ...props }) => /* @__PURE__ */ jsxs30(
|
|
|
1597
1698
|
...props,
|
|
1598
1699
|
viewBox: "0 0 493.36 441.333",
|
|
1599
1700
|
children: [
|
|
1600
|
-
/* @__PURE__ */
|
|
1701
|
+
/* @__PURE__ */ jsx49(
|
|
1601
1702
|
"path",
|
|
1602
1703
|
{
|
|
1603
1704
|
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",
|
|
@@ -1610,7 +1711,7 @@ var IIIFLogo = ({ mono = true, ...props }) => /* @__PURE__ */ jsxs30(
|
|
|
1610
1711
|
transform: "matrix(.13333 0 0 -.13333 0 441.333)"
|
|
1611
1712
|
}
|
|
1612
1713
|
),
|
|
1613
|
-
/* @__PURE__ */
|
|
1714
|
+
/* @__PURE__ */ jsx49(
|
|
1614
1715
|
"path",
|
|
1615
1716
|
{
|
|
1616
1717
|
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",
|
|
@@ -1623,7 +1724,7 @@ var IIIFLogo = ({ mono = true, ...props }) => /* @__PURE__ */ jsxs30(
|
|
|
1623
1724
|
transform: "matrix(.13333 0 0 -.13333 0 441.333)"
|
|
1624
1725
|
}
|
|
1625
1726
|
),
|
|
1626
|
-
/* @__PURE__ */
|
|
1727
|
+
/* @__PURE__ */ jsx49(
|
|
1627
1728
|
"path",
|
|
1628
1729
|
{
|
|
1629
1730
|
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",
|
|
@@ -1636,7 +1737,7 @@ var IIIFLogo = ({ mono = true, ...props }) => /* @__PURE__ */ jsxs30(
|
|
|
1636
1737
|
transform: "matrix(.13333 0 0 -.13333 0 441.333)"
|
|
1637
1738
|
}
|
|
1638
1739
|
),
|
|
1639
|
-
/* @__PURE__ */
|
|
1740
|
+
/* @__PURE__ */ jsx49(
|
|
1640
1741
|
"path",
|
|
1641
1742
|
{
|
|
1642
1743
|
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",
|
|
@@ -1654,8 +1755,8 @@ var IIIFLogo = ({ mono = true, ...props }) => /* @__PURE__ */ jsxs30(
|
|
|
1654
1755
|
);
|
|
1655
1756
|
|
|
1656
1757
|
// src/icons/HTMLIcon.tsx
|
|
1657
|
-
import { jsx as
|
|
1658
|
-
var HTMLIcon = (props) => /* @__PURE__ */
|
|
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(
|
|
1659
1760
|
"path",
|
|
1660
1761
|
{
|
|
1661
1762
|
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",
|
|
@@ -1664,8 +1765,8 @@ var HTMLIcon = (props) => /* @__PURE__ */ jsx46("svg", { xmlns: "http://www.w3.o
|
|
|
1664
1765
|
) });
|
|
1665
1766
|
|
|
1666
1767
|
// src/icons/IIIFBrowserIcon.tsx
|
|
1667
|
-
import { jsx as
|
|
1668
|
-
var IIIFBrowserIcon = (props) => /* @__PURE__ */
|
|
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(
|
|
1669
1770
|
"path",
|
|
1670
1771
|
{
|
|
1671
1772
|
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",
|
|
@@ -1673,9 +1774,59 @@ var IIIFBrowserIcon = (props) => /* @__PURE__ */ jsx47("svg", { xmlns: "http://w
|
|
|
1673
1774
|
}
|
|
1674
1775
|
) });
|
|
1675
1776
|
|
|
1777
|
+
// src/icons/InfoIcon.tsx
|
|
1778
|
+
import { jsx as jsx52, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
1779
|
+
function InfoIcon({ title, titleId, ...props }) {
|
|
1780
|
+
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(
|
|
1784
|
+
"path",
|
|
1785
|
+
{
|
|
1786
|
+
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",
|
|
1787
|
+
fill: "currentColor"
|
|
1788
|
+
}
|
|
1789
|
+
)
|
|
1790
|
+
] });
|
|
1791
|
+
}
|
|
1792
|
+
|
|
1793
|
+
// src/icons/ListingIcon.tsx
|
|
1794
|
+
import { jsx as jsx53, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
1795
|
+
function ListingIcon({
|
|
1796
|
+
title,
|
|
1797
|
+
titleId,
|
|
1798
|
+
...props
|
|
1799
|
+
}) {
|
|
1800
|
+
return /* @__PURE__ */ jsxs34(
|
|
1801
|
+
"svg",
|
|
1802
|
+
{
|
|
1803
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
1804
|
+
viewBox: "0 0 24 24",
|
|
1805
|
+
width: "1em",
|
|
1806
|
+
height: "1em",
|
|
1807
|
+
"aria-labelledby": titleId,
|
|
1808
|
+
...props,
|
|
1809
|
+
children: [
|
|
1810
|
+
title ? /* @__PURE__ */ jsx53("title", { id: titleId, children: title }) : null,
|
|
1811
|
+
/* @__PURE__ */ jsxs34("g", { fill: "none", children: [
|
|
1812
|
+
/* @__PURE__ */ jsx53("path", { d: "M0 0h24v24H0V0z" }),
|
|
1813
|
+
/* @__PURE__ */ jsx53("path", { d: "M0 0h24v24H0V0z", opacity: ".87" })
|
|
1814
|
+
] }),
|
|
1815
|
+
/* @__PURE__ */ jsx53(
|
|
1816
|
+
"path",
|
|
1817
|
+
{
|
|
1818
|
+
d: "M3 13h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7zm-4 6h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7z",
|
|
1819
|
+
fill: "currentColor"
|
|
1820
|
+
}
|
|
1821
|
+
)
|
|
1822
|
+
]
|
|
1823
|
+
}
|
|
1824
|
+
);
|
|
1825
|
+
}
|
|
1826
|
+
|
|
1676
1827
|
// src/icons/YouTubeIcon.tsx
|
|
1677
|
-
import { jsx as
|
|
1678
|
-
var YouTubeIcon = (props) => /* @__PURE__ */
|
|
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(
|
|
1679
1830
|
"path",
|
|
1680
1831
|
{
|
|
1681
1832
|
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",
|
|
@@ -1683,9 +1834,34 @@ var YouTubeIcon = (props) => /* @__PURE__ */ jsx48("svg", { xmlns: "http://www.w
|
|
|
1683
1834
|
}
|
|
1684
1835
|
) });
|
|
1685
1836
|
|
|
1837
|
+
// src/icons/ListEditIcon.tsx
|
|
1838
|
+
import { jsx as jsx55, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
1839
|
+
function ListEditIcon({
|
|
1840
|
+
title,
|
|
1841
|
+
titleId,
|
|
1842
|
+
...props
|
|
1843
|
+
}) {
|
|
1844
|
+
return /* @__PURE__ */ jsxs35(
|
|
1845
|
+
"svg",
|
|
1846
|
+
{
|
|
1847
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
1848
|
+
height: "24",
|
|
1849
|
+
viewBox: "0 0 24 24",
|
|
1850
|
+
width: "24",
|
|
1851
|
+
"aria-labelledby": titleId,
|
|
1852
|
+
...props,
|
|
1853
|
+
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" })
|
|
1857
|
+
]
|
|
1858
|
+
}
|
|
1859
|
+
);
|
|
1860
|
+
}
|
|
1861
|
+
|
|
1686
1862
|
// src/icons/VideoIcon.tsx
|
|
1687
|
-
import { jsx as
|
|
1688
|
-
var VideoIcon = (props) => /* @__PURE__ */
|
|
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(
|
|
1689
1865
|
"path",
|
|
1690
1866
|
{
|
|
1691
1867
|
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",
|
|
@@ -1694,8 +1870,8 @@ var VideoIcon = (props) => /* @__PURE__ */ jsx49("svg", { xmlns: "http://www.w3.
|
|
|
1694
1870
|
) });
|
|
1695
1871
|
|
|
1696
1872
|
// src/icons/AudioIcon.tsx
|
|
1697
|
-
import { jsx as
|
|
1698
|
-
var AudioIcon = (props) => /* @__PURE__ */
|
|
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(
|
|
1699
1875
|
"path",
|
|
1700
1876
|
{
|
|
1701
1877
|
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",
|
|
@@ -1704,8 +1880,8 @@ var AudioIcon = (props) => /* @__PURE__ */ jsx50("svg", { xmlns: "http://www.w3.
|
|
|
1704
1880
|
) });
|
|
1705
1881
|
|
|
1706
1882
|
// src/icons/EmptyCanvasIcon.tsx
|
|
1707
|
-
import { jsx as
|
|
1708
|
-
var EmptyCanvasIcon = (props) => /* @__PURE__ */
|
|
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(
|
|
1709
1885
|
"path",
|
|
1710
1886
|
{
|
|
1711
1887
|
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",
|
|
@@ -1714,14 +1890,14 @@ var EmptyCanvasIcon = (props) => /* @__PURE__ */ jsx51("svg", { xmlns: "http://w
|
|
|
1714
1890
|
) });
|
|
1715
1891
|
|
|
1716
1892
|
// src/icons/AddIcon.tsx
|
|
1717
|
-
import { jsx as
|
|
1893
|
+
import { jsx as jsx59, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
1718
1894
|
function AddIcon({
|
|
1719
1895
|
className: className2,
|
|
1720
1896
|
inline,
|
|
1721
1897
|
height = 16,
|
|
1722
1898
|
color = "black"
|
|
1723
1899
|
}) {
|
|
1724
|
-
return /* @__PURE__ */
|
|
1900
|
+
return /* @__PURE__ */ jsxs36(
|
|
1725
1901
|
"svg",
|
|
1726
1902
|
{
|
|
1727
1903
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -1732,17 +1908,17 @@ function AddIcon({
|
|
|
1732
1908
|
style: { verticalAlign: inline ? "bottom" : void 0 },
|
|
1733
1909
|
className: className2,
|
|
1734
1910
|
children: [
|
|
1735
|
-
/* @__PURE__ */
|
|
1736
|
-
/* @__PURE__ */
|
|
1911
|
+
/* @__PURE__ */ jsx59("path", { d: "M0 0h24v24H0z", fill: "none" }),
|
|
1912
|
+
/* @__PURE__ */ jsx59("path", { d: "M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z", fill: "currentColor" })
|
|
1737
1913
|
]
|
|
1738
1914
|
}
|
|
1739
1915
|
);
|
|
1740
1916
|
}
|
|
1741
1917
|
|
|
1742
1918
|
// src/icons/MoreMenu.tsx
|
|
1743
|
-
import { jsx as
|
|
1919
|
+
import { jsx as jsx60, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
1744
1920
|
function MoreMenu2() {
|
|
1745
|
-
return /* @__PURE__ */
|
|
1921
|
+
return /* @__PURE__ */ jsxs37(
|
|
1746
1922
|
"svg",
|
|
1747
1923
|
{
|
|
1748
1924
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -1750,8 +1926,8 @@ function MoreMenu2() {
|
|
|
1750
1926
|
viewBox: "0 0 24 24",
|
|
1751
1927
|
width: "1em",
|
|
1752
1928
|
children: [
|
|
1753
|
-
/* @__PURE__ */
|
|
1754
|
-
/* @__PURE__ */
|
|
1929
|
+
/* @__PURE__ */ jsx60("path", { d: "M0 0h24v24H0z", fill: "none" }),
|
|
1930
|
+
/* @__PURE__ */ jsx60(
|
|
1755
1931
|
"path",
|
|
1756
1932
|
{
|
|
1757
1933
|
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",
|
|
@@ -1763,14 +1939,78 @@ function MoreMenu2() {
|
|
|
1763
1939
|
);
|
|
1764
1940
|
}
|
|
1765
1941
|
|
|
1942
|
+
// src/icons/PreviewIcon.tsx
|
|
1943
|
+
import { jsx as jsx61 } from "react/jsx-runtime";
|
|
1944
|
+
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(
|
|
1946
|
+
"path",
|
|
1947
|
+
{
|
|
1948
|
+
fill: "currentColor",
|
|
1949
|
+
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"
|
|
1950
|
+
}
|
|
1951
|
+
) });
|
|
1952
|
+
}
|
|
1953
|
+
|
|
1954
|
+
// src/icons/ImageListIcon.tsx
|
|
1955
|
+
import { jsx as jsx62 } from "react/jsx-runtime";
|
|
1956
|
+
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(
|
|
1958
|
+
"path",
|
|
1959
|
+
{
|
|
1960
|
+
fill: "currentColor",
|
|
1961
|
+
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"
|
|
1962
|
+
}
|
|
1963
|
+
) });
|
|
1964
|
+
}
|
|
1965
|
+
|
|
1966
|
+
// src/icons/BackIcon.tsx
|
|
1967
|
+
import { jsx as jsx63 } from "react/jsx-runtime";
|
|
1968
|
+
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" }) });
|
|
1970
|
+
}
|
|
1971
|
+
|
|
1972
|
+
// src/icons/GridIcon.tsx
|
|
1973
|
+
import { jsx as jsx64, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
1974
|
+
function GridIcon(props) {
|
|
1975
|
+
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(
|
|
1977
|
+
"path",
|
|
1978
|
+
{
|
|
1979
|
+
fill: "currentColor",
|
|
1980
|
+
d: "M10 10h4v4h-4zm0 6h4v4h-4zM4 4h4v4H4zm0 6h4v4H4zm0 6h4v4H4zM16 4h4v4h-4zm0 6h4v4h-4zm0 6h4v4h-4zM10 4h4v4h-4z",
|
|
1981
|
+
opacity: ".3"
|
|
1982
|
+
}
|
|
1983
|
+
),
|
|
1984
|
+
/* @__PURE__ */ jsx64(
|
|
1985
|
+
"path",
|
|
1986
|
+
{
|
|
1987
|
+
fill: "currentColor",
|
|
1988
|
+
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"
|
|
1989
|
+
}
|
|
1990
|
+
)
|
|
1991
|
+
] });
|
|
1992
|
+
}
|
|
1993
|
+
|
|
1994
|
+
// src/icons/ScaledImageIcon.tsx
|
|
1995
|
+
import { jsx as jsx65 } from "react/jsx-runtime";
|
|
1996
|
+
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(
|
|
1998
|
+
"path",
|
|
1999
|
+
{
|
|
2000
|
+
fill: "currentColor",
|
|
2001
|
+
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"
|
|
2002
|
+
}
|
|
2003
|
+
) });
|
|
2004
|
+
}
|
|
2005
|
+
|
|
1766
2006
|
// src/ErrorMessage.tsx
|
|
1767
|
-
import { twMerge as
|
|
1768
|
-
import { jsx as
|
|
2007
|
+
import { twMerge as twMerge8 } from "tailwind-merge";
|
|
2008
|
+
import { jsx as jsx66 } from "react/jsx-runtime";
|
|
1769
2009
|
function ErrorMessage({ children, small = false, className: className2 }) {
|
|
1770
|
-
return /* @__PURE__ */
|
|
2010
|
+
return /* @__PURE__ */ jsx66(
|
|
1771
2011
|
"div",
|
|
1772
2012
|
{
|
|
1773
|
-
className:
|
|
2013
|
+
className: twMerge8(
|
|
1774
2014
|
"bg-red-500 text-white",
|
|
1775
2015
|
"border-1 drop-shadow border-red-700 w-full rounded-md py-2 px-4 leading-[1.9em] flex items-center",
|
|
1776
2016
|
"has-[a]:text-white",
|
|
@@ -1804,11 +2044,11 @@ function useFastList(list, firstRender = 24) {
|
|
|
1804
2044
|
|
|
1805
2045
|
// src/RenderTextualContent.tsx
|
|
1806
2046
|
import { useState as useState6 } from "react";
|
|
1807
|
-
import { Button as
|
|
2047
|
+
import { Button as Button8 } from "react-aria-components";
|
|
1808
2048
|
import {
|
|
1809
|
-
LocaleString as
|
|
2049
|
+
LocaleString as LocaleString5
|
|
1810
2050
|
} from "react-iiif-vault";
|
|
1811
|
-
import { jsx as
|
|
2051
|
+
import { jsx as jsx67, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
1812
2052
|
function RenderTextualContent(props) {
|
|
1813
2053
|
const languages = props.strategy.items.map(
|
|
1814
2054
|
(item) => Object.keys(item.text)[0]
|
|
@@ -1817,10 +2057,10 @@ function RenderTextualContent(props) {
|
|
|
1817
2057
|
const selected = props.strategy.items.find(
|
|
1818
2058
|
(item) => Object.keys(item.text)[0] === langauge
|
|
1819
2059
|
);
|
|
1820
|
-
return /* @__PURE__ */
|
|
1821
|
-
/* @__PURE__ */
|
|
1822
|
-
return /* @__PURE__ */
|
|
1823
|
-
|
|
2060
|
+
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,
|
|
1824
2064
|
{
|
|
1825
2065
|
className: `py-1 px-3 ${langauge === language ? "bg-me-500 text-white" : "bg-white text-black"}`,
|
|
1826
2066
|
onPress: () => setLanguage(language),
|
|
@@ -1829,11 +2069,11 @@ function RenderTextualContent(props) {
|
|
|
1829
2069
|
language
|
|
1830
2070
|
);
|
|
1831
2071
|
}) }),
|
|
1832
|
-
/* @__PURE__ */
|
|
1833
|
-
|
|
2072
|
+
/* @__PURE__ */ jsx67("div", { className: "p-4 prose", children: /* @__PURE__ */ jsx67(
|
|
2073
|
+
LocaleString5,
|
|
1834
2074
|
{
|
|
1835
2075
|
enableDangerouslySetInnerHTML: true,
|
|
1836
|
-
defaultText: /* @__PURE__ */
|
|
2076
|
+
defaultText: /* @__PURE__ */ jsx67("span", { className: "text-gray-500 my-8", children: "No content available" }),
|
|
1837
2077
|
children: selected?.text
|
|
1838
2078
|
}
|
|
1839
2079
|
) })
|
|
@@ -1849,13 +2089,13 @@ import { MediaPlayer, MediaProvider, Poster, Gesture, Track } from "@vidstack/re
|
|
|
1849
2089
|
import { defaultLayoutIcons, DefaultVideoLayout } from "@vidstack/react/player/layouts/default";
|
|
1850
2090
|
import { getValue } from "@iiif/helpers";
|
|
1851
2091
|
import { useRef as useRef5 } from "react";
|
|
1852
|
-
import { Fragment as Fragment5, jsx as
|
|
2092
|
+
import { Fragment as Fragment5, jsx as jsx68, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
1853
2093
|
function IIIFMediaPlayer(props) {
|
|
1854
2094
|
const mediaPlayer = useRef5(null);
|
|
1855
2095
|
const captions = props.captions || [];
|
|
1856
2096
|
const language = props.language;
|
|
1857
2097
|
const timeRef = useRef5(props.startTime || 0);
|
|
1858
|
-
return /* @__PURE__ */
|
|
2098
|
+
return /* @__PURE__ */ jsx68(
|
|
1859
2099
|
MediaPlayer,
|
|
1860
2100
|
{
|
|
1861
2101
|
onTimeUpdate: (time) => {
|
|
@@ -1876,9 +2116,9 @@ function IIIFMediaPlayer(props) {
|
|
|
1876
2116
|
type: props.media.format
|
|
1877
2117
|
}
|
|
1878
2118
|
],
|
|
1879
|
-
children: /* @__PURE__ */
|
|
2119
|
+
children: /* @__PURE__ */ jsxs40(MediaProvider, { className: "w-full h-full [&>video]:w-full [&>video]:h-full [&>video]:object-contain", children: [
|
|
1880
2120
|
captions.map((caption) => {
|
|
1881
|
-
return /* @__PURE__ */
|
|
2121
|
+
return /* @__PURE__ */ jsx68(
|
|
1882
2122
|
Track,
|
|
1883
2123
|
{
|
|
1884
2124
|
src: caption.id,
|
|
@@ -1890,15 +2130,15 @@ function IIIFMediaPlayer(props) {
|
|
|
1890
2130
|
caption.id
|
|
1891
2131
|
);
|
|
1892
2132
|
}),
|
|
1893
|
-
props.poster ? /* @__PURE__ */
|
|
2133
|
+
props.poster ? /* @__PURE__ */ jsx68(
|
|
1894
2134
|
Poster,
|
|
1895
2135
|
{
|
|
1896
2136
|
className: "absolute inset-0 bg-black block h-full w-full opacity-0 transition-opacity data-[visible]:opacity-100 object-contain",
|
|
1897
2137
|
src: props.poster
|
|
1898
2138
|
}
|
|
1899
2139
|
) : null,
|
|
1900
|
-
/* @__PURE__ */
|
|
1901
|
-
/* @__PURE__ */
|
|
2140
|
+
/* @__PURE__ */ jsx68(Gestures, {}),
|
|
2141
|
+
/* @__PURE__ */ jsx68(
|
|
1902
2142
|
DefaultVideoLayout,
|
|
1903
2143
|
{
|
|
1904
2144
|
className: "z-1",
|
|
@@ -1911,8 +2151,8 @@ function IIIFMediaPlayer(props) {
|
|
|
1911
2151
|
);
|
|
1912
2152
|
}
|
|
1913
2153
|
function Gestures() {
|
|
1914
|
-
return /* @__PURE__ */
|
|
1915
|
-
/* @__PURE__ */
|
|
2154
|
+
return /* @__PURE__ */ jsxs40(Fragment5, { children: [
|
|
2155
|
+
/* @__PURE__ */ jsx68(
|
|
1916
2156
|
Gesture,
|
|
1917
2157
|
{
|
|
1918
2158
|
className: "pointer-coarse:hidden absolute top-0 start-12 bottom-20 right-0 -z-1 block",
|
|
@@ -1920,7 +2160,7 @@ function Gestures() {
|
|
|
1920
2160
|
action: "toggle:paused"
|
|
1921
2161
|
}
|
|
1922
2162
|
),
|
|
1923
|
-
/* @__PURE__ */
|
|
2163
|
+
/* @__PURE__ */ jsx68(Gesture, { className: "absolute inset-0 z-0 block h-full w-full", event: "dblpointerup", action: "toggle:fullscreen" })
|
|
1924
2164
|
] });
|
|
1925
2165
|
}
|
|
1926
2166
|
export {
|
|
@@ -1929,8 +2169,11 @@ export {
|
|
|
1929
2169
|
AddImageIcon,
|
|
1930
2170
|
AtlasBanner,
|
|
1931
2171
|
AudioIcon,
|
|
2172
|
+
BackIcon,
|
|
1932
2173
|
CanvasThumbnailGridItem,
|
|
1933
2174
|
Card3D,
|
|
2175
|
+
CollectionIcon,
|
|
2176
|
+
CollectionListItem,
|
|
1934
2177
|
ConfirmSelectionButton,
|
|
1935
2178
|
ControlButton,
|
|
1936
2179
|
CreateCanvasIcon,
|
|
@@ -1943,6 +2186,7 @@ export {
|
|
|
1943
2186
|
EmptyState,
|
|
1944
2187
|
ErrorMessage,
|
|
1945
2188
|
Form,
|
|
2189
|
+
GridIcon,
|
|
1946
2190
|
HTMLEditor,
|
|
1947
2191
|
HTMLIcon,
|
|
1948
2192
|
HandleContainer,
|
|
@@ -1950,21 +2194,31 @@ export {
|
|
|
1950
2194
|
IIIFLogo,
|
|
1951
2195
|
IIIFMediaPlayer,
|
|
1952
2196
|
IconButton,
|
|
2197
|
+
ImageListIcon,
|
|
2198
|
+
InfoIcon,
|
|
1953
2199
|
ItemWithHandle,
|
|
1954
2200
|
LazyThumbnail,
|
|
2201
|
+
ListEditIcon,
|
|
2202
|
+
ListingIcon,
|
|
1955
2203
|
MDXEditor,
|
|
1956
2204
|
ManifestEditorLogo,
|
|
2205
|
+
ManifestIcon,
|
|
2206
|
+
ManifestListItem,
|
|
1957
2207
|
ManifestOverviewEmptyState,
|
|
1958
2208
|
MetadataContainer,
|
|
1959
2209
|
Modal,
|
|
2210
|
+
ModalBackSlot,
|
|
1960
2211
|
MoreMenu2 as MoreMenu,
|
|
1961
2212
|
OpaqueControls,
|
|
1962
2213
|
PanelSideMenu,
|
|
2214
|
+
PreviewIcon,
|
|
1963
2215
|
RenderTextualContent,
|
|
2216
|
+
ScaledImageIcon,
|
|
1964
2217
|
Sidebar,
|
|
1965
2218
|
SidebarContent,
|
|
1966
2219
|
SidebarHeader,
|
|
1967
2220
|
SidebarTabs,
|
|
2221
|
+
Spinner,
|
|
1968
2222
|
SvgControlBar,
|
|
1969
2223
|
Tab,
|
|
1970
2224
|
TabList,
|