ov25-ui
Version:
A UI configurator for OV25 product visualization
1,046 lines • 1.02 MB
JavaScript
import * as w from "react";
import i, { forwardRef as jr, createElement as nl, isValidElement as us, useState as K, useRef as ge, useCallback as he, useLayoutEffect as Ht, useContext as $l, createContext as Ul, useMemo as Ae, useEffect as ae, useId as Yp } from "react";
import { createRoot as sv } from "react-dom/client";
import * as Xp from "react-dom";
import Kp, { createPortal as Xe } from "react-dom";
import { jsx as it, jsxs as sd, Fragment as ld } from "react/jsx-runtime";
const Qp = "bedAllowNone";
function Zp(t) {
if (t.headboard && t.base && t.mattress)
return;
const e = [];
return t.headboard && e.push("headboard"), t.base && e.push("base"), t.mattress && e.push("mattress"), e.length === 0 ? "none" : e.join(",");
}
const Jp = "REQUEST_TRANSITION_SNAPSHOT", lv = "TRANSITION_SNAPSHOT", cv = "TRANSITION_SNAPSHOT_ERROR", eh = 350, th = 500, oh = 160, rh = 500, hi = "cubic-bezier(0.4, 0, 0.2, 1)", nh = 220, gi = 280, dv = 240, ah = 2147483645, ih = 2147483647, sh = "ov25-configurator-background-color", uv = "--ov25-configurator-iframe-background-color", al = "#ffffff";
function lh(t) {
const e = (r) => {
const n = r.getElementById(t);
if (n) return n;
for (const a of Array.from(r.querySelectorAll("*")))
if (a.shadowRoot) {
const s = e(a.shadowRoot);
if (s) return s;
}
return null;
}, o = (r) => {
if (r.shadowRoot) {
const n = e(r.shadowRoot);
if (n) return n;
}
for (const n of Array.from(r.children)) {
const a = o(n);
if (a) return a;
}
return null;
};
return o(document.documentElement);
}
function co(t) {
const e = document.getElementById(t);
if (e)
return e;
if (t === "ov25-configurator-variant-menu-container") {
const a = document.getElementById("ov25-variants-shadow-container");
if (a != null && a.shadowRoot) {
const s = a.shadowRoot.getElementById(t);
if (s)
return s;
}
}
const o = document.getElementById("ov25-mobile-drawer-container");
if (o != null && o.shadowRoot) {
const a = o.shadowRoot.getElementById(t);
if (a)
return a;
}
const r = document.getElementById("ov25-modal-portal-container");
if (r != null && r.shadowRoot) {
const a = r.shadowRoot.getElementById(t);
if (a)
return a;
}
const n = document.querySelectorAll('div[class^="ov25-configurator-"]');
for (const a of Array.from(n))
if (a.shadowRoot) {
const s = a.shadowRoot.getElementById(t);
if (s)
return s;
const l = a.shadowRoot.querySelectorAll('div[class^="ov25-configurator-"]');
for (const d of Array.from(l))
if (d.shadowRoot) {
const c = d.shadowRoot.getElementById(t);
if (c)
return c;
}
}
return lh(t);
}
function jl() {
if (typeof document > "u")
return al;
const t = co(sh);
if (t) {
const { backgroundColor: o } = getComputedStyle(t);
if (o && o !== "rgba(0, 0, 0, 0)" && o !== "transparent")
return o;
}
const e = getComputedStyle(document.documentElement).getPropertyValue(uv).trim();
return e || al;
}
function gn(t) {
const e = t ? `ov25-configurator-iframe-${t}` : "ov25-configurator-iframe";
return co(e);
}
function vv(t, e) {
const o = t ? `ov25-configurator-iframe-container-${t}` : "ov25-configurator-iframe-container", n = co(e ? "true-ov25-configurator-iframe-container" : o);
if (!n) return null;
const a = n.getBoundingClientRect();
return a.width < 1 || a.height < 1 ? null : { top: a.top, left: a.left, width: a.width, height: a.height };
}
const ch = {}, dh = /* @__PURE__ */ new Set(["1", "true", "yes", "on"]), uh = "https://configurator.orbital.vision", cd = "3000", Ga = (t) => typeof t != "string" ? !1 : dh.has(t.trim().toLowerCase()), vh = () => {
const t = ch;
return Ga("") || Ga("") || Ga(t["ov25-configurator-dev"]) || Ga("");
}, fh = (t) => t.includes(":") && !t.startsWith("[") ? `[${t}]` : t, mh = () => {
if (typeof window > "u")
return `http://localhost:${cd}/configurator`;
const t = window.location.hostname || "localhost";
return `http://${fh(t)}:${cd}/configurator`;
}, fv = () => vh() ? mh() : uh, mv = "showAttachmentPoints";
function Xo(t) {
var o, r;
return ((r = (o = t == null ? void 0 : t.metadata) == null ? void 0 : o.bedSize) == null ? void 0 : r.trim()) || void 0;
}
function ph(t, e) {
if (t.length <= 1) return [...t];
const o = [], r = [];
for (const n of t) {
const a = e(n);
(typeof a == "string" && a.trim().toLowerCase() === "none" ? o : r).push(n);
}
return [...o, ...r];
}
function hh(t) {
var r;
if (((r = t.name) == null ? void 0 : r.trim().toLowerCase()) === "none") return "none";
const o = Xo(t);
return (o == null ? void 0 : o.trim().toLowerCase()) === "none" ? "none" : t.name ?? "";
}
function gh(t) {
return ph(t, (e) => hh(e));
}
function bh(t, e, o) {
if (!Array.isArray(t) || t.length === 0) return !1;
const r = (...n) => {
for (const a of n) {
if (a == null) continue;
const s = Number(a);
if (!Number.isNaN(s)) return s;
}
return NaN;
};
return t.some((n) => {
if (!n || typeof n != "object") return !1;
const a = n, s = a.product && typeof a.product == "object" ? a.product : void 0, l = a.model && typeof a.model == "object" ? a.model : void 0, d = r(a.productId, a.product_id, s == null ? void 0 : s.id), c = r(a.modelId, a.model_id, l == null ? void 0 : l.modelId);
return d === Number(e) && c === Number(o);
});
}
function yh(t, e) {
if (t === null || t.length !== e.length) return !1;
for (let o = 0; o < t.length; o++)
if (Number(t[o].productId) !== Number(e[o].productId)) return !1;
return !0;
}
const Wl = (t) => gn(t), Ut = (t, e, o) => {
const r = Wl(o);
r != null && r.contentWindow && r.contentWindow.postMessage({
type: t,
payload: JSON.stringify(e)
}, "*");
}, pv = (t, e, o, r) => {
Ut("VIEW_DIMENSIONS", { dimensions: !t, styles: r }, o), e((n) => !n);
}, wh = (t, e, o, r) => {
Ut("VIEW_MINI_DIMENSIONS", { miniDimensions: !t, styles: r }, o), e((n) => !n);
}, hv = (t) => {
Ut("REQUEST_SNAP2_SAVE", {}, t);
}, Yn = (t, e) => {
Ut("SELECT_MODULE", t, e);
}, xh = (t) => {
Ut("TOGGLE_SNAP2_SHOW_FLOOR", {}, t);
}, Eh = (t, e) => {
Ut("SNAP2_SWITCH_VIEW_GROUP", { groupId: t }, e);
}, mr = (t) => {
Ut("CLOSE_MODULE_SELECT_MENU", {}, t);
}, Sh = 12e4;
function kh(t) {
return new Promise((e, o) => {
const r = Wl(t);
if (!(r != null && r.contentWindow)) {
o(new Error("Configurator iframe not found"));
return;
}
const n = r.contentWindow, a = `${Date.now()}-${Math.random().toString(36).slice(2, 11)}`, s = window.setTimeout(() => {
window.removeEventListener("message", l), o(new Error("Snap2 screenshot capture timed out"));
}, Sh), l = (d) => {
if (d.source !== n) return;
const c = d.data;
if (!(!c || typeof c.type != "string" || typeof c.payload != "string")) {
if (c.type === "SNAP2_SCREENSHOTS_RESULT") {
let u;
try {
u = JSON.parse(c.payload);
} catch {
return;
}
if (u.requestId !== a) return;
window.clearTimeout(s), window.removeEventListener("message", l), e(Array.isArray(u.items) ? u.items : []);
return;
}
if (c.type === "ERROR") {
let u;
try {
u = JSON.parse(c.payload);
} catch {
return;
}
if (u.requestId !== a) return;
window.clearTimeout(s), window.removeEventListener("message", l), o(new Error(u.message || "Screenshot capture failed"));
}
}
};
window.addEventListener("message", l), Ut("SNAP2_CAPTURE_SCREENSHOTS", { requestId: a }, t);
});
}
const _h = (t) => {
Ut("TOGGLE_ANIMATION", {}, t);
}, Ch = (t) => {
Ut("ENTER_AR", {}, t);
}, gv = (t) => {
const e = Wl(t), o = e == null ? void 0 : e.parentElement;
o && (document.fullscreenElement ? document.exitFullscreen() : o.requestFullscreen().catch((r) => {
console.error(`Error attempting to enable fullscreen: ${r.message}`);
}));
}, Th = (t, e) => t ? e === "open" || e === "loop" ? "Close" : "Open" : "", Nh = (t, e, o, r, n, a) => {
const s = fv();
t || (t = ""), e || (e = "");
const l = e.startsWith("/") ? e.substring(1) : e, d = l.indexOf("?"), c = d >= 0 ? l.slice(0, d) : l, u = new URLSearchParams(d >= 0 ? l.slice(d + 1) : ""), f = window.location.search;
if (new URLSearchParams(f).forEach((g, v) => {
u.has(v) || u.set(v, g);
}), o && u.set("configuration_uuid", o), r) {
const g = r.startsWith("#") ? r.substring(1) : r;
u.set("hexBgColor", g);
}
n != null && n !== "" && u.set(Qp, n), a === !1 && u.set(mv, "false");
const p = u.toString(), m = p ? `${c}?${p}` : c;
return `${s}/${t}/${m}`;
}, bi = 0.42, bv = 1 - bi, Ih = () => {
const t = navigator.userAgent || navigator.vendor || window.opera;
return /Mobi|Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(t) ? /iPad|iPhone|iPod/.test(t) && !window.MSStream ? "ios" : "android" : /Win/i.test(t) ? "windows" : /Mac/i.test(t) ? "mac" : "unknown";
};
function Oh(t) {
const e = t.trim();
return /^headboard\b/i.test(e) ? "headboard" : /^mattress\b/i.test(e) ? "mattress" : /^base\b/i.test(e) ? "base" : null;
}
function dd(t) {
return t.trim().toLowerCase().replace(/\s+/g, " ");
}
function Mh(t, e) {
return dd(t) === dd(e);
}
function Rh(t) {
var o, r;
return ((r = (o = t == null ? void 0 : t.metadata) == null ? void 0 : o.bedSize) == null ? void 0 : r.trim()) || void 0;
}
function Ah(t) {
var n;
const e = Oh(t.optionDisplayName);
if (!e || !t.flags[e] || !t.currentBedSize || ((n = t.selection.name) == null ? void 0 : n.trim().toLowerCase()) === "none") return !0;
const r = Rh(t.selection);
return !r || r.trim().toLowerCase() === "none" ? !0 : Mh(r, t.currentBedSize);
}
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const Ph = (t) => t.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), Dh = (t) => t.replace(
/^([A-Z])|[\s-_]+(\w)/g,
(e, o, r) => r ? r.toUpperCase() : o.toLowerCase()
), ud = (t) => {
const e = Dh(t);
return e.charAt(0).toUpperCase() + e.slice(1);
}, yv = (...t) => t.filter((e, o, r) => !!e && e.trim() !== "" && r.indexOf(e) === o).join(" ").trim(), Lh = (t) => {
for (const e in t)
if (e.startsWith("aria-") || e === "role" || e === "title")
return !0;
};
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
var zh = {
xmlns: "http://www.w3.org/2000/svg",
width: 24,
height: 24,
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
strokeWidth: 2,
strokeLinecap: "round",
strokeLinejoin: "round"
};
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const Bh = jr(
({
color: t = "currentColor",
size: e = 24,
strokeWidth: o = 2,
absoluteStrokeWidth: r,
className: n = "",
children: a,
iconNode: s,
...l
}, d) => nl(
"svg",
{
ref: d,
...zh,
width: e,
height: e,
stroke: t,
strokeWidth: r ? Number(o) * 24 / Number(e) : o,
className: yv("lucide", n),
...!a && !Lh(l) && { "aria-hidden": "true" },
...l
},
[
...s.map(([c, u]) => nl(c, u)),
...Array.isArray(a) ? a : [a]
]
)
);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const ze = (t, e) => {
const o = jr(
({ className: r, ...n }, a) => nl(Bh, {
ref: a,
iconNode: e,
className: yv(
`lucide-${Ph(ud(t))}`,
`lucide-${t}`,
r
),
...n
})
);
return o.displayName = ud(t), o;
};
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const Fh = [
["path", { d: "M19 9V6a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2v3", key: "irtipd" }],
[
"path",
{
d: "M3 16a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-5a2 2 0 0 0-4 0v1.5a.5.5 0 0 1-.5.5h-9a.5.5 0 0 1-.5-.5V11a2 2 0 0 0-4 0z",
key: "1qyhux"
}
],
["path", { d: "M5 18v2", key: "ppbyun" }],
["path", { d: "M19 18v2", key: "gy7782" }]
], Wr = ze("armchair", Fh);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const Vh = [
["path", { d: "m12 19-7-7 7-7", key: "1l729n" }],
["path", { d: "M19 12H5", key: "x3x0zl" }]
], $h = ze("arrow-left", Vh);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const Uh = [
["path", { d: "M5 12h14", key: "1ays0h" }],
["path", { d: "m12 5 7 7-7 7", key: "xquz4c" }]
], jh = ze("arrow-right", Uh);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const Wh = [
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
["path", { d: "m4.9 4.9 14.2 14.2", key: "1m5liu" }]
], Hh = ze("ban", Wh);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const Gh = [
[
"path",
{
d: "M14.5 4h-5L7 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3l-2.5-3z",
key: "1tc9qg"
}
],
["circle", { cx: "12", cy: "13", r: "3", key: "1vg3eu" }]
], il = ze("camera", Gh);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const qh = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]], pr = ze("chevron-down", qh);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const Yh = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]], sl = ze("chevron-left", Yh);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const Xh = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]], ra = ze("chevron-right", Xh);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const Kh = [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]], na = ze("chevron-up", Kh);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const Qh = [
["path", { d: "m6 17 5-5-5-5", key: "xnjwq" }],
["path", { d: "m13 17 5-5-5-5", key: "17xmmf" }]
], wv = ze("chevrons-right", Qh);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const Zh = [
["polyline", { points: "15 10 20 15 15 20", key: "1q7qjw" }],
["path", { d: "M4 4v7a4 4 0 0 0 4 4h12", key: "z08zvw" }]
], xv = ze("corner-down-right", Zh);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const Jh = [
["path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4", key: "ih7n3h" }],
["polyline", { points: "7 10 12 15 17 10", key: "2ggqvy" }],
["line", { x1: "12", x2: "12", y1: "15", y2: "3", key: "1vk2je" }]
], Ev = ze("download", Jh);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const eg = [
["path", { d: "m15 15 6 6", key: "1s409w" }],
["path", { d: "m15 9 6-6", key: "ko1vev" }],
["path", { d: "M21 16.2V21h-4.8", key: "1hrera" }],
["path", { d: "M21 7.8V3h-4.8", key: "ul1q53" }],
["path", { d: "M3 16.2V21h4.8", key: "1x04uo" }],
["path", { d: "m3 21 6-6", key: "wwnumi" }],
["path", { d: "M3 7.8V3h4.8", key: "1ijppm" }],
["path", { d: "M9 9 3 3", key: "v551iv" }]
], tg = ze("expand", eg);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const og = [
["path", { d: "m15 18-.722-3.25", key: "1j64jw" }],
["path", { d: "M2 8a10.645 10.645 0 0 0 20 0", key: "1e7gxb" }],
["path", { d: "m20 15-1.726-2.05", key: "1cnuld" }],
["path", { d: "m4 15 1.726-2.05", key: "1dsqqd" }],
["path", { d: "m9 18 .722-3.25", key: "ypw2yx" }]
], rg = ze("eye-closed", og);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const ng = [
[
"path",
{
d: "M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",
key: "1nclc0"
}
],
["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }]
], ag = ze("eye", ng);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const ig = [
[
"path",
{
d: "M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",
key: "sc7q7i"
}
]
], sg = ze("funnel", ig);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const lg = [
["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
["path", { d: "M3 9h18", key: "1pudct" }],
["path", { d: "M3 15h18", key: "5xshup" }],
["path", { d: "M9 3v18", key: "fh3hqa" }],
["path", { d: "M15 3v18", key: "14nvp0" }]
], cg = ze("grid-3x3", lg);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const dg = [
["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", ry: "2", key: "1m3agn" }],
["circle", { cx: "9", cy: "9", r: "2", key: "af1f0g" }],
["path", { d: "m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21", key: "1xmnt7" }]
], ug = ze("image", dg);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const vg = [
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
["path", { d: "M12 16v-4", key: "1dtifu" }],
["path", { d: "M12 8h.01", key: "e9boi3" }]
], fg = ze("info", vg);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const mg = [
[
"path",
{
d: "M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",
key: "zw3jo"
}
],
[
"path",
{
d: "M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",
key: "1wduqc"
}
],
[
"path",
{
d: "M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",
key: "kqbvx6"
}
]
], yi = ze("layers", mg);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const pg = [
[
"path",
{
d: "M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5",
key: "1gvzjb"
}
],
["path", { d: "M9 18h6", key: "x1upvd" }],
["path", { d: "M10 22h4", key: "ceow96" }]
], hg = ze("lightbulb", pg);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const gg = [["path", { d: "M21 12a9 9 0 1 1-6.219-8.56", key: "13zald" }]], Sv = ze("loader-circle", gg);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const bg = [
["polyline", { points: "15 3 21 3 21 9", key: "mznyad" }],
["polyline", { points: "9 21 3 21 3 15", key: "1avn1i" }],
["line", { x1: "21", x2: "14", y1: "3", y2: "10", key: "ota7mn" }],
["line", { x1: "3", x2: "10", y1: "21", y2: "14", key: "1atl0r" }]
], yg = ze("maximize-2", bg);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const wg = [["path", { d: "M5 12h14", key: "1ays0h" }]], xg = ze("minus", wg);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const Eg = [
[
"path",
{
d: "M4.037 4.688a.495.495 0 0 1 .651-.651l16 6.5a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063z",
key: "edeuup"
}
]
], Sg = ze("mouse-pointer-2", Eg);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const kg = [
["path", { d: "M12 2v20", key: "t6zp3m" }],
["path", { d: "m15 19-3 3-3-3", key: "11eu04" }],
["path", { d: "m19 9 3 3-3 3", key: "1mg7y2" }],
["path", { d: "M2 12h20", key: "9i4pu4" }],
["path", { d: "m5 9-3 3 3 3", key: "j64kie" }],
["path", { d: "m9 5 3-3 3 3", key: "l8vdw6" }]
], _g = ze("move", kg);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const Cg = [
["rect", { x: "16", y: "16", width: "6", height: "6", rx: "1", key: "4q2zg0" }],
["rect", { x: "2", y: "16", width: "6", height: "6", rx: "1", key: "8cvhb9" }],
["rect", { x: "9", y: "2", width: "6", height: "6", rx: "1", key: "1egb70" }],
["path", { d: "M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3", key: "1jsf9p" }],
["path", { d: "M12 12V8", key: "2874zd" }]
], Tg = ze("network", Cg);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const Ng = [
[
"path",
{
d: "M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z",
key: "e79jfc"
}
],
["circle", { cx: "13.5", cy: "6.5", r: ".5", fill: "currentColor", key: "1okk4w" }],
["circle", { cx: "17.5", cy: "10.5", r: ".5", fill: "currentColor", key: "f64h9f" }],
["circle", { cx: "6.5", cy: "12.5", r: ".5", fill: "currentColor", key: "qy21gx" }],
["circle", { cx: "8.5", cy: "7.5", r: ".5", fill: "currentColor", key: "fotxhn" }]
], kv = ze("palette", Ng);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const Ig = [
["path", { d: "M5 12h14", key: "1ays0h" }],
["path", { d: "M12 5v14", key: "s699le" }]
], Pi = ze("plus", Ig);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const Og = [
["path", { d: "M18 7c0-5.333-8-5.333-8 0", key: "1prm2n" }],
["path", { d: "M10 7v14", key: "18tmcs" }],
["path", { d: "M6 21h12", key: "4dkmi1" }],
["path", { d: "M6 13h10", key: "ybwr4a" }]
], Mg = ze("pound-sterling", Og);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const Rg = [
[
"path",
{
d: "M16.466 7.5C15.643 4.237 13.952 2 12 2 9.239 2 7 6.477 7 12s2.239 10 5 10c.342 0 .677-.069 1-.2",
key: "10n0gc"
}
],
["path", { d: "m15.194 13.707 3.814 1.86-1.86 3.814", key: "16shm9" }],
[
"path",
{
d: "M19 15.57c-1.804.885-4.274 1.43-7 1.43-5.523 0-10-2.239-10-5s4.477-5 10-5c4.838 0 8.873 1.718 9.8 4",
key: "1lxi77"
}
]
], Ag = ze("rotate-3d", Rg);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const Pg = [
[
"path",
{
d: "M21.3 15.3a2.4 2.4 0 0 1 0 3.4l-2.6 2.6a2.4 2.4 0 0 1-3.4 0L2.7 8.7a2.41 2.41 0 0 1 0-3.4l2.6-2.6a2.41 2.41 0 0 1 3.4 0Z",
key: "icamh8"
}
],
["path", { d: "m14.5 12.5 2-2", key: "inckbg" }],
["path", { d: "m11.5 9.5 2-2", key: "fmmyf7" }],
["path", { d: "m8.5 6.5 2-2", key: "vc6u1g" }],
["path", { d: "m17.5 15.5 2-2", key: "wo5hmg" }]
], _v = ze("ruler", Pg);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const Dg = [
["path", { d: "M3 7V5a2 2 0 0 1 2-2h2", key: "aa7l1z" }],
["path", { d: "M17 3h2a2 2 0 0 1 2 2v2", key: "4qcy5o" }],
["path", { d: "M21 17v2a2 2 0 0 1-2 2h-2", key: "6vwrx8" }],
["path", { d: "M7 21H5a2 2 0 0 1-2-2v-2", key: "ioqczr" }],
["path", { d: "M7 12h10", key: "b7w52i" }]
], Lg = ze("scan-line", Dg);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const zg = [
["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }],
["path", { d: "m21 21-4.3-4.3", key: "1qie3q" }]
], Bg = ze("search", zg);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const Fg = [
["circle", { cx: "18", cy: "5", r: "3", key: "gq8acd" }],
["circle", { cx: "6", cy: "12", r: "3", key: "w7nqdw" }],
["circle", { cx: "18", cy: "19", r: "3", key: "1xt0gg" }],
["line", { x1: "8.59", x2: "15.42", y1: "13.51", y2: "17.49", key: "47mynk" }],
["line", { x1: "15.41", x2: "8.59", y1: "6.51", y2: "10.49", key: "1n3mei" }]
], Vg = ze("share-2", Fg);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const $g = [
["path", { d: "M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8", key: "1b2hhj" }],
["polyline", { points: "16 6 12 2 8 6", key: "m901s6" }],
["line", { x1: "12", x2: "12", y1: "2", y2: "15", key: "1p0rca" }]
], Ug = ze("share", $g);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const jg = [
["circle", { cx: "8", cy: "21", r: "1", key: "jimo8o" }],
["circle", { cx: "19", cy: "21", r: "1", key: "13723u" }],
[
"path",
{
d: "M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12",
key: "9zh506"
}
]
], vd = ze("shopping-cart", jg);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const Wg = [
["line", { x1: "21", x2: "14", y1: "4", y2: "4", key: "obuewd" }],
["line", { x1: "10", x2: "3", y1: "4", y2: "4", key: "1q6298" }],
["line", { x1: "21", x2: "12", y1: "12", y2: "12", key: "1iu8h1" }],
["line", { x1: "8", x2: "3", y1: "12", y2: "12", key: "ntss68" }],
["line", { x1: "21", x2: "16", y1: "20", y2: "20", key: "14d8ph" }],
["line", { x1: "12", x2: "3", y1: "20", y2: "20", key: "m0wm8r" }],
["line", { x1: "14", x2: "14", y1: "2", y2: "6", key: "14e1ph" }],
["line", { x1: "8", x2: "8", y1: "10", y2: "14", key: "1i6ji0" }],
["line", { x1: "16", x2: "16", y1: "18", y2: "22", key: "1lctlv" }]
], Cv = ze("sliders-horizontal", Wg);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const Hg = [
["path", { d: "M20 9V6a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v3", key: "1dgpiv" }],
[
"path",
{
d: "M2 16a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5a2 2 0 0 0-4 0v1.5a.5.5 0 0 1-.5.5h-11a.5.5 0 0 1-.5-.5V11a2 2 0 0 0-4 0z",
key: "xacw8m"
}
],
["path", { d: "M4 18v2", key: "jwo5n2" }],
["path", { d: "M20 18v2", key: "1ar1qi" }],
["path", { d: "M12 4v9", key: "oqhhn3" }]
], Hl = ze("sofa", Hg);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const Gg = [
[
"path",
{
d: "M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",
key: "4pj2yx"
}
],
["path", { d: "M20 3v4", key: "1olli1" }],
["path", { d: "M22 5h-4", key: "1gvqau" }],
["path", { d: "M4 17v2", key: "vumght" }],
["path", { d: "M5 18H3", key: "zchphs" }]
], Gl = ze("sparkles", Gg);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const qg = [
[
"path",
{
d: "M9 3H5a2 2 0 0 0-2 2v4m6-6h10a2 2 0 0 1 2 2v4M9 3v18m0 0h10a2 2 0 0 0 2-2V9M9 21H5a2 2 0 0 1-2-2V9m0 0h18",
key: "gugj83"
}
]
], Yg = ze("table-2", qg);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const Xg = [
["path", { d: "M14 10h2", key: "1lstlu" }],
["path", { d: "M15 22v-8", key: "1fwwgm" }],
["path", { d: "M15 2v4", key: "1044rn" }],
["path", { d: "M2 10h2", key: "1r8dkt" }],
["path", { d: "M20 10h2", key: "1ug425" }],
["path", { d: "M3 19h18", key: "awlh7x" }],
["path", { d: "M3 22v-6a2 2 135 0 1 2-2h14a2 2 45 0 1 2 2v6", key: "ibqhof" }],
["path", { d: "M3 2v2a2 2 45 0 0 2 2h14a2 2 135 0 0 2-2V2", key: "1uenja" }],
["path", { d: "M8 10h2", key: "66od0" }],
["path", { d: "M9 22v-8", key: "fmnu31" }],
["path", { d: "M9 2v4", key: "j1yeou" }]
], Kg = ze("table-rows-split", Xg);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const Qg = [
["path", { d: "M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2", key: "wrbu53" }],
["path", { d: "M15 18H9", key: "1lyqi6" }],
[
"path",
{
d: "M19 18h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.624l-3.48-4.35A1 1 0 0 0 17.52 8H14",
key: "lysw3i"
}
],
["circle", { cx: "17", cy: "18", r: "2", key: "332jqn" }],
["circle", { cx: "7", cy: "18", r: "2", key: "19iecd" }]
], Zg = ze("truck", Qg);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const Jg = [
["path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4", key: "ih7n3h" }],
["polyline", { points: "17 8 12 3 7 8", key: "t8dd8p" }],
["line", { x1: "12", x2: "12", y1: "3", y2: "15", key: "widbto" }]
], e0 = ze("upload", Jg);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const t0 = [
["path", { d: "M18 6 6 18", key: "1bl5f8" }],
["path", { d: "m6 6 12 12", key: "d8bk6v" }]
], bn = ze("x", t0);
/**
* @license lucide-react v0.503.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const o0 = [
["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }],
["line", { x1: "21", x2: "16.65", y1: "21", y2: "16.65", key: "13gj7c" }],
["line", { x1: "11", x2: "11", y1: "8", y2: "14", key: "1vmskp" }],
["line", { x1: "8", x2: "14", y1: "11", y2: "11", key: "durymu" }]
], r0 = ze("zoom-in", o0);
var n0 = (t) => {
switch (t) {
case "success":
return s0;
case "info":
return c0;
case "warning":
return l0;
case "error":
return d0;
default:
return null;
}
}, a0 = Array(12).fill(0), i0 = ({ visible: t, className: e }) => i.createElement("div", { className: ["sonner-loading-wrapper", e].filter(Boolean).join(" "), "data-visible": t }, i.createElement("div", { className: "sonner-spinner" }, a0.map((o, r) => i.createElement("div", { className: "sonner-loading-bar", key: `spinner-bar-${r}` })))), s0 = i.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20", fill: "currentColor", height: "20", width: "20" }, i.createElement("path", { fillRule: "evenodd", d: "M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z", clipRule: "evenodd" })), l0 = i.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", height: "20", width: "20" }, i.createElement("path", { fillRule: "evenodd", d: "M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z", clipRule: "evenodd" })), c0 = i.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20", fill: "currentColor", height: "20", width: "20" }, i.createElement("path", { fillRule: "evenodd", d: "M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z", clipRule: "evenodd" })), d0 = i.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20", fill: "currentColor", height: "20", width: "20" }, i.createElement("path", { fillRule: "evenodd", d: "M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z", clipRule: "evenodd" })), u0 = i.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }, i.createElement("line", { x1: "18", y1: "6", x2: "6", y2: "18" }), i.createElement("line", { x1: "6", y1: "6", x2: "18", y2: "18" })), v0 = () => {
let [t, e] = i.useState(document.hidden);
return i.useEffect(() => {
let o = () => {
e(document.hidden);
};
return document.addEventListener("visibilitychange", o), () => window.removeEventListener("visibilitychange", o);
}, []), t;
}, ll = 1, f0 = class {
constructor() {
this.subscribe = (t) => (this.subscribers.push(t), () => {
let e = this.subscribers.indexOf(t);
this.subscribers.splice(e, 1);
}), this.publish = (t) => {
this.subscribers.forEach((e) => e(t));
}, this.addToast = (t) => {
this.publish(t), this.toasts = [...this.toasts, t];
}, this.create = (t) => {
var e;
let { message: o, ...r } = t, n = typeof (t == null ? void 0 : t.id) == "number" || ((e = t.id) == null ? void 0 : e.length) > 0 ? t.id : ll++, a = this.toasts.find((l) => l.id === n), s = t.dismissible === void 0 ? !0 : t.dismissible;
return this.dismissedToasts.has(n) && this.dismissedToasts.delete(n), a ? this.toasts = this.toasts.map((l) => l.id === n ? (this.publish({ ...l, ...t, id: n, title: o }), { ...l, ...t, id: n, dismissible: s, title: o }) : l) : this.addToast({ title: o, ...r, dismissible: s, id: n }), n;
}, this.dismiss = (t) => (this.dismissedToasts.add(t), t || this.toasts.forEach((e) => {
this.subscribers.forEach((o) => o({ id: e.id, dismiss: !0 }));
}), this.subscribers.forEach((e) => e({ id: t, dismiss: !0 })), t), this.message = (t, e) => this.create({ ...e, message: t }), this.error = (t, e) => this.create({ ...e, message: t, type: "error" }), this.success = (t, e) => this.create({ ...e, type: "success", message: t }), this.info = (t, e) => this.create({ ...e, type: "info", message: t }), this.warning = (t, e) => this.create({ ...e, type: "warning", message: t }), this.loading = (t, e) => this.create({ ...e, type: "loading", message: t }), this.promise = (t, e) => {
if (!e) return;
let o;
e.loading !== void 0 && (o = this.create({ ...e, promise: t, type: "loading", message: e.loading, description: typeof e.description != "function" ? e.description : void 0 }));
let r = t instanceof Promise ? t : t(), n = o !== void 0, a, s = r.then(async (d) => {
if (a = ["resolve", d], i.isValidElement(d)) n = !1, this.create({ id: o, type: "default", message: d });
else if (p0(d) && !d.ok) {
n = !1;
let c = typeof e.error == "function" ? await e.error(`HTTP error! status: ${d.status}`) : e.error, u = typeof e.description == "function" ? await e.description(`HTTP error! status: ${d.status}`) : e.description;
this.create({ id: o, type: "error", message: c, description: u });
} else if (e.success !== void 0) {
n = !1;
let c = typeof e.success == "function" ? await e.success(d) : e.success, u = typeof e.description == "function" ? await e.description(d) : e.description;
this.create({ id: o, type: "success", message: c, description: u });
}
}).catch(async (d) => {
if (a = ["reject", d], e.error !== void 0) {
n = !1;
let c = typeof e.error == "function" ? await e.error(d) : e.error, u = typeof e.description == "function" ? await e.description(d) : e.description;
this.create({ id: o, type: "error", message: c, description: u });
}
}).finally(() => {
var d;
n && (this.dismiss(o), o = void 0), (d = e.finally) == null || d.call(e);
}), l = () => new Promise((d, c) => s.then(() => a[0] === "reject" ? c(a[1]) : d(a[1])).catch(c));
return typeof o != "string" && typeof o != "number" ? { unwrap: l } : Object.assign(o, { unwrap: l });
}, this.custom = (t, e) => {
let o = (e == null ? void 0 : e.id) || ll++;
return this.create({ jsx: t(o), id: o, ...e }), o;
}, this.getActiveToasts = () => this.toasts.filter((t) => !this.dismissedToasts.has(t.id)), this.subscribers = [], this.toasts = [], this.dismissedToasts = /* @__PURE__ */ new Set();
}
}, Zt = new f0(), m0 = (t, e) => {
let o = (e == null ? void 0 : e.id) || ll++;
return Zt.addToast({ title: t, ...e, id: o }), o;
}, p0 = (t) => t && typeof t == "object" && "ok" in t && typeof t.ok == "boolean" && "status" in t && typeof t.status == "number", h0 = m0, g0 = () => Zt.toasts, b0 = () => Zt.getActiveToasts(), xo = Object.assign(h0, { success: Zt.success, info: Zt.info, warning: Zt.warning, error: Zt.error, custom: Zt.custom, message: Zt.message, promise: Zt.promise, dismiss: Zt.dismiss, loading: Zt.loading }, { getHistory: g0, getToasts: b0 });
function y0(t, { insertAt: e } = {}) {
if (typeof document > "u") return;
let o = document.head || document.getElementsByTagName("head")[0], r = document.createElement("style");
r.type = "text/css", e === "top" && o.firstChild ? o.insertBefore(r, o.firstChild) : o.appendChild(r), r.styleSheet ? r.styleSheet.cssText = t : r.appendChild(document.createTextNode(t));
}
y0(`:where(html[dir="ltr"]),:where([data-sonner-toaster][dir="ltr"]){--toast-icon-margin-start: -3px;--toast-icon-margin-end: 4px;--toast-svg-margin-start: -1px;--toast-svg-margin-end: 0px;--toast-button-margin-start: auto;--toast-button-margin-end: 0;--toast-close-button-start: 0;--toast-close-button-end: unset;--toast-close-button-transform: translate(-35%, -35%)}:where(html[dir="rtl"]),:where([data-sonner-toaster][dir="rtl"]){--toast-icon-margin-start: 4px;--toast-icon-margin-end: -3px;--toast-svg-margin-start: 0px;--toast-svg-margin-end: -1px;--toast-button-margin-start: 0;--toast-button-margin-end: auto;--toast-close-button-start: unset;--toast-close-button-end: 0;--toast-close-button-transform: translate(35%, -35%)}:where([data-sonner-toaster]){position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1: hsl(0, 0%, 99%);--gray2: hsl(0, 0%, 97.3%);--gray3: hsl(0, 0%, 95.1%);--gray4: hsl(0, 0%, 93%);--gray5: hsl(0, 0%, 90.9%);--gray6: hsl(0, 0%, 88.7%);--gray7: hsl(0, 0%, 85.8%);--gray8: hsl(0, 0%, 78%);--gray9: hsl(0, 0%, 56.1%);--gray10: hsl(0, 0%, 52.3%);--gray11: hsl(0, 0%, 43.5%);--gray12: hsl(0, 0%, 9%);--border-radius: 8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:none;z-index:999999999;transition:transform .4s ease}:where([data-sonner-toaster][data-lifted="true"]){transform:translateY(-10px)}@media (hover: none) and (pointer: coarse){:where([data-sonner-toaster][data-lifted="true"]){transform:none}}:where([data-sonner-toaster][data-x-position="right"]){right:var(--offset-right)}:where([data-sonner-toaster][data-x-position="left"]){left:var(--offset-left)}:where([data-sonner-toaster][data-x-position="center"]){left:50%;transform:translate(-50%)}:where([data-sonner-toaster][data-y-position="top"]){top:var(--offset-top)}:where([data-sonner-toaster][data-y-position="bottom"]){bottom:var(--offset-bottom)}:where([data-sonner-toast]){--y: translateY(100%);--lift-amount: calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);filter:blur(0);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:none;overflow-wrap:anywhere}:where([data-sonner-toast][data-styled="true"]){padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px #0000001a;width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}:where([data-sonner-toast]:focus-visible){box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast][data-y-position="top"]){top:0;--y: translateY(-100%);--lift: 1;--lift-amount: calc(1 * var(--gap))}:where([data-sonner-toast][data-y-position="bottom"]){bottom:0;--y: translateY(100%);--lift: -1;--lift-amount: calc(var(--lift) * var(--gap))}:where([data-sonner-toast]) :where([data-description]){font-weight:400;line-height:1.4;color:inherit}:where([data-sonner-toast]) :where([data-title]){font-weight:500;line-height:1.5;color:inherit}:where([data-sonner-toast]) :where([data-icon]){display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}:where([data-sonner-toast][data-promise="true"]) :where([data-icon])>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}:where([data-sonner-toast]) :where([data-icon])>*{flex-shrink:0}:where([data-sonner-toast]) :where([data-icon]) svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}:where([data-sonner-toast]) :where([data-content]){display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;cursor:pointer;outline:none;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}:where([data-sonner-toast]) :where([data-button]):focus-visible{box-shadow:0 0 0 2px #0006}:where([data-sonner-toast]) :where([data-button]):first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}:where([data-sonner-toast]) :where([data-cancel]){color:var(--normal-text);background:rgba(0,0,0,.08)}:where([data-sonner-toast][data-theme="dark"]) :where([data-cancel]){background:rgba(255,255,255,.3)}:where([data-sonner-toast]) :where([data-close-button]){position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast] [data-close-button]{background:var(--gray1)}:where([data-sonner-toast]) :where([data-close-button]):focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast]) :where([data-disabled="true"]){cursor:not-allowed}:where([data-sonner-toast]):hover :where([data-close-button]):hover{background:var(--gray2);border-color:var(--gray5)}:where([data-sonner-toast][data-swiping="true"]):before{content:"";position:absolute;left:-50%;right:-50%;height:100%;z-index:-1}:where([data-sonner-toast][data-y-position="top"][data-swiping="true"]):before{bottom:50%;transform:scaleY(3) translateY(50%)}:where([data-sonner-toast][data-y-position="bottom"][data-swiping="true"]):before{top:50%;transform:scaleY(3) translateY(-50%)}:where([data-sonner-toast][data-swiping="false"][data-removed="true"]):before{content:"";position:absolute;inset:0;transform:scaleY(2)}:where([data-sonner-toast]):after{content:"";position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}:where([data-sonner-toast][data-mounted="true"]){--y: translateY(0);opacity:1}:where([data-sonner-toast][data-expanded="false"][data-front="false"]){--scale: var(--toasts-before) * .05 + 1;--y: translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}:where([data-sonner-toast])>*{transition:opacity .4s}:where([data-sonner-toast][data-expanded="false"][data-front="false"][data-styled="true"])>*{opacity:0}:where([data-sonner-toast][data-visible="false"]){opacity:0;pointer-events:none}:where([data-sonner-toast][data-mounted="true"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}:where([data-sonner-toast][data-removed="true"][data-front="true"][data-swipe-out="false"]){--y: translateY(calc(var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="false"]){--y: translateY(40%);opacity:0;transition:transform .5s,opacity .2s}:where([data-sonner-toast][data-removed="true"][data-front="false"]):before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y, 0px)) translate(var(--swipe-amount-x, 0px));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width: 600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:c