@grapadigital/shared-app-modules 0.0.75 → 0.0.77

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.
@@ -372,7 +372,8 @@ declare interface ProfileMetric {
372
372
 
373
373
  declare interface ProposalInterface {
374
374
  businessUnit: "enterprise" | "artistic";
375
- type: "inbound" | "outbound";
375
+ origin: "inbound" | "outbound";
376
+ type: "new" | "renewal" | "upsell";
376
377
  contact: string;
377
378
  initialScope: string;
378
379
  profile: ProfileInterface;
package/dist/sale.d.ts CHANGED
@@ -372,7 +372,8 @@ declare interface ProfileMetric {
372
372
 
373
373
  export declare interface ProposalInterface {
374
374
  businessUnit: "enterprise" | "artistic";
375
- type: "inbound" | "outbound";
375
+ origin: "inbound" | "outbound";
376
+ type: "new" | "renewal" | "upsell";
376
377
  contact: string;
377
378
  initialScope: string;
378
379
  profile: ProfileInterface;
package/dist/shadcn.d.ts CHANGED
@@ -450,6 +450,40 @@ declare const THEMES: {
450
450
  readonly dark: ".dark";
451
451
  };
452
452
 
453
+ export declare function Timeline({ defaultValue, value, onValueChange, orientation, className, ...props }: TimelineProps): JSX.Element;
454
+
455
+ export declare function TimelineContent({ className, ...props }: React_2.HTMLAttributes<HTMLDivElement>): JSX.Element;
456
+
457
+ export declare function TimelineDate({ asChild, className, ...props }: TimelineDateProps): JSX.Element;
458
+
459
+ declare interface TimelineDateProps extends React_2.HTMLAttributes<HTMLTimeElement> {
460
+ asChild?: boolean;
461
+ }
462
+
463
+ export declare function TimelineHeader({ className, ...props }: React_2.HTMLAttributes<HTMLDivElement>): JSX.Element;
464
+
465
+ export declare function TimelineIndicator({ className, ...props }: TimelineIndicatorProps): JSX.Element;
466
+
467
+ declare interface TimelineIndicatorProps extends React_2.HTMLAttributes<HTMLDivElement> {
468
+ }
469
+
470
+ export declare function TimelineItem({ step, className, ...props }: TimelineItemProps): JSX.Element;
471
+
472
+ declare interface TimelineItemProps extends React_2.HTMLAttributes<HTMLDivElement> {
473
+ step: number;
474
+ }
475
+
476
+ declare interface TimelineProps extends React_2.HTMLAttributes<HTMLDivElement> {
477
+ defaultValue?: number;
478
+ value?: number;
479
+ onValueChange?: (value: number) => void;
480
+ orientation?: "horizontal" | "vertical";
481
+ }
482
+
483
+ export declare function TimelineSeparator({ className, ...props }: React_2.HTMLAttributes<HTMLDivElement>): JSX.Element;
484
+
485
+ export declare function TimelineTitle({ className, ...props }: React_2.HTMLAttributes<HTMLHeadingElement>): JSX.Element;
486
+
453
487
  export declare const Tooltip: React_2.FC<TooltipPrimitive.TooltipProps>;
454
488
 
455
489
  export declare const TooltipContent: React_2.ForwardRefExoticComponent<Omit<TooltipPrimitive.TooltipContentProps & React_2.RefAttributes<HTMLDivElement>, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
package/dist/shadcn.js CHANGED
@@ -1,10 +1,10 @@
1
- import { a as Xe, c as y, n as le, L as jt, S as Qe, o as Ht, p as $e, B as et, I as qt, T as Gt, q as $t } from "./chuncks/chart.DtEj441j.js";
2
- import { av as Sr, ay as Nr, aw as Tr, ax as _r, aA as Er, aD as Pr, aE as Br, aF as Ir, aB as Fr, aC as Yr, r as Ar, C as zr, as as jr, i as Hr, k as qr, g as Gr, l as $r, h as Rr, au as Vr, at as Zr, E as Ur, F as Lr, G as Kr, J as Jr, K as Xr, M as Qr, N as es, O as ts, Q as ns, U as os, ai as as, am as rs, an as ss, ar as is, ap as ls, ao as ds, ak as us, aj as cs, aq as fs, al as hs, H as ms, d as ps, b as ys, P as gs, ad as bs, f as vs, e as ks, az as ws, s as Ms, w as Ds, t as Cs, y as Os, x as xs, D as Ws, A as Ss, z as Ns, v as Ts, u as _s, V as Es, X as Ps, Y as Bs, a0 as Is, _ as Fs, Z as Ys, $ as As, W as zs, a5 as js, a7 as Hs, ac as qs, ab as Gs, a8 as $s, a9 as Rs, a6 as Vs, aa as Zs, a1 as Us, a4 as Ls, a2 as Ks, a3 as Js, ae as Xs, ag as Qs, ah as ei, af as ti } from "./chuncks/chart.DtEj441j.js";
1
+ import { a as Xe, c as y, n as le, L as jt, S as Qe, o as Ht, p as $e, B as et, I as qt, T as Gt, q as $t } from "./chuncks/timeline.DfIC0519.js";
2
+ import { av as Wr, ay as Nr, aw as Tr, ax as _r, aA as Er, aD as Pr, aE as Br, aF as Ir, aB as Fr, aC as Yr, r as Ar, C as zr, as as jr, i as Hr, k as qr, g as Gr, l as $r, h as Rr, au as Vr, at as Zr, E as Ur, F as Lr, G as Kr, J as Jr, K as Xr, M as Qr, N as es, O as ts, Q as ns, U as os, ai as as, am as rs, an as ss, ar as is, ap as ls, ao as ds, ak as us, aj as cs, aq as fs, al as hs, H as ms, d as ps, b as ys, P as gs, ad as bs, f as vs, e as ks, az as ws, s as Ms, w as Ds, t as Cs, y as Os, x as xs, D as Ss, A as Ws, z as Ns, v as Ts, u as _s, V as Es, X as Ps, Y as Bs, a0 as Is, _ as Fs, Z as Ys, $ as As, W as zs, a5 as js, a7 as Hs, ac as qs, ab as Gs, a8 as $s, a9 as Rs, a6 as Vs, aa as Zs, a1 as Us, a4 as Ls, a2 as Ks, a3 as Js, aG as Xs, aH as Qs, aI as ei, aJ as ti, aK as ni, aL as oi, aM as ai, aN as ri, ae as si, ag as ii, ah as li, af as di } from "./chuncks/timeline.DfIC0519.js";
3
3
  import * as pe from "react";
4
4
  import c, { useMemo as ie, createContext as Rt, useContext as Vt, useCallback as H, useRef as me, useLayoutEffect as Zt, useState as Ee, useEffect as Ut } from "react";
5
5
  import { jsx as N, jsxs as Lt } from "react/jsx-runtime";
6
- import { C as oi, e as ai, a as ri, f as si, c as ii, b as li, d as di } from "./chuncks/card.DgcbeLHV.js";
7
- import { addDays as Kt, addMonths as Jt, addWeeks as Xt, addYears as Qt, differenceInCalendarDays as en, differenceInCalendarMonths as tn, eachMonthOfInterval as nn, eachYearOfInterval as on, endOfISOWeek as an, endOfMonth as rn, endOfWeek as sn, endOfYear as ln, format as dn, getISOWeek as un, getMonth as cn, getYear as fn, getWeek as hn, isAfter as mn, isBefore as pn, isDate as yn, isSameDay as gn, isSameMonth as bn, isSameYear as vn, max as kn, min as wn, setMonth as Mn, setYear as Dn, startOfDay as Cn, startOfISOWeek as On, startOfMonth as xn, startOfWeek as Wn, startOfYear as Sn } from "date-fns";
6
+ import { C as ci, e as fi, a as hi, f as mi, c as pi, b as yi, d as gi } from "./chuncks/card.Bockr0Tv.js";
7
+ import { addDays as Kt, addMonths as Jt, addWeeks as Xt, addYears as Qt, differenceInCalendarDays as en, differenceInCalendarMonths as tn, eachMonthOfInterval as nn, eachYearOfInterval as on, endOfISOWeek as an, endOfMonth as rn, endOfWeek as sn, endOfYear as ln, format as dn, getISOWeek as un, getMonth as cn, getYear as fn, getWeek as hn, isAfter as mn, isBefore as pn, isDate as yn, isSameDay as gn, isSameMonth as bn, isSameYear as vn, max as kn, min as wn, setMonth as Mn, setYear as Dn, startOfDay as Cn, startOfISOWeek as On, startOfMonth as xn, startOfWeek as Sn, startOfYear as Wn } from "date-fns";
8
8
  function or(e) {
9
9
  const [t, o] = pe.useState(!1);
10
10
  return pe.useEffect(() => {
@@ -308,7 +308,7 @@ function tt(e) {
308
308
  d.setUTCSeconds(0);
309
309
  const f = a > 0 ? d.getSeconds() : (d.getSeconds() - 60) % 60, u = Math.round(-(ne(e.timeZone, e) * 60)) % 60;
310
310
  (u || f) && (e.internal.setUTCSeconds(e.internal.getUTCSeconds() + u), Date.prototype.setUTCSeconds.call(e, Date.prototype.getUTCSeconds.call(e) + u + f));
311
- const h = ne(e.timeZone, e), b = h > 0 ? Math.floor(h) : Math.ceil(h), S = -(/* @__PURE__ */ new Date(+e)).getTimezoneOffset() - b, w = b !== o, O = S - i;
311
+ const h = ne(e.timeZone, e), b = h > 0 ? Math.floor(h) : Math.ceil(h), W = -(/* @__PURE__ */ new Date(+e)).getTimezoneOffset() - b, w = b !== o, O = W - i;
312
312
  if (w && O) {
313
313
  Date.prototype.setUTCMinutes.call(e, Date.prototype.getUTCMinutes.call(e) + O);
314
314
  const T = ne(e.timeZone, e), k = T > 0 ? Math.floor(T) : Math.ceil(T), D = b - k;
@@ -438,7 +438,7 @@ const An = {
438
438
  const a = An[e];
439
439
  return typeof a == "string" ? n = a : t === 1 ? n = a.one : n = a.other.replace("{{count}}", t.toString()), o?.addSuffix ? o.comparison && o.comparison > 0 ? "in " + n : n + " ago" : n;
440
440
  };
441
- function We(e) {
441
+ function Se(e) {
442
442
  return (t = {}) => {
443
443
  const o = t.width ? String(t.width) : e.defaultWidth;
444
444
  return e.formats[o] || e.formats[e.defaultWidth];
@@ -460,15 +460,15 @@ const jn = {
460
460
  medium: "{{date}}, {{time}}",
461
461
  short: "{{date}}, {{time}}"
462
462
  }, Gn = {
463
- date: We({
463
+ date: Se({
464
464
  formats: jn,
465
465
  defaultWidth: "full"
466
466
  }),
467
- time: We({
467
+ time: Se({
468
468
  formats: Hn,
469
469
  defaultWidth: "full"
470
470
  }),
471
- dateTime: We({
471
+ dateTime: Se({
472
472
  formats: qn,
473
473
  defaultWidth: "full"
474
474
  })
@@ -833,7 +833,7 @@ class z {
833
833
  }, this.endOfBroadcastWeek = (n) => this.overrides?.endOfBroadcastWeek ? this.overrides.endOfBroadcastWeek(n) : vo(n, this), this.endOfISOWeek = (n) => this.overrides?.endOfISOWeek ? this.overrides.endOfISOWeek(n) : an(n), this.endOfMonth = (n) => this.overrides?.endOfMonth ? this.overrides.endOfMonth(n) : rn(n), this.endOfWeek = (n, a) => this.overrides?.endOfWeek ? this.overrides.endOfWeek(n, a) : sn(n, this.options), this.endOfYear = (n) => this.overrides?.endOfYear ? this.overrides.endOfYear(n) : ln(n), this.format = (n, a, l) => {
834
834
  const r = this.overrides?.format ? this.overrides.format(n, a, this.options) : dn(n, a, this.options);
835
835
  return this.options.numerals && this.options.numerals !== "latn" ? this.replaceDigits(r) : r;
836
- }, this.getISOWeek = (n) => this.overrides?.getISOWeek ? this.overrides.getISOWeek(n) : un(n), this.getMonth = (n, a) => this.overrides?.getMonth ? this.overrides.getMonth(n, this.options) : cn(n, this.options), this.getYear = (n, a) => this.overrides?.getYear ? this.overrides.getYear(n, this.options) : fn(n, this.options), this.getWeek = (n, a) => this.overrides?.getWeek ? this.overrides.getWeek(n, this.options) : hn(n, this.options), this.isAfter = (n, a) => this.overrides?.isAfter ? this.overrides.isAfter(n, a) : mn(n, a), this.isBefore = (n, a) => this.overrides?.isBefore ? this.overrides.isBefore(n, a) : pn(n, a), this.isDate = (n) => this.overrides?.isDate ? this.overrides.isDate(n) : yn(n), this.isSameDay = (n, a) => this.overrides?.isSameDay ? this.overrides.isSameDay(n, a) : gn(n, a), this.isSameMonth = (n, a) => this.overrides?.isSameMonth ? this.overrides.isSameMonth(n, a) : bn(n, a), this.isSameYear = (n, a) => this.overrides?.isSameYear ? this.overrides.isSameYear(n, a) : vn(n, a), this.max = (n) => this.overrides?.max ? this.overrides.max(n) : kn(n), this.min = (n) => this.overrides?.min ? this.overrides.min(n) : wn(n), this.setMonth = (n, a) => this.overrides?.setMonth ? this.overrides.setMonth(n, a) : Mn(n, a), this.setYear = (n, a) => this.overrides?.setYear ? this.overrides.setYear(n, a) : Dn(n, a), this.startOfBroadcastWeek = (n, a) => this.overrides?.startOfBroadcastWeek ? this.overrides.startOfBroadcastWeek(n, this) : ot(n, this), this.startOfDay = (n) => this.overrides?.startOfDay ? this.overrides.startOfDay(n) : Cn(n), this.startOfISOWeek = (n) => this.overrides?.startOfISOWeek ? this.overrides.startOfISOWeek(n) : On(n), this.startOfMonth = (n) => this.overrides?.startOfMonth ? this.overrides.startOfMonth(n) : xn(n), this.startOfWeek = (n, a) => this.overrides?.startOfWeek ? this.overrides.startOfWeek(n, this.options) : Wn(n, this.options), this.startOfYear = (n) => this.overrides?.startOfYear ? this.overrides.startOfYear(n) : Sn(n), this.options = { locale: nt, ...t }, this.overrides = o;
836
+ }, this.getISOWeek = (n) => this.overrides?.getISOWeek ? this.overrides.getISOWeek(n) : un(n), this.getMonth = (n, a) => this.overrides?.getMonth ? this.overrides.getMonth(n, this.options) : cn(n, this.options), this.getYear = (n, a) => this.overrides?.getYear ? this.overrides.getYear(n, this.options) : fn(n, this.options), this.getWeek = (n, a) => this.overrides?.getWeek ? this.overrides.getWeek(n, this.options) : hn(n, this.options), this.isAfter = (n, a) => this.overrides?.isAfter ? this.overrides.isAfter(n, a) : mn(n, a), this.isBefore = (n, a) => this.overrides?.isBefore ? this.overrides.isBefore(n, a) : pn(n, a), this.isDate = (n) => this.overrides?.isDate ? this.overrides.isDate(n) : yn(n), this.isSameDay = (n, a) => this.overrides?.isSameDay ? this.overrides.isSameDay(n, a) : gn(n, a), this.isSameMonth = (n, a) => this.overrides?.isSameMonth ? this.overrides.isSameMonth(n, a) : bn(n, a), this.isSameYear = (n, a) => this.overrides?.isSameYear ? this.overrides.isSameYear(n, a) : vn(n, a), this.max = (n) => this.overrides?.max ? this.overrides.max(n) : kn(n), this.min = (n) => this.overrides?.min ? this.overrides.min(n) : wn(n), this.setMonth = (n, a) => this.overrides?.setMonth ? this.overrides.setMonth(n, a) : Mn(n, a), this.setYear = (n, a) => this.overrides?.setYear ? this.overrides.setYear(n, a) : Dn(n, a), this.startOfBroadcastWeek = (n, a) => this.overrides?.startOfBroadcastWeek ? this.overrides.startOfBroadcastWeek(n, this) : ot(n, this), this.startOfDay = (n) => this.overrides?.startOfDay ? this.overrides.startOfDay(n) : Cn(n), this.startOfISOWeek = (n) => this.overrides?.startOfISOWeek ? this.overrides.startOfISOWeek(n) : On(n), this.startOfMonth = (n) => this.overrides?.startOfMonth ? this.overrides.startOfMonth(n) : xn(n), this.startOfWeek = (n, a) => this.overrides?.startOfWeek ? this.overrides.startOfWeek(n, this.options) : Sn(n, this.options), this.startOfYear = (n) => this.overrides?.startOfYear ? this.overrides.startOfYear(n) : Wn(n), this.options = { locale: nt, ...t }, this.overrides = o;
837
837
  }
838
838
  /**
839
839
  * Generates a mapping of Arabic digits (0-9) to the target numbering system
@@ -991,7 +991,7 @@ var A;
991
991
  (function(e) {
992
992
  e.weeks_before_enter = "weeks_before_enter", e.weeks_before_exit = "weeks_before_exit", e.weeks_after_enter = "weeks_after_enter", e.weeks_after_exit = "weeks_after_exit", e.caption_after_enter = "caption_after_enter", e.caption_after_exit = "caption_after_exit", e.caption_before_enter = "caption_before_enter", e.caption_before_exit = "caption_before_exit";
993
993
  })(A || (A = {}));
994
- function Wo(e) {
994
+ function So(e) {
995
995
  const { options: t, className: o, components: n, classNames: a, ...l } = e, r = [a[p.Dropdown], o].join(" "), s = t?.find(({ value: i }) => i === l.value);
996
996
  return c.createElement(
997
997
  "span",
@@ -1005,7 +1005,7 @@ function Wo(e) {
1005
1005
  )
1006
1006
  );
1007
1007
  }
1008
- function So(e) {
1008
+ function Wo(e) {
1009
1009
  return c.createElement("div", { ...e });
1010
1010
  }
1011
1011
  function No(e) {
@@ -1110,8 +1110,8 @@ const Uo = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1110
1110
  Chevron: Co,
1111
1111
  Day: Oo,
1112
1112
  DayButton: xo,
1113
- Dropdown: Wo,
1114
- DropdownNav: So,
1113
+ Dropdown: So,
1114
+ DropdownNav: Wo,
1115
1115
  Footer: No,
1116
1116
  Month: To,
1117
1117
  MonthCaption: _o,
@@ -1176,7 +1176,7 @@ function ee(e, t, o = L) {
1176
1176
  });
1177
1177
  }
1178
1178
  function Lo(e, t, o, n, a) {
1179
- const { disabled: l, hidden: r, modifiers: s, showOutsideDays: i, broadcastCalendar: d, today: f = a.today() } = t, { isSameDay: u, isSameMonth: h, startOfMonth: b, isBefore: C, endOfMonth: S, isAfter: w } = a, O = o && b(o), T = n && S(n), k = {
1179
+ const { disabled: l, hidden: r, modifiers: s, showOutsideDays: i, broadcastCalendar: d, today: f = a.today() } = t, { isSameDay: u, isSameMonth: h, startOfMonth: b, isBefore: C, endOfMonth: W, isAfter: w } = a, O = o && b(o), T = n && W(n), k = {
1180
1180
  [B.focused]: [],
1181
1181
  [B.outside]: [],
1182
1182
  [B.disabled]: [],
@@ -1292,8 +1292,8 @@ function la(e, t, o, n, a) {
1292
1292
  start: r(e),
1293
1293
  end: s(e)
1294
1294
  }).map((h) => {
1295
- const b = n.formatMonthDropdown(h, a), C = d(h), S = t && h < l(t) || o && h > l(o) || !1;
1296
- return { value: C, label: b, disabled: S };
1295
+ const b = n.formatMonthDropdown(h, a), C = d(h), W = t && h < l(t) || o && h > l(o) || !1;
1296
+ return { value: C, label: b, disabled: W };
1297
1297
  });
1298
1298
  }
1299
1299
  function da(e, t = {}, o = {}) {
@@ -1378,10 +1378,10 @@ const Da = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1378
1378
  labelWeekNumberHeader: wa,
1379
1379
  labelWeekday: va,
1380
1380
  labelYearDropdown: Ma
1381
- }, Symbol.toStringTag, { value: "Module" })), ue = (e) => e instanceof HTMLElement ? e : null, Se = (e) => [
1381
+ }, Symbol.toStringTag, { value: "Module" })), ue = (e) => e instanceof HTMLElement ? e : null, We = (e) => [
1382
1382
  ...e.querySelectorAll("[data-animated-month]") ?? []
1383
1383
  ], Ca = (e) => ue(e.querySelector("[data-animated-month]")), Ne = (e) => ue(e.querySelector("[data-animated-caption]")), Te = (e) => ue(e.querySelector("[data-animated-weeks]")), Oa = (e) => ue(e.querySelector("[data-animated-nav]")), xa = (e) => ue(e.querySelector("[data-animated-weekdays]"));
1384
- function Wa(e, t, { classNames: o, months: n, focused: a, dateLib: l }) {
1384
+ function Sa(e, t, { classNames: o, months: n, focused: a, dateLib: l }) {
1385
1385
  const r = me(null), s = me(n), i = me(!1);
1386
1386
  Zt(() => {
1387
1387
  const d = s.current;
@@ -1389,8 +1389,8 @@ function Wa(e, t, { classNames: o, months: n, focused: a, dateLib: l }) {
1389
1389
  !(e.current instanceof HTMLElement) || // validation required for the animation to work as expected
1390
1390
  n.length === 0 || d.length === 0 || n.length !== d.length)
1391
1391
  return;
1392
- const f = l.isSameMonth(n[0].date, d[0].date), u = l.isAfter(n[0].date, d[0].date), h = u ? o[A.caption_after_enter] : o[A.caption_before_enter], b = u ? o[A.weeks_after_enter] : o[A.weeks_before_enter], C = r.current, S = e.current.cloneNode(!0);
1393
- if (S instanceof HTMLElement ? (Se(S).forEach((k) => {
1392
+ const f = l.isSameMonth(n[0].date, d[0].date), u = l.isAfter(n[0].date, d[0].date), h = u ? o[A.caption_after_enter] : o[A.caption_before_enter], b = u ? o[A.weeks_after_enter] : o[A.weeks_before_enter], C = r.current, W = e.current.cloneNode(!0);
1393
+ if (W instanceof HTMLElement ? (We(W).forEach((k) => {
1394
1394
  if (!(k instanceof HTMLElement))
1395
1395
  return;
1396
1396
  const D = Ca(k);
@@ -1399,10 +1399,10 @@ function Wa(e, t, { classNames: o, months: n, focused: a, dateLib: l }) {
1399
1399
  g && g.classList.remove(h);
1400
1400
  const m = Te(k);
1401
1401
  m && m.classList.remove(b);
1402
- }), r.current = S) : r.current = null, i.current || f || // skip animation if a day is focused because it can cause issues to the animation and is better for a11y
1402
+ }), r.current = W) : r.current = null, i.current || f || // skip animation if a day is focused because it can cause issues to the animation and is better for a11y
1403
1403
  a)
1404
1404
  return;
1405
- const w = C instanceof HTMLElement ? Se(C) : [], O = Se(e.current);
1405
+ const w = C instanceof HTMLElement ? We(C) : [], O = We(e.current);
1406
1406
  if (O?.every((T) => T instanceof HTMLElement) && w && w.every((T) => T instanceof HTMLElement)) {
1407
1407
  i.current = !0, e.current.style.isolation = "isolate";
1408
1408
  const T = Oa(e.current);
@@ -1429,8 +1429,8 @@ function Wa(e, t, { classNames: o, months: n, focused: a, dateLib: l }) {
1429
1429
  }
1430
1430
  });
1431
1431
  }
1432
- function Sa(e, t, o, n) {
1433
- const a = e[0], l = e[e.length - 1], { ISOWeek: r, fixedWeeks: s, broadcastCalendar: i } = o ?? {}, { addDays: d, differenceInCalendarDays: f, differenceInCalendarMonths: u, endOfBroadcastWeek: h, endOfISOWeek: b, endOfMonth: C, endOfWeek: S, isAfter: w, startOfBroadcastWeek: O, startOfISOWeek: T, startOfWeek: k } = n, D = i ? O(a, n) : r ? T(a) : k(a), g = i ? h(l) : r ? b(C(l)) : S(C(l)), m = t && (i ? h(t) : r ? b(t) : S(t)), x = m && w(g, m) ? m : g, P = f(x, D), F = u(l, a) + 1, I = [];
1432
+ function Wa(e, t, o, n) {
1433
+ const a = e[0], l = e[e.length - 1], { ISOWeek: r, fixedWeeks: s, broadcastCalendar: i } = o ?? {}, { addDays: d, differenceInCalendarDays: f, differenceInCalendarMonths: u, endOfBroadcastWeek: h, endOfISOWeek: b, endOfMonth: C, endOfWeek: W, isAfter: w, startOfBroadcastWeek: O, startOfISOWeek: T, startOfWeek: k } = n, D = i ? O(a, n) : r ? T(a) : k(a), g = i ? h(l) : r ? b(C(l)) : W(C(l)), m = t && (i ? h(t) : r ? b(t) : W(t)), x = m && w(g, m) ? m : g, P = f(x, D), F = u(l, a) + 1, I = [];
1434
1434
  for (let K = 0; K <= P; K++) {
1435
1435
  const j = d(D, K);
1436
1436
  I.push(j);
@@ -1473,7 +1473,7 @@ function Ue(e, t, o, n) {
1473
1473
  return t && d(i, t) < 0 && (i = t), u(i);
1474
1474
  }
1475
1475
  function _a(e, t, o, n) {
1476
- const { addDays: a, endOfBroadcastWeek: l, endOfISOWeek: r, endOfMonth: s, endOfWeek: i, getISOWeek: d, getWeek: f, startOfBroadcastWeek: u, startOfISOWeek: h, startOfWeek: b } = n, C = e.reduce((S, w) => {
1476
+ const { addDays: a, endOfBroadcastWeek: l, endOfISOWeek: r, endOfMonth: s, endOfWeek: i, getISOWeek: d, getWeek: f, startOfBroadcastWeek: u, startOfISOWeek: h, startOfWeek: b } = n, C = e.reduce((W, w) => {
1477
1477
  const O = o.broadcastCalendar ? u(w, n) : o.ISOWeek ? h(w) : b(w), T = o.broadcastCalendar ? l(w) : o.ISOWeek ? r(s(w)) : i(s(w)), k = t.filter((x) => x >= O && x <= T), D = o.broadcastCalendar ? 35 : 42;
1478
1478
  if (o.fixedWeeks && k.length < D) {
1479
1479
  const x = t.filter((P) => {
@@ -1486,14 +1486,14 @@ function _a(e, t, o, n) {
1486
1486
  const F = o.ISOWeek ? d(P) : f(P), I = x.find((te) => te.weekNumber === F), R = new at(P, w, n);
1487
1487
  return I ? I.days.push(R) : x.push(new wo(F, [R])), x;
1488
1488
  }, []), m = new ko(w, g);
1489
- return S.push(m), S;
1489
+ return W.push(m), W;
1490
1490
  }, []);
1491
1491
  return o.reverseMonths ? C.reverse() : C;
1492
1492
  }
1493
1493
  function Ea(e, t) {
1494
1494
  let { startMonth: o, endMonth: n } = e;
1495
- const { startOfYear: a, startOfDay: l, startOfMonth: r, endOfMonth: s, addYears: i, endOfYear: d, newDate: f, today: u } = t, { fromYear: h, toYear: b, fromMonth: C, toMonth: S } = e;
1496
- !o && C && (o = C), !o && h && (o = t.newDate(h, 0, 1)), !n && S && (n = S), !n && b && (n = f(b, 11, 31));
1495
+ const { startOfYear: a, startOfDay: l, startOfMonth: r, endOfMonth: s, addYears: i, endOfYear: d, newDate: f, today: u } = t, { fromYear: h, toYear: b, fromMonth: C, toMonth: W } = e;
1496
+ !o && C && (o = C), !o && h && (o = t.newDate(h, 0, 1)), !n && W && (n = W), !n && b && (n = f(b, 11, 31));
1497
1497
  const w = e.captionLayout === "dropdown" || e.captionLayout === "dropdown-years";
1498
1498
  return o ? o = r(o) : h ? o = f(h, 0, 1) : !o && w && (o = a(i(e.today ?? u(), -100))), n ? n = s(n) : b ? n = f(b, 11, 31) : !n && w && (n = d(e.today ?? u())), [
1499
1499
  o && l(o),
@@ -1537,7 +1537,7 @@ function Fa(e, t) {
1537
1537
  i(D);
1538
1538
  }, [e.timeZone]);
1539
1539
  const { months: d, weeks: f, days: u, previousMonth: h, nextMonth: b } = ie(() => {
1540
- const D = Ta(s, n, { numberOfMonths: e.numberOfMonths }, t), g = Sa(D, e.endMonth ? l(e.endMonth) : void 0, {
1540
+ const D = Ta(s, n, { numberOfMonths: e.numberOfMonths }, t), g = Wa(D, e.endMonth ? l(e.endMonth) : void 0, {
1541
1541
  ISOWeek: e.ISOWeek,
1542
1542
  fixedWeeks: e.fixedWeeks,
1543
1543
  broadcastCalendar: e.broadcastCalendar
@@ -1567,11 +1567,11 @@ function Fa(e, t) {
1567
1567
  e.numberOfMonths,
1568
1568
  e.pagedNavigation,
1569
1569
  e.reverseMonths
1570
- ]), { disableNavigation: C, onMonthChange: S } = e, w = (D) => f.some((g) => g.days.some((m) => m.isEqualTo(D))), O = (D) => {
1570
+ ]), { disableNavigation: C, onMonthChange: W } = e, w = (D) => f.some((g) => g.days.some((m) => m.isEqualTo(D))), O = (D) => {
1571
1571
  if (C)
1572
1572
  return;
1573
1573
  let g = a(D);
1574
- o && g < a(o) && (g = a(o)), n && g > a(n) && (g = a(n)), i(g), S?.(g);
1574
+ o && g < a(o) && (g = a(o)), n && g > a(n) && (g = a(n)), i(g), W?.(g);
1575
1575
  };
1576
1576
  return {
1577
1577
  months: d,
@@ -1603,14 +1603,14 @@ function Ya(e, t, o, n) {
1603
1603
  return a || (a = e.find((r) => Le(t(r)))), a;
1604
1604
  }
1605
1605
  function Aa(e, t, o, n, a, l, r) {
1606
- const { ISOWeek: s, broadcastCalendar: i } = l, { addDays: d, addMonths: f, addWeeks: u, addYears: h, endOfBroadcastWeek: b, endOfISOWeek: C, endOfWeek: S, max: w, min: O, startOfBroadcastWeek: T, startOfISOWeek: k, startOfWeek: D } = r;
1606
+ const { ISOWeek: s, broadcastCalendar: i } = l, { addDays: d, addMonths: f, addWeeks: u, addYears: h, endOfBroadcastWeek: b, endOfISOWeek: C, endOfWeek: W, max: w, min: O, startOfBroadcastWeek: T, startOfISOWeek: k, startOfWeek: D } = r;
1607
1607
  let m = {
1608
1608
  day: d,
1609
1609
  week: u,
1610
1610
  month: f,
1611
1611
  year: h,
1612
1612
  startOfWeek: (x) => i ? T(x, r) : s ? k(x) : D(x),
1613
- endOfWeek: (x) => i ? b(x) : s ? C(x) : S(x)
1613
+ endOfWeek: (x) => i ? b(x) : s ? C(x) : W(x)
1614
1614
  }[e](o, t === "after" ? 1 : -1);
1615
1615
  return t === "before" && n ? m = w([n, m]) : t === "after" && a && (m = O([a, m])), m;
1616
1616
  }
@@ -1623,16 +1623,16 @@ function ft(e, t, o, n, a, l, r, s = 0) {
1623
1623
  function za(e, t, o, n, a) {
1624
1624
  const { autoFocus: l } = e, [r, s] = Ee(), i = Ya(t.days, o, n || (() => !1), r), [d, f] = Ee(l ? i : void 0);
1625
1625
  return {
1626
- isFocusTarget: (S) => !!i?.isEqualTo(S),
1626
+ isFocusTarget: (W) => !!i?.isEqualTo(W),
1627
1627
  setFocused: f,
1628
1628
  focused: d,
1629
1629
  blur: () => {
1630
1630
  s(d), f(void 0);
1631
1631
  },
1632
- moveFocus: (S, w) => {
1632
+ moveFocus: (W, w) => {
1633
1633
  if (!d)
1634
1634
  return;
1635
- const O = ft(S, w, d, t.navStart, t.navEnd, e, a);
1635
+ const O = ft(W, w, d, t.navStart, t.navEnd, e, a);
1636
1636
  O && (e.disableNavigation && !t.days.some((k) => k.isEqualTo(O)) || (t.goToDay(O), f(O)));
1637
1637
  }
1638
1638
  };
@@ -1641,7 +1641,7 @@ function ja(e, t) {
1641
1641
  const { selected: o, required: n, onSelect: a } = e, [l, r] = ge(o, a ? o : void 0), s = a ? o : l, { isSameDay: i } = t, d = (b) => s?.some((C) => i(C, b)) ?? !1, { min: f, max: u } = e;
1642
1642
  return {
1643
1643
  selected: s,
1644
- select: (b, C, S) => {
1644
+ select: (b, C, W) => {
1645
1645
  let w = [...s ?? []];
1646
1646
  if (d(b)) {
1647
1647
  if (s?.length === f || n && s?.length === 1)
@@ -1649,7 +1649,7 @@ function ja(e, t) {
1649
1649
  w = s?.filter((O) => !i(O, b));
1650
1650
  } else
1651
1651
  s?.length === u ? w = [b] : w = [...w, b];
1652
- return a || r(w), a?.(w, b, C, S), w;
1652
+ return a || r(w), a?.(w, b, C, W), w;
1653
1653
  },
1654
1654
  isSelected: d
1655
1655
  };
@@ -1720,7 +1720,7 @@ function $a(e, t) {
1720
1720
  return {
1721
1721
  selected: d,
1722
1722
  select: (h, b, C) => {
1723
- const { min: S, max: w } = e, O = h ? Ha(h, d, S, w, l, t) : void 0;
1723
+ const { min: W, max: w } = e, O = h ? Ha(h, d, W, w, l, t) : void 0;
1724
1724
  return n && o && O?.from && O.to && Ga({ from: O.from, to: O.to }, o, t) && (O.from = h, O.to = void 0), r || i(O), r?.(O, h, b, C), O;
1725
1725
  },
1726
1726
  isSelected: (h) => d && Q(d, h, !1, t)
@@ -1819,17 +1819,17 @@ function Za(e) {
1819
1819
  t.classNames
1820
1820
  ]);
1821
1821
  t.today || (t = { ...t, today: r.today() });
1822
- const { captionLayout: d, mode: f, navLayout: u, numberOfMonths: h = 1, onDayBlur: b, onDayClick: C, onDayFocus: S, onDayKeyDown: w, onDayMouseEnter: O, onDayMouseLeave: T, onNextClick: k, onPrevClick: D, showWeekNumber: g, styles: m } = t, { formatCaption: x, formatDay: P, formatMonthDropdown: F, formatWeekNumber: I, formatWeekNumberHeader: R, formatWeekdayName: te, formatYearDropdown: K } = a, j = Fa(t, r), { days: oe, months: ce, navStart: be, navEnd: ve, previousMonth: q, nextMonth: G, goToMonth: J } = j, ke = Lo(oe, t, be, ve, r), { isSelected: we, select: Me, selected: fe } = Va(t, r) ?? {}, { blur: Ae, focused: ze, isFocusTarget: ht, moveFocus: je, setFocused: he } = za(t, j, ke, we ?? (() => !1), r), { labelDayButton: mt, labelGridcell: pt, labelGrid: yt, labelMonthDropdown: gt, labelNav: He, labelPrevious: bt, labelNext: vt, labelWeekday: kt, labelWeekNumber: wt, labelWeekNumberHeader: Mt, labelYearDropdown: Dt } = l, Ct = ie(() => ua(r, t.ISOWeek, t.broadcastCalendar, t.today), [r, t.ISOWeek, t.broadcastCalendar, t.today]), qe = f !== void 0 || C !== void 0, De = H(() => {
1822
+ const { captionLayout: d, mode: f, navLayout: u, numberOfMonths: h = 1, onDayBlur: b, onDayClick: C, onDayFocus: W, onDayKeyDown: w, onDayMouseEnter: O, onDayMouseLeave: T, onNextClick: k, onPrevClick: D, showWeekNumber: g, styles: m } = t, { formatCaption: x, formatDay: P, formatMonthDropdown: F, formatWeekNumber: I, formatWeekNumberHeader: R, formatWeekdayName: te, formatYearDropdown: K } = a, j = Fa(t, r), { days: oe, months: ce, navStart: be, navEnd: ve, previousMonth: q, nextMonth: G, goToMonth: J } = j, ke = Lo(oe, t, be, ve, r), { isSelected: we, select: Me, selected: fe } = Va(t, r) ?? {}, { blur: Ae, focused: ze, isFocusTarget: ht, moveFocus: je, setFocused: he } = za(t, j, ke, we ?? (() => !1), r), { labelDayButton: mt, labelGridcell: pt, labelGrid: yt, labelMonthDropdown: gt, labelNav: He, labelPrevious: bt, labelNext: vt, labelWeekday: kt, labelWeekNumber: wt, labelWeekNumberHeader: Mt, labelYearDropdown: Dt } = l, Ct = ie(() => ua(r, t.ISOWeek, t.broadcastCalendar, t.today), [r, t.ISOWeek, t.broadcastCalendar, t.today]), qe = f !== void 0 || C !== void 0, De = H(() => {
1823
1823
  q && (J(q), D?.(q));
1824
1824
  }, [q, J, D]), Ce = H(() => {
1825
1825
  G && (J(G), k?.(G));
1826
1826
  }, [J, G, k]), Ot = H((M, E) => (v) => {
1827
1827
  v.preventDefault(), v.stopPropagation(), he(M), !E.disabled && (Me?.(M.date, E, v), C?.(M.date, E, v));
1828
1828
  }, [Me, C, he]), xt = H((M, E) => (v) => {
1829
- he(M), S?.(M.date, E, v);
1830
- }, [S, he]), Wt = H((M, E) => (v) => {
1829
+ he(M), W?.(M.date, E, v);
1830
+ }, [W, he]), St = H((M, E) => (v) => {
1831
1831
  Ae(), b?.(M.date, E, v);
1832
- }, [Ae, b]), St = H((M, E) => (v) => {
1832
+ }, [Ae, b]), Wt = H((M, E) => (v) => {
1833
1833
  const _ = {
1834
1834
  ArrowLeft: [
1835
1835
  v.shiftKey ? "month" : "day",
@@ -1848,8 +1848,8 @@ function Za(e) {
1848
1848
  };
1849
1849
  if (_[v.key]) {
1850
1850
  v.preventDefault(), v.stopPropagation();
1851
- const [V, W] = _[v.key];
1852
- je(V, W);
1851
+ const [V, S] = _[v.key];
1852
+ je(V, S);
1853
1853
  }
1854
1854
  w?.(M.date, E, v);
1855
1855
  }, [je, w, t.dir]), Nt = H((M, E) => (v) => {
@@ -1866,7 +1866,7 @@ function Za(e) {
1866
1866
  className: [i[p.Root], t.className].filter(Boolean).join(" "),
1867
1867
  style: { ...m?.[p.Root], ...t.style }
1868
1868
  }), [i, t.className, t.style, m]), It = Xo(t), Ge = me(null);
1869
- Wa(Ge, !!t.animate, {
1869
+ Sa(Ge, !!t.animate, {
1870
1870
  classNames: i,
1871
1871
  months: ce,
1872
1872
  focused: ze,
@@ -1956,13 +1956,13 @@ function Za(e) {
1956
1956
  locale: s
1957
1957
  }), className: i[p.WeekNumber], scope: "row", role: "rowheader" }, I(v.weekNumber, r)),
1958
1958
  v.days.map((_) => {
1959
- const { date: V } = _, W = ke(_);
1960
- if (W[B.focused] = !W.hidden && !!ze?.isEqualTo(_), W[$.selected] = we?.(V) || W.selected, ye(fe)) {
1959
+ const { date: V } = _, S = ke(_);
1960
+ if (S[B.focused] = !S.hidden && !!ze?.isEqualTo(_), S[$.selected] = we?.(V) || S.selected, ye(fe)) {
1961
1961
  const { from: Oe, to: xe } = fe;
1962
- W[$.range_start] = !!(Oe && xe && r.isSameDay(V, Oe)), W[$.range_end] = !!(Oe && xe && r.isSameDay(V, xe)), W[$.range_middle] = Q(fe, V, !0, r);
1962
+ S[$.range_start] = !!(Oe && xe && r.isSameDay(V, Oe)), S[$.range_end] = !!(Oe && xe && r.isSameDay(V, xe)), S[$.range_middle] = Q(fe, V, !0, r);
1963
1963
  }
1964
- const Yt = da(W, m, t.modifiersStyles), At = Ko(W, i, t.modifiersClassNames), zt = !qe && !W.hidden ? pt(V, W, r.options, r) : void 0;
1965
- return c.createElement(n.Day, { key: `${_.isoDate}_${_.displayMonthId}`, day: _, modifiers: W, className: At.join(" "), style: Yt, role: "gridcell", "aria-selected": W.selected || void 0, "aria-label": zt, "data-day": _.isoDate, "data-month": _.outside ? _.dateMonthId : void 0, "data-selected": W.selected || void 0, "data-disabled": W.disabled || void 0, "data-hidden": W.hidden || void 0, "data-outside": _.outside || void 0, "data-focused": W.focused || void 0, "data-today": W.today || void 0 }, !W.hidden && qe ? c.createElement(n.DayButton, { className: i[p.DayButton], style: m?.[p.DayButton], type: "button", day: _, modifiers: W, disabled: !W.focused && W.disabled || void 0, "aria-disabled": W.focused && W.disabled || void 0, tabIndex: ht(_) ? 0 : -1, "aria-label": mt(V, W, r.options, r), onClick: Ot(_, W), onBlur: Wt(_, W), onFocus: xt(_, W), onKeyDown: St(_, W), onMouseEnter: Nt(_, W), onMouseLeave: Tt(_, W) }, P(V, r.options, r)) : !W.hidden && P(_.date, r.options, r));
1964
+ const Yt = da(S, m, t.modifiersStyles), At = Ko(S, i, t.modifiersClassNames), zt = !qe && !S.hidden ? pt(V, S, r.options, r) : void 0;
1965
+ return c.createElement(n.Day, { key: `${_.isoDate}_${_.displayMonthId}`, day: _, modifiers: S, className: At.join(" "), style: Yt, role: "gridcell", "aria-selected": S.selected || void 0, "aria-label": zt, "data-day": _.isoDate, "data-month": _.outside ? _.dateMonthId : void 0, "data-selected": S.selected || void 0, "data-disabled": S.disabled || void 0, "data-hidden": S.hidden || void 0, "data-outside": _.outside || void 0, "data-focused": S.focused || void 0, "data-today": S.today || void 0 }, !S.hidden && qe ? c.createElement(n.DayButton, { className: i[p.DayButton], style: m?.[p.DayButton], type: "button", day: _, modifiers: S, disabled: !S.focused && S.disabled || void 0, "aria-disabled": S.focused && S.disabled || void 0, tabIndex: ht(_) ? 0 : -1, "aria-label": mt(V, S, r.options, r), onClick: Ot(_, S), onBlur: St(_, S), onFocus: xt(_, S), onKeyDown: Wt(_, S), onMouseEnter: Nt(_, S), onMouseLeave: Tt(_, S) }, P(V, r.options, r)) : !S.hidden && P(_.date, r.options, r));
1966
1966
  })
1967
1967
  )))
1968
1968
  )
@@ -2357,7 +2357,7 @@ function Or({ className: e, variant: t, ...o }) {
2357
2357
  return /* @__PURE__ */ N("div", { className: y(Xa({ variant: t }), e), ...o });
2358
2358
  }
2359
2359
  export {
2360
- Sr as Accordion,
2360
+ Wr as Accordion,
2361
2361
  Nr as AccordionContent,
2362
2362
  Tr as AccordionItem,
2363
2363
  _r as AccordionTrigger,
@@ -2368,13 +2368,13 @@ export {
2368
2368
  Dr as ButtonGroupText,
2369
2369
  pr as Calendar,
2370
2370
  Ua as CalendarDayButton,
2371
- oi as Card,
2372
- ai as CardAction,
2373
- ri as CardContent,
2374
- si as CardDescription,
2375
- ii as CardFooter,
2376
- li as CardHeader,
2377
- di as CardTitle,
2371
+ ci as Card,
2372
+ fi as CardAction,
2373
+ hi as CardContent,
2374
+ mi as CardDescription,
2375
+ pi as CardFooter,
2376
+ yi as CardHeader,
2377
+ gi as CardTitle,
2378
2378
  Er as ChartContainer,
2379
2379
  Pr as ChartLegend,
2380
2380
  Br as ChartLegendContent,
@@ -2442,8 +2442,8 @@ export {
2442
2442
  Cs as SelectGroup,
2443
2443
  Os as SelectItem,
2444
2444
  xs as SelectLabel,
2445
- Ws as SelectScrollDownButton,
2446
- Ss as SelectScrollUpButton,
2445
+ Ss as SelectScrollDownButton,
2446
+ Ws as SelectScrollUpButton,
2447
2447
  Ns as SelectSeparator,
2448
2448
  Ts as SelectTrigger,
2449
2449
  _s as SelectValue,
@@ -2470,10 +2470,18 @@ export {
2470
2470
  Ks as TabsList,
2471
2471
  Js as TabsTrigger,
2472
2472
  Gt as Textarea,
2473
- Xs as Tooltip,
2474
- Qs as TooltipContent,
2475
- ei as TooltipProvider,
2476
- ti as TooltipTrigger,
2473
+ Xs as Timeline,
2474
+ Qs as TimelineContent,
2475
+ ei as TimelineDate,
2476
+ ti as TimelineHeader,
2477
+ ni as TimelineIndicator,
2478
+ oi as TimelineItem,
2479
+ ai as TimelineSeparator,
2480
+ ri as TimelineTitle,
2481
+ si as Tooltip,
2482
+ ii as TooltipContent,
2483
+ li as TooltipProvider,
2484
+ di as TooltipTrigger,
2477
2485
  Xa as badgeVariants,
2478
2486
  Ja as buttonGroupVariants,
2479
2487
  y as cn,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@grapadigital/shared-app-modules",
3
3
  "private": false,
4
- "version": "0.0.75",
4
+ "version": "0.0.77",
5
5
  "files": [
6
6
  "dist"
7
7
  ],
@@ -136,6 +136,7 @@
136
136
  "cmdk": "^1.1.1",
137
137
  "date-fns": "^4.1.0",
138
138
  "lucide-react": "^0.555.0",
139
+ "radix-ui": "^1.4.3",
139
140
  "react": "^18.3.1",
140
141
  "react-day-picker": "^9.11.3",
141
142
  "react-dom": "^18.3.1",
@@ -1 +0,0 @@
1
- *,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 0 0% 100%;--foreground: 224 71.4% 4.1%;--card: 0 0% 100%;--card-foreground: 224 71.4% 4.1%;--popover: 0 0% 100%;--popover-foreground: 224 71.4% 4.1%;--primary: 220.9 39.3% 11%;--primary-foreground: 210 20% 98%;--secondary: 220 14.3% 95.9%;--secondary-foreground: 220.9 39.3% 11%;--muted: 220 14.3% 95.9%;--muted-foreground: 220 8.9% 46.1%;--accent: 220 14.3% 95.9%;--accent-foreground: 220.9 39.3% 11%;--destructive: 0 84.2% 60.2%;--destructive-foreground: 210 20% 98%;--border: 220 13% 91%;--input: 220 13% 91%;--ring: 224 71.4% 4.1%;--chart-1: 12 76% 61%;--chart-2: 173 58% 39%;--chart-3: 197 37% 24%;--chart-4: 43 74% 66%;--chart-5: 27 87% 67%;--radius: .5rem}.dark{--background: 224 71.4% 4.1%;--foreground: 210 20% 98%;--card: 224 71.4% 4.1%;--card-foreground: 210 20% 98%;--popover: 224 71.4% 4.1%;--popover-foreground: 210 20% 98%;--primary: 210 20% 98%;--primary-foreground: 220.9 39.3% 11%;--secondary: 215 27.9% 16.9%;--secondary-foreground: 210 20% 98%;--muted: 215 27.9% 16.9%;--muted-foreground: 217.9 10.6% 64.9%;--accent: 215 27.9% 16.9%;--accent-foreground: 210 20% 98%;--destructive: 0 62.8% 30.6%;--destructive-foreground: 210 20% 98%;--border: 215 27.9% 16.9%;--input: 215 27.9% 16.9%;--ring: 216 12.2% 83.9%;--chart-1: 220 70% 50%;--chart-2: 160 60% 45%;--chart-3: 30 80% 55%;--chart-4: 280 65% 60%;--chart-5: 340 75% 55%}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground))}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.bottom-0{bottom:0}.left-0{left:0}.left-\[50\%\]{left:50%}.right-0{right:0}.right-2{right:.5rem}.right-4{right:1rem}.top-0{top:0}.top-1\/2{top:50%}.top-4{top:1rem}.top-\[50\%\]{top:50%}.z-50{z-index:50}.order-first{order:-9999}.order-last{order:9999}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2 / span 2}.row-start-1{grid-row-start:1}.\!m-0{margin:0!important}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.-my-2{margin-top:-.5rem;margin-bottom:-.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0\.5{margin-top:.125rem;margin-bottom:.125rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-4{margin-left:1rem}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mt-2{margin-top:.5rem}.mt-24{margin-top:6rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-auto{margin-top:auto}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.aspect-square{aspect-ratio:1 / 1}.aspect-video{aspect-ratio:16 / 9}.size-10{width:2.5rem;height:2.5rem}.size-16{width:4rem;height:4rem}.size-20{width:5rem;height:5rem}.size-3{width:.75rem;height:.75rem}.size-3\.5{width:.875rem;height:.875rem}.size-4{width:1rem;height:1rem}.size-5{width:1.25rem;height:1.25rem}.size-6{width:1.5rem;height:1.5rem}.size-7{width:1.75rem;height:1.75rem}.size-8{width:2rem;height:2rem}.size-9{width:2.25rem;height:2.25rem}.size-\[--cell-size\]{width:var(--cell-size);height:var(--cell-size)}.h-10{height:2.5rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[--cell-size\]{height:var(--cell-size)}.h-\[1px\]{height:1px}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-\[--radix-select-content-available-height\]{max-height:var(--radix-select-content-available-height)}.max-h-\[300px\]{max-height:300px}.min-h-\[60px\]{min-height:60px}.w-0{width:0px}.w-1{width:.25rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-4{width:1rem}.w-64{width:16rem}.w-72{width:18rem}.w-\[--cell-size\]{width:var(--cell-size)}.w-\[100px\]{width:100px}.w-\[1px\]{width:1px}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-screen{width:100vw}.min-w-\[--cell-size\]{min-width:var(--cell-size)}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-popper-anchor-width\)\]{min-width:var(--radix-popper-anchor-width)}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-md{max-width:28rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.origin-\[--radix-hover-card-content-transform-origin\]{transform-origin:var(--radix-hover-card-content-transform-origin)}.origin-\[--radix-popover-content-transform-origin\]{transform-origin:var(--radix-popover-content-transform-origin)}.origin-\[--radix-select-content-transform-origin\]{transform-origin:var(--radix-select-content-transform-origin)}.origin-\[--radix-tooltip-content-transform-origin\]{transform-origin:var(--radix-tooltip-content-transform-origin)}.translate-x-\[-50\%\]{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-text{cursor:text}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-none{resize:none}.list-disc{list-style-type:disc}.auto-rows-min{grid-auto-rows:min-content}.grid-rows-\[auto_auto\]{grid-template-rows:auto auto}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.place-items-center{place-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-7{gap:1.75rem}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.justify-self-end{justify-self:end}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.whitespace-nowrap{white-space:nowrap}.rounded-\[2px\]{border-radius:2px}.rounded-\[calc\(var\(--radius\)-5px\)\]{border-radius:calc(var(--radius) - 5px)}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.rounded-l-md{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.rounded-r-md{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.rounded-t-\[10px\]{border-top-left-radius:10px;border-top-right-radius:10px}.border{border-width:1px}.border-0{border-width:0px}.border-\[0\.375rem\]{border-width:.375rem}.border-\[1\.5px\]{border-width:1.5px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-\[--color-border\]{border-color:var(--color-border)}.border-border\/50{border-color:hsl(var(--border) / .5)}.border-destructive\/20{border-color:hsl(var(--destructive) / .2)}.border-gray-500{--tw-border-opacity: 1;border-color:rgb(107 114 128 / var(--tw-border-opacity, 1))}.border-input{border-color:hsl(var(--input))}.border-muted-foreground\/20{border-color:hsl(var(--muted-foreground) / .2)}.border-primary{border-color:hsl(var(--primary))}.border-transparent{border-color:transparent}.border-t-gray-700{--tw-border-opacity: 1;border-top-color:rgb(55 65 81 / var(--tw-border-opacity, 1))}.bg-\[\#ffe0b2\]{--tw-bg-opacity: 1;background-color:rgb(255 224 178 / var(--tw-bg-opacity, 1))}.bg-\[--color-bg\]{background-color:var(--color-bg)}.bg-accent{background-color:hsl(var(--accent))}.bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.bg-amber-500{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.bg-background{background-color:hsl(var(--background))}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-black\/50{background-color:#00000080}.bg-black\/80{background-color:#000c}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-border{background-color:hsl(var(--border))}.bg-card{background-color:hsl(var(--card))}.bg-cyan-50{--tw-bg-opacity: 1;background-color:rgb(236 254 255 / var(--tw-bg-opacity, 1))}.bg-cyan-500{--tw-bg-opacity: 1;background-color:rgb(6 182 212 / var(--tw-bg-opacity, 1))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-destructive\/5{background-color:hsl(var(--destructive) / .05)}.bg-emerald-50{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-fuchsia-50{--tw-bg-opacity: 1;background-color:rgb(253 244 255 / var(--tw-bg-opacity, 1))}.bg-fuchsia-500{--tw-bg-opacity: 1;background-color:rgb(217 70 239 / var(--tw-bg-opacity, 1))}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.bg-gray-500{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity, 1))}.bg-green-50{--tw-bg-opacity: 1;background-color:rgb(240 253 244 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-indigo-50{--tw-bg-opacity: 1;background-color:rgb(238 242 255 / var(--tw-bg-opacity, 1))}.bg-indigo-500{--tw-bg-opacity: 1;background-color:rgb(99 102 241 / var(--tw-bg-opacity, 1))}.bg-input{background-color:hsl(var(--input))}.bg-lime-50{--tw-bg-opacity: 1;background-color:rgb(247 254 231 / var(--tw-bg-opacity, 1))}.bg-lime-500{--tw-bg-opacity: 1;background-color:rgb(132 204 22 / var(--tw-bg-opacity, 1))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/50{background-color:hsl(var(--muted) / .5)}.bg-neutral-200{--tw-bg-opacity: 1;background-color:rgb(229 229 229 / var(--tw-bg-opacity, 1))}.bg-neutral-500{--tw-bg-opacity: 1;background-color:rgb(115 115 115 / var(--tw-bg-opacity, 1))}.bg-orange-50{--tw-bg-opacity: 1;background-color:rgb(255 247 237 / var(--tw-bg-opacity, 1))}.bg-orange-500{--tw-bg-opacity: 1;background-color:rgb(249 115 22 / var(--tw-bg-opacity, 1))}.bg-pink-50{--tw-bg-opacity: 1;background-color:rgb(253 242 248 / var(--tw-bg-opacity, 1))}.bg-pink-500{--tw-bg-opacity: 1;background-color:rgb(236 72 153 / var(--tw-bg-opacity, 1))}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/10{background-color:hsl(var(--primary) / .1)}.bg-primary\/20{background-color:hsl(var(--primary) / .2)}.bg-purple-50{--tw-bg-opacity: 1;background-color:rgb(250 245 255 / var(--tw-bg-opacity, 1))}.bg-purple-500{--tw-bg-opacity: 1;background-color:rgb(168 85 247 / var(--tw-bg-opacity, 1))}.bg-red-300{--tw-bg-opacity: 1;background-color:rgb(252 165 165 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-rose-50{--tw-bg-opacity: 1;background-color:rgb(255 241 242 / var(--tw-bg-opacity, 1))}.bg-rose-500{--tw-bg-opacity: 1;background-color:rgb(244 63 94 / var(--tw-bg-opacity, 1))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-sky-50{--tw-bg-opacity: 1;background-color:rgb(240 249 255 / var(--tw-bg-opacity, 1))}.bg-sky-500{--tw-bg-opacity: 1;background-color:rgb(14 165 233 / var(--tw-bg-opacity, 1))}.bg-slate-50{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity, 1))}.bg-slate-500{--tw-bg-opacity: 1;background-color:rgb(100 116 139 / var(--tw-bg-opacity, 1))}.bg-stone-200{--tw-bg-opacity: 1;background-color:rgb(231 229 228 / var(--tw-bg-opacity, 1))}.bg-stone-500{--tw-bg-opacity: 1;background-color:rgb(120 113 108 / var(--tw-bg-opacity, 1))}.bg-teal-50{--tw-bg-opacity: 1;background-color:rgb(240 253 250 / var(--tw-bg-opacity, 1))}.bg-teal-500{--tw-bg-opacity: 1;background-color:rgb(20 184 166 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-violet-50{--tw-bg-opacity: 1;background-color:rgb(245 243 255 / var(--tw-bg-opacity, 1))}.bg-violet-500{--tw-bg-opacity: 1;background-color:rgb(139 92 246 / var(--tw-bg-opacity, 1))}.bg-yellow-100{--tw-bg-opacity: 1;background-color:rgb(254 249 195 / var(--tw-bg-opacity, 1))}.bg-yellow-300{--tw-bg-opacity: 1;background-color:rgb(253 224 71 / var(--tw-bg-opacity, 1))}.bg-yellow-50{--tw-bg-opacity: 1;background-color:rgb(254 252 232 / var(--tw-bg-opacity, 1))}.bg-yellow-500{--tw-bg-opacity: 1;background-color:rgb(234 179 8 / var(--tw-bg-opacity, 1))}.bg-zinc-200{--tw-bg-opacity: 1;background-color:rgb(228 228 231 / var(--tw-bg-opacity, 1))}.bg-zinc-500{--tw-bg-opacity: 1;background-color:rgb(113 113 122 / var(--tw-bg-opacity, 1))}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.px-\[--cell-size\]{padding-left:var(--cell-size);padding-right:var(--cell-size)}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pr-1{padding-right:.25rem}.pr-3{padding-right:.75rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.pt-3{padding-top:.75rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[0\.8rem\]{font-size:.8rem}.text-\[18px\]{font-size:18px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-none{line-height:1}.leading-normal{line-height:1.5}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.tracking-tight{letter-spacing:-.025em}.tracking-widest{letter-spacing:.1em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-current{color:currentColor}.text-cyan-600{--tw-text-opacity: 1;color:rgb(8 145 178 / var(--tw-text-opacity, 1))}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-destructive\/60{color:hsl(var(--destructive) / .6)}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-fuchsia-600{--tw-text-opacity: 1;color:rgb(192 38 211 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-indigo-600{--tw-text-opacity: 1;color:rgb(79 70 229 / var(--tw-text-opacity, 1))}.text-lime-600{--tw-text-opacity: 1;color:rgb(101 163 13 / var(--tw-text-opacity, 1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/40{color:hsl(var(--muted-foreground) / .4)}.text-neutral-800{--tw-text-opacity: 1;color:rgb(38 38 38 / var(--tw-text-opacity, 1))}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-pink-600{--tw-text-opacity: 1;color:rgb(219 39 119 / var(--tw-text-opacity, 1))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-purple-600{--tw-text-opacity: 1;color:rgb(147 51 234 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-rose-600{--tw-text-opacity: 1;color:rgb(225 29 72 / var(--tw-text-opacity, 1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-sky-600{--tw-text-opacity: 1;color:rgb(2 132 199 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-stone-800{--tw-text-opacity: 1;color:rgb(41 37 36 / var(--tw-text-opacity, 1))}.text-teal-600{--tw-text-opacity: 1;color:rgb(13 148 136 / var(--tw-text-opacity, 1))}.text-violet-600{--tw-text-opacity: 1;color:rgb(124 58 237 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-600{--tw-text-opacity: 1;color:rgb(202 138 4 / var(--tw-text-opacity, 1))}.text-zinc-800{--tw-text-opacity: 1;color:rgb(39 39 42 / var(--tw-text-opacity, 1))}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-500{transition-duration:.5s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.fade-in-0{--tw-enter-opacity: 0}.zoom-in-95{--tw-enter-scale: .95}.duration-200{animation-duration:.2s}.duration-500{animation-duration:.5s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.\[--cell-size\:2rem\]{--cell-size: 2rem}.file\:border-0::file-selector-button{border-width:0px}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.last\:mt-0:last-child{margin-top:0}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/80:hover{background-color:hsl(var(--destructive) / .8)}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-green-500\/80:hover{background-color:#22c55ecc}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted) / .5)}.hover\:bg-orange-500\/80:hover{background-color:#f97316cc}.hover\:bg-primary\/80:hover{background-color:hsl(var(--primary) / .8)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:border-ring:focus-visible{border-color:hsl(var(--ring))}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-0:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color: hsl(var(--destructive) / .2)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color: hsl(var(--ring) / .5)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.has-\[\>button\]\:ml-\[-0\.45rem\]:has(>button){margin-left:-.45rem}.has-\[\>button\]\:mr-\[-0\.4rem\]:has(>button){margin-right:-.4rem}.has-\[\>kbd\]\:ml-\[-0\.35rem\]:has(>kbd){margin-left:-.35rem}.has-\[\>kbd\]\:mr-\[-0\.35rem\]:has(>kbd){margin-right:-.35rem}.has-\[\>\[data-align\=block-end\]\]\:h-auto:has(>[data-align=block-end]){height:auto}.has-\[\>\[data-align\=block-start\]\]\:h-auto:has(>[data-align=block-start]){height:auto}.has-\[\>textarea\]\:h-auto:has(>textarea){height:auto}.has-\[\>\[data-slot\=field\]\]\:w-full:has(>[data-slot=field]){width:100%}.has-\[\>\[data-align\=block-end\]\]\:flex-col:has(>[data-align=block-end]){flex-direction:column}.has-\[\>\[data-align\=block-start\]\]\:flex-col:has(>[data-align=block-start]){flex-direction:column}.has-\[\>\[data-slot\=field\]\]\:flex-col:has(>[data-slot=field]){flex-direction:column}.has-\[\>\[data-slot\=field-content\]\]\:items-start:has(>[data-slot=field-content]){align-items:flex-start}.has-\[\>\[data-slot\=button-group\]\]\:gap-2:has(>[data-slot=button-group]){gap:.5rem}.has-\[\>\[data-slot\=checkbox-group\]\]\:gap-3:has(>[data-slot=checkbox-group]){gap:.75rem}.has-\[\>\[data-slot\=radio-group\]\]\:gap-3:has(>[data-slot=radio-group]){gap:.75rem}.has-\[\>\[data-slot\=field\]\]\:rounded-md:has(>[data-slot=field]){border-radius:calc(var(--radius) - 2px)}.has-\[\>\[data-slot\=field\]\]\:border:has(>[data-slot=field]){border-width:1px}.has-\[\[data-slot\]\[aria-invalid\=true\]\]\:border-destructive:has([data-slot][aria-invalid=true]){border-color:hsl(var(--destructive))}.has-\[\>svg\]\:p-0:has(>svg){padding:0}.has-\[\>svg\]\:px-2:has(>svg){padding-left:.5rem;padding-right:.5rem}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-left:.625rem;padding-right:.625rem}.has-\[\>svg\]\:px-3:has(>svg){padding-left:.75rem;padding-right:.75rem}.has-\[\>svg\]\:px-4:has(>svg){padding-left:1rem;padding-right:1rem}.has-\[\[data-slot\=input-group-control\]\:focus-visible\]\:ring-1:has([data-slot=input-group-control]:focus-visible){--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.has-\[\[data-slot\=input-group-control\]\:focus-visible\]\:ring-ring:has([data-slot=input-group-control]:focus-visible){--tw-ring-color: hsl(var(--ring))}.has-\[\[data-slot\]\[aria-invalid\=true\]\]\:ring-destructive\/20:has([data-slot][aria-invalid=true]){--tw-ring-color: hsl(var(--destructive) / .2)}.group\/field:has([data-orientation=horizontal]) .group-has-\[\[data-orientation\=horizontal\]\]\/field\:text-balance{text-wrap:balance}.group\/input-group:has(>input) .group-has-\[\>input\]\/input-group\:pb-2\.5{padding-bottom:.625rem}.group\/input-group:has(>input) .group-has-\[\>input\]\/input-group\:pt-2\.5{padding-top:.625rem}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-selected\:text-muted-foreground[aria-selected=true]{color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true],.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[orientation\=vertical\]\:h-auto[data-orientation=vertical]{height:auto}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height)}to{height:0}}.data-\[state\=closed\]\:animate-accordion-up[data-state=closed]{animation:accordion-up .2s ease-out}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height)}}.data-\[state\=open\]\:animate-accordion-down[data-state=open]{animation:accordion-down .2s ease-out}.data-\[slot\=checkbox-group\]\:gap-3[data-slot=checkbox-group]{gap:.75rem}.data-\[range-end\=true\]\:rounded-md[data-range-end=true]{border-radius:calc(var(--radius) - 2px)}.data-\[range-middle\=true\]\:rounded-none[data-range-middle=true]{border-radius:0}.data-\[range-start\=true\]\:rounded-md[data-range-start=true]{border-radius:calc(var(--radius) - 2px)}.data-\[selected\=true\]\:rounded-none[data-selected=true]{border-radius:0}.data-\[range-end\=true\]\:bg-primary[data-range-end=true]{background-color:hsl(var(--primary))}.data-\[range-middle\=true\]\:bg-accent[data-range-middle=true]{background-color:hsl(var(--accent))}.data-\[range-start\=true\]\:bg-primary[data-range-start=true],.data-\[selected-single\=true\]\:bg-primary[data-selected-single=true]{background-color:hsl(var(--primary))}.data-\[selected\=true\]\:bg-accent[data-selected=true]{background-color:hsl(var(--accent))}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:hsl(var(--primary))}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:hsl(var(--secondary))}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:hsl(var(--muted))}.data-\[variant\=label\]\:text-sm[data-variant=label]{font-size:.875rem;line-height:1.25rem}.data-\[variant\=legend\]\:text-base[data-variant=legend]{font-size:1rem;line-height:1.5rem}.data-\[invalid\=true\]\:text-destructive[data-invalid=true]{color:hsl(var(--destructive))}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:hsl(var(--muted-foreground))}.data-\[range-end\=true\]\:text-primary-foreground[data-range-end=true]{color:hsl(var(--primary-foreground))}.data-\[range-middle\=true\]\:text-accent-foreground[data-range-middle=true]{color:hsl(var(--accent-foreground))}.data-\[range-start\=true\]\:text-primary-foreground[data-range-start=true],.data-\[selected-single\=true\]\:text-primary-foreground[data-selected-single=true]{color:hsl(var(--primary-foreground))}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:hsl(var(--accent-foreground))}.data-\[state\=active\]\:text-foreground[data-state=active]{color:hsl(var(--foreground))}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:hsl(var(--primary-foreground))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:opacity-50[data-disabled=true],.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=active\]\:shadow[data-state=active]{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.data-\[state\=closed\]\:duration-300[data-state=closed]{transition-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{transition-duration:.5s}.data-\[state\=open\]\:animate-in[data-state=open]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity: 0}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity: 0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale: .95}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y: -.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x: .5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x: -.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y: .5rem}.data-\[state\=closed\]\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y: 100%}.data-\[state\=closed\]\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x: -100%}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x: -50%}.data-\[state\=closed\]\:slide-out-to-right[data-state=closed]{--tw-exit-translate-x: 100%}.data-\[state\=closed\]\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y: -100%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y: -48%}.data-\[state\=open\]\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y: 100%}.data-\[state\=open\]\:slide-in-from-left[data-state=open]{--tw-enter-translate-x: -100%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x: -50%}.data-\[state\=open\]\:slide-in-from-right[data-state=open]{--tw-enter-translate-x: 100%}.data-\[state\=open\]\:slide-in-from-top[data-state=open]{--tw-enter-translate-y: -100%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y: -48%}.data-\[state\=closed\]\:duration-300[data-state=closed]{animation-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{animation-duration:.5s}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:relative{position:relative}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:z-10{z-index:10}.group\/field-group[data-variant=outline] .group-data-\[variant\=outline\]\/field-group\:-mb-2{margin-bottom:-.5rem}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:border-ring{border-color:hsl(var(--ring))}.group\/field[data-disabled=true] .group-data-\[disabled\=true\]\/field\:opacity-50,.group\/input-group[data-disabled=true] .group-data-\[disabled\=true\]\/input-group\:opacity-50{opacity:.5}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:ring-\[3px\]{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:ring-ring\/50{--tw-ring-color: hsl(var(--ring) / .5)}.dark\:border-input:is(.dark *){border-color:hsl(var(--input))}.dark\:bg-destructive\/60:is(.dark *){background-color:hsl(var(--destructive) / .6)}.dark\:bg-input\/30:is(.dark *){background-color:hsl(var(--input) / .3)}.dark\:bg-transparent:is(.dark *){background-color:transparent}.dark\:hover\:bg-accent\/50:hover:is(.dark *){background-color:hsl(var(--accent) / .5)}.dark\:hover\:bg-input\/50:hover:is(.dark *){background-color:hsl(var(--input) / .5)}.dark\:focus-visible\:ring-destructive\/40:focus-visible:is(.dark *){--tw-ring-color: hsl(var(--destructive) / .4)}.dark\:has-\[\[data-slot\]\[aria-invalid\=true\]\]\:ring-destructive\/40:has([data-slot][aria-invalid=true]):is(.dark *){--tw-ring-color: hsl(var(--destructive) / .4)}@media(min-width:640px){.sm\:max-w-lg{max-width:32rem}.sm\:max-w-sm{max-width:24rem}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-end{justify-content:flex-end}.sm\:text-left{text-align:left}}@media(min-width:768px){.md\:w-\[8rem\]{width:8rem}.md\:max-w-sm{max-width:24rem}.md\:flex-row{flex-direction:row}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-sm{font-size:.875rem;line-height:1.25rem}}.\[\&\:first-child\[data-selected\=true\]_button\]\:rounded-l-md:first-child[data-selected=true] button{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\:last-child\[data-selected\=true\]_button\]\:rounded-r-md:last-child[data-selected=true] button{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\>\*\:not\(\:first-child\)\]\:rounded-l-none>*:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.\[\&\>\*\:not\(\:first-child\)\]\:rounded-t-none>*:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.\[\&\>\*\:not\(\:first-child\)\]\:border-l-0>*:not(:first-child){border-left-width:0px}.\[\&\>\*\:not\(\:first-child\)\]\:border-t-0>*:not(:first-child){border-top-width:0px}.\[\&\>\*\:not\(\:last-child\)\]\:rounded-b-none>*:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0}.\[\&\>\*\:not\(\:last-child\)\]\:rounded-r-none>*:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.\[\&\>\*\]\:w-full>*{width:100%}.\[\&\>\*\]\:focus-visible\:relative:focus-visible>*{position:relative}.\[\&\>\*\]\:focus-visible\:z-10:focus-visible>*{z-index:10}.\[\&\>\.sr-only\]\:w-auto>.sr-only{width:auto}.\[\&\>\[data-slot\=field-group\]\]\:gap-4>[data-slot=field-group]{gap:1rem}.\[\&\>\[data-slot\=field-label\]\]\:flex-auto>[data-slot=field-label]{flex:1 1 auto}.\[\&\>\[data-slot\=field\]\]\:p-4>[data-slot=field]{padding:1rem}.has-\[select\[aria-hidden\=true\]\:last-child\]\:\[\&\>\[data-slot\=select-trigger\]\:last-of-type\]\:rounded-r-md>[data-slot=select-trigger]:last-of-type:has(select[aria-hidden=true]:last-child){border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\>\[data-slot\=select-trigger\]\:not\(\[class\*\=\'w-\'\]\)\]\:w-fit>[data-slot=select-trigger]:not([class*=w-]){width:-moz-fit-content;width:fit-content}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y: 2px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\>a\:hover\]\:text-primary>a:hover{color:hsl(var(--primary))}.\[\&\>a\]\:underline>a{text-decoration-line:underline}.\[\&\>a\]\:underline-offset-4>a{text-underline-offset:4px}.\[\&\>input\]\:flex-1>input{flex:1 1 0%}.has-\[\>\[data-align\=block-end\]\]\:\[\&\>input\]\:pt-3>input:has(>[data-align=block-end]){padding-top:.75rem}.has-\[\>\[data-align\=block-start\]\]\:\[\&\>input\]\:pb-3>input:has(>[data-align=block-start]){padding-bottom:.75rem}.has-\[\>\[data-align\=inline-end\]\]\:\[\&\>input\]\:pr-2>input:has(>[data-align=inline-end]){padding-right:.5rem}.has-\[\>\[data-align\=inline-start\]\]\:\[\&\>input\]\:pl-2>input:has(>[data-align=inline-start]){padding-left:.5rem}.\[\&\>kbd\]\:rounded-\[calc\(var\(--radius\)-5px\)\]>kbd{border-radius:calc(var(--radius) - 5px)}.\[\&\>span\]\:line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\[\&\>span\]\:text-xs>span{font-size:.75rem;line-height:1rem}.\[\&\>span\]\:opacity-70>span{opacity:.7}.\[\&\>svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3\.5>svg:not([class*=size-]){width:.875rem;height:.875rem}.\[\&\>svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4>svg:not([class*=size-]){width:1rem;height:1rem}.\[\&\>svg\]\:size-3\.5>svg{width:.875rem;height:.875rem}.\[\&\>svg\]\:h-2\.5>svg{height:.625rem}.\[\&\>svg\]\:h-3>svg{height:.75rem}.\[\&\>svg\]\:w-2\.5>svg{width:.625rem}.\[\&\>svg\]\:w-3>svg{width:.75rem}.\[\&\>svg\]\:text-muted-foreground>svg{color:hsl(var(--muted-foreground))}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0px}.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&_\.recharts-cartesian-axis-tick_text\]\:fill-muted-foreground .recharts-cartesian-axis-tick text{fill:hsl(var(--muted-foreground))}.\[\&_\.recharts-cartesian-grid_line\[stroke\=\'\#ccc\'\]\]\:stroke-border\/50 .recharts-cartesian-grid line[stroke="#ccc"]{stroke:hsl(var(--border) / .5)}.\[\&_\.recharts-curve\.recharts-tooltip-cursor\]\:stroke-border .recharts-curve.recharts-tooltip-cursor{stroke:hsl(var(--border))}.\[\&_\.recharts-dot\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-dot[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-layer\]\:outline-none .recharts-layer{outline:2px solid transparent;outline-offset:2px}.\[\&_\.recharts-polar-grid_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-polar-grid [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-radial-bar-background-sector\]\:fill-muted .recharts-radial-bar-background-sector,.\[\&_\.recharts-rectangle\.recharts-tooltip-cursor\]\:fill-muted .recharts-rectangle.recharts-tooltip-cursor{fill:hsl(var(--muted))}.\[\&_\.recharts-reference-line_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-reference-line [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-sector\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-sector[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-sector\]\:outline-none .recharts-sector,.\[\&_\.recharts-surface\]\:outline-none .recharts-surface{outline:2px solid transparent;outline-offset:2px}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-top:.375rem;padding-bottom:.375rem}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:.75rem;line-height:1rem}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{font-weight:500}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:hsl(var(--muted-foreground))}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:1.25rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:1.25rem}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:3rem}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-top:.75rem;padding-bottom:.75rem}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:1.25rem}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:1.25rem}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:1rem;height:1rem}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0px}.\[\&_tr\]\:border-b tr{border-bottom-width:1px}[data-slot=card-content] .\[\[data-slot\=card-content\]_\&\]\:bg-transparent,[data-slot=popover-content] .\[\[data-slot\=popover-content\]_\&\]\:bg-transparent{background-color:transparent}[data-variant=legend]+.\[\[data-variant\=legend\]\+\&\]\:-mt-1\.5{margin-top:-.375rem}