youtuber-blog-frontend/build/server/chunks/_layout.svelte-D5y6O6Mm.js
2024-06-07 16:10:14 +02:00

2691 lines
164 KiB
JavaScript

import { c as create_ssr_component, v as validate_component, e as escape, a as each, b as add_attribute, s as spread, d as escape_attribute_value, f as escape_object, g as add_styles, h as merge_ssr_styles, m as missing_component } from './ssr-DX6yy04n.js';
import { I as Icon$1 } from './Icon-DFquJFK5.js';
import { c as compute_rest_props, b as getContext, a as subscribe, o as onDestroy, s as setContext, n as noop } from './lifecycle-CPZ0ouVO.js';
import { i as is_void, o as omit, w as withGet, c as createElHelpers, m as makeElement, s as styleToString, p as portalAttr, e as effect, a as isHTMLElement, b as executeCallbacks, d as addMeltEventListener, F as FIRST_LAST_KEYS, k as kbd, S as SELECTION_KEYS, u as useEscapeKeydown, n as noop$1, f as isElementDisabled, g as safeOnMount, h as isBrowser, j as addEventListener, l as disabledAttr } from './index3-TIAgGdNz.js';
import { d as derived, w as writable } from './index2-CkEewRlU.js';
import { c as createDispatcher, d as disabledAttrs, a as createBitAttrs, r as removeUndefined, g as getOptionUpdater, b as cn$1, t as toastState, e as toWritableStores, o as overridable, u as useEffect } from './index-EscoC7AS.js';
import { D as Dialog_content, a as Dialog_close, X as X$1, b as Dialog, c as Dialog_trigger, d as Dialog_portal, e as Dialog_overlay, f as fly, g as generateId, h as fade, i as getPositioningUpdater, j as createTypeaheadSearch, k as generateIds, l as derivedVisible, u as usePopper, m as getPortalDestination, n as handleRovingFocus, o as usePortal, s as sleep, r as removeHighlight, p as handleFocus, q as removeScroll, t as getNextFocusable, v as getPreviousFocusable, w as addHighlight } from './x-B9UrKsW1.js';
import { t as tick } from './scheduler-DW9WkiYZ.js';
import 'clsx';
import { tv } from 'tailwind-variants';
import { M as Mode_watcher, d as derivedMode } from './mode-watcher-BgZlA57W.js';
import './config-BHx687w1.js';
import { B as Button, c as cn, f as flyAndScale } from './button-DV8DKkH_.js';
import './ssr2-BVSPLo1E.js';
import './shared-server-i79vVjEm.js';
import 'tailwind-merge';
const Menu$1 = create_ssr_component(($$result, $$props, $$bindings, slots) => {
const iconNode = [
[
"line",
{
"x1": "4",
"x2": "20",
"y1": "12",
"y2": "12"
}
],
[
"line",
{
"x1": "4",
"x2": "20",
"y1": "6",
"y2": "6"
}
],
[
"line",
{
"x1": "4",
"x2": "20",
"y1": "18",
"y2": "18"
}
]
];
return `${validate_component(Icon$1, "Icon").$$render($$result, Object.assign({}, { name: "menu" }, $$props, { iconNode }), {}, {
default: () => {
return `${slots.default ? slots.default({}) : ``}`;
}
})}`;
});
const Menu$2 = Menu$1;
const Package_2 = create_ssr_component(($$result, $$props, $$bindings, slots) => {
const iconNode = [
[
"path",
{
"d": "M3 9h18v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V9Z"
}
],
[
"path",
{
"d": "m3 9 2.45-4.9A2 2 0 0 1 7.24 3h9.52a2 2 0 0 1 1.8 1.1L21 9"
}
],
["path", { "d": "M12 3v6" }]
];
return `${validate_component(Icon$1, "Icon").$$render($$result, Object.assign({}, { name: "package-2" }, $$props, { iconNode }), {}, {
default: () => {
return `${slots.default ? slots.default({}) : ``}`;
}
})}`;
});
const Package2 = Package_2;
const Circle_user = create_ssr_component(($$result, $$props, $$bindings, slots) => {
const iconNode = [
["circle", { "cx": "12", "cy": "12", "r": "10" }],
["circle", { "cx": "12", "cy": "10", "r": "3" }],
[
"path",
{
"d": "M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662"
}
]
];
return `${validate_component(Icon$1, "Icon").$$render($$result, Object.assign({}, { name: "circle-user" }, $$props, { iconNode }), {}, {
default: () => {
return `${slots.default ? slots.default({}) : ``}`;
}
})}`;
});
const CircleUser = Circle_user;
const Sun = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let $$restProps = compute_rest_props($$props, ["size", "role", "color", "ariaLabel", "withEvents"]);
const ctx = getContext("iconCtx") ?? {};
let { size = ctx.size || "24" } = $$props;
let { role = ctx.role || "img" } = $$props;
let { color = ctx.color || "currentColor" } = $$props;
let { ariaLabel = "sun," } = $$props;
let { withEvents = false } = $$props;
if ($$props.size === void 0 && $$bindings.size && size !== void 0)
$$bindings.size(size);
if ($$props.role === void 0 && $$bindings.role && role !== void 0)
$$bindings.role(role);
if ($$props.color === void 0 && $$bindings.color && color !== void 0)
$$bindings.color(color);
if ($$props.ariaLabel === void 0 && $$bindings.ariaLabel && ariaLabel !== void 0)
$$bindings.ariaLabel(ariaLabel);
if ($$props.withEvents === void 0 && $$bindings.withEvents && withEvents !== void 0)
$$bindings.withEvents(withEvents);
return `${withEvents ? `<svg${spread(
[
{ width: escape_attribute_value(size) },
{ height: escape_attribute_value(size) },
escape_object($$restProps),
{ role: escape_attribute_value(role) },
{
"aria-label": escape_attribute_value(ariaLabel)
},
{ viewBox: "0 0 15 15" },
{ fill: escape_attribute_value(color) },
{ xmlns: "http://www.w3.org/2000/svg" }
],
{}
)}><path fill-rule="evenodd" clip-rule="evenodd" d="M7.5 0C7.77614 0 8 0.223858 8 0.5V2.5C8 2.77614 7.77614 3 7.5 3C7.22386 3 7 2.77614 7 2.5V0.5C7 0.223858 7.22386 0 7.5 0ZM2.1967 2.1967C2.39196 2.00144 2.70854 2.00144 2.90381 2.1967L4.31802 3.61091C4.51328 3.80617 4.51328 4.12276 4.31802 4.31802C4.12276 4.51328 3.80617 4.51328 3.61091 4.31802L2.1967 2.90381C2.00144 2.70854 2.00144 2.39196 2.1967 2.1967ZM0.5 7C0.223858 7 0 7.22386 0 7.5C0 7.77614 0.223858 8 0.5 8H2.5C2.77614 8 3 7.77614 3 7.5C3 7.22386 2.77614 7 2.5 7H0.5ZM2.1967 12.8033C2.00144 12.608 2.00144 12.2915 2.1967 12.0962L3.61091 10.682C3.80617 10.4867 4.12276 10.4867 4.31802 10.682C4.51328 10.8772 4.51328 11.1938 4.31802 11.3891L2.90381 12.8033C2.70854 12.9986 2.39196 12.9986 2.1967 12.8033ZM12.5 7C12.2239 7 12 7.22386 12 7.5C12 7.77614 12.2239 8 12.5 8H14.5C14.7761 8 15 7.77614 15 7.5C15 7.22386 14.7761 7 14.5 7H12.5ZM10.682 4.31802C10.4867 4.12276 10.4867 3.80617 10.682 3.61091L12.0962 2.1967C12.2915 2.00144 12.608 2.00144 12.8033 2.1967C12.9986 2.39196 12.9986 2.70854 12.8033 2.90381L11.3891 4.31802C11.1938 4.51328 10.8772 4.51328 10.682 4.31802ZM8 12.5C8 12.2239 7.77614 12 7.5 12C7.22386 12 7 12.2239 7 12.5V14.5C7 14.7761 7.22386 15 7.5 15C7.77614 15 8 14.7761 8 14.5V12.5ZM10.682 10.682C10.8772 10.4867 11.1938 10.4867 11.3891 10.682L12.8033 12.0962C12.9986 12.2915 12.9986 12.608 12.8033 12.8033C12.608 12.9986 12.2915 12.9986 12.0962 12.8033L10.682 11.3891C10.4867 11.1938 10.4867 10.8772 10.682 10.682ZM5.5 7.5C5.5 6.39543 6.39543 5.5 7.5 5.5C8.60457 5.5 9.5 6.39543 9.5 7.5C9.5 8.60457 8.60457 9.5 7.5 9.5C6.39543 9.5 5.5 8.60457 5.5 7.5ZM7.5 4.5C5.84315 4.5 4.5 5.84315 4.5 7.5C4.5 9.15685 5.84315 10.5 7.5 10.5C9.15685 10.5 10.5 9.15685 10.5 7.5C10.5 5.84315 9.15685 4.5 7.5 4.5Z" fill="currentColor"></path></svg>` : `<svg${spread(
[
{ width: escape_attribute_value(size) },
{ height: escape_attribute_value(size) },
escape_object($$restProps),
{ role: escape_attribute_value(role) },
{
"aria-label": escape_attribute_value(ariaLabel)
},
{ viewBox: "0 0 15 15" },
{ fill: escape_attribute_value(color) },
{ xmlns: "http://www.w3.org/2000/svg" }
],
{}
)}><path fill-rule="evenodd" clip-rule="evenodd" d="M7.5 0C7.77614 0 8 0.223858 8 0.5V2.5C8 2.77614 7.77614 3 7.5 3C7.22386 3 7 2.77614 7 2.5V0.5C7 0.223858 7.22386 0 7.5 0ZM2.1967 2.1967C2.39196 2.00144 2.70854 2.00144 2.90381 2.1967L4.31802 3.61091C4.51328 3.80617 4.51328 4.12276 4.31802 4.31802C4.12276 4.51328 3.80617 4.51328 3.61091 4.31802L2.1967 2.90381C2.00144 2.70854 2.00144 2.39196 2.1967 2.1967ZM0.5 7C0.223858 7 0 7.22386 0 7.5C0 7.77614 0.223858 8 0.5 8H2.5C2.77614 8 3 7.77614 3 7.5C3 7.22386 2.77614 7 2.5 7H0.5ZM2.1967 12.8033C2.00144 12.608 2.00144 12.2915 2.1967 12.0962L3.61091 10.682C3.80617 10.4867 4.12276 10.4867 4.31802 10.682C4.51328 10.8772 4.51328 11.1938 4.31802 11.3891L2.90381 12.8033C2.70854 12.9986 2.39196 12.9986 2.1967 12.8033ZM12.5 7C12.2239 7 12 7.22386 12 7.5C12 7.77614 12.2239 8 12.5 8H14.5C14.7761 8 15 7.77614 15 7.5C15 7.22386 14.7761 7 14.5 7H12.5ZM10.682 4.31802C10.4867 4.12276 10.4867 3.80617 10.682 3.61091L12.0962 2.1967C12.2915 2.00144 12.608 2.00144 12.8033 2.1967C12.9986 2.39196 12.9986 2.70854 12.8033 2.90381L11.3891 4.31802C11.1938 4.51328 10.8772 4.51328 10.682 4.31802ZM8 12.5C8 12.2239 7.77614 12 7.5 12C7.22386 12 7 12.2239 7 12.5V14.5C7 14.7761 7.22386 15 7.5 15C7.77614 15 8 14.7761 8 14.5V12.5ZM10.682 10.682C10.8772 10.4867 11.1938 10.4867 11.3891 10.682L12.8033 12.0962C12.9986 12.2915 12.9986 12.608 12.8033 12.8033C12.608 12.9986 12.2915 12.9986 12.0962 12.8033L10.682 11.3891C10.4867 11.1938 10.4867 10.8772 10.682 10.682ZM5.5 7.5C5.5 6.39543 6.39543 5.5 7.5 5.5C8.60457 5.5 9.5 6.39543 9.5 7.5C9.5 8.60457 8.60457 9.5 7.5 9.5C6.39543 9.5 5.5 8.60457 5.5 7.5ZM7.5 4.5C5.84315 4.5 4.5 5.84315 4.5 7.5C4.5 9.15685 5.84315 10.5 7.5 10.5C9.15685 10.5 10.5 9.15685 10.5 7.5C10.5 5.84315 9.15685 4.5 7.5 4.5Z" fill="currentColor"></path></svg>`} `;
});
const Moon = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let $$restProps = compute_rest_props($$props, ["size", "role", "color", "ariaLabel", "withEvents"]);
const ctx = getContext("iconCtx") ?? {};
let { size = ctx.size || "24" } = $$props;
let { role = ctx.role || "img" } = $$props;
let { color = ctx.color || "currentColor" } = $$props;
let { ariaLabel = "moon," } = $$props;
let { withEvents = false } = $$props;
if ($$props.size === void 0 && $$bindings.size && size !== void 0)
$$bindings.size(size);
if ($$props.role === void 0 && $$bindings.role && role !== void 0)
$$bindings.role(role);
if ($$props.color === void 0 && $$bindings.color && color !== void 0)
$$bindings.color(color);
if ($$props.ariaLabel === void 0 && $$bindings.ariaLabel && ariaLabel !== void 0)
$$bindings.ariaLabel(ariaLabel);
if ($$props.withEvents === void 0 && $$bindings.withEvents && withEvents !== void 0)
$$bindings.withEvents(withEvents);
return `${withEvents ? `<svg${spread(
[
{ width: escape_attribute_value(size) },
{ height: escape_attribute_value(size) },
escape_object($$restProps),
{ role: escape_attribute_value(role) },
{
"aria-label": escape_attribute_value(ariaLabel)
},
{ viewBox: "0 0 15 15" },
{ fill: escape_attribute_value(color) },
{ xmlns: "http://www.w3.org/2000/svg" }
],
{}
)}><path fill-rule="evenodd" clip-rule="evenodd" d="M2.89998 0.499976C2.89998 0.279062 2.72089 0.0999756 2.49998 0.0999756C2.27906 0.0999756 2.09998 0.279062 2.09998 0.499976V1.09998H1.49998C1.27906 1.09998 1.09998 1.27906 1.09998 1.49998C1.09998 1.72089 1.27906 1.89998 1.49998 1.89998H2.09998V2.49998C2.09998 2.72089 2.27906 2.89998 2.49998 2.89998C2.72089 2.89998 2.89998 2.72089 2.89998 2.49998V1.89998H3.49998C3.72089 1.89998 3.89998 1.72089 3.89998 1.49998C3.89998 1.27906 3.72089 1.09998 3.49998 1.09998H2.89998V0.499976ZM5.89998 3.49998C5.89998 3.27906 5.72089 3.09998 5.49998 3.09998C5.27906 3.09998 5.09998 3.27906 5.09998 3.49998V4.09998H4.49998C4.27906 4.09998 4.09998 4.27906 4.09998 4.49998C4.09998 4.72089 4.27906 4.89998 4.49998 4.89998H5.09998V5.49998C5.09998 5.72089 5.27906 5.89998 5.49998 5.89998C5.72089 5.89998 5.89998 5.72089 5.89998 5.49998V4.89998H6.49998C6.72089 4.89998 6.89998 4.72089 6.89998 4.49998C6.89998 4.27906 6.72089 4.09998 6.49998 4.09998H5.89998V3.49998ZM1.89998 6.49998C1.89998 6.27906 1.72089 6.09998 1.49998 6.09998C1.27906 6.09998 1.09998 6.27906 1.09998 6.49998V7.09998H0.499976C0.279062 7.09998 0.0999756 7.27906 0.0999756 7.49998C0.0999756 7.72089 0.279062 7.89998 0.499976 7.89998H1.09998V8.49998C1.09998 8.72089 1.27906 8.89997 1.49998 8.89997C1.72089 8.89997 1.89998 8.72089 1.89998 8.49998V7.89998H2.49998C2.72089 7.89998 2.89998 7.72089 2.89998 7.49998C2.89998 7.27906 2.72089 7.09998 2.49998 7.09998H1.89998V6.49998ZM8.54406 0.98184L8.24618 0.941586C8.03275 0.917676 7.90692 1.1655 8.02936 1.34194C8.17013 1.54479 8.29981 1.75592 8.41754 1.97445C8.91878 2.90485 9.20322 3.96932 9.20322 5.10022C9.20322 8.37201 6.82247 11.0878 3.69887 11.6097C3.45736 11.65 3.20988 11.6772 2.96008 11.6906C2.74563 11.702 2.62729 11.9535 2.77721 12.1072C2.84551 12.1773 2.91535 12.2458 2.98667 12.3128L3.05883 12.3795L3.31883 12.6045L3.50684 12.7532L3.62796 12.8433L3.81491 12.9742L3.99079 13.089C4.11175 13.1651 4.23536 13.2375 4.36157 13.3059L4.62496 13.4412L4.88553 13.5607L5.18837 13.6828L5.43169 13.7686C5.56564 13.8128 5.70149 13.8529 5.83857 13.8885C5.94262 13.9155 6.04767 13.9401 6.15405 13.9622C6.27993 13.9883 6.40713 14.0109 6.53544 14.0298L6.85241 14.0685L7.11934 14.0892C7.24637 14.0965 7.37436 14.1002 7.50322 14.1002C11.1483 14.1002 14.1032 11.1453 14.1032 7.50023C14.1032 7.25044 14.0893 7.00389 14.0623 6.76131L14.0255 6.48407C13.991 6.26083 13.9453 6.04129 13.8891 5.82642C13.8213 5.56709 13.7382 5.31398 13.6409 5.06881L13.5279 4.80132L13.4507 4.63542L13.3766 4.48666C13.2178 4.17773 13.0353 3.88295 12.8312 3.60423L12.6782 3.40352L12.4793 3.16432L12.3157 2.98361L12.1961 2.85951L12.0355 2.70246L11.8134 2.50184L11.4925 2.24191L11.2483 2.06498L10.9562 1.87446L10.6346 1.68894L10.3073 1.52378L10.1938 1.47176L9.95488 1.3706L9.67791 1.2669L9.42566 1.1846L9.10075 1.09489L8.83599 1.03486L8.54406 0.98184ZM10.4032 5.30023C10.4032 4.27588 10.2002 3.29829 9.83244 2.40604C11.7623 3.28995 13.1032 5.23862 13.1032 7.50023C13.1032 10.593 10.596 13.1002 7.50322 13.1002C6.63646 13.1002 5.81597 12.9036 5.08355 12.5522C6.5419 12.0941 7.81081 11.2082 8.74322 10.0416C8.87963 10.2284 9.10028 10.3497 9.34928 10.3497C9.76349 10.3497 10.0993 10.0139 10.0993 9.59971C10.0993 9.24256 9.84965 8.94373 9.51535 8.86816C9.57741 8.75165 9.63653 8.63334 9.6926 8.51332C9.88358 8.63163 10.1088 8.69993 10.35 8.69993C11.0403 8.69993 11.6 8.14028 11.6 7.44993C11.6 6.75976 11.0406 6.20024 10.3505 6.19993C10.3853 5.90487 10.4032 5.60464 10.4032 5.30023Z" fill="currentColor"></path></svg>` : `<svg${spread(
[
{ width: escape_attribute_value(size) },
{ height: escape_attribute_value(size) },
escape_object($$restProps),
{ role: escape_attribute_value(role) },
{
"aria-label": escape_attribute_value(ariaLabel)
},
{ viewBox: "0 0 15 15" },
{ fill: escape_attribute_value(color) },
{ xmlns: "http://www.w3.org/2000/svg" }
],
{}
)}><path fill-rule="evenodd" clip-rule="evenodd" d="M2.89998 0.499976C2.89998 0.279062 2.72089 0.0999756 2.49998 0.0999756C2.27906 0.0999756 2.09998 0.279062 2.09998 0.499976V1.09998H1.49998C1.27906 1.09998 1.09998 1.27906 1.09998 1.49998C1.09998 1.72089 1.27906 1.89998 1.49998 1.89998H2.09998V2.49998C2.09998 2.72089 2.27906 2.89998 2.49998 2.89998C2.72089 2.89998 2.89998 2.72089 2.89998 2.49998V1.89998H3.49998C3.72089 1.89998 3.89998 1.72089 3.89998 1.49998C3.89998 1.27906 3.72089 1.09998 3.49998 1.09998H2.89998V0.499976ZM5.89998 3.49998C5.89998 3.27906 5.72089 3.09998 5.49998 3.09998C5.27906 3.09998 5.09998 3.27906 5.09998 3.49998V4.09998H4.49998C4.27906 4.09998 4.09998 4.27906 4.09998 4.49998C4.09998 4.72089 4.27906 4.89998 4.49998 4.89998H5.09998V5.49998C5.09998 5.72089 5.27906 5.89998 5.49998 5.89998C5.72089 5.89998 5.89998 5.72089 5.89998 5.49998V4.89998H6.49998C6.72089 4.89998 6.89998 4.72089 6.89998 4.49998C6.89998 4.27906 6.72089 4.09998 6.49998 4.09998H5.89998V3.49998ZM1.89998 6.49998C1.89998 6.27906 1.72089 6.09998 1.49998 6.09998C1.27906 6.09998 1.09998 6.27906 1.09998 6.49998V7.09998H0.499976C0.279062 7.09998 0.0999756 7.27906 0.0999756 7.49998C0.0999756 7.72089 0.279062 7.89998 0.499976 7.89998H1.09998V8.49998C1.09998 8.72089 1.27906 8.89997 1.49998 8.89997C1.72089 8.89997 1.89998 8.72089 1.89998 8.49998V7.89998H2.49998C2.72089 7.89998 2.89998 7.72089 2.89998 7.49998C2.89998 7.27906 2.72089 7.09998 2.49998 7.09998H1.89998V6.49998ZM8.54406 0.98184L8.24618 0.941586C8.03275 0.917676 7.90692 1.1655 8.02936 1.34194C8.17013 1.54479 8.29981 1.75592 8.41754 1.97445C8.91878 2.90485 9.20322 3.96932 9.20322 5.10022C9.20322 8.37201 6.82247 11.0878 3.69887 11.6097C3.45736 11.65 3.20988 11.6772 2.96008 11.6906C2.74563 11.702 2.62729 11.9535 2.77721 12.1072C2.84551 12.1773 2.91535 12.2458 2.98667 12.3128L3.05883 12.3795L3.31883 12.6045L3.50684 12.7532L3.62796 12.8433L3.81491 12.9742L3.99079 13.089C4.11175 13.1651 4.23536 13.2375 4.36157 13.3059L4.62496 13.4412L4.88553 13.5607L5.18837 13.6828L5.43169 13.7686C5.56564 13.8128 5.70149 13.8529 5.83857 13.8885C5.94262 13.9155 6.04767 13.9401 6.15405 13.9622C6.27993 13.9883 6.40713 14.0109 6.53544 14.0298L6.85241 14.0685L7.11934 14.0892C7.24637 14.0965 7.37436 14.1002 7.50322 14.1002C11.1483 14.1002 14.1032 11.1453 14.1032 7.50023C14.1032 7.25044 14.0893 7.00389 14.0623 6.76131L14.0255 6.48407C13.991 6.26083 13.9453 6.04129 13.8891 5.82642C13.8213 5.56709 13.7382 5.31398 13.6409 5.06881L13.5279 4.80132L13.4507 4.63542L13.3766 4.48666C13.2178 4.17773 13.0353 3.88295 12.8312 3.60423L12.6782 3.40352L12.4793 3.16432L12.3157 2.98361L12.1961 2.85951L12.0355 2.70246L11.8134 2.50184L11.4925 2.24191L11.2483 2.06498L10.9562 1.87446L10.6346 1.68894L10.3073 1.52378L10.1938 1.47176L9.95488 1.3706L9.67791 1.2669L9.42566 1.1846L9.10075 1.09489L8.83599 1.03486L8.54406 0.98184ZM10.4032 5.30023C10.4032 4.27588 10.2002 3.29829 9.83244 2.40604C11.7623 3.28995 13.1032 5.23862 13.1032 7.50023C13.1032 10.593 10.596 13.1002 7.50322 13.1002C6.63646 13.1002 5.81597 12.9036 5.08355 12.5522C6.5419 12.0941 7.81081 11.2082 8.74322 10.0416C8.87963 10.2284 9.10028 10.3497 9.34928 10.3497C9.76349 10.3497 10.0993 10.0139 10.0993 9.59971C10.0993 9.24256 9.84965 8.94373 9.51535 8.86816C9.57741 8.75165 9.63653 8.63334 9.6926 8.51332C9.88358 8.63163 10.1088 8.69993 10.35 8.69993C11.0403 8.69993 11.6 8.14028 11.6 7.44993C11.6 6.75976 11.0406 6.20024 10.3505 6.19993C10.3853 5.90487 10.4032 5.60464 10.4032 5.30023Z" fill="currentColor"></path></svg>`} `;
});
const SUB_OPEN_KEYS = {
ltr: [...SELECTION_KEYS, kbd.ARROW_RIGHT],
rtl: [...SELECTION_KEYS, kbd.ARROW_LEFT]
};
const SUB_CLOSE_KEYS = {
ltr: [kbd.ARROW_LEFT],
rtl: [kbd.ARROW_RIGHT]
};
const menuIdParts = ["menu", "trigger"];
const defaults$2 = {
arrowSize: 8,
positioning: {
placement: "bottom"
},
preventScroll: true,
closeOnEscape: true,
closeOnOutsideClick: true,
portal: void 0,
loop: false,
dir: "ltr",
defaultOpen: false,
typeahead: true,
closeOnItemClick: true,
onOutsideClick: void 0
};
function createMenuBuilder(opts) {
const { name, selector } = createElHelpers(opts.selector);
const { preventScroll, arrowSize, positioning, closeOnEscape, closeOnOutsideClick, portal, forceVisible, typeahead, loop, closeFocus, disableFocusFirstItem, closeOnItemClick, onOutsideClick } = opts.rootOptions;
const rootOpen = opts.rootOpen;
const rootActiveTrigger = opts.rootActiveTrigger;
const nextFocusable = opts.nextFocusable;
const prevFocusable = opts.prevFocusable;
const isUsingKeyboard = withGet.writable(false);
const lastPointerX = withGet(writable(0));
const pointerGraceIntent = withGet(writable(null));
const pointerDir = withGet(writable("right"));
const currentFocusedItem = withGet(writable(null));
const pointerMovingToSubmenu = withGet(derived([pointerDir, pointerGraceIntent], ([$pointerDir, $pointerGraceIntent]) => {
return (e) => {
const isMovingTowards = $pointerDir === $pointerGraceIntent?.side;
return isMovingTowards && isPointerInGraceArea(e, $pointerGraceIntent?.area);
};
}));
const { typed, handleTypeaheadSearch } = createTypeaheadSearch();
const rootIds = toWritableStores({ ...generateIds(menuIdParts), ...opts.ids });
const isVisible = derivedVisible({
open: rootOpen,
forceVisible,
activeTrigger: rootActiveTrigger
});
const rootMenu = makeElement(name(), {
stores: [isVisible, portal, rootIds.menu, rootIds.trigger],
returned: ([$isVisible, $portal, $rootMenuId, $rootTriggerId]) => {
return {
role: "menu",
hidden: $isVisible ? void 0 : true,
style: styleToString({
display: $isVisible ? void 0 : "none"
}),
id: $rootMenuId,
"aria-labelledby": $rootTriggerId,
"data-state": $isVisible ? "open" : "closed",
"data-portal": portalAttr($portal),
tabindex: -1
};
},
action: (node) => {
let unsubPopper = noop$1;
const unsubDerived = effect([isVisible, rootActiveTrigger, positioning, closeOnOutsideClick, portal, closeOnEscape], ([$isVisible, $rootActiveTrigger, $positioning, $closeOnOutsideClick, $portal, $closeOnEscape]) => {
unsubPopper();
if (!$isVisible || !$rootActiveTrigger)
return;
tick().then(() => {
unsubPopper();
setMeltMenuAttribute(node, selector);
unsubPopper = usePopper(node, {
anchorElement: $rootActiveTrigger,
open: rootOpen,
options: {
floating: $positioning,
modal: {
closeOnInteractOutside: $closeOnOutsideClick,
shouldCloseOnInteractOutside: (e) => {
onOutsideClick.get()?.(e);
if (e.defaultPrevented)
return false;
if (isHTMLElement($rootActiveTrigger) && $rootActiveTrigger.contains(e.target)) {
return false;
}
return true;
},
onClose: () => {
rootOpen.set(false);
$rootActiveTrigger.focus();
},
open: $isVisible
},
portal: getPortalDestination(node, $portal),
escapeKeydown: $closeOnEscape ? void 0 : null
}
}).destroy;
});
});
const unsubEvents = executeCallbacks(addMeltEventListener(node, "keydown", (e) => {
const target = e.target;
const menuEl = e.currentTarget;
if (!isHTMLElement(target) || !isHTMLElement(menuEl))
return;
const isKeyDownInside = target.closest('[role="menu"]') === menuEl;
if (!isKeyDownInside)
return;
if (FIRST_LAST_KEYS.includes(e.key)) {
handleMenuNavigation(e, loop.get() ?? false);
}
if (e.key === kbd.TAB) {
e.preventDefault();
rootOpen.set(false);
handleTabNavigation(e, nextFocusable, prevFocusable);
return;
}
const isCharacterKey = e.key.length === 1;
const isModifierKey = e.ctrlKey || e.altKey || e.metaKey;
if (!isModifierKey && isCharacterKey && typeahead.get() === true) {
handleTypeaheadSearch(e.key, getMenuItems(menuEl));
}
}));
return {
destroy() {
unsubDerived();
unsubEvents();
unsubPopper();
}
};
}
});
const rootTrigger = makeElement(name("trigger"), {
stores: [rootOpen, rootIds.menu, rootIds.trigger],
returned: ([$rootOpen, $rootMenuId, $rootTriggerId]) => {
return {
"aria-controls": $rootMenuId,
"aria-expanded": $rootOpen,
"data-state": $rootOpen ? "open" : "closed",
id: $rootTriggerId,
tabindex: 0
};
},
action: (node) => {
applyAttrsIfDisabled(node);
rootActiveTrigger.update((p) => {
if (p)
return p;
return node;
});
const unsub = executeCallbacks(addMeltEventListener(node, "click", (e) => {
const $rootOpen = rootOpen.get();
const triggerEl = e.currentTarget;
if (!isHTMLElement(triggerEl))
return;
handleOpen(triggerEl);
if (!$rootOpen)
e.preventDefault();
}), addMeltEventListener(node, "keydown", (e) => {
const triggerEl = e.currentTarget;
if (!isHTMLElement(triggerEl))
return;
if (!(SELECTION_KEYS.includes(e.key) || e.key === kbd.ARROW_DOWN))
return;
e.preventDefault();
handleOpen(triggerEl);
const menuId = triggerEl.getAttribute("aria-controls");
if (!menuId)
return;
const menu = document.getElementById(menuId);
if (!menu)
return;
const menuItems = getMenuItems(menu);
if (!menuItems.length)
return;
handleRovingFocus(menuItems[0]);
}));
return {
destroy: unsub
};
}
});
const rootArrow = makeElement(name("arrow"), {
stores: arrowSize,
returned: ($arrowSize) => ({
"data-arrow": true,
style: styleToString({
position: "absolute",
width: `var(--arrow-size, ${$arrowSize}px)`,
height: `var(--arrow-size, ${$arrowSize}px)`
})
})
});
const overlay = makeElement(name("overlay"), {
stores: [isVisible],
returned: ([$isVisible]) => {
return {
hidden: $isVisible ? void 0 : true,
tabindex: -1,
style: styleToString({
display: $isVisible ? void 0 : "none"
}),
"aria-hidden": "true",
"data-state": stateAttr($isVisible)
};
},
action: (node) => {
let unsubEscapeKeydown = noop$1;
if (closeOnEscape.get()) {
const escapeKeydown = useEscapeKeydown(node, {
handler: () => {
rootOpen.set(false);
const $rootActiveTrigger = rootActiveTrigger.get();
if ($rootActiveTrigger)
$rootActiveTrigger.focus();
}
});
if (escapeKeydown && escapeKeydown.destroy) {
unsubEscapeKeydown = escapeKeydown.destroy;
}
}
const unsubPortal = effect([portal], ([$portal]) => {
if ($portal === null)
return noop$1;
const portalDestination = getPortalDestination(node, $portal);
if (portalDestination === null)
return noop$1;
return usePortal(node, portalDestination).destroy;
});
return {
destroy() {
unsubEscapeKeydown();
unsubPortal();
}
};
}
});
const item = makeElement(name("item"), {
returned: () => {
return {
role: "menuitem",
tabindex: -1,
"data-orientation": "vertical"
};
},
action: (node) => {
setMeltMenuAttribute(node, selector);
applyAttrsIfDisabled(node);
const unsub = executeCallbacks(addMeltEventListener(node, "pointerdown", (e) => {
const itemEl = e.currentTarget;
if (!isHTMLElement(itemEl))
return;
if (isElementDisabled(itemEl)) {
e.preventDefault();
return;
}
}), addMeltEventListener(node, "click", (e) => {
const itemEl = e.currentTarget;
if (!isHTMLElement(itemEl))
return;
if (isElementDisabled(itemEl)) {
e.preventDefault();
return;
}
if (e.defaultPrevented) {
handleRovingFocus(itemEl);
return;
}
if (closeOnItemClick.get()) {
sleep(1).then(() => {
rootOpen.set(false);
});
}
}), addMeltEventListener(node, "keydown", (e) => {
onItemKeyDown(e);
}), addMeltEventListener(node, "pointermove", (e) => {
onMenuItemPointerMove(e);
}), addMeltEventListener(node, "pointerleave", (e) => {
onMenuItemPointerLeave(e);
}), addMeltEventListener(node, "focusin", (e) => {
onItemFocusIn(e);
}), addMeltEventListener(node, "focusout", (e) => {
onItemFocusOut(e);
}));
return {
destroy: unsub
};
}
});
const group = makeElement(name("group"), {
returned: () => {
return (groupId) => ({
role: "group",
"aria-labelledby": groupId
});
}
});
const groupLabel = makeElement(name("group-label"), {
returned: () => {
return (groupId) => ({
id: groupId
});
}
});
const checkboxItemDefaults = {
defaultChecked: false,
disabled: false
};
const createCheckboxItem = (props) => {
const withDefaults = { ...checkboxItemDefaults, ...props };
const checkedWritable = withDefaults.checked ?? writable(withDefaults.defaultChecked ?? null);
const checked = overridable(checkedWritable, withDefaults.onCheckedChange);
const disabled = writable(withDefaults.disabled);
const checkboxItem = makeElement(name("checkbox-item"), {
stores: [checked, disabled],
returned: ([$checked, $disabled]) => {
return {
role: "menuitemcheckbox",
tabindex: -1,
"data-orientation": "vertical",
"aria-checked": isIndeterminate($checked) ? "mixed" : $checked ? "true" : "false",
"data-disabled": disabledAttr($disabled),
"data-state": getCheckedState($checked)
};
},
action: (node) => {
setMeltMenuAttribute(node, selector);
applyAttrsIfDisabled(node);
const unsub = executeCallbacks(addMeltEventListener(node, "pointerdown", (e) => {
const itemEl = e.currentTarget;
if (!isHTMLElement(itemEl))
return;
if (isElementDisabled(itemEl)) {
e.preventDefault();
return;
}
}), addMeltEventListener(node, "click", (e) => {
const itemEl = e.currentTarget;
if (!isHTMLElement(itemEl))
return;
if (isElementDisabled(itemEl)) {
e.preventDefault();
return;
}
if (e.defaultPrevented) {
handleRovingFocus(itemEl);
return;
}
checked.update((prev) => {
if (isIndeterminate(prev))
return true;
return !prev;
});
if (closeOnItemClick.get()) {
tick().then(() => {
rootOpen.set(false);
});
}
}), addMeltEventListener(node, "keydown", (e) => {
onItemKeyDown(e);
}), addMeltEventListener(node, "pointermove", (e) => {
const itemEl = e.currentTarget;
if (!isHTMLElement(itemEl))
return;
if (isElementDisabled(itemEl)) {
onItemLeave(e);
return;
}
onMenuItemPointerMove(e, itemEl);
}), addMeltEventListener(node, "pointerleave", (e) => {
onMenuItemPointerLeave(e);
}), addMeltEventListener(node, "focusin", (e) => {
onItemFocusIn(e);
}), addMeltEventListener(node, "focusout", (e) => {
onItemFocusOut(e);
}));
return {
destroy: unsub
};
}
});
const isChecked = derived(checked, ($checked) => $checked === true);
const _isIndeterminate = derived(checked, ($checked) => $checked === "indeterminate");
return {
elements: {
checkboxItem
},
states: {
checked
},
helpers: {
isChecked,
isIndeterminate: _isIndeterminate
},
options: {
disabled
}
};
};
const createMenuRadioGroup = (args = {}) => {
const valueWritable = args.value ?? writable(args.defaultValue ?? null);
const value = overridable(valueWritable, args.onValueChange);
const radioGroup = makeElement(name("radio-group"), {
returned: () => ({
role: "group"
})
});
const radioItemDefaults = {
disabled: false
};
const radioItem = makeElement(name("radio-item"), {
stores: [value],
returned: ([$value]) => {
return (itemProps) => {
const { value: itemValue, disabled } = { ...radioItemDefaults, ...itemProps };
const checked = $value === itemValue;
return {
disabled,
role: "menuitemradio",
"data-state": checked ? "checked" : "unchecked",
"aria-checked": checked,
"data-disabled": disabledAttr(disabled),
"data-value": itemValue,
"data-orientation": "vertical",
tabindex: -1
};
};
},
action: (node) => {
setMeltMenuAttribute(node, selector);
const unsub = executeCallbacks(addMeltEventListener(node, "pointerdown", (e) => {
const itemEl = e.currentTarget;
if (!isHTMLElement(itemEl))
return;
const itemValue = node.dataset.value;
const disabled = node.dataset.disabled;
if (disabled || itemValue === void 0) {
e.preventDefault();
return;
}
}), addMeltEventListener(node, "click", (e) => {
const itemEl = e.currentTarget;
if (!isHTMLElement(itemEl))
return;
const itemValue = node.dataset.value;
const disabled = node.dataset.disabled;
if (disabled || itemValue === void 0) {
e.preventDefault();
return;
}
if (e.defaultPrevented) {
if (!isHTMLElement(itemEl))
return;
handleRovingFocus(itemEl);
return;
}
value.set(itemValue);
if (closeOnItemClick.get()) {
tick().then(() => {
rootOpen.set(false);
});
}
}), addMeltEventListener(node, "keydown", (e) => {
onItemKeyDown(e);
}), addMeltEventListener(node, "pointermove", (e) => {
const itemEl = e.currentTarget;
if (!isHTMLElement(itemEl))
return;
const itemValue = node.dataset.value;
const disabled = node.dataset.disabled;
if (disabled || itemValue === void 0) {
onItemLeave(e);
return;
}
onMenuItemPointerMove(e, itemEl);
}), addMeltEventListener(node, "pointerleave", (e) => {
onMenuItemPointerLeave(e);
}), addMeltEventListener(node, "focusin", (e) => {
onItemFocusIn(e);
}), addMeltEventListener(node, "focusout", (e) => {
onItemFocusOut(e);
}));
return {
destroy: unsub
};
}
});
const isChecked = derived(value, ($value) => {
return (itemValue) => {
return $value === itemValue;
};
});
return {
elements: {
radioGroup,
radioItem
},
states: {
value
},
helpers: {
isChecked
}
};
};
const { elements: { root: separator } } = createSeparator({
orientation: "horizontal"
});
const subMenuDefaults = {
...defaults$2,
disabled: false,
positioning: {
placement: "right-start",
gutter: 8
}
};
const createSubmenu = (args) => {
const withDefaults = { ...subMenuDefaults, ...args };
const subOpenWritable = withDefaults.open ?? writable(false);
const subOpen = overridable(subOpenWritable, withDefaults?.onOpenChange);
const options = toWritableStores(omit(withDefaults, "ids"));
const { positioning: positioning2, arrowSize: arrowSize2, disabled } = options;
const subActiveTrigger = withGet(writable(null));
const subOpenTimer = withGet(writable(null));
const pointerGraceTimer = withGet(writable(0));
const subIds = toWritableStores({ ...generateIds(menuIdParts), ...withDefaults.ids });
safeOnMount(() => {
const subTrigger2 = document.getElementById(subIds.trigger.get());
if (subTrigger2) {
subActiveTrigger.set(subTrigger2);
}
});
const subIsVisible = derivedVisible({
open: subOpen,
forceVisible,
activeTrigger: subActiveTrigger
});
const subMenu = makeElement(name("submenu"), {
stores: [subIsVisible, subIds.menu, subIds.trigger],
returned: ([$subIsVisible, $subMenuId, $subTriggerId]) => {
return {
role: "menu",
hidden: $subIsVisible ? void 0 : true,
style: styleToString({
display: $subIsVisible ? void 0 : "none"
}),
id: $subMenuId,
"aria-labelledby": $subTriggerId,
"data-state": $subIsVisible ? "open" : "closed",
// unit tests fail on `.closest` if the id starts with a number
// so using a data attribute
"data-id": $subMenuId,
tabindex: -1
};
},
action: (node) => {
let unsubPopper = noop$1;
const unsubDerived = effect([subIsVisible, positioning2], ([$subIsVisible, $positioning]) => {
unsubPopper();
if (!$subIsVisible)
return;
const activeTrigger = subActiveTrigger.get();
if (!activeTrigger)
return;
tick().then(() => {
unsubPopper();
const parentMenuEl = getParentMenu(activeTrigger);
unsubPopper = usePopper(node, {
anchorElement: activeTrigger,
open: subOpen,
options: {
floating: $positioning,
portal: isHTMLElement(parentMenuEl) ? parentMenuEl : void 0,
modal: null,
focusTrap: null,
escapeKeydown: null
}
}).destroy;
});
});
const unsubEvents = executeCallbacks(addMeltEventListener(node, "keydown", (e) => {
if (e.key === kbd.ESCAPE) {
return;
}
const target = e.target;
const menuEl = e.currentTarget;
if (!isHTMLElement(target) || !isHTMLElement(menuEl))
return;
const isKeyDownInside = target.closest('[role="menu"]') === menuEl;
if (!isKeyDownInside)
return;
if (FIRST_LAST_KEYS.includes(e.key)) {
e.stopImmediatePropagation();
handleMenuNavigation(e, loop.get() ?? false);
return;
}
const isCloseKey = SUB_CLOSE_KEYS["ltr"].includes(e.key);
const isModifierKey = e.ctrlKey || e.altKey || e.metaKey;
const isCharacterKey = e.key.length === 1;
if (isCloseKey) {
const $subActiveTrigger = subActiveTrigger.get();
e.preventDefault();
subOpen.update(() => {
if ($subActiveTrigger) {
handleRovingFocus($subActiveTrigger);
}
return false;
});
return;
}
if (e.key === kbd.TAB) {
e.preventDefault();
rootOpen.set(false);
handleTabNavigation(e, nextFocusable, prevFocusable);
return;
}
if (!isModifierKey && isCharacterKey && typeahead.get() === true) {
handleTypeaheadSearch(e.key, getMenuItems(menuEl));
}
}), addMeltEventListener(node, "pointermove", (e) => {
onMenuPointerMove(e);
}), addMeltEventListener(node, "focusout", (e) => {
const $subActiveTrigger = subActiveTrigger.get();
if (isUsingKeyboard.get()) {
const target = e.target;
const submenuEl = document.getElementById(subIds.menu.get());
if (!isHTMLElement(submenuEl) || !isHTMLElement(target))
return;
if (!submenuEl.contains(target) && target !== $subActiveTrigger) {
subOpen.set(false);
}
} else {
const menuEl = e.currentTarget;
const relatedTarget = e.relatedTarget;
if (!isHTMLElement(relatedTarget) || !isHTMLElement(menuEl))
return;
if (!menuEl.contains(relatedTarget) && relatedTarget !== $subActiveTrigger) {
subOpen.set(false);
}
}
}));
return {
destroy() {
unsubDerived();
unsubPopper();
unsubEvents();
}
};
}
});
const subTrigger = makeElement(name("subtrigger"), {
stores: [subOpen, disabled, subIds.menu, subIds.trigger],
returned: ([$subOpen, $disabled, $subMenuId, $subTriggerId]) => {
return {
role: "menuitem",
id: $subTriggerId,
tabindex: -1,
"aria-controls": $subMenuId,
"aria-expanded": $subOpen,
"data-state": $subOpen ? "open" : "closed",
"data-disabled": disabledAttr($disabled),
"aria-haspopop": "menu"
};
},
action: (node) => {
setMeltMenuAttribute(node, selector);
applyAttrsIfDisabled(node);
subActiveTrigger.update((p) => {
if (p)
return p;
return node;
});
const unsubTimer = () => {
clearTimerStore(subOpenTimer);
window.clearTimeout(pointerGraceTimer.get());
pointerGraceIntent.set(null);
};
const unsubEvents = executeCallbacks(addMeltEventListener(node, "click", (e) => {
if (e.defaultPrevented)
return;
const triggerEl = e.currentTarget;
if (!isHTMLElement(triggerEl) || isElementDisabled(triggerEl))
return;
handleRovingFocus(triggerEl);
if (!subOpen.get()) {
subOpen.update((prev) => {
const isAlreadyOpen = prev;
if (!isAlreadyOpen) {
subActiveTrigger.set(triggerEl);
return !prev;
}
return prev;
});
}
}), addMeltEventListener(node, "keydown", (e) => {
const $typed = typed.get();
const triggerEl = e.currentTarget;
if (!isHTMLElement(triggerEl) || isElementDisabled(triggerEl))
return;
const isTypingAhead = $typed.length > 0;
if (isTypingAhead && e.key === kbd.SPACE)
return;
if (SUB_OPEN_KEYS["ltr"].includes(e.key)) {
if (!subOpen.get()) {
triggerEl.click();
e.preventDefault();
return;
}
const menuId = triggerEl.getAttribute("aria-controls");
if (!menuId)
return;
const menuEl = document.getElementById(menuId);
if (!isHTMLElement(menuEl))
return;
const firstItem = getMenuItems(menuEl)[0];
handleRovingFocus(firstItem);
}
}), addMeltEventListener(node, "pointermove", (e) => {
if (!isMouse(e))
return;
onItemEnter(e);
if (e.defaultPrevented)
return;
const triggerEl = e.currentTarget;
if (!isHTMLElement(triggerEl))
return;
if (!isFocusWithinSubmenu(subIds.menu.get())) {
handleRovingFocus(triggerEl);
}
const openTimer = subOpenTimer.get();
if (!subOpen.get() && !openTimer && !isElementDisabled(triggerEl)) {
subOpenTimer.set(window.setTimeout(() => {
subOpen.update(() => {
subActiveTrigger.set(triggerEl);
return true;
});
clearTimerStore(subOpenTimer);
}, 100));
}
}), addMeltEventListener(node, "pointerleave", (e) => {
if (!isMouse(e))
return;
clearTimerStore(subOpenTimer);
const submenuEl = document.getElementById(subIds.menu.get());
const contentRect = submenuEl?.getBoundingClientRect();
if (contentRect) {
const side = submenuEl?.dataset.side;
const rightSide = side === "right";
const bleed = rightSide ? -5 : 5;
const contentNearEdge = contentRect[rightSide ? "left" : "right"];
const contentFarEdge = contentRect[rightSide ? "right" : "left"];
pointerGraceIntent.set({
area: [
// Apply a bleed on clientX to ensure that our exit point is
// consistently within polygon bounds
{ x: e.clientX + bleed, y: e.clientY },
{ x: contentNearEdge, y: contentRect.top },
{ x: contentFarEdge, y: contentRect.top },
{ x: contentFarEdge, y: contentRect.bottom },
{ x: contentNearEdge, y: contentRect.bottom }
],
side
});
window.clearTimeout(pointerGraceTimer.get());
pointerGraceTimer.set(window.setTimeout(() => {
pointerGraceIntent.set(null);
}, 300));
} else {
onTriggerLeave(e);
if (e.defaultPrevented)
return;
pointerGraceIntent.set(null);
}
}), addMeltEventListener(node, "focusout", (e) => {
const triggerEl = e.currentTarget;
if (!isHTMLElement(triggerEl))
return;
removeHighlight(triggerEl);
const relatedTarget = e.relatedTarget;
if (!isHTMLElement(relatedTarget))
return;
const menuId = triggerEl.getAttribute("aria-controls");
if (!menuId)
return;
const menu = document.getElementById(menuId);
if (menu && !menu.contains(relatedTarget)) {
subOpen.set(false);
}
}), addMeltEventListener(node, "focusin", (e) => {
onItemFocusIn(e);
}));
return {
destroy() {
unsubTimer();
unsubEvents();
}
};
}
});
const subArrow = makeElement(name("subarrow"), {
stores: arrowSize2,
returned: ($arrowSize) => ({
"data-arrow": true,
style: styleToString({
position: "absolute",
width: `var(--arrow-size, ${$arrowSize}px)`,
height: `var(--arrow-size, ${$arrowSize}px)`
})
})
});
effect([rootOpen], ([$rootOpen]) => {
if (!$rootOpen) {
subActiveTrigger.set(null);
subOpen.set(false);
}
});
effect([pointerGraceIntent], ([$pointerGraceIntent]) => {
if (!isBrowser || $pointerGraceIntent)
return;
window.clearTimeout(pointerGraceTimer.get());
});
effect([subOpen], ([$subOpen]) => {
if (!isBrowser)
return;
if ($subOpen && isUsingKeyboard.get()) {
sleep(1).then(() => {
const menuEl = document.getElementById(subIds.menu.get());
if (!menuEl)
return;
const menuItems = getMenuItems(menuEl);
if (!menuItems.length)
return;
handleRovingFocus(menuItems[0]);
});
}
if (!$subOpen) {
const focusedItem = currentFocusedItem.get();
const subTriggerEl = document.getElementById(subIds.trigger.get());
if (focusedItem) {
sleep(1).then(() => {
const menuEl = document.getElementById(subIds.menu.get());
if (!menuEl)
return;
if (menuEl.contains(focusedItem)) {
removeHighlight(focusedItem);
}
});
}
if (!subTriggerEl || document.activeElement === subTriggerEl)
return;
removeHighlight(subTriggerEl);
}
});
return {
ids: subIds,
elements: {
subTrigger,
subMenu,
subArrow
},
states: {
subOpen
},
options
};
};
safeOnMount(() => {
const triggerEl = document.getElementById(rootIds.trigger.get());
if (isHTMLElement(triggerEl) && rootOpen.get()) {
rootActiveTrigger.set(triggerEl);
}
const unsubs = [];
const handlePointer = () => isUsingKeyboard.set(false);
const handleKeyDown = () => {
isUsingKeyboard.set(true);
unsubs.push(executeCallbacks(addEventListener(document, "pointerdown", handlePointer, { capture: true, once: true }), addEventListener(document, "pointermove", handlePointer, { capture: true, once: true })));
};
const keydownListener = (e) => {
if (e.key === kbd.ESCAPE && closeOnEscape.get()) {
rootOpen.set(false);
return;
}
};
unsubs.push(addEventListener(document, "keydown", handleKeyDown, { capture: true }));
unsubs.push(addEventListener(document, "keydown", keydownListener));
return () => {
unsubs.forEach((unsub) => unsub());
};
});
effect([rootOpen, currentFocusedItem], ([$rootOpen, $currentFocusedItem]) => {
if (!$rootOpen && $currentFocusedItem) {
removeHighlight($currentFocusedItem);
}
});
effect([rootOpen], ([$rootOpen]) => {
if (!isBrowser)
return;
if (!$rootOpen) {
const $rootActiveTrigger = rootActiveTrigger.get();
if (!$rootActiveTrigger)
return;
const $closeFocus = closeFocus.get();
if (!$rootOpen && $rootActiveTrigger) {
handleFocus({ prop: $closeFocus, defaultEl: $rootActiveTrigger });
}
}
});
effect([rootOpen, preventScroll], ([$rootOpen, $preventScroll]) => {
if (!isBrowser)
return;
const unsubs = [];
if (opts.removeScroll && $rootOpen && $preventScroll) {
unsubs.push(removeScroll());
}
sleep(1).then(() => {
const menuEl = document.getElementById(rootIds.menu.get());
if (menuEl && $rootOpen && isUsingKeyboard.get()) {
if (disableFocusFirstItem.get()) {
handleRovingFocus(menuEl);
return;
}
const menuItems = getMenuItems(menuEl);
if (!menuItems.length)
return;
handleRovingFocus(menuItems[0]);
}
});
return () => {
unsubs.forEach((unsub) => unsub());
};
});
effect(rootOpen, ($rootOpen) => {
if (!isBrowser)
return;
const handlePointer = () => isUsingKeyboard.set(false);
const handleKeyDown = (e) => {
isUsingKeyboard.set(true);
if (e.key === kbd.ESCAPE && $rootOpen && closeOnEscape.get()) {
rootOpen.set(false);
return;
}
};
return executeCallbacks(addEventListener(document, "pointerdown", handlePointer, { capture: true, once: true }), addEventListener(document, "pointermove", handlePointer, { capture: true, once: true }), addEventListener(document, "keydown", handleKeyDown, { capture: true }));
});
function handleOpen(triggerEl) {
rootOpen.update((prev) => {
const isOpen = !prev;
if (isOpen) {
nextFocusable.set(getNextFocusable(triggerEl));
prevFocusable.set(getPreviousFocusable(triggerEl));
rootActiveTrigger.set(triggerEl);
}
return isOpen;
});
}
function onItemFocusIn(e) {
const itemEl = e.currentTarget;
if (!isHTMLElement(itemEl))
return;
const $currentFocusedItem = currentFocusedItem.get();
if ($currentFocusedItem) {
removeHighlight($currentFocusedItem);
}
addHighlight(itemEl);
currentFocusedItem.set(itemEl);
}
function onItemFocusOut(e) {
const itemEl = e.currentTarget;
if (!isHTMLElement(itemEl))
return;
removeHighlight(itemEl);
}
function onItemEnter(e) {
if (isPointerMovingToSubmenu(e)) {
e.preventDefault();
}
}
function onItemLeave(e) {
if (isPointerMovingToSubmenu(e)) {
return;
}
const target = e.target;
if (!isHTMLElement(target))
return;
const parentMenuEl = getParentMenu(target);
if (!parentMenuEl)
return;
handleRovingFocus(parentMenuEl);
}
function onTriggerLeave(e) {
if (isPointerMovingToSubmenu(e)) {
e.preventDefault();
}
}
function onMenuPointerMove(e) {
if (!isMouse(e))
return;
const target = e.target;
const currentTarget = e.currentTarget;
if (!isHTMLElement(currentTarget) || !isHTMLElement(target))
return;
const $lastPointerX = lastPointerX.get();
const pointerXHasChanged = $lastPointerX !== e.clientX;
if (currentTarget.contains(target) && pointerXHasChanged) {
const newDir = e.clientX > $lastPointerX ? "right" : "left";
pointerDir.set(newDir);
lastPointerX.set(e.clientX);
}
}
function onMenuItemPointerMove(e, currTarget = null) {
if (!isMouse(e))
return;
onItemEnter(e);
if (e.defaultPrevented)
return;
if (currTarget) {
handleRovingFocus(currTarget);
return;
}
const currentTarget = e.currentTarget;
if (!isHTMLElement(currentTarget))
return;
handleRovingFocus(currentTarget);
}
function onMenuItemPointerLeave(e) {
if (!isMouse(e))
return;
onItemLeave(e);
}
function onItemKeyDown(e) {
const $typed = typed.get();
const isTypingAhead = $typed.length > 0;
if (isTypingAhead && e.key === kbd.SPACE) {
e.preventDefault();
return;
}
if (SELECTION_KEYS.includes(e.key)) {
e.preventDefault();
const itemEl = e.currentTarget;
if (!isHTMLElement(itemEl))
return;
itemEl.click();
}
}
function isIndeterminate(checked) {
return checked === "indeterminate";
}
function getCheckedState(checked) {
return isIndeterminate(checked) ? "indeterminate" : checked ? "checked" : "unchecked";
}
function isPointerMovingToSubmenu(e) {
return pointerMovingToSubmenu.get()(e);
}
function getParentMenu(element) {
const parentMenuEl = element.closest('[role="menu"]');
if (!isHTMLElement(parentMenuEl))
return null;
return parentMenuEl;
}
return {
elements: {
trigger: rootTrigger,
menu: rootMenu,
overlay,
item,
group,
groupLabel,
arrow: rootArrow,
separator
},
builders: {
createCheckboxItem,
createSubmenu,
createMenuRadioGroup
},
states: {
open: rootOpen
},
helpers: {
handleTypeaheadSearch
},
ids: rootIds,
options: opts.rootOptions
};
}
function handleTabNavigation(e, nextFocusable, prevFocusable) {
if (e.shiftKey) {
const $prevFocusable = prevFocusable.get();
if ($prevFocusable) {
e.preventDefault();
sleep(1).then(() => $prevFocusable.focus());
prevFocusable.set(null);
}
} else {
const $nextFocusable = nextFocusable.get();
if ($nextFocusable) {
e.preventDefault();
sleep(1).then(() => $nextFocusable.focus());
nextFocusable.set(null);
}
}
}
function getMenuItems(menuElement) {
return Array.from(menuElement.querySelectorAll(`[data-melt-menu-id="${menuElement.id}"]`)).filter((item) => isHTMLElement(item));
}
function applyAttrsIfDisabled(element) {
if (!element || !isElementDisabled(element))
return;
element.setAttribute("data-disabled", "");
element.setAttribute("aria-disabled", "true");
}
function clearTimerStore(timerStore) {
if (!isBrowser)
return;
const timer = timerStore.get();
if (timer) {
window.clearTimeout(timer);
timerStore.set(null);
}
}
function isMouse(e) {
return e.pointerType === "mouse";
}
function setMeltMenuAttribute(element, selector) {
if (!element)
return;
const menuEl = element.closest(`${selector()}, ${selector("submenu")}`);
if (!isHTMLElement(menuEl))
return;
element.setAttribute("data-melt-menu-id", menuEl.id);
}
function handleMenuNavigation(e, loop) {
e.preventDefault();
const currentFocusedItem = document.activeElement;
const currentTarget = e.currentTarget;
if (!isHTMLElement(currentFocusedItem) || !isHTMLElement(currentTarget))
return;
const menuItems = getMenuItems(currentTarget);
if (!menuItems.length)
return;
const candidateNodes = menuItems.filter((item) => {
if (item.hasAttribute("data-disabled") || item.getAttribute("disabled") === "true") {
return false;
}
return true;
});
const currentIndex = candidateNodes.indexOf(currentFocusedItem);
let nextIndex;
switch (e.key) {
case kbd.ARROW_DOWN:
if (loop) {
nextIndex = currentIndex < candidateNodes.length - 1 ? currentIndex + 1 : 0;
} else {
nextIndex = currentIndex < candidateNodes.length - 1 ? currentIndex + 1 : currentIndex;
}
break;
case kbd.ARROW_UP:
if (loop) {
nextIndex = currentIndex > 0 ? currentIndex - 1 : candidateNodes.length - 1;
} else {
nextIndex = currentIndex < 0 ? candidateNodes.length - 1 : currentIndex > 0 ? currentIndex - 1 : 0;
}
break;
case kbd.HOME:
nextIndex = 0;
break;
case kbd.END:
nextIndex = candidateNodes.length - 1;
break;
default:
return;
}
handleRovingFocus(candidateNodes[nextIndex]);
}
function isPointerInGraceArea(e, area) {
if (!area)
return false;
const cursorPos = { x: e.clientX, y: e.clientY };
return isPointInPolygon(cursorPos, area);
}
function isPointInPolygon(point, polygon) {
const { x, y } = point;
let inside = false;
for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {
const xi = polygon[i].x;
const yi = polygon[i].y;
const xj = polygon[j].x;
const yj = polygon[j].y;
const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;
if (intersect)
inside = !inside;
}
return inside;
}
function isFocusWithinSubmenu(submenuId) {
const activeEl = document.activeElement;
if (!isHTMLElement(activeEl))
return false;
const submenuEl = activeEl.closest(`[data-id="${submenuId}"]`);
return isHTMLElement(submenuEl);
}
function stateAttr(open) {
return open ? "open" : "closed";
}
const defaults$1 = {
arrowSize: 8,
positioning: {
placement: "bottom"
},
preventScroll: true,
closeOnEscape: true,
closeOnOutsideClick: true,
portal: void 0,
loop: false,
dir: "ltr",
defaultOpen: false,
forceVisible: false,
typeahead: true,
closeFocus: void 0,
disableFocusFirstItem: false,
closeOnItemClick: true,
onOutsideClick: void 0
};
function createDropdownMenu(props) {
const withDefaults = { ...defaults$1, ...props };
const rootOptions = toWritableStores(omit(withDefaults, "ids"));
const openWritable = withDefaults.open ?? writable(withDefaults.defaultOpen);
const rootOpen = overridable(openWritable, withDefaults?.onOpenChange);
const rootActiveTrigger = withGet(writable(null));
const nextFocusable = withGet(writable(null));
const prevFocusable = withGet(writable(null));
const { elements, builders, ids, states, options } = createMenuBuilder({
rootOptions,
rootOpen,
rootActiveTrigger: withGet(rootActiveTrigger),
nextFocusable: withGet(nextFocusable),
prevFocusable: withGet(prevFocusable),
selector: "dropdown-menu",
removeScroll: true,
ids: withDefaults.ids
});
return {
ids,
elements,
states,
builders,
options
};
}
const defaults = {
orientation: "horizontal",
decorative: false
};
const createSeparator = (props) => {
const withDefaults = { ...defaults, ...props };
const options = toWritableStores(withDefaults);
const { orientation, decorative } = options;
const root = makeElement("separator", {
stores: [orientation, decorative],
returned: ([$orientation, $decorative]) => {
const ariaOrientation = $orientation === "vertical" ? $orientation : void 0;
return {
role: $decorative ? "none" : "separator",
"aria-orientation": ariaOrientation,
"aria-hidden": $decorative,
"data-orientation": $orientation
};
}
});
return {
elements: {
root
},
options
};
};
function getMenuData() {
const NAME = "menu";
const SUB_NAME = "menu-submenu";
const RADIO_GROUP_NAME = "menu-radiogroup";
const CHECKBOX_ITEM_NAME = "menu-checkboxitem";
const RADIO_ITEM_NAME = "menu-radioitem";
const GROUP_NAME = "menu-group";
const PARTS = [
"arrow",
"checkbox-indicator",
"checkbox-item",
"content",
"group",
"item",
"label",
"radio-group",
"radio-item",
"radio-indicator",
"separator",
"sub-content",
"sub-trigger",
"trigger"
];
return {
NAME,
SUB_NAME,
RADIO_GROUP_NAME,
CHECKBOX_ITEM_NAME,
RADIO_ITEM_NAME,
GROUP_NAME,
PARTS
};
}
function getCtx() {
const { NAME } = getMenuData();
return getContext(NAME);
}
function setCtx(props) {
const { NAME, PARTS } = getMenuData();
const getAttrs = createBitAttrs("menu", PARTS);
const dropdownMenu = {
...createDropdownMenu({ ...removeUndefined(props), forceVisible: true }),
getAttrs
};
setContext(NAME, dropdownMenu);
return {
...dropdownMenu,
updateOption: getOptionUpdater(dropdownMenu.options)
};
}
function getGroupLabel() {
const { GROUP_NAME } = getMenuData();
const id = getContext(GROUP_NAME) ?? generateId();
const { elements: { groupLabel }, getAttrs } = getCtx();
return { groupLabel, id, getAttrs };
}
function updatePositioning(props) {
const defaultPlacement = {
side: "bottom",
align: "center"
};
const withDefaults = { ...defaultPlacement, ...props };
const { options: { positioning } } = getCtx();
const updater = getPositioningUpdater(positioning);
updater(withDefaults);
}
const Menu_item = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let builder;
let attrs;
let $$restProps = compute_rest_props($$props, ["href", "asChild", "disabled", "el"]);
let $item, $$unsubscribe_item;
let { href = void 0 } = $$props;
let { asChild = false } = $$props;
let { disabled = false } = $$props;
let { el = void 0 } = $$props;
const { elements: { item }, getAttrs } = getCtx();
$$unsubscribe_item = subscribe(item, (value) => $item = value);
createDispatcher();
if ($$props.href === void 0 && $$bindings.href && href !== void 0)
$$bindings.href(href);
if ($$props.asChild === void 0 && $$bindings.asChild && asChild !== void 0)
$$bindings.asChild(asChild);
if ($$props.disabled === void 0 && $$bindings.disabled && disabled !== void 0)
$$bindings.disabled(disabled);
if ($$props.el === void 0 && $$bindings.el && el !== void 0)
$$bindings.el(el);
builder = $item;
attrs = {
...getAttrs("item"),
...disabledAttrs(disabled)
};
{
Object.assign(builder, attrs);
}
$$unsubscribe_item();
return `${asChild ? `${slots.default ? slots.default({ builder }) : ``}` : `${((tag) => {
return tag ? `<${href ? "a" : "div"}${spread(
[
{ href: escape_attribute_value(href) },
escape_object(builder),
escape_object($$restProps)
],
{}
)}${add_attribute("this", el, 0)}>${is_void(tag) ? "" : `${slots.default ? slots.default({ builder }) : ``}`}${is_void(tag) ? "" : `</${tag}>`}` : "";
})(href ? "a" : "div")}`}`;
});
const Menu_label = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let builder;
let $$restProps = compute_rest_props($$props, ["asChild", "el"]);
let $groupLabel, $$unsubscribe_groupLabel;
let { asChild = false } = $$props;
let { el = void 0 } = $$props;
const { groupLabel, id, getAttrs } = getGroupLabel();
$$unsubscribe_groupLabel = subscribe(groupLabel, (value) => $groupLabel = value);
const attrs = getAttrs("label");
if ($$props.asChild === void 0 && $$bindings.asChild && asChild !== void 0)
$$bindings.asChild(asChild);
if ($$props.el === void 0 && $$bindings.el && el !== void 0)
$$bindings.el(el);
builder = $groupLabel(id);
{
Object.assign(builder, attrs);
}
$$unsubscribe_groupLabel();
return `${asChild ? `${slots.default ? slots.default({ builder }) : ``}` : `<div${spread([escape_object(builder), escape_object($$restProps)], {})}${add_attribute("this", el, 0)}>${slots.default ? slots.default({ builder }) : ``}</div>`}`;
});
const Menu_separator = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let builder;
let $$restProps = compute_rest_props($$props, ["asChild", "el"]);
let $separator, $$unsubscribe_separator;
let { asChild = false } = $$props;
let { el = void 0 } = $$props;
const { elements: { separator }, getAttrs } = getCtx();
$$unsubscribe_separator = subscribe(separator, (value) => $separator = value);
const attrs = getAttrs("separator");
if ($$props.asChild === void 0 && $$bindings.asChild && asChild !== void 0)
$$bindings.asChild(asChild);
if ($$props.el === void 0 && $$bindings.el && el !== void 0)
$$bindings.el(el);
builder = $separator;
{
Object.assign(builder, attrs);
}
$$unsubscribe_separator();
return `${asChild ? `${slots.default ? slots.default({ builder }) : ``}` : `<div${spread([escape_object($separator), escape_object($$restProps)], {})}${add_attribute("this", el, 0)}></div>`}`;
});
const Menu = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let $idValues, $$unsubscribe_idValues;
let { closeOnOutsideClick = void 0 } = $$props;
let { closeOnEscape = void 0 } = $$props;
let { portal = void 0 } = $$props;
let { open = void 0 } = $$props;
let { onOpenChange = void 0 } = $$props;
let { preventScroll = void 0 } = $$props;
let { loop = void 0 } = $$props;
let { dir = void 0 } = $$props;
let { typeahead = void 0 } = $$props;
let { closeFocus = void 0 } = $$props;
let { disableFocusFirstItem = void 0 } = $$props;
let { closeOnItemClick = void 0 } = $$props;
let { onOutsideClick = void 0 } = $$props;
const { states: { open: localOpen }, updateOption, ids } = setCtx({
closeOnOutsideClick,
closeOnEscape,
portal,
forceVisible: true,
defaultOpen: open,
preventScroll,
loop,
dir,
typeahead,
closeFocus,
disableFocusFirstItem,
closeOnItemClick,
onOutsideClick,
onOpenChange: ({ next }) => {
if (open !== next) {
onOpenChange?.(next);
open = next;
}
return next;
}
});
const idValues = derived([ids.menu, ids.trigger], ([$menuId, $triggerId]) => ({ menu: $menuId, trigger: $triggerId }));
$$unsubscribe_idValues = subscribe(idValues, (value) => $idValues = value);
if ($$props.closeOnOutsideClick === void 0 && $$bindings.closeOnOutsideClick && closeOnOutsideClick !== void 0)
$$bindings.closeOnOutsideClick(closeOnOutsideClick);
if ($$props.closeOnEscape === void 0 && $$bindings.closeOnEscape && closeOnEscape !== void 0)
$$bindings.closeOnEscape(closeOnEscape);
if ($$props.portal === void 0 && $$bindings.portal && portal !== void 0)
$$bindings.portal(portal);
if ($$props.open === void 0 && $$bindings.open && open !== void 0)
$$bindings.open(open);
if ($$props.onOpenChange === void 0 && $$bindings.onOpenChange && onOpenChange !== void 0)
$$bindings.onOpenChange(onOpenChange);
if ($$props.preventScroll === void 0 && $$bindings.preventScroll && preventScroll !== void 0)
$$bindings.preventScroll(preventScroll);
if ($$props.loop === void 0 && $$bindings.loop && loop !== void 0)
$$bindings.loop(loop);
if ($$props.dir === void 0 && $$bindings.dir && dir !== void 0)
$$bindings.dir(dir);
if ($$props.typeahead === void 0 && $$bindings.typeahead && typeahead !== void 0)
$$bindings.typeahead(typeahead);
if ($$props.closeFocus === void 0 && $$bindings.closeFocus && closeFocus !== void 0)
$$bindings.closeFocus(closeFocus);
if ($$props.disableFocusFirstItem === void 0 && $$bindings.disableFocusFirstItem && disableFocusFirstItem !== void 0)
$$bindings.disableFocusFirstItem(disableFocusFirstItem);
if ($$props.closeOnItemClick === void 0 && $$bindings.closeOnItemClick && closeOnItemClick !== void 0)
$$bindings.closeOnItemClick(closeOnItemClick);
if ($$props.onOutsideClick === void 0 && $$bindings.onOutsideClick && onOutsideClick !== void 0)
$$bindings.onOutsideClick(onOutsideClick);
open !== void 0 && localOpen.set(open);
{
updateOption("closeOnOutsideClick", closeOnOutsideClick);
}
{
updateOption("closeOnEscape", closeOnEscape);
}
{
updateOption("portal", portal);
}
{
updateOption("preventScroll", preventScroll);
}
{
updateOption("loop", loop);
}
{
updateOption("dir", dir);
}
{
updateOption("closeFocus", closeFocus);
}
{
updateOption("disableFocusFirstItem", disableFocusFirstItem);
}
{
updateOption("typeahead", typeahead);
}
{
updateOption("closeOnItemClick", closeOnItemClick);
}
{
updateOption("onOutsideClick", onOutsideClick);
}
$$unsubscribe_idValues();
return `${slots.default ? slots.default({ ids: $idValues }) : ``}`;
});
const Menu_content = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let builder;
let $$restProps = compute_rest_props($$props, [
"transition",
"transitionConfig",
"inTransition",
"inTransitionConfig",
"outTransition",
"outTransitionConfig",
"asChild",
"id",
"side",
"align",
"sideOffset",
"alignOffset",
"collisionPadding",
"avoidCollisions",
"collisionBoundary",
"sameWidth",
"fitViewport",
"strategy",
"overlap",
"el"
]);
let $open, $$unsubscribe_open;
let $menu, $$unsubscribe_menu;
let { transition = void 0 } = $$props;
let { transitionConfig = void 0 } = $$props;
let { inTransition = void 0 } = $$props;
let { inTransitionConfig = void 0 } = $$props;
let { outTransition = void 0 } = $$props;
let { outTransitionConfig = void 0 } = $$props;
let { asChild = false } = $$props;
let { id = void 0 } = $$props;
let { side = "bottom" } = $$props;
let { align = "center" } = $$props;
let { sideOffset = 0 } = $$props;
let { alignOffset = 0 } = $$props;
let { collisionPadding = 8 } = $$props;
let { avoidCollisions = true } = $$props;
let { collisionBoundary = void 0 } = $$props;
let { sameWidth = false } = $$props;
let { fitViewport = false } = $$props;
let { strategy = "absolute" } = $$props;
let { overlap = false } = $$props;
let { el = void 0 } = $$props;
const { elements: { menu }, states: { open }, ids, getAttrs } = getCtx();
$$unsubscribe_menu = subscribe(menu, (value) => $menu = value);
$$unsubscribe_open = subscribe(open, (value) => $open = value);
createDispatcher();
const attrs = getAttrs("content");
if ($$props.transition === void 0 && $$bindings.transition && transition !== void 0)
$$bindings.transition(transition);
if ($$props.transitionConfig === void 0 && $$bindings.transitionConfig && transitionConfig !== void 0)
$$bindings.transitionConfig(transitionConfig);
if ($$props.inTransition === void 0 && $$bindings.inTransition && inTransition !== void 0)
$$bindings.inTransition(inTransition);
if ($$props.inTransitionConfig === void 0 && $$bindings.inTransitionConfig && inTransitionConfig !== void 0)
$$bindings.inTransitionConfig(inTransitionConfig);
if ($$props.outTransition === void 0 && $$bindings.outTransition && outTransition !== void 0)
$$bindings.outTransition(outTransition);
if ($$props.outTransitionConfig === void 0 && $$bindings.outTransitionConfig && outTransitionConfig !== void 0)
$$bindings.outTransitionConfig(outTransitionConfig);
if ($$props.asChild === void 0 && $$bindings.asChild && asChild !== void 0)
$$bindings.asChild(asChild);
if ($$props.id === void 0 && $$bindings.id && id !== void 0)
$$bindings.id(id);
if ($$props.side === void 0 && $$bindings.side && side !== void 0)
$$bindings.side(side);
if ($$props.align === void 0 && $$bindings.align && align !== void 0)
$$bindings.align(align);
if ($$props.sideOffset === void 0 && $$bindings.sideOffset && sideOffset !== void 0)
$$bindings.sideOffset(sideOffset);
if ($$props.alignOffset === void 0 && $$bindings.alignOffset && alignOffset !== void 0)
$$bindings.alignOffset(alignOffset);
if ($$props.collisionPadding === void 0 && $$bindings.collisionPadding && collisionPadding !== void 0)
$$bindings.collisionPadding(collisionPadding);
if ($$props.avoidCollisions === void 0 && $$bindings.avoidCollisions && avoidCollisions !== void 0)
$$bindings.avoidCollisions(avoidCollisions);
if ($$props.collisionBoundary === void 0 && $$bindings.collisionBoundary && collisionBoundary !== void 0)
$$bindings.collisionBoundary(collisionBoundary);
if ($$props.sameWidth === void 0 && $$bindings.sameWidth && sameWidth !== void 0)
$$bindings.sameWidth(sameWidth);
if ($$props.fitViewport === void 0 && $$bindings.fitViewport && fitViewport !== void 0)
$$bindings.fitViewport(fitViewport);
if ($$props.strategy === void 0 && $$bindings.strategy && strategy !== void 0)
$$bindings.strategy(strategy);
if ($$props.overlap === void 0 && $$bindings.overlap && overlap !== void 0)
$$bindings.overlap(overlap);
if ($$props.el === void 0 && $$bindings.el && el !== void 0)
$$bindings.el(el);
{
if (id) {
ids.menu.set(id);
}
}
builder = $menu;
{
Object.assign(builder, attrs);
}
{
if ($open) {
updatePositioning({
side,
align,
sideOffset,
alignOffset,
collisionPadding,
avoidCollisions,
collisionBoundary,
sameWidth,
fitViewport,
strategy,
overlap
});
}
}
$$unsubscribe_open();
$$unsubscribe_menu();
return `${asChild && $open ? `${slots.default ? slots.default({ builder }) : ``}` : `${transition && $open ? `<div${spread([escape_object(builder), escape_object($$restProps)], {})}${add_attribute("this", el, 0)}>${slots.default ? slots.default({ builder }) : ``}</div>` : `${inTransition && outTransition && $open ? `<div${spread([escape_object(builder), escape_object($$restProps)], {})}${add_attribute("this", el, 0)}>${slots.default ? slots.default({ builder }) : ``}</div>` : `${inTransition && $open ? `<div${spread([escape_object(builder), escape_object($$restProps)], {})}${add_attribute("this", el, 0)}>${slots.default ? slots.default({ builder }) : ``}</div>` : `${outTransition && $open ? `<div${spread([escape_object(builder), escape_object($$restProps)], {})}${add_attribute("this", el, 0)}>${slots.default ? slots.default({ builder }) : ``}</div>` : `${$open ? `<div${spread([escape_object(builder), escape_object($$restProps)], {})}${add_attribute("this", el, 0)}>${slots.default ? slots.default({ builder }) : ``}</div>` : ``}`}`}`}`}`}`;
});
const Menu_trigger = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let builder;
let $$restProps = compute_rest_props($$props, ["asChild", "id", "el"]);
let $trigger, $$unsubscribe_trigger;
let { asChild = false } = $$props;
let { id = void 0 } = $$props;
let { el = void 0 } = $$props;
const { elements: { trigger }, ids, getAttrs } = getCtx();
$$unsubscribe_trigger = subscribe(trigger, (value) => $trigger = value);
createDispatcher();
const attrs = getAttrs("trigger");
if ($$props.asChild === void 0 && $$bindings.asChild && asChild !== void 0)
$$bindings.asChild(asChild);
if ($$props.id === void 0 && $$bindings.id && id !== void 0)
$$bindings.id(id);
if ($$props.el === void 0 && $$bindings.el && el !== void 0)
$$bindings.el(el);
{
if (id) {
ids.trigger.set(id);
}
}
builder = $trigger;
{
Object.assign(builder, attrs);
}
$$unsubscribe_trigger();
return `${asChild ? `${slots.default ? slots.default({ builder }) : ``}` : `<button${spread([escape_object(builder), { type: "button" }, escape_object($$restProps)], {})}${add_attribute("this", el, 0)}>${slots.default ? slots.default({ builder }) : ``}</button>`}`;
});
const Dropdown_menu_item = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let $$restProps = compute_rest_props($$props, ["class", "inset"]);
let { class: className = void 0 } = $$props;
let { inset = void 0 } = $$props;
if ($$props.class === void 0 && $$bindings.class && className !== void 0)
$$bindings.class(className);
if ($$props.inset === void 0 && $$bindings.inset && inset !== void 0)
$$bindings.inset(inset);
return `${validate_component(Menu_item, "DropdownMenuPrimitive.Item").$$render(
$$result,
Object.assign(
{},
{
class: cn("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled]:pointer-events-none data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:opacity-50", inset && "pl-8", className)
},
$$restProps
),
{},
{
default: () => {
return `${slots.default ? slots.default({}) : ``}`;
}
}
)}`;
});
const Dropdown_menu_label = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let $$restProps = compute_rest_props($$props, ["class", "inset"]);
let { class: className = void 0 } = $$props;
let { inset = void 0 } = $$props;
if ($$props.class === void 0 && $$bindings.class && className !== void 0)
$$bindings.class(className);
if ($$props.inset === void 0 && $$bindings.inset && inset !== void 0)
$$bindings.inset(inset);
return `${validate_component(Menu_label, "DropdownMenuPrimitive.Label").$$render(
$$result,
Object.assign(
{},
{
class: cn("px-2 py-1.5 text-sm font-semibold", inset && "pl-8", className)
},
$$restProps
),
{},
{
default: () => {
return `${slots.default ? slots.default({}) : ``}`;
}
}
)}`;
});
const Dropdown_menu_content = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let $$restProps = compute_rest_props($$props, ["class", "sideOffset", "transition", "transitionConfig"]);
let { class: className = void 0 } = $$props;
let { sideOffset = 4 } = $$props;
let { transition = flyAndScale } = $$props;
let { transitionConfig = void 0 } = $$props;
if ($$props.class === void 0 && $$bindings.class && className !== void 0)
$$bindings.class(className);
if ($$props.sideOffset === void 0 && $$bindings.sideOffset && sideOffset !== void 0)
$$bindings.sideOffset(sideOffset);
if ($$props.transition === void 0 && $$bindings.transition && transition !== void 0)
$$bindings.transition(transition);
if ($$props.transitionConfig === void 0 && $$bindings.transitionConfig && transitionConfig !== void 0)
$$bindings.transitionConfig(transitionConfig);
return `${validate_component(Menu_content, "DropdownMenuPrimitive.Content").$$render(
$$result,
Object.assign(
{},
{ transition },
{ transitionConfig },
{ sideOffset },
{
class: cn("z-50 min-w-[8rem] rounded-md border bg-popover p-1 text-popover-foreground shadow-md focus:outline-none", className)
},
$$restProps
),
{},
{
default: () => {
return `${slots.default ? slots.default({}) : ``}`;
}
}
)}`;
});
const Dropdown_menu_separator = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let $$restProps = compute_rest_props($$props, ["class"]);
let { class: className = void 0 } = $$props;
if ($$props.class === void 0 && $$bindings.class && className !== void 0)
$$bindings.class(className);
return `${validate_component(Menu_separator, "DropdownMenuPrimitive.Separator").$$render(
$$result,
Object.assign(
{},
{
class: cn("-mx-1 my-1 h-px bg-muted", className)
},
$$restProps
),
{},
{}
)}`;
});
const Root$1 = Menu;
const Trigger$1 = Menu_trigger;
const Sheet_portal = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let $$restProps = compute_rest_props($$props, ["class"]);
let { class: className = void 0 } = $$props;
if ($$props.class === void 0 && $$bindings.class && className !== void 0)
$$bindings.class(className);
return `${validate_component(Dialog_portal, "SheetPrimitive.Portal").$$render($$result, Object.assign({}, { class: cn(className) }, $$restProps), {}, {
default: () => {
return `${slots.default ? slots.default({}) : ``}`;
}
})}`;
});
const Sheet_overlay = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let $$restProps = compute_rest_props($$props, ["class", "transition", "transitionConfig"]);
let { class: className = void 0 } = $$props;
let { transition = fade } = $$props;
let { transitionConfig = { duration: 150 } } = $$props;
if ($$props.class === void 0 && $$bindings.class && className !== void 0)
$$bindings.class(className);
if ($$props.transition === void 0 && $$bindings.transition && transition !== void 0)
$$bindings.transition(transition);
if ($$props.transitionConfig === void 0 && $$bindings.transitionConfig && transitionConfig !== void 0)
$$bindings.transitionConfig(transitionConfig);
return `${validate_component(Dialog_overlay, "SheetPrimitive.Overlay").$$render(
$$result,
Object.assign(
{},
{ transition },
{ transitionConfig },
{
class: cn("fixed inset-0 z-50 bg-background/80 backdrop-blur-sm ", className)
},
$$restProps
),
{},
{}
)}`;
});
const Sheet_content = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let $$restProps = compute_rest_props($$props, [
"class",
"side",
"inTransition",
"inTransitionConfig",
"outTransition",
"outTransitionConfig"
]);
let { class: className = void 0 } = $$props;
let { side = "right" } = $$props;
let { inTransition = fly } = $$props;
let { inTransitionConfig = sheetTransitions[side ?? "right"].in } = $$props;
let { outTransition = fly } = $$props;
let { outTransitionConfig = sheetTransitions[side ?? "right"].out } = $$props;
if ($$props.class === void 0 && $$bindings.class && className !== void 0)
$$bindings.class(className);
if ($$props.side === void 0 && $$bindings.side && side !== void 0)
$$bindings.side(side);
if ($$props.inTransition === void 0 && $$bindings.inTransition && inTransition !== void 0)
$$bindings.inTransition(inTransition);
if ($$props.inTransitionConfig === void 0 && $$bindings.inTransitionConfig && inTransitionConfig !== void 0)
$$bindings.inTransitionConfig(inTransitionConfig);
if ($$props.outTransition === void 0 && $$bindings.outTransition && outTransition !== void 0)
$$bindings.outTransition(outTransition);
if ($$props.outTransitionConfig === void 0 && $$bindings.outTransitionConfig && outTransitionConfig !== void 0)
$$bindings.outTransitionConfig(outTransitionConfig);
return `${validate_component(Sheet_portal, "SheetPortal").$$render($$result, {}, {}, {
default: () => {
return `${validate_component(Sheet_overlay, "SheetOverlay").$$render($$result, {}, {}, {})} ${validate_component(Dialog_content, "SheetPrimitive.Content").$$render(
$$result,
Object.assign(
{},
{ inTransition },
{ inTransitionConfig },
{ outTransition },
{ outTransitionConfig },
{
class: cn(sheetVariants({ side }), className)
},
$$restProps
),
{},
{
default: () => {
return `${slots.default ? slots.default({}) : ``} ${validate_component(Dialog_close, "SheetPrimitive.Close").$$render(
$$result,
{
class: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary"
},
{},
{
default: () => {
return `${validate_component(X$1, "X").$$render($$result, { class: "h-4 w-4" }, {}, {})} <span class="sr-only" data-svelte-h="svelte-1pewzs3">Close</span>`;
}
}
)}`;
}
}
)}`;
}
})}`;
});
const Root = Dialog;
const Trigger = Dialog_trigger;
const sheetVariants = tv({
base: "fixed z-50 gap-4 bg-background p-6 shadow-lg",
variants: {
side: {
top: "inset-x-0 top-0 border-b",
bottom: "inset-x-0 bottom-0 border-t",
left: "inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm",
right: "inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm"
}
},
defaultVariants: {
side: "right"
}
});
const sheetTransitions = {
top: {
in: {
y: "-100%",
duration: 500,
opacity: 1
},
out: {
y: "-100%",
duration: 300,
opacity: 1
}
},
bottom: {
in: {
y: "100%",
duration: 500,
opacity: 1
},
out: {
y: "100%",
duration: 300,
opacity: 1
}
},
left: {
in: {
x: "-100%",
duration: 500,
opacity: 1
},
out: {
x: "-100%",
duration: 300,
opacity: 1
}
},
right: {
in: {
x: "100%",
duration: 500,
opacity: 1
},
out: {
x: "100%",
duration: 300,
opacity: 1
}
}
};
const TOAST_LIFETIME = 4e3;
const GAP$1 = 14;
const TIME_BEFORE_UNMOUNT = 200;
const Toast = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let isFront;
let isVisible;
let toastType;
let toastClass;
let toastDescriptionClass;
let heightIndex;
let coords;
let toastsHeightBefore;
let disabled;
let isPromiseLoadingOrInfiniteDuration;
let $$unsubscribe_effect = noop, $$subscribe_effect = () => ($$unsubscribe_effect(), $$unsubscribe_effect = subscribe(effect2, ($$value) => $$value), effect2);
let $heights, $$unsubscribe_heights;
let $toasts, $$unsubscribe_toasts;
const defaultClasses = {
toast: "",
title: "",
description: "",
loader: "",
closeButton: "",
cancelButton: "",
actionButton: "",
action: "",
warning: "",
error: "",
success: "",
default: "",
info: "",
loading: ""
};
const { toasts, heights, removeHeight, setHeight, dismiss } = toastState;
$$unsubscribe_toasts = subscribe(toasts, (value) => $toasts = value);
$$unsubscribe_heights = subscribe(heights, (value) => $heights = value);
let { toast } = $$props;
let { index } = $$props;
let { expanded } = $$props;
let { invert } = $$props;
let { position } = $$props;
let { visibleToasts } = $$props;
let { expandByDefault } = $$props;
let { closeButton } = $$props;
let { interacting } = $$props;
let { cancelButtonStyle = "" } = $$props;
let { actionButtonStyle = "" } = $$props;
let { duration = 4e3 } = $$props;
let { descriptionClass = "" } = $$props;
let { classes = {} } = $$props;
let { unstyled = false } = $$props;
let mounted = false;
let removed = false;
let swiping = false;
let swipeOut = false;
let offsetBeforeRemove = 0;
let initialHeight = 0;
let toastRef;
let offset = 0;
let closeTimerStartTimeRef = 0;
let lastCloseTimerStartTimeRef = 0;
async function updateHeights() {
{
return;
}
}
function deleteToast() {
removed = true;
offsetBeforeRemove = offset;
removeHeight(toast.id);
setTimeout(
() => {
dismiss(toast.id);
},
TIME_BEFORE_UNMOUNT
);
}
let timeoutId;
let remainingTime = toast.duration || duration || TOAST_LIFETIME;
function pauseTimer() {
if (lastCloseTimerStartTimeRef < closeTimerStartTimeRef) {
const elapsedTime = (/* @__PURE__ */ new Date()).getTime() - closeTimerStartTimeRef;
remainingTime = remainingTime - elapsedTime;
}
lastCloseTimerStartTimeRef = (/* @__PURE__ */ new Date()).getTime();
}
function startTimer() {
closeTimerStartTimeRef = (/* @__PURE__ */ new Date()).getTime();
timeoutId = setTimeout(
() => {
toast.onAutoClose?.(toast);
deleteToast();
},
remainingTime
);
}
let effect2;
if ($$props.toast === void 0 && $$bindings.toast && toast !== void 0)
$$bindings.toast(toast);
if ($$props.index === void 0 && $$bindings.index && index !== void 0)
$$bindings.index(index);
if ($$props.expanded === void 0 && $$bindings.expanded && expanded !== void 0)
$$bindings.expanded(expanded);
if ($$props.invert === void 0 && $$bindings.invert && invert !== void 0)
$$bindings.invert(invert);
if ($$props.position === void 0 && $$bindings.position && position !== void 0)
$$bindings.position(position);
if ($$props.visibleToasts === void 0 && $$bindings.visibleToasts && visibleToasts !== void 0)
$$bindings.visibleToasts(visibleToasts);
if ($$props.expandByDefault === void 0 && $$bindings.expandByDefault && expandByDefault !== void 0)
$$bindings.expandByDefault(expandByDefault);
if ($$props.closeButton === void 0 && $$bindings.closeButton && closeButton !== void 0)
$$bindings.closeButton(closeButton);
if ($$props.interacting === void 0 && $$bindings.interacting && interacting !== void 0)
$$bindings.interacting(interacting);
if ($$props.cancelButtonStyle === void 0 && $$bindings.cancelButtonStyle && cancelButtonStyle !== void 0)
$$bindings.cancelButtonStyle(cancelButtonStyle);
if ($$props.actionButtonStyle === void 0 && $$bindings.actionButtonStyle && actionButtonStyle !== void 0)
$$bindings.actionButtonStyle(actionButtonStyle);
if ($$props.duration === void 0 && $$bindings.duration && duration !== void 0)
$$bindings.duration(duration);
if ($$props.descriptionClass === void 0 && $$bindings.descriptionClass && descriptionClass !== void 0)
$$bindings.descriptionClass(descriptionClass);
if ($$props.classes === void 0 && $$bindings.classes && classes !== void 0)
$$bindings.classes(classes);
if ($$props.unstyled === void 0 && $$bindings.unstyled && unstyled !== void 0)
$$bindings.unstyled(unstyled);
classes = { ...defaultClasses, ...classes };
isFront = index === 0;
isVisible = index + 1 <= visibleToasts;
toast.title;
toast.description;
toastType = toast.type;
toastClass = toast.class || "";
toastDescriptionClass = toast.descriptionClass || "";
heightIndex = $heights.findIndex((height) => height.toastId === toast.id) || 0;
coords = position.split("-");
toastsHeightBefore = $heights.reduce(
(prev, curr, reducerIndex) => {
if (reducerIndex >= heightIndex)
return prev;
return prev + curr.height;
},
0
);
invert = toast.invert || invert;
disabled = toastType === "loading";
offset = Math.round(heightIndex * GAP$1 + toastsHeightBefore);
{
updateHeights();
}
{
if (toast.updated) {
clearTimeout(timeoutId);
remainingTime = toast.duration || duration || TOAST_LIFETIME;
startTimer();
}
}
isPromiseLoadingOrInfiniteDuration = toast.promise && toastType === "loading" || toast.duration === Number.POSITIVE_INFINITY;
$$subscribe_effect(effect2 = useEffect(() => {
if (!isPromiseLoadingOrInfiniteDuration) {
if (expanded || interacting) {
pauseTimer();
} else {
startTimer();
}
}
return () => clearTimeout(timeoutId);
}));
{
if (toast.delete) {
deleteToast();
}
}
$$unsubscribe_effect();
$$unsubscribe_heights();
$$unsubscribe_toasts();
return ` <li${add_attribute("aria-live", toast.important ? "assertive" : "polite", 0)} aria-atomic="true" role="status"${add_attribute("tabindex", 0, 0)}${add_attribute("class", cn$1($$props.class, toastClass, classes?.toast, toast?.classes?.toast, classes?.[toastType], toast?.classes?.[toastType]), 0)} data-sonner-toast=""${add_attribute("data-styled", !(toast.component || toast?.unstyled || unstyled), 0)}${add_attribute("data-mounted", mounted, 0)}${add_attribute("data-promise", Boolean(toast.promise), 0)}${add_attribute("data-removed", removed, 0)}${add_attribute("data-visible", isVisible, 0)}${add_attribute("data-y-position", coords[0], 0)}${add_attribute("data-x-position", coords[1], 0)}${add_attribute("data-index", index, 0)}${add_attribute("data-front", isFront, 0)}${add_attribute("data-swiping", swiping, 0)}${add_attribute("data-type", toastType, 0)}${add_attribute("data-invert", invert, 0)}${add_attribute("data-swipe-out", swipeOut, 0)}${add_attribute("data-expanded", Boolean(expanded || expandByDefault && mounted), 0)}${add_styles(merge_ssr_styles(escape(`${$$props.style} ${toast.style}`, true), {
"--index": index,
"--toasts-before": index,
"--z-index": $toasts.length - index,
"--offset": `${removed ? offsetBeforeRemove : offset}px`,
"--initial-height": `${initialHeight}px`
}))}${add_attribute("this", toastRef, 0)}>${closeButton && !toast.component ? `<button aria-label="Close toast"${add_attribute("data-disabled", disabled, 0)} data-close-button${add_attribute("class", cn$1(classes?.closeButton, toast?.classes?.closeButton), 0)}><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg></button>` : ``} ${toast.component ? `${validate_component(toast.component || missing_component, "svelte:component").$$render($$result, Object.assign({}, toast.componentProps), {}, {})}` : `${toastType !== "default" || toast.icon || toast.promise ? `<div data-icon="">${(toast.promise || toastType === "loading") && !toast.icon ? `${slots["loading-icon"] ? slots["loading-icon"]({}) : ``}` : ``} ${toast.icon ? `${validate_component(toast.icon || missing_component, "svelte:component").$$render($$result, {}, {}, {})}` : `${toastType === "success" ? `${slots["success-icon"] ? slots["success-icon"]({}) : ``}` : `${toastType === "error" ? `${slots["error-icon"] ? slots["error-icon"]({}) : ``}` : `${toastType === "warning" ? `${slots["warning-icon"] ? slots["warning-icon"]({}) : ``}` : `${toastType === "info" ? `${slots["info-icon"] ? slots["info-icon"]({}) : ``}` : ``}`}`}`}`}</div>` : ``} <div data-content="">${toast.title ? `<div data-title=""${add_attribute("class", cn$1(classes?.title, toast?.classes?.title), 0)}>${typeof toast.title !== "string" ? `${validate_component(toast.title || missing_component, "svelte:component").$$render($$result, Object.assign({}, toast.componentProps), {}, {})}` : `${escape(toast.title)}`}</div>` : ``} ${toast.description ? `<div data-description=""${add_attribute("class", cn$1(descriptionClass, toastDescriptionClass, classes?.description, toast.classes?.description), 0)}>${typeof toast.description !== "string" ? `${validate_component(toast.description || missing_component, "svelte:component").$$render($$result, Object.assign({}, toast.componentProps), {}, {})}` : `${escape(toast.description)}`}</div>` : ``}</div> ${toast.cancel ? `<button data-button data-cancel${add_attribute("style", cancelButtonStyle, 0)}${add_attribute("class", cn$1(classes?.cancelButton, toast?.classes?.cancelButton), 0)}>${escape(toast.cancel.label)}</button>` : ``} ${toast.action ? `<button data-button=""${add_attribute("style", actionButtonStyle, 0)}${add_attribute("class", cn$1(classes?.actionButton, toast?.classes?.actionButton), 0)}>${escape(toast.action.label)}</button>` : ``}`}</li>`;
});
const Loader = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let { visible } = $$props;
const bars = Array(12).fill(0);
if ($$props.visible === void 0 && $$bindings.visible && visible !== void 0)
$$bindings.visible(visible);
return `<div class="sonner-loading-wrapper"${add_attribute("data-visible", visible, 0)}><div class="sonner-spinner">${each(bars, (_, i) => {
return `<div class="sonner-loading-bar"></div>`;
})}</div></div>`;
});
const Icon = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let { type = "success" } = $$props;
if ($$props.type === void 0 && $$bindings.type && type !== void 0)
$$bindings.type(type);
return `${type === "success" ? `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" height="20" width="20"><path fill-rule="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" clip-rule="evenodd"></path></svg>` : `${type === "error" ? `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" height="20" width="20"><path fill-rule="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" clip-rule="evenodd"></path></svg>` : `${type === "info" ? `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" height="20" width="20"><path fill-rule="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" clip-rule="evenodd"></path></svg>` : `${type === "warning" ? `<svg viewBox="0 0 64 64" fill="currentColor" height="20" width="20" xmlns="http://www.w3.org/2000/svg"><path d="M32.427,7.987c2.183,0.124 4,1.165 5.096,3.281l17.936,36.208c1.739,3.66 -0.954,8.585 -5.373,8.656l-36.119,0c-4.022,-0.064 -7.322,-4.631 -5.352,-8.696l18.271,-36.207c0.342,-0.65 0.498,-0.838 0.793,-1.179c1.186,-1.375 2.483,-2.111 4.748,-2.063Zm-0.295,3.997c-0.687,0.034 -1.316,0.419 -1.659,1.017c-6.312,11.979 -12.397,24.081 -18.301,36.267c-0.546,1.225 0.391,2.797 1.762,2.863c12.06,0.195 24.125,0.195 36.185,0c1.325,-0.064 2.321,-1.584 1.769,-2.85c-5.793,-12.184 -11.765,-24.286 -17.966,-36.267c-0.366,-0.651 -0.903,-1.042 -1.79,-1.03Z"></path><path d="M33.631,40.581l-3.348,0l-0.368,-16.449l4.1,0l-0.384,16.449Zm-3.828,5.03c0,-0.609 0.197,-1.113 0.592,-1.514c0.396,-0.4 0.935,-0.601 1.618,-0.601c0.684,0 1.223,0.201 1.618,0.601c0.395,0.401 0.593,0.905 0.593,1.514c0,0.587 -0.193,1.078 -0.577,1.473c-0.385,0.395 -0.929,0.593 -1.634,0.593c-0.705,0 -1.249,-0.198 -1.634,-0.593c-0.384,-0.395 -0.576,-0.886 -0.576,-1.473Z"></path></svg>` : ``}`}`}`}`;
});
const css = {
code: ":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,\n system-ui,\n -apple-system,\n BlinkMacSystemFont,\n Segoe UI,\n Roboto,\n Helvetica Neue,\n Arial,\n Noto Sans,\n sans-serif,\n Apple Color Emoji,\n Segoe UI Emoji,\n Segoe UI Symbol,\n 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}:where([data-sonner-toaster][data-x-position='right']){right:max(var(--offset), env(safe-area-inset-right))}:where([data-sonner-toaster][data-x-position='left']){left:max(var(--offset), env(safe-area-inset-left))}:where([data-sonner-toaster][data-x-position='center']){left:50%;transform:translateX(-50%)}:where([data-sonner-toaster][data-y-position='top']){top:max(var(--offset), env(safe-area-inset-top))}:where([data-sonner-toaster][data-y-position='bottom']){bottom:max(var(--offset), env(safe-area-inset-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 400ms,\n opacity 400ms,\n height 400ms,\n box-shadow 200ms;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:0px 4px 12px rgba(0, 0, 0, 0.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}:where([data-sonner-toast]:focus-visible){box-shadow:0px 4px 12px rgba(0, 0, 0, 0.1),\n 0 0 0 2px rgba(0, 0, 0, 0.2)}: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(0.8);transform-origin:center;animation:sonner-fade-in 300ms 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 400ms,\n box-shadow 200ms}:where([data-sonner-toast]) :where([data-button]):focus-visible{box-shadow:0 0 0 2px rgba(0, 0, 0, 0.4)}: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, 0.08)}:where([data-sonner-toast][data-theme='dark']) :where([data-cancel]){background:rgba(255, 255, 255, 0.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;background:var(--gray1);color:var(--gray12);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity 100ms,\n background 200ms,\n border-color 200ms}:where([data-sonner-toast]) :where([data-close-button]):focus-visible{box-shadow:0px 4px 12px rgba(0, 0, 0, 0.1),\n 0 0 0 2px rgba(0, 0, 0, 0.2)}: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:0;right:0;height:100%;z-index:-1}:where(\n [data-sonner-toast][data-y-position='top'][data-swiping='true']\n )::before{bottom:50%;transform:scaleY(3) translateY(50%)}:where(\n [data-sonner-toast][data-y-position='bottom'][data-swiping='true']\n )::before{top:50%;transform:scaleY(3) translateY(-50%)}:where(\n [data-sonner-toast][data-swiping='false'][data-removed='true']\n )::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) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before)))\n scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}:where([data-sonner-toast])>*{transition:opacity 400ms}:where(\n [data-sonner-toast][data-expanded='false'][data-front='false'][data-styled='true']\n )\n >*{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(\n [data-sonner-toast][data-removed='true'][data-front='true'][data-swipe-out='false']\n ){--y:translateY(calc(var(--lift) * -100%));opacity:0}:where(\n [data-sonner-toast][data-removed='true'][data-front='false'][data-swipe-out='false'][data-expanded='true']\n ){--y:translateY(\n calc(var(--lift) * var(--offset) + var(--lift) * -100%)\n );opacity:0}:where(\n [data-sonner-toast][data-removed='true'][data-front='false'][data-swipe-out='false'][data-expanded='false']\n ){--y:translateY(40%);opacity:0;transition:transform 500ms,\n opacity 200ms}:where(\n [data-sonner-toast][data-removed='true'][data-front='false']\n )::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping='true']{transform:var(--y) translateY(var(--swipe-amount, 0px));transition:none}[data-sonner-toast][data-swipe-out='true'][data-y-position='bottom'],[data-sonner-toast][data-swipe-out='true'][data-y-position='top']{animation:swipe-out 200ms ease-out forwards}@keyframes swipe-out{from{transform:translateY(\n calc(var(--lift) * var(--offset) + var(--swipe-amount))\n );opacity:1}to{transform:translateY(\n calc(\n var(--lift) * var(--offset) + var(--swipe-amount) +\n var(--lift) * -100%\n )\n );opacity:0}}@media(max-width: 600px){[data-sonner-toaster]{position:fixed;--mobile-offset:16px;right:var(--mobile-offset);left:var(--mobile-offset);width:100%}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset) * 2)}[data-sonner-toaster][data-x-position='left']{left:var(--mobile-offset)}[data-sonner-toaster][data-y-position='bottom']{bottom:20px}[data-sonner-toaster][data-y-position='top']{top:20px}[data-sonner-toaster][data-x-position='center']{left:var(--mobile-offset);right:var(--mobile-offset);transform:none}}[data-sonner-toaster][data-theme='light']{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 91%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 91%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 91%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-theme='light']\n [data-sonner-toast][data-invert='true']{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-theme='dark']\n [data-sonner-toast][data-invert='true']{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-theme='dark']{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 100%, 12%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 12%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-rich-colors='true'] [data-sonner-toast][data-type='success']{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors='true']\n [data-sonner-toast][data-type='success']\n [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors='true'] [data-sonner-toast][data-type='info']{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors='true']\n [data-sonner-toast][data-type='info']\n [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors='true'] [data-sonner-toast][data-type='warning']{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors='true']\n [data-sonner-toast][data-type='warning']\n [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors='true'] [data-sonner-toast][data-type='error']{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors='true']\n [data-sonner-toast][data-type='error']\n [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible='false']{transform-origin:center;animation:sonner-fade-out 0.2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:nth-child(1){animation-delay:-1.2s;transform:rotate(0.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-0.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-0.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-0.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-0.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-0.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-0.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-0.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-0.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-0.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(0.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(0.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:0.15}}@media(prefers-reduced-motion){[data-sonner-toast],[data-sonner-toast]>*,.sonner-loading-bar{transition:none !important;animation:none !important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);transform-origin:center;transition:opacity 200ms,\n transform 200ms}.sonner-loader[data-visible='false']{opacity:0;transform:scale(0.8) translate(-50%, -50%)}",
map: `{"version":3,"file":"Toaster.svelte","sources":["Toaster.svelte"],"sourcesContent":["<script>import { onDestroy, onMount } from 'svelte';\\nimport { toastState } from './state.js';\\nimport Toast from './Toast.svelte';\\nimport Loader from './Loader.svelte';\\nimport Icon from './Icon.svelte';\\n// Visible toasts amount\\nconst VISIBLE_TOASTS_AMOUNT = 3;\\n// Viewport padding\\nconst VIEWPORT_OFFSET = '32px';\\n// Default toast width\\nconst TOAST_WIDTH = 356;\\n// Default gap between toasts\\nconst GAP = 14;\\nfunction getInitialTheme(t) {\\n if (t !== 'system') {\\n return t;\\n }\\n if (typeof window !== 'undefined') {\\n if (window.matchMedia &&\\n window.matchMedia('(prefers-color-scheme: dark)').matches) {\\n return 'dark';\\n }\\n return 'light';\\n }\\n return 'light';\\n}\\nfunction getDocumentDirection() {\\n if (typeof window === 'undefined')\\n return 'ltr';\\n if (typeof document === 'undefined')\\n return 'ltr'; // For Fresh purpose\\n const dirAttribute = document.documentElement.getAttribute('dir');\\n if (dirAttribute === 'auto' || !dirAttribute) {\\n return window.getComputedStyle(document.documentElement)\\n .direction;\\n }\\n return dirAttribute;\\n}\\nexport let invert = false;\\nexport let theme = 'light';\\nexport let position = 'bottom-right';\\nexport let hotkey = ['altKey', 'KeyT'];\\nexport let richColors = false;\\nexport let expand = false;\\nexport let duration = 4000;\\nexport let visibleToasts = VISIBLE_TOASTS_AMOUNT;\\nexport let closeButton = false;\\nexport let toastOptions = {};\\nexport let offset = null;\\nexport let dir = getDocumentDirection();\\nconst { toasts, heights, reset } = toastState;\\n$: possiblePositions = Array.from(new Set([\\n position,\\n ...$toasts\\n .filter((toast) => toast.position)\\n .map((toast) => toast.position)\\n].filter(Boolean)));\\nlet expanded = false;\\nlet interacting = false;\\nlet actualTheme = getInitialTheme(theme);\\nlet listRef;\\nlet lastFocusedElementRef = null;\\nlet isFocusWithinRef = false;\\n$: hotkeyLabel = hotkey.join('+').replace(/Key/g, '').replace(/Digit/g, '');\\n$: if ($toasts.length <= 1) {\\n expanded = false;\\n}\\nonDestroy(() => {\\n if (listRef && lastFocusedElementRef) {\\n lastFocusedElementRef.focus({ preventScroll: true });\\n lastFocusedElementRef = null;\\n isFocusWithinRef = false;\\n }\\n});\\nonMount(() => {\\n reset();\\n const handleKeydown = (event) => {\\n const isHotkeyPressed = hotkey.every((key) => \\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\\n event[key] || event.code === key);\\n if (isHotkeyPressed) {\\n expanded = true;\\n listRef?.focus();\\n }\\n if (event.code === 'Escape' &&\\n (document.activeElement === listRef ||\\n listRef?.contains(document.activeElement))) {\\n expanded = false;\\n }\\n };\\n document.addEventListener('keydown', handleKeydown);\\n return () => {\\n document.removeEventListener('keydown', handleKeydown);\\n };\\n});\\n$: {\\n if (theme !== 'system') {\\n actualTheme = theme;\\n }\\n if (typeof window !== 'undefined') {\\n if (theme === 'system') {\\n // check if current preference is dark\\n if (window.matchMedia &&\\n window.matchMedia('(prefers-color-scheme: dark)').matches) {\\n // it's currently dark\\n actualTheme = 'dark';\\n }\\n else {\\n // it's not dark\\n actualTheme = 'light';\\n }\\n }\\n window\\n .matchMedia('(prefers-color-scheme: dark)')\\n .addEventListener('change', ({ matches }) => {\\n actualTheme = matches ? 'dark' : 'light';\\n });\\n }\\n}\\nfunction handleBlur(event) {\\n if (isFocusWithinRef &&\\n !event.currentTarget.contains(event.relatedTarget)) {\\n isFocusWithinRef = false;\\n if (lastFocusedElementRef) {\\n lastFocusedElementRef.focus({ preventScroll: true });\\n lastFocusedElementRef = null;\\n }\\n }\\n}\\nfunction handleFocus(event) {\\n if (!isFocusWithinRef) {\\n isFocusWithinRef = true;\\n lastFocusedElementRef = event.relatedTarget;\\n }\\n}\\n<\/script>\\n\\n{#if $toasts.length > 0}\\n\\t<section aria-label={\`Notifications \${hotkeyLabel}\`} tabIndex={-1}>\\n\\t\\t{#each possiblePositions as position, index}\\n\\t\\t\\t<ol\\n\\t\\t\\t\\ttabIndex={-1}\\n\\t\\t\\t\\tbind:this={listRef}\\n\\t\\t\\t\\tclass={$$props.class}\\n\\t\\t\\t\\tdata-sonner-toaster\\n\\t\\t\\t\\tdata-theme={actualTheme}\\n\\t\\t\\t\\tdata-rich-colors={richColors}\\n\\t\\t\\t\\tdir={dir === 'auto' ? getDocumentDirection() : dir}\\n\\t\\t\\t\\tdata-y-position={position.split('-')[0]}\\n\\t\\t\\t\\tdata-x-position={position.split('-')[1]}\\n\\t\\t\\t\\ton:blur={handleBlur}\\n\\t\\t\\t\\ton:focus={handleFocus}\\n\\t\\t\\t\\ton:mouseenter={() => (expanded = true)}\\n\\t\\t\\t\\ton:mousemove={() => (expanded = true)}\\n\\t\\t\\t\\ton:mouseleave={() => {\\n\\t\\t\\t\\t\\tif (!interacting) {\\n\\t\\t\\t\\t\\t\\texpanded = false;\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}}\\n\\t\\t\\t\\ton:pointerdown={() => (interacting = true)}\\n\\t\\t\\t\\ton:pointerup={() => (interacting = false)}\\n\\t\\t\\t\\tstyle:--front-toast-height={\`\${$heights[0]?.height}px\`}\\n\\t\\t\\t\\tstyle:--offset={typeof offset === 'number'\\n\\t\\t\\t\\t\\t? \`\${offset}px\`\\n\\t\\t\\t\\t\\t: offset || VIEWPORT_OFFSET}\\n\\t\\t\\t\\tstyle:--width={\`\${TOAST_WIDTH}px\`}\\n\\t\\t\\t\\tstyle:--gap={\`\${GAP}px\`}\\n\\t\\t\\t\\tstyle={$$props.style}\\n\\t\\t\\t\\t{...$$restProps}\\n\\t\\t\\t>\\n\\t\\t\\t\\t{#each $toasts.filter((toast) => (!toast.position && index === 0) || toast.position === position) as toast, index (toast.id)}\\n\\t\\t\\t\\t\\t<Toast\\n\\t\\t\\t\\t\\t\\t{index}\\n\\t\\t\\t\\t\\t\\t{toast}\\n\\t\\t\\t\\t\\t\\t{invert}\\n\\t\\t\\t\\t\\t\\t{visibleToasts}\\n\\t\\t\\t\\t\\t\\t{closeButton}\\n\\t\\t\\t\\t\\t\\t{interacting}\\n\\t\\t\\t\\t\\t\\t{position}\\n\\t\\t\\t\\t\\t\\texpandByDefault={expand}\\n\\t\\t\\t\\t\\t\\t{expanded}\\n\\t\\t\\t\\t\\t\\tactionButtonStyle={toastOptions?.actionButtonStyle ||\\n\\t\\t\\t\\t\\t\\t\\t''}\\n\\t\\t\\t\\t\\t\\tcancelButtonStyle={toastOptions?.cancelButtonStyle ||\\n\\t\\t\\t\\t\\t\\t\\t''}\\n\\t\\t\\t\\t\\t\\tclass={toastOptions?.class || ''}\\n\\t\\t\\t\\t\\t\\tdescriptionClass={toastOptions?.descriptionClass || ''}\\n\\t\\t\\t\\t\\t\\tclasses={toastOptions.classes || {}}\\n\\t\\t\\t\\t\\t\\tduration={toastOptions?.duration ?? duration}\\n\\t\\t\\t\\t\\t\\tunstyled={toastOptions.unstyled || false}\\n\\t\\t\\t\\t\\t>\\n\\t\\t\\t\\t\\t\\t<slot name=\\"loading-icon\\" slot=\\"loading-icon\\">\\n\\t\\t\\t\\t\\t\\t\\t<Loader visible={toast.type === 'loading'} />\\n\\t\\t\\t\\t\\t\\t</slot>\\n\\t\\t\\t\\t\\t\\t<slot name=\\"success-icon\\" slot=\\"success-icon\\">\\n\\t\\t\\t\\t\\t\\t\\t<Icon type=\\"success\\" />\\n\\t\\t\\t\\t\\t\\t</slot>\\n\\t\\t\\t\\t\\t\\t<slot name=\\"error-icon\\" slot=\\"error-icon\\">\\n\\t\\t\\t\\t\\t\\t\\t<Icon type=\\"error\\" />\\n\\t\\t\\t\\t\\t\\t</slot>\\n\\t\\t\\t\\t\\t\\t<slot name=\\"warning-icon\\" slot=\\"warning-icon\\">\\n\\t\\t\\t\\t\\t\\t\\t<Icon type=\\"warning\\" />\\n\\t\\t\\t\\t\\t\\t</slot>\\n\\t\\t\\t\\t\\t\\t<slot name=\\"info-icon\\" slot=\\"info-icon\\">\\n\\t\\t\\t\\t\\t\\t\\t<Icon type=\\"info\\" />\\n\\t\\t\\t\\t\\t\\t</slot>\\n\\t\\t\\t\\t\\t</Toast>\\n\\t\\t\\t\\t{/each}\\n\\t\\t\\t</ol>\\n\\t\\t{/each}\\n\\t</section>\\n{/if}\\n\\n<style global>\\n\\t:global(:where(html[dir='ltr'])),\\n\\t:global(:where([data-sonner-toaster][dir='ltr'])) {\\n\\t\\t--toast-icon-margin-start: -3px;\\n\\t\\t--toast-icon-margin-end: 4px;\\n\\t\\t--toast-svg-margin-start: -1px;\\n\\t\\t--toast-svg-margin-end: 0px;\\n\\t\\t--toast-button-margin-start: auto;\\n\\t\\t--toast-button-margin-end: 0;\\n\\t\\t--toast-close-button-start: 0;\\n\\t\\t--toast-close-button-end: unset;\\n\\t\\t--toast-close-button-transform: translate(-35%, -35%);\\n\\t}\\n\\n\\t:global(:where(html[dir='rtl'])),\\n\\t:global(:where([data-sonner-toaster][dir='rtl'])) {\\n\\t\\t--toast-icon-margin-start: 4px;\\n\\t\\t--toast-icon-margin-end: -3px;\\n\\t\\t--toast-svg-margin-start: 0px;\\n\\t\\t--toast-svg-margin-end: -1px;\\n\\t\\t--toast-button-margin-start: 0;\\n\\t\\t--toast-button-margin-end: auto;\\n\\t\\t--toast-close-button-start: unset;\\n\\t\\t--toast-close-button-end: 0;\\n\\t\\t--toast-close-button-transform: translate(35%, -35%);\\n\\t}\\n\\n\\t:global(:where([data-sonner-toaster])) {\\n\\t\\tposition: fixed;\\n\\t\\twidth: var(--width);\\n\\t\\tfont-family:\\n\\t\\t\\tui-sans-serif,\\n\\t\\t\\tsystem-ui,\\n\\t\\t\\t-apple-system,\\n\\t\\t\\tBlinkMacSystemFont,\\n\\t\\t\\tSegoe UI,\\n\\t\\t\\tRoboto,\\n\\t\\t\\tHelvetica Neue,\\n\\t\\t\\tArial,\\n\\t\\t\\tNoto Sans,\\n\\t\\t\\tsans-serif,\\n\\t\\t\\tApple Color Emoji,\\n\\t\\t\\tSegoe UI Emoji,\\n\\t\\t\\tSegoe UI Symbol,\\n\\t\\t\\tNoto Color Emoji;\\n\\t\\t--gray1: hsl(0, 0%, 99%);\\n\\t\\t--gray2: hsl(0, 0%, 97.3%);\\n\\t\\t--gray3: hsl(0, 0%, 95.1%);\\n\\t\\t--gray4: hsl(0, 0%, 93%);\\n\\t\\t--gray5: hsl(0, 0%, 90.9%);\\n\\t\\t--gray6: hsl(0, 0%, 88.7%);\\n\\t\\t--gray7: hsl(0, 0%, 85.8%);\\n\\t\\t--gray8: hsl(0, 0%, 78%);\\n\\t\\t--gray9: hsl(0, 0%, 56.1%);\\n\\t\\t--gray10: hsl(0, 0%, 52.3%);\\n\\t\\t--gray11: hsl(0, 0%, 43.5%);\\n\\t\\t--gray12: hsl(0, 0%, 9%);\\n\\t\\t--border-radius: 8px;\\n\\t\\tbox-sizing: border-box;\\n\\t\\tpadding: 0;\\n\\t\\tmargin: 0;\\n\\t\\tlist-style: none;\\n\\t\\toutline: none;\\n\\t\\tz-index: 999999999;\\n\\t}\\n\\n\\t:global(:where([data-sonner-toaster][data-x-position='right'])) {\\n\\t\\tright: max(var(--offset), env(safe-area-inset-right));\\n\\t}\\n\\n\\t:global(:where([data-sonner-toaster][data-x-position='left'])) {\\n\\t\\tleft: max(var(--offset), env(safe-area-inset-left));\\n\\t}\\n\\n\\t:global(:where([data-sonner-toaster][data-x-position='center'])) {\\n\\t\\tleft: 50%;\\n\\t\\ttransform: translateX(-50%);\\n\\t}\\n\\n\\t:global(:where([data-sonner-toaster][data-y-position='top'])) {\\n\\t\\ttop: max(var(--offset), env(safe-area-inset-top));\\n\\t}\\n\\n\\t:global(:where([data-sonner-toaster][data-y-position='bottom'])) {\\n\\t\\tbottom: max(var(--offset), env(safe-area-inset-bottom));\\n\\t}\\n\\n\\t:global(:where([data-sonner-toast])) {\\n\\t\\t--y: translateY(100%);\\n\\t\\t--lift-amount: calc(var(--lift) * var(--gap));\\n\\t\\tz-index: var(--z-index);\\n\\t\\tposition: absolute;\\n\\t\\topacity: 0;\\n\\t\\ttransform: var(--y);\\n\\t\\tfilter: blur(0);\\n\\t\\t/* https://stackoverflow.com/questions/48124372/pointermove-event-not-working-with-touch-why-not */\\n\\t\\ttouch-action: none;\\n\\t\\ttransition:\\n\\t\\t\\ttransform 400ms,\\n\\t\\t\\topacity 400ms,\\n\\t\\t\\theight 400ms,\\n\\t\\t\\tbox-shadow 200ms;\\n\\t\\tbox-sizing: border-box;\\n\\t\\toutline: none;\\n\\t\\toverflow-wrap: anywhere;\\n\\t}\\n\\n\\t:global(:where([data-sonner-toast][data-styled='true'])) {\\n\\t\\tpadding: 16px;\\n\\t\\tbackground: var(--normal-bg);\\n\\t\\tborder: 1px solid var(--normal-border);\\n\\t\\tcolor: var(--normal-text);\\n\\t\\tborder-radius: var(--border-radius);\\n\\t\\tbox-shadow: 0px 4px 12px rgba(0, 0, 0, 0.1);\\n\\t\\twidth: var(--width);\\n\\t\\tfont-size: 13px;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tgap: 6px;\\n\\t}\\n\\n\\t:global(:where([data-sonner-toast]:focus-visible)) {\\n\\t\\tbox-shadow:\\n\\t\\t\\t0px 4px 12px rgba(0, 0, 0, 0.1),\\n\\t\\t\\t0 0 0 2px rgba(0, 0, 0, 0.2);\\n\\t}\\n\\n\\t:global(:where([data-sonner-toast][data-y-position='top'])) {\\n\\t\\ttop: 0;\\n\\t\\t--y: translateY(-100%);\\n\\t\\t--lift: 1;\\n\\t\\t--lift-amount: calc(1 * var(--gap));\\n\\t}\\n\\n\\t:global(:where([data-sonner-toast][data-y-position='bottom'])) {\\n\\t\\tbottom: 0;\\n\\t\\t--y: translateY(100%);\\n\\t\\t--lift: -1;\\n\\t\\t--lift-amount: calc(var(--lift) * var(--gap));\\n\\t}\\n\\n\\t:global(:where([data-sonner-toast])) :global(:where([data-description])) {\\n\\t\\tfont-weight: 400;\\n\\t\\tline-height: 1.4;\\n\\t\\tcolor: inherit;\\n\\t}\\n\\n\\t:global(:where([data-sonner-toast])) :global(:where([data-title])) {\\n\\t\\tfont-weight: 500;\\n\\t\\tline-height: 1.5;\\n\\t\\tcolor: inherit;\\n\\t}\\n\\n\\t:global(:where([data-sonner-toast])) :global(:where([data-icon])) {\\n\\t\\tdisplay: flex;\\n\\t\\theight: 16px;\\n\\t\\twidth: 16px;\\n\\t\\tposition: relative;\\n\\t\\tjustify-content: flex-start;\\n\\t\\talign-items: center;\\n\\t\\tflex-shrink: 0;\\n\\t\\tmargin-left: var(--toast-icon-margin-start);\\n\\t\\tmargin-right: var(--toast-icon-margin-end);\\n\\t}\\n\\n\\t:global(:where([data-sonner-toast][data-promise='true'])) :global(:where([data-icon])) > :global(svg) {\\n\\t\\topacity: 0;\\n\\t\\ttransform: scale(0.8);\\n\\t\\ttransform-origin: center;\\n\\t\\tanimation: sonner-fade-in 300ms ease forwards;\\n\\t}\\n\\n\\t:global(:where([data-sonner-toast])) :global(:where([data-icon])) > :global(*) {\\n\\t\\tflex-shrink: 0;\\n\\t}\\n\\n\\t:global(:where([data-sonner-toast])) :global(:where([data-icon])) :global(svg) {\\n\\t\\tmargin-left: var(--toast-svg-margin-start);\\n\\t\\tmargin-right: var(--toast-svg-margin-end);\\n\\t}\\n\\n\\t:global(:where([data-sonner-toast])) :global(:where([data-content])) {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tgap: 2px;\\n\\t}\\n\\n\\t:global([data-sonner-toast][data-styled='true']) :global([data-button]) {\\n\\t\\tborder-radius: 4px;\\n\\t\\tpadding-left: 8px;\\n\\t\\tpadding-right: 8px;\\n\\t\\theight: 24px;\\n\\t\\tfont-size: 12px;\\n\\t\\tcolor: var(--normal-bg);\\n\\t\\tbackground: var(--normal-text);\\n\\t\\tmargin-left: var(--toast-button-margin-start);\\n\\t\\tmargin-right: var(--toast-button-margin-end);\\n\\t\\tborder: none;\\n\\t\\tcursor: pointer;\\n\\t\\toutline: none;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tflex-shrink: 0;\\n\\t\\ttransition:\\n\\t\\t\\topacity 400ms,\\n\\t\\t\\tbox-shadow 200ms;\\n\\t}\\n\\n\\t:global(:where([data-sonner-toast])) :global(:where([data-button]):focus-visible) {\\n\\t\\tbox-shadow: 0 0 0 2px rgba(0, 0, 0, 0.4);\\n\\t}\\n\\n\\t:global(:where([data-sonner-toast])) :global(:where([data-button]):first-of-type) {\\n\\t\\tmargin-left: var(--toast-button-margin-start);\\n\\t\\tmargin-right: var(--toast-button-margin-end);\\n\\t}\\n\\n\\t:global(:where([data-sonner-toast])) :global(:where([data-cancel])) {\\n\\t\\tcolor: var(--normal-text);\\n\\t\\tbackground: rgba(0, 0, 0, 0.08);\\n\\t}\\n\\n\\t:global(:where([data-sonner-toast][data-theme='dark'])) :global(:where([data-cancel])) {\\n\\t\\tbackground: rgba(255, 255, 255, 0.3);\\n\\t}\\n\\n\\t:global(:where([data-sonner-toast])) :global(:where([data-close-button])) {\\n\\t\\tposition: absolute;\\n\\t\\tleft: var(--toast-close-button-start);\\n\\t\\tright: var(--toast-close-button-end);\\n\\t\\ttop: 0;\\n\\t\\theight: 20px;\\n\\t\\twidth: 20px;\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: center;\\n\\t\\talign-items: center;\\n\\t\\tpadding: 0;\\n\\t\\tbackground: var(--gray1);\\n\\t\\tcolor: var(--gray12);\\n\\t\\tborder: 1px solid var(--gray4);\\n\\t\\ttransform: var(--toast-close-button-transform);\\n\\t\\tborder-radius: 50%;\\n\\t\\tcursor: pointer;\\n\\t\\tz-index: 1;\\n\\t\\ttransition:\\n\\t\\t\\topacity 100ms,\\n\\t\\t\\tbackground 200ms,\\n\\t\\t\\tborder-color 200ms;\\n\\t}\\n\\n\\t:global(:where([data-sonner-toast])) :global(:where([data-close-button]):focus-visible) {\\n\\t\\tbox-shadow:\\n\\t\\t\\t0px 4px 12px rgba(0, 0, 0, 0.1),\\n\\t\\t\\t0 0 0 2px rgba(0, 0, 0, 0.2);\\n\\t}\\n\\n\\t:global(:where([data-sonner-toast])) :global(:where([data-disabled='true'])) {\\n\\t\\tcursor: not-allowed;\\n\\t}\\n\\n\\t:global(:where([data-sonner-toast]):hover) :global(:where([data-close-button]):hover) {\\n\\t\\tbackground: var(--gray2);\\n\\t\\tborder-color: var(--gray5);\\n\\t}\\n\\n\\t/* Leave a ghost div to avoid setting hover to false when swiping out */\\n\\t:global(:where([data-sonner-toast][data-swiping='true'])::before) {\\n\\t\\tcontent: '';\\n\\t\\tposition: absolute;\\n\\t\\tleft: 0;\\n\\t\\tright: 0;\\n\\t\\theight: 100%;\\n\\t\\tz-index: -1;\\n\\t}\\n\\n\\t:global(:where(\\n\\t\\t\\t[data-sonner-toast][data-y-position='top'][data-swiping='true']\\n\\t\\t)::before) {\\n\\t\\t/* y 50% needed to distribute height additional height evenly */\\n\\t\\tbottom: 50%;\\n\\t\\ttransform: scaleY(3) translateY(50%);\\n\\t}\\n\\n\\t:global(:where(\\n\\t\\t\\t[data-sonner-toast][data-y-position='bottom'][data-swiping='true']\\n\\t\\t)::before) {\\n\\t\\t/* y -50% needed to distribute height additional height evenly */\\n\\t\\ttop: 50%;\\n\\t\\ttransform: scaleY(3) translateY(-50%);\\n\\t}\\n\\n\\t/* Leave a ghost div to avoid setting hover to false when transitioning out */\\n\\t:global(:where(\\n\\t\\t\\t[data-sonner-toast][data-swiping='false'][data-removed='true']\\n\\t\\t)::before) {\\n\\t\\tcontent: '';\\n\\t\\tposition: absolute;\\n\\t\\tinset: 0;\\n\\t\\ttransform: scaleY(2);\\n\\t}\\n\\n\\t/* Needed to avoid setting hover to false when inbetween toasts */\\n\\t:global(:where([data-sonner-toast])::after) {\\n\\t\\tcontent: '';\\n\\t\\tposition: absolute;\\n\\t\\tleft: 0;\\n\\t\\theight: calc(var(--gap) + 1px);\\n\\t\\tbottom: 100%;\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\t:global(:where([data-sonner-toast][data-mounted='true'])) {\\n\\t\\t--y: translateY(0);\\n\\t\\topacity: 1;\\n\\t}\\n\\n\\t:global(:where([data-sonner-toast][data-expanded='false'][data-front='false'])) {\\n\\t\\t--scale: var(--toasts-before) * 0.05 + 1;\\n\\t\\t--y: translateY(calc(var(--lift-amount) * var(--toasts-before)))\\n\\t\\t\\tscale(calc(-1 * var(--scale)));\\n\\t\\theight: var(--front-toast-height);\\n\\t}\\n\\n\\t:global(:where([data-sonner-toast])) > :global(*) {\\n\\t\\ttransition: opacity 400ms;\\n\\t}\\n\\n\\t:global(:where(\\n\\t\\t\\t[data-sonner-toast][data-expanded='false'][data-front='false'][data-styled='true']\\n\\t\\t)\\n\\t\\t)> :global(*) {\\n\\t\\topacity: 0;\\n\\t}\\n\\n\\t:global(:where([data-sonner-toast][data-visible='false'])) {\\n\\t\\topacity: 0;\\n\\t\\tpointer-events: none;\\n\\t}\\n\\n\\t:global(:where([data-sonner-toast][data-mounted='true'][data-expanded='true'])) {\\n\\t\\t--y: translateY(calc(var(--lift) * var(--offset)));\\n\\t\\theight: var(--initial-height);\\n\\t}\\n\\n\\t:global(:where(\\n\\t\\t\\t[data-sonner-toast][data-removed='true'][data-front='true'][data-swipe-out='false']\\n\\t\\t)) {\\n\\t\\t--y: translateY(calc(var(--lift) * -100%));\\n\\t\\topacity: 0;\\n\\t}\\n\\n\\t:global(:where(\\n\\t\\t\\t[data-sonner-toast][data-removed='true'][data-front='false'][data-swipe-out='false'][data-expanded='true']\\n\\t\\t)) {\\n\\t\\t--y: translateY(\\n\\t\\t\\tcalc(var(--lift) * var(--offset) + var(--lift) * -100%)\\n\\t\\t);\\n\\t\\topacity: 0;\\n\\t}\\n\\n\\t:global(:where(\\n\\t\\t\\t[data-sonner-toast][data-removed='true'][data-front='false'][data-swipe-out='false'][data-expanded='false']\\n\\t\\t)) {\\n\\t\\t--y: translateY(40%);\\n\\t\\topacity: 0;\\n\\t\\ttransition:\\n\\t\\t\\ttransform 500ms,\\n\\t\\t\\topacity 200ms;\\n\\t}\\n\\n\\t/* Bump up the height to make sure hover state doesn't get set to false */\\n\\t:global(:where(\\n\\t\\t\\t[data-sonner-toast][data-removed='true'][data-front='false']\\n\\t\\t)::before) {\\n\\t\\theight: calc(var(--initial-height) + 20%);\\n\\t}\\n\\n\\t:global([data-sonner-toast][data-swiping='true']) {\\n\\t\\ttransform: var(--y) translateY(var(--swipe-amount, 0px));\\n\\t\\ttransition: none;\\n\\t}\\n\\n\\t:global([data-sonner-toast][data-swipe-out='true'][data-y-position='bottom']),\\n\\t:global([data-sonner-toast][data-swipe-out='true'][data-y-position='top']) {\\n\\t\\tanimation: swipe-out 200ms ease-out forwards;\\n\\t}\\n\\n\\t@keyframes -global-swipe-out {\\n\\t\\tfrom {\\n\\t\\t\\ttransform: translateY(\\n\\t\\t\\t\\tcalc(var(--lift) * var(--offset) + var(--swipe-amount))\\n\\t\\t\\t);\\n\\t\\t\\topacity: 1;\\n\\t\\t}\\n\\n\\t\\tto {\\n\\t\\t\\ttransform: translateY(\\n\\t\\t\\t\\tcalc(\\n\\t\\t\\t\\t\\tvar(--lift) * var(--offset) + var(--swipe-amount) +\\n\\t\\t\\t\\t\\t\\tvar(--lift) * -100%\\n\\t\\t\\t\\t)\\n\\t\\t\\t);\\n\\t\\t\\topacity: 0;\\n\\t\\t}\\n\\t}\\n\\n\\t@media (max-width: 600px) {\\n\\t\\t:global([data-sonner-toaster]) {\\n\\t\\t\\tposition: fixed;\\n\\t\\t\\t--mobile-offset: 16px;\\n\\t\\t\\tright: var(--mobile-offset);\\n\\t\\t\\tleft: var(--mobile-offset);\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\n\\t\\t:global([data-sonner-toaster]) :global([data-sonner-toast]) {\\n\\t\\t\\tleft: 0;\\n\\t\\t\\tright: 0;\\n\\t\\t\\twidth: calc(100% - var(--mobile-offset) * 2);\\n\\t\\t}\\n\\n\\t\\t:global([data-sonner-toaster][data-x-position='left']) {\\n\\t\\t\\tleft: var(--mobile-offset);\\n\\t\\t}\\n\\n\\t\\t:global([data-sonner-toaster][data-y-position='bottom']) {\\n\\t\\t\\tbottom: 20px;\\n\\t\\t}\\n\\n\\t\\t:global([data-sonner-toaster][data-y-position='top']) {\\n\\t\\t\\ttop: 20px;\\n\\t\\t}\\n\\n\\t\\t:global([data-sonner-toaster][data-x-position='center']) {\\n\\t\\t\\tleft: var(--mobile-offset);\\n\\t\\t\\tright: var(--mobile-offset);\\n\\t\\t\\ttransform: none;\\n\\t\\t}\\n\\t}\\n\\n\\t:global([data-sonner-toaster][data-theme='light']) {\\n\\t\\t--normal-bg: #fff;\\n\\t\\t--normal-border: var(--gray4);\\n\\t\\t--normal-text: var(--gray12);\\n\\n\\t\\t--success-bg: hsl(143, 85%, 96%);\\n\\t\\t--success-border: hsl(145, 92%, 91%);\\n\\t\\t--success-text: hsl(140, 100%, 27%);\\n\\n\\t\\t--info-bg: hsl(208, 100%, 97%);\\n\\t\\t--info-border: hsl(221, 91%, 91%);\\n\\t\\t--info-text: hsl(210, 92%, 45%);\\n\\n\\t\\t--warning-bg: hsl(49, 100%, 97%);\\n\\t\\t--warning-border: hsl(49, 91%, 91%);\\n\\t\\t--warning-text: hsl(31, 92%, 45%);\\n\\n\\t\\t--error-bg: hsl(359, 100%, 97%);\\n\\t\\t--error-border: hsl(359, 100%, 94%);\\n\\t\\t--error-text: hsl(360, 100%, 45%);\\n\\t}\\n\\n\\t:global([data-sonner-toaster][data-theme='light']\\n\\t\\t[data-sonner-toast][data-invert='true']) {\\n\\t\\t--normal-bg: #000;\\n\\t\\t--normal-border: hsl(0, 0%, 20%);\\n\\t\\t--normal-text: var(--gray1);\\n\\t}\\n\\n\\t:global([data-sonner-toaster][data-theme='dark']\\n\\t\\t[data-sonner-toast][data-invert='true']) {\\n\\t\\t--normal-bg: #fff;\\n\\t\\t--normal-border: var(--gray3);\\n\\t\\t--normal-text: var(--gray12);\\n\\t}\\n\\n\\t:global([data-sonner-toaster][data-theme='dark']) {\\n\\t\\t--normal-bg: #000;\\n\\t\\t--normal-border: hsl(0, 0%, 20%);\\n\\t\\t--normal-text: var(--gray1);\\n\\n\\t\\t--success-bg: hsl(150, 100%, 6%);\\n\\t\\t--success-border: hsl(147, 100%, 12%);\\n\\t\\t--success-text: hsl(150, 86%, 65%);\\n\\n\\t\\t--info-bg: hsl(215, 100%, 6%);\\n\\t\\t--info-border: hsl(223, 100%, 12%);\\n\\t\\t--info-text: hsl(216, 87%, 65%);\\n\\n\\t\\t--warning-bg: hsl(64, 100%, 6%);\\n\\t\\t--warning-border: hsl(60, 100%, 12%);\\n\\t\\t--warning-text: hsl(46, 87%, 65%);\\n\\n\\t\\t--error-bg: hsl(358, 76%, 10%);\\n\\t\\t--error-border: hsl(357, 89%, 16%);\\n\\t\\t--error-text: hsl(358, 100%, 81%);\\n\\t}\\n\\n\\t:global([data-rich-colors='true']) :global([data-sonner-toast][data-type='success']) {\\n\\t\\tbackground: var(--success-bg);\\n\\t\\tborder-color: var(--success-border);\\n\\t\\tcolor: var(--success-text);\\n\\t}\\n\\n\\t:global([data-rich-colors='true']\\n\\t\\t[data-sonner-toast][data-type='success']\\n\\t\\t[data-close-button]) {\\n\\t\\tbackground: var(--success-bg);\\n\\t\\tborder-color: var(--success-border);\\n\\t\\tcolor: var(--success-text);\\n\\t}\\n\\n\\t:global([data-rich-colors='true']) :global([data-sonner-toast][data-type='info']) {\\n\\t\\tbackground: var(--info-bg);\\n\\t\\tborder-color: var(--info-border);\\n\\t\\tcolor: var(--info-text);\\n\\t}\\n\\n\\t:global([data-rich-colors='true']\\n\\t\\t[data-sonner-toast][data-type='info']\\n\\t\\t[data-close-button]) {\\n\\t\\tbackground: var(--info-bg);\\n\\t\\tborder-color: var(--info-border);\\n\\t\\tcolor: var(--info-text);\\n\\t}\\n\\n\\t:global([data-rich-colors='true']) :global([data-sonner-toast][data-type='warning']) {\\n\\t\\tbackground: var(--warning-bg);\\n\\t\\tborder-color: var(--warning-border);\\n\\t\\tcolor: var(--warning-text);\\n\\t}\\n\\n\\t:global([data-rich-colors='true']\\n\\t\\t[data-sonner-toast][data-type='warning']\\n\\t\\t[data-close-button]) {\\n\\t\\tbackground: var(--warning-bg);\\n\\t\\tborder-color: var(--warning-border);\\n\\t\\tcolor: var(--warning-text);\\n\\t}\\n\\n\\t:global([data-rich-colors='true']) :global([data-sonner-toast][data-type='error']) {\\n\\t\\tbackground: var(--error-bg);\\n\\t\\tborder-color: var(--error-border);\\n\\t\\tcolor: var(--error-text);\\n\\t}\\n\\n\\t:global([data-rich-colors='true']\\n\\t\\t[data-sonner-toast][data-type='error']\\n\\t\\t[data-close-button]) {\\n\\t\\tbackground: var(--error-bg);\\n\\t\\tborder-color: var(--error-border);\\n\\t\\tcolor: var(--error-text);\\n\\t}\\n\\n\\t:global(.sonner-loading-wrapper) {\\n\\t\\t--size: 16px;\\n\\t\\theight: var(--size);\\n\\t\\twidth: var(--size);\\n\\t\\tposition: absolute;\\n\\t\\tinset: 0;\\n\\t\\tz-index: 10;\\n\\t}\\n\\n\\t:global(.sonner-loading-wrapper[data-visible='false']) {\\n\\t\\ttransform-origin: center;\\n\\t\\tanimation: sonner-fade-out 0.2s ease forwards;\\n\\t}\\n\\n\\t:global(.sonner-spinner) {\\n\\t\\tposition: relative;\\n\\t\\ttop: 50%;\\n\\t\\tleft: 50%;\\n\\t\\theight: var(--size);\\n\\t\\twidth: var(--size);\\n\\t}\\n\\n\\t:global(.sonner-loading-bar) {\\n\\t\\tanimation: sonner-spin 1.2s linear infinite;\\n\\t\\tbackground: var(--gray11);\\n\\t\\tborder-radius: 6px;\\n\\t\\theight: 8%;\\n\\t\\tleft: -10%;\\n\\t\\tposition: absolute;\\n\\t\\ttop: -3.9%;\\n\\t\\twidth: 24%;\\n\\t}\\n\\n\\t:global(.sonner-loading-bar:nth-child(1)) {\\n\\t\\tanimation-delay: -1.2s;\\n\\t\\ttransform: rotate(0.0001deg) translate(146%);\\n\\t}\\n\\n\\t:global(.sonner-loading-bar:nth-child(2)) {\\n\\t\\tanimation-delay: -1.1s;\\n\\t\\ttransform: rotate(30deg) translate(146%);\\n\\t}\\n\\n\\t:global(.sonner-loading-bar:nth-child(3)) {\\n\\t\\tanimation-delay: -1s;\\n\\t\\ttransform: rotate(60deg) translate(146%);\\n\\t}\\n\\n\\t:global(.sonner-loading-bar:nth-child(4)) {\\n\\t\\tanimation-delay: -0.9s;\\n\\t\\ttransform: rotate(90deg) translate(146%);\\n\\t}\\n\\n\\t:global(.sonner-loading-bar:nth-child(5)) {\\n\\t\\tanimation-delay: -0.8s;\\n\\t\\ttransform: rotate(120deg) translate(146%);\\n\\t}\\n\\n\\t:global(.sonner-loading-bar:nth-child(6)) {\\n\\t\\tanimation-delay: -0.7s;\\n\\t\\ttransform: rotate(150deg) translate(146%);\\n\\t}\\n\\n\\t:global(.sonner-loading-bar:nth-child(7)) {\\n\\t\\tanimation-delay: -0.6s;\\n\\t\\ttransform: rotate(180deg) translate(146%);\\n\\t}\\n\\n\\t:global(.sonner-loading-bar:nth-child(8)) {\\n\\t\\tanimation-delay: -0.5s;\\n\\t\\ttransform: rotate(210deg) translate(146%);\\n\\t}\\n\\n\\t:global(.sonner-loading-bar:nth-child(9)) {\\n\\t\\tanimation-delay: -0.4s;\\n\\t\\ttransform: rotate(240deg) translate(146%);\\n\\t}\\n\\n\\t:global(.sonner-loading-bar:nth-child(10)) {\\n\\t\\tanimation-delay: -0.3s;\\n\\t\\ttransform: rotate(270deg) translate(146%);\\n\\t}\\n\\n\\t:global(.sonner-loading-bar:nth-child(11)) {\\n\\t\\tanimation-delay: -0.2s;\\n\\t\\ttransform: rotate(300deg) translate(146%);\\n\\t}\\n\\n\\t:global(.sonner-loading-bar:nth-child(12)) {\\n\\t\\tanimation-delay: -0.1s;\\n\\t\\ttransform: rotate(330deg) translate(146%);\\n\\t}\\n\\n\\t@keyframes -global-sonner-fade-in {\\n\\t\\t0% {\\n\\t\\t\\topacity: 0;\\n\\t\\t\\ttransform: scale(0.8);\\n\\t\\t}\\n\\t\\t100% {\\n\\t\\t\\topacity: 1;\\n\\t\\t\\ttransform: scale(1);\\n\\t\\t}\\n\\t}\\n\\n\\t@keyframes -global-sonner-fade-out {\\n\\t\\t0% {\\n\\t\\t\\topacity: 1;\\n\\t\\t\\ttransform: scale(1);\\n\\t\\t}\\n\\t\\t100% {\\n\\t\\t\\topacity: 0;\\n\\t\\t\\ttransform: scale(0.8);\\n\\t\\t}\\n\\t}\\n\\n\\t@keyframes -global-sonner-spin {\\n\\t\\t0% {\\n\\t\\t\\topacity: 1;\\n\\t\\t}\\n\\t\\t100% {\\n\\t\\t\\topacity: 0.15;\\n\\t\\t}\\n\\t}\\n\\n\\t@media (prefers-reduced-motion) {\\n\\t\\t:global([data-sonner-toast]),\\n\\t\\t:global([data-sonner-toast]) > :global(*),\\n\\t\\t:global(.sonner-loading-bar) {\\n\\t\\t\\ttransition: none !important;\\n\\t\\t\\tanimation: none !important;\\n\\t\\t}\\n\\t}\\n\\n\\t:global(.sonner-loader) {\\n\\t\\tposition: absolute;\\n\\t\\ttop: 50%;\\n\\t\\tleft: 50%;\\n\\t\\ttransform: translate(-50%, -50%);\\n\\t\\ttransform-origin: center;\\n\\t\\ttransition:\\n\\t\\t\\topacity 200ms,\\n\\t\\t\\ttransform 200ms;\\n\\t}\\n\\n\\t:global(.sonner-loader[data-visible='false']) {\\n\\t\\topacity: 0;\\n\\t\\ttransform: scale(0.8) translate(-50%, -50%);\\n\\t}\\n</style>\\n"],"names":[],"mappings":"AAsNS,uBAAwB,CACxB,wCAA0C,CACjD,yBAAyB,CAAE,IAAI,CAC/B,uBAAuB,CAAE,GAAG,CAC5B,wBAAwB,CAAE,IAAI,CAC9B,sBAAsB,CAAE,GAAG,CAC3B,2BAA2B,CAAE,IAAI,CACjC,yBAAyB,CAAE,CAAC,CAC5B,0BAA0B,CAAE,CAAC,CAC7B,wBAAwB,CAAE,KAAK,CAC/B,8BAA8B,CAAE,qBACjC,CAEQ,uBAAwB,CACxB,wCAA0C,CACjD,yBAAyB,CAAE,GAAG,CAC9B,uBAAuB,CAAE,IAAI,CAC7B,wBAAwB,CAAE,GAAG,CAC7B,sBAAsB,CAAE,IAAI,CAC5B,2BAA2B,CAAE,CAAC,CAC9B,yBAAyB,CAAE,IAAI,CAC/B,0BAA0B,CAAE,KAAK,CACjC,wBAAwB,CAAE,CAAC,CAC3B,8BAA8B,CAAE,oBACjC,CAEQ,6BAA+B,CACtC,QAAQ,CAAE,KAAK,CACf,KAAK,CAAE,IAAI,OAAO,CAAC,CACnB,WAAW,CACV,aAAa,CAAC;AACjB,GAAG,SAAS,CAAC;AACb,GAAG,aAAa,CAAC;AACjB,GAAG,kBAAkB,CAAC;AACtB,GAAG,KAAK,CAAC,EAAE,CAAC;AACZ,GAAG,MAAM,CAAC;AACV,GAAG,SAAS,CAAC,IAAI,CAAC;AAClB,GAAG,KAAK,CAAC;AACT,GAAG,IAAI,CAAC,IAAI,CAAC;AACb,GAAG,UAAU,CAAC;AACd,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;AACrB,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC;AAClB,GAAG,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC;AACnB,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CACjB,OAAO,CAAE,eAAe,CACxB,OAAO,CAAE,iBAAiB,CAC1B,OAAO,CAAE,iBAAiB,CAC1B,OAAO,CAAE,eAAe,CACxB,OAAO,CAAE,iBAAiB,CAC1B,OAAO,CAAE,iBAAiB,CAC1B,OAAO,CAAE,iBAAiB,CAC1B,OAAO,CAAE,eAAe,CACxB,OAAO,CAAE,iBAAiB,CAC1B,QAAQ,CAAE,iBAAiB,CAC3B,QAAQ,CAAE,iBAAiB,CAC3B,QAAQ,CAAE,cAAc,CACxB,eAAe,CAAE,GAAG,CACpB,UAAU,CAAE,UAAU,CACtB,OAAO,CAAE,CAAC,CACV,MAAM,CAAE,CAAC,CACT,UAAU,CAAE,IAAI,CAChB,OAAO,CAAE,IAAI,CACb,OAAO,CAAE,SACV,CAEQ,sDAAwD,CAC/D,KAAK,CAAE,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,qBAAqB,CAAC,CACrD,CAEQ,qDAAuD,CAC9D,IAAI,CAAE,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,oBAAoB,CAAC,CACnD,CAEQ,uDAAyD,CAChE,IAAI,CAAE,GAAG,CACT,SAAS,CAAE,WAAW,IAAI,CAC3B,CAEQ,oDAAsD,CAC7D,GAAG,CAAE,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,mBAAmB,CAAC,CACjD,CAEQ,uDAAyD,CAChE,MAAM,CAAE,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,sBAAsB,CAAC,CACvD,CAEQ,2BAA6B,CACpC,GAAG,CAAE,gBAAgB,CACrB,aAAa,CAAE,8BAA8B,CAC7C,OAAO,CAAE,IAAI,SAAS,CAAC,CACvB,QAAQ,CAAE,QAAQ,CAClB,OAAO,CAAE,CAAC,CACV,SAAS,CAAE,IAAI,GAAG,CAAC,CACnB,MAAM,CAAE,KAAK,CAAC,CAAC,CAEf,YAAY,CAAE,IAAI,CAClB,UAAU,CACT,SAAS,CAAC,KAAK,CAAC;AACnB,GAAG,OAAO,CAAC,KAAK,CAAC;AACjB,GAAG,MAAM,CAAC,KAAK,CAAC;AAChB,GAAG,UAAU,CAAC,KAAK,CACjB,UAAU,CAAE,UAAU,CACtB,OAAO,CAAE,IAAI,CACb,aAAa,CAAE,QAChB,CAEQ,+CAAiD,CACxD,OAAO,CAAE,IAAI,CACb,UAAU,CAAE,IAAI,WAAW,CAAC,CAC5B,MAAM,CAAE,GAAG,CAAC,KAAK,CAAC,IAAI,eAAe,CAAC,CACtC,KAAK,CAAE,IAAI,aAAa,CAAC,CACzB,aAAa,CAAE,IAAI,eAAe,CAAC,CACnC,UAAU,CAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAC3C,KAAK,CAAE,IAAI,OAAO,CAAC,CACnB,SAAS,CAAE,IAAI,CACf,OAAO,CAAE,IAAI,CACb,WAAW,CAAE,MAAM,CACnB,GAAG,CAAE,GACN,CAEQ,yCAA2C,CAClD,UAAU,CACT,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACnC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAC7B,CAEQ,kDAAoD,CAC3D,GAAG,CAAE,CAAC,CACN,GAAG,CAAE,iBAAiB,CACtB,MAAM,CAAE,CAAC,CACT,aAAa,CAAE,oBAChB,CAEQ,qDAAuD,CAC9D,MAAM,CAAE,CAAC,CACT,GAAG,CAAE,gBAAgB,CACrB,MAAM,CAAE,EAAE,CACV,aAAa,CAAE,8BAChB,CAEQ,2BAA4B,CAAS,0BAA4B,CACxE,WAAW,CAAE,GAAG,CAChB,WAAW,CAAE,GAAG,CAChB,KAAK,CAAE,OACR,CAEQ,2BAA4B,CAAS,oBAAsB,CAClE,WAAW,CAAE,GAAG,CAChB,WAAW,CAAE,GAAG,CAChB,KAAK,CAAE,OACR,CAEQ,2BAA4B,CAAS,mBAAqB,CACjE,OAAO,CAAE,IAAI,CACb,MAAM,CAAE,IAAI,CACZ,KAAK,CAAE,IAAI,CACX,QAAQ,CAAE,QAAQ,CAClB,eAAe,CAAE,UAAU,CAC3B,WAAW,CAAE,MAAM,CACnB,WAAW,CAAE,CAAC,CACd,WAAW,CAAE,IAAI,yBAAyB,CAAC,CAC3C,YAAY,CAAE,IAAI,uBAAuB,CAC1C,CAEQ,gDAAiD,CAAS,mBAAoB,CAAW,GAAK,CACrG,OAAO,CAAE,CAAC,CACV,SAAS,CAAE,MAAM,GAAG,CAAC,CACrB,gBAAgB,CAAE,MAAM,CACxB,SAAS,CAAE,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,QACtC,CAEQ,2BAA4B,CAAS,mBAAoB,CAAW,CAAG,CAC9E,WAAW,CAAE,CACd,CAEQ,2BAA4B,CAAS,mBAAoB,CAAS,GAAK,CAC9E,WAAW,CAAE,IAAI,wBAAwB,CAAC,CAC1C,YAAY,CAAE,IAAI,sBAAsB,CACzC,CAEQ,2BAA4B,CAAS,sBAAwB,CACpE,OAAO,CAAE,IAAI,CACb,cAAc,CAAE,MAAM,CACtB,GAAG,CAAE,GACN,CAEQ,uCAAwC,CAAS,aAAe,CACvE,aAAa,CAAE,GAAG,CAClB,YAAY,CAAE,GAAG,CACjB,aAAa,CAAE,GAAG,CAClB,MAAM,CAAE,IAAI,CACZ,SAAS,CAAE,IAAI,CACf,KAAK,CAAE,IAAI,WAAW,CAAC,CACvB,UAAU,CAAE,IAAI,aAAa,CAAC,CAC9B,WAAW,CAAE,IAAI,2BAA2B,CAAC,CAC7C,YAAY,CAAE,IAAI,yBAAyB,CAAC,CAC5C,MAAM,CAAE,IAAI,CACZ,MAAM,CAAE,OAAO,CACf,OAAO,CAAE,IAAI,CACb,OAAO,CAAE,IAAI,CACb,WAAW,CAAE,MAAM,CACnB,WAAW,CAAE,CAAC,CACd,UAAU,CACT,OAAO,CAAC,KAAK,CAAC;AACjB,GAAG,UAAU,CAAC,KACb,CAEQ,2BAA4B,CAAS,mCAAqC,CACjF,UAAU,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CACxC,CAEQ,2BAA4B,CAAS,mCAAqC,CACjF,WAAW,CAAE,IAAI,2BAA2B,CAAC,CAC7C,YAAY,CAAE,IAAI,yBAAyB,CAC5C,CAEQ,2BAA4B,CAAS,qBAAuB,CACnE,KAAK,CAAE,IAAI,aAAa,CAAC,CACzB,UAAU,CAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAC/B,CAEQ,8CAA+C,CAAS,qBAAuB,CACtF,UAAU,CAAE,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CACpC,CAEQ,2BAA4B,CAAS,2BAA6B,CACzE,QAAQ,CAAE,QAAQ,CAClB,IAAI,CAAE,IAAI,0BAA0B,CAAC,CACrC,KAAK,CAAE,IAAI,wBAAwB,CAAC,CACpC,GAAG,CAAE,CAAC,CACN,MAAM,CAAE,IAAI,CACZ,KAAK,CAAE,IAAI,CACX,OAAO,CAAE,IAAI,CACb,eAAe,CAAE,MAAM,CACvB,WAAW,CAAE,MAAM,CACnB,OAAO,CAAE,CAAC,CACV,UAAU,CAAE,IAAI,OAAO,CAAC,CACxB,KAAK,CAAE,IAAI,QAAQ,CAAC,CACpB,MAAM,CAAE,GAAG,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,CAC9B,SAAS,CAAE,IAAI,8BAA8B,CAAC,CAC9C,aAAa,CAAE,GAAG,CAClB,MAAM,CAAE,OAAO,CACf,OAAO,CAAE,CAAC,CACV,UAAU,CACT,OAAO,CAAC,KAAK,CAAC;AACjB,GAAG,UAAU,CAAC,KAAK,CAAC;AACpB,GAAG,YAAY,CAAC,KACf,CAEQ,2BAA4B,CAAS,yCAA2C,CACvF,UAAU,CACT,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACnC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAC7B,CAEQ,2BAA4B,CAAS,8BAAgC,CAC5E,MAAM,CAAE,WACT,CAEQ,iCAAkC,CAAS,iCAAmC,CACrF,UAAU,CAAE,IAAI,OAAO,CAAC,CACxB,YAAY,CAAE,IAAI,OAAO,CAC1B,CAGQ,wDAA0D,CACjE,OAAO,CAAE,EAAE,CACX,QAAQ,CAAE,QAAQ,CAClB,IAAI,CAAE,CAAC,CACP,KAAK,CAAE,CAAC,CACR,MAAM,CAAE,IAAI,CACZ,OAAO,CAAE,EACV,CAEQ;AACT;AACA,WAAa,CAEX,MAAM,CAAE,GAAG,CACX,SAAS,CAAE,OAAO,CAAC,CAAC,CAAC,WAAW,GAAG,CACpC,CAEQ;AACT;AACA,WAAa,CAEX,GAAG,CAAE,GAAG,CACR,SAAS,CAAE,OAAO,CAAC,CAAC,CAAC,WAAW,IAAI,CACrC,CAGQ;AACT;AACA,WAAa,CACX,OAAO,CAAE,EAAE,CACX,QAAQ,CAAE,QAAQ,CAClB,KAAK,CAAE,CAAC,CACR,SAAS,CAAE,OAAO,CAAC,CACpB,CAGQ,kCAAoC,CAC3C,OAAO,CAAE,EAAE,CACX,QAAQ,CAAE,QAAQ,CAClB,IAAI,CAAE,CAAC,CACP,MAAM,CAAE,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAC9B,MAAM,CAAE,IAAI,CACZ,KAAK,CAAE,IACR,CAEQ,gDAAkD,CACzD,GAAG,CAAE,aAAa,CAClB,OAAO,CAAE,CACV,CAEQ,sEAAwE,CAC/E,OAAO,CAAE,+BAA+B,CACxC,GAAG,CAAE;AACP,iCAAiC,CAC/B,MAAM,CAAE,IAAI,oBAAoB,CACjC,CAEQ,2BAA4B,CAAW,CAAG,CACjD,UAAU,CAAE,OAAO,CAAC,KACrB,CAEQ;AACT;AACA;AACA,EAAG,CAAU,CAAG,CACd,OAAO,CAAE,CACV,CAEQ,iDAAmD,CAC1D,OAAO,CAAE,CAAC,CACV,cAAc,CAAE,IACjB,CAEQ,sEAAwE,CAC/E,GAAG,CAAE,6CAA6C,CAClD,MAAM,CAAE,IAAI,gBAAgB,CAC7B,CAEQ;AACT;AACA,GAAK,CACH,GAAG,CAAE,qCAAqC,CAC1C,OAAO,CAAE,CACV,CAEQ;AACT;AACA,GAAK,CACH,GAAG,CAAE;AACP;AACA,GAAG,CACD,OAAO,CAAE,CACV,CAEQ;AACT;AACA,GAAK,CACH,GAAG,CAAE,eAAe,CACpB,OAAO,CAAE,CAAC,CACV,UAAU,CACT,SAAS,CAAC,KAAK,CAAC;AACnB,GAAG,OAAO,CAAC,KACV,CAGQ;AACT;AACA,WAAa,CACX,MAAM,CAAE,KAAK,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CACzC,CAEQ,wCAA0C,CACjD,SAAS,CAAE,IAAI,GAAG,CAAC,CAAC,WAAW,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CACxD,UAAU,CAAE,IACb,CAEQ,oEAAqE,CACrE,iEAAmE,CAC1E,SAAS,CAAE,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,QACrC,CAEA,WAAmB,SAAU,CAC5B,IAAK,CACJ,SAAS,CAAE;AACd,IAAI,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC;AAC3D,IAAI,CACD,OAAO,CAAE,CACV,CAEA,EAAG,CACF,SAAS,CAAE;AACd,IAAI;AACJ,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC;AACxD,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK;AACzB,KAAK;AACL,IAAI,CACD,OAAO,CAAE,CACV,CACD,CAEA,MAAO,YAAY,KAAK,CAAE,CACjB,qBAAuB,CAC9B,QAAQ,CAAE,KAAK,CACf,eAAe,CAAE,IAAI,CACrB,KAAK,CAAE,IAAI,eAAe,CAAC,CAC3B,IAAI,CAAE,IAAI,eAAe,CAAC,CAC1B,KAAK,CAAE,IACR,CAEQ,qBAAsB,CAAS,mBAAqB,CAC3D,IAAI,CAAE,CAAC,CACP,KAAK,CAAE,CAAC,CACR,KAAK,CAAE,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAC5C,CAEQ,6CAA+C,CACtD,IAAI,CAAE,IAAI,eAAe,CAC1B,CAEQ,+CAAiD,CACxD,MAAM,CAAE,IACT,CAEQ,4CAA8C,CACrD,GAAG,CAAE,IACN,CAEQ,+CAAiD,CACxD,IAAI,CAAE,IAAI,eAAe,CAAC,CAC1B,KAAK,CAAE,IAAI,eAAe,CAAC,CAC3B,SAAS,CAAE,IACZ,CACD,CAEQ,yCAA2C,CAClD,WAAW,CAAE,IAAI,CACjB,eAAe,CAAE,YAAY,CAC7B,aAAa,CAAE,aAAa,CAE5B,YAAY,CAAE,kBAAkB,CAChC,gBAAgB,CAAE,kBAAkB,CACpC,cAAc,CAAE,mBAAmB,CAEnC,SAAS,CAAE,mBAAmB,CAC9B,aAAa,CAAE,kBAAkB,CACjC,WAAW,CAAE,kBAAkB,CAE/B,YAAY,CAAE,kBAAkB,CAChC,gBAAgB,CAAE,iBAAiB,CACnC,cAAc,CAAE,iBAAiB,CAEjC,UAAU,CAAE,mBAAmB,CAC/B,cAAc,CAAE,mBAAmB,CACnC,YAAY,CAAE,mBACf,CAEQ;AACT,yCAA2C,CACzC,WAAW,CAAE,IAAI,CACjB,eAAe,CAAE,eAAe,CAChC,aAAa,CAAE,YAChB,CAEQ;AACT,yCAA2C,CACzC,WAAW,CAAE,IAAI,CACjB,eAAe,CAAE,YAAY,CAC7B,aAAa,CAAE,aAChB,CAEQ,wCAA0C,CACjD,WAAW,CAAE,IAAI,CACjB,eAAe,CAAE,eAAe,CAChC,aAAa,CAAE,YAAY,CAE3B,YAAY,CAAE,kBAAkB,CAChC,gBAAgB,CAAE,mBAAmB,CACrC,cAAc,CAAE,kBAAkB,CAElC,SAAS,CAAE,kBAAkB,CAC7B,aAAa,CAAE,mBAAmB,CAClC,WAAW,CAAE,kBAAkB,CAE/B,YAAY,CAAE,iBAAiB,CAC/B,gBAAgB,CAAE,kBAAkB,CACpC,cAAc,CAAE,iBAAiB,CAEjC,UAAU,CAAE,kBAAkB,CAC9B,cAAc,CAAE,kBAAkB,CAClC,YAAY,CAAE,mBACf,CAEQ,yBAA0B,CAAS,wCAA0C,CACpF,UAAU,CAAE,IAAI,YAAY,CAAC,CAC7B,YAAY,CAAE,IAAI,gBAAgB,CAAC,CACnC,KAAK,CAAE,IAAI,cAAc,CAC1B,CAEQ;AACT;AACA,qBAAuB,CACrB,UAAU,CAAE,IAAI,YAAY,CAAC,CAC7B,YAAY,CAAE,IAAI,gBAAgB,CAAC,CACnC,KAAK,CAAE,IAAI,cAAc,CAC1B,CAEQ,yBAA0B,CAAS,qCAAuC,CACjF,UAAU,CAAE,IAAI,SAAS,CAAC,CAC1B,YAAY,CAAE,IAAI,aAAa,CAAC,CAChC,KAAK,CAAE,IAAI,WAAW,CACvB,CAEQ;AACT;AACA,qBAAuB,CACrB,UAAU,CAAE,IAAI,SAAS,CAAC,CAC1B,YAAY,CAAE,IAAI,aAAa,CAAC,CAChC,KAAK,CAAE,IAAI,WAAW,CACvB,CAEQ,yBAA0B,CAAS,wCAA0C,CACpF,UAAU,CAAE,IAAI,YAAY,CAAC,CAC7B,YAAY,CAAE,IAAI,gBAAgB,CAAC,CACnC,KAAK,CAAE,IAAI,cAAc,CAC1B,CAEQ;AACT;AACA,qBAAuB,CACrB,UAAU,CAAE,IAAI,YAAY,CAAC,CAC7B,YAAY,CAAE,IAAI,gBAAgB,CAAC,CACnC,KAAK,CAAE,IAAI,cAAc,CAC1B,CAEQ,yBAA0B,CAAS,sCAAwC,CAClF,UAAU,CAAE,IAAI,UAAU,CAAC,CAC3B,YAAY,CAAE,IAAI,cAAc,CAAC,CACjC,KAAK,CAAE,IAAI,YAAY,CACxB,CAEQ;AACT;AACA,qBAAuB,CACrB,UAAU,CAAE,IAAI,UAAU,CAAC,CAC3B,YAAY,CAAE,IAAI,cAAc,CAAC,CACjC,KAAK,CAAE,IAAI,YAAY,CACxB,CAEQ,uBAAyB,CAChC,MAAM,CAAE,IAAI,CACZ,MAAM,CAAE,IAAI,MAAM,CAAC,CACnB,KAAK,CAAE,IAAI,MAAM,CAAC,CAClB,QAAQ,CAAE,QAAQ,CAClB,KAAK,CAAE,CAAC,CACR,OAAO,CAAE,EACV,CAEQ,6CAA+C,CACtD,gBAAgB,CAAE,MAAM,CACxB,SAAS,CAAE,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,QACtC,CAEQ,eAAiB,CACxB,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,GAAG,CACR,IAAI,CAAE,GAAG,CACT,MAAM,CAAE,IAAI,MAAM,CAAC,CACnB,KAAK,CAAE,IAAI,MAAM,CAClB,CAEQ,mBAAqB,CAC5B,SAAS,CAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAC3C,UAAU,CAAE,IAAI,QAAQ,CAAC,CACzB,aAAa,CAAE,GAAG,CAClB,MAAM,CAAE,EAAE,CACV,IAAI,CAAE,IAAI,CACV,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,KAAK,CACV,KAAK,CAAE,GACR,CAEQ,gCAAkC,CACzC,eAAe,CAAE,KAAK,CACtB,SAAS,CAAE,OAAO,SAAS,CAAC,CAAC,UAAU,IAAI,CAC5C,CAEQ,gCAAkC,CACzC,eAAe,CAAE,KAAK,CACtB,SAAS,CAAE,OAAO,KAAK,CAAC,CAAC,UAAU,IAAI,CACxC,CAEQ,gCAAkC,CACzC,eAAe,CAAE,GAAG,CACpB,SAAS,CAAE,OAAO,KAAK,CAAC,CAAC,UAAU,IAAI,CACxC,CAEQ,gCAAkC,CACzC,eAAe,CAAE,KAAK,CACtB,SAAS,CAAE,OAAO,KAAK,CAAC,CAAC,UAAU,IAAI,CACxC,CAEQ,gCAAkC,CACzC,eAAe,CAAE,KAAK,CACtB,SAAS,CAAE,OAAO,MAAM,CAAC,CAAC,UAAU,IAAI,CACzC,CAEQ,gCAAkC,CACzC,eAAe,CAAE,KAAK,CACtB,SAAS,CAAE,OAAO,MAAM,CAAC,CAAC,UAAU,IAAI,CACzC,CAEQ,gCAAkC,CACzC,eAAe,CAAE,KAAK,CACtB,SAAS,CAAE,OAAO,MAAM,CAAC,CAAC,UAAU,IAAI,CACzC,CAEQ,gCAAkC,CACzC,eAAe,CAAE,KAAK,CACtB,SAAS,CAAE,OAAO,MAAM,CAAC,CAAC,UAAU,IAAI,CACzC,CAEQ,gCAAkC,CACzC,eAAe,CAAE,KAAK,CACtB,SAAS,CAAE,OAAO,MAAM,CAAC,CAAC,UAAU,IAAI,CACzC,CAEQ,iCAAmC,CAC1C,eAAe,CAAE,KAAK,CACtB,SAAS,CAAE,OAAO,MAAM,CAAC,CAAC,UAAU,IAAI,CACzC,CAEQ,iCAAmC,CAC1C,eAAe,CAAE,KAAK,CACtB,SAAS,CAAE,OAAO,MAAM,CAAC,CAAC,UAAU,IAAI,CACzC,CAEQ,iCAAmC,CAC1C,eAAe,CAAE,KAAK,CACtB,SAAS,CAAE,OAAO,MAAM,CAAC,CAAC,UAAU,IAAI,CACzC,CAEA,WAAmB,cAAe,CACjC,EAAG,CACF,OAAO,CAAE,CAAC,CACV,SAAS,CAAE,MAAM,GAAG,CACrB,CACA,IAAK,CACJ,OAAO,CAAE,CAAC,CACV,SAAS,CAAE,MAAM,CAAC,CACnB,CACD,CAEA,WAAmB,eAAgB,CAClC,EAAG,CACF,OAAO,CAAE,CAAC,CACV,SAAS,CAAE,MAAM,CAAC,CACnB,CACA,IAAK,CACJ,OAAO,CAAE,CAAC,CACV,SAAS,CAAE,MAAM,GAAG,CACrB,CACD,CAEA,WAAmB,WAAY,CAC9B,EAAG,CACF,OAAO,CAAE,CACV,CACA,IAAK,CACJ,OAAO,CAAE,IACV,CACD,CAEA,MAAO,wBAAyB,CACvB,mBAAoB,CACpB,mBAAoB,CAAW,CAAE,CACjC,mBAAqB,CAC5B,UAAU,CAAE,IAAI,CAAC,UAAU,CAC3B,SAAS,CAAE,IAAI,CAAC,UACjB,CACD,CAEQ,cAAgB,CACvB,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,GAAG,CACR,IAAI,CAAE,GAAG,CACT,SAAS,CAAE,UAAU,IAAI,CAAC,CAAC,IAAI,CAAC,CAChC,gBAAgB,CAAE,MAAM,CACxB,UAAU,CACT,OAAO,CAAC,KAAK,CAAC;AACjB,GAAG,SAAS,CAAC,KACZ,CAEQ,oCAAsC,CAC7C,OAAO,CAAE,CAAC,CACV,SAAS,CAAE,MAAM,GAAG,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,CAC3C"}`
};
const VISIBLE_TOASTS_AMOUNT = 3;
const VIEWPORT_OFFSET = "32px";
const TOAST_WIDTH = 356;
const GAP = 14;
function getInitialTheme(t) {
if (t !== "system") {
return t;
}
if (typeof window !== "undefined") {
if (window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches) {
return "dark";
}
return "light";
}
return "light";
}
function getDocumentDirection() {
if (typeof window === "undefined")
return "ltr";
if (typeof document === "undefined")
return "ltr";
const dirAttribute = document.documentElement.getAttribute("dir");
if (dirAttribute === "auto" || !dirAttribute) {
return window.getComputedStyle(document.documentElement).direction;
}
return dirAttribute;
}
const Toaster = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let possiblePositions;
let hotkeyLabel;
let $$restProps = compute_rest_props($$props, [
"invert",
"theme",
"position",
"hotkey",
"richColors",
"expand",
"duration",
"visibleToasts",
"closeButton",
"toastOptions",
"offset",
"dir"
]);
let $toasts, $$unsubscribe_toasts;
let $heights, $$unsubscribe_heights;
let { invert = false } = $$props;
let { theme = "light" } = $$props;
let { position = "bottom-right" } = $$props;
let { hotkey = ["altKey", "KeyT"] } = $$props;
let { richColors = false } = $$props;
let { expand = false } = $$props;
let { duration = 4e3 } = $$props;
let { visibleToasts = VISIBLE_TOASTS_AMOUNT } = $$props;
let { closeButton = false } = $$props;
let { toastOptions = {} } = $$props;
let { offset = null } = $$props;
let { dir = getDocumentDirection() } = $$props;
const { toasts, heights, reset } = toastState;
$$unsubscribe_toasts = subscribe(toasts, (value) => $toasts = value);
$$unsubscribe_heights = subscribe(heights, (value) => $heights = value);
let expanded = false;
let interacting = false;
let actualTheme = getInitialTheme(theme);
let listRef;
onDestroy(() => {
});
if ($$props.invert === void 0 && $$bindings.invert && invert !== void 0)
$$bindings.invert(invert);
if ($$props.theme === void 0 && $$bindings.theme && theme !== void 0)
$$bindings.theme(theme);
if ($$props.position === void 0 && $$bindings.position && position !== void 0)
$$bindings.position(position);
if ($$props.hotkey === void 0 && $$bindings.hotkey && hotkey !== void 0)
$$bindings.hotkey(hotkey);
if ($$props.richColors === void 0 && $$bindings.richColors && richColors !== void 0)
$$bindings.richColors(richColors);
if ($$props.expand === void 0 && $$bindings.expand && expand !== void 0)
$$bindings.expand(expand);
if ($$props.duration === void 0 && $$bindings.duration && duration !== void 0)
$$bindings.duration(duration);
if ($$props.visibleToasts === void 0 && $$bindings.visibleToasts && visibleToasts !== void 0)
$$bindings.visibleToasts(visibleToasts);
if ($$props.closeButton === void 0 && $$bindings.closeButton && closeButton !== void 0)
$$bindings.closeButton(closeButton);
if ($$props.toastOptions === void 0 && $$bindings.toastOptions && toastOptions !== void 0)
$$bindings.toastOptions(toastOptions);
if ($$props.offset === void 0 && $$bindings.offset && offset !== void 0)
$$bindings.offset(offset);
if ($$props.dir === void 0 && $$bindings.dir && dir !== void 0)
$$bindings.dir(dir);
$$result.css.add(css);
possiblePositions = Array.from(new Set([
position,
...$toasts.filter((toast) => toast.position).map((toast) => toast.position)
].filter(Boolean)));
hotkeyLabel = hotkey.join("+").replace(/Key/g, "").replace(/Digit/g, "");
{
if ($toasts.length <= 1) {
expanded = false;
}
}
{
{
if (theme !== "system") {
actualTheme = theme;
}
if (typeof window !== "undefined") {
if (theme === "system") {
if (window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches) {
actualTheme = "dark";
} else {
actualTheme = "light";
}
}
window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change", ({ matches }) => {
actualTheme = matches ? "dark" : "light";
});
}
}
}
$$unsubscribe_toasts();
$$unsubscribe_heights();
return `${$toasts.length > 0 ? `<section${add_attribute("aria-label", `Notifications ${hotkeyLabel}`, 0)}${add_attribute("tabindex", -1, 0)}>${each(possiblePositions, (position2, index) => {
return `<ol${spread(
[
{ tabindex: escape_attribute_value(-1) },
{
class: escape_attribute_value($$props.class)
},
{ "data-sonner-toaster": true },
{
"data-theme": escape_attribute_value(actualTheme)
},
{
"data-rich-colors": escape_attribute_value(richColors)
},
{
dir: escape_attribute_value(dir === "auto" ? getDocumentDirection() : dir)
},
{
"data-y-position": escape_attribute_value(position2.split("-")[0])
},
{
"data-x-position": escape_attribute_value(position2.split("-")[1])
},
{
style: escape_attribute_value($$props.style)
},
escape_object($$restProps)
],
{
styles: {
"--front-toast-height": `${$heights[0]?.height}px`,
"--offset": typeof offset === "number" ? `${offset}px` : offset || VIEWPORT_OFFSET,
"--width": `${TOAST_WIDTH}px`,
"--gap": `${GAP}px`
}
}
)}${add_attribute("this", listRef, 0)}>${each($toasts.filter((toast) => !toast.position && index === 0 || toast.position === position2), (toast, index2) => {
return `${validate_component(Toast, "Toast").$$render(
$$result,
{
index: index2,
toast,
invert,
visibleToasts,
closeButton,
interacting,
position: position2,
expandByDefault: expand,
expanded,
actionButtonStyle: toastOptions?.actionButtonStyle || "",
cancelButtonStyle: toastOptions?.cancelButtonStyle || "",
class: toastOptions?.class || "",
descriptionClass: toastOptions?.descriptionClass || "",
classes: toastOptions.classes || {},
duration: toastOptions?.duration ?? duration,
unstyled: toastOptions.unstyled || false
},
{},
{
"info-icon": () => {
return `${slots["info-icon"] ? slots["info-icon"]({ slot: "info-icon" }) : ` ${validate_component(Icon, "Icon").$$render($$result, { type: "info" }, {}, {})} `}`;
},
"warning-icon": () => {
return `${slots["warning-icon"] ? slots["warning-icon"]({ slot: "warning-icon" }) : ` ${validate_component(Icon, "Icon").$$render($$result, { type: "warning" }, {}, {})} `}`;
},
"error-icon": () => {
return `${slots["error-icon"] ? slots["error-icon"]({ slot: "error-icon" }) : ` ${validate_component(Icon, "Icon").$$render($$result, { type: "error" }, {}, {})} `}`;
},
"success-icon": () => {
return `${slots["success-icon"] ? slots["success-icon"]({ slot: "success-icon" }) : ` ${validate_component(Icon, "Icon").$$render($$result, { type: "success" }, {}, {})} `}`;
},
"loading-icon": () => {
return `${slots["loading-icon"] ? slots["loading-icon"]({ slot: "loading-icon" }) : ` ${validate_component(Loader, "Loader").$$render($$result, { visible: toast.type === "loading" }, {}, {})} `}`;
}
}
)}`;
})} </ol>`;
})}</section>` : ``}`;
});
const Sonner_1 = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let $$restProps = compute_rest_props($$props, []);
let $mode, $$unsubscribe_mode;
$$unsubscribe_mode = subscribe(derivedMode, (value) => $mode = value);
$$unsubscribe_mode();
return `${validate_component(Toaster, "Sonner").$$render(
$$result,
Object.assign(
{},
{ theme: $mode },
{ class: "toaster group" },
{
toastOptions: {
classes: {
toast: "group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",
description: "group-[.toast]:text-muted-foreground",
actionButton: "group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",
cancelButton: "group-[.toast]:bg-muted group-[.toast]:text-muted-foreground"
}
}
},
$$restProps
),
{},
{}
)}`;
});
const Layout = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let { data } = $$props;
const navs = [
{ name: "Dashboard", redirect: "/" },
{ name: "Articles", redirect: "/articles" },
{ name: "Emails", redirect: "/emails" },
{ name: "Website", redirect: "/website" }
];
if ($$props.data === void 0 && $$bindings.data && data !== void 0)
$$bindings.data(data);
return `${validate_component(Sonner_1, "Toaster").$$render($$result, {}, {}, {})} ${validate_component(Mode_watcher, "ModeWatcher").$$render($$result, {}, {}, {})} <div class="flex min-h-screen w-full flex-col"><header class="sticky top-0 flex h-16 items-center gap-4 border-b bg-background px-4 md:px-6"><nav class="hidden flex-col gap-6 text-lg font-medium md:flex md:flex-row md:items-center md:gap-5 md:text-sm lg:gap-6"><a href="##" class="flex items-center gap-2 text-lg font-semibold md:text-base">${validate_component(Package2, "Package2").$$render($$result, { class: "h-6 w-6" }, {}, {})} <span class="sr-only">${escape(data.me.name)}</span></a> ${each(navs, (nav) => {
return `<a${add_attribute("href", nav.redirect, 0)} class="text-muted-foreground transition-colors hover:text-foreground">${escape(nav.name)}</a>`;
})}</nav> ${validate_component(Root, "Sheet.Root").$$render($$result, {}, {}, {
default: () => {
return `${validate_component(Trigger, "Sheet.Trigger").$$render($$result, { asChild: true }, {}, {
default: ({ builder }) => {
return `${validate_component(Button, "Button").$$render(
$$result,
{
variant: "outline",
size: "icon",
class: "shrink-0 md:hidden",
builders: [builder]
},
{},
{
default: () => {
return `${validate_component(Menu$2, "Menu").$$render($$result, { class: "h-5 w-5" }, {}, {})} <span class="sr-only" data-svelte-h="svelte-9wqi12">Toggle navigation menu</span>`;
}
}
)}`;
}
})} ${validate_component(Sheet_content, "Sheet.Content").$$render($$result, { side: "left" }, {}, {
default: () => {
return `<nav class="grid gap-6 text-lg font-medium"><a href="##" class="flex items-center gap-2 text-lg font-semibold">${validate_component(Package2, "Package2").$$render($$result, { class: "h-6 w-6" }, {}, {})} <span class="sr-only">${escape(data.me.name)}</span></a> ${each(navs, (nav) => {
return `<a${add_attribute("href", nav.redirect, 0)} class="hover:text-foreground">${escape(nav.name)}</a>`;
})} <div class="mt-auto">${validate_component(Button, "Button").$$render($$result, { variant: "outline", size: "icon" }, {}, {
default: () => {
return `${validate_component(Sun, "Sun").$$render(
$$result,
{
class: "h-[1.2rem] w-[1.2rem] rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0"
},
{},
{}
)} ${validate_component(Moon, "Moon").$$render(
$$result,
{
class: "absolute h-[1.2rem] w-[1.2rem] rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100"
},
{},
{}
)} <span class="sr-only" data-svelte-h="svelte-ntgole">Toggle theme</span>`;
}
})}</div></nav>`;
}
})}`;
}
})} <div class="flex w-full items-center gap-4 md:ml-auto md:gap-2 lg:gap-4"><div class="ml-auto hidden md:block">${validate_component(Button, "Button").$$render($$result, { variant: "outline", size: "icon" }, {}, {
default: () => {
return `${validate_component(Sun, "Sun").$$render(
$$result,
{
class: "h-[1.2rem] w-[1.2rem] rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0"
},
{},
{}
)} ${validate_component(Moon, "Moon").$$render(
$$result,
{
class: "absolute h-[1.2rem] w-[1.2rem] rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100"
},
{},
{}
)} <span class="sr-only" data-svelte-h="svelte-ntgole">Toggle theme</span>`;
}
})}</div> <div class="md:ml-0 ml-auto">Tokens: <span>${escape(data.me.tokens)}</span></div> ${validate_component(Root$1, "DropdownMenu.Root").$$render($$result, {}, {}, {
default: () => {
return `${validate_component(Trigger$1, "DropdownMenu.Trigger").$$render($$result, { asChild: true }, {}, {
default: ({ builder }) => {
return `${validate_component(Button, "Button").$$render(
$$result,
{
builders: [builder],
variant: "secondary",
size: "icon",
class: "rounded-full"
},
{},
{
default: () => {
return `${validate_component(CircleUser, "CircleUser").$$render($$result, { class: "h-5 w-5" }, {}, {})} <span class="sr-only" data-svelte-h="svelte-r9nh39">Toggle user menu</span>`;
}
}
)}`;
}
})} ${validate_component(Dropdown_menu_content, "DropdownMenu.Content").$$render($$result, { align: "end" }, {}, {
default: () => {
return `${validate_component(Dropdown_menu_label, "DropdownMenu.Label").$$render($$result, {}, {}, {
default: () => {
return `My Account`;
}
})} ${validate_component(Dropdown_menu_separator, "DropdownMenu.Separator").$$render($$result, {}, {}, {})} ${validate_component(Dropdown_menu_item, "DropdownMenu.Item").$$render($$result, {}, {}, {
default: () => {
return `<a href="mailto:osabic2004@gmail.com?Subject=Youpage.ai support" data-svelte-h="svelte-1m7e164">Support</a>`;
}
})} ${validate_component(Dropdown_menu_separator, "DropdownMenu.Separator").$$render($$result, {}, {}, {})} ${validate_component(Dropdown_menu_item, "DropdownMenu.Item").$$render($$result, {}, {}, {
default: () => {
return `Logout`;
}
})}`;
}
})}`;
}
})}</div></header> <main class="flex flex-1 flex-col gap-4 p-4 md:gap-8 md:p-8">${slots.default ? slots.default({}) : ``}</main></div>`;
});
export { Layout as default };
//# sourceMappingURL=_layout.svelte-D5y6O6Mm.js.map