@expofp/floorplan
Version:
Interactive floor plan library for expos and events
441 lines (439 loc) • 21.2 kB
JavaScript
function __vite_inject_css__(css, id, forceLightDom){ if (typeof document==='undefined') return; var shadow=!forceLightDom&&typeof window!=='undefined'&&window.__efpShadowDOMStyleParent; var parent=shadow||document.head; var s=document.createElement('style'); s.setAttribute('data-chunk-style', id); s.appendChild(document.createTextNode(css)); parent.appendChild(s); if (shadow) (window.__efpStyleElements||(window.__efpStyleElements=[])).push(s);}
(function() {
try {
var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {};
e.SENTRY_RELEASE = { id: "3.47.0" };
var t = new e.Error().stack;
t && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[t] = "bb099792-ccd2-4dd0-a3fc-dd4b2d82b640", e._sentryDebugIdIdentifier = "sentry-dbid-bb099792-ccd2-4dd0-a3fc-dd4b2d82b640");
} catch {}
})();
import { r as e } from "./rolldown-runtime-5rOLGCTp.js";
import { h as t, s as n } from "./i18n-DlquqKCP.js";
import { t as r } from "./react-XuvSZP7j.js";
import { t as i } from "./jsx-runtime-BzLvm2y2.js";
import { t as a } from "./classnames-CQMYVTW5.js";
import { t as o } from "./Button-DyqVe4xL.js";
//#region ../ui/src/shared/interactive.ts
var s = /* @__PURE__ */ e(r(), 1), c = "button, input, select, textarea, a, [contenteditable=\"true\"], [draggable=\"false\"]";
function l(e) {
return !!(e != null && e.closest(c));
}
//#endregion
//#region ../ui/src/components/Draggable/Draggable.tsx
var u = i(), d = ({ children: e, className: t, style: n }) => {
let [r, i] = (0, s.useState)({
x: 0,
y: 0
}), [a, o] = (0, s.useState)(!1), [c, d] = (0, s.useState)({
x: 0,
y: 0
}), f = (0, s.useRef)(null), p = (e) => {
l(e.target) || (o(!0), d({
x: e.clientX - r.x,
y: e.clientY - r.y
}), e.preventDefault());
}, m = (e) => {
if (!a) return;
let t = e.clientX - c.x, n = e.clientY - c.y;
i({
x: t,
y: n
});
}, h = () => {
y();
}, g = (e) => {
if (l(e.target)) return;
let t = e.touches[0];
o(!0), d({
x: t.clientX - r.x,
y: t.clientY - r.y
});
}, _ = (e) => {
if (!a) return;
let t = e.touches[0], n = t.clientX - c.x, r = t.clientY - c.y;
i({
x: n,
y: r
});
}, v = () => {
y();
}, y = () => {
if (!f.current) return;
let e = f.current.getBoundingClientRect(), t = window.innerWidth, n = window.innerHeight, r = e.width / 4, a = e.height / 4, s = Math.max(0, 0 - e.left), c = Math.max(0, e.right - t), l = Math.max(0, 0 - e.top), u = Math.max(0, e.bottom - n);
(s > r || c > r || l > a || u > a) && i({
x: 0,
y: 0
}), o(!1);
};
return (0, s.useEffect)(() => {
if (a) return document.addEventListener("mousemove", m), document.addEventListener("mouseup", h), document.addEventListener("touchmove", _, { passive: !1 }), document.addEventListener("touchend", v), () => {
document.removeEventListener("mousemove", m), document.removeEventListener("mouseup", h), document.removeEventListener("touchmove", _), document.removeEventListener("touchend", v);
};
}, [a, c]), /* @__PURE__ */ (0, u.jsx)("div", {
ref: f,
className: t,
style: {
...n,
transform: `translate(${r.x}px, ${r.y}px)`,
cursor: a ? "grabbing" : "grab"
},
onMouseDown: p,
onTouchStart: g,
children: e
});
};
//#endregion
//#region src/components/Kiosk/SetKiosk/Confirm/ConfirmDialog.tsx
function f({ isDisabled: e, content: t, confirmLabel: n, cancelLabel: r, onConfirm: i, onCancel: a, confirmVariant: s, cancelVariant: c }) {
return /* @__PURE__ */ (0, u.jsxs)("div", {
className: "efp-confirm-dialog",
children: [t && /* @__PURE__ */ (0, u.jsx)("div", {
className: "efp-confirm-dialog__content",
children: t
}), /* @__PURE__ */ (0, u.jsxs)("div", {
className: "efp-confirm-dialog__controls",
children: [/* @__PURE__ */ (0, u.jsx)(o, {
size: "md",
text: n,
onClick: i,
disabled: e,
variant: s
}), a && /* @__PURE__ */ (0, u.jsx)(o, {
size: "md",
text: r,
variant: c,
onClick: a,
disabled: e
})]
})]
});
}
//#endregion
//#region src/components/Kiosk/SetKiosk/Message/InfoMessage.tsx
function p({ list: e }) {
return e != null && e.length ? /* @__PURE__ */ (0, u.jsx)("div", {
className: "efp-info-message",
children: e.map(({ id: e, image: t, content: n }) => /* @__PURE__ */ (0, u.jsxs)("div", {
className: "efp-info-message__item",
children: [/* @__PURE__ */ (0, u.jsx)("img", {
className: "efp-info-message__img",
src: t.src,
alt: t.alt,
width: "30",
height: "30"
}), /* @__PURE__ */ (0, u.jsx)("span", { children: n })]
}, e))
}) : null;
}
//#endregion
//#region src/components/Kiosk/SetKiosk/FormInput/RangeInput.tsx
function m({ value: e, name: t, min: r, max: i, step: a, onChange: o, isDisabled: s, symbol: c }) {
let l = () => o(Math.min(e + a, i)), d = () => o(Math.max(e - a, r)), f = 0;
i !== r && (f = (e - r) / (i - r) * 100);
let p = "-50%";
return f === 0 ? p = "0" : f === 100 && (p = "-100%"), /* @__PURE__ */ (0, u.jsxs)("div", {
className: "efp-range-input",
children: [/* @__PURE__ */ (0, u.jsxs)("span", {
className: "efp-range-input__header",
children: [
/* @__PURE__ */ (0, u.jsx)("button", {
type: "button",
className: "efp-range-input__control",
draggable: "false",
onClick: d,
disabled: s,
"aria-label": n("Decrease"),
children: /* @__PURE__ */ (0, u.jsx)("i", { className: "icon-minus" })
}),
/* @__PURE__ */ (0, u.jsxs)("span", {
className: "efp-no-select",
children: [
t,
" ",
/* @__PURE__ */ (0, u.jsxs)("strong", { children: [e, c == null ? "" : c] })
]
}),
/* @__PURE__ */ (0, u.jsx)("button", {
type: "button",
className: "efp-range-input__control",
draggable: "false",
onClick: l,
disabled: s,
"aria-label": n("Increase"),
children: /* @__PURE__ */ (0, u.jsx)("i", { className: "icon-plus" })
})
]
}), /* @__PURE__ */ (0, u.jsxs)("label", {
className: "efp-range-input__input-block",
children: [/* @__PURE__ */ (0, u.jsx)("input", {
className: "efp-range-input__input",
name: t,
type: "range",
min: r,
max: i,
step: a,
value: e,
disabled: s,
onChange: (e) => o(Number(e.target.value))
}), /* @__PURE__ */ (0, u.jsxs)("span", {
className: "efp-range-input__custom-input",
children: [/* @__PURE__ */ (0, u.jsx)("span", {
className: "efp-range-input__progress",
style: { width: `${f}%` }
}), /* @__PURE__ */ (0, u.jsx)("span", {
className: "efp-range-input__thumb",
style: {
insetInlineStart: `${f}%`,
transform: `translateX(${p}) translateY(-50%)`
}
})]
})]
})]
});
}
//#endregion
//#region src/components/Kiosk/SetKiosk/SetKioskForm.tsx
function h({ onSave: e, onDelete: t, isSaveDisabled: r, isDeleteDisabled: i, areControlsDisabled: a, angle: s, onRotateIcon: c, uiScale: l, minUiScale: d, maxUiScale: f, uiScaleStep: p, onUiScaleChange: h, iconSizePercent: g, onChangeIconSizePercent: _ }) {
return /* @__PURE__ */ (0, u.jsx)("div", {
className: "efp-set-kiosk-form",
children: /* @__PURE__ */ (0, u.jsxs)("div", {
className: "efp-set-kiosk-form__content",
children: [/* @__PURE__ */ (0, u.jsxs)("div", {
className: "efp-set-kiosk-form__inputs",
children: [
/* @__PURE__ */ (0, u.jsx)(m, {
value: s,
name: n("Icon rotation"),
min: 0,
max: 360,
step: 1,
symbol: "°",
isDisabled: a,
onChange: c
}),
/* @__PURE__ */ (0, u.jsx)(m, {
value: g,
name: n("Icon size"),
min: 100,
max: 300,
step: 1,
symbol: "%",
isDisabled: a,
onChange: _
}),
/* @__PURE__ */ (0, u.jsx)(m, {
value: Math.round(l * 100),
name: n("UI scale"),
min: d * 100,
max: f * 100,
step: p * 100,
symbol: "%",
isDisabled: a,
onChange: (e) => h(e / 100)
})
]
}), /* @__PURE__ */ (0, u.jsxs)("div", {
className: "efp-set-kiosk-form__controls",
children: [/* @__PURE__ */ (0, u.jsx)(o, {
size: "md",
variant: "gray",
text: n("Delete kiosk"),
onClick: t,
disabled: i
}), /* @__PURE__ */ (0, u.jsx)(o, {
size: "md",
variant: "primary",
text: n("Save"),
onClick: e,
disabled: r
})]
})]
})
});
}
//#endregion
//#region src/components/Kiosk/SetKiosk/SetKioskStatusMessages.tsx
var g = /* @__PURE__ */ e(a(), 1);
function _({ messages: e }) {
return e != null && e.length ? /* @__PURE__ */ (0, u.jsx)("div", {
className: "efp-status-messages",
children: e.map(({ id: e, variant: t, title: n }) => {
let r = t === "success", i = t === "error";
return /* @__PURE__ */ (0, u.jsxs)("div", {
className: (0, g.default)("efp-status-messages__message", {
"efp-status-messages__message--success": r,
"efp-status-messages__message--error": i
}),
children: [
r ? /* @__PURE__ */ (0, u.jsx)("i", { className: "icon-checkmark" }) : null,
i ? /* @__PURE__ */ (0, u.jsx)("i", { className: "icon-warning-solid" }) : null,
n
]
}, e);
})
}) : null;
}
//#endregion
//#region src/components/Kiosk/SetKiosk/SetKioskComponent.tsx
function v({ isSaveDisabled: e, isDeleteDisabled: r, areControlsDisabled: i, confirmOnClose: a, angle: o, uiScale: c, minUiScale: l, maxUiScale: m, uiScaleStep: g, iconSizePercent: v, isInfoVisible: y, statusMessages: b, onClose: x, onDelete: S, onSave: C, onChange: w }) {
let [T, E] = (0, s.useState)(null);
return /* @__PURE__ */ (0, u.jsx)("div", {
className: "efp-set-kiosk-mode-anchor",
children: /* @__PURE__ */ (0, u.jsxs)(d, {
className: "efp-set-kiosk-mode",
children: [
/* @__PURE__ */ (0, u.jsxs)("div", {
className: "efp-set-kiosk-mode__header",
children: [
/* @__PURE__ */ (0, u.jsx)("img", {
src: `${t}icons/dragdrop-solid.svg`,
alt: n("Drag and Drop Icon"),
width: "24",
height: "24"
}),
/* @__PURE__ */ (0, u.jsx)("span", {
className: "efp-no-select",
children: T ? T.title : n("Set Kiosk")
}),
/* @__PURE__ */ (0, u.jsx)("button", {
type: "button",
draggable: "false",
className: "efp-set-kiosk-mode__close",
"aria-label": n("Close"),
onClick: () => {
let e = () => {
E(null);
}, t = () => {
x == null || x(), E(null);
};
T ? e() : a ? E({
title: n("Leave without saving?"),
content: /* @__PURE__ */ (0, u.jsxs)("span", { children: [n("You have changes that "), /* @__PURE__ */ (0, u.jsx)("strong", { children: n("haven't been saved.") })] }),
confirmLabel: n("Keep editing"),
cancelLabel: n("Leave"),
onCancel: t,
onConfirm: e,
confirmVariant: "primary",
cancelVariant: "danger"
}) : t();
},
children: /* @__PURE__ */ (0, u.jsx)("i", { className: "icon-close" })
})
]
}),
!T && /* @__PURE__ */ (0, u.jsx)(_, { messages: b }),
y ? /* @__PURE__ */ (0, u.jsx)(p, { list: [{
id: "1",
image: {
src: `${t}icons/tap.svg`,
alt: n("Tap to set or move kiosk.")
},
content: /* @__PURE__ */ (0, u.jsxs)("span", { children: [
n("Tap to "),
/* @__PURE__ */ (0, u.jsx)("strong", { children: n("set or move") }),
n(" kiosk.")
] })
}, {
id: "2",
image: {
src: `${t}icons/rotate.svg`,
alt: n("Zoom and rotate the map before saving.")
},
content: /* @__PURE__ */ (0, u.jsxs)("span", { children: [/* @__PURE__ */ (0, u.jsx)("strong", { children: n("Zoom and rotate") }), n(" the map before saving.")] })
}] }) : /* @__PURE__ */ (0, u.jsx)(u.Fragment, { children: T ? /* @__PURE__ */ (0, u.jsx)(f, { ...T }) : /* @__PURE__ */ (0, u.jsx)(h, {
isSaveDisabled: e,
isDeleteDisabled: r,
areControlsDisabled: i,
onSave: () => {
C == null || C(), E(null);
},
onDelete: () => {
E({
title: n("Delete kiosk?"),
content: /* @__PURE__ */ (0, u.jsxs)("span", { children: [n("Are you sure you want to "), /* @__PURE__ */ (0, u.jsx)("strong", { children: n("delete this kiosk?") })] }),
confirmLabel: n("Cancel"),
cancelLabel: n("Delete"),
onConfirm: () => {
E(null);
},
onCancel: () => {
S == null || S(), E(null);
},
confirmVariant: "gray",
cancelVariant: "danger"
});
},
angle: o,
onRotateIcon: (e) => w == null ? void 0 : w({ angle: e }),
uiScale: c,
minUiScale: l,
maxUiScale: m,
uiScaleStep: g,
onUiScaleChange: (e) => w == null ? void 0 : w({ scale: e }),
iconSizePercent: v,
onChangeIconSizePercent: (e) => w == null ? void 0 : w({ percent: e })
}) })
]
})
});
}
//#endregion
//#region src/components/Kiosk/SetKiosk/constants.ts
var y = "expofp-kiosk", b = "expofp-kiosk-stats-id", x = "interactive-kiosk", S = "Your Location", C = "kiosk_";
//#endregion
//#region src/components/Kiosk/SetKiosk/storage.ts
async function w(e) {
localStorage.setItem(y, JSON.stringify(e));
}
async function T() {
localStorage.removeItem(y);
}
function E() {
let e = localStorage.getItem(y);
if (e) try {
return JSON.parse(e);
} catch (e) {
console.warn(e);
return;
}
}
//#endregion
//#region src/components/Kiosk/kioskApi.ts
var D = { "Content-Type": "application/json" };
function O(e, t) {
let n = new URL(e, t);
return n.searchParams.set("expoKey", window.__efpEvent), n.toString();
}
async function k(e, t) {
try {
var n;
let r = await fetch(O("/api/kiosks", t), {
method: "POST",
headers: D,
body: JSON.stringify(e)
});
return r.ok ? (n = (await r.json()).key) == null ? null : n : (console.error("createKiosk", r.status, r.statusText), null);
} catch (e) {
return console.error("createKiosk", e), null;
}
}
async function A(e, t) {
let n = localStorage.getItem(b);
if (n) try {
let r = await fetch(O("/api/kiosks", t), {
method: "POST",
headers: D,
body: JSON.stringify({
...e,
key: n
})
});
r.ok || console.error("updateKiosk", r.status, r.statusText);
} catch (e) {
console.error("updateKiosk", e);
}
}
//#endregion
export { w as a, b as c, v as d, l as f, T as i, y as l, A as n, S as o, E as r, x as s, k as t, C as u };
;/* vite-per-chunk-css */
__vite_inject_css__(".efp-set-kiosk-mode-anchor{bottom:calc(1.25rem * var(--ui-scale));z-index:9999;pointer-events:none;position:fixed;left:50%;transform:translate(-50%)}.efp-set-kiosk-mode{width:calc(23.75rem * var(--ui-scale));background:var(--color-primary);border-radius:var(--border-radius-xl);box-shadow:var(--shadow-md);pointer-events:auto;line-height:1;display:grid}.efp-set-kiosk-mode__header{padding:calc(.625rem * var(--ui-scale)) calc(1rem * var(--ui-scale));font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-white);text-align:center;grid-template-columns:auto 1fr auto;place-items:center;display:grid}.efp-set-kiosk-mode__header i{font-size:var(--icon-size-xl)}.efp-set-kiosk-mode__header img{width:var(--icon-size-xl);height:var(--icon-size-xl)}.efp-set-kiosk-mode__close{box-shadow:none;cursor:pointer;background:0 0;border:0;margin:0;padding:0}.efp-confirm-dialog{background:var(--color-white);box-shadow:var(--shadow-md);border-radius:var(--border-radius-xl);padding:calc(1rem * var(--ui-scale)) calc(1.125rem * var(--ui-scale));gap:calc(1rem * var(--ui-scale));display:grid;position:relative}.efp-confirm-dialog__content{font-size:var(--font-size-xl);font-weight:var(--font-weight-normal)}.efp-confirm-dialog__content strong{font-weight:var(--font-weight-medium)}.efp-confirm-dialog__controls{gap:calc(.625rem * var(--ui-scale));grid-template-columns:1fr 1fr;display:grid}.efp-info-message{border-radius:var(--border-radius-xl);padding:calc(1rem * var(--ui-scale)) calc(1.125rem * var(--ui-scale));background:var(--color-white);gap:calc(.5rem * var(--ui-scale));display:grid;position:relative}.efp-info-message__item{gap:calc(.625rem * var(--ui-scale));font-size:var(--font-size-xl);font-weight:var(--font-weight-normal);grid-auto-flow:column;place-content:flex-start;place-items:center;line-height:1;display:grid}.efp-info-message__item strong{font-weight:var(--font-weight-bold)}.efp-info-message__img{width:calc(1.875rem * var(--ui-scale));height:calc(1.875rem * var(--ui-scale))}.efp-set-kiosk-form{border-radius:var(--border-radius-xl);background:var(--color-white);padding:calc(1rem * var(--ui-scale)) calc(1.125rem * var(--ui-scale));display:grid;position:relative}.efp-set-kiosk-form__content{gap:calc(1rem * var(--ui-scale));display:grid}.efp-set-kiosk-form__inputs{gap:calc(.625rem * var(--ui-scale));display:grid}.efp-set-kiosk-form__controls{gap:calc(.625rem * var(--ui-scale));grid-template-columns:1fr 2fr;display:grid}.efp-range-input{gap:calc(.3125rem * var(--ui-scale));width:100%;font-size:var(--font-size-lg);display:grid}.efp-range-input__header{text-align:center;color:var(--color-black);font-size:var(--font-size-lg);font-weight:var(--font-weight-normal);grid-template-columns:auto 1fr auto;place-items:center;display:grid}.efp-range-input__header strong{font-weight:var(--font-weight-medium)}.efp-range-input__control{width:calc(1.25rem * var(--ui-scale));height:calc(1.25rem * var(--ui-scale));box-shadow:none;cursor:pointer;border:0;outline:none;place-content:center;place-items:center;margin:0;padding:0;display:grid}.efp-range-input__control i{font-size:var(--icon-size-xxs)}.efp-range-input__input-block{width:100%;height:calc(1.375rem * var(--ui-scale));place-items:center;display:grid;position:relative}.efp-range-input__input{opacity:0;z-index:2;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.efp-range-input__custom-input{height:calc(.375rem * var(--ui-scale));background:var(--color-gray-400);border-radius:calc(.1875rem * var(--ui-scale));pointer-events:none;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.efp-range-input__progress{background:var(--color-primary);border-radius:inherit;height:100%;position:absolute;top:0}.efp-range-input__progress:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){left:0}.efp-range-input__progress:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){left:0}.efp-range-input__progress:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){right:0}.efp-range-input__progress:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){right:0}.efp-range-input__thumb{width:calc(1.375rem * var(--ui-scale));height:calc(1.375rem * var(--ui-scale));background:var(--color-white);border:calc(.1875rem * var(--ui-scale)) solid var(--color-primary-dark);pointer-events:none;box-shadow:var(--shadow-sm);border-radius:50%;position:absolute;top:50%}.efp-range-input__thumb:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){left:0}.efp-range-input__thumb:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){left:0}.efp-range-input__thumb:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){right:0}.efp-range-input__thumb:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){right:0}.efp-status-messages{height:calc(calc(2.75rem * var(--ui-scale)) + var(--border-radius-2xl));border-radius:var(--border-radius-xl);grid-template-rows:1fr;display:grid;position:absolute;top:0;left:0;right:0;overflow:hidden}.efp-status-messages__message{gap:calc(.375rem * var(--ui-scale));color:var(--color-white);font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);padding-bottom:var(--border-radius-2xl);grid-auto-flow:column;place-content:center;place-items:center;display:grid}.efp-status-messages__message i{font-size:var(--icon-size-md)}.efp-status-messages__message--success{background:var(--color-green)}.efp-status-messages__message--error{background:var(--color-red)}\n/*$vite$:1*/", "kioskApi.css", false);