import { o as Be } from "./rolldown-runtime.js";
import { i as Ye, n as Fe, t as Ge } from "./vendor/react.js";
import { a as $e, c as Ke, d as $, g as ze, h as K, l as Ze, m as Xe, n as Je, t as D } from "./format.js";
import { n as Qe, t as et } from "./subWeeks.js";
import { t as be } from "./isBefore.js";
import { t as tt } from "./createLucideIcon.js";
import { t as ve } from "./arrow-left.js";
import { t as ye } from "./arrow-right.js";
import { t as V } from "./proxy.js";
import { t as Ee } from "./Button.js";
import { t as T } from "./utils.js";
import { t as rt } from "./Badge.js";
import { n as st, r as at, t as nt } from "./AvatarFallback.js";
import { t as je } from "./scroll-area.js";
function ot(e, r, s) {
  const o = ze(e, s?.in);
  return o.setMinutes(r), o;
}
function it(e, r, s) {
  const o = ze(e, s?.in);
  return o.setSeconds(r), o;
}
var dt = [
  ["path", {
    d: "M8 2v4",
    key: "1cmpym"
  }],
  ["path", {
    d: "M16 2v4",
    key: "4m81vk"
  }],
  ["path", {
    d: "M21 14V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8",
    key: "bce9hv"
  }],
  ["path", {
    d: "M3 10h18",
    key: "8toen8"
  }],
  ["path", {
    d: "m16 20 2 2 4-4",
    key: "13tcca"
  }]
], lt = tt("calendar-check-2", dt), t = Ge();
function Y({ className: e, size: r = "md", ...s }) {
  return /* @__PURE__ */ (0, t.jsx)(at, {
    "data-slot": "avatar",
    "data-size": r,
    className: T("rounded-full after:rounded-full after:border-border group/avatar relative flex shrink-0 select-none after:absolute after:inset-0 after:border after:mix-blend-darken dark:after:mix-blend-lighten", "data-[size=xs]:size-6 data-[size=sm]:size-8 data-[size=md]:size-10 data-[size=lg]:size-12 data-[size=xl]:size-14 data-[size=2xl]:size-16", e),
    ...s
  });
}
function ie({ className: e, ...r }) {
  return /* @__PURE__ */ (0, t.jsx)(st, {
    "data-slot": "avatar-image",
    className: T("rounded-full aspect-square size-full object-cover", e),
    ...r
  });
}
function F({ className: e, ...r }) {
  return /* @__PURE__ */ (0, t.jsx)(nt, {
    "data-slot": "avatar-fallback",
    className: T("bg-muted text-muted-foreground rounded-full flex size-full items-center justify-center", "group-data-[size=xs]/avatar:text-[10px] group-data-[size=sm]/avatar:text-xs group-data-[size=md]/avatar:text-sm group-data-[size=lg]/avatar:text-base group-data-[size=xl]/avatar:text-lg group-data-[size=2xl]/avatar:text-xl", e),
    ...r
  });
}
function ct({ className: e, ...r }) {
  return /* @__PURE__ */ (0, t.jsx)("span", {
    "data-slot": "avatar-badge",
    className: T("bg-primary text-primary-foreground ring-background absolute end-0 bottom-0 z-10 inline-flex items-center justify-center rounded-full bg-blend-color ring-2 select-none", "group-data-[size=xs]/avatar:size-2 group-data-[size=xs]/avatar:[&>svg]:hidden", "group-data-[size=sm]/avatar:size-2.5 group-data-[size=sm]/avatar:[&>svg]:size-2", "group-data-[size=md]/avatar:size-3 group-data-[size=md]/avatar:[&>svg]:size-2", "group-data-[size=lg]/avatar:size-3.5 group-data-[size=lg]/avatar:[&>svg]:size-2.5", "group-data-[size=xl]/avatar:size-4 group-data-[size=xl]/avatar:[&>svg]:size-3", "group-data-[size=2xl]/avatar:size-5 group-data-[size=2xl]/avatar:[&>svg]:size-3.5", e),
    ...r
  });
}
function de({ className: e, ...r }) {
  return /* @__PURE__ */ (0, t.jsx)("div", {
    "data-slot": "avatar-group",
    className: T("*:data-[slot=avatar]:ring-background group/avatar-group flex -space-x-2 *:data-[slot=avatar]:ring-2", e),
    ...r
  });
}
function ut({ className: e, ...r }) {
  return /* @__PURE__ */ (0, t.jsx)("div", {
    "data-slot": "avatar-group-count",
    className: T("bg-muted text-muted-foreground rounded-full ring-background relative flex shrink-0 items-center justify-center ring-2", "size-8 text-sm [&>svg]:size-4", "group-has-data-[size=xs]/avatar-group:size-6 group-has-data-[size=xs]/avatar-group:text-[10px] group-has-data-[size=xs]/avatar-group:[&>svg]:size-2.5", "group-has-data-[size=sm]/avatar-group:size-6 group-has-data-[size=sm]/avatar-group:text-xs group-has-data-[size=sm]/avatar-group:[&>svg]:size-3", "group-has-data-[size=lg]/avatar-group:size-10 group-has-data-[size=lg]/avatar-group:text-base group-has-data-[size=lg]/avatar-group:[&>svg]:size-5", "group-has-data-[size=xl]/avatar-group:size-12 group-has-data-[size=xl]/avatar-group:text-lg group-has-data-[size=xl]/avatar-group:[&>svg]:size-6", "group-has-data-[size=2xl]/avatar-group:size-14 group-has-data-[size=2xl]/avatar-group:text-xl group-has-data-[size=2xl]/avatar-group:[&>svg]:size-7", e),
    ...r
  });
}
Y.displayName = "Avatar";
ie.displayName = "AvatarImage";
F.displayName = "AvatarFallback";
ct.displayName = "AvatarBadge";
de.displayName = "AvatarGroup";
ut.displayName = "AvatarGroupCount";
function mt(e, r) {
  return Math.round(e / r) * r;
}
var m = /* @__PURE__ */ Be(Ye(), 1), oe = 15, H = oe * 6e4, ft = 60, xt = 15, pt = 200, le = {
  brand: "bg-primary",
  error: "bg-destructive",
  warning: "bg-warning",
  success: "bg-success",
  purple: "bg-purple-400 dark:bg-purple-500",
  blue: "bg-blue-400 dark:bg-blue-500",
  orange: "bg-orange-400 dark:bg-orange-500"
};
function Se(e, r, s) {
  if (s)
    if (e.key === "ArrowUp" && !e.shiftKey)
      e.preventDefault(), s(r.id, new Date(r.startTime.getTime() - H), new Date(r.endTime.getTime() - H));
    else if (e.key === "ArrowDown" && !e.shiftKey)
      e.preventDefault(), s(r.id, new Date(r.startTime.getTime() + H), new Date(r.endTime.getTime() + H));
    else if (e.key === "ArrowUp" && e.shiftKey) {
      e.preventDefault();
      const o = new Date(r.endTime.getTime() - H);
      o.getTime() - r.startTime.getTime() >= H && s(r.id, r.startTime, o);
    } else e.key === "ArrowDown" && e.shiftKey && (e.preventDefault(), s(r.id, r.startTime, new Date(r.endTime.getTime() + H)));
}
function ae(e, r) {
  return ot(it(e, 0), mt(e.getMinutes(), r));
}
function ne(e, r, s) {
  const o = (r.getTime() - e.getTime()) / 6e4 * s;
  return Math.max(o, ft);
}
function Me({ meetings: e, pixelsPerMinute: r, gridContainerRef: s, onDragEnd: o, snapInterval: f = xt }) {
  const [i, g] = m.useState(null), j = m.useRef(null), k = m.useRef(0), w = m.useRef(0), c = 40, N = 2, E = 12, S = m.useCallback((x, p, h) => {
    const l = e.find((n) => n.id === x);
    l && (w.current = s.current?.scrollTop ?? 0, g({
      meetingId: x,
      type: p,
      initialMouseY: h,
      initialStartTime: l.startTime,
      initialEndTime: l.endTime,
      currentStartTime: l.startTime,
      currentEndTime: l.endTime
    }));
  }, [e, s]), _ = m.useCallback((x) => {
    if (!s.current) return;
    const p = s.current, h = p.getBoundingClientRect(), l = x - h.top;
    let n = 0;
    if (l < c) {
      const u = c - l;
      n = -Math.min(E, N + u / c * E);
    } else if (l > h.height - c) {
      const u = l - (h.height - c);
      n = Math.min(E, N + u / c * E);
    }
    n !== 0 ? (p.scrollTop += n, j.current = requestAnimationFrame(() => _(k.current))) : j.current && (cancelAnimationFrame(j.current), j.current = null);
  }, [s]);
  return m.useEffect(() => {
    if (!i) return;
    const x = (h) => {
      if (!i) return;
      k.current = h.clientY, j.current || _(h.clientY);
      const l = (s.current?.scrollTop ?? 0) - w.current, n = h.clientY - i.initialMouseY + l, u = Math.round(n / r);
      let d = new Date(i.initialStartTime), y = new Date(i.initialEndTime);
      if (i.type === "resize-start") {
        d = new Date(i.initialStartTime.getTime() + u * 6e4), d = ae(d, f);
        const M = /* @__PURE__ */ new Date(i.initialEndTime.getTime() - oe * 6e4);
        d > M && (d = M);
      } else if (i.type === "resize-end") {
        y = new Date(i.initialEndTime.getTime() + u * 6e4), y = ae(y, f);
        const M = new Date(i.initialStartTime.getTime() + oe * 6e4);
        y < M && (y = M);
      }
      if (i.type === "move") {
        d = new Date(i.initialStartTime.getTime() + u * 6e4), d = ae(d, f);
        const M = i.initialEndTime.getTime() - i.initialStartTime.getTime();
        y = new Date(d.getTime() + M);
      }
      g((M) => M ? {
        ...M,
        currentStartTime: d,
        currentEndTime: y
      } : null);
    }, p = () => {
      i && (j.current && (cancelAnimationFrame(j.current), j.current = null), o?.(i.meetingId, i.currentStartTime, i.currentEndTime), g(null));
    };
    return document.addEventListener("mousemove", x), document.addEventListener("mouseup", p), () => {
      document.removeEventListener("mousemove", x), document.removeEventListener("mouseup", p), j.current && cancelAnimationFrame(j.current);
    };
  }, [
    i,
    r,
    o,
    _,
    s,
    f
  ]), {
    dragState: i,
    handleDragStart: S
  };
}
function ht({ date: e, isSelected: r, isDisabled: s, onClick: o }) {
  const f = D(e, "EEE"), i = D(e, "d"), g = Qe(e);
  return /* @__PURE__ */ (0, t.jsxs)("button", {
    type: "button",
    onClick: o,
    disabled: s,
    "aria-label": D(e, "EEEE, MMMM d, yyyy"),
    className: T("flex flex-1 flex-col items-center gap-1.5 border-b border-e border-border bg-background p-2 last:border-e-0 transition-colors duration-200 ease-smooth motion-reduce:transition-none", !s && "hover:bg-muted cursor-pointer", s && "cursor-not-allowed opacity-50"),
    children: [/* @__PURE__ */ (0, t.jsx)("span", {
      className: T("text-xs font-medium", "text-quaternary-foreground"),
      children: f
    }), /* @__PURE__ */ (0, t.jsx)("div", {
      className: T("flex size-8 items-center justify-center rounded-full text-xs font-semibold transition-colors duration-200 ease-smooth motion-reduce:transition-none", r ? "bg-primary text-primary-foreground" : g ? "bg-primary/20 text-primary" : s ? "text-quaternary-foreground" : "text-secondary-foreground"),
      children: i
    })]
  });
}
function Te({ meeting: e, variant: r = "list", onJoin: s, onClick: o, maxAttendees: f = 5 }) {
  const i = le[e.color || "brand"], g = D(e.startTime, "h:mm a"), j = D(e.endTime, "h:mm a"), k = e.attendees.slice(0, f), w = e.attendees.length - f;
  return /* @__PURE__ */ (0, t.jsx)(t.Fragment, { children: /* @__PURE__ */ (0, t.jsx)("div", {
    className: T("flex w-full min-w-0 sm:min-w-[320px] flex-col items-start rounded-xl border border-border bg-background py-4 ps-px pe-4 shadow-xs transition-all duration-200 ease-smooth motion-reduce:transition-none", o && "cursor-pointer hover:border-border hover:-translate-y-px hover:shadow-md motion-reduce:hover:translate-y-0"),
    onClick: o,
    onKeyDown: (c) => {
      o && (c.key === "Enter" || c.key === " ") && (c.preventDefault(), o());
    },
    role: o ? "button" : void 0,
    tabIndex: o ? 0 : void 0,
    children: /* @__PURE__ */ (0, t.jsxs)("div", {
      className: "flex w-full items-start gap-3",
      children: [/* @__PURE__ */ (0, t.jsx)("div", { className: T("h-10 w-1.5 shrink-0 rounded-r-lg", i) }), /* @__PURE__ */ (0, t.jsxs)("div", {
        className: "flex flex-1 flex-col gap-3",
        children: [/* @__PURE__ */ (0, t.jsxs)("div", {
          className: "flex w-full items-start gap-3",
          children: [/* @__PURE__ */ (0, t.jsxs)("div", {
            className: "flex shrink-0 flex-col gap-1.5 text-nowrap",
            children: [
              /* @__PURE__ */ (0, t.jsx)("span", {
                className: "text-lg font-semibold text-secondary-foreground",
                children: g
              }),
              /* @__PURE__ */ (0, t.jsx)("span", {
                className: "text-sm text-quaternary-foreground",
                children: j
              }),
              r === "next" && e.minutesUntil !== void 0 && /* @__PURE__ */ (0, t.jsxs)("span", {
                className: "text-sm font-semibold text-destructive",
                children: [
                  "In ",
                  e.minutesUntil,
                  " mins"
                ]
              })
            ]
          }), /* @__PURE__ */ (0, t.jsxs)("div", {
            className: "flex flex-1 flex-col gap-1.5",
            children: [
              /* @__PURE__ */ (0, t.jsx)("span", {
                className: "text-lg font-semibold text-secondary-foreground",
                children: e.title
              }),
              /* @__PURE__ */ (0, t.jsxs)("span", {
                className: "text-sm text-secondary-foreground",
                children: ["Host: ", e.host]
              }),
              /* @__PURE__ */ (0, t.jsxs)("div", {
                className: "flex items-center gap-1.5",
                children: [/* @__PURE__ */ (0, t.jsx)("span", {
                  className: "text-sm text-secondary-foreground",
                  children: "Attendees:"
                }), /* @__PURE__ */ (0, t.jsxs)(de, { children: [k.map((c) => /* @__PURE__ */ (0, t.jsx)(Y, {
                  size: "xs",
                  children: c.avatar ? /* @__PURE__ */ (0, t.jsx)(ie, {
                    src: c.avatar,
                    alt: c.name
                  }) : /* @__PURE__ */ (0, t.jsx)(F, { children: c.name.split(" ").map((N) => N[0]).join("").toUpperCase().slice(0, 2) })
                }, c.id)), w > 0 && /* @__PURE__ */ (0, t.jsx)(Y, {
                  size: "xs",
                  children: /* @__PURE__ */ (0, t.jsxs)(F, {
                    className: "text-[10px]",
                    children: ["+", w]
                  })
                })] })]
              })
            ]
          })]
        }), r === "next" && s && /* @__PURE__ */ (0, t.jsx)("div", {
          className: "flex justify-end",
          children: /* @__PURE__ */ (0, t.jsx)(Ee, {
            variant: "primary",
            size: "sm",
            onClick: (c) => {
              c.stopPropagation(), s();
            },
            children: "Join"
          })
        })]
      })]
    })
  }) });
}
function Ne({ meeting: e, variant: r = "list", onJoin: s, onClick: o, maxAttendees: f = 5, onDragStart: i, isDragging: g = !1, currentStartTime: j, currentEndTime: k, height: w, animationOffset: c = 0, isSwapping: N = !1, onTimeAdjust: E }) {
  const S = le[e.color || "brand"], _ = j ?? e.startTime, x = k ?? e.endTime, p = D(_, "h:mm a"), h = D(x, "h:mm a"), l = e.attendees.slice(0, f), n = e.attendees.length - f, u = (d, y) => {
    d.preventDefault(), d.stopPropagation(), i?.(e.id, y, d.clientY);
  };
  return /* @__PURE__ */ (0, t.jsxs)(V.div, {
    className: T("relative flex w-full min-w-0 sm:min-w-[320px] flex-col items-start rounded-xl border border-border bg-background py-4 ps-px pe-4 shadow-xs transition-all duration-200 ease-smooth motion-reduce:transition-none", o && !g && "cursor-pointer hover:border-border hover:-translate-y-px hover:shadow-md motion-reduce:hover:translate-y-0", g && "ring-2 ring-primary ring-offset-2 z-10"),
    initial: !1,
    animate: {
      height: w || "auto",
      y: c
    },
    transition: {
      height: {
        type: "spring",
        stiffness: 300,
        damping: 30
      },
      y: N ? {
        type: "spring",
        stiffness: 300,
        damping: 30
      } : { duration: 0 }
    },
    style: { willChange: N ? "transform" : "auto" },
    onClick: o,
    onKeyDown: (d) => {
      o && (d.key === "Enter" || d.key === " ") && (d.preventDefault(), o()), Se(d, e, E);
    },
    role: o ? "button" : void 0,
    tabIndex: o ? 0 : void 0,
    children: [
      /* @__PURE__ */ (0, t.jsx)(V.div, {
        className: "absolute left-0 right-0 top-0 z-20 flex h-8 cursor-ns-resize items-center justify-center rounded-t-xl",
        initial: !1,
        animate: { backgroundColor: g ? "var(--primary-alpha-10)" : "transparent" },
        transition: { duration: 0.15 },
        onMouseDown: (d) => u(d, "resize-start"),
        children: /* @__PURE__ */ (0, t.jsx)(V.div, {
          className: "flex gap-0.5",
          initial: {
            opacity: 0,
            scale: 0.8
          },
          animate: {
            opacity: g ? 1 : 0,
            scale: g ? 1 : 0.8
          },
          transition: { duration: 0.15 },
          children: /* @__PURE__ */ (0, t.jsx)("div", { className: "h-1 w-8 rounded-full bg-primary" })
        })
      }),
      /* @__PURE__ */ (0, t.jsxs)("div", {
        className: "flex w-full items-start gap-3",
        children: [/* @__PURE__ */ (0, t.jsx)("div", { className: T("h-10 w-1.5 shrink-0 rounded-r-lg", S) }), /* @__PURE__ */ (0, t.jsxs)("div", {
          className: "flex flex-1 flex-col gap-3",
          children: [/* @__PURE__ */ (0, t.jsxs)("div", {
            className: "flex w-full items-start gap-3",
            children: [/* @__PURE__ */ (0, t.jsxs)("div", {
              className: "flex shrink-0 cursor-grab flex-col gap-1.5 text-nowrap active:cursor-grabbing",
              onMouseDown: (d) => u(d, "move"),
              children: [
                /* @__PURE__ */ (0, t.jsx)("span", {
                  className: T("text-lg font-semibold text-secondary-foreground", g && "text-primary"),
                  children: p
                }),
                /* @__PURE__ */ (0, t.jsx)("span", {
                  className: T("text-sm text-quaternary-foreground", g && "text-primary"),
                  children: h
                }),
                r === "next" && e.minutesUntil !== void 0 && /* @__PURE__ */ (0, t.jsxs)("span", {
                  className: "text-sm font-semibold text-destructive",
                  children: [
                    "In ",
                    e.minutesUntil,
                    " mins"
                  ]
                })
              ]
            }), /* @__PURE__ */ (0, t.jsxs)("div", {
              className: "flex flex-1 cursor-grab flex-col gap-1.5 active:cursor-grabbing",
              onMouseDown: (d) => u(d, "move"),
              children: [
                /* @__PURE__ */ (0, t.jsx)("span", {
                  className: "text-lg font-semibold text-secondary-foreground",
                  children: e.title
                }),
                /* @__PURE__ */ (0, t.jsxs)("span", {
                  className: "text-sm text-secondary-foreground",
                  children: ["Host: ", e.host]
                }),
                /* @__PURE__ */ (0, t.jsxs)("div", {
                  className: "flex items-center gap-1.5",
                  children: [/* @__PURE__ */ (0, t.jsx)("span", {
                    className: "text-sm text-secondary-foreground",
                    children: "Attendees:"
                  }), /* @__PURE__ */ (0, t.jsxs)(de, { children: [l.map((d) => /* @__PURE__ */ (0, t.jsx)(Y, {
                    size: "xs",
                    children: d.avatar ? /* @__PURE__ */ (0, t.jsx)(ie, {
                      src: d.avatar,
                      alt: d.name
                    }) : /* @__PURE__ */ (0, t.jsx)(F, { children: d.name.split(" ").map((y) => y[0]).join("").toUpperCase().slice(0, 2) })
                  }, d.id)), n > 0 && /* @__PURE__ */ (0, t.jsx)(Y, {
                    size: "xs",
                    children: /* @__PURE__ */ (0, t.jsxs)(F, {
                      className: "text-[10px]",
                      children: ["+", n]
                    })
                  })] })]
                })
              ]
            })]
          }), r === "next" && s && /* @__PURE__ */ (0, t.jsx)("div", {
            className: "flex justify-end",
            children: /* @__PURE__ */ (0, t.jsx)(Ee, {
              variant: "primary",
              size: "sm",
              onClick: (d) => {
                d.stopPropagation(), s();
              },
              children: "Join"
            })
          })]
        })]
      }),
      /* @__PURE__ */ (0, t.jsx)(V.div, {
        className: "absolute bottom-0 left-0 right-0 z-20 flex h-8 cursor-ns-resize items-center justify-center rounded-b-xl",
        initial: !1,
        animate: { backgroundColor: g ? "var(--primary-alpha-10)" : "transparent" },
        transition: { duration: 0.15 },
        onMouseDown: (d) => u(d, "resize-end"),
        children: /* @__PURE__ */ (0, t.jsx)(V.div, {
          className: "flex gap-0.5",
          initial: {
            opacity: 0,
            scale: 0.8
          },
          animate: {
            opacity: g ? 1 : 0,
            scale: g ? 1 : 0.8
          },
          transition: { duration: 0.15 },
          children: /* @__PURE__ */ (0, t.jsx)("div", { className: "h-1 w-8 rounded-full bg-primary" })
        })
      })
    ]
  });
}
function gt({ meeting: e, gridStartHour: r, pixelsPerMinute: s, onClick: o, onDragStart: f, isDragging: i = !1, currentStartTime: g, currentEndTime: j, onTimeAdjust: k }) {
  const w = le[e.color || "brand"], c = g ?? e.startTime, N = j ?? e.endTime, E = c.getHours() * 60 + c.getMinutes(), S = N.getHours() * 60 + N.getMinutes(), _ = (E - r * 60) * s, x = (S - E) * s, p = D(c, "h:mm a"), h = D(N, "h:mm a"), l = (n, u) => {
    n.preventDefault(), n.stopPropagation(), f?.(e.id, u, n.clientY);
  };
  return /* @__PURE__ */ (0, t.jsx)(t.Fragment, { children: /* @__PURE__ */ (0, t.jsxs)("div", {
    className: T("absolute inset-x-1 flex cursor-grab rounded-lg border border-border bg-background shadow-sm transition-all duration-200 ease-smooth motion-reduce:transition-none", i && "ring-2 ring-primary ring-offset-1 z-20 shadow-lg", o && !i && "hover:border-border"),
    style: {
      top: `${_}px`,
      height: `${x}px`,
      minHeight: "40px"
    },
    onClick: o,
    onKeyDown: (n) => {
      o && (n.key === "Enter" || n.key === " ") && (n.preventDefault(), o()), Se(n, e, k);
    },
    role: o ? "button" : void 0,
    tabIndex: o ? 0 : void 0,
    children: [/* @__PURE__ */ (0, t.jsx)("div", { className: T("w-1 shrink-0 rounded-s-lg", w) }), /* @__PURE__ */ (0, t.jsxs)("div", {
      className: "flex flex-1 flex-col overflow-hidden px-2 py-1",
      children: [
        /* @__PURE__ */ (0, t.jsxs)("div", {
          className: "flex cursor-ns-resize items-center gap-1 text-[10px] text-muted-foreground hover:text-muted-foreground",
          onMouseDown: (n) => l(n, "resize-start"),
          children: [/* @__PURE__ */ (0, t.jsx)("span", { children: "≡" }), /* @__PURE__ */ (0, t.jsx)("span", {
            className: "font-medium text-secondary-foreground",
            children: p
          })]
        }),
        /* @__PURE__ */ (0, t.jsxs)("div", {
          className: "flex flex-1 flex-col justify-center gap-0.5 overflow-hidden",
          onMouseDown: (n) => l(n, "move"),
          children: [/* @__PURE__ */ (0, t.jsx)("span", {
            className: "truncate text-xs font-semibold text-secondary-foreground",
            children: e.title
          }), /* @__PURE__ */ (0, t.jsxs)("span", {
            className: "truncate text-[10px] text-muted-foreground",
            children: ["Host: ", e.host]
          })]
        }),
        /* @__PURE__ */ (0, t.jsxs)("div", {
          className: "flex cursor-ns-resize items-center gap-1 text-[10px] text-muted-foreground hover:text-muted-foreground",
          onMouseDown: (n) => l(n, "resize-end"),
          children: [/* @__PURE__ */ (0, t.jsx)("span", { children: "≡" }), /* @__PURE__ */ (0, t.jsx)("span", {
            className: "font-medium text-secondary-foreground",
            children: h
          })]
        })
      ]
    })]
  }) });
}
function bt({ weekDays: e, meetings: r, timeInterval: s, gridStartHour: o, gridEndHour: f, onMeetingClick: i, onMeetingTimeChange: g, onMeetingsChange: j, onTimeAdjust: k }) {
  const w = m.useRef(null), c = 60 / 60, { dragState: N, handleDragStart: E } = Me({
    meetings: r,
    pixelsPerMinute: c,
    gridContainerRef: w,
    onDragEnd: m.useCallback((x, p, h) => {
      const l = r.find((n) => n.id === x);
      l && (g?.(l, p, h), j && j(r.map((n) => n.id === x ? {
        ...n,
        startTime: p,
        endTime: h
      } : n)));
    }, [
      r,
      g,
      j
    ]),
    snapInterval: s
  }), S = m.useMemo(() => {
    let x = o ?? 8, p = f ?? 18;
    if (!o || !f) {
      const h = e[0], l = K(e[e.length - 1], 1), n = r.filter((u) => u.startTime >= h && u.startTime < l);
      if (n.length > 0) {
        const u = Math.min(...n.map((y) => y.startTime.getHours())), d = Math.max(...n.map((y) => y.endTime.getHours()));
        o || (x = Math.max(0, u - 1)), f || (p = Math.min(23, d + 1));
      }
    }
    return {
      startHour: x,
      endHour: p
    };
  }, [
    e,
    r,
    o,
    f
  ]), _ = m.useMemo(() => {
    const x = [], p = /* @__PURE__ */ new Date();
    p.setHours(S.startHour, 0, 0, 0);
    const h = (S.endHour - S.startHour + 1) * 60, l = Math.ceil(h / s);
    for (let n = 0; n < l; n++) {
      const u = new Date(p);
      u.setMinutes(p.getMinutes() + n * s), x.push(u);
    }
    return x;
  }, [S, s]);
  return m.useEffect(() => {
    if (w.current && r.length > 0) {
      const x = e[0], p = K(e[e.length - 1], 1), h = r.filter((l) => l.startTime >= x && l.startTime < p);
      if (h.length > 0) {
        const l = h.reduce((u, d) => u.startTime < d.startTime ? u : d).startTime.getHours(), n = (Math.max(0, l - 1) - S.startHour) * (c * 60);
        w.current.scrollTop = n;
      }
    }
  }, [
    e,
    r,
    S.startHour,
    c
  ]), /* @__PURE__ */ (0, t.jsxs)("div", {
    ref: w,
    className: "relative flex overflow-y-auto",
    style: { maxHeight: "min(600px, 70vh)" },
    children: [/* @__PURE__ */ (0, t.jsx)("div", {
      className: "sticky start-0 z-10 flex shrink-0 flex-col border-e border-border bg-background",
      children: _.map((x, p) => {
        const h = x.getMinutes() === 0;
        return /* @__PURE__ */ (0, t.jsx)("div", {
          className: "relative flex items-start justify-end pe-2 text-xs text-quaternary-foreground",
          style: { height: `${s * c}px` },
          children: h && /* @__PURE__ */ (0, t.jsx)("span", {
            className: "absolute -top-2",
            children: D(x, "h a")
          })
        }, p);
      })
    }), /* @__PURE__ */ (0, t.jsx)("div", {
      className: "relative flex flex-1",
      children: e.map((x) => {
        const p = $(x), h = K(p, 1), l = r.filter((n) => n.startTime >= p && n.startTime < h);
        return /* @__PURE__ */ (0, t.jsxs)("div", {
          className: "relative flex-1 border-e border-border last:border-e-0",
          children: [_.map((n, u) => /* @__PURE__ */ (0, t.jsx)("div", {
            className: "border-b border-border",
            style: { height: `${s * c}px` }
          }, u)), l.map((n) => {
            const u = N?.meetingId === n.id;
            return /* @__PURE__ */ (0, t.jsx)(gt, {
              meeting: n,
              gridStartHour: S.startHour,
              pixelsPerMinute: c,
              onClick: i ? () => i(n) : void 0,
              onDragStart: E,
              isDragging: u,
              currentStartTime: u ? N.currentStartTime : void 0,
              currentEndTime: u ? N.currentEndTime : void 0,
              onTimeAdjust: k
            }, n.id);
          })]
        }, x.toISOString());
      })
    })]
  });
}
function vt({ viewMode: e, onChange: r, isTouchOnly: s }) {
  return s ? null : /* @__PURE__ */ (0, t.jsxs)("div", {
    role: "tablist",
    className: "flex items-center gap-0.5 rounded-lg border border-border bg-background p-0.5",
    children: [
      /* @__PURE__ */ (0, t.jsx)("button", {
        type: "button",
        role: "tab",
        "aria-selected": e === "list",
        onClick: () => r("list"),
        className: T("rounded-md px-3 py-1.5 text-sm font-medium transition-colors duration-200 ease-smooth motion-reduce:transition-none", e === "list" ? "bg-accent text-foreground shadow-xs" : "text-muted-foreground hover:text-foreground"),
        children: "List"
      }),
      /* @__PURE__ */ (0, t.jsx)("button", {
        type: "button",
        role: "tab",
        "aria-selected": e === "list-edit",
        onClick: () => r("list-edit"),
        className: T("rounded-md px-3 py-1.5 text-sm font-medium transition-colors duration-200 ease-smooth motion-reduce:transition-none", e === "list-edit" ? "bg-accent text-foreground shadow-xs" : "text-muted-foreground hover:text-foreground"),
        children: "Edit"
      }),
      /* @__PURE__ */ (0, t.jsx)("button", {
        type: "button",
        role: "tab",
        "aria-selected": e === "grid",
        onClick: () => r("grid"),
        className: T("rounded-md px-3 py-1.5 text-sm font-medium transition-colors duration-200 ease-smooth motion-reduce:transition-none", e === "grid" ? "bg-accent text-foreground shadow-xs" : "text-muted-foreground hover:text-foreground"),
        children: "Grid"
      })
    ]
  });
}
function ke({ value: e = /* @__PURE__ */ new Date(), onChange: r, minDate: s, maxDate: o, meetings: f = [], onMeetingClick: i, onJoinMeeting: g, className: j, dir: k = "ltr", weekStartsOn: w = 1, maxAttendees: c = 5, showNextMeeting: N = !0, showAllMeetings: E = !0, viewMode: S, onViewModeChange: _, timeInterval: x = 30, gridStartHour: p, gridEndHour: h, listEditPixelsPerMinute: l = 2, onMeetingTimeChange: n, onMeetingsChange: u, showViewModeToggle: d = !1 }) {
  const [y, M] = m.useState(e), ce = k === "rtl", ue = m.useRef(null), [Z, De] = m.useState(!1);
  m.useEffect(() => {
    const a = ue.current?.ownerDocument.defaultView;
    a && De(!a.matchMedia("(pointer: fine)").matches);
  }, []);
  const [Ae, Ie] = m.useState("list"), L = S ?? Ae, Ce = m.useCallback((a) => {
    Z && (a === "grid" || a === "list-edit") || (Ie(a), _?.(a));
  }, [Z, _]), me = m.useRef(null), Oe = 1, G = m.useCallback((a, v, C) => {
    const W = f.find((A) => A.id === a);
    W && (n?.(W, v, C), u && u(f.map((A) => A.id === a ? {
      ...A,
      startTime: v,
      endTime: C
    } : A)));
  }, [
    f,
    n,
    u
  ]), { dragState: b, handleDragStart: fe } = Me({
    meetings: f,
    pixelsPerMinute: Oe,
    gridContainerRef: me,
    onDragEnd: G
  }), [X, J] = m.useState(/* @__PURE__ */ new Map()), [xe, Q] = m.useState(/* @__PURE__ */ new Set()), ee = m.useRef([]), te = m.useCallback((a) => {
    const v = $(a);
    return !!(s && be(v, $(s)) || o && be($(o), v));
  }, [s, o]), He = m.useCallback((a) => {
    te(a) || (M(a), r?.(a));
  }, [te, r]), P = Xe(y, { weekStartsOn: w }), re = $e(y, { weekStartsOn: w }), Re = Je(y, { weekStartsOn: w }), pe = m.useMemo(() => Array.from({ length: 7 }, (a, v) => K(P, v)), [P]), z = m.useMemo(() => {
    const a = /* @__PURE__ */ new Date();
    return f.filter((v) => v.startTime > a).sort((v, C) => v.startTime.getTime() - C.startTime.getTime())[0];
  }, [f]), R = m.useMemo(() => f.filter((a) => a.startTime >= P && a.startTime <= re).sort((a, v) => a.startTime.getTime() - v.startTime.getTime()), [
    f,
    P,
    re
  ]), I = m.useMemo(() => {
    if (!b) return R;
    const a = (v) => v.id === b.meetingId ? b.currentStartTime : v.startTime;
    return [...R].sort((v, C) => a(v).getTime() - a(C).getTime());
  }, [R, b]);
  m.useEffect(() => {
    let a;
    if (!b || L !== "list-edit") {
      X.size > 0 && (J(/* @__PURE__ */ new Map()), Q(/* @__PURE__ */ new Set())), ee.current = I.map((O) => O.id);
      return;
    }
    const v = I.map((O) => O.id), C = ee.current, W = b.meetingId, A = /* @__PURE__ */ new Map(), he = /* @__PURE__ */ new Set();
    for (let O = 0; O < v.length; O++) {
      const q = v[O];
      if (q === W) continue;
      const se = C.indexOf(q), ge = O;
      if (se !== -1 && se !== ge) {
        const qe = I.find((U) => U.id === q), Ue = I.find((U) => U.id === W);
        if (qe && Ue) {
          const U = ne(b.currentStartTime, b.currentEndTime, l), Ve = se < ge ? -1 : 1;
          A.set(q, Ve * (U + 16)), he.add(q);
        }
      }
    }
    return A.size > 0 && (J(A), Q(he), a = setTimeout(() => {
      J(/* @__PURE__ */ new Map()), Q(/* @__PURE__ */ new Set());
    }, pt)), ee.current = v, () => {
      a && clearTimeout(a);
    };
  }, [
    I,
    b,
    L,
    l
  ]);
  const Le = () => {
    const a = et(y, 1);
    M(a), r?.(a);
  }, Pe = () => {
    const a = Ze(y, 1);
    M(a), r?.(a);
  }, We = () => {
    const a = /* @__PURE__ */ new Date();
    M(a), r?.(a);
  };
  return /* @__PURE__ */ (0, t.jsxs)("div", {
    ref: ue,
    className: T("isolate flex flex-col border border-border bg-background shadow-xs", j),
    dir: k,
    children: [
      /* @__PURE__ */ (0, t.jsxs)("div", {
        className: "flex flex-col gap-5 border-b border-border px-4 py-5",
        children: [/* @__PURE__ */ (0, t.jsxs)("div", {
          className: "flex flex-col gap-0.5",
          children: [/* @__PURE__ */ (0, t.jsxs)("div", {
            className: "flex items-center gap-2",
            children: [/* @__PURE__ */ (0, t.jsx)("span", {
              className: "text-lg font-semibold text-foreground",
              children: D(y, "MMMM yyyy")
            }), /* @__PURE__ */ (0, t.jsxs)(rt, {
              variant: "outline",
              shape: "rounded",
              color: "secondary",
              size: "xs",
              children: ["Week ", Re]
            })]
          }), /* @__PURE__ */ (0, t.jsxs)("span", {
            className: "text-sm text-muted-foreground",
            children: [
              D(P, "MMM d, yyyy"),
              " –",
              " ",
              D(re, "MMM d, yyyy")
            ]
          })]
        }), /* @__PURE__ */ (0, t.jsxs)("div", {
          className: "flex w-full overflow-hidden rounded-lg border border-border shadow-xs",
          children: [
            /* @__PURE__ */ (0, t.jsx)("button", {
              type: "button",
              onClick: Le,
              className: "flex items-center justify-center border-e border-border bg-background px-3 py-2 hover:bg-muted transition-colors duration-200 ease-smooth motion-reduce:transition-none",
              "aria-label": "Previous week",
              children: ce ? /* @__PURE__ */ (0, t.jsx)(ye, { className: "size-5 text-secondary-foreground" }) : /* @__PURE__ */ (0, t.jsx)(ve, { className: "size-5 text-secondary-foreground" })
            }),
            /* @__PURE__ */ (0, t.jsx)("button", {
              type: "button",
              onClick: We,
              className: "flex flex-1 items-center justify-center border-e border-border bg-background px-4 py-2 text-sm font-semibold text-secondary-foreground hover:bg-muted transition-colors duration-200 ease-smooth motion-reduce:transition-none",
              children: "Today"
            }),
            /* @__PURE__ */ (0, t.jsx)("button", {
              type: "button",
              onClick: Pe,
              className: "flex items-center justify-center bg-background px-3 py-2 hover:bg-muted transition-colors duration-200 ease-smooth motion-reduce:transition-none",
              "aria-label": "Next week",
              children: ce ? /* @__PURE__ */ (0, t.jsx)(ve, { className: "size-5 text-secondary-foreground" }) : /* @__PURE__ */ (0, t.jsx)(ye, { className: "size-5 text-secondary-foreground" })
            })
          ]
        })]
      }),
      /* @__PURE__ */ (0, t.jsxs)("div", {
        className: "relative flex shadow-sm",
        children: [pe.map((a) => /* @__PURE__ */ (0, t.jsx)(ht, {
          date: a,
          isSelected: Ke(a, y),
          isDisabled: te(a),
          onClick: () => He(a)
        }, a.toISOString())), d && /* @__PURE__ */ (0, t.jsx)("div", {
          className: "absolute end-2 top-1/2 -translate-y-1/2",
          children: /* @__PURE__ */ (0, t.jsx)(vt, {
            viewMode: L,
            onChange: Ce,
            isTouchOnly: Z
          })
        })]
      }),
      L === "grid" ? /* @__PURE__ */ (0, t.jsx)(bt, {
        weekDays: pe,
        meetings: f,
        timeInterval: x,
        gridStartHour: p,
        gridEndHour: h,
        onMeetingClick: i,
        onMeetingTimeChange: n,
        onMeetingsChange: u,
        onTimeAdjust: G
      }) : L === "list-edit" ? /* @__PURE__ */ (0, t.jsx)(je, {
        className: "h-[min(600px,70vh)]",
        children: /* @__PURE__ */ (0, t.jsxs)("div", {
          ref: me,
          className: "flex flex-1 flex-col gap-8 px-6 py-4",
          children: [
            N && z && /* @__PURE__ */ (0, t.jsxs)("div", {
              className: "flex flex-col gap-4",
              children: [/* @__PURE__ */ (0, t.jsx)("h3", {
                className: "text-lg font-semibold text-foreground",
                children: "Next Meeting"
              }), (() => {
                const a = ne(b?.meetingId === z.id ? b.currentStartTime : z.startTime, b?.meetingId === z.id ? b.currentEndTime : z.endTime, l);
                return /* @__PURE__ */ (0, t.jsx)(Ne, {
                  meeting: z,
                  variant: "next",
                  onJoin: g ? () => g(z) : void 0,
                  onClick: i ? () => i(z) : void 0,
                  maxAttendees: c,
                  onDragStart: fe,
                  isDragging: b?.meetingId === z.id,
                  currentStartTime: b?.meetingId === z.id ? b.currentStartTime : void 0,
                  currentEndTime: b?.meetingId === z.id ? b.currentEndTime : void 0,
                  height: a,
                  animationOffset: X.get(z.id) ?? 0,
                  isSwapping: xe.has(z.id),
                  onTimeAdjust: G
                });
              })()]
            }),
            E && I.length > 0 && /* @__PURE__ */ (0, t.jsxs)("div", {
              className: "flex flex-col gap-4",
              children: [/* @__PURE__ */ (0, t.jsx)("h3", {
                className: "text-lg font-semibold text-foreground",
                children: "All Meetings"
              }), /* @__PURE__ */ (0, t.jsx)("div", {
                className: "flex flex-col gap-4",
                children: I.map((a) => {
                  const v = ne(b?.meetingId === a.id ? b.currentStartTime : a.startTime, b?.meetingId === a.id ? b.currentEndTime : a.endTime, l);
                  return /* @__PURE__ */ (0, t.jsx)(Ne, {
                    meeting: a,
                    variant: "list",
                    onClick: i ? () => i(a) : void 0,
                    maxAttendees: c,
                    onDragStart: fe,
                    isDragging: b?.meetingId === a.id,
                    currentStartTime: b?.meetingId === a.id ? b.currentStartTime : void 0,
                    currentEndTime: b?.meetingId === a.id ? b.currentEndTime : void 0,
                    height: v,
                    animationOffset: X.get(a.id) ?? 0,
                    isSwapping: xe.has(a.id),
                    onTimeAdjust: G
                  }, a.id);
                })
              })]
            }),
            (!N || !z) && (!E || I.length === 0) && /* @__PURE__ */ (0, t.jsx)("div", {
              className: "flex flex-1 items-center justify-center py-12",
              children: /* @__PURE__ */ (0, t.jsx)("span", {
                className: "text-sm text-quaternary-foreground",
                children: "No meetings scheduled"
              })
            })
          ]
        })
      }) : /* @__PURE__ */ (0, t.jsx)(je, {
        className: "h-[min(600px,70vh)]",
        children: /* @__PURE__ */ (0, t.jsxs)("div", {
          className: "flex flex-1 flex-col gap-8 px-6 py-4",
          children: [
            N && z && /* @__PURE__ */ (0, t.jsxs)("div", {
              className: "flex flex-col gap-4",
              children: [/* @__PURE__ */ (0, t.jsx)("h3", {
                className: "text-lg font-semibold text-foreground",
                children: "Next Meeting"
              }), /* @__PURE__ */ (0, t.jsx)(Te, {
                meeting: z,
                variant: "next",
                onJoin: g ? () => g(z) : void 0,
                onClick: i ? () => i(z) : void 0,
                maxAttendees: c
              })]
            }),
            E && R.length > 0 && /* @__PURE__ */ (0, t.jsxs)("div", {
              className: "flex flex-col gap-4",
              children: [/* @__PURE__ */ (0, t.jsx)("h3", {
                className: "text-lg font-semibold text-foreground",
                children: "All Meetings"
              }), /* @__PURE__ */ (0, t.jsx)("div", {
                className: "flex flex-col gap-4",
                children: R.map((a) => /* @__PURE__ */ (0, t.jsx)(Te, {
                  meeting: a,
                  variant: "list",
                  onClick: i ? () => i(a) : void 0,
                  maxAttendees: c
                }, a.id))
              })]
            }),
            (!N || !z) && (!E || R.length === 0) && /* @__PURE__ */ (0, t.jsxs)("div", {
              className: "flex flex-1 flex-col items-center justify-center gap-3 py-12 animate-in fade-in duration-300 motion-reduce:animate-none",
              children: [/* @__PURE__ */ (0, t.jsx)(lt, { className: "size-8 text-muted-foreground/50" }), /* @__PURE__ */ (0, t.jsxs)("div", {
                className: "flex flex-col items-center gap-1",
                children: [/* @__PURE__ */ (0, t.jsx)("span", {
                  className: "text-sm font-medium text-secondary-foreground",
                  children: "Your schedule is clear"
                }), /* @__PURE__ */ (0, t.jsx)("span", {
                  className: "text-xs text-quaternary-foreground",
                  children: "No meetings for this week"
                })]
              })]
            })
          ]
        })
      })
    ]
  });
}
ke.displayName = "WeekCalendar";
var yt = Fe();
function jt(e) {
  return {
    onChange: (r) => {
      e.dispatchEvent(new CustomEvent("change", {
        detail: r,
        bubbles: !0,
        composed: !0
      }));
    },
    onMeetingClick: (r) => {
      e.dispatchEvent(new CustomEvent("meeting-click", {
        detail: r,
        bubbles: !0,
        composed: !0
      }));
    },
    onJoinMeeting: (r) => {
      e.dispatchEvent(new CustomEvent("join-meeting", {
        detail: r,
        bubbles: !0,
        composed: !0
      }));
    },
    onViewModeChange: (r) => {
      e.dispatchEvent(new CustomEvent("view-mode-change", {
        detail: r,
        bubbles: !0,
        composed: !0
      }));
    },
    onMeetingTimeChange: (r) => {
      e.dispatchEvent(new CustomEvent("meeting-time-change", {
        detail: r,
        bubbles: !0,
        composed: !0
      }));
    },
    onMeetingsChange: (r) => {
      e.dispatchEvent(new CustomEvent("meetings-change", {
        detail: r,
        bubbles: !0,
        composed: !0
      }));
    }
  };
}
function Tt(e) {
  const { _hostElement: r, ...s } = e, o = m.useMemo(() => r ? jt(r) : {}, [r]);
  return m.createElement(ke, {
    ...s,
    ...o
  });
}
var B = {
  value: "string",
  minDate: "string",
  maxDate: "string",
  meetings: "json",
  className: "string",
  dir: "string",
  weekStartsOn: "string",
  maxAttendees: "number",
  showNextMeeting: "boolean",
  showAllMeetings: "boolean",
  viewMode: "string",
  timeInterval: "string",
  gridStartHour: "number",
  gridEndHour: "number",
  listEditPixelsPerMinute: "number",
  showViewModeToggle: "boolean"
};
function we(e, r) {
  if (e !== null)
    switch (r) {
      case "number":
        return Number(e);
      case "boolean":
        return e !== "false" && e !== "0";
      case "json":
        try {
          return JSON.parse(e);
        } catch {
          return e;
        }
      default:
        return e;
    }
}
var _e = class extends HTMLElement {
  _root = null;
  _childrenContainer = null;
  _props = {};
  _initialized = !1;
  connectedCallback() {
    setTimeout(() => this._initialize(), 0);
  }
  _initialize() {
    if (this._initialized) return;
    this._initialized = !0;
    const e = [];
    for (const s of Array.from(this.childNodes))
      s.nodeType === Node.TEXT_NODE && !s.textContent?.trim() || e.push(s);
    const r = document.createElement("div");
    for (r.style.display = "contents", this._childrenContainer = document.createElement("div"), this._childrenContainer.style.display = "contents", e.forEach((s) => this._childrenContainer.appendChild(s)); this.firstChild; ) this.removeChild(this.firstChild);
    this.appendChild(r), this._root = (0, yt.createRoot)(r), this._render();
  }
  disconnectedCallback() {
    this._root?.unmount(), this._root = null;
  }
  attributeChangedCallback(e, r, s) {
    this._render();
  }
  static get observedAttributes() {
    return Object.keys(B).map((e) => e.replace(/([A-Z])/g, "-$1").toLowerCase());
  }
  _setProp(e, r) {
    const s = B[e] || "string";
    this._props[e] = this._parseValue(r, s), this._render();
  }
  _parseValue(e, r) {
    if (r === "boolean" && typeof e == "boolean" || r === "number" && typeof e == "number" || r === "string" && typeof e == "string") return e;
    if (typeof e == "string") switch (r) {
      case "boolean":
        return e !== "false" && e !== "0" && e !== "";
      case "number":
        return Number(e);
      case "json":
        try {
          return JSON.parse(e);
        } catch {
          return e;
        }
      default:
        return e;
    }
    return e;
  }
  _getProp(e) {
    if (e in this._props) return this._props[e];
    const r = e.replace(/([A-Z])/g, "-$1").toLowerCase(), s = B[e] || "string";
    return we(this.getAttribute(r), s);
  }
  _render() {
    if (!this._root) return;
    const e = {};
    for (const [s, o] of Object.entries(B)) if (s in this._props) e[s] = this._props[s];
    else {
      const f = s.replace(/([A-Z])/g, "-$1").toLowerCase();
      e[s] = we(this.getAttribute(f), o);
    }
    const r = m.createElement(Tt, {
      ...e,
      _hostElement: this
    });
    this._root.render(r);
  }
};
for (const e of Object.keys(B)) Object.defineProperty(_e.prototype, e, {
  get() {
    return this._getProp(e);
  },
  set(r) {
    this._setProp(e, r);
  },
  enumerable: !0,
  configurable: !0
});
typeof customElements < "u" && !customElements.get("hf-week-calendar") && customElements.define("hf-week-calendar", _e);
export {
  _e as WeekCalendarWC,
  _e as default
};

//# sourceMappingURL=hf-week-calendar.js.map