diff --git a/.storybook/preview.js b/.storybook/preview.js
index be71a6c..ccfebad 100644
--- a/.storybook/preview.js
+++ b/.storybook/preview.js
@@ -1,20 +1,6 @@
/** @type { import('@storybook/vue3').Preview } */
-import '@/assets/style.scss'
+import '../src/assets/styles/main.scss'
-const preview = {
- parameters: {
- controls: {
- matchers: {
- color: /(background|color)$/i,
- date: /Date$/i,
- },
- },
- },
-};
-
-export default preview;
-
-import '../src/assets/style.scss'
import { setup } from '@storybook/vue3';
const components = {
diff --git a/build-scss.cjs b/build-scss.cjs
new file mode 100644
index 0000000..4ccfc1a
--- /dev/null
+++ b/build-scss.cjs
@@ -0,0 +1,20 @@
+const { exec } = require('child_process');
+
+const files = {
+ 'src/assets/styles/main.scss': 'dist/styles/main.css',
+ 'src/assets/styles/tree.scss': 'dist/styles/tree.css'
+};
+
+Object.keys(files).forEach(key => {
+ exec(`sass ${key} ${files[key]}`, (err, stdout, stderr) => {
+ if (err) {
+ console.error(`Error compiling ${key}: ${err.message}`);
+ return;
+ }
+ if (stderr) {
+ console.error(`Sass stderr: ${stderr}`);
+ return;
+ }
+ console.log(`Compiled ${key} to ${files[key]}`);
+ });
+});
diff --git a/dist/lib.js b/dist/lib.js
index 62b3018..6482eed 100644
--- a/dist/lib.js
+++ b/dist/lib.js
@@ -1,10 +1,10 @@
-import { resolveComponent as m, openBlock as s, createElementBlock as l, Fragment as b, renderList as g, createBlock as d, resolveDynamicComponent as y, mergeProps as f, withCtx as h, createCommentVNode as p, normalizeClass as v, withModifiers as j, renderSlot as a, createElementVNode as i, toDisplayString as x } from "vue";
-const $ = {
+import { resolveComponent as G, openBlock as h, createElementBlock as b, Fragment as I, renderList as j, createBlock as C, resolveDynamicComponent as je, mergeProps as ie, withCtx as O, createCommentVNode as Q, normalizeClass as N, withModifiers as Ce, renderSlot as A, createElementVNode as c, toDisplayString as M, withDirectives as Ae, vModelDynamic as Ne, createVNode as k, unref as $, inject as z, nextTick as F, watchEffect as L, ref as x, computed as D, onMounted as Y, cloneVNode as Fe, h as Ve, provide as X, defineComponent as V, onUnmounted as re, Transition as Re, createTextVNode as ce, reactive as ge } from "vue";
+const Be = {
__name: "Builder",
props: {
- object: {
+ modelValue: {
required: !1,
- default: null
+ default: {}
},
design: {
required: !0
@@ -15,40 +15,40 @@ const $ = {
}
},
setup(e) {
- return (o, r) => {
- const n = m("builder", !0);
- return s(!0), l(b, null, g(e.design, (t, c) => (s(), d(y(t.component), f({
- key: t,
+ return (t, n) => {
+ const a = G("builder", !0);
+ return h(!0), b(I, null, j(e.design, (l, o) => (h(), C(je(l.component), ie({
+ key: l,
ref_for: !0
}, {
endpoint: e.endpoint,
- object: e.object,
- class: t.class,
- configs: t.configs
+ modelValue: e.modelValue,
+ class: l.class,
+ ...l.configs
}), {
- default: h(() => [
- t.children && t.children.length ? (s(), d(n, f({
+ default: O(() => [
+ l.children && l.children.length ? (h(), C(a, ie({
key: 0,
ref_for: !0
}, {
endpoint: e.endpoint,
- object: e.object,
- design: t.children
- }), null, 16)) : p("", !0)
+ modelValue: e.modelValue,
+ design: l.children
+ }), null, 16)) : Q("", !0)
]),
_: 2
}, 1040))), 128);
};
}
-}, w = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
+}, Le = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
__proto__: null,
- default: $
-}, Symbol.toStringTag, { value: "Module" })), O = {
+ default: Be
+}, Symbol.toStringTag, { value: "Module" })), Ue = {
__name: "Form",
props: {
- object: {
+ modelValue: {
required: !1,
- default: null
+ default: {}
},
endpoint: {
required: !1,
@@ -60,140 +60,1347 @@ const $ = {
}
},
setup(e) {
- const o = e, r = async () => {
- const n = document.getElementById("website-form"), t = new FormData(n);
+ const t = e, n = async () => {
+ const a = document.getElementById("website-form"), l = new FormData(a);
try {
- let c;
- const _ = { headers: { "Content-Type": "multipart/form-data" } };
- Object.keys(object).length ? (t.append("_method", "put"), c = await axios.post(o.endpoint, t, _)) : c = await axios.post(o.endpoint, t, _), location.assign(c.data.redirect);
- } catch (c) {
- window.notyf.error(c.response.data);
+ let o;
+ const r = { headers: { "Content-Type": "multipart/form-data" } };
+ Object.keys(modelValue).length ? (l.append("_method", "put"), o = await axios.post(t.endpoint, l, r)) : o = await axios.post(t.endpoint, l, r), location.assign(o.data.redirect);
+ } catch (o) {
+ window.notyf.error(o.response.data);
}
return !1;
};
- return (n, t) => {
- const c = m("form-buttons");
- return s(), l("form", {
+ return (a, l) => {
+ const o = G("form-buttons");
+ return h(), b("form", {
id: "website-form",
- class: v(o.class),
- onSubmit: j(r, ["prevent"])
+ class: N(t.class),
+ onSubmit: Ce(n, ["prevent"])
}, [
- a(n.$slots, "default"),
- o.endpoint ? (s(), d(c, { key: 0 })) : p("", !0)
+ A(a.$slots, "default"),
+ t.endpoint ? (h(), C(o, { key: 0 })) : Q("", !0)
], 34);
};
}
-}, S = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
+}, He = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
__proto__: null,
- default: O
-}, Symbol.toStringTag, { value: "Module" })), u = (e, o) => {
- const r = e.__vccOpts || e;
- for (const [n, t] of o)
- r[n] = t;
- return r;
-}, k = {}, C = { class: "mt-6 flex items-center justify-end gap-x-6" }, q = /* @__PURE__ */ i("button", {
+ default: Ue
+}, Symbol.toStringTag, { value: "Module" })), U = (e, t) => {
+ const n = e.__vccOpts || e;
+ for (const [a, l] of t)
+ n[a] = l;
+ return n;
+}, qe = {}, Ke = { class: "mt-6 flex items-center justify-end gap-x-6" }, ze = /* @__PURE__ */ c("button", {
type: "button",
class: "text-sm font-semibold leading-6 text-gray-900"
-}, "Cancel", -1), T = /* @__PURE__ */ i("button", {
+}, "Cancel", -1), We = /* @__PURE__ */ c("button", {
type: "submit",
class: "rounded-md bg-indigo-600 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
-}, "Save", -1), z = [
- q,
- T
+}, "Save", -1), Ge = [
+ ze,
+ We
];
-function B(e, o) {
- return s(), l("div", C, z);
+function Qe(e, t) {
+ return h(), b("div", Ke, Ge);
}
-const M = /* @__PURE__ */ u(k, [["render", B]]), P = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
+const Ye = /* @__PURE__ */ U(qe, [["render", Qe]]), Xe = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
__proto__: null,
- default: M
-}, Symbol.toStringTag, { value: "Module" })), F = { class: "mt-5" }, D = {
- for: "username",
- class: "block text-sm font-medium leading-6 text-gray-900"
-}, E = /* @__PURE__ */ i("div", { class: "mt-2" }, [
- /* @__PURE__ */ i("div", { class: "flex rounded-md shadow-sm ring-1 ring-inset ring-gray-300 focus-within:ring-2 focus-within:ring-inset focus-within:ring-indigo-600" }, [
- /* @__PURE__ */ i("input", {
- type: "text",
- name: "username",
- id: "username",
- autocomplete: "username",
- class: "block flex-1 border-0 bg-transparent py-1.5 pl-1 text-gray-900 placeholder:text-gray-400 focus:ring-0 sm:text-sm sm:leading-6",
- placeholder: "janesmith"
- })
- ])
-], -1), I = {
- __name: "InputText",
+ default: Ye
+}, Symbol.toStringTag, { value: "Module" })), Ze = { class: "mt-5" }, Je = ["for"], et = { class: "mt-2" }, tt = {
+ key: 0,
+ class: "flex rounded-md shadow-sm ring-1 ring-inset ring-gray-300 focus-within:ring-2 focus-within:ring-inset focus-within:ring-indigo-600"
+}, nt = ["type", "id", "placeholder"], rt = {
+ key: 1,
+ class: "text-xs font-medium text-rose-600"
+}, lt = {
+ __name: "Input",
props: {
- object: {
+ class: {
required: !1,
- default: null
+ default: {}
},
- endpoint: {
+ label: {
+ type: String,
+ required: !0
+ },
+ type: {
+ type: String,
required: !1,
+ default: "text"
+ },
+ help: String,
+ name: {
+ type: String,
+ required: !0
+ },
+ disabled: {
+ type: Boolean,
default: !1
},
- class: {
- required: !1,
- default: {}
+ required: {
+ type: Boolean,
+ default: !1
},
- configs: {
+ modelValue: {
required: !1,
default: {}
}
},
+ emits: ["update:modelValue"],
+ setup(e, { emit: t }) {
+ const n = e;
+ return (a, l) => (h(), b("div", Ze, [
+ c("label", {
+ for: n.name,
+ class: "block text-sm font-medium leading-6 text-gray-900"
+ }, M(n.label), 9, Je),
+ c("div", et, [
+ n.name ? (h(), b("div", tt, [
+ Ae(c("input", {
+ type: n.type ?? "text",
+ name: "username",
+ id: n.name,
+ class: "block flex-1 border-0 bg-transparent py-1.5 pl-1 text-gray-900 placeholder:text-gray-400 focus:ring-0 sm:text-sm sm:leading-6",
+ placeholder: n.placeholder,
+ "onUpdate:modelValue": l[0] || (l[0] = (o) => n.modelValue[n.name] = o)
+ }, null, 8, nt), [
+ [Ne, n.modelValue[n.name]]
+ ])
+ ])) : (h(), b("small", rt, " No Name set"))
+ ])
+ ]));
+ }
+}, ot = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
+ __proto__: null,
+ default: lt
+}, Symbol.toStringTag, { value: "Module" })), at = {}, st = { class: "space-y-5 mt-10" }, ut = /* @__PURE__ */ c("div", { class: "border-b border-gray-900/10 pb-5" }, [
+ /* @__PURE__ */ c("h2", { class: "text-base font-semibold leading-7 text-gray-900" }, "Profile"),
+ /* @__PURE__ */ c("p", { class: "mt-1 text-sm leading-6 text-gray-600" }, "This information will be displayed publicly so be careful what you share.")
+], -1), it = [
+ ut
+];
+function ct(e, t) {
+ return h(), b("div", st, it);
+}
+const dt = /* @__PURE__ */ U(at, [["render", ct]]), ft = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
+ __proto__: null,
+ default: dt
+}, Symbol.toStringTag, { value: "Module" }));
+function pt(e, t) {
+ return h(), b("svg", {
+ xmlns: "http://www.w3.org/2000/svg",
+ viewBox: "0 0 20 20",
+ fill: "currentColor",
+ "aria-hidden": "true",
+ "data-slot": "icon"
+ }, [
+ c("path", {
+ "fill-rule": "evenodd",
+ d: "M8.22 5.22a.75.75 0 0 1 1.06 0l4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.75.75 0 0 1-1.06-1.06L11.94 10 8.22 6.28a.75.75 0 0 1 0-1.06Z",
+ "clip-rule": "evenodd"
+ })
+ ]);
+}
+function mt(e, t) {
+ return h(), b("svg", {
+ xmlns: "http://www.w3.org/2000/svg",
+ viewBox: "0 0 20 20",
+ fill: "currentColor",
+ "aria-hidden": "true",
+ "data-slot": "icon"
+ }, [
+ c("path", {
+ "fill-rule": "evenodd",
+ d: "M9.293 2.293a1 1 0 0 1 1.414 0l7 7A1 1 0 0 1 17 11h-1v6a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1v-3a1 1 0 0 0-1-1H9a1 1 0 0 0-1 1v3a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-6H3a1 1 0 0 1-.707-1.707l7-7Z",
+ "clip-rule": "evenodd"
+ })
+ ]);
+}
+const vt = {
+ class: "flex",
+ "aria-label": "Breadcrumb"
+}, ht = {
+ role: "list",
+ class: "flex items-center space-x-4"
+}, gt = { href: "#" }, _t = /* @__PURE__ */ c("span", { class: "sr-only" }, "Home", -1), bt = { class: "flex items-center" }, yt = ["href", "aria-current"], xt = {
+ __name: "Breadcrumbs",
setup(e) {
- const o = e;
- return (r, n) => (s(), l("div", F, [
- i("label", D, x(o.configs.title), 1),
- E
+ const t = [
+ { name: "Projects", href: "#", current: !1 },
+ { name: "Project Nero", href: "#", current: !0 }
+ ];
+ return (n, a) => (h(), b("nav", vt, [
+ c("ol", ht, [
+ c("li", null, [
+ c("div", null, [
+ c("a", gt, [
+ k($(mt), {
+ class: "h-5 w-5 flex-shrink-0",
+ "aria-hidden": "true"
+ }),
+ _t
+ ])
+ ])
+ ]),
+ (h(), b(I, null, j(t, (l) => c("li", {
+ key: l.name
+ }, [
+ c("div", bt, [
+ k($(pt), {
+ class: "h-5 w-5 flex-shrink-0",
+ "aria-hidden": "true"
+ }),
+ c("a", {
+ href: l.href,
+ class: "ml-4 text-sm font-medium",
+ "aria-current": l.current ? "page" : void 0
+ }, M(l.name), 9, yt)
+ ])
+ ])), 64))
+ ])
]));
}
-}, N = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
+}, wt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
__proto__: null,
- default: I
-}, Symbol.toStringTag, { value: "Module" })), R = {}, V = { class: "col" };
-function L(e, o) {
- return s(), l("div", V, [
- a(e.$slots, "default")
+ default: xt
+}, Symbol.toStringTag, { value: "Module" })), St = {}, $t = { class: "col" };
+function kt(e, t) {
+ return h(), b("div", $t, [
+ A(e.$slots, "default")
]);
}
-const A = /* @__PURE__ */ u(R, [["render", L]]), G = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
+const Ot = /* @__PURE__ */ U(St, [["render", kt]]), Pt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
__proto__: null,
- default: A
-}, Symbol.toStringTag, { value: "Module" })), H = {}, J = { class: "container mx-auto mt-5" };
-function K(e, o) {
- return s(), l("div", J, [
- a(e.$slots, "default")
+ default: Ot
+}, Symbol.toStringTag, { value: "Module" })), Dt = {}, It = { class: "container mx-auto mt-5" };
+function Tt(e, t) {
+ return h(), b("div", It, [
+ A(e.$slots, "default")
]);
}
-const Q = /* @__PURE__ */ u(H, [["render", K]]), U = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
+const Et = /* @__PURE__ */ U(Dt, [["render", Tt]]), Mt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
__proto__: null,
- default: Q
-}, Symbol.toStringTag, { value: "Module" })), W = {}, X = { class: "row" };
-function Y(e, o) {
- return s(), l("div", X, [
- a(e.$slots, "default")
+ default: Et
+}, Symbol.toStringTag, { value: "Module" })), jt = {}, Ct = { class: "row" };
+function At(e, t) {
+ return h(), b("div", Ct, [
+ A(e.$slots, "default")
]);
}
-const Z = /* @__PURE__ */ u(W, [["render", Y]]), ee = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
+const Nt = /* @__PURE__ */ U(jt, [["render", At]]), Ft = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
+ __proto__: null,
+ default: Nt
+}, Symbol.toStringTag, { value: "Module" }));
+let Vt = Symbol("headlessui.useid"), Rt = 0;
+function q() {
+ return z(Vt, () => `${++Rt}`)();
+}
+function y(e) {
+ var t;
+ if (e == null || e.value == null)
+ return null;
+ let n = (t = e.value.$el) != null ? t : e.value;
+ return n instanceof Node ? n : null;
+}
+function B(e, t, ...n) {
+ if (e in t) {
+ let l = t[e];
+ return typeof l == "function" ? l(...n) : l;
+ }
+ let a = new Error(`Tried to handle "${e}" but there is no handler defined. Only defined handlers are: ${Object.keys(t).map((l) => `"${l}"`).join(", ")}.`);
+ throw Error.captureStackTrace && Error.captureStackTrace(a, B), a;
+}
+var Bt = Object.defineProperty, Lt = (e, t, n) => t in e ? Bt(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n, de = (e, t, n) => (Lt(e, typeof t != "symbol" ? t + "" : t, n), n);
+let Ut = class {
+ constructor() {
+ de(this, "current", this.detect()), de(this, "currentId", 0);
+ }
+ set(t) {
+ this.current !== t && (this.currentId = 0, this.current = t);
+ }
+ reset() {
+ this.set(this.detect());
+ }
+ nextId() {
+ return ++this.currentId;
+ }
+ get isServer() {
+ return this.current === "server";
+ }
+ get isClient() {
+ return this.current === "client";
+ }
+ detect() {
+ return typeof window > "u" || typeof document > "u" ? "server" : "client";
+ }
+}, le = new Ut();
+function oe(e) {
+ if (le.isServer)
+ return null;
+ if (e instanceof Node)
+ return e.ownerDocument;
+ if (e != null && e.hasOwnProperty("value")) {
+ let t = y(e);
+ if (t)
+ return t.ownerDocument;
+ }
+ return document;
+}
+let te = ["[contentEditable=true]", "[tabindex]", "a[href]", "area[href]", "button:not([disabled])", "iframe", "input:not([disabled])", "select:not([disabled])", "textarea:not([disabled])"].map((e) => `${e}:not([tabindex='-1'])`).join(",");
+var ne = ((e) => (e[e.First = 1] = "First", e[e.Previous = 2] = "Previous", e[e.Next = 4] = "Next", e[e.Last = 8] = "Last", e[e.WrapAround = 16] = "WrapAround", e[e.NoScroll = 32] = "NoScroll", e))(ne || {}), Ht = ((e) => (e[e.Error = 0] = "Error", e[e.Overflow = 1] = "Overflow", e[e.Success = 2] = "Success", e[e.Underflow = 3] = "Underflow", e))(Ht || {}), qt = ((e) => (e[e.Previous = -1] = "Previous", e[e.Next = 1] = "Next", e))(qt || {});
+function _e(e = document.body) {
+ return e == null ? [] : Array.from(e.querySelectorAll(te)).sort((t, n) => Math.sign((t.tabIndex || Number.MAX_SAFE_INTEGER) - (n.tabIndex || Number.MAX_SAFE_INTEGER)));
+}
+var ae = ((e) => (e[e.Strict = 0] = "Strict", e[e.Loose = 1] = "Loose", e))(ae || {});
+function se(e, t = 0) {
+ var n;
+ return e === ((n = oe(e)) == null ? void 0 : n.body) ? !1 : B(t, { 0() {
+ return e.matches(te);
+ }, 1() {
+ let a = e;
+ for (; a !== null; ) {
+ if (a.matches(te))
+ return !0;
+ a = a.parentElement;
+ }
+ return !1;
+ } });
+}
+function be(e) {
+ let t = oe(e);
+ F(() => {
+ t && !se(t.activeElement, 0) && zt(e);
+ });
+}
+var Kt = ((e) => (e[e.Keyboard = 0] = "Keyboard", e[e.Mouse = 1] = "Mouse", e))(Kt || {});
+typeof window < "u" && typeof document < "u" && (document.addEventListener("keydown", (e) => {
+ e.metaKey || e.altKey || e.ctrlKey || (document.documentElement.dataset.headlessuiFocusVisible = "");
+}, !0), document.addEventListener("click", (e) => {
+ e.detail === 1 ? delete document.documentElement.dataset.headlessuiFocusVisible : e.detail === 0 && (document.documentElement.dataset.headlessuiFocusVisible = "");
+}, !0));
+function zt(e) {
+ e == null || e.focus({ preventScroll: !0 });
+}
+let Wt = ["textarea", "input"].join(",");
+function Gt(e) {
+ var t, n;
+ return (n = (t = e == null ? void 0 : e.matches) == null ? void 0 : t.call(e, Wt)) != null ? n : !1;
+}
+function ye(e, t = (n) => n) {
+ return e.slice().sort((n, a) => {
+ let l = t(n), o = t(a);
+ if (l === null || o === null)
+ return 0;
+ let r = l.compareDocumentPosition(o);
+ return r & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : r & Node.DOCUMENT_POSITION_PRECEDING ? 1 : 0;
+ });
+}
+function Qt(e, t) {
+ return Yt(_e(), t, { relativeTo: e });
+}
+function Yt(e, t, { sorted: n = !0, relativeTo: a = null, skipElements: l = [] } = {}) {
+ var o;
+ let r = (o = Array.isArray(e) ? e.length > 0 ? e[0].ownerDocument : document : e == null ? void 0 : e.ownerDocument) != null ? o : document, s = Array.isArray(e) ? n ? ye(e) : e : _e(e);
+ l.length > 0 && s.length > 1 && (s = s.filter((i) => !l.includes(i))), a = a ?? r.activeElement;
+ let f = (() => {
+ if (t & 5)
+ return 1;
+ if (t & 10)
+ return -1;
+ throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last");
+ })(), m = (() => {
+ if (t & 1)
+ return 0;
+ if (t & 2)
+ return Math.max(0, s.indexOf(a)) - 1;
+ if (t & 4)
+ return Math.max(0, s.indexOf(a)) + 1;
+ if (t & 8)
+ return s.length - 1;
+ throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last");
+ })(), g = t & 32 ? { preventScroll: !0 } : {}, v = 0, u = s.length, d;
+ do {
+ if (v >= u || v + u <= 0)
+ return 0;
+ let i = m + v;
+ if (t & 16)
+ i = (i + u) % u;
+ else {
+ if (i < 0)
+ return 3;
+ if (i >= u)
+ return 1;
+ }
+ d = s[i], d == null || d.focus(g), v += f;
+ } while (d !== r.activeElement);
+ return t & 6 && Gt(d) && d.select(), 2;
+}
+function Xt() {
+ return /iPhone/gi.test(window.navigator.platform) || /Mac/gi.test(window.navigator.platform) && window.navigator.maxTouchPoints > 0;
+}
+function Zt() {
+ return /Android/gi.test(window.navigator.userAgent);
+}
+function Jt() {
+ return Xt() || Zt();
+}
+function W(e, t, n) {
+ le.isServer || L((a) => {
+ document.addEventListener(e, t, n), a(() => document.removeEventListener(e, t, n));
+ });
+}
+function en(e, t, n) {
+ le.isServer || L((a) => {
+ window.addEventListener(e, t, n), a(() => window.removeEventListener(e, t, n));
+ });
+}
+function tn(e, t, n = D(() => !0)) {
+ function a(o, r) {
+ if (!n.value || o.defaultPrevented)
+ return;
+ let s = r(o);
+ if (s === null || !s.getRootNode().contains(s))
+ return;
+ let f = function m(g) {
+ return typeof g == "function" ? m(g()) : Array.isArray(g) || g instanceof Set ? g : [g];
+ }(e);
+ for (let m of f) {
+ if (m === null)
+ continue;
+ let g = m instanceof HTMLElement ? m : y(m);
+ if (g != null && g.contains(s) || o.composed && o.composedPath().includes(g))
+ return;
+ }
+ return !se(s, ae.Loose) && s.tabIndex !== -1 && o.preventDefault(), t(o, s);
+ }
+ let l = x(null);
+ W("pointerdown", (o) => {
+ var r, s;
+ n.value && (l.value = ((s = (r = o.composedPath) == null ? void 0 : r.call(o)) == null ? void 0 : s[0]) || o.target);
+ }, !0), W("mousedown", (o) => {
+ var r, s;
+ n.value && (l.value = ((s = (r = o.composedPath) == null ? void 0 : r.call(o)) == null ? void 0 : s[0]) || o.target);
+ }, !0), W("click", (o) => {
+ Jt() || l.value && (a(o, () => l.value), l.value = null);
+ }, !0), W("touchend", (o) => a(o, () => o.target instanceof HTMLElement ? o.target : null), !0), en("blur", (o) => a(o, () => window.document.activeElement instanceof HTMLIFrameElement ? window.document.activeElement : null), !0);
+}
+function fe(e, t) {
+ if (e)
+ return e;
+ let n = t ?? "button";
+ if (typeof n == "string" && n.toLowerCase() === "button")
+ return "button";
+}
+function xe(e, t) {
+ let n = x(fe(e.value.type, e.value.as));
+ return Y(() => {
+ n.value = fe(e.value.type, e.value.as);
+ }), L(() => {
+ var a;
+ n.value || y(t) && y(t) instanceof HTMLButtonElement && !((a = y(t)) != null && a.hasAttribute("type")) && (n.value = "button");
+ }), n;
+}
+function pe(e) {
+ return [e.screenX, e.screenY];
+}
+function nn() {
+ let e = x([-1, -1]);
+ return { wasMoved(t) {
+ let n = pe(t);
+ return e.value[0] === n[0] && e.value[1] === n[1] ? !1 : (e.value = n, !0);
+ }, update(t) {
+ e.value = pe(t);
+ } };
+}
+function rn({ container: e, accept: t, walk: n, enabled: a }) {
+ L(() => {
+ let l = e.value;
+ if (!l || a !== void 0 && !a.value)
+ return;
+ let o = oe(e);
+ if (!o)
+ return;
+ let r = Object.assign((f) => t(f), { acceptNode: t }), s = o.createTreeWalker(l, NodeFilter.SHOW_ELEMENT, r, !1);
+ for (; s.nextNode(); )
+ n(s.currentNode);
+ });
+}
+var K = ((e) => (e[e.None = 0] = "None", e[e.RenderStrategy = 1] = "RenderStrategy", e[e.Static = 2] = "Static", e))(K || {}), ln = ((e) => (e[e.Unmount = 0] = "Unmount", e[e.Hidden = 1] = "Hidden", e))(ln || {});
+function R({ visible: e = !0, features: t = 0, ourProps: n, theirProps: a, ...l }) {
+ var o;
+ let r = Se(a, n), s = Object.assign(l, { props: r });
+ if (e || t & 2 && r.static)
+ return J(s);
+ if (t & 1) {
+ let f = (o = r.unmount) == null || o ? 0 : 1;
+ return B(f, { 0() {
+ return null;
+ }, 1() {
+ return J({ ...l, props: { ...r, hidden: !0, style: { display: "none" } } });
+ } });
+ }
+ return J(s);
+}
+function J({ props: e, attrs: t, slots: n, slot: a, name: l }) {
+ var o, r;
+ let { as: s, ...f } = on(e, ["unmount", "static"]), m = (o = n.default) == null ? void 0 : o.call(n, a), g = {};
+ if (a) {
+ let v = !1, u = [];
+ for (let [d, i] of Object.entries(a))
+ typeof i == "boolean" && (v = !0), i === !0 && u.push(d);
+ v && (g["data-headlessui-state"] = u.join(" "));
+ }
+ if (s === "template") {
+ if (m = we(m ?? []), Object.keys(f).length > 0 || Object.keys(t).length > 0) {
+ let [v, ...u] = m ?? [];
+ if (!an(v) || u.length > 0)
+ throw new Error(['Passing props on "template"!', "", `The current component <${l} /> is rendering a "template".`, "However we need to passthrough the following props:", Object.keys(f).concat(Object.keys(t)).map((p) => p.trim()).filter((p, S, _) => _.indexOf(p) === S).sort((p, S) => p.localeCompare(S)).map((p) => ` - ${p}`).join(`
+`), "", "You can apply a few solutions:", ['Add an `as="..."` prop, to ensure that we render an actual element instead of a "template".', "Render a single element as the child so that we can forward the props onto that element."].map((p) => ` - ${p}`).join(`
+`)].join(`
+`));
+ let d = Se((r = v.props) != null ? r : {}, f, g), i = Fe(v, d, !0);
+ for (let p in d)
+ p.startsWith("on") && (i.props || (i.props = {}), i.props[p] = d[p]);
+ return i;
+ }
+ return Array.isArray(m) && m.length === 1 ? m[0] : m;
+ }
+ return Ve(s, Object.assign({}, f, g), { default: () => m });
+}
+function we(e) {
+ return e.flatMap((t) => t.type === I ? we(t.children) : [t]);
+}
+function Se(...e) {
+ if (e.length === 0)
+ return {};
+ if (e.length === 1)
+ return e[0];
+ let t = {}, n = {};
+ for (let a of e)
+ for (let l in a)
+ l.startsWith("on") && typeof a[l] == "function" ? (n[l] != null || (n[l] = []), n[l].push(a[l])) : t[l] = a[l];
+ if (t.disabled || t["aria-disabled"])
+ return Object.assign(t, Object.fromEntries(Object.keys(n).map((a) => [a, void 0])));
+ for (let a in n)
+ Object.assign(t, { [a](l, ...o) {
+ let r = n[a];
+ for (let s of r) {
+ if (l instanceof Event && l.defaultPrevented)
+ return;
+ s(l, ...o);
+ }
+ } });
+ return t;
+}
+function on(e, t = []) {
+ let n = Object.assign({}, e);
+ for (let a of t)
+ a in n && delete n[a];
+ return n;
+}
+function an(e) {
+ return e == null ? !1 : typeof e.type == "string" || typeof e.type == "object" || typeof e.type == "function";
+}
+let $e = Symbol("Context");
+var T = ((e) => (e[e.Open = 1] = "Open", e[e.Closed = 2] = "Closed", e[e.Closing = 4] = "Closing", e[e.Opening = 8] = "Opening", e))(T || {});
+function ke() {
+ return z($e, null);
+}
+function Oe(e) {
+ X($e, e);
+}
+var w = ((e) => (e.Space = " ", e.Enter = "Enter", e.Escape = "Escape", e.Backspace = "Backspace", e.Delete = "Delete", e.ArrowLeft = "ArrowLeft", e.ArrowUp = "ArrowUp", e.ArrowRight = "ArrowRight", e.ArrowDown = "ArrowDown", e.Home = "Home", e.End = "End", e.PageUp = "PageUp", e.PageDown = "PageDown", e.Tab = "Tab", e))(w || {});
+function sn(e) {
+ throw new Error("Unexpected object: " + e);
+}
+var P = ((e) => (e[e.First = 0] = "First", e[e.Previous = 1] = "Previous", e[e.Next = 2] = "Next", e[e.Last = 3] = "Last", e[e.Specific = 4] = "Specific", e[e.Nothing = 5] = "Nothing", e))(P || {});
+function un(e, t) {
+ let n = t.resolveItems();
+ if (n.length <= 0)
+ return null;
+ let a = t.resolveActiveIndex(), l = a ?? -1;
+ switch (e.focus) {
+ case 0: {
+ for (let o = 0; o < n.length; ++o)
+ if (!t.resolveDisabled(n[o], o, n))
+ return o;
+ return a;
+ }
+ case 1: {
+ l === -1 && (l = n.length);
+ for (let o = l - 1; o >= 0; --o)
+ if (!t.resolveDisabled(n[o], o, n))
+ return o;
+ return a;
+ }
+ case 2: {
+ for (let o = l + 1; o < n.length; ++o)
+ if (!t.resolveDisabled(n[o], o, n))
+ return o;
+ return a;
+ }
+ case 3: {
+ for (let o = n.length - 1; o >= 0; --o)
+ if (!t.resolveDisabled(n[o], o, n))
+ return o;
+ return a;
+ }
+ case 4: {
+ for (let o = 0; o < n.length; ++o)
+ if (t.resolveId(n[o], o, n) === e.id)
+ return o;
+ return a;
+ }
+ case 5:
+ return null;
+ default:
+ sn(e);
+ }
+}
+var cn = ((e) => (e[e.Open = 0] = "Open", e[e.Closed = 1] = "Closed", e))(cn || {});
+let Pe = Symbol("DisclosureContext");
+function ue(e) {
+ let t = z(Pe, null);
+ if (t === null) {
+ let n = new Error(`<${e} /> is missing a parent component.`);
+ throw Error.captureStackTrace && Error.captureStackTrace(n, ue), n;
+ }
+ return t;
+}
+let De = Symbol("DisclosurePanelContext");
+function dn() {
+ return z(De, null);
+}
+let fn = V({ name: "Disclosure", props: { as: { type: [Object, String], default: "template" }, defaultOpen: { type: [Boolean], default: !1 } }, setup(e, { slots: t, attrs: n }) {
+ let a = x(e.defaultOpen ? 0 : 1), l = x(null), o = x(null), r = { buttonId: x(`headlessui-disclosure-button-${q()}`), panelId: x(`headlessui-disclosure-panel-${q()}`), disclosureState: a, panel: l, button: o, toggleDisclosure() {
+ a.value = B(a.value, { 0: 1, 1: 0 });
+ }, closeDisclosure() {
+ a.value !== 1 && (a.value = 1);
+ }, close(s) {
+ r.closeDisclosure();
+ let f = s ? s instanceof HTMLElement ? s : s.value instanceof HTMLElement ? y(s) : y(r.button) : y(r.button);
+ f == null || f.focus();
+ } };
+ return X(Pe, r), Oe(D(() => B(a.value, { 0: T.Open, 1: T.Closed }))), () => {
+ let { defaultOpen: s, ...f } = e, m = { open: a.value === 0, close: r.close };
+ return R({ theirProps: f, ourProps: {}, slot: m, slots: t, attrs: n, name: "Disclosure" });
+ };
+} }), ee = V({ name: "DisclosureButton", props: { as: { type: [Object, String], default: "button" }, disabled: { type: [Boolean], default: !1 }, id: { type: String, default: null } }, setup(e, { attrs: t, slots: n, expose: a }) {
+ let l = ue("DisclosureButton"), o = dn(), r = D(() => o === null ? !1 : o.value === l.panelId.value);
+ Y(() => {
+ r.value || e.id !== null && (l.buttonId.value = e.id);
+ }), re(() => {
+ r.value || (l.buttonId.value = null);
+ });
+ let s = x(null);
+ a({ el: s, $el: s }), r.value || L(() => {
+ l.button.value = s.value;
+ });
+ let f = xe(D(() => ({ as: e.as, type: t.type })), s);
+ function m() {
+ var u;
+ e.disabled || (r.value ? (l.toggleDisclosure(), (u = y(l.button)) == null || u.focus()) : l.toggleDisclosure());
+ }
+ function g(u) {
+ var d;
+ if (!e.disabled)
+ if (r.value)
+ switch (u.key) {
+ case w.Space:
+ case w.Enter:
+ u.preventDefault(), u.stopPropagation(), l.toggleDisclosure(), (d = y(l.button)) == null || d.focus();
+ break;
+ }
+ else
+ switch (u.key) {
+ case w.Space:
+ case w.Enter:
+ u.preventDefault(), u.stopPropagation(), l.toggleDisclosure();
+ break;
+ }
+ }
+ function v(u) {
+ switch (u.key) {
+ case w.Space:
+ u.preventDefault();
+ break;
+ }
+ }
+ return () => {
+ var u;
+ let d = { open: l.disclosureState.value === 0 }, { id: i, ...p } = e, S = r.value ? { ref: s, type: f.value, onClick: m, onKeydown: g } : { id: (u = l.buttonId.value) != null ? u : i, ref: s, type: f.value, "aria-expanded": l.disclosureState.value === 0, "aria-controls": l.disclosureState.value === 0 || y(l.panel) ? l.panelId.value : void 0, disabled: e.disabled ? !0 : void 0, onClick: m, onKeydown: g, onKeyup: v };
+ return R({ ourProps: S, theirProps: p, slot: d, attrs: t, slots: n, name: "DisclosureButton" });
+ };
+} }), pn = V({ name: "DisclosurePanel", props: { as: { type: [Object, String], default: "div" }, static: { type: Boolean, default: !1 }, unmount: { type: Boolean, default: !0 }, id: { type: String, default: null } }, setup(e, { attrs: t, slots: n, expose: a }) {
+ let l = ue("DisclosurePanel");
+ Y(() => {
+ e.id !== null && (l.panelId.value = e.id);
+ }), re(() => {
+ l.panelId.value = null;
+ }), a({ el: l.panel, $el: l.panel }), X(De, l.panelId);
+ let o = ke(), r = D(() => o !== null ? (o.value & T.Open) === T.Open : l.disclosureState.value === 0);
+ return () => {
+ var s;
+ let f = { open: l.disclosureState.value === 0, close: l.close }, { id: m, ...g } = e, v = { id: (s = l.panelId.value) != null ? s : m, ref: l.panel };
+ return R({ ourProps: v, theirProps: g, slot: f, attrs: t, slots: n, features: K.RenderStrategy | K.Static, visible: r.value, name: "DisclosurePanel" });
+ };
+} }), me = /([\u2700-\u27BF]|[\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDFFF]|[\u2011-\u26FF]|\uD83E[\uDD10-\uDDFF])/g;
+function ve(e) {
+ var t, n;
+ let a = (t = e.innerText) != null ? t : "", l = e.cloneNode(!0);
+ if (!(l instanceof HTMLElement))
+ return a;
+ let o = !1;
+ for (let s of l.querySelectorAll('[hidden],[aria-hidden],[role="img"]'))
+ s.remove(), o = !0;
+ let r = o ? (n = l.innerText) != null ? n : "" : a;
+ return me.test(r) && (r = r.replace(me, "")), r;
+}
+function mn(e) {
+ let t = e.getAttribute("aria-label");
+ if (typeof t == "string")
+ return t.trim();
+ let n = e.getAttribute("aria-labelledby");
+ if (n) {
+ let a = n.split(" ").map((l) => {
+ let o = document.getElementById(l);
+ if (o) {
+ let r = o.getAttribute("aria-label");
+ return typeof r == "string" ? r.trim() : ve(o).trim();
+ }
+ return null;
+ }).filter(Boolean);
+ if (a.length > 0)
+ return a.join(", ");
+ }
+ return ve(e).trim();
+}
+function vn(e) {
+ let t = x(""), n = x("");
+ return () => {
+ let a = y(e);
+ if (!a)
+ return "";
+ let l = a.innerText;
+ if (t.value === l)
+ return n.value;
+ let o = mn(a).trim().toLowerCase();
+ return t.value = l, n.value = o, o;
+ };
+}
+var hn = ((e) => (e[e.Open = 0] = "Open", e[e.Closed = 1] = "Closed", e))(hn || {}), gn = ((e) => (e[e.Pointer = 0] = "Pointer", e[e.Other = 1] = "Other", e))(gn || {});
+function _n(e) {
+ requestAnimationFrame(() => requestAnimationFrame(e));
+}
+let Ie = Symbol("MenuContext");
+function Z(e) {
+ let t = z(Ie, null);
+ if (t === null) {
+ let n = new Error(`<${e} /> is missing a parent
component.`);
+ throw Error.captureStackTrace && Error.captureStackTrace(n, Z), n;
+ }
+ return t;
+}
+let bn = V({ name: "Menu", props: { as: { type: [Object, String], default: "template" } }, setup(e, { slots: t, attrs: n }) {
+ let a = x(1), l = x(null), o = x(null), r = x([]), s = x(""), f = x(null), m = x(1);
+ function g(u = (d) => d) {
+ let d = f.value !== null ? r.value[f.value] : null, i = ye(u(r.value.slice()), (S) => y(S.dataRef.domRef)), p = d ? i.indexOf(d) : null;
+ return p === -1 && (p = null), { items: i, activeItemIndex: p };
+ }
+ let v = { menuState: a, buttonRef: l, itemsRef: o, items: r, searchQuery: s, activeItemIndex: f, activationTrigger: m, closeMenu: () => {
+ a.value = 1, f.value = null;
+ }, openMenu: () => a.value = 0, goToItem(u, d, i) {
+ let p = g(), S = un(u === P.Specific ? { focus: P.Specific, id: d } : { focus: u }, { resolveItems: () => p.items, resolveActiveIndex: () => p.activeItemIndex, resolveId: (_) => _.id, resolveDisabled: (_) => _.dataRef.disabled });
+ s.value = "", f.value = S, m.value = i ?? 1, r.value = p.items;
+ }, search(u) {
+ let d = s.value !== "" ? 0 : 1;
+ s.value += u.toLowerCase();
+ let i = (f.value !== null ? r.value.slice(f.value + d).concat(r.value.slice(0, f.value + d)) : r.value).find((S) => S.dataRef.textValue.startsWith(s.value) && !S.dataRef.disabled), p = i ? r.value.indexOf(i) : -1;
+ p === -1 || p === f.value || (f.value = p, m.value = 1);
+ }, clearSearch() {
+ s.value = "";
+ }, registerItem(u, d) {
+ let i = g((p) => [...p, { id: u, dataRef: d }]);
+ r.value = i.items, f.value = i.activeItemIndex, m.value = 1;
+ }, unregisterItem(u) {
+ let d = g((i) => {
+ let p = i.findIndex((S) => S.id === u);
+ return p !== -1 && i.splice(p, 1), i;
+ });
+ r.value = d.items, f.value = d.activeItemIndex, m.value = 1;
+ } };
+ return tn([l, o], (u, d) => {
+ var i;
+ v.closeMenu(), se(d, ae.Loose) || (u.preventDefault(), (i = y(l)) == null || i.focus());
+ }, D(() => a.value === 0)), X(Ie, v), Oe(D(() => B(a.value, { 0: T.Open, 1: T.Closed }))), () => {
+ let u = { open: a.value === 0, close: v.closeMenu };
+ return R({ ourProps: {}, theirProps: e, slot: u, slots: t, attrs: n, name: "Menu" });
+ };
+} }), yn = V({ name: "MenuButton", props: { disabled: { type: Boolean, default: !1 }, as: { type: [Object, String], default: "button" }, id: { type: String, default: null } }, setup(e, { attrs: t, slots: n, expose: a }) {
+ var l;
+ let o = (l = e.id) != null ? l : `headlessui-menu-button-${q()}`, r = Z("MenuButton");
+ a({ el: r.buttonRef, $el: r.buttonRef });
+ function s(v) {
+ switch (v.key) {
+ case w.Space:
+ case w.Enter:
+ case w.ArrowDown:
+ v.preventDefault(), v.stopPropagation(), r.openMenu(), F(() => {
+ var u;
+ (u = y(r.itemsRef)) == null || u.focus({ preventScroll: !0 }), r.goToItem(P.First);
+ });
+ break;
+ case w.ArrowUp:
+ v.preventDefault(), v.stopPropagation(), r.openMenu(), F(() => {
+ var u;
+ (u = y(r.itemsRef)) == null || u.focus({ preventScroll: !0 }), r.goToItem(P.Last);
+ });
+ break;
+ }
+ }
+ function f(v) {
+ switch (v.key) {
+ case w.Space:
+ v.preventDefault();
+ break;
+ }
+ }
+ function m(v) {
+ e.disabled || (r.menuState.value === 0 ? (r.closeMenu(), F(() => {
+ var u;
+ return (u = y(r.buttonRef)) == null ? void 0 : u.focus({ preventScroll: !0 });
+ })) : (v.preventDefault(), r.openMenu(), _n(() => {
+ var u;
+ return (u = y(r.itemsRef)) == null ? void 0 : u.focus({ preventScroll: !0 });
+ })));
+ }
+ let g = xe(D(() => ({ as: e.as, type: t.type })), r.buttonRef);
+ return () => {
+ var v;
+ let u = { open: r.menuState.value === 0 }, { ...d } = e, i = { ref: r.buttonRef, id: o, type: g.value, "aria-haspopup": "menu", "aria-controls": (v = y(r.itemsRef)) == null ? void 0 : v.id, "aria-expanded": r.menuState.value === 0, onKeydown: s, onKeyup: f, onClick: m };
+ return R({ ourProps: i, theirProps: d, slot: u, attrs: t, slots: n, name: "MenuButton" });
+ };
+} }), xn = V({ name: "MenuItems", props: { as: { type: [Object, String], default: "div" }, static: { type: Boolean, default: !1 }, unmount: { type: Boolean, default: !0 }, id: { type: String, default: null } }, setup(e, { attrs: t, slots: n, expose: a }) {
+ var l;
+ let o = (l = e.id) != null ? l : `headlessui-menu-items-${q()}`, r = Z("MenuItems"), s = x(null);
+ a({ el: r.itemsRef, $el: r.itemsRef }), rn({ container: D(() => y(r.itemsRef)), enabled: D(() => r.menuState.value === 0), accept(u) {
+ return u.getAttribute("role") === "menuitem" ? NodeFilter.FILTER_REJECT : u.hasAttribute("role") ? NodeFilter.FILTER_SKIP : NodeFilter.FILTER_ACCEPT;
+ }, walk(u) {
+ u.setAttribute("role", "none");
+ } });
+ function f(u) {
+ var d;
+ switch (s.value && clearTimeout(s.value), u.key) {
+ case w.Space:
+ if (r.searchQuery.value !== "")
+ return u.preventDefault(), u.stopPropagation(), r.search(u.key);
+ case w.Enter:
+ if (u.preventDefault(), u.stopPropagation(), r.activeItemIndex.value !== null) {
+ let i = r.items.value[r.activeItemIndex.value];
+ (d = y(i.dataRef.domRef)) == null || d.click();
+ }
+ r.closeMenu(), be(y(r.buttonRef));
+ break;
+ case w.ArrowDown:
+ return u.preventDefault(), u.stopPropagation(), r.goToItem(P.Next);
+ case w.ArrowUp:
+ return u.preventDefault(), u.stopPropagation(), r.goToItem(P.Previous);
+ case w.Home:
+ case w.PageUp:
+ return u.preventDefault(), u.stopPropagation(), r.goToItem(P.First);
+ case w.End:
+ case w.PageDown:
+ return u.preventDefault(), u.stopPropagation(), r.goToItem(P.Last);
+ case w.Escape:
+ u.preventDefault(), u.stopPropagation(), r.closeMenu(), F(() => {
+ var i;
+ return (i = y(r.buttonRef)) == null ? void 0 : i.focus({ preventScroll: !0 });
+ });
+ break;
+ case w.Tab:
+ u.preventDefault(), u.stopPropagation(), r.closeMenu(), F(() => Qt(y(r.buttonRef), u.shiftKey ? ne.Previous : ne.Next));
+ break;
+ default:
+ u.key.length === 1 && (r.search(u.key), s.value = setTimeout(() => r.clearSearch(), 350));
+ break;
+ }
+ }
+ function m(u) {
+ switch (u.key) {
+ case w.Space:
+ u.preventDefault();
+ break;
+ }
+ }
+ let g = ke(), v = D(() => g !== null ? (g.value & T.Open) === T.Open : r.menuState.value === 0);
+ return () => {
+ var u, d;
+ let i = { open: r.menuState.value === 0 }, { ...p } = e, S = { "aria-activedescendant": r.activeItemIndex.value === null || (u = r.items.value[r.activeItemIndex.value]) == null ? void 0 : u.id, "aria-labelledby": (d = y(r.buttonRef)) == null ? void 0 : d.id, id: o, onKeydown: f, onKeyup: m, role: "menu", tabIndex: 0, ref: r.itemsRef };
+ return R({ ourProps: S, theirProps: p, slot: i, attrs: t, slots: n, features: K.RenderStrategy | K.Static, visible: v.value, name: "MenuItems" });
+ };
+} }), wn = V({ name: "MenuItem", inheritAttrs: !1, props: { as: { type: [Object, String], default: "template" }, disabled: { type: Boolean, default: !1 }, id: { type: String, default: null } }, setup(e, { slots: t, attrs: n, expose: a }) {
+ var l;
+ let o = (l = e.id) != null ? l : `headlessui-menu-item-${q()}`, r = Z("MenuItem"), s = x(null);
+ a({ el: s, $el: s });
+ let f = D(() => r.activeItemIndex.value !== null ? r.items.value[r.activeItemIndex.value].id === o : !1), m = vn(s), g = D(() => ({ disabled: e.disabled, get textValue() {
+ return m();
+ }, domRef: s }));
+ Y(() => r.registerItem(o, g)), re(() => r.unregisterItem(o)), L(() => {
+ r.menuState.value === 0 && f.value && r.activationTrigger.value !== 0 && F(() => {
+ var _, E;
+ return (E = (_ = y(s)) == null ? void 0 : _.scrollIntoView) == null ? void 0 : E.call(_, { block: "nearest" });
+ });
+ });
+ function v(_) {
+ if (e.disabled)
+ return _.preventDefault();
+ r.closeMenu(), be(y(r.buttonRef));
+ }
+ function u() {
+ if (e.disabled)
+ return r.goToItem(P.Nothing);
+ r.goToItem(P.Specific, o);
+ }
+ let d = nn();
+ function i(_) {
+ d.update(_);
+ }
+ function p(_) {
+ d.wasMoved(_) && (e.disabled || f.value || r.goToItem(P.Specific, o, 0));
+ }
+ function S(_) {
+ d.wasMoved(_) && (e.disabled || f.value && r.goToItem(P.Nothing));
+ }
+ return () => {
+ let { disabled: _, ...E } = e, H = { active: f.value, disabled: _, close: r.closeMenu };
+ return R({ ourProps: { id: o, ref: s, role: "menuitem", tabIndex: _ === !0 ? void 0 : -1, "aria-disabled": _ === !0 ? !0 : void 0, onClick: v, onFocus: u, onPointerenter: i, onMouseenter: i, onPointermove: p, onMousemove: p, onPointerleave: S, onMouseleave: S }, theirProps: { ...n, ...E }, slot: H, attrs: n, slots: t, name: "MenuItem" });
+ };
+} });
+function Sn(e, t) {
+ return h(), b("svg", {
+ xmlns: "http://www.w3.org/2000/svg",
+ fill: "none",
+ viewBox: "0 0 24 24",
+ "stroke-width": "1.5",
+ stroke: "currentColor",
+ "aria-hidden": "true",
+ "data-slot": "icon"
+ }, [
+ c("path", {
+ "stroke-linecap": "round",
+ "stroke-linejoin": "round",
+ d: "M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5"
+ })
+ ]);
+}
+function he(e, t) {
+ return h(), b("svg", {
+ xmlns: "http://www.w3.org/2000/svg",
+ fill: "none",
+ viewBox: "0 0 24 24",
+ "stroke-width": "1.5",
+ stroke: "currentColor",
+ "aria-hidden": "true",
+ "data-slot": "icon"
+ }, [
+ c("path", {
+ "stroke-linecap": "round",
+ "stroke-linejoin": "round",
+ d: "M14.857 17.082a23.848 23.848 0 0 0 5.454-1.31A8.967 8.967 0 0 1 18 9.75V9A6 6 0 0 0 6 9v.75a8.967 8.967 0 0 1-2.312 6.022c1.733.64 3.56 1.085 5.455 1.31m5.714 0a24.255 24.255 0 0 1-5.714 0m5.714 0a3 3 0 1 1-5.714 0"
+ })
+ ]);
+}
+function $n(e, t) {
+ return h(), b("svg", {
+ xmlns: "http://www.w3.org/2000/svg",
+ fill: "none",
+ viewBox: "0 0 24 24",
+ "stroke-width": "1.5",
+ stroke: "currentColor",
+ "aria-hidden": "true",
+ "data-slot": "icon"
+ }, [
+ c("path", {
+ "stroke-linecap": "round",
+ "stroke-linejoin": "round",
+ d: "M6 18 18 6M6 6l12 12"
+ })
+ ]);
+}
+const kn = { class: "min-h-full" }, On = { class: "bg-gray-800 pb-32" }, Pn = { class: "mx-auto max-w-7xl sm:px-6 lg:px-8" }, Dn = { class: "border-b border-gray-700" }, In = { class: "flex h-16 items-center justify-between px-4 sm:px-0" }, Tn = { class: "flex items-center" }, En = /* @__PURE__ */ c("div", { class: "flex-shrink-0" }, [
+ /* @__PURE__ */ c("img", {
+ class: "h-8 w-8",
+ src: "https://tailwindui.com/img/logos/mark.svg?color=indigo&shade=500",
+ alt: "Your Company"
+ })
+], -1), Mn = { class: "hidden md:block" }, jn = { class: "ml-10 flex items-baseline space-x-4" }, Cn = ["href", "aria-current"], An = { class: "hidden md:block" }, Nn = { class: "ml-4 flex items-center md:ml-6" }, Fn = {
+ type: "button",
+ class: "relative rounded-full bg-gray-800 p-1 text-gray-400 hover:text-white focus:outline-none focus:ring-2 focus:ring-white focus:ring-offset-2 focus:ring-offset-gray-800"
+}, Vn = /* @__PURE__ */ c("span", { class: "absolute -inset-1.5" }, null, -1), Rn = /* @__PURE__ */ c("span", { class: "sr-only" }, "View notifications", -1), Bn = /* @__PURE__ */ c("span", { class: "absolute -inset-1.5" }, null, -1), Ln = /* @__PURE__ */ c("span", { class: "sr-only" }, "Open user menu", -1), Un = ["src"], Hn = ["href"], qn = { class: "-mr-2 flex md:hidden" }, Kn = /* @__PURE__ */ c("span", { class: "absolute -inset-0.5" }, null, -1), zn = /* @__PURE__ */ c("span", { class: "sr-only" }, "Open main menu", -1), Wn = { class: "space-y-1 px-2 py-3 sm:px-3" }, Gn = { class: "border-t border-gray-700 pb-3 pt-4" }, Qn = { class: "flex items-center px-5" }, Yn = { class: "flex-shrink-0" }, Xn = ["src"], Zn = { class: "ml-3" }, Jn = { class: "text-base font-medium leading-none text-white" }, er = { class: "text-sm font-medium leading-none text-gray-400" }, tr = {
+ type: "button",
+ class: "relative ml-auto flex-shrink-0 rounded-full bg-gray-800 p-1 text-gray-400 hover:text-white focus:outline-none focus:ring-2 focus:ring-white focus:ring-offset-2 focus:ring-offset-gray-800"
+}, nr = /* @__PURE__ */ c("span", { class: "absolute -inset-1.5" }, null, -1), rr = /* @__PURE__ */ c("span", { class: "sr-only" }, "View notifications", -1), lr = { class: "mt-3 space-y-1 px-2" }, or = /* @__PURE__ */ c("header", { class: "py-10" }, [
+ /* @__PURE__ */ c("div", { class: "mx-auto max-w-7xl px-4 sm:px-6 lg:px-8" }, [
+ /* @__PURE__ */ c("h1", { class: "text-3xl font-bold tracking-tight text-white" }, "Dashboard")
+ ])
+], -1), ar = { class: "-mt-32" }, sr = { class: "mx-auto max-w-7xl px-4 pb-12 sm:px-6 lg:px-8" }, ur = { class: "rounded-lg bg-white px-5 py-6 shadow sm:px-6" }, ir = {
+ __name: "Template",
+ setup(e) {
+ const t = {
+ name: "Tom Cook",
+ email: "tom@example.com",
+ imageUrl: "https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80"
+ }, n = [
+ { name: "Dashboard", href: "#", current: !0 },
+ { name: "Team", href: "#", current: !1 },
+ { name: "Projects", href: "#", current: !1 },
+ { name: "Calendar", href: "#", current: !1 },
+ { name: "Reports", href: "#", current: !1 }
+ ], a = [
+ { name: "Your Profile", href: "#" },
+ { name: "Settings", href: "#" },
+ { name: "Sign out", href: "#" }
+ ];
+ return (l, o) => (h(), b("div", kn, [
+ c("div", On, [
+ k($(fn), {
+ as: "nav",
+ class: "bg-gray-800"
+ }, {
+ default: O(({ open: r }) => [
+ c("div", Pn, [
+ c("div", Dn, [
+ c("div", In, [
+ c("div", Tn, [
+ En,
+ c("div", Mn, [
+ c("div", jn, [
+ (h(), b(I, null, j(n, (s) => c("a", {
+ key: s.name,
+ href: s.href,
+ class: N([s.current ? "bg-gray-900 text-white" : "text-gray-300 hover:bg-gray-700 hover:text-white", "rounded-md px-3 py-2 text-sm font-medium"]),
+ "aria-current": s.current ? "page" : void 0
+ }, M(s.name), 11, Cn)), 64))
+ ])
+ ])
+ ]),
+ c("div", An, [
+ c("div", Nn, [
+ c("button", Fn, [
+ Vn,
+ Rn,
+ k($(he), {
+ class: "h-6 w-6",
+ "aria-hidden": "true"
+ })
+ ]),
+ k($(bn), {
+ as: "div",
+ class: "relative ml-3"
+ }, {
+ default: O(() => [
+ c("div", null, [
+ k($(yn), { class: "relative flex max-w-xs items-center rounded-full bg-gray-800 text-sm focus:outline-none focus:ring-2 focus:ring-white focus:ring-offset-2 focus:ring-offset-gray-800" }, {
+ default: O(() => [
+ Bn,
+ Ln,
+ c("img", {
+ class: "h-8 w-8 rounded-full",
+ src: t.imageUrl,
+ alt: ""
+ }, null, 8, Un)
+ ]),
+ _: 1
+ })
+ ]),
+ k(Re, {
+ "enter-active-class": "transition ease-out duration-100",
+ "enter-from-class": "transform opacity-0 scale-95",
+ "enter-to-class": "transform opacity-100 scale-100",
+ "leave-active-class": "transition ease-in duration-75",
+ "leave-from-class": "transform opacity-100 scale-100",
+ "leave-to-class": "transform opacity-0 scale-95"
+ }, {
+ default: O(() => [
+ k($(xn), { class: "absolute right-0 z-10 mt-2 w-48 origin-top-right rounded-md bg-white py-1 shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none" }, {
+ default: O(() => [
+ (h(), b(I, null, j(a, (s) => k($(wn), {
+ key: s.name
+ }, {
+ default: O(({ active: f }) => [
+ c("a", {
+ href: s.href,
+ class: N([f ? "bg-gray-100" : "", "block px-4 py-2 text-sm text-gray-700"])
+ }, M(s.name), 11, Hn)
+ ]),
+ _: 2
+ }, 1024)), 64))
+ ]),
+ _: 1
+ })
+ ]),
+ _: 1
+ })
+ ]),
+ _: 1
+ })
+ ])
+ ]),
+ c("div", qn, [
+ k($(ee), { class: "relative inline-flex items-center justify-center rounded-md bg-gray-800 p-2 text-gray-400 hover:bg-gray-700 hover:text-white focus:outline-none focus:ring-2 focus:ring-white focus:ring-offset-2 focus:ring-offset-gray-800" }, {
+ default: O(() => [
+ Kn,
+ zn,
+ r ? (h(), C($($n), {
+ key: 1,
+ class: "block h-6 w-6",
+ "aria-hidden": "true"
+ })) : (h(), C($(Sn), {
+ key: 0,
+ class: "block h-6 w-6",
+ "aria-hidden": "true"
+ }))
+ ]),
+ _: 2
+ }, 1024)
+ ])
+ ])
+ ])
+ ]),
+ k($(pn), { class: "border-b border-gray-700 md:hidden" }, {
+ default: O(() => [
+ c("div", Wn, [
+ (h(), b(I, null, j(n, (s) => k($(ee), {
+ key: s.name,
+ as: "a",
+ href: s.href,
+ class: N([s.current ? "bg-gray-900 text-white" : "text-gray-300 hover:bg-gray-700 hover:text-white", "block rounded-md px-3 py-2 text-base font-medium"]),
+ "aria-current": s.current ? "page" : void 0
+ }, {
+ default: O(() => [
+ ce(M(s.name), 1)
+ ]),
+ _: 2
+ }, 1032, ["href", "class", "aria-current"])), 64))
+ ]),
+ c("div", Gn, [
+ c("div", Qn, [
+ c("div", Yn, [
+ c("img", {
+ class: "h-10 w-10 rounded-full",
+ src: t.imageUrl,
+ alt: ""
+ }, null, 8, Xn)
+ ]),
+ c("div", Zn, [
+ c("div", Jn, M(t.name), 1),
+ c("div", er, M(t.email), 1)
+ ]),
+ c("button", tr, [
+ nr,
+ rr,
+ k($(he), {
+ class: "h-6 w-6",
+ "aria-hidden": "true"
+ })
+ ])
+ ]),
+ c("div", lr, [
+ (h(), b(I, null, j(a, (s) => k($(ee), {
+ key: s.name,
+ as: "a",
+ href: s.href,
+ class: "block rounded-md px-3 py-2 text-base font-medium text-gray-400 hover:bg-gray-700 hover:text-white"
+ }, {
+ default: O(() => [
+ ce(M(s.name), 1)
+ ]),
+ _: 2
+ }, 1032, ["href"])), 64))
+ ])
+ ])
+ ]),
+ _: 1
+ })
+ ]),
+ _: 1
+ }),
+ or
+ ]),
+ c("main", ar, [
+ c("div", sr, [
+ c("div", ur, [
+ A(l.$slots, "default")
+ ])
+ ])
+ ])
+ ]));
+ }
+}, cr = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
+ __proto__: null,
+ default: ir
+}, Symbol.toStringTag, { value: "Module" })), dr = ge({
+ item: null,
+ index: null,
+ parent: null
+});
+function fr() {
+ return {
+ dragged: dr
+ };
+}
+const pr = { key: 0 }, mr = /* @__PURE__ */ c("li", null, [
+ /* @__PURE__ */ c("div", { class: "tree-placeholder" })
+], -1), vr = [
+ mr
+], Te = {
+ __name: "TreeContent",
+ props: {
+ index: Number,
+ parent: Object,
+ modelValue: Object
+ },
+ setup(e) {
+ const { dragged: t } = fr(), n = e, a = x(!1), l = x(!1), o = x(!0), r = ge({
+ sortkey: n.index,
+ sortOrder: "asc"
+ }), s = (d) => {
+ o.value = !1, t.item = n.modelValue, t.index = n.index, t.parent = n.parent, d.dataTransfer.effectAllowed = "move";
+ }, f = () => {
+ l.value = !1;
+ }, m = () => {
+ a.value = !1;
+ }, g = (d) => {
+ d.preventDefault(), d.dataTransfer.dropEffect = "move", l.value = !0;
+ }, v = () => {
+ event.preventDefault(), event.dataTransfer.dropEffect = "move", a.value = !0;
+ }, u = (d, i, p) => {
+ d.preventDefault(), a.value = !1, l.value = !1, i !== t.item && (o.value = !0, Object.keys(t.parent).includes("children") && t.parent.children.splice(t.index, 1), Array.isArray(t.parent) && t.parent.splice(t.index, 1), Array.isArray(i) ? i.splice(p, 0, t.item) : (Object.keys(i).includes("children") || (i.children = []), i.children.splice(p, 0, t.item)), t.item = null, t.parent = null, t.index = null);
+ };
+ return (d, i) => {
+ const p = G("font-awesome-icon"), S = G("TreeContent", !0);
+ return h(), b("li", {
+ class: N([
+ $(t).item === n.modelValue ? "selected" : "",
+ n.modelValue.children && n.modelValue.children.length ? "has-child" : ""
+ ])
+ }, [
+ c("div", {
+ class: N(["tree-content", a.value ? "hovered" : ""]),
+ onDragstart: i[7] || (i[7] = (_) => s(_))
+ }, [
+ c("div", {
+ draggable: "true",
+ onDragover: i[1] || (i[1] = (_) => v()),
+ onDrop: i[2] || (i[2] = (_) => u(_, n.parent, n.index)),
+ style: { width: "8px" },
+ onDragleave: i[3] || (i[3] = (_) => m())
+ }, [
+ c("button", {
+ style: { "margin-left": "-8px" },
+ class: N({
+ hide: !(n.modelValue.children && n.modelValue.children.length)
+ }),
+ onClick: i[0] || (i[0] = () => o.value = !o.value)
+ }, [
+ o.value ? (h(), C(p, {
+ key: 0,
+ icon: ["fas", "square-minus"]
+ })) : (h(), C(p, {
+ key: 1,
+ icon: ["fas", "square-plus"]
+ }))
+ ], 2)
+ ], 32),
+ c("div", {
+ class: "tree-item",
+ draggable: "true",
+ onDragleave: i[4] || (i[4] = (_) => f()),
+ onDragover: i[5] || (i[5] = (_) => g(_)),
+ onDrop: i[6] || (i[6] = (_) => u(_, n.modelValue, 0))
+ }, [
+ A(d.$slots, "default", {
+ element: n.modelValue,
+ parent: n.parent,
+ stats: r
+ })
+ ], 32)
+ ], 34),
+ l.value ? (h(), b("ul", pr, vr)) : Q("", !0),
+ o.value ? (h(!0), b(I, { key: 1 }, j(n.modelValue.children, (_, E) => (h(), b("ul", null, [
+ k(S, {
+ modelValue: n.modelValue.children[E],
+ "onUpdate:modelValue": (H) => n.modelValue.children[E] = H,
+ parent: n.modelValue,
+ index: E
+ }, {
+ default: O(({ element: H, parent: Ee, stats: Me }) => [
+ A(d.$slots, "default", {
+ element: H,
+ parent: Ee,
+ stats: Me
+ })
+ ]),
+ _: 2
+ }, 1032, ["modelValue", "onUpdate:modelValue", "parent", "index"])
+ ]))), 256)) : Q("", !0)
+ ], 2);
+ };
+ }
+}, hr = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
+ __proto__: null,
+ default: Te
+}, Symbol.toStringTag, { value: "Module" })), gr = { class: "trees" }, _r = {
+ __name: "Tree",
+ props: {
+ modelValue: Array
+ },
+ setup(e) {
+ const t = e;
+ return (n, a) => (h(), b("ul", gr, [
+ (h(!0), b(I, null, j(t.modelValue, (l, o) => (h(), C(Te, {
+ modelValue: t.modelValue[o],
+ "onUpdate:modelValue": (r) => t.modelValue[o] = r,
+ parent: t.modelValue,
+ index: o
+ }, {
+ default: O(({ element: r, parent: s, stats: f }) => [
+ A(n.$slots, "default", {
+ element: r,
+ parent: t.parent,
+ stats: f
+ }, void 0, !0)
+ ]),
+ _: 2
+ }, 1032, ["modelValue", "onUpdate:modelValue", "parent", "index"]))), 256))
+ ]));
+ }
+}, br = /* @__PURE__ */ U(_r, [["__scopeId", "data-v-50ab8038"]]), yr = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
__proto__: null,
- default: Z
-}, Symbol.toStringTag, { value: "Module" })), oe = {
+ default: br
+}, Symbol.toStringTag, { value: "Module" })), Sr = {
install: (e) => {
Object.entries(/* @__PURE__ */ Object.assign({
- "./components/Builder.vue": w,
- "./components/forms/Form.vue": S,
- "./components/forms/FormButtons.vue": P,
- "./components/forms/InputText.vue": N,
- "./components/layout/Column.vue": G,
- "./components/layout/Content.vue": U,
- "./components/layout/Row.vue": ee
- })).forEach(([r, n]) => {
- const t = r.split("/").pop().replace(/\.\w+$/, "");
- e.component(t, n.default);
+ "./components/Builder.vue": Le,
+ "./components/forms/Form.vue": He,
+ "./components/forms/FormButtons.vue": Xe,
+ "./components/forms/Input.vue": ot,
+ "./components/forms/Title.vue": ft,
+ "./components/layout/Breadcrumbs.vue": wt,
+ "./components/layout/Column.vue": Pt,
+ "./components/layout/Content.vue": Mt,
+ "./components/layout/Row.vue": Ft,
+ "./components/layout/Template.vue": cr,
+ "./components/misc/Tree.vue": yr,
+ "./components/misc/TreeContent.vue": hr
+ })).forEach(([n, a]) => {
+ const l = n.split("/").pop().replace(/\.\w+$/, "");
+ e.component(l, a.default);
});
}
};
export {
- oe as components
+ Sr as Components,
+ br as Tree
};
diff --git a/dist/lib.umd.cjs b/dist/lib.umd.cjs
index eaa94c3..9e0c12a 100644
--- a/dist/lib.umd.cjs
+++ b/dist/lib.umd.cjs
@@ -1 +1,4 @@
-(function(l,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(l=typeof globalThis<"u"?globalThis:l||self,e(l.lib={},l.Vue))})(this,function(l,e){"use strict";const d=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"Builder",props:{object:{required:!1,default:null},design:{required:!0},endpoint:{required:!1,default:!1}},setup(t){return(n,r)=>{const s=e.resolveComponent("builder",!0);return e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.design,(o,c)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.component),e.mergeProps({key:o,ref_for:!0},{endpoint:t.endpoint,object:t.object,class:o.class,configs:o.configs}),{default:e.withCtx(()=>[o.children&&o.children.length?(e.openBlock(),e.createBlock(s,e.mergeProps({key:0,ref_for:!0},{endpoint:t.endpoint,object:t.object,design:o.children}),null,16)):e.createCommentVNode("",!0)]),_:2},1040))),128)}}}},Symbol.toStringTag,{value:"Module"})),_=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"Form",props:{object:{required:!1,default:null},endpoint:{required:!1,default:!1},class:{required:!1,default:{}}},setup(t){const n=t,r=async()=>{const s=document.getElementById("website-form"),o=new FormData(s);try{let c;const a={headers:{"Content-Type":"multipart/form-data"}};Object.keys(object).length?(o.append("_method","put"),c=await axios.post(n.endpoint,o,a)):c=await axios.post(n.endpoint,o,a),location.assign(c.data.redirect)}catch(c){window.notyf.error(c.response.data)}return!1};return(s,o)=>{const c=e.resolveComponent("form-buttons");return e.openBlock(),e.createElementBlock("form",{id:"website-form",class:e.normalizeClass(n.class),onSubmit:e.withModifiers(r,["prevent"])},[e.renderSlot(s.$slots,"default"),n.endpoint?(e.openBlock(),e.createBlock(c,{key:0})):e.createCommentVNode("",!0)],34)}}}},Symbol.toStringTag,{value:"Module"})),i=(t,n)=>{const r=t.__vccOpts||t;for(const[s,o]of n)r[s]=o;return r},f={},m={class:"mt-6 flex items-center justify-end gap-x-6"},u=[e.createElementVNode("button",{type:"button",class:"text-sm font-semibold leading-6 text-gray-900"},"Cancel",-1),e.createElementVNode("button",{type:"submit",class:"rounded-md bg-indigo-600 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"},"Save",-1)];function p(t,n){return e.openBlock(),e.createElementBlock("div",m,u)}const b=Object.freeze(Object.defineProperty({__proto__:null,default:i(f,[["render",p]])},Symbol.toStringTag,{value:"Module"})),g={class:"mt-5"},y={for:"username",class:"block text-sm font-medium leading-6 text-gray-900"},h=e.createElementVNode("div",{class:"mt-2"},[e.createElementVNode("div",{class:"flex rounded-md shadow-sm ring-1 ring-inset ring-gray-300 focus-within:ring-2 focus-within:ring-inset focus-within:ring-indigo-600"},[e.createElementVNode("input",{type:"text",name:"username",id:"username",autocomplete:"username",class:"block flex-1 border-0 bg-transparent py-1.5 pl-1 text-gray-900 placeholder:text-gray-400 focus:ring-0 sm:text-sm sm:leading-6",placeholder:"janesmith"})])],-1),j=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"InputText",props:{object:{required:!1,default:null},endpoint:{required:!1,default:!1},class:{required:!1,default:{}},configs:{required:!1,default:{}}},setup(t){const n=t;return(r,s)=>(e.openBlock(),e.createElementBlock("div",g,[e.createElementVNode("label",y,e.toDisplayString(n.configs.title),1),h]))}}},Symbol.toStringTag,{value:"Module"})),k={},x={class:"col"};function B(t,n){return e.openBlock(),e.createElementBlock("div",x,[e.renderSlot(t.$slots,"default")])}const $=Object.freeze(Object.defineProperty({__proto__:null,default:i(k,[["render",B]])},Symbol.toStringTag,{value:"Module"})),S={},w={class:"container mx-auto mt-5"};function O(t,n){return e.openBlock(),e.createElementBlock("div",w,[e.renderSlot(t.$slots,"default")])}const C=Object.freeze(Object.defineProperty({__proto__:null,default:i(S,[["render",O]])},Symbol.toStringTag,{value:"Module"})),E={},T={class:"row"};function q(t,n){return e.openBlock(),e.createElementBlock("div",T,[e.renderSlot(t.$slots,"default")])}const P=Object.freeze(Object.defineProperty({__proto__:null,default:i(E,[["render",q]])},Symbol.toStringTag,{value:"Module"})),M={install:t=>{Object.entries(Object.assign({"./components/Builder.vue":d,"./components/forms/Form.vue":_,"./components/forms/FormButtons.vue":b,"./components/forms/InputText.vue":j,"./components/layout/Column.vue":$,"./components/layout/Content.vue":C,"./components/layout/Row.vue":P})).forEach(([r,s])=>{const o=r.split("/").pop().replace(/\.\w+$/,"");t.component(o,s.default)})}};l.components=M,Object.defineProperty(l,Symbol.toStringTag,{value:"Module"})});
+(function(k,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(k=typeof globalThis<"u"?globalThis:k||self,e(k.lib={},k.Vue))})(this,function(k,e){"use strict";const ie=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"Builder",props:{modelValue:{required:!1,default:{}},design:{required:!0},endpoint:{required:!1,default:!1}},setup(t){return(n,o)=>{const s=e.resolveComponent("builder",!0);return e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.design,(l,a)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.component),e.mergeProps({key:l,ref_for:!0},{endpoint:t.endpoint,modelValue:t.modelValue,class:l.class,...l.configs}),{default:e.withCtx(()=>[l.children&&l.children.length?(e.openBlock(),e.createBlock(s,e.mergeProps({key:0,ref_for:!0},{endpoint:t.endpoint,modelValue:t.modelValue,design:l.children}),null,16)):e.createCommentVNode("",!0)]),_:2},1040))),128)}}}},Symbol.toStringTag,{value:"Module"})),ce=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"Form",props:{modelValue:{required:!1,default:{}},endpoint:{required:!1,default:!1},class:{required:!1,default:{}}},setup(t){const n=t,o=async()=>{const s=document.getElementById("website-form"),l=new FormData(s);try{let a;const r={headers:{"Content-Type":"multipart/form-data"}};Object.keys(modelValue).length?(l.append("_method","put"),a=await axios.post(n.endpoint,l,r)):a=await axios.post(n.endpoint,l,r),location.assign(a.data.redirect)}catch(a){window.notyf.error(a.response.data)}return!1};return(s,l)=>{const a=e.resolveComponent("form-buttons");return e.openBlock(),e.createElementBlock("form",{id:"website-form",class:e.normalizeClass(n.class),onSubmit:e.withModifiers(o,["prevent"])},[e.renderSlot(s.$slots,"default"),n.endpoint?(e.openBlock(),e.createBlock(a,{key:0})):e.createCommentVNode("",!0)],34)}}}},Symbol.toStringTag,{value:"Module"})),N=(t,n)=>{const o=t.__vccOpts||t;for(const[s,l]of n)o[s]=l;return o},de={},ue={class:"mt-6 flex items-center justify-end gap-x-6"},fe=[e.createElementVNode("button",{type:"button",class:"text-sm font-semibold leading-6 text-gray-900"},"Cancel",-1),e.createElementVNode("button",{type:"submit",class:"rounded-md bg-indigo-600 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"},"Save",-1)];function me(t,n){return e.openBlock(),e.createElementBlock("div",ue,fe)}const pe=Object.freeze(Object.defineProperty({__proto__:null,default:N(de,[["render",me]])},Symbol.toStringTag,{value:"Module"})),he={class:"mt-5"},ge=["for"],_e={class:"mt-2"},be={key:0,class:"flex rounded-md shadow-sm ring-1 ring-inset ring-gray-300 focus-within:ring-2 focus-within:ring-inset focus-within:ring-indigo-600"},ye=["type","id","placeholder"],xe={key:1,class:"text-xs font-medium text-rose-600"},we=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"Input",props:{class:{required:!1,default:{}},label:{type:String,required:!0},type:{type:String,required:!1,default:"text"},help:String,name:{type:String,required:!0},disabled:{type:Boolean,default:!1},required:{type:Boolean,default:!1},modelValue:{required:!1,default:{}}},emits:["update:modelValue"],setup(t,{emit:n}){const o=t;return(s,l)=>(e.openBlock(),e.createElementBlock("div",he,[e.createElementVNode("label",{for:o.name,class:"block text-sm font-medium leading-6 text-gray-900"},e.toDisplayString(o.label),9,ge),e.createElementVNode("div",_e,[o.name?(e.openBlock(),e.createElementBlock("div",be,[e.withDirectives(e.createElementVNode("input",{type:o.type??"text",name:"username",id:o.name,class:"block flex-1 border-0 bg-transparent py-1.5 pl-1 text-gray-900 placeholder:text-gray-400 focus:ring-0 sm:text-sm sm:leading-6",placeholder:o.placeholder,"onUpdate:modelValue":l[0]||(l[0]=a=>o.modelValue[o.name]=a)},null,8,ye),[[e.vModelDynamic,o.modelValue[o.name]]])])):(e.openBlock(),e.createElementBlock("small",xe," No Name set"))])]))}}},Symbol.toStringTag,{value:"Module"})),Ee={},ke={class:"space-y-5 mt-10"},ve=[e.createElementVNode("div",{class:"border-b border-gray-900/10 pb-5"},[e.createElementVNode("h2",{class:"text-base font-semibold leading-7 text-gray-900"},"Profile"),e.createElementVNode("p",{class:"mt-1 text-sm leading-6 text-gray-600"},"This information will be displayed publicly so be careful what you share.")],-1)];function Se(t,n){return e.openBlock(),e.createElementBlock("div",ke,ve)}const Ne=Object.freeze(Object.defineProperty({__proto__:null,default:N(Ee,[["render",Se]])},Symbol.toStringTag,{value:"Module"}));function Ve(t,n){return e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true","data-slot":"icon"},[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M8.22 5.22a.75.75 0 0 1 1.06 0l4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.75.75 0 0 1-1.06-1.06L11.94 10 8.22 6.28a.75.75 0 0 1 0-1.06Z","clip-rule":"evenodd"})])}function $e(t,n){return e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true","data-slot":"icon"},[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M9.293 2.293a1 1 0 0 1 1.414 0l7 7A1 1 0 0 1 17 11h-1v6a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1v-3a1 1 0 0 0-1-1H9a1 1 0 0 0-1 1v3a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-6H3a1 1 0 0 1-.707-1.707l7-7Z","clip-rule":"evenodd"})])}const Be={class:"flex","aria-label":"Breadcrumb"},Oe={role:"list",class:"flex items-center space-x-4"},Te={href:"#"},De=e.createElementVNode("span",{class:"sr-only"},"Home",-1),Pe={class:"flex items-center"},Ce=["href","aria-current"],Ie=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"Breadcrumbs",setup(t){const n=[{name:"Projects",href:"#",current:!1},{name:"Project Nero",href:"#",current:!0}];return(o,s)=>(e.openBlock(),e.createElementBlock("nav",Be,[e.createElementVNode("ol",Oe,[e.createElementVNode("li",null,[e.createElementVNode("div",null,[e.createElementVNode("a",Te,[e.createVNode(e.unref($e),{class:"h-5 w-5 flex-shrink-0","aria-hidden":"true"}),De])])]),(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(n,l=>e.createElementVNode("li",{key:l.name},[e.createElementVNode("div",Pe,[e.createVNode(e.unref(Ve),{class:"h-5 w-5 flex-shrink-0","aria-hidden":"true"}),e.createElementVNode("a",{href:l.href,class:"ml-4 text-sm font-medium","aria-current":l.current?"page":void 0},e.toDisplayString(l.name),9,Ce)])])),64))])]))}}},Symbol.toStringTag,{value:"Module"})),Me={},je={class:"col"};function Fe(t,n){return e.openBlock(),e.createElementBlock("div",je,[e.renderSlot(t.$slots,"default")])}const Ae=Object.freeze(Object.defineProperty({__proto__:null,default:N(Me,[["render",Fe]])},Symbol.toStringTag,{value:"Module"})),Re={},Le={class:"container mx-auto mt-5"};function Ue(t,n){return e.openBlock(),e.createElementBlock("div",Le,[e.renderSlot(t.$slots,"default")])}const He=Object.freeze(Object.defineProperty({__proto__:null,default:N(Re,[["render",Ue]])},Symbol.toStringTag,{value:"Module"})),qe={},ze={class:"row"};function Ke(t,n){return e.openBlock(),e.createElementBlock("div",ze,[e.renderSlot(t.$slots,"default")])}const We=Object.freeze(Object.defineProperty({__proto__:null,default:N(qe,[["render",Ke]])},Symbol.toStringTag,{value:"Module"}));let Ge=Symbol("headlessui.useid"),Qe=0;function $(){return e.inject(Ge,()=>`${++Qe}`)()}function b(t){var n;if(t==null||t.value==null)return null;let o=(n=t.value.$el)!=null?n:t.value;return o instanceof Node?o:null}function V(t,n,...o){if(t in n){let l=n[t];return typeof l=="function"?l(...o):l}let s=new Error(`Tried to handle "${t}" but there is no handler defined. Only defined handlers are: ${Object.keys(n).map(l=>`"${l}"`).join(", ")}.`);throw Error.captureStackTrace&&Error.captureStackTrace(s,V),s}var Ye=Object.defineProperty,Xe=(t,n,o)=>n in t?Ye(t,n,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[n]=o,U=(t,n,o)=>(Xe(t,typeof n!="symbol"?n+"":n,o),o);let Ze=class{constructor(){U(this,"current",this.detect()),U(this,"currentId",0)}set(n){this.current!==n&&(this.currentId=0,this.current=n)}reset(){this.set(this.detect())}nextId(){return++this.currentId}get isServer(){return this.current==="server"}get isClient(){return this.current==="client"}detect(){return typeof window>"u"||typeof document>"u"?"server":"client"}},P=new Ze;function C(t){if(P.isServer)return null;if(t instanceof Node)return t.ownerDocument;if(t!=null&&t.hasOwnProperty("value")){let n=b(t);if(n)return n.ownerDocument}return document}let I=["[contentEditable=true]","[tabindex]","a[href]","area[href]","button:not([disabled])","iframe","input:not([disabled])","select:not([disabled])","textarea:not([disabled])"].map(t=>`${t}:not([tabindex='-1'])`).join(",");var M=(t=>(t[t.First=1]="First",t[t.Previous=2]="Previous",t[t.Next=4]="Next",t[t.Last=8]="Last",t[t.WrapAround=16]="WrapAround",t[t.NoScroll=32]="NoScroll",t))(M||{}),Je=(t=>(t[t.Error=0]="Error",t[t.Overflow=1]="Overflow",t[t.Success=2]="Success",t[t.Underflow=3]="Underflow",t))(Je||{}),et=(t=>(t[t.Previous=-1]="Previous",t[t.Next=1]="Next",t))(et||{});function H(t=document.body){return t==null?[]:Array.from(t.querySelectorAll(I)).sort((n,o)=>Math.sign((n.tabIndex||Number.MAX_SAFE_INTEGER)-(o.tabIndex||Number.MAX_SAFE_INTEGER)))}var j=(t=>(t[t.Strict=0]="Strict",t[t.Loose=1]="Loose",t))(j||{});function F(t,n=0){var o;return t===((o=C(t))==null?void 0:o.body)?!1:V(n,{0(){return t.matches(I)},1(){let s=t;for(;s!==null;){if(s.matches(I))return!0;s=s.parentElement}return!1}})}function q(t){let n=C(t);e.nextTick(()=>{n&&!F(n.activeElement,0)&&nt(t)})}var tt=(t=>(t[t.Keyboard=0]="Keyboard",t[t.Mouse=1]="Mouse",t))(tt||{});typeof window<"u"&&typeof document<"u"&&(document.addEventListener("keydown",t=>{t.metaKey||t.altKey||t.ctrlKey||(document.documentElement.dataset.headlessuiFocusVisible="")},!0),document.addEventListener("click",t=>{t.detail===1?delete document.documentElement.dataset.headlessuiFocusVisible:t.detail===0&&(document.documentElement.dataset.headlessuiFocusVisible="")},!0));function nt(t){t==null||t.focus({preventScroll:!0})}let ot=["textarea","input"].join(",");function rt(t){var n,o;return(o=(n=t==null?void 0:t.matches)==null?void 0:n.call(t,ot))!=null?o:!1}function z(t,n=o=>o){return t.slice().sort((o,s)=>{let l=n(o),a=n(s);if(l===null||a===null)return 0;let r=l.compareDocumentPosition(a);return r&Node.DOCUMENT_POSITION_FOLLOWING?-1:r&Node.DOCUMENT_POSITION_PRECEDING?1:0})}function lt(t,n){return at(H(),n,{relativeTo:t})}function at(t,n,{sorted:o=!0,relativeTo:s=null,skipElements:l=[]}={}){var a;let r=(a=Array.isArray(t)?t.length>0?t[0].ownerDocument:document:t==null?void 0:t.ownerDocument)!=null?a:document,i=Array.isArray(t)?o?z(t):t:H(t);l.length>0&&i.length>1&&(i=i.filter(d=>!l.includes(d))),s=s??r.activeElement;let f=(()=>{if(n&5)return 1;if(n&10)return-1;throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")})(),p=(()=>{if(n&1)return 0;if(n&2)return Math.max(0,i.indexOf(s))-1;if(n&4)return Math.max(0,i.indexOf(s))+1;if(n&8)return i.length-1;throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")})(),g=n&32?{preventScroll:!0}:{},h=0,c=i.length,u;do{if(h>=c||h+c<=0)return 0;let d=p+h;if(n&16)d=(d+c)%c;else{if(d<0)return 3;if(d>=c)return 1}u=i[d],u==null||u.focus(g),h+=f}while(u!==r.activeElement);return n&6&&rt(u)&&u.select(),2}function st(){return/iPhone/gi.test(window.navigator.platform)||/Mac/gi.test(window.navigator.platform)&&window.navigator.maxTouchPoints>0}function it(){return/Android/gi.test(window.navigator.userAgent)}function ct(){return st()||it()}function T(t,n,o){P.isServer||e.watchEffect(s=>{document.addEventListener(t,n,o),s(()=>document.removeEventListener(t,n,o))})}function dt(t,n,o){P.isServer||e.watchEffect(s=>{window.addEventListener(t,n,o),s(()=>window.removeEventListener(t,n,o))})}function ut(t,n,o=e.computed(()=>!0)){function s(a,r){if(!o.value||a.defaultPrevented)return;let i=r(a);if(i===null||!i.getRootNode().contains(i))return;let f=function p(g){return typeof g=="function"?p(g()):Array.isArray(g)||g instanceof Set?g:[g]}(t);for(let p of f){if(p===null)continue;let g=p instanceof HTMLElement?p:b(p);if(g!=null&&g.contains(i)||a.composed&&a.composedPath().includes(g))return}return!F(i,j.Loose)&&i.tabIndex!==-1&&a.preventDefault(),n(a,i)}let l=e.ref(null);T("pointerdown",a=>{var r,i;o.value&&(l.value=((i=(r=a.composedPath)==null?void 0:r.call(a))==null?void 0:i[0])||a.target)},!0),T("mousedown",a=>{var r,i;o.value&&(l.value=((i=(r=a.composedPath)==null?void 0:r.call(a))==null?void 0:i[0])||a.target)},!0),T("click",a=>{ct()||l.value&&(s(a,()=>l.value),l.value=null)},!0),T("touchend",a=>s(a,()=>a.target instanceof HTMLElement?a.target:null),!0),dt("blur",a=>s(a,()=>window.document.activeElement instanceof HTMLIFrameElement?window.document.activeElement:null),!0)}function K(t,n){if(t)return t;let o=n??"button";if(typeof o=="string"&&o.toLowerCase()==="button")return"button"}function W(t,n){let o=e.ref(K(t.value.type,t.value.as));return e.onMounted(()=>{o.value=K(t.value.type,t.value.as)}),e.watchEffect(()=>{var s;o.value||b(n)&&b(n)instanceof HTMLButtonElement&&!((s=b(n))!=null&&s.hasAttribute("type"))&&(o.value="button")}),o}function G(t){return[t.screenX,t.screenY]}function ft(){let t=e.ref([-1,-1]);return{wasMoved(n){let o=G(n);return t.value[0]===o[0]&&t.value[1]===o[1]?!1:(t.value=o,!0)},update(n){t.value=G(n)}}}function mt({container:t,accept:n,walk:o,enabled:s}){e.watchEffect(()=>{let l=t.value;if(!l||s!==void 0&&!s.value)return;let a=C(t);if(!a)return;let r=Object.assign(f=>n(f),{acceptNode:n}),i=a.createTreeWalker(l,NodeFilter.SHOW_ELEMENT,r,!1);for(;i.nextNode();)o(i.currentNode)})}var B=(t=>(t[t.None=0]="None",t[t.RenderStrategy=1]="RenderStrategy",t[t.Static=2]="Static",t))(B||{}),pt=(t=>(t[t.Unmount=0]="Unmount",t[t.Hidden=1]="Hidden",t))(pt||{});function S({visible:t=!0,features:n=0,ourProps:o,theirProps:s,...l}){var a;let r=Y(s,o),i=Object.assign(l,{props:r});if(t||n&2&&r.static)return A(i);if(n&1){let f=(a=r.unmount)==null||a?0:1;return V(f,{0(){return null},1(){return A({...l,props:{...r,hidden:!0,style:{display:"none"}}})}})}return A(i)}function A({props:t,attrs:n,slots:o,slot:s,name:l}){var a,r;let{as:i,...f}=ht(t,["unmount","static"]),p=(a=o.default)==null?void 0:a.call(o,s),g={};if(s){let h=!1,c=[];for(let[u,d]of Object.entries(s))typeof d=="boolean"&&(h=!0),d===!0&&c.push(u);h&&(g["data-headlessui-state"]=c.join(" "))}if(i==="template"){if(p=Q(p??[]),Object.keys(f).length>0||Object.keys(n).length>0){let[h,...c]=p??[];if(!gt(h)||c.length>0)throw new Error(['Passing props on "template"!',"",`The current component <${l} /> is rendering a "template".`,"However we need to passthrough the following props:",Object.keys(f).concat(Object.keys(n)).map(m=>m.trim()).filter((m,x,_)=>_.indexOf(m)===x).sort((m,x)=>m.localeCompare(x)).map(m=>` - ${m}`).join(`
+`),"","You can apply a few solutions:",['Add an `as="..."` prop, to ensure that we render an actual element instead of a "template".',"Render a single element as the child so that we can forward the props onto that element."].map(m=>` - ${m}`).join(`
+`)].join(`
+`));let u=Y((r=h.props)!=null?r:{},f,g),d=e.cloneVNode(h,u,!0);for(let m in u)m.startsWith("on")&&(d.props||(d.props={}),d.props[m]=u[m]);return d}return Array.isArray(p)&&p.length===1?p[0]:p}return e.h(i,Object.assign({},f,g),{default:()=>p})}function Q(t){return t.flatMap(n=>n.type===e.Fragment?Q(n.children):[n])}function Y(...t){if(t.length===0)return{};if(t.length===1)return t[0];let n={},o={};for(let s of t)for(let l in s)l.startsWith("on")&&typeof s[l]=="function"?(o[l]!=null||(o[l]=[]),o[l].push(s[l])):n[l]=s[l];if(n.disabled||n["aria-disabled"])return Object.assign(n,Object.fromEntries(Object.keys(o).map(s=>[s,void 0])));for(let s in o)Object.assign(n,{[s](l,...a){let r=o[s];for(let i of r){if(l instanceof Event&&l.defaultPrevented)return;i(l,...a)}}});return n}function ht(t,n=[]){let o=Object.assign({},t);for(let s of n)s in o&&delete o[s];return o}function gt(t){return t==null?!1:typeof t.type=="string"||typeof t.type=="object"||typeof t.type=="function"}let X=Symbol("Context");var E=(t=>(t[t.Open=1]="Open",t[t.Closed=2]="Closed",t[t.Closing=4]="Closing",t[t.Opening=8]="Opening",t))(E||{});function Z(){return e.inject(X,null)}function J(t){e.provide(X,t)}var y=(t=>(t.Space=" ",t.Enter="Enter",t.Escape="Escape",t.Backspace="Backspace",t.Delete="Delete",t.ArrowLeft="ArrowLeft",t.ArrowUp="ArrowUp",t.ArrowRight="ArrowRight",t.ArrowDown="ArrowDown",t.Home="Home",t.End="End",t.PageUp="PageUp",t.PageDown="PageDown",t.Tab="Tab",t))(y||{});function _t(t){throw new Error("Unexpected object: "+t)}var w=(t=>(t[t.First=0]="First",t[t.Previous=1]="Previous",t[t.Next=2]="Next",t[t.Last=3]="Last",t[t.Specific=4]="Specific",t[t.Nothing=5]="Nothing",t))(w||{});function bt(t,n){let o=n.resolveItems();if(o.length<=0)return null;let s=n.resolveActiveIndex(),l=s??-1;switch(t.focus){case 0:{for(let a=0;a=0;--a)if(!n.resolveDisabled(o[a],a,o))return a;return s}case 2:{for(let a=l+1;a=0;--a)if(!n.resolveDisabled(o[a],a,o))return a;return s}case 4:{for(let a=0;a(t[t.Open=0]="Open",t[t.Closed=1]="Closed",t))(yt||{});let ee=Symbol("DisclosureContext");function R(t){let n=e.inject(ee,null);if(n===null){let o=new Error(`<${t} /> is missing a parent component.`);throw Error.captureStackTrace&&Error.captureStackTrace(o,R),o}return n}let te=Symbol("DisclosurePanelContext");function xt(){return e.inject(te,null)}let wt=e.defineComponent({name:"Disclosure",props:{as:{type:[Object,String],default:"template"},defaultOpen:{type:[Boolean],default:!1}},setup(t,{slots:n,attrs:o}){let s=e.ref(t.defaultOpen?0:1),l=e.ref(null),a=e.ref(null),r={buttonId:e.ref(`headlessui-disclosure-button-${$()}`),panelId:e.ref(`headlessui-disclosure-panel-${$()}`),disclosureState:s,panel:l,button:a,toggleDisclosure(){s.value=V(s.value,{0:1,1:0})},closeDisclosure(){s.value!==1&&(s.value=1)},close(i){r.closeDisclosure();let f=i?i instanceof HTMLElement?i:i.value instanceof HTMLElement?b(i):b(r.button):b(r.button);f==null||f.focus()}};return e.provide(ee,r),J(e.computed(()=>V(s.value,{0:E.Open,1:E.Closed}))),()=>{let{defaultOpen:i,...f}=t,p={open:s.value===0,close:r.close};return S({theirProps:f,ourProps:{},slot:p,slots:n,attrs:o,name:"Disclosure"})}}}),L=e.defineComponent({name:"DisclosureButton",props:{as:{type:[Object,String],default:"button"},disabled:{type:[Boolean],default:!1},id:{type:String,default:null}},setup(t,{attrs:n,slots:o,expose:s}){let l=R("DisclosureButton"),a=xt(),r=e.computed(()=>a===null?!1:a.value===l.panelId.value);e.onMounted(()=>{r.value||t.id!==null&&(l.buttonId.value=t.id)}),e.onUnmounted(()=>{r.value||(l.buttonId.value=null)});let i=e.ref(null);s({el:i,$el:i}),r.value||e.watchEffect(()=>{l.button.value=i.value});let f=W(e.computed(()=>({as:t.as,type:n.type})),i);function p(){var c;t.disabled||(r.value?(l.toggleDisclosure(),(c=b(l.button))==null||c.focus()):l.toggleDisclosure())}function g(c){var u;if(!t.disabled)if(r.value)switch(c.key){case y.Space:case y.Enter:c.preventDefault(),c.stopPropagation(),l.toggleDisclosure(),(u=b(l.button))==null||u.focus();break}else switch(c.key){case y.Space:case y.Enter:c.preventDefault(),c.stopPropagation(),l.toggleDisclosure();break}}function h(c){switch(c.key){case y.Space:c.preventDefault();break}}return()=>{var c;let u={open:l.disclosureState.value===0},{id:d,...m}=t,x=r.value?{ref:i,type:f.value,onClick:p,onKeydown:g}:{id:(c=l.buttonId.value)!=null?c:d,ref:i,type:f.value,"aria-expanded":l.disclosureState.value===0,"aria-controls":l.disclosureState.value===0||b(l.panel)?l.panelId.value:void 0,disabled:t.disabled?!0:void 0,onClick:p,onKeydown:g,onKeyup:h};return S({ourProps:x,theirProps:m,slot:u,attrs:n,slots:o,name:"DisclosureButton"})}}}),Et=e.defineComponent({name:"DisclosurePanel",props:{as:{type:[Object,String],default:"div"},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0},id:{type:String,default:null}},setup(t,{attrs:n,slots:o,expose:s}){let l=R("DisclosurePanel");e.onMounted(()=>{t.id!==null&&(l.panelId.value=t.id)}),e.onUnmounted(()=>{l.panelId.value=null}),s({el:l.panel,$el:l.panel}),e.provide(te,l.panelId);let a=Z(),r=e.computed(()=>a!==null?(a.value&E.Open)===E.Open:l.disclosureState.value===0);return()=>{var i;let f={open:l.disclosureState.value===0,close:l.close},{id:p,...g}=t,h={id:(i=l.panelId.value)!=null?i:p,ref:l.panel};return S({ourProps:h,theirProps:g,slot:f,attrs:n,slots:o,features:B.RenderStrategy|B.Static,visible:r.value,name:"DisclosurePanel"})}}}),ne=/([\u2700-\u27BF]|[\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDFFF]|[\u2011-\u26FF]|\uD83E[\uDD10-\uDDFF])/g;function oe(t){var n,o;let s=(n=t.innerText)!=null?n:"",l=t.cloneNode(!0);if(!(l instanceof HTMLElement))return s;let a=!1;for(let i of l.querySelectorAll('[hidden],[aria-hidden],[role="img"]'))i.remove(),a=!0;let r=a?(o=l.innerText)!=null?o:"":s;return ne.test(r)&&(r=r.replace(ne,"")),r}function kt(t){let n=t.getAttribute("aria-label");if(typeof n=="string")return n.trim();let o=t.getAttribute("aria-labelledby");if(o){let s=o.split(" ").map(l=>{let a=document.getElementById(l);if(a){let r=a.getAttribute("aria-label");return typeof r=="string"?r.trim():oe(a).trim()}return null}).filter(Boolean);if(s.length>0)return s.join(", ")}return oe(t).trim()}function vt(t){let n=e.ref(""),o=e.ref("");return()=>{let s=b(t);if(!s)return"";let l=s.innerText;if(n.value===l)return o.value;let a=kt(s).trim().toLowerCase();return n.value=l,o.value=a,a}}var St=(t=>(t[t.Open=0]="Open",t[t.Closed=1]="Closed",t))(St||{}),Nt=(t=>(t[t.Pointer=0]="Pointer",t[t.Other=1]="Other",t))(Nt||{});function Vt(t){requestAnimationFrame(()=>requestAnimationFrame(t))}let re=Symbol("MenuContext");function D(t){let n=e.inject(re,null);if(n===null){let o=new Error(`<${t} /> is missing a parent component.`);throw Error.captureStackTrace&&Error.captureStackTrace(o,D),o}return n}let $t=e.defineComponent({name:"Menu",props:{as:{type:[Object,String],default:"template"}},setup(t,{slots:n,attrs:o}){let s=e.ref(1),l=e.ref(null),a=e.ref(null),r=e.ref([]),i=e.ref(""),f=e.ref(null),p=e.ref(1);function g(c=u=>u){let u=f.value!==null?r.value[f.value]:null,d=z(c(r.value.slice()),x=>b(x.dataRef.domRef)),m=u?d.indexOf(u):null;return m===-1&&(m=null),{items:d,activeItemIndex:m}}let h={menuState:s,buttonRef:l,itemsRef:a,items:r,searchQuery:i,activeItemIndex:f,activationTrigger:p,closeMenu:()=>{s.value=1,f.value=null},openMenu:()=>s.value=0,goToItem(c,u,d){let m=g(),x=bt(c===w.Specific?{focus:w.Specific,id:u}:{focus:c},{resolveItems:()=>m.items,resolveActiveIndex:()=>m.activeItemIndex,resolveId:_=>_.id,resolveDisabled:_=>_.dataRef.disabled});i.value="",f.value=x,p.value=d??1,r.value=m.items},search(c){let u=i.value!==""?0:1;i.value+=c.toLowerCase();let d=(f.value!==null?r.value.slice(f.value+u).concat(r.value.slice(0,f.value+u)):r.value).find(x=>x.dataRef.textValue.startsWith(i.value)&&!x.dataRef.disabled),m=d?r.value.indexOf(d):-1;m===-1||m===f.value||(f.value=m,p.value=1)},clearSearch(){i.value=""},registerItem(c,u){let d=g(m=>[...m,{id:c,dataRef:u}]);r.value=d.items,f.value=d.activeItemIndex,p.value=1},unregisterItem(c){let u=g(d=>{let m=d.findIndex(x=>x.id===c);return m!==-1&&d.splice(m,1),d});r.value=u.items,f.value=u.activeItemIndex,p.value=1}};return ut([l,a],(c,u)=>{var d;h.closeMenu(),F(u,j.Loose)||(c.preventDefault(),(d=b(l))==null||d.focus())},e.computed(()=>s.value===0)),e.provide(re,h),J(e.computed(()=>V(s.value,{0:E.Open,1:E.Closed}))),()=>{let c={open:s.value===0,close:h.closeMenu};return S({ourProps:{},theirProps:t,slot:c,slots:n,attrs:o,name:"Menu"})}}}),Bt=e.defineComponent({name:"MenuButton",props:{disabled:{type:Boolean,default:!1},as:{type:[Object,String],default:"button"},id:{type:String,default:null}},setup(t,{attrs:n,slots:o,expose:s}){var l;let a=(l=t.id)!=null?l:`headlessui-menu-button-${$()}`,r=D("MenuButton");s({el:r.buttonRef,$el:r.buttonRef});function i(h){switch(h.key){case y.Space:case y.Enter:case y.ArrowDown:h.preventDefault(),h.stopPropagation(),r.openMenu(),e.nextTick(()=>{var c;(c=b(r.itemsRef))==null||c.focus({preventScroll:!0}),r.goToItem(w.First)});break;case y.ArrowUp:h.preventDefault(),h.stopPropagation(),r.openMenu(),e.nextTick(()=>{var c;(c=b(r.itemsRef))==null||c.focus({preventScroll:!0}),r.goToItem(w.Last)});break}}function f(h){switch(h.key){case y.Space:h.preventDefault();break}}function p(h){t.disabled||(r.menuState.value===0?(r.closeMenu(),e.nextTick(()=>{var c;return(c=b(r.buttonRef))==null?void 0:c.focus({preventScroll:!0})})):(h.preventDefault(),r.openMenu(),Vt(()=>{var c;return(c=b(r.itemsRef))==null?void 0:c.focus({preventScroll:!0})})))}let g=W(e.computed(()=>({as:t.as,type:n.type})),r.buttonRef);return()=>{var h;let c={open:r.menuState.value===0},{...u}=t,d={ref:r.buttonRef,id:a,type:g.value,"aria-haspopup":"menu","aria-controls":(h=b(r.itemsRef))==null?void 0:h.id,"aria-expanded":r.menuState.value===0,onKeydown:i,onKeyup:f,onClick:p};return S({ourProps:d,theirProps:u,slot:c,attrs:n,slots:o,name:"MenuButton"})}}}),Ot=e.defineComponent({name:"MenuItems",props:{as:{type:[Object,String],default:"div"},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0},id:{type:String,default:null}},setup(t,{attrs:n,slots:o,expose:s}){var l;let a=(l=t.id)!=null?l:`headlessui-menu-items-${$()}`,r=D("MenuItems"),i=e.ref(null);s({el:r.itemsRef,$el:r.itemsRef}),mt({container:e.computed(()=>b(r.itemsRef)),enabled:e.computed(()=>r.menuState.value===0),accept(c){return c.getAttribute("role")==="menuitem"?NodeFilter.FILTER_REJECT:c.hasAttribute("role")?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT},walk(c){c.setAttribute("role","none")}});function f(c){var u;switch(i.value&&clearTimeout(i.value),c.key){case y.Space:if(r.searchQuery.value!=="")return c.preventDefault(),c.stopPropagation(),r.search(c.key);case y.Enter:if(c.preventDefault(),c.stopPropagation(),r.activeItemIndex.value!==null){let d=r.items.value[r.activeItemIndex.value];(u=b(d.dataRef.domRef))==null||u.click()}r.closeMenu(),q(b(r.buttonRef));break;case y.ArrowDown:return c.preventDefault(),c.stopPropagation(),r.goToItem(w.Next);case y.ArrowUp:return c.preventDefault(),c.stopPropagation(),r.goToItem(w.Previous);case y.Home:case y.PageUp:return c.preventDefault(),c.stopPropagation(),r.goToItem(w.First);case y.End:case y.PageDown:return c.preventDefault(),c.stopPropagation(),r.goToItem(w.Last);case y.Escape:c.preventDefault(),c.stopPropagation(),r.closeMenu(),e.nextTick(()=>{var d;return(d=b(r.buttonRef))==null?void 0:d.focus({preventScroll:!0})});break;case y.Tab:c.preventDefault(),c.stopPropagation(),r.closeMenu(),e.nextTick(()=>lt(b(r.buttonRef),c.shiftKey?M.Previous:M.Next));break;default:c.key.length===1&&(r.search(c.key),i.value=setTimeout(()=>r.clearSearch(),350));break}}function p(c){switch(c.key){case y.Space:c.preventDefault();break}}let g=Z(),h=e.computed(()=>g!==null?(g.value&E.Open)===E.Open:r.menuState.value===0);return()=>{var c,u;let d={open:r.menuState.value===0},{...m}=t,x={"aria-activedescendant":r.activeItemIndex.value===null||(c=r.items.value[r.activeItemIndex.value])==null?void 0:c.id,"aria-labelledby":(u=b(r.buttonRef))==null?void 0:u.id,id:a,onKeydown:f,onKeyup:p,role:"menu",tabIndex:0,ref:r.itemsRef};return S({ourProps:x,theirProps:m,slot:d,attrs:n,slots:o,features:B.RenderStrategy|B.Static,visible:h.value,name:"MenuItems"})}}}),Tt=e.defineComponent({name:"MenuItem",inheritAttrs:!1,props:{as:{type:[Object,String],default:"template"},disabled:{type:Boolean,default:!1},id:{type:String,default:null}},setup(t,{slots:n,attrs:o,expose:s}){var l;let a=(l=t.id)!=null?l:`headlessui-menu-item-${$()}`,r=D("MenuItem"),i=e.ref(null);s({el:i,$el:i});let f=e.computed(()=>r.activeItemIndex.value!==null?r.items.value[r.activeItemIndex.value].id===a:!1),p=vt(i),g=e.computed(()=>({disabled:t.disabled,get textValue(){return p()},domRef:i}));e.onMounted(()=>r.registerItem(a,g)),e.onUnmounted(()=>r.unregisterItem(a)),e.watchEffect(()=>{r.menuState.value===0&&f.value&&r.activationTrigger.value!==0&&e.nextTick(()=>{var _,v;return(v=(_=b(i))==null?void 0:_.scrollIntoView)==null?void 0:v.call(_,{block:"nearest"})})});function h(_){if(t.disabled)return _.preventDefault();r.closeMenu(),q(b(r.buttonRef))}function c(){if(t.disabled)return r.goToItem(w.Nothing);r.goToItem(w.Specific,a)}let u=ft();function d(_){u.update(_)}function m(_){u.wasMoved(_)&&(t.disabled||f.value||r.goToItem(w.Specific,a,0))}function x(_){u.wasMoved(_)&&(t.disabled||f.value&&r.goToItem(w.Nothing))}return()=>{let{disabled:_,...v}=t,O={active:f.value,disabled:_,close:r.closeMenu};return S({ourProps:{id:a,ref:i,role:"menuitem",tabIndex:_===!0?void 0:-1,"aria-disabled":_===!0?!0:void 0,onClick:h,onFocus:c,onPointerenter:d,onMouseenter:d,onPointermove:m,onMousemove:m,onPointerleave:x,onMouseleave:x},theirProps:{...o,...v},slot:O,attrs:o,slots:n,name:"MenuItem"})}}});function Dt(t,n){return e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5"})])}function le(t,n){return e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M14.857 17.082a23.848 23.848 0 0 0 5.454-1.31A8.967 8.967 0 0 1 18 9.75V9A6 6 0 0 0 6 9v.75a8.967 8.967 0 0 1-2.312 6.022c1.733.64 3.56 1.085 5.455 1.31m5.714 0a24.255 24.255 0 0 1-5.714 0m5.714 0a3 3 0 1 1-5.714 0"})])}function Pt(t,n){return e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 18 18 6M6 6l12 12"})])}const Ct={class:"min-h-full"},It={class:"bg-gray-800 pb-32"},Mt={class:"mx-auto max-w-7xl sm:px-6 lg:px-8"},jt={class:"border-b border-gray-700"},Ft={class:"flex h-16 items-center justify-between px-4 sm:px-0"},At={class:"flex items-center"},Rt=e.createElementVNode("div",{class:"flex-shrink-0"},[e.createElementVNode("img",{class:"h-8 w-8",src:"https://tailwindui.com/img/logos/mark.svg?color=indigo&shade=500",alt:"Your Company"})],-1),Lt={class:"hidden md:block"},Ut={class:"ml-10 flex items-baseline space-x-4"},Ht=["href","aria-current"],qt={class:"hidden md:block"},zt={class:"ml-4 flex items-center md:ml-6"},Kt={type:"button",class:"relative rounded-full bg-gray-800 p-1 text-gray-400 hover:text-white focus:outline-none focus:ring-2 focus:ring-white focus:ring-offset-2 focus:ring-offset-gray-800"},Wt=e.createElementVNode("span",{class:"absolute -inset-1.5"},null,-1),Gt=e.createElementVNode("span",{class:"sr-only"},"View notifications",-1),Qt=e.createElementVNode("span",{class:"absolute -inset-1.5"},null,-1),Yt=e.createElementVNode("span",{class:"sr-only"},"Open user menu",-1),Xt=["src"],Zt=["href"],Jt={class:"-mr-2 flex md:hidden"},en=e.createElementVNode("span",{class:"absolute -inset-0.5"},null,-1),tn=e.createElementVNode("span",{class:"sr-only"},"Open main menu",-1),nn={class:"space-y-1 px-2 py-3 sm:px-3"},on={class:"border-t border-gray-700 pb-3 pt-4"},rn={class:"flex items-center px-5"},ln={class:"flex-shrink-0"},an=["src"],sn={class:"ml-3"},cn={class:"text-base font-medium leading-none text-white"},dn={class:"text-sm font-medium leading-none text-gray-400"},un={type:"button",class:"relative ml-auto flex-shrink-0 rounded-full bg-gray-800 p-1 text-gray-400 hover:text-white focus:outline-none focus:ring-2 focus:ring-white focus:ring-offset-2 focus:ring-offset-gray-800"},fn=e.createElementVNode("span",{class:"absolute -inset-1.5"},null,-1),mn=e.createElementVNode("span",{class:"sr-only"},"View notifications",-1),pn={class:"mt-3 space-y-1 px-2"},hn=e.createElementVNode("header",{class:"py-10"},[e.createElementVNode("div",{class:"mx-auto max-w-7xl px-4 sm:px-6 lg:px-8"},[e.createElementVNode("h1",{class:"text-3xl font-bold tracking-tight text-white"},"Dashboard")])],-1),gn={class:"-mt-32"},_n={class:"mx-auto max-w-7xl px-4 pb-12 sm:px-6 lg:px-8"},bn={class:"rounded-lg bg-white px-5 py-6 shadow sm:px-6"},yn=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"Template",setup(t){const n={name:"Tom Cook",email:"tom@example.com",imageUrl:"https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80"},o=[{name:"Dashboard",href:"#",current:!0},{name:"Team",href:"#",current:!1},{name:"Projects",href:"#",current:!1},{name:"Calendar",href:"#",current:!1},{name:"Reports",href:"#",current:!1}],s=[{name:"Your Profile",href:"#"},{name:"Settings",href:"#"},{name:"Sign out",href:"#"}];return(l,a)=>(e.openBlock(),e.createElementBlock("div",Ct,[e.createElementVNode("div",It,[e.createVNode(e.unref(wt),{as:"nav",class:"bg-gray-800"},{default:e.withCtx(({open:r})=>[e.createElementVNode("div",Mt,[e.createElementVNode("div",jt,[e.createElementVNode("div",Ft,[e.createElementVNode("div",At,[Rt,e.createElementVNode("div",Lt,[e.createElementVNode("div",Ut,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(o,i=>e.createElementVNode("a",{key:i.name,href:i.href,class:e.normalizeClass([i.current?"bg-gray-900 text-white":"text-gray-300 hover:bg-gray-700 hover:text-white","rounded-md px-3 py-2 text-sm font-medium"]),"aria-current":i.current?"page":void 0},e.toDisplayString(i.name),11,Ht)),64))])])]),e.createElementVNode("div",qt,[e.createElementVNode("div",zt,[e.createElementVNode("button",Kt,[Wt,Gt,e.createVNode(e.unref(le),{class:"h-6 w-6","aria-hidden":"true"})]),e.createVNode(e.unref($t),{as:"div",class:"relative ml-3"},{default:e.withCtx(()=>[e.createElementVNode("div",null,[e.createVNode(e.unref(Bt),{class:"relative flex max-w-xs items-center rounded-full bg-gray-800 text-sm focus:outline-none focus:ring-2 focus:ring-white focus:ring-offset-2 focus:ring-offset-gray-800"},{default:e.withCtx(()=>[Qt,Yt,e.createElementVNode("img",{class:"h-8 w-8 rounded-full",src:n.imageUrl,alt:""},null,8,Xt)]),_:1})]),e.createVNode(e.Transition,{"enter-active-class":"transition ease-out duration-100","enter-from-class":"transform opacity-0 scale-95","enter-to-class":"transform opacity-100 scale-100","leave-active-class":"transition ease-in duration-75","leave-from-class":"transform opacity-100 scale-100","leave-to-class":"transform opacity-0 scale-95"},{default:e.withCtx(()=>[e.createVNode(e.unref(Ot),{class:"absolute right-0 z-10 mt-2 w-48 origin-top-right rounded-md bg-white py-1 shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none"},{default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(s,i=>e.createVNode(e.unref(Tt),{key:i.name},{default:e.withCtx(({active:f})=>[e.createElementVNode("a",{href:i.href,class:e.normalizeClass([f?"bg-gray-100":"","block px-4 py-2 text-sm text-gray-700"])},e.toDisplayString(i.name),11,Zt)]),_:2},1024)),64))]),_:1})]),_:1})]),_:1})])]),e.createElementVNode("div",Jt,[e.createVNode(e.unref(L),{class:"relative inline-flex items-center justify-center rounded-md bg-gray-800 p-2 text-gray-400 hover:bg-gray-700 hover:text-white focus:outline-none focus:ring-2 focus:ring-white focus:ring-offset-2 focus:ring-offset-gray-800"},{default:e.withCtx(()=>[en,tn,r?(e.openBlock(),e.createBlock(e.unref(Pt),{key:1,class:"block h-6 w-6","aria-hidden":"true"})):(e.openBlock(),e.createBlock(e.unref(Dt),{key:0,class:"block h-6 w-6","aria-hidden":"true"}))]),_:2},1024)])])])]),e.createVNode(e.unref(Et),{class:"border-b border-gray-700 md:hidden"},{default:e.withCtx(()=>[e.createElementVNode("div",nn,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(o,i=>e.createVNode(e.unref(L),{key:i.name,as:"a",href:i.href,class:e.normalizeClass([i.current?"bg-gray-900 text-white":"text-gray-300 hover:bg-gray-700 hover:text-white","block rounded-md px-3 py-2 text-base font-medium"]),"aria-current":i.current?"page":void 0},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(i.name),1)]),_:2},1032,["href","class","aria-current"])),64))]),e.createElementVNode("div",on,[e.createElementVNode("div",rn,[e.createElementVNode("div",ln,[e.createElementVNode("img",{class:"h-10 w-10 rounded-full",src:n.imageUrl,alt:""},null,8,an)]),e.createElementVNode("div",sn,[e.createElementVNode("div",cn,e.toDisplayString(n.name),1),e.createElementVNode("div",dn,e.toDisplayString(n.email),1)]),e.createElementVNode("button",un,[fn,mn,e.createVNode(e.unref(le),{class:"h-6 w-6","aria-hidden":"true"})])]),e.createElementVNode("div",pn,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(s,i=>e.createVNode(e.unref(L),{key:i.name,as:"a",href:i.href,class:"block rounded-md px-3 py-2 text-base font-medium text-gray-400 hover:bg-gray-700 hover:text-white"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(i.name),1)]),_:2},1032,["href"])),64))])])]),_:1})]),_:1}),hn]),e.createElementVNode("main",gn,[e.createElementVNode("div",_n,[e.createElementVNode("div",bn,[e.renderSlot(l.$slots,"default")])])])]))}}},Symbol.toStringTag,{value:"Module"})),xn=e.reactive({item:null,index:null,parent:null});function wn(){return{dragged:xn}}const En={key:0},kn=[e.createElementVNode("li",null,[e.createElementVNode("div",{class:"tree-placeholder"})],-1)],ae={__name:"TreeContent",props:{index:Number,parent:Object,modelValue:Object},setup(t){const{dragged:n}=wn(),o=t,s=e.ref(!1),l=e.ref(!1),a=e.ref(!0),r=e.reactive({sortkey:o.index,sortOrder:"asc"}),i=u=>{a.value=!1,n.item=o.modelValue,n.index=o.index,n.parent=o.parent,u.dataTransfer.effectAllowed="move"},f=()=>{l.value=!1},p=()=>{s.value=!1},g=u=>{u.preventDefault(),u.dataTransfer.dropEffect="move",l.value=!0},h=()=>{event.preventDefault(),event.dataTransfer.dropEffect="move",s.value=!0},c=(u,d,m)=>{u.preventDefault(),s.value=!1,l.value=!1,d!==n.item&&(a.value=!0,Object.keys(n.parent).includes("children")&&n.parent.children.splice(n.index,1),Array.isArray(n.parent)&&n.parent.splice(n.index,1),Array.isArray(d)?d.splice(m,0,n.item):(Object.keys(d).includes("children")||(d.children=[]),d.children.splice(m,0,n.item)),n.item=null,n.parent=null,n.index=null)};return(u,d)=>{const m=e.resolveComponent("font-awesome-icon"),x=e.resolveComponent("TreeContent",!0);return e.openBlock(),e.createElementBlock("li",{class:e.normalizeClass([e.unref(n).item===o.modelValue?"selected":"",o.modelValue.children&&o.modelValue.children.length?"has-child":""])},[e.createElementVNode("div",{class:e.normalizeClass(["tree-content",s.value?"hovered":""]),onDragstart:d[7]||(d[7]=_=>i(_))},[e.createElementVNode("div",{draggable:"true",onDragover:d[1]||(d[1]=_=>h()),onDrop:d[2]||(d[2]=_=>c(_,o.parent,o.index)),style:{width:"8px"},onDragleave:d[3]||(d[3]=_=>p())},[e.createElementVNode("button",{style:{"margin-left":"-8px"},class:e.normalizeClass({hide:!(o.modelValue.children&&o.modelValue.children.length)}),onClick:d[0]||(d[0]=()=>a.value=!a.value)},[a.value?(e.openBlock(),e.createBlock(m,{key:0,icon:["fas","square-minus"]})):(e.openBlock(),e.createBlock(m,{key:1,icon:["fas","square-plus"]}))],2)],32),e.createElementVNode("div",{class:"tree-item",draggable:"true",onDragleave:d[4]||(d[4]=_=>f()),onDragover:d[5]||(d[5]=_=>g(_)),onDrop:d[6]||(d[6]=_=>c(_,o.modelValue,0))},[e.renderSlot(u.$slots,"default",{element:o.modelValue,parent:o.parent,stats:r})],32)],34),l.value?(e.openBlock(),e.createElementBlock("ul",En,kn)):e.createCommentVNode("",!0),a.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(o.modelValue.children,(_,v)=>(e.openBlock(),e.createElementBlock("ul",null,[e.createVNode(x,{modelValue:o.modelValue.children[v],"onUpdate:modelValue":O=>o.modelValue.children[v]=O,parent:o.modelValue,index:v},{default:e.withCtx(({element:O,parent:$n,stats:Bn})=>[e.renderSlot(u.$slots,"default",{element:O,parent:$n,stats:Bn})]),_:2},1032,["modelValue","onUpdate:modelValue","parent","index"])]))),256)):e.createCommentVNode("",!0)],2)}}},vn=Object.freeze(Object.defineProperty({__proto__:null,default:ae},Symbol.toStringTag,{value:"Module"})),Sn={class:"trees"},se=N({__name:"Tree",props:{modelValue:Array},setup(t){const n=t;return(o,s)=>(e.openBlock(),e.createElementBlock("ul",Sn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.modelValue,(l,a)=>(e.openBlock(),e.createBlock(ae,{modelValue:n.modelValue[a],"onUpdate:modelValue":r=>n.modelValue[a]=r,parent:n.modelValue,index:a},{default:e.withCtx(({element:r,parent:i,stats:f})=>[e.renderSlot(o.$slots,"default",{element:r,parent:n.parent,stats:f},void 0,!0)]),_:2},1032,["modelValue","onUpdate:modelValue","parent","index"]))),256))]))}},[["__scopeId","data-v-50ab8038"]]),Nn=Object.freeze(Object.defineProperty({__proto__:null,default:se},Symbol.toStringTag,{value:"Module"})),Vn={install:t=>{Object.entries(Object.assign({"./components/Builder.vue":ie,"./components/forms/Form.vue":ce,"./components/forms/FormButtons.vue":pe,"./components/forms/Input.vue":we,"./components/forms/Title.vue":Ne,"./components/layout/Breadcrumbs.vue":Ie,"./components/layout/Column.vue":Ae,"./components/layout/Content.vue":He,"./components/layout/Row.vue":We,"./components/layout/Template.vue":yn,"./components/misc/Tree.vue":Nn,"./components/misc/TreeContent.vue":vn})).forEach(([o,s])=>{const l=o.split("/").pop().replace(/\.\w+$/,"");t.component(l,s.default)})}};k.Components=Vn,k.Tree=se,Object.defineProperty(k,Symbol.toStringTag,{value:"Module"})});
diff --git a/dist/style.css b/dist/style.css
index 7f8e9a7..03e0dc1 100644
--- a/dist/style.css
+++ b/dist/style.css
@@ -1 +1 @@
-*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}[type=text],input:where(:not([type])),[type=email],[type=url],[type=password],[type=number],[type=date],[type=datetime-local],[type=month],[type=search],[type=tel],[type=time],[type=week],[multiple],textarea,select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#6b7280;border-width:1px;border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem;--tw-shadow: 0 0 #0000}[type=text]:focus,input:where(:not([type])):focus,[type=email]:focus,[type=url]:focus,[type=password]:focus,[type=number]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=month]:focus,[type=search]:focus,[type=tel]:focus,[type=time]:focus,[type=week]:focus,[multiple]:focus,textarea:focus,select:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: #2563eb;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:#2563eb}input::-moz-placeholder,textarea::-moz-placeholder{color:#6b7280;opacity:1}input::placeholder,textarea::placeholder{color:#6b7280;opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field{padding-top:0;padding-bottom:0}select{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;-webkit-print-color-adjust:exact;print-color-adjust:exact}[multiple],[size]:where(select:not([size="1"])){background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;padding-right:.75rem;-webkit-print-color-adjust:unset;print-color-adjust:unset}[type=checkbox],[type=radio]{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;-webkit-print-color-adjust:exact;print-color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0;height:1rem;width:1rem;color:#2563eb;background-color:#fff;border-color:#6b7280;border-width:1px;--tw-shadow: 0 0 #0000}[type=checkbox]{border-radius:0}[type=radio]{border-radius:100%}[type=checkbox]:focus,[type=radio]:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 2px;--tw-ring-offset-color: #fff;--tw-ring-color: #2563eb;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}[type=checkbox]:checked,[type=radio]:checked{border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat}[type=checkbox]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e")}@media (forced-colors: active){[type=checkbox]:checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}[type=radio]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e")}@media (forced-colors: active){[type=radio]:checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}[type=checkbox]:checked:hover,[type=checkbox]:checked:focus,[type=radio]:checked:hover,[type=radio]:checked:focus{border-color:transparent;background-color:currentColor}[type=checkbox]:indeterminate{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat}@media (forced-colors: active){[type=checkbox]:indeterminate{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}[type=checkbox]:indeterminate:hover,[type=checkbox]:indeterminate:focus{border-color:transparent;background-color:currentColor}[type=file]{background:unset;border-color:inherit;border-width:0;border-radius:0;padding:0;font-size:unset;line-height:inherit}[type=file]:focus{outline:1px solid ButtonText;outline:1px auto -webkit-focus-ring-color}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.mx-auto{margin-left:auto;margin-right:auto}.mt-10{margin-top:2.5rem}.mt-2{margin-top:.5rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.block{display:block}.flex{display:flex}.flex-1{flex:1 1 0%}.items-center{align-items:center}.justify-end{justify-content:flex-end}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.rounded-md{border-radius:.375rem}.border-0{border-width:0px}.bg-indigo-600{--tw-bg-opacity: 1;background-color:rgb(79 70 229 / var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.px-3{padding-left:.75rem;padding-right:.75rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.pl-1{padding-left:.25rem}.text-sm{font-size:.875rem;line-height:1.25rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.leading-6{line-height:1.5rem}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-inset{--tw-ring-inset: inset}.ring-gray-300{--tw-ring-opacity: 1;--tw-ring-color: rgb(209 213 219 / var(--tw-ring-opacity))}.row{display:flex}.col{flex-grow:1;padding:0 5px}.placeholder\:text-gray-400::-moz-placeholder{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.placeholder\:text-gray-400::placeholder{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.focus-within\:ring-2:focus-within{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-within\:ring-inset:focus-within{--tw-ring-inset: inset}.focus-within\:ring-indigo-600:focus-within{--tw-ring-opacity: 1;--tw-ring-color: rgb(79 70 229 / var(--tw-ring-opacity))}.hover\:bg-indigo-500:hover{--tw-bg-opacity: 1;background-color:rgb(99 102 241 / var(--tw-bg-opacity))}.focus\:ring-0:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:outline:focus-visible{outline-style:solid}.focus-visible\:outline-2:focus-visible{outline-width:2px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-indigo-600:focus-visible{outline-color:#4f46e5}@media (min-width: 640px){.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:leading-6{line-height:1.5rem}}
+ul[data-v-50ab8038],li[data-v-50ab8038]{list-style:none;margin:0;padding:0}label[data-v-50ab8038]{font-weight:400}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}[type=text],input:where(:not([type])),[type=email],[type=url],[type=password],[type=number],[type=date],[type=datetime-local],[type=month],[type=search],[type=tel],[type=time],[type=week],[multiple],textarea,select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#6b7280;border-width:1px;border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem;--tw-shadow: 0 0 #0000}[type=text]:focus,input:where(:not([type])):focus,[type=email]:focus,[type=url]:focus,[type=password]:focus,[type=number]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=month]:focus,[type=search]:focus,[type=tel]:focus,[type=time]:focus,[type=week]:focus,[multiple]:focus,textarea:focus,select:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: #2563eb;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:#2563eb}input::-moz-placeholder,textarea::-moz-placeholder{color:#6b7280;opacity:1}input::placeholder,textarea::placeholder{color:#6b7280;opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field{padding-top:0;padding-bottom:0}select{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;-webkit-print-color-adjust:exact;print-color-adjust:exact}[multiple],[size]:where(select:not([size="1"])){background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;padding-right:.75rem;-webkit-print-color-adjust:unset;print-color-adjust:unset}[type=checkbox],[type=radio]{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;-webkit-print-color-adjust:exact;print-color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0;height:1rem;width:1rem;color:#2563eb;background-color:#fff;border-color:#6b7280;border-width:1px;--tw-shadow: 0 0 #0000}[type=checkbox]{border-radius:0}[type=radio]{border-radius:100%}[type=checkbox]:focus,[type=radio]:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 2px;--tw-ring-offset-color: #fff;--tw-ring-color: #2563eb;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}[type=checkbox]:checked,[type=radio]:checked{border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat}[type=checkbox]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e")}@media (forced-colors: active){[type=checkbox]:checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}[type=radio]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e")}@media (forced-colors: active){[type=radio]:checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}[type=checkbox]:checked:hover,[type=checkbox]:checked:focus,[type=radio]:checked:hover,[type=radio]:checked:focus{border-color:transparent;background-color:currentColor}[type=checkbox]:indeterminate{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat}@media (forced-colors: active){[type=checkbox]:indeterminate{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}[type=checkbox]:indeterminate:hover,[type=checkbox]:indeterminate:focus{border-color:transparent;background-color:currentColor}[type=file]{background:unset;border-color:inherit;border-width:0;border-radius:0;padding:0;font-size:unset;line-height:inherit}[type=file]:focus{outline:1px solid ButtonText;outline:1px auto -webkit-focus-ring-color}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.absolute{position:absolute}.relative{position:relative}.-inset-0{top:-0px;right:-0px;bottom:-0px;left:-0px}.-inset-0\.5{top:-.125rem;right:-.125rem;bottom:-.125rem;left:-.125rem}.-inset-1{top:-.25rem;right:-.25rem;bottom:-.25rem;left:-.25rem}.-inset-1\.5{top:-.375rem;right:-.375rem;bottom:-.375rem;left:-.375rem}.right-0{right:0}.z-10{z-index:10}.mx-auto{margin-left:auto;margin-right:auto}.-mr-2{margin-right:-.5rem}.-mt-32{margin-top:-8rem}.ml-10{margin-left:2.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-auto{margin-left:auto}.mt-1{margin-top:.25rem}.mt-10{margin-top:2.5rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.hidden{display:none}.h-10{height:2.5rem}.h-16{height:4rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-full{height:100%}.min-h-full{min-height:100%}.w-10{width:2.5rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-8{width:2rem}.max-w-7xl{max-width:80rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.origin-top-right{transform-origin:top right}.scale-100{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-95{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.border-0{border-width:0px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-gray-700{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}.border-gray-900\/10{border-color:#1118271a}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.bg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.bg-indigo-600{--tw-bg-opacity: 1;background-color:rgb(79 70 229 / var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.p-1{padding:.25rem}.p-2{padding:.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.pb-12{padding-bottom:3rem}.pb-3{padding-bottom:.75rem}.pb-32{padding-bottom:8rem}.pb-5{padding-bottom:1.25rem}.pl-1{padding-left:.25rem}.pt-4{padding-top:1rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.leading-6{line-height:1.5rem}.leading-7{line-height:1.75rem}.leading-none{line-height:1}.tracking-tight{letter-spacing:-.025em}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.text-rose-600{--tw-text-opacity: 1;color:rgb(225 29 72 / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.opacity-0{opacity:0}.opacity-100{opacity:1}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-inset{--tw-ring-inset: inset}.ring-black{--tw-ring-opacity: 1;--tw-ring-color: rgb(0 0 0 / var(--tw-ring-opacity))}.ring-gray-300{--tw-ring-opacity: 1;--tw-ring-color: rgb(209 213 219 / var(--tw-ring-opacity))}.ring-opacity-5{--tw-ring-opacity: .05}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.duration-75{transition-duration:75ms}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.trees{margin-left:10px}.trees li{border-left:dotted 1px #bcbec0;padding:1px 0 1px 25px;position:relative}.trees li>label{position:relative;left:-11px}.trees li:before{content:"";width:13px;height:1px;border-bottom:dotted 1px #bcbec0;position:absolute;top:14px;left:0}.trees li:last-child:after{content:"";position:absolute;width:2px;height:13px;left:-1px;bottom:0}.trees li input{margin-right:5px;margin-left:5px}.hide{opacity:0;pointer-events:none}.selected{background-color:azure}.hovered{background:#faebd7}.tree-content{cursor:pointer;display:flex;align-items:center}.tree-item{cursor:pointer;display:flex;align-items:center;width:100%}.tree-placeholder{border:dotted 1px #bcbec0;background:#faebd7;height:20px}.row{display:flex;flex-direction:row}@media only screen and (max-width: 600px){.row{flex-direction:column}}.col{flex-grow:1;padding:0 5px}.placeholder\:text-gray-400::-moz-placeholder{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.placeholder\:text-gray-400::placeholder{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.focus-within\:ring-2:focus-within{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-within\:ring-inset:focus-within{--tw-ring-inset: inset}.focus-within\:ring-indigo-600:focus-within{--tw-ring-opacity: 1;--tw-ring-color: rgb(79 70 229 / var(--tw-ring-opacity))}.hover\:bg-gray-700:hover{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.hover\:bg-indigo-500:hover{--tw-bg-opacity: 1;background-color:rgb(99 102 241 / var(--tw-bg-opacity))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-0:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-white:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus\:ring-offset-gray-800:focus{--tw-ring-offset-color: #1f2937}.focus-visible\:outline:focus-visible{outline-style:solid}.focus-visible\:outline-2:focus-visible{outline-width:2px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-indigo-600:focus-visible{outline-color:#4f46e5}@media (min-width: 640px){.sm\:px-0{padding-left:0;padding-right:0}.sm\:px-3{padding-left:.75rem;padding-right:.75rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:leading-6{line-height:1.5rem}}@media (min-width: 768px){.md\:ml-6{margin-left:1.5rem}.md\:block{display:block}.md\:hidden{display:none}}@media (min-width: 1024px){.lg\:px-8{padding-left:2rem;padding-right:2rem}}
diff --git a/dist/styles/main.css b/dist/styles/main.css
new file mode 100644
index 0000000..04696dd
--- /dev/null
+++ b/dist/styles/main.css
@@ -0,0 +1,91 @@
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
+/*Tree*/
+.trees {
+ margin-left: 10px;
+}
+
+.trees li {
+ border-left: dotted 1px #bcbec0;
+ padding: 1px 0 1px 25px;
+ position: relative;
+}
+
+.trees li > label {
+ position: relative;
+ left: -11px;
+}
+
+.trees li:before {
+ content: "";
+ width: 13px;
+ height: 1px;
+ border-bottom: dotted 1px #bcbec0;
+ position: absolute;
+ top: 14px;
+ left: 0;
+}
+
+.trees li:last-child:after {
+ content: "";
+ position: absolute;
+ width: 2px;
+ height: 13px;
+ left: -1px;
+ bottom: 0px;
+}
+
+.trees li input {
+ margin-right: 5px;
+ margin-left: 5px;
+}
+
+.hide {
+ opacity: 0;
+ pointer-events: none;
+}
+
+.selected {
+ background-color: azure;
+}
+
+.hovered {
+ background: antiquewhite;
+}
+
+.tree-content {
+ cursor: pointer;
+ display: flex;
+ align-items: center;
+}
+
+.tree-item {
+ cursor: pointer;
+ display: flex;
+ align-items: center;
+ width: 100%;
+}
+
+.tree-placeholder {
+ border: dotted 1px #bcbec0;
+ background: antiquewhite;
+ height: 20px;
+}
+
+.row {
+ display: flex;
+ flex-direction: row;
+}
+
+@media only screen and (max-width: 600px) {
+ .row {
+ flex-direction: column;
+ }
+}
+.col {
+ flex-grow: 1;
+ padding: 0 5px;
+}
+
+/*# sourceMappingURL=main.css.map */
diff --git a/dist/styles/main.css.map b/dist/styles/main.css.map
new file mode 100644
index 0000000..167774b
--- /dev/null
+++ b/dist/styles/main.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["../../src/assets/styles/main.scss","../../src/assets/styles/tree.scss"],"names":[],"mappings":"AAAA;AACA;AACA;ACDA;AACA;EACI;;;AAGJ;EACI;EACA;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;;;ADhEJ;EACI;EACA;;;AAGJ;EACI;IACI;;;AAIR;EACI;EACA","file":"main.css"}
\ No newline at end of file
diff --git a/dist/styles/tree.css b/dist/styles/tree.css
new file mode 100644
index 0000000..806dd20
--- /dev/null
+++ b/dist/styles/tree.css
@@ -0,0 +1,73 @@
+/*Tree*/
+.trees {
+ margin-left: 10px;
+}
+
+.trees li {
+ border-left: dotted 1px #bcbec0;
+ padding: 1px 0 1px 25px;
+ position: relative;
+}
+
+.trees li > label {
+ position: relative;
+ left: -11px;
+}
+
+.trees li:before {
+ content: "";
+ width: 13px;
+ height: 1px;
+ border-bottom: dotted 1px #bcbec0;
+ position: absolute;
+ top: 14px;
+ left: 0;
+}
+
+.trees li:last-child:after {
+ content: "";
+ position: absolute;
+ width: 2px;
+ height: 13px;
+ left: -1px;
+ bottom: 0px;
+}
+
+.trees li input {
+ margin-right: 5px;
+ margin-left: 5px;
+}
+
+.hide {
+ opacity: 0;
+ pointer-events: none;
+}
+
+.selected {
+ background-color: azure;
+}
+
+.hovered {
+ background: antiquewhite;
+}
+
+.tree-content {
+ cursor: pointer;
+ display: flex;
+ align-items: center;
+}
+
+.tree-item {
+ cursor: pointer;
+ display: flex;
+ align-items: center;
+ width: 100%;
+}
+
+.tree-placeholder {
+ border: dotted 1px #bcbec0;
+ background: antiquewhite;
+ height: 20px;
+}
+
+/*# sourceMappingURL=tree.css.map */
diff --git a/dist/styles/tree.css.map b/dist/styles/tree.css.map
new file mode 100644
index 0000000..e65f227
--- /dev/null
+++ b/dist/styles/tree.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["../../src/assets/styles/tree.scss"],"names":[],"mappings":"AACA;AACA;EACI;;;AAGJ;EACI;EACA;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA","file":"tree.css"}
\ No newline at end of file
diff --git a/package.json b/package.json
index dd913ac..0b2e44d 100644
--- a/package.json
+++ b/package.json
@@ -1,10 +1,10 @@
{
"name": "@scratchuz4k/site-builder",
- "version": "0.1.1",
+ "version": "0.1.4",
"type": "module",
"scripts": {
"dev": "vite",
- "build": "vite build",
+ "build": "vite build && node build-scss.cjs",
"preview": "vite preview",
"storybook": "storybook dev -p 6006",
"build-storybook": "storybook build"
diff --git a/src/assets/style.scss b/src/assets/styles/main.scss
similarity index 91%
rename from src/assets/style.scss
rename to src/assets/styles/main.scss
index ca3c748..e3c6fb7 100644
--- a/src/assets/style.scss
+++ b/src/assets/styles/main.scss
@@ -2,6 +2,8 @@
@tailwind components;
@tailwind utilities;
+@import './tree.scss';
+
.row {
display: flex;
flex-direction: row;
diff --git a/src/assets/styles/tree.scss b/src/assets/styles/tree.scss
new file mode 100644
index 0000000..2c9ff3d
--- /dev/null
+++ b/src/assets/styles/tree.scss
@@ -0,0 +1,72 @@
+
+/*Tree*/
+.trees {
+ margin-left: 10px;
+}
+
+.trees li {
+ border-left: dotted 1px #bcbec0;
+ padding: 1px 0 1px 25px;
+ position: relative
+}
+
+.trees li>label {
+ position: relative;
+ left: -11px
+}
+
+.trees li:before {
+ content: "";
+ width: 13px;
+ height: 1px;
+ border-bottom: dotted 1px #bcbec0;
+ position: absolute;
+ top: 14px;
+ left: 0
+}
+
+.trees li:last-child:after {
+ content: "";
+ position: absolute;
+ width: 2px;
+ height: 13px;
+ left: -1px;
+ bottom: 0px;
+}
+
+.trees li input {
+ margin-right: 5px;
+ margin-left: 5px
+}
+
+.hide {
+ opacity: 0;
+ pointer-events: none;
+}
+
+.selected {
+ background-color: azure;
+}
+
+.hovered {
+ background: antiquewhite;
+}
+
+.tree-content {
+ cursor: pointer;
+ display: flex;
+ align-items: center
+}
+
+.tree-item {
+ cursor: pointer;
+ display: flex;
+ align-items: center;
+ width: 100%
+}
+
+.tree-placeholder {
+ border: dotted 1px #bcbec0;
+ background: antiquewhite;
+ height: 20px
+}
\ No newline at end of file
diff --git a/src/components/misc/Tree.vue b/src/components/misc/Tree.vue
index 4971a04..0b35ed8 100644
--- a/src/components/misc/Tree.vue
+++ b/src/components/misc/Tree.vue
@@ -10,12 +10,13 @@
-
\ No newline at end of file
diff --git a/src/components/misc/TreeContent.vue b/src/components/misc/TreeContent.vue
index fa0af8b..be14509 100644
--- a/src/components/misc/TreeContent.vue
+++ b/src/components/misc/TreeContent.vue
@@ -34,6 +34,7 @@
-
-
diff --git a/src/lib.js b/src/lib.js
index 66c8f10..d4662a5 100644
--- a/src/lib.js
+++ b/src/lib.js
@@ -1,6 +1,6 @@
-import './assets/style.scss'
-
-export const components = {
+import './assets/styles/main.scss'
+import Tree from './components/misc/Tree.vue';
+const Components = {
install: (app) => {
const components = import.meta.glob("./components/**/*.vue", {
eager: true,
@@ -14,3 +14,6 @@ export const components = {
});
},
};
+
+export { Tree, Components }
+
diff --git a/src/main.js b/src/main.js
index 7fbc6b3..9a66412 100644
--- a/src/main.js
+++ b/src/main.js
@@ -1,4 +1,4 @@
-import './assets/style.scss'
+import './assets/styles/main.scss'
import { createApp } from 'vue'
import App from './App.vue'
diff --git a/src/stories/Tree.stories.js b/src/stories/Tree.stories.js
index 7e37dbc..e76e803 100644
--- a/src/stories/Tree.stories.js
+++ b/src/stories/Tree.stories.js
@@ -1,13 +1,21 @@
import Tree from '../components/misc/Tree.vue';
import TreeContent from '../components/misc/TreeContent.vue';
-
import { ref } from 'vue';
export default {
title: 'Components/Tree',
+ description: "Hello World",
tags: ["autodocs"],
component: Tree,
+ parameters: {
+ docs: {
+ subtitle: "The fastest way to display information in a tree structure.",
+ description: {
+ story: `To start the presentation, insert an array of items. Each item in the array may include a children property, which represents sub-items.`,
+ }
+ }
+ },
};