@manifest-editor/components 1.1.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +753 -272
- package/dist/index.css +275 -6
- package/dist/index.d.cts +80 -13
- package/dist/index.d.ts +80 -13
- package/dist/index.js +803 -275
- package/package.json +19 -8
package/dist/index.cjs
CHANGED
|
@@ -43,21 +43,31 @@ __export(src_exports, {
|
|
|
43
43
|
CreateCanvasIcon: () => CreateCanvasIcon,
|
|
44
44
|
CreatorGrid: () => CreatorGrid,
|
|
45
45
|
DefaultTooltipContent: () => DefaultTooltipContent,
|
|
46
|
+
DeleteForeverIcon: () => DeleteForeverIcon,
|
|
46
47
|
DownloadButton: () => DownloadButton,
|
|
47
48
|
DownloadIcon: () => DownloadIcon,
|
|
48
49
|
EmptyCanvasIcon: () => EmptyCanvasIcon,
|
|
49
50
|
EmptyState: () => EmptyState,
|
|
51
|
+
ErrorMessage: () => ErrorMessage,
|
|
50
52
|
Form: () => Form,
|
|
53
|
+
HTMLEditor: () => HTMLEditor,
|
|
51
54
|
HTMLIcon: () => HTMLIcon,
|
|
55
|
+
HandleContainer: () => HandleContainer,
|
|
52
56
|
IIIFBrowserIcon: () => IIIFBrowserIcon,
|
|
53
57
|
IIIFLogo: () => IIIFLogo,
|
|
58
|
+
IIIFMediaPlayer: () => IIIFMediaPlayer,
|
|
59
|
+
IconButton: () => IconButton,
|
|
60
|
+
ItemWithHandle: () => ItemWithHandle,
|
|
54
61
|
LazyThumbnail: () => LazyThumbnail,
|
|
62
|
+
MDXEditor: () => MDXEditor,
|
|
55
63
|
ManifestEditorLogo: () => ManifestEditorLogo,
|
|
56
64
|
ManifestOverviewEmptyState: () => ManifestOverviewEmptyState,
|
|
57
65
|
MetadataContainer: () => MetadataContainer,
|
|
58
66
|
Modal: () => Modal,
|
|
67
|
+
MoreMenu: () => MoreMenu2,
|
|
59
68
|
OpaqueControls: () => OpaqueControls,
|
|
60
69
|
PanelSideMenu: () => PanelSideMenu,
|
|
70
|
+
RenderTextualContent: () => RenderTextualContent,
|
|
61
71
|
Sidebar: () => Sidebar,
|
|
62
72
|
SidebarContent: () => SidebarContent,
|
|
63
73
|
SidebarHeader: () => SidebarHeader,
|
|
@@ -67,6 +77,7 @@ __export(src_exports, {
|
|
|
67
77
|
TabList: () => TabList,
|
|
68
78
|
TabPanel: () => TabPanel,
|
|
69
79
|
Tabs: () => Tabs,
|
|
80
|
+
TextIcon: () => TextIcon,
|
|
70
81
|
ThumbnailGridContainer: () => ThumbnailGridContainer,
|
|
71
82
|
Tooltip: () => Tooltip,
|
|
72
83
|
TooltipContent: () => TooltipContent,
|
|
@@ -79,6 +90,7 @@ __export(src_exports, {
|
|
|
79
90
|
useTooltipContext: () => useTooltipContext
|
|
80
91
|
});
|
|
81
92
|
module.exports = __toCommonJS(src_exports);
|
|
93
|
+
var import_dist = require("iiif-browser/dist/index.css");
|
|
82
94
|
|
|
83
95
|
// src/ActionButton.tsx
|
|
84
96
|
var import_react_aria_components = require("react-aria-components");
|
|
@@ -119,6 +131,7 @@ function ActionButton({
|
|
|
119
131
|
var React = __toESM(require("react"), 1);
|
|
120
132
|
var import_react = require("@floating-ui/react");
|
|
121
133
|
var import_react_aria_components2 = require("react-aria-components");
|
|
134
|
+
var import_tailwind_merge2 = require("tailwind-merge");
|
|
122
135
|
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
123
136
|
function useTooltip({
|
|
124
137
|
initialOpen = false,
|
|
@@ -173,7 +186,10 @@ var useTooltipContext = () => {
|
|
|
173
186
|
}
|
|
174
187
|
return context;
|
|
175
188
|
};
|
|
176
|
-
function Tooltip({
|
|
189
|
+
function Tooltip({
|
|
190
|
+
children,
|
|
191
|
+
...options
|
|
192
|
+
}) {
|
|
177
193
|
const tooltip = useTooltip(options);
|
|
178
194
|
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(TooltipContext.Provider, { value: tooltip, children });
|
|
179
195
|
}
|
|
@@ -220,7 +236,16 @@ var TooltipContent = React.forwardRef(function TooltipContent2({ style, ...props
|
|
|
220
236
|
) });
|
|
221
237
|
});
|
|
222
238
|
function DefaultTooltipContent(props) {
|
|
223
|
-
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
239
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
240
|
+
TooltipContent,
|
|
241
|
+
{
|
|
242
|
+
className: (0, import_tailwind_merge2.twMerge)(
|
|
243
|
+
"bg-me-gray-900 text-white text-sm px-3 py-2 rounded-lg opacity-90 z-50",
|
|
244
|
+
props.className
|
|
245
|
+
),
|
|
246
|
+
children: props.children
|
|
247
|
+
}
|
|
248
|
+
);
|
|
224
249
|
}
|
|
225
250
|
|
|
226
251
|
// src/Sidebar.tsx
|
|
@@ -233,11 +258,11 @@ function SidebarContent({
|
|
|
233
258
|
className: className2,
|
|
234
259
|
padding
|
|
235
260
|
}) {
|
|
236
|
-
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: cn("flex-1 min-h-0 overflow-y-auto", className2, padding && "
|
|
261
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: cn("flex-1 min-h-0 overflow-y-auto pb-64", className2, padding && "px-3 pt-3"), children });
|
|
237
262
|
}
|
|
238
263
|
function SidebarHeader(props) {
|
|
239
264
|
const { actions, title } = props;
|
|
240
|
-
return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "bg-me-gray-100 h-12 flex items-center px-3 z-10 text-black border-b-me-gray-300 border-b", children: [
|
|
265
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "bg-me-gray-100 h-12 flex items-center px-3 z-10 text-black border-b-me-gray-300 border-b flex-shrink-0", children: [
|
|
241
266
|
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "flex-1", children: title }),
|
|
242
267
|
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "ml-auto flex gap-2 items-center", children: actions?.map((action, index) => /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(Tooltip, { placement: "bottom", children: [
|
|
243
268
|
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
@@ -311,9 +336,10 @@ function ThumbnailGridContainer(props) {
|
|
|
311
336
|
}
|
|
312
337
|
|
|
313
338
|
// src/LazyThumbnail.tsx
|
|
314
|
-
var import_react_lazy_load_image_component = require("react-lazy-load-image-component");
|
|
315
|
-
var import_react_iiif_vault = require("react-iiif-vault");
|
|
316
339
|
var import_react2 = require("react");
|
|
340
|
+
var import_react_iiif_vault = require("react-iiif-vault");
|
|
341
|
+
var import_react_lazy_load_image_component = require("react-lazy-load-image-component");
|
|
342
|
+
var import_tailwind_merge3 = require("tailwind-merge");
|
|
317
343
|
|
|
318
344
|
// src/Spinner.tsx
|
|
319
345
|
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
@@ -345,59 +371,118 @@ function Spinner(props) {
|
|
|
345
371
|
);
|
|
346
372
|
}
|
|
347
373
|
|
|
348
|
-
// src/
|
|
374
|
+
// src/icons/TextIcon.tsx
|
|
349
375
|
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
350
|
-
function
|
|
351
|
-
return /* @__PURE__ */ (0, import_jsx_runtime9.
|
|
376
|
+
function TextIcon(props) {
|
|
377
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
|
|
378
|
+
"svg",
|
|
379
|
+
{
|
|
380
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
381
|
+
width: "1em",
|
|
382
|
+
height: "1em",
|
|
383
|
+
viewBox: "0 0 24 24",
|
|
384
|
+
...props,
|
|
385
|
+
children: [
|
|
386
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("title", { children: "Text" }),
|
|
387
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
388
|
+
"path",
|
|
389
|
+
{
|
|
390
|
+
fill: "currentColor",
|
|
391
|
+
d: "M3 21v-2h18v2zm0-4v-2h12v2zm0-4v-2h18v2zm0-4V7h12v2zm0-4V3h18v2z"
|
|
392
|
+
}
|
|
393
|
+
)
|
|
394
|
+
]
|
|
395
|
+
}
|
|
396
|
+
);
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
// src/LazyThumbnail.tsx
|
|
400
|
+
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
401
|
+
function LazyThumbnail({
|
|
402
|
+
cover,
|
|
403
|
+
fade = true
|
|
404
|
+
}) {
|
|
405
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_lazy_load_image_component.LazyLoadComponent, { children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(LazyThumbnailInner, { cover, fade }) });
|
|
352
406
|
}
|
|
353
|
-
|
|
407
|
+
var renderCache = /* @__PURE__ */ new Map();
|
|
408
|
+
function LazyThumbnailInner({
|
|
409
|
+
cover,
|
|
410
|
+
fade = true
|
|
411
|
+
}) {
|
|
354
412
|
const img = (0, import_react2.useRef)(null);
|
|
355
|
-
const
|
|
413
|
+
const canvas = (0, import_react_iiif_vault.useCanvas)();
|
|
414
|
+
const isCached = canvas ? !!renderCache.get(canvas?.id) : false;
|
|
415
|
+
const [isLoading, setIsLoading] = (0, import_react2.useState)(!isCached);
|
|
356
416
|
const thumbnail = (0, import_react_iiif_vault.useThumbnail)({ height: 256, width: 256 }, true);
|
|
417
|
+
let thumbnailId = thumbnail?.id;
|
|
418
|
+
if (canvas?.id && thumbnailId) {
|
|
419
|
+
renderCache.set(canvas.id, thumbnailId);
|
|
420
|
+
} else if (canvas?.id && renderCache.get(canvas.id)) {
|
|
421
|
+
thumbnailId = renderCache.get(canvas?.id);
|
|
422
|
+
}
|
|
357
423
|
(0, import_react2.useEffect)(() => {
|
|
358
|
-
if (
|
|
424
|
+
if (thumbnailId && !isCached) {
|
|
359
425
|
setIsLoading(true);
|
|
360
426
|
}
|
|
361
|
-
}, [
|
|
362
|
-
(0, import_react2.
|
|
363
|
-
|
|
364
|
-
if (
|
|
365
|
-
|
|
427
|
+
}, [thumbnailId, isCached]);
|
|
428
|
+
const checkImage = (0, import_react2.useCallback)(
|
|
429
|
+
(node) => {
|
|
430
|
+
if (node && !isCached) {
|
|
431
|
+
if (node.complete || node.naturalWidth > 0) {
|
|
432
|
+
setIsLoading(false);
|
|
433
|
+
}
|
|
366
434
|
}
|
|
367
|
-
}
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
435
|
+
},
|
|
436
|
+
[isCached]
|
|
437
|
+
);
|
|
438
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: `w-full h-full relative`, children: [
|
|
439
|
+
thumbnail?.id ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
371
440
|
"img",
|
|
372
441
|
{
|
|
373
442
|
onLoad: () => setIsLoading(false),
|
|
374
|
-
ref:
|
|
443
|
+
ref: checkImage,
|
|
375
444
|
src: thumbnail?.id,
|
|
376
445
|
alt: "",
|
|
377
|
-
className: `w-full h-full object-contain ${!isLoading ? "animate-fadeIn" : "opacity-0"}`
|
|
446
|
+
className: `w-full h-full ${cover ? "object-cover" : "object-contain"} ${!isLoading ? isCached ? "" : "animate-fadeIn" : "opacity-0"}`
|
|
447
|
+
}
|
|
448
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(ThumbnailFallback, {}),
|
|
449
|
+
!thumbnail?.id || isLoading ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
450
|
+
"div",
|
|
451
|
+
{
|
|
452
|
+
className: (0, import_tailwind_merge3.twMerge)(
|
|
453
|
+
"absolute inset-0 flex items-center justify-center bg-me-gray-100 text-2xl z-10",
|
|
454
|
+
fade && "animate-fadeIn"
|
|
455
|
+
),
|
|
456
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Spinner, {})
|
|
378
457
|
}
|
|
379
|
-
) :
|
|
380
|
-
!thumbnail?.id || isLoading ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: "absolute inset-0 flex items-center justify-center bg-me-gray-100 text-2xl animate-fadeIn z-10", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Spinner, {}) }) : null
|
|
458
|
+
) : null
|
|
381
459
|
] });
|
|
382
460
|
}
|
|
461
|
+
function ThumbnailFallback() {
|
|
462
|
+
const [strategy] = (0, import_react_iiif_vault.useRenderingStrategy)();
|
|
463
|
+
if (strategy.type === "textual-content") {
|
|
464
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "text-black/30 flex items-center justify-center h-full bg-me-gray-100 animate-fadeInDelayed absolute inset-0 z-20", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(TextIcon, { className: "w-16 h-16" }) });
|
|
465
|
+
}
|
|
466
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "text-black/30 flex items-center justify-center h-full bg-me-gray-100 animate-fadeInDelayed absolute inset-0 z-20", children: "No thumbnail" });
|
|
467
|
+
}
|
|
383
468
|
|
|
384
469
|
// src/CanvasThumbnailGridItem.tsx
|
|
385
470
|
var import_react_iiif_vault3 = require("react-iiif-vault");
|
|
386
471
|
|
|
387
472
|
// src/CanvasLabel.tsx
|
|
388
473
|
var import_react_iiif_vault2 = require("react-iiif-vault");
|
|
389
|
-
var
|
|
474
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
390
475
|
function CanvasLabel(props) {
|
|
391
476
|
const canvas = (0, import_react_iiif_vault2.useCanvas)();
|
|
392
477
|
if (!canvas)
|
|
393
478
|
return null;
|
|
394
|
-
return /* @__PURE__ */ (0,
|
|
479
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_iiif_vault2.LocaleString, { className: props.className, as: props.as, children: canvas.label });
|
|
395
480
|
}
|
|
396
481
|
|
|
397
482
|
// src/Card3D.tsx
|
|
398
483
|
var import_react3 = require("react");
|
|
399
|
-
var
|
|
400
|
-
var
|
|
484
|
+
var import_tailwind_merge4 = require("tailwind-merge");
|
|
485
|
+
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
401
486
|
function Card3D({
|
|
402
487
|
className: className2,
|
|
403
488
|
shouldTranslate,
|
|
@@ -468,11 +553,11 @@ function Card3D({
|
|
|
468
553
|
outer.current.removeEventListener("mousemove", mousemove);
|
|
469
554
|
};
|
|
470
555
|
}, []);
|
|
471
|
-
return /* @__PURE__ */ (0,
|
|
556
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
472
557
|
"div",
|
|
473
558
|
{
|
|
474
559
|
ref: outer,
|
|
475
|
-
className: (0,
|
|
560
|
+
className: (0, import_tailwind_merge4.twMerge)(
|
|
476
561
|
//
|
|
477
562
|
"relative transition-all hover:duration-50",
|
|
478
563
|
shouldTranslate && "hover:shadow-xl",
|
|
@@ -481,7 +566,7 @@ function Card3D({
|
|
|
481
566
|
...props,
|
|
482
567
|
children: [
|
|
483
568
|
children,
|
|
484
|
-
/* @__PURE__ */ (0,
|
|
569
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
485
570
|
"div",
|
|
486
571
|
{
|
|
487
572
|
className: "pointer-events-none absolute inset-0 transition-all",
|
|
@@ -497,70 +582,94 @@ function Card3D({
|
|
|
497
582
|
}
|
|
498
583
|
|
|
499
584
|
// src/CanvasThumbnailGridItem.tsx
|
|
500
|
-
var
|
|
585
|
+
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
501
586
|
function CanvasThumbnailGridItem(props) {
|
|
502
|
-
return /* @__PURE__ */ (0,
|
|
503
|
-
/* @__PURE__ */ (0,
|
|
587
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react_iiif_vault3.CanvasContext, { canvas: props.id, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { onMouseDown: props.onClick, className: "flex flex-col", "data-canvas-selected": props.selected, children: [
|
|
588
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: "bg-me-gray-100 w-full aspect-square flex-1 overflow-hidden rounded", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
504
589
|
Card3D,
|
|
505
590
|
{
|
|
591
|
+
"data-canvas-selected": props.active,
|
|
592
|
+
"aria-selected": props.active,
|
|
506
593
|
className: cn(
|
|
507
594
|
"border-2 border-transparent p-1 w-full h-full rounded",
|
|
508
595
|
props.selected && "border-me-primary-500"
|
|
509
596
|
),
|
|
510
|
-
children: /* @__PURE__ */ (0,
|
|
597
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(LazyThumbnail, {})
|
|
511
598
|
}
|
|
512
599
|
) }),
|
|
513
|
-
/* @__PURE__ */ (0,
|
|
600
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(CanvasLabel, { className: "text-sm text-center truncate mt-1", as: "div" })
|
|
514
601
|
] }) });
|
|
515
602
|
}
|
|
516
603
|
|
|
517
604
|
// src/Modal.tsx
|
|
518
605
|
var import_react4 = require("@headlessui/react");
|
|
519
|
-
var
|
|
520
|
-
function Modal({
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
606
|
+
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
607
|
+
function Modal({
|
|
608
|
+
id,
|
|
609
|
+
title,
|
|
610
|
+
open = true,
|
|
611
|
+
onClose,
|
|
612
|
+
actions,
|
|
613
|
+
children
|
|
614
|
+
}) {
|
|
615
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_jsx_runtime14.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
|
|
616
|
+
import_react4.Dialog,
|
|
617
|
+
{
|
|
618
|
+
open,
|
|
619
|
+
onClose,
|
|
620
|
+
id,
|
|
621
|
+
className: "relative z-[500]",
|
|
622
|
+
children: [
|
|
623
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
624
|
+
"div",
|
|
625
|
+
{
|
|
626
|
+
className: `fixed inset-0 bg-black/30 animate-fadeIn z-[501]`,
|
|
627
|
+
"aria-hidden": "true"
|
|
628
|
+
}
|
|
629
|
+
),
|
|
630
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "fixed inset-0 flex w-screen items-center justify-center p-4 z-[502]", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "relative p-4 w-full max-w-4xl max-h-full", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_react4.DialogPanel, { className: "relative bg-white rounded-lg overflow-hidden shadow-2xl max-h-[80vh] flex flex-col", children: [
|
|
631
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "flex items-center justify-between p-4 md:p-5 rounded-t-lg sticky top-0 bg-white", children: [
|
|
632
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react4.DialogTitle, { className: "text-xl font-semibold text-gray-900 ", children: title }),
|
|
633
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_react4.CloseButton, { className: "text-gray-400 bg-transparent hover:bg-gray-200 hover:text-gray-900 rounded-lg text-sm w-8 h-8 ms-auto inline-flex justify-center items-center", children: [
|
|
634
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
635
|
+
"svg",
|
|
537
636
|
{
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
637
|
+
className: "w-3 h-3",
|
|
638
|
+
"aria-hidden": "true",
|
|
639
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
640
|
+
fill: "none",
|
|
641
|
+
viewBox: "0 0 14 14",
|
|
642
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
643
|
+
"path",
|
|
644
|
+
{
|
|
645
|
+
stroke: "currentColor",
|
|
646
|
+
strokeLinecap: "round",
|
|
647
|
+
strokeLinejoin: "round",
|
|
648
|
+
strokeWidth: "2",
|
|
649
|
+
d: "m1 1 6 6m0 0 6 6M7 7l6-6M7 7l-6 6"
|
|
650
|
+
}
|
|
651
|
+
)
|
|
543
652
|
}
|
|
544
|
-
)
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
653
|
+
),
|
|
654
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "sr-only", children: "Close" })
|
|
655
|
+
] })
|
|
656
|
+
] }),
|
|
657
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "flex-1 min-h-0 overflow-y-auto flex flex-col", children }),
|
|
658
|
+
actions ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "flex items-center p-4 md:p-5 border-t border-gray-200 rounded-b justify-end", children: actions }) : null
|
|
659
|
+
] }) }) })
|
|
660
|
+
]
|
|
661
|
+
}
|
|
662
|
+
) });
|
|
554
663
|
}
|
|
555
664
|
|
|
556
665
|
// src/ControlButton.tsx
|
|
557
|
-
var
|
|
666
|
+
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
558
667
|
function ControlButton({
|
|
559
668
|
children,
|
|
560
669
|
className: className2,
|
|
561
670
|
...props
|
|
562
671
|
}) {
|
|
563
|
-
return /* @__PURE__ */ (0,
|
|
672
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
564
673
|
"button",
|
|
565
674
|
{
|
|
566
675
|
className: cn(
|
|
@@ -574,9 +683,9 @@ function ControlButton({
|
|
|
574
683
|
}
|
|
575
684
|
|
|
576
685
|
// src/OpaqueControls.tsx
|
|
577
|
-
var
|
|
686
|
+
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
578
687
|
function OpaqueControls(props) {
|
|
579
|
-
return /* @__PURE__ */ (0,
|
|
688
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
580
689
|
"div",
|
|
581
690
|
{
|
|
582
691
|
className: cn("flex w-full p-0.5 opacity-0 transition-opacity duration-300 gap-2", props.active && "opacity-1"),
|
|
@@ -587,9 +696,9 @@ function OpaqueControls(props) {
|
|
|
587
696
|
|
|
588
697
|
// src/Tabs.tsx
|
|
589
698
|
var import_react_aria_components3 = require("react-aria-components");
|
|
590
|
-
var
|
|
699
|
+
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
591
700
|
function Tabs({ className: className2, children, ...props }) {
|
|
592
|
-
return /* @__PURE__ */ (0,
|
|
701
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
593
702
|
import_react_aria_components3.Tabs,
|
|
594
703
|
{
|
|
595
704
|
className: (state) => {
|
|
@@ -606,7 +715,7 @@ function TabList({
|
|
|
606
715
|
children,
|
|
607
716
|
...props
|
|
608
717
|
}) {
|
|
609
|
-
return /* @__PURE__ */ (0,
|
|
718
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
610
719
|
import_react_aria_components3.TabList,
|
|
611
720
|
{
|
|
612
721
|
className: (state) => {
|
|
@@ -619,7 +728,7 @@ function TabList({
|
|
|
619
728
|
);
|
|
620
729
|
}
|
|
621
730
|
function Tab({ className: className2, children, ...props }) {
|
|
622
|
-
return /* @__PURE__ */ (0,
|
|
731
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
623
732
|
import_react_aria_components3.Tab,
|
|
624
733
|
{
|
|
625
734
|
className: (state) => {
|
|
@@ -637,7 +746,7 @@ function Tab({ className: className2, children, ...props }) {
|
|
|
637
746
|
);
|
|
638
747
|
}
|
|
639
748
|
function TabPanel({ className: className2, children, ...props }) {
|
|
640
|
-
return /* @__PURE__ */ (0,
|
|
749
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
641
750
|
import_react_aria_components3.TabPanel,
|
|
642
751
|
{
|
|
643
752
|
className: (state) => {
|
|
@@ -652,43 +761,43 @@ function TabPanel({ className: className2, children, ...props }) {
|
|
|
652
761
|
|
|
653
762
|
// src/CreatorGrid.tsx
|
|
654
763
|
var import_react_aria_components4 = require("react-aria-components");
|
|
655
|
-
var
|
|
656
|
-
var
|
|
764
|
+
var import_tailwind_merge5 = require("tailwind-merge");
|
|
765
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
657
766
|
function CreatorGrid(props) {
|
|
658
|
-
return /* @__PURE__ */ (0,
|
|
767
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
659
768
|
import_react_aria_components4.ListBox,
|
|
660
769
|
{
|
|
661
770
|
orientation: "horizontal",
|
|
662
771
|
"aria-label": props.label,
|
|
663
772
|
selectionMode: "single",
|
|
664
773
|
items: props.items,
|
|
665
|
-
className: "grid grid-sm gap-4 p-4",
|
|
666
|
-
children: (item) => /* @__PURE__ */ (0,
|
|
774
|
+
className: "grid grid-sm gap-4 p-4 mb-8",
|
|
775
|
+
children: (item) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(CreatorGridItem, { ...item })
|
|
667
776
|
}
|
|
668
777
|
);
|
|
669
778
|
}
|
|
670
779
|
function CreatorGridItem(props) {
|
|
671
|
-
return /* @__PURE__ */ (0,
|
|
780
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
672
781
|
import_react_aria_components4.ListBoxItem,
|
|
673
782
|
{
|
|
674
783
|
id: props.id,
|
|
675
784
|
onAction: props.onClick,
|
|
676
|
-
className: ($s) => (0,
|
|
785
|
+
className: ($s) => (0, import_tailwind_merge5.twMerge)(
|
|
677
786
|
"bg-white p-2 border-me-gray-300 rounded-md border hover:border-me-primary-500",
|
|
678
787
|
$s.isFocused && "border-me-primary-500 outline-me-primary-500 outline-2"
|
|
679
788
|
),
|
|
680
789
|
children: [
|
|
681
|
-
/* @__PURE__ */ (0,
|
|
682
|
-
/* @__PURE__ */ (0,
|
|
683
|
-
/* @__PURE__ */ (0,
|
|
790
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "rounded bg-me-gray-300 mb-2 flex items-center justify-center py-1 aspect-square", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "text-center [&>svg]:w-16 [&>svg]:h-16", children: props.icon }) }),
|
|
791
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "text-center font-semibold text-sm", children: props.title }),
|
|
792
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "text-sm text-center text-black/50", children: props.description })
|
|
684
793
|
]
|
|
685
794
|
}
|
|
686
795
|
);
|
|
687
796
|
}
|
|
688
797
|
|
|
689
798
|
// src/icons/DownloadIcon.tsx
|
|
690
|
-
var
|
|
691
|
-
var DownloadIcon = (props) => /* @__PURE__ */ (0,
|
|
799
|
+
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
800
|
+
var DownloadIcon = (props) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", fill: "#5f6368", viewBox: "0 -960 960 960", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
692
801
|
"path",
|
|
693
802
|
{
|
|
694
803
|
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",
|
|
@@ -698,10 +807,10 @@ var DownloadIcon = (props) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("svg
|
|
|
698
807
|
|
|
699
808
|
// src/DownloadButton.tsx
|
|
700
809
|
var import_react_aria = require("react-aria");
|
|
701
|
-
var
|
|
810
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
702
811
|
function DownloadButton({ label, id: _id, getData, fileName, fileType }) {
|
|
703
812
|
const id = (0, import_react_aria.useId)(_id);
|
|
704
|
-
return /* @__PURE__ */ (0,
|
|
813
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Tooltip, { placement: "bottom", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
705
814
|
TooltipTrigger,
|
|
706
815
|
{
|
|
707
816
|
className: "bg-me-gray-100 hover:bg-me-primary-500 hover:text-white p-1 rounded-md text-me-primary-500 text-2xl",
|
|
@@ -709,8 +818,8 @@ function DownloadButton({ label, id: _id, getData, fileName, fileType }) {
|
|
|
709
818
|
id,
|
|
710
819
|
onPress: () => createDownload(getData(), fileName, fileType),
|
|
711
820
|
children: [
|
|
712
|
-
/* @__PURE__ */ (0,
|
|
713
|
-
/* @__PURE__ */ (0,
|
|
821
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(DownloadIcon, { "aria-labelledby": _id }),
|
|
822
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(DefaultTooltipContent, { children: label })
|
|
714
823
|
]
|
|
715
824
|
}
|
|
716
825
|
) });
|
|
@@ -730,11 +839,11 @@ function createDownload(data, fileName, fileType = "text/json") {
|
|
|
730
839
|
}
|
|
731
840
|
|
|
732
841
|
// src/AtlasBanner.tsx
|
|
733
|
-
var
|
|
842
|
+
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
734
843
|
function AtlasBanner({ children, controlsId }) {
|
|
735
|
-
return /* @__PURE__ */ (0,
|
|
736
|
-
/* @__PURE__ */ (0,
|
|
737
|
-
/* @__PURE__ */ (0,
|
|
844
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "bg-me-gray-100 border-b text-black p-1 flex gap-4 items-center h-12", children: [
|
|
845
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "px-4", children }),
|
|
846
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { id: controlsId || "atlas-controls", className: "flex gap-2" })
|
|
738
847
|
] });
|
|
739
848
|
}
|
|
740
849
|
|
|
@@ -742,8 +851,8 @@ function AtlasBanner({ children, controlsId }) {
|
|
|
742
851
|
var import_react_iiif_vault4 = require("react-iiif-vault");
|
|
743
852
|
|
|
744
853
|
// src/icons/DrawIcon.tsx
|
|
745
|
-
var
|
|
746
|
-
var DrawIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0,
|
|
854
|
+
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
855
|
+
var DrawIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
|
|
747
856
|
"svg",
|
|
748
857
|
{
|
|
749
858
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -753,8 +862,8 @@ var DrawIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0, import_jsx_
|
|
|
753
862
|
"aria-labelledby": titleId,
|
|
754
863
|
...props,
|
|
755
864
|
children: [
|
|
756
|
-
title ? /* @__PURE__ */ (0,
|
|
757
|
-
/* @__PURE__ */ (0,
|
|
865
|
+
title ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("title", { id: titleId, children: title }) : null,
|
|
866
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
758
867
|
"path",
|
|
759
868
|
{
|
|
760
869
|
fill: "currentColor",
|
|
@@ -766,8 +875,8 @@ var DrawIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0, import_jsx_
|
|
|
766
875
|
);
|
|
767
876
|
|
|
768
877
|
// src/icons/PolygonIcon.tsx
|
|
769
|
-
var
|
|
770
|
-
var PolygonIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0,
|
|
878
|
+
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
879
|
+
var PolygonIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
771
880
|
"svg",
|
|
772
881
|
{
|
|
773
882
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -777,8 +886,8 @@ var PolygonIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0, import_j
|
|
|
777
886
|
"aria-labelledby": titleId,
|
|
778
887
|
...props,
|
|
779
888
|
children: [
|
|
780
|
-
title ? /* @__PURE__ */ (0,
|
|
781
|
-
/* @__PURE__ */ (0,
|
|
889
|
+
title ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("title", { id: titleId, children: title }) : null,
|
|
890
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
782
891
|
"path",
|
|
783
892
|
{
|
|
784
893
|
fill: "currentColor",
|
|
@@ -790,34 +899,34 @@ var PolygonIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0, import_j
|
|
|
790
899
|
);
|
|
791
900
|
|
|
792
901
|
// src/icons/LineIcon.tsx
|
|
793
|
-
var
|
|
902
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
794
903
|
function LineIcon({ title, titleId, ...props }) {
|
|
795
|
-
return /* @__PURE__ */ (0,
|
|
796
|
-
title ? /* @__PURE__ */ (0,
|
|
797
|
-
/* @__PURE__ */ (0,
|
|
798
|
-
/* @__PURE__ */ (0,
|
|
799
|
-
/* @__PURE__ */ (0,
|
|
800
|
-
/* @__PURE__ */ (0,
|
|
904
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", "aria-labelledby": titleId, ...props, children: [
|
|
905
|
+
title ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("title", { id: titleId, children: title }) : null,
|
|
906
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("g", { fill: "none", fillRule: "evenodd", children: [
|
|
907
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("circle", { cx: 4.5, cy: 4.5, r: 2.5, fill: "currentColor" }),
|
|
908
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("circle", { cx: 15.5, cy: 15.5, r: 2.5, fill: "currentColor" }),
|
|
909
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("path", { stroke: "currentColor", strokeLinecap: "square", strokeWidth: 2, d: "m13.5 13.5-9-9" })
|
|
801
910
|
] })
|
|
802
911
|
] });
|
|
803
912
|
}
|
|
804
913
|
|
|
805
914
|
// src/icons/LineBoxIcon.tsx
|
|
806
|
-
var
|
|
915
|
+
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
807
916
|
function LineBoxIcon({ title, titleId, ...props }) {
|
|
808
|
-
return /* @__PURE__ */ (0,
|
|
809
|
-
title ? /* @__PURE__ */ (0,
|
|
810
|
-
/* @__PURE__ */ (0,
|
|
811
|
-
/* @__PURE__ */ (0,
|
|
812
|
-
/* @__PURE__ */ (0,
|
|
813
|
-
/* @__PURE__ */ (0,
|
|
917
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", "aria-labelledby": titleId, ...props, children: [
|
|
918
|
+
title ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("title", { id: titleId, children: title }) : null,
|
|
919
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("g", { fill: "none", fillRule: "evenodd", children: [
|
|
920
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("path", { d: "M0 0h20v20H0z" }),
|
|
921
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("path", { stroke: "currentColor", strokeLinecap: "square", strokeWidth: 2, d: "m8.5 11.5 6-6M16 4v3m0-3h-3m0 14L2 7" }),
|
|
922
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("path", { stroke: "currentColor", strokeOpacity: 0.407, strokeWidth: 2, d: "m2 7 5-5 11 11-5 5z" })
|
|
814
923
|
] })
|
|
815
924
|
] });
|
|
816
925
|
}
|
|
817
926
|
|
|
818
927
|
// src/icons/ShapesIcon.tsx
|
|
819
|
-
var
|
|
820
|
-
var ShapesIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0,
|
|
928
|
+
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
929
|
+
var ShapesIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
|
|
821
930
|
"svg",
|
|
822
931
|
{
|
|
823
932
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -827,8 +936,8 @@ var ShapesIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0, import_js
|
|
|
827
936
|
"aria-labelledby": titleId,
|
|
828
937
|
...props,
|
|
829
938
|
children: [
|
|
830
|
-
title ? /* @__PURE__ */ (0,
|
|
831
|
-
/* @__PURE__ */ (0,
|
|
939
|
+
title ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("title", { id: titleId, children: title }) : null,
|
|
940
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
832
941
|
"path",
|
|
833
942
|
{
|
|
834
943
|
fill: "currentColor",
|
|
@@ -840,8 +949,8 @@ var ShapesIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0, import_js
|
|
|
840
949
|
);
|
|
841
950
|
|
|
842
951
|
// src/icons/SquareIcon.tsx
|
|
843
|
-
var
|
|
844
|
-
var SquareIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0,
|
|
952
|
+
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
953
|
+
var SquareIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
|
|
845
954
|
"svg",
|
|
846
955
|
{
|
|
847
956
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -851,8 +960,8 @@ var SquareIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0, import_js
|
|
|
851
960
|
"aria-labelledby": titleId,
|
|
852
961
|
...props,
|
|
853
962
|
children: [
|
|
854
|
-
title ? /* @__PURE__ */ (0,
|
|
855
|
-
/* @__PURE__ */ (0,
|
|
963
|
+
title ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("title", { id: titleId, children: title }) : null,
|
|
964
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
856
965
|
"path",
|
|
857
966
|
{
|
|
858
967
|
fill: "currentColor",
|
|
@@ -864,8 +973,8 @@ var SquareIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0, import_js
|
|
|
864
973
|
);
|
|
865
974
|
|
|
866
975
|
// src/icons/TriangleIcon.tsx
|
|
867
|
-
var
|
|
868
|
-
var TriangleIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0,
|
|
976
|
+
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
977
|
+
var TriangleIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
|
|
869
978
|
"svg",
|
|
870
979
|
{
|
|
871
980
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -875,15 +984,15 @@ var TriangleIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0, import_
|
|
|
875
984
|
"aria-labelledby": titleId,
|
|
876
985
|
...props,
|
|
877
986
|
children: [
|
|
878
|
-
title ? /* @__PURE__ */ (0,
|
|
879
|
-
/* @__PURE__ */ (0,
|
|
987
|
+
title ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("title", { id: titleId, children: title }) : null,
|
|
988
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)("path", { d: "m80-160 400-640 400 640H80Zm144-80h512L480-650 224-240Zm256-205Z", fill: "currentColor" })
|
|
880
989
|
]
|
|
881
990
|
}
|
|
882
991
|
);
|
|
883
992
|
|
|
884
993
|
// src/icons/HexagonIcon.tsx
|
|
885
|
-
var
|
|
886
|
-
var HexagonIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0,
|
|
994
|
+
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
995
|
+
var HexagonIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
|
|
887
996
|
"svg",
|
|
888
997
|
{
|
|
889
998
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -893,8 +1002,8 @@ var HexagonIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0, import_j
|
|
|
893
1002
|
"aria-labelledby": titleId,
|
|
894
1003
|
...props,
|
|
895
1004
|
children: [
|
|
896
|
-
title ? /* @__PURE__ */ (0,
|
|
897
|
-
/* @__PURE__ */ (0,
|
|
1005
|
+
title ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("title", { id: titleId, children: title }) : null,
|
|
1006
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
898
1007
|
"path",
|
|
899
1008
|
{
|
|
900
1009
|
fill: "currentColor",
|
|
@@ -906,12 +1015,12 @@ var HexagonIcon = ({ title, titleId, ...props }) => /* @__PURE__ */ (0, import_j
|
|
|
906
1015
|
);
|
|
907
1016
|
|
|
908
1017
|
// src/icons/DeleteForeverIcon.tsx
|
|
909
|
-
var
|
|
1018
|
+
var import_jsx_runtime30 = require("react/jsx-runtime");
|
|
910
1019
|
function DeleteForeverIcon(props) {
|
|
911
|
-
return /* @__PURE__ */ (0,
|
|
912
|
-
/* @__PURE__ */ (0,
|
|
913
|
-
/* @__PURE__ */ (0,
|
|
914
|
-
/* @__PURE__ */ (0,
|
|
1020
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("svg", { height: "1em", width: "1em", viewBox: "0 0 24 24", ...props, children: [
|
|
1021
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("path", { d: "M0 0h24v24H0z", fill: "none" }),
|
|
1022
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("path", { d: "M0 0h24v24H0V0z", fill: "none" }),
|
|
1023
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
915
1024
|
"path",
|
|
916
1025
|
{
|
|
917
1026
|
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",
|
|
@@ -923,18 +1032,18 @@ function DeleteForeverIcon(props) {
|
|
|
923
1032
|
|
|
924
1033
|
// src/SvgControlBar.tsx
|
|
925
1034
|
var import_react5 = require("react");
|
|
926
|
-
var
|
|
1035
|
+
var import_jsx_runtime31 = require("react/jsx-runtime");
|
|
927
1036
|
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';
|
|
928
1037
|
var icons = {
|
|
929
|
-
DrawIcon: /* @__PURE__ */ (0,
|
|
930
|
-
PolygonIcon: /* @__PURE__ */ (0,
|
|
931
|
-
LineIcon: /* @__PURE__ */ (0,
|
|
932
|
-
LineBoxIcon: /* @__PURE__ */ (0,
|
|
933
|
-
ShapesIcon: /* @__PURE__ */ (0,
|
|
934
|
-
SquareIcon: /* @__PURE__ */ (0,
|
|
935
|
-
TriangleIcon: /* @__PURE__ */ (0,
|
|
936
|
-
HexagonIcon: /* @__PURE__ */ (0,
|
|
937
|
-
DeleteForeverIcon: /* @__PURE__ */ (0,
|
|
1038
|
+
DrawIcon: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(DrawIcon, {}),
|
|
1039
|
+
PolygonIcon: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(PolygonIcon, {}),
|
|
1040
|
+
LineIcon: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(LineIcon, {}),
|
|
1041
|
+
LineBoxIcon: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(LineBoxIcon, {}),
|
|
1042
|
+
ShapesIcon: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(ShapesIcon, {}),
|
|
1043
|
+
SquareIcon: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(SquareIcon, {}),
|
|
1044
|
+
TriangleIcon: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(TriangleIcon, {}),
|
|
1045
|
+
HexagonIcon: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(HexagonIcon, {}),
|
|
1046
|
+
DeleteForeverIcon: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(DeleteForeverIcon, {})
|
|
938
1047
|
};
|
|
939
1048
|
function SvgControlBar({
|
|
940
1049
|
helper,
|
|
@@ -944,7 +1053,7 @@ function SvgControlBar({
|
|
|
944
1053
|
(0, import_react5.useEffect)(() => {
|
|
945
1054
|
helper.stamps.square();
|
|
946
1055
|
}, []);
|
|
947
|
-
return /* @__PURE__ */ (0,
|
|
1056
|
+
return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
948
1057
|
import_react_iiif_vault4.RenderSvgEditorControls,
|
|
949
1058
|
{
|
|
950
1059
|
icons,
|
|
@@ -960,17 +1069,17 @@ function SvgControlBar({
|
|
|
960
1069
|
|
|
961
1070
|
// src/ConfirmSelectionButton.tsx
|
|
962
1071
|
var import_react_aria_components5 = require("react-aria-components");
|
|
963
|
-
var
|
|
1072
|
+
var import_jsx_runtime32 = require("react/jsx-runtime");
|
|
964
1073
|
function ConfirmSelectionButton({ onPress, children }) {
|
|
965
|
-
return /* @__PURE__ */ (0,
|
|
1074
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_react_aria_components5.Button, { className: "bg-me-primary-500 px-3 py-1 hover:bg-me-primary-600 text-white rounded", onPress, children });
|
|
966
1075
|
}
|
|
967
1076
|
|
|
968
1077
|
// src/ManifestOverviewEmptyState.tsx
|
|
969
1078
|
var import_react_aria_components6 = require("react-aria-components");
|
|
970
|
-
var
|
|
1079
|
+
var import_jsx_runtime33 = require("react/jsx-runtime");
|
|
971
1080
|
function ManifestOverviewEmptyState({ onCreate, canCreate }) {
|
|
972
|
-
return /* @__PURE__ */ (0,
|
|
973
|
-
/* @__PURE__ */ (0,
|
|
1081
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: "flex items-center flex-col gap-5 py-16", children: [
|
|
1082
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
974
1083
|
Card3D,
|
|
975
1084
|
{
|
|
976
1085
|
shouldTranslate: true,
|
|
@@ -978,9 +1087,9 @@ function ManifestOverviewEmptyState({ onCreate, canCreate }) {
|
|
|
978
1087
|
className: "border-2 border-dotted bg-black/5 aspect-[3/4] rounded w-32 border-black"
|
|
979
1088
|
}
|
|
980
1089
|
),
|
|
981
|
-
/* @__PURE__ */ (0,
|
|
982
|
-
/* @__PURE__ */ (0,
|
|
983
|
-
canCreate ? /* @__PURE__ */ (0,
|
|
1090
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "font-bold text-lg", children: "Let's get started!" }),
|
|
1091
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "max-w-xl px-5 my-4", children: "Add a title and top level information for this manifest using the editing panel on the right, and then add some canvases and content." }),
|
|
1092
|
+
canCreate ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
984
1093
|
import_react_aria_components6.Button,
|
|
985
1094
|
{
|
|
986
1095
|
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",
|
|
@@ -994,13 +1103,24 @@ function ManifestOverviewEmptyState({ onCreate, canCreate }) {
|
|
|
994
1103
|
// src/SidebarTabs.tsx
|
|
995
1104
|
var import_react6 = require("react");
|
|
996
1105
|
var import_react_aria_components7 = require("react-aria-components");
|
|
997
|
-
var
|
|
998
|
-
|
|
1106
|
+
var import_collections = require("@react-aria/collections");
|
|
1107
|
+
var import_react_dom = require("react-dom");
|
|
1108
|
+
var import_jsx_runtime34 = require("react/jsx-runtime");
|
|
1109
|
+
function SidebarTabs({
|
|
1110
|
+
menu,
|
|
1111
|
+
menuId,
|
|
1112
|
+
selectedKey,
|
|
1113
|
+
onSelectionChange
|
|
1114
|
+
}) {
|
|
999
1115
|
const ref = (0, import_react6.useRef)(null);
|
|
1000
1116
|
const [hidden, setHidden] = (0, import_react6.useState)(0);
|
|
1117
|
+
const [hiddenMenu, setHiddenMenu] = (0, import_react6.useState)(null);
|
|
1001
1118
|
const widths = (0, import_react6.useRef)([]);
|
|
1002
1119
|
const itemsRef = (0, import_react6.useRef)([]);
|
|
1003
|
-
const selectedIndex = (0, import_react6.useMemo)(
|
|
1120
|
+
const selectedIndex = (0, import_react6.useMemo)(
|
|
1121
|
+
() => menu.findIndex((item) => item.id === selectedKey),
|
|
1122
|
+
[menu, selectedKey]
|
|
1123
|
+
);
|
|
1004
1124
|
(0, import_react6.useLayoutEffect)(() => {
|
|
1005
1125
|
const cb = () => {
|
|
1006
1126
|
if (widths.current.length === 0) {
|
|
@@ -1033,79 +1153,117 @@ function SidebarTabs({ menu, menuId, selectedKey, onSelectionChange }) {
|
|
|
1033
1153
|
clearInterval(interval);
|
|
1034
1154
|
};
|
|
1035
1155
|
}, []);
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
import_react_aria_components7.
|
|
1048
|
-
{
|
|
1049
|
-
ref: (el) => itemsRef.current[idx] = el,
|
|
1050
|
-
id: item.id,
|
|
1051
|
-
className: (state) => cn(
|
|
1052
|
-
//
|
|
1053
|
-
"border-b-2 px-2 py-1 text-sm text-gray-400 select-none hover:text-black focus:ring-0 focus:outline-none",
|
|
1054
|
-
state.isSelected && "border-me-primary-500 text-black",
|
|
1055
|
-
state.isFocusVisible && "ring-0 bg-me-gray-100",
|
|
1056
|
-
isHidden && "hidden"
|
|
1057
|
-
),
|
|
1058
|
-
children: item.label
|
|
1059
|
-
},
|
|
1060
|
-
item.id
|
|
1061
|
-
);
|
|
1062
|
-
}) }),
|
|
1063
|
-
hidden > 0 && /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_react_aria_components7.MenuTrigger, { children: [
|
|
1064
|
-
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
1065
|
-
import_react_aria_components7.Button,
|
|
1156
|
+
const menuHidden = menu.filter((item, idx) => hidden >= menu.length - idx);
|
|
1157
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_jsx_runtime34.Fragment, { children: [
|
|
1158
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
|
|
1159
|
+
import_react_aria_components7.Tabs,
|
|
1160
|
+
{
|
|
1161
|
+
className: "w-full flex-1 overflow-hidden flex flex-col",
|
|
1162
|
+
selectedKey,
|
|
1163
|
+
onSelectionChange,
|
|
1164
|
+
children: [
|
|
1165
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "flex items-center w-full tab-shadow", children: [
|
|
1166
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
1167
|
+
import_react_aria_components7.TabList,
|
|
1066
1168
|
{
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1169
|
+
ref,
|
|
1170
|
+
className: "flex-1 overflow-hidden w-full flex text-sm whitespace-nowrap",
|
|
1171
|
+
children: menu.map((item, idx) => {
|
|
1172
|
+
const isHidden = hidden >= menu.length - idx;
|
|
1173
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
1174
|
+
import_react_aria_components7.Tab,
|
|
1175
|
+
{
|
|
1176
|
+
ref: (el) => itemsRef.current[idx] = el,
|
|
1177
|
+
id: item.id,
|
|
1178
|
+
className: (state) => cn(
|
|
1179
|
+
//
|
|
1180
|
+
"border-b-2 px-2 py-1 text-sm text-gray-400 select-none hover:text-black focus:ring-0 focus:outline-none",
|
|
1181
|
+
state.isSelected && "border-me-primary-500 text-black",
|
|
1182
|
+
state.isFocusVisible && "ring-0 bg-me-gray-100",
|
|
1183
|
+
isHidden && "hidden"
|
|
1184
|
+
),
|
|
1185
|
+
children: item.label
|
|
1186
|
+
},
|
|
1187
|
+
item.id
|
|
1188
|
+
);
|
|
1189
|
+
})
|
|
1072
1190
|
}
|
|
1073
1191
|
),
|
|
1074
|
-
/* @__PURE__ */ (0,
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1192
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { ref: setHiddenMenu, id: "hidden-menu" })
|
|
1193
|
+
] }),
|
|
1194
|
+
menu.map((item) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
1195
|
+
import_react_aria_components7.TabPanel,
|
|
1196
|
+
{
|
|
1197
|
+
id: item.id,
|
|
1198
|
+
className: "flex-1 overflow-y-auto h-full",
|
|
1199
|
+
children: item.renderComponent
|
|
1200
|
+
},
|
|
1201
|
+
item.id
|
|
1202
|
+
))
|
|
1203
|
+
]
|
|
1204
|
+
},
|
|
1205
|
+
menuId
|
|
1206
|
+
),
|
|
1207
|
+
hiddenMenu && hidden > 0 ? (0, import_react_dom.createPortal)(
|
|
1208
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
1209
|
+
MoreMenu,
|
|
1210
|
+
{
|
|
1211
|
+
hidden,
|
|
1212
|
+
menuHidden,
|
|
1213
|
+
selectedIndex,
|
|
1214
|
+
selectedKey,
|
|
1215
|
+
onSelectionChange
|
|
1216
|
+
}
|
|
1217
|
+
),
|
|
1218
|
+
hiddenMenu
|
|
1219
|
+
) : null
|
|
1220
|
+
] });
|
|
1097
1221
|
}
|
|
1222
|
+
var MoreMenu = (0, import_collections.createHideableComponent)(({ selectedIndex, hidden, menuHidden, selectedKey, onSelectionChange }) => {
|
|
1223
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_react_aria_components7.MenuTrigger, { children: [
|
|
1224
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
1225
|
+
import_react_aria_components7.Button,
|
|
1226
|
+
{
|
|
1227
|
+
className: cn(
|
|
1228
|
+
"border-none rounded bg-gray-100 px-1.5 py-1 mr-2 mb-1 text-me-primary-500 semibold uppercase text-[10px]",
|
|
1229
|
+
selectedIndex > hidden && "bg-me-primary-500 text-white rounded"
|
|
1230
|
+
),
|
|
1231
|
+
children: "MORE"
|
|
1232
|
+
}
|
|
1233
|
+
),
|
|
1234
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_react_aria_components7.Popover, { children: menuHidden.length ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
1235
|
+
import_react_aria_components7.Menu,
|
|
1236
|
+
{
|
|
1237
|
+
className: "bg-white rounded shadow-lg flex flex-col gap-0.5 p-0.5 min-w-28",
|
|
1238
|
+
children: menuHidden.map((item) => {
|
|
1239
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
1240
|
+
import_react_aria_components7.MenuItem,
|
|
1241
|
+
{
|
|
1242
|
+
className: (state) => cn(
|
|
1243
|
+
"hover:bg-me-gray-100 p-1 rounded-sm text-sm",
|
|
1244
|
+
selectedKey === item.id && "ring ring-me-primary-500"
|
|
1245
|
+
),
|
|
1246
|
+
onAction: () => onSelectionChange?.(item.id),
|
|
1247
|
+
children: item.label
|
|
1248
|
+
},
|
|
1249
|
+
item.id
|
|
1250
|
+
);
|
|
1251
|
+
})
|
|
1252
|
+
}
|
|
1253
|
+
) : null })
|
|
1254
|
+
] });
|
|
1255
|
+
});
|
|
1098
1256
|
|
|
1099
1257
|
// src/MetadataContainer.tsx
|
|
1100
1258
|
var import_react_iiif_vault5 = require("react-iiif-vault");
|
|
1101
|
-
var
|
|
1259
|
+
var import_jsx_runtime35 = require("react/jsx-runtime");
|
|
1102
1260
|
function MetadataContainer({
|
|
1103
1261
|
className: className2,
|
|
1104
1262
|
label,
|
|
1105
1263
|
children,
|
|
1106
1264
|
...props
|
|
1107
1265
|
}) {
|
|
1108
|
-
return /* @__PURE__ */ (0,
|
|
1266
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
|
|
1109
1267
|
"div",
|
|
1110
1268
|
{
|
|
1111
1269
|
className: cn(
|
|
@@ -1114,7 +1272,7 @@ function MetadataContainer({
|
|
|
1114
1272
|
),
|
|
1115
1273
|
...props,
|
|
1116
1274
|
children: [
|
|
1117
|
-
/* @__PURE__ */ (0,
|
|
1275
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_react_iiif_vault5.LocaleString, { className: "text-lg font-bold text-[#333] mb-2", as: "h3", children: label }),
|
|
1118
1276
|
children
|
|
1119
1277
|
]
|
|
1120
1278
|
}
|
|
@@ -1122,9 +1280,9 @@ function MetadataContainer({
|
|
|
1122
1280
|
}
|
|
1123
1281
|
|
|
1124
1282
|
// src/EmptyState.tsx
|
|
1125
|
-
var
|
|
1283
|
+
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
1126
1284
|
function EmptyState(props) {
|
|
1127
|
-
return /* @__PURE__ */ (0,
|
|
1285
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
1128
1286
|
"div",
|
|
1129
1287
|
{
|
|
1130
1288
|
className: cn(
|
|
@@ -1138,9 +1296,9 @@ function EmptyState(props) {
|
|
|
1138
1296
|
}
|
|
1139
1297
|
|
|
1140
1298
|
// src/ManifestEditorLogo.tsx
|
|
1141
|
-
var
|
|
1299
|
+
var import_jsx_runtime37 = require("react/jsx-runtime");
|
|
1142
1300
|
function ManifestEditorLogo(props) {
|
|
1143
|
-
return /* @__PURE__ */ (0,
|
|
1301
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
1144
1302
|
"svg",
|
|
1145
1303
|
{
|
|
1146
1304
|
width: "1em",
|
|
@@ -1149,17 +1307,17 @@ function ManifestEditorLogo(props) {
|
|
|
1149
1307
|
xmlns: "http://www.w3.org/2000/svg",
|
|
1150
1308
|
className: "me-logo h-[23px] w-[176px]",
|
|
1151
1309
|
...props,
|
|
1152
|
-
children: /* @__PURE__ */ (0,
|
|
1153
|
-
/* @__PURE__ */ (0,
|
|
1310
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("g", { fill: "none", children: [
|
|
1311
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
1154
1312
|
"path",
|
|
1155
1313
|
{
|
|
1156
1314
|
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",
|
|
1157
1315
|
fill: "#000"
|
|
1158
1316
|
}
|
|
1159
1317
|
),
|
|
1160
|
-
/* @__PURE__ */ (0,
|
|
1161
|
-
/* @__PURE__ */ (0,
|
|
1162
|
-
/* @__PURE__ */ (0,
|
|
1318
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("path", { fill: "#E94581", className: "me-logo-1", d: "M0 13.343 13.343 0l13.343 13.343-13.343 13.343z" }),
|
|
1319
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("path", { fill: "#E94581", className: "me-logo-2", d: "M12.137 13.346 25.48.003l13.343 13.343L25.48 26.69z" }),
|
|
1320
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("path", { fill: "#C63E75", className: "me-logo-3", d: "m12.104 13.348 7.311-7.311 7.312 7.311-7.312 7.312z" })
|
|
1163
1321
|
] })
|
|
1164
1322
|
}
|
|
1165
1323
|
);
|
|
@@ -1167,9 +1325,9 @@ function ManifestEditorLogo(props) {
|
|
|
1167
1325
|
|
|
1168
1326
|
// src/Forms.tsx
|
|
1169
1327
|
var import_react_aria_components8 = require("react-aria-components");
|
|
1170
|
-
var
|
|
1328
|
+
var import_jsx_runtime38 = require("react/jsx-runtime");
|
|
1171
1329
|
function MeLabel({ className: className2, ...props }) {
|
|
1172
|
-
return /* @__PURE__ */ (0,
|
|
1330
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
1173
1331
|
import_react_aria_components8.Label,
|
|
1174
1332
|
{
|
|
1175
1333
|
className: cn(
|
|
@@ -1182,7 +1340,7 @@ function MeLabel({ className: className2, ...props }) {
|
|
|
1182
1340
|
);
|
|
1183
1341
|
}
|
|
1184
1342
|
function MeRadioGroup({ className: className2, ...props }) {
|
|
1185
|
-
return /* @__PURE__ */ (0,
|
|
1343
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
1186
1344
|
import_react_aria_components8.RadioGroup,
|
|
1187
1345
|
{
|
|
1188
1346
|
className: cn(
|
|
@@ -1195,7 +1353,7 @@ function MeRadioGroup({ className: className2, ...props }) {
|
|
|
1195
1353
|
);
|
|
1196
1354
|
}
|
|
1197
1355
|
function MeRadio({ className: className2, ...props }) {
|
|
1198
|
-
return /* @__PURE__ */ (0,
|
|
1356
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
1199
1357
|
import_react_aria_components8.Radio,
|
|
1200
1358
|
{
|
|
1201
1359
|
className: (state) => cn(
|
|
@@ -1208,7 +1366,7 @@ function MeRadio({ className: className2, ...props }) {
|
|
|
1208
1366
|
);
|
|
1209
1367
|
}
|
|
1210
1368
|
function MeForm({ className: className2, ...props }) {
|
|
1211
|
-
return /* @__PURE__ */ (0,
|
|
1369
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
1212
1370
|
import_react_aria_components8.Form,
|
|
1213
1371
|
{
|
|
1214
1372
|
className: cn(
|
|
@@ -1221,7 +1379,7 @@ function MeForm({ className: className2, ...props }) {
|
|
|
1221
1379
|
);
|
|
1222
1380
|
}
|
|
1223
1381
|
function MeInput({ className: className2, ...props }) {
|
|
1224
|
-
return /* @__PURE__ */ (0,
|
|
1382
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
1225
1383
|
import_react_aria_components8.Input,
|
|
1226
1384
|
{
|
|
1227
1385
|
className: cn(
|
|
@@ -1239,7 +1397,7 @@ function MeInputContainer({
|
|
|
1239
1397
|
className: className2,
|
|
1240
1398
|
...props
|
|
1241
1399
|
}) {
|
|
1242
|
-
return /* @__PURE__ */ (0,
|
|
1400
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
1243
1401
|
"div",
|
|
1244
1402
|
{
|
|
1245
1403
|
className: cn(
|
|
@@ -1261,12 +1419,172 @@ var Form = {
|
|
|
1261
1419
|
Radio: MeRadio
|
|
1262
1420
|
};
|
|
1263
1421
|
|
|
1422
|
+
// src/HTMLEditor.tsx
|
|
1423
|
+
var import_react8 = require("react");
|
|
1424
|
+
var import_showdown = require("showdown");
|
|
1425
|
+
var import_tiny_use_debounce = require("tiny-use-debounce");
|
|
1426
|
+
var import_turndown = __toESM(require("turndown"), 1);
|
|
1427
|
+
|
|
1428
|
+
// src/MDXEditor.tsx
|
|
1429
|
+
var import_style = require("@mdxeditor/editor/style.css");
|
|
1430
|
+
var import_editor = require("@mdxeditor/editor");
|
|
1431
|
+
var import_react7 = require("react");
|
|
1432
|
+
var import_jsx_runtime39 = require("react/jsx-runtime");
|
|
1433
|
+
function MDXEditor({
|
|
1434
|
+
editorRef,
|
|
1435
|
+
...props
|
|
1436
|
+
}) {
|
|
1437
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
1438
|
+
import_editor.MDXEditor,
|
|
1439
|
+
{
|
|
1440
|
+
plugins: (0, import_react7.useMemo)(
|
|
1441
|
+
() => [
|
|
1442
|
+
// Example Plugin Usage
|
|
1443
|
+
(0, import_editor.headingsPlugin)(),
|
|
1444
|
+
(0, import_editor.listsPlugin)(),
|
|
1445
|
+
(0, import_editor.linkPlugin)(),
|
|
1446
|
+
(0, import_editor.quotePlugin)(),
|
|
1447
|
+
(0, import_editor.thematicBreakPlugin)(),
|
|
1448
|
+
(0, import_editor.headingsPlugin)(),
|
|
1449
|
+
// linkDialogPlugin(),
|
|
1450
|
+
(0, import_editor.markdownShortcutPlugin)(),
|
|
1451
|
+
(0, import_editor.imagePlugin)(),
|
|
1452
|
+
(0, import_editor.toolbarPlugin)({
|
|
1453
|
+
toolbarClassName: "mdx-toolbar",
|
|
1454
|
+
toolbarContents: () => /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_jsx_runtime39.Fragment, { children: [
|
|
1455
|
+
" ",
|
|
1456
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_editor.UndoRedo, {}),
|
|
1457
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_editor.BlockTypeSelect, {}),
|
|
1458
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_editor.ListsToggle, {}),
|
|
1459
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_editor.InsertImage, {})
|
|
1460
|
+
] })
|
|
1461
|
+
})
|
|
1462
|
+
],
|
|
1463
|
+
[]
|
|
1464
|
+
),
|
|
1465
|
+
...props,
|
|
1466
|
+
ref: editorRef
|
|
1467
|
+
}
|
|
1468
|
+
);
|
|
1469
|
+
}
|
|
1470
|
+
|
|
1471
|
+
// src/HTMLEditor.tsx
|
|
1472
|
+
var import_jsx_runtime40 = require("react/jsx-runtime");
|
|
1473
|
+
var converter = new import_showdown.Converter();
|
|
1474
|
+
converter.setFlavor("github");
|
|
1475
|
+
var turndownService = new import_turndown.default();
|
|
1476
|
+
function HTMLEditor({
|
|
1477
|
+
value,
|
|
1478
|
+
onChange,
|
|
1479
|
+
disabled
|
|
1480
|
+
}) {
|
|
1481
|
+
const editorRef = (0, import_react8.useRef)(null);
|
|
1482
|
+
const [_value, _setValue] = (0, import_react8.useState)(void 0);
|
|
1483
|
+
const internalOnChange = (0, import_react8.useCallback)(() => {
|
|
1484
|
+
if (editorRef.current) {
|
|
1485
|
+
onChange(converter.makeHtml(editorRef.current.getMarkdown()));
|
|
1486
|
+
}
|
|
1487
|
+
}, []);
|
|
1488
|
+
const debounceSave = (0, import_tiny_use_debounce.useDebounce)(internalOnChange, 400);
|
|
1489
|
+
const memoState = (0, import_react8.useMemo)(() => {
|
|
1490
|
+
return turndownService.turndown(value);
|
|
1491
|
+
}, []);
|
|
1492
|
+
(0, import_react8.useEffect)(() => {
|
|
1493
|
+
const ref = editorRef.current;
|
|
1494
|
+
return () => {
|
|
1495
|
+
if (ref) {
|
|
1496
|
+
onChange(converter.makeHtml(ref.getMarkdown()));
|
|
1497
|
+
}
|
|
1498
|
+
};
|
|
1499
|
+
}, []);
|
|
1500
|
+
return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
1501
|
+
MDXEditor,
|
|
1502
|
+
{
|
|
1503
|
+
editorRef,
|
|
1504
|
+
onBlur: internalOnChange,
|
|
1505
|
+
readOnly: disabled,
|
|
1506
|
+
className: "bg-white prose-sm text-sm border rounded-lg p-0.5 focus-within:outline-none focus-within:border-me-primary-500",
|
|
1507
|
+
markdown: memoState,
|
|
1508
|
+
suppressHtmlProcessing: true,
|
|
1509
|
+
onError: (err) => {
|
|
1510
|
+
console.log("err", err);
|
|
1511
|
+
},
|
|
1512
|
+
onChange: (value2) => {
|
|
1513
|
+
_setValue(value2);
|
|
1514
|
+
debounceSave();
|
|
1515
|
+
}
|
|
1516
|
+
}
|
|
1517
|
+
);
|
|
1518
|
+
}
|
|
1519
|
+
|
|
1520
|
+
// src/IconButton.tsx
|
|
1521
|
+
var import_tailwind_merge6 = require("tailwind-merge");
|
|
1522
|
+
var import_jsx_runtime41 = require("react/jsx-runtime");
|
|
1523
|
+
function IconButton({
|
|
1524
|
+
children,
|
|
1525
|
+
active,
|
|
1526
|
+
label,
|
|
1527
|
+
disabled,
|
|
1528
|
+
onPress
|
|
1529
|
+
}) {
|
|
1530
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Tooltip, { placement: "top", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
|
|
1531
|
+
TooltipTrigger,
|
|
1532
|
+
{
|
|
1533
|
+
onClick: onPress,
|
|
1534
|
+
className: (0, import_tailwind_merge6.twMerge)(
|
|
1535
|
+
"rounded flex items-center bg-white justify-center p-2 hover:bg-gray-100 text-2xl",
|
|
1536
|
+
active ? "bg-me-primary-500 bg-opacity-40 hover:bg-opacity-70 hover:bg-me-primary-500" : "",
|
|
1537
|
+
disabled ? "opacity-50 pointer-events-none" : ""
|
|
1538
|
+
),
|
|
1539
|
+
children: [
|
|
1540
|
+
children,
|
|
1541
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(DefaultTooltipContent, { className: "translate-x-3", children: label })
|
|
1542
|
+
]
|
|
1543
|
+
}
|
|
1544
|
+
) });
|
|
1545
|
+
}
|
|
1546
|
+
|
|
1547
|
+
// src/ItemWithHandle.tsx
|
|
1548
|
+
var import_jsx_runtime42 = require("react/jsx-runtime");
|
|
1549
|
+
function ItemWithHandle({
|
|
1550
|
+
children,
|
|
1551
|
+
handle,
|
|
1552
|
+
actions,
|
|
1553
|
+
grid
|
|
1554
|
+
}) {
|
|
1555
|
+
const gridStyleClassName = grid ? (
|
|
1556
|
+
// Tailwind
|
|
1557
|
+
"absolute flex p-1 gap-1 bg-white z-1 right-1 top-1 rounded"
|
|
1558
|
+
) : "flex-shrink-0 flex items-center gap-1 px-1";
|
|
1559
|
+
return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", { className: grid ? "relative flex flex-col" : "flex items-center", children: [
|
|
1560
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", { className: "flex-1 min-w-0", style: { flex: 1, minWidth: 0 }, children }),
|
|
1561
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", { className: gridStyleClassName, children: [
|
|
1562
|
+
actions,
|
|
1563
|
+
handle
|
|
1564
|
+
] })
|
|
1565
|
+
] });
|
|
1566
|
+
}
|
|
1567
|
+
|
|
1568
|
+
// src/HandleContainer.tsx
|
|
1569
|
+
var import_react9 = require("react");
|
|
1570
|
+
var import_jsx_runtime43 = require("react/jsx-runtime");
|
|
1571
|
+
var HandleContainer = (0, import_react9.forwardRef)(function HandleContainer2({ className: className2, ...props }, ref) {
|
|
1572
|
+
return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
1573
|
+
"div",
|
|
1574
|
+
{
|
|
1575
|
+
ref,
|
|
1576
|
+
className: `relative text-2xl flex p-0.5 rounded-sm aspect-square hover:bg-me-primary-100 aria-expanded:bg-me-primary-500 aria-expanded:text-white ${className2 || ""}`,
|
|
1577
|
+
...props
|
|
1578
|
+
}
|
|
1579
|
+
);
|
|
1580
|
+
});
|
|
1581
|
+
|
|
1264
1582
|
// src/icons/CreateCanvasIcon.tsx
|
|
1265
|
-
var
|
|
1583
|
+
var import_jsx_runtime44 = require("react/jsx-runtime");
|
|
1266
1584
|
function CreateCanvasIcon() {
|
|
1267
|
-
return /* @__PURE__ */ (0,
|
|
1268
|
-
/* @__PURE__ */ (0,
|
|
1269
|
-
/* @__PURE__ */ (0,
|
|
1585
|
+
return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("svg", { xmlns: "http://www.w3.org/2000/svg", height: "24", viewBox: "0 0 24 24", width: "24", children: [
|
|
1586
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)("path", { d: "M0 0h24v24H0V0z", fill: "none" }),
|
|
1587
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
1270
1588
|
"path",
|
|
1271
1589
|
{
|
|
1272
1590
|
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",
|
|
@@ -1277,8 +1595,8 @@ function CreateCanvasIcon() {
|
|
|
1277
1595
|
}
|
|
1278
1596
|
|
|
1279
1597
|
// src/icons/AddImageIcon.tsx
|
|
1280
|
-
var
|
|
1281
|
-
var AddImageIcon = (props) => /* @__PURE__ */ (0,
|
|
1598
|
+
var import_jsx_runtime45 = require("react/jsx-runtime");
|
|
1599
|
+
var AddImageIcon = (props) => /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", fill: "#5f6368", viewBox: "0 -960 960 960", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
1282
1600
|
"path",
|
|
1283
1601
|
{
|
|
1284
1602
|
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",
|
|
@@ -1287,8 +1605,8 @@ var AddImageIcon = (props) => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("svg
|
|
|
1287
1605
|
) });
|
|
1288
1606
|
|
|
1289
1607
|
// src/icons/IIIFLogo.tsx
|
|
1290
|
-
var
|
|
1291
|
-
var IIIFLogo = ({ mono = true, ...props }) => /* @__PURE__ */ (0,
|
|
1608
|
+
var import_jsx_runtime46 = require("react/jsx-runtime");
|
|
1609
|
+
var IIIFLogo = ({ mono = true, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
|
|
1292
1610
|
"svg",
|
|
1293
1611
|
{
|
|
1294
1612
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -1298,7 +1616,7 @@ var IIIFLogo = ({ mono = true, ...props }) => /* @__PURE__ */ (0, import_jsx_run
|
|
|
1298
1616
|
...props,
|
|
1299
1617
|
viewBox: "0 0 493.36 441.333",
|
|
1300
1618
|
children: [
|
|
1301
|
-
/* @__PURE__ */ (0,
|
|
1619
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
1302
1620
|
"path",
|
|
1303
1621
|
{
|
|
1304
1622
|
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",
|
|
@@ -1311,7 +1629,7 @@ var IIIFLogo = ({ mono = true, ...props }) => /* @__PURE__ */ (0, import_jsx_run
|
|
|
1311
1629
|
transform: "matrix(.13333 0 0 -.13333 0 441.333)"
|
|
1312
1630
|
}
|
|
1313
1631
|
),
|
|
1314
|
-
/* @__PURE__ */ (0,
|
|
1632
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
1315
1633
|
"path",
|
|
1316
1634
|
{
|
|
1317
1635
|
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",
|
|
@@ -1324,7 +1642,7 @@ var IIIFLogo = ({ mono = true, ...props }) => /* @__PURE__ */ (0, import_jsx_run
|
|
|
1324
1642
|
transform: "matrix(.13333 0 0 -.13333 0 441.333)"
|
|
1325
1643
|
}
|
|
1326
1644
|
),
|
|
1327
|
-
/* @__PURE__ */ (0,
|
|
1645
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
1328
1646
|
"path",
|
|
1329
1647
|
{
|
|
1330
1648
|
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",
|
|
@@ -1337,7 +1655,7 @@ var IIIFLogo = ({ mono = true, ...props }) => /* @__PURE__ */ (0, import_jsx_run
|
|
|
1337
1655
|
transform: "matrix(.13333 0 0 -.13333 0 441.333)"
|
|
1338
1656
|
}
|
|
1339
1657
|
),
|
|
1340
|
-
/* @__PURE__ */ (0,
|
|
1658
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
1341
1659
|
"path",
|
|
1342
1660
|
{
|
|
1343
1661
|
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",
|
|
@@ -1355,8 +1673,8 @@ var IIIFLogo = ({ mono = true, ...props }) => /* @__PURE__ */ (0, import_jsx_run
|
|
|
1355
1673
|
);
|
|
1356
1674
|
|
|
1357
1675
|
// src/icons/HTMLIcon.tsx
|
|
1358
|
-
var
|
|
1359
|
-
var HTMLIcon = (props) => /* @__PURE__ */ (0,
|
|
1676
|
+
var import_jsx_runtime47 = require("react/jsx-runtime");
|
|
1677
|
+
var HTMLIcon = (props) => /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", fill: "#5f6368", viewBox: "0 -960 960 960", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
1360
1678
|
"path",
|
|
1361
1679
|
{
|
|
1362
1680
|
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",
|
|
@@ -1365,8 +1683,8 @@ var HTMLIcon = (props) => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("svg", {
|
|
|
1365
1683
|
) });
|
|
1366
1684
|
|
|
1367
1685
|
// src/icons/IIIFBrowserIcon.tsx
|
|
1368
|
-
var
|
|
1369
|
-
var IIIFBrowserIcon = (props) => /* @__PURE__ */ (0,
|
|
1686
|
+
var import_jsx_runtime48 = require("react/jsx-runtime");
|
|
1687
|
+
var IIIFBrowserIcon = (props) => /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", fill: "#5f6368", viewBox: "0 -960 960 960", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
1370
1688
|
"path",
|
|
1371
1689
|
{
|
|
1372
1690
|
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",
|
|
@@ -1375,8 +1693,8 @@ var IIIFBrowserIcon = (props) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("
|
|
|
1375
1693
|
) });
|
|
1376
1694
|
|
|
1377
1695
|
// src/icons/YouTubeIcon.tsx
|
|
1378
|
-
var
|
|
1379
|
-
var YouTubeIcon = (props) => /* @__PURE__ */ (0,
|
|
1696
|
+
var import_jsx_runtime49 = require("react/jsx-runtime");
|
|
1697
|
+
var YouTubeIcon = (props) => /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", fill: "#5f6368", viewBox: "0 -960 960 960", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
1380
1698
|
"path",
|
|
1381
1699
|
{
|
|
1382
1700
|
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",
|
|
@@ -1385,8 +1703,8 @@ var YouTubeIcon = (props) => /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("svg"
|
|
|
1385
1703
|
) });
|
|
1386
1704
|
|
|
1387
1705
|
// src/icons/VideoIcon.tsx
|
|
1388
|
-
var
|
|
1389
|
-
var VideoIcon = (props) => /* @__PURE__ */ (0,
|
|
1706
|
+
var import_jsx_runtime50 = require("react/jsx-runtime");
|
|
1707
|
+
var VideoIcon = (props) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", fill: "#5f6368", viewBox: "0 -960 960 960", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
1390
1708
|
"path",
|
|
1391
1709
|
{
|
|
1392
1710
|
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",
|
|
@@ -1395,8 +1713,8 @@ var VideoIcon = (props) => /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("svg",
|
|
|
1395
1713
|
) });
|
|
1396
1714
|
|
|
1397
1715
|
// src/icons/AudioIcon.tsx
|
|
1398
|
-
var
|
|
1399
|
-
var AudioIcon = (props) => /* @__PURE__ */ (0,
|
|
1716
|
+
var import_jsx_runtime51 = require("react/jsx-runtime");
|
|
1717
|
+
var AudioIcon = (props) => /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", fill: "#5f6368", viewBox: "0 -960 960 960", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
1400
1718
|
"path",
|
|
1401
1719
|
{
|
|
1402
1720
|
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",
|
|
@@ -1405,8 +1723,8 @@ var AudioIcon = (props) => /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("svg",
|
|
|
1405
1723
|
) });
|
|
1406
1724
|
|
|
1407
1725
|
// src/icons/EmptyCanvasIcon.tsx
|
|
1408
|
-
var
|
|
1409
|
-
var EmptyCanvasIcon = (props) => /* @__PURE__ */ (0,
|
|
1726
|
+
var import_jsx_runtime52 = require("react/jsx-runtime");
|
|
1727
|
+
var EmptyCanvasIcon = (props) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", fill: "#5f6368", viewBox: "0 -960 960 960", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
1410
1728
|
"path",
|
|
1411
1729
|
{
|
|
1412
1730
|
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",
|
|
@@ -1415,14 +1733,14 @@ var EmptyCanvasIcon = (props) => /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("
|
|
|
1415
1733
|
) });
|
|
1416
1734
|
|
|
1417
1735
|
// src/icons/AddIcon.tsx
|
|
1418
|
-
var
|
|
1736
|
+
var import_jsx_runtime53 = require("react/jsx-runtime");
|
|
1419
1737
|
function AddIcon({
|
|
1420
1738
|
className: className2,
|
|
1421
1739
|
inline,
|
|
1422
1740
|
height = 16,
|
|
1423
1741
|
color = "black"
|
|
1424
1742
|
}) {
|
|
1425
|
-
return /* @__PURE__ */ (0,
|
|
1743
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
|
|
1426
1744
|
"svg",
|
|
1427
1745
|
{
|
|
1428
1746
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -1433,18 +1751,61 @@ function AddIcon({
|
|
|
1433
1751
|
style: { verticalAlign: inline ? "bottom" : void 0 },
|
|
1434
1752
|
className: className2,
|
|
1435
1753
|
children: [
|
|
1436
|
-
/* @__PURE__ */ (0,
|
|
1437
|
-
/* @__PURE__ */ (0,
|
|
1754
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)("path", { d: "M0 0h24v24H0z", fill: "none" }),
|
|
1755
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)("path", { d: "M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z", fill: "currentColor" })
|
|
1756
|
+
]
|
|
1757
|
+
}
|
|
1758
|
+
);
|
|
1759
|
+
}
|
|
1760
|
+
|
|
1761
|
+
// src/icons/MoreMenu.tsx
|
|
1762
|
+
var import_jsx_runtime54 = require("react/jsx-runtime");
|
|
1763
|
+
function MoreMenu2() {
|
|
1764
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
|
|
1765
|
+
"svg",
|
|
1766
|
+
{
|
|
1767
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
1768
|
+
height: "1em",
|
|
1769
|
+
viewBox: "0 0 24 24",
|
|
1770
|
+
width: "1em",
|
|
1771
|
+
children: [
|
|
1772
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)("path", { d: "M0 0h24v24H0z", fill: "none" }),
|
|
1773
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
1774
|
+
"path",
|
|
1775
|
+
{
|
|
1776
|
+
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",
|
|
1777
|
+
fill: "currentColor"
|
|
1778
|
+
}
|
|
1779
|
+
)
|
|
1438
1780
|
]
|
|
1439
1781
|
}
|
|
1440
1782
|
);
|
|
1441
1783
|
}
|
|
1442
1784
|
|
|
1785
|
+
// src/ErrorMessage.tsx
|
|
1786
|
+
var import_tailwind_merge7 = require("tailwind-merge");
|
|
1787
|
+
var import_jsx_runtime55 = require("react/jsx-runtime");
|
|
1788
|
+
function ErrorMessage({ children, small = false, className: className2 }) {
|
|
1789
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
1790
|
+
"div",
|
|
1791
|
+
{
|
|
1792
|
+
className: (0, import_tailwind_merge7.twMerge)(
|
|
1793
|
+
"bg-red-500 text-white",
|
|
1794
|
+
"border-1 drop-shadow border-red-700 w-full rounded-md py-2 px-4 leading-[1.9em] flex items-center",
|
|
1795
|
+
"has-[a]:text-white",
|
|
1796
|
+
small && "text-xs whitespace-nowrap py-1 px-2 leading-[1.6em] w-fit",
|
|
1797
|
+
className2
|
|
1798
|
+
),
|
|
1799
|
+
children
|
|
1800
|
+
}
|
|
1801
|
+
);
|
|
1802
|
+
}
|
|
1803
|
+
|
|
1443
1804
|
// src/hooks.ts
|
|
1444
|
-
var
|
|
1805
|
+
var import_react10 = require("react");
|
|
1445
1806
|
function useFastList(list, firstRender = 24) {
|
|
1446
|
-
const [isMounted, setIsMounted] = (0,
|
|
1447
|
-
(0,
|
|
1807
|
+
const [isMounted, setIsMounted] = (0, import_react10.useState)(false);
|
|
1808
|
+
(0, import_react10.useLayoutEffect)(() => {
|
|
1448
1809
|
if (list) {
|
|
1449
1810
|
setTimeout(() => {
|
|
1450
1811
|
setIsMounted(true);
|
|
@@ -1459,3 +1820,123 @@ function useFastList(list, firstRender = 24) {
|
|
|
1459
1820
|
}
|
|
1460
1821
|
return list.slice(0, firstRender);
|
|
1461
1822
|
}
|
|
1823
|
+
|
|
1824
|
+
// src/RenderTextualContent.tsx
|
|
1825
|
+
var import_react11 = require("react");
|
|
1826
|
+
var import_react_aria_components9 = require("react-aria-components");
|
|
1827
|
+
var import_react_iiif_vault6 = require("react-iiif-vault");
|
|
1828
|
+
var import_jsx_runtime56 = require("react/jsx-runtime");
|
|
1829
|
+
function RenderTextualContent(props) {
|
|
1830
|
+
const languages = props.strategy.items.map(
|
|
1831
|
+
(item) => Object.keys(item.text)[0]
|
|
1832
|
+
);
|
|
1833
|
+
const [langauge, setLanguage] = (0, import_react11.useState)(languages[0]);
|
|
1834
|
+
const selected = props.strategy.items.find(
|
|
1835
|
+
(item) => Object.keys(item.text)[0] === langauge
|
|
1836
|
+
);
|
|
1837
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "overflow-y-auto bg-white shadow", children: [
|
|
1838
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "flex gap-2 border-b", children: languages.map((language) => {
|
|
1839
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
1840
|
+
import_react_aria_components9.Button,
|
|
1841
|
+
{
|
|
1842
|
+
className: `py-1 px-3 ${langauge === language ? "bg-me-500 text-white" : "bg-white text-black"}`,
|
|
1843
|
+
onPress: () => setLanguage(language),
|
|
1844
|
+
children: language
|
|
1845
|
+
},
|
|
1846
|
+
language
|
|
1847
|
+
);
|
|
1848
|
+
}) }),
|
|
1849
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "p-4 prose", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
1850
|
+
import_react_iiif_vault6.LocaleString,
|
|
1851
|
+
{
|
|
1852
|
+
enableDangerouslySetInnerHTML: true,
|
|
1853
|
+
defaultText: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "text-gray-500 my-8", children: "No content available" }),
|
|
1854
|
+
children: selected?.text
|
|
1855
|
+
}
|
|
1856
|
+
) })
|
|
1857
|
+
] });
|
|
1858
|
+
}
|
|
1859
|
+
|
|
1860
|
+
// src/IIIFMediaPlayer.tsx
|
|
1861
|
+
var import_base = require("@vidstack/react/player/styles/base.css");
|
|
1862
|
+
var import_theme = require("@vidstack/react/player/styles/default/theme.css");
|
|
1863
|
+
var import_captions = require("@vidstack/react/player/styles/default/captions.css");
|
|
1864
|
+
var import_video = require("@vidstack/react/player/styles/default/layouts/video.css");
|
|
1865
|
+
var import_react12 = require("@vidstack/react");
|
|
1866
|
+
var import_default = require("@vidstack/react/player/layouts/default");
|
|
1867
|
+
var import_helpers = require("@iiif/helpers");
|
|
1868
|
+
var import_react13 = require("react");
|
|
1869
|
+
var import_jsx_runtime57 = require("react/jsx-runtime");
|
|
1870
|
+
function IIIFMediaPlayer(props) {
|
|
1871
|
+
const mediaPlayer = (0, import_react13.useRef)(null);
|
|
1872
|
+
const captions = props.captions || [];
|
|
1873
|
+
const language = props.language;
|
|
1874
|
+
const timeRef = (0, import_react13.useRef)(props.startTime || 0);
|
|
1875
|
+
return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
1876
|
+
import_react12.MediaPlayer,
|
|
1877
|
+
{
|
|
1878
|
+
onTimeUpdate: (time) => {
|
|
1879
|
+
const newT = Math.round(time.currentTime);
|
|
1880
|
+
if (timeRef.current === newT)
|
|
1881
|
+
return;
|
|
1882
|
+
timeRef.current = newT;
|
|
1883
|
+
},
|
|
1884
|
+
ref: mediaPlayer,
|
|
1885
|
+
lang: language,
|
|
1886
|
+
className: "h-full w-full min-w-[275px] flex radius-0",
|
|
1887
|
+
playsInline: true,
|
|
1888
|
+
currentTime: props.startTime,
|
|
1889
|
+
duration: props.media.duration,
|
|
1890
|
+
src: [
|
|
1891
|
+
{
|
|
1892
|
+
src: props.media.url,
|
|
1893
|
+
type: props.media.format
|
|
1894
|
+
}
|
|
1895
|
+
],
|
|
1896
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_react12.MediaProvider, { className: "w-full h-full [&>video]:w-full [&>video]:h-full [&>video]:object-contain", children: [
|
|
1897
|
+
captions.map((caption) => {
|
|
1898
|
+
return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
1899
|
+
import_react12.Track,
|
|
1900
|
+
{
|
|
1901
|
+
src: caption.id,
|
|
1902
|
+
kind: "subtitles",
|
|
1903
|
+
label: (0, import_helpers.getValue)(caption.label),
|
|
1904
|
+
default: caption.language === language,
|
|
1905
|
+
language: caption.language
|
|
1906
|
+
},
|
|
1907
|
+
caption.id
|
|
1908
|
+
);
|
|
1909
|
+
}),
|
|
1910
|
+
props.poster ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
1911
|
+
import_react12.Poster,
|
|
1912
|
+
{
|
|
1913
|
+
className: "absolute inset-0 bg-black block h-full w-full opacity-0 transition-opacity data-[visible]:opacity-100 object-contain",
|
|
1914
|
+
src: props.poster
|
|
1915
|
+
}
|
|
1916
|
+
) : null,
|
|
1917
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Gestures, {}),
|
|
1918
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
1919
|
+
import_default.DefaultVideoLayout,
|
|
1920
|
+
{
|
|
1921
|
+
className: "z-1",
|
|
1922
|
+
noGestures: true,
|
|
1923
|
+
icons: import_default.defaultLayoutIcons
|
|
1924
|
+
}
|
|
1925
|
+
)
|
|
1926
|
+
] })
|
|
1927
|
+
}
|
|
1928
|
+
);
|
|
1929
|
+
}
|
|
1930
|
+
function Gestures() {
|
|
1931
|
+
return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_jsx_runtime57.Fragment, { children: [
|
|
1932
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
1933
|
+
import_react12.Gesture,
|
|
1934
|
+
{
|
|
1935
|
+
className: "pointer-coarse:hidden absolute top-0 start-12 bottom-20 right-0 -z-1 block",
|
|
1936
|
+
event: "pointerup",
|
|
1937
|
+
action: "toggle:paused"
|
|
1938
|
+
}
|
|
1939
|
+
),
|
|
1940
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_react12.Gesture, { className: "absolute inset-0 z-0 block h-full w-full", event: "dblpointerup", action: "toggle:fullscreen" })
|
|
1941
|
+
] });
|
|
1942
|
+
}
|