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