mgv-backoffice 1.6.0 → 1.8.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.
@@ -4,6 +4,7 @@ interface Props {
4
4
  subtitle?: string;
5
5
  badge?: string;
6
6
  currency?: string;
7
+ decimals?: number;
7
8
  }
8
9
  declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
9
10
  title: string;
@@ -11,5 +12,6 @@ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, imp
11
12
  subtitle: string;
12
13
  badge: string;
13
14
  currency: string;
15
+ decimals: number;
14
16
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
15
17
  export default _default;
@@ -48,3 +48,6 @@ export type { EntityPickerItem } from './types/entityPicker';
48
48
  export { getBaseColor, getBaseColorOf } from './utils/util';
49
49
  export { methodBadgeSolid, methodBadgeBright, statusBadgeSolid, statusBadgeTinted, } from './utils/httpColors';
50
50
  export { sanitizeHtml, isSafeHref } from './utils/sanitizeHtml';
51
+ export { fmtNumber, fmtDate, fmtDateTime, fmtDateShort, fmtPrice, fmtPct, fmtUsd, } from './utils/format';
52
+ export { computePnL } from './utils/pnl';
53
+ export type { PnL, PnLInputs } from './utils/pnl';
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Locale-aware display formatters shared across back-office tables, logs and
3
+ * charts. All are pure and dependency-free; they take the "missing value"
4
+ * branch seriously so callers can hand them raw API values (which may be
5
+ * null/strings) without pre-sanitising.
6
+ */
7
+ /**
8
+ * Format a number with a fixed number of fraction digits, rendering an
9
+ * em-dash for null/undefined/non-finite input. Accepts numeric strings so
10
+ * BigDecimal-as-string API payloads pass through unchanged.
11
+ */
12
+ export declare function fmtNumber(n: number | string | null | undefined, digits?: number): string;
13
+ /**
14
+ * Format an ISO date string or epoch value as a locale date-time, falling
15
+ * back to the raw value on parse failure and an em-dash on empty input.
16
+ * Accepts numbers so epoch-millis timestamps pass through unchanged.
17
+ */
18
+ export declare function fmtDate(s: string | number | null | undefined): string;
19
+ /**
20
+ * Format an epoch-millis timestamp as a compact "Mon D, HH:MM" label —
21
+ * the form used for chart axes and tooltips.
22
+ */
23
+ export declare function fmtDateTime(ms: number): string;
24
+ /**
25
+ * Format an epoch-millis timestamp as a short "Mon D" calendar label.
26
+ */
27
+ export declare function fmtDateShort(ms: number): string;
28
+ /**
29
+ * Format a price with precision that scales to magnitude: penny stocks and
30
+ * sub-cent crypto get more decimals so the value never collapses to "0.00".
31
+ */
32
+ export declare function fmtPrice(n: number): string;
33
+ /**
34
+ * Format a percentage with an explicit sign (e.g. "+2.50%", "-1.00%").
35
+ */
36
+ export declare function fmtPct(n: number, digits?: number): string;
37
+ /**
38
+ * Format a signed USD amount with an explicit leading sign (e.g. "+$5.00").
39
+ */
40
+ export declare function fmtUsd(v: number): string;
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Unrealised profit-and-loss for an open position, expressed in both
3
+ * absolute currency and percentage terms.
4
+ */
5
+ export interface PnL {
6
+ pnlUsd: number | null;
7
+ pnlPct: number | null;
8
+ }
9
+ /** Minimal position shape needed to compute mark-to-market PnL. */
10
+ export interface PnLInputs {
11
+ buyPrice: number | string | null | undefined;
12
+ lastPrice: number | string | null | undefined;
13
+ filledQty: number | string | null | undefined;
14
+ }
15
+ /**
16
+ * Compute unrealised PnL from the latest observed market price. Returns
17
+ * `{ null, null }` when any input is missing or non-finite (a freshly opened
18
+ * position not yet priced, a corrupt row, etc.) so the UI can render a
19
+ * placeholder instead of a bogus figure.
20
+ *
21
+ * The explicit null guard matters: `Number(null) === 0`, which would
22
+ * otherwise silently produce PnL = -buyPrice * qty when a price is absent.
23
+ */
24
+ export declare function computePnL(row: PnLInputs): PnL;
package/dist/ui-lib.css CHANGED
@@ -1,3 +1,3 @@
1
1
  /*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */
2
- @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-x-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-duration:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-red-900:oklch(39.6% .141 25.723);--color-orange-50:oklch(98% .016 73.684);--color-orange-100:oklch(95.4% .038 75.164);--color-orange-200:oklch(90.1% .076 70.697);--color-orange-300:oklch(83.7% .128 66.29);--color-orange-400:oklch(75% .183 55.934);--color-orange-500:oklch(70.5% .213 47.604);--color-orange-700:oklch(55.3% .195 38.402);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-900:oklch(41.4% .112 45.904);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-200:oklch(94.5% .129 101.54);--color-yellow-300:oklch(90.5% .182 98.111);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-700:oklch(55.4% .135 66.442);--color-yellow-800:oklch(47.6% .114 61.907);--color-green-100:oklch(96.2% .044 156.743);--color-green-200:oklch(92.5% .084 155.995);--color-green-300:oklch(87.1% .15 154.449);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-300:oklch(84.5% .143 164.978);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-700:oklch(50.8% .118 165.612);--color-emerald-900:oklch(37.8% .077 168.94);--color-teal-50:oklch(98.4% .014 180.72);--color-teal-400:oklch(77.7% .152 181.912);--color-teal-500:oklch(70.4% .14 182.503);--color-teal-600:oklch(60% .118 184.704);--color-sky-50:oklch(97.7% .013 236.62);--color-sky-400:oklch(74.6% .16 232.661);--color-sky-500:oklch(68.5% .169 237.323);--color-sky-600:oklch(58.8% .158 241.966);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-blue-900:oklch(37.9% .146 265.522);--color-indigo-50:oklch(96.2% .018 272.314);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-300:oklch(82.7% .119 306.383);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--color-purple-800:oklch(43.8% .218 303.724);--color-purple-900:oklch(38.1% .176 304.987);--color-pink-300:oklch(82.3% .12 346.018);--color-slate-300:oklch(86.9% .022 252.894);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-gray-950:oklch(13% .028 261.692);--color-zinc-300:oklch(87.1% .006 286.286);--color-neutral-300:oklch(87% 0 0);--color-stone-300:oklch(86.9% .005 56.366);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-4xl:56rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--tracking-wider:.05em;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}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;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.top-0{top:calc(var(--spacing) * 0)}.top-0\.5{top:calc(var(--spacing) * .5)}.top-1\/2{top:50%}.top-4{top:calc(var(--spacing) * 4)}.top-5{top:calc(var(--spacing) * 5)}.top-20{top:calc(var(--spacing) * 20)}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.right-5{right:calc(var(--spacing) * 5)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-5{bottom:calc(var(--spacing) * 5)}.left-0{left:calc(var(--spacing) * 0)}.left-0\.5{left:calc(var(--spacing) * .5)}.left-3{left:calc(var(--spacing) * 3)}.left-5{left:calc(var(--spacing) * 5)}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.-mx-1\.5{margin-inline:calc(var(--spacing) * -1.5)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mx-auto{margin-inline:auto}.-my-1\.5{margin-block:calc(var(--spacing) * -1.5)}.my-4{margin-block:calc(var(--spacing) * 4)}.my-8{margin-block:calc(var(--spacing) * 8)}.me-3{margin-inline-end:calc(var(--spacing) * 3)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.aspect-square{aspect-ratio:1}.h-1{height:calc(var(--spacing) * 1)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-16{height:calc(var(--spacing) * 16)}.h-\[18px\]{height:18px}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-64{max-height:calc(var(--spacing) * 64)}.min-h-\[60vh\]{min-height:60vh}.min-h-screen{min-height:100vh}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-12{width:calc(var(--spacing) * 12)}.w-13{width:calc(var(--spacing) * 13)}.w-16{width:calc(var(--spacing) * 16)}.w-48{width:calc(var(--spacing) * 48)}.w-60{width:calc(var(--spacing) * 60)}.w-96{width:calc(var(--spacing) * 96)}.w-\[18px\]{width:18px}.w-full{width:100%}.max-w-4xl{max-width:var(--container-4xl)}.max-w-md{max-width:var(--container-md)}.min-w-0{min-width:calc(var(--spacing) * 0)}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-4{--tw-translate-x:calc(var(--spacing) * 4);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-180{rotate:180deg}.animate-spin{animation:var(--animate-spin)}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-x-1>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 1) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 4) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-x-reverse)))}:where(.divide-x>:not(:last-child)){--tw-divide-x-reverse:0;border-inline-style:var(--tw-border-style);border-inline-start-width:calc(1px * var(--tw-divide-x-reverse));border-inline-end-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-amber-200{border-color:var(--color-amber-200)}.border-amber-500\/30{border-color:#f99c004d}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/30{border-color:color-mix(in oklab, var(--color-amber-500) 30%, transparent)}}.border-blue-200{border-color:var(--color-blue-200)}.border-blue-500\/30{border-color:#3080ff4d}@supports (color:color-mix(in lab, red, red)){.border-blue-500\/30{border-color:color-mix(in oklab, var(--color-blue-500) 30%, transparent)}}.border-emerald-200{border-color:var(--color-emerald-200)}.border-emerald-500\/30{border-color:#00bb7f4d}@supports (color:color-mix(in lab, red, red)){.border-emerald-500\/30{border-color:color-mix(in oklab, var(--color-emerald-500) 30%, transparent)}}.border-gray-100{border-color:var(--color-gray-100)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-gray-600{border-color:var(--color-gray-600)}.border-gray-700{border-color:var(--color-gray-700)}.border-gray-800{border-color:var(--color-gray-800)}.border-green-200{border-color:var(--color-green-200)}.border-orange-300{border-color:var(--color-orange-300)}.border-purple-200{border-color:var(--color-purple-200)}.border-purple-500\/30{border-color:#ac4bff4d}@supports (color:color-mix(in lab, red, red)){.border-purple-500\/30{border-color:color-mix(in oklab, var(--color-purple-500) 30%, transparent)}}.border-red-200{border-color:var(--color-red-200)}.border-red-500\/30{border-color:#fb2c364d}@supports (color:color-mix(in lab, red, red)){.border-red-500\/30{border-color:color-mix(in oklab, var(--color-red-500) 30%, transparent)}}.border-red-600{border-color:var(--color-red-600)}.border-transparent{border-color:#0000}.border-yellow-200{border-color:var(--color-yellow-200)}.border-t-blue-500{border-top-color:var(--color-blue-500)}.bg-amber-50{background-color:var(--color-amber-50)}.bg-amber-400{background-color:var(--color-amber-400)}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/10{background-color:color-mix(in oklab, var(--color-amber-500) 10%, transparent)}}.bg-amber-500\/15{background-color:#f99c0026}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/15{background-color:color-mix(in oklab, var(--color-amber-500) 15%, transparent)}}.bg-amber-600{background-color:var(--color-amber-600)}.bg-amber-900\/30{background-color:#7b33064d}@supports (color:color-mix(in lab, red, red)){.bg-amber-900\/30{background-color:color-mix(in oklab, var(--color-amber-900) 30%, transparent)}}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-300{background-color:var(--color-blue-300)}.bg-blue-400{background-color:var(--color-blue-400)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-500\/15{background-color:#3080ff26}@supports (color:color-mix(in lab, red, red)){.bg-blue-500\/15{background-color:color-mix(in oklab, var(--color-blue-500) 15%, transparent)}}.bg-blue-600{background-color:var(--color-blue-600)}.bg-blue-700{background-color:var(--color-blue-700)}.bg-blue-900\/30{background-color:#1c398e4d}@supports (color:color-mix(in lab, red, red)){.bg-blue-900\/30{background-color:color-mix(in oklab, var(--color-blue-900) 30%, transparent)}}.bg-emerald-50{background-color:var(--color-emerald-50)}.bg-emerald-400{background-color:var(--color-emerald-400)}.bg-emerald-500\/10{background-color:#00bb7f1a}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/10{background-color:color-mix(in oklab, var(--color-emerald-500) 10%, transparent)}}.bg-emerald-500\/15{background-color:#00bb7f26}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/15{background-color:color-mix(in oklab, var(--color-emerald-500) 15%, transparent)}}.bg-emerald-600{background-color:var(--color-emerald-600)}.bg-emerald-900\/30{background-color:#004e3b4d}@supports (color:color-mix(in lab, red, red)){.bg-emerald-900\/30{background-color:color-mix(in oklab, var(--color-emerald-900) 30%, transparent)}}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-300{background-color:var(--color-gray-300)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-gray-500{background-color:var(--color-gray-500)}.bg-gray-600{background-color:var(--color-gray-600)}.bg-gray-700{background-color:var(--color-gray-700)}.bg-gray-800{background-color:var(--color-gray-800)}.bg-gray-800\/50{background-color:#1e293980}@supports (color:color-mix(in lab, red, red)){.bg-gray-800\/50{background-color:color-mix(in oklab, var(--color-gray-800) 50%, transparent)}}.bg-gray-900{background-color:var(--color-gray-900)}.bg-gray-950{background-color:var(--color-gray-950)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-300{background-color:var(--color-green-300)}.bg-green-400{background-color:var(--color-green-400)}.bg-green-500{background-color:var(--color-green-500)}.bg-green-500\/15{background-color:#00c75826}@supports (color:color-mix(in lab, red, red)){.bg-green-500\/15{background-color:color-mix(in oklab, var(--color-green-500) 15%, transparent)}}.bg-green-700{background-color:var(--color-green-700)}.bg-neutral-300{background-color:var(--color-neutral-300)}.bg-orange-50{background-color:var(--color-orange-50)}.bg-orange-100{background-color:var(--color-orange-100)}.bg-pink-300{background-color:var(--color-pink-300)}.bg-purple-50{background-color:var(--color-purple-50)}.bg-purple-300{background-color:var(--color-purple-300)}.bg-purple-400{background-color:var(--color-purple-400)}.bg-purple-500{background-color:var(--color-purple-500)}.bg-purple-500\/15{background-color:#ac4bff26}@supports (color:color-mix(in lab, red, red)){.bg-purple-500\/15{background-color:color-mix(in oklab, var(--color-purple-500) 15%, transparent)}}.bg-purple-600{background-color:var(--color-purple-600)}.bg-purple-700{background-color:var(--color-purple-700)}.bg-purple-900\/30{background-color:#59168b4d}@supports (color:color-mix(in lab, red, red)){.bg-purple-900\/30{background-color:color-mix(in oklab, var(--color-purple-900) 30%, transparent)}}.bg-red-50{background-color:var(--color-red-50)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-400{background-color:var(--color-red-400)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/10{background-color:color-mix(in oklab, var(--color-red-500) 10%, transparent)}}.bg-red-500\/15{background-color:#fb2c3626}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/15{background-color:color-mix(in oklab, var(--color-red-500) 15%, transparent)}}.bg-red-600{background-color:var(--color-red-600)}.bg-red-700{background-color:var(--color-red-700)}.bg-red-900\/30{background-color:#82181a4d}@supports (color:color-mix(in lab, red, red)){.bg-red-900\/30{background-color:color-mix(in oklab, var(--color-red-900) 30%, transparent)}}.bg-sky-50{background-color:var(--color-sky-50)}.bg-sky-500\/10{background-color:#00a5ef1a}@supports (color:color-mix(in lab, red, red)){.bg-sky-500\/10{background-color:color-mix(in oklab, var(--color-sky-500) 10%, transparent)}}.bg-slate-300{background-color:var(--color-slate-300)}.bg-stone-300{background-color:var(--color-stone-300)}.bg-white{background-color:var(--color-white)}.bg-yellow-100{background-color:var(--color-yellow-100)}.bg-yellow-300{background-color:var(--color-yellow-300)}.bg-yellow-400{background-color:var(--color-yellow-400)}.bg-yellow-500{background-color:var(--color-yellow-500)}.bg-yellow-500\/15{background-color:#edb20026}@supports (color:color-mix(in lab, red, red)){.bg-yellow-500\/15{background-color:color-mix(in oklab, var(--color-yellow-500) 15%, transparent)}}.bg-zinc-300{background-color:var(--color-zinc-300)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-3\.5{padding-block:calc(var(--spacing) * 3.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-14{padding-top:calc(var(--spacing) * 14)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pl-1{padding-left:calc(var(--spacing) * 1)}.pl-9{padding-left:calc(var(--spacing) * 9)}.text-center{text-align:center}.text-left{text-align:left}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.leading-none{--tw-leading:1;line-height:1}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.whitespace-nowrap{white-space:nowrap}.text-amber-300{color:var(--color-amber-300)}.text-amber-400{color:var(--color-amber-400)}.text-amber-600{color:var(--color-amber-600)}.text-amber-700{color:var(--color-amber-700)}.text-blue-400{color:var(--color-blue-400)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-blue-800{color:var(--color-blue-800)}.text-emerald-300{color:var(--color-emerald-300)}.text-emerald-400{color:var(--color-emerald-400)}.text-emerald-600{color:var(--color-emerald-600)}.text-emerald-700{color:var(--color-emerald-700)}.text-gray-100{color:var(--color-gray-100)}.text-gray-200{color:var(--color-gray-200)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-green-400{color:var(--color-green-400)}.text-green-500{color:var(--color-green-500)}.text-green-700{color:var(--color-green-700)}.text-green-800{color:var(--color-green-800)}.text-indigo-400{color:var(--color-indigo-400)}.text-indigo-600{color:var(--color-indigo-600)}.text-orange-400{color:var(--color-orange-400)}.text-orange-500{color:var(--color-orange-500)}.text-purple-400{color:var(--color-purple-400)}.text-purple-600{color:var(--color-purple-600)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-red-800{color:var(--color-red-800)}.text-sky-400{color:var(--color-sky-400)}.text-sky-600{color:var(--color-sky-600)}.text-teal-400{color:var(--color-teal-400)}.text-teal-600{color:var(--color-teal-600)}.text-white{color:var(--color-white)}.text-yellow-400{color:var(--color-yellow-400)}.text-yellow-500{color:var(--color-yellow-500)}.text-yellow-700{color:var(--color-yellow-700)}.text-yellow-800{color:var(--color-yellow-800)}.uppercase{text-transform:uppercase}.placeholder-gray-400::placeholder{color:var(--color-gray-400)}.placeholder-gray-500::placeholder{color:var(--color-gray-500)}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-75{opacity:.75}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.outline-none{--tw-outline-style:none;outline-style:none}@media (hover:hover){.hover\:bg-amber-50:hover{background-color:var(--color-amber-50)}.hover\:bg-amber-500\/10:hover{background-color:#f99c001a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-amber-500\/10:hover{background-color:color-mix(in oklab, var(--color-amber-500) 10%, transparent)}}.hover\:bg-amber-700:hover{background-color:var(--color-amber-700)}.hover\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\:bg-blue-800:hover{background-color:var(--color-blue-800)}.hover\:bg-emerald-50:hover{background-color:var(--color-emerald-50)}.hover\:bg-emerald-500:hover{background-color:var(--color-emerald-500)}.hover\:bg-emerald-500\/10:hover{background-color:#00bb7f1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-emerald-500\/10:hover{background-color:color-mix(in oklab, var(--color-emerald-500) 10%, transparent)}}.hover\:bg-emerald-700:hover{background-color:var(--color-emerald-700)}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-gray-700:hover{background-color:var(--color-gray-700)}.hover\:bg-gray-800:hover{background-color:var(--color-gray-800)}.hover\:bg-gray-900:hover{background-color:var(--color-gray-900)}.hover\:bg-green-800:hover{background-color:var(--color-green-800)}.hover\:bg-indigo-50:hover{background-color:var(--color-indigo-50)}.hover\:bg-indigo-500\/10:hover{background-color:#625fff1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-indigo-500\/10:hover{background-color:color-mix(in oklab, var(--color-indigo-500) 10%, transparent)}}.hover\:bg-purple-50:hover{background-color:var(--color-purple-50)}.hover\:bg-purple-500\/10:hover{background-color:#ac4bff1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-purple-500\/10:hover{background-color:color-mix(in oklab, var(--color-purple-500) 10%, transparent)}}.hover\:bg-purple-700:hover{background-color:var(--color-purple-700)}.hover\:bg-purple-800:hover{background-color:var(--color-purple-800)}.hover\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\:bg-red-500:hover{background-color:var(--color-red-500)}.hover\:bg-red-500\/10:hover{background-color:#fb2c361a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-red-500\/10:hover{background-color:color-mix(in oklab, var(--color-red-500) 10%, transparent)}}.hover\:bg-red-700:hover{background-color:var(--color-red-700)}.hover\:bg-red-800:hover{background-color:var(--color-red-800)}.hover\:bg-sky-50:hover{background-color:var(--color-sky-50)}.hover\:bg-sky-500\/10:hover{background-color:#00a5ef1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-sky-500\/10:hover{background-color:color-mix(in oklab, var(--color-sky-500) 10%, transparent)}}.hover\:bg-teal-50:hover{background-color:var(--color-teal-50)}.hover\:bg-teal-500\/10:hover{background-color:#00baa71a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-teal-500\/10:hover{background-color:color-mix(in oklab, var(--color-teal-500) 10%, transparent)}}.hover\:bg-yellow-500:hover{background-color:var(--color-yellow-500)}.hover\:text-blue-600:hover{color:var(--color-blue-600)}.hover\:text-blue-700:hover{color:var(--color-blue-700)}.hover\:text-gray-100:hover{color:var(--color-gray-100)}.hover\:text-gray-900:hover{color:var(--color-gray-900)}}.focus\:not-sr-only:focus{clip-path:none;white-space:normal;width:auto;height:auto;margin:0;padding:0;position:static;overflow:visible}.focus\:fixed:focus{position:fixed}.focus\:top-2:focus{top:calc(var(--spacing) * 2)}.focus\:left-2:focus{left:calc(var(--spacing) * 2)}.focus\:z-10:focus{z-index:10}.focus\:z-\[100\]:focus{z-index:100}.focus\:rounded-md:focus{border-radius:var(--radius-md)}.focus\:border-amber-500:focus{border-color:var(--color-amber-500)}.focus\:border-blue-500:focus{border-color:var(--color-blue-500)}.focus\:border-emerald-500:focus{border-color:var(--color-emerald-500)}.focus\:border-purple-500:focus{border-color:var(--color-purple-500)}.focus\:border-red-500:focus{border-color:var(--color-red-500)}.focus\:bg-emerald-600:focus{background-color:var(--color-emerald-600)}.focus\:px-3:focus{padding-inline:calc(var(--spacing) * 3)}.focus\:py-2:focus{padding-block:calc(var(--spacing) * 2)}.focus\:text-white:focus{color:var(--color-white)}.focus\:shadow-lg:focus{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-4:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-blue-300:focus{--tw-ring-color:var(--color-blue-300)}.focus\:ring-gray-200:focus{--tw-ring-color:var(--color-gray-200)}.focus\:ring-gray-300:focus{--tw-ring-color:var(--color-gray-300)}.focus\:ring-green-300:focus{--tw-ring-color:var(--color-green-300)}.focus\:ring-purple-300:focus{--tw-ring-color:var(--color-purple-300)}.focus\:ring-red-300:focus{--tw-ring-color:var(--color-red-300)}.focus\:ring-yellow-300:focus{--tw-ring-color:var(--color-yellow-300)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-emerald-500:focus-visible{--tw-ring-color:var(--color-emerald-500)}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}@media not all and (width>=64rem){.max-lg\:pointer-events-none{pointer-events:none}}@media (width>=40rem){.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}}@media (width>=48rem){.md\:my-10{margin-block:calc(var(--spacing) * 10)}.md\:my-12{margin-block:calc(var(--spacing) * 12)}.md\:ml-2{margin-left:calc(var(--spacing) * 2)}:where(.md\:space-x-3>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 3) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-x-reverse)))}}@media (width>=64rem){.lg\:pointer-events-auto{pointer-events:auto}.lg\:ml-60{margin-left:calc(var(--spacing) * 60)}.lg\:hidden{display:none}.lg\:translate-x-0{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.lg\:pt-0{padding-top:calc(var(--spacing) * 0)}}@media (prefers-color-scheme:dark){.dark\:border-gray-700{border-color:var(--color-gray-700)}.dark\:bg-gray-700{background-color:var(--color-gray-700)}.dark\:bg-gray-800{background-color:var(--color-gray-800)}.dark\:bg-green-800{background-color:var(--color-green-800)}.dark\:bg-orange-700{background-color:var(--color-orange-700)}.dark\:bg-red-800{background-color:var(--color-red-800)}.dark\:text-gray-200{color:var(--color-gray-200)}.dark\:text-gray-400{color:var(--color-gray-400)}.dark\:text-gray-500{color:var(--color-gray-500)}.dark\:text-green-200{color:var(--color-green-200)}.dark\:text-orange-200{color:var(--color-orange-200)}.dark\:text-red-200{color:var(--color-red-200)}.dark\:text-white{color:var(--color-white)}@media (hover:hover){.dark\:hover\:bg-gray-700:hover{background-color:var(--color-gray-700)}.dark\:hover\:text-white:hover{color:var(--color-white)}}}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-duration{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}.outside[data-v-1db4f0ac]{z-index:10;background-color:#000000bf;width:100%;height:100vh;position:fixed;top:0;left:0}.dialog[data-v-1db4f0ac]{z-index:100;border:none;border-radius:12px;width:20%;margin:0;padding:0;position:fixed;top:20vh;left:40%;overflow:hidden;box-shadow:0 2px 8px #00000042}span[data-v-d7ebb6ac]{color:#000;border:1px solid #d1d5db;border-radius:10px;padding:.75rem;text-decoration:none}ul[data-v-d7ebb6ac]{padding:0;list-style:none;display:flex}li[data-v-d7ebb6ac]{margin-right:3px}a[data-v-d7ebb6ac]{color:#000;border:1px solid #d1d5db;border-radius:10px;padding:.75rem;text-decoration:none}a[data-v-d7ebb6ac]:hover{color:#000;cursor:pointer;background-color:#c3c5c9}a.active[data-v-d7ebb6ac]:hover{background-color:#c3c5c9}a.active[data-v-d7ebb6ac]{color:#000;background-color:#e5e7eb;border-radius:10px;font-weight:700}@media (width>=1024px){.mobile-topbar[data-v-e27f267e]{display:none!important}}
2
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-x-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-duration:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-red-900:oklch(39.6% .141 25.723);--color-orange-50:oklch(98% .016 73.684);--color-orange-100:oklch(95.4% .038 75.164);--color-orange-200:oklch(90.1% .076 70.697);--color-orange-300:oklch(83.7% .128 66.29);--color-orange-400:oklch(75% .183 55.934);--color-orange-500:oklch(70.5% .213 47.604);--color-orange-700:oklch(55.3% .195 38.402);--color-orange-900:oklch(40.8% .123 38.172);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-900:oklch(41.4% .112 45.904);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-200:oklch(94.5% .129 101.54);--color-yellow-300:oklch(90.5% .182 98.111);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-700:oklch(55.4% .135 66.442);--color-yellow-800:oklch(47.6% .114 61.907);--color-green-100:oklch(96.2% .044 156.743);--color-green-200:oklch(92.5% .084 155.995);--color-green-300:oklch(87.1% .15 154.449);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-300:oklch(84.5% .143 164.978);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-700:oklch(50.8% .118 165.612);--color-emerald-900:oklch(37.8% .077 168.94);--color-teal-50:oklch(98.4% .014 180.72);--color-teal-400:oklch(77.7% .152 181.912);--color-teal-500:oklch(70.4% .14 182.503);--color-teal-600:oklch(60% .118 184.704);--color-sky-50:oklch(97.7% .013 236.62);--color-sky-400:oklch(74.6% .16 232.661);--color-sky-500:oklch(68.5% .169 237.323);--color-sky-600:oklch(58.8% .158 241.966);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-blue-900:oklch(37.9% .146 265.522);--color-indigo-50:oklch(96.2% .018 272.314);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-300:oklch(82.7% .119 306.383);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--color-purple-800:oklch(43.8% .218 303.724);--color-purple-900:oklch(38.1% .176 304.987);--color-pink-300:oklch(82.3% .12 346.018);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-800:oklch(27.9% .041 260.031);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-gray-950:oklch(13% .028 261.692);--color-zinc-300:oklch(87.1% .006 286.286);--color-neutral-300:oklch(87% 0 0);--color-stone-300:oklch(86.9% .005 56.366);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-4xl:56rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--tracking-wider:.05em;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}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;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.top-0{top:calc(var(--spacing) * 0)}.top-0\.5{top:calc(var(--spacing) * .5)}.top-1\/2{top:50%}.top-4{top:calc(var(--spacing) * 4)}.top-5{top:calc(var(--spacing) * 5)}.top-20{top:calc(var(--spacing) * 20)}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.right-5{right:calc(var(--spacing) * 5)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-5{bottom:calc(var(--spacing) * 5)}.left-0{left:calc(var(--spacing) * 0)}.left-0\.5{left:calc(var(--spacing) * .5)}.left-3{left:calc(var(--spacing) * 3)}.left-5{left:calc(var(--spacing) * 5)}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.-mx-1\.5{margin-inline:calc(var(--spacing) * -1.5)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mx-auto{margin-inline:auto}.-my-1\.5{margin-block:calc(var(--spacing) * -1.5)}.my-4{margin-block:calc(var(--spacing) * 4)}.my-8{margin-block:calc(var(--spacing) * 8)}.me-3{margin-inline-end:calc(var(--spacing) * 3)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.aspect-square{aspect-ratio:1}.h-1{height:calc(var(--spacing) * 1)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-16{height:calc(var(--spacing) * 16)}.h-\[18px\]{height:18px}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-64{max-height:calc(var(--spacing) * 64)}.min-h-\[60vh\]{min-height:60vh}.min-h-screen{min-height:100vh}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-12{width:calc(var(--spacing) * 12)}.w-13{width:calc(var(--spacing) * 13)}.w-16{width:calc(var(--spacing) * 16)}.w-48{width:calc(var(--spacing) * 48)}.w-60{width:calc(var(--spacing) * 60)}.w-96{width:calc(var(--spacing) * 96)}.w-\[18px\]{width:18px}.w-full{width:100%}.max-w-4xl{max-width:var(--container-4xl)}.max-w-md{max-width:var(--container-md)}.min-w-0{min-width:calc(var(--spacing) * 0)}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-4{--tw-translate-x:calc(var(--spacing) * 4);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-180{rotate:180deg}.animate-spin{animation:var(--animate-spin)}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-x-1>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 1) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 4) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-x-reverse)))}:where(.divide-x>:not(:last-child)){--tw-divide-x-reverse:0;border-inline-style:var(--tw-border-style);border-inline-start-width:calc(1px * var(--tw-divide-x-reverse));border-inline-end-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-amber-200{border-color:var(--color-amber-200)}.border-amber-500\/30{border-color:#f99c004d}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/30{border-color:color-mix(in oklab, var(--color-amber-500) 30%, transparent)}}.border-blue-200{border-color:var(--color-blue-200)}.border-blue-500\/30{border-color:#3080ff4d}@supports (color:color-mix(in lab, red, red)){.border-blue-500\/30{border-color:color-mix(in oklab, var(--color-blue-500) 30%, transparent)}}.border-emerald-200{border-color:var(--color-emerald-200)}.border-emerald-500\/30{border-color:#00bb7f4d}@supports (color:color-mix(in lab, red, red)){.border-emerald-500\/30{border-color:color-mix(in oklab, var(--color-emerald-500) 30%, transparent)}}.border-gray-100{border-color:var(--color-gray-100)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-gray-600{border-color:var(--color-gray-600)}.border-gray-700{border-color:var(--color-gray-700)}.border-gray-800{border-color:var(--color-gray-800)}.border-green-200{border-color:var(--color-green-200)}.border-orange-300{border-color:var(--color-orange-300)}.border-purple-200{border-color:var(--color-purple-200)}.border-purple-500\/30{border-color:#ac4bff4d}@supports (color:color-mix(in lab, red, red)){.border-purple-500\/30{border-color:color-mix(in oklab, var(--color-purple-500) 30%, transparent)}}.border-red-200{border-color:var(--color-red-200)}.border-red-500\/30{border-color:#fb2c364d}@supports (color:color-mix(in lab, red, red)){.border-red-500\/30{border-color:color-mix(in oklab, var(--color-red-500) 30%, transparent)}}.border-red-600{border-color:var(--color-red-600)}.border-transparent{border-color:#0000}.border-yellow-200{border-color:var(--color-yellow-200)}.border-t-blue-500{border-top-color:var(--color-blue-500)}.bg-amber-50{background-color:var(--color-amber-50)}.bg-amber-400{background-color:var(--color-amber-400)}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/10{background-color:color-mix(in oklab, var(--color-amber-500) 10%, transparent)}}.bg-amber-500\/15{background-color:#f99c0026}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/15{background-color:color-mix(in oklab, var(--color-amber-500) 15%, transparent)}}.bg-amber-600{background-color:var(--color-amber-600)}.bg-amber-900\/30{background-color:#7b33064d}@supports (color:color-mix(in lab, red, red)){.bg-amber-900\/30{background-color:color-mix(in oklab, var(--color-amber-900) 30%, transparent)}}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-300{background-color:var(--color-blue-300)}.bg-blue-400{background-color:var(--color-blue-400)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-500\/15{background-color:#3080ff26}@supports (color:color-mix(in lab, red, red)){.bg-blue-500\/15{background-color:color-mix(in oklab, var(--color-blue-500) 15%, transparent)}}.bg-blue-600{background-color:var(--color-blue-600)}.bg-blue-700{background-color:var(--color-blue-700)}.bg-blue-900\/30{background-color:#1c398e4d}@supports (color:color-mix(in lab, red, red)){.bg-blue-900\/30{background-color:color-mix(in oklab, var(--color-blue-900) 30%, transparent)}}.bg-emerald-50{background-color:var(--color-emerald-50)}.bg-emerald-400{background-color:var(--color-emerald-400)}.bg-emerald-500\/10{background-color:#00bb7f1a}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/10{background-color:color-mix(in oklab, var(--color-emerald-500) 10%, transparent)}}.bg-emerald-500\/15{background-color:#00bb7f26}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/15{background-color:color-mix(in oklab, var(--color-emerald-500) 15%, transparent)}}.bg-emerald-600{background-color:var(--color-emerald-600)}.bg-emerald-900\/30{background-color:#004e3b4d}@supports (color:color-mix(in lab, red, red)){.bg-emerald-900\/30{background-color:color-mix(in oklab, var(--color-emerald-900) 30%, transparent)}}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-300{background-color:var(--color-gray-300)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-gray-500{background-color:var(--color-gray-500)}.bg-gray-600{background-color:var(--color-gray-600)}.bg-gray-700{background-color:var(--color-gray-700)}.bg-gray-800{background-color:var(--color-gray-800)}.bg-gray-800\/50{background-color:#1e293980}@supports (color:color-mix(in lab, red, red)){.bg-gray-800\/50{background-color:color-mix(in oklab, var(--color-gray-800) 50%, transparent)}}.bg-gray-900{background-color:var(--color-gray-900)}.bg-gray-950{background-color:var(--color-gray-950)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-300{background-color:var(--color-green-300)}.bg-green-400{background-color:var(--color-green-400)}.bg-green-500{background-color:var(--color-green-500)}.bg-green-500\/15{background-color:#00c75826}@supports (color:color-mix(in lab, red, red)){.bg-green-500\/15{background-color:color-mix(in oklab, var(--color-green-500) 15%, transparent)}}.bg-green-700{background-color:var(--color-green-700)}.bg-neutral-300{background-color:var(--color-neutral-300)}.bg-orange-50{background-color:var(--color-orange-50)}.bg-orange-100{background-color:var(--color-orange-100)}.bg-pink-300{background-color:var(--color-pink-300)}.bg-purple-50{background-color:var(--color-purple-50)}.bg-purple-300{background-color:var(--color-purple-300)}.bg-purple-400{background-color:var(--color-purple-400)}.bg-purple-500{background-color:var(--color-purple-500)}.bg-purple-500\/15{background-color:#ac4bff26}@supports (color:color-mix(in lab, red, red)){.bg-purple-500\/15{background-color:color-mix(in oklab, var(--color-purple-500) 15%, transparent)}}.bg-purple-600{background-color:var(--color-purple-600)}.bg-purple-700{background-color:var(--color-purple-700)}.bg-purple-900\/30{background-color:#59168b4d}@supports (color:color-mix(in lab, red, red)){.bg-purple-900\/30{background-color:color-mix(in oklab, var(--color-purple-900) 30%, transparent)}}.bg-red-50{background-color:var(--color-red-50)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-400{background-color:var(--color-red-400)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/10{background-color:color-mix(in oklab, var(--color-red-500) 10%, transparent)}}.bg-red-500\/15{background-color:#fb2c3626}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/15{background-color:color-mix(in oklab, var(--color-red-500) 15%, transparent)}}.bg-red-600{background-color:var(--color-red-600)}.bg-red-700{background-color:var(--color-red-700)}.bg-red-900\/30{background-color:#82181a4d}@supports (color:color-mix(in lab, red, red)){.bg-red-900\/30{background-color:color-mix(in oklab, var(--color-red-900) 30%, transparent)}}.bg-sky-50{background-color:var(--color-sky-50)}.bg-sky-500\/10{background-color:#00a5ef1a}@supports (color:color-mix(in lab, red, red)){.bg-sky-500\/10{background-color:color-mix(in oklab, var(--color-sky-500) 10%, transparent)}}.bg-slate-300{background-color:var(--color-slate-300)}.bg-stone-300{background-color:var(--color-stone-300)}.bg-white{background-color:var(--color-white)}.bg-yellow-100{background-color:var(--color-yellow-100)}.bg-yellow-300{background-color:var(--color-yellow-300)}.bg-yellow-400{background-color:var(--color-yellow-400)}.bg-yellow-500{background-color:var(--color-yellow-500)}.bg-yellow-500\/15{background-color:#edb20026}@supports (color:color-mix(in lab, red, red)){.bg-yellow-500\/15{background-color:color-mix(in oklab, var(--color-yellow-500) 15%, transparent)}}.bg-zinc-300{background-color:var(--color-zinc-300)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-3\.5{padding-block:calc(var(--spacing) * 3.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-14{padding-top:calc(var(--spacing) * 14)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pl-1{padding-left:calc(var(--spacing) * 1)}.pl-9{padding-left:calc(var(--spacing) * 9)}.text-center{text-align:center}.text-left{text-align:left}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.leading-none{--tw-leading:1;line-height:1}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.whitespace-nowrap{white-space:nowrap}.text-amber-300{color:var(--color-amber-300)}.text-amber-400{color:var(--color-amber-400)}.text-amber-600{color:var(--color-amber-600)}.text-amber-700{color:var(--color-amber-700)}.text-blue-400{color:var(--color-blue-400)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-blue-800{color:var(--color-blue-800)}.text-emerald-300{color:var(--color-emerald-300)}.text-emerald-400{color:var(--color-emerald-400)}.text-emerald-600{color:var(--color-emerald-600)}.text-emerald-700{color:var(--color-emerald-700)}.text-gray-100{color:var(--color-gray-100)}.text-gray-200{color:var(--color-gray-200)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-green-400{color:var(--color-green-400)}.text-green-500{color:var(--color-green-500)}.text-green-700{color:var(--color-green-700)}.text-green-800{color:var(--color-green-800)}.text-indigo-400{color:var(--color-indigo-400)}.text-indigo-600{color:var(--color-indigo-600)}.text-orange-400{color:var(--color-orange-400)}.text-orange-500{color:var(--color-orange-500)}.text-purple-400{color:var(--color-purple-400)}.text-purple-600{color:var(--color-purple-600)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-red-800{color:var(--color-red-800)}.text-sky-400{color:var(--color-sky-400)}.text-sky-600{color:var(--color-sky-600)}.text-teal-400{color:var(--color-teal-400)}.text-teal-600{color:var(--color-teal-600)}.text-white{color:var(--color-white)}.text-yellow-400{color:var(--color-yellow-400)}.text-yellow-500{color:var(--color-yellow-500)}.text-yellow-700{color:var(--color-yellow-700)}.text-yellow-800{color:var(--color-yellow-800)}.uppercase{text-transform:uppercase}.placeholder-gray-400::placeholder{color:var(--color-gray-400)}.placeholder-gray-500::placeholder{color:var(--color-gray-500)}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-75{opacity:.75}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.outline-none{--tw-outline-style:none;outline-style:none}@media (hover:hover){.hover\:bg-amber-50:hover{background-color:var(--color-amber-50)}.hover\:bg-amber-500\/10:hover{background-color:#f99c001a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-amber-500\/10:hover{background-color:color-mix(in oklab, var(--color-amber-500) 10%, transparent)}}.hover\:bg-amber-700:hover{background-color:var(--color-amber-700)}.hover\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\:bg-blue-800:hover{background-color:var(--color-blue-800)}.hover\:bg-emerald-50:hover{background-color:var(--color-emerald-50)}.hover\:bg-emerald-500:hover{background-color:var(--color-emerald-500)}.hover\:bg-emerald-500\/10:hover{background-color:#00bb7f1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-emerald-500\/10:hover{background-color:color-mix(in oklab, var(--color-emerald-500) 10%, transparent)}}.hover\:bg-emerald-700:hover{background-color:var(--color-emerald-700)}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-gray-700:hover{background-color:var(--color-gray-700)}.hover\:bg-gray-800:hover{background-color:var(--color-gray-800)}.hover\:bg-gray-900:hover{background-color:var(--color-gray-900)}.hover\:bg-green-800:hover{background-color:var(--color-green-800)}.hover\:bg-indigo-50:hover{background-color:var(--color-indigo-50)}.hover\:bg-indigo-500\/10:hover{background-color:#625fff1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-indigo-500\/10:hover{background-color:color-mix(in oklab, var(--color-indigo-500) 10%, transparent)}}.hover\:bg-purple-50:hover{background-color:var(--color-purple-50)}.hover\:bg-purple-500\/10:hover{background-color:#ac4bff1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-purple-500\/10:hover{background-color:color-mix(in oklab, var(--color-purple-500) 10%, transparent)}}.hover\:bg-purple-700:hover{background-color:var(--color-purple-700)}.hover\:bg-purple-800:hover{background-color:var(--color-purple-800)}.hover\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\:bg-red-500:hover{background-color:var(--color-red-500)}.hover\:bg-red-500\/10:hover{background-color:#fb2c361a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-red-500\/10:hover{background-color:color-mix(in oklab, var(--color-red-500) 10%, transparent)}}.hover\:bg-red-700:hover{background-color:var(--color-red-700)}.hover\:bg-red-800:hover{background-color:var(--color-red-800)}.hover\:bg-sky-50:hover{background-color:var(--color-sky-50)}.hover\:bg-sky-500\/10:hover{background-color:#00a5ef1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-sky-500\/10:hover{background-color:color-mix(in oklab, var(--color-sky-500) 10%, transparent)}}.hover\:bg-teal-50:hover{background-color:var(--color-teal-50)}.hover\:bg-teal-500\/10:hover{background-color:#00baa71a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-teal-500\/10:hover{background-color:color-mix(in oklab, var(--color-teal-500) 10%, transparent)}}.hover\:bg-yellow-500:hover{background-color:var(--color-yellow-500)}.hover\:text-blue-600:hover{color:var(--color-blue-600)}.hover\:text-blue-700:hover{color:var(--color-blue-700)}.hover\:text-gray-100:hover{color:var(--color-gray-100)}.hover\:text-gray-900:hover{color:var(--color-gray-900)}}.focus\:not-sr-only:focus{clip-path:none;white-space:normal;width:auto;height:auto;margin:0;padding:0;position:static;overflow:visible}.focus\:fixed:focus{position:fixed}.focus\:top-2:focus{top:calc(var(--spacing) * 2)}.focus\:left-2:focus{left:calc(var(--spacing) * 2)}.focus\:z-10:focus{z-index:10}.focus\:z-\[100\]:focus{z-index:100}.focus\:rounded-md:focus{border-radius:var(--radius-md)}.focus\:border-amber-500:focus{border-color:var(--color-amber-500)}.focus\:border-blue-500:focus{border-color:var(--color-blue-500)}.focus\:border-emerald-500:focus{border-color:var(--color-emerald-500)}.focus\:border-purple-500:focus{border-color:var(--color-purple-500)}.focus\:border-red-500:focus{border-color:var(--color-red-500)}.focus\:bg-emerald-600:focus{background-color:var(--color-emerald-600)}.focus\:px-3:focus{padding-inline:calc(var(--spacing) * 3)}.focus\:py-2:focus{padding-block:calc(var(--spacing) * 2)}.focus\:text-white:focus{color:var(--color-white)}.focus\:shadow-lg:focus{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-4:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-blue-300:focus{--tw-ring-color:var(--color-blue-300)}.focus\:ring-gray-200:focus{--tw-ring-color:var(--color-gray-200)}.focus\:ring-gray-300:focus{--tw-ring-color:var(--color-gray-300)}.focus\:ring-green-300:focus{--tw-ring-color:var(--color-green-300)}.focus\:ring-purple-300:focus{--tw-ring-color:var(--color-purple-300)}.focus\:ring-red-300:focus{--tw-ring-color:var(--color-red-300)}.focus\:ring-yellow-300:focus{--tw-ring-color:var(--color-yellow-300)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-emerald-500:focus-visible{--tw-ring-color:var(--color-emerald-500)}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}@media not all and (width>=64rem){.max-lg\:pointer-events-none{pointer-events:none}}@media (width>=40rem){.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}}@media (width>=48rem){.md\:my-10{margin-block:calc(var(--spacing) * 10)}.md\:my-12{margin-block:calc(var(--spacing) * 12)}.md\:ml-2{margin-left:calc(var(--spacing) * 2)}:where(.md\:space-x-3>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 3) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-x-reverse)))}}@media (width>=64rem){.lg\:pointer-events-auto{pointer-events:auto}.lg\:ml-60{margin-left:calc(var(--spacing) * 60)}.lg\:hidden{display:none}.lg\:translate-x-0{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.lg\:pt-0{padding-top:calc(var(--spacing) * 0)}}@media (prefers-color-scheme:dark){.dark\:border-gray-700{border-color:var(--color-gray-700)}.dark\:border-orange-700{border-color:var(--color-orange-700)}.dark\:bg-gray-700{background-color:var(--color-gray-700)}.dark\:bg-gray-800{background-color:var(--color-gray-800)}.dark\:bg-green-800{background-color:var(--color-green-800)}.dark\:bg-orange-700{background-color:var(--color-orange-700)}.dark\:bg-orange-900\/30{background-color:#7e2a0c4d}@supports (color:color-mix(in lab, red, red)){.dark\:bg-orange-900\/30{background-color:color-mix(in oklab, var(--color-orange-900) 30%, transparent)}}.dark\:bg-orange-900\/40{background-color:#7e2a0c66}@supports (color:color-mix(in lab, red, red)){.dark\:bg-orange-900\/40{background-color:color-mix(in oklab, var(--color-orange-900) 40%, transparent)}}.dark\:bg-red-800{background-color:var(--color-red-800)}.dark\:bg-slate-800{background-color:var(--color-slate-800)}.dark\:text-gray-200{color:var(--color-gray-200)}.dark\:text-gray-400{color:var(--color-gray-400)}.dark\:text-gray-500{color:var(--color-gray-500)}.dark\:text-green-200{color:var(--color-green-200)}.dark\:text-orange-200{color:var(--color-orange-200)}.dark\:text-orange-400{color:var(--color-orange-400)}.dark\:text-red-200{color:var(--color-red-200)}.dark\:text-slate-200{color:var(--color-slate-200)}.dark\:text-slate-300{color:var(--color-slate-300)}.dark\:text-white{color:var(--color-white)}@media (hover:hover){.dark\:hover\:bg-gray-700:hover{background-color:var(--color-gray-700)}.dark\:hover\:text-white:hover{color:var(--color-white)}}}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-duration{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}.outside[data-v-1db4f0ac]{z-index:10;background-color:#000000bf;width:100%;height:100vh;position:fixed;top:0;left:0}.dialog[data-v-1db4f0ac]{z-index:100;border:none;border-radius:12px;width:20%;margin:0;padding:0;position:fixed;top:20vh;left:40%;overflow:hidden;box-shadow:0 2px 8px #00000042}span[data-v-d7ebb6ac]{color:#000;border:1px solid #d1d5db;border-radius:10px;padding:.75rem;text-decoration:none}ul[data-v-d7ebb6ac]{padding:0;list-style:none;display:flex}li[data-v-d7ebb6ac]{margin-right:3px}a[data-v-d7ebb6ac]{color:#000;border:1px solid #d1d5db;border-radius:10px;padding:.75rem;text-decoration:none}a[data-v-d7ebb6ac]:hover{color:#000;cursor:pointer;background-color:#c3c5c9}a.active[data-v-d7ebb6ac]:hover{background-color:#c3c5c9}a.active[data-v-d7ebb6ac]{color:#000;background-color:#e5e7eb;border-radius:10px;font-weight:700}@media (width>=1024px){.mobile-topbar[data-v-e27f267e]{display:none!important}}
3
3
  /*$vite$:1*/
package/dist/ui-lib.js CHANGED
@@ -772,28 +772,29 @@ var qe = /* @__PURE__ */ W(We, [["render", Ke]]), G = /* @__PURE__ */ function(e
772
772
  }
773
773
  return (e, t) => (_(), a("div", Qe, [o("div", { class: f(["border border-gray-300 relative aspect-square rounded-lg bg-white shadow-sm overflow-hidden flex items-center justify-center text-center", i()]) }, [b(e.$slots, "default"), o("div", { class: f(["absolute bottom-0 left-0 h-1 w-full", r.value]) }, null, 2)], 2)]));
774
774
  }
775
- }), et = { class: "relative rounded-xl border-2 border-dashed border-orange-300 bg-white p-6" }, tt = {
775
+ }), et = { class: "relative rounded-xl border-2 border-dashed border-orange-300 bg-white p-6 dark:border-orange-700 dark:bg-slate-800" }, tt = {
776
776
  key: 0,
777
- class: "absolute right-4 top-4 rounded-md bg-orange-100 px-3 py-1 text-xs font-bold tracking-wide text-orange-500"
778
- }, nt = { class: "flex items-start justify-between" }, rt = { class: "text-sm font-bold tracking-wide text-gray-800" }, it = { class: "mt-1 text-4xl font-bold text-gray-400" }, at = { class: "mt-1 text-sm font-medium text-orange-400" }, ot = /* @__PURE__ */ l({
777
+ class: "absolute right-4 top-4 rounded-md bg-orange-100 px-3 py-1 text-xs font-bold tracking-wide text-orange-500 dark:bg-orange-900/40 dark:text-orange-400"
778
+ }, nt = { class: "flex items-start justify-between" }, rt = { class: "text-sm font-bold tracking-wide text-gray-800 dark:text-slate-200" }, it = { class: "mt-1 text-4xl font-bold text-gray-400 dark:text-slate-300" }, at = { class: "mt-1 text-sm font-medium text-orange-400 dark:text-orange-400" }, ot = /* @__PURE__ */ l({
779
779
  __name: "EarningsCard",
780
780
  props: {
781
781
  title: { default: "TOTAL EARNINGS" },
782
782
  amount: { default: 0 },
783
783
  subtitle: { default: "Lifetime commission" },
784
784
  badge: { default: "" },
785
- currency: { default: "$" }
785
+ currency: { default: "$" },
786
+ decimals: { default: 2 }
786
787
  },
787
788
  setup(e) {
788
789
  let t = e, r = n(() => t.currency + t.amount.toLocaleString("en-US", {
789
- minimumFractionDigits: 2,
790
- maximumFractionDigits: 2
790
+ minimumFractionDigits: t.decimals,
791
+ maximumFractionDigits: t.decimals
791
792
  }));
792
793
  return (t, n) => (_(), a("div", et, [e.badge ? (_(), a("div", tt, C(e.badge), 1)) : i("", !0), o("div", nt, [o("div", null, [
793
794
  o("p", rt, C(e.title), 1),
794
795
  o("p", it, C(r.value), 1),
795
796
  o("p", at, C(e.subtitle), 1)
796
- ]), n[0] ||= o("div", { class: "mt-6 flex h-12 w-12 items-center justify-center rounded-xl bg-orange-50" }, [o("svg", {
797
+ ]), n[0] ||= o("div", { class: "mt-6 flex h-12 w-12 items-center justify-center rounded-xl bg-orange-50 dark:bg-orange-900/30" }, [o("svg", {
797
798
  class: "h-6 w-6 text-orange-400",
798
799
  viewBox: "0 0 24 24",
799
800
  fill: "none",
@@ -1881,4 +1882,67 @@ function Ln(e) {
1881
1882
  return t.innerHTML;
1882
1883
  }
1883
1884
  //#endregion
1884
- export { I as AlertEnum, Sn as BaseActionButton, he as BaseAlert, fn as BaseAppLayout, R as BaseBadge, Tn as BaseBadgeEnum, be as BaseBreadcrumb, ke as BaseButton, z as BaseButtonEnum, B as BaseButtonSizeEnum, Ot as BaseCollapsibleSection, Mt as BaseConfirmModal, ln as BaseEntityPickerModal, Ne as BaseLine, Pe as BaseLoginEnum, Ie as BaseLogo, H as BaseLogoEnum, He as BaseModal, U as BaseModalEnum, Q as BaseModalShell, zt as BaseNotFoundPage, gn as BasePageHeader, Ue as BaseRow, Yt as BaseSidebar, qe as BaseSpinner, It as BaseTextInputModal, Ze as BaseToast, G as BaseToastEnum, yn as BaseToolbarButton, $e as ColoredSquares, L as ColorsEnums, ot as EarningsCard, dt as EuroAmount, V as LineEnum, mt as Pagination, K as PositioningEnum, vt as TrendArrow, fe as getBaseColor, pe as getBaseColorOf, Fn as isSafeHref, kn as methodBadgeBright, On as methodBadgeSolid, Ln as sanitizeHtml, An as statusBadgeSolid, jn as statusBadgeTinted, Cn as useDebouncedRef, Z as useEscapeKey, Bt as useMobileSidebar, Y as useTheme, X as useThemeClasses, wn as useToast };
1885
+ //#region src/utils/format.ts
1886
+ var Rn = "—";
1887
+ function zn(e, t = 4) {
1888
+ if (e == null) return Rn;
1889
+ let n = typeof e == "string" ? Number(e) : e;
1890
+ return isFinite(n) ? n.toLocaleString(void 0, {
1891
+ minimumFractionDigits: t,
1892
+ maximumFractionDigits: t
1893
+ }) : Rn;
1894
+ }
1895
+ function Bn(e) {
1896
+ if (e == null || e === "") return Rn;
1897
+ try {
1898
+ return new Date(e).toLocaleString();
1899
+ } catch {
1900
+ return String(e);
1901
+ }
1902
+ }
1903
+ function Vn(e) {
1904
+ return new Date(e).toLocaleString(void 0, {
1905
+ month: "short",
1906
+ day: "numeric",
1907
+ hour: "2-digit",
1908
+ minute: "2-digit"
1909
+ });
1910
+ }
1911
+ function Hn(e) {
1912
+ return new Date(e).toLocaleDateString(void 0, {
1913
+ month: "short",
1914
+ day: "numeric"
1915
+ });
1916
+ }
1917
+ function Un(e) {
1918
+ if (!isFinite(e) || e === 0) return e.toFixed(2);
1919
+ let t = Math.abs(e), n = 2;
1920
+ return t < 1e-4 ? n = 8 : t < .01 ? n = 6 : t < 1 ? n = 4 : t < 100 && (n = 3), e.toLocaleString(void 0, {
1921
+ minimumFractionDigits: n,
1922
+ maximumFractionDigits: n
1923
+ });
1924
+ }
1925
+ function Wn(e, t = 2) {
1926
+ return `${e >= 0 ? "+" : ""}${e.toFixed(t)}%`;
1927
+ }
1928
+ function Gn(e) {
1929
+ return `${e >= 0 ? "+" : ""}$${e.toFixed(2)}`;
1930
+ }
1931
+ //#endregion
1932
+ //#region src/utils/pnl.ts
1933
+ function Kn(e) {
1934
+ if (e.buyPrice == null || e.lastPrice == null || e.filledQty == null) return {
1935
+ pnlUsd: null,
1936
+ pnlPct: null
1937
+ };
1938
+ let t = Number(e.buyPrice), n = Number(e.lastPrice), r = Number(e.filledQty);
1939
+ return !isFinite(t) || !isFinite(n) || !isFinite(r) || t <= 0 ? {
1940
+ pnlUsd: null,
1941
+ pnlPct: null
1942
+ } : {
1943
+ pnlUsd: (n - t) * r,
1944
+ pnlPct: (n - t) / t * 100
1945
+ };
1946
+ }
1947
+ //#endregion
1948
+ export { I as AlertEnum, Sn as BaseActionButton, he as BaseAlert, fn as BaseAppLayout, R as BaseBadge, Tn as BaseBadgeEnum, be as BaseBreadcrumb, ke as BaseButton, z as BaseButtonEnum, B as BaseButtonSizeEnum, Ot as BaseCollapsibleSection, Mt as BaseConfirmModal, ln as BaseEntityPickerModal, Ne as BaseLine, Pe as BaseLoginEnum, Ie as BaseLogo, H as BaseLogoEnum, He as BaseModal, U as BaseModalEnum, Q as BaseModalShell, zt as BaseNotFoundPage, gn as BasePageHeader, Ue as BaseRow, Yt as BaseSidebar, qe as BaseSpinner, It as BaseTextInputModal, Ze as BaseToast, G as BaseToastEnum, yn as BaseToolbarButton, $e as ColoredSquares, L as ColorsEnums, ot as EarningsCard, dt as EuroAmount, V as LineEnum, mt as Pagination, K as PositioningEnum, vt as TrendArrow, Kn as computePnL, Bn as fmtDate, Hn as fmtDateShort, Vn as fmtDateTime, zn as fmtNumber, Wn as fmtPct, Un as fmtPrice, Gn as fmtUsd, fe as getBaseColor, pe as getBaseColorOf, Fn as isSafeHref, kn as methodBadgeBright, On as methodBadgeSolid, Ln as sanitizeHtml, An as statusBadgeSolid, jn as statusBadgeTinted, Cn as useDebouncedRef, Z as useEscapeKey, Bt as useMobileSidebar, Y as useTheme, X as useThemeClasses, wn as useToast };
@@ -1 +1 @@
1
- (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`vue`),require(`@heroicons/vue/24/outline`),require(`@heroicons/vue/24/solid`),require(`vue-router`)):typeof define==`function`&&define.amd?define([`exports`,`vue`,`@heroicons/vue/24/outline`,`@heroicons/vue/24/solid`,`vue-router`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UiLib={},e.Vue,e.HeroiconsOutline,e.HeroiconsSolid,e.VueRouter))})(this,function(e,t,n,r,i){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var a=function(e){return e.WARNING=`WARNING`,e.ERROR=`ERROR`,e.SUCCESS=`SUCCESS`,e.INFO=`INFO`,e}({}),o=function(e){return e.NONE=`NONE`,e.RED=`RED`,e.YELLOW=`YELLOW`,e.BLACK=`BLACK`,e.GRAY=`GRAY`,e.GREEN=`GREEN`,e.BLUE=`BLUE`,e}({});function s(e){let t=`red`;switch(e){case a.ERROR:t=`red`;break;case a.SUCCESS:t=`green`;break;case a.INFO:t=`gray`;break;case a.WARNING:t=`yellow`;break}return t}function c(e){let t=`red`;switch(e){case o.GREEN:t=`green`;break;case o.RED:t=`red`;break;case o.BLUE:t=`blue`;break;case o.YELLOW:t=`yellow`;break;case o.BLACK:t=`black`;break;case o.GRAY:t=`gray`;break;case o.NONE:t=``;break}return t}var l={class:`font-medium pl-1`},u=(0,t.defineComponent)({__name:`BaseAlert`,props:{title:{type:String,required:!1,default:``},color:{type:String,required:!1,default:a.ERROR}},setup(e){let r=e;function i(){let e=s(r.color);return`flex items-center p-4 mb-4 text-sm text-`+e+`-800 border border-`+e+`-300 rounded-lg bg-`+e+`-50 dark:bg-gray-800 dark:text-`+e+`-400 dark:border-`+e+`-800`}return(r,a)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)(i()),role:`alert`},[(0,t.createVNode)((0,t.unref)(n.InformationCircleIcon),{class:`w-6 h-6 text-gray-400`}),(0,t.createElementVNode)(`div`,null,[(0,t.createElementVNode)(`span`,l,(0,t.toDisplayString)(e.title),1)])],2))}}),d=`bg-red-100 text-red-700 border-red-200`,f=(0,t.defineComponent)({__name:`BaseBadge`,props:{color:{type:String,required:!1}},setup(e){let n=(0,t.useSlots)(),r=(0,t.computed)(()=>!!n.default),i=e,a={[o.RED]:`bg-red-100 text-red-700 border-red-200`,[o.GREEN]:`bg-green-100 text-green-700 border-green-200`,[o.BLUE]:`bg-blue-100 text-blue-700 border-blue-200`,[o.YELLOW]:`bg-yellow-100 text-yellow-700 border-yellow-200`,[o.GRAY]:`bg-gray-100 text-gray-700 border-gray-200`,[o.NONE]:`bg-gray-50 text-gray-600 border-gray-200`},s=(0,t.computed)(()=>`inline-flex items-center gap-1 font-semibold text-xs leading-none px-3 py-1.5 rounded-full border ${i.color&&a[i.color]||d}`);return(e,n)=>r.value?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:0,class:(0,t.normalizeClass)(s.value)},[(0,t.renderSlot)(e.$slots,`default`)],2)):(0,t.createCommentVNode)(``,!0)}}),p={class:`flex px-5 py-3 text-gray-700 border border-gray-200 rounded-lg bg-gray-50 dark:bg-gray-800 dark:border-gray-700`,"aria-label":`Breadcrumb`},m={class:`inline-flex items-center space-x-1 md:space-x-3`},h={class:`inline-flex items-center`,style:{"margin-left":`0`}},g=(0,t.defineComponent)({__name:`BaseBreadcrumb`,props:{items:{type:Array,required:!1,default:void 0},path:{type:String,required:!1,default:void 0}},setup(e){let i=e,a=(0,t.computed)(()=>{if(i.items&&i.items.length>0)return i.items;let e=(i.path??(typeof window<`u`?window.location.pathname:`/`)).split(`/`).filter(e=>e!==``),t=``;return e.map(e=>(t+=`/`+e,{name:Number.isNaN(Number(e))?(e.charAt(0).toUpperCase()+e.slice(1)).replaceAll(`-`,` `):e,url:t}))});return(e,i)=>{let o=(0,t.resolveComponent)(`router-link`);return(0,t.openBlock)(),(0,t.createElementBlock)(`nav`,p,[(0,t.createElementVNode)(`ol`,m,[(0,t.createElementVNode)(`li`,h,[(0,t.createVNode)(o,{to:`/`,class:`inline-flex items-center text-sm font-medium text-gray-700 hover:text-blue-600 dark:text-gray-400 dark:hover:text-white`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(r.HomeIcon),{class:`h-4 w-4 text-gray-500 mr-2`}),i[0]||=(0,t.createTextVNode)(` Home `,-1)]),_:1})]),((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(a.value,(e,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{key:r,class:`inline-flex items-center`,style:{"margin-left":`0`}},[(0,t.createVNode)((0,t.unref)(n.ChevronRightIcon),{class:`h-4 w-4 text-gray-500`}),(0,t.createVNode)(o,{to:e.url,class:`ml-1 text-sm font-medium text-gray-700 hover:text-blue-600 md:ml-2 dark:text-gray-400 dark:hover:text-white`},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.name),1)]),_:2},1032,[`to`])]))),128))])])}}}),_=function(e){return e.RED=`RED`,e.BLUE=`BLUE`,e.WHITE=`WHITE`,e.DARK=`DARK`,e.GREEN=`GREEN`,e.YELLOW=`YELLOW`,e.PURPLE=`PURPLE`,e}({}),v=function(e){return e.EXTRA_SMALL=`EXTRA_SMALL`,e.SMALL=`SMALL`,e.BASE=`BASE`,e.LARGE=`LARGE`,e.EXTRA_LARGE=`EXTRA_LARGE`,e}({}),y=[`type`,`disabled`,`onClick`],b={key:0,class:`inline-flex items-center`},ee={key:1},te={key:2},ne=[`type`,`disabled`],x={key:0,class:`inline-flex items-center`},S={key:1},C={key:2},w=(0,t.defineComponent)({__name:`BaseButton`,props:{description:{type:String,required:!0},color:{type:String,required:!1,default:_.BLUE},to:{type:String,required:!1},type:{type:String,required:!1,default:`button`},icon:{type:String,required:!1},iconSize:{type:String,required:!1},iconLeft:{type:Boolean,required:!1,default:!1},isRounded:{type:Boolean,required:!1},isDisable:{type:Boolean,required:!1},size:{type:String,required:!1},isLoading:{type:Boolean,required:!1}},setup(e){let n=e;function r(){let e=n.isDisable||n.isLoading,t;switch(n.color){case _.BLUE:t=e?`text-white bg-blue-400 cursor-not-allowed`:`focus:outline-none text-white bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:ring-blue-300`;break;case _.WHITE:t=e?`text-gray-900 bg-gray-200 border border-gray-200 cursor-not-allowed`:`focus:outline-none text-gray-900 bg-white border border-gray-200 hover:bg-gray-100 hover:text-blue-700 focus:z-10 focus:ring-4 focus:ring-gray-200`;break;case _.DARK:t=e?`text-white bg-gray-400 cursor-not-allowed`:`focus:outline-none text-white bg-gray-800 hover:bg-gray-900 focus:ring-4 focus:ring-gray-300`;break;case _.GREEN:t=e?`text-white bg-green-400 cursor-not-allowed`:`focus:outline-none text-white bg-green-700 hover:bg-green-800 focus:ring-4 focus:ring-green-300`;break;case _.RED:t=e?`text-white bg-red-400 cursor-not-allowed`:`focus:outline-none text-white bg-red-700 hover:bg-red-800 focus:ring-4 focus:ring-red-300`;break;case _.YELLOW:t=e?`text-white bg-yellow-300 cursor-not-allowed`:`focus:outline-none text-white bg-yellow-400 hover:bg-yellow-500 focus:ring-4 focus:ring-yellow-300`;break;case _.PURPLE:t=e?`text-white bg-purple-400 cursor-not-allowed`:`focus:outline-none text-white bg-purple-700 hover:bg-purple-800 focus:ring-4 focus:ring-purple-300 px-5 py-2.5 mb-2`;break;default:t=e?`text-white bg-blue-400 cursor-not-allowed`:`focus:outline-none text-white bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:ring-blue-300`;break}let r=`px-5 py-2.5 mr-2 mb-2 text-sm`;switch(n.size){case v.EXTRA_SMALL:r=`px-3 py-2 text-xs`;break;case v.SMALL:r=`px-3 py-2 text-sm`;break;case v.BASE:r=`px-5 py-2.5 text-sm`;break;case v.LARGE:r=`px-5 py-3 text-base`;break;case v.EXTRA_LARGE:r=`px-6 py-3.5 text-base`;break}let i=`rounded-lg`;return n.isRounded&&(i=`rounded-full`),`inline-flex items-center `+r+` `+t+` font-medium `+i}return(i,a)=>{let o=(0,t.resolveComponent)(`router-link`);return e.to?((0,t.openBlock)(),(0,t.createBlock)(o,{key:0,to:e.to,custom:``},{default:(0,t.withCtx)(({navigate:o})=>[(0,t.createElementVNode)(`button`,{type:n.type,class:(0,t.normalizeClass)(r()),disabled:e.isDisable||e.isLoading,onClick:o},[e.isLoading?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,b,[...a[0]||=[(0,t.createElementVNode)(`svg`,{"aria-hidden":`true`,role:`status`,class:`inline w-4 h-4 me-3 text-white animate-spin`,viewBox:`0 0 100 101`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},[(0,t.createElementVNode)(`path`,{d:`M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z`,fill:`#E5E7EB`}),(0,t.createElementVNode)(`path`,{d:`M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z`,fill:`currentColor`})],-1)]])):(0,t.createCommentVNode)(``,!0),e.iconLeft?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,ee,(0,t.toDisplayString)(e.description),1)),(0,t.renderSlot)(i.$slots,`default`),e.iconLeft?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,te,(0,t.toDisplayString)(e.description),1)):(0,t.createCommentVNode)(``,!0)],10,y)]),_:3},8,[`to`])):((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:1,type:n.type,class:(0,t.normalizeClass)(r()),disabled:e.isDisable||e.isLoading},[e.isLoading?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,x,[...a[1]||=[(0,t.createElementVNode)(`svg`,{"aria-hidden":`true`,role:`status`,class:`inline w-4 h-4 me-3 text-white animate-spin`,viewBox:`0 0 100 101`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},[(0,t.createElementVNode)(`path`,{d:`M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z`,fill:`#E5E7EB`}),(0,t.createElementVNode)(`path`,{d:`M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z`,fill:`currentColor`})],-1)]])):(0,t.createCommentVNode)(``,!0),e.iconLeft?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,S,(0,t.toDisplayString)(e.description),1)),(0,t.renderSlot)(i.$slots,`default`),e.iconLeft?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,C,(0,t.toDisplayString)(e.description),1)):(0,t.createCommentVNode)(``,!0)],10,ne))}}}),T=function(e){return e.BASE=`BASE`,e.BASE_SHORTER=`BASE_SHORTER`,e.SQUARE=`SQUARE`,e}({}),re={key:0,class:`h-px my-8 bg-gray-200 border-0 dark:bg-gray-700`},ie={key:1,class:`w-48 h-1 mx-auto my-4 bg-gray-100 border-0 rounded md:my-10 dark:bg-gray-700`},ae={key:2,class:`w-8 h-8 mx-auto my-8 bg-gray-200 border-0 rounded md:my-12 dark:bg-gray-700`},oe=(0,t.defineComponent)({__name:`BaseLine`,props:{mode:{type:String,required:!1,default:T.BASE}},setup(e){return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,[e.mode===(0,t.unref)(T).BASE?((0,t.openBlock)(),(0,t.createElementBlock)(`hr`,re)):(0,t.createCommentVNode)(``,!0),e.mode===(0,t.unref)(T).BASE_SHORTER?((0,t.openBlock)(),(0,t.createElementBlock)(`hr`,ie)):(0,t.createCommentVNode)(``,!0),e.mode===(0,t.unref)(T).SQUARE?((0,t.openBlock)(),(0,t.createElementBlock)(`hr`,ae)):(0,t.createCommentVNode)(``,!0)],64))}}),E=function(e){return e.SMALL=`SMALL`,e.MEDIUM=`MEDIUM`,e.LARGE=`LARGE`,e}({}),se=E,ce=[`height`,`width`],le=(0,t.defineComponent)({__name:`BaseLogo`,props:{size:{type:String,required:!1,default:E.MEDIUM}},setup(e){let n=e;function r(){let e=``;switch(n.size){case E.SMALL:e=`50px`;break;case E.MEDIUM:e=`100px`;break;case E.LARGE:e=`150px`;break}return e}return(e,n)=>{let i=(0,t.resolveComponent)(`router-link`);return(0,t.openBlock)(),(0,t.createBlock)(i,{to:`/`,class:`flex items-center mb-6 text-2xl font-semibold text-gray-900 dark:text-white`},{default:(0,t.withCtx)(()=>[((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,{height:r(),width:r(),viewBox:`33.6 130.6 499.7 242.9`,xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`},[...n[0]||=[(0,t.createElementVNode)(`linearGradient`,{id:`a`},[(0,t.createElementVNode)(`stop`,{offset:`.085`,"stop-color":`#469e43`}),(0,t.createElementVNode)(`stop`,{offset:`1`,"stop-color":`#132d13`})],-1),(0,t.createElementVNode)(`linearGradient`,{id:`b`,gradientUnits:`userSpaceOnUse`,x1:`64.863`,x2:`64.863`,"xlink:href":`#a`,y1:`288.291`,y2:`369.4`},null,-1),(0,t.createElementVNode)(`linearGradient`,{id:`c`,gradientUnits:`userSpaceOnUse`,x1:`138.367`,x2:`138.367`,"xlink:href":`#a`,y1:`308.454`,y2:`370.601`},null,-1),(0,t.createElementVNode)(`linearGradient`,{id:`d`,gradientUnits:`userSpaceOnUse`,x1:`195.475`,x2:`195.475`,"xlink:href":`#a`,y1:`288.291`,y2:`369.85`},null,-1),(0,t.createElementVNode)(`linearGradient`,{id:`e`,gradientUnits:`userSpaceOnUse`,x1:`249.634`,x2:`249.634`,"xlink:href":`#a`,y1:`307.312`,y2:`369.511`},null,-1),(0,t.createElementVNode)(`linearGradient`,{id:`f`,gradientUnits:`userSpaceOnUse`,x1:`302.884`,x2:`302.884`,"xlink:href":`#a`,y1:`288.291`,y2:`367.857`},null,-1),(0,t.createElementVNode)(`linearGradient`,{id:`g`,gradientUnits:`userSpaceOnUse`,x1:`354.118`,x2:`354.118`,"xlink:href":`#a`,y1:`307.312`,y2:`369.511`},null,-1),(0,t.createElementVNode)(`linearGradient`,{id:`h`,gradientUnits:`userSpaceOnUse`,x1:`428.02`,x2:`428.02`,"xlink:href":`#a`,y1:`306.156`,y2:`367.742`},null,-1),(0,t.createElementVNode)(`linearGradient`,{id:`i`,gradientUnits:`userSpaceOnUse`,x1:`502.066`,x2:`502.066`,"xlink:href":`#a`,y1:`288.291`,y2:`369.4`},null,-1),(0,t.createElementVNode)(`linearGradient`,{id:`j`,gradientUnits:`userSpaceOnUse`,x1:`283.264`,x2:`283.264`,"xlink:href":`#a`,y1:`131.629`,y2:`232.559`},null,-1),(0,t.createElementVNode)(`linearGradient`,{id:`k`,gradientUnits:`userSpaceOnUse`,x1:`283.46`,x2:`283.46`,y1:`202.275`,y2:`183.785`},[(0,t.createElementVNode)(`stop`,{offset:`0`,"stop-color":`#969799`,"stop-opacity":`0`}),(0,t.createElementVNode)(`stop`,{offset:`1`,"stop-color":`#808183`})],-1),(0,t.createElementVNode)(`path`,{d:`m65 307.2c-6.8 0-13.1 2.2-18.2 5.9v-24.8h-13.2v81.1h31.4c17.2 0 31.1-13.9 31.1-31.1s-13.9-31.1-31.1-31.1zm0 49.3h-18.2v-18.2c0-10.1 8.2-18.2 18.2-18.2 10.1 0 18.2 8.2 18.2 18.2.1 10.1-8.1 18.2-18.2 18.2z`,fill:`url(#b)`},null,-1),(0,t.createElementVNode)(`path`,{d:`m168.8 343.9h-46.7c1.4 7.1 6.6 12 14.1 12.7 6.4.6 12.9.1 19.9.1v11.9c-15.2 4.9-33.3.5-42.1-10.4-3.8-4.7-17.3-34.7 11.5-47.4 39-11.4 45.3 22.4 43.3 33.1zm-14.2-12.7c-1.7-8.1-8.8-12.9-17.9-12.3-7.6.5-14 5.8-14.5 12.3z`,fill:`url(#c)`},null,-1),(0,t.createElementVNode)(`path`,{d:`m195.5 320.2c0 10.5-.2 20 .1 29.6.2 5.8 4.4 8.4 13.2 8.6v10.5c-13.8 3.9-26.2-4.5-26.4-18-.2-18.7-.1-43.9-.1-62.6h14.1l-.3 18.5 12.7-.1v13.4h-13.3z`,fill:`url(#d)`},null,-1),(0,t.createElementVNode)(`path`,{d:`m249.6 307.3c-17.2 0-31.1 13.9-31.1 31.1s13.9 31.1 31.1 31.1h31.1v-31.1c0-17.2-13.9-31.1-31.1-31.1zm18.6 49.7h-18.5c-10.2 0-18.5-8.3-18.5-18.5s8.3-18.5 18.5-18.5 18.5 8.3 18.5 18.5z`,fill:`url(#e)`},null,-1),(0,t.createElementVNode)(`path`,{d:`m296.4 288.3h13v79.6h-13z`,fill:`url(#f)`},null,-1),(0,t.createElementVNode)(`path`,{d:`m354.1 307.3c-17.2 0-31.1 13.9-31.1 31.1s13.9 31.1 31.1 31.1h31.1v-31.1c0-17.2-13.9-31.1-31.1-31.1zm18.6 49.7h-18.5c-10.2 0-18.5-8.3-18.5-18.5s8.3-18.5 18.5-18.5 18.5 8.3 18.5 18.5z`,fill:`url(#g)`},null,-1),(0,t.createElementVNode)(`path`,{d:`m442.2 367.7c0-12.3.2-23.6 0-34.9-.2-3.4-3.6-13.8-14.1-13.4-10.3-.3-14.4 10-14.3 12.7.1 10.2.5 35.1.5 35.1l-13.6.1s-.3-25.7.2-36.2c.6-14.1 12.7-25 27.5-25 14.7 0 26.2 10.4 26.7 24.9.4 10.4.5 36.3.5 36.3z`,fill:`url(#h)`},null,-1),(0,t.createElementVNode)(`path`,{d:`m501.9 307.2c6.8 0 13.1 2.2 18.2 5.9v-24.8h13.2v81.1h-31.4c-17.2 0-31.1-13.9-31.1-31.1s13.9-31.1 31.1-31.1zm0 49.3h18.2v-18.2c0-10.1-8.2-18.2-18.2-18.2-10.1 0-18.2 8.2-18.2 18.2 0 10.1 8.1 18.2 18.2 18.2z`,fill:`url(#i)`},null,-1),(0,t.createElementVNode)(`path`,{d:`m309.2 180.6h-24v-24c0-12.6 10.2-24.1 22.8-25 14.8-1 27.1 11.3 26.1 26.1-.8 12.7-12.3 22.9-24.9 22.9zm-50.7-48.9c-14.8-1-27.1 11.3-26.1 26.1.8 12.6 12.4 22.8 25 22.8h23.9v-24c0-12.6-10.3-24.1-22.8-24.9zm50.7 51.9h-24v23.9c0 12.6 10.2 24.1 22.8 25 14.8 1 27.1-11.3 26.1-26.1-.8-12.6-12.3-22.8-24.9-22.8zm-52.4 0c-14 0-25.3 11.8-24.4 26 .8 12.2 10.7 22.1 22.9 22.9 14.2.9 26-10.4 26-24.4v-24.5z`,fill:`url(#j)`},null,-1),(0,t.createElementVNode)(`path`,{d:`m281.7 183.8h3.6v18.5h-3.6z`,fill:`url(#k)`},null,-1)]],8,ce))]),_:1})}}}),D=function(e){return e.DELETE=`DELETE`,e.SUCCESS=`SUCCESS`,e}({}),ue=[`aria-labelledby`],de={key:0,class:`p-6 text-center`},fe=[`id`],O={class:`flex justify-center`},k=(0,t.defineComponent)({__name:`BaseModal`,props:{title:{type:String,required:!0},description:{type:String,required:!1},to:{type:String,required:!1,default:`/`},mode:{type:String,required:!1,default:D.SUCCESS}},emits:[`closeModal`,`confirmModal`],setup(e,{emit:r}){let i=r;function a(e){e.key===`Escape`&&i(`closeModal`)}return(0,t.onMounted)(()=>{document.addEventListener(`keydown`,a)}),(0,t.onUnmounted)(()=>{document.removeEventListener(`keydown`,a)}),(r,i)=>{let a=(0,t.resolveComponent)(`base-button`);return(0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,[(0,t.createElementVNode)(`div`,{class:`outside`,onClick:i[0]||=e=>r.$emit(`closeModal`)}),(0,t.createElementVNode)(`div`,{class:`dialog relative top-20 mx-auto p-5 border w-96 shadow-lg rounded-md bg-white`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`modal-title-`+e.title},[e.mode===(0,t.unref)(D).DELETE?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,de,[(0,t.createVNode)((0,t.unref)(n.ExclamationCircleIcon),{class:`w-12 h-12 text-gray-400 mx-auto mb-4`}),(0,t.createElementVNode)(`h3`,{id:`modal-title-`+e.title,class:`mb-5 text-lg font-normal text-gray-500 dark:text-gray-400`},` Are you sure you want to delete this `+(0,t.toDisplayString)(e.title)+`? `,9,fe),(0,t.createElementVNode)(`div`,O,[(0,t.createVNode)(a,{color:(0,t.unref)(_).RED,onClick:i[1]||=e=>r.$emit(`confirmModal`),description:`Yes, I'm sure`},null,8,[`color`]),(0,t.createVNode)(a,{color:(0,t.unref)(_).WHITE,onClick:i[2]||=e=>r.$emit(`closeModal`),description:`No, cancel`},null,8,[`color`])])])):(0,t.createCommentVNode)(``,!0)],8,ue)],64)}}}),A=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},j=A(k,[[`__scopeId`,`data-v-1db4f0ac`]]),M=(0,t.defineComponent)({__name:`BaseRow`,props:{bgColor:{type:String,required:!1,default:`white`}},setup(e){let n=e;function r(){return`block p-8 border border-gray-200 rounded-xl shadow-sm dark:bg-gray-800 dark:border-gray-700 `+n.bgColor}return(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)(r())},[(0,t.renderSlot)(e.$slots,`default`)],2))}}),N={},P={class:`w-4 h-4 border-2 border-gray-200 border-t-blue-500 rounded-full animate-spin`};function F(e,n){return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,P)}var I=A(N,[[`render`,F]]),L=function(e){return e.SUCCESS=`SUCCESS`,e.WARNING=`WARNING`,e.ERROR=`ERROR`,e}({}),R=function(e){return e.TOP_LEFT=`TOP_LEFT`,e.TOP_RIGHT=`TOP_RIGHT`,e.BOTTOM_LEFT=`BOTTOM_LEFT`,e.BOTTOM_RIGHT=`BOTTOM_RIGHT`,e}({}),z={class:`flex items-center w-full max-w-md p-4 mb-4 text-gray-500 bg-white rounded-lg shadow dark:text-gray-400 dark:bg-gray-800`},B={class:`ml-3 text-sm font-normal`},V={key:3,type:`button`,class:`ml-auto -mx-1.5 -my-1.5 bg-white text-gray-400 hover:text-gray-900 rounded-lg focus:ring-2 focus:ring-gray-300 p-1.5 hover:bg-gray-100 inline-flex items-center justify-center h-8 w-8 dark:text-gray-500 dark:hover:text-white dark:bg-gray-800 dark:hover:bg-gray-700`,"data-dismiss-target":`#toast-danger`,"aria-label":`Close`},pe=(0,t.defineComponent)({__name:`BaseToast`,props:{mode:{type:Object,required:!0},description:{type:String,required:!0},hasCloseIcon:{type:Boolean,required:!1,default:!0},positioning:{type:String,required:!1,default:R.TOP_RIGHT},duration:{type:Number,required:!1,default:5e3}},setup(e){let r=e,i=(0,t.ref)(!0),a=null;function o(){i.value=!1,a&&=(clearTimeout(a),null)}(0,t.onMounted)(()=>{a=setTimeout(()=>i.value=!1,r.duration)}),(0,t.onUnmounted)(()=>{a&&clearTimeout(a)});function s(){let e=``;switch(r.mode){case L.ERROR:e=`text-red-500 bg-red-100 dark:bg-red-800 dark:text-red-200`;break;case L.SUCCESS:e=`text-green-500 bg-green-100 dark:bg-green-800 dark:text-green-200`;break;case L.WARNING:e=`text-orange-500 bg-orange-100 dark:bg-orange-700 dark:text-orange-200`;break;default:e=`text-gray-500 bg-gray-100 dark:bg-gray-800 dark:text-gray-200`;break}return`inline-flex items-center justify-center flex-shrink-0 w-8 h-8 rounded-lg `+e}function c(){let e=`top-5 right-5`;switch(r.positioning){case R.BOTTOM_LEFT:e=`bottom-5 left-5`;break;case R.TOP_LEFT:e=`top-5 left-5`;break;case R.TOP_RIGHT:e=`top-5 right-5`;break;case R.BOTTOM_RIGHT:e=`bottom-5 right-5`;break}return`fixed flex items-center w-full max-w-md p-4 space-x-4 divide-x rounded-lg `+e}return(r,a)=>i.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,id:`toast-top-right`,class:(0,t.normalizeClass)(c()),role:`alert`},[(0,t.createElementVNode)(`div`,z,[e.mode==(0,t.unref)(L).ERROR?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:(0,t.normalizeClass)(s())},[(0,t.createVNode)((0,t.unref)(n.ExclamationCircleIcon),{class:`h-6 w-6 text-red-500`}),a[0]||=(0,t.createElementVNode)(`span`,{class:`sr-only`},`Error icon`,-1)],2)):e.mode==(0,t.unref)(L).SUCCESS?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,class:(0,t.normalizeClass)(s())},[(0,t.createVNode)((0,t.unref)(n.CheckCircleIcon),{class:`h-6 w-6 text-green-500`}),a[1]||=(0,t.createElementVNode)(`span`,{class:`sr-only`},`Check icon`,-1)],2)):e.mode==(0,t.unref)(L).WARNING?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:2,class:(0,t.normalizeClass)(s())},[(0,t.createVNode)((0,t.unref)(n.ExclamationTriangleIcon),{class:`h-6 w-6 text-yellow-500`}),a[2]||=(0,t.createElementVNode)(`span`,{class:`sr-only`},`Warning icon`,-1)],2)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,B,(0,t.toDisplayString)(e.description),1),e.hasCloseIcon?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,V,[a[3]||=(0,t.createElementVNode)(`span`,{class:`sr-only`},`Close`,-1),(0,t.createVNode)((0,t.unref)(n.XMarkIcon),{class:`h-6 w-6 text-gray-500 cursor-pointer`,onClick:o})])):(0,t.createCommentVNode)(``,!0)])],2)):(0,t.createCommentVNode)(``,!0)}}),me={class:`w-13`},he=(0,t.defineComponent)({__name:`ColoredSquares`,props:{color:{type:String,required:!1}},setup(e){let n=e,r=[`bg-slate-300`,`bg-zinc-300`,`bg-neutral-300`,`bg-stone-300`,`bg-blue-300`,`bg-green-300`,`bg-yellow-300`,`bg-purple-300`,`bg-pink-300`],i=(0,t.ref)(r[Math.floor(Math.random()*r.length)]);function a(){let e=`gray`;switch(n.color){case o.GREEN:e=`green`;break;case o.RED:e=`red`;break;case o.BLUE:e=`blue`;break;case o.YELLOW:e=`yellow`;break;case o.NONE:e=``;break}return`font-bold bg-`+e+`-100 text-`+e+`-800 text-xs mr-2 px-2.5 py-0.5 rounded-full`}return(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,me,[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`border border-gray-300 relative aspect-square rounded-lg bg-white shadow-sm overflow-hidden flex items-center justify-center text-center`,a()])},[(0,t.renderSlot)(e.$slots,`default`),(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`absolute bottom-0 left-0 h-1 w-full`,i.value])},null,2)],2)]))}}),ge={class:`relative rounded-xl border-2 border-dashed border-orange-300 bg-white p-6`},_e={key:0,class:`absolute right-4 top-4 rounded-md bg-orange-100 px-3 py-1 text-xs font-bold tracking-wide text-orange-500`},ve={class:`flex items-start justify-between`},ye={class:`text-sm font-bold tracking-wide text-gray-800`},be={class:`mt-1 text-4xl font-bold text-gray-400`},xe={class:`mt-1 text-sm font-medium text-orange-400`},Se=(0,t.defineComponent)({__name:`EarningsCard`,props:{title:{default:`TOTAL EARNINGS`},amount:{default:0},subtitle:{default:`Lifetime commission`},badge:{default:``},currency:{default:`$`}},setup(e){let n=e,r=(0,t.computed)(()=>n.currency+n.amount.toLocaleString(`en-US`,{minimumFractionDigits:2,maximumFractionDigits:2}));return(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ge,[e.badge?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,_e,(0,t.toDisplayString)(e.badge),1)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,ve,[(0,t.createElementVNode)(`div`,null,[(0,t.createElementVNode)(`p`,ye,(0,t.toDisplayString)(e.title),1),(0,t.createElementVNode)(`p`,be,(0,t.toDisplayString)(r.value),1),(0,t.createElementVNode)(`p`,xe,(0,t.toDisplayString)(e.subtitle),1)]),i[0]||=(0,t.createElementVNode)(`div`,{class:`mt-6 flex h-12 w-12 items-center justify-center rounded-xl bg-orange-50`},[(0,t.createElementVNode)(`svg`,{class:`h-6 w-6 text-orange-400`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[(0,t.createElementVNode)(`polyline`,{points:`22 7 13.5 15.5 8.5 10.5 2 17`}),(0,t.createElementVNode)(`polyline`,{points:`16 7 22 7 22 13`})])],-1)])]))}}),Ce={key:0,class:`font-bold text-green-800`},we={key:0},Te={key:0},Ee=`font-bold`,De=(0,t.defineComponent)({__name:`EuroAmount`,props:{amount:{type:Number,required:!1},beforeAmount:{type:Number,default:null,required:!1},showCurrency:{type:Boolean,default:!0,required:!1}},setup(e){let n=e,r=(0,t.computed)(()=>n.amount!==null&&n.amount!==void 0),i=(0,t.computed)(()=>r.value&&n.amount<0),a=(0,t.computed)(()=>n.beforeAmount===null||n.beforeAmount===void 0?!1:n.amount<n.beforeAmount),o=(0,t.computed)(()=>i.value||a.value),s=(0,t.computed)(()=>!i.value&&!a.value&&!(n.beforeAmount===null||n.beforeAmount===void 0));return(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,[r.value&&s.value?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Ce,[(0,t.createTextVNode)((0,t.toDisplayString)(e.amount)+` `,1),e.showCurrency?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,we,`€`)):(0,t.createCommentVNode)(``,!0)])):(0,t.createCommentVNode)(``,!0),r.value&&!s.value?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:1,class:(0,t.normalizeClass)([Ee,o.value?`text-red-800`:`text-gray-800`])},[(0,t.createTextVNode)((0,t.toDisplayString)(e.amount)+` `,1),e.showCurrency?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Te,`€`)):(0,t.createCommentVNode)(``,!0)],2)):(0,t.createCommentVNode)(``,!0)],64))}}),Oe=[`onClick`,`onKeydown`],ke={key:1,style:{cursor:`not-allowed`}},Ae=A((0,t.defineComponent)({__name:`Pagination`,props:{totalItems:{type:Number,required:!0},itemsPerPage:{type:Number,default:20}},emits:[`page-changed`],setup(e,{emit:n}){let r=e,i=(0,t.ref)(1),a=(0,t.ref)(0),o=(0,t.ref)([]),s=n;function c(e){if(e!==i.value&&e>=1&&e<=a.value&&(i.value=e),a.value>5){o.value=[],e-3>0&&(o.value.push(1),o.value.push(0));for(let t=1;t<=2;t++){let n=e-t;n>0&&o.value.push(n)}o.value.length,o.value.push(i.value);let t=a.value-e;if(t>2){for(let t=1;t<=2;t++)o.value.push(e+t);o.value.push(0),o.value.push(a.value)}else for(let n=1;n<=t;n++)o.value.push(e+n)}s(`page-changed`,e)}return(0,t.watch)(()=>r.totalItems,()=>{if(a.value=Math.ceil(r.totalItems/r.itemsPerPage),o.value=[],a.value>5){for(let e=1;e<5;e++)o.value.push(e);o.value.push(0),o.value.push(a.value)}else for(let e=1;e<=a.value;e++)o.value.push(e)},{immediate:!0}),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,null,[(0,t.createElementVNode)(`ul`,null,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(o.value,(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{key:n},[e===0?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`a`,{key:0,role:`button`,tabindex:`0`,onClick:t=>c(e),onKeydown:(0,t.withKeys)(t=>c(e),[`enter`]),class:(0,t.normalizeClass)({active:e===i.value})},(0,t.toDisplayString)(e),43,Oe)),e===0?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,ke,`...`)):(0,t.createCommentVNode)(``,!0)]))),128))])]))}}),[[`__scopeId`,`data-v-d7ebb6ac`]]),je={key:0},Me={key:0,class:`flex items-center space-x-2`},Ne={key:1,class:`flex items-center space-x-2`},Pe=(0,t.defineComponent)({__name:`TrendArrow`,props:{number:{type:Number,required:!1},icon:{type:String,required:!1}},setup(e){let r=e,i=(0,t.computed)(()=>r.number!==null&&r.number!==void 0&&r.number<0);return(a,s)=>e.number!==null&&e.number!==void 0?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,je,[i.value?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Me,[(0,t.createVNode)(f,{color:(0,t.unref)(o).RED},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.number)+(0,t.toDisplayString)(r.icon),1)]),_:1},8,[`color`]),(0,t.createVNode)((0,t.unref)(n.ArrowDownIcon),{class:`h-5 w-5 text-red-500`})])):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Ne,[(0,t.createVNode)(f,{color:(0,t.unref)(o).GREEN},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.number)+(0,t.toDisplayString)(r.icon),1)]),_:1},8,[`color`]),(0,t.createVNode)((0,t.unref)(n.ArrowUpIcon),{class:`h-5 w-5 text-green-500`})]))])):(0,t.createCommentVNode)(``,!0)}}),H=(0,t.ref)(!1),U=!1,W=`mgv-theme`;function Fe(e){if(!U){if(U=!0,W=e,typeof window<`u`){let e=window.localStorage?.getItem(W);e?H.value=e===`dark`:typeof window.matchMedia==`function`&&(H.value=window.matchMedia(`(prefers-color-scheme: dark)`).matches)}typeof document<`u`&&(0,t.effectScope)(!0).run(()=>{(0,t.watch)(H,e=>{document.documentElement.classList.toggle(`dark`,e),window.localStorage?.setItem(W,e?`dark`:`light`)},{immediate:!0})})}}function G(e){Fe(e?.storageKey??W);function t(){H.value=!H.value}return{isDark:H,toggleTheme:t}}function K(){let{isDark:e}=G();return{card:(0,t.computed)(()=>e.value?`bg-gray-800 border-gray-700`:`bg-white border-gray-200`),cardAlt:(0,t.computed)(()=>e.value?`bg-gray-900 border-gray-700`:`bg-white border-gray-200`),pageBg:(0,t.computed)(()=>e.value?`bg-gray-900`:`bg-gray-50`),border:(0,t.computed)(()=>e.value?`border-gray-700`:`border-gray-200`),divider:(0,t.computed)(()=>e.value?`border-gray-800`:`border-gray-100`),primaryText:(0,t.computed)(()=>e.value?`text-white`:`text-gray-900`),primaryTextSoft:(0,t.computed)(()=>e.value?`text-gray-100`:`text-gray-800`),bodyText:(0,t.computed)(()=>e.value?`text-gray-200`:`text-gray-700`),label:(0,t.computed)(()=>e.value?`text-gray-300`:`text-gray-700`),mutedText:(0,t.computed)(()=>e.value?`text-gray-400`:`text-gray-600`),subtleText:(0,t.computed)(()=>e.value?`text-gray-500`:`text-gray-600`),dimText:(0,t.computed)(()=>e.value?`text-gray-500`:`text-gray-400`),dimTextAlt:(0,t.computed)(()=>e.value?`text-gray-400`:`text-gray-500`),illustration:(0,t.computed)(()=>e.value?`text-gray-600`:`text-gray-300`),input:(0,t.computed)(()=>e.value?`bg-gray-700 border-gray-600 text-white`:`bg-gray-50 border-gray-300 text-gray-900`),inputWithPlaceholder:(0,t.computed)(()=>e.value?`bg-gray-700 border-gray-600 text-white placeholder-gray-400`:`bg-gray-50 border-gray-300 text-gray-900 placeholder-gray-500`),ghostButton:(0,t.computed)(()=>e.value?`bg-gray-800 text-gray-200 border-gray-600 hover:bg-gray-700`:`bg-white text-gray-700 border-gray-300 hover:bg-gray-50`),emeraldText:(0,t.computed)(()=>e.value?`text-emerald-400`:`text-emerald-600`),amberText:(0,t.computed)(()=>e.value?`text-amber-400`:`text-amber-600`),amberTextStrong:(0,t.computed)(()=>e.value?`text-amber-300`:`text-amber-700`),redText:(0,t.computed)(()=>e.value?`text-red-400`:`text-red-500`)}}function q(e){function n(t){t.key===`Escape`&&e()}(0,t.onMounted)(()=>document.addEventListener(`keydown`,n)),(0,t.onBeforeUnmount)(()=>document.removeEventListener(`keydown`,n))}var Ie={class:`p-6`},Le={class:`flex items-start gap-4`},Re={class:`flex-1`},ze={class:`mt-4`},Be={class:`mt-6 flex gap-3 justify-end`},J=(0,t.defineComponent)({__name:`BaseModalShell`,props:{title:{},maxWidthClass:{default:`max-w-md`},manualClose:{type:Boolean,default:!1}},emits:[`cancel`,`backdrop`],setup(e,{emit:n}){let r=e,i=n,{isDark:a}=G(),o=K(),s=`modal-title-${Math.random().toString(36).slice(2,9)}`,c=(0,t.computed)(()=>a.value?`bg-gray-900 border border-gray-700`:`bg-white border border-gray-200`);function l(){i(`backdrop`),r.manualClose||i(`cancel`)}return q(()=>{r.manualClose||i(`cancel`)}),(n,r)=>((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[(0,t.createElementVNode)(`div`,{class:`fixed inset-0 z-50 flex items-center justify-center bg-black/50`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":s,onClick:l},[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`relative w-full mx-4 rounded-lg shadow-xl`,[e.maxWidthClass,c.value]]),onClick:r[0]||=(0,t.withModifiers)(()=>{},[`stop`])},[(0,t.createElementVNode)(`div`,Ie,[(0,t.createElementVNode)(`div`,Le,[(0,t.renderSlot)(n.$slots,`icon`),(0,t.createElementVNode)(`div`,Re,[(0,t.createElementVNode)(`h3`,{id:s,class:(0,t.normalizeClass)([`text-lg font-medium`,(0,t.unref)(o).primaryText])},(0,t.toDisplayString)(e.title),3)])]),(0,t.createElementVNode)(`div`,ze,[(0,t.renderSlot)(n.$slots,`default`)]),(0,t.createElementVNode)(`div`,Be,[(0,t.renderSlot)(n.$slots,`footer`)])])],2)])]))}}),Ve=[`aria-expanded`],He={class:`flex items-center gap-3`},Ue=(0,t.defineComponent)({__name:`BaseCollapsibleSection`,props:{title:{},collapsed:{type:Boolean},badge:{},bodyClass:{}},emits:[`toggle`],setup(e,{emit:n}){let r=e,i=n,{isDark:a}=G(),o=K(),s=(0,t.computed)(()=>a.value?`text-gray-100`:`text-gray-700`),c=(0,t.computed)(()=>a.value?`bg-gray-800/50 hover:bg-gray-800 border-gray-700`:`bg-gray-50 hover:bg-gray-100 border-gray-200`),l=(0,t.computed)(()=>a.value?`bg-emerald-500/15 text-emerald-400`:`bg-emerald-50 text-emerald-700`),u=(0,t.computed)(()=>r.bodyClass===void 0?a.value?`bg-gray-800`:`bg-white`:r.bodyClass);return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`section`,{class:(0,t.normalizeClass)([`rounded-xl border overflow-hidden transition-colors`,(0,t.unref)(o).cardAlt])},[(0,t.createElementVNode)(`button`,{type:`button`,class:(0,t.normalizeClass)([`w-full flex items-center justify-between p-4 text-left transition-colors`,c.value]),"aria-expanded":!e.collapsed,onClick:r[0]||=e=>i(`toggle`)},[(0,t.createElementVNode)(`div`,He,[(0,t.createElementVNode)(`h2`,{class:(0,t.normalizeClass)([`text-base font-semibold`,s.value])},(0,t.toDisplayString)(e.title),3),e.badge?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:0,class:(0,t.normalizeClass)([`text-xs px-2 py-0.5 rounded-full`,l.value])},(0,t.toDisplayString)(e.badge),3)):(0,t.createCommentVNode)(``,!0)]),((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,{class:(0,t.normalizeClass)([`w-5 h-5 transition-transform`,[e.collapsed?``:`rotate-180`,(0,t.unref)(o).dimTextAlt]]),fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,"stroke-width":`2`,"aria-hidden":`true`},[...r[1]||=[(0,t.createElementVNode)(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,d:`M19 9l-7 7-7-7`},null,-1)]],2))],10,Ve),(0,t.withDirectives)((0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`p-6 border-t`,[(0,t.unref)(o).border,u.value]])},[(0,t.renderSlot)(n.$slots,`default`)],2),[[t.vShow,!e.collapsed]])],2))}}),We=[`disabled`],Ge=[`disabled`],Ke={key:0,class:`w-4 h-4 animate-spin`,fill:`none`,viewBox:`0 0 24 24`,"aria-hidden":`true`},qe=(0,t.defineComponent)({__name:`BaseConfirmModal`,props:{title:{},message:{},confirmText:{default:`Yes, I'm sure`},cancelText:{default:`No, cancel`},submittingText:{default:`Working...`},variant:{default:`danger`},submitting:{type:Boolean,default:!1}},emits:[`confirm`,`cancel`],setup(e,{emit:r}){let i=e,a=r,{isDark:o}=G(),s=K();function c(){i.submitting||a(`confirm`)}function l(){i.submitting||a(`cancel`)}return(r,i)=>((0,t.openBlock)(),(0,t.createBlock)(J,{title:e.title,"manual-close":e.submitting,onCancel:l},{icon:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`flex-shrink-0 flex h-12 w-12 items-center justify-center rounded-full`,[e.variant===`danger`?(0,t.unref)(o)?`bg-red-900/30`:`bg-red-50`:(0,t.unref)(o)?`bg-amber-900/30`:`bg-amber-50`]])},[(0,t.createVNode)((0,t.unref)(n.ExclamationTriangleIcon),{class:(0,t.normalizeClass)([`h-6 w-6`,e.variant===`danger`?`text-red-600`:`text-amber-600`]),"aria-hidden":`true`},null,8,[`class`])],2)]),footer:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`button`,{type:`button`,disabled:e.submitting,class:(0,t.normalizeClass)([`inline-flex items-center justify-center px-4 py-2 border rounded-md shadow-sm text-sm font-medium transition-colors duration-150`,[(0,t.unref)(s).ghostButton,e.submitting?`opacity-60 cursor-not-allowed`:`cursor-pointer`]]),onClick:l},(0,t.toDisplayString)(e.cancelText),11,We),(0,t.createElementVNode)(`button`,{type:`button`,disabled:e.submitting,class:(0,t.normalizeClass)([`inline-flex items-center justify-center gap-2 px-4 py-2 border border-transparent rounded-md shadow-sm text-sm font-medium text-white transition-colors duration-150`,[e.variant===`danger`?e.submitting?`bg-red-400 cursor-not-allowed`:`bg-red-600 hover:bg-red-700 cursor-pointer`:e.submitting?`bg-emerald-400 cursor-not-allowed`:`bg-emerald-600 hover:bg-emerald-700 cursor-pointer`]]),onClick:c},[e.submitting?((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,Ke,[...i[0]||=[(0,t.createElementVNode)(`circle`,{class:`opacity-25`,cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,"stroke-width":`4`},null,-1),(0,t.createElementVNode)(`path`,{class:`opacity-75`,fill:`currentColor`,d:`M4 12a8 8 0 018-8v4a4 4 0 00-4 4H4z`},null,-1)]])):(0,t.createCommentVNode)(``,!0),(0,t.createTextVNode)(` `+(0,t.toDisplayString)(e.submitting?e.submittingText:e.confirmText),1)],10,Ge)]),default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`p`,{class:(0,t.normalizeClass)([`text-sm`,(0,t.unref)(o)?`text-gray-300`:`text-gray-600`])},(0,t.toDisplayString)(e.message),3)]),_:1},8,[`title`,`manual-close`]))}}),Je={class:`mt-4`},Ye=[`placeholder`],Xe=[`disabled`],Ze=(0,t.defineComponent)({__name:`BaseTextInputModal`,props:{title:{},message:{},initialValue:{default:``},placeholder:{default:`Enter value...`},inputLabel:{default:`Name`},confirmText:{default:`Confirm`},cancelText:{default:`Cancel`},submittingText:{default:`Working...`},submitting:{type:Boolean,default:!1}},emits:[`confirm`,`cancel`],setup(e,{emit:r}){let i=e,a=r,{isDark:o}=G(),s=K(),c=(0,t.ref)(i.initialValue),l=(0,t.ref)(null);(0,t.onMounted)(async()=>{await(0,t.nextTick)(),l.value?.focus()});function u(){!c.value.trim()||i.submitting||a(`confirm`,c.value.trim())}function d(){a(`cancel`)}function f(){c.value.trim()===(i.initialValue??``).trim()&&d()}return q(d),(r,i)=>((0,t.openBlock)(),(0,t.createBlock)(J,{title:e.title,"manual-close":``,onBackdrop:f},{icon:(0,t.withCtx)(()=>[(0,t.renderSlot)(r.$slots,`icon`,{},()=>[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`flex-shrink-0 flex h-12 w-12 items-center justify-center rounded-full`,(0,t.unref)(o)?`bg-emerald-900/30`:`bg-emerald-50`])},[(0,t.createVNode)((0,t.unref)(n.DocumentDuplicateIcon),{class:`h-6 w-6 text-emerald-600`,"aria-hidden":`true`})],2)])]),footer:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`button`,{type:`button`,class:(0,t.normalizeClass)([`inline-flex items-center justify-center px-4 py-2 border rounded-md shadow-sm text-sm font-medium transition-colors duration-150`,(0,t.unref)(s).ghostButton]),onClick:d},(0,t.toDisplayString)(e.cancelText),3),(0,t.createElementVNode)(`button`,{type:`button`,disabled:!c.value.trim()||e.submitting,class:(0,t.normalizeClass)([`inline-flex items-center justify-center px-4 py-2 border border-transparent rounded-md shadow-sm text-sm font-medium text-white transition-colors duration-150`,[!c.value.trim()||e.submitting?`bg-emerald-400 cursor-not-allowed`:`bg-emerald-600 hover:bg-emerald-700 cursor-pointer`]]),onClick:u},(0,t.toDisplayString)(e.submitting?e.submittingText:e.confirmText),11,Xe)]),default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`p`,{class:(0,t.normalizeClass)([`text-sm`,(0,t.unref)(o)?`text-gray-300`:`text-gray-600`])},(0,t.toDisplayString)(e.message),3),(0,t.createElementVNode)(`div`,Je,[(0,t.createElementVNode)(`label`,{class:(0,t.normalizeClass)([`block text-sm font-medium mb-1`,(0,t.unref)(s).label])},(0,t.toDisplayString)(e.inputLabel),3),(0,t.withDirectives)((0,t.createElementVNode)(`input`,{ref_key:`nameInput`,ref:l,"onUpdate:modelValue":i[0]||=e=>c.value=e,type:`text`,placeholder:e.placeholder,class:(0,t.normalizeClass)([`w-full px-3 py-2 rounded-md border text-sm transition-colors`,(0,t.unref)(o)?`bg-gray-800 border-gray-600 text-gray-100 placeholder-gray-500 focus:outline-none focus:border-emerald-500`:`bg-white border-gray-300 text-gray-900 placeholder-gray-400 focus:outline-none focus:border-emerald-500`]),onKeyup:(0,t.withKeys)(u,[`enter`])},null,42,Ye),[[t.vModelText,c.value]])])]),_:3},8,[`title`]))}}),Qe={class:`flex items-center justify-center min-h-[60vh]`},$e={class:`text-center px-6`},et=(0,t.defineComponent)({__name:`BaseNotFoundPage`,props:{code:{default:`404`},message:{default:`Page not found`},homeRouteName:{default:`home`},homeLabel:{default:`Go home`}},setup(e){let r=e,a=(0,i.useRouter)(),{isDark:o}=G(),s=K();function c(){a.push({name:r.homeRouteName})}return(r,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Qe,[(0,t.createElementVNode)(`div`,$e,[(0,t.createVNode)((0,t.unref)(n.ExclamationTriangleIcon),{class:(0,t.normalizeClass)([`w-16 h-16 mx-auto mb-4`,(0,t.unref)(s).illustration])},null,8,[`class`]),(0,t.createElementVNode)(`h1`,{class:(0,t.normalizeClass)([`text-4xl font-bold mb-2`,(0,t.unref)(o)?`text-gray-200`:`text-gray-800`])},(0,t.toDisplayString)(e.code),3),(0,t.createElementVNode)(`p`,{class:(0,t.normalizeClass)([`text-lg mb-6`,(0,t.unref)(s).dimTextAlt])},(0,t.toDisplayString)(e.message),3),(0,t.createElementVNode)(`button`,{onClick:c,class:(0,t.normalizeClass)([`inline-flex items-center gap-2 px-4 py-2 rounded-lg text-sm font-medium text-white transition-colors cursor-pointer`,(0,t.unref)(o)?`bg-emerald-600 hover:bg-emerald-500`:`bg-emerald-600 hover:bg-emerald-700`])},(0,t.toDisplayString)(e.homeLabel),3)])]))}}),Y=(0,t.ref)(!1);function X(){function e(){Y.value=!0}function t(){Y.value=!1}function n(){Y.value=!Y.value}return{mobileOpen:Y,open:e,close:t,toggle:n}}var tt=[`aria-label`,`aria-expanded`],nt={class:`flex flex-col h-full`},rt={class:`px-5 pt-5 pb-4 flex items-center justify-center relative`},it={class:`flex-1 overflow-y-auto px-3 space-y-6`},at={class:`px-2 mb-2 text-[10px] font-semibold uppercase tracking-wider text-gray-500`},ot={class:`space-y-0.5`},st=[`aria-current`,`onClick`],ct=[`title`,`aria-label`,`aria-pressed`],lt=A((0,t.defineComponent)({__name:`BaseSidebar`,props:{sections:{},homeRouteName:{default:`home`},appName:{default:``},version:{default:``},showThemeToggle:{type:Boolean,default:!0}},setup(e){let r=e,a=(0,i.useRouter)(),o=(0,i.useRoute)(),{isDark:s,toggleTheme:c}=G(),{mobileOpen:l,close:u,toggle:d}=X(),f=(0,t.ref)(null),p=null;(0,t.watch)(l,async e=>{e?(p=document.activeElement instanceof HTMLElement?document.activeElement:null,await(0,t.nextTick)(),f.value?.focus()):(p?.focus(),p=null)}),(0,t.onMounted)(()=>{}),(0,t.onUnmounted)(()=>{});function m(){a.push({name:r.homeRouteName}),u()}function h(e){return o.name===e}function g(e){a.push({name:e}),u()}return(r,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,null,[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`mobile-topbar fixed top-0 inset-x-0 z-30 flex items-center justify-between px-4 py-3 border-b transition-colors`,(0,t.unref)(s)?`bg-gray-900 border-gray-800`:`bg-white border-gray-200`])},[(0,t.createElementVNode)(`button`,{type:`button`,onClick:m,class:`cursor-pointer`,"aria-label":`Go to home`},[(0,t.renderSlot)(r.$slots,`logo`,{size:28},void 0,!0)]),(0,t.createElementVNode)(`button`,{type:`button`,onClick:i[0]||=(...e)=>(0,t.unref)(d)&&(0,t.unref)(d)(...e),class:(0,t.normalizeClass)([`p-2 rounded-lg cursor-pointer`,(0,t.unref)(s)?`text-gray-400 hover:bg-gray-800`:`text-gray-600 hover:bg-gray-100`]),"aria-label":(0,t.unref)(l)?`Close navigation menu`:`Open navigation menu`,"aria-expanded":(0,t.unref)(l)},[(0,t.unref)(l)?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(n.XMarkIcon),{key:1,class:`w-6 h-6`,"aria-hidden":`true`})):((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(n.Bars3Icon),{key:0,class:`w-6 h-6`,"aria-hidden":`true`}))],10,tt)],2),(0,t.unref)(l)?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:`mobile-overlay fixed inset-0 z-40 bg-black/50`,"aria-hidden":`true`,onClick:i[1]||=(...e)=>(0,t.unref)(u)&&(0,t.unref)(u)(...e)})):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`aside`,{role:`navigation`,"aria-label":`Main navigation`,class:(0,t.normalizeClass)([`fixed top-0 left-0 h-screen w-60 flex flex-col border-r transition-transform duration-300 lg:pointer-events-auto`,[(0,t.unref)(s)?`bg-gray-900 border-gray-800`:`bg-white border-gray-200`,(0,t.unref)(l)?`translate-x-0 z-50`:`-translate-x-full max-lg:pointer-events-none lg:translate-x-0 z-50`]])},[(0,t.createElementVNode)(`div`,nt,[(0,t.createElementVNode)(`div`,rt,[(0,t.createElementVNode)(`button`,{type:`button`,onClick:m,class:`cursor-pointer`,"aria-label":`Go to home`},[(0,t.renderSlot)(r.$slots,`logo`,{size:52},void 0,!0)]),(0,t.createElementVNode)(`button`,{ref_key:`closeMobileButton`,ref:f,type:`button`,onClick:i[2]||=(...e)=>(0,t.unref)(u)&&(0,t.unref)(u)(...e),class:(0,t.normalizeClass)([`lg:hidden p-1.5 rounded-lg cursor-pointer absolute right-3 top-4 focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500`,(0,t.unref)(s)?`text-gray-400 hover:bg-gray-800`:`text-gray-500 hover:bg-gray-100`]),"aria-label":`Close navigation menu`},[(0,t.createVNode)((0,t.unref)(n.XMarkIcon),{class:`w-5 h-5`,"aria-hidden":`true`})],2)]),(0,t.createElementVNode)(`nav`,it,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.sections,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:e.title},[(0,t.createElementVNode)(`p`,at,(0,t.toDisplayString)(e.title),1),(0,t.createElementVNode)(`ul`,ot,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.items,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{key:e.name},[(0,t.createElementVNode)(`button`,{type:`button`,"aria-current":h(e.name)?`page`:void 0,onClick:t=>g(e.name),class:(0,t.normalizeClass)([`flex items-center gap-3 px-3 py-2.5 rounded-lg text-sm font-medium transition-colors w-full text-left cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500`,h(e.name)?(0,t.unref)(s)?`bg-emerald-500/15 text-emerald-300`:`bg-emerald-50 text-emerald-700`:(0,t.unref)(s)?`text-gray-400 hover:text-gray-100 hover:bg-gray-800`:`text-gray-600 hover:text-gray-900 hover:bg-gray-100`])},[((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.icon),{class:`w-[18px] h-[18px] shrink-0`})),(0,t.createTextVNode)(` `+(0,t.toDisplayString)(e.label),1)],10,st)]))),128))])]))),128))]),(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`px-4 py-4 border-t transition-colors space-y-3`,(0,t.unref)(s)?`border-gray-800`:`border-gray-200`])},[e.showThemeToggle?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:0,type:`button`,onClick:i[3]||=(...e)=>(0,t.unref)(c)&&(0,t.unref)(c)(...e),title:(0,t.unref)(s)?`Switch to light mode`:`Switch to dark mode`,"aria-label":(0,t.unref)(s)?`Switch to light mode`:`Switch to dark mode`,"aria-pressed":(0,t.unref)(s),class:(0,t.normalizeClass)([`flex items-center gap-3 w-full px-3 py-2.5 rounded-lg text-sm font-medium transition-colors cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500`,(0,t.unref)(s)?`text-gray-400 hover:text-gray-100 hover:bg-gray-800`:`text-gray-600 hover:text-gray-900 hover:bg-gray-100`])},[(0,t.createTextVNode)((0,t.toDisplayString)((0,t.unref)(s)?`Switch to light`:`Switch to dark`)+` `,1),(0,t.createElementVNode)(`span`,{class:(0,t.normalizeClass)([`ml-auto relative w-9 h-5 rounded-full transition-colors`,(0,t.unref)(s)?`bg-emerald-600`:`bg-gray-300`])},[(0,t.createElementVNode)(`span`,{class:(0,t.normalizeClass)([`absolute top-0.5 left-0.5 w-4 h-4 rounded-full bg-white shadow-sm transition-transform duration-300`,(0,t.unref)(s)?`translate-x-4`:`translate-x-0`])},null,2)],2)],10,ct)):(0,t.createCommentVNode)(``,!0),(0,t.renderSlot)(r.$slots,`status`,{},void 0,!0),(0,t.renderSlot)(r.$slots,`footer`,{},()=>[e.appName||e.version?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:(0,t.normalizeClass)([`flex items-center justify-center gap-2 text-xs`,((0,t.unref)(s),`text-gray-500`)])},[(0,t.createElementVNode)(`span`,null,[(0,t.createTextVNode)((0,t.toDisplayString)(e.appName),1),e.appName&&e.version?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:0},[],64)):(0,t.createCommentVNode)(``,!0),e.version?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},[(0,t.createTextVNode)(`v`+(0,t.toDisplayString)(e.version),1)],64)):(0,t.createCommentVNode)(``,!0)])],2)):(0,t.createCommentVNode)(``,!0)],!0)],2)])],2)]))}}),[[`__scopeId`,`data-v-e27f267e`]]),ut={key:1,class:`mt-4 flex justify-center py-6`},dt={key:2,class:`mt-4 text-sm text-red-500`,role:`alert`},ft={key:3,class:`mt-4`},pt={class:`relative`},mt=[`placeholder`],ht={key:4,class:`mt-3 max-h-64 overflow-y-auto`},gt=[`onClick`],_t={class:`flex-1 min-w-0`},vt={key:0,class:`text-center py-6`},yt={key:1,class:`text-center py-6`},bt=[`disabled`],xt=[`disabled`],St=(0,t.defineComponent)({__name:`BaseEntityPickerModal`,props:{title:{},message:{},items:{default:()=>[]},loader:{},excludeId:{},variant:{default:`emerald`},searchPlaceholder:{default:`Search...`},emptyMessage:{default:`No items available.`},noMatchMessage:{default:`No items match your search.`},confirmText:{default:`Select`},cancelText:{default:`Cancel`},submittingText:{default:`Working...`},submitting:{type:Boolean,default:!1}},emits:[`confirm`,`cancel`],setup(e,{emit:r}){let i=e,a=r,{isDark:o}=G(),s=K(),c=(0,t.ref)([]),l=(0,t.ref)(!1),u=(0,t.ref)(``),d=(0,t.ref)(null),f=(0,t.ref)(``),p=(0,t.ref)(null),m=(0,t.computed)(()=>{let e=i.loader?c.value:i.items;return i.excludeId?e.filter(e=>e.id!==i.excludeId):e}),h=(0,t.computed)(()=>m.value.filter(e=>e.label.toLowerCase().includes(f.value.toLowerCase()))),g={emerald:{iconBg:`bg-emerald-50`,iconText:`text-emerald-600`,inputFocus:`focus:border-emerald-500`,selectedRow:`bg-emerald-50 border border-emerald-200`,checkBg:`bg-emerald-600`,confirmActive:`bg-emerald-600 hover:bg-emerald-700 cursor-pointer`,confirmDisabled:`bg-emerald-400 cursor-not-allowed`},purple:{iconBg:`bg-purple-50`,iconText:`text-purple-600`,inputFocus:`focus:border-purple-500`,selectedRow:`bg-purple-50 border border-purple-200`,checkBg:`bg-purple-600`,confirmActive:`bg-purple-600 hover:bg-purple-700 cursor-pointer`,confirmDisabled:`bg-purple-400 cursor-not-allowed`},blue:{iconBg:`bg-blue-50`,iconText:`text-blue-600`,inputFocus:`focus:border-blue-500`,selectedRow:`bg-blue-50 border border-blue-200`,checkBg:`bg-blue-600`,confirmActive:`bg-blue-600 hover:bg-blue-700 cursor-pointer`,confirmDisabled:`bg-blue-400 cursor-not-allowed`},red:{iconBg:`bg-red-50`,iconText:`text-red-600`,inputFocus:`focus:border-red-500`,selectedRow:`bg-red-50 border border-red-200`,checkBg:`bg-red-600`,confirmActive:`bg-red-600 hover:bg-red-700 cursor-pointer`,confirmDisabled:`bg-red-400 cursor-not-allowed`},amber:{iconBg:`bg-amber-50`,iconText:`text-amber-600`,inputFocus:`focus:border-amber-500`,selectedRow:`bg-amber-50 border border-amber-200`,checkBg:`bg-amber-600`,confirmActive:`bg-amber-600 hover:bg-amber-700 cursor-pointer`,confirmDisabled:`bg-amber-400 cursor-not-allowed`}},_={emerald:{iconBg:`bg-emerald-900/30`,iconText:`text-emerald-400`,inputFocus:`focus:border-emerald-500`,selectedRow:`bg-emerald-500/15 border border-emerald-500/30`,checkBg:`bg-emerald-600`,confirmActive:`bg-emerald-600 hover:bg-emerald-700 cursor-pointer`,confirmDisabled:`bg-emerald-400 cursor-not-allowed`},purple:{iconBg:`bg-purple-900/30`,iconText:`text-purple-400`,inputFocus:`focus:border-purple-500`,selectedRow:`bg-purple-500/15 border border-purple-500/30`,checkBg:`bg-purple-600`,confirmActive:`bg-purple-600 hover:bg-purple-700 cursor-pointer`,confirmDisabled:`bg-purple-400 cursor-not-allowed`},blue:{iconBg:`bg-blue-900/30`,iconText:`text-blue-400`,inputFocus:`focus:border-blue-500`,selectedRow:`bg-blue-500/15 border border-blue-500/30`,checkBg:`bg-blue-600`,confirmActive:`bg-blue-600 hover:bg-blue-700 cursor-pointer`,confirmDisabled:`bg-blue-400 cursor-not-allowed`},red:{iconBg:`bg-red-900/30`,iconText:`text-red-400`,inputFocus:`focus:border-red-500`,selectedRow:`bg-red-500/15 border border-red-500/30`,checkBg:`bg-red-600`,confirmActive:`bg-red-600 hover:bg-red-700 cursor-pointer`,confirmDisabled:`bg-red-400 cursor-not-allowed`},amber:{iconBg:`bg-amber-900/30`,iconText:`text-amber-400`,inputFocus:`focus:border-amber-500`,selectedRow:`bg-amber-500/15 border border-amber-500/30`,checkBg:`bg-amber-600`,confirmActive:`bg-amber-600 hover:bg-amber-700 cursor-pointer`,confirmDisabled:`bg-amber-400 cursor-not-allowed`}},v=(0,t.computed)(()=>(o.value?_:g)[i.variant]);(0,t.onMounted)(async()=>{if(i.loader){l.value=!0;try{c.value=await i.loader()}catch{u.value=`Failed to load items`}finally{l.value=!1}}await(0,t.nextTick)(),p.value?.focus()});function y(){!d.value||i.submitting||a(`confirm`,d.value)}function b(){i.submitting||a(`cancel`)}return(r,i)=>((0,t.openBlock)(),(0,t.createBlock)(J,{title:e.title,"manual-close":e.submitting,onCancel:b},{icon:(0,t.withCtx)(()=>[(0,t.renderSlot)(r.$slots,`icon`,{},()=>[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`flex-shrink-0 flex h-12 w-12 items-center justify-center rounded-full`,v.value.iconBg])},[(0,t.createVNode)((0,t.unref)(n.FolderIcon),{class:(0,t.normalizeClass)([`h-6 w-6`,v.value.iconText]),"aria-hidden":`true`},null,8,[`class`])],2)])]),footer:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`button`,{type:`button`,disabled:e.submitting,class:(0,t.normalizeClass)([`inline-flex items-center justify-center px-4 py-2 border rounded-md shadow-sm text-sm font-medium transition-colors duration-150 disabled:opacity-50 disabled:cursor-not-allowed`,(0,t.unref)(s).ghostButton]),onClick:b},(0,t.toDisplayString)(e.cancelText),11,bt),(0,t.createElementVNode)(`button`,{type:`button`,disabled:!d.value||e.submitting,class:(0,t.normalizeClass)([`inline-flex items-center justify-center px-4 py-2 border border-transparent rounded-md shadow-sm text-sm font-medium text-white transition-colors duration-150`,!d.value||e.submitting?v.value.confirmDisabled:v.value.confirmActive]),onClick:y},(0,t.toDisplayString)(e.submitting?e.submittingText:e.confirmText),11,xt)]),default:(0,t.withCtx)(()=>[e.message?((0,t.openBlock)(),(0,t.createElementBlock)(`p`,{key:0,class:(0,t.normalizeClass)([`text-sm`,(0,t.unref)(o)?`text-gray-300`:`text-gray-600`])},(0,t.toDisplayString)(e.message),3)):(0,t.createCommentVNode)(``,!0),l.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ut,[(0,t.createVNode)(I)])):u.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,dt,(0,t.toDisplayString)(u.value),1)):(0,t.createCommentVNode)(``,!0),!l.value&&!u.value&&m.value.length>0?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ft,[(0,t.createElementVNode)(`div`,pt,[(0,t.createVNode)((0,t.unref)(n.MagnifyingGlassIcon),{class:(0,t.normalizeClass)([`absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4`,(0,t.unref)(s).dimText]),"aria-hidden":`true`},null,8,[`class`]),(0,t.withDirectives)((0,t.createElementVNode)(`input`,{ref_key:`searchInputRef`,ref:p,"onUpdate:modelValue":i[0]||=e=>f.value=e,type:`text`,placeholder:e.searchPlaceholder,class:(0,t.normalizeClass)([`w-full pl-9 pr-3 py-2 text-sm rounded-md border outline-none transition-colors`,[(0,t.unref)(o)?`bg-gray-800 border-gray-600 text-gray-200 placeholder-gray-500`:`bg-white border-gray-300 text-gray-700 placeholder-gray-400`,v.value.inputFocus]])},null,10,mt),[[t.vModelText,f.value]])])])):(0,t.createCommentVNode)(``,!0),!l.value&&!u.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ht,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(h.value,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:e.id,class:(0,t.normalizeClass)([`flex items-center gap-3 px-3 py-2.5 rounded-lg cursor-pointer transition-colors`,[d.value===e.id?v.value.selectedRow:(0,t.unref)(o)?`hover:bg-gray-800 border border-transparent`:`hover:bg-gray-50 border border-transparent`]]),onClick:t=>d.value=e.id},[(0,t.createVNode)((0,t.unref)(n.FolderIcon),{class:(0,t.normalizeClass)([`w-5 h-5 flex-shrink-0`,(0,t.unref)(s).dimText])},null,8,[`class`]),(0,t.createElementVNode)(`div`,_t,[(0,t.createElementVNode)(`p`,{class:(0,t.normalizeClass)([`text-sm font-medium truncate`,(0,t.unref)(s).bodyText])},(0,t.toDisplayString)(e.label),3)]),d.value===e.id?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:(0,t.normalizeClass)([`w-5 h-5 rounded-full flex items-center justify-center`,v.value.checkBg])},[...i[1]||=[(0,t.createElementVNode)(`svg`,{class:`w-3 h-3 text-white`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,"stroke-width":`3`,"aria-hidden":`true`},[(0,t.createElementVNode)(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,d:`M5 13l4 4L19 7`})],-1)]],2)):(0,t.createCommentVNode)(``,!0)],10,gt))),128)),m.value.length===0?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,vt,[(0,t.createElementVNode)(`p`,{class:(0,t.normalizeClass)([`text-sm`,(0,t.unref)(s).dimText])},(0,t.toDisplayString)(e.emptyMessage),3)])):h.value.length===0?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,yt,[(0,t.createElementVNode)(`p`,{class:(0,t.normalizeClass)([`text-sm`,(0,t.unref)(s).dimText])},(0,t.toDisplayString)(e.noMatchMessage),3)])):(0,t.createCommentVNode)(``,!0)])):(0,t.createCommentVNode)(``,!0)]),_:3},8,[`title`,`manual-close`]))}}),Ct={href:`#main-content`,class:`sr-only focus:not-sr-only focus:fixed focus:top-2 focus:left-2 focus:z-[100] focus:px-3 focus:py-2 focus:rounded-md focus:bg-emerald-600 focus:text-white focus:shadow-lg`},wt=[`inert`],Tt=(0,t.defineComponent)({__name:`BaseAppLayout`,props:{showSidebar:{type:Boolean,default:!0},skipLinkLabel:{default:`Skip to main content`}},setup(e){let n=e,{isDark:r}=G(),{mobileOpen:i}=X(),a=(0,t.computed)(()=>n.showSidebar);return(n,o)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`min-h-screen transition-colors duration-300`,(0,t.unref)(r)?`bg-gray-950 text-gray-100`:`bg-gray-50 text-gray-800`])},[(0,t.createElementVNode)(`a`,Ct,(0,t.toDisplayString)(e.skipLinkLabel),1),a.value?(0,t.renderSlot)(n.$slots,`sidebar`,{key:0}):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`main`,{id:`main-content`,tabindex:`-1`,inert:a.value&&(0,t.unref)(i)?!0:void 0,class:(0,t.normalizeClass)(a.value?`pt-14 lg:pt-0 lg:ml-60`:``)},[(0,t.renderSlot)(n.$slots,`default`)],10,wt)],2))}}),Et={class:`flex items-center justify-between mb-8`},Dt={class:`flex items-center gap-3`},Ot={class:`flex items-center gap-2`},kt=(0,t.defineComponent)({__name:`BasePageHeader`,props:{title:{},subtitle:{default:``},iconColor:{default:`emerald`},maxWidthClass:{default:`max-w-4xl`}},setup(e){let n=e,{isDark:r}=G(),i=K(),a=(0,t.computed)(()=>{let e={emerald:{dark:`bg-emerald-500/10`,light:`bg-emerald-50`},sky:{dark:`bg-sky-500/10`,light:`bg-sky-50`},red:{dark:`bg-red-500/10`,light:`bg-red-50`},amber:{dark:`bg-amber-500/10`,light:`bg-amber-50`}}[n.iconColor];return r.value?e.dark:e.light}),o=(0,t.computed)(()=>{let e={emerald:{dark:`text-emerald-400`,light:`text-emerald-600`},sky:{dark:`text-sky-400`,light:`text-sky-600`},red:{dark:`text-red-400`,light:`text-red-500`},amber:{dark:`text-amber-400`,light:`text-amber-600`}}[n.iconColor];return r.value?e.dark:e.light});return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`mx-auto px-4 sm:px-6`,e.maxWidthClass])},[(0,t.createElementVNode)(`div`,Et,[(0,t.createElementVNode)(`div`,Dt,[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`w-10 h-10 rounded-lg flex items-center justify-center`,a.value])},[(0,t.renderSlot)(n.$slots,`icon`,{iconClass:o.value})],2),(0,t.createElementVNode)(`div`,null,[(0,t.createElementVNode)(`h1`,{class:(0,t.normalizeClass)([`text-2xl font-bold`,(0,t.unref)(i).primaryTextSoft])},(0,t.toDisplayString)(e.title),3),e.subtitle?((0,t.openBlock)(),(0,t.createElementBlock)(`p`,{key:0,class:(0,t.normalizeClass)([`text-sm`,(0,t.unref)(i).dimTextAlt])},(0,t.toDisplayString)(e.subtitle),3)):(0,t.createCommentVNode)(``,!0)])]),(0,t.createElementVNode)(`div`,Ot,[(0,t.renderSlot)(n.$slots,`actions`)])])],2))}}),At=[`type`,`disabled`,`title`],jt={key:0},Mt=(0,t.defineComponent)({__name:`BaseToolbarButton`,props:{label:{default:``},variant:{default:`neutral`},disabled:{type:Boolean,default:!1},title:{default:void 0},type:{default:`button`}},emits:[`click`],setup(e){let n=e,{isDark:r}=G(),i=(0,t.computed)(()=>{let e={neutral:{dark:`bg-gray-800 text-gray-100 border-gray-700 hover:bg-gray-700`,light:`bg-white text-gray-700 border-gray-200 hover:bg-gray-100`},danger:{dark:`bg-red-600 text-white border-red-600 hover:bg-red-500`,light:`bg-red-600 text-white border-red-600 hover:bg-red-700`}}[n.variant];return r.value?e.dark:e.light});return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{type:e.type,disabled:e.disabled,title:e.title,class:(0,t.normalizeClass)([`inline-flex shrink-0 items-center gap-2 px-3 py-2 rounded-lg text-sm font-medium border transition-colors cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed whitespace-nowrap`,i.value]),onClick:r[0]||=e=>n.$emit(`click`,e)},[(0,t.renderSlot)(n.$slots,`icon`,{iconClass:`w-4 h-4`}),e.label?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,jt,(0,t.toDisplayString)(e.label),1)):(0,t.createCommentVNode)(``,!0)],10,At))}}),Nt=[`type`,`disabled`,`title`,`aria-label`],Pt={key:0},Ft=(0,t.defineComponent)({__name:`BaseActionButton`,props:{label:{default:``},color:{default:`emerald`},disabled:{type:Boolean,default:!1},fullWidth:{type:Boolean,default:!1},title:{default:void 0},ariaLabel:{default:void 0},type:{default:`button`}},emits:[`click`],setup(e){let n=e,{isDark:r}=G(),i=(0,t.computed)(()=>{let e={emerald:{dark:`text-emerald-400 hover:bg-emerald-500/10`,light:`text-emerald-600 hover:bg-emerald-50`},sky:{dark:`text-sky-400 hover:bg-sky-500/10`,light:`text-sky-600 hover:bg-sky-50`},indigo:{dark:`text-indigo-400 hover:bg-indigo-500/10`,light:`text-indigo-600 hover:bg-indigo-50`},teal:{dark:`text-teal-400 hover:bg-teal-500/10`,light:`text-teal-600 hover:bg-teal-50`},purple:{dark:`text-purple-400 hover:bg-purple-500/10`,light:`text-purple-600 hover:bg-purple-50`},red:{dark:`text-red-400 hover:bg-red-500/10`,light:`text-red-500 hover:bg-red-50`},amber:{dark:`text-amber-400 hover:bg-amber-500/10`,light:`text-amber-600 hover:bg-amber-50`},amberStrong:{dark:`text-amber-300 hover:bg-amber-500/10`,light:`text-amber-700 hover:bg-amber-50`}}[n.color];return r.value?e.dark:e.light}),a=(0,t.computed)(()=>{let e={emerald:{dark:`text-emerald-400`,light:`text-emerald-600`},sky:{dark:`text-sky-400`,light:`text-sky-600`},indigo:{dark:`text-indigo-400`,light:`text-indigo-600`},teal:{dark:`text-teal-400`,light:`text-teal-600`},purple:{dark:`text-purple-400`,light:`text-purple-600`},red:{dark:`text-red-400`,light:`text-red-500`},amber:{dark:`text-amber-400`,light:`text-amber-600`},amberStrong:{dark:`text-amber-300`,light:`text-amber-700`}}[n.color];return r.value?e.dark:e.light}),o=(0,t.computed)(()=>n.disabled?`${a.value} opacity-50 cursor-not-allowed`:`${i.value} cursor-pointer`);return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{type:e.type,disabled:e.disabled,title:e.title,"aria-label":e.ariaLabel,class:(0,t.normalizeClass)([`inline-flex items-center justify-center gap-1.5 px-3 py-1.5 rounded-lg text-xs font-medium transition-colors`,[e.fullWidth?`flex-1`:``,o.value]]),onClick:r[0]||=e=>n.$emit(`click`,e)},[(0,t.renderSlot)(n.$slots,`icon`,{iconClass:`w-4 h-4`}),e.label?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Pt,(0,t.toDisplayString)(e.label),1)):(0,t.createCommentVNode)(``,!0)],10,Nt))}});function Z(e,n=300){let r=(0,t.ref)(e.value),i=null;return(0,t.watch)(e,e=>{i&&clearTimeout(i),i=setTimeout(()=>{r.value=e,i=null},n)}),(0,t.onScopeDispose)(()=>{i&&=(clearTimeout(i),null)}),r}function It(e=3e3){let n=(0,t.ref)(!1),r=(0,t.ref)(``),i=(0,t.ref)(L.SUCCESS),a=null;function o(){a&&=(clearTimeout(a),null)}function s(t,s=L.SUCCESS,c=e){r.value=t,i.value=s,n.value=!0,o(),a=setTimeout(()=>{n.value=!1,a=null},c)}return(0,t.onScopeDispose)(()=>{o()}),{showToast:n,toastMessage:r,toastType:i,showToastMessage:s}}var Lt=function(e){return e.WIN=`WIN`,e.LOSE=`LOSE`,e}({}),Rt={GET:`bg-blue-600`,POST:`bg-emerald-600`,PUT:`bg-amber-600`,DELETE:`bg-red-600`,PATCH:`bg-purple-600`,HEAD:`bg-gray-600`},zt={GET:`bg-blue-500`,POST:`bg-green-500`,PUT:`bg-yellow-500`,DELETE:`bg-red-500`,PATCH:`bg-purple-500`,HEAD:`bg-gray-500`};function Bt(e){return e?Rt[e.toUpperCase()]??`bg-gray-600`:`bg-gray-600`}function Vt(e){return e?zt[e.toUpperCase()]??`bg-gray-500`:`bg-gray-500`}function Ht(e){let t=e??0;return t>=200&&t<300?`bg-emerald-600`:t>=300&&t<400?`bg-blue-600`:t>=400&&t<500?`bg-amber-600`:t>=500?`bg-red-600`:`bg-gray-600`}function Ut(e,t){let n=e??200;return t?n>=200&&n<300?`bg-green-500/15 text-green-400`:n>=300&&n<400?`bg-blue-500/15 text-blue-400`:n>=400&&n<500?`bg-yellow-500/15 text-yellow-400`:`bg-red-500/15 text-red-400`:n>=200&&n<300?`bg-green-100 text-green-800`:n>=300&&n<400?`bg-blue-100 text-blue-800`:n>=400&&n<500?`bg-yellow-100 text-yellow-800`:`bg-red-100 text-red-800`}var Wt=new Set([`A`,`B`,`STRONG`,`I`,`EM`,`CODE`,`PRE`,`BR`,`P`,`UL`,`OL`,`LI`,`SPAN`,`DIV`]),Gt=new Set([`SCRIPT`,`STYLE`,`IFRAME`,`OBJECT`,`EMBED`,`NOSCRIPT`,`TEMPLATE`]),Kt={A:new Set([`href`,`title`])};function Q(e){let t=e.trim().toLowerCase();return t.startsWith(`http://`)||t.startsWith(`https://`)||t.startsWith(`mailto:`)||t.startsWith(`tel:`)||t.startsWith(`/`)||t.startsWith(`#`)||t===``}function $(e){if(e.nodeType!==Node.ELEMENT_NODE)return;let t=e,n=t.tagName.toUpperCase();if(!Wt.has(n)){Gt.has(n)?t.remove():t.replaceWith(document.createTextNode(t.textContent??``));return}let r=Kt[n]??new Set;for(let e of Array.from(t.attributes)){if(!r.has(e.name.toLowerCase())){t.removeAttribute(e.name);continue}n===`A`&&e.name.toLowerCase()===`href`&&!Q(e.value)&&t.removeAttribute(e.name)}n===`A`&&t.hasAttribute(`href`)&&(t.setAttribute(`rel`,`noopener noreferrer`),t.setAttribute(`target`,`_blank`));for(let e of Array.from(t.childNodes))$(e)}function qt(e){if(!e)return``;let t=new DOMParser().parseFromString(`<div>${e}</div>`,`text/html`).body.firstElementChild;if(!t)return``;for(let e of Array.from(t.childNodes))$(e);return t.innerHTML}e.AlertEnum=a,e.BaseActionButton=Ft,e.BaseAlert=u,e.BaseAppLayout=Tt,e.BaseBadge=f,e.BaseBadgeEnum=Lt,e.BaseBreadcrumb=g,e.BaseButton=w,e.BaseButtonEnum=_,e.BaseButtonSizeEnum=v,e.BaseCollapsibleSection=Ue,e.BaseConfirmModal=qe,e.BaseEntityPickerModal=St,e.BaseLine=oe,e.BaseLoginEnum=se,e.BaseLogo=le,e.BaseLogoEnum=E,e.BaseModal=j,e.BaseModalEnum=D,e.BaseModalShell=J,e.BaseNotFoundPage=et,e.BasePageHeader=kt,e.BaseRow=M,e.BaseSidebar=lt,e.BaseSpinner=I,e.BaseTextInputModal=Ze,e.BaseToast=pe,e.BaseToastEnum=L,e.BaseToolbarButton=Mt,e.ColoredSquares=he,e.ColorsEnums=o,e.EarningsCard=Se,e.EuroAmount=De,e.LineEnum=T,e.Pagination=Ae,e.PositioningEnum=R,e.TrendArrow=Pe,e.getBaseColor=s,e.getBaseColorOf=c,e.isSafeHref=Q,e.methodBadgeBright=Vt,e.methodBadgeSolid=Bt,e.sanitizeHtml=qt,e.statusBadgeSolid=Ht,e.statusBadgeTinted=Ut,e.useDebouncedRef=Z,e.useEscapeKey=q,e.useMobileSidebar=X,e.useTheme=G,e.useThemeClasses=K,e.useToast=It});
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`vue`),require(`@heroicons/vue/24/outline`),require(`@heroicons/vue/24/solid`),require(`vue-router`)):typeof define==`function`&&define.amd?define([`exports`,`vue`,`@heroicons/vue/24/outline`,`@heroicons/vue/24/solid`,`vue-router`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UiLib={},e.Vue,e.HeroiconsOutline,e.HeroiconsSolid,e.VueRouter))})(this,function(e,t,n,r,i){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var a=function(e){return e.WARNING=`WARNING`,e.ERROR=`ERROR`,e.SUCCESS=`SUCCESS`,e.INFO=`INFO`,e}({}),o=function(e){return e.NONE=`NONE`,e.RED=`RED`,e.YELLOW=`YELLOW`,e.BLACK=`BLACK`,e.GRAY=`GRAY`,e.GREEN=`GREEN`,e.BLUE=`BLUE`,e}({});function s(e){let t=`red`;switch(e){case a.ERROR:t=`red`;break;case a.SUCCESS:t=`green`;break;case a.INFO:t=`gray`;break;case a.WARNING:t=`yellow`;break}return t}function c(e){let t=`red`;switch(e){case o.GREEN:t=`green`;break;case o.RED:t=`red`;break;case o.BLUE:t=`blue`;break;case o.YELLOW:t=`yellow`;break;case o.BLACK:t=`black`;break;case o.GRAY:t=`gray`;break;case o.NONE:t=``;break}return t}var l={class:`font-medium pl-1`},u=(0,t.defineComponent)({__name:`BaseAlert`,props:{title:{type:String,required:!1,default:``},color:{type:String,required:!1,default:a.ERROR}},setup(e){let r=e;function i(){let e=s(r.color);return`flex items-center p-4 mb-4 text-sm text-`+e+`-800 border border-`+e+`-300 rounded-lg bg-`+e+`-50 dark:bg-gray-800 dark:text-`+e+`-400 dark:border-`+e+`-800`}return(r,a)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)(i()),role:`alert`},[(0,t.createVNode)((0,t.unref)(n.InformationCircleIcon),{class:`w-6 h-6 text-gray-400`}),(0,t.createElementVNode)(`div`,null,[(0,t.createElementVNode)(`span`,l,(0,t.toDisplayString)(e.title),1)])],2))}}),d=`bg-red-100 text-red-700 border-red-200`,f=(0,t.defineComponent)({__name:`BaseBadge`,props:{color:{type:String,required:!1}},setup(e){let n=(0,t.useSlots)(),r=(0,t.computed)(()=>!!n.default),i=e,a={[o.RED]:`bg-red-100 text-red-700 border-red-200`,[o.GREEN]:`bg-green-100 text-green-700 border-green-200`,[o.BLUE]:`bg-blue-100 text-blue-700 border-blue-200`,[o.YELLOW]:`bg-yellow-100 text-yellow-700 border-yellow-200`,[o.GRAY]:`bg-gray-100 text-gray-700 border-gray-200`,[o.NONE]:`bg-gray-50 text-gray-600 border-gray-200`},s=(0,t.computed)(()=>`inline-flex items-center gap-1 font-semibold text-xs leading-none px-3 py-1.5 rounded-full border ${i.color&&a[i.color]||d}`);return(e,n)=>r.value?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:0,class:(0,t.normalizeClass)(s.value)},[(0,t.renderSlot)(e.$slots,`default`)],2)):(0,t.createCommentVNode)(``,!0)}}),p={class:`flex px-5 py-3 text-gray-700 border border-gray-200 rounded-lg bg-gray-50 dark:bg-gray-800 dark:border-gray-700`,"aria-label":`Breadcrumb`},m={class:`inline-flex items-center space-x-1 md:space-x-3`},h={class:`inline-flex items-center`,style:{"margin-left":`0`}},g=(0,t.defineComponent)({__name:`BaseBreadcrumb`,props:{items:{type:Array,required:!1,default:void 0},path:{type:String,required:!1,default:void 0}},setup(e){let i=e,a=(0,t.computed)(()=>{if(i.items&&i.items.length>0)return i.items;let e=(i.path??(typeof window<`u`?window.location.pathname:`/`)).split(`/`).filter(e=>e!==``),t=``;return e.map(e=>(t+=`/`+e,{name:Number.isNaN(Number(e))?(e.charAt(0).toUpperCase()+e.slice(1)).replaceAll(`-`,` `):e,url:t}))});return(e,i)=>{let o=(0,t.resolveComponent)(`router-link`);return(0,t.openBlock)(),(0,t.createElementBlock)(`nav`,p,[(0,t.createElementVNode)(`ol`,m,[(0,t.createElementVNode)(`li`,h,[(0,t.createVNode)(o,{to:`/`,class:`inline-flex items-center text-sm font-medium text-gray-700 hover:text-blue-600 dark:text-gray-400 dark:hover:text-white`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(r.HomeIcon),{class:`h-4 w-4 text-gray-500 mr-2`}),i[0]||=(0,t.createTextVNode)(` Home `,-1)]),_:1})]),((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(a.value,(e,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{key:r,class:`inline-flex items-center`,style:{"margin-left":`0`}},[(0,t.createVNode)((0,t.unref)(n.ChevronRightIcon),{class:`h-4 w-4 text-gray-500`}),(0,t.createVNode)(o,{to:e.url,class:`ml-1 text-sm font-medium text-gray-700 hover:text-blue-600 md:ml-2 dark:text-gray-400 dark:hover:text-white`},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.name),1)]),_:2},1032,[`to`])]))),128))])])}}}),_=function(e){return e.RED=`RED`,e.BLUE=`BLUE`,e.WHITE=`WHITE`,e.DARK=`DARK`,e.GREEN=`GREEN`,e.YELLOW=`YELLOW`,e.PURPLE=`PURPLE`,e}({}),v=function(e){return e.EXTRA_SMALL=`EXTRA_SMALL`,e.SMALL=`SMALL`,e.BASE=`BASE`,e.LARGE=`LARGE`,e.EXTRA_LARGE=`EXTRA_LARGE`,e}({}),y=[`type`,`disabled`,`onClick`],b={key:0,class:`inline-flex items-center`},ee={key:1},te={key:2},ne=[`type`,`disabled`],x={key:0,class:`inline-flex items-center`},S={key:1},C={key:2},w=(0,t.defineComponent)({__name:`BaseButton`,props:{description:{type:String,required:!0},color:{type:String,required:!1,default:_.BLUE},to:{type:String,required:!1},type:{type:String,required:!1,default:`button`},icon:{type:String,required:!1},iconSize:{type:String,required:!1},iconLeft:{type:Boolean,required:!1,default:!1},isRounded:{type:Boolean,required:!1},isDisable:{type:Boolean,required:!1},size:{type:String,required:!1},isLoading:{type:Boolean,required:!1}},setup(e){let n=e;function r(){let e=n.isDisable||n.isLoading,t;switch(n.color){case _.BLUE:t=e?`text-white bg-blue-400 cursor-not-allowed`:`focus:outline-none text-white bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:ring-blue-300`;break;case _.WHITE:t=e?`text-gray-900 bg-gray-200 border border-gray-200 cursor-not-allowed`:`focus:outline-none text-gray-900 bg-white border border-gray-200 hover:bg-gray-100 hover:text-blue-700 focus:z-10 focus:ring-4 focus:ring-gray-200`;break;case _.DARK:t=e?`text-white bg-gray-400 cursor-not-allowed`:`focus:outline-none text-white bg-gray-800 hover:bg-gray-900 focus:ring-4 focus:ring-gray-300`;break;case _.GREEN:t=e?`text-white bg-green-400 cursor-not-allowed`:`focus:outline-none text-white bg-green-700 hover:bg-green-800 focus:ring-4 focus:ring-green-300`;break;case _.RED:t=e?`text-white bg-red-400 cursor-not-allowed`:`focus:outline-none text-white bg-red-700 hover:bg-red-800 focus:ring-4 focus:ring-red-300`;break;case _.YELLOW:t=e?`text-white bg-yellow-300 cursor-not-allowed`:`focus:outline-none text-white bg-yellow-400 hover:bg-yellow-500 focus:ring-4 focus:ring-yellow-300`;break;case _.PURPLE:t=e?`text-white bg-purple-400 cursor-not-allowed`:`focus:outline-none text-white bg-purple-700 hover:bg-purple-800 focus:ring-4 focus:ring-purple-300 px-5 py-2.5 mb-2`;break;default:t=e?`text-white bg-blue-400 cursor-not-allowed`:`focus:outline-none text-white bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:ring-blue-300`;break}let r=`px-5 py-2.5 mr-2 mb-2 text-sm`;switch(n.size){case v.EXTRA_SMALL:r=`px-3 py-2 text-xs`;break;case v.SMALL:r=`px-3 py-2 text-sm`;break;case v.BASE:r=`px-5 py-2.5 text-sm`;break;case v.LARGE:r=`px-5 py-3 text-base`;break;case v.EXTRA_LARGE:r=`px-6 py-3.5 text-base`;break}let i=`rounded-lg`;return n.isRounded&&(i=`rounded-full`),`inline-flex items-center `+r+` `+t+` font-medium `+i}return(i,a)=>{let o=(0,t.resolveComponent)(`router-link`);return e.to?((0,t.openBlock)(),(0,t.createBlock)(o,{key:0,to:e.to,custom:``},{default:(0,t.withCtx)(({navigate:o})=>[(0,t.createElementVNode)(`button`,{type:n.type,class:(0,t.normalizeClass)(r()),disabled:e.isDisable||e.isLoading,onClick:o},[e.isLoading?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,b,[...a[0]||=[(0,t.createElementVNode)(`svg`,{"aria-hidden":`true`,role:`status`,class:`inline w-4 h-4 me-3 text-white animate-spin`,viewBox:`0 0 100 101`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},[(0,t.createElementVNode)(`path`,{d:`M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z`,fill:`#E5E7EB`}),(0,t.createElementVNode)(`path`,{d:`M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z`,fill:`currentColor`})],-1)]])):(0,t.createCommentVNode)(``,!0),e.iconLeft?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,ee,(0,t.toDisplayString)(e.description),1)),(0,t.renderSlot)(i.$slots,`default`),e.iconLeft?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,te,(0,t.toDisplayString)(e.description),1)):(0,t.createCommentVNode)(``,!0)],10,y)]),_:3},8,[`to`])):((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:1,type:n.type,class:(0,t.normalizeClass)(r()),disabled:e.isDisable||e.isLoading},[e.isLoading?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,x,[...a[1]||=[(0,t.createElementVNode)(`svg`,{"aria-hidden":`true`,role:`status`,class:`inline w-4 h-4 me-3 text-white animate-spin`,viewBox:`0 0 100 101`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},[(0,t.createElementVNode)(`path`,{d:`M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z`,fill:`#E5E7EB`}),(0,t.createElementVNode)(`path`,{d:`M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z`,fill:`currentColor`})],-1)]])):(0,t.createCommentVNode)(``,!0),e.iconLeft?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,S,(0,t.toDisplayString)(e.description),1)),(0,t.renderSlot)(i.$slots,`default`),e.iconLeft?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,C,(0,t.toDisplayString)(e.description),1)):(0,t.createCommentVNode)(``,!0)],10,ne))}}}),T=function(e){return e.BASE=`BASE`,e.BASE_SHORTER=`BASE_SHORTER`,e.SQUARE=`SQUARE`,e}({}),re={key:0,class:`h-px my-8 bg-gray-200 border-0 dark:bg-gray-700`},ie={key:1,class:`w-48 h-1 mx-auto my-4 bg-gray-100 border-0 rounded md:my-10 dark:bg-gray-700`},ae={key:2,class:`w-8 h-8 mx-auto my-8 bg-gray-200 border-0 rounded md:my-12 dark:bg-gray-700`},oe=(0,t.defineComponent)({__name:`BaseLine`,props:{mode:{type:String,required:!1,default:T.BASE}},setup(e){return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,[e.mode===(0,t.unref)(T).BASE?((0,t.openBlock)(),(0,t.createElementBlock)(`hr`,re)):(0,t.createCommentVNode)(``,!0),e.mode===(0,t.unref)(T).BASE_SHORTER?((0,t.openBlock)(),(0,t.createElementBlock)(`hr`,ie)):(0,t.createCommentVNode)(``,!0),e.mode===(0,t.unref)(T).SQUARE?((0,t.openBlock)(),(0,t.createElementBlock)(`hr`,ae)):(0,t.createCommentVNode)(``,!0)],64))}}),E=function(e){return e.SMALL=`SMALL`,e.MEDIUM=`MEDIUM`,e.LARGE=`LARGE`,e}({}),se=E,ce=[`height`,`width`],le=(0,t.defineComponent)({__name:`BaseLogo`,props:{size:{type:String,required:!1,default:E.MEDIUM}},setup(e){let n=e;function r(){let e=``;switch(n.size){case E.SMALL:e=`50px`;break;case E.MEDIUM:e=`100px`;break;case E.LARGE:e=`150px`;break}return e}return(e,n)=>{let i=(0,t.resolveComponent)(`router-link`);return(0,t.openBlock)(),(0,t.createBlock)(i,{to:`/`,class:`flex items-center mb-6 text-2xl font-semibold text-gray-900 dark:text-white`},{default:(0,t.withCtx)(()=>[((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,{height:r(),width:r(),viewBox:`33.6 130.6 499.7 242.9`,xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`},[...n[0]||=[(0,t.createElementVNode)(`linearGradient`,{id:`a`},[(0,t.createElementVNode)(`stop`,{offset:`.085`,"stop-color":`#469e43`}),(0,t.createElementVNode)(`stop`,{offset:`1`,"stop-color":`#132d13`})],-1),(0,t.createElementVNode)(`linearGradient`,{id:`b`,gradientUnits:`userSpaceOnUse`,x1:`64.863`,x2:`64.863`,"xlink:href":`#a`,y1:`288.291`,y2:`369.4`},null,-1),(0,t.createElementVNode)(`linearGradient`,{id:`c`,gradientUnits:`userSpaceOnUse`,x1:`138.367`,x2:`138.367`,"xlink:href":`#a`,y1:`308.454`,y2:`370.601`},null,-1),(0,t.createElementVNode)(`linearGradient`,{id:`d`,gradientUnits:`userSpaceOnUse`,x1:`195.475`,x2:`195.475`,"xlink:href":`#a`,y1:`288.291`,y2:`369.85`},null,-1),(0,t.createElementVNode)(`linearGradient`,{id:`e`,gradientUnits:`userSpaceOnUse`,x1:`249.634`,x2:`249.634`,"xlink:href":`#a`,y1:`307.312`,y2:`369.511`},null,-1),(0,t.createElementVNode)(`linearGradient`,{id:`f`,gradientUnits:`userSpaceOnUse`,x1:`302.884`,x2:`302.884`,"xlink:href":`#a`,y1:`288.291`,y2:`367.857`},null,-1),(0,t.createElementVNode)(`linearGradient`,{id:`g`,gradientUnits:`userSpaceOnUse`,x1:`354.118`,x2:`354.118`,"xlink:href":`#a`,y1:`307.312`,y2:`369.511`},null,-1),(0,t.createElementVNode)(`linearGradient`,{id:`h`,gradientUnits:`userSpaceOnUse`,x1:`428.02`,x2:`428.02`,"xlink:href":`#a`,y1:`306.156`,y2:`367.742`},null,-1),(0,t.createElementVNode)(`linearGradient`,{id:`i`,gradientUnits:`userSpaceOnUse`,x1:`502.066`,x2:`502.066`,"xlink:href":`#a`,y1:`288.291`,y2:`369.4`},null,-1),(0,t.createElementVNode)(`linearGradient`,{id:`j`,gradientUnits:`userSpaceOnUse`,x1:`283.264`,x2:`283.264`,"xlink:href":`#a`,y1:`131.629`,y2:`232.559`},null,-1),(0,t.createElementVNode)(`linearGradient`,{id:`k`,gradientUnits:`userSpaceOnUse`,x1:`283.46`,x2:`283.46`,y1:`202.275`,y2:`183.785`},[(0,t.createElementVNode)(`stop`,{offset:`0`,"stop-color":`#969799`,"stop-opacity":`0`}),(0,t.createElementVNode)(`stop`,{offset:`1`,"stop-color":`#808183`})],-1),(0,t.createElementVNode)(`path`,{d:`m65 307.2c-6.8 0-13.1 2.2-18.2 5.9v-24.8h-13.2v81.1h31.4c17.2 0 31.1-13.9 31.1-31.1s-13.9-31.1-31.1-31.1zm0 49.3h-18.2v-18.2c0-10.1 8.2-18.2 18.2-18.2 10.1 0 18.2 8.2 18.2 18.2.1 10.1-8.1 18.2-18.2 18.2z`,fill:`url(#b)`},null,-1),(0,t.createElementVNode)(`path`,{d:`m168.8 343.9h-46.7c1.4 7.1 6.6 12 14.1 12.7 6.4.6 12.9.1 19.9.1v11.9c-15.2 4.9-33.3.5-42.1-10.4-3.8-4.7-17.3-34.7 11.5-47.4 39-11.4 45.3 22.4 43.3 33.1zm-14.2-12.7c-1.7-8.1-8.8-12.9-17.9-12.3-7.6.5-14 5.8-14.5 12.3z`,fill:`url(#c)`},null,-1),(0,t.createElementVNode)(`path`,{d:`m195.5 320.2c0 10.5-.2 20 .1 29.6.2 5.8 4.4 8.4 13.2 8.6v10.5c-13.8 3.9-26.2-4.5-26.4-18-.2-18.7-.1-43.9-.1-62.6h14.1l-.3 18.5 12.7-.1v13.4h-13.3z`,fill:`url(#d)`},null,-1),(0,t.createElementVNode)(`path`,{d:`m249.6 307.3c-17.2 0-31.1 13.9-31.1 31.1s13.9 31.1 31.1 31.1h31.1v-31.1c0-17.2-13.9-31.1-31.1-31.1zm18.6 49.7h-18.5c-10.2 0-18.5-8.3-18.5-18.5s8.3-18.5 18.5-18.5 18.5 8.3 18.5 18.5z`,fill:`url(#e)`},null,-1),(0,t.createElementVNode)(`path`,{d:`m296.4 288.3h13v79.6h-13z`,fill:`url(#f)`},null,-1),(0,t.createElementVNode)(`path`,{d:`m354.1 307.3c-17.2 0-31.1 13.9-31.1 31.1s13.9 31.1 31.1 31.1h31.1v-31.1c0-17.2-13.9-31.1-31.1-31.1zm18.6 49.7h-18.5c-10.2 0-18.5-8.3-18.5-18.5s8.3-18.5 18.5-18.5 18.5 8.3 18.5 18.5z`,fill:`url(#g)`},null,-1),(0,t.createElementVNode)(`path`,{d:`m442.2 367.7c0-12.3.2-23.6 0-34.9-.2-3.4-3.6-13.8-14.1-13.4-10.3-.3-14.4 10-14.3 12.7.1 10.2.5 35.1.5 35.1l-13.6.1s-.3-25.7.2-36.2c.6-14.1 12.7-25 27.5-25 14.7 0 26.2 10.4 26.7 24.9.4 10.4.5 36.3.5 36.3z`,fill:`url(#h)`},null,-1),(0,t.createElementVNode)(`path`,{d:`m501.9 307.2c6.8 0 13.1 2.2 18.2 5.9v-24.8h13.2v81.1h-31.4c-17.2 0-31.1-13.9-31.1-31.1s13.9-31.1 31.1-31.1zm0 49.3h18.2v-18.2c0-10.1-8.2-18.2-18.2-18.2-10.1 0-18.2 8.2-18.2 18.2 0 10.1 8.1 18.2 18.2 18.2z`,fill:`url(#i)`},null,-1),(0,t.createElementVNode)(`path`,{d:`m309.2 180.6h-24v-24c0-12.6 10.2-24.1 22.8-25 14.8-1 27.1 11.3 26.1 26.1-.8 12.7-12.3 22.9-24.9 22.9zm-50.7-48.9c-14.8-1-27.1 11.3-26.1 26.1.8 12.6 12.4 22.8 25 22.8h23.9v-24c0-12.6-10.3-24.1-22.8-24.9zm50.7 51.9h-24v23.9c0 12.6 10.2 24.1 22.8 25 14.8 1 27.1-11.3 26.1-26.1-.8-12.6-12.3-22.8-24.9-22.8zm-52.4 0c-14 0-25.3 11.8-24.4 26 .8 12.2 10.7 22.1 22.9 22.9 14.2.9 26-10.4 26-24.4v-24.5z`,fill:`url(#j)`},null,-1),(0,t.createElementVNode)(`path`,{d:`m281.7 183.8h3.6v18.5h-3.6z`,fill:`url(#k)`},null,-1)]],8,ce))]),_:1})}}}),D=function(e){return e.DELETE=`DELETE`,e.SUCCESS=`SUCCESS`,e}({}),ue=[`aria-labelledby`],de={key:0,class:`p-6 text-center`},fe=[`id`],pe={class:`flex justify-center`},O=(0,t.defineComponent)({__name:`BaseModal`,props:{title:{type:String,required:!0},description:{type:String,required:!1},to:{type:String,required:!1,default:`/`},mode:{type:String,required:!1,default:D.SUCCESS}},emits:[`closeModal`,`confirmModal`],setup(e,{emit:r}){let i=r;function a(e){e.key===`Escape`&&i(`closeModal`)}return(0,t.onMounted)(()=>{document.addEventListener(`keydown`,a)}),(0,t.onUnmounted)(()=>{document.removeEventListener(`keydown`,a)}),(r,i)=>{let a=(0,t.resolveComponent)(`base-button`);return(0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,[(0,t.createElementVNode)(`div`,{class:`outside`,onClick:i[0]||=e=>r.$emit(`closeModal`)}),(0,t.createElementVNode)(`div`,{class:`dialog relative top-20 mx-auto p-5 border w-96 shadow-lg rounded-md bg-white`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`modal-title-`+e.title},[e.mode===(0,t.unref)(D).DELETE?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,de,[(0,t.createVNode)((0,t.unref)(n.ExclamationCircleIcon),{class:`w-12 h-12 text-gray-400 mx-auto mb-4`}),(0,t.createElementVNode)(`h3`,{id:`modal-title-`+e.title,class:`mb-5 text-lg font-normal text-gray-500 dark:text-gray-400`},` Are you sure you want to delete this `+(0,t.toDisplayString)(e.title)+`? `,9,fe),(0,t.createElementVNode)(`div`,pe,[(0,t.createVNode)(a,{color:(0,t.unref)(_).RED,onClick:i[1]||=e=>r.$emit(`confirmModal`),description:`Yes, I'm sure`},null,8,[`color`]),(0,t.createVNode)(a,{color:(0,t.unref)(_).WHITE,onClick:i[2]||=e=>r.$emit(`closeModal`),description:`No, cancel`},null,8,[`color`])])])):(0,t.createCommentVNode)(``,!0)],8,ue)],64)}}}),k=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},A=k(O,[[`__scopeId`,`data-v-1db4f0ac`]]),j=(0,t.defineComponent)({__name:`BaseRow`,props:{bgColor:{type:String,required:!1,default:`white`}},setup(e){let n=e;function r(){return`block p-8 border border-gray-200 rounded-xl shadow-sm dark:bg-gray-800 dark:border-gray-700 `+n.bgColor}return(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)(r())},[(0,t.renderSlot)(e.$slots,`default`)],2))}}),M={},N={class:`w-4 h-4 border-2 border-gray-200 border-t-blue-500 rounded-full animate-spin`};function P(e,n){return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,N)}var F=k(M,[[`render`,P]]),I=function(e){return e.SUCCESS=`SUCCESS`,e.WARNING=`WARNING`,e.ERROR=`ERROR`,e}({}),L=function(e){return e.TOP_LEFT=`TOP_LEFT`,e.TOP_RIGHT=`TOP_RIGHT`,e.BOTTOM_LEFT=`BOTTOM_LEFT`,e.BOTTOM_RIGHT=`BOTTOM_RIGHT`,e}({}),R={class:`flex items-center w-full max-w-md p-4 mb-4 text-gray-500 bg-white rounded-lg shadow dark:text-gray-400 dark:bg-gray-800`},z={class:`ml-3 text-sm font-normal`},B={key:3,type:`button`,class:`ml-auto -mx-1.5 -my-1.5 bg-white text-gray-400 hover:text-gray-900 rounded-lg focus:ring-2 focus:ring-gray-300 p-1.5 hover:bg-gray-100 inline-flex items-center justify-center h-8 w-8 dark:text-gray-500 dark:hover:text-white dark:bg-gray-800 dark:hover:bg-gray-700`,"data-dismiss-target":`#toast-danger`,"aria-label":`Close`},me=(0,t.defineComponent)({__name:`BaseToast`,props:{mode:{type:Object,required:!0},description:{type:String,required:!0},hasCloseIcon:{type:Boolean,required:!1,default:!0},positioning:{type:String,required:!1,default:L.TOP_RIGHT},duration:{type:Number,required:!1,default:5e3}},setup(e){let r=e,i=(0,t.ref)(!0),a=null;function o(){i.value=!1,a&&=(clearTimeout(a),null)}(0,t.onMounted)(()=>{a=setTimeout(()=>i.value=!1,r.duration)}),(0,t.onUnmounted)(()=>{a&&clearTimeout(a)});function s(){let e=``;switch(r.mode){case I.ERROR:e=`text-red-500 bg-red-100 dark:bg-red-800 dark:text-red-200`;break;case I.SUCCESS:e=`text-green-500 bg-green-100 dark:bg-green-800 dark:text-green-200`;break;case I.WARNING:e=`text-orange-500 bg-orange-100 dark:bg-orange-700 dark:text-orange-200`;break;default:e=`text-gray-500 bg-gray-100 dark:bg-gray-800 dark:text-gray-200`;break}return`inline-flex items-center justify-center flex-shrink-0 w-8 h-8 rounded-lg `+e}function c(){let e=`top-5 right-5`;switch(r.positioning){case L.BOTTOM_LEFT:e=`bottom-5 left-5`;break;case L.TOP_LEFT:e=`top-5 left-5`;break;case L.TOP_RIGHT:e=`top-5 right-5`;break;case L.BOTTOM_RIGHT:e=`bottom-5 right-5`;break}return`fixed flex items-center w-full max-w-md p-4 space-x-4 divide-x rounded-lg `+e}return(r,a)=>i.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,id:`toast-top-right`,class:(0,t.normalizeClass)(c()),role:`alert`},[(0,t.createElementVNode)(`div`,R,[e.mode==(0,t.unref)(I).ERROR?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:(0,t.normalizeClass)(s())},[(0,t.createVNode)((0,t.unref)(n.ExclamationCircleIcon),{class:`h-6 w-6 text-red-500`}),a[0]||=(0,t.createElementVNode)(`span`,{class:`sr-only`},`Error icon`,-1)],2)):e.mode==(0,t.unref)(I).SUCCESS?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,class:(0,t.normalizeClass)(s())},[(0,t.createVNode)((0,t.unref)(n.CheckCircleIcon),{class:`h-6 w-6 text-green-500`}),a[1]||=(0,t.createElementVNode)(`span`,{class:`sr-only`},`Check icon`,-1)],2)):e.mode==(0,t.unref)(I).WARNING?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:2,class:(0,t.normalizeClass)(s())},[(0,t.createVNode)((0,t.unref)(n.ExclamationTriangleIcon),{class:`h-6 w-6 text-yellow-500`}),a[2]||=(0,t.createElementVNode)(`span`,{class:`sr-only`},`Warning icon`,-1)],2)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,z,(0,t.toDisplayString)(e.description),1),e.hasCloseIcon?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,B,[a[3]||=(0,t.createElementVNode)(`span`,{class:`sr-only`},`Close`,-1),(0,t.createVNode)((0,t.unref)(n.XMarkIcon),{class:`h-6 w-6 text-gray-500 cursor-pointer`,onClick:o})])):(0,t.createCommentVNode)(``,!0)])],2)):(0,t.createCommentVNode)(``,!0)}}),he={class:`w-13`},ge=(0,t.defineComponent)({__name:`ColoredSquares`,props:{color:{type:String,required:!1}},setup(e){let n=e,r=[`bg-slate-300`,`bg-zinc-300`,`bg-neutral-300`,`bg-stone-300`,`bg-blue-300`,`bg-green-300`,`bg-yellow-300`,`bg-purple-300`,`bg-pink-300`],i=(0,t.ref)(r[Math.floor(Math.random()*r.length)]);function a(){let e=`gray`;switch(n.color){case o.GREEN:e=`green`;break;case o.RED:e=`red`;break;case o.BLUE:e=`blue`;break;case o.YELLOW:e=`yellow`;break;case o.NONE:e=``;break}return`font-bold bg-`+e+`-100 text-`+e+`-800 text-xs mr-2 px-2.5 py-0.5 rounded-full`}return(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,he,[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`border border-gray-300 relative aspect-square rounded-lg bg-white shadow-sm overflow-hidden flex items-center justify-center text-center`,a()])},[(0,t.renderSlot)(e.$slots,`default`),(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`absolute bottom-0 left-0 h-1 w-full`,i.value])},null,2)],2)]))}}),_e={class:`relative rounded-xl border-2 border-dashed border-orange-300 bg-white p-6 dark:border-orange-700 dark:bg-slate-800`},ve={key:0,class:`absolute right-4 top-4 rounded-md bg-orange-100 px-3 py-1 text-xs font-bold tracking-wide text-orange-500 dark:bg-orange-900/40 dark:text-orange-400`},ye={class:`flex items-start justify-between`},be={class:`text-sm font-bold tracking-wide text-gray-800 dark:text-slate-200`},xe={class:`mt-1 text-4xl font-bold text-gray-400 dark:text-slate-300`},Se={class:`mt-1 text-sm font-medium text-orange-400 dark:text-orange-400`},Ce=(0,t.defineComponent)({__name:`EarningsCard`,props:{title:{default:`TOTAL EARNINGS`},amount:{default:0},subtitle:{default:`Lifetime commission`},badge:{default:``},currency:{default:`$`},decimals:{default:2}},setup(e){let n=e,r=(0,t.computed)(()=>n.currency+n.amount.toLocaleString(`en-US`,{minimumFractionDigits:n.decimals,maximumFractionDigits:n.decimals}));return(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,_e,[e.badge?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ve,(0,t.toDisplayString)(e.badge),1)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,ye,[(0,t.createElementVNode)(`div`,null,[(0,t.createElementVNode)(`p`,be,(0,t.toDisplayString)(e.title),1),(0,t.createElementVNode)(`p`,xe,(0,t.toDisplayString)(r.value),1),(0,t.createElementVNode)(`p`,Se,(0,t.toDisplayString)(e.subtitle),1)]),i[0]||=(0,t.createElementVNode)(`div`,{class:`mt-6 flex h-12 w-12 items-center justify-center rounded-xl bg-orange-50 dark:bg-orange-900/30`},[(0,t.createElementVNode)(`svg`,{class:`h-6 w-6 text-orange-400`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[(0,t.createElementVNode)(`polyline`,{points:`22 7 13.5 15.5 8.5 10.5 2 17`}),(0,t.createElementVNode)(`polyline`,{points:`16 7 22 7 22 13`})])],-1)])]))}}),we={key:0,class:`font-bold text-green-800`},Te={key:0},Ee={key:0},De=`font-bold`,Oe=(0,t.defineComponent)({__name:`EuroAmount`,props:{amount:{type:Number,required:!1},beforeAmount:{type:Number,default:null,required:!1},showCurrency:{type:Boolean,default:!0,required:!1}},setup(e){let n=e,r=(0,t.computed)(()=>n.amount!==null&&n.amount!==void 0),i=(0,t.computed)(()=>r.value&&n.amount<0),a=(0,t.computed)(()=>n.beforeAmount===null||n.beforeAmount===void 0?!1:n.amount<n.beforeAmount),o=(0,t.computed)(()=>i.value||a.value),s=(0,t.computed)(()=>!i.value&&!a.value&&!(n.beforeAmount===null||n.beforeAmount===void 0));return(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,[r.value&&s.value?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,we,[(0,t.createTextVNode)((0,t.toDisplayString)(e.amount)+` `,1),e.showCurrency?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Te,`€`)):(0,t.createCommentVNode)(``,!0)])):(0,t.createCommentVNode)(``,!0),r.value&&!s.value?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:1,class:(0,t.normalizeClass)([De,o.value?`text-red-800`:`text-gray-800`])},[(0,t.createTextVNode)((0,t.toDisplayString)(e.amount)+` `,1),e.showCurrency?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Ee,`€`)):(0,t.createCommentVNode)(``,!0)],2)):(0,t.createCommentVNode)(``,!0)],64))}}),ke=[`onClick`,`onKeydown`],Ae={key:1,style:{cursor:`not-allowed`}},je=k((0,t.defineComponent)({__name:`Pagination`,props:{totalItems:{type:Number,required:!0},itemsPerPage:{type:Number,default:20}},emits:[`page-changed`],setup(e,{emit:n}){let r=e,i=(0,t.ref)(1),a=(0,t.ref)(0),o=(0,t.ref)([]),s=n;function c(e){if(e!==i.value&&e>=1&&e<=a.value&&(i.value=e),a.value>5){o.value=[],e-3>0&&(o.value.push(1),o.value.push(0));for(let t=1;t<=2;t++){let n=e-t;n>0&&o.value.push(n)}o.value.length,o.value.push(i.value);let t=a.value-e;if(t>2){for(let t=1;t<=2;t++)o.value.push(e+t);o.value.push(0),o.value.push(a.value)}else for(let n=1;n<=t;n++)o.value.push(e+n)}s(`page-changed`,e)}return(0,t.watch)(()=>r.totalItems,()=>{if(a.value=Math.ceil(r.totalItems/r.itemsPerPage),o.value=[],a.value>5){for(let e=1;e<5;e++)o.value.push(e);o.value.push(0),o.value.push(a.value)}else for(let e=1;e<=a.value;e++)o.value.push(e)},{immediate:!0}),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,null,[(0,t.createElementVNode)(`ul`,null,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(o.value,(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{key:n},[e===0?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`a`,{key:0,role:`button`,tabindex:`0`,onClick:t=>c(e),onKeydown:(0,t.withKeys)(t=>c(e),[`enter`]),class:(0,t.normalizeClass)({active:e===i.value})},(0,t.toDisplayString)(e),43,ke)),e===0?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Ae,`...`)):(0,t.createCommentVNode)(``,!0)]))),128))])]))}}),[[`__scopeId`,`data-v-d7ebb6ac`]]),Me={key:0},Ne={key:0,class:`flex items-center space-x-2`},Pe={key:1,class:`flex items-center space-x-2`},Fe=(0,t.defineComponent)({__name:`TrendArrow`,props:{number:{type:Number,required:!1},icon:{type:String,required:!1}},setup(e){let r=e,i=(0,t.computed)(()=>r.number!==null&&r.number!==void 0&&r.number<0);return(a,s)=>e.number!==null&&e.number!==void 0?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Me,[i.value?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Ne,[(0,t.createVNode)(f,{color:(0,t.unref)(o).RED},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.number)+(0,t.toDisplayString)(r.icon),1)]),_:1},8,[`color`]),(0,t.createVNode)((0,t.unref)(n.ArrowDownIcon),{class:`h-5 w-5 text-red-500`})])):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Pe,[(0,t.createVNode)(f,{color:(0,t.unref)(o).GREEN},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.number)+(0,t.toDisplayString)(r.icon),1)]),_:1},8,[`color`]),(0,t.createVNode)((0,t.unref)(n.ArrowUpIcon),{class:`h-5 w-5 text-green-500`})]))])):(0,t.createCommentVNode)(``,!0)}}),V=(0,t.ref)(!1),H=!1,U=`mgv-theme`;function Ie(e){if(!H){if(H=!0,U=e,typeof window<`u`){let e=window.localStorage?.getItem(U);e?V.value=e===`dark`:typeof window.matchMedia==`function`&&(V.value=window.matchMedia(`(prefers-color-scheme: dark)`).matches)}typeof document<`u`&&(0,t.effectScope)(!0).run(()=>{(0,t.watch)(V,e=>{document.documentElement.classList.toggle(`dark`,e),window.localStorage?.setItem(U,e?`dark`:`light`)},{immediate:!0})})}}function W(e){Ie(e?.storageKey??U);function t(){V.value=!V.value}return{isDark:V,toggleTheme:t}}function G(){let{isDark:e}=W();return{card:(0,t.computed)(()=>e.value?`bg-gray-800 border-gray-700`:`bg-white border-gray-200`),cardAlt:(0,t.computed)(()=>e.value?`bg-gray-900 border-gray-700`:`bg-white border-gray-200`),pageBg:(0,t.computed)(()=>e.value?`bg-gray-900`:`bg-gray-50`),border:(0,t.computed)(()=>e.value?`border-gray-700`:`border-gray-200`),divider:(0,t.computed)(()=>e.value?`border-gray-800`:`border-gray-100`),primaryText:(0,t.computed)(()=>e.value?`text-white`:`text-gray-900`),primaryTextSoft:(0,t.computed)(()=>e.value?`text-gray-100`:`text-gray-800`),bodyText:(0,t.computed)(()=>e.value?`text-gray-200`:`text-gray-700`),label:(0,t.computed)(()=>e.value?`text-gray-300`:`text-gray-700`),mutedText:(0,t.computed)(()=>e.value?`text-gray-400`:`text-gray-600`),subtleText:(0,t.computed)(()=>e.value?`text-gray-500`:`text-gray-600`),dimText:(0,t.computed)(()=>e.value?`text-gray-500`:`text-gray-400`),dimTextAlt:(0,t.computed)(()=>e.value?`text-gray-400`:`text-gray-500`),illustration:(0,t.computed)(()=>e.value?`text-gray-600`:`text-gray-300`),input:(0,t.computed)(()=>e.value?`bg-gray-700 border-gray-600 text-white`:`bg-gray-50 border-gray-300 text-gray-900`),inputWithPlaceholder:(0,t.computed)(()=>e.value?`bg-gray-700 border-gray-600 text-white placeholder-gray-400`:`bg-gray-50 border-gray-300 text-gray-900 placeholder-gray-500`),ghostButton:(0,t.computed)(()=>e.value?`bg-gray-800 text-gray-200 border-gray-600 hover:bg-gray-700`:`bg-white text-gray-700 border-gray-300 hover:bg-gray-50`),emeraldText:(0,t.computed)(()=>e.value?`text-emerald-400`:`text-emerald-600`),amberText:(0,t.computed)(()=>e.value?`text-amber-400`:`text-amber-600`),amberTextStrong:(0,t.computed)(()=>e.value?`text-amber-300`:`text-amber-700`),redText:(0,t.computed)(()=>e.value?`text-red-400`:`text-red-500`)}}function K(e){function n(t){t.key===`Escape`&&e()}(0,t.onMounted)(()=>document.addEventListener(`keydown`,n)),(0,t.onBeforeUnmount)(()=>document.removeEventListener(`keydown`,n))}var Le={class:`p-6`},Re={class:`flex items-start gap-4`},ze={class:`flex-1`},Be={class:`mt-4`},Ve={class:`mt-6 flex gap-3 justify-end`},q=(0,t.defineComponent)({__name:`BaseModalShell`,props:{title:{},maxWidthClass:{default:`max-w-md`},manualClose:{type:Boolean,default:!1}},emits:[`cancel`,`backdrop`],setup(e,{emit:n}){let r=e,i=n,{isDark:a}=W(),o=G(),s=`modal-title-${Math.random().toString(36).slice(2,9)}`,c=(0,t.computed)(()=>a.value?`bg-gray-900 border border-gray-700`:`bg-white border border-gray-200`);function l(){i(`backdrop`),r.manualClose||i(`cancel`)}return K(()=>{r.manualClose||i(`cancel`)}),(n,r)=>((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[(0,t.createElementVNode)(`div`,{class:`fixed inset-0 z-50 flex items-center justify-center bg-black/50`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":s,onClick:l},[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`relative w-full mx-4 rounded-lg shadow-xl`,[e.maxWidthClass,c.value]]),onClick:r[0]||=(0,t.withModifiers)(()=>{},[`stop`])},[(0,t.createElementVNode)(`div`,Le,[(0,t.createElementVNode)(`div`,Re,[(0,t.renderSlot)(n.$slots,`icon`),(0,t.createElementVNode)(`div`,ze,[(0,t.createElementVNode)(`h3`,{id:s,class:(0,t.normalizeClass)([`text-lg font-medium`,(0,t.unref)(o).primaryText])},(0,t.toDisplayString)(e.title),3)])]),(0,t.createElementVNode)(`div`,Be,[(0,t.renderSlot)(n.$slots,`default`)]),(0,t.createElementVNode)(`div`,Ve,[(0,t.renderSlot)(n.$slots,`footer`)])])],2)])]))}}),He=[`aria-expanded`],Ue={class:`flex items-center gap-3`},We=(0,t.defineComponent)({__name:`BaseCollapsibleSection`,props:{title:{},collapsed:{type:Boolean},badge:{},bodyClass:{}},emits:[`toggle`],setup(e,{emit:n}){let r=e,i=n,{isDark:a}=W(),o=G(),s=(0,t.computed)(()=>a.value?`text-gray-100`:`text-gray-700`),c=(0,t.computed)(()=>a.value?`bg-gray-800/50 hover:bg-gray-800 border-gray-700`:`bg-gray-50 hover:bg-gray-100 border-gray-200`),l=(0,t.computed)(()=>a.value?`bg-emerald-500/15 text-emerald-400`:`bg-emerald-50 text-emerald-700`),u=(0,t.computed)(()=>r.bodyClass===void 0?a.value?`bg-gray-800`:`bg-white`:r.bodyClass);return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`section`,{class:(0,t.normalizeClass)([`rounded-xl border overflow-hidden transition-colors`,(0,t.unref)(o).cardAlt])},[(0,t.createElementVNode)(`button`,{type:`button`,class:(0,t.normalizeClass)([`w-full flex items-center justify-between p-4 text-left transition-colors`,c.value]),"aria-expanded":!e.collapsed,onClick:r[0]||=e=>i(`toggle`)},[(0,t.createElementVNode)(`div`,Ue,[(0,t.createElementVNode)(`h2`,{class:(0,t.normalizeClass)([`text-base font-semibold`,s.value])},(0,t.toDisplayString)(e.title),3),e.badge?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:0,class:(0,t.normalizeClass)([`text-xs px-2 py-0.5 rounded-full`,l.value])},(0,t.toDisplayString)(e.badge),3)):(0,t.createCommentVNode)(``,!0)]),((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,{class:(0,t.normalizeClass)([`w-5 h-5 transition-transform`,[e.collapsed?``:`rotate-180`,(0,t.unref)(o).dimTextAlt]]),fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,"stroke-width":`2`,"aria-hidden":`true`},[...r[1]||=[(0,t.createElementVNode)(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,d:`M19 9l-7 7-7-7`},null,-1)]],2))],10,He),(0,t.withDirectives)((0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`p-6 border-t`,[(0,t.unref)(o).border,u.value]])},[(0,t.renderSlot)(n.$slots,`default`)],2),[[t.vShow,!e.collapsed]])],2))}}),Ge=[`disabled`],Ke=[`disabled`],qe={key:0,class:`w-4 h-4 animate-spin`,fill:`none`,viewBox:`0 0 24 24`,"aria-hidden":`true`},Je=(0,t.defineComponent)({__name:`BaseConfirmModal`,props:{title:{},message:{},confirmText:{default:`Yes, I'm sure`},cancelText:{default:`No, cancel`},submittingText:{default:`Working...`},variant:{default:`danger`},submitting:{type:Boolean,default:!1}},emits:[`confirm`,`cancel`],setup(e,{emit:r}){let i=e,a=r,{isDark:o}=W(),s=G();function c(){i.submitting||a(`confirm`)}function l(){i.submitting||a(`cancel`)}return(r,i)=>((0,t.openBlock)(),(0,t.createBlock)(q,{title:e.title,"manual-close":e.submitting,onCancel:l},{icon:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`flex-shrink-0 flex h-12 w-12 items-center justify-center rounded-full`,[e.variant===`danger`?(0,t.unref)(o)?`bg-red-900/30`:`bg-red-50`:(0,t.unref)(o)?`bg-amber-900/30`:`bg-amber-50`]])},[(0,t.createVNode)((0,t.unref)(n.ExclamationTriangleIcon),{class:(0,t.normalizeClass)([`h-6 w-6`,e.variant===`danger`?`text-red-600`:`text-amber-600`]),"aria-hidden":`true`},null,8,[`class`])],2)]),footer:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`button`,{type:`button`,disabled:e.submitting,class:(0,t.normalizeClass)([`inline-flex items-center justify-center px-4 py-2 border rounded-md shadow-sm text-sm font-medium transition-colors duration-150`,[(0,t.unref)(s).ghostButton,e.submitting?`opacity-60 cursor-not-allowed`:`cursor-pointer`]]),onClick:l},(0,t.toDisplayString)(e.cancelText),11,Ge),(0,t.createElementVNode)(`button`,{type:`button`,disabled:e.submitting,class:(0,t.normalizeClass)([`inline-flex items-center justify-center gap-2 px-4 py-2 border border-transparent rounded-md shadow-sm text-sm font-medium text-white transition-colors duration-150`,[e.variant===`danger`?e.submitting?`bg-red-400 cursor-not-allowed`:`bg-red-600 hover:bg-red-700 cursor-pointer`:e.submitting?`bg-emerald-400 cursor-not-allowed`:`bg-emerald-600 hover:bg-emerald-700 cursor-pointer`]]),onClick:c},[e.submitting?((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,qe,[...i[0]||=[(0,t.createElementVNode)(`circle`,{class:`opacity-25`,cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,"stroke-width":`4`},null,-1),(0,t.createElementVNode)(`path`,{class:`opacity-75`,fill:`currentColor`,d:`M4 12a8 8 0 018-8v4a4 4 0 00-4 4H4z`},null,-1)]])):(0,t.createCommentVNode)(``,!0),(0,t.createTextVNode)(` `+(0,t.toDisplayString)(e.submitting?e.submittingText:e.confirmText),1)],10,Ke)]),default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`p`,{class:(0,t.normalizeClass)([`text-sm`,(0,t.unref)(o)?`text-gray-300`:`text-gray-600`])},(0,t.toDisplayString)(e.message),3)]),_:1},8,[`title`,`manual-close`]))}}),Ye={class:`mt-4`},Xe=[`placeholder`],Ze=[`disabled`],Qe=(0,t.defineComponent)({__name:`BaseTextInputModal`,props:{title:{},message:{},initialValue:{default:``},placeholder:{default:`Enter value...`},inputLabel:{default:`Name`},confirmText:{default:`Confirm`},cancelText:{default:`Cancel`},submittingText:{default:`Working...`},submitting:{type:Boolean,default:!1}},emits:[`confirm`,`cancel`],setup(e,{emit:r}){let i=e,a=r,{isDark:o}=W(),s=G(),c=(0,t.ref)(i.initialValue),l=(0,t.ref)(null);(0,t.onMounted)(async()=>{await(0,t.nextTick)(),l.value?.focus()});function u(){!c.value.trim()||i.submitting||a(`confirm`,c.value.trim())}function d(){a(`cancel`)}function f(){c.value.trim()===(i.initialValue??``).trim()&&d()}return K(d),(r,i)=>((0,t.openBlock)(),(0,t.createBlock)(q,{title:e.title,"manual-close":``,onBackdrop:f},{icon:(0,t.withCtx)(()=>[(0,t.renderSlot)(r.$slots,`icon`,{},()=>[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`flex-shrink-0 flex h-12 w-12 items-center justify-center rounded-full`,(0,t.unref)(o)?`bg-emerald-900/30`:`bg-emerald-50`])},[(0,t.createVNode)((0,t.unref)(n.DocumentDuplicateIcon),{class:`h-6 w-6 text-emerald-600`,"aria-hidden":`true`})],2)])]),footer:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`button`,{type:`button`,class:(0,t.normalizeClass)([`inline-flex items-center justify-center px-4 py-2 border rounded-md shadow-sm text-sm font-medium transition-colors duration-150`,(0,t.unref)(s).ghostButton]),onClick:d},(0,t.toDisplayString)(e.cancelText),3),(0,t.createElementVNode)(`button`,{type:`button`,disabled:!c.value.trim()||e.submitting,class:(0,t.normalizeClass)([`inline-flex items-center justify-center px-4 py-2 border border-transparent rounded-md shadow-sm text-sm font-medium text-white transition-colors duration-150`,[!c.value.trim()||e.submitting?`bg-emerald-400 cursor-not-allowed`:`bg-emerald-600 hover:bg-emerald-700 cursor-pointer`]]),onClick:u},(0,t.toDisplayString)(e.submitting?e.submittingText:e.confirmText),11,Ze)]),default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`p`,{class:(0,t.normalizeClass)([`text-sm`,(0,t.unref)(o)?`text-gray-300`:`text-gray-600`])},(0,t.toDisplayString)(e.message),3),(0,t.createElementVNode)(`div`,Ye,[(0,t.createElementVNode)(`label`,{class:(0,t.normalizeClass)([`block text-sm font-medium mb-1`,(0,t.unref)(s).label])},(0,t.toDisplayString)(e.inputLabel),3),(0,t.withDirectives)((0,t.createElementVNode)(`input`,{ref_key:`nameInput`,ref:l,"onUpdate:modelValue":i[0]||=e=>c.value=e,type:`text`,placeholder:e.placeholder,class:(0,t.normalizeClass)([`w-full px-3 py-2 rounded-md border text-sm transition-colors`,(0,t.unref)(o)?`bg-gray-800 border-gray-600 text-gray-100 placeholder-gray-500 focus:outline-none focus:border-emerald-500`:`bg-white border-gray-300 text-gray-900 placeholder-gray-400 focus:outline-none focus:border-emerald-500`]),onKeyup:(0,t.withKeys)(u,[`enter`])},null,42,Xe),[[t.vModelText,c.value]])])]),_:3},8,[`title`]))}}),$e={class:`flex items-center justify-center min-h-[60vh]`},et={class:`text-center px-6`},tt=(0,t.defineComponent)({__name:`BaseNotFoundPage`,props:{code:{default:`404`},message:{default:`Page not found`},homeRouteName:{default:`home`},homeLabel:{default:`Go home`}},setup(e){let r=e,a=(0,i.useRouter)(),{isDark:o}=W(),s=G();function c(){a.push({name:r.homeRouteName})}return(r,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,$e,[(0,t.createElementVNode)(`div`,et,[(0,t.createVNode)((0,t.unref)(n.ExclamationTriangleIcon),{class:(0,t.normalizeClass)([`w-16 h-16 mx-auto mb-4`,(0,t.unref)(s).illustration])},null,8,[`class`]),(0,t.createElementVNode)(`h1`,{class:(0,t.normalizeClass)([`text-4xl font-bold mb-2`,(0,t.unref)(o)?`text-gray-200`:`text-gray-800`])},(0,t.toDisplayString)(e.code),3),(0,t.createElementVNode)(`p`,{class:(0,t.normalizeClass)([`text-lg mb-6`,(0,t.unref)(s).dimTextAlt])},(0,t.toDisplayString)(e.message),3),(0,t.createElementVNode)(`button`,{onClick:c,class:(0,t.normalizeClass)([`inline-flex items-center gap-2 px-4 py-2 rounded-lg text-sm font-medium text-white transition-colors cursor-pointer`,(0,t.unref)(o)?`bg-emerald-600 hover:bg-emerald-500`:`bg-emerald-600 hover:bg-emerald-700`])},(0,t.toDisplayString)(e.homeLabel),3)])]))}}),J=(0,t.ref)(!1);function Y(){function e(){J.value=!0}function t(){J.value=!1}function n(){J.value=!J.value}return{mobileOpen:J,open:e,close:t,toggle:n}}var nt=[`aria-label`,`aria-expanded`],rt={class:`flex flex-col h-full`},it={class:`px-5 pt-5 pb-4 flex items-center justify-center relative`},at={class:`flex-1 overflow-y-auto px-3 space-y-6`},ot={class:`px-2 mb-2 text-[10px] font-semibold uppercase tracking-wider text-gray-500`},st={class:`space-y-0.5`},ct=[`aria-current`,`onClick`],lt=[`title`,`aria-label`,`aria-pressed`],ut=k((0,t.defineComponent)({__name:`BaseSidebar`,props:{sections:{},homeRouteName:{default:`home`},appName:{default:``},version:{default:``},showThemeToggle:{type:Boolean,default:!0}},setup(e){let r=e,a=(0,i.useRouter)(),o=(0,i.useRoute)(),{isDark:s,toggleTheme:c}=W(),{mobileOpen:l,close:u,toggle:d}=Y(),f=(0,t.ref)(null),p=null;(0,t.watch)(l,async e=>{e?(p=document.activeElement instanceof HTMLElement?document.activeElement:null,await(0,t.nextTick)(),f.value?.focus()):(p?.focus(),p=null)}),(0,t.onMounted)(()=>{}),(0,t.onUnmounted)(()=>{});function m(){a.push({name:r.homeRouteName}),u()}function h(e){return o.name===e}function g(e){a.push({name:e}),u()}return(r,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,null,[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`mobile-topbar fixed top-0 inset-x-0 z-30 flex items-center justify-between px-4 py-3 border-b transition-colors`,(0,t.unref)(s)?`bg-gray-900 border-gray-800`:`bg-white border-gray-200`])},[(0,t.createElementVNode)(`button`,{type:`button`,onClick:m,class:`cursor-pointer`,"aria-label":`Go to home`},[(0,t.renderSlot)(r.$slots,`logo`,{size:28},void 0,!0)]),(0,t.createElementVNode)(`button`,{type:`button`,onClick:i[0]||=(...e)=>(0,t.unref)(d)&&(0,t.unref)(d)(...e),class:(0,t.normalizeClass)([`p-2 rounded-lg cursor-pointer`,(0,t.unref)(s)?`text-gray-400 hover:bg-gray-800`:`text-gray-600 hover:bg-gray-100`]),"aria-label":(0,t.unref)(l)?`Close navigation menu`:`Open navigation menu`,"aria-expanded":(0,t.unref)(l)},[(0,t.unref)(l)?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(n.XMarkIcon),{key:1,class:`w-6 h-6`,"aria-hidden":`true`})):((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(n.Bars3Icon),{key:0,class:`w-6 h-6`,"aria-hidden":`true`}))],10,nt)],2),(0,t.unref)(l)?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:`mobile-overlay fixed inset-0 z-40 bg-black/50`,"aria-hidden":`true`,onClick:i[1]||=(...e)=>(0,t.unref)(u)&&(0,t.unref)(u)(...e)})):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`aside`,{role:`navigation`,"aria-label":`Main navigation`,class:(0,t.normalizeClass)([`fixed top-0 left-0 h-screen w-60 flex flex-col border-r transition-transform duration-300 lg:pointer-events-auto`,[(0,t.unref)(s)?`bg-gray-900 border-gray-800`:`bg-white border-gray-200`,(0,t.unref)(l)?`translate-x-0 z-50`:`-translate-x-full max-lg:pointer-events-none lg:translate-x-0 z-50`]])},[(0,t.createElementVNode)(`div`,rt,[(0,t.createElementVNode)(`div`,it,[(0,t.createElementVNode)(`button`,{type:`button`,onClick:m,class:`cursor-pointer`,"aria-label":`Go to home`},[(0,t.renderSlot)(r.$slots,`logo`,{size:52},void 0,!0)]),(0,t.createElementVNode)(`button`,{ref_key:`closeMobileButton`,ref:f,type:`button`,onClick:i[2]||=(...e)=>(0,t.unref)(u)&&(0,t.unref)(u)(...e),class:(0,t.normalizeClass)([`lg:hidden p-1.5 rounded-lg cursor-pointer absolute right-3 top-4 focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500`,(0,t.unref)(s)?`text-gray-400 hover:bg-gray-800`:`text-gray-500 hover:bg-gray-100`]),"aria-label":`Close navigation menu`},[(0,t.createVNode)((0,t.unref)(n.XMarkIcon),{class:`w-5 h-5`,"aria-hidden":`true`})],2)]),(0,t.createElementVNode)(`nav`,at,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.sections,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:e.title},[(0,t.createElementVNode)(`p`,ot,(0,t.toDisplayString)(e.title),1),(0,t.createElementVNode)(`ul`,st,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.items,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{key:e.name},[(0,t.createElementVNode)(`button`,{type:`button`,"aria-current":h(e.name)?`page`:void 0,onClick:t=>g(e.name),class:(0,t.normalizeClass)([`flex items-center gap-3 px-3 py-2.5 rounded-lg text-sm font-medium transition-colors w-full text-left cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500`,h(e.name)?(0,t.unref)(s)?`bg-emerald-500/15 text-emerald-300`:`bg-emerald-50 text-emerald-700`:(0,t.unref)(s)?`text-gray-400 hover:text-gray-100 hover:bg-gray-800`:`text-gray-600 hover:text-gray-900 hover:bg-gray-100`])},[((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.icon),{class:`w-[18px] h-[18px] shrink-0`})),(0,t.createTextVNode)(` `+(0,t.toDisplayString)(e.label),1)],10,ct)]))),128))])]))),128))]),(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`px-4 py-4 border-t transition-colors space-y-3`,(0,t.unref)(s)?`border-gray-800`:`border-gray-200`])},[e.showThemeToggle?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:0,type:`button`,onClick:i[3]||=(...e)=>(0,t.unref)(c)&&(0,t.unref)(c)(...e),title:(0,t.unref)(s)?`Switch to light mode`:`Switch to dark mode`,"aria-label":(0,t.unref)(s)?`Switch to light mode`:`Switch to dark mode`,"aria-pressed":(0,t.unref)(s),class:(0,t.normalizeClass)([`flex items-center gap-3 w-full px-3 py-2.5 rounded-lg text-sm font-medium transition-colors cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500`,(0,t.unref)(s)?`text-gray-400 hover:text-gray-100 hover:bg-gray-800`:`text-gray-600 hover:text-gray-900 hover:bg-gray-100`])},[(0,t.createTextVNode)((0,t.toDisplayString)((0,t.unref)(s)?`Switch to light`:`Switch to dark`)+` `,1),(0,t.createElementVNode)(`span`,{class:(0,t.normalizeClass)([`ml-auto relative w-9 h-5 rounded-full transition-colors`,(0,t.unref)(s)?`bg-emerald-600`:`bg-gray-300`])},[(0,t.createElementVNode)(`span`,{class:(0,t.normalizeClass)([`absolute top-0.5 left-0.5 w-4 h-4 rounded-full bg-white shadow-sm transition-transform duration-300`,(0,t.unref)(s)?`translate-x-4`:`translate-x-0`])},null,2)],2)],10,lt)):(0,t.createCommentVNode)(``,!0),(0,t.renderSlot)(r.$slots,`status`,{},void 0,!0),(0,t.renderSlot)(r.$slots,`footer`,{},()=>[e.appName||e.version?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:(0,t.normalizeClass)([`flex items-center justify-center gap-2 text-xs`,((0,t.unref)(s),`text-gray-500`)])},[(0,t.createElementVNode)(`span`,null,[(0,t.createTextVNode)((0,t.toDisplayString)(e.appName),1),e.appName&&e.version?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:0},[],64)):(0,t.createCommentVNode)(``,!0),e.version?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},[(0,t.createTextVNode)(`v`+(0,t.toDisplayString)(e.version),1)],64)):(0,t.createCommentVNode)(``,!0)])],2)):(0,t.createCommentVNode)(``,!0)],!0)],2)])],2)]))}}),[[`__scopeId`,`data-v-e27f267e`]]),dt={key:1,class:`mt-4 flex justify-center py-6`},ft={key:2,class:`mt-4 text-sm text-red-500`,role:`alert`},pt={key:3,class:`mt-4`},mt={class:`relative`},ht=[`placeholder`],gt={key:4,class:`mt-3 max-h-64 overflow-y-auto`},_t=[`onClick`],vt={class:`flex-1 min-w-0`},yt={key:0,class:`text-center py-6`},bt={key:1,class:`text-center py-6`},xt=[`disabled`],St=[`disabled`],Ct=(0,t.defineComponent)({__name:`BaseEntityPickerModal`,props:{title:{},message:{},items:{default:()=>[]},loader:{},excludeId:{},variant:{default:`emerald`},searchPlaceholder:{default:`Search...`},emptyMessage:{default:`No items available.`},noMatchMessage:{default:`No items match your search.`},confirmText:{default:`Select`},cancelText:{default:`Cancel`},submittingText:{default:`Working...`},submitting:{type:Boolean,default:!1}},emits:[`confirm`,`cancel`],setup(e,{emit:r}){let i=e,a=r,{isDark:o}=W(),s=G(),c=(0,t.ref)([]),l=(0,t.ref)(!1),u=(0,t.ref)(``),d=(0,t.ref)(null),f=(0,t.ref)(``),p=(0,t.ref)(null),m=(0,t.computed)(()=>{let e=i.loader?c.value:i.items;return i.excludeId?e.filter(e=>e.id!==i.excludeId):e}),h=(0,t.computed)(()=>m.value.filter(e=>e.label.toLowerCase().includes(f.value.toLowerCase()))),g={emerald:{iconBg:`bg-emerald-50`,iconText:`text-emerald-600`,inputFocus:`focus:border-emerald-500`,selectedRow:`bg-emerald-50 border border-emerald-200`,checkBg:`bg-emerald-600`,confirmActive:`bg-emerald-600 hover:bg-emerald-700 cursor-pointer`,confirmDisabled:`bg-emerald-400 cursor-not-allowed`},purple:{iconBg:`bg-purple-50`,iconText:`text-purple-600`,inputFocus:`focus:border-purple-500`,selectedRow:`bg-purple-50 border border-purple-200`,checkBg:`bg-purple-600`,confirmActive:`bg-purple-600 hover:bg-purple-700 cursor-pointer`,confirmDisabled:`bg-purple-400 cursor-not-allowed`},blue:{iconBg:`bg-blue-50`,iconText:`text-blue-600`,inputFocus:`focus:border-blue-500`,selectedRow:`bg-blue-50 border border-blue-200`,checkBg:`bg-blue-600`,confirmActive:`bg-blue-600 hover:bg-blue-700 cursor-pointer`,confirmDisabled:`bg-blue-400 cursor-not-allowed`},red:{iconBg:`bg-red-50`,iconText:`text-red-600`,inputFocus:`focus:border-red-500`,selectedRow:`bg-red-50 border border-red-200`,checkBg:`bg-red-600`,confirmActive:`bg-red-600 hover:bg-red-700 cursor-pointer`,confirmDisabled:`bg-red-400 cursor-not-allowed`},amber:{iconBg:`bg-amber-50`,iconText:`text-amber-600`,inputFocus:`focus:border-amber-500`,selectedRow:`bg-amber-50 border border-amber-200`,checkBg:`bg-amber-600`,confirmActive:`bg-amber-600 hover:bg-amber-700 cursor-pointer`,confirmDisabled:`bg-amber-400 cursor-not-allowed`}},_={emerald:{iconBg:`bg-emerald-900/30`,iconText:`text-emerald-400`,inputFocus:`focus:border-emerald-500`,selectedRow:`bg-emerald-500/15 border border-emerald-500/30`,checkBg:`bg-emerald-600`,confirmActive:`bg-emerald-600 hover:bg-emerald-700 cursor-pointer`,confirmDisabled:`bg-emerald-400 cursor-not-allowed`},purple:{iconBg:`bg-purple-900/30`,iconText:`text-purple-400`,inputFocus:`focus:border-purple-500`,selectedRow:`bg-purple-500/15 border border-purple-500/30`,checkBg:`bg-purple-600`,confirmActive:`bg-purple-600 hover:bg-purple-700 cursor-pointer`,confirmDisabled:`bg-purple-400 cursor-not-allowed`},blue:{iconBg:`bg-blue-900/30`,iconText:`text-blue-400`,inputFocus:`focus:border-blue-500`,selectedRow:`bg-blue-500/15 border border-blue-500/30`,checkBg:`bg-blue-600`,confirmActive:`bg-blue-600 hover:bg-blue-700 cursor-pointer`,confirmDisabled:`bg-blue-400 cursor-not-allowed`},red:{iconBg:`bg-red-900/30`,iconText:`text-red-400`,inputFocus:`focus:border-red-500`,selectedRow:`bg-red-500/15 border border-red-500/30`,checkBg:`bg-red-600`,confirmActive:`bg-red-600 hover:bg-red-700 cursor-pointer`,confirmDisabled:`bg-red-400 cursor-not-allowed`},amber:{iconBg:`bg-amber-900/30`,iconText:`text-amber-400`,inputFocus:`focus:border-amber-500`,selectedRow:`bg-amber-500/15 border border-amber-500/30`,checkBg:`bg-amber-600`,confirmActive:`bg-amber-600 hover:bg-amber-700 cursor-pointer`,confirmDisabled:`bg-amber-400 cursor-not-allowed`}},v=(0,t.computed)(()=>(o.value?_:g)[i.variant]);(0,t.onMounted)(async()=>{if(i.loader){l.value=!0;try{c.value=await i.loader()}catch{u.value=`Failed to load items`}finally{l.value=!1}}await(0,t.nextTick)(),p.value?.focus()});function y(){!d.value||i.submitting||a(`confirm`,d.value)}function b(){i.submitting||a(`cancel`)}return(r,i)=>((0,t.openBlock)(),(0,t.createBlock)(q,{title:e.title,"manual-close":e.submitting,onCancel:b},{icon:(0,t.withCtx)(()=>[(0,t.renderSlot)(r.$slots,`icon`,{},()=>[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`flex-shrink-0 flex h-12 w-12 items-center justify-center rounded-full`,v.value.iconBg])},[(0,t.createVNode)((0,t.unref)(n.FolderIcon),{class:(0,t.normalizeClass)([`h-6 w-6`,v.value.iconText]),"aria-hidden":`true`},null,8,[`class`])],2)])]),footer:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`button`,{type:`button`,disabled:e.submitting,class:(0,t.normalizeClass)([`inline-flex items-center justify-center px-4 py-2 border rounded-md shadow-sm text-sm font-medium transition-colors duration-150 disabled:opacity-50 disabled:cursor-not-allowed`,(0,t.unref)(s).ghostButton]),onClick:b},(0,t.toDisplayString)(e.cancelText),11,xt),(0,t.createElementVNode)(`button`,{type:`button`,disabled:!d.value||e.submitting,class:(0,t.normalizeClass)([`inline-flex items-center justify-center px-4 py-2 border border-transparent rounded-md shadow-sm text-sm font-medium text-white transition-colors duration-150`,!d.value||e.submitting?v.value.confirmDisabled:v.value.confirmActive]),onClick:y},(0,t.toDisplayString)(e.submitting?e.submittingText:e.confirmText),11,St)]),default:(0,t.withCtx)(()=>[e.message?((0,t.openBlock)(),(0,t.createElementBlock)(`p`,{key:0,class:(0,t.normalizeClass)([`text-sm`,(0,t.unref)(o)?`text-gray-300`:`text-gray-600`])},(0,t.toDisplayString)(e.message),3)):(0,t.createCommentVNode)(``,!0),l.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,dt,[(0,t.createVNode)(F)])):u.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ft,(0,t.toDisplayString)(u.value),1)):(0,t.createCommentVNode)(``,!0),!l.value&&!u.value&&m.value.length>0?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,pt,[(0,t.createElementVNode)(`div`,mt,[(0,t.createVNode)((0,t.unref)(n.MagnifyingGlassIcon),{class:(0,t.normalizeClass)([`absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4`,(0,t.unref)(s).dimText]),"aria-hidden":`true`},null,8,[`class`]),(0,t.withDirectives)((0,t.createElementVNode)(`input`,{ref_key:`searchInputRef`,ref:p,"onUpdate:modelValue":i[0]||=e=>f.value=e,type:`text`,placeholder:e.searchPlaceholder,class:(0,t.normalizeClass)([`w-full pl-9 pr-3 py-2 text-sm rounded-md border outline-none transition-colors`,[(0,t.unref)(o)?`bg-gray-800 border-gray-600 text-gray-200 placeholder-gray-500`:`bg-white border-gray-300 text-gray-700 placeholder-gray-400`,v.value.inputFocus]])},null,10,ht),[[t.vModelText,f.value]])])])):(0,t.createCommentVNode)(``,!0),!l.value&&!u.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,gt,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(h.value,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:e.id,class:(0,t.normalizeClass)([`flex items-center gap-3 px-3 py-2.5 rounded-lg cursor-pointer transition-colors`,[d.value===e.id?v.value.selectedRow:(0,t.unref)(o)?`hover:bg-gray-800 border border-transparent`:`hover:bg-gray-50 border border-transparent`]]),onClick:t=>d.value=e.id},[(0,t.createVNode)((0,t.unref)(n.FolderIcon),{class:(0,t.normalizeClass)([`w-5 h-5 flex-shrink-0`,(0,t.unref)(s).dimText])},null,8,[`class`]),(0,t.createElementVNode)(`div`,vt,[(0,t.createElementVNode)(`p`,{class:(0,t.normalizeClass)([`text-sm font-medium truncate`,(0,t.unref)(s).bodyText])},(0,t.toDisplayString)(e.label),3)]),d.value===e.id?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:(0,t.normalizeClass)([`w-5 h-5 rounded-full flex items-center justify-center`,v.value.checkBg])},[...i[1]||=[(0,t.createElementVNode)(`svg`,{class:`w-3 h-3 text-white`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,"stroke-width":`3`,"aria-hidden":`true`},[(0,t.createElementVNode)(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,d:`M5 13l4 4L19 7`})],-1)]],2)):(0,t.createCommentVNode)(``,!0)],10,_t))),128)),m.value.length===0?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,yt,[(0,t.createElementVNode)(`p`,{class:(0,t.normalizeClass)([`text-sm`,(0,t.unref)(s).dimText])},(0,t.toDisplayString)(e.emptyMessage),3)])):h.value.length===0?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,bt,[(0,t.createElementVNode)(`p`,{class:(0,t.normalizeClass)([`text-sm`,(0,t.unref)(s).dimText])},(0,t.toDisplayString)(e.noMatchMessage),3)])):(0,t.createCommentVNode)(``,!0)])):(0,t.createCommentVNode)(``,!0)]),_:3},8,[`title`,`manual-close`]))}}),wt={href:`#main-content`,class:`sr-only focus:not-sr-only focus:fixed focus:top-2 focus:left-2 focus:z-[100] focus:px-3 focus:py-2 focus:rounded-md focus:bg-emerald-600 focus:text-white focus:shadow-lg`},Tt=[`inert`],Et=(0,t.defineComponent)({__name:`BaseAppLayout`,props:{showSidebar:{type:Boolean,default:!0},skipLinkLabel:{default:`Skip to main content`}},setup(e){let n=e,{isDark:r}=W(),{mobileOpen:i}=Y(),a=(0,t.computed)(()=>n.showSidebar);return(n,o)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`min-h-screen transition-colors duration-300`,(0,t.unref)(r)?`bg-gray-950 text-gray-100`:`bg-gray-50 text-gray-800`])},[(0,t.createElementVNode)(`a`,wt,(0,t.toDisplayString)(e.skipLinkLabel),1),a.value?(0,t.renderSlot)(n.$slots,`sidebar`,{key:0}):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`main`,{id:`main-content`,tabindex:`-1`,inert:a.value&&(0,t.unref)(i)?!0:void 0,class:(0,t.normalizeClass)(a.value?`pt-14 lg:pt-0 lg:ml-60`:``)},[(0,t.renderSlot)(n.$slots,`default`)],10,Tt)],2))}}),Dt={class:`flex items-center justify-between mb-8`},Ot={class:`flex items-center gap-3`},kt={class:`flex items-center gap-2`},At=(0,t.defineComponent)({__name:`BasePageHeader`,props:{title:{},subtitle:{default:``},iconColor:{default:`emerald`},maxWidthClass:{default:`max-w-4xl`}},setup(e){let n=e,{isDark:r}=W(),i=G(),a=(0,t.computed)(()=>{let e={emerald:{dark:`bg-emerald-500/10`,light:`bg-emerald-50`},sky:{dark:`bg-sky-500/10`,light:`bg-sky-50`},red:{dark:`bg-red-500/10`,light:`bg-red-50`},amber:{dark:`bg-amber-500/10`,light:`bg-amber-50`}}[n.iconColor];return r.value?e.dark:e.light}),o=(0,t.computed)(()=>{let e={emerald:{dark:`text-emerald-400`,light:`text-emerald-600`},sky:{dark:`text-sky-400`,light:`text-sky-600`},red:{dark:`text-red-400`,light:`text-red-500`},amber:{dark:`text-amber-400`,light:`text-amber-600`}}[n.iconColor];return r.value?e.dark:e.light});return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`mx-auto px-4 sm:px-6`,e.maxWidthClass])},[(0,t.createElementVNode)(`div`,Dt,[(0,t.createElementVNode)(`div`,Ot,[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`w-10 h-10 rounded-lg flex items-center justify-center`,a.value])},[(0,t.renderSlot)(n.$slots,`icon`,{iconClass:o.value})],2),(0,t.createElementVNode)(`div`,null,[(0,t.createElementVNode)(`h1`,{class:(0,t.normalizeClass)([`text-2xl font-bold`,(0,t.unref)(i).primaryTextSoft])},(0,t.toDisplayString)(e.title),3),e.subtitle?((0,t.openBlock)(),(0,t.createElementBlock)(`p`,{key:0,class:(0,t.normalizeClass)([`text-sm`,(0,t.unref)(i).dimTextAlt])},(0,t.toDisplayString)(e.subtitle),3)):(0,t.createCommentVNode)(``,!0)])]),(0,t.createElementVNode)(`div`,kt,[(0,t.renderSlot)(n.$slots,`actions`)])])],2))}}),jt=[`type`,`disabled`,`title`],Mt={key:0},Nt=(0,t.defineComponent)({__name:`BaseToolbarButton`,props:{label:{default:``},variant:{default:`neutral`},disabled:{type:Boolean,default:!1},title:{default:void 0},type:{default:`button`}},emits:[`click`],setup(e){let n=e,{isDark:r}=W(),i=(0,t.computed)(()=>{let e={neutral:{dark:`bg-gray-800 text-gray-100 border-gray-700 hover:bg-gray-700`,light:`bg-white text-gray-700 border-gray-200 hover:bg-gray-100`},danger:{dark:`bg-red-600 text-white border-red-600 hover:bg-red-500`,light:`bg-red-600 text-white border-red-600 hover:bg-red-700`}}[n.variant];return r.value?e.dark:e.light});return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{type:e.type,disabled:e.disabled,title:e.title,class:(0,t.normalizeClass)([`inline-flex shrink-0 items-center gap-2 px-3 py-2 rounded-lg text-sm font-medium border transition-colors cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed whitespace-nowrap`,i.value]),onClick:r[0]||=e=>n.$emit(`click`,e)},[(0,t.renderSlot)(n.$slots,`icon`,{iconClass:`w-4 h-4`}),e.label?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Mt,(0,t.toDisplayString)(e.label),1)):(0,t.createCommentVNode)(``,!0)],10,jt))}}),Pt=[`type`,`disabled`,`title`,`aria-label`],Ft={key:0},It=(0,t.defineComponent)({__name:`BaseActionButton`,props:{label:{default:``},color:{default:`emerald`},disabled:{type:Boolean,default:!1},fullWidth:{type:Boolean,default:!1},title:{default:void 0},ariaLabel:{default:void 0},type:{default:`button`}},emits:[`click`],setup(e){let n=e,{isDark:r}=W(),i=(0,t.computed)(()=>{let e={emerald:{dark:`text-emerald-400 hover:bg-emerald-500/10`,light:`text-emerald-600 hover:bg-emerald-50`},sky:{dark:`text-sky-400 hover:bg-sky-500/10`,light:`text-sky-600 hover:bg-sky-50`},indigo:{dark:`text-indigo-400 hover:bg-indigo-500/10`,light:`text-indigo-600 hover:bg-indigo-50`},teal:{dark:`text-teal-400 hover:bg-teal-500/10`,light:`text-teal-600 hover:bg-teal-50`},purple:{dark:`text-purple-400 hover:bg-purple-500/10`,light:`text-purple-600 hover:bg-purple-50`},red:{dark:`text-red-400 hover:bg-red-500/10`,light:`text-red-500 hover:bg-red-50`},amber:{dark:`text-amber-400 hover:bg-amber-500/10`,light:`text-amber-600 hover:bg-amber-50`},amberStrong:{dark:`text-amber-300 hover:bg-amber-500/10`,light:`text-amber-700 hover:bg-amber-50`}}[n.color];return r.value?e.dark:e.light}),a=(0,t.computed)(()=>{let e={emerald:{dark:`text-emerald-400`,light:`text-emerald-600`},sky:{dark:`text-sky-400`,light:`text-sky-600`},indigo:{dark:`text-indigo-400`,light:`text-indigo-600`},teal:{dark:`text-teal-400`,light:`text-teal-600`},purple:{dark:`text-purple-400`,light:`text-purple-600`},red:{dark:`text-red-400`,light:`text-red-500`},amber:{dark:`text-amber-400`,light:`text-amber-600`},amberStrong:{dark:`text-amber-300`,light:`text-amber-700`}}[n.color];return r.value?e.dark:e.light}),o=(0,t.computed)(()=>n.disabled?`${a.value} opacity-50 cursor-not-allowed`:`${i.value} cursor-pointer`);return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{type:e.type,disabled:e.disabled,title:e.title,"aria-label":e.ariaLabel,class:(0,t.normalizeClass)([`inline-flex items-center justify-center gap-1.5 px-3 py-1.5 rounded-lg text-xs font-medium transition-colors`,[e.fullWidth?`flex-1`:``,o.value]]),onClick:r[0]||=e=>n.$emit(`click`,e)},[(0,t.renderSlot)(n.$slots,`icon`,{iconClass:`w-4 h-4`}),e.label?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Ft,(0,t.toDisplayString)(e.label),1)):(0,t.createCommentVNode)(``,!0)],10,Pt))}});function Lt(e,n=300){let r=(0,t.ref)(e.value),i=null;return(0,t.watch)(e,e=>{i&&clearTimeout(i),i=setTimeout(()=>{r.value=e,i=null},n)}),(0,t.onScopeDispose)(()=>{i&&=(clearTimeout(i),null)}),r}function Rt(e=3e3){let n=(0,t.ref)(!1),r=(0,t.ref)(``),i=(0,t.ref)(I.SUCCESS),a=null;function o(){a&&=(clearTimeout(a),null)}function s(t,s=I.SUCCESS,c=e){r.value=t,i.value=s,n.value=!0,o(),a=setTimeout(()=>{n.value=!1,a=null},c)}return(0,t.onScopeDispose)(()=>{o()}),{showToast:n,toastMessage:r,toastType:i,showToastMessage:s}}var zt=function(e){return e.WIN=`WIN`,e.LOSE=`LOSE`,e}({}),Bt={GET:`bg-blue-600`,POST:`bg-emerald-600`,PUT:`bg-amber-600`,DELETE:`bg-red-600`,PATCH:`bg-purple-600`,HEAD:`bg-gray-600`},Vt={GET:`bg-blue-500`,POST:`bg-green-500`,PUT:`bg-yellow-500`,DELETE:`bg-red-500`,PATCH:`bg-purple-500`,HEAD:`bg-gray-500`};function Ht(e){return e?Bt[e.toUpperCase()]??`bg-gray-600`:`bg-gray-600`}function Ut(e){return e?Vt[e.toUpperCase()]??`bg-gray-500`:`bg-gray-500`}function X(e){let t=e??0;return t>=200&&t<300?`bg-emerald-600`:t>=300&&t<400?`bg-blue-600`:t>=400&&t<500?`bg-amber-600`:t>=500?`bg-red-600`:`bg-gray-600`}function Wt(e,t){let n=e??200;return t?n>=200&&n<300?`bg-green-500/15 text-green-400`:n>=300&&n<400?`bg-blue-500/15 text-blue-400`:n>=400&&n<500?`bg-yellow-500/15 text-yellow-400`:`bg-red-500/15 text-red-400`:n>=200&&n<300?`bg-green-100 text-green-800`:n>=300&&n<400?`bg-blue-100 text-blue-800`:n>=400&&n<500?`bg-yellow-100 text-yellow-800`:`bg-red-100 text-red-800`}var Gt=new Set([`A`,`B`,`STRONG`,`I`,`EM`,`CODE`,`PRE`,`BR`,`P`,`UL`,`OL`,`LI`,`SPAN`,`DIV`]),Kt=new Set([`SCRIPT`,`STYLE`,`IFRAME`,`OBJECT`,`EMBED`,`NOSCRIPT`,`TEMPLATE`]),qt={A:new Set([`href`,`title`])};function Z(e){let t=e.trim().toLowerCase();return t.startsWith(`http://`)||t.startsWith(`https://`)||t.startsWith(`mailto:`)||t.startsWith(`tel:`)||t.startsWith(`/`)||t.startsWith(`#`)||t===``}function Q(e){if(e.nodeType!==Node.ELEMENT_NODE)return;let t=e,n=t.tagName.toUpperCase();if(!Gt.has(n)){Kt.has(n)?t.remove():t.replaceWith(document.createTextNode(t.textContent??``));return}let r=qt[n]??new Set;for(let e of Array.from(t.attributes)){if(!r.has(e.name.toLowerCase())){t.removeAttribute(e.name);continue}n===`A`&&e.name.toLowerCase()===`href`&&!Z(e.value)&&t.removeAttribute(e.name)}n===`A`&&t.hasAttribute(`href`)&&(t.setAttribute(`rel`,`noopener noreferrer`),t.setAttribute(`target`,`_blank`));for(let e of Array.from(t.childNodes))Q(e)}function Jt(e){if(!e)return``;let t=new DOMParser().parseFromString(`<div>${e}</div>`,`text/html`).body.firstElementChild;if(!t)return``;for(let e of Array.from(t.childNodes))Q(e);return t.innerHTML}var $=`—`;function Yt(e,t=4){if(e==null)return $;let n=typeof e==`string`?Number(e):e;return isFinite(n)?n.toLocaleString(void 0,{minimumFractionDigits:t,maximumFractionDigits:t}):$}function Xt(e){if(e==null||e===``)return $;try{return new Date(e).toLocaleString()}catch{return String(e)}}function Zt(e){return new Date(e).toLocaleString(void 0,{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`})}function Qt(e){return new Date(e).toLocaleDateString(void 0,{month:`short`,day:`numeric`})}function $t(e){if(!isFinite(e)||e===0)return e.toFixed(2);let t=Math.abs(e),n=2;return t<1e-4?n=8:t<.01?n=6:t<1?n=4:t<100&&(n=3),e.toLocaleString(void 0,{minimumFractionDigits:n,maximumFractionDigits:n})}function en(e,t=2){return`${e>=0?`+`:``}${e.toFixed(t)}%`}function tn(e){return`${e>=0?`+`:``}$${e.toFixed(2)}`}function nn(e){if(e.buyPrice==null||e.lastPrice==null||e.filledQty==null)return{pnlUsd:null,pnlPct:null};let t=Number(e.buyPrice),n=Number(e.lastPrice),r=Number(e.filledQty);return!isFinite(t)||!isFinite(n)||!isFinite(r)||t<=0?{pnlUsd:null,pnlPct:null}:{pnlUsd:(n-t)*r,pnlPct:(n-t)/t*100}}e.AlertEnum=a,e.BaseActionButton=It,e.BaseAlert=u,e.BaseAppLayout=Et,e.BaseBadge=f,e.BaseBadgeEnum=zt,e.BaseBreadcrumb=g,e.BaseButton=w,e.BaseButtonEnum=_,e.BaseButtonSizeEnum=v,e.BaseCollapsibleSection=We,e.BaseConfirmModal=Je,e.BaseEntityPickerModal=Ct,e.BaseLine=oe,e.BaseLoginEnum=se,e.BaseLogo=le,e.BaseLogoEnum=E,e.BaseModal=A,e.BaseModalEnum=D,e.BaseModalShell=q,e.BaseNotFoundPage=tt,e.BasePageHeader=At,e.BaseRow=j,e.BaseSidebar=ut,e.BaseSpinner=F,e.BaseTextInputModal=Qe,e.BaseToast=me,e.BaseToastEnum=I,e.BaseToolbarButton=Nt,e.ColoredSquares=ge,e.ColorsEnums=o,e.EarningsCard=Ce,e.EuroAmount=Oe,e.LineEnum=T,e.Pagination=je,e.PositioningEnum=L,e.TrendArrow=Fe,e.computePnL=nn,e.fmtDate=Xt,e.fmtDateShort=Qt,e.fmtDateTime=Zt,e.fmtNumber=Yt,e.fmtPct=en,e.fmtPrice=$t,e.fmtUsd=tn,e.getBaseColor=s,e.getBaseColorOf=c,e.isSafeHref=Z,e.methodBadgeBright=Ut,e.methodBadgeSolid=Ht,e.sanitizeHtml=Jt,e.statusBadgeSolid=X,e.statusBadgeTinted=Wt,e.useDebouncedRef=Lt,e.useEscapeKey=K,e.useMobileSidebar=Y,e.useTheme=W,e.useThemeClasses=G,e.useToast=Rt});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mgv-backoffice",
3
- "version": "1.6.0",
3
+ "version": "1.8.0",
4
4
  "description": "Shared Vue 3 UI component library",
5
5
  "type": "module",
6
6
  "main": "./dist/ui-lib.umd.cjs",
@@ -7,6 +7,7 @@ interface Props {
7
7
  subtitle?: string
8
8
  badge?: string
9
9
  currency?: string
10
+ decimals?: number
10
11
  }
11
12
 
12
13
  const props = withDefaults(defineProps<Props>(), {
@@ -15,22 +16,23 @@ const props = withDefaults(defineProps<Props>(), {
15
16
  subtitle: 'Lifetime commission',
16
17
  badge: '',
17
18
  currency: '$',
19
+ decimals: 2,
18
20
  })
19
21
 
20
22
  const formattedAmount = computed(() => {
21
23
  return props.currency + props.amount.toLocaleString('en-US', {
22
- minimumFractionDigits: 2,
23
- maximumFractionDigits: 2,
24
+ minimumFractionDigits: props.decimals,
25
+ maximumFractionDigits: props.decimals,
24
26
  })
25
27
  })
26
28
  </script>
27
29
 
28
30
  <template>
29
- <div class="relative rounded-xl border-2 border-dashed border-orange-300 bg-white p-6">
31
+ <div class="relative rounded-xl border-2 border-dashed border-orange-300 bg-white p-6 dark:border-orange-700 dark:bg-slate-800">
30
32
  <!-- Badge -->
31
33
  <div
32
34
  v-if="badge"
33
- class="absolute right-4 top-4 rounded-md bg-orange-100 px-3 py-1 text-xs font-bold tracking-wide text-orange-500"
35
+ class="absolute right-4 top-4 rounded-md bg-orange-100 px-3 py-1 text-xs font-bold tracking-wide text-orange-500 dark:bg-orange-900/40 dark:text-orange-400"
34
36
  >
35
37
  {{ badge }}
36
38
  </div>
@@ -39,23 +41,23 @@ const formattedAmount = computed(() => {
39
41
  <div class="flex items-start justify-between">
40
42
  <div>
41
43
  <!-- Title -->
42
- <p class="text-sm font-bold tracking-wide text-gray-800">
44
+ <p class="text-sm font-bold tracking-wide text-gray-800 dark:text-slate-200">
43
45
  {{ title }}
44
46
  </p>
45
47
 
46
48
  <!-- Amount -->
47
- <p class="mt-1 text-4xl font-bold text-gray-400">
49
+ <p class="mt-1 text-4xl font-bold text-gray-400 dark:text-slate-300">
48
50
  {{ formattedAmount }}
49
51
  </p>
50
52
 
51
53
  <!-- Subtitle -->
52
- <p class="mt-1 text-sm font-medium text-orange-400">
54
+ <p class="mt-1 text-sm font-medium text-orange-400 dark:text-orange-400">
53
55
  {{ subtitle }}
54
56
  </p>
55
57
  </div>
56
58
 
57
59
  <!-- Chart icon -->
58
- <div class="mt-6 flex h-12 w-12 items-center justify-center rounded-xl bg-orange-50">
60
+ <div class="mt-6 flex h-12 w-12 items-center justify-center rounded-xl bg-orange-50 dark:bg-orange-900/30">
59
61
  <svg
60
62
  class="h-6 w-6 text-orange-400"
61
63
  viewBox="0 0 24 24"
package/src/index.ts CHANGED
@@ -66,3 +66,14 @@ export {
66
66
  statusBadgeTinted,
67
67
  } from './utils/httpColors'
68
68
  export { sanitizeHtml, isSafeHref } from './utils/sanitizeHtml'
69
+ export {
70
+ fmtNumber,
71
+ fmtDate,
72
+ fmtDateTime,
73
+ fmtDateShort,
74
+ fmtPrice,
75
+ fmtPct,
76
+ fmtUsd,
77
+ } from './utils/format'
78
+ export { computePnL } from './utils/pnl'
79
+ export type { PnL, PnLInputs } from './utils/pnl'
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Locale-aware display formatters shared across back-office tables, logs and
3
+ * charts. All are pure and dependency-free; they take the "missing value"
4
+ * branch seriously so callers can hand them raw API values (which may be
5
+ * null/strings) without pre-sanitising.
6
+ */
7
+
8
+ const EM_DASH = '—'
9
+
10
+ /**
11
+ * Format a number with a fixed number of fraction digits, rendering an
12
+ * em-dash for null/undefined/non-finite input. Accepts numeric strings so
13
+ * BigDecimal-as-string API payloads pass through unchanged.
14
+ */
15
+ export function fmtNumber(n: number | string | null | undefined, digits = 4): string {
16
+ if (n === null || n === undefined) return EM_DASH
17
+ const v = typeof n === 'string' ? Number(n) : n
18
+ if (!isFinite(v)) return EM_DASH
19
+ return v.toLocaleString(undefined, {
20
+ minimumFractionDigits: digits,
21
+ maximumFractionDigits: digits,
22
+ })
23
+ }
24
+
25
+ /**
26
+ * Format an ISO date string or epoch value as a locale date-time, falling
27
+ * back to the raw value on parse failure and an em-dash on empty input.
28
+ * Accepts numbers so epoch-millis timestamps pass through unchanged.
29
+ */
30
+ export function fmtDate(s: string | number | null | undefined): string {
31
+ if (s === null || s === undefined || s === '') return EM_DASH
32
+ try {
33
+ return new Date(s).toLocaleString()
34
+ } catch {
35
+ return String(s)
36
+ }
37
+ }
38
+
39
+ /**
40
+ * Format an epoch-millis timestamp as a compact "Mon D, HH:MM" label —
41
+ * the form used for chart axes and tooltips.
42
+ */
43
+ export function fmtDateTime(ms: number): string {
44
+ return new Date(ms).toLocaleString(undefined, {
45
+ month: 'short',
46
+ day: 'numeric',
47
+ hour: '2-digit',
48
+ minute: '2-digit',
49
+ })
50
+ }
51
+
52
+ /**
53
+ * Format an epoch-millis timestamp as a short "Mon D" calendar label.
54
+ */
55
+ export function fmtDateShort(ms: number): string {
56
+ return new Date(ms).toLocaleDateString(undefined, { month: 'short', day: 'numeric' })
57
+ }
58
+
59
+ /**
60
+ * Format a price with precision that scales to magnitude: penny stocks and
61
+ * sub-cent crypto get more decimals so the value never collapses to "0.00".
62
+ */
63
+ export function fmtPrice(n: number): string {
64
+ if (!isFinite(n) || n === 0) return n.toFixed(2)
65
+ const abs = Math.abs(n)
66
+ let digits = 2
67
+ if (abs < 0.0001) digits = 8
68
+ else if (abs < 0.01) digits = 6
69
+ else if (abs < 1) digits = 4
70
+ else if (abs < 100) digits = 3
71
+ return n.toLocaleString(undefined, {
72
+ minimumFractionDigits: digits,
73
+ maximumFractionDigits: digits,
74
+ })
75
+ }
76
+
77
+ /**
78
+ * Format a percentage with an explicit sign (e.g. "+2.50%", "-1.00%").
79
+ */
80
+ export function fmtPct(n: number, digits = 2): string {
81
+ return `${n >= 0 ? '+' : ''}${n.toFixed(digits)}%`
82
+ }
83
+
84
+ /**
85
+ * Format a signed USD amount with an explicit leading sign (e.g. "+$5.00").
86
+ */
87
+ export function fmtUsd(v: number): string {
88
+ return `${v >= 0 ? '+' : ''}$${v.toFixed(2)}`
89
+ }
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Unrealised profit-and-loss for an open position, expressed in both
3
+ * absolute currency and percentage terms.
4
+ */
5
+ export interface PnL {
6
+ pnlUsd: number | null
7
+ pnlPct: number | null
8
+ }
9
+
10
+ /** Minimal position shape needed to compute mark-to-market PnL. */
11
+ export interface PnLInputs {
12
+ buyPrice: number | string | null | undefined
13
+ lastPrice: number | string | null | undefined
14
+ filledQty: number | string | null | undefined
15
+ }
16
+
17
+ /**
18
+ * Compute unrealised PnL from the latest observed market price. Returns
19
+ * `{ null, null }` when any input is missing or non-finite (a freshly opened
20
+ * position not yet priced, a corrupt row, etc.) so the UI can render a
21
+ * placeholder instead of a bogus figure.
22
+ *
23
+ * The explicit null guard matters: `Number(null) === 0`, which would
24
+ * otherwise silently produce PnL = -buyPrice * qty when a price is absent.
25
+ */
26
+ export function computePnL(row: PnLInputs): PnL {
27
+ if (row.buyPrice == null || row.lastPrice == null || row.filledQty == null) {
28
+ return { pnlUsd: null, pnlPct: null }
29
+ }
30
+ const buy = Number(row.buyPrice)
31
+ const last = Number(row.lastPrice)
32
+ const qty = Number(row.filledQty)
33
+ if (!isFinite(buy) || !isFinite(last) || !isFinite(qty) || buy <= 0) {
34
+ return { pnlUsd: null, pnlPct: null }
35
+ }
36
+ return {
37
+ pnlUsd: (last - buy) * qty,
38
+ pnlPct: ((last - buy) / buy) * 100,
39
+ }
40
+ }