@trebired/frontend 13.20.0 → 13.21.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/CHANGELOG.md +9 -0
- package/dist/media/embed-frame.d.ts +2 -1
- package/dist/media/embed-frame.d.ts.map +1 -1
- package/dist/media/embed-frame.js +72 -23
- package/dist/media/embed-frame.js.map +1 -1
- package/dist/media/map-embed.d.ts.map +1 -1
- package/dist/media/map-embed.js +1 -1
- package/dist/media/map-embed.js.map +1 -1
- package/dist/media/styles/embed.scss +44 -0
- package/dist/src/media/embed-frame.d.ts +2 -1
- package/dist/src/media/embed-frame.d.ts.map +1 -1
- package/dist/src/media/embed-frame.js +72 -23
- package/dist/src/media/embed-frame.js.map +1 -1
- package/dist/src/media/map-embed.d.ts.map +1 -1
- package/dist/src/media/map-embed.js +1 -1
- package/dist/src/media/map-embed.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 13.21.0
|
|
4
|
+
|
|
5
|
+
- `EmbedFrame` now renders the embed in an `<object type="text/html">` instead of an `<iframe>`, so a refused embed raises an `error` event and the component shows its own failure state. An `<iframe>` gives the embedding page nothing to act on: a document blocked by `frame-ancestors` or `X-Frame-Options` fires `load` exactly like a successful one, and `contentWindow.location`, `contentDocument` and `origin` throw in both cases, so the browser's own "refused to connect" page was the only thing a visitor ever saw.
|
|
6
|
+
- The failure state now covers refusal as well as timeout, and its default text says so. `labels.error` still overrides it.
|
|
7
|
+
- The status marks are Remix Icon artwork, inlined rather than resolved through the icon runtime so they render on static sites with no icon endpoint. The failure mark is `error-warning-line`.
|
|
8
|
+
- `allowFullScreen` is honoured with a hover-revealed control that fullscreens the embed's own wrapper through the frontend fullscreen system, because `<object>` carries no `allowfullscreen` attribute. `labels.fullscreen` sets its label.
|
|
9
|
+
- Passing `sandbox` keeps the old `<iframe>` element, since `<object>` cannot carry a sandbox. Failure detection is unavailable in that mode.
|
|
10
|
+
- `MapEmbed` no longer sets `referrerPolicy`, which `<object>` does not carry and which only restated the browser default.
|
|
11
|
+
|
|
3
12
|
## 13.20.0
|
|
4
13
|
|
|
5
14
|
- Smooth scrolling no longer animates the browser's scroll restoration. With `design.scrollBehavior: "smooth"`, reloading a page that was scrolled made the browser ease its way back to the saved position over a few hundred milliseconds, which looks like the page sliding or fading itself into place. The generated stylesheet now pairs `html { scroll-behavior: smooth }` with `html[data-…-scroll-settling] { scroll-behavior: auto }`, so the restore lands in one frame.
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
type EmbedFrameLabels = {
|
|
2
2
|
error?: string;
|
|
3
|
+
fullscreen?: string;
|
|
3
4
|
loading?: string;
|
|
4
5
|
open?: string;
|
|
5
6
|
};
|
|
@@ -16,6 +17,6 @@ type EmbedFrameProps = {
|
|
|
16
17
|
title: string;
|
|
17
18
|
};
|
|
18
19
|
type EmbedFrameState = "error" | "loading" | "ready";
|
|
19
|
-
export declare function EmbedFrame(
|
|
20
|
+
export declare function EmbedFrame(props: EmbedFrameProps): import("react").JSX.Element;
|
|
20
21
|
export type { EmbedFrameLabels, EmbedFrameProps, EmbedFrameState };
|
|
21
22
|
//# sourceMappingURL=embed-frame.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embed-frame.d.ts","sourceRoot":"","sources":["../../../src/media/embed-frame.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"embed-frame.d.ts","sourceRoot":"","sources":["../../../src/media/embed-frame.tsx"],"names":[],"mappings":"AAKA,KAAK,gBAAgB,GAAG;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAC3C,cAAc,CAAC,EAAE,KAAK,CAAC,2BAA2B,CAAC;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,eAAe,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;AAmJrD,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,+BAyBhD;AAED,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -1,13 +1,22 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect, useRef, useState } from "react";
|
|
3
3
|
import { frontendClassName } from "../namespace/index.js";
|
|
4
|
+
import { fullscreenSupported, toggleFullscreen } from "../fullscreen/index.js";
|
|
4
5
|
const DEFAULT_TIMEOUT_MS = 10000;
|
|
5
6
|
const DEFAULT_LABELS = {
|
|
6
|
-
error: "This content could not be loaded. It may be unreachable or
|
|
7
|
+
error: "This content could not be loaded. It may be unreachable, or it may refuse to be embedded.",
|
|
8
|
+
fullscreen: "Toggle fullscreen",
|
|
7
9
|
loading: "Loading…",
|
|
8
10
|
};
|
|
9
|
-
|
|
10
|
-
|
|
11
|
+
const REMIX_PATHS = {
|
|
12
|
+
"error-warning-line": "M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22Z"
|
|
13
|
+
+ "M12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20Z"
|
|
14
|
+
+ "M11 15H13V17H11V15ZM11 7H13V13H11V7Z",
|
|
15
|
+
"fullscreen-exit-line": "M18 7H22V9H16V3H18V7ZM8 9H2V7H6V3H8V9ZM18 17V21H16V15H22V17H18ZM8 15V21H6V17H2V15H8Z",
|
|
16
|
+
"fullscreen-line": "M8 3V5H4V9H2V3H8ZM2 21V15H4V19H8V21H2ZM22 21H16V19H20V15H22V21ZM22 9H20V5H16V3H22V9Z",
|
|
17
|
+
};
|
|
18
|
+
function RemixIcon({ className, name }) {
|
|
19
|
+
return (_jsx("svg", { viewBox: "0 0 24 24", className: className, width: "1em", height: "1em", fill: "currentColor", "aria-hidden": "true", focusable: "false", children: _jsx("path", { d: REMIX_PATHS[name] }) }));
|
|
11
20
|
}
|
|
12
21
|
function whenDocumentSettled(run) {
|
|
13
22
|
if (typeof document === "undefined")
|
|
@@ -19,42 +28,82 @@ function whenDocumentSettled(run) {
|
|
|
19
28
|
window.addEventListener("load", run, { once: true });
|
|
20
29
|
return () => window.removeEventListener("load", run);
|
|
21
30
|
}
|
|
22
|
-
|
|
31
|
+
function EmbedStatus({ label, state }) {
|
|
32
|
+
return (_jsxs("div", { className: frontendClassName("embed-frame-status"), role: "status", children: [state === "error"
|
|
33
|
+
? _jsx(RemixIcon, { name: "error-warning-line", className: frontendClassName("embed-frame-mark") })
|
|
34
|
+
: _jsx("div", { className: "loader-circle lg", "aria-hidden": "true" }), _jsx("p", { children: label })] }));
|
|
35
|
+
}
|
|
36
|
+
function FullscreenButton({ label, target }) {
|
|
37
|
+
const [active, setActive] = useState(false);
|
|
38
|
+
if (!fullscreenSupported())
|
|
39
|
+
return null;
|
|
40
|
+
return (_jsx("button", { type: "button", "aria-label": label, title: label, className: frontendClassName("embed-frame-fullscreen"), onClick: () => {
|
|
41
|
+
if (!target)
|
|
42
|
+
return;
|
|
43
|
+
toggleFullscreen(target);
|
|
44
|
+
setActive((value) => !value);
|
|
45
|
+
}, children: _jsx(RemixIcon, { name: active ? "fullscreen-exit-line" : "fullscreen-line" }) }));
|
|
46
|
+
}
|
|
47
|
+
function EmbedSurface({ props, refs }) {
|
|
48
|
+
if (typeof props.sandbox === "string") {
|
|
49
|
+
return (_jsx("iframe", { ref: refs.frameRef, allowFullScreen: props.allowFullScreen, loading: "lazy", referrerPolicy: props.referrerPolicy, sandbox: props.sandbox, title: props.title }));
|
|
50
|
+
}
|
|
51
|
+
return _jsx("object", { ref: refs.objectRef, type: "text/html", "aria-label": props.title });
|
|
52
|
+
}
|
|
53
|
+
function useEmbedLifecycle(props) {
|
|
54
|
+
const objectRef = useRef(null);
|
|
23
55
|
const frameRef = useRef(null);
|
|
56
|
+
const report = useRef(props.onState);
|
|
24
57
|
const settled = useRef(false);
|
|
25
58
|
const [state, setState] = useState("loading");
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
return;
|
|
29
|
-
settled.current = true;
|
|
30
|
-
setState(next);
|
|
31
|
-
onState?.(next);
|
|
32
|
-
}
|
|
59
|
+
const { src, timeoutMs } = props;
|
|
60
|
+
report.current = props.onState;
|
|
33
61
|
useEffect(() => {
|
|
34
62
|
let timer = 0;
|
|
35
63
|
settled.current = false;
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
64
|
+
setState("loading");
|
|
65
|
+
const target = objectRef.current || frameRef.current;
|
|
66
|
+
const settle = (next) => {
|
|
67
|
+
if (settled.current)
|
|
39
68
|
return;
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
69
|
+
settled.current = true;
|
|
70
|
+
setState(next);
|
|
71
|
+
report.current?.(next);
|
|
72
|
+
};
|
|
73
|
+
const onLoad = () => settle("ready");
|
|
74
|
+
const onError = () => {
|
|
75
|
+
settle("error");
|
|
76
|
+
if (objectRef.current)
|
|
77
|
+
objectRef.current.removeAttribute("data");
|
|
78
|
+
if (frameRef.current)
|
|
79
|
+
frameRef.current.src = "about:blank";
|
|
48
80
|
};
|
|
81
|
+
const start = () => {
|
|
82
|
+
if (objectRef.current)
|
|
83
|
+
objectRef.current.data = src;
|
|
84
|
+
if (frameRef.current)
|
|
85
|
+
frameRef.current.src = src;
|
|
86
|
+
timer = window.setTimeout(onError, timeoutMs && timeoutMs > 0 ? timeoutMs : DEFAULT_TIMEOUT_MS);
|
|
87
|
+
};
|
|
88
|
+
target?.addEventListener("load", onLoad);
|
|
89
|
+
target?.addEventListener("error", onError);
|
|
49
90
|
const stop = whenDocumentSettled(start);
|
|
50
91
|
return () => {
|
|
51
92
|
stop();
|
|
93
|
+
target?.removeEventListener("load", onLoad);
|
|
94
|
+
target?.removeEventListener("error", onError);
|
|
52
95
|
window.clearTimeout(timer);
|
|
53
96
|
};
|
|
54
97
|
}, [src, timeoutMs]);
|
|
98
|
+
return { frameRef, objectRef, state };
|
|
99
|
+
}
|
|
100
|
+
export function EmbedFrame(props) {
|
|
101
|
+
const rootRef = useRef(null);
|
|
102
|
+
const { frameRef, objectRef, state } = useEmbedLifecycle(props);
|
|
103
|
+
const { allowFullScreen, aspectRatio, className, labels, sandbox } = props;
|
|
55
104
|
const text = state === "error"
|
|
56
105
|
? labels?.error || DEFAULT_LABELS.error
|
|
57
106
|
: labels?.loading || DEFAULT_LABELS.loading;
|
|
58
|
-
return (_jsxs("div", { className: [frontendClassName("embed-frame"), className].filter(Boolean).join(" "), "data-embed-state": state, style: aspectRatio ? { aspectRatio } : undefined, children: [_jsx(
|
|
107
|
+
return (_jsxs("div", { ref: rootRef, className: [frontendClassName("embed-frame"), className].filter(Boolean).join(" "), "data-embed-state": state, style: aspectRatio ? { aspectRatio } : undefined, children: [_jsx(EmbedSurface, { props: props, refs: { frameRef, objectRef } }), state === "ready" ? null : _jsx(EmbedStatus, { label: text, state: state }), allowFullScreen && typeof sandbox !== "string" && state === "ready" ? (_jsx(FullscreenButton, { label: labels?.fullscreen || DEFAULT_LABELS.fullscreen, target: rootRef.current })) : null] }));
|
|
59
108
|
}
|
|
60
109
|
//# sourceMappingURL=embed-frame.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embed-frame.js","sourceRoot":"","sources":["../../../src/media/embed-frame.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"embed-frame.js","sourceRoot":"","sources":["../../../src/media/embed-frame.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AA6BtE,MAAM,kBAAkB,GAAG,KAAK,CAAC;AAEjC,MAAM,cAAc,GAA6C;IAC/D,KAAK,EAAE,2FAA2F;IAClG,UAAU,EAAE,mBAAmB;IAC/B,OAAO,EAAE,UAAU;CACpB,CAAC;AAEF,MAAM,WAAW,GAAG;IAClB,oBAAoB,EACpB,mHAAmH;UAClH,mHAAmH;UACnH,sCAAsC;IACvC,sBAAsB,EAAE,sFAAsF;IAC9G,iBAAiB,EAAE,sFAAsF;CAC1G,CAAC;AAIF,SAAS,SAAS,CAAC,EAAE,SAAS,EAAE,IAAI,EAA+C;IACjF,OAAO,CACL,cACA,OAAO,EAAC,WAAW,EACnB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAC,KAAK,EACX,MAAM,EAAC,KAAK,EACZ,IAAI,EAAC,cAAc,iBACP,MAAM,EAClB,SAAS,EAAC,OAAO,YAEjB,eAAM,CAAC,EAAE,WAAW,CAAC,IAAI,CAAC,GAAI,GACxB,CACP,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAe;IAC1C,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC;IAC5D,IAAI,QAAQ,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QACvC,GAAG,EAAE,CAAC;QACN,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,EAA6C;IAC9E,OAAO,CACL,eAAK,SAAS,EAAE,iBAAiB,CAAC,oBAAoB,CAAC,EAAE,IAAI,EAAC,QAAQ,aACrE,KAAK,KAAK,OAAO;gBAChB,CAAC,CAAC,KAAC,SAAS,IAAC,IAAI,EAAC,oBAAoB,EAAC,SAAS,EAAE,iBAAiB,CAAC,kBAAkB,CAAC,GAAI;gBAC3F,CAAC,CAAC,cAAK,SAAS,EAAC,kBAAkB,iBAAa,MAAM,GAAG,EAC3D,sBAAI,KAAK,GAAK,IACR,CACP,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAiD;IACxF,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5C,IAAI,CAAC,mBAAmB,EAAE;QAAE,OAAO,IAAI,CAAC;IACxC,OAAO,CACL,iBACA,IAAI,EAAC,QAAQ,gBACD,KAAK,EACjB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,iBAAiB,CAAC,wBAAwB,CAAC,EACtD,OAAO,EAAE,GAAG,EAAE;YACV,IAAI,CAAC,MAAM;gBAAE,OAAO;YACpB,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACzB,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC,YAED,KAAC,SAAS,IAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,iBAAiB,GAAI,GAC/D,CACV,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,EAAE,KAAK,EAAE,IAAI,EAA+C;IAChF,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACtC,OAAO,CACL,iBACA,GAAG,EAAE,IAAI,CAAC,QAAQ,EAClB,eAAe,EAAE,KAAK,CAAC,eAAe,EACtC,OAAO,EAAC,MAAM,EACd,cAAc,EAAE,KAAK,CAAC,cAAc,EACpC,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,KAAK,EAAE,KAAK,CAAC,KAAK,GAChB,CACH,CAAC;IACJ,CAAC;IACD,OAAO,iBAAQ,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAC,WAAW,gBAAa,KAAK,CAAC,KAAK,GAAI,CAAC;AACnF,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAsB;IAC/C,MAAM,SAAS,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAkB,SAAS,CAAC,CAAC;IAC/D,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAEjC,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC/B,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;QACxB,QAAQ,CAAC,SAAS,CAAC,CAAC;QACpB,MAAM,MAAM,GAAuB,SAAS,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC;QACzE,MAAM,MAAM,GAAG,CAAC,IAAqB,EAAE,EAAE;YACvC,IAAI,OAAO,CAAC,OAAO;gBAAE,OAAO;YAC5B,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;YACvB,QAAQ,CAAC,IAAI,CAAC,CAAC;YACf,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC,CAAC;QACF,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,MAAM,CAAC,OAAO,CAAC,CAAC;YAChB,IAAI,SAAS,CAAC,OAAO;gBAAE,SAAS,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YACjE,IAAI,QAAQ,CAAC,OAAO;gBAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,GAAG,aAAa,CAAC;QAC7D,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,GAAG,EAAE;YACjB,IAAI,SAAS,CAAC,OAAO;gBAAE,SAAS,CAAC,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC;YACpD,IAAI,QAAQ,CAAC,OAAO;gBAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC;YACjD,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;QAClG,CAAC,CAAC;QAEF,MAAM,EAAE,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACzC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACxC,OAAO,GAAG,EAAE;YACV,IAAI,EAAE,CAAC;YACP,MAAM,EAAE,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC5C,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC9C,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;IAEvB,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAsB;IAC/C,MAAM,OAAO,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC7C,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAChE,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAC3E,MAAM,IAAI,GAAG,KAAK,KAAK,OAAO;QAC9B,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,cAAc,CAAC,KAAK;QACvC,CAAC,CAAC,MAAM,EAAE,OAAO,IAAI,cAAc,CAAC,OAAO,CAAC;IAE5C,OAAO,CACL,eACA,GAAG,EAAE,OAAO,EACZ,SAAS,EAAE,CAAC,iBAAiB,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,sBAChE,KAAK,EACvB,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,aAEhD,KAAC,YAAY,IAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAI,EAC5D,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAC,WAAW,IAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,GAAI,EACrE,eAAe,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,CACnE,KAAC,gBAAgB,IACjB,KAAK,EAAE,MAAM,EAAE,UAAU,IAAI,cAAc,CAAC,UAAU,EACtD,MAAM,EAAE,OAAO,CAAC,OAAO,GACrB,CACH,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-embed.d.ts","sourceRoot":"","sources":["../../../src/media/map-embed.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAErE,KAAK,aAAa,GAAG;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,aAAa,+
|
|
1
|
+
{"version":3,"file":"map-embed.d.ts","sourceRoot":"","sources":["../../../src/media/map-embed.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAErE,KAAK,aAAa,GAAG;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,aAAa,+BAW5E;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,YAAY,EAAE,aAAa,EAAE,CAAC"}
|
package/dist/media/map-embed.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { EmbedFrame } from "./embed-frame.js";
|
|
3
3
|
function MapEmbed({ className, labels, src, timeoutMs, title }) {
|
|
4
|
-
return (_jsx(EmbedFrame, { allowFullScreen: true, className: className, labels: labels,
|
|
4
|
+
return (_jsx(EmbedFrame, { allowFullScreen: true, className: className, labels: labels, src: src, timeoutMs: timeoutMs, title: title }));
|
|
5
5
|
}
|
|
6
6
|
export { MapEmbed };
|
|
7
7
|
//# sourceMappingURL=map-embed.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-embed.js","sourceRoot":"","sources":["../../../src/media/map-embed.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAyB,MAAM,kBAAkB,CAAC;AAUrE,SAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAiB;IAC3E,OAAO,CACL,KAAC,UAAU,IACX,eAAe,QACf,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,
|
|
1
|
+
{"version":3,"file":"map-embed.js","sourceRoot":"","sources":["../../../src/media/map-embed.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAyB,MAAM,kBAAkB,CAAC;AAUrE,SAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAiB;IAC3E,OAAO,CACL,KAAC,UAAU,IACX,eAAe,QACf,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,GACV,CACH,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -34,3 +34,47 @@
|
|
|
34
34
|
font-size: 0.95rem;
|
|
35
35
|
line-height: 1.6;
|
|
36
36
|
}
|
|
37
|
+
|
|
38
|
+
#{ns.class("embed-frame-mark")} {
|
|
39
|
+
font-size: 1.9rem;
|
|
40
|
+
line-height: 1;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
#{ns.class("embed-frame-fullscreen")} {
|
|
44
|
+
position: absolute;
|
|
45
|
+
bottom: 0.6rem;
|
|
46
|
+
left: 0.6rem;
|
|
47
|
+
display: inline-flex;
|
|
48
|
+
align-items: center;
|
|
49
|
+
justify-content: center;
|
|
50
|
+
width: 2rem;
|
|
51
|
+
height: 2rem;
|
|
52
|
+
border: var(--border-width, var(#{ns.css-var("border-width")}, 1px)) solid
|
|
53
|
+
var(--border-surface-1, var(#{ns.css-var("border")}, currentColor));
|
|
54
|
+
border-radius: 999px;
|
|
55
|
+
background: var(--background-surface-1, var(#{ns.css-var("surface")}, transparent));
|
|
56
|
+
color: inherit;
|
|
57
|
+
cursor: pointer;
|
|
58
|
+
opacity: 0;
|
|
59
|
+
transition: opacity 0.2s ease;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
#{ns.class("embed-frame")}:hover #{ns.class("embed-frame-fullscreen")},
|
|
63
|
+
|
|
64
|
+
#{ns.class("embed-frame")}:focus-within #{ns.class("embed-frame-fullscreen")} {
|
|
65
|
+
opacity: 0.8;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
#{ns.class("embed-frame-fullscreen")}:hover,
|
|
69
|
+
|
|
70
|
+
#{ns.class("embed-frame-fullscreen")}:focus-visible {
|
|
71
|
+
opacity: 1;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
#{ns.class("embed-frame")} object {
|
|
75
|
+
position: absolute;
|
|
76
|
+
inset: 0;
|
|
77
|
+
width: 100%;
|
|
78
|
+
height: 100%;
|
|
79
|
+
border: 0;
|
|
80
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
type EmbedFrameLabels = {
|
|
2
2
|
error?: string;
|
|
3
|
+
fullscreen?: string;
|
|
3
4
|
loading?: string;
|
|
4
5
|
open?: string;
|
|
5
6
|
};
|
|
@@ -16,6 +17,6 @@ type EmbedFrameProps = {
|
|
|
16
17
|
title: string;
|
|
17
18
|
};
|
|
18
19
|
type EmbedFrameState = "error" | "loading" | "ready";
|
|
19
|
-
export declare function EmbedFrame(
|
|
20
|
+
export declare function EmbedFrame(props: EmbedFrameProps): import("react").JSX.Element;
|
|
20
21
|
export type { EmbedFrameLabels, EmbedFrameProps, EmbedFrameState };
|
|
21
22
|
//# sourceMappingURL=embed-frame.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embed-frame.d.ts","sourceRoot":"","sources":["../../../src/media/embed-frame.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"embed-frame.d.ts","sourceRoot":"","sources":["../../../src/media/embed-frame.tsx"],"names":[],"mappings":"AAKA,KAAK,gBAAgB,GAAG;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAC3C,cAAc,CAAC,EAAE,KAAK,CAAC,2BAA2B,CAAC;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,eAAe,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;AAmJrD,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,+BAyBhD;AAED,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -1,13 +1,22 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect, useRef, useState } from "react";
|
|
3
3
|
import { frontendClassName } from "../../namespace/index.js";
|
|
4
|
+
import { fullscreenSupported, toggleFullscreen } from "../../fullscreen/index.js";
|
|
4
5
|
const DEFAULT_TIMEOUT_MS = 10000;
|
|
5
6
|
const DEFAULT_LABELS = {
|
|
6
|
-
error: "This content could not be loaded. It may be unreachable or
|
|
7
|
+
error: "This content could not be loaded. It may be unreachable, or it may refuse to be embedded.",
|
|
8
|
+
fullscreen: "Toggle fullscreen",
|
|
7
9
|
loading: "Loading…",
|
|
8
10
|
};
|
|
9
|
-
|
|
10
|
-
|
|
11
|
+
const REMIX_PATHS = {
|
|
12
|
+
"error-warning-line": "M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22Z"
|
|
13
|
+
+ "M12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20Z"
|
|
14
|
+
+ "M11 15H13V17H11V15ZM11 7H13V13H11V7Z",
|
|
15
|
+
"fullscreen-exit-line": "M18 7H22V9H16V3H18V7ZM8 9H2V7H6V3H8V9ZM18 17V21H16V15H22V17H18ZM8 15V21H6V17H2V15H8Z",
|
|
16
|
+
"fullscreen-line": "M8 3V5H4V9H2V3H8ZM2 21V15H4V19H8V21H2ZM22 21H16V19H20V15H22V21ZM22 9H20V5H16V3H22V9Z",
|
|
17
|
+
};
|
|
18
|
+
function RemixIcon({ className, name }) {
|
|
19
|
+
return (_jsx("svg", { viewBox: "0 0 24 24", className: className, width: "1em", height: "1em", fill: "currentColor", "aria-hidden": "true", focusable: "false", children: _jsx("path", { d: REMIX_PATHS[name] }) }));
|
|
11
20
|
}
|
|
12
21
|
function whenDocumentSettled(run) {
|
|
13
22
|
if (typeof document === "undefined")
|
|
@@ -19,42 +28,82 @@ function whenDocumentSettled(run) {
|
|
|
19
28
|
window.addEventListener("load", run, { once: true });
|
|
20
29
|
return () => window.removeEventListener("load", run);
|
|
21
30
|
}
|
|
22
|
-
|
|
31
|
+
function EmbedStatus({ label, state }) {
|
|
32
|
+
return (_jsxs("div", { className: frontendClassName("embed-frame-status"), role: "status", children: [state === "error"
|
|
33
|
+
? _jsx(RemixIcon, { name: "error-warning-line", className: frontendClassName("embed-frame-mark") })
|
|
34
|
+
: _jsx("div", { className: "loader-circle lg", "aria-hidden": "true" }), _jsx("p", { children: label })] }));
|
|
35
|
+
}
|
|
36
|
+
function FullscreenButton({ label, target }) {
|
|
37
|
+
const [active, setActive] = useState(false);
|
|
38
|
+
if (!fullscreenSupported())
|
|
39
|
+
return null;
|
|
40
|
+
return (_jsx("button", { type: "button", "aria-label": label, title: label, className: frontendClassName("embed-frame-fullscreen"), onClick: () => {
|
|
41
|
+
if (!target)
|
|
42
|
+
return;
|
|
43
|
+
toggleFullscreen(target);
|
|
44
|
+
setActive((value) => !value);
|
|
45
|
+
}, children: _jsx(RemixIcon, { name: active ? "fullscreen-exit-line" : "fullscreen-line" }) }));
|
|
46
|
+
}
|
|
47
|
+
function EmbedSurface({ props, refs }) {
|
|
48
|
+
if (typeof props.sandbox === "string") {
|
|
49
|
+
return (_jsx("iframe", { ref: refs.frameRef, allowFullScreen: props.allowFullScreen, loading: "lazy", referrerPolicy: props.referrerPolicy, sandbox: props.sandbox, title: props.title }));
|
|
50
|
+
}
|
|
51
|
+
return _jsx("object", { ref: refs.objectRef, type: "text/html", "aria-label": props.title });
|
|
52
|
+
}
|
|
53
|
+
function useEmbedLifecycle(props) {
|
|
54
|
+
const objectRef = useRef(null);
|
|
23
55
|
const frameRef = useRef(null);
|
|
56
|
+
const report = useRef(props.onState);
|
|
24
57
|
const settled = useRef(false);
|
|
25
58
|
const [state, setState] = useState("loading");
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
return;
|
|
29
|
-
settled.current = true;
|
|
30
|
-
setState(next);
|
|
31
|
-
onState?.(next);
|
|
32
|
-
}
|
|
59
|
+
const { src, timeoutMs } = props;
|
|
60
|
+
report.current = props.onState;
|
|
33
61
|
useEffect(() => {
|
|
34
62
|
let timer = 0;
|
|
35
63
|
settled.current = false;
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
64
|
+
setState("loading");
|
|
65
|
+
const target = objectRef.current || frameRef.current;
|
|
66
|
+
const settle = (next) => {
|
|
67
|
+
if (settled.current)
|
|
39
68
|
return;
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
69
|
+
settled.current = true;
|
|
70
|
+
setState(next);
|
|
71
|
+
report.current?.(next);
|
|
72
|
+
};
|
|
73
|
+
const onLoad = () => settle("ready");
|
|
74
|
+
const onError = () => {
|
|
75
|
+
settle("error");
|
|
76
|
+
if (objectRef.current)
|
|
77
|
+
objectRef.current.removeAttribute("data");
|
|
78
|
+
if (frameRef.current)
|
|
79
|
+
frameRef.current.src = "about:blank";
|
|
48
80
|
};
|
|
81
|
+
const start = () => {
|
|
82
|
+
if (objectRef.current)
|
|
83
|
+
objectRef.current.data = src;
|
|
84
|
+
if (frameRef.current)
|
|
85
|
+
frameRef.current.src = src;
|
|
86
|
+
timer = window.setTimeout(onError, timeoutMs && timeoutMs > 0 ? timeoutMs : DEFAULT_TIMEOUT_MS);
|
|
87
|
+
};
|
|
88
|
+
target?.addEventListener("load", onLoad);
|
|
89
|
+
target?.addEventListener("error", onError);
|
|
49
90
|
const stop = whenDocumentSettled(start);
|
|
50
91
|
return () => {
|
|
51
92
|
stop();
|
|
93
|
+
target?.removeEventListener("load", onLoad);
|
|
94
|
+
target?.removeEventListener("error", onError);
|
|
52
95
|
window.clearTimeout(timer);
|
|
53
96
|
};
|
|
54
97
|
}, [src, timeoutMs]);
|
|
98
|
+
return { frameRef, objectRef, state };
|
|
99
|
+
}
|
|
100
|
+
export function EmbedFrame(props) {
|
|
101
|
+
const rootRef = useRef(null);
|
|
102
|
+
const { frameRef, objectRef, state } = useEmbedLifecycle(props);
|
|
103
|
+
const { allowFullScreen, aspectRatio, className, labels, sandbox } = props;
|
|
55
104
|
const text = state === "error"
|
|
56
105
|
? labels?.error || DEFAULT_LABELS.error
|
|
57
106
|
: labels?.loading || DEFAULT_LABELS.loading;
|
|
58
|
-
return (_jsxs("div", { className: [frontendClassName("embed-frame"), className].filter(Boolean).join(" "), "data-embed-state": state, style: aspectRatio ? { aspectRatio } : undefined, children: [_jsx(
|
|
107
|
+
return (_jsxs("div", { ref: rootRef, className: [frontendClassName("embed-frame"), className].filter(Boolean).join(" "), "data-embed-state": state, style: aspectRatio ? { aspectRatio } : undefined, children: [_jsx(EmbedSurface, { props: props, refs: { frameRef, objectRef } }), state === "ready" ? null : _jsx(EmbedStatus, { label: text, state: state }), allowFullScreen && typeof sandbox !== "string" && state === "ready" ? (_jsx(FullscreenButton, { label: labels?.fullscreen || DEFAULT_LABELS.fullscreen, target: rootRef.current })) : null] }));
|
|
59
108
|
}
|
|
60
109
|
//# sourceMappingURL=embed-frame.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embed-frame.js","sourceRoot":"","sources":["../../../src/media/embed-frame.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"embed-frame.js","sourceRoot":"","sources":["../../../src/media/embed-frame.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-embed.d.ts","sourceRoot":"","sources":["../../../src/media/map-embed.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAErE,KAAK,aAAa,GAAG;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,aAAa,+
|
|
1
|
+
{"version":3,"file":"map-embed.d.ts","sourceRoot":"","sources":["../../../src/media/map-embed.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAErE,KAAK,aAAa,GAAG;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,aAAa,+BAW5E;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,YAAY,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { EmbedFrame } from "./embed-frame.js";
|
|
3
3
|
function MapEmbed({ className, labels, src, timeoutMs, title }) {
|
|
4
|
-
return (_jsx(EmbedFrame, { allowFullScreen: true, className: className, labels: labels,
|
|
4
|
+
return (_jsx(EmbedFrame, { allowFullScreen: true, className: className, labels: labels, src: src, timeoutMs: timeoutMs, title: title }));
|
|
5
5
|
}
|
|
6
6
|
export { MapEmbed };
|
|
7
7
|
//# sourceMappingURL=map-embed.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-embed.js","sourceRoot":"","sources":["../../../src/media/map-embed.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAyB,MAAM,kBAAkB,CAAC;AAUrE,SAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAiB;IAC3E,OAAO,CACL,KAAC,UAAU,IACX,eAAe,QACf,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,
|
|
1
|
+
{"version":3,"file":"map-embed.js","sourceRoot":"","sources":["../../../src/media/map-embed.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAyB,MAAM,kBAAkB,CAAC;AAUrE,SAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAiB;IAC3E,OAAO,CACL,KAAC,UAAU,IACX,eAAe,QACf,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,GACV,CACH,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
package/package.json
CHANGED