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.
- package/dist/src/components/EarningsCard.vue.d.ts +2 -0
- package/dist/src/index.d.ts +3 -0
- package/dist/src/utils/format.d.ts +40 -0
- package/dist/src/utils/pnl.d.ts +24 -0
- package/dist/ui-lib.css +1 -1
- package/dist/ui-lib.js +72 -8
- package/dist/ui-lib.umd.cjs +1 -1
- package/package.json +1 -1
- package/src/components/EarningsCard.vue +10 -8
- package/src/index.ts +11 -0
- package/src/utils/format.ts +89 -0
- package/src/utils/pnl.ts +40 -0
|
@@ -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;
|
package/dist/src/index.d.ts
CHANGED
|
@@ -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:
|
|
790
|
-
maximumFractionDigits:
|
|
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
|
-
|
|
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 };
|
package/dist/ui-lib.umd.cjs
CHANGED
|
@@ -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
|
@@ -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:
|
|
23
|
-
maximumFractionDigits:
|
|
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
|
+
}
|
package/src/utils/pnl.ts
ADDED
|
@@ -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
|
+
}
|