scrubbed-tailwind-components-v2 2.2.1 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- @starting-style{.backdrop[data-v-aaece1c7]{opacity:0}}.link[data-v-3b52e94a]{border:1px solid transparent}.link[data-v-3b52e94a]:has(.router-link-active){border:1px solid rgba(255,255,255,.75);background:linear-gradient(101deg,#e9eef54d 6.76%,#105fa24d 100.14%);box-shadow:0 4px 17px -1px #30537426;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.fade-in-dialog-enter-active{transition:all .15s cubic-bezier(.08,.82,.17,1)}.fade-in-dialog-leave-active{transition:all .15s cubic-bezier(.46,.03,.52,.96)}.fade-in-dialog-enter-from,.fade-in-dialog-leave-to{transform:scale(.95);opacity:0}.fade-in-dialog-enter-active{transition-delay:.05s}p[data-v-00088154]{transition-behavior:allow-discrete}.fade-in-enter-active,.fade-in-leave-active{transition:opacity .15s ease}.fade-in-enter-from,.fade-in-leave-to{opacity:0}.slide-enter-active{transition:all .5s cubic-bezier(.08,.82,.17,1)}.slide-leave-active{transition:all .15s cubic-bezier(.46,.03,.52,.96)}.slide-enter-from,.slide-leave-to{opacity:0;transform:translate(100%)}.slide-enter-active{transition-delay:.18s}.tab[data-v-9e06f71f]{border:1px solid transparent}.tab-active[data-v-9e06f71f]{border-radius:10px;border:1px solid rgba(255,255,255,.75);background:linear-gradient(101deg,#e9eef54d 6.76%,#105fa24d 100.14%);box-shadow:0 4px 17px -1px #30537426;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}
1
+ @starting-style{.backdrop[data-v-aaece1c7]{opacity:0}}.fade-in-dialog-enter-active{transition:all .15s cubic-bezier(.08,.82,.17,1)}.fade-in-dialog-leave-active{transition:all .15s cubic-bezier(.46,.03,.52,.96)}.fade-in-dialog-enter-from,.fade-in-dialog-leave-to{transform:scale(.95);opacity:0}.fade-in-dialog-enter-active{transition-delay:.05s}p[data-v-39085694]{transition-behavior:allow-discrete}.fade-in-enter-active,.fade-in-leave-active{transition:opacity .15s ease}.fade-in-enter-from,.fade-in-leave-to{opacity:0}.slide-enter-active{transition:all .5s cubic-bezier(.08,.82,.17,1)}.slide-leave-active{transition:all .15s cubic-bezier(.46,.03,.52,.96)}.slide-enter-from,.slide-leave-to{opacity:0;transform:translate(100%)}.slide-enter-active{transition-delay:.18s}.tab[data-v-9e06f71f]{border:1px solid transparent}.tab-active[data-v-9e06f71f]{border-radius:10px;border:1px solid rgba(255,255,255,.75);background:linear-gradient(101deg,#e9eef54d 6.76%,#105fa24d 100.14%);box-shadow:0 4px 17px -1px #30537426;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}
@@ -1,6 +1,6 @@
1
- import { inject as b, createElementBlock as l, openBlock as a, normalizeClass as p, unref as d, createElementVNode as c, renderSlot as i, createBlock as m, withCtx as g, ref as f, provide as w, createVNode as _, Fragment as A, Teleport as P, normalizeStyle as q, watch as U, createCommentVNode as y, resolveComponent as Y, mergeProps as k, useModel as T, withDirectives as $, vModelCheckbox as Z, onMounted as J, onUnmounted as X, Transition as S, useSlots as G, resolveDynamicComponent as N, cloneVNode as W, createStaticVNode as Q, createTextVNode as R, vModelText as H, mergeModels as K, vModelRadio as ee, vModelSelect as te, renderList as D, toDisplayString as E, computed as re } from "vue";
2
- import { RouterLink as I, useRoute as O } from "vue-router";
3
- const oe = { class: "container flex w-full items-center justify-between" }, ne = { class: "flex items-center gap-2" }, ae = { class: "flex items-center gap-10" }, se = { class: "hidden gap-6 sm:flex" }, le = {
1
+ import { inject as b, createElementBlock as l, openBlock as a, normalizeClass as p, unref as d, createElementVNode as c, renderSlot as i, createBlock as g, withCtx as m, ref as v, provide as T, resolveDynamicComponent as A, cloneVNode as S, createVNode as x, Fragment as D, Teleport as E, normalizeStyle as U, watch as Y, createCommentVNode as _, resolveComponent as Z, mergeProps as y, useModel as V, withDirectives as I, vModelCheckbox as J, onMounted as X, onUnmounted as Q, Transition as R, useSlots as H, createStaticVNode as K, createTextVNode as z, computed as O, vModelText as F, mergeModels as ee, vModelRadio as te, vModelSelect as re, renderList as M, toDisplayString as N } from "vue";
2
+ import { RouterLink as P, useRoute as q } from "vue-router";
3
+ const oe = { class: "flex w-full items-center justify-between" }, ne = { class: "flex items-center gap-2" }, ae = { class: "flex items-center gap-10" }, se = { class: "hidden gap-6 sm:flex" }, le = {
4
4
  __name: "AppHeader",
5
5
  setup(e) {
6
6
  const t = b("APP_DATA"), { isSidebarToggled: r, toggleSidebar: n } = t;
@@ -49,12 +49,12 @@ const oe = { class: "container flex w-full items-center justify-between" }, ne =
49
49
  setup(e) {
50
50
  const t = e;
51
51
  return (r, n) => (a(), l("li", null, [
52
- t.to.startsWith("/") ? (a(), m(d(I), {
52
+ t.to.startsWith("/") ? (a(), g(d(P), {
53
53
  key: 0,
54
54
  class: "hover:text-primary-950 [&.router-link-active]:text-primary-950 text-xs uppercase text-neutral-600 hover:transition-all [&.router-link-active]:font-semibold",
55
55
  to: t.to
56
56
  }, {
57
- default: g(() => [
57
+ default: m(() => [
58
58
  i(r.$slots, "default")
59
59
  ]),
60
60
  _: 3
@@ -70,7 +70,7 @@ const oe = { class: "container flex w-full items-center justify-between" }, ne =
70
70
  }, ce = { class: "relative" }, ue = { class: "flex" }, ge = {
71
71
  __name: "AppLayout",
72
72
  setup(e) {
73
- const t = f(!1);
73
+ const t = v(!1);
74
74
  function r() {
75
75
  window.innerWidth <= 640 ? (t.value = !t.value, n()) : t.value && (t.value = !1, n());
76
76
  }
@@ -78,18 +78,22 @@ const oe = { class: "container flex w-full items-center justify-between" }, ne =
78
78
  const o = document.querySelector("body");
79
79
  o.classList.contains("bg-black") ? o.classList.remove("bg-black") : o.classList.add("bg-black");
80
80
  }
81
- return w("APP_DATA", { isSidebarToggled: t, toggleSidebar: r }), (o, s) => (a(), l("div", {
82
- class: p(["bg-white transition-all duration-500 ease-[cubic-bezier(.32,.72,0,1)]", {
83
- "scale-93 origin-[center_top] translate-y-4": t.value
84
- }])
85
- }, [
86
- c("div", ce, [
87
- i(o.$slots, "header"),
88
- c("div", ue, [
89
- i(o.$slots, "content")
81
+ return T("APP_DATA", { isSidebarToggled: t, toggleSidebar: r }), (o, s) => {
82
+ var u, f, $, C, h, B;
83
+ return a(), l("div", {
84
+ class: p(["bg-white transition-all duration-500 ease-[cubic-bezier(.32,.72,0,1)]", {
85
+ "origin-[center_top] translate-y-4 scale-93": t.value
86
+ }])
87
+ }, [
88
+ c("div", ce, [
89
+ (a(), g(A(S((f = (u = o.$slots).default) == null ? void 0 : f.call(u)[0])))),
90
+ c("div", ue, [
91
+ (a(), g(A(S((C = ($ = o.$slots).default) == null ? void 0 : C.call($)[1])))),
92
+ (a(), g(A(S((B = (h = o.$slots).default) == null ? void 0 : B.call(h)[2]))))
93
+ ])
90
94
  ])
91
- ])
92
- ], 2));
95
+ ], 2);
96
+ };
93
97
  }
94
98
  }, pe = {
95
99
  __name: "AppMain",
@@ -97,14 +101,14 @@ const oe = { class: "container flex w-full items-center justify-between" }, ne =
97
101
  const t = b("APP_DATA"), { isSidebarToggled: r } = t;
98
102
  return (n, o) => (a(), l("main", {
99
103
  class: p([
100
- "bg-background-main fixed z-[-1] h-svh w-full overflow-auto px-6 pb-9 pt-24 sm:top-16 sm:ml-[223px] sm:h-[calc(100dvh-4rem)] sm:w-[calc(100dvw-223px)] sm:pt-9",
104
+ "bg-background-main fixed z-[-1] h-svh w-full overflow-auto px-6 pt-24 pb-9 sm:top-16 sm:ml-[223px] sm:h-[calc(100dvh-4rem)] sm:w-[calc(100dvw-223px)] sm:pt-9",
101
105
  d(r) ? "overflow-hidden rounded-t-xl sm:rounded-none" : "sm:rounded-tl-2xl"
102
106
  ])
103
107
  }, [
104
108
  i(n.$slots, "default")
105
109
  ], 2));
106
110
  }
107
- }, h = (e, t) => {
111
+ }, k = (e, t) => {
108
112
  const r = e.__vccOpts || e;
109
113
  for (const [n, o] of t)
110
114
  r[n] = o;
@@ -115,19 +119,19 @@ function fe(e, t) {
115
119
  i(e.$slots, "default")
116
120
  ]);
117
121
  }
118
- const he = /* @__PURE__ */ h(me, [["render", fe]]), xe = { class: "shrink-0" }, ve = {
122
+ const he = /* @__PURE__ */ k(me, [["render", fe]]), ve = { class: "shrink-0" }, xe = {
119
123
  __name: "AppNavTab",
120
124
  props: {
121
125
  to: { type: String, required: !0 }
122
126
  },
123
127
  setup(e) {
124
128
  const t = e;
125
- return f(null), (r, n) => (a(), l("div", xe, [
126
- _(d(I), {
129
+ return v(null), (r, n) => (a(), l("div", ve, [
130
+ x(d(P), {
127
131
  class: "[&.router-link-exact-active]:text-primary-950 [&.router-link-exact-active]:border-brand-primary-700 hover:text-brand-primary-700 group relative flex h-12 shrink-0 items-center justify-between gap-2 border-b-2 border-transparent px-3 text-sm text-neutral-600 transition-all [&.router-link-exact-active]:font-medium",
128
132
  to: t.to
129
133
  }, {
130
- default: g(() => [
134
+ default: m(() => [
131
135
  i(r.$slots, "default"),
132
136
  n[0] || (n[0] = c("div", { class: "bg-primary-100 absolute inset-x-0 z-[-1] h-8 w-full rounded-lg opacity-0 transition-all contain-strict group-hover:transform-none group-hover:opacity-100 group-hover:[transform-origin:50%_50%_0px]" }, null, -1))
133
137
  ]),
@@ -140,14 +144,14 @@ const he = /* @__PURE__ */ h(me, [["render", fe]]), xe = { class: "shrink-0" },
140
144
  __name: "AppSidebar",
141
145
  setup(e) {
142
146
  const t = b("APP_DATA"), { isSidebarToggled: r, toggleSidebar: n } = t;
143
- return (o, s) => (a(), l(A, null, [
147
+ return (o, s) => (a(), l(D, null, [
144
148
  c("aside", _e, [
145
149
  i(o.$slots, "default", {}, void 0, !0)
146
150
  ]),
147
- (a(), m(P, { to: "body" }, [
151
+ (a(), g(E, { to: "body" }, [
148
152
  c("div", {
149
153
  class: "shadow-t-2xl fixed bottom-0 z-50 h-[60svh] w-full space-y-4 overflow-y-scroll rounded-t-2xl bg-white p-4 transition-all duration-500 ease-[cubic-bezier(.32,.72,0,1)] [&::-webkit-scrollbar]:hidden",
150
- style: q(
154
+ style: U(
151
155
  d(r) ? "transform: translateZ(0)" : "transform: translate3d(0,60svh,0)"
152
156
  )
153
157
  }, [
@@ -163,15 +167,15 @@ const he = /* @__PURE__ */ h(me, [["render", fe]]), xe = { class: "shrink-0" },
163
167
  ]))
164
168
  ], 64));
165
169
  }
166
- }, ke = /* @__PURE__ */ h(ye, [["__scopeId", "data-v-aaece1c7"]]), Ce = { class: "flex flex-col" }, we = {
170
+ }, ke = /* @__PURE__ */ k(ye, [["__scopeId", "data-v-aaece1c7"]]), Ce = { class: "flex flex-col" }, we = {
167
171
  __name: "AppSidebarItem",
168
172
  setup(e) {
169
- O();
170
- const t = f(!1);
173
+ q();
174
+ const t = v(!1);
171
175
  function r() {
172
176
  t.value = !t.value;
173
177
  }
174
- return w("SIDEBAR_TOGGLE", { toggled: t, toggleSidebarItem: r }), (n, o) => (a(), l("div", Ce, [
178
+ return T("SIDEBAR_TOGGLE", { toggled: t, toggleSidebarItem: r }), (n, o) => (a(), l("div", Ce, [
175
179
  i(n.$slots, "default")
176
180
  ]));
177
181
  }
@@ -182,12 +186,12 @@ const he = /* @__PURE__ */ h(me, [["render", fe]]), xe = { class: "shrink-0" },
182
186
  },
183
187
  setup(e) {
184
188
  const t = e;
185
- return (r, n) => typeof t.to == "object" || t.to.startsWith("/") ? (a(), m(d(I), {
189
+ return (r, n) => typeof t.to == "object" || t.to.startsWith("/") ? (a(), g(d(P), {
186
190
  key: 0,
187
191
  class: "[&.router-link-exact-active]:text-primary-950 [&.router-link-exact-active]:bg-background-main text-primary-950 hover:bg-background-main block h-10 items-center gap-3 overflow-hidden rounded-lg px-3 text-xs leading-[40px] text-ellipsis whitespace-nowrap transition-all [&.router-link-exact-active]:font-medium",
188
192
  to: t.to
189
193
  }, {
190
- default: g(() => [
194
+ default: m(() => [
191
195
  i(r.$slots, "default")
192
196
  ]),
193
197
  _: 3
@@ -209,7 +213,7 @@ const he = /* @__PURE__ */ h(me, [["render", fe]]), xe = { class: "shrink-0" },
209
213
  i(n.$slots, "default")
210
214
  ], 2));
211
215
  }
212
- }, Te = { class: "link group/sidebar-item hover:bg-background-main has-[&.router-link-active]:bg-background-main peer flex h-10 items-center justify-between rounded-lg px-3 transition-all" }, Ie = ["href"], Be = {
216
+ }, Te = { class: "link group/sidebar-item hover:bg-background-main peer has-[&.router-link-active]:from-brand-primary-50 has-[&.router-link-active]:to-brand-primary-100 flex h-10 items-center justify-between rounded-lg px-3 transition-all has-[&.router-link-active]:bg-gradient-to-br" }, Ie = ["href"], Be = {
213
217
  __name: "AppSidebarItemParent",
214
218
  props: {
215
219
  to: { type: [String, Object], required: !0 },
@@ -217,21 +221,21 @@ const he = /* @__PURE__ */ h(me, [["render", fe]]), xe = { class: "shrink-0" },
217
221
  hasChildren: { type: Boolean, default: !1 }
218
222
  },
219
223
  setup(e) {
220
- const t = O(), r = e, n = b("SIDEBAR_TOGGLE"), o = b("APP_DATA"), { toggled: s, toggleSidebarItem: u } = n, { toggleSidebar: x } = o;
221
- function j() {
224
+ const t = q(), r = e, n = b("SIDEBAR_TOGGLE"), o = b("APP_DATA"), { toggled: s, toggleSidebarItem: u } = n, { toggleSidebar: f } = o;
225
+ function $() {
222
226
  t.matched.some(
223
- (v) => r.name === v.name
227
+ (h) => r.name === h.name
224
228
  ) ? s.value = !0 : s.value = !1;
225
229
  }
226
- return U(t, () => j(), { immediate: !0 }), (B, v) => (a(), l("div", Te, [
227
- typeof r.to == "object" || r.to.startsWith("/") ? (a(), m(d(I), {
230
+ return Y(t, () => $(), { immediate: !0 }), (C, h) => (a(), l("div", Te, [
231
+ typeof r.to == "object" || r.to.startsWith("/") ? (a(), g(d(P), {
228
232
  key: 0,
229
- onClick: v[0] || (v[0] = (F) => d(x)()),
230
- class: "[&.router-link-active]:text-primary-800 text-primary-950 peer flex h-full w-full items-center gap-3 text-xs [&.router-link-active]:font-medium",
233
+ onClick: h[0] || (h[0] = (B) => d(f)()),
234
+ class: "[&.router-link-active]:text-primary-700 text-primary-950 peer flex h-full w-full items-center gap-3 text-xs [&.router-link-active]:font-medium",
231
235
  to: r.to
232
236
  }, {
233
- default: g(() => [
234
- i(B.$slots, "default", {}, void 0, !0)
237
+ default: m(() => [
238
+ i(C.$slots, "default")
235
239
  ]),
236
240
  _: 3
237
241
  }, 8, ["to"])) : (a(), l("a", {
@@ -239,12 +243,12 @@ const he = /* @__PURE__ */ h(me, [["render", fe]]), xe = { class: "shrink-0" },
239
243
  class: "text-primary-950 peer flex h-full w-full items-center gap-3 text-xs",
240
244
  href: r.to
241
245
  }, [
242
- i(B.$slots, "default", {}, void 0, !0)
246
+ i(C.$slots, "default")
243
247
  ], 8, Ie)),
244
248
  r.hasChildren ? (a(), l("button", {
245
249
  key: 2,
246
- onClick: v[1] || (v[1] = (F) => d(u)()),
247
- class: "cursor-pointer rounded-full p-1 transition-all hover:bg-neutral-100",
250
+ onClick: h[1] || (h[1] = (B) => d(u)()),
251
+ class: "hover:bg-brand-primary-200 cursor-pointer rounded-full p-1 transition-all",
248
252
  type: "button"
249
253
  }, [
250
254
  (a(), l("svg", {
@@ -257,25 +261,25 @@ const he = /* @__PURE__ */ h(me, [["render", fe]]), xe = { class: "shrink-0" },
257
261
  "stroke-width": "2",
258
262
  "stroke-linecap": "round",
259
263
  "stroke-linejoin": "round",
260
- class: p(["lucide lucide-chevron-down-icon lucide-chevron-down stroke-primary-800 transition-all duration-300", { "rotate-180": d(s) }])
261
- }, v[2] || (v[2] = [
264
+ class: p(["lucide lucide-chevron-down-icon lucide-chevron-down stroke-brand-primary-800 transition-all duration-300", { "rotate-180": d(s) }])
265
+ }, h[2] || (h[2] = [
262
266
  c("path", { d: "m6 9 6 6 6-6" }, null, -1)
263
267
  ]), 2))
264
- ])) : y("", !0)
268
+ ])) : _("", !0)
265
269
  ]));
266
270
  }
267
- }, De = /* @__PURE__ */ h(Be, [["__scopeId", "data-v-3b52e94a"]]), Re = { class: "hover:bg-background-main has-[&.router-link-active]:active has-[&.router-link-active]:bg-primary-700 peer flex h-10 items-center justify-between rounded-lg px-3 transition-all" }, Ve = {
271
+ }, De = { class: "hover:bg-background-main has-[&.router-link-active]:active has-[&.router-link-active]:bg-primary-700 peer flex h-10 items-center justify-between rounded-lg px-3 transition-all" }, Re = {
268
272
  __name: "AppSidebarToggle",
269
273
  setup(e) {
270
274
  const t = b("SIDEBAR_TOGGLE");
271
275
  return (r, n) => {
272
- const o = Y("RouterLink");
273
- return a(), l("div", Re, [
274
- _(o, {
276
+ const o = Z("RouterLink");
277
+ return a(), l("div", De, [
278
+ x(o, {
275
279
  class: "text-primary-950 peer flex h-full w-full items-center gap-3 text-xs [&.router-link-active]:font-medium [&.router-link-active]:text-white",
276
280
  to: "/"
277
281
  }, {
278
- default: g(() => [
282
+ default: m(() => [
279
283
  i(r.$slots, "default")
280
284
  ]),
281
285
  _: 3
@@ -303,21 +307,21 @@ const he = /* @__PURE__ */ h(me, [["render", fe]]), xe = { class: "shrink-0" },
303
307
  ]);
304
308
  };
305
309
  }
306
- }, Pe = {}, Me = {
310
+ }, Ve = {}, Pe = {
307
311
  key: 0,
308
312
  class: "text-primary-950 px-1 text-sm font-medium"
309
- }, ze = { class: "mt-2" };
310
- function je(e, t) {
313
+ }, Me = { class: "mt-2" };
314
+ function ze(e, t) {
311
315
  return a(), l("nav", null, [
312
- e.$slots.title ? (a(), l("b", Me, [
316
+ e.$slots.title ? (a(), l("b", Pe, [
313
317
  i(e.$slots, "title")
314
- ])) : y("", !0),
315
- c("div", ze, [
318
+ ])) : _("", !0),
319
+ c("div", Me, [
316
320
  i(e.$slots, "items")
317
321
  ])
318
322
  ]);
319
323
  }
320
- const Ee = /* @__PURE__ */ h(Pe, [["render", je]]), L = {
324
+ const je = /* @__PURE__ */ k(Ve, [["render", ze]]), W = {
321
325
  /* ---------------- Solid Buttons ---------------- */
322
326
  primary: {
323
327
  backgroundColor: "bg-brand-primary-700",
@@ -406,7 +410,7 @@ const Ee = /* @__PURE__ */ h(Pe, [["render", je]]), L = {
406
410
  backgroundColor: "bg-transparent",
407
411
  textColor: "text-warning-600"
408
412
  }
409
- }, C = {
413
+ }, w = {
410
414
  /* ---------------- Solid Buttons ---------------- */
411
415
  primary: {
412
416
  backgroundColor: "bg-gradient-to-br from-brand-primary-500 to-brand-primary-700",
@@ -545,7 +549,7 @@ const Ee = /* @__PURE__ */ h(Pe, [["render", je]]), L = {
545
549
  hoverTextColor: "hover:text-warning-700",
546
550
  focusRing: "focus:ring-warning-200"
547
551
  }
548
- }, Le = {
552
+ }, Ee = {
549
553
  __name: "Badge",
550
554
  props: {
551
555
  variant: { type: String, default: "primary" }
@@ -554,28 +558,28 @@ const Ee = /* @__PURE__ */ h(Pe, [["render", je]]), L = {
554
558
  const t = e;
555
559
  return (r, n) => (a(), l("div", {
556
560
  class: p(["rounded-full px-3 py-1 text-xs font-medium", [
557
- d(L)[t.variant].backgroundColor,
558
- d(L)[t.variant].textColor
561
+ d(W)[t.variant].backgroundColor,
562
+ d(W)[t.variant].textColor
559
563
  ]])
560
564
  }, [
561
565
  i(r.$slots, "default")
562
566
  ], 2));
563
567
  }
564
- }, V = {
568
+ }, j = {
565
569
  __name: "Button",
566
570
  props: {
567
571
  variant: { type: String, default: "primary" }
568
572
  },
569
573
  setup(e, { expose: t }) {
570
- const r = e, n = f(null);
571
- return t({ buttonRef: n }), (o, s) => (a(), l("button", k(o.$attrs, {
574
+ const r = e, n = v(null);
575
+ return t({ buttonRef: n }), (o, s) => (a(), l("button", y(o.$attrs, {
572
576
  class: ["cursor-pointer rounded-lg px-4 py-2 text-xs transition-all active:scale-[0.97] disabled:cursor-not-allowed disabled:opacity-50 disabled:active:scale-100", [
573
- d(C)[r.variant].backgroundColor,
574
- d(C)[r.variant].borderColor,
575
- d(C)[r.variant].textColor,
576
- d(C)[r.variant].hoverBackgroundColor,
577
- d(C)[r.variant].hoverTextColor,
578
- d(C)[r.variant].focusRing
577
+ d(w)[r.variant].backgroundColor,
578
+ d(w)[r.variant].borderColor,
579
+ d(w)[r.variant].textColor,
580
+ d(w)[r.variant].hoverBackgroundColor,
581
+ d(w)[r.variant].hoverTextColor,
582
+ d(w)[r.variant].focusRing
579
583
  ]],
580
584
  ref_key: "buttonRef",
581
585
  ref: n
@@ -583,13 +587,13 @@ const Ee = /* @__PURE__ */ h(Pe, [["render", je]]), L = {
583
587
  i(o.$slots, "default")
584
588
  ], 16));
585
589
  }
586
- }, Ge = {}, Ne = { class: "rounded-2xl bg-white p-6" };
587
- function We(e, t) {
588
- return a(), l("div", Ne, [
590
+ }, Le = {}, Ge = { class: "rounded-2xl bg-white p-6" };
591
+ function Ne(e, t) {
592
+ return a(), l("div", Ge, [
589
593
  i(e.$slots, "default")
590
594
  ]);
591
595
  }
592
- const M = /* @__PURE__ */ h(Ge, [["render", We]]), He = {
596
+ const L = /* @__PURE__ */ k(Le, [["render", Ne]]), We = {
593
597
  __name: "Checkbox",
594
598
  props: {
595
599
  modelValue: {},
@@ -597,7 +601,7 @@ const M = /* @__PURE__ */ h(Ge, [["render", We]]), He = {
597
601
  },
598
602
  emits: ["update:modelValue"],
599
603
  setup(e) {
600
- const t = T(e, "modelValue"), r = f(null);
604
+ const t = V(e, "modelValue"), r = v(null);
601
605
  return (n, o) => (a(), l("button", {
602
606
  onClick: o[1] || (o[1] = (s) => r.value.click()),
603
607
  class: "group/checkbox has-checked:bg-brand-primary-700 flex size-4 cursor-pointer items-center justify-center rounded-sm bg-neutral-200 transition-all duration-300 active:scale-[0.50] has-disabled:cursor-not-allowed has-disabled:opacity-50"
@@ -616,109 +620,109 @@ const M = /* @__PURE__ */ h(Ge, [["render", We]]), He = {
616
620
  }, [
617
621
  c("path", { d: "M20 6 9 17l-5-5" })
618
622
  ], -1)),
619
- $(c("input", k(n.$attrs, {
623
+ I(c("input", y(n.$attrs, {
620
624
  "onUpdate:modelValue": o[0] || (o[0] = (s) => t.value = s),
621
625
  type: "checkbox",
622
626
  ref_key: "checkboxRef",
623
627
  ref: r,
624
628
  hidden: ""
625
629
  }), null, 16), [
626
- [Z, t.value]
630
+ [J, t.value]
627
631
  ])
628
632
  ]));
629
633
  }
630
- }, Oe = {
634
+ }, He = {
631
635
  __name: "Dialog",
632
636
  setup(e) {
633
- const t = f(!1);
637
+ const t = v(!1);
634
638
  function r() {
635
639
  t.value = !t.value;
636
640
  }
637
- return w("DIALOG_META", { toggled: t, toggleDialog: r }), (n, o) => i(n.$slots, "default", {
641
+ return T("DIALOG_META", { toggled: t, toggleDialog: r }), (n, o) => i(n.$slots, "default", {
638
642
  toggled: t.value,
639
643
  toggleDialog: r
640
644
  });
641
645
  }
642
- }, z = {
646
+ }, G = {
643
647
  __name: "DialogBackground",
644
648
  setup(e) {
645
- return J(() => {
649
+ return X(() => {
646
650
  document.querySelector("body").classList.add("overflow-hidden");
647
- }), X(() => {
651
+ }), Q(() => {
648
652
  document.querySelector("body").classList.remove("overflow-hidden");
649
- }), (t, r) => (a(), l("div", k(t.$attrs, { class: "pointer-events-auto fixed inset-0 z-[100] min-h-screen bg-black/80 backdrop-blur-[2px]" }), [
653
+ }), (t, r) => (a(), l("div", y(t.$attrs, { class: "pointer-events-auto fixed inset-0 z-[100] min-h-screen bg-black/80 backdrop-blur-[2px]" }), [
650
654
  i(t.$slots, "default")
651
655
  ], 16));
652
656
  }
653
- }, Fe = {
657
+ }, Oe = {
654
658
  __name: "DialogContent",
655
659
  props: {
656
660
  class: { type: String }
657
661
  },
658
662
  setup(e) {
659
663
  const t = e, { toggled: r, toggleDialog: n } = b("DIALOG_META");
660
- return (o, s) => (a(), m(P, { to: "body" }, [
661
- _(S, { name: "fade-in" }, {
662
- default: g(() => [
663
- d(r) ? (a(), m(z, {
664
+ return (o, s) => (a(), g(E, { to: "body" }, [
665
+ x(R, { name: "fade-in" }, {
666
+ default: m(() => [
667
+ d(r) ? (a(), g(G, {
664
668
  key: 0,
665
669
  onClick: s[0] || (s[0] = (u) => d(n)()),
666
670
  class: "z-[175]"
667
- })) : y("", !0)
671
+ })) : _("", !0)
668
672
  ]),
669
673
  _: 1
670
674
  }),
671
- _(S, { name: "fade-in-dialog" }, {
672
- default: g(() => [
673
- d(r) ? (a(), m(M, {
675
+ x(R, { name: "fade-in-dialog" }, {
676
+ default: m(() => [
677
+ d(r) ? (a(), g(L, {
674
678
  key: 0,
675
679
  class: p(["fixed top-1/2 left-1/2 z-[200] -translate-x-1/2 -translate-y-1/2 rounded-xl bg-white transition-all", t.class])
676
680
  }, {
677
- default: g(() => [
681
+ default: m(() => [
678
682
  i(o.$slots, "default")
679
683
  ]),
680
684
  _: 3
681
- }, 8, ["class"])) : y("", !0)
685
+ }, 8, ["class"])) : _("", !0)
682
686
  ]),
683
687
  _: 3
684
688
  })
685
689
  ]));
686
690
  }
687
- }, qe = {
691
+ }, Fe = {
688
692
  __name: "DialogToggle",
689
693
  setup(e) {
690
- const t = G(), { toggleDialog: r } = b("DIALOG_META");
694
+ const t = H(), { toggleDialog: r } = b("DIALOG_META");
691
695
  return (n, o) => {
692
696
  var s, u;
693
- return a(), m(N(
694
- W((u = (s = d(t)).default) == null ? void 0 : u.call(s)[0], {
697
+ return a(), g(A(
698
+ S((u = (s = d(t)).default) == null ? void 0 : u.call(s)[0], {
695
699
  onClick: d(r)
696
700
  })
697
701
  ));
698
702
  };
699
703
  }
700
- }, Ue = { class: "flex flex-col items-center justify-center gap-8" }, Ye = { class: "flex items-center gap-2" }, Ze = {
704
+ }, qe = { class: "flex flex-col items-center justify-center gap-8" }, Ue = { class: "flex items-center gap-2" }, Ye = {
701
705
  __name: "Empty",
702
706
  setup(e) {
703
- return (t, r) => (a(), l("div", Ue, [
704
- r[2] || (r[2] = Q('<div class="flex max-w-xs flex-col items-center gap-2 text-center"><div class="bg-brand-primary-100 mb-2 grid size-12 place-items-center rounded-full"><svg xmlns="http://www.w3.org/2000/svg" class="text-brand-primary-700 h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M9 13h6m-3-3v6m5 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"></path></svg></div><b class="text-lg font-medium">No Projects Yet</b><p class="text-sm text-neutral-600"> You haven&#39;t created any projects yet. Get started by creating your first project. </p></div>', 1)),
705
- c("div", Ye, [
706
- _(V, {
707
+ return (t, r) => (a(), l("div", qe, [
708
+ r[2] || (r[2] = K('<div class="flex max-w-xs flex-col items-center gap-2 text-center"><div class="bg-brand-primary-100 mb-2 grid size-12 place-items-center rounded-full"><svg xmlns="http://www.w3.org/2000/svg" class="text-brand-primary-700 h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M9 13h6m-3-3v6m5 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"></path></svg></div><b class="text-lg font-medium">No Projects Yet</b><p class="text-sm text-neutral-600"> You haven&#39;t created any projects yet. Get started by creating your first project. </p></div>', 1)),
709
+ c("div", Ue, [
710
+ x(j, {
707
711
  class: "h-10",
708
712
  variant: "outlined"
709
713
  }, {
710
- default: g(() => r[0] || (r[0] = [
711
- R("Import Project")
714
+ default: m(() => r[0] || (r[0] = [
715
+ z("Import Project")
712
716
  ])),
713
717
  _: 1,
714
718
  __: [0]
715
719
  }),
716
- _(V, {
720
+ x(j, {
717
721
  class: "h-10",
718
722
  variant: "primary"
719
723
  }, {
720
- default: g(() => r[1] || (r[1] = [
721
- R("Create Project")
724
+ default: m(() => r[1] || (r[1] = [
725
+ z("Create Project")
722
726
  ])),
723
727
  _: 1,
724
728
  __: [1]
@@ -726,23 +730,27 @@ const M = /* @__PURE__ */ h(Ge, [["render", We]]), He = {
726
730
  ])
727
731
  ]));
728
732
  }
729
- }, Je = { class: "group flex flex-col gap-2" }, Xe = {
733
+ }, Ze = {
730
734
  __name: "FormField",
731
735
  props: {
736
+ invalid: { type: [Boolean, String] },
732
737
  validate: { type: Boolean, default: !1 }
733
738
  },
734
739
  setup(e) {
735
- return (t, r) => (a(), l("div", Je, [
736
- i(t.$slots, "default")
737
- ]));
740
+ const t = e, r = O(() => t.invalid === !0 || typeof t.invalid == "string" && t.invalid.trim() !== "");
741
+ return (n, o) => (a(), l("div", {
742
+ class: p(["group flex flex-col gap-2", { "invalid-form": r.value }])
743
+ }, [
744
+ i(n.$slots, "default")
745
+ ], 2));
738
746
  }
739
- }, Qe = {}, Ke = { class: "text-danger-700 hidden h-0 text-xs opacity-0 transition-all group-has-user-invalid:mt-1 group-has-user-invalid:block group-has-user-invalid:h-4 group-has-user-invalid:opacity-100" };
740
- function et(e, t) {
741
- return a(), l("p", Ke, [
747
+ }, Je = {}, Xe = { class: "text-danger-700 hidden h-0 text-xs opacity-0 transition-all group-has-user-invalid:mt-1 group-has-user-invalid:block group-has-user-invalid:h-4 group-has-user-invalid:opacity-100 group-[&.invalid-form]:mt-1 group-[&.invalid-form]:block group-[&.invalid-form]:h-4 group-[&.invalid-form]:opacity-100" };
748
+ function Qe(e, t) {
749
+ return a(), l("p", Xe, [
742
750
  i(e.$slots, "default", {}, void 0, !0)
743
751
  ]);
744
752
  }
745
- const tt = /* @__PURE__ */ h(Qe, [["render", et], ["__scopeId", "data-v-00088154"]]), rt = {
753
+ const Ke = /* @__PURE__ */ k(Je, [["render", Qe], ["__scopeId", "data-v-39085694"]]), et = {
746
754
  __name: "Input",
747
755
  props: {
748
756
  modelValue: {},
@@ -750,23 +758,23 @@ const tt = /* @__PURE__ */ h(Qe, [["render", et], ["__scopeId", "data-v-00088154
750
758
  },
751
759
  emits: ["update:modelValue"],
752
760
  setup(e) {
753
- const t = T(e, "modelValue");
754
- return (r, n) => $((a(), l("input", {
761
+ const t = V(e, "modelValue");
762
+ return (r, n) => I((a(), l("input", {
755
763
  "onUpdate:modelValue": n[0] || (n[0] = (o) => t.value = o),
756
- class: "text-primary-950 focus:ring-brand-primary-700 focus:user-invalid:ring-danger-700 user-invalid:ring-danger-700 rounded-lg border-[1px] border-neutral-200 bg-white px-3 py-2 text-xs ring-offset-2 transition-all duration-300 outline-none placeholder:text-neutral-400 user-invalid:ring-2 focus:ring-2 disabled:cursor-not-allowed disabled:opacity-50"
764
+ class: "group-[&.invalid-form]:focus:ring-danger-700 group-[&.invalid-form]:ring-danger-700 text-primary-950 focus:ring-brand-primary-700 focus:user-invalid:ring-danger-700 user-invalid:ring-danger-700 rounded-lg border-[1px] border-neutral-200 bg-white px-3 py-2 text-xs ring-offset-2 transition-all duration-300 outline-none group-[&.invalid-form]:ring-2 placeholder:text-neutral-400 user-invalid:ring-2 focus:ring-2 group-[&.invalid-form]:focus:ring-2 disabled:cursor-not-allowed disabled:opacity-50"
757
765
  }, null, 512)), [
758
- [H, t.value]
766
+ [F, t.value]
759
767
  ]);
760
768
  }
761
- }, ot = {};
762
- function nt(e, t) {
763
- return a(), l("label", k(e.$attrs, { class: "text-primary-950 text-xs font-medium transition-all" }), [
769
+ }, tt = {};
770
+ function rt(e, t) {
771
+ return a(), l("label", y(e.$attrs, { class: "text-primary-950 text-xs font-medium transition-all" }), [
764
772
  i(e.$slots, "default")
765
773
  ], 16);
766
774
  }
767
- const at = /* @__PURE__ */ h(ot, [["render", nt]]), st = {
775
+ const ot = /* @__PURE__ */ k(tt, [["render", rt]]), nt = {
768
776
  __name: "Radio",
769
- props: /* @__PURE__ */ K({
777
+ props: /* @__PURE__ */ ee({
770
778
  variant: { type: String, default: "small" }
771
779
  }, {
772
780
  modelValue: {},
@@ -774,12 +782,12 @@ const at = /* @__PURE__ */ h(ot, [["render", nt]]), st = {
774
782
  }),
775
783
  emits: ["update:modelValue"],
776
784
  setup(e) {
777
- const t = T(e, "modelValue"), r = e, n = f(null), o = {
785
+ const t = V(e, "modelValue"), r = e, n = v(null), o = {
778
786
  small: { outerCircleSize: "size-4", innerCircleSize: "size-2.5" },
779
787
  large: { outerCircleSize: "size-5", innerCircleSize: "size-3" }
780
788
  };
781
789
  return (s, u) => (a(), l("button", {
782
- onClick: u[1] || (u[1] = (x) => n.value.click()),
790
+ onClick: u[1] || (u[1] = (f) => n.value.click()),
783
791
  class: p(["group/radio has-checked:border-brand-primary-700 flex cursor-pointer items-center justify-center rounded-full border-[1px] border-transparent bg-neutral-100 duration-300 active:scale-[0.80] has-checked:bg-white", o[r.variant].outerCircleSize]),
784
792
  role: "radio",
785
793
  type: "button"
@@ -789,18 +797,18 @@ const at = /* @__PURE__ */ h(ot, [["render", nt]]), st = {
789
797
  }, [
790
798
  i(s.$slots, "default")
791
799
  ], 2),
792
- $(c("input", k(s.$attrs, {
793
- "onUpdate:modelValue": u[0] || (u[0] = (x) => t.value = x),
800
+ I(c("input", y(s.$attrs, {
801
+ "onUpdate:modelValue": u[0] || (u[0] = (f) => t.value = f),
794
802
  type: "radio",
795
803
  ref_key: "radioRef",
796
804
  ref: n,
797
805
  hidden: ""
798
806
  }), null, 16), [
799
- [ee, t.value]
807
+ [te, t.value]
800
808
  ])
801
809
  ], 2));
802
810
  }
803
- }, lt = "bg-[url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiM1YjYxNmUiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBjbGFzcz0ibHVjaWRlIGx1Y2lkZS1jaGV2cm9uLWRvd24iPjxwYXRoIGQ9Im02IDkgNiA2IDYtNiIvPjwvc3ZnPg==')]", it = {
811
+ }, at = "bg-[url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiM1YjYxNmUiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBjbGFzcz0ibHVjaWRlIGx1Y2lkZS1jaGV2cm9uLWRvd24iPjxwYXRoIGQ9Im02IDkgNiA2IDYtNiIvPjwvc3ZnPg==')]", st = {
804
812
  __name: "Select",
805
813
  props: {
806
814
  modelValue: {},
@@ -808,79 +816,79 @@ const at = /* @__PURE__ */ h(ot, [["render", nt]]), st = {
808
816
  },
809
817
  emits: ["update:modelValue"],
810
818
  setup(e) {
811
- const t = T(e, "modelValue");
812
- return (r, n) => $((a(), l("select", k(r.$attrs, {
819
+ const t = V(e, "modelValue");
820
+ return (r, n) => I((a(), l("select", y(r.$attrs, {
813
821
  "onUpdate:modelValue": n[0] || (n[0] = (o) => t.value = o),
814
- class: ["text-primary-950 user-invalid:ring-danger-700 focus:user-invalid:ring-danger-700 focus:ring-brand-primary-700 appearance-none rounded-lg border-[1px] border-neutral-200 bg-white bg-[length:16px] bg-[right_12px_center] bg-no-repeat px-3 py-2 text-xs ring-offset-2 transition-all outline-none user-invalid:ring-2 focus:ring-2 disabled:cursor-not-allowed disabled:opacity-50", lt]
822
+ class: ["group-[&.invalid-form]:ring-danger-700 group-[&.invalid-form]:focus:ring-danger-700 text-primary-950 user-invalid:ring-danger-700 focus:user-invalid:ring-danger-700 focus:ring-brand-primary-700 appearance-none rounded-lg border-[1px] border-neutral-200 bg-white bg-[length:16px] bg-[right_12px_center] bg-no-repeat px-3 py-2 text-xs ring-offset-2 transition-all outline-none group-[&.invalid-form]:ring-2 user-invalid:ring-2 focus:ring-2 group-[&.invalid-form]:focus:ring-2 disabled:cursor-not-allowed disabled:opacity-50", at]
815
823
  }), [
816
824
  i(r.$slots, "default")
817
825
  ], 16)), [
818
- [te, t.value]
826
+ [re, t.value]
819
827
  ]);
820
828
  }
821
- }, dt = {
829
+ }, lt = {
822
830
  __name: "Sheet",
823
831
  setup(e) {
824
- const t = f(!1);
832
+ const t = v(!1);
825
833
  function r() {
826
834
  t.value = !t.value;
827
835
  }
828
- return w("SHEET_META", { toggled: t, toggleSheet: r }), (n, o) => i(n.$slots, "default", {
836
+ return T("SHEET_META", { toggled: t, toggleSheet: r }), (n, o) => i(n.$slots, "default", {
829
837
  toggled: t.value,
830
838
  toggleSheet: r
831
839
  });
832
840
  }
833
- }, ct = {
841
+ }, it = {
834
842
  __name: "SheetContent",
835
843
  props: {
836
844
  class: { type: String }
837
845
  },
838
846
  setup(e) {
839
847
  const t = e, { toggled: r, toggleSheet: n } = b("SHEET_META");
840
- return (o, s) => (a(), m(P, { to: "body" }, [
841
- _(S, { name: "fade-in" }, {
842
- default: g(() => [
843
- d(r) ? (a(), m(z, {
848
+ return (o, s) => (a(), g(E, { to: "body" }, [
849
+ x(R, { name: "fade-in" }, {
850
+ default: m(() => [
851
+ d(r) ? (a(), g(G, {
844
852
  key: 0,
845
853
  onClick: s[0] || (s[0] = (u) => d(n)())
846
- })) : y("", !0)
854
+ })) : _("", !0)
847
855
  ]),
848
856
  _: 1
849
857
  }),
850
- _(S, { name: "slide" }, {
851
- default: g(() => [
852
- d(r) ? (a(), m(M, {
858
+ x(R, { name: "slide" }, {
859
+ default: m(() => [
860
+ d(r) ? (a(), g(L, {
853
861
  key: 0,
854
862
  class: p(["fixed top-1/2 right-0 z-[150] h-full w-3/4 -translate-y-1/2 rounded-e-none bg-white transition-all md:right-[1rem] md:h-[calc(100dvh-2rem)] md:w-96 md:rounded-xl", t.class])
855
863
  }, {
856
- default: g(() => [
864
+ default: m(() => [
857
865
  i(o.$slots, "default")
858
866
  ]),
859
867
  _: 3
860
- }, 8, ["class"])) : y("", !0)
868
+ }, 8, ["class"])) : _("", !0)
861
869
  ]),
862
870
  _: 3
863
871
  })
864
872
  ]));
865
873
  }
866
- }, ut = {
874
+ }, dt = {
867
875
  __name: "SheetToggle",
868
876
  setup(e) {
869
- const t = G(), { toggleSheet: r } = b("SHEET_META");
877
+ const t = H(), { toggleSheet: r } = b("SHEET_META");
870
878
  return (n, o) => {
871
879
  var s, u;
872
- return a(), m(N(
873
- W((u = (s = d(t)).default) == null ? void 0 : u.call(s)[0], {
880
+ return a(), g(A(
881
+ S((u = (s = d(t)).default) == null ? void 0 : u.call(s)[0], {
874
882
  onClick: d(r)
875
883
  })
876
884
  ));
877
885
  };
878
886
  }
879
- }, gt = {}, pt = { class: "bg-primary-100 animate-pulse rounded-lg" };
880
- function mt(e, t) {
881
- return a(), l("div", pt);
887
+ }, ct = {}, ut = { class: "bg-primary-100 animate-pulse rounded-lg" };
888
+ function gt(e, t) {
889
+ return a(), l("div", ut);
882
890
  }
883
- const bt = /* @__PURE__ */ h(gt, [["render", mt]]), ft = {
891
+ const pt = /* @__PURE__ */ k(ct, [["render", gt]]), mt = {
884
892
  __name: "Switch",
885
893
  props: ["modelValue"],
886
894
  emits: ["update:modelValue"],
@@ -889,8 +897,8 @@ const bt = /* @__PURE__ */ h(gt, [["render", mt]]), ft = {
889
897
  function o() {
890
898
  r("update:modelValue", !n.modelValue);
891
899
  }
892
- return (s, u) => (a(), l("button", k(s.$attrs, {
893
- onClick: u[0] || (u[0] = (x) => o()),
900
+ return (s, u) => (a(), l("button", y(s.$attrs, {
901
+ onClick: u[0] || (u[0] = (f) => o()),
894
902
  class: [
895
903
  "group/switch h-5 w-9 cursor-pointer rounded-full p-0.5 transition-all duration-300 disabled:cursor-not-allowed disabled:opacity-50",
896
904
  n.modelValue ? "from-brand-primary-600 to-brand-primary-700 bg-gradient-to-br" : "bg-neutral-200"
@@ -905,10 +913,10 @@ const bt = /* @__PURE__ */ h(gt, [["render", mt]]), ft = {
905
913
  ], 2)
906
914
  ], 16));
907
915
  }
908
- }, ht = { class: "w-full" }, xt = { class: "h-16" }, vt = { key: 0 }, _t = {
916
+ }, bt = { class: "w-full" }, ft = { class: "h-16" }, ht = { key: 0 }, vt = {
909
917
  key: 0,
910
918
  class: "pe-4"
911
- }, yt = {
919
+ }, xt = {
912
920
  __name: "Table",
913
921
  props: {
914
922
  columns: { type: Array, required: !0 },
@@ -916,87 +924,87 @@ const bt = /* @__PURE__ */ h(gt, [["render", mt]]), ft = {
916
924
  },
917
925
  setup(e) {
918
926
  const t = e;
919
- return (r, n) => (a(), l("table", ht, [
927
+ return (r, n) => (a(), l("table", bt, [
920
928
  c("thead", null, [
921
- c("tr", xt, [
922
- (a(!0), l(A, null, D(t.columns, (o) => (a(), l("th", {
929
+ c("tr", ft, [
930
+ (a(!0), l(D, null, M(t.columns, (o) => (a(), l("th", {
923
931
  key: o.key,
924
932
  class: "text-xs font-medium text-neutral-600 first-of-type:ps-4"
925
- }, E(o.label), 1))), 128)),
926
- r.$slots.actions ? (a(), l("th", vt)) : y("", !0)
933
+ }, N(o.label), 1))), 128)),
934
+ r.$slots.actions ? (a(), l("th", ht)) : _("", !0)
927
935
  ])
928
936
  ]),
929
937
  c("tbody", null, [
930
- (a(!0), l(A, null, D(t.data, (o, s) => (a(), l("tr", {
938
+ (a(!0), l(D, null, M(t.data, (o, s) => (a(), l("tr", {
931
939
  key: s,
932
940
  class: "odd:bg-background-main/50 hover:bg-background-main min-h-16 rounded-md transition-all"
933
941
  }, [
934
- (a(!0), l(A, null, D(t.columns, (u) => (a(), l("td", {
942
+ (a(!0), l(D, null, M(t.columns, (u) => (a(), l("td", {
935
943
  key: u.key,
936
944
  class: "text-primary-950 py-4 text-xs first-of-type:rounded-s-md first-of-type:ps-4 last-of-type:rounded-e-md last-of-type:pe-4"
937
945
  }, [
938
946
  i(r.$slots, u.key, { row: o }, () => [
939
- R(E(o[u.key]), 1)
947
+ z(N(o[u.key]), 1)
940
948
  ])
941
949
  ]))), 128)),
942
- r.$slots.actions ? (a(), l("td", _t, [
950
+ r.$slots.actions ? (a(), l("td", vt, [
943
951
  i(r.$slots, "actions", { row: o })
944
- ])) : y("", !0)
952
+ ])) : _("", !0)
945
953
  ]))), 128))
946
954
  ])
947
955
  ]));
948
956
  }
949
- }, kt = { class: "overflow-x-scroll rounded-xl bg-neutral-100/50 p-1 [&::-webkit-scrollbar]:hidden" }, Ct = {
957
+ }, _t = { class: "overflow-x-scroll rounded-xl bg-neutral-100/50 p-1 [&::-webkit-scrollbar]:hidden" }, yt = {
950
958
  __name: "Tabs",
951
959
  props: {
952
960
  default: { default: null }
953
961
  },
954
962
  setup(e) {
955
- const r = f(e.default);
963
+ const r = v(e.default);
956
964
  function n(o) {
957
965
  r.value = o;
958
966
  }
959
- return w("TAB_DATA", { currentValue: r, setCurrentValue: n }), (o, s) => (a(), l("div", kt, [
967
+ return T("TAB_DATA", { currentValue: r, setCurrentValue: n }), (o, s) => (a(), l("div", _t, [
960
968
  i(o.$slots, "default")
961
969
  ]));
962
970
  }
963
- }, wt = {
971
+ }, kt = {
964
972
  __name: "TabItem",
965
973
  props: {
966
974
  value: { required: !0 }
967
975
  },
968
976
  setup(e) {
969
- const t = e, r = b("TAB_DATA"), { currentValue: n, setCurrentValue: o } = r, s = re(() => n.value === t.value ? [
977
+ const t = e, r = b("TAB_DATA"), { currentValue: n, setCurrentValue: o } = r, s = O(() => n.value === t.value ? [
970
978
  "bg-white",
971
979
  "font-medium",
972
980
  "text-primary-700",
973
981
  "shadow-xl",
974
982
  "tab-active"
975
983
  ] : "text-neutral-600");
976
- return (u, x) => (a(), l("button", {
977
- onClick: x[0] || (x[0] = (j) => d(o)(t.value)),
984
+ return (u, f) => (a(), l("button", {
985
+ onClick: f[0] || (f[0] = ($) => d(o)(t.value)),
978
986
  class: p(["tab h-8 cursor-pointer rounded-lg px-3 text-xs transition-all disabled:cursor-not-allowed disabled:opacity-50", s.value])
979
987
  }, [
980
988
  i(u.$slots, "default", {}, void 0, !0)
981
989
  ], 2));
982
990
  }
983
- }, $t = /* @__PURE__ */ h(wt, [["__scopeId", "data-v-9e06f71f"]]), At = {
991
+ }, Ct = /* @__PURE__ */ k(kt, [["__scopeId", "data-v-9e06f71f"]]), wt = {
984
992
  __name: "TextArea",
985
993
  props: ["modelValue"],
986
994
  setup(e) {
987
- const r = f(e.modelValue);
988
- return (n, o) => $((a(), l("textarea", k({
995
+ const r = v(e.modelValue);
996
+ return (n, o) => I((a(), l("textarea", y({
989
997
  onInput: o[0] || (o[0] = (s) => n.$emit("update:modelValue", s.target.value))
990
998
  }, n.$attrs, {
991
999
  "onUpdate:modelValue": o[1] || (o[1] = (s) => r.value = s),
992
1000
  class: "text-primary-950 neutral-400:text-neutral-400 focus:ring-brand-primary-700 user-invalid:ring-danger-700 focus:user-invalid:ring-danger-700 rounded-lg border-[1px] border-neutral-200 px-3 py-2 text-xs transition-all outline-none user-invalid:ring-2 focus:ring-2 focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50"
993
1001
  }), null, 16)), [
994
- [H, r.value]
1002
+ [F, r.value]
995
1003
  ]);
996
1004
  }
997
- }, It = {
1005
+ }, St = {
998
1006
  install(e) {
999
- e.component("AppHeader", le), e.component("AppHeaderLink", de), e.component("AppLayout", ge), e.component("AppMain", pe), e.component("AppNavTabs", he), e.component("AppNavTab", ve), e.component("AppSidebar", ke), e.component("AppSidebarItem", we), e.component("AppSidebarItemChild", Ae), e.component("AppSidebarItemChildren", Se), e.component("AppSidebarItemParent", De), e.component("AppSidebarToggle", Ve), e.component("AppSidebarNavSection", Ee), e.component("Badge", Le), e.component("Button", V), e.component("Checkbox", He), e.component("Card", M), e.component("Dialog", Oe), e.component("DialogContent", Fe), e.component("DialogToggle", qe), e.component("DialogBackground", z), e.component("Empty", Ze), e.component("FormField", Xe), e.component("FormFieldError", tt), e.component("Input", rt), e.component("Label", at), e.component("Radio", st), e.component("Select", it), e.component("Sheet", dt), e.component("SheetContent", ct), e.component("SheetToggle", ut), e.component("SkeletonLoader", bt), e.component("Switch", ft), e.component("Table", yt), e.component("Tabs", Ct), e.component("TabItem", $t), e.component("TextArea", At);
1007
+ e.component("AppHeader", le), e.component("AppHeaderLink", de), e.component("AppLayout", ge), e.component("AppMain", pe), e.component("AppNavTabs", he), e.component("AppNavTab", xe), e.component("AppSidebar", ke), e.component("AppSidebarItem", we), e.component("AppSidebarItemChild", Ae), e.component("AppSidebarItemChildren", Se), e.component("AppSidebarItemParent", Be), e.component("AppSidebarToggle", Re), e.component("AppSidebarNavSection", je), e.component("Badge", Ee), e.component("Button", j), e.component("Checkbox", We), e.component("Card", L), e.component("Dialog", He), e.component("DialogContent", Oe), e.component("DialogToggle", Fe), e.component("DialogBackground", G), e.component("Empty", Ye), e.component("FormField", Ze), e.component("FormFieldError", Ke), e.component("Input", et), e.component("Label", ot), e.component("Radio", nt), e.component("Select", st), e.component("Sheet", lt), e.component("SheetContent", it), e.component("SheetToggle", dt), e.component("SkeletonLoader", pt), e.component("Switch", mt), e.component("Table", xt), e.component("Tabs", yt), e.component("TabItem", Ct), e.component("TextArea", wt);
1000
1008
  }
1001
1009
  };
1002
1010
  export {
@@ -1004,38 +1012,38 @@ export {
1004
1012
  de as AppHeaderLink,
1005
1013
  ge as AppLayout,
1006
1014
  pe as AppMain,
1007
- ve as AppNavTab,
1015
+ xe as AppNavTab,
1008
1016
  he as AppNavTabs,
1009
1017
  ke as AppSidebar,
1010
1018
  we as AppSidebarItem,
1011
1019
  Ae as AppSidebarItemChild,
1012
1020
  Se as AppSidebarItemChildren,
1013
- De as AppSidebarItemParent,
1014
- Ee as AppSidebarNavSection,
1015
- Ve as AppSidebarToggle,
1016
- Le as Badge,
1017
- V as Button,
1018
- M as Card,
1019
- He as Checkbox,
1020
- Oe as Dialog,
1021
- z as DialogBackground,
1022
- Fe as DialogContent,
1023
- qe as DialogToggle,
1024
- Ze as Empty,
1025
- Xe as FormField,
1026
- tt as FormFieldError,
1027
- rt as Input,
1028
- at as Label,
1029
- st as Radio,
1030
- it as Select,
1031
- dt as Sheet,
1032
- ct as SheetContent,
1033
- ut as SheetToggle,
1034
- bt as SkeletonLoader,
1035
- ft as Switch,
1036
- $t as TabItem,
1037
- yt as Table,
1038
- Ct as Tabs,
1039
- At as TextArea,
1040
- It as default
1021
+ Be as AppSidebarItemParent,
1022
+ je as AppSidebarNavSection,
1023
+ Re as AppSidebarToggle,
1024
+ Ee as Badge,
1025
+ j as Button,
1026
+ L as Card,
1027
+ We as Checkbox,
1028
+ He as Dialog,
1029
+ G as DialogBackground,
1030
+ Oe as DialogContent,
1031
+ Fe as DialogToggle,
1032
+ Ye as Empty,
1033
+ Ze as FormField,
1034
+ Ke as FormFieldError,
1035
+ et as Input,
1036
+ ot as Label,
1037
+ nt as Radio,
1038
+ st as Select,
1039
+ lt as Sheet,
1040
+ it as SheetContent,
1041
+ dt as SheetToggle,
1042
+ pt as SkeletonLoader,
1043
+ mt as Switch,
1044
+ Ct as TabItem,
1045
+ xt as Table,
1046
+ yt as Tabs,
1047
+ wt as TextArea,
1048
+ St as default
1041
1049
  };
@@ -1 +1 @@
1
- (function(l,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("vue-router")):typeof define=="function"&&define.amd?define(["exports","vue","vue-router"],e):(l=typeof globalThis<"u"?globalThis:l||self,e(l.ScrubbedTailwindComponentsV2={},l.Vue,l.vueRouter))})(this,function(l,e,m){"use strict";const ee={class:"container flex w-full items-center justify-between"},te={class:"flex items-center gap-2"},re={class:"flex items-center gap-10"},oe={class:"hidden gap-6 sm:flex"},k={__name:"AppHeader",setup(t){const r=e.inject("APP_DATA"),{isSidebarToggled:o,toggleSidebar:a}=r;return(n,s)=>(e.openBlock(),e.createElementBlock("header",{class:e.normalizeClass(["fixed top-0 flex h-16 w-dvw items-center justify-center bg-white/50 px-3 backdrop-blur sm:px-6",{"rounded-t-2xl":e.unref(o)}])},[e.createElementVNode("nav",ee,[e.createElementVNode("div",te,[e.createElementVNode("button",{onClick:s[0]||(s[0]=c=>e.unref(a)()),class:"block cursor-pointer rounded-full p-2 hover:bg-neutral-100 sm:hidden"},s[1]||(s[1]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-menu-icon lucide-menu size-5 stroke-neutral-600"},[e.createElementVNode("path",{d:"M4 12h16"}),e.createElementVNode("path",{d:"M4 18h16"}),e.createElementVNode("path",{d:"M4 6h16"})],-1)])),e.renderSlot(n.$slots,"header-img")]),e.createElementVNode("div",re,[e.createElementVNode("ul",oe,[e.renderSlot(n.$slots,"header-links")]),e.renderSlot(n.$slots,"header-actions")])])],2))}},ne=["href"],_={__name:"AppHeaderLink",props:{to:{type:String,required:!0}},setup(t){const r=t;return(o,a)=>(e.openBlock(),e.createElementBlock("li",null,[r.to.startsWith("/")?(e.openBlock(),e.createBlock(e.unref(m.RouterLink),{key:0,class:"hover:text-primary-950 [&.router-link-active]:text-primary-950 text-xs uppercase text-neutral-600 hover:transition-all [&.router-link-active]:font-semibold",to:r.to},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"default")]),_:3},8,["to"])):(e.openBlock(),e.createElementBlock("a",{key:1,class:"hover:text-primary-950 text-xs uppercase text-neutral-600 hover:transition-all",href:r.to},[e.renderSlot(o.$slots,"default")],8,ne))]))}},ae={class:"relative"},le={class:"flex"},x={__name:"AppLayout",setup(t){const r=e.ref(!1);function o(){window.innerWidth<=640?(r.value=!r.value,a()):r.value&&(r.value=!1,a())}function a(){const n=document.querySelector("body");n.classList.contains("bg-black")?n.classList.remove("bg-black"):n.classList.add("bg-black")}return e.provide("APP_DATA",{isSidebarToggled:r,toggleSidebar:o}),(n,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["bg-white transition-all duration-500 ease-[cubic-bezier(.32,.72,0,1)]",{"scale-93 origin-[center_top] translate-y-4":r.value}])},[e.createElementVNode("div",ae,[e.renderSlot(n.$slots,"header"),e.createElementVNode("div",le,[e.renderSlot(n.$slots,"content")])])],2))}},y={__name:"AppMain",setup(t){const r=e.inject("APP_DATA"),{isSidebarToggled:o}=r;return(a,n)=>(e.openBlock(),e.createElementBlock("main",{class:e.normalizeClass(["bg-background-main fixed z-[-1] h-svh w-full overflow-auto px-6 pb-9 pt-24 sm:top-16 sm:ml-[223px] sm:h-[calc(100dvh-4rem)] sm:w-[calc(100dvw-223px)] sm:pt-9",e.unref(o)?"overflow-hidden rounded-t-xl sm:rounded-none":"sm:rounded-tl-2xl"])},[e.renderSlot(a.$slots,"default")],2))}},i=(t,r)=>{const o=t.__vccOpts||t;for(const[a,n]of r)o[a]=n;return o},se={},ce={class:"flex w-full overflow-x-auto border-b-[1px] border-neutral-200 [&::-webkit-scrollbar]:hidden"};function ie(t,r){return e.openBlock(),e.createElementBlock("div",ce,[e.renderSlot(t.$slots,"default")])}const C=i(se,[["render",ie]]),de={class:"shrink-0"},w={__name:"AppNavTab",props:{to:{type:String,required:!0}},setup(t){const r=t;return e.ref(null),(o,a)=>(e.openBlock(),e.createElementBlock("div",de,[e.createVNode(e.unref(m.RouterLink),{class:"[&.router-link-exact-active]:text-primary-950 [&.router-link-exact-active]:border-brand-primary-700 hover:text-brand-primary-700 group relative flex h-12 shrink-0 items-center justify-between gap-2 border-b-2 border-transparent px-3 text-sm text-neutral-600 transition-all [&.router-link-exact-active]:font-medium",to:r.to},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"default"),a[0]||(a[0]=e.createElementVNode("div",{class:"bg-primary-100 absolute inset-x-0 z-[-1] h-8 w-full rounded-lg opacity-0 transition-all contain-strict group-hover:transform-none group-hover:opacity-100 group-hover:[transform-origin:50%_50%_0px]"},null,-1))]),_:3,__:[0]},8,["to"])]))}},pe={class:"fixed left-0 top-0 hidden w-[223px] space-y-4 bg-white px-4 py-8 sm:top-[64px] sm:block"},B=i({__name:"AppSidebar",setup(t){const r=e.inject("APP_DATA"),{isSidebarToggled:o,toggleSidebar:a}=r;return(n,s)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("aside",pe,[e.renderSlot(n.$slots,"default",{},void 0,!0)]),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createElementVNode("div",{class:"shadow-t-2xl fixed bottom-0 z-50 h-[60svh] w-full space-y-4 overflow-y-scroll rounded-t-2xl bg-white p-4 transition-all duration-500 ease-[cubic-bezier(.32,.72,0,1)] [&::-webkit-scrollbar]:hidden",style:e.normalizeStyle(e.unref(o)?"transform: translateZ(0)":"transform: translate3d(0,60svh,0)")},[e.renderSlot(n.$slots,"default",{},void 0,!0)],4),e.createElementVNode("div",{onClick:s[0]||(s[0]=c=>e.unref(a)()),class:e.normalizeClass(["backdrop backdrop-blur-[0.50px] transition-all duration-300 [transition-behavior:allow-discrete]",e.unref(o)?"fixed inset-0 z-40 block bg-black/80 opacity-100":"hidden"])},null,2)]))],64))}},[["__scopeId","data-v-aaece1c7"]]),me={class:"flex flex-col"},S={__name:"AppSidebarItem",setup(t){m.useRoute();const r=e.ref(!1);function o(){r.value=!r.value}return e.provide("SIDEBAR_TOGGLE",{toggled:r,toggleSidebarItem:o}),(a,n)=>(e.openBlock(),e.createElementBlock("div",me,[e.renderSlot(a.$slots,"default")]))}},ge=["href"],$={__name:"AppSidebarItemChild",props:{to:{type:[String,Object],required:!0}},setup(t){const r=t;return(o,a)=>typeof r.to=="object"||r.to.startsWith("/")?(e.openBlock(),e.createBlock(e.unref(m.RouterLink),{key:0,class:"[&.router-link-exact-active]:text-primary-950 [&.router-link-exact-active]:bg-background-main text-primary-950 hover:bg-background-main block h-10 items-center gap-3 overflow-hidden rounded-lg px-3 text-xs leading-[40px] text-ellipsis whitespace-nowrap transition-all [&.router-link-exact-active]:font-medium",to:r.to},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"default")]),_:3},8,["to"])):(e.openBlock(),e.createElementBlock("a",{key:1,class:"text-primary-950 hover:bg-background-main block h-10 items-center gap-3 overflow-hidden rounded-lg px-3 text-xs leading-[40px] text-ellipsis whitespace-nowrap transition-all",href:r.to},[e.renderSlot(o.$slots,"default")],8,ge))}},A={__name:"AppSidebarItemChildren",setup(t){const r=e.inject("SIDEBAR_TOGGLE"),{toggled:o}=r;return(a,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["max-h-0 overflow-y-hidden rounded-b-lg opacity-0 transition-all",{"mt-2 max-h-max overflow-y-auto px-2 opacity-100":e.unref(o)}])},[e.renderSlot(a.$slots,"default")],2))}},ue={class:"link group/sidebar-item hover:bg-background-main has-[&.router-link-active]:bg-background-main peer flex h-10 items-center justify-between rounded-lg px-3 transition-all"},be=["href"],E=i({__name:"AppSidebarItemParent",props:{to:{type:[String,Object],required:!0},name:{type:String},hasChildren:{type:Boolean,default:!1}},setup(t){const r=m.useRoute(),o=t,a=e.inject("SIDEBAR_TOGGLE"),n=e.inject("APP_DATA"),{toggled:s,toggleSidebarItem:c}=a,{toggleSidebar:d}=n;function v(){r.matched.some(p=>o.name===p.name)?s.value=!0:s.value=!1}return e.watch(r,()=>v(),{immediate:!0}),(h,p)=>(e.openBlock(),e.createElementBlock("div",ue,[typeof o.to=="object"||o.to.startsWith("/")?(e.openBlock(),e.createBlock(e.unref(m.RouterLink),{key:0,onClick:p[0]||(p[0]=He=>e.unref(d)()),class:"[&.router-link-active]:text-primary-800 text-primary-950 peer flex h-full w-full items-center gap-3 text-xs [&.router-link-active]:font-medium",to:o.to},{default:e.withCtx(()=>[e.renderSlot(h.$slots,"default",{},void 0,!0)]),_:3},8,["to"])):(e.openBlock(),e.createElementBlock("a",{key:1,class:"text-primary-950 peer flex h-full w-full items-center gap-3 text-xs",href:o.to},[e.renderSlot(h.$slots,"default",{},void 0,!0)],8,be)),o.hasChildren?(e.openBlock(),e.createElementBlock("button",{key:2,onClick:p[1]||(p[1]=He=>e.unref(c)()),class:"cursor-pointer rounded-full p-1 transition-all hover:bg-neutral-100",type:"button"},[(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:e.normalizeClass(["lucide lucide-chevron-down-icon lucide-chevron-down stroke-primary-800 transition-all duration-300",{"rotate-180":e.unref(s)}])},p[2]||(p[2]=[e.createElementVNode("path",{d:"m6 9 6 6 6-6"},null,-1)]),2))])):e.createCommentVNode("",!0)]))}},[["__scopeId","data-v-3b52e94a"]]),fe={class:"hover:bg-background-main has-[&.router-link-active]:active has-[&.router-link-active]:bg-primary-700 peer flex h-10 items-center justify-between rounded-lg px-3 transition-all"},V={__name:"AppSidebarToggle",setup(t){const r=e.inject("SIDEBAR_TOGGLE");return(o,a)=>{const n=e.resolveComponent("RouterLink");return e.openBlock(),e.createElementBlock("div",fe,[e.createVNode(n,{class:"text-primary-950 peer flex h-full w-full items-center gap-3 text-xs [&.router-link-active]:font-medium [&.router-link-active]:text-white",to:"/"},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"default")]),_:3}),e.createElementVNode("button",{onClick:a[0]||(a[0]=s=>e.unref(r).toggleSidebarItem()),class:"cursor-pointer",type:"button"},a[1]||(a[1]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-chevron-down-icon lucide-chevron-down stroke-white"},[e.createElementVNode("path",{d:"m6 9 6 6 6-6"})],-1)]))])}}},he={},ke={key:0,class:"text-primary-950 px-1 text-sm font-medium"},_e={class:"mt-2"};function xe(t,r){return e.openBlock(),e.createElementBlock("nav",null,[t.$slots.title?(e.openBlock(),e.createElementBlock("b",ke,[e.renderSlot(t.$slots,"title")])):e.createCommentVNode("",!0),e.createElementVNode("div",_e,[e.renderSlot(t.$slots,"items")])])}const T=i(he,[["render",xe]]),N={primary:{backgroundColor:"bg-brand-primary-700",textColor:"text-white"},secondary:{backgroundColor:"bg-neutral-100",textColor:"text-neutral-700"},success:{backgroundColor:"bg-success-400",textColor:"text-white"},danger:{backgroundColor:"bg-danger-600",textColor:"text-white"},warning:{backgroundColor:"bg-warning-500",textColor:"text-neutral-950"},secondaryPrimary:{backgroundColor:"bg-brand-primary-100",textColor:"text-brand-primary-700"},secondaryAltPrimary:{backgroundColor:"bg-primary-100",textColor:"text-primary-700"},secondarySuccess:{backgroundColor:"bg-success-100",textColor:"text-success-700"},secondaryDanger:{backgroundColor:"bg-danger-100",textColor:"text-danger-700"},secondaryWarning:{backgroundColor:"bg-warning-100",textColor:"text-warning-700"},outlined:{backgroundColor:"bg-transparent",textColor:"text-neutral-700",borderColor:"border border-neutral-200"},outlinedPrimary:{backgroundColor:"bg-transparent",textColor:"text-brand-primary-700",borderColor:"border border-brand-primary-300"},outlinedSuccess:{backgroundColor:"bg-transparent",textColor:"text-success-600",borderColor:"border border-success-300"},outlinedDanger:{backgroundColor:"bg-transparent",textColor:"text-danger-600",borderColor:"border border-danger-300"},outlinedWarning:{backgroundColor:"bg-transparent",textColor:"text-warning-600",borderColor:"border border-warning-300"},ghost:{backgroundColor:"bg-transparent",textColor:"text-neutral-700"},ghostPrimary:{backgroundColor:"bg-transparent",textColor:"text-brand-primary-700"},ghostSuccess:{backgroundColor:"bg-transparent",textColor:"text-success-600"},ghostDanger:{backgroundColor:"bg-transparent",textColor:"text-danger-600"},ghostWarning:{backgroundColor:"bg-transparent",textColor:"text-warning-600"}},g={primary:{backgroundColor:"bg-gradient-to-br from-brand-primary-500 to-brand-primary-700",textColor:"text-white",hoverBackgroundColor:"hover:from-brand-primary-700 hover:to-brand-primary-800",focusRing:"focus:ring-brand-primary-300"},secondary:{backgroundColor:"bg-neutral-100",textColor:"text-neutral-700",hoverBackgroundColor:"hover:bg-neutral-200",focusRing:"focus:ring-neutral-300"},success:{backgroundColor:"bg-success-400",textColor:"text-white",hoverBackgroundColor:"hover:bg-success-500",focusRing:"focus:ring-success-300"},danger:{backgroundColor:"bg-danger-600",textColor:"text-white",hoverBackgroundColor:"hover:bg-danger-700",focusRing:"focus:ring-danger-300"},warning:{backgroundColor:"bg-warning-500",textColor:"text-neutral-950",hoverBackgroundColor:"hover:bg-warning-600",focusRing:"focus:ring-warning-300"},secondaryPrimary:{backgroundColor:"bg-brand-primary-100",textColor:"text-brand-primary-700",hoverBackgroundColor:"hover:bg-brand-primary-200",focusRing:"focus:ring-brand-primary-200"},secondaryAltPrimary:{backgroundColor:"bg-primary-100",textColor:"text-primary-700",hoverBackgroundColor:"hover:bg-primary-200",focusRing:"focus:ring-primary-200"},secondarySuccess:{backgroundColor:"bg-success-100",textColor:"text-success-700",hoverBackgroundColor:"hover:bg-success-200",focusRing:"focus:ring-success-200"},secondaryDanger:{backgroundColor:"bg-danger-100",textColor:"text-danger-700",hoverBackgroundColor:"hover:bg-danger-200",focusRing:"focus:ring-danger-200"},secondaryWarning:{backgroundColor:"bg-warning-100",textColor:"text-warning-700",hoverBackgroundColor:"hover:bg-warning-200",focusRing:"focus:ring-warning-200"},outlined:{backgroundColor:"bg-transparent",textColor:"text-neutral-700",borderColor:"border border-neutral-200",hoverBackgroundColor:"hover:bg-neutral-100",hoverTextColor:"hover:text-neutral-900",focusRing:"focus:ring-neutral-200"},outlinedPrimary:{backgroundColor:"bg-transparent",textColor:"text-brand-primary-700",borderColor:"border border-brand-primary-300",hoverBackgroundColor:"hover:bg-brand-primary-100",hoverTextColor:"hover:text-brand-primary-800",focusRing:"focus:ring-brand-primary-200"},outlinedSuccess:{backgroundColor:"bg-transparent",textColor:"text-success-600",borderColor:"border border-success-300",hoverBackgroundColor:"hover:bg-success-100",hoverTextColor:"hover:text-success-700",focusRing:"focus:ring-success-200"},outlinedDanger:{backgroundColor:"bg-transparent",textColor:"text-danger-600",borderColor:"border border-danger-300",hoverBackgroundColor:"hover:bg-danger-100",hoverTextColor:"hover:text-danger-700",focusRing:"focus:ring-danger-200"},outlinedWarning:{backgroundColor:"bg-transparent",textColor:"text-warning-600",borderColor:"border border-warning-300",hoverBackgroundColor:"hover:bg-warning-100",hoverTextColor:"hover:text-warning-700",focusRing:"focus:ring-warning-200"},ghost:{backgroundColor:"bg-transparent",textColor:"text-neutral-700",hoverBackgroundColor:"hover:bg-neutral-100",hoverTextColor:"hover:text-neutral-900",focusRing:"focus:ring-neutral-200"},ghostPrimary:{backgroundColor:"bg-transparent",textColor:"text-brand-primary-700",hoverBackgroundColor:"hover:bg-brand-primary-100",hoverTextColor:"hover:text-brand-primary-800",focusRing:"focus:ring-brand-primary-200"},ghostSuccess:{backgroundColor:"bg-transparent",textColor:"text-success-600",hoverBackgroundColor:"hover:bg-success-100",hoverTextColor:"hover:text-success-700",focusRing:"focus:ring-success-200"},ghostDanger:{backgroundColor:"bg-transparent",textColor:"text-danger-600",hoverBackgroundColor:"hover:bg-danger-100",hoverTextColor:"hover:text-danger-700",focusRing:"focus:ring-danger-200"},ghostWarning:{backgroundColor:"bg-transparent",textColor:"text-warning-600",hoverBackgroundColor:"hover:bg-warning-100",hoverTextColor:"hover:text-warning-700",focusRing:"focus:ring-warning-200"}},I={__name:"Badge",props:{variant:{type:String,default:"primary"}},setup(t){const r=t;return(o,a)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["rounded-full px-3 py-1 text-xs font-medium",[e.unref(N)[r.variant].backgroundColor,e.unref(N)[r.variant].textColor]])},[e.renderSlot(o.$slots,"default")],2))}},u={__name:"Button",props:{variant:{type:String,default:"primary"}},setup(t,{expose:r}){const o=t,a=e.ref(null);return r({buttonRef:a}),(n,s)=>(e.openBlock(),e.createElementBlock("button",e.mergeProps(n.$attrs,{class:["cursor-pointer rounded-lg px-4 py-2 text-xs transition-all active:scale-[0.97] disabled:cursor-not-allowed disabled:opacity-50 disabled:active:scale-100",[e.unref(g)[o.variant].backgroundColor,e.unref(g)[o.variant].borderColor,e.unref(g)[o.variant].textColor,e.unref(g)[o.variant].hoverBackgroundColor,e.unref(g)[o.variant].hoverTextColor,e.unref(g)[o.variant].focusRing]],ref_key:"buttonRef",ref:a}),[e.renderSlot(n.$slots,"default")],16))}},ye={},Ce={class:"rounded-2xl bg-white p-6"};function we(t,r){return e.openBlock(),e.createElementBlock("div",Ce,[e.renderSlot(t.$slots,"default")])}const b=i(ye,[["render",we]]),D={__name:"Checkbox",props:{modelValue:{},modelModifiers:{}},emits:["update:modelValue"],setup(t){const r=e.useModel(t,"modelValue"),o=e.ref(null);return(a,n)=>(e.openBlock(),e.createElementBlock("button",{onClick:n[1]||(n[1]=s=>o.value.click()),class:"group/checkbox has-checked:bg-brand-primary-700 flex size-4 cursor-pointer items-center justify-center rounded-sm bg-neutral-200 transition-all duration-300 active:scale-[0.50] has-disabled:cursor-not-allowed has-disabled:opacity-50"},[n[2]||(n[2]=e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-check-icon lucide-check scale-0 stroke-white opacity-0 group-has-[:checked]/checkbox:scale-100 group-has-[:checked]/checkbox:opacity-100"},[e.createElementVNode("path",{d:"M20 6 9 17l-5-5"})],-1)),e.withDirectives(e.createElementVNode("input",e.mergeProps(a.$attrs,{"onUpdate:modelValue":n[0]||(n[0]=s=>r.value=s),type:"checkbox",ref_key:"checkboxRef",ref:o,hidden:""}),null,16),[[e.vModelCheckbox,r.value]])]))}},R={__name:"Dialog",setup(t){const r=e.ref(!1);function o(){r.value=!r.value}return e.provide("DIALOG_META",{toggled:r,toggleDialog:o}),(a,n)=>e.renderSlot(a.$slots,"default",{toggled:r.value,toggleDialog:o})}},f={__name:"DialogBackground",setup(t){return e.onMounted(()=>{document.querySelector("body").classList.add("overflow-hidden")}),e.onUnmounted(()=>{document.querySelector("body").classList.remove("overflow-hidden")}),(r,o)=>(e.openBlock(),e.createElementBlock("div",e.mergeProps(r.$attrs,{class:"pointer-events-auto fixed inset-0 z-[100] min-h-screen bg-black/80 backdrop-blur-[2px]"}),[e.renderSlot(r.$slots,"default")],16))}},P={__name:"DialogContent",props:{class:{type:String}},setup(t){const r=t,{toggled:o,toggleDialog:a}=e.inject("DIALOG_META");return(n,s)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"fade-in"},{default:e.withCtx(()=>[e.unref(o)?(e.openBlock(),e.createBlock(f,{key:0,onClick:s[0]||(s[0]=c=>e.unref(a)()),class:"z-[175]"})):e.createCommentVNode("",!0)]),_:1}),e.createVNode(e.Transition,{name:"fade-in-dialog"},{default:e.withCtx(()=>[e.unref(o)?(e.openBlock(),e.createBlock(b,{key:0,class:e.normalizeClass(["fixed top-1/2 left-1/2 z-[200] -translate-x-1/2 -translate-y-1/2 rounded-xl bg-white transition-all",r.class])},{default:e.withCtx(()=>[e.renderSlot(n.$slots,"default")]),_:3},8,["class"])):e.createCommentVNode("",!0)]),_:3})]))}},j={__name:"DialogToggle",setup(t){const r=e.useSlots(),{toggleDialog:o}=e.inject("DIALOG_META");return(a,n)=>{var s,c;return e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.cloneVNode((c=(s=e.unref(r)).default)==null?void 0:c.call(s)[0],{onClick:e.unref(o)})))}}},Be={class:"flex flex-col items-center justify-center gap-8"},Se={class:"flex items-center gap-2"},z={__name:"Empty",setup(t){return(r,o)=>(e.openBlock(),e.createElementBlock("div",Be,[o[2]||(o[2]=e.createStaticVNode('<div class="flex max-w-xs flex-col items-center gap-2 text-center"><div class="bg-brand-primary-100 mb-2 grid size-12 place-items-center rounded-full"><svg xmlns="http://www.w3.org/2000/svg" class="text-brand-primary-700 h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M9 13h6m-3-3v6m5 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"></path></svg></div><b class="text-lg font-medium">No Projects Yet</b><p class="text-sm text-neutral-600"> You haven&#39;t created any projects yet. Get started by creating your first project. </p></div>',1)),e.createElementVNode("div",Se,[e.createVNode(u,{class:"h-10",variant:"outlined"},{default:e.withCtx(()=>o[0]||(o[0]=[e.createTextVNode("Import Project")])),_:1,__:[0]}),e.createVNode(u,{class:"h-10",variant:"primary"},{default:e.withCtx(()=>o[1]||(o[1]=[e.createTextVNode("Create Project")])),_:1,__:[1]})])]))}},$e={class:"group flex flex-col gap-2"},M={__name:"FormField",props:{validate:{type:Boolean,default:!1}},setup(t){return(r,o)=>(e.openBlock(),e.createElementBlock("div",$e,[e.renderSlot(r.$slots,"default")]))}},Ae={},Ee={class:"text-danger-700 hidden h-0 text-xs opacity-0 transition-all group-has-user-invalid:mt-1 group-has-user-invalid:block group-has-user-invalid:h-4 group-has-user-invalid:opacity-100"};function Ve(t,r){return e.openBlock(),e.createElementBlock("p",Ee,[e.renderSlot(t.$slots,"default",{},void 0,!0)])}const L=i(Ae,[["render",Ve],["__scopeId","data-v-00088154"]]),G={__name:"Input",props:{modelValue:{},modelModifiers:{}},emits:["update:modelValue"],setup(t){const r=e.useModel(t,"modelValue");return(o,a)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{"onUpdate:modelValue":a[0]||(a[0]=n=>r.value=n),class:"text-primary-950 focus:ring-brand-primary-700 focus:user-invalid:ring-danger-700 user-invalid:ring-danger-700 rounded-lg border-[1px] border-neutral-200 bg-white px-3 py-2 text-xs ring-offset-2 transition-all duration-300 outline-none placeholder:text-neutral-400 user-invalid:ring-2 focus:ring-2 disabled:cursor-not-allowed disabled:opacity-50"},null,512)),[[e.vModelText,r.value]])}},Te={};function Ne(t,r){return e.openBlock(),e.createElementBlock("label",e.mergeProps(t.$attrs,{class:"text-primary-950 text-xs font-medium transition-all"}),[e.renderSlot(t.$slots,"default")],16)}const W=i(Te,[["render",Ne]]),H={__name:"Radio",props:e.mergeModels({variant:{type:String,default:"small"}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(t){const r=e.useModel(t,"modelValue"),o=t,a=e.ref(null),n={small:{outerCircleSize:"size-4",innerCircleSize:"size-2.5"},large:{outerCircleSize:"size-5",innerCircleSize:"size-3"}};return(s,c)=>(e.openBlock(),e.createElementBlock("button",{onClick:c[1]||(c[1]=d=>a.value.click()),class:e.normalizeClass(["group/radio has-checked:border-brand-primary-700 flex cursor-pointer items-center justify-center rounded-full border-[1px] border-transparent bg-neutral-100 duration-300 active:scale-[0.80] has-checked:bg-white",n[o.variant].outerCircleSize]),role:"radio",type:"button"},[e.createElementVNode("div",{class:e.normalizeClass(["group-has-checked/radio:bg-brand-primary-700 grid place-items-center rounded-full opacity-0 transition-all group-has-checked/radio:opacity-100",n[o.variant].innerCircleSize])},[e.renderSlot(s.$slots,"default")],2),e.withDirectives(e.createElementVNode("input",e.mergeProps(s.$attrs,{"onUpdate:modelValue":c[0]||(c[0]=d=>r.value=d),type:"radio",ref_key:"radioRef",ref:a,hidden:""}),null,16),[[e.vModelRadio,r.value]])],2))}},Ie="bg-[url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiM1YjYxNmUiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBjbGFzcz0ibHVjaWRlIGx1Y2lkZS1jaGV2cm9uLWRvd24iPjxwYXRoIGQ9Im02IDkgNiA2IDYtNiIvPjwvc3ZnPg==')]",F={__name:"Select",props:{modelValue:{},modelModifiers:{}},emits:["update:modelValue"],setup(t){const r=e.useModel(t,"modelValue");return(o,a)=>e.withDirectives((e.openBlock(),e.createElementBlock("select",e.mergeProps(o.$attrs,{"onUpdate:modelValue":a[0]||(a[0]=n=>r.value=n),class:["text-primary-950 user-invalid:ring-danger-700 focus:user-invalid:ring-danger-700 focus:ring-brand-primary-700 appearance-none rounded-lg border-[1px] border-neutral-200 bg-white bg-[length:16px] bg-[right_12px_center] bg-no-repeat px-3 py-2 text-xs ring-offset-2 transition-all outline-none user-invalid:ring-2 focus:ring-2 disabled:cursor-not-allowed disabled:opacity-50",Ie]}),[e.renderSlot(o.$slots,"default")],16)),[[e.vModelSelect,r.value]])}},q={__name:"Sheet",setup(t){const r=e.ref(!1);function o(){r.value=!r.value}return e.provide("SHEET_META",{toggled:r,toggleSheet:o}),(a,n)=>e.renderSlot(a.$slots,"default",{toggled:r.value,toggleSheet:o})}},O={__name:"SheetContent",props:{class:{type:String}},setup(t){const r=t,{toggled:o,toggleSheet:a}=e.inject("SHEET_META");return(n,s)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"fade-in"},{default:e.withCtx(()=>[e.unref(o)?(e.openBlock(),e.createBlock(f,{key:0,onClick:s[0]||(s[0]=c=>e.unref(a)())})):e.createCommentVNode("",!0)]),_:1}),e.createVNode(e.Transition,{name:"slide"},{default:e.withCtx(()=>[e.unref(o)?(e.openBlock(),e.createBlock(b,{key:0,class:e.normalizeClass(["fixed top-1/2 right-0 z-[150] h-full w-3/4 -translate-y-1/2 rounded-e-none bg-white transition-all md:right-[1rem] md:h-[calc(100dvh-2rem)] md:w-96 md:rounded-xl",r.class])},{default:e.withCtx(()=>[e.renderSlot(n.$slots,"default")]),_:3},8,["class"])):e.createCommentVNode("",!0)]),_:3})]))}},U={__name:"SheetToggle",setup(t){const r=e.useSlots(),{toggleSheet:o}=e.inject("SHEET_META");return(a,n)=>{var s,c;return e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.cloneVNode((c=(s=e.unref(r)).default)==null?void 0:c.call(s)[0],{onClick:e.unref(o)})))}}},De={},Re={class:"bg-primary-100 animate-pulse rounded-lg"};function Pe(t,r){return e.openBlock(),e.createElementBlock("div",Re)}const Y=i(De,[["render",Pe]]),Z={__name:"Switch",props:["modelValue"],emits:["update:modelValue"],setup(t,{emit:r}){const o=r,a=t;function n(){o("update:modelValue",!a.modelValue)}return(s,c)=>(e.openBlock(),e.createElementBlock("button",e.mergeProps(s.$attrs,{onClick:c[0]||(c[0]=d=>n()),class:["group/switch h-5 w-9 cursor-pointer rounded-full p-0.5 transition-all duration-300 disabled:cursor-not-allowed disabled:opacity-50",a.modelValue?"from-brand-primary-600 to-brand-primary-700 bg-gradient-to-br":"bg-neutral-200"],role:"switch",type:"button"}),[e.createElementVNode("span",{class:e.normalizeClass(["pointer-events-none flex size-4 items-center justify-center rounded-full bg-white shadow-md transition-all duration-300",{"translate-x-full":a.modelValue}])},[e.renderSlot(s.$slots,"icon")],2)],16))}},je={class:"w-full"},ze={class:"h-16"},Me={key:0},Le={key:0,class:"pe-4"},J={__name:"Table",props:{columns:{type:Array,required:!0},data:{type:Array,required:!0}},setup(t){const r=t;return(o,a)=>(e.openBlock(),e.createElementBlock("table",je,[e.createElementVNode("thead",null,[e.createElementVNode("tr",ze,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.columns,n=>(e.openBlock(),e.createElementBlock("th",{key:n.key,class:"text-xs font-medium text-neutral-600 first-of-type:ps-4"},e.toDisplayString(n.label),1))),128)),o.$slots.actions?(e.openBlock(),e.createElementBlock("th",Me)):e.createCommentVNode("",!0)])]),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.data,(n,s)=>(e.openBlock(),e.createElementBlock("tr",{key:s,class:"odd:bg-background-main/50 hover:bg-background-main min-h-16 rounded-md transition-all"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.columns,c=>(e.openBlock(),e.createElementBlock("td",{key:c.key,class:"text-primary-950 py-4 text-xs first-of-type:rounded-s-md first-of-type:ps-4 last-of-type:rounded-e-md last-of-type:pe-4"},[e.renderSlot(o.$slots,c.key,{row:n},()=>[e.createTextVNode(e.toDisplayString(n[c.key]),1)])]))),128)),o.$slots.actions?(e.openBlock(),e.createElementBlock("td",Le,[e.renderSlot(o.$slots,"actions",{row:n})])):e.createCommentVNode("",!0)]))),128))])]))}},Ge={class:"overflow-x-scroll rounded-xl bg-neutral-100/50 p-1 [&::-webkit-scrollbar]:hidden"},X={__name:"Tabs",props:{default:{default:null}},setup(t){const r=t,o=e.ref(r.default);function a(n){o.value=n}return e.provide("TAB_DATA",{currentValue:o,setCurrentValue:a}),(n,s)=>(e.openBlock(),e.createElementBlock("div",Ge,[e.renderSlot(n.$slots,"default")]))}},Q=i({__name:"TabItem",props:{value:{required:!0}},setup(t){const r=t,o=e.inject("TAB_DATA"),{currentValue:a,setCurrentValue:n}=o,s=e.computed(()=>a.value===r.value?["bg-white","font-medium","text-primary-700","shadow-xl","tab-active"]:"text-neutral-600");return(c,d)=>(e.openBlock(),e.createElementBlock("button",{onClick:d[0]||(d[0]=v=>e.unref(n)(r.value)),class:e.normalizeClass(["tab h-8 cursor-pointer rounded-lg px-3 text-xs transition-all disabled:cursor-not-allowed disabled:opacity-50",s.value])},[e.renderSlot(c.$slots,"default",{},void 0,!0)],2))}},[["__scopeId","data-v-9e06f71f"]]),K={__name:"TextArea",props:["modelValue"],setup(t){const r=t,o=e.ref(r.modelValue);return(a,n)=>e.withDirectives((e.openBlock(),e.createElementBlock("textarea",e.mergeProps({onInput:n[0]||(n[0]=s=>a.$emit("update:modelValue",s.target.value))},a.$attrs,{"onUpdate:modelValue":n[1]||(n[1]=s=>o.value=s),class:"text-primary-950 neutral-400:text-neutral-400 focus:ring-brand-primary-700 user-invalid:ring-danger-700 focus:user-invalid:ring-danger-700 rounded-lg border-[1px] border-neutral-200 px-3 py-2 text-xs transition-all outline-none user-invalid:ring-2 focus:ring-2 focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50"}),null,16)),[[e.vModelText,o.value]])}},We={install(t){t.component("AppHeader",k),t.component("AppHeaderLink",_),t.component("AppLayout",x),t.component("AppMain",y),t.component("AppNavTabs",C),t.component("AppNavTab",w),t.component("AppSidebar",B),t.component("AppSidebarItem",S),t.component("AppSidebarItemChild",$),t.component("AppSidebarItemChildren",A),t.component("AppSidebarItemParent",E),t.component("AppSidebarToggle",V),t.component("AppSidebarNavSection",T),t.component("Badge",I),t.component("Button",u),t.component("Checkbox",D),t.component("Card",b),t.component("Dialog",R),t.component("DialogContent",P),t.component("DialogToggle",j),t.component("DialogBackground",f),t.component("Empty",z),t.component("FormField",M),t.component("FormFieldError",L),t.component("Input",G),t.component("Label",W),t.component("Radio",H),t.component("Select",F),t.component("Sheet",q),t.component("SheetContent",O),t.component("SheetToggle",U),t.component("SkeletonLoader",Y),t.component("Switch",Z),t.component("Table",J),t.component("Tabs",X),t.component("TabItem",Q),t.component("TextArea",K)}};l.AppHeader=k,l.AppHeaderLink=_,l.AppLayout=x,l.AppMain=y,l.AppNavTab=w,l.AppNavTabs=C,l.AppSidebar=B,l.AppSidebarItem=S,l.AppSidebarItemChild=$,l.AppSidebarItemChildren=A,l.AppSidebarItemParent=E,l.AppSidebarNavSection=T,l.AppSidebarToggle=V,l.Badge=I,l.Button=u,l.Card=b,l.Checkbox=D,l.Dialog=R,l.DialogBackground=f,l.DialogContent=P,l.DialogToggle=j,l.Empty=z,l.FormField=M,l.FormFieldError=L,l.Input=G,l.Label=W,l.Radio=H,l.Select=F,l.Sheet=q,l.SheetContent=O,l.SheetToggle=U,l.SkeletonLoader=Y,l.Switch=Z,l.TabItem=Q,l.Table=J,l.Tabs=X,l.TextArea=K,l.default=We,Object.defineProperties(l,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
1
+ (function(l,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("vue-router")):typeof define=="function"&&define.amd?define(["exports","vue","vue-router"],e):(l=typeof globalThis<"u"?globalThis:l||self,e(l.ScrubbedTailwindComponentsV2={},l.Vue,l.vueRouter))})(this,function(l,e,m){"use strict";const te={class:"flex w-full items-center justify-between"},re={class:"flex items-center gap-2"},oe={class:"flex items-center gap-10"},ne={class:"hidden gap-6 sm:flex"},_={__name:"AppHeader",setup(t){const r=e.inject("APP_DATA"),{isSidebarToggled:o,toggleSidebar:a}=r;return(n,s)=>(e.openBlock(),e.createElementBlock("header",{class:e.normalizeClass(["fixed top-0 flex h-16 w-dvw items-center justify-center bg-white/50 px-3 backdrop-blur sm:px-6",{"rounded-t-2xl":e.unref(o)}])},[e.createElementVNode("nav",te,[e.createElementVNode("div",re,[e.createElementVNode("button",{onClick:s[0]||(s[0]=i=>e.unref(a)()),class:"block cursor-pointer rounded-full p-2 hover:bg-neutral-100 sm:hidden"},s[1]||(s[1]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-menu-icon lucide-menu size-5 stroke-neutral-600"},[e.createElementVNode("path",{d:"M4 12h16"}),e.createElementVNode("path",{d:"M4 18h16"}),e.createElementVNode("path",{d:"M4 6h16"})],-1)])),e.renderSlot(n.$slots,"header-img")]),e.createElementVNode("div",oe,[e.createElementVNode("ul",ne,[e.renderSlot(n.$slots,"header-links")]),e.renderSlot(n.$slots,"header-actions")])])],2))}},ae=["href"],y={__name:"AppHeaderLink",props:{to:{type:String,required:!0}},setup(t){const r=t;return(o,a)=>(e.openBlock(),e.createElementBlock("li",null,[r.to.startsWith("/")?(e.openBlock(),e.createBlock(e.unref(m.RouterLink),{key:0,class:"hover:text-primary-950 [&.router-link-active]:text-primary-950 text-xs uppercase text-neutral-600 hover:transition-all [&.router-link-active]:font-semibold",to:r.to},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"default")]),_:3},8,["to"])):(e.openBlock(),e.createElementBlock("a",{key:1,class:"hover:text-primary-950 text-xs uppercase text-neutral-600 hover:transition-all",href:r.to},[e.renderSlot(o.$slots,"default")],8,ae))]))}},le={class:"relative"},se={class:"flex"},C={__name:"AppLayout",setup(t){const r=e.ref(!1);function o(){window.innerWidth<=640?(r.value=!r.value,a()):r.value&&(r.value=!1,a())}function a(){const n=document.querySelector("body");n.classList.contains("bg-black")?n.classList.remove("bg-black"):n.classList.add("bg-black")}return e.provide("APP_DATA",{isSidebarToggled:r,toggleSidebar:o}),(n,s)=>{var i,c,b,u,d,x;return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["bg-white transition-all duration-500 ease-[cubic-bezier(.32,.72,0,1)]",{"origin-[center_top] translate-y-4 scale-93":r.value}])},[e.createElementVNode("div",le,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.cloneVNode((c=(i=n.$slots).default)==null?void 0:c.call(i)[0])))),e.createElementVNode("div",se,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.cloneVNode((u=(b=n.$slots).default)==null?void 0:u.call(b)[1])))),(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.cloneVNode((x=(d=n.$slots).default)==null?void 0:x.call(d)[2]))))])])],2)}}},B={__name:"AppMain",setup(t){const r=e.inject("APP_DATA"),{isSidebarToggled:o}=r;return(a,n)=>(e.openBlock(),e.createElementBlock("main",{class:e.normalizeClass(["bg-background-main fixed z-[-1] h-svh w-full overflow-auto px-6 pt-24 pb-9 sm:top-16 sm:ml-[223px] sm:h-[calc(100dvh-4rem)] sm:w-[calc(100dvw-223px)] sm:pt-9",e.unref(o)?"overflow-hidden rounded-t-xl sm:rounded-none":"sm:rounded-tl-2xl"])},[e.renderSlot(a.$slots,"default")],2))}},p=(t,r)=>{const o=t.__vccOpts||t;for(const[a,n]of r)o[a]=n;return o},ie={},ce={class:"flex w-full overflow-x-auto border-b-[1px] border-neutral-200 [&::-webkit-scrollbar]:hidden"};function de(t,r){return e.openBlock(),e.createElementBlock("div",ce,[e.renderSlot(t.$slots,"default")])}const w=p(ie,[["render",de]]),pe={class:"shrink-0"},S={__name:"AppNavTab",props:{to:{type:String,required:!0}},setup(t){const r=t;return e.ref(null),(o,a)=>(e.openBlock(),e.createElementBlock("div",pe,[e.createVNode(e.unref(m.RouterLink),{class:"[&.router-link-exact-active]:text-primary-950 [&.router-link-exact-active]:border-brand-primary-700 hover:text-brand-primary-700 group relative flex h-12 shrink-0 items-center justify-between gap-2 border-b-2 border-transparent px-3 text-sm text-neutral-600 transition-all [&.router-link-exact-active]:font-medium",to:r.to},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"default"),a[0]||(a[0]=e.createElementVNode("div",{class:"bg-primary-100 absolute inset-x-0 z-[-1] h-8 w-full rounded-lg opacity-0 transition-all contain-strict group-hover:transform-none group-hover:opacity-100 group-hover:[transform-origin:50%_50%_0px]"},null,-1))]),_:3,__:[0]},8,["to"])]))}},me={class:"fixed left-0 top-0 hidden w-[223px] space-y-4 bg-white px-4 py-8 sm:top-[64px] sm:block"},$=p({__name:"AppSidebar",setup(t){const r=e.inject("APP_DATA"),{isSidebarToggled:o,toggleSidebar:a}=r;return(n,s)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("aside",me,[e.renderSlot(n.$slots,"default",{},void 0,!0)]),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createElementVNode("div",{class:"shadow-t-2xl fixed bottom-0 z-50 h-[60svh] w-full space-y-4 overflow-y-scroll rounded-t-2xl bg-white p-4 transition-all duration-500 ease-[cubic-bezier(.32,.72,0,1)] [&::-webkit-scrollbar]:hidden",style:e.normalizeStyle(e.unref(o)?"transform: translateZ(0)":"transform: translate3d(0,60svh,0)")},[e.renderSlot(n.$slots,"default",{},void 0,!0)],4),e.createElementVNode("div",{onClick:s[0]||(s[0]=i=>e.unref(a)()),class:e.normalizeClass(["backdrop backdrop-blur-[0.50px] transition-all duration-300 [transition-behavior:allow-discrete]",e.unref(o)?"fixed inset-0 z-40 block bg-black/80 opacity-100":"hidden"])},null,2)]))],64))}},[["__scopeId","data-v-aaece1c7"]]),ge={class:"flex flex-col"},E={__name:"AppSidebarItem",setup(t){m.useRoute();const r=e.ref(!1);function o(){r.value=!r.value}return e.provide("SIDEBAR_TOGGLE",{toggled:r,toggleSidebarItem:o}),(a,n)=>(e.openBlock(),e.createElementBlock("div",ge,[e.renderSlot(a.$slots,"default")]))}},ue=["href"],A={__name:"AppSidebarItemChild",props:{to:{type:[String,Object],required:!0}},setup(t){const r=t;return(o,a)=>typeof r.to=="object"||r.to.startsWith("/")?(e.openBlock(),e.createBlock(e.unref(m.RouterLink),{key:0,class:"[&.router-link-exact-active]:text-primary-950 [&.router-link-exact-active]:bg-background-main text-primary-950 hover:bg-background-main block h-10 items-center gap-3 overflow-hidden rounded-lg px-3 text-xs leading-[40px] text-ellipsis whitespace-nowrap transition-all [&.router-link-exact-active]:font-medium",to:r.to},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"default")]),_:3},8,["to"])):(e.openBlock(),e.createElementBlock("a",{key:1,class:"text-primary-950 hover:bg-background-main block h-10 items-center gap-3 overflow-hidden rounded-lg px-3 text-xs leading-[40px] text-ellipsis whitespace-nowrap transition-all",href:r.to},[e.renderSlot(o.$slots,"default")],8,ue))}},V={__name:"AppSidebarItemChildren",setup(t){const r=e.inject("SIDEBAR_TOGGLE"),{toggled:o}=r;return(a,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["max-h-0 overflow-y-hidden rounded-b-lg opacity-0 transition-all",{"mt-2 max-h-max overflow-y-auto px-2 opacity-100":e.unref(o)}])},[e.renderSlot(a.$slots,"default")],2))}},be={class:"link group/sidebar-item hover:bg-background-main peer has-[&.router-link-active]:from-brand-primary-50 has-[&.router-link-active]:to-brand-primary-100 flex h-10 items-center justify-between rounded-lg px-3 transition-all has-[&.router-link-active]:bg-gradient-to-br"},fe=["href"],T={__name:"AppSidebarItemParent",props:{to:{type:[String,Object],required:!0},name:{type:String},hasChildren:{type:Boolean,default:!1}},setup(t){const r=m.useRoute(),o=t,a=e.inject("SIDEBAR_TOGGLE"),n=e.inject("APP_DATA"),{toggled:s,toggleSidebarItem:i}=a,{toggleSidebar:c}=n;function b(){r.matched.some(d=>o.name===d.name)?s.value=!0:s.value=!1}return e.watch(r,()=>b(),{immediate:!0}),(u,d)=>(e.openBlock(),e.createElementBlock("div",be,[typeof o.to=="object"||o.to.startsWith("/")?(e.openBlock(),e.createBlock(e.unref(m.RouterLink),{key:0,onClick:d[0]||(d[0]=x=>e.unref(c)()),class:"[&.router-link-active]:text-primary-700 text-primary-950 peer flex h-full w-full items-center gap-3 text-xs [&.router-link-active]:font-medium",to:o.to},{default:e.withCtx(()=>[e.renderSlot(u.$slots,"default")]),_:3},8,["to"])):(e.openBlock(),e.createElementBlock("a",{key:1,class:"text-primary-950 peer flex h-full w-full items-center gap-3 text-xs",href:o.to},[e.renderSlot(u.$slots,"default")],8,fe)),o.hasChildren?(e.openBlock(),e.createElementBlock("button",{key:2,onClick:d[1]||(d[1]=x=>e.unref(i)()),class:"hover:bg-brand-primary-200 cursor-pointer rounded-full p-1 transition-all",type:"button"},[(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:e.normalizeClass(["lucide lucide-chevron-down-icon lucide-chevron-down stroke-brand-primary-800 transition-all duration-300",{"rotate-180":e.unref(s)}])},d[2]||(d[2]=[e.createElementVNode("path",{d:"m6 9 6 6 6-6"},null,-1)]),2))])):e.createCommentVNode("",!0)]))}},he={class:"hover:bg-background-main has-[&.router-link-active]:active has-[&.router-link-active]:bg-primary-700 peer flex h-10 items-center justify-between rounded-lg px-3 transition-all"},N={__name:"AppSidebarToggle",setup(t){const r=e.inject("SIDEBAR_TOGGLE");return(o,a)=>{const n=e.resolveComponent("RouterLink");return e.openBlock(),e.createElementBlock("div",he,[e.createVNode(n,{class:"text-primary-950 peer flex h-full w-full items-center gap-3 text-xs [&.router-link-active]:font-medium [&.router-link-active]:text-white",to:"/"},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"default")]),_:3}),e.createElementVNode("button",{onClick:a[0]||(a[0]=s=>e.unref(r).toggleSidebarItem()),class:"cursor-pointer",type:"button"},a[1]||(a[1]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-chevron-down-icon lucide-chevron-down stroke-white"},[e.createElementVNode("path",{d:"m6 9 6 6 6-6"})],-1)]))])}}},ke={},xe={key:0,class:"text-primary-950 px-1 text-sm font-medium"},_e={class:"mt-2"};function ye(t,r){return e.openBlock(),e.createElementBlock("nav",null,[t.$slots.title?(e.openBlock(),e.createElementBlock("b",xe,[e.renderSlot(t.$slots,"title")])):e.createCommentVNode("",!0),e.createElementVNode("div",_e,[e.renderSlot(t.$slots,"items")])])}const D=p(ke,[["render",ye]]),I={primary:{backgroundColor:"bg-brand-primary-700",textColor:"text-white"},secondary:{backgroundColor:"bg-neutral-100",textColor:"text-neutral-700"},success:{backgroundColor:"bg-success-400",textColor:"text-white"},danger:{backgroundColor:"bg-danger-600",textColor:"text-white"},warning:{backgroundColor:"bg-warning-500",textColor:"text-neutral-950"},secondaryPrimary:{backgroundColor:"bg-brand-primary-100",textColor:"text-brand-primary-700"},secondaryAltPrimary:{backgroundColor:"bg-primary-100",textColor:"text-primary-700"},secondarySuccess:{backgroundColor:"bg-success-100",textColor:"text-success-700"},secondaryDanger:{backgroundColor:"bg-danger-100",textColor:"text-danger-700"},secondaryWarning:{backgroundColor:"bg-warning-100",textColor:"text-warning-700"},outlined:{backgroundColor:"bg-transparent",textColor:"text-neutral-700",borderColor:"border border-neutral-200"},outlinedPrimary:{backgroundColor:"bg-transparent",textColor:"text-brand-primary-700",borderColor:"border border-brand-primary-300"},outlinedSuccess:{backgroundColor:"bg-transparent",textColor:"text-success-600",borderColor:"border border-success-300"},outlinedDanger:{backgroundColor:"bg-transparent",textColor:"text-danger-600",borderColor:"border border-danger-300"},outlinedWarning:{backgroundColor:"bg-transparent",textColor:"text-warning-600",borderColor:"border border-warning-300"},ghost:{backgroundColor:"bg-transparent",textColor:"text-neutral-700"},ghostPrimary:{backgroundColor:"bg-transparent",textColor:"text-brand-primary-700"},ghostSuccess:{backgroundColor:"bg-transparent",textColor:"text-success-600"},ghostDanger:{backgroundColor:"bg-transparent",textColor:"text-danger-600"},ghostWarning:{backgroundColor:"bg-transparent",textColor:"text-warning-600"}},g={primary:{backgroundColor:"bg-gradient-to-br from-brand-primary-500 to-brand-primary-700",textColor:"text-white",hoverBackgroundColor:"hover:from-brand-primary-700 hover:to-brand-primary-800",focusRing:"focus:ring-brand-primary-300"},secondary:{backgroundColor:"bg-neutral-100",textColor:"text-neutral-700",hoverBackgroundColor:"hover:bg-neutral-200",focusRing:"focus:ring-neutral-300"},success:{backgroundColor:"bg-success-400",textColor:"text-white",hoverBackgroundColor:"hover:bg-success-500",focusRing:"focus:ring-success-300"},danger:{backgroundColor:"bg-danger-600",textColor:"text-white",hoverBackgroundColor:"hover:bg-danger-700",focusRing:"focus:ring-danger-300"},warning:{backgroundColor:"bg-warning-500",textColor:"text-neutral-950",hoverBackgroundColor:"hover:bg-warning-600",focusRing:"focus:ring-warning-300"},secondaryPrimary:{backgroundColor:"bg-brand-primary-100",textColor:"text-brand-primary-700",hoverBackgroundColor:"hover:bg-brand-primary-200",focusRing:"focus:ring-brand-primary-200"},secondaryAltPrimary:{backgroundColor:"bg-primary-100",textColor:"text-primary-700",hoverBackgroundColor:"hover:bg-primary-200",focusRing:"focus:ring-primary-200"},secondarySuccess:{backgroundColor:"bg-success-100",textColor:"text-success-700",hoverBackgroundColor:"hover:bg-success-200",focusRing:"focus:ring-success-200"},secondaryDanger:{backgroundColor:"bg-danger-100",textColor:"text-danger-700",hoverBackgroundColor:"hover:bg-danger-200",focusRing:"focus:ring-danger-200"},secondaryWarning:{backgroundColor:"bg-warning-100",textColor:"text-warning-700",hoverBackgroundColor:"hover:bg-warning-200",focusRing:"focus:ring-warning-200"},outlined:{backgroundColor:"bg-transparent",textColor:"text-neutral-700",borderColor:"border border-neutral-200",hoverBackgroundColor:"hover:bg-neutral-100",hoverTextColor:"hover:text-neutral-900",focusRing:"focus:ring-neutral-200"},outlinedPrimary:{backgroundColor:"bg-transparent",textColor:"text-brand-primary-700",borderColor:"border border-brand-primary-300",hoverBackgroundColor:"hover:bg-brand-primary-100",hoverTextColor:"hover:text-brand-primary-800",focusRing:"focus:ring-brand-primary-200"},outlinedSuccess:{backgroundColor:"bg-transparent",textColor:"text-success-600",borderColor:"border border-success-300",hoverBackgroundColor:"hover:bg-success-100",hoverTextColor:"hover:text-success-700",focusRing:"focus:ring-success-200"},outlinedDanger:{backgroundColor:"bg-transparent",textColor:"text-danger-600",borderColor:"border border-danger-300",hoverBackgroundColor:"hover:bg-danger-100",hoverTextColor:"hover:text-danger-700",focusRing:"focus:ring-danger-200"},outlinedWarning:{backgroundColor:"bg-transparent",textColor:"text-warning-600",borderColor:"border border-warning-300",hoverBackgroundColor:"hover:bg-warning-100",hoverTextColor:"hover:text-warning-700",focusRing:"focus:ring-warning-200"},ghost:{backgroundColor:"bg-transparent",textColor:"text-neutral-700",hoverBackgroundColor:"hover:bg-neutral-100",hoverTextColor:"hover:text-neutral-900",focusRing:"focus:ring-neutral-200"},ghostPrimary:{backgroundColor:"bg-transparent",textColor:"text-brand-primary-700",hoverBackgroundColor:"hover:bg-brand-primary-100",hoverTextColor:"hover:text-brand-primary-800",focusRing:"focus:ring-brand-primary-200"},ghostSuccess:{backgroundColor:"bg-transparent",textColor:"text-success-600",hoverBackgroundColor:"hover:bg-success-100",hoverTextColor:"hover:text-success-700",focusRing:"focus:ring-success-200"},ghostDanger:{backgroundColor:"bg-transparent",textColor:"text-danger-600",hoverBackgroundColor:"hover:bg-danger-100",hoverTextColor:"hover:text-danger-700",focusRing:"focus:ring-danger-200"},ghostWarning:{backgroundColor:"bg-transparent",textColor:"text-warning-600",hoverBackgroundColor:"hover:bg-warning-100",hoverTextColor:"hover:text-warning-700",focusRing:"focus:ring-warning-200"}},R={__name:"Badge",props:{variant:{type:String,default:"primary"}},setup(t){const r=t;return(o,a)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["rounded-full px-3 py-1 text-xs font-medium",[e.unref(I)[r.variant].backgroundColor,e.unref(I)[r.variant].textColor]])},[e.renderSlot(o.$slots,"default")],2))}},f={__name:"Button",props:{variant:{type:String,default:"primary"}},setup(t,{expose:r}){const o=t,a=e.ref(null);return r({buttonRef:a}),(n,s)=>(e.openBlock(),e.createElementBlock("button",e.mergeProps(n.$attrs,{class:["cursor-pointer rounded-lg px-4 py-2 text-xs transition-all active:scale-[0.97] disabled:cursor-not-allowed disabled:opacity-50 disabled:active:scale-100",[e.unref(g)[o.variant].backgroundColor,e.unref(g)[o.variant].borderColor,e.unref(g)[o.variant].textColor,e.unref(g)[o.variant].hoverBackgroundColor,e.unref(g)[o.variant].hoverTextColor,e.unref(g)[o.variant].focusRing]],ref_key:"buttonRef",ref:a}),[e.renderSlot(n.$slots,"default")],16))}},Ce={},Be={class:"rounded-2xl bg-white p-6"};function we(t,r){return e.openBlock(),e.createElementBlock("div",Be,[e.renderSlot(t.$slots,"default")])}const h=p(Ce,[["render",we]]),P={__name:"Checkbox",props:{modelValue:{},modelModifiers:{}},emits:["update:modelValue"],setup(t){const r=e.useModel(t,"modelValue"),o=e.ref(null);return(a,n)=>(e.openBlock(),e.createElementBlock("button",{onClick:n[1]||(n[1]=s=>o.value.click()),class:"group/checkbox has-checked:bg-brand-primary-700 flex size-4 cursor-pointer items-center justify-center rounded-sm bg-neutral-200 transition-all duration-300 active:scale-[0.50] has-disabled:cursor-not-allowed has-disabled:opacity-50"},[n[2]||(n[2]=e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-check-icon lucide-check scale-0 stroke-white opacity-0 group-has-[:checked]/checkbox:scale-100 group-has-[:checked]/checkbox:opacity-100"},[e.createElementVNode("path",{d:"M20 6 9 17l-5-5"})],-1)),e.withDirectives(e.createElementVNode("input",e.mergeProps(a.$attrs,{"onUpdate:modelValue":n[0]||(n[0]=s=>r.value=s),type:"checkbox",ref_key:"checkboxRef",ref:o,hidden:""}),null,16),[[e.vModelCheckbox,r.value]])]))}},z={__name:"Dialog",setup(t){const r=e.ref(!1);function o(){r.value=!r.value}return e.provide("DIALOG_META",{toggled:r,toggleDialog:o}),(a,n)=>e.renderSlot(a.$slots,"default",{toggled:r.value,toggleDialog:o})}},k={__name:"DialogBackground",setup(t){return e.onMounted(()=>{document.querySelector("body").classList.add("overflow-hidden")}),e.onUnmounted(()=>{document.querySelector("body").classList.remove("overflow-hidden")}),(r,o)=>(e.openBlock(),e.createElementBlock("div",e.mergeProps(r.$attrs,{class:"pointer-events-auto fixed inset-0 z-[100] min-h-screen bg-black/80 backdrop-blur-[2px]"}),[e.renderSlot(r.$slots,"default")],16))}},j={__name:"DialogContent",props:{class:{type:String}},setup(t){const r=t,{toggled:o,toggleDialog:a}=e.inject("DIALOG_META");return(n,s)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"fade-in"},{default:e.withCtx(()=>[e.unref(o)?(e.openBlock(),e.createBlock(k,{key:0,onClick:s[0]||(s[0]=i=>e.unref(a)()),class:"z-[175]"})):e.createCommentVNode("",!0)]),_:1}),e.createVNode(e.Transition,{name:"fade-in-dialog"},{default:e.withCtx(()=>[e.unref(o)?(e.openBlock(),e.createBlock(h,{key:0,class:e.normalizeClass(["fixed top-1/2 left-1/2 z-[200] -translate-x-1/2 -translate-y-1/2 rounded-xl bg-white transition-all",r.class])},{default:e.withCtx(()=>[e.renderSlot(n.$slots,"default")]),_:3},8,["class"])):e.createCommentVNode("",!0)]),_:3})]))}},M={__name:"DialogToggle",setup(t){const r=e.useSlots(),{toggleDialog:o}=e.inject("DIALOG_META");return(a,n)=>{var s,i;return e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.cloneVNode((i=(s=e.unref(r)).default)==null?void 0:i.call(s)[0],{onClick:e.unref(o)})))}}},Se={class:"flex flex-col items-center justify-center gap-8"},$e={class:"flex items-center gap-2"},L={__name:"Empty",setup(t){return(r,o)=>(e.openBlock(),e.createElementBlock("div",Se,[o[2]||(o[2]=e.createStaticVNode('<div class="flex max-w-xs flex-col items-center gap-2 text-center"><div class="bg-brand-primary-100 mb-2 grid size-12 place-items-center rounded-full"><svg xmlns="http://www.w3.org/2000/svg" class="text-brand-primary-700 h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M9 13h6m-3-3v6m5 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"></path></svg></div><b class="text-lg font-medium">No Projects Yet</b><p class="text-sm text-neutral-600"> You haven&#39;t created any projects yet. Get started by creating your first project. </p></div>',1)),e.createElementVNode("div",$e,[e.createVNode(f,{class:"h-10",variant:"outlined"},{default:e.withCtx(()=>o[0]||(o[0]=[e.createTextVNode("Import Project")])),_:1,__:[0]}),e.createVNode(f,{class:"h-10",variant:"primary"},{default:e.withCtx(()=>o[1]||(o[1]=[e.createTextVNode("Create Project")])),_:1,__:[1]})])]))}},G={__name:"FormField",props:{invalid:{type:[Boolean,String]},validate:{type:Boolean,default:!1}},setup(t){const r=t,o=e.computed(()=>r.invalid===!0||typeof r.invalid=="string"&&r.invalid.trim()!=="");return(a,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["group flex flex-col gap-2",{"invalid-form":o.value}])},[e.renderSlot(a.$slots,"default")],2))}},Ee={},Ae={class:"text-danger-700 hidden h-0 text-xs opacity-0 transition-all group-has-user-invalid:mt-1 group-has-user-invalid:block group-has-user-invalid:h-4 group-has-user-invalid:opacity-100 group-[&.invalid-form]:mt-1 group-[&.invalid-form]:block group-[&.invalid-form]:h-4 group-[&.invalid-form]:opacity-100"};function Ve(t,r){return e.openBlock(),e.createElementBlock("p",Ae,[e.renderSlot(t.$slots,"default",{},void 0,!0)])}const W=p(Ee,[["render",Ve],["__scopeId","data-v-39085694"]]),H={__name:"Input",props:{modelValue:{},modelModifiers:{}},emits:["update:modelValue"],setup(t){const r=e.useModel(t,"modelValue");return(o,a)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{"onUpdate:modelValue":a[0]||(a[0]=n=>r.value=n),class:"group-[&.invalid-form]:focus:ring-danger-700 group-[&.invalid-form]:ring-danger-700 text-primary-950 focus:ring-brand-primary-700 focus:user-invalid:ring-danger-700 user-invalid:ring-danger-700 rounded-lg border-[1px] border-neutral-200 bg-white px-3 py-2 text-xs ring-offset-2 transition-all duration-300 outline-none group-[&.invalid-form]:ring-2 placeholder:text-neutral-400 user-invalid:ring-2 focus:ring-2 group-[&.invalid-form]:focus:ring-2 disabled:cursor-not-allowed disabled:opacity-50"},null,512)),[[e.vModelText,r.value]])}},Te={};function Ne(t,r){return e.openBlock(),e.createElementBlock("label",e.mergeProps(t.$attrs,{class:"text-primary-950 text-xs font-medium transition-all"}),[e.renderSlot(t.$slots,"default")],16)}const F=p(Te,[["render",Ne]]),O={__name:"Radio",props:e.mergeModels({variant:{type:String,default:"small"}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(t){const r=e.useModel(t,"modelValue"),o=t,a=e.ref(null),n={small:{outerCircleSize:"size-4",innerCircleSize:"size-2.5"},large:{outerCircleSize:"size-5",innerCircleSize:"size-3"}};return(s,i)=>(e.openBlock(),e.createElementBlock("button",{onClick:i[1]||(i[1]=c=>a.value.click()),class:e.normalizeClass(["group/radio has-checked:border-brand-primary-700 flex cursor-pointer items-center justify-center rounded-full border-[1px] border-transparent bg-neutral-100 duration-300 active:scale-[0.80] has-checked:bg-white",n[o.variant].outerCircleSize]),role:"radio",type:"button"},[e.createElementVNode("div",{class:e.normalizeClass(["group-has-checked/radio:bg-brand-primary-700 grid place-items-center rounded-full opacity-0 transition-all group-has-checked/radio:opacity-100",n[o.variant].innerCircleSize])},[e.renderSlot(s.$slots,"default")],2),e.withDirectives(e.createElementVNode("input",e.mergeProps(s.$attrs,{"onUpdate:modelValue":i[0]||(i[0]=c=>r.value=c),type:"radio",ref_key:"radioRef",ref:a,hidden:""}),null,16),[[e.vModelRadio,r.value]])],2))}},De="bg-[url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiM1YjYxNmUiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBjbGFzcz0ibHVjaWRlIGx1Y2lkZS1jaGV2cm9uLWRvd24iPjxwYXRoIGQ9Im02IDkgNiA2IDYtNiIvPjwvc3ZnPg==')]",q={__name:"Select",props:{modelValue:{},modelModifiers:{}},emits:["update:modelValue"],setup(t){const r=e.useModel(t,"modelValue");return(o,a)=>e.withDirectives((e.openBlock(),e.createElementBlock("select",e.mergeProps(o.$attrs,{"onUpdate:modelValue":a[0]||(a[0]=n=>r.value=n),class:["group-[&.invalid-form]:ring-danger-700 group-[&.invalid-form]:focus:ring-danger-700 text-primary-950 user-invalid:ring-danger-700 focus:user-invalid:ring-danger-700 focus:ring-brand-primary-700 appearance-none rounded-lg border-[1px] border-neutral-200 bg-white bg-[length:16px] bg-[right_12px_center] bg-no-repeat px-3 py-2 text-xs ring-offset-2 transition-all outline-none group-[&.invalid-form]:ring-2 user-invalid:ring-2 focus:ring-2 group-[&.invalid-form]:focus:ring-2 disabled:cursor-not-allowed disabled:opacity-50",De]}),[e.renderSlot(o.$slots,"default")],16)),[[e.vModelSelect,r.value]])}},U={__name:"Sheet",setup(t){const r=e.ref(!1);function o(){r.value=!r.value}return e.provide("SHEET_META",{toggled:r,toggleSheet:o}),(a,n)=>e.renderSlot(a.$slots,"default",{toggled:r.value,toggleSheet:o})}},Y={__name:"SheetContent",props:{class:{type:String}},setup(t){const r=t,{toggled:o,toggleSheet:a}=e.inject("SHEET_META");return(n,s)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"fade-in"},{default:e.withCtx(()=>[e.unref(o)?(e.openBlock(),e.createBlock(k,{key:0,onClick:s[0]||(s[0]=i=>e.unref(a)())})):e.createCommentVNode("",!0)]),_:1}),e.createVNode(e.Transition,{name:"slide"},{default:e.withCtx(()=>[e.unref(o)?(e.openBlock(),e.createBlock(h,{key:0,class:e.normalizeClass(["fixed top-1/2 right-0 z-[150] h-full w-3/4 -translate-y-1/2 rounded-e-none bg-white transition-all md:right-[1rem] md:h-[calc(100dvh-2rem)] md:w-96 md:rounded-xl",r.class])},{default:e.withCtx(()=>[e.renderSlot(n.$slots,"default")]),_:3},8,["class"])):e.createCommentVNode("",!0)]),_:3})]))}},Z={__name:"SheetToggle",setup(t){const r=e.useSlots(),{toggleSheet:o}=e.inject("SHEET_META");return(a,n)=>{var s,i;return e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.cloneVNode((i=(s=e.unref(r)).default)==null?void 0:i.call(s)[0],{onClick:e.unref(o)})))}}},Ie={},Re={class:"bg-primary-100 animate-pulse rounded-lg"};function Pe(t,r){return e.openBlock(),e.createElementBlock("div",Re)}const J=p(Ie,[["render",Pe]]),X={__name:"Switch",props:["modelValue"],emits:["update:modelValue"],setup(t,{emit:r}){const o=r,a=t;function n(){o("update:modelValue",!a.modelValue)}return(s,i)=>(e.openBlock(),e.createElementBlock("button",e.mergeProps(s.$attrs,{onClick:i[0]||(i[0]=c=>n()),class:["group/switch h-5 w-9 cursor-pointer rounded-full p-0.5 transition-all duration-300 disabled:cursor-not-allowed disabled:opacity-50",a.modelValue?"from-brand-primary-600 to-brand-primary-700 bg-gradient-to-br":"bg-neutral-200"],role:"switch",type:"button"}),[e.createElementVNode("span",{class:e.normalizeClass(["pointer-events-none flex size-4 items-center justify-center rounded-full bg-white shadow-md transition-all duration-300",{"translate-x-full":a.modelValue}])},[e.renderSlot(s.$slots,"icon")],2)],16))}},ze={class:"w-full"},je={class:"h-16"},Me={key:0},Le={key:0,class:"pe-4"},Q={__name:"Table",props:{columns:{type:Array,required:!0},data:{type:Array,required:!0}},setup(t){const r=t;return(o,a)=>(e.openBlock(),e.createElementBlock("table",ze,[e.createElementVNode("thead",null,[e.createElementVNode("tr",je,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.columns,n=>(e.openBlock(),e.createElementBlock("th",{key:n.key,class:"text-xs font-medium text-neutral-600 first-of-type:ps-4"},e.toDisplayString(n.label),1))),128)),o.$slots.actions?(e.openBlock(),e.createElementBlock("th",Me)):e.createCommentVNode("",!0)])]),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.data,(n,s)=>(e.openBlock(),e.createElementBlock("tr",{key:s,class:"odd:bg-background-main/50 hover:bg-background-main min-h-16 rounded-md transition-all"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.columns,i=>(e.openBlock(),e.createElementBlock("td",{key:i.key,class:"text-primary-950 py-4 text-xs first-of-type:rounded-s-md first-of-type:ps-4 last-of-type:rounded-e-md last-of-type:pe-4"},[e.renderSlot(o.$slots,i.key,{row:n},()=>[e.createTextVNode(e.toDisplayString(n[i.key]),1)])]))),128)),o.$slots.actions?(e.openBlock(),e.createElementBlock("td",Le,[e.renderSlot(o.$slots,"actions",{row:n})])):e.createCommentVNode("",!0)]))),128))])]))}},Ge={class:"overflow-x-scroll rounded-xl bg-neutral-100/50 p-1 [&::-webkit-scrollbar]:hidden"},K={__name:"Tabs",props:{default:{default:null}},setup(t){const r=t,o=e.ref(r.default);function a(n){o.value=n}return e.provide("TAB_DATA",{currentValue:o,setCurrentValue:a}),(n,s)=>(e.openBlock(),e.createElementBlock("div",Ge,[e.renderSlot(n.$slots,"default")]))}},v=p({__name:"TabItem",props:{value:{required:!0}},setup(t){const r=t,o=e.inject("TAB_DATA"),{currentValue:a,setCurrentValue:n}=o,s=e.computed(()=>a.value===r.value?["bg-white","font-medium","text-primary-700","shadow-xl","tab-active"]:"text-neutral-600");return(i,c)=>(e.openBlock(),e.createElementBlock("button",{onClick:c[0]||(c[0]=b=>e.unref(n)(r.value)),class:e.normalizeClass(["tab h-8 cursor-pointer rounded-lg px-3 text-xs transition-all disabled:cursor-not-allowed disabled:opacity-50",s.value])},[e.renderSlot(i.$slots,"default",{},void 0,!0)],2))}},[["__scopeId","data-v-9e06f71f"]]),ee={__name:"TextArea",props:["modelValue"],setup(t){const r=t,o=e.ref(r.modelValue);return(a,n)=>e.withDirectives((e.openBlock(),e.createElementBlock("textarea",e.mergeProps({onInput:n[0]||(n[0]=s=>a.$emit("update:modelValue",s.target.value))},a.$attrs,{"onUpdate:modelValue":n[1]||(n[1]=s=>o.value=s),class:"text-primary-950 neutral-400:text-neutral-400 focus:ring-brand-primary-700 user-invalid:ring-danger-700 focus:user-invalid:ring-danger-700 rounded-lg border-[1px] border-neutral-200 px-3 py-2 text-xs transition-all outline-none user-invalid:ring-2 focus:ring-2 focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50"}),null,16)),[[e.vModelText,o.value]])}},We={install(t){t.component("AppHeader",_),t.component("AppHeaderLink",y),t.component("AppLayout",C),t.component("AppMain",B),t.component("AppNavTabs",w),t.component("AppNavTab",S),t.component("AppSidebar",$),t.component("AppSidebarItem",E),t.component("AppSidebarItemChild",A),t.component("AppSidebarItemChildren",V),t.component("AppSidebarItemParent",T),t.component("AppSidebarToggle",N),t.component("AppSidebarNavSection",D),t.component("Badge",R),t.component("Button",f),t.component("Checkbox",P),t.component("Card",h),t.component("Dialog",z),t.component("DialogContent",j),t.component("DialogToggle",M),t.component("DialogBackground",k),t.component("Empty",L),t.component("FormField",G),t.component("FormFieldError",W),t.component("Input",H),t.component("Label",F),t.component("Radio",O),t.component("Select",q),t.component("Sheet",U),t.component("SheetContent",Y),t.component("SheetToggle",Z),t.component("SkeletonLoader",J),t.component("Switch",X),t.component("Table",Q),t.component("Tabs",K),t.component("TabItem",v),t.component("TextArea",ee)}};l.AppHeader=_,l.AppHeaderLink=y,l.AppLayout=C,l.AppMain=B,l.AppNavTab=S,l.AppNavTabs=w,l.AppSidebar=$,l.AppSidebarItem=E,l.AppSidebarItemChild=A,l.AppSidebarItemChildren=V,l.AppSidebarItemParent=T,l.AppSidebarNavSection=D,l.AppSidebarToggle=N,l.Badge=R,l.Button=f,l.Card=h,l.Checkbox=P,l.Dialog=z,l.DialogBackground=k,l.DialogContent=j,l.DialogToggle=M,l.Empty=L,l.FormField=G,l.FormFieldError=W,l.Input=H,l.Label=F,l.Radio=O,l.Select=q,l.Sheet=U,l.SheetContent=Y,l.SheetToggle=Z,l.SkeletonLoader=J,l.Switch=X,l.TabItem=v,l.Table=Q,l.Tabs=K,l.TextArea=ee,l.default=We,Object.defineProperties(l,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "scrubbed-tailwind-components-v2",
3
- "version": "2.2.1",
3
+ "version": "2.3.0",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "dist/scrubbed-tailwind-components-v2.umd.js",
@@ -43,7 +43,7 @@
43
43
  "prettier-plugin-tailwindcss": "^0.6.13",
44
44
  "start-server-and-test": "^2.0.11",
45
45
  "vite": "^6.2.4",
46
- "vite-plugin-vue-devtools": "^7.7.2",
46
+ "vite-plugin-vue-devtools": "^8.0.2",
47
47
  "vue-router": "^4.5.0"
48
48
  }
49
49
  }