@digo-labs/common 0.1.15 → 0.1.16
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/constants.d.ts +5 -0
- package/dist/index.js +77 -73
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/constants.d.ts
CHANGED
|
@@ -5,6 +5,11 @@ export declare const DIGO_ADMIN_SECRET = "X-Admin-Secret";
|
|
|
5
5
|
export declare const DIGO_STORAGE_BUCKET_SUFFIX = "-digo-labs-storage";
|
|
6
6
|
export declare const DIGO_COLORS: string[];
|
|
7
7
|
export declare const WS_URL = "wss://ws.digo-labs.com";
|
|
8
|
+
export declare const REPLICATE_PROXY: {
|
|
9
|
+
url: string;
|
|
10
|
+
targetHeader: string;
|
|
11
|
+
hosts: RegExp;
|
|
12
|
+
};
|
|
8
13
|
export declare const AWS_DEFAULT_REGION = "us-east-1";
|
|
9
14
|
export declare const BREAKPOINTS: Record<Breakpoint, number>;
|
|
10
15
|
export declare const TYPO_CLASS_GROUPS: ClassGroups;
|
package/dist/index.js
CHANGED
|
@@ -194,18 +194,22 @@ for (var d = class {
|
|
|
194
194
|
behavior: "smooth"
|
|
195
195
|
});
|
|
196
196
|
}
|
|
197
|
-
}, p = "https://api.digo-labs.com",
|
|
197
|
+
}, p = "https://api.digo-labs.com", m = "X-Digo-App", ee = "X-Admin-Secret", te = "-digo-labs-storage", ne = [
|
|
198
198
|
"#58C2E3",
|
|
199
199
|
"#79F2A9",
|
|
200
200
|
"#985EFF",
|
|
201
201
|
"#BDF279"
|
|
202
|
-
],
|
|
202
|
+
], re = "wss://ws.digo-labs.com", ie = {
|
|
203
|
+
url: `${p}/api/proxy/replicate`,
|
|
204
|
+
targetHeader: "x-replicate-target-url",
|
|
205
|
+
hosts: /(\.|^)replicate\.com$/
|
|
206
|
+
}, ae = "us-east-1", oe = {
|
|
203
207
|
sm: 640,
|
|
204
208
|
md: 768,
|
|
205
209
|
lg: 1024,
|
|
206
210
|
xl: 1280,
|
|
207
211
|
"2xl": 1536
|
|
208
|
-
},
|
|
212
|
+
}, h = {
|
|
209
213
|
"font-size": [{ typo: [
|
|
210
214
|
"1",
|
|
211
215
|
"2",
|
|
@@ -332,9 +336,9 @@ for (var d = class {
|
|
|
332
336
|
icon: "code",
|
|
333
337
|
name: "Text"
|
|
334
338
|
}
|
|
335
|
-
},
|
|
339
|
+
}, g = /* @__PURE__ */ function(e) {
|
|
336
340
|
return e.Navigation = "Navigation", e.Actions = "Actions", e.Status = "Status", e.Media = "Media", e.Files = "Files", e.UI = "UI", e.Brands = "Brands", e.Programming = "Programming", e.Tools = "Tools", e.Data = "Data", e.Communication = "Communication", e.Design = "Design", e.AI = "AI", e.Numbers = "Numbers", e.Misc = "Misc", e;
|
|
337
|
-
}(
|
|
341
|
+
}(g || {}), _ = {
|
|
338
342
|
arrowUp: {
|
|
339
343
|
category: "Navigation",
|
|
340
344
|
icon: "icon-[lucide--arrow-up]"
|
|
@@ -2069,35 +2073,35 @@ for (var d = class {
|
|
|
2069
2073
|
}
|
|
2070
2074
|
}, le = class {
|
|
2071
2075
|
static getIcon(e) {
|
|
2072
|
-
return e in
|
|
2076
|
+
return e in _ ? _[e].icon : e;
|
|
2073
2077
|
}
|
|
2074
2078
|
static getCategory(e) {
|
|
2075
|
-
return
|
|
2079
|
+
return _[e].category;
|
|
2076
2080
|
}
|
|
2077
2081
|
static getCategories() {
|
|
2078
2082
|
let e = /* @__PURE__ */ new Set();
|
|
2079
|
-
for (let t of Object.values(
|
|
2080
|
-
return Object.values(
|
|
2083
|
+
for (let t of Object.values(_)) e.add(t.category);
|
|
2084
|
+
return Object.values(g).filter((t) => e.has(t));
|
|
2081
2085
|
}
|
|
2082
2086
|
static getByCategory() {
|
|
2083
2087
|
let e = {};
|
|
2084
|
-
for (let t of Object.values(
|
|
2085
|
-
for (let [t, n] of Object.entries(
|
|
2088
|
+
for (let t of Object.values(g)) e[t] = [];
|
|
2089
|
+
for (let [t, n] of Object.entries(_)) e[n.category].push({
|
|
2086
2090
|
id: t,
|
|
2087
2091
|
category: n.category,
|
|
2088
2092
|
icon: n.icon
|
|
2089
2093
|
});
|
|
2090
2094
|
return e;
|
|
2091
2095
|
}
|
|
2092
|
-
}, _ = "@plugin \"@iconify/tailwind4\";\n\n@plugin \"tailwindcss-animate\";\n\n@source inline(\"typo-1 typo-2 typo-3 typo-4 typo-5 typo-6 typo-7 typo-8 typo-9 typo-10 typo-11 typo-12 typo-13 typo-14 typo-15 typo-16 typo-17 typo-18 typo-weight-100 typo-weight-200 typo-weight-300 typo-weight-400 typo-weight-500 typo-weight-600 typo-weight-700 typo-weight-800 typo-weight-900\");\n\n@source \"./index.js\";\n@source \"./**/*.{ts,tsx}\";\n\n@theme static {\n --font-code: 'geist-mono', monospace;\n --font-geist: 'geist', sans-serif;\n --font-geist-mono: 'geist-mono', monospace;\n --font-pixel-circle: 'geist-pixel-circle', monospace;\n --font-pixel-grid: 'geist-pixel-grid', monospace;\n --font-pixel-line: 'geist-pixel-line', monospace;\n --font-pixel-square: 'geist-pixel-square', monospace;\n --font-pixel-triangle: 'geist-pixel-triangle', monospace;\n --font-clash-grotesk: 'clash-grotesk-variable', sans-serif;\n --font-nippo: 'nippo', sans-serif;\n --font-humane: 'humane-variable', sans-serif;\n --font-general-sans: 'general-sans', sans-serif;\n --font-kode-mono: 'kode-mono-vf', monospace;\n --font-aalto: 'Aalto', display;\n --font-being: 'being', display;\n --font-benzol: 'benzol', display;\n --font-half: 'half', display;\n --font-miratrix: 'miratrix', display;\n --font-triakis: 'triakis', display;\n --font-yeager: 'yeager', display;\n --font-karmatic-arcade: 'karmatic-arcade-regular', display;\n --font-digital-7: 'digital-7-mono', monospace;\n --font-pixelony: 'pixelony', display;\n --font-unknown: 'unknown', display;\n --font-disket: 'disket', display;\n --font-heming: 'heming', display;\n --font-obrazec: 'obrazec', display;\n\n --color-neutral-1: #111111;\n --color-neutral-2: #191919;\n --color-neutral-3: #222222;\n --color-neutral-4: #2a2a2a;\n --color-neutral-5: #313131;\n --color-neutral-6: #3a3a3a;\n --color-neutral-7: #484848;\n --color-neutral-8: #606060;\n --color-neutral-9: #6e6e6e;\n --color-neutral-10: #7b7b7b;\n --color-neutral-11: #b4b4b4;\n --color-neutral-12: #eeeeee;\n\n --color-neutralA-1: #FFFFFF05;\n --color-neutralA-2: #FFFFFF09;\n --color-neutralA-3: #FFFFFF12;\n --color-neutralA-4: #FFFFFF1B;\n --color-neutralA-5: #FFFFFF22;\n --color-neutralA-6: #FFFFFF2C;\n --color-neutralA-7: #FFFFFF3B;\n --color-neutralA-8: #FFFFFF55;\n --color-neutralA-9: #FFFFFF64;\n --color-neutralA-10: #FFFFFF72;\n --color-neutralA-11: #FFFFFFAF;\n --color-neutralA-12: #FFFFFFED;\n\n --color-shadows-1: #0000000D;\n --color-shadows-2: #0000001A;\n --color-shadows-3: #00000026;\n --color-shadows-4: #00000033;\n --color-shadows-5: #0000004D;\n --color-shadows-6: #00000066;\n --color-shadows-7: #00000080;\n --color-shadows-8: #00000099;\n --color-shadows-9: #000000B3;\n --color-shadows-10: #000000CC;\n --color-shadows-11: #000000E6;\n --color-shadows-12: #000000F2;\n\n --color-accent-1: #0e1512;\n --color-accent-2: #121b17;\n --color-accent-3: #132d21;\n --color-accent-4: #113b29;\n --color-accent-5: #174933;\n --color-accent-6: #20573e;\n --color-accent-7: #28684a;\n --color-accent-8: #2f7c57;\n --color-accent-9: #30a46c;\n --color-accent-10: #33b074;\n --color-accent-11: #3dd68c;\n --color-accent-12: #b1f1cb;\n\n --color-accentA-1: #00de4505;\n --color-accentA-2: #29f99d0b;\n --color-accentA-3: #22ff991e;\n --color-accentA-4: #11ff992d;\n --color-accentA-5: #2bffa23c;\n --color-accentA-6: #44ffaa4b;\n --color-accentA-7: #50fdac5e;\n --color-accentA-8: #54ffad73;\n --color-accentA-9: #44ffa49e;\n --color-accentA-10: #43fea4ab;\n --color-accentA-11: #46fea5d4;\n --color-accentA-12: #bbffd7f0;\n\n --color-error-1: #191113;\n --color-error-2: #1e1517;\n --color-error-3: #3a141e;\n --color-error-4: #4e1325;\n --color-error-5: #5e1a2e;\n --color-error-6: #6f2539;\n --color-error-7: #883447;\n --color-error-8: #b3445a;\n --color-error-9: #e54666;\n --color-error-10: #ec5a72;\n --color-error-11: #ff949d;\n --color-error-12: #fed2e1;\n\n --color-errorA-1: #f4126709;\n --color-errorA-2: #f22f7a11;\n --color-errorA-3: #fe2a8b2a;\n --color-errorA-4: #fd158741;\n --color-errorA-5: #fd278f51;\n --color-errorA-6: #fe459763;\n --color-errorA-7: #fd559b7f;\n --color-errorA-8: #fe5b9bab;\n --color-errorA-9: #fe418de8;\n --color-errorA-10: #ff5693ed;\n --color-errorA-11: #ff92ad;\n --color-errorA-12: #ffd5eafd;\n\n --color-success-1: #0d1512;\n --color-success-2: #121c18;\n --color-success-3: #0f2e22;\n --color-success-4: #0b3b2c;\n --color-success-5: #114837;\n --color-success-6: #1b5745;\n --color-success-7: #246854;\n --color-success-8: #2a7e68;\n --color-success-9: #29a383;\n --color-success-10: #27b08b;\n --color-success-11: #1fd8a4;\n --color-success-12: #adf0d4;\n\n --color-successA-1: #00de4505;\n --color-successA-2: #29f99d0b;\n --color-successA-3: #22ff991e;\n --color-successA-4: #11ff992d;\n --color-successA-5: #2bffa23c;\n --color-successA-6: #44ffaa4b;\n --color-successA-7: #50fdac5e;\n --color-successA-8: #54ffad73;\n --color-successA-9: #44ffa49e;\n --color-successA-10: #43fea4ab;\n --color-successA-11: #46fea5d4;\n --color-successA-12: #bbffd7f0;\n\n --color-warning-1: #16120c;\n --color-warning-2: #1d180f;\n --color-warning-3: #302008;\n --color-warning-4: #3f2700;\n --color-warning-5: #4d3000;\n --color-warning-6: #5c3d05;\n --color-warning-7: #714f19;\n --color-warning-8: #8f6424;\n --color-warning-9: #f5d90a;\n --color-warning-10: #ffef5c;\n --color-warning-11: #f0c000;\n --color-warning-12: #fffad1;\n\n --color-warningA-1: #d1510004;\n --color-warningA-2: #f9b4000b;\n --color-warningA-3: #ffaa001e;\n --color-warningA-4: #fdb70028;\n --color-warningA-5: #febb0036;\n --color-warningA-6: #fec40046;\n --color-warningA-7: #fdcb225c;\n --color-warningA-8: #fdca327b;\n --color-warningA-9: #ffe629;\n --color-warningA-10: #ffff57;\n --color-warningA-11: #fee949f5;\n --color-warningA-12: #fef6baf6;\n\n --color-info-1: #0d1520;\n --color-info-2: #111927;\n --color-info-3: #0d2847;\n --color-info-4: #003362;\n --color-info-5: #004074;\n --color-info-6: #104d87;\n --color-info-7: #205d9e;\n --color-info-8: #2870bd;\n --color-info-9: #0090ff;\n --color-info-10: #3b9eff;\n --color-info-11: #70b8ff;\n --color-info-12: #c2e6ff;\n\n --color-infoA-1: #004df211;\n --color-infoA-2: #1166fb18;\n --color-infoA-3: #0077ff3a;\n --color-infoA-4: #0075ff57;\n --color-infoA-5: #0081fd6b;\n --color-infoA-6: #0f89fd7f;\n --color-infoA-7: #2a91fe98;\n --color-infoA-8: #3094feb9;\n --color-infoA-9: #0090ff;\n --color-infoA-10: #3b9eff;\n --color-infoA-11: #70b8ff;\n --color-infoA-12: #c2e6ff;\n\n --text-xxs: 0.625rem;\n --text-10xl: 10rem;\n --text-11xl: 12rem;\n --text-12xl: 14rem;\n --text-13xl: 16rem;\n}\n\n@theme {\n --radius: 0.5rem;\n --radius-xxs: calc(var(--radius) * 0.25);\n --radius-xs: calc(var(--radius) * 0.375);\n --radius-sm: calc(var(--radius) * 0.625);\n --radius-md: calc(var(--radius) * 0.875);\n --radius-lg: calc(var(--radius) * 1.25);\n --radius-xl: calc(var(--radius) * 1.75);\n --radius-2xl: calc(var(--radius) * 2.5);\n --radius-3xl: calc(var(--radius) * 3.5);\n\n --typo-header-font: 'geist', sans-serif;\n --typo-header-weight: 600;\n --typo-header-tracking: 0.025em;\n --typo-header-leading: 1;\n\n --typo-label-font: 'geist', sans-serif;\n --typo-label-weight: 500;\n --typo-label-tracking: 0.025em;\n --typo-label-leading: 1;\n\n --typo-body-font: 'geist', sans-serif;\n --typo-body-weight: 400;\n --typo-body-tracking: 0.025em;\n --typo-body-leading: 1.375;\n\n --typo-code-font: 'geist-mono', monospace;\n --typo-code-weight: 500;\n --typo-code-tracking: 0;\n --typo-code-leading: 1.5;\n\n --typo-scale-factor: 1;\n\n --shadow-xs-color: var(--color-neutral-9);\n --shadow-xs-offsetX: 0px;\n --shadow-xs-offsetY: 0px;\n --shadow-xs-blur: 2px;\n --shadow-xs-spread: 0px;\n --shadow-xs-opacity: 5%;\n --shadow-xs: var(--shadow-xs-offsetX) var(--shadow-xs-offsetY) var(--shadow-xs-blur) var(--shadow-xs-spread) color-mix(in srgb, var(--shadow-xs-color) var(--shadow-xs-opacity), transparent);\n\n --shadow-s-color: var(--color-neutral-9);\n --shadow-s-offsetX: 0px;\n --shadow-s-offsetY: 0px;\n --shadow-s-blur: 4px;\n --shadow-s-spread: 0px;\n --shadow-s-opacity: 10%;\n --shadow-s: var(--shadow-s-offsetX) var(--shadow-s-offsetY) var(--shadow-s-blur) var(--shadow-s-spread) color-mix(in srgb, var(--shadow-s-color) var(--shadow-s-opacity), transparent);\n\n --shadow-m-color: var(--color-neutral-9);\n --shadow-m-offsetX: 0px;\n --shadow-m-offsetY: 0px;\n --shadow-m-blur: 8px;\n --shadow-m-spread: -1px;\n --shadow-m-opacity: 15%;\n --shadow-m: var(--shadow-m-offsetX) var(--shadow-m-offsetY) var(--shadow-m-blur) var(--shadow-m-spread) color-mix(in srgb, var(--shadow-m-color) var(--shadow-m-opacity), transparent);\n\n --shadow-l-color: var(--color-neutral-9);\n --shadow-l-offsetX: 0px;\n --shadow-l-offsetY: 0px;\n --shadow-l-blur: 16px;\n --shadow-l-spread: -2px;\n --shadow-l-opacity: 20%;\n --shadow-l: var(--shadow-l-offsetX) var(--shadow-l-offsetY) var(--shadow-l-blur) var(--shadow-l-spread) color-mix(in srgb, var(--shadow-l-color) var(--shadow-l-opacity), transparent);\n\n --shadow-xl-color: var(--color-neutral-9);\n --shadow-xl-offsetX: 0px;\n --shadow-xl-offsetY: 0px;\n --shadow-xl-blur: 40px;\n --shadow-xl-spread: -8px;\n --shadow-xl-opacity: 30%;\n --shadow-xl: var(--shadow-xl-offsetX) var(--shadow-xl-offsetY) var(--shadow-xl-blur) var(--shadow-xl-spread) color-mix(in srgb, var(--shadow-xl-color) var(--shadow-xl-opacity), transparent);\n}\n\n@utility typo-weight-100 {\n @apply font-thin;\n}\n\n@utility typo-weight-200 {\n @apply font-extralight;\n}\n\n@utility typo-weight-300 {\n @apply font-light;\n}\n\n@utility typo-weight-400 {\n @apply font-normal;\n}\n\n@utility typo-weight-500 {\n @apply font-medium;\n}\n\n@utility typo-weight-600 {\n @apply font-semibold;\n}\n\n@utility typo-weight-700 {\n @apply font-bold;\n}\n\n@utility typo-weight-800 {\n @apply font-extrabold;\n}\n\n@utility typo-weight-900 {\n @apply font-black;\n}\n\n@utility typo-header {\n font-family: var(--typo-header-font);\n font-weight: var(--typo-header-weight);\n -webkit-font-smoothing: antialiased;\n white-space: nowrap;\n letter-spacing: var(--typo-header-tracking);\n line-height: var(--typo-header-leading);\n}\n\n@utility typo-label {\n font-family: var(--typo-label-font);\n font-weight: var(--typo-label-weight);\n -webkit-font-smoothing: antialiased;\n white-space: nowrap;\n letter-spacing: var(--typo-label-tracking);\n line-height: var(--typo-label-leading);\n}\n\n@utility typo-body {\n font-family: var(--typo-body-font);\n font-weight: var(--typo-body-weight);\n -webkit-font-smoothing: antialiased;\n text-wrap: wrap;\n letter-spacing: var(--typo-body-tracking);\n line-height: var(--typo-body-leading);\n}\n\n@utility typo-code {\n font-family: var(--typo-code-font);\n font-weight: var(--typo-code-weight);\n -webkit-font-smoothing: antialiased;\n white-space: nowrap;\n letter-spacing: var(--typo-code-tracking);\n line-height: var(--typo-code-leading);\n font-variant-numeric: tabular-nums;\n}\n\n@utility typo-1 {\n @apply typo-body;\n font-size: calc(var(--text-xxs) * var(--typo-scale-factor));\n}\n\n@utility typo-2 {\n @apply typo-body;\n font-size: calc(var(--text-xs) * var(--typo-scale-factor));\n}\n\n@utility typo-3 {\n @apply typo-body;\n font-size: calc(var(--text-sm) * var(--typo-scale-factor));\n}\n\n@utility typo-4 {\n @apply typo-body;\n font-size: calc(var(--text-base) * var(--typo-scale-factor));\n}\n\n@utility typo-5 {\n @apply typo-body;\n font-size: calc(var(--text-lg) * var(--typo-scale-factor));\n}\n\n@utility typo-6 {\n @apply typo-body;\n font-size: calc(var(--text-xl) * var(--typo-scale-factor));\n}\n\n@utility typo-7 {\n @apply typo-body;\n font-size: calc(var(--text-2xl) * var(--typo-scale-factor));\n}\n\n@utility typo-8 {\n @apply typo-body;\n font-size: calc(var(--text-3xl) * var(--typo-scale-factor));\n}\n\n@utility typo-9 {\n @apply typo-body;\n font-size: calc(var(--text-4xl) * var(--typo-scale-factor));\n}\n\n@utility typo-10 {\n @apply typo-body;\n font-size: calc(var(--text-5xl) * var(--typo-scale-factor));\n}\n\n@utility typo-11 {\n @apply typo-body;\n font-size: calc(var(--text-6xl) * var(--typo-scale-factor));\n}\n\n@utility typo-12 {\n @apply typo-body;\n font-size: calc(var(--text-7xl) * var(--typo-scale-factor));\n}\n\n@utility typo-13 {\n @apply typo-body;\n font-size: calc(var(--text-8xl) * var(--typo-scale-factor));\n}\n\n@utility typo-14 {\n @apply typo-body;\n font-size: calc(var(--text-9xl) * var(--typo-scale-factor));\n}\n\n@utility typo-15 {\n @apply typo-body;\n font-size: calc(var(--text-10xl) * var(--typo-scale-factor));\n}\n\n@utility typo-16 {\n @apply typo-body;\n font-size: calc(var(--text-11xl) * var(--typo-scale-factor));\n}\n\n@utility typo-17 {\n @apply typo-body;\n font-size: calc(var(--text-12xl) * var(--typo-scale-factor));\n}\n\n@utility typo-18 {\n @apply typo-body;\n font-size: calc(var(--text-13xl) * var(--typo-scale-factor));\n}\n\n@utility filter-none {\n filter: none;\n}\n\n@utility flex-col-center {\n @apply flex flex-col justify-center items-center align-middle;\n}\n\n@utility grid-hor-center {\n @apply grid grid-flow-col items-center;\n}\n\n@utility grid-ver-center {\n @apply grid grid-flow-row items-center;\n}\n\n@utility flex-row-center {\n @apply flex flex-row justify-center items-center align-middle;\n}\n\n@utility cs-border-dashed {\n @apply border border-dashed border-neutralA-4;\n}\n\n@utility cs-disabled {\n @apply disabled:pointer-events-none disabled:opacity-50 data-disabled:pointer-events-none data-disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50;\n }\n\n@utility cs-has-disabled {\n @apply has-[[data-slot=control]:disabled]:pointer-events-none has-[[data-slot=control]:disabled]:opacity-50;\n}\n\n@utility cs-transition {\n @apply transition-all duration-200 ease-in-out;\n}\n\n@utility cs-contrast {\n @apply drop-shadow-[0_-1px_1px_#fff4];\n}\n\n@utility cs-popup-animation {\n @apply origin-(--transform-origin) transition-[scale,opacity] duration-[0.25s] ease-[cubic-bezier(0.34,1.56,0.64,1)] data-starting-style:scale-90 data-starting-style:opacity-0 data-ending-style:scale-90 data-ending-style:opacity-0 data-instant:transition-none;\n}\n\n@utility cs-focus {\n @apply outline-none focus-visible:duration-0 focus-visible:outline-solid focus-visible:z-1 focus-visible:ring-[3px] focus-visible:ring-accent-4 focus-visible:outline-1 focus-visible:-outline-offset-1 focus-visible:outline-accent-9; \n}\n\n@utility cs-has-focus {\n @apply has-[[data-slot=control]:focus-visible]:z-1 has-[[data-slot=control]:focus-visible]:ring-[3px] has-[[data-slot=control]:focus-visible]:ring-accent-4 has-[[data-slot=control]:focus-visible]:outline-1 has-[[data-slot=control]:focus-visible]:outline-solid has-[[data-slot=control]:focus-visible]:-outline-offset-1 has-[[data-slot=control]:focus-visible]:outline-accent-9;\n}\n\n@utility cs-invalid {\n @apply aria-invalid:ring-3 aria-invalid:ring-error-6 aria-invalid:border-error-9 focus-visible:aria-invalid:ring-error-4 focus-visible:aria-invalid:outline-error-9;\n}\n\n@utility cs-has-invalid {\n @apply has-[[data-slot=control][aria-invalid=true]]:ring-3 has-[[data-slot=control][aria-invalid=true]]:ring-error-6 has-[[data-slot=control][aria-invalid=true]]:border-error-9 has-[[data-slot=control][aria-invalid=true]:focus-visible]:ring-error-4 has-[[data-slot=control][aria-invalid=true]:focus-visible]:outline-error-9;\n}\n\n@utility cs-steps {\n counter-reset: step;\n}\n\n@utility cs-step {\n &::before {\n --tw-content: counter(step);\n content: var(--tw-content);\n counter-increment: step;\n }\n}\n\n@utility cs-masonry {\n columns: 3;\n & > * {\n break-inside: avoid-column;\n }\n}\n\n@utility cs-stroke {\n -webkit-text-stroke-width: var(--stroke-w, 2px);\n -webkit-text-stroke-color: var(--stroke-color, var(--color-neutral-12));\n color: transparent;\n paint-order: stroke fill;\n}\n\n@utility cs-backdrop-panel {\n @apply rounded-md border-neutralA-4 bg-neutral-1/60 text-neutral-11 backdrop-blur-lg border shadow-m;\n }\n\n@utility animate-collapsible-down {\n animation: collapsible-down 0.2s ease-out;\n}\n\n@utility animate-collapsible-up {\n animation: collapsible-up 0.2s ease-out;\n}\n\n@utility no-scrollbar {\n @apply [scrollbar-width:none] [&::-webkit-scrollbar]:hidden;\n}\n\n@utility cs-gutter {\n background: repeating-linear-gradient(315deg, var(--color-neutral-3) 0 1px, transparent 1px 50%);\n background-size: 10px 10px;\n background-attachment: fixed;\n}\n\n@utility cs-dots {\n background-image: radial-gradient(var(--color-neutral-4) 1px, transparent 1px);\n background-size: 20px 20px;\n}\n\n@keyframes stripes {\n from { background-position: 0 0; }\n to { background-position: 16px 0; }\n}\n\n@utility cs-stripes {\n background-image: repeating-linear-gradient(315deg, var(--color-neutralA-4) 0 4px, transparent 2px 50%);\n background-size: 16px 16px;\n animation: stripes 0.6s linear infinite;\n}\n\n@utility cs-guides {\n overflow: clip;\n isolation: isolate;\n\n & > * {\n position: relative;\n z-index: 0;\n\n &::after {\n content: '';\n position: absolute;\n left: 0;\n right: -1px;\n top: -9999px;\n bottom: -9999px;\n border-left: 1px solid var(--color-neutral-4);\n border-right: 1px solid var(--color-neutral-4);\n pointer-events: none;\n z-index: 1;\n }\n\n &::before {\n content: '';\n position: absolute;\n top: 0;\n bottom: -1px;\n left: -9999px;\n right: -9999px;\n border-top: 1px solid var(--color-neutral-4);\n border-bottom: 1px solid var(--color-neutral-4);\n pointer-events: none;\n z-index: 1;\n }\n }\n}\n\n@utility cs-page-container {\n @apply grid grid-cols-[1fr_minmax(0,var(--page-max-w,64rem))_1fr];\n}\n\n@utility cs-page-grid {\n position: relative;\n max-width: var(--page-max-w, 64rem);\n width: 100%;\n margin-inline: auto;\n border-inline: 1px solid var(--color-neutral-4);\n\n & > :where(*) {\n position: relative;\n\n &::after {\n content: '';\n position: absolute;\n bottom: 0;\n left: -100vw;\n width: 200vw;\n height: 1px;\n background-color: var(--color-neutral-4);\n pointer-events: none;\n }\n }\n\n & > :where(*:first-child)::before {\n content: '';\n position: absolute;\n top: 0;\n left: -100vw;\n width: 200vw;\n height: 1px;\n background-color: var(--color-neutral-4);\n pointer-events: none;\n }\n}\n\n@utility cs-page-gutter {\n &::before, &::after {\n content: '';\n position: absolute;\n top: 0;\n bottom: 0;\n width: var(--page-gutter-w, 2.5rem);\n pointer-events: none;\n background: repeating-linear-gradient(315deg, var(--color-neutral-3) 0 1px, transparent 1px 50%);\n background-size: 10px 10px;\n background-attachment: fixed;\n }\n\n &::before {\n right: 100%;\n border-left: 1px solid var(--color-neutral-4);\n }\n\n &::after {\n left: 100%;\n border-right: 1px solid var(--color-neutral-4);\n }\n}\n\n@media (pointer: coarse) {\n input,\n select,\n textarea {\n font-size: max(16px, 1em);\n }\n}\n\n@layer base {\n\n * {\n @apply transition-colors duration-200;\n }\n\n body {\n color: var(--color-neutral-12);\n background-color: var(--color-neutral-1);\n }\n\n\n @font-face {\n font-family: 'geist';\n font-weight: 100 900;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/geist.ttf) format('truetype');\n }\n\n @font-face {\n font-family: 'geist-mono';\n font-weight: 100 900;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/geist-mono.ttf) format('truetype');\n }\n\n @font-face {\n font-family: 'geist-pixel-circle';\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/geist-pixel-circle.ttf) format('truetype');\n }\n\n @font-face {\n font-family: 'geist-pixel-grid';\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/geist-pixel-grid.ttf) format('truetype');\n }\n\n @font-face {\n font-family: 'geist-pixel-line';\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/geist-pixel-line.ttf) format('truetype');\n }\n\n @font-face {\n font-family: 'geist-pixel-square';\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/geist-pixel-square.ttf) format('truetype');\n }\n\n @font-face {\n font-family: 'geist-pixel-triangle';\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/geist-pixel-triangle.ttf) format('truetype');\n }\n\n @font-face {\n font-family: 'clash-grotesk-variable';\n font-weight: 200 700;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/clash-grotesk-variable.ttf) format('truetype');\n }\n\n @font-face {\n font-family: 'nippo';\n font-weight: 200 700;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/nippo.ttf) format('truetype');\n }\n\n @font-face {\n font-family: 'being';\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/being.otf) format('opentype');\n }\n\n @font-face {\n font-family: 'Aalto';\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/aalto.otf) format('opentype');\n }\n\n @font-face {\n font-family: 'humane-variable';\n font-weight: 200 800;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/humane-variable.ttf) format('truetype');\n }\n\n @font-face {\n font-family: 'general-sans';\n font-weight: 200 800;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/general-sans.ttf) format('truetype');\n }\n\n @font-face {\n font-family: 'karmatic-arcade-regular';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/karmatic-arcade-regular.ttf) format('truetype');\n }\n\n @font-face {\n font-family: 'kode-mono-vf';\n font-style: normal;\n font-weight: 400 700;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/kode-mono-vf.ttf) format('truetype');\n }\n\n @font-face {\n font-family: 'digital-7-mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/digital-7-mono.ttf) format('truetype');\n }\n\n @font-face {\n font-family: 'pixelony';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/pixelony.ttf) format('truetype');\n }\n\n @font-face {\n font-family: 'unknown';\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n size-adjust: 140%;\n src: url(https://cdn.digo-labs.com/fonts/unknown.otf) format('opentype');\n }\n\n @font-face {\n font-family: 'benzol';\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/benzol.otf) format('opentype');\n }\n\n @font-face {\n font-family: 'half';\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/half.otf) format('opentype');\n }\n\n @font-face {\n font-family: 'miratrix';\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/miratrix.otf) format('opentype');\n }\n\n @font-face {\n font-family: 'triakis';\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/triakis.otf) format('opentype');\n }\n\n @font-face {\n font-family: 'yeager';\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/yeager.otf) format('opentype');\n }\n\n @font-face {\n font-family: 'disket';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/disket.ttf) format('truetype');\n }\n\n @font-face {\n font-family: 'heming';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/heming.ttf) format('truetype');\n }\n\n @font-face {\n font-family: 'obrazec';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/obrazec.ttf) format('truetype');\n }\n\n @font-face {\n font-family: 'satoshi';\n font-weight: 300 900;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/satoshi.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'chillax';\n font-weight: 200 700;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/chillax.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'panchang';\n font-weight: 200 800;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/panchang.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'zodiak';\n font-weight: 100 900;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/zodiak.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'supreme';\n font-weight: 100 800;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/supreme.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'boska';\n font-weight: 200 900;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/boska.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'tanker';\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/tanker.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'gambarino';\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/gambarino.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'neco';\n font-weight: 400 900;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/neco.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'erode';\n font-weight: 300 700;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/erode.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'pramukh-rounded';\n font-weight: 200 900;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/pramukh-rounded.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'bevellier';\n font-weight: 100 900;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/bevellier.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'comico';\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/comico.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'aktura';\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/aktura.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'technor';\n font-weight: 200 900;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/technor.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'array';\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/array.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'styro';\n font-weight: 200 900;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/styro.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'recia';\n font-weight: 300 700;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/recia.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'melodrama';\n font-weight: 300 700;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/melodrama.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'boxing';\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/boxing.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'kola';\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/kola.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'zina';\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/zina.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'tabular';\n font-weight: 300 700;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/tabular.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'expose';\n font-weight: 400 900;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/expose.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'kihim';\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/kihim.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'pilcrow-rounded';\n font-weight: 400 900;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/pilcrow-rounded.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'new-title';\n font-weight: 200 700;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/new-title.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'kohinoor-zerone';\n font-weight: 100;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/kohinoor-zerone.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'roundo';\n font-weight: 200 700;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/roundo.woff2) format('woff2');\n }\n \n}\n\n@layer utilities {\n * {\n scrollbar-width: thin;\n scrollbar-color: #ffffff50 transparent;\n }\n}\n\n@layer base {\n ::selection {\n background-color: var(--color-neutral-12);\n color: var(--color-neutral-1);\n }\n\n ::-moz-selection {\n background-color: var(--color-neutral-12);\n color: var(--color-neutral-1);\n }\n}", ue = /--font-([\w-]+):\s*'([^']+)'/g, v = /* @__PURE__ */ new Map(), y; (y = ue.exec(_)) !== null;) {
|
|
2093
|
-
let e = `--font-${
|
|
2094
|
-
|
|
2096
|
+
}, v = "@plugin \"@iconify/tailwind4\";\n\n@plugin \"tailwindcss-animate\";\n\n@source inline(\"typo-1 typo-2 typo-3 typo-4 typo-5 typo-6 typo-7 typo-8 typo-9 typo-10 typo-11 typo-12 typo-13 typo-14 typo-15 typo-16 typo-17 typo-18 typo-weight-100 typo-weight-200 typo-weight-300 typo-weight-400 typo-weight-500 typo-weight-600 typo-weight-700 typo-weight-800 typo-weight-900\");\n\n@source \"./index.js\";\n@source \"./**/*.{ts,tsx}\";\n\n@theme static {\n --font-code: 'geist-mono', monospace;\n --font-geist: 'geist', sans-serif;\n --font-geist-mono: 'geist-mono', monospace;\n --font-pixel-circle: 'geist-pixel-circle', monospace;\n --font-pixel-grid: 'geist-pixel-grid', monospace;\n --font-pixel-line: 'geist-pixel-line', monospace;\n --font-pixel-square: 'geist-pixel-square', monospace;\n --font-pixel-triangle: 'geist-pixel-triangle', monospace;\n --font-clash-grotesk: 'clash-grotesk-variable', sans-serif;\n --font-nippo: 'nippo', sans-serif;\n --font-humane: 'humane-variable', sans-serif;\n --font-general-sans: 'general-sans', sans-serif;\n --font-kode-mono: 'kode-mono-vf', monospace;\n --font-aalto: 'Aalto', display;\n --font-being: 'being', display;\n --font-benzol: 'benzol', display;\n --font-half: 'half', display;\n --font-miratrix: 'miratrix', display;\n --font-triakis: 'triakis', display;\n --font-yeager: 'yeager', display;\n --font-karmatic-arcade: 'karmatic-arcade-regular', display;\n --font-digital-7: 'digital-7-mono', monospace;\n --font-pixelony: 'pixelony', display;\n --font-unknown: 'unknown', display;\n --font-disket: 'disket', display;\n --font-heming: 'heming', display;\n --font-obrazec: 'obrazec', display;\n\n --color-neutral-1: #111111;\n --color-neutral-2: #191919;\n --color-neutral-3: #222222;\n --color-neutral-4: #2a2a2a;\n --color-neutral-5: #313131;\n --color-neutral-6: #3a3a3a;\n --color-neutral-7: #484848;\n --color-neutral-8: #606060;\n --color-neutral-9: #6e6e6e;\n --color-neutral-10: #7b7b7b;\n --color-neutral-11: #b4b4b4;\n --color-neutral-12: #eeeeee;\n\n --color-neutralA-1: #FFFFFF05;\n --color-neutralA-2: #FFFFFF09;\n --color-neutralA-3: #FFFFFF12;\n --color-neutralA-4: #FFFFFF1B;\n --color-neutralA-5: #FFFFFF22;\n --color-neutralA-6: #FFFFFF2C;\n --color-neutralA-7: #FFFFFF3B;\n --color-neutralA-8: #FFFFFF55;\n --color-neutralA-9: #FFFFFF64;\n --color-neutralA-10: #FFFFFF72;\n --color-neutralA-11: #FFFFFFAF;\n --color-neutralA-12: #FFFFFFED;\n\n --color-shadows-1: #0000000D;\n --color-shadows-2: #0000001A;\n --color-shadows-3: #00000026;\n --color-shadows-4: #00000033;\n --color-shadows-5: #0000004D;\n --color-shadows-6: #00000066;\n --color-shadows-7: #00000080;\n --color-shadows-8: #00000099;\n --color-shadows-9: #000000B3;\n --color-shadows-10: #000000CC;\n --color-shadows-11: #000000E6;\n --color-shadows-12: #000000F2;\n\n --color-accent-1: #0e1512;\n --color-accent-2: #121b17;\n --color-accent-3: #132d21;\n --color-accent-4: #113b29;\n --color-accent-5: #174933;\n --color-accent-6: #20573e;\n --color-accent-7: #28684a;\n --color-accent-8: #2f7c57;\n --color-accent-9: #30a46c;\n --color-accent-10: #33b074;\n --color-accent-11: #3dd68c;\n --color-accent-12: #b1f1cb;\n\n --color-accentA-1: #00de4505;\n --color-accentA-2: #29f99d0b;\n --color-accentA-3: #22ff991e;\n --color-accentA-4: #11ff992d;\n --color-accentA-5: #2bffa23c;\n --color-accentA-6: #44ffaa4b;\n --color-accentA-7: #50fdac5e;\n --color-accentA-8: #54ffad73;\n --color-accentA-9: #44ffa49e;\n --color-accentA-10: #43fea4ab;\n --color-accentA-11: #46fea5d4;\n --color-accentA-12: #bbffd7f0;\n\n --color-error-1: #191113;\n --color-error-2: #1e1517;\n --color-error-3: #3a141e;\n --color-error-4: #4e1325;\n --color-error-5: #5e1a2e;\n --color-error-6: #6f2539;\n --color-error-7: #883447;\n --color-error-8: #b3445a;\n --color-error-9: #e54666;\n --color-error-10: #ec5a72;\n --color-error-11: #ff949d;\n --color-error-12: #fed2e1;\n\n --color-errorA-1: #f4126709;\n --color-errorA-2: #f22f7a11;\n --color-errorA-3: #fe2a8b2a;\n --color-errorA-4: #fd158741;\n --color-errorA-5: #fd278f51;\n --color-errorA-6: #fe459763;\n --color-errorA-7: #fd559b7f;\n --color-errorA-8: #fe5b9bab;\n --color-errorA-9: #fe418de8;\n --color-errorA-10: #ff5693ed;\n --color-errorA-11: #ff92ad;\n --color-errorA-12: #ffd5eafd;\n\n --color-success-1: #0d1512;\n --color-success-2: #121c18;\n --color-success-3: #0f2e22;\n --color-success-4: #0b3b2c;\n --color-success-5: #114837;\n --color-success-6: #1b5745;\n --color-success-7: #246854;\n --color-success-8: #2a7e68;\n --color-success-9: #29a383;\n --color-success-10: #27b08b;\n --color-success-11: #1fd8a4;\n --color-success-12: #adf0d4;\n\n --color-successA-1: #00de4505;\n --color-successA-2: #29f99d0b;\n --color-successA-3: #22ff991e;\n --color-successA-4: #11ff992d;\n --color-successA-5: #2bffa23c;\n --color-successA-6: #44ffaa4b;\n --color-successA-7: #50fdac5e;\n --color-successA-8: #54ffad73;\n --color-successA-9: #44ffa49e;\n --color-successA-10: #43fea4ab;\n --color-successA-11: #46fea5d4;\n --color-successA-12: #bbffd7f0;\n\n --color-warning-1: #16120c;\n --color-warning-2: #1d180f;\n --color-warning-3: #302008;\n --color-warning-4: #3f2700;\n --color-warning-5: #4d3000;\n --color-warning-6: #5c3d05;\n --color-warning-7: #714f19;\n --color-warning-8: #8f6424;\n --color-warning-9: #f5d90a;\n --color-warning-10: #ffef5c;\n --color-warning-11: #f0c000;\n --color-warning-12: #fffad1;\n\n --color-warningA-1: #d1510004;\n --color-warningA-2: #f9b4000b;\n --color-warningA-3: #ffaa001e;\n --color-warningA-4: #fdb70028;\n --color-warningA-5: #febb0036;\n --color-warningA-6: #fec40046;\n --color-warningA-7: #fdcb225c;\n --color-warningA-8: #fdca327b;\n --color-warningA-9: #ffe629;\n --color-warningA-10: #ffff57;\n --color-warningA-11: #fee949f5;\n --color-warningA-12: #fef6baf6;\n\n --color-info-1: #0d1520;\n --color-info-2: #111927;\n --color-info-3: #0d2847;\n --color-info-4: #003362;\n --color-info-5: #004074;\n --color-info-6: #104d87;\n --color-info-7: #205d9e;\n --color-info-8: #2870bd;\n --color-info-9: #0090ff;\n --color-info-10: #3b9eff;\n --color-info-11: #70b8ff;\n --color-info-12: #c2e6ff;\n\n --color-infoA-1: #004df211;\n --color-infoA-2: #1166fb18;\n --color-infoA-3: #0077ff3a;\n --color-infoA-4: #0075ff57;\n --color-infoA-5: #0081fd6b;\n --color-infoA-6: #0f89fd7f;\n --color-infoA-7: #2a91fe98;\n --color-infoA-8: #3094feb9;\n --color-infoA-9: #0090ff;\n --color-infoA-10: #3b9eff;\n --color-infoA-11: #70b8ff;\n --color-infoA-12: #c2e6ff;\n\n --text-xxs: 0.625rem;\n --text-10xl: 10rem;\n --text-11xl: 12rem;\n --text-12xl: 14rem;\n --text-13xl: 16rem;\n}\n\n@theme {\n --radius: 0.5rem;\n --radius-xxs: calc(var(--radius) * 0.25);\n --radius-xs: calc(var(--radius) * 0.375);\n --radius-sm: calc(var(--radius) * 0.625);\n --radius-md: calc(var(--radius) * 0.875);\n --radius-lg: calc(var(--radius) * 1.25);\n --radius-xl: calc(var(--radius) * 1.75);\n --radius-2xl: calc(var(--radius) * 2.5);\n --radius-3xl: calc(var(--radius) * 3.5);\n\n --typo-header-font: 'geist', sans-serif;\n --typo-header-weight: 600;\n --typo-header-tracking: 0.025em;\n --typo-header-leading: 1;\n\n --typo-label-font: 'geist', sans-serif;\n --typo-label-weight: 500;\n --typo-label-tracking: 0.025em;\n --typo-label-leading: 1;\n\n --typo-body-font: 'geist', sans-serif;\n --typo-body-weight: 400;\n --typo-body-tracking: 0.025em;\n --typo-body-leading: 1.375;\n\n --typo-code-font: 'geist-mono', monospace;\n --typo-code-weight: 500;\n --typo-code-tracking: 0;\n --typo-code-leading: 1.5;\n\n --typo-scale-factor: 1;\n\n --shadow-xs-color: var(--color-neutral-9);\n --shadow-xs-offsetX: 0px;\n --shadow-xs-offsetY: 0px;\n --shadow-xs-blur: 2px;\n --shadow-xs-spread: 0px;\n --shadow-xs-opacity: 5%;\n --shadow-xs: var(--shadow-xs-offsetX) var(--shadow-xs-offsetY) var(--shadow-xs-blur) var(--shadow-xs-spread) color-mix(in srgb, var(--shadow-xs-color) var(--shadow-xs-opacity), transparent);\n\n --shadow-s-color: var(--color-neutral-9);\n --shadow-s-offsetX: 0px;\n --shadow-s-offsetY: 0px;\n --shadow-s-blur: 4px;\n --shadow-s-spread: 0px;\n --shadow-s-opacity: 10%;\n --shadow-s: var(--shadow-s-offsetX) var(--shadow-s-offsetY) var(--shadow-s-blur) var(--shadow-s-spread) color-mix(in srgb, var(--shadow-s-color) var(--shadow-s-opacity), transparent);\n\n --shadow-m-color: var(--color-neutral-9);\n --shadow-m-offsetX: 0px;\n --shadow-m-offsetY: 0px;\n --shadow-m-blur: 8px;\n --shadow-m-spread: -1px;\n --shadow-m-opacity: 15%;\n --shadow-m: var(--shadow-m-offsetX) var(--shadow-m-offsetY) var(--shadow-m-blur) var(--shadow-m-spread) color-mix(in srgb, var(--shadow-m-color) var(--shadow-m-opacity), transparent);\n\n --shadow-l-color: var(--color-neutral-9);\n --shadow-l-offsetX: 0px;\n --shadow-l-offsetY: 0px;\n --shadow-l-blur: 16px;\n --shadow-l-spread: -2px;\n --shadow-l-opacity: 20%;\n --shadow-l: var(--shadow-l-offsetX) var(--shadow-l-offsetY) var(--shadow-l-blur) var(--shadow-l-spread) color-mix(in srgb, var(--shadow-l-color) var(--shadow-l-opacity), transparent);\n\n --shadow-xl-color: var(--color-neutral-9);\n --shadow-xl-offsetX: 0px;\n --shadow-xl-offsetY: 0px;\n --shadow-xl-blur: 40px;\n --shadow-xl-spread: -8px;\n --shadow-xl-opacity: 30%;\n --shadow-xl: var(--shadow-xl-offsetX) var(--shadow-xl-offsetY) var(--shadow-xl-blur) var(--shadow-xl-spread) color-mix(in srgb, var(--shadow-xl-color) var(--shadow-xl-opacity), transparent);\n}\n\n@utility typo-weight-100 {\n @apply font-thin;\n}\n\n@utility typo-weight-200 {\n @apply font-extralight;\n}\n\n@utility typo-weight-300 {\n @apply font-light;\n}\n\n@utility typo-weight-400 {\n @apply font-normal;\n}\n\n@utility typo-weight-500 {\n @apply font-medium;\n}\n\n@utility typo-weight-600 {\n @apply font-semibold;\n}\n\n@utility typo-weight-700 {\n @apply font-bold;\n}\n\n@utility typo-weight-800 {\n @apply font-extrabold;\n}\n\n@utility typo-weight-900 {\n @apply font-black;\n}\n\n@utility typo-header {\n font-family: var(--typo-header-font);\n font-weight: var(--typo-header-weight);\n -webkit-font-smoothing: antialiased;\n white-space: nowrap;\n letter-spacing: var(--typo-header-tracking);\n line-height: var(--typo-header-leading);\n}\n\n@utility typo-label {\n font-family: var(--typo-label-font);\n font-weight: var(--typo-label-weight);\n -webkit-font-smoothing: antialiased;\n white-space: nowrap;\n letter-spacing: var(--typo-label-tracking);\n line-height: var(--typo-label-leading);\n}\n\n@utility typo-body {\n font-family: var(--typo-body-font);\n font-weight: var(--typo-body-weight);\n -webkit-font-smoothing: antialiased;\n text-wrap: wrap;\n letter-spacing: var(--typo-body-tracking);\n line-height: var(--typo-body-leading);\n}\n\n@utility typo-code {\n font-family: var(--typo-code-font);\n font-weight: var(--typo-code-weight);\n -webkit-font-smoothing: antialiased;\n white-space: nowrap;\n letter-spacing: var(--typo-code-tracking);\n line-height: var(--typo-code-leading);\n font-variant-numeric: tabular-nums;\n}\n\n@utility typo-1 {\n @apply typo-body;\n font-size: calc(var(--text-xxs) * var(--typo-scale-factor));\n}\n\n@utility typo-2 {\n @apply typo-body;\n font-size: calc(var(--text-xs) * var(--typo-scale-factor));\n}\n\n@utility typo-3 {\n @apply typo-body;\n font-size: calc(var(--text-sm) * var(--typo-scale-factor));\n}\n\n@utility typo-4 {\n @apply typo-body;\n font-size: calc(var(--text-base) * var(--typo-scale-factor));\n}\n\n@utility typo-5 {\n @apply typo-body;\n font-size: calc(var(--text-lg) * var(--typo-scale-factor));\n}\n\n@utility typo-6 {\n @apply typo-body;\n font-size: calc(var(--text-xl) * var(--typo-scale-factor));\n}\n\n@utility typo-7 {\n @apply typo-body;\n font-size: calc(var(--text-2xl) * var(--typo-scale-factor));\n}\n\n@utility typo-8 {\n @apply typo-body;\n font-size: calc(var(--text-3xl) * var(--typo-scale-factor));\n}\n\n@utility typo-9 {\n @apply typo-body;\n font-size: calc(var(--text-4xl) * var(--typo-scale-factor));\n}\n\n@utility typo-10 {\n @apply typo-body;\n font-size: calc(var(--text-5xl) * var(--typo-scale-factor));\n}\n\n@utility typo-11 {\n @apply typo-body;\n font-size: calc(var(--text-6xl) * var(--typo-scale-factor));\n}\n\n@utility typo-12 {\n @apply typo-body;\n font-size: calc(var(--text-7xl) * var(--typo-scale-factor));\n}\n\n@utility typo-13 {\n @apply typo-body;\n font-size: calc(var(--text-8xl) * var(--typo-scale-factor));\n}\n\n@utility typo-14 {\n @apply typo-body;\n font-size: calc(var(--text-9xl) * var(--typo-scale-factor));\n}\n\n@utility typo-15 {\n @apply typo-body;\n font-size: calc(var(--text-10xl) * var(--typo-scale-factor));\n}\n\n@utility typo-16 {\n @apply typo-body;\n font-size: calc(var(--text-11xl) * var(--typo-scale-factor));\n}\n\n@utility typo-17 {\n @apply typo-body;\n font-size: calc(var(--text-12xl) * var(--typo-scale-factor));\n}\n\n@utility typo-18 {\n @apply typo-body;\n font-size: calc(var(--text-13xl) * var(--typo-scale-factor));\n}\n\n@utility filter-none {\n filter: none;\n}\n\n@utility flex-col-center {\n @apply flex flex-col justify-center items-center align-middle;\n}\n\n@utility grid-hor-center {\n @apply grid grid-flow-col items-center;\n}\n\n@utility grid-ver-center {\n @apply grid grid-flow-row items-center;\n}\n\n@utility flex-row-center {\n @apply flex flex-row justify-center items-center align-middle;\n}\n\n@utility cs-border-dashed {\n @apply border border-dashed border-neutralA-4;\n}\n\n@utility cs-disabled {\n @apply disabled:pointer-events-none disabled:opacity-50 data-disabled:pointer-events-none data-disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50;\n }\n\n@utility cs-has-disabled {\n @apply has-[[data-slot=control]:disabled]:pointer-events-none has-[[data-slot=control]:disabled]:opacity-50;\n}\n\n@utility cs-transition {\n @apply transition-all duration-200 ease-in-out;\n}\n\n@utility cs-contrast {\n @apply drop-shadow-[0_-1px_1px_#fff4];\n}\n\n@utility cs-popup-animation {\n @apply origin-(--transform-origin) transition-[scale,opacity] duration-[0.25s] ease-[cubic-bezier(0.34,1.56,0.64,1)] data-starting-style:scale-90 data-starting-style:opacity-0 data-ending-style:scale-90 data-ending-style:opacity-0 data-instant:transition-none;\n}\n\n@utility cs-focus {\n @apply outline-none focus-visible:duration-0 focus-visible:outline-solid focus-visible:z-1 focus-visible:ring-[3px] focus-visible:ring-accent-4 focus-visible:outline-1 focus-visible:-outline-offset-1 focus-visible:outline-accent-9; \n}\n\n@utility cs-has-focus {\n @apply has-[[data-slot=control]:focus-visible]:z-1 has-[[data-slot=control]:focus-visible]:ring-[3px] has-[[data-slot=control]:focus-visible]:ring-accent-4 has-[[data-slot=control]:focus-visible]:outline-1 has-[[data-slot=control]:focus-visible]:outline-solid has-[[data-slot=control]:focus-visible]:-outline-offset-1 has-[[data-slot=control]:focus-visible]:outline-accent-9;\n}\n\n@utility cs-invalid {\n @apply aria-invalid:ring-3 aria-invalid:ring-error-6 aria-invalid:border-error-9 focus-visible:aria-invalid:ring-error-4 focus-visible:aria-invalid:outline-error-9;\n}\n\n@utility cs-has-invalid {\n @apply has-[[data-slot=control][aria-invalid=true]]:ring-3 has-[[data-slot=control][aria-invalid=true]]:ring-error-6 has-[[data-slot=control][aria-invalid=true]]:border-error-9 has-[[data-slot=control][aria-invalid=true]:focus-visible]:ring-error-4 has-[[data-slot=control][aria-invalid=true]:focus-visible]:outline-error-9;\n}\n\n@utility cs-steps {\n counter-reset: step;\n}\n\n@utility cs-step {\n &::before {\n --tw-content: counter(step);\n content: var(--tw-content);\n counter-increment: step;\n }\n}\n\n@utility cs-masonry {\n columns: 3;\n & > * {\n break-inside: avoid-column;\n }\n}\n\n@utility cs-stroke {\n -webkit-text-stroke-width: var(--stroke-w, 2px);\n -webkit-text-stroke-color: var(--stroke-color, var(--color-neutral-12));\n color: transparent;\n paint-order: stroke fill;\n}\n\n@utility cs-backdrop-panel {\n @apply rounded-md border-neutralA-4 bg-neutral-1/60 text-neutral-11 backdrop-blur-lg border shadow-m;\n }\n\n@utility animate-collapsible-down {\n animation: collapsible-down 0.2s ease-out;\n}\n\n@utility animate-collapsible-up {\n animation: collapsible-up 0.2s ease-out;\n}\n\n@utility no-scrollbar {\n @apply [scrollbar-width:none] [&::-webkit-scrollbar]:hidden;\n}\n\n@utility cs-gutter {\n background: repeating-linear-gradient(315deg, var(--color-neutral-3) 0 1px, transparent 1px 50%);\n background-size: 10px 10px;\n background-attachment: fixed;\n}\n\n@utility cs-dots {\n background-image: radial-gradient(var(--color-neutral-4) 1px, transparent 1px);\n background-size: 20px 20px;\n}\n\n@keyframes stripes {\n from { background-position: 0 0; }\n to { background-position: 16px 0; }\n}\n\n@utility cs-stripes {\n background-image: repeating-linear-gradient(315deg, var(--color-neutralA-4) 0 4px, transparent 2px 50%);\n background-size: 16px 16px;\n animation: stripes 0.6s linear infinite;\n}\n\n@utility cs-guides {\n overflow: clip;\n isolation: isolate;\n\n & > * {\n position: relative;\n z-index: 0;\n\n &::after {\n content: '';\n position: absolute;\n left: 0;\n right: -1px;\n top: -9999px;\n bottom: -9999px;\n border-left: 1px solid var(--color-neutral-4);\n border-right: 1px solid var(--color-neutral-4);\n pointer-events: none;\n z-index: 1;\n }\n\n &::before {\n content: '';\n position: absolute;\n top: 0;\n bottom: -1px;\n left: -9999px;\n right: -9999px;\n border-top: 1px solid var(--color-neutral-4);\n border-bottom: 1px solid var(--color-neutral-4);\n pointer-events: none;\n z-index: 1;\n }\n }\n}\n\n@utility cs-page-container {\n @apply grid grid-cols-[1fr_minmax(0,var(--page-max-w,64rem))_1fr];\n}\n\n@utility cs-page-grid {\n position: relative;\n max-width: var(--page-max-w, 64rem);\n width: 100%;\n margin-inline: auto;\n border-inline: 1px solid var(--color-neutral-4);\n\n & > :where(*) {\n position: relative;\n\n &::after {\n content: '';\n position: absolute;\n bottom: 0;\n left: -100vw;\n width: 200vw;\n height: 1px;\n background-color: var(--color-neutral-4);\n pointer-events: none;\n }\n }\n\n & > :where(*:first-child)::before {\n content: '';\n position: absolute;\n top: 0;\n left: -100vw;\n width: 200vw;\n height: 1px;\n background-color: var(--color-neutral-4);\n pointer-events: none;\n }\n}\n\n@utility cs-page-gutter {\n &::before, &::after {\n content: '';\n position: absolute;\n top: 0;\n bottom: 0;\n width: var(--page-gutter-w, 2.5rem);\n pointer-events: none;\n background: repeating-linear-gradient(315deg, var(--color-neutral-3) 0 1px, transparent 1px 50%);\n background-size: 10px 10px;\n background-attachment: fixed;\n }\n\n &::before {\n right: 100%;\n border-left: 1px solid var(--color-neutral-4);\n }\n\n &::after {\n left: 100%;\n border-right: 1px solid var(--color-neutral-4);\n }\n}\n\n@media (pointer: coarse) {\n input,\n select,\n textarea {\n font-size: max(16px, 1em);\n }\n}\n\n@layer base {\n\n * {\n @apply transition-colors duration-200;\n }\n\n body {\n color: var(--color-neutral-12);\n background-color: var(--color-neutral-1);\n }\n\n\n @font-face {\n font-family: 'geist';\n font-weight: 100 900;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/geist.ttf) format('truetype');\n }\n\n @font-face {\n font-family: 'geist-mono';\n font-weight: 100 900;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/geist-mono.ttf) format('truetype');\n }\n\n @font-face {\n font-family: 'geist-pixel-circle';\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/geist-pixel-circle.ttf) format('truetype');\n }\n\n @font-face {\n font-family: 'geist-pixel-grid';\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/geist-pixel-grid.ttf) format('truetype');\n }\n\n @font-face {\n font-family: 'geist-pixel-line';\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/geist-pixel-line.ttf) format('truetype');\n }\n\n @font-face {\n font-family: 'geist-pixel-square';\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/geist-pixel-square.ttf) format('truetype');\n }\n\n @font-face {\n font-family: 'geist-pixel-triangle';\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/geist-pixel-triangle.ttf) format('truetype');\n }\n\n @font-face {\n font-family: 'clash-grotesk-variable';\n font-weight: 200 700;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/clash-grotesk-variable.ttf) format('truetype');\n }\n\n @font-face {\n font-family: 'nippo';\n font-weight: 200 700;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/nippo.ttf) format('truetype');\n }\n\n @font-face {\n font-family: 'being';\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/being.otf) format('opentype');\n }\n\n @font-face {\n font-family: 'Aalto';\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/aalto.otf) format('opentype');\n }\n\n @font-face {\n font-family: 'humane-variable';\n font-weight: 200 800;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/humane-variable.ttf) format('truetype');\n }\n\n @font-face {\n font-family: 'general-sans';\n font-weight: 200 800;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/general-sans.ttf) format('truetype');\n }\n\n @font-face {\n font-family: 'karmatic-arcade-regular';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/karmatic-arcade-regular.ttf) format('truetype');\n }\n\n @font-face {\n font-family: 'kode-mono-vf';\n font-style: normal;\n font-weight: 400 700;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/kode-mono-vf.ttf) format('truetype');\n }\n\n @font-face {\n font-family: 'digital-7-mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/digital-7-mono.ttf) format('truetype');\n }\n\n @font-face {\n font-family: 'pixelony';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/pixelony.ttf) format('truetype');\n }\n\n @font-face {\n font-family: 'unknown';\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n size-adjust: 140%;\n src: url(https://cdn.digo-labs.com/fonts/unknown.otf) format('opentype');\n }\n\n @font-face {\n font-family: 'benzol';\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/benzol.otf) format('opentype');\n }\n\n @font-face {\n font-family: 'half';\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/half.otf) format('opentype');\n }\n\n @font-face {\n font-family: 'miratrix';\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/miratrix.otf) format('opentype');\n }\n\n @font-face {\n font-family: 'triakis';\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/triakis.otf) format('opentype');\n }\n\n @font-face {\n font-family: 'yeager';\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/yeager.otf) format('opentype');\n }\n\n @font-face {\n font-family: 'disket';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/disket.ttf) format('truetype');\n }\n\n @font-face {\n font-family: 'heming';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/heming.ttf) format('truetype');\n }\n\n @font-face {\n font-family: 'obrazec';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/obrazec.ttf) format('truetype');\n }\n\n @font-face {\n font-family: 'satoshi';\n font-weight: 300 900;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/satoshi.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'chillax';\n font-weight: 200 700;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/chillax.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'panchang';\n font-weight: 200 800;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/panchang.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'zodiak';\n font-weight: 100 900;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/zodiak.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'supreme';\n font-weight: 100 800;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/supreme.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'boska';\n font-weight: 200 900;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/boska.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'tanker';\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/tanker.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'gambarino';\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/gambarino.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'neco';\n font-weight: 400 900;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/neco.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'erode';\n font-weight: 300 700;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/erode.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'pramukh-rounded';\n font-weight: 200 900;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/pramukh-rounded.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'bevellier';\n font-weight: 100 900;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/bevellier.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'comico';\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/comico.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'aktura';\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/aktura.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'technor';\n font-weight: 200 900;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/technor.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'array';\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/array.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'styro';\n font-weight: 200 900;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/styro.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'recia';\n font-weight: 300 700;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/recia.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'melodrama';\n font-weight: 300 700;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/melodrama.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'boxing';\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/boxing.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'kola';\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/kola.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'zina';\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/zina.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'tabular';\n font-weight: 300 700;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/tabular.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'expose';\n font-weight: 400 900;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/expose.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'kihim';\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/kihim.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'pilcrow-rounded';\n font-weight: 400 900;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/pilcrow-rounded.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'new-title';\n font-weight: 200 700;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/new-title.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'kohinoor-zerone';\n font-weight: 100;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/kohinoor-zerone.woff2) format('woff2');\n }\n\n @font-face {\n font-family: 'roundo';\n font-weight: 200 700;\n font-style: normal;\n font-display: swap;\n size-adjust: 100%;\n src: url(https://cdn.digo-labs.com/fonts/roundo.woff2) format('woff2');\n }\n \n}\n\n@layer utilities {\n * {\n scrollbar-width: thin;\n scrollbar-color: #ffffff50 transparent;\n }\n}\n\n@layer base {\n ::selection {\n background-color: var(--color-neutral-12);\n color: var(--color-neutral-1);\n }\n\n ::-moz-selection {\n background-color: var(--color-neutral-12);\n color: var(--color-neutral-1);\n }\n}", ue = /--font-([\w-]+):\s*'([^']+)'/g, y = /* @__PURE__ */ new Map(), b; (b = ue.exec(v)) !== null;) {
|
|
2097
|
+
let e = `--font-${b[1]}`, t = b[2];
|
|
2098
|
+
y.set(t.toLowerCase(), e);
|
|
2095
2099
|
}
|
|
2096
|
-
for (var de = /@font-face\s*\{([^}]*)\}/gs,
|
|
2097
|
-
let e =
|
|
2100
|
+
for (var de = /@font-face\s*\{([^}]*)\}/gs, x = [], S; (S = de.exec(v)) !== null;) {
|
|
2101
|
+
let e = S[1], t = e.match(/font-family:\s*'([^']+)'/), n = e.match(/font-weight:\s*([\d\s]+)/), r = e.match(/font-style:\s*(\w+)/), i = e.match(/src:\s*url\([^)]*?\/fonts\/([^)]+)\)\s*format\('(\w+)'\)/);
|
|
2098
2102
|
if (!t || !n || !r || !i) continue;
|
|
2099
2103
|
let a = t[1], o = n[1].trim(), s = r[1], c = i[1], l = i[2] === "truetype" ? "ttf" : i[2] === "opentype" ? "otf" : "woff2", u = o.split(/\s+/).map(Number), d = Math.min(...u), f = Math.max(...u);
|
|
2100
|
-
|
|
2104
|
+
x.push({
|
|
2101
2105
|
family: a,
|
|
2102
2106
|
weightMin: d,
|
|
2103
2107
|
weightMax: f,
|
|
@@ -2105,11 +2109,11 @@ for (var de = /@font-face\s*\{([^}]*)\}/gs, b = [], x; (x = de.exec(_)) !== null
|
|
|
2105
2109
|
format: l,
|
|
2106
2110
|
filePath: `/fonts/${c}`,
|
|
2107
2111
|
fileName: c,
|
|
2108
|
-
cssVariable:
|
|
2112
|
+
cssVariable: y.get(a.toLowerCase()) ?? null
|
|
2109
2113
|
});
|
|
2110
2114
|
}
|
|
2111
|
-
|
|
2112
|
-
var fe =
|
|
2115
|
+
x.sort((e, t) => e.family.localeCompare(t.family));
|
|
2116
|
+
var fe = x, C = {
|
|
2113
2117
|
digoLogo: "https://cdn.digo-labs.com/images/digo-logo.png",
|
|
2114
2118
|
digoLogoSvg: "https://cdn.digo-labs.com/images/digo-logo.svg",
|
|
2115
2119
|
pcLogoV1Svg: "https://cdn.digo-labs.com/images/pc-logo-v1.svg",
|
|
@@ -2129,7 +2133,7 @@ var fe = b, S = {
|
|
|
2129
2133
|
terminalScreenFrame: "https://cdn.digo-labs.com/images/terminal-screen-frame.png",
|
|
2130
2134
|
terminalScreenGlass: "https://cdn.digo-labs.com/images/terminal-screen-glass.png",
|
|
2131
2135
|
terminalSideGlass: "https://cdn.digo-labs.com/images/terminal-side-glass.png"
|
|
2132
|
-
},
|
|
2136
|
+
}, w = { porsche: "https://cdn.digo-labs.com/models/porsche.glb" }, T = class {
|
|
2133
2137
|
static setValue(e, t) {
|
|
2134
2138
|
localStorage.setItem(e, JSON.stringify(t));
|
|
2135
2139
|
}
|
|
@@ -2142,7 +2146,7 @@ var fe = b, S = {
|
|
|
2142
2146
|
return t;
|
|
2143
2147
|
}
|
|
2144
2148
|
}
|
|
2145
|
-
},
|
|
2149
|
+
}, E = class {
|
|
2146
2150
|
static setValue(e, t) {
|
|
2147
2151
|
sessionStorage.setItem(e, JSON.stringify(t));
|
|
2148
2152
|
}
|
|
@@ -2155,7 +2159,7 @@ var fe = b, S = {
|
|
|
2155
2159
|
return t;
|
|
2156
2160
|
}
|
|
2157
2161
|
}
|
|
2158
|
-
},
|
|
2162
|
+
}, D = {
|
|
2159
2163
|
bedrockText: "bedrock-text",
|
|
2160
2164
|
dmxSend: "dmx-send",
|
|
2161
2165
|
storagePresignUpload: "storage-presign-upload",
|
|
@@ -2169,7 +2173,7 @@ var fe = b, S = {
|
|
|
2169
2173
|
databaseUpdate: "database-update",
|
|
2170
2174
|
databaseDelete: "database-delete",
|
|
2171
2175
|
refreshSchemas: "refresh-schemas"
|
|
2172
|
-
},
|
|
2176
|
+
}, O = class {
|
|
2173
2177
|
static hashCode(e) {
|
|
2174
2178
|
return [...e].reduce((e, t) => Math.imul(31, e) + t.charCodeAt(0) | 0, 0);
|
|
2175
2179
|
}
|
|
@@ -2200,7 +2204,7 @@ var fe = b, S = {
|
|
|
2200
2204
|
static getFirstLetter(e) {
|
|
2201
2205
|
return e ? e.charAt(0).toUpperCase() : "X";
|
|
2202
2206
|
}
|
|
2203
|
-
},
|
|
2207
|
+
}, k = {
|
|
2204
2208
|
digo: "Digo",
|
|
2205
2209
|
refresh: "Refresh",
|
|
2206
2210
|
code: "Code",
|
|
@@ -2288,50 +2292,50 @@ var fe = b, S = {
|
|
|
2288
2292
|
generate: "Generate",
|
|
2289
2293
|
savePreset: "Save Preset",
|
|
2290
2294
|
image: "Image"
|
|
2291
|
-
},
|
|
2295
|
+
}, A = c.object({
|
|
2292
2296
|
mediaType: c.string(),
|
|
2293
2297
|
base64: c.string()
|
|
2294
|
-
}),
|
|
2298
|
+
}), j = c.object({
|
|
2295
2299
|
mediaType: c.string(),
|
|
2296
2300
|
base64: c.string()
|
|
2297
|
-
}),
|
|
2301
|
+
}), M = c.string().regex(/^\d+x\d+$/).transform((e) => e), N = c.string().regex(/^\d+:\d+$/).transform((e) => e), P = c.object({
|
|
2298
2302
|
prompt: c.string().min(1),
|
|
2299
|
-
aspectRatio:
|
|
2303
|
+
aspectRatio: N.optional(),
|
|
2300
2304
|
seed: c.number().int().optional()
|
|
2301
|
-
}),
|
|
2305
|
+
}), F = c.object({
|
|
2302
2306
|
prompt: c.string().min(1),
|
|
2303
2307
|
image: c.string().url(),
|
|
2304
2308
|
strength: c.number().min(0).max(1).optional()
|
|
2305
|
-
}),
|
|
2309
|
+
}), I = c.object({
|
|
2306
2310
|
image: c.string().url(),
|
|
2307
2311
|
factor: c.number().positive().optional()
|
|
2308
|
-
}),
|
|
2312
|
+
}), L = c.object({ image: c.string().url() }), R = c.object({
|
|
2309
2313
|
url: c.string().url(),
|
|
2310
2314
|
contentType: c.string().optional(),
|
|
2311
2315
|
width: c.number().optional(),
|
|
2312
2316
|
height: c.number().optional(),
|
|
2313
2317
|
seed: c.number().optional(),
|
|
2314
2318
|
model: c.string().optional()
|
|
2315
|
-
}),
|
|
2319
|
+
}), z = c.object({
|
|
2316
2320
|
prompt: c.string().min(1),
|
|
2317
|
-
aspectRatio:
|
|
2321
|
+
aspectRatio: N.optional(),
|
|
2318
2322
|
durationSeconds: c.number().positive().optional()
|
|
2319
|
-
}),
|
|
2323
|
+
}), B = c.object({
|
|
2320
2324
|
url: c.string().url(),
|
|
2321
2325
|
contentType: c.string().optional(),
|
|
2322
2326
|
durationSeconds: c.number().optional(),
|
|
2323
2327
|
model: c.string().optional()
|
|
2324
|
-
}),
|
|
2328
|
+
}), V = c.object({
|
|
2325
2329
|
text: c.string().min(1),
|
|
2326
2330
|
voice: c.string().optional(),
|
|
2327
2331
|
speed: c.number().positive().optional()
|
|
2328
|
-
}),
|
|
2332
|
+
}), pe = c.object({
|
|
2329
2333
|
prompt: c.string().min(1),
|
|
2330
2334
|
durationSeconds: c.number().positive().optional()
|
|
2331
|
-
}),
|
|
2335
|
+
}), me = c.object({
|
|
2332
2336
|
audio: c.string().url(),
|
|
2333
2337
|
language: c.string().optional()
|
|
2334
|
-
}),
|
|
2338
|
+
}), he = c.object({
|
|
2335
2339
|
url: c.string().url(),
|
|
2336
2340
|
contentType: c.string().optional(),
|
|
2337
2341
|
durationSeconds: c.number().optional(),
|
|
@@ -2340,23 +2344,23 @@ var fe = b, S = {
|
|
|
2340
2344
|
text: c.string(),
|
|
2341
2345
|
startSecond: c.number(),
|
|
2342
2346
|
endSecond: c.number()
|
|
2343
|
-
}),
|
|
2347
|
+
}), ge = c.object({
|
|
2344
2348
|
text: c.string(),
|
|
2345
2349
|
segments: c.array(H).optional(),
|
|
2346
2350
|
language: c.string().optional(),
|
|
2347
2351
|
model: c.string().optional()
|
|
2348
|
-
}),
|
|
2352
|
+
}), _e = c.object({
|
|
2349
2353
|
type: c.literal("text"),
|
|
2350
2354
|
text: c.string()
|
|
2351
|
-
}),
|
|
2355
|
+
}), ve = c.object({
|
|
2352
2356
|
type: c.literal("image"),
|
|
2353
2357
|
source: c.object({
|
|
2354
2358
|
base64: c.string(),
|
|
2355
2359
|
mediaType: c.string()
|
|
2356
2360
|
})
|
|
2357
|
-
}),
|
|
2361
|
+
}), ye = c.union([c.string(), c.array(c.union([_e, ve]))]), U = c.object({
|
|
2358
2362
|
role: c.enum(["user", "assistant"]),
|
|
2359
|
-
content:
|
|
2363
|
+
content: ye
|
|
2360
2364
|
}), W = c.object({
|
|
2361
2365
|
model: c.string().optional(),
|
|
2362
2366
|
messages: c.array(U).min(1),
|
|
@@ -2365,45 +2369,45 @@ var fe = b, S = {
|
|
|
2365
2369
|
maxTokens: c.number().int().positive().optional(),
|
|
2366
2370
|
stopSequences: c.array(c.string()).optional(),
|
|
2367
2371
|
providerOptions: c.record(c.string(), c.record(c.string(), c.any())).optional()
|
|
2368
|
-
}),
|
|
2372
|
+
}), be = W.omit({
|
|
2369
2373
|
model: !0,
|
|
2370
2374
|
stopSequences: !0,
|
|
2371
2375
|
providerOptions: !0
|
|
2372
|
-
}),
|
|
2376
|
+
}), xe = c.object({
|
|
2373
2377
|
channel: c.number().int().min(1).max(512),
|
|
2374
2378
|
value: c.number().int().min(0).max(255)
|
|
2375
|
-
}),
|
|
2379
|
+
}), Se = c.object({ success: c.boolean() }), G = c.string().min(1), K = c.union([
|
|
2376
2380
|
c.string(),
|
|
2377
2381
|
c.number(),
|
|
2378
2382
|
c.boolean(),
|
|
2379
2383
|
c.null()
|
|
2380
|
-
]), q = c.record(c.string(), c.unknown()),
|
|
2384
|
+
]), q = c.record(c.string(), c.unknown()), Ce = c.object({
|
|
2381
2385
|
table: G,
|
|
2382
2386
|
limit: c.number().int().positive().max(1e3).default(100),
|
|
2383
2387
|
offset: c.number().int().nonnegative().optional()
|
|
2384
|
-
}),
|
|
2388
|
+
}), we = c.object({ rows: c.array(q) }), Te = c.object({
|
|
2385
2389
|
table: G,
|
|
2386
2390
|
pk: G,
|
|
2387
2391
|
value: K
|
|
2388
|
-
}),
|
|
2392
|
+
}), Ee = c.object({ row: q.nullable() }), De = c.object({
|
|
2389
2393
|
table: G,
|
|
2390
2394
|
column: G,
|
|
2391
2395
|
value: K,
|
|
2392
2396
|
limit: c.number().int().positive().max(1e3).default(100),
|
|
2393
2397
|
offset: c.number().int().nonnegative().optional()
|
|
2394
|
-
}),
|
|
2398
|
+
}), Oe = c.object({ rows: c.array(q) }), ke = c.object({
|
|
2395
2399
|
table: G,
|
|
2396
2400
|
record: q
|
|
2397
|
-
}),
|
|
2401
|
+
}), Ae = c.object({ row: q }), je = c.object({
|
|
2398
2402
|
table: G,
|
|
2399
2403
|
pk: G,
|
|
2400
2404
|
value: K,
|
|
2401
2405
|
changes: q
|
|
2402
|
-
}),
|
|
2406
|
+
}), Me = c.object({ success: c.boolean() }), Ne = c.object({
|
|
2403
2407
|
table: G,
|
|
2404
2408
|
pk: G,
|
|
2405
2409
|
value: K
|
|
2406
|
-
}),
|
|
2410
|
+
}), Pe = c.object({ success: c.boolean() }), Fe = c.object({
|
|
2407
2411
|
bucket: c.string().min(1),
|
|
2408
2412
|
path: c.string().min(1),
|
|
2409
2413
|
contentType: c.string().min(1),
|
|
@@ -2411,11 +2415,11 @@ var fe = b, S = {
|
|
|
2411
2415
|
}), J = c.object({
|
|
2412
2416
|
url: c.string().url(),
|
|
2413
2417
|
expiresAt: c.number()
|
|
2414
|
-
}),
|
|
2418
|
+
}), Ie = c.object({
|
|
2415
2419
|
bucket: c.string().min(1),
|
|
2416
2420
|
path: c.string().min(1),
|
|
2417
2421
|
expiresIn: c.number().int().positive().max(604800).optional()
|
|
2418
|
-
}),
|
|
2422
|
+
}), Le = J, Re = c.object({
|
|
2419
2423
|
bucket: c.string().min(1),
|
|
2420
2424
|
prefix: c.string().optional(),
|
|
2421
2425
|
limit: c.number().int().positive().max(1e3).optional()
|
|
@@ -2424,21 +2428,21 @@ var fe = b, S = {
|
|
|
2424
2428
|
size: c.number(),
|
|
2425
2429
|
lastModified: c.string(),
|
|
2426
2430
|
etag: c.string().optional()
|
|
2427
|
-
}),
|
|
2431
|
+
}), ze = c.object({ objects: c.array(Y) }), Be = c.object({
|
|
2428
2432
|
bucket: c.string().min(1),
|
|
2429
2433
|
paths: c.array(c.string().min(1)).min(1)
|
|
2430
|
-
}),
|
|
2434
|
+
}), Ve = c.object({
|
|
2431
2435
|
success: c.boolean(),
|
|
2432
2436
|
deleted: c.array(c.string())
|
|
2433
|
-
}),
|
|
2437
|
+
}), He = /* @__PURE__ */ function(e) {
|
|
2434
2438
|
return e.ANIMATED_FILM = "3D_ANIMATED_FAMILY_FILM", e.FLAT_VECTOR_ILLUSTRATION = "FLAT_VECTOR_ILLUSTRATION", e.GRAPHIC_NOVEL_ILLUSTRATION = "GRAPHIC_NOVEL_ILLUSTRATION", e.MAXIMALISM = "MAXIMALISM", e.MIDCENTURY_RETRO = "MIDCENTURY_RETRO", e.PHOTOREALISM = "PHOTOREALISM", e.SOFT_DIGITAL_PAINTING = "SOFT_DIGITAL_PAINTING", e;
|
|
2435
|
-
}({}), He = /* @__PURE__ */ function(e) {
|
|
2436
|
-
return e.IDENTIFY = "IDENTIFY", e.SUBSCRIBE = "SUBSCRIBE", e.UNSUBSCRIBE = "UNSUBSCRIBE", e.MESSAGE = "MESSAGE", e.STATE = "STATE", e;
|
|
2437
2439
|
}({}), Ue = /* @__PURE__ */ function(e) {
|
|
2440
|
+
return e.IDENTIFY = "IDENTIFY", e.SUBSCRIBE = "SUBSCRIBE", e.UNSUBSCRIBE = "UNSUBSCRIBE", e.MESSAGE = "MESSAGE", e.STATE = "STATE", e;
|
|
2441
|
+
}({}), We = /* @__PURE__ */ function(e) {
|
|
2438
2442
|
return e.MESSAGE = "MESSAGE", e.STATE = "STATE", e;
|
|
2439
|
-
}({}),
|
|
2443
|
+
}({}), X = "_hub", Ge = /* @__PURE__ */ function(e) {
|
|
2440
2444
|
return e.CONNECT = "CONNECT", e.DISCONNECT = "DISCONNECT", e.SUBSCRIBE = "SUBSCRIBE", e.UNSUBSCRIBE = "UNSUBSCRIBE", e.MESSAGE = "MESSAGE", e.STATE = "STATE", e;
|
|
2441
|
-
}({}),
|
|
2445
|
+
}({}), Ke = { pcLogo3D: "https://cdn.digo-labs.com/videos/pc-logo-3d.mp4" };
|
|
2442
2446
|
//#endregion
|
|
2443
2447
|
//#region src/utils.ts
|
|
2444
2448
|
async function Z(e) {
|
|
@@ -2448,13 +2452,13 @@ async function Z(e) {
|
|
|
2448
2452
|
return [null, e];
|
|
2449
2453
|
}
|
|
2450
2454
|
}
|
|
2451
|
-
var
|
|
2452
|
-
function
|
|
2453
|
-
return
|
|
2455
|
+
var qe = u({ extend: { classGroups: h } });
|
|
2456
|
+
function Je(...e) {
|
|
2457
|
+
return qe(l(e));
|
|
2454
2458
|
}
|
|
2455
2459
|
//#endregion
|
|
2456
2460
|
//#region src/samples.ts
|
|
2457
|
-
var
|
|
2461
|
+
var Ye = [
|
|
2458
2462
|
"New York",
|
|
2459
2463
|
"Tokyo",
|
|
2460
2464
|
"Paris",
|
|
@@ -2480,7 +2484,7 @@ var Je = [
|
|
|
2480
2484
|
"Mexico City",
|
|
2481
2485
|
"Oslo",
|
|
2482
2486
|
"Zürich"
|
|
2483
|
-
],
|
|
2487
|
+
], Xe = [
|
|
2484
2488
|
"The quick brown fox jumps over the lazy dog.",
|
|
2485
2489
|
"Pack my box with five dozen liquor jugs.",
|
|
2486
2490
|
"How vexingly quick daft zebras jump.",
|
|
@@ -2491,16 +2495,16 @@ var Je = [
|
|
|
2491
2495
|
"Sixty zippers were quickly picked from the woven jute bag.",
|
|
2492
2496
|
"We promptly judged antique ivory buckles for the next prize.",
|
|
2493
2497
|
"A mad boxer shot a quick, gloved jab to the jaw of his dizzy opponent."
|
|
2494
|
-
],
|
|
2498
|
+
], Ze = { monorepo: { trustedOrigins: [
|
|
2495
2499
|
"http://localhost:*",
|
|
2496
2500
|
"http://127.0.0.1:*",
|
|
2497
2501
|
"https://*.digo-labs.com"
|
|
2498
|
-
] } }, Q = "productionclub.net",
|
|
2502
|
+
] } }, Q = "productionclub.net", Qe = "admin", $ = {
|
|
2499
2503
|
public: 0,
|
|
2500
2504
|
user: 1,
|
|
2501
2505
|
org: 2,
|
|
2502
2506
|
admin: 3
|
|
2503
|
-
},
|
|
2507
|
+
}, $e = class {
|
|
2504
2508
|
static deriveTier(e) {
|
|
2505
2509
|
return e ? this.hasAdminRole(e.role) ? "admin" : this.isOrgUser(e) ? "org" : "user" : "public";
|
|
2506
2510
|
}
|
|
@@ -2511,13 +2515,13 @@ var Je = [
|
|
|
2511
2515
|
return typeof e == "string" && Object.hasOwn($, e);
|
|
2512
2516
|
}
|
|
2513
2517
|
static hasAdminRole(e) {
|
|
2514
|
-
return e ? e.split(",").includes(
|
|
2518
|
+
return e ? e.split(",").includes(Qe) : !1;
|
|
2515
2519
|
}
|
|
2516
2520
|
static isOrgUser(e) {
|
|
2517
2521
|
return e.emailVerified ? e.email.toLowerCase().endsWith(`@${Q}`) : !1;
|
|
2518
2522
|
}
|
|
2519
2523
|
};
|
|
2520
2524
|
//#endregion
|
|
2521
|
-
export { se as AI_MODELS,
|
|
2525
|
+
export { se as AI_MODELS, Ze as AUTH_PROJECTS, ae as AWS_DEFAULT_REGION, d as AppConfigHelpers, $e as AuthTierHelpers, p as BACKEND_URL, oe as BREAKPOINTS, He as BedrockStyle, Ye as CITIES, f as CommonHelpers, ee as DIGO_ADMIN_SECRET, ne as DIGO_COLORS, m as DIGO_HEADERS, te as DIGO_STORAGE_BUCKET_SUFFIX, Xe as EXCERPTS, fe as FONT_FACES, C as IMAGES, le as IconHelpers, ce as LANGUAGE_MAP, T as LocalStorage, w as MODELS, Q as ORG_EMAIL_DOMAIN, ie as REPLICATE_PROXY, D as ROUTES, k as STRINGS, E as SessionStorage, O as StringHelpers, h as TYPO_CLASS_GROUPS, Ke as VIDEOS, X as WEBSOCKET_HUB_CHANNEL, re as WS_URL, We as WebSocketHubEvent, Ue as WebsocketClientEvent, Ge as WebsocketLogEvent, N as aspectRatioSchema, pe as audioMusicBodySchema, V as audioSpeechBodySchema, me as audioTranscribeBodySchema, Je as cn, ke as databaseCreateBodySchema, Ae as databaseCreateResponseSchema, Ne as databaseDeleteBodySchema, Pe as databaseDeleteResponseSchema, Ce as databaseGetAllBodySchema, we as databaseGetAllResponseSchema, Te as databaseGetBodySchema, De as databaseGetByBodySchema, Oe as databaseGetByResponseSchema, Ee as databaseGetResponseSchema, je as databaseUpdateBodySchema, Me as databaseUpdateResponseSchema, Be as deleteBodySchema, Ve as deleteResponseSchema, xe as dmxSendBodySchema, Se as dmxSendResponseSchema, A as filePayloadSchema, he as generatedAudioSchema, R as generatedImageSchema, B as generatedVideoSchema, F as imageEditBodySchema, P as imageGenerateBodySchema, j as imagePayloadSchema, L as imageRemoveBackgroundBodySchema, I as imageUpscaleBodySchema, Re as listBodySchema, ze as listResponseSchema, Ie as presignDownloadBodySchema, Le as presignDownloadResponseSchema, Fe as presignUploadBodySchema, J as presignUploadResponseSchema, M as sizeFormattedSchema, Y as storageObjectSchema, W as textBodySchema, be as textGenerateBodySchema, U as textMessageSchema, ge as transcriptionSchema, H as transcriptionSegmentSchema, Z as tryCatch, z as videoGenerateBodySchema };
|
|
2522
2526
|
|
|
2523
2527
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../src/app-config-helpers.ts","../src/common-helpers.ts","../src/constants.ts","../src/icons.ts","../src/fonts.ts","../src/images.ts","../src/models.ts","../src/local-storage.ts","../src/session-storage.ts","../src/routes.ts","../src/string-helpers.ts","../src/strings.ts","../src/schemas/primitives.ts","../src/schemas/ai.ts","../src/schemas/dmx.ts","../src/schemas/database.ts","../src/schemas/storage.ts","../src/types/common-types.ts","../src/types/websocket-types.ts","../src/videos.ts","../src/utils.ts","../src/samples.ts","../src/auth.ts"],"sourcesContent":["export class AppConfigHelpers {\n private static appName: string | undefined;\n\n public static setCurrentAppName(name: string): void {\n if (this.appName !== undefined && this.appName !== name) {\n throw new Error(\n `setCurrentAppName: already set to '${this.appName}', cannot override with '${name}'. ` +\n 'This usually means defineApp() was called twice with different names.',\n );\n }\n this.appName = name;\n }\n\n public static getCurrentAppName(): string {\n if (this.appName === undefined) {\n throw new Error(\n 'getCurrentAppName: no app name registered. ' +\n 'Call defineApp() before constructing services, or pass an explicit value to the service constructor.',\n );\n }\n return this.appName;\n }\n\n public static resetAppName(): void {\n this.appName = undefined;\n }\n\n public static sanitizeAppName(name: string): string {\n const sanitized = name.toLowerCase().replace(/-/g, '_');\n\n if (!/^[a-z][a-z0-9_]*$/.test(sanitized)) {\n throw new Error(`sanitizeAppName: invalid app name '${name}' (sanitized: '${sanitized}')`);\n }\n\n return sanitized;\n }\n}\n","import { ImagePayload, Result, Time, tryCatch } from './';\n\nimport { removeBackground } from '@imgly/background-removal';\n\nimport { formatDistanceToNow, parseISO } from 'date-fns';\nimport { decode, encode } from 'base64-arraybuffer';\n\nexport class CommonHelpers {\n public static copyToClipboard(text: string) {\n navigator.clipboard.writeText(text)\n .then(() => {\n\n })\n .catch(() => {\n console.error('Failed to copy');\n });\n }\n\n public static async removeBackground(image: ImagePayload): Promise<ImagePayload> {\n const arrayBuffer = decode(image.base64);\n const blob = new Blob([arrayBuffer], { type: image.mediaType });\n\n const resultBlob = await removeBackground(blob);\n\n const resultArrayBuffer = await resultBlob.arrayBuffer();\n const base64 = encode(resultArrayBuffer);\n\n return {\n base64: base64,\n mediaType: 'image/png',\n };\n }\n\n public static getTimeFormatted(seconds: number): Time {\n const time: Time = {\n hours: Math.floor(seconds / 3600),\n minutes: Math.floor((seconds % 3600) / 60),\n seconds: seconds % 60,\n };\n return time;\n }\n\n public static async getTextFromClipboard(): Promise<string> {\n return await navigator.clipboard.readText();\n }\n\n public static decodeBase64(base64: string): ArrayBuffer {\n const arraybuffer = decode(base64);\n return arraybuffer;\n }\n\n public static getRandomInteger(min: number, max: number): number {\n const randomInteger = Math.floor(Math.random() * (max - min + 1)) + min;\n return randomInteger;\n }\n\n public static encodeArrayBufferToBase64(arrayBuffer: ArrayBuffer): string {\n const base64 = encode(arrayBuffer);\n return base64;\n }\n\n public static hexToRgb(hex: string) {\n const m = hex.match(/^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i);\n if (!m) return { r: 0, g: 0, b: 0 };\n return {\n r: parseInt(m[1], 16),\n g: parseInt(m[2], 16),\n b: parseInt(m[3], 16),\n };\n }\n\n public static rgbArrayToHex(rgb: [number, number, number]): string {\n const hex = rgb.map((value) => {\n const hexValue = value.toString(16);\n return hexValue.length === 1 ? '0' + hexValue : hexValue;\n }).join('');\n\n return `#${hex}`;\n }\n\n public static hexToRgbArray(hex: string): [number, number, number] {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n\n if (!result) return [0, 0, 0];\n\n return [\n parseInt(result[1], 16) / 255,\n parseInt(result[2], 16) / 255,\n parseInt(result[3], 16) / 255,\n ];\n }\n\n public static getCssVariable(variable: string) {\n return getComputedStyle(document.documentElement).getPropertyValue(variable);\n }\n\n public static setCssVariable(name: string, element: HTMLElement) {\n document.documentElement.style.setProperty(name, `${element.offsetHeight}px`);\n }\n\n public static lerp(start: number, end: number, t: number): number {\n return start + (end - start) * t; ;\n }\n\n public static lerpArray(start: number[], end: number[], t: number): number[] {\n return start.map((startItem, index) => startItem + (end[index] - startItem) * t);\n }\n\n public static clamp(value: number, min: number, max: number) {\n return Math.min(Math.max(value, min), max);\n }\n\n public static async downloadURI(uri: string, name?: string) {\n const response = await fetch(uri);\n const blob = await response.blob();\n const url = URL.createObjectURL(blob);\n const link = document.createElement('a');\n link.href = url;\n link.download = name || 'download';\n link.click();\n URL.revokeObjectURL(url);\n }\n\n public static async getFileFromUrl(url: string, fileName?: string): Promise<File> {\n const response = await fetch(url);\n const blob = await response.blob();\n const imageFile = new File([blob], fileName ? fileName : 'untitled', { type: blob.type });\n\n return imageFile;\n }\n\n public static generateUUID(): string {\n if (crypto.randomUUID) {\n return crypto.randomUUID();\n }\n\n const fallback = `${Date.now()}-${Math.random().toString(36).substring(2, 15)}${Math.random().toString(36).substring(2, 15)}`;\n\n return fallback;\n }\n\n public static async getImagePayloadFromUrl(url: string, fileName?: string): Promise<Result<ImagePayload>> {\n const imageFile = await this.getFileFromUrl(url, fileName);\n\n return this.getImagePayloadFromFile(imageFile);\n }\n\n public static async getImagePayloadFromFile(file: File): Promise<Result<ImagePayload>> {\n const [arrayBuffer, error] = await tryCatch(file.arrayBuffer());\n\n if (error) return [null, error];\n\n const base64 = CommonHelpers.encodeArrayBufferToBase64(arrayBuffer);\n const mediaType = file.type;\n\n const imageData: ImagePayload = { base64: base64, mediaType: mediaType };\n return [imageData, null];\n }\n\n public static getFileFromImagePayload(ImagePayload: ImagePayload): File {\n const arrayBuffer = decode(ImagePayload.base64);\n const blob = new Blob([arrayBuffer], { type: ImagePayload.mediaType });\n const extension = ImagePayload.mediaType.split('/')[1] || 'png';\n const file = new File([blob], `created-file.${extension}`, { type: ImagePayload.mediaType });\n\n return file;\n }\n\n public static setTabName(name: string) {\n document.title = `${name}`;\n }\n\n public static openFileSelector(accepts: string, callback: (file: File) => void): void {\n const input = document.createElement('input');\n input.type = 'file';\n\n input.accept = accepts;\n\n input.onchange = (event: Event) => {\n const target = event.target as HTMLInputElement;\n if (target.files && target.files.length > 0) {\n const file = target.files[0];\n callback(file);\n }\n };\n\n input.click();\n }\n\n public static formatNumberTwoDigits(number: number): string {\n const formatedNumber = number.toFixed().padStart(2, '0');\n return formatedNumber;\n }\n\n public getFormatedTime(miliseconds: number, decimals: number = 2): string {\n const time = (miliseconds / 1000).toFixed(decimals);\n return time;\n }\n\n public static async preloadImage(url: string): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n const image = new Image();\n image.onload = () => resolve();\n image.onerror = () => reject(new Error(`Failed to load: ${url}`));\n image.src = url;\n });\n }\n\n public static async preloadImages(urls: string[]): Promise<void> {\n const promises = urls.map(url => CommonHelpers.preloadImage(url));\n await Promise.all(promises);\n }\n\n public static getUniqueLetters(word: string): string[] {\n const uniqueLetters = [...new Set(word.split(''))];\n\n return uniqueLetters;\n }\n\n public static async compressImage(base64: string, mediaType: string, maxWidth: number = 800, quality: number = 0.7): Promise<ImagePayload> {\n return new Promise((resolve) => {\n const img = new Image();\n img.onload = () => {\n const canvas = document.createElement('canvas');\n const ratio = Math.min(maxWidth / img.width, maxWidth / img.height, 1);\n canvas.width = img.width * ratio;\n canvas.height = img.height * ratio;\n\n const ctx = canvas.getContext('2d')!;\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n\n const compressedBase64 = canvas.toDataURL('image/jpeg', quality).split(',')[1];\n\n resolve({\n base64: compressedBase64,\n mediaType: 'image/jpeg',\n });\n };\n img.src = `data:${mediaType};base64,${base64}`;\n });\n }\n\n public static async downloadCsvFromUrl(url: string) {\n const response = await fetch(url);\n\n if (!response.ok) throw new Error(`Failed to download CSV file: ${response.statusText}`);\n\n const csvData = await response.text();\n\n return csvData;\n }\n\n public static getLastUpdated(timeStamptz: string): string {\n const date = parseISO(timeStamptz);\n const formattedDate = formatDistanceToNow(date, { addSuffix: true });\n\n return formattedDate;\n }\n\n public static getUniqueIdInList(baseId: string, ids: string[]): string {\n const match = baseId.match(/^(.*?)(-\\d+)?$/);\n let base = baseId;\n let suffix = 1;\n\n if (match) {\n base = match[1];\n if (match[2]) {\n suffix = parseInt(match[2].slice(1)) + 1;\n }\n }\n\n const baseLower = base.toLowerCase();\n let newId = `${baseLower}-${suffix}`;\n\n while (ids.some(id => id.toLowerCase() === newId)) {\n suffix++;\n newId = `${baseLower}-${suffix}`;\n }\n\n return newId.toLowerCase();\n }\n\n public static scrollToBottom(container: HTMLDivElement | null) {\n if (!container) return;\n\n container.scrollTo({\n top: container.scrollHeight,\n behavior: 'smooth',\n });\n }\n}\n","import { Breakpoint, ClassGroups, CodeLanguageMetadata, ModelPayload } from './types/common-types';\n\nexport const BACKEND_URL = 'https://api.digo-labs.com';\n\nexport const DIGO_HEADERS = 'X-Digo-App';\n\nexport const DIGO_ADMIN_SECRET = 'X-Admin-Secret';\n\nexport const DIGO_STORAGE_BUCKET_SUFFIX = '-digo-labs-storage';\n\nexport const DIGO_COLORS = ['#58C2E3', '#79F2A9', '#985EFF', '#BDF279'];\n\nexport const WS_URL = 'wss://ws.digo-labs.com';\n\nexport const AWS_DEFAULT_REGION = 'us-east-1';\n\nexport const BREAKPOINTS: Record<Breakpoint, number> = {\n 'sm': 640,\n 'md': 768,\n 'lg': 1024,\n 'xl': 1280,\n '2xl': 1536,\n};\n\nexport const TYPO_CLASS_GROUPS: ClassGroups = {\n 'font-size': [{ typo: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18'] }],\n 'font-weight': [{ 'typo-weight': ['100', '200', '300', '400', '500', '600', '700', '800', '900'] }],\n 'typo-family': ['typo-header', 'typo-label', 'typo-body', 'typo-code'],\n};\n\nexport const AI_MODELS: ModelPayload[] = [\n {\n name: 'Claude 3.7 Sonnet',\n description: 'Anthropic\\'s advanced model',\n icon: 'icon-[simple-icons--anthropic]',\n },\n {\n name: 'Gemini 2.5 Pro',\n description: 'Google\\'s latest model',\n icon: 'icon-[simple-icons--googlegemini]',\n },\n {\n name: 'GPT-4.1',\n description: 'OpenAi\\'s advanced model',\n icon: 'icon-[simple-icons--openai]',\n },\n];\n\nexport const LANGUAGE_MAP: Record<string, CodeLanguageMetadata> = {\n typescript: { icon: 'typescript', name: 'TypeScript' },\n javascript: { icon: 'javascript', name: 'JavaScript' },\n tsx: { icon: 'typescript', name: 'TSX' },\n jsx: { icon: 'javascript', name: 'JSX' },\n python: { icon: 'python', name: 'Python' },\n rust: { icon: 'code', name: 'Rust' },\n go: { icon: 'code', name: 'Go' },\n sql: { icon: 'code', name: 'SQL' },\n bash: { icon: 'terminal', name: 'Bash' },\n sh: { icon: 'terminal', name: 'Shell' },\n shell: { icon: 'terminal', name: 'Shell' },\n json: { icon: 'code', name: 'JSON' },\n css: { icon: 'code', name: 'CSS' },\n html: { icon: 'code', name: 'HTML' },\n markdown: { icon: 'code', name: 'Markdown' },\n yaml: { icon: 'code', name: 'YAML' },\n xml: { icon: 'code', name: 'XML' },\n text: { icon: 'code', name: 'Text' },\n};\n","enum IconCategory {\n Navigation = 'Navigation',\n Actions = 'Actions',\n Status = 'Status',\n Media = 'Media',\n Files = 'Files',\n UI = 'UI',\n Brands = 'Brands',\n Programming = 'Programming',\n Tools = 'Tools',\n Data = 'Data',\n Communication = 'Communication',\n Design = 'Design',\n AI = 'AI',\n Numbers = 'Numbers',\n Misc = 'Misc',\n}\n\ninterface IconProperties {\n icon: string;\n category: IconCategory;\n}\n\ninterface IconEntry extends IconProperties {\n id: string;\n}\n\nexport type CuratedIcons = keyof typeof CURATED_ICONS;\n\nconst CURATED_ICONS = {\n arrowUp: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-up]' },\n arrowDown: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-down]' },\n arrowLeft: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-left]' },\n arrowRight: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-right]' },\n arrowUpLeft: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-up-left]' },\n arrowUpRight: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-up-right]' },\n arrowDownLeft: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-down-left]' },\n arrowDownRight: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-down-right]' },\n arrowLeftRight: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-left-right]' },\n arrowUpDown: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-up-down]' },\n circleArrowUp: { category: IconCategory.Navigation, icon: 'icon-[lucide--circle-arrow-up]' },\n circleArrowDown: { category: IconCategory.Navigation, icon: 'icon-[lucide--circle-arrow-down]' },\n circleArrowLeft: { category: IconCategory.Navigation, icon: 'icon-[lucide--circle-arrow-left]' },\n circleArrowRight: { category: IconCategory.Navigation, icon: 'icon-[lucide--circle-arrow-right]' },\n chevronUp: { category: IconCategory.Navigation, icon: 'icon-[lucide--chevron-up]' },\n chevronDown: { category: IconCategory.Navigation, icon: 'icon-[lucide--chevron-down]' },\n chevronLeft: { category: IconCategory.Navigation, icon: 'icon-[lucide--chevron-left]' },\n chevronRight: { category: IconCategory.Navigation, icon: 'icon-[lucide--chevron-right]' },\n chevronsUp: { category: IconCategory.Navigation, icon: 'icon-[lucide--chevrons-up]' },\n chevronsDown: { category: IconCategory.Navigation, icon: 'icon-[lucide--chevrons-down]' },\n chevronsLeft: { category: IconCategory.Navigation, icon: 'icon-[lucide--chevrons-left]' },\n chevronsRight: { category: IconCategory.Navigation, icon: 'icon-[lucide--chevrons-right]' },\n chevronsUpDown: { category: IconCategory.Navigation, icon: 'icon-[lucide--chevrons-up-down]' },\n cornerDownLeft: { category: IconCategory.Navigation, icon: 'icon-[lucide--corner-down-left]' },\n cornerDownRight: { category: IconCategory.Navigation, icon: 'icon-[lucide--corner-down-right]' },\n cornerLeftDown: { category: IconCategory.Navigation, icon: 'icon-[lucide--corner-left-down]' },\n cornerLeftUp: { category: IconCategory.Navigation, icon: 'icon-[lucide--corner-left-up]' },\n cornerRightDown: { category: IconCategory.Navigation, icon: 'icon-[lucide--corner-right-down]' },\n cornerRightUp: { category: IconCategory.Navigation, icon: 'icon-[lucide--corner-right-up]' },\n cornerUpLeft: { category: IconCategory.Navigation, icon: 'icon-[lucide--corner-up-left]' },\n cornerUpRight: { category: IconCategory.Navigation, icon: 'icon-[lucide--corner-up-right]' },\n home: { category: IconCategory.Navigation, icon: 'icon-[lucide--house]' },\n compass: { category: IconCategory.Navigation, icon: 'icon-[lucide--compass]' },\n menu: { category: IconCategory.Navigation, icon: 'icon-[lucide--menu]' },\n anchor: { category: IconCategory.Navigation, icon: 'icon-[lucide--anchor]' },\n route: { category: IconCategory.Navigation, icon: 'icon-[lucide--route]' },\n router: { category: IconCategory.Navigation, icon: 'icon-[lucide--router]' },\n externalLink: { category: IconCategory.Navigation, icon: 'icon-[lucide--external-link]' },\n move: { category: IconCategory.Navigation, icon: 'icon-[lucide--move]' },\n expand: { category: IconCategory.Navigation, icon: 'icon-[material-symbols--expand-more-rounded]' },\n collapse: { category: IconCategory.Navigation, icon: 'icon-[material-symbols--expand-less-rounded]' },\n firstPage: { category: IconCategory.Navigation, icon: 'icon-[material-symbols--first-page-rounded]' },\n lastPage: { category: IconCategory.Navigation, icon: 'icon-[material-symbols--last-page-rounded]' },\n openInNew: { category: IconCategory.Navigation, icon: 'icon-[material-symbols--open-in-new-rounded]' },\n select: { category: IconCategory.Navigation, icon: 'icon-[mi--select]' },\n signIn: { category: IconCategory.Navigation, icon: 'icon-[lucide--log-in]' },\n login: { category: IconCategory.Navigation, icon: 'icon-[lucide--log-in]' },\n logout: { category: IconCategory.Navigation, icon: 'icon-[lucide--log-out]' },\n squareMenu: { category: IconCategory.Navigation, icon: 'icon-[lucide--square-menu]' },\n add: { category: IconCategory.Actions, icon: 'icon-[lucide--plus]' },\n remove: { category: IconCategory.Actions, icon: 'icon-[lucide--minus]' },\n close: { category: IconCategory.Actions, icon: 'icon-[lucide--x]' },\n check: { category: IconCategory.Actions, icon: 'icon-[lucide--check]' },\n checkCheck: { category: IconCategory.Actions, icon: 'icon-[lucide--check-check]' },\n checkIndeterminate: { category: IconCategory.Actions, icon: 'icon-[material-symbols--check-indeterminate-small-rounded]' },\n search: { category: IconCategory.Actions, icon: 'icon-[lucide--search]' },\n zoomIn: { category: IconCategory.Actions, icon: 'icon-[lucide--zoom-in]' },\n zoomOut: { category: IconCategory.Actions, icon: 'icon-[lucide--zoom-out]' },\n edit: { category: IconCategory.Actions, icon: 'icon-[lucide--pencil]' },\n pencilLine: { category: IconCategory.Actions, icon: 'icon-[lucide--pencil-line]' },\n delete: { category: IconCategory.Actions, icon: 'icon-[lucide--trash]' },\n trash: { category: IconCategory.Actions, icon: 'icon-[lucide--trash-2]' },\n copy: { category: IconCategory.Actions, icon: 'icon-[lucide--copy]' },\n paste: { category: IconCategory.Actions, icon: 'icon-[lucide--clipboard-paste]' },\n cut: { category: IconCategory.Actions, icon: 'icon-[lucide--scissors]' },\n save: { category: IconCategory.Actions, icon: 'icon-[lucide--save]' },\n download: { category: IconCategory.Actions, icon: 'icon-[lucide--download]' },\n upload: { category: IconCategory.Actions, icon: 'icon-[lucide--upload]' },\n refresh: { category: IconCategory.Actions, icon: 'icon-[lucide--refresh-cw]' },\n refreshCcw: { category: IconCategory.Actions, icon: 'icon-[lucide--refresh-ccw]' },\n rotateCw: { category: IconCategory.Actions, icon: 'icon-[lucide--rotate-cw]' },\n rotateCcw: { category: IconCategory.Actions, icon: 'icon-[lucide--rotate-ccw]' },\n sync: { category: IconCategory.Actions, icon: 'icon-[material-symbols--sync-rounded]' },\n undo: { category: IconCategory.Actions, icon: 'icon-[lucide--undo-2]' },\n redo: { category: IconCategory.Actions, icon: 'icon-[lucide--redo-2]' },\n send: { category: IconCategory.Actions, icon: 'icon-[lucide--send]' },\n share: { category: IconCategory.Actions, icon: 'icon-[lucide--share]' },\n share2: { category: IconCategory.Actions, icon: 'icon-[lucide--share-2]' },\n attach: { category: IconCategory.Actions, icon: 'icon-[lucide--paperclip]' },\n link: { category: IconCategory.Actions, icon: 'icon-[lucide--link]' },\n link2: { category: IconCategory.Actions, icon: 'icon-[lucide--link-2]' },\n unlink: { category: IconCategory.Actions, icon: 'icon-[lucide--unlink]' },\n filter: { category: IconCategory.Actions, icon: 'icon-[lucide--filter]' },\n listFilter: { category: IconCategory.Actions, icon: 'icon-[lucide--list-filter]' },\n sort: { category: IconCategory.Actions, icon: 'icon-[lucide--arrow-up-down]' },\n sortAsc: { category: IconCategory.Actions, icon: 'icon-[lucide--arrow-up-narrow-wide]' },\n sortDesc: { category: IconCategory.Actions, icon: 'icon-[lucide--arrow-down-wide-narrow]' },\n lock: { category: IconCategory.Actions, icon: 'icon-[lucide--lock]' },\n lockOpen: { category: IconCategory.Actions, icon: 'icon-[lucide--lock-open]' },\n unlock: { category: IconCategory.Actions, icon: 'icon-[lucide--lock-open]' },\n print: { category: IconCategory.Actions, icon: 'icon-[lucide--printer]' },\n backspace: { category: IconCategory.Actions, icon: 'icon-[lucide--delete]' },\n crop: { category: IconCategory.Actions, icon: 'icon-[lucide--crop]' },\n textSearch: { category: IconCategory.Actions, icon: 'icon-[lucide--text-search]' },\n clipboardCopy: { category: IconCategory.Actions, icon: 'icon-[lucide--clipboard-copy]' },\n replace: { category: IconCategory.Actions, icon: 'icon-[lucide--replace]' },\n searchCheck: { category: IconCategory.Actions, icon: 'icon-[lucide--search-check]' },\n success: { category: IconCategory.Status, icon: 'icon-[lucide--circle-check]' },\n checkCircle: { category: IconCategory.Status, icon: 'icon-[lucide--circle-check-big]' },\n info: { category: IconCategory.Status, icon: 'icon-[lucide--info]' },\n warning: { category: IconCategory.Status, icon: 'icon-[lucide--triangle-alert]' },\n error: { category: IconCategory.Status, icon: 'icon-[lucide--circle-x]' },\n help: { category: IconCategory.Status, icon: 'icon-[lucide--circle-help]' },\n spinner: { category: IconCategory.Status, icon: 'icon-[line-md--loading-twotone-loop]' },\n spinnerDots: { category: IconCategory.Status, icon: 'icon-[svg-spinners--3-dots-move]' },\n loading: { category: IconCategory.Status, icon: 'icon-[line-md--loading-twotone-loop]' },\n loaderCircle: { category: IconCategory.Status, icon: 'icon-[lucide--loader-circle]' },\n verified: { category: IconCategory.Status, icon: 'icon-[lucide--badge-check]' },\n visibility: { category: IconCategory.Status, icon: 'icon-[lucide--eye]' },\n visibilityOff: { category: IconCategory.Status, icon: 'icon-[lucide--eye-off]' },\n online: { category: IconCategory.Status, icon: 'icon-[lucide--circle-dot]' },\n circleCheck: { category: IconCategory.Status, icon: 'icon-[lucide--circle-check]' },\n squareCheck: { category: IconCategory.Status, icon: 'icon-[lucide--square-check]' },\n loader: { category: IconCategory.Status, icon: 'icon-[lucide--loader]' },\n gauge: { category: IconCategory.Status, icon: 'icon-[lucide--gauge]' },\n play: { category: IconCategory.Media, icon: 'icon-[lucide--play]' },\n pause: { category: IconCategory.Media, icon: 'icon-[lucide--pause]' },\n stop: { category: IconCategory.Media, icon: 'icon-[lucide--square]' },\n stopCircle: { category: IconCategory.Media, icon: 'icon-[lucide--circle-stop]' },\n skipBack: { category: IconCategory.Media, icon: 'icon-[lucide--skip-back]' },\n skipForward: { category: IconCategory.Media, icon: 'icon-[lucide--skip-forward]' },\n skipNext: { category: IconCategory.Media, icon: 'icon-[lucide--skip-forward]' },\n skipPrevious: { category: IconCategory.Media, icon: 'icon-[lucide--skip-back]' },\n fastForward: { category: IconCategory.Media, icon: 'icon-[lucide--fast-forward]' },\n fastRewind: { category: IconCategory.Media, icon: 'icon-[lucide--rewind]' },\n rewind: { category: IconCategory.Media, icon: 'icon-[lucide--rewind]' },\n loop: { category: IconCategory.Media, icon: 'icon-[lucide--repeat]' },\n shuffle: { category: IconCategory.Media, icon: 'icon-[lucide--shuffle]' },\n volumeUp: { category: IconCategory.Media, icon: 'icon-[lucide--volume-2]' },\n volumeDown: { category: IconCategory.Media, icon: 'icon-[lucide--volume-1]' },\n volumeOff: { category: IconCategory.Media, icon: 'icon-[lucide--volume-off]' },\n image: { category: IconCategory.Media, icon: 'icon-[lucide--image]' },\n imagePlus: { category: IconCategory.Media, icon: 'icon-[lucide--image-plus]' },\n video: { category: IconCategory.Media, icon: 'icon-[lucide--video]' },\n videoOff: { category: IconCategory.Media, icon: 'icon-[lucide--video-off]' },\n camera: { category: IconCategory.Media, icon: 'icon-[lucide--camera]' },\n mic: { category: IconCategory.Media, icon: 'icon-[lucide--mic]' },\n micOff: { category: IconCategory.Media, icon: 'icon-[lucide--mic-off]' },\n webcam: { category: IconCategory.Media, icon: 'icon-[lucide--webcam]' },\n music: { category: IconCategory.Media, icon: 'icon-[lucide--music]' },\n music2: { category: IconCategory.Media, icon: 'icon-[lucide--music-2]' },\n headset: { category: IconCategory.Media, icon: 'icon-[lucide--headset]' },\n captions: { category: IconCategory.Media, icon: 'icon-[lucide--captions]' },\n playCircle: { category: IconCategory.Media, icon: 'icon-[lucide--circle-play]' },\n pauseCircle: { category: IconCategory.Media, icon: 'icon-[lucide--circle-pause]' },\n imageUp: { category: IconCategory.Media, icon: 'icon-[lucide--image-up]' },\n images: { category: IconCategory.Media, icon: 'icon-[lucide--images]' },\n file: { category: IconCategory.Files, icon: 'icon-[lucide--file]' },\n fileText: { category: IconCategory.Files, icon: 'icon-[lucide--file-text]' },\n fileAdd: { category: IconCategory.Files, icon: 'icon-[lucide--file-plus]' },\n fileZip: { category: IconCategory.Files, icon: 'icon-[lucide--file-archive]' },\n fileSymlink: { category: IconCategory.Files, icon: 'icon-[lucide--file-symlink]' },\n fileSearch: { category: IconCategory.Files, icon: 'icon-[lucide--file-search]' },\n folder: { category: IconCategory.Files, icon: 'icon-[lucide--folder]' },\n folderOpen: { category: IconCategory.Files, icon: 'icon-[lucide--folder-open]' },\n folderClosed: { category: IconCategory.Files, icon: 'icon-[lucide--folder-closed]' },\n folderPlus: { category: IconCategory.Files, icon: 'icon-[lucide--folder-plus]' },\n folderMinus: { category: IconCategory.Files, icon: 'icon-[lucide--folder-minus]' },\n folderGit: { category: IconCategory.Files, icon: 'icon-[lucide--folder-git-2]' },\n folderSymlink: { category: IconCategory.Files, icon: 'icon-[lucide--folder-symlink]' },\n document: { category: IconCategory.Files, icon: 'icon-[lucide--file-text]' },\n code: { category: IconCategory.Files, icon: 'icon-[lucide--code]' },\n codeBlock: { category: IconCategory.Files, icon: 'icon-[lucide--square-code]' },\n codeBracket: { category: IconCategory.Files, icon: 'icon-[lucide--braces]' },\n codeWrap: { category: IconCategory.Files, icon: 'icon-[lucide--wrap-text]' },\n archive: { category: IconCategory.Files, icon: 'icon-[lucide--archive]' },\n notebook: { category: IconCategory.Files, icon: 'icon-[lucide--notebook]' },\n notes: { category: IconCategory.Files, icon: 'icon-[lucide--sticky-note]' },\n clipboard: { category: IconCategory.Files, icon: 'icon-[lucide--clipboard]' },\n floppyDisk: { category: IconCategory.Files, icon: 'icon-[lucide--save]' },\n fileUp: { category: IconCategory.Files, icon: 'icon-[lucide--file-up]' },\n clipboardList: { category: IconCategory.Files, icon: 'icon-[lucide--clipboard-list]' },\n files: { category: IconCategory.Files, icon: 'icon-[lucide--files]' },\n filePen: { category: IconCategory.Files, icon: 'icon-[lucide--file-pen]' },\n panelLeft: { category: IconCategory.UI, icon: 'icon-[lucide--panel-left]' },\n panelRight: { category: IconCategory.UI, icon: 'icon-[lucide--panel-right]' },\n panelTop: { category: IconCategory.UI, icon: 'icon-[lucide--panel-top]' },\n panelBottom: { category: IconCategory.UI, icon: 'icon-[lucide--panel-bottom]' },\n sidebar: { category: IconCategory.UI, icon: 'icon-[lucide--panel-left]' },\n moreHorizontal: { category: IconCategory.UI, icon: 'icon-[lucide--ellipsis]' },\n moreVertical: { category: IconCategory.UI, icon: 'icon-[lucide--ellipsis-vertical]' },\n dragHandle: { category: IconCategory.UI, icon: 'icon-[lucide--grip-horizontal]' },\n dragIndicator: { category: IconCategory.UI, icon: 'icon-[lucide--grip-vertical]' },\n gridView: { category: IconCategory.UI, icon: 'icon-[lucide--grid-2x2]' },\n gridSquare: { category: IconCategory.UI, icon: 'icon-[lucide--grid-2x2]' },\n colorSwatch: { category: IconCategory.UI, icon: 'icon-[heroicons-solid--color-swatch]' },\n layoutGrid: { category: IconCategory.UI, icon: 'icon-[lucide--layout-grid]' },\n listView: { category: IconCategory.UI, icon: 'icon-[lucide--list]' },\n listOrdered: { category: IconCategory.UI, icon: 'icon-[lucide--list-ordered]' },\n settings: { category: IconCategory.UI, icon: 'icon-[lucide--settings]' },\n tune: { category: IconCategory.UI, icon: 'icon-[lucide--sliders-horizontal]' },\n slidersVertical: { category: IconCategory.UI, icon: 'icon-[lucide--sliders-vertical]' },\n notifications: { category: IconCategory.UI, icon: 'icon-[lucide--bell]' },\n bellDot: { category: IconCategory.UI, icon: 'icon-[lucide--bell-dot]' },\n bellOff: { category: IconCategory.UI, icon: 'icon-[lucide--bell-off]' },\n person: { category: IconCategory.UI, icon: 'icon-[lucide--user]' },\n group: { category: IconCategory.UI, icon: 'icon-[lucide--users]' },\n userCheck: { category: IconCategory.UI, icon: 'icon-[lucide--user-check]' },\n userPlus: { category: IconCategory.UI, icon: 'icon-[lucide--user-plus]' },\n userMinus: { category: IconCategory.UI, icon: 'icon-[lucide--user-minus]' },\n userX: { category: IconCategory.UI, icon: 'icon-[lucide--user-x]' },\n userCog: { category: IconCategory.UI, icon: 'icon-[lucide--user-cog]' },\n keyboard: { category: IconCategory.UI, icon: 'icon-[lucide--keyboard]' },\n keyboardReturn: { category: IconCategory.UI, icon: 'icon-[material-symbols--keyboard-return-rounded]' },\n keyboardCommand: { category: IconCategory.UI, icon: 'icon-[lucide--command]' },\n fullscreen: { category: IconCategory.UI, icon: 'icon-[lucide--maximize]' },\n fullscreenExit: { category: IconCategory.UI, icon: 'icon-[lucide--minimize]' },\n dashboard: { category: IconCategory.UI, icon: 'icon-[lucide--layout-dashboard]' },\n widgets: { category: IconCategory.UI, icon: 'icon-[material-symbols--widgets-rounded]' },\n apps: { category: IconCategory.UI, icon: 'icon-[lucide--grid-3x3]' },\n pictureInPicture: { category: IconCategory.UI, icon: 'icon-[lucide--picture-in-picture]' },\n toggleOn: { category: IconCategory.UI, icon: 'icon-[lucide--toggle-right]' },\n toggleOff: { category: IconCategory.UI, icon: 'icon-[lucide--toggle-left]' },\n appWindow: { category: IconCategory.UI, icon: 'icon-[lucide--app-window]' },\n terminalWindow: { category: IconCategory.UI, icon: 'icon-[lucide--square-terminal]' },\n scrollArea: { category: IconCategory.UI, icon: 'icon-[lucide--scroll]' },\n inspectSearch: { category: IconCategory.UI, icon: 'icon-[lucide--scan-search]' },\n option: { category: IconCategory.UI, icon: 'icon-[lucide--option]' },\n cube: { category: IconCategory.UI, icon: 'icon-[iconoir--select-face-3d]' },\n textCursorInput: { category: IconCategory.UI, icon: 'icon-[lucide--text-cursor-input]' },\n blocks: { category: IconCategory.UI, icon: 'icon-[lucide--blocks]' },\n listTree: { category: IconCategory.UI, icon: 'icon-[lucide--list-tree]' },\n squareChevronDown: { category: IconCategory.UI, icon: 'icon-[lucide--square-chevron-down]' },\n letterText: { category: IconCategory.UI, icon: 'icon-[lucide--letter-text]' },\n squareMousePointer: { category: IconCategory.UI, icon: 'icon-[lucide--square-mouse-pointer]' },\n columns3: { category: IconCategory.UI, icon: 'icon-[lucide--columns-3]' },\n listCollapse: { category: IconCategory.UI, icon: 'icon-[lucide--list-collapse]' },\n foldVertical: { category: IconCategory.UI, icon: 'icon-[lucide--fold-vertical]' },\n inbox: { category: IconCategory.UI, icon: 'icon-[lucide--inbox]' },\n squareDashed: { category: IconCategory.UI, icon: 'icon-[lucide--square-dashed]' },\n tableOfContents: { category: IconCategory.UI, icon: 'icon-[lucide--table-of-contents]' },\n grid3x3: { category: IconCategory.UI, icon: 'icon-[lucide--grid-3x3]' },\n fieldGroup: { category: IconCategory.UI, icon: 'icon-[lucide--group]' },\n rectangleEllipsis: { category: IconCategory.UI, icon: 'icon-[lucide--rectangle-ellipsis]' },\n inputGroup: { category: IconCategory.UI, icon: 'icon-[lucide--between-horizontal-end]' },\n groupItems: { category: IconCategory.UI, icon: 'icon-[lucide--group]' },\n separator: { category: IconCategory.UI, icon: 'icon-[lucide--separator-horizontal]' },\n stretchHorizontal: { category: IconCategory.UI, icon: 'icon-[lucide--stretch-horizontal]' },\n squareStack: { category: IconCategory.UI, icon: 'icon-[lucide--square-stack]' },\n textCursor: { category: IconCategory.UI, icon: 'icon-[lucide--text-cursor]' },\n component: { category: IconCategory.UI, icon: 'icon-[lucide--component]' },\n layoutTemplate: { category: IconCategory.UI, icon: 'icon-[lucide--layout-template]' },\n google: { category: IconCategory.Brands, icon: 'icon-[logos--google-icon]' },\n googleMono: { category: IconCategory.Brands, icon: 'icon-[simple-icons--google]' },\n github: { category: IconCategory.Brands, icon: 'icon-[mdi--github]' },\n apple: { category: IconCategory.Brands, icon: 'icon-[mdi--apple]' },\n openai: { category: IconCategory.Brands, icon: 'icon-[simple-icons--openai]' },\n anthropic: { category: IconCategory.Brands, icon: 'icon-[simple-icons--anthropic]' },\n gemini: { category: IconCategory.Brands, icon: 'icon-[simple-icons--googlegemini]' },\n discord: { category: IconCategory.Brands, icon: 'icon-[simple-icons--discord]' },\n slack: { category: IconCategory.Brands, icon: 'icon-[simple-icons--slack]' },\n figma: { category: IconCategory.Brands, icon: 'icon-[simple-icons--figma]' },\n linkedin: { category: IconCategory.Brands, icon: 'icon-[lucide--linkedin]' },\n codepen: { category: IconCategory.Brands, icon: 'icon-[lucide--codepen]' },\n rss: { category: IconCategory.Brands, icon: 'icon-[lucide--rss]' },\n typescript: { category: IconCategory.Programming, icon: 'icon-[simple-icons--typescript]' },\n javascript: { category: IconCategory.Programming, icon: 'icon-[simple-icons--javascript]' },\n python: { category: IconCategory.Programming, icon: 'icon-[simple-icons--python]' },\n react: { category: IconCategory.Programming, icon: 'icon-[simple-icons--react]' },\n tailwindcss: { category: IconCategory.Programming, icon: 'icon-[simple-icons--tailwindcss]' },\n json: { category: IconCategory.Programming, icon: 'icon-[lucide--braces]' },\n html: { category: IconCategory.Programming, icon: 'icon-[simple-icons--html5]' },\n css: { category: IconCategory.Programming, icon: 'icon-[simple-icons--css3]' },\n terminal: { category: IconCategory.Programming, icon: 'icon-[lucide--terminal]' },\n api: { category: IconCategory.Programming, icon: 'icon-[lucide--webhook]' },\n variable: { category: IconCategory.Programming, icon: 'icon-[lucide--variable]' },\n webhook: { category: IconCategory.Programming, icon: 'icon-[lucide--webhook]' },\n functionIcon: { category: IconCategory.Programming, icon: 'icon-[lucide--function-square]' },\n cursor: { category: IconCategory.Tools, icon: 'icon-[lucide--mouse-pointer]' },\n cursorClick: { category: IconCategory.Tools, icon: 'icon-[lucide--mouse-pointer-click]' },\n hand: { category: IconCategory.Tools, icon: 'icon-[lucide--hand]' },\n pen: { category: IconCategory.Tools, icon: 'icon-[lucide--pen]' },\n brush: { category: IconCategory.Tools, icon: 'icon-[lucide--paintbrush]' },\n eraser: { category: IconCategory.Tools, icon: 'icon-[lucide--eraser]' },\n colorize: { category: IconCategory.Tools, icon: 'icon-[lucide--pipette]' },\n straighten: { category: IconCategory.Tools, icon: 'icon-[lucide--ruler]' },\n wrench: { category: IconCategory.Tools, icon: 'icon-[lucide--wrench]' },\n plug: { category: IconCategory.Tools, icon: 'icon-[lucide--plug]' },\n scan: { category: IconCategory.Tools, icon: 'icon-[lucide--scan]' },\n aperture: { category: IconCategory.Tools, icon: 'icon-[lucide--aperture]' },\n pencilRuler: { category: IconCategory.Tools, icon: 'icon-[lucide--pencil-ruler]' },\n mousePointer2: { category: IconCategory.Tools, icon: 'icon-[lucide--mouse-pointer-2]' },\n table: { category: IconCategory.Data, icon: 'icon-[lucide--table]' },\n barChart: { category: IconCategory.Data, icon: 'icon-[lucide--chart-bar]' },\n chartBarStacked: { category: IconCategory.Data, icon: 'icon-[lucide--chart-bar-stacked]' },\n pieChart: { category: IconCategory.Data, icon: 'icon-[lucide--chart-pie]' },\n lineChart: { category: IconCategory.Data, icon: 'icon-[lucide--line-chart]' },\n chartActivity: { category: IconCategory.Data, icon: 'icon-[lucide--activity]' },\n trendingUp: { category: IconCategory.Data, icon: 'icon-[lucide--trending-up]' },\n trendingDown: { category: IconCategory.Data, icon: 'icon-[lucide--trending-down]' },\n analytics: { category: IconCategory.Data, icon: 'icon-[lucide--chart-no-axes-combined]' },\n array: { category: IconCategory.Data, icon: 'icon-[material-symbols--data-array-rounded]' },\n database: { category: IconCategory.Data, icon: 'icon-[lucide--database]' },\n tag: { category: IconCategory.Data, icon: 'icon-[lucide--tag]' },\n label: { category: IconCategory.Data, icon: 'icon-[material-symbols--label-rounded]' },\n hash: { category: IconCategory.Data, icon: 'icon-[lucide--hash]' },\n percent: { category: IconCategory.Data, icon: 'icon-[lucide--percent]' },\n tally5: { category: IconCategory.Data, icon: 'icon-[lucide--tally-5]' },\n chat: { category: IconCategory.Communication, icon: 'icon-[lucide--message-square]' },\n chatBubble: { category: IconCategory.Communication, icon: 'icon-[lucide--message-circle]' },\n messageTyping: { category: IconCategory.Communication, icon: 'icon-[lucide--message-square-more]' },\n comment: { category: IconCategory.Communication, icon: 'icon-[lucide--message-square-text]' },\n email: { category: IconCategory.Communication, icon: 'icon-[lucide--mail]' },\n call: { category: IconCategory.Communication, icon: 'icon-[lucide--phone]' },\n thumbUp: { category: IconCategory.Communication, icon: 'icon-[lucide--thumbs-up]' },\n thumbDown: { category: IconCategory.Communication, icon: 'icon-[lucide--thumbs-down]' },\n messageSquareMore: { category: IconCategory.Communication, icon: 'icon-[lucide--message-square-more]' },\n messageCircle: { category: IconCategory.Communication, icon: 'icon-[lucide--message-circle]' },\n messagesSquare: { category: IconCategory.Communication, icon: 'icon-[lucide--messages-square]' },\n palette: { category: IconCategory.Design, icon: 'icon-[lucide--palette]' },\n paintBucket: { category: IconCategory.Design, icon: 'icon-[lucide--paint-bucket]' },\n formatPaint: { category: IconCategory.Design, icon: 'icon-[lucide--paint-roller]' },\n autoAwesome: { category: IconCategory.Design, icon: 'icon-[material-symbols--auto-awesome-rounded]' },\n style: { category: IconCategory.Design, icon: 'icon-[material-symbols--style]' },\n opacity: { category: IconCategory.Design, icon: 'icon-[material-symbols--opacity-rounded]' },\n gradient: { category: IconCategory.Design, icon: 'icon-[material-symbols--gradient]' },\n contrast: { category: IconCategory.Design, icon: 'icon-[carbon--contrast]' },\n brightness: { category: IconCategory.Design, icon: 'icon-[lucide--sun]' },\n layers: { category: IconCategory.Design, icon: 'icon-[lucide--layers]' },\n blendMode: { category: IconCategory.Design, icon: 'icon-[lucide--blend]' },\n shadow: { category: IconCategory.Design, icon: 'icon-[material-symbols--ev-shadow]' },\n roundedCorner: { category: IconCategory.Design, icon: 'icon-[material-symbols--rounded-corner-rounded]' },\n formatSpacing: { category: IconCategory.Design, icon: 'icon-[material-symbols--format-letter-spacing-rounded]' },\n shapes: { category: IconCategory.Design, icon: 'icon-[lucide--shapes]' },\n swatchBook: { category: IconCategory.Design, icon: 'icon-[lucide--swatch-book]' },\n droplets: { category: IconCategory.Design, icon: 'icon-[lucide--droplets]' },\n sunMedium: { category: IconCategory.Design, icon: 'icon-[lucide--sun-medium]' },\n spline: { category: IconCategory.Design, icon: 'icon-[lucide--spline]' },\n robot: { category: IconCategory.AI, icon: 'icon-[lucide--bot]' },\n sparkles: { category: IconCategory.AI, icon: 'icon-[lucide--sparkles]' },\n sparkle: { category: IconCategory.AI, icon: 'icon-[lucide--sparkle]' },\n brain: { category: IconCategory.AI, icon: 'icon-[lucide--brain]' },\n magic: { category: IconCategory.AI, icon: 'icon-[lucide--wand-sparkles]' },\n experiment: { category: IconCategory.AI, icon: 'icon-[lucide--flask-conical]' },\n psychology: { category: IconCategory.AI, icon: 'icon-[material-symbols--psychology-rounded]' },\n botMessageSquare: { category: IconCategory.AI, icon: 'icon-[lucide--bot-message-square]' },\n one: { category: IconCategory.Numbers, icon: 'icon-[material-symbols--counter-1-rounded]' },\n two: { category: IconCategory.Numbers, icon: 'icon-[material-symbols--counter-2-rounded]' },\n three: { category: IconCategory.Numbers, icon: 'icon-[material-symbols--counter-3-rounded]' },\n four: { category: IconCategory.Numbers, icon: 'icon-[material-symbols--counter-4-rounded]' },\n five: { category: IconCategory.Numbers, icon: 'icon-[material-symbols--counter-5-rounded]' },\n six: { category: IconCategory.Numbers, icon: 'icon-[material-symbols--counter-6-rounded]' },\n seven: { category: IconCategory.Numbers, icon: 'icon-[material-symbols--counter-7-rounded]' },\n eight: { category: IconCategory.Numbers, icon: 'icon-[material-symbols--counter-8]' },\n nine: { category: IconCategory.Numbers, icon: 'icon-[material-symbols--counter-9-rounded]' },\n favorite: { category: IconCategory.Misc, icon: 'icon-[lucide--heart]' },\n star: { category: IconCategory.Misc, icon: 'icon-[lucide--star]' },\n bookmark: { category: IconCategory.Misc, icon: 'icon-[lucide--bookmark]' },\n flag: { category: IconCategory.Misc, icon: 'icon-[lucide--flag]' },\n flagTriangle: { category: IconCategory.Misc, icon: 'icon-[lucide--flag-triangle-right]' },\n creditCard: { category: IconCategory.Misc, icon: 'icon-[lucide--credit-card]' },\n shoppingCart: { category: IconCategory.Misc, icon: 'icon-[lucide--shopping-cart]' },\n store: { category: IconCategory.Misc, icon: 'icon-[lucide--store]' },\n coins: { category: IconCategory.Misc, icon: 'icon-[lucide--coins]' },\n dollarSign: { category: IconCategory.Misc, icon: 'icon-[lucide--dollar-sign]' },\n receipt: { category: IconCategory.Misc, icon: 'icon-[lucide--receipt]' },\n location: { category: IconCategory.Misc, icon: 'icon-[lucide--map-pin]' },\n calendar: { category: IconCategory.Misc, icon: 'icon-[lucide--calendar]' },\n clock: { category: IconCategory.Misc, icon: 'icon-[lucide--clock]' },\n clockRewind: { category: IconCategory.Misc, icon: 'icon-[lucide--history]' },\n schedule: { category: IconCategory.Misc, icon: 'icon-[lucide--clock]' },\n timer: { category: IconCategory.Misc, icon: 'icon-[lucide--timer]' },\n stopwatch: { category: IconCategory.Misc, icon: 'icon-[lucide--timer]' },\n alarmClock: { category: IconCategory.Misc, icon: 'icon-[lucide--alarm-clock]' },\n lightbulb: { category: IconCategory.Misc, icon: 'icon-[lucide--lightbulb]' },\n bolt: { category: IconCategory.Misc, icon: 'icon-[lucide--zap]' },\n cloud: { category: IconCategory.Misc, icon: 'icon-[lucide--cloud]' },\n cloudUpload: { category: IconCategory.Misc, icon: 'icon-[lucide--cloud-upload]' },\n cloudDownload: { category: IconCategory.Misc, icon: 'icon-[lucide--cloud-download]' },\n lightMode: { category: IconCategory.Misc, icon: 'icon-[lucide--sun]' },\n darkMode: { category: IconCategory.Misc, icon: 'icon-[lucide--moon]' },\n moonStar: { category: IconCategory.Misc, icon: 'icon-[lucide--moon-star]' },\n sunDim: { category: IconCategory.Misc, icon: 'icon-[lucide--sun-dim]' },\n power: { category: IconCategory.Misc, icon: 'icon-[lucide--power]' },\n shield: { category: IconCategory.Misc, icon: 'icon-[lucide--shield]' },\n shieldCheck: { category: IconCategory.Misc, icon: 'icon-[lucide--shield-check]' },\n shieldOff: { category: IconCategory.Misc, icon: 'icon-[lucide--shield-off]' },\n key: { category: IconCategory.Misc, icon: 'icon-[lucide--key]' },\n keyRound: { category: IconCategory.Misc, icon: 'icon-[lucide--key-round]' },\n fingerprint: { category: IconCategory.Misc, icon: 'icon-[lucide--fingerprint]' },\n pin: { category: IconCategory.Misc, icon: 'icon-[lucide--pin]' },\n paperclip: { category: IconCategory.Misc, icon: 'icon-[lucide--paperclip]' },\n globe: { category: IconCategory.Misc, icon: 'icon-[lucide--globe]' },\n globeLock: { category: IconCategory.Misc, icon: 'icon-[lucide--globe-lock]' },\n gps: { category: IconCategory.Misc, icon: 'icon-[lucide--locate]' },\n network: { category: IconCategory.Misc, icon: 'icon-[lucide--network]' },\n cpu: { category: IconCategory.Misc, icon: 'icon-[lucide--cpu]' },\n monitor: { category: IconCategory.Misc, icon: 'icon-[lucide--monitor]' },\n smartphone: { category: IconCategory.Misc, icon: 'icon-[lucide--smartphone]' },\n tablet: { category: IconCategory.Misc, icon: 'icon-[lucide--tablet]' },\n monitorSmartphone: { category: IconCategory.Misc, icon: 'icon-[lucide--monitor-smartphone]' },\n server: { category: IconCategory.Misc, icon: 'icon-[lucide--server]' },\n hardDrive: { category: IconCategory.Misc, icon: 'icon-[lucide--hard-drive]' },\n box: { category: IconCategory.Misc, icon: 'icon-[lucide--box]' },\n puzzle: { category: IconCategory.Misc, icon: 'icon-[lucide--puzzle]' },\n briefcase: { category: IconCategory.Misc, icon: 'icon-[lucide--briefcase]' },\n calculator: { category: IconCategory.Misc, icon: 'icon-[lucide--calculator]' },\n buildings: { category: IconCategory.Misc, icon: 'icon-[lucide--building-2]' },\n bug: { category: IconCategory.Misc, icon: 'icon-[lucide--bug]' },\n droplet: { category: IconCategory.Misc, icon: 'icon-[lucide--droplet]' },\n bookOpen: { category: IconCategory.Misc, icon: 'icon-[lucide--book-open]' },\n bookClosed: { category: IconCategory.Misc, icon: 'icon-[lucide--book-marked]' },\n lifebuoy: { category: IconCategory.Misc, icon: 'icon-[lucide--life-buoy]' },\n accessibility: { category: IconCategory.Misc, icon: 'icon-[lucide--accessibility]' },\n workflow: { category: IconCategory.Misc, icon: 'icon-[lucide--workflow]' },\n gitBranch: { category: IconCategory.Misc, icon: 'icon-[lucide--git-branch]' },\n gitBranchPlus: { category: IconCategory.Misc, icon: 'icon-[lucide--git-branch-plus]' },\n gitCommit: { category: IconCategory.Misc, icon: 'icon-[lucide--git-commit-horizontal]' },\n gitMerge: { category: IconCategory.Misc, icon: 'icon-[lucide--git-merge]' },\n gitPullRequest: { category: IconCategory.Misc, icon: 'icon-[lucide--git-pull-request]' },\n crosshair: { category: IconCategory.Misc, icon: 'icon-[lucide--crosshair]' },\n target: { category: IconCategory.Misc, icon: 'icon-[lucide--target]' },\n smile: { category: IconCategory.Misc, icon: 'icon-[lucide--smile]' },\n frown: { category: IconCategory.Misc, icon: 'icon-[lucide--frown]' },\n smilePlus: { category: IconCategory.Misc, icon: 'icon-[lucide--smile-plus]' },\n bold: { category: IconCategory.Misc, icon: 'icon-[lucide--bold]' },\n italic: { category: IconCategory.Misc, icon: 'icon-[lucide--italic]' },\n strikethrough: { category: IconCategory.Misc, icon: 'icon-[lucide--strikethrough]' },\n underline: { category: IconCategory.Misc, icon: 'icon-[lucide--underline]' },\n heading: { category: IconCategory.Misc, icon: 'icon-[lucide--heading]' },\n type: { category: IconCategory.Misc, icon: 'icon-[lucide--type]' },\n caseSensitive: { category: IconCategory.Misc, icon: 'icon-[lucide--case-sensitive]' },\n alignLeft: { category: IconCategory.Misc, icon: 'icon-[lucide--align-left]' },\n alignCenter: { category: IconCategory.Misc, icon: 'icon-[lucide--align-center]' },\n alignRight: { category: IconCategory.Misc, icon: 'icon-[lucide--align-right]' },\n sunMoon: { category: IconCategory.Misc, icon: 'icon-[lucide--sun-moon]' },\n tv: { category: IconCategory.Misc, icon: 'icon-[lucide--tv]' },\n tvMinimal: { category: IconCategory.Misc, icon: 'icon-[lucide--tv-minimal]' },\n orbit: { category: IconCategory.Misc, icon: 'icon-[lucide--orbit]' },\n gitFork: { category: IconCategory.Misc, icon: 'icon-[lucide--git-fork]' },\n bookOpenText: { category: IconCategory.Misc, icon: 'icon-[lucide--book-open-text]' },\n serverOff: { category: IconCategory.Misc, icon: 'icon-[lucide--server-off]' },\n packagePlus: { category: IconCategory.Misc, icon: 'icon-[lucide--package-plus]' },\n\n} satisfies Record<string, IconProperties>;\n\nexport class IconHelpers {\n public static getIcon(name: string): string {\n return name in CURATED_ICONS ? CURATED_ICONS[name as CuratedIcons].icon : name;\n }\n\n public static getCategory(name: CuratedIcons): IconCategory {\n return CURATED_ICONS[name].category;\n }\n\n public static getCategories(): IconCategory[] {\n const usedCategories = new Set<IconCategory>();\n\n for (const icon of Object.values(CURATED_ICONS)) {\n usedCategories.add(icon.category);\n }\n\n return Object.values(IconCategory).filter(cat => usedCategories.has(cat));\n }\n\n public static getByCategory(): Record<IconCategory, IconEntry[]> {\n const grouped = {} as Record<IconCategory, IconEntry[]>;\n\n for (const category of Object.values(IconCategory)) {\n grouped[category] = [];\n }\n\n for (const [id, data] of Object.entries(CURATED_ICONS)) {\n grouped[data.category].push({\n id: id,\n category: data.category,\n icon: data.icon,\n });\n }\n\n return grouped;\n }\n}\n","import indexCss from './index.css?raw';\n\nexport type FontFormat = 'ttf' | 'otf' | 'woff2';\n\nexport interface FontFaceData {\n family: string;\n weightMin: number;\n weightMax: number;\n style: string;\n format: FontFormat;\n filePath: string;\n fileName: string;\n cssVariable: string | null;\n}\n\nconst FONT_VAR_REGEX = /--font-([\\w-]+):\\s*'([^']+)'/g;\n\nconst familyToVariable = new Map<string, string>();\n\nlet varMatch: RegExpExecArray | null;\n\nwhile ((varMatch = FONT_VAR_REGEX.exec(indexCss)) !== null) {\n const variableName = `--font-${varMatch[1]}`;\n const familyName = varMatch[2];\n familyToVariable.set(familyName.toLowerCase(), variableName);\n}\n\nconst FONT_FACE_REGEX = /@font-face\\s*\\{([^}]*)\\}/gs;\n\nconst parsedFonts: FontFaceData[] = [];\n\nlet faceMatch: RegExpExecArray | null;\n\nwhile ((faceMatch = FONT_FACE_REGEX.exec(indexCss)) !== null) {\n const block = faceMatch[1];\n\n const familyMatch = block.match(/font-family:\\s*'([^']+)'/);\n const weightMatch = block.match(/font-weight:\\s*([\\d\\s]+)/);\n const styleMatch = block.match(/font-style:\\s*(\\w+)/);\n const srcMatch = block.match(/src:\\s*url\\([^)]*?\\/fonts\\/([^)]+)\\)\\s*format\\('(\\w+)'\\)/);\n\n if (!familyMatch || !weightMatch || !styleMatch || !srcMatch) continue;\n\n const family = familyMatch[1];\n const weightRaw = weightMatch[1].trim();\n const style = styleMatch[1];\n const fileName = srcMatch[1];\n const format = srcMatch[2] === 'truetype' ? 'ttf' : srcMatch[2] === 'opentype' ? 'otf' : 'woff2';\n\n const weights = weightRaw.split(/\\s+/).map(Number);\n const weightMin = Math.min(...weights);\n const weightMax = Math.max(...weights);\n\n parsedFonts.push({\n family: family,\n weightMin: weightMin,\n weightMax: weightMax,\n style: style,\n format: format as FontFormat,\n filePath: `/fonts/${fileName}`,\n fileName: fileName,\n cssVariable: familyToVariable.get(family.toLowerCase()) ?? null,\n });\n}\n\nparsedFonts.sort((a, b) => a.family.localeCompare(b.family));\n\nexport const FONT_FACES: FontFaceData[] = parsedFonts;\n","export const IMAGES = {\n digoLogo: 'https://cdn.digo-labs.com/images/digo-logo.png',\n digoLogoSvg: 'https://cdn.digo-labs.com/images/digo-logo.svg',\n pcLogoV1Svg: 'https://cdn.digo-labs.com/images/pc-logo-v1.svg',\n pcLogo3d: 'https://cdn.digo-labs.com/images/pc-logo-3d.png',\n userPlaceholder: 'https://cdn.digo-labs.com/images/user-placeholder.png',\n audio3d: 'https://cdn.digo-labs.com/images/audio-3d.jpg',\n blocks3d: 'https://cdn.digo-labs.com/images/blocks-3d.jpg',\n components3d: 'https://cdn.digo-labs.com/images/components-3d.jpg',\n effects3d: 'https://cdn.digo-labs.com/images/effects-3d.jpg',\n fonts3d: 'https://cdn.digo-labs.com/images/fonts-3d.jpg',\n icons3d: 'https://cdn.digo-labs.com/images/icons-3d.jpg',\n image3d: 'https://cdn.digo-labs.com/images/image-3d.jpg',\n llms3d: 'https://cdn.digo-labs.com/images/llms-3d.jpg',\n pages3d: 'https://cdn.digo-labs.com/images/pages-3d.jpg',\n text3d: 'https://cdn.digo-labs.com/images/text-3d.jpg',\n video3d: 'https://cdn.digo-labs.com/images/video-3d.jpg',\n\n terminalScreenFrame: 'https://cdn.digo-labs.com/images/terminal-screen-frame.png',\n terminalScreenGlass: 'https://cdn.digo-labs.com/images/terminal-screen-glass.png',\n terminalSideGlass: 'https://cdn.digo-labs.com/images/terminal-side-glass.png',\n};\n","export const MODELS = {\n porsche: 'https://cdn.digo-labs.com/models/porsche.glb',\n};\n","export class LocalStorage {\n public static setValue<T>(key: string, value: T): void {\n localStorage.setItem(key, JSON.stringify(value));\n }\n\n public static loadValue<T>(key: string, defaultValue: T): T {\n const storedValue = localStorage.getItem(key);\n\n if (!storedValue || storedValue === 'undefined') {\n return defaultValue;\n }\n\n try {\n return JSON.parse(storedValue);\n } catch {\n return defaultValue;\n }\n }\n}\n","export class SessionStorage {\n public static setValue<T>(key: string, value: T): void {\n sessionStorage.setItem(key, JSON.stringify(value));\n }\n\n public static loadValue<T>(key: string, defaultValue: T): T {\n const storedValue = sessionStorage.getItem(key);\n\n if (!storedValue || storedValue === 'undefined') {\n return defaultValue;\n }\n\n try {\n return JSON.parse(storedValue);\n } catch {\n return defaultValue;\n }\n }\n}\n","export const ROUTES = {\n bedrockText: 'bedrock-text',\n dmxSend: 'dmx-send',\n storagePresignUpload: 'storage-presign-upload',\n storagePresignDownload: 'storage-presign-download',\n storageList: 'storage-list',\n storageDelete: 'storage-delete',\n databaseGetAll: 'database-get-all',\n databaseGet: 'database-get',\n databaseGetBy: 'database-get-by',\n databaseCreate: 'database-create',\n databaseUpdate: 'database-update',\n databaseDelete: 'database-delete',\n refreshSchemas: 'refresh-schemas',\n} as const;\n","import LZString from 'lz-string';\n\nimport {\n base64StringToBlob,\n blobToBase64String,\n} from 'blob-util';\n\nexport class StringHelpers {\n public static hashCode(data: string) {\n return [...data].reduce(\n (hash, c) => (Math.imul(31, hash) + c.charCodeAt(0)) | 0,\n 0,\n );\n }\n\n public static compress(data: string): string {\n return LZString.compress(data);\n }\n\n public static compressToBase64(data: string): string {\n return LZString.compressToBase64(data);\n }\n\n public static compressToUint8Array(data: string): Uint8Array {\n return LZString.compressToUint8Array(data);\n }\n\n public static decompress(data: string): string {\n return LZString.decompress(data);\n }\n\n public static decompressFromBase64(data: string): string {\n return LZString.decompressFromBase64(data);\n }\n\n public static decompressFromUint8Array(data: Uint8Array): string {\n return LZString.decompressFromUint8Array(data);\n }\n\n public static blobToBase64(blob: Blob): Promise<string> {\n return blobToBase64String(blob);\n }\n\n public static base64ToBlob(base64: string): Blob {\n return base64StringToBlob(base64);\n }\n\n public static getFirstLetter(string: string | undefined): string {\n if (!string) return 'X';\n return string.charAt(0).toUpperCase();\n }\n}\n","export const STRINGS = {\n digo: 'Digo',\n refresh: 'Refresh',\n code: 'Code',\n score: 'Score',\n preview: 'Preview',\n weights: 'Weights',\n examples: 'Examples',\n typography: 'Typography',\n sizes: 'Sizes',\n icons: 'Icons',\n neutral: 'Neutral',\n info: 'Info',\n selected: 'Selected',\n noneSelected: 'None selected',\n highlights: 'Highlights',\n shadows: 'Shadows',\n color: 'Color',\n untitled: 'Untitled',\n columns: 'Columns',\n save: 'Save',\n accent: 'Accent',\n applying: 'Applying',\n viewing: 'Viewing',\n clearMessages: 'Clear messages',\n clearNextMessages: 'Clear next messages',\n apply: 'Apply',\n import: 'Import',\n search: 'Search...',\n where: 'Where',\n noTimeArray: 'No time array',\n success: 'Success',\n error: 'Error',\n warning: 'Warning',\n attach: 'Attach',\n attachImage: 'Attach Image',\n actions: 'Actions',\n addNewColumn: 'Add new column',\n addNewRow: 'Add new row',\n addFilter: 'Add filter',\n addSort: 'Add sort',\n applySorting: 'Apply sorting',\n applyFilters: 'Apply filters',\n filter: 'Filter',\n sort: 'Sort',\n resetFilters: 'Reset filters',\n resetSorting: 'Reset sorting',\n description: 'Description',\n name: 'Name',\n loremIpsumSmall: 'Lorem ipsum dolor sit amet.',\n loremIpsumMedium: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam nec purus ac libero vehicula ultricies.',\n loremIpsumLong: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam nec purus ac libero vehicula ultricies. Nulla facilisi. Sed nec nisl in turpis tincidunt tincidunt. Nulla facilisi. Sed nec nisl in turpis tincidunt tincidunt.',\n selectAgent: 'Select Agent',\n selectModel: 'Select Model',\n sendPrompt: 'Send Prompt',\n view: 'View',\n toggleColumns: 'Toggle columns',\n toggleOpen: 'Toggle open',\n reset: 'Reset',\n noResultsFound: 'No results found.',\n clearFilters: 'Clear filters',\n rowsPerPage: 'Rows per page',\n id: 'Id',\n noSortsTitle: 'No sorts apply to this view',\n noSortsDescription: 'Add a column below to sort the view',\n noFiltersTitle: 'No filters apply to this view',\n noFiltersDescription: 'Add a column below to filter the view',\n defaultValue: 'Default value',\n default: 'Default',\n stepDuration: 'Step duration (ms)',\n min: 'Min',\n max: 'Max',\n icon: 'Icon',\n step: 'Step',\n decimals: 'Decimals',\n units: 'Units',\n play: 'Play',\n pause: 'Pause',\n next: 'Next',\n previous: 'Previous',\n loop: 'Loop',\n rewind: 'Rewind',\n forward: 'Forward',\n start: 'Start',\n emptyCode: 'Select a file to view its content',\n generate: 'Generate',\n savePreset: 'Save Preset',\n image: 'Image',\n};\n","import { z } from 'zod';\n\nexport const filePayloadSchema = z.object({\n mediaType: z.string(),\n base64: z.string(),\n});\n\nexport type FilePayload = z.infer<typeof filePayloadSchema>;\n\nexport const imagePayloadSchema = z.object({\n mediaType: z.string(),\n base64: z.string(),\n});\n\nexport type ImagePayload = z.infer<typeof imagePayloadSchema>;\n\nexport const sizeFormattedSchema = z\n .string()\n .regex(/^\\d+x\\d+$/)\n .transform(s => s as `${number}x${number}`);\n\nexport type SizeFormatted = z.infer<typeof sizeFormattedSchema>;\n\nexport const aspectRatioSchema = z\n .string()\n .regex(/^\\d+:\\d+$/)\n .transform(s => s as `${number}:${number}`);\n\nexport type AspectRatio = z.infer<typeof aspectRatioSchema>;\n","import { z } from 'zod';\n\nimport { aspectRatioSchema } from './primitives';\n\nexport interface ModelMetadata {\n id: string;\n provider: string;\n name: string;\n version: string;\n description: string;\n}\n\nexport const imageGenerateBodySchema = z.object({\n prompt: z.string().min(1),\n aspectRatio: aspectRatioSchema.optional(),\n seed: z.number().int().optional(),\n});\n\nexport type ImageGenerateBody = z.infer<typeof imageGenerateBodySchema>;\n\nexport const imageEditBodySchema = z.object({\n prompt: z.string().min(1),\n image: z.string().url(),\n strength: z.number().min(0).max(1).optional(),\n});\n\nexport type ImageEditBody = z.infer<typeof imageEditBodySchema>;\n\nexport const imageUpscaleBodySchema = z.object({\n image: z.string().url(),\n factor: z.number().positive().optional(),\n});\n\nexport type ImageUpscaleBody = z.infer<typeof imageUpscaleBodySchema>;\n\nexport const imageRemoveBackgroundBodySchema = z.object({\n image: z.string().url(),\n});\n\nexport type ImageRemoveBackgroundBody = z.infer<typeof imageRemoveBackgroundBodySchema>;\n\nexport const generatedImageSchema = z.object({\n url: z.string().url(),\n contentType: z.string().optional(),\n width: z.number().optional(),\n height: z.number().optional(),\n seed: z.number().optional(),\n model: z.string().optional(),\n});\n\nexport type GeneratedImage = z.infer<typeof generatedImageSchema>;\n\nexport const videoGenerateBodySchema = z.object({\n prompt: z.string().min(1),\n aspectRatio: aspectRatioSchema.optional(),\n durationSeconds: z.number().positive().optional(),\n});\n\nexport type VideoGenerateBody = z.infer<typeof videoGenerateBodySchema>;\n\nexport const generatedVideoSchema = z.object({\n url: z.string().url(),\n contentType: z.string().optional(),\n durationSeconds: z.number().optional(),\n model: z.string().optional(),\n});\n\nexport type GeneratedVideo = z.infer<typeof generatedVideoSchema>;\n\nexport const audioSpeechBodySchema = z.object({\n text: z.string().min(1),\n voice: z.string().optional(),\n speed: z.number().positive().optional(),\n});\n\nexport type AudioSpeechBody = z.infer<typeof audioSpeechBodySchema>;\n\nexport const audioMusicBodySchema = z.object({\n prompt: z.string().min(1),\n durationSeconds: z.number().positive().optional(),\n});\n\nexport type AudioMusicBody = z.infer<typeof audioMusicBodySchema>;\n\nexport const audioTranscribeBodySchema = z.object({\n audio: z.string().url(),\n language: z.string().optional(),\n});\n\nexport type AudioTranscribeBody = z.infer<typeof audioTranscribeBodySchema>;\n\nexport const generatedAudioSchema = z.object({\n url: z.string().url(),\n contentType: z.string().optional(),\n durationSeconds: z.number().optional(),\n model: z.string().optional(),\n});\n\nexport type GeneratedAudio = z.infer<typeof generatedAudioSchema>;\n\nexport const transcriptionSegmentSchema = z.object({\n text: z.string(),\n startSecond: z.number(),\n endSecond: z.number(),\n});\n\nexport type TranscriptionSegment = z.infer<typeof transcriptionSegmentSchema>;\n\nexport const transcriptionSchema = z.object({\n text: z.string(),\n segments: z.array(transcriptionSegmentSchema).optional(),\n language: z.string().optional(),\n model: z.string().optional(),\n});\n\nexport type Transcription = z.infer<typeof transcriptionSchema>;\n\nconst textContentPartSchema = z.object({\n type: z.literal('text'),\n text: z.string(),\n});\n\nconst imageContentPartSchema = z.object({\n type: z.literal('image'),\n source: z.object({\n base64: z.string(),\n mediaType: z.string(),\n }),\n});\n\nconst messageContentSchema = z.union([\n z.string(),\n z.array(z.union([textContentPartSchema, imageContentPartSchema])),\n]);\n\nexport const textMessageSchema = z.object({\n role: z.enum(['user', 'assistant']),\n content: messageContentSchema,\n});\n\nexport type TextMessage = z.infer<typeof textMessageSchema>;\n\nexport const textBodySchema = z.object({\n model: z.string().optional(),\n messages: z.array(textMessageSchema).min(1),\n systemPrompt: z.string().optional(),\n temperature: z.number().min(0).max(2).optional(),\n maxTokens: z.number().int().positive().optional(),\n stopSequences: z.array(z.string()).optional(),\n providerOptions: z.record(z.string(), z.record(z.string(), z.any())).optional(),\n});\n\nexport type TextBody = z.infer<typeof textBodySchema>;\n\nexport const textGenerateBodySchema = textBodySchema.omit({\n model: true,\n stopSequences: true,\n providerOptions: true,\n});\n\nexport type TextGenerateBody = z.infer<typeof textGenerateBodySchema>;\n\nexport type TextStreamChunk = { text: string; };\n\nexport type TextStreamResult = { text: string; stopReason: string; };\n\nexport interface TextStream extends AsyncIterable<TextStreamChunk> {\n readonly text: string;\n readonly stopReason: string | null;\n collect(): Promise<TextStreamResult>;\n}\n","import { z } from 'zod';\n\nexport const dmxSendBodySchema = z.object({\n channel: z.number().int().min(1).max(512),\n value: z.number().int().min(0).max(255),\n});\n\nexport type DmxSendBody = z.infer<typeof dmxSendBodySchema>;\n\nexport const dmxSendResponseSchema = z.object({\n success: z.boolean(),\n});\n\nexport type DmxSendResponse = z.infer<typeof dmxSendResponseSchema>;\n","import { z } from 'zod';\n\nconst identifier = z.string().min(1);\nconst scalarValue = z.union([z.string(), z.number(), z.boolean(), z.null()]);\nconst recordValue = z.record(z.string(), z.unknown());\n\nexport const databaseGetAllBodySchema = z.object({\n table: identifier,\n limit: z.number().int().positive().max(1000).default(100),\n offset: z.number().int().nonnegative().optional(),\n});\n\nexport type DatabaseGetAllBody = z.infer<typeof databaseGetAllBodySchema>;\n\nexport const databaseGetAllResponseSchema = z.object({\n rows: z.array(recordValue),\n});\n\nexport type DatabaseGetAllResponse = z.infer<typeof databaseGetAllResponseSchema>;\n\nexport const databaseGetBodySchema = z.object({\n table: identifier,\n pk: identifier,\n value: scalarValue,\n});\n\nexport type DatabaseGetBody = z.infer<typeof databaseGetBodySchema>;\n\nexport const databaseGetResponseSchema = z.object({\n row: recordValue.nullable(),\n});\n\nexport type DatabaseGetResponse = z.infer<typeof databaseGetResponseSchema>;\n\nexport const databaseGetByBodySchema = z.object({\n table: identifier,\n column: identifier,\n value: scalarValue,\n limit: z.number().int().positive().max(1000).default(100),\n offset: z.number().int().nonnegative().optional(),\n});\n\nexport type DatabaseGetByBody = z.infer<typeof databaseGetByBodySchema>;\n\nexport const databaseGetByResponseSchema = z.object({\n rows: z.array(recordValue),\n});\n\nexport type DatabaseGetByResponse = z.infer<typeof databaseGetByResponseSchema>;\n\nexport const databaseCreateBodySchema = z.object({\n table: identifier,\n record: recordValue,\n});\n\nexport type DatabaseCreateBody = z.infer<typeof databaseCreateBodySchema>;\n\nexport const databaseCreateResponseSchema = z.object({\n row: recordValue,\n});\n\nexport type DatabaseCreateResponse = z.infer<typeof databaseCreateResponseSchema>;\n\nexport const databaseUpdateBodySchema = z.object({\n table: identifier,\n pk: identifier,\n value: scalarValue,\n changes: recordValue,\n});\n\nexport type DatabaseUpdateBody = z.infer<typeof databaseUpdateBodySchema>;\n\nexport const databaseUpdateResponseSchema = z.object({\n success: z.boolean(),\n});\n\nexport type DatabaseUpdateResponse = z.infer<typeof databaseUpdateResponseSchema>;\n\nexport const databaseDeleteBodySchema = z.object({\n table: identifier,\n pk: identifier,\n value: scalarValue,\n});\n\nexport type DatabaseDeleteBody = z.infer<typeof databaseDeleteBodySchema>;\n\nexport const databaseDeleteResponseSchema = z.object({\n success: z.boolean(),\n});\n\nexport type DatabaseDeleteResponse = z.infer<typeof databaseDeleteResponseSchema>;\n","import { z } from 'zod';\n\nexport const presignUploadBodySchema = z.object({\n bucket: z.string().min(1),\n path: z.string().min(1),\n contentType: z.string().min(1),\n expiresIn: z.number().int().positive().max(604800).optional(),\n});\n\nexport type PresignUploadBody = z.infer<typeof presignUploadBodySchema>;\n\nexport const presignUploadResponseSchema = z.object({\n url: z.string().url(),\n expiresAt: z.number(),\n});\n\nexport type PresignUploadResponse = z.infer<typeof presignUploadResponseSchema>;\n\nexport const presignDownloadBodySchema = z.object({\n bucket: z.string().min(1),\n path: z.string().min(1),\n expiresIn: z.number().int().positive().max(604800).optional(),\n});\n\nexport type PresignDownloadBody = z.infer<typeof presignDownloadBodySchema>;\n\nexport const presignDownloadResponseSchema = presignUploadResponseSchema;\n\nexport type PresignDownloadResponse = z.infer<typeof presignDownloadResponseSchema>;\n\nexport const listBodySchema = z.object({\n bucket: z.string().min(1),\n prefix: z.string().optional(),\n limit: z.number().int().positive().max(1000).optional(),\n});\n\nexport type ListBody = z.infer<typeof listBodySchema>;\n\nexport const storageObjectSchema = z.object({\n key: z.string(),\n size: z.number(),\n lastModified: z.string(),\n etag: z.string().optional(),\n});\n\nexport type StorageObject = z.infer<typeof storageObjectSchema>;\n\nexport const listResponseSchema = z.object({\n objects: z.array(storageObjectSchema),\n});\n\nexport type ListResponse = z.infer<typeof listResponseSchema>;\n\nexport const deleteBodySchema = z.object({\n bucket: z.string().min(1),\n paths: z.array(z.string().min(1)).min(1),\n});\n\nexport type DeleteBody = z.infer<typeof deleteBodySchema>;\n\nexport const deleteResponseSchema = z.object({\n success: z.boolean(),\n deleted: z.array(z.string()),\n});\n\nexport type DeleteResponse = z.infer<typeof deleteResponseSchema>;\n","export interface Time {\n hours: number;\n minutes: number;\n seconds: number;\n}\n\nexport type Vector3 = [number, number, number];\n\nexport type Side = 'top' | 'right' | 'bottom' | 'left';\n\nexport enum BedrockStyle {\n ANIMATED_FILM = '3D_ANIMATED_FAMILY_FILM',\n FLAT_VECTOR_ILLUSTRATION = 'FLAT_VECTOR_ILLUSTRATION',\n GRAPHIC_NOVEL_ILLUSTRATION = 'GRAPHIC_NOVEL_ILLUSTRATION',\n MAXIMALISM = 'MAXIMALISM',\n MIDCENTURY_RETRO = 'MIDCENTURY_RETRO',\n PHOTOREALISM = 'PHOTOREALISM',\n SOFT_DIGITAL_PAINTING = 'SOFT_DIGITAL_PAINTING',\n}\n\nexport interface Size {\n width: number;\n height: number;\n}\n\nexport interface GradientStop {\n color: string;\n percent: number;\n}\n\nexport interface ModelPayload {\n name: string;\n description: string;\n icon: string;\n}\n\nexport interface CommonMetadata {\n name: string;\n description?: string;\n image?: File;\n tags?: string[];\n icon?: string;\n}\n\ntype SuccessResult<T> = readonly[T, null];\n\ntype ErrorResult<E = Error> = readonly[null, E];\n\nexport type Result<T, E = Error> = SuccessResult<T> | ErrorResult<E>;\n\nexport interface CodeLanguageMetadata {\n icon: string;\n name: string;\n}\n\nexport type Orientation = 'horizontal' | 'vertical';\n\nexport type Alignment = 'left' | 'center' | 'right';\n\nexport type Breakpoint = 'sm' | 'md' | 'lg' | 'xl' | '2xl';\n\nexport type ClassGroups = Record<string, (string | Record<string, string[]>)[]>;\n","export type WebsocketChannelsTypes = Record<string, unknown>;\n\nexport type WebsocketListener<T = unknown> = (data: T) => void;\n\nexport enum WebsocketClientEvent {\n IDENTIFY = 'IDENTIFY',\n SUBSCRIBE = 'SUBSCRIBE',\n UNSUBSCRIBE = 'UNSUBSCRIBE',\n MESSAGE = 'MESSAGE',\n STATE = 'STATE',\n}\n\nexport type WebsocketClientMessage =\n | { type: WebsocketClientEvent.IDENTIFY; id: string; app: string; }\n | { type: WebsocketClientEvent.SUBSCRIBE; channels: string[]; }\n | { type: WebsocketClientEvent.UNSUBSCRIBE; channels: string[]; }\n | { type: WebsocketClientEvent.MESSAGE; channel: string; data?: unknown; }\n | { type: WebsocketClientEvent.STATE; channel: string; data?: unknown; };\n\nexport enum WebSocketHubEvent {\n MESSAGE = 'MESSAGE',\n STATE = 'STATE',\n}\n\nexport interface WebsocketHubMessage {\n type: WebSocketHubEvent;\n channel: string;\n data?: unknown;\n}\n\nexport interface WebsocketsHubConfig {\n port: number;\n}\n\nexport interface WebsocketConnectionConfig {\n app?: string;\n url?: string;\n id?: string;\n reconnect?: boolean;\n reconnectInterval?: number;\n maxReconnectInterval?: number;\n}\n\nexport const WEBSOCKET_HUB_CHANNEL = '_hub';\n\nexport interface WebsocketHubStatusClient {\n id: string;\n app: string;\n channels: string[];\n}\n\nexport enum WebsocketLogEvent {\n CONNECT = 'CONNECT',\n DISCONNECT = 'DISCONNECT',\n SUBSCRIBE = 'SUBSCRIBE',\n UNSUBSCRIBE = 'UNSUBSCRIBE',\n MESSAGE = 'MESSAGE',\n STATE = 'STATE',\n}\n\nexport interface WebsocketHubLogEntry {\n timestamp: number;\n sender: string;\n app: string;\n type: WebsocketLogEvent;\n channel: string;\n data?: unknown;\n}\n\nexport interface WebsocketHubStatus {\n clients: WebsocketHubStatusClient[];\n state: Record<string, unknown>;\n logs: WebsocketHubLogEntry[];\n}\n","export const VIDEOS = {\n pcLogo3D: 'https://cdn.digo-labs.com/videos/pc-logo-3d.mp4',\n};\n","import { TYPO_CLASS_GROUPS } from './constants';\nimport { Result } from './types/common-types';\n\nimport clsx, { ClassValue } from 'clsx';\nimport { extendTailwindMerge } from 'tailwind-merge';\n\nexport async function tryCatch<T, E = Error>(promise: Promise<T>): Promise<Result<T, E>> {\n try {\n const data = await promise;\n return [data, null] as const;\n } catch (error) {\n return [null, error as E] as const;\n }\n}\n\nconst twMerge = extendTailwindMerge({ extend: { classGroups: TYPO_CLASS_GROUPS } });\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","export const CITIES: string[] = [\n 'New York',\n 'Tokyo',\n 'Paris',\n 'London',\n 'Barcelona',\n 'Berlin',\n 'Amsterdam',\n 'Sydney',\n 'São Paulo',\n 'Mumbai',\n 'Dubai',\n 'Singapore',\n 'Hong Kong',\n 'Rome',\n 'Vienna',\n 'Prague',\n 'Lisbon',\n 'Stockholm',\n 'Seoul',\n 'Istanbul',\n 'Buenos Aires',\n 'Cairo',\n 'Mexico City',\n 'Oslo',\n 'Zürich',\n];\n\nexport const EXCERPTS: string[] = [\n 'The quick brown fox jumps over the lazy dog.',\n 'Pack my box with five dozen liquor jugs.',\n 'How vexingly quick daft zebras jump.',\n 'Sphinx of black quartz, judge my vow.',\n 'The five boxing wizards jump quickly.',\n 'Bright vixens jump dozing fowl quack.',\n 'Jackdaws love my big sphinx of quartz.',\n 'Sixty zippers were quickly picked from the woven jute bag.',\n 'We promptly judged antique ivory buckles for the next prize.',\n 'A mad boxer shot a quick, gloved jab to the jaw of his dizzy opponent.',\n];\n","export const AUTH_PROJECTS = {\n monorepo: {\n trustedOrigins: [\n 'http://localhost:*',\n 'http://127.0.0.1:*',\n 'https://*.digo-labs.com',\n ],\n },\n} as const;\n\nexport type AuthProject = keyof typeof AUTH_PROJECTS;\n\nexport type AuthTier = 'public' | 'user' | 'org' | 'admin';\n\nexport type SignInProvider = 'google';\n\nexport interface AccessTiers {\n read: AuthTier;\n write: AuthTier;\n}\n\nexport type AccessOperation = keyof AccessTiers;\n\nexport interface TableAccessRule extends AccessTiers {\n owner?: string;\n}\n\nexport const ORG_EMAIL_DOMAIN = 'productionclub.net';\n\nconst ADMIN_ROLE = 'admin';\n\nconst TIER_RANK: Record<AuthTier, number> = {\n public: 0,\n user: 1,\n org: 2,\n admin: 3,\n};\n\nexport interface AuthTierUser {\n email: string;\n emailVerified: boolean;\n role?: string | null;\n}\n\nexport class AuthTierHelpers {\n public static deriveTier(user: AuthTierUser | null | undefined): AuthTier {\n if (!user) return 'public';\n if (this.hasAdminRole(user.role)) return 'admin';\n if (this.isOrgUser(user)) return 'org';\n\n return 'user';\n }\n\n public static meetsTier(tier: AuthTier, required: AuthTier): boolean {\n if (!this.isTier(tier) || !this.isTier(required)) return false;\n\n return TIER_RANK[tier] >= TIER_RANK[required];\n }\n\n public static isTier(value: unknown): value is AuthTier {\n return typeof value === 'string' && Object.hasOwn(TIER_RANK, value);\n }\n\n private static hasAdminRole(role: string | null | undefined): boolean {\n if (!role) return false;\n\n return role.split(',').includes(ADMIN_ROLE);\n }\n\n private static isOrgUser(user: AuthTierUser): boolean {\n if (!user.emailVerified) return false;\n\n return user.email.toLowerCase().endsWith(`@${ORG_EMAIL_DOMAIN}`);\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../src/app-config-helpers.ts","../src/common-helpers.ts","../src/constants.ts","../src/icons.ts","../src/fonts.ts","../src/images.ts","../src/models.ts","../src/local-storage.ts","../src/session-storage.ts","../src/routes.ts","../src/string-helpers.ts","../src/strings.ts","../src/schemas/primitives.ts","../src/schemas/ai.ts","../src/schemas/dmx.ts","../src/schemas/database.ts","../src/schemas/storage.ts","../src/types/common-types.ts","../src/types/websocket-types.ts","../src/videos.ts","../src/utils.ts","../src/samples.ts","../src/auth.ts"],"sourcesContent":["export class AppConfigHelpers {\n private static appName: string | undefined;\n\n public static setCurrentAppName(name: string): void {\n if (this.appName !== undefined && this.appName !== name) {\n throw new Error(\n `setCurrentAppName: already set to '${this.appName}', cannot override with '${name}'. ` +\n 'This usually means defineApp() was called twice with different names.',\n );\n }\n this.appName = name;\n }\n\n public static getCurrentAppName(): string {\n if (this.appName === undefined) {\n throw new Error(\n 'getCurrentAppName: no app name registered. ' +\n 'Call defineApp() before constructing services, or pass an explicit value to the service constructor.',\n );\n }\n return this.appName;\n }\n\n public static resetAppName(): void {\n this.appName = undefined;\n }\n\n public static sanitizeAppName(name: string): string {\n const sanitized = name.toLowerCase().replace(/-/g, '_');\n\n if (!/^[a-z][a-z0-9_]*$/.test(sanitized)) {\n throw new Error(`sanitizeAppName: invalid app name '${name}' (sanitized: '${sanitized}')`);\n }\n\n return sanitized;\n }\n}\n","import { ImagePayload, Result, Time, tryCatch } from './';\n\nimport { removeBackground } from '@imgly/background-removal';\n\nimport { formatDistanceToNow, parseISO } from 'date-fns';\nimport { decode, encode } from 'base64-arraybuffer';\n\nexport class CommonHelpers {\n public static copyToClipboard(text: string) {\n navigator.clipboard.writeText(text)\n .then(() => {\n\n })\n .catch(() => {\n console.error('Failed to copy');\n });\n }\n\n public static async removeBackground(image: ImagePayload): Promise<ImagePayload> {\n const arrayBuffer = decode(image.base64);\n const blob = new Blob([arrayBuffer], { type: image.mediaType });\n\n const resultBlob = await removeBackground(blob);\n\n const resultArrayBuffer = await resultBlob.arrayBuffer();\n const base64 = encode(resultArrayBuffer);\n\n return {\n base64: base64,\n mediaType: 'image/png',\n };\n }\n\n public static getTimeFormatted(seconds: number): Time {\n const time: Time = {\n hours: Math.floor(seconds / 3600),\n minutes: Math.floor((seconds % 3600) / 60),\n seconds: seconds % 60,\n };\n return time;\n }\n\n public static async getTextFromClipboard(): Promise<string> {\n return await navigator.clipboard.readText();\n }\n\n public static decodeBase64(base64: string): ArrayBuffer {\n const arraybuffer = decode(base64);\n return arraybuffer;\n }\n\n public static getRandomInteger(min: number, max: number): number {\n const randomInteger = Math.floor(Math.random() * (max - min + 1)) + min;\n return randomInteger;\n }\n\n public static encodeArrayBufferToBase64(arrayBuffer: ArrayBuffer): string {\n const base64 = encode(arrayBuffer);\n return base64;\n }\n\n public static hexToRgb(hex: string) {\n const m = hex.match(/^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i);\n if (!m) return { r: 0, g: 0, b: 0 };\n return {\n r: parseInt(m[1], 16),\n g: parseInt(m[2], 16),\n b: parseInt(m[3], 16),\n };\n }\n\n public static rgbArrayToHex(rgb: [number, number, number]): string {\n const hex = rgb.map((value) => {\n const hexValue = value.toString(16);\n return hexValue.length === 1 ? '0' + hexValue : hexValue;\n }).join('');\n\n return `#${hex}`;\n }\n\n public static hexToRgbArray(hex: string): [number, number, number] {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n\n if (!result) return [0, 0, 0];\n\n return [\n parseInt(result[1], 16) / 255,\n parseInt(result[2], 16) / 255,\n parseInt(result[3], 16) / 255,\n ];\n }\n\n public static getCssVariable(variable: string) {\n return getComputedStyle(document.documentElement).getPropertyValue(variable);\n }\n\n public static setCssVariable(name: string, element: HTMLElement) {\n document.documentElement.style.setProperty(name, `${element.offsetHeight}px`);\n }\n\n public static lerp(start: number, end: number, t: number): number {\n return start + (end - start) * t; ;\n }\n\n public static lerpArray(start: number[], end: number[], t: number): number[] {\n return start.map((startItem, index) => startItem + (end[index] - startItem) * t);\n }\n\n public static clamp(value: number, min: number, max: number) {\n return Math.min(Math.max(value, min), max);\n }\n\n public static async downloadURI(uri: string, name?: string) {\n const response = await fetch(uri);\n const blob = await response.blob();\n const url = URL.createObjectURL(blob);\n const link = document.createElement('a');\n link.href = url;\n link.download = name || 'download';\n link.click();\n URL.revokeObjectURL(url);\n }\n\n public static async getFileFromUrl(url: string, fileName?: string): Promise<File> {\n const response = await fetch(url);\n const blob = await response.blob();\n const imageFile = new File([blob], fileName ? fileName : 'untitled', { type: blob.type });\n\n return imageFile;\n }\n\n public static generateUUID(): string {\n if (crypto.randomUUID) {\n return crypto.randomUUID();\n }\n\n const fallback = `${Date.now()}-${Math.random().toString(36).substring(2, 15)}${Math.random().toString(36).substring(2, 15)}`;\n\n return fallback;\n }\n\n public static async getImagePayloadFromUrl(url: string, fileName?: string): Promise<Result<ImagePayload>> {\n const imageFile = await this.getFileFromUrl(url, fileName);\n\n return this.getImagePayloadFromFile(imageFile);\n }\n\n public static async getImagePayloadFromFile(file: File): Promise<Result<ImagePayload>> {\n const [arrayBuffer, error] = await tryCatch(file.arrayBuffer());\n\n if (error) return [null, error];\n\n const base64 = CommonHelpers.encodeArrayBufferToBase64(arrayBuffer);\n const mediaType = file.type;\n\n const imageData: ImagePayload = { base64: base64, mediaType: mediaType };\n return [imageData, null];\n }\n\n public static getFileFromImagePayload(ImagePayload: ImagePayload): File {\n const arrayBuffer = decode(ImagePayload.base64);\n const blob = new Blob([arrayBuffer], { type: ImagePayload.mediaType });\n const extension = ImagePayload.mediaType.split('/')[1] || 'png';\n const file = new File([blob], `created-file.${extension}`, { type: ImagePayload.mediaType });\n\n return file;\n }\n\n public static setTabName(name: string) {\n document.title = `${name}`;\n }\n\n public static openFileSelector(accepts: string, callback: (file: File) => void): void {\n const input = document.createElement('input');\n input.type = 'file';\n\n input.accept = accepts;\n\n input.onchange = (event: Event) => {\n const target = event.target as HTMLInputElement;\n if (target.files && target.files.length > 0) {\n const file = target.files[0];\n callback(file);\n }\n };\n\n input.click();\n }\n\n public static formatNumberTwoDigits(number: number): string {\n const formatedNumber = number.toFixed().padStart(2, '0');\n return formatedNumber;\n }\n\n public getFormatedTime(miliseconds: number, decimals: number = 2): string {\n const time = (miliseconds / 1000).toFixed(decimals);\n return time;\n }\n\n public static async preloadImage(url: string): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n const image = new Image();\n image.onload = () => resolve();\n image.onerror = () => reject(new Error(`Failed to load: ${url}`));\n image.src = url;\n });\n }\n\n public static async preloadImages(urls: string[]): Promise<void> {\n const promises = urls.map(url => CommonHelpers.preloadImage(url));\n await Promise.all(promises);\n }\n\n public static getUniqueLetters(word: string): string[] {\n const uniqueLetters = [...new Set(word.split(''))];\n\n return uniqueLetters;\n }\n\n public static async compressImage(base64: string, mediaType: string, maxWidth: number = 800, quality: number = 0.7): Promise<ImagePayload> {\n return new Promise((resolve) => {\n const img = new Image();\n img.onload = () => {\n const canvas = document.createElement('canvas');\n const ratio = Math.min(maxWidth / img.width, maxWidth / img.height, 1);\n canvas.width = img.width * ratio;\n canvas.height = img.height * ratio;\n\n const ctx = canvas.getContext('2d')!;\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n\n const compressedBase64 = canvas.toDataURL('image/jpeg', quality).split(',')[1];\n\n resolve({\n base64: compressedBase64,\n mediaType: 'image/jpeg',\n });\n };\n img.src = `data:${mediaType};base64,${base64}`;\n });\n }\n\n public static async downloadCsvFromUrl(url: string) {\n const response = await fetch(url);\n\n if (!response.ok) throw new Error(`Failed to download CSV file: ${response.statusText}`);\n\n const csvData = await response.text();\n\n return csvData;\n }\n\n public static getLastUpdated(timeStamptz: string): string {\n const date = parseISO(timeStamptz);\n const formattedDate = formatDistanceToNow(date, { addSuffix: true });\n\n return formattedDate;\n }\n\n public static getUniqueIdInList(baseId: string, ids: string[]): string {\n const match = baseId.match(/^(.*?)(-\\d+)?$/);\n let base = baseId;\n let suffix = 1;\n\n if (match) {\n base = match[1];\n if (match[2]) {\n suffix = parseInt(match[2].slice(1)) + 1;\n }\n }\n\n const baseLower = base.toLowerCase();\n let newId = `${baseLower}-${suffix}`;\n\n while (ids.some(id => id.toLowerCase() === newId)) {\n suffix++;\n newId = `${baseLower}-${suffix}`;\n }\n\n return newId.toLowerCase();\n }\n\n public static scrollToBottom(container: HTMLDivElement | null) {\n if (!container) return;\n\n container.scrollTo({\n top: container.scrollHeight,\n behavior: 'smooth',\n });\n }\n}\n","import { Breakpoint, ClassGroups, CodeLanguageMetadata, ModelPayload } from './types/common-types';\n\nexport const BACKEND_URL = 'https://api.digo-labs.com';\n\nexport const DIGO_HEADERS = 'X-Digo-App';\n\nexport const DIGO_ADMIN_SECRET = 'X-Admin-Secret';\n\nexport const DIGO_STORAGE_BUCKET_SUFFIX = '-digo-labs-storage';\n\nexport const DIGO_COLORS = ['#58C2E3', '#79F2A9', '#985EFF', '#BDF279'];\n\nexport const WS_URL = 'wss://ws.digo-labs.com';\n\nexport const REPLICATE_PROXY = {\n url: `${BACKEND_URL}/api/proxy/replicate`,\n targetHeader: 'x-replicate-target-url',\n hosts: /(\\.|^)replicate\\.com$/,\n};\n\nexport const AWS_DEFAULT_REGION = 'us-east-1';\n\nexport const BREAKPOINTS: Record<Breakpoint, number> = {\n 'sm': 640,\n 'md': 768,\n 'lg': 1024,\n 'xl': 1280,\n '2xl': 1536,\n};\n\nexport const TYPO_CLASS_GROUPS: ClassGroups = {\n 'font-size': [{ typo: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18'] }],\n 'font-weight': [{ 'typo-weight': ['100', '200', '300', '400', '500', '600', '700', '800', '900'] }],\n 'typo-family': ['typo-header', 'typo-label', 'typo-body', 'typo-code'],\n};\n\nexport const AI_MODELS: ModelPayload[] = [\n {\n name: 'Claude 3.7 Sonnet',\n description: 'Anthropic\\'s advanced model',\n icon: 'icon-[simple-icons--anthropic]',\n },\n {\n name: 'Gemini 2.5 Pro',\n description: 'Google\\'s latest model',\n icon: 'icon-[simple-icons--googlegemini]',\n },\n {\n name: 'GPT-4.1',\n description: 'OpenAi\\'s advanced model',\n icon: 'icon-[simple-icons--openai]',\n },\n];\n\nexport const LANGUAGE_MAP: Record<string, CodeLanguageMetadata> = {\n typescript: { icon: 'typescript', name: 'TypeScript' },\n javascript: { icon: 'javascript', name: 'JavaScript' },\n tsx: { icon: 'typescript', name: 'TSX' },\n jsx: { icon: 'javascript', name: 'JSX' },\n python: { icon: 'python', name: 'Python' },\n rust: { icon: 'code', name: 'Rust' },\n go: { icon: 'code', name: 'Go' },\n sql: { icon: 'code', name: 'SQL' },\n bash: { icon: 'terminal', name: 'Bash' },\n sh: { icon: 'terminal', name: 'Shell' },\n shell: { icon: 'terminal', name: 'Shell' },\n json: { icon: 'code', name: 'JSON' },\n css: { icon: 'code', name: 'CSS' },\n html: { icon: 'code', name: 'HTML' },\n markdown: { icon: 'code', name: 'Markdown' },\n yaml: { icon: 'code', name: 'YAML' },\n xml: { icon: 'code', name: 'XML' },\n text: { icon: 'code', name: 'Text' },\n};\n","enum IconCategory {\n Navigation = 'Navigation',\n Actions = 'Actions',\n Status = 'Status',\n Media = 'Media',\n Files = 'Files',\n UI = 'UI',\n Brands = 'Brands',\n Programming = 'Programming',\n Tools = 'Tools',\n Data = 'Data',\n Communication = 'Communication',\n Design = 'Design',\n AI = 'AI',\n Numbers = 'Numbers',\n Misc = 'Misc',\n}\n\ninterface IconProperties {\n icon: string;\n category: IconCategory;\n}\n\ninterface IconEntry extends IconProperties {\n id: string;\n}\n\nexport type CuratedIcons = keyof typeof CURATED_ICONS;\n\nconst CURATED_ICONS = {\n arrowUp: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-up]' },\n arrowDown: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-down]' },\n arrowLeft: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-left]' },\n arrowRight: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-right]' },\n arrowUpLeft: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-up-left]' },\n arrowUpRight: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-up-right]' },\n arrowDownLeft: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-down-left]' },\n arrowDownRight: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-down-right]' },\n arrowLeftRight: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-left-right]' },\n arrowUpDown: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-up-down]' },\n circleArrowUp: { category: IconCategory.Navigation, icon: 'icon-[lucide--circle-arrow-up]' },\n circleArrowDown: { category: IconCategory.Navigation, icon: 'icon-[lucide--circle-arrow-down]' },\n circleArrowLeft: { category: IconCategory.Navigation, icon: 'icon-[lucide--circle-arrow-left]' },\n circleArrowRight: { category: IconCategory.Navigation, icon: 'icon-[lucide--circle-arrow-right]' },\n chevronUp: { category: IconCategory.Navigation, icon: 'icon-[lucide--chevron-up]' },\n chevronDown: { category: IconCategory.Navigation, icon: 'icon-[lucide--chevron-down]' },\n chevronLeft: { category: IconCategory.Navigation, icon: 'icon-[lucide--chevron-left]' },\n chevronRight: { category: IconCategory.Navigation, icon: 'icon-[lucide--chevron-right]' },\n chevronsUp: { category: IconCategory.Navigation, icon: 'icon-[lucide--chevrons-up]' },\n chevronsDown: { category: IconCategory.Navigation, icon: 'icon-[lucide--chevrons-down]' },\n chevronsLeft: { category: IconCategory.Navigation, icon: 'icon-[lucide--chevrons-left]' },\n chevronsRight: { category: IconCategory.Navigation, icon: 'icon-[lucide--chevrons-right]' },\n chevronsUpDown: { category: IconCategory.Navigation, icon: 'icon-[lucide--chevrons-up-down]' },\n cornerDownLeft: { category: IconCategory.Navigation, icon: 'icon-[lucide--corner-down-left]' },\n cornerDownRight: { category: IconCategory.Navigation, icon: 'icon-[lucide--corner-down-right]' },\n cornerLeftDown: { category: IconCategory.Navigation, icon: 'icon-[lucide--corner-left-down]' },\n cornerLeftUp: { category: IconCategory.Navigation, icon: 'icon-[lucide--corner-left-up]' },\n cornerRightDown: { category: IconCategory.Navigation, icon: 'icon-[lucide--corner-right-down]' },\n cornerRightUp: { category: IconCategory.Navigation, icon: 'icon-[lucide--corner-right-up]' },\n cornerUpLeft: { category: IconCategory.Navigation, icon: 'icon-[lucide--corner-up-left]' },\n cornerUpRight: { category: IconCategory.Navigation, icon: 'icon-[lucide--corner-up-right]' },\n home: { category: IconCategory.Navigation, icon: 'icon-[lucide--house]' },\n compass: { category: IconCategory.Navigation, icon: 'icon-[lucide--compass]' },\n menu: { category: IconCategory.Navigation, icon: 'icon-[lucide--menu]' },\n anchor: { category: IconCategory.Navigation, icon: 'icon-[lucide--anchor]' },\n route: { category: IconCategory.Navigation, icon: 'icon-[lucide--route]' },\n router: { category: IconCategory.Navigation, icon: 'icon-[lucide--router]' },\n externalLink: { category: IconCategory.Navigation, icon: 'icon-[lucide--external-link]' },\n move: { category: IconCategory.Navigation, icon: 'icon-[lucide--move]' },\n expand: { category: IconCategory.Navigation, icon: 'icon-[material-symbols--expand-more-rounded]' },\n collapse: { category: IconCategory.Navigation, icon: 'icon-[material-symbols--expand-less-rounded]' },\n firstPage: { category: IconCategory.Navigation, icon: 'icon-[material-symbols--first-page-rounded]' },\n lastPage: { category: IconCategory.Navigation, icon: 'icon-[material-symbols--last-page-rounded]' },\n openInNew: { category: IconCategory.Navigation, icon: 'icon-[material-symbols--open-in-new-rounded]' },\n select: { category: IconCategory.Navigation, icon: 'icon-[mi--select]' },\n signIn: { category: IconCategory.Navigation, icon: 'icon-[lucide--log-in]' },\n login: { category: IconCategory.Navigation, icon: 'icon-[lucide--log-in]' },\n logout: { category: IconCategory.Navigation, icon: 'icon-[lucide--log-out]' },\n squareMenu: { category: IconCategory.Navigation, icon: 'icon-[lucide--square-menu]' },\n add: { category: IconCategory.Actions, icon: 'icon-[lucide--plus]' },\n remove: { category: IconCategory.Actions, icon: 'icon-[lucide--minus]' },\n close: { category: IconCategory.Actions, icon: 'icon-[lucide--x]' },\n check: { category: IconCategory.Actions, icon: 'icon-[lucide--check]' },\n checkCheck: { category: IconCategory.Actions, icon: 'icon-[lucide--check-check]' },\n checkIndeterminate: { category: IconCategory.Actions, icon: 'icon-[material-symbols--check-indeterminate-small-rounded]' },\n search: { category: IconCategory.Actions, icon: 'icon-[lucide--search]' },\n zoomIn: { category: IconCategory.Actions, icon: 'icon-[lucide--zoom-in]' },\n zoomOut: { category: IconCategory.Actions, icon: 'icon-[lucide--zoom-out]' },\n edit: { category: IconCategory.Actions, icon: 'icon-[lucide--pencil]' },\n pencilLine: { category: IconCategory.Actions, icon: 'icon-[lucide--pencil-line]' },\n delete: { category: IconCategory.Actions, icon: 'icon-[lucide--trash]' },\n trash: { category: IconCategory.Actions, icon: 'icon-[lucide--trash-2]' },\n copy: { category: IconCategory.Actions, icon: 'icon-[lucide--copy]' },\n paste: { category: IconCategory.Actions, icon: 'icon-[lucide--clipboard-paste]' },\n cut: { category: IconCategory.Actions, icon: 'icon-[lucide--scissors]' },\n save: { category: IconCategory.Actions, icon: 'icon-[lucide--save]' },\n download: { category: IconCategory.Actions, icon: 'icon-[lucide--download]' },\n upload: { category: IconCategory.Actions, icon: 'icon-[lucide--upload]' },\n refresh: { category: IconCategory.Actions, icon: 'icon-[lucide--refresh-cw]' },\n refreshCcw: { category: IconCategory.Actions, icon: 'icon-[lucide--refresh-ccw]' },\n rotateCw: { category: IconCategory.Actions, icon: 'icon-[lucide--rotate-cw]' },\n rotateCcw: { category: IconCategory.Actions, icon: 'icon-[lucide--rotate-ccw]' },\n sync: { category: IconCategory.Actions, icon: 'icon-[material-symbols--sync-rounded]' },\n undo: { category: IconCategory.Actions, icon: 'icon-[lucide--undo-2]' },\n redo: { category: IconCategory.Actions, icon: 'icon-[lucide--redo-2]' },\n send: { category: IconCategory.Actions, icon: 'icon-[lucide--send]' },\n share: { category: IconCategory.Actions, icon: 'icon-[lucide--share]' },\n share2: { category: IconCategory.Actions, icon: 'icon-[lucide--share-2]' },\n attach: { category: IconCategory.Actions, icon: 'icon-[lucide--paperclip]' },\n link: { category: IconCategory.Actions, icon: 'icon-[lucide--link]' },\n link2: { category: IconCategory.Actions, icon: 'icon-[lucide--link-2]' },\n unlink: { category: IconCategory.Actions, icon: 'icon-[lucide--unlink]' },\n filter: { category: IconCategory.Actions, icon: 'icon-[lucide--filter]' },\n listFilter: { category: IconCategory.Actions, icon: 'icon-[lucide--list-filter]' },\n sort: { category: IconCategory.Actions, icon: 'icon-[lucide--arrow-up-down]' },\n sortAsc: { category: IconCategory.Actions, icon: 'icon-[lucide--arrow-up-narrow-wide]' },\n sortDesc: { category: IconCategory.Actions, icon: 'icon-[lucide--arrow-down-wide-narrow]' },\n lock: { category: IconCategory.Actions, icon: 'icon-[lucide--lock]' },\n lockOpen: { category: IconCategory.Actions, icon: 'icon-[lucide--lock-open]' },\n unlock: { category: IconCategory.Actions, icon: 'icon-[lucide--lock-open]' },\n print: { category: IconCategory.Actions, icon: 'icon-[lucide--printer]' },\n backspace: { category: IconCategory.Actions, icon: 'icon-[lucide--delete]' },\n crop: { category: IconCategory.Actions, icon: 'icon-[lucide--crop]' },\n textSearch: { category: IconCategory.Actions, icon: 'icon-[lucide--text-search]' },\n clipboardCopy: { category: IconCategory.Actions, icon: 'icon-[lucide--clipboard-copy]' },\n replace: { category: IconCategory.Actions, icon: 'icon-[lucide--replace]' },\n searchCheck: { category: IconCategory.Actions, icon: 'icon-[lucide--search-check]' },\n success: { category: IconCategory.Status, icon: 'icon-[lucide--circle-check]' },\n checkCircle: { category: IconCategory.Status, icon: 'icon-[lucide--circle-check-big]' },\n info: { category: IconCategory.Status, icon: 'icon-[lucide--info]' },\n warning: { category: IconCategory.Status, icon: 'icon-[lucide--triangle-alert]' },\n error: { category: IconCategory.Status, icon: 'icon-[lucide--circle-x]' },\n help: { category: IconCategory.Status, icon: 'icon-[lucide--circle-help]' },\n spinner: { category: IconCategory.Status, icon: 'icon-[line-md--loading-twotone-loop]' },\n spinnerDots: { category: IconCategory.Status, icon: 'icon-[svg-spinners--3-dots-move]' },\n loading: { category: IconCategory.Status, icon: 'icon-[line-md--loading-twotone-loop]' },\n loaderCircle: { category: IconCategory.Status, icon: 'icon-[lucide--loader-circle]' },\n verified: { category: IconCategory.Status, icon: 'icon-[lucide--badge-check]' },\n visibility: { category: IconCategory.Status, icon: 'icon-[lucide--eye]' },\n visibilityOff: { category: IconCategory.Status, icon: 'icon-[lucide--eye-off]' },\n online: { category: IconCategory.Status, icon: 'icon-[lucide--circle-dot]' },\n circleCheck: { category: IconCategory.Status, icon: 'icon-[lucide--circle-check]' },\n squareCheck: { category: IconCategory.Status, icon: 'icon-[lucide--square-check]' },\n loader: { category: IconCategory.Status, icon: 'icon-[lucide--loader]' },\n gauge: { category: IconCategory.Status, icon: 'icon-[lucide--gauge]' },\n play: { category: IconCategory.Media, icon: 'icon-[lucide--play]' },\n pause: { category: IconCategory.Media, icon: 'icon-[lucide--pause]' },\n stop: { category: IconCategory.Media, icon: 'icon-[lucide--square]' },\n stopCircle: { category: IconCategory.Media, icon: 'icon-[lucide--circle-stop]' },\n skipBack: { category: IconCategory.Media, icon: 'icon-[lucide--skip-back]' },\n skipForward: { category: IconCategory.Media, icon: 'icon-[lucide--skip-forward]' },\n skipNext: { category: IconCategory.Media, icon: 'icon-[lucide--skip-forward]' },\n skipPrevious: { category: IconCategory.Media, icon: 'icon-[lucide--skip-back]' },\n fastForward: { category: IconCategory.Media, icon: 'icon-[lucide--fast-forward]' },\n fastRewind: { category: IconCategory.Media, icon: 'icon-[lucide--rewind]' },\n rewind: { category: IconCategory.Media, icon: 'icon-[lucide--rewind]' },\n loop: { category: IconCategory.Media, icon: 'icon-[lucide--repeat]' },\n shuffle: { category: IconCategory.Media, icon: 'icon-[lucide--shuffle]' },\n volumeUp: { category: IconCategory.Media, icon: 'icon-[lucide--volume-2]' },\n volumeDown: { category: IconCategory.Media, icon: 'icon-[lucide--volume-1]' },\n volumeOff: { category: IconCategory.Media, icon: 'icon-[lucide--volume-off]' },\n image: { category: IconCategory.Media, icon: 'icon-[lucide--image]' },\n imagePlus: { category: IconCategory.Media, icon: 'icon-[lucide--image-plus]' },\n video: { category: IconCategory.Media, icon: 'icon-[lucide--video]' },\n videoOff: { category: IconCategory.Media, icon: 'icon-[lucide--video-off]' },\n camera: { category: IconCategory.Media, icon: 'icon-[lucide--camera]' },\n mic: { category: IconCategory.Media, icon: 'icon-[lucide--mic]' },\n micOff: { category: IconCategory.Media, icon: 'icon-[lucide--mic-off]' },\n webcam: { category: IconCategory.Media, icon: 'icon-[lucide--webcam]' },\n music: { category: IconCategory.Media, icon: 'icon-[lucide--music]' },\n music2: { category: IconCategory.Media, icon: 'icon-[lucide--music-2]' },\n headset: { category: IconCategory.Media, icon: 'icon-[lucide--headset]' },\n captions: { category: IconCategory.Media, icon: 'icon-[lucide--captions]' },\n playCircle: { category: IconCategory.Media, icon: 'icon-[lucide--circle-play]' },\n pauseCircle: { category: IconCategory.Media, icon: 'icon-[lucide--circle-pause]' },\n imageUp: { category: IconCategory.Media, icon: 'icon-[lucide--image-up]' },\n images: { category: IconCategory.Media, icon: 'icon-[lucide--images]' },\n file: { category: IconCategory.Files, icon: 'icon-[lucide--file]' },\n fileText: { category: IconCategory.Files, icon: 'icon-[lucide--file-text]' },\n fileAdd: { category: IconCategory.Files, icon: 'icon-[lucide--file-plus]' },\n fileZip: { category: IconCategory.Files, icon: 'icon-[lucide--file-archive]' },\n fileSymlink: { category: IconCategory.Files, icon: 'icon-[lucide--file-symlink]' },\n fileSearch: { category: IconCategory.Files, icon: 'icon-[lucide--file-search]' },\n folder: { category: IconCategory.Files, icon: 'icon-[lucide--folder]' },\n folderOpen: { category: IconCategory.Files, icon: 'icon-[lucide--folder-open]' },\n folderClosed: { category: IconCategory.Files, icon: 'icon-[lucide--folder-closed]' },\n folderPlus: { category: IconCategory.Files, icon: 'icon-[lucide--folder-plus]' },\n folderMinus: { category: IconCategory.Files, icon: 'icon-[lucide--folder-minus]' },\n folderGit: { category: IconCategory.Files, icon: 'icon-[lucide--folder-git-2]' },\n folderSymlink: { category: IconCategory.Files, icon: 'icon-[lucide--folder-symlink]' },\n document: { category: IconCategory.Files, icon: 'icon-[lucide--file-text]' },\n code: { category: IconCategory.Files, icon: 'icon-[lucide--code]' },\n codeBlock: { category: IconCategory.Files, icon: 'icon-[lucide--square-code]' },\n codeBracket: { category: IconCategory.Files, icon: 'icon-[lucide--braces]' },\n codeWrap: { category: IconCategory.Files, icon: 'icon-[lucide--wrap-text]' },\n archive: { category: IconCategory.Files, icon: 'icon-[lucide--archive]' },\n notebook: { category: IconCategory.Files, icon: 'icon-[lucide--notebook]' },\n notes: { category: IconCategory.Files, icon: 'icon-[lucide--sticky-note]' },\n clipboard: { category: IconCategory.Files, icon: 'icon-[lucide--clipboard]' },\n floppyDisk: { category: IconCategory.Files, icon: 'icon-[lucide--save]' },\n fileUp: { category: IconCategory.Files, icon: 'icon-[lucide--file-up]' },\n clipboardList: { category: IconCategory.Files, icon: 'icon-[lucide--clipboard-list]' },\n files: { category: IconCategory.Files, icon: 'icon-[lucide--files]' },\n filePen: { category: IconCategory.Files, icon: 'icon-[lucide--file-pen]' },\n panelLeft: { category: IconCategory.UI, icon: 'icon-[lucide--panel-left]' },\n panelRight: { category: IconCategory.UI, icon: 'icon-[lucide--panel-right]' },\n panelTop: { category: IconCategory.UI, icon: 'icon-[lucide--panel-top]' },\n panelBottom: { category: IconCategory.UI, icon: 'icon-[lucide--panel-bottom]' },\n sidebar: { category: IconCategory.UI, icon: 'icon-[lucide--panel-left]' },\n moreHorizontal: { category: IconCategory.UI, icon: 'icon-[lucide--ellipsis]' },\n moreVertical: { category: IconCategory.UI, icon: 'icon-[lucide--ellipsis-vertical]' },\n dragHandle: { category: IconCategory.UI, icon: 'icon-[lucide--grip-horizontal]' },\n dragIndicator: { category: IconCategory.UI, icon: 'icon-[lucide--grip-vertical]' },\n gridView: { category: IconCategory.UI, icon: 'icon-[lucide--grid-2x2]' },\n gridSquare: { category: IconCategory.UI, icon: 'icon-[lucide--grid-2x2]' },\n colorSwatch: { category: IconCategory.UI, icon: 'icon-[heroicons-solid--color-swatch]' },\n layoutGrid: { category: IconCategory.UI, icon: 'icon-[lucide--layout-grid]' },\n listView: { category: IconCategory.UI, icon: 'icon-[lucide--list]' },\n listOrdered: { category: IconCategory.UI, icon: 'icon-[lucide--list-ordered]' },\n settings: { category: IconCategory.UI, icon: 'icon-[lucide--settings]' },\n tune: { category: IconCategory.UI, icon: 'icon-[lucide--sliders-horizontal]' },\n slidersVertical: { category: IconCategory.UI, icon: 'icon-[lucide--sliders-vertical]' },\n notifications: { category: IconCategory.UI, icon: 'icon-[lucide--bell]' },\n bellDot: { category: IconCategory.UI, icon: 'icon-[lucide--bell-dot]' },\n bellOff: { category: IconCategory.UI, icon: 'icon-[lucide--bell-off]' },\n person: { category: IconCategory.UI, icon: 'icon-[lucide--user]' },\n group: { category: IconCategory.UI, icon: 'icon-[lucide--users]' },\n userCheck: { category: IconCategory.UI, icon: 'icon-[lucide--user-check]' },\n userPlus: { category: IconCategory.UI, icon: 'icon-[lucide--user-plus]' },\n userMinus: { category: IconCategory.UI, icon: 'icon-[lucide--user-minus]' },\n userX: { category: IconCategory.UI, icon: 'icon-[lucide--user-x]' },\n userCog: { category: IconCategory.UI, icon: 'icon-[lucide--user-cog]' },\n keyboard: { category: IconCategory.UI, icon: 'icon-[lucide--keyboard]' },\n keyboardReturn: { category: IconCategory.UI, icon: 'icon-[material-symbols--keyboard-return-rounded]' },\n keyboardCommand: { category: IconCategory.UI, icon: 'icon-[lucide--command]' },\n fullscreen: { category: IconCategory.UI, icon: 'icon-[lucide--maximize]' },\n fullscreenExit: { category: IconCategory.UI, icon: 'icon-[lucide--minimize]' },\n dashboard: { category: IconCategory.UI, icon: 'icon-[lucide--layout-dashboard]' },\n widgets: { category: IconCategory.UI, icon: 'icon-[material-symbols--widgets-rounded]' },\n apps: { category: IconCategory.UI, icon: 'icon-[lucide--grid-3x3]' },\n pictureInPicture: { category: IconCategory.UI, icon: 'icon-[lucide--picture-in-picture]' },\n toggleOn: { category: IconCategory.UI, icon: 'icon-[lucide--toggle-right]' },\n toggleOff: { category: IconCategory.UI, icon: 'icon-[lucide--toggle-left]' },\n appWindow: { category: IconCategory.UI, icon: 'icon-[lucide--app-window]' },\n terminalWindow: { category: IconCategory.UI, icon: 'icon-[lucide--square-terminal]' },\n scrollArea: { category: IconCategory.UI, icon: 'icon-[lucide--scroll]' },\n inspectSearch: { category: IconCategory.UI, icon: 'icon-[lucide--scan-search]' },\n option: { category: IconCategory.UI, icon: 'icon-[lucide--option]' },\n cube: { category: IconCategory.UI, icon: 'icon-[iconoir--select-face-3d]' },\n textCursorInput: { category: IconCategory.UI, icon: 'icon-[lucide--text-cursor-input]' },\n blocks: { category: IconCategory.UI, icon: 'icon-[lucide--blocks]' },\n listTree: { category: IconCategory.UI, icon: 'icon-[lucide--list-tree]' },\n squareChevronDown: { category: IconCategory.UI, icon: 'icon-[lucide--square-chevron-down]' },\n letterText: { category: IconCategory.UI, icon: 'icon-[lucide--letter-text]' },\n squareMousePointer: { category: IconCategory.UI, icon: 'icon-[lucide--square-mouse-pointer]' },\n columns3: { category: IconCategory.UI, icon: 'icon-[lucide--columns-3]' },\n listCollapse: { category: IconCategory.UI, icon: 'icon-[lucide--list-collapse]' },\n foldVertical: { category: IconCategory.UI, icon: 'icon-[lucide--fold-vertical]' },\n inbox: { category: IconCategory.UI, icon: 'icon-[lucide--inbox]' },\n squareDashed: { category: IconCategory.UI, icon: 'icon-[lucide--square-dashed]' },\n tableOfContents: { category: IconCategory.UI, icon: 'icon-[lucide--table-of-contents]' },\n grid3x3: { category: IconCategory.UI, icon: 'icon-[lucide--grid-3x3]' },\n fieldGroup: { category: IconCategory.UI, icon: 'icon-[lucide--group]' },\n rectangleEllipsis: { category: IconCategory.UI, icon: 'icon-[lucide--rectangle-ellipsis]' },\n inputGroup: { category: IconCategory.UI, icon: 'icon-[lucide--between-horizontal-end]' },\n groupItems: { category: IconCategory.UI, icon: 'icon-[lucide--group]' },\n separator: { category: IconCategory.UI, icon: 'icon-[lucide--separator-horizontal]' },\n stretchHorizontal: { category: IconCategory.UI, icon: 'icon-[lucide--stretch-horizontal]' },\n squareStack: { category: IconCategory.UI, icon: 'icon-[lucide--square-stack]' },\n textCursor: { category: IconCategory.UI, icon: 'icon-[lucide--text-cursor]' },\n component: { category: IconCategory.UI, icon: 'icon-[lucide--component]' },\n layoutTemplate: { category: IconCategory.UI, icon: 'icon-[lucide--layout-template]' },\n google: { category: IconCategory.Brands, icon: 'icon-[logos--google-icon]' },\n googleMono: { category: IconCategory.Brands, icon: 'icon-[simple-icons--google]' },\n github: { category: IconCategory.Brands, icon: 'icon-[mdi--github]' },\n apple: { category: IconCategory.Brands, icon: 'icon-[mdi--apple]' },\n openai: { category: IconCategory.Brands, icon: 'icon-[simple-icons--openai]' },\n anthropic: { category: IconCategory.Brands, icon: 'icon-[simple-icons--anthropic]' },\n gemini: { category: IconCategory.Brands, icon: 'icon-[simple-icons--googlegemini]' },\n discord: { category: IconCategory.Brands, icon: 'icon-[simple-icons--discord]' },\n slack: { category: IconCategory.Brands, icon: 'icon-[simple-icons--slack]' },\n figma: { category: IconCategory.Brands, icon: 'icon-[simple-icons--figma]' },\n linkedin: { category: IconCategory.Brands, icon: 'icon-[lucide--linkedin]' },\n codepen: { category: IconCategory.Brands, icon: 'icon-[lucide--codepen]' },\n rss: { category: IconCategory.Brands, icon: 'icon-[lucide--rss]' },\n typescript: { category: IconCategory.Programming, icon: 'icon-[simple-icons--typescript]' },\n javascript: { category: IconCategory.Programming, icon: 'icon-[simple-icons--javascript]' },\n python: { category: IconCategory.Programming, icon: 'icon-[simple-icons--python]' },\n react: { category: IconCategory.Programming, icon: 'icon-[simple-icons--react]' },\n tailwindcss: { category: IconCategory.Programming, icon: 'icon-[simple-icons--tailwindcss]' },\n json: { category: IconCategory.Programming, icon: 'icon-[lucide--braces]' },\n html: { category: IconCategory.Programming, icon: 'icon-[simple-icons--html5]' },\n css: { category: IconCategory.Programming, icon: 'icon-[simple-icons--css3]' },\n terminal: { category: IconCategory.Programming, icon: 'icon-[lucide--terminal]' },\n api: { category: IconCategory.Programming, icon: 'icon-[lucide--webhook]' },\n variable: { category: IconCategory.Programming, icon: 'icon-[lucide--variable]' },\n webhook: { category: IconCategory.Programming, icon: 'icon-[lucide--webhook]' },\n functionIcon: { category: IconCategory.Programming, icon: 'icon-[lucide--function-square]' },\n cursor: { category: IconCategory.Tools, icon: 'icon-[lucide--mouse-pointer]' },\n cursorClick: { category: IconCategory.Tools, icon: 'icon-[lucide--mouse-pointer-click]' },\n hand: { category: IconCategory.Tools, icon: 'icon-[lucide--hand]' },\n pen: { category: IconCategory.Tools, icon: 'icon-[lucide--pen]' },\n brush: { category: IconCategory.Tools, icon: 'icon-[lucide--paintbrush]' },\n eraser: { category: IconCategory.Tools, icon: 'icon-[lucide--eraser]' },\n colorize: { category: IconCategory.Tools, icon: 'icon-[lucide--pipette]' },\n straighten: { category: IconCategory.Tools, icon: 'icon-[lucide--ruler]' },\n wrench: { category: IconCategory.Tools, icon: 'icon-[lucide--wrench]' },\n plug: { category: IconCategory.Tools, icon: 'icon-[lucide--plug]' },\n scan: { category: IconCategory.Tools, icon: 'icon-[lucide--scan]' },\n aperture: { category: IconCategory.Tools, icon: 'icon-[lucide--aperture]' },\n pencilRuler: { category: IconCategory.Tools, icon: 'icon-[lucide--pencil-ruler]' },\n mousePointer2: { category: IconCategory.Tools, icon: 'icon-[lucide--mouse-pointer-2]' },\n table: { category: IconCategory.Data, icon: 'icon-[lucide--table]' },\n barChart: { category: IconCategory.Data, icon: 'icon-[lucide--chart-bar]' },\n chartBarStacked: { category: IconCategory.Data, icon: 'icon-[lucide--chart-bar-stacked]' },\n pieChart: { category: IconCategory.Data, icon: 'icon-[lucide--chart-pie]' },\n lineChart: { category: IconCategory.Data, icon: 'icon-[lucide--line-chart]' },\n chartActivity: { category: IconCategory.Data, icon: 'icon-[lucide--activity]' },\n trendingUp: { category: IconCategory.Data, icon: 'icon-[lucide--trending-up]' },\n trendingDown: { category: IconCategory.Data, icon: 'icon-[lucide--trending-down]' },\n analytics: { category: IconCategory.Data, icon: 'icon-[lucide--chart-no-axes-combined]' },\n array: { category: IconCategory.Data, icon: 'icon-[material-symbols--data-array-rounded]' },\n database: { category: IconCategory.Data, icon: 'icon-[lucide--database]' },\n tag: { category: IconCategory.Data, icon: 'icon-[lucide--tag]' },\n label: { category: IconCategory.Data, icon: 'icon-[material-symbols--label-rounded]' },\n hash: { category: IconCategory.Data, icon: 'icon-[lucide--hash]' },\n percent: { category: IconCategory.Data, icon: 'icon-[lucide--percent]' },\n tally5: { category: IconCategory.Data, icon: 'icon-[lucide--tally-5]' },\n chat: { category: IconCategory.Communication, icon: 'icon-[lucide--message-square]' },\n chatBubble: { category: IconCategory.Communication, icon: 'icon-[lucide--message-circle]' },\n messageTyping: { category: IconCategory.Communication, icon: 'icon-[lucide--message-square-more]' },\n comment: { category: IconCategory.Communication, icon: 'icon-[lucide--message-square-text]' },\n email: { category: IconCategory.Communication, icon: 'icon-[lucide--mail]' },\n call: { category: IconCategory.Communication, icon: 'icon-[lucide--phone]' },\n thumbUp: { category: IconCategory.Communication, icon: 'icon-[lucide--thumbs-up]' },\n thumbDown: { category: IconCategory.Communication, icon: 'icon-[lucide--thumbs-down]' },\n messageSquareMore: { category: IconCategory.Communication, icon: 'icon-[lucide--message-square-more]' },\n messageCircle: { category: IconCategory.Communication, icon: 'icon-[lucide--message-circle]' },\n messagesSquare: { category: IconCategory.Communication, icon: 'icon-[lucide--messages-square]' },\n palette: { category: IconCategory.Design, icon: 'icon-[lucide--palette]' },\n paintBucket: { category: IconCategory.Design, icon: 'icon-[lucide--paint-bucket]' },\n formatPaint: { category: IconCategory.Design, icon: 'icon-[lucide--paint-roller]' },\n autoAwesome: { category: IconCategory.Design, icon: 'icon-[material-symbols--auto-awesome-rounded]' },\n style: { category: IconCategory.Design, icon: 'icon-[material-symbols--style]' },\n opacity: { category: IconCategory.Design, icon: 'icon-[material-symbols--opacity-rounded]' },\n gradient: { category: IconCategory.Design, icon: 'icon-[material-symbols--gradient]' },\n contrast: { category: IconCategory.Design, icon: 'icon-[carbon--contrast]' },\n brightness: { category: IconCategory.Design, icon: 'icon-[lucide--sun]' },\n layers: { category: IconCategory.Design, icon: 'icon-[lucide--layers]' },\n blendMode: { category: IconCategory.Design, icon: 'icon-[lucide--blend]' },\n shadow: { category: IconCategory.Design, icon: 'icon-[material-symbols--ev-shadow]' },\n roundedCorner: { category: IconCategory.Design, icon: 'icon-[material-symbols--rounded-corner-rounded]' },\n formatSpacing: { category: IconCategory.Design, icon: 'icon-[material-symbols--format-letter-spacing-rounded]' },\n shapes: { category: IconCategory.Design, icon: 'icon-[lucide--shapes]' },\n swatchBook: { category: IconCategory.Design, icon: 'icon-[lucide--swatch-book]' },\n droplets: { category: IconCategory.Design, icon: 'icon-[lucide--droplets]' },\n sunMedium: { category: IconCategory.Design, icon: 'icon-[lucide--sun-medium]' },\n spline: { category: IconCategory.Design, icon: 'icon-[lucide--spline]' },\n robot: { category: IconCategory.AI, icon: 'icon-[lucide--bot]' },\n sparkles: { category: IconCategory.AI, icon: 'icon-[lucide--sparkles]' },\n sparkle: { category: IconCategory.AI, icon: 'icon-[lucide--sparkle]' },\n brain: { category: IconCategory.AI, icon: 'icon-[lucide--brain]' },\n magic: { category: IconCategory.AI, icon: 'icon-[lucide--wand-sparkles]' },\n experiment: { category: IconCategory.AI, icon: 'icon-[lucide--flask-conical]' },\n psychology: { category: IconCategory.AI, icon: 'icon-[material-symbols--psychology-rounded]' },\n botMessageSquare: { category: IconCategory.AI, icon: 'icon-[lucide--bot-message-square]' },\n one: { category: IconCategory.Numbers, icon: 'icon-[material-symbols--counter-1-rounded]' },\n two: { category: IconCategory.Numbers, icon: 'icon-[material-symbols--counter-2-rounded]' },\n three: { category: IconCategory.Numbers, icon: 'icon-[material-symbols--counter-3-rounded]' },\n four: { category: IconCategory.Numbers, icon: 'icon-[material-symbols--counter-4-rounded]' },\n five: { category: IconCategory.Numbers, icon: 'icon-[material-symbols--counter-5-rounded]' },\n six: { category: IconCategory.Numbers, icon: 'icon-[material-symbols--counter-6-rounded]' },\n seven: { category: IconCategory.Numbers, icon: 'icon-[material-symbols--counter-7-rounded]' },\n eight: { category: IconCategory.Numbers, icon: 'icon-[material-symbols--counter-8]' },\n nine: { category: IconCategory.Numbers, icon: 'icon-[material-symbols--counter-9-rounded]' },\n favorite: { category: IconCategory.Misc, icon: 'icon-[lucide--heart]' },\n star: { category: IconCategory.Misc, icon: 'icon-[lucide--star]' },\n bookmark: { category: IconCategory.Misc, icon: 'icon-[lucide--bookmark]' },\n flag: { category: IconCategory.Misc, icon: 'icon-[lucide--flag]' },\n flagTriangle: { category: IconCategory.Misc, icon: 'icon-[lucide--flag-triangle-right]' },\n creditCard: { category: IconCategory.Misc, icon: 'icon-[lucide--credit-card]' },\n shoppingCart: { category: IconCategory.Misc, icon: 'icon-[lucide--shopping-cart]' },\n store: { category: IconCategory.Misc, icon: 'icon-[lucide--store]' },\n coins: { category: IconCategory.Misc, icon: 'icon-[lucide--coins]' },\n dollarSign: { category: IconCategory.Misc, icon: 'icon-[lucide--dollar-sign]' },\n receipt: { category: IconCategory.Misc, icon: 'icon-[lucide--receipt]' },\n location: { category: IconCategory.Misc, icon: 'icon-[lucide--map-pin]' },\n calendar: { category: IconCategory.Misc, icon: 'icon-[lucide--calendar]' },\n clock: { category: IconCategory.Misc, icon: 'icon-[lucide--clock]' },\n clockRewind: { category: IconCategory.Misc, icon: 'icon-[lucide--history]' },\n schedule: { category: IconCategory.Misc, icon: 'icon-[lucide--clock]' },\n timer: { category: IconCategory.Misc, icon: 'icon-[lucide--timer]' },\n stopwatch: { category: IconCategory.Misc, icon: 'icon-[lucide--timer]' },\n alarmClock: { category: IconCategory.Misc, icon: 'icon-[lucide--alarm-clock]' },\n lightbulb: { category: IconCategory.Misc, icon: 'icon-[lucide--lightbulb]' },\n bolt: { category: IconCategory.Misc, icon: 'icon-[lucide--zap]' },\n cloud: { category: IconCategory.Misc, icon: 'icon-[lucide--cloud]' },\n cloudUpload: { category: IconCategory.Misc, icon: 'icon-[lucide--cloud-upload]' },\n cloudDownload: { category: IconCategory.Misc, icon: 'icon-[lucide--cloud-download]' },\n lightMode: { category: IconCategory.Misc, icon: 'icon-[lucide--sun]' },\n darkMode: { category: IconCategory.Misc, icon: 'icon-[lucide--moon]' },\n moonStar: { category: IconCategory.Misc, icon: 'icon-[lucide--moon-star]' },\n sunDim: { category: IconCategory.Misc, icon: 'icon-[lucide--sun-dim]' },\n power: { category: IconCategory.Misc, icon: 'icon-[lucide--power]' },\n shield: { category: IconCategory.Misc, icon: 'icon-[lucide--shield]' },\n shieldCheck: { category: IconCategory.Misc, icon: 'icon-[lucide--shield-check]' },\n shieldOff: { category: IconCategory.Misc, icon: 'icon-[lucide--shield-off]' },\n key: { category: IconCategory.Misc, icon: 'icon-[lucide--key]' },\n keyRound: { category: IconCategory.Misc, icon: 'icon-[lucide--key-round]' },\n fingerprint: { category: IconCategory.Misc, icon: 'icon-[lucide--fingerprint]' },\n pin: { category: IconCategory.Misc, icon: 'icon-[lucide--pin]' },\n paperclip: { category: IconCategory.Misc, icon: 'icon-[lucide--paperclip]' },\n globe: { category: IconCategory.Misc, icon: 'icon-[lucide--globe]' },\n globeLock: { category: IconCategory.Misc, icon: 'icon-[lucide--globe-lock]' },\n gps: { category: IconCategory.Misc, icon: 'icon-[lucide--locate]' },\n network: { category: IconCategory.Misc, icon: 'icon-[lucide--network]' },\n cpu: { category: IconCategory.Misc, icon: 'icon-[lucide--cpu]' },\n monitor: { category: IconCategory.Misc, icon: 'icon-[lucide--monitor]' },\n smartphone: { category: IconCategory.Misc, icon: 'icon-[lucide--smartphone]' },\n tablet: { category: IconCategory.Misc, icon: 'icon-[lucide--tablet]' },\n monitorSmartphone: { category: IconCategory.Misc, icon: 'icon-[lucide--monitor-smartphone]' },\n server: { category: IconCategory.Misc, icon: 'icon-[lucide--server]' },\n hardDrive: { category: IconCategory.Misc, icon: 'icon-[lucide--hard-drive]' },\n box: { category: IconCategory.Misc, icon: 'icon-[lucide--box]' },\n puzzle: { category: IconCategory.Misc, icon: 'icon-[lucide--puzzle]' },\n briefcase: { category: IconCategory.Misc, icon: 'icon-[lucide--briefcase]' },\n calculator: { category: IconCategory.Misc, icon: 'icon-[lucide--calculator]' },\n buildings: { category: IconCategory.Misc, icon: 'icon-[lucide--building-2]' },\n bug: { category: IconCategory.Misc, icon: 'icon-[lucide--bug]' },\n droplet: { category: IconCategory.Misc, icon: 'icon-[lucide--droplet]' },\n bookOpen: { category: IconCategory.Misc, icon: 'icon-[lucide--book-open]' },\n bookClosed: { category: IconCategory.Misc, icon: 'icon-[lucide--book-marked]' },\n lifebuoy: { category: IconCategory.Misc, icon: 'icon-[lucide--life-buoy]' },\n accessibility: { category: IconCategory.Misc, icon: 'icon-[lucide--accessibility]' },\n workflow: { category: IconCategory.Misc, icon: 'icon-[lucide--workflow]' },\n gitBranch: { category: IconCategory.Misc, icon: 'icon-[lucide--git-branch]' },\n gitBranchPlus: { category: IconCategory.Misc, icon: 'icon-[lucide--git-branch-plus]' },\n gitCommit: { category: IconCategory.Misc, icon: 'icon-[lucide--git-commit-horizontal]' },\n gitMerge: { category: IconCategory.Misc, icon: 'icon-[lucide--git-merge]' },\n gitPullRequest: { category: IconCategory.Misc, icon: 'icon-[lucide--git-pull-request]' },\n crosshair: { category: IconCategory.Misc, icon: 'icon-[lucide--crosshair]' },\n target: { category: IconCategory.Misc, icon: 'icon-[lucide--target]' },\n smile: { category: IconCategory.Misc, icon: 'icon-[lucide--smile]' },\n frown: { category: IconCategory.Misc, icon: 'icon-[lucide--frown]' },\n smilePlus: { category: IconCategory.Misc, icon: 'icon-[lucide--smile-plus]' },\n bold: { category: IconCategory.Misc, icon: 'icon-[lucide--bold]' },\n italic: { category: IconCategory.Misc, icon: 'icon-[lucide--italic]' },\n strikethrough: { category: IconCategory.Misc, icon: 'icon-[lucide--strikethrough]' },\n underline: { category: IconCategory.Misc, icon: 'icon-[lucide--underline]' },\n heading: { category: IconCategory.Misc, icon: 'icon-[lucide--heading]' },\n type: { category: IconCategory.Misc, icon: 'icon-[lucide--type]' },\n caseSensitive: { category: IconCategory.Misc, icon: 'icon-[lucide--case-sensitive]' },\n alignLeft: { category: IconCategory.Misc, icon: 'icon-[lucide--align-left]' },\n alignCenter: { category: IconCategory.Misc, icon: 'icon-[lucide--align-center]' },\n alignRight: { category: IconCategory.Misc, icon: 'icon-[lucide--align-right]' },\n sunMoon: { category: IconCategory.Misc, icon: 'icon-[lucide--sun-moon]' },\n tv: { category: IconCategory.Misc, icon: 'icon-[lucide--tv]' },\n tvMinimal: { category: IconCategory.Misc, icon: 'icon-[lucide--tv-minimal]' },\n orbit: { category: IconCategory.Misc, icon: 'icon-[lucide--orbit]' },\n gitFork: { category: IconCategory.Misc, icon: 'icon-[lucide--git-fork]' },\n bookOpenText: { category: IconCategory.Misc, icon: 'icon-[lucide--book-open-text]' },\n serverOff: { category: IconCategory.Misc, icon: 'icon-[lucide--server-off]' },\n packagePlus: { category: IconCategory.Misc, icon: 'icon-[lucide--package-plus]' },\n\n} satisfies Record<string, IconProperties>;\n\nexport class IconHelpers {\n public static getIcon(name: string): string {\n return name in CURATED_ICONS ? CURATED_ICONS[name as CuratedIcons].icon : name;\n }\n\n public static getCategory(name: CuratedIcons): IconCategory {\n return CURATED_ICONS[name].category;\n }\n\n public static getCategories(): IconCategory[] {\n const usedCategories = new Set<IconCategory>();\n\n for (const icon of Object.values(CURATED_ICONS)) {\n usedCategories.add(icon.category);\n }\n\n return Object.values(IconCategory).filter(cat => usedCategories.has(cat));\n }\n\n public static getByCategory(): Record<IconCategory, IconEntry[]> {\n const grouped = {} as Record<IconCategory, IconEntry[]>;\n\n for (const category of Object.values(IconCategory)) {\n grouped[category] = [];\n }\n\n for (const [id, data] of Object.entries(CURATED_ICONS)) {\n grouped[data.category].push({\n id: id,\n category: data.category,\n icon: data.icon,\n });\n }\n\n return grouped;\n }\n}\n","import indexCss from './index.css?raw';\n\nexport type FontFormat = 'ttf' | 'otf' | 'woff2';\n\nexport interface FontFaceData {\n family: string;\n weightMin: number;\n weightMax: number;\n style: string;\n format: FontFormat;\n filePath: string;\n fileName: string;\n cssVariable: string | null;\n}\n\nconst FONT_VAR_REGEX = /--font-([\\w-]+):\\s*'([^']+)'/g;\n\nconst familyToVariable = new Map<string, string>();\n\nlet varMatch: RegExpExecArray | null;\n\nwhile ((varMatch = FONT_VAR_REGEX.exec(indexCss)) !== null) {\n const variableName = `--font-${varMatch[1]}`;\n const familyName = varMatch[2];\n familyToVariable.set(familyName.toLowerCase(), variableName);\n}\n\nconst FONT_FACE_REGEX = /@font-face\\s*\\{([^}]*)\\}/gs;\n\nconst parsedFonts: FontFaceData[] = [];\n\nlet faceMatch: RegExpExecArray | null;\n\nwhile ((faceMatch = FONT_FACE_REGEX.exec(indexCss)) !== null) {\n const block = faceMatch[1];\n\n const familyMatch = block.match(/font-family:\\s*'([^']+)'/);\n const weightMatch = block.match(/font-weight:\\s*([\\d\\s]+)/);\n const styleMatch = block.match(/font-style:\\s*(\\w+)/);\n const srcMatch = block.match(/src:\\s*url\\([^)]*?\\/fonts\\/([^)]+)\\)\\s*format\\('(\\w+)'\\)/);\n\n if (!familyMatch || !weightMatch || !styleMatch || !srcMatch) continue;\n\n const family = familyMatch[1];\n const weightRaw = weightMatch[1].trim();\n const style = styleMatch[1];\n const fileName = srcMatch[1];\n const format = srcMatch[2] === 'truetype' ? 'ttf' : srcMatch[2] === 'opentype' ? 'otf' : 'woff2';\n\n const weights = weightRaw.split(/\\s+/).map(Number);\n const weightMin = Math.min(...weights);\n const weightMax = Math.max(...weights);\n\n parsedFonts.push({\n family: family,\n weightMin: weightMin,\n weightMax: weightMax,\n style: style,\n format: format as FontFormat,\n filePath: `/fonts/${fileName}`,\n fileName: fileName,\n cssVariable: familyToVariable.get(family.toLowerCase()) ?? null,\n });\n}\n\nparsedFonts.sort((a, b) => a.family.localeCompare(b.family));\n\nexport const FONT_FACES: FontFaceData[] = parsedFonts;\n","export const IMAGES = {\n digoLogo: 'https://cdn.digo-labs.com/images/digo-logo.png',\n digoLogoSvg: 'https://cdn.digo-labs.com/images/digo-logo.svg',\n pcLogoV1Svg: 'https://cdn.digo-labs.com/images/pc-logo-v1.svg',\n pcLogo3d: 'https://cdn.digo-labs.com/images/pc-logo-3d.png',\n userPlaceholder: 'https://cdn.digo-labs.com/images/user-placeholder.png',\n audio3d: 'https://cdn.digo-labs.com/images/audio-3d.jpg',\n blocks3d: 'https://cdn.digo-labs.com/images/blocks-3d.jpg',\n components3d: 'https://cdn.digo-labs.com/images/components-3d.jpg',\n effects3d: 'https://cdn.digo-labs.com/images/effects-3d.jpg',\n fonts3d: 'https://cdn.digo-labs.com/images/fonts-3d.jpg',\n icons3d: 'https://cdn.digo-labs.com/images/icons-3d.jpg',\n image3d: 'https://cdn.digo-labs.com/images/image-3d.jpg',\n llms3d: 'https://cdn.digo-labs.com/images/llms-3d.jpg',\n pages3d: 'https://cdn.digo-labs.com/images/pages-3d.jpg',\n text3d: 'https://cdn.digo-labs.com/images/text-3d.jpg',\n video3d: 'https://cdn.digo-labs.com/images/video-3d.jpg',\n\n terminalScreenFrame: 'https://cdn.digo-labs.com/images/terminal-screen-frame.png',\n terminalScreenGlass: 'https://cdn.digo-labs.com/images/terminal-screen-glass.png',\n terminalSideGlass: 'https://cdn.digo-labs.com/images/terminal-side-glass.png',\n};\n","export const MODELS = {\n porsche: 'https://cdn.digo-labs.com/models/porsche.glb',\n};\n","export class LocalStorage {\n public static setValue<T>(key: string, value: T): void {\n localStorage.setItem(key, JSON.stringify(value));\n }\n\n public static loadValue<T>(key: string, defaultValue: T): T {\n const storedValue = localStorage.getItem(key);\n\n if (!storedValue || storedValue === 'undefined') {\n return defaultValue;\n }\n\n try {\n return JSON.parse(storedValue);\n } catch {\n return defaultValue;\n }\n }\n}\n","export class SessionStorage {\n public static setValue<T>(key: string, value: T): void {\n sessionStorage.setItem(key, JSON.stringify(value));\n }\n\n public static loadValue<T>(key: string, defaultValue: T): T {\n const storedValue = sessionStorage.getItem(key);\n\n if (!storedValue || storedValue === 'undefined') {\n return defaultValue;\n }\n\n try {\n return JSON.parse(storedValue);\n } catch {\n return defaultValue;\n }\n }\n}\n","export const ROUTES = {\n bedrockText: 'bedrock-text',\n dmxSend: 'dmx-send',\n storagePresignUpload: 'storage-presign-upload',\n storagePresignDownload: 'storage-presign-download',\n storageList: 'storage-list',\n storageDelete: 'storage-delete',\n databaseGetAll: 'database-get-all',\n databaseGet: 'database-get',\n databaseGetBy: 'database-get-by',\n databaseCreate: 'database-create',\n databaseUpdate: 'database-update',\n databaseDelete: 'database-delete',\n refreshSchemas: 'refresh-schemas',\n} as const;\n","import LZString from 'lz-string';\n\nimport {\n base64StringToBlob,\n blobToBase64String,\n} from 'blob-util';\n\nexport class StringHelpers {\n public static hashCode(data: string) {\n return [...data].reduce(\n (hash, c) => (Math.imul(31, hash) + c.charCodeAt(0)) | 0,\n 0,\n );\n }\n\n public static compress(data: string): string {\n return LZString.compress(data);\n }\n\n public static compressToBase64(data: string): string {\n return LZString.compressToBase64(data);\n }\n\n public static compressToUint8Array(data: string): Uint8Array {\n return LZString.compressToUint8Array(data);\n }\n\n public static decompress(data: string): string {\n return LZString.decompress(data);\n }\n\n public static decompressFromBase64(data: string): string {\n return LZString.decompressFromBase64(data);\n }\n\n public static decompressFromUint8Array(data: Uint8Array): string {\n return LZString.decompressFromUint8Array(data);\n }\n\n public static blobToBase64(blob: Blob): Promise<string> {\n return blobToBase64String(blob);\n }\n\n public static base64ToBlob(base64: string): Blob {\n return base64StringToBlob(base64);\n }\n\n public static getFirstLetter(string: string | undefined): string {\n if (!string) return 'X';\n return string.charAt(0).toUpperCase();\n }\n}\n","export const STRINGS = {\n digo: 'Digo',\n refresh: 'Refresh',\n code: 'Code',\n score: 'Score',\n preview: 'Preview',\n weights: 'Weights',\n examples: 'Examples',\n typography: 'Typography',\n sizes: 'Sizes',\n icons: 'Icons',\n neutral: 'Neutral',\n info: 'Info',\n selected: 'Selected',\n noneSelected: 'None selected',\n highlights: 'Highlights',\n shadows: 'Shadows',\n color: 'Color',\n untitled: 'Untitled',\n columns: 'Columns',\n save: 'Save',\n accent: 'Accent',\n applying: 'Applying',\n viewing: 'Viewing',\n clearMessages: 'Clear messages',\n clearNextMessages: 'Clear next messages',\n apply: 'Apply',\n import: 'Import',\n search: 'Search...',\n where: 'Where',\n noTimeArray: 'No time array',\n success: 'Success',\n error: 'Error',\n warning: 'Warning',\n attach: 'Attach',\n attachImage: 'Attach Image',\n actions: 'Actions',\n addNewColumn: 'Add new column',\n addNewRow: 'Add new row',\n addFilter: 'Add filter',\n addSort: 'Add sort',\n applySorting: 'Apply sorting',\n applyFilters: 'Apply filters',\n filter: 'Filter',\n sort: 'Sort',\n resetFilters: 'Reset filters',\n resetSorting: 'Reset sorting',\n description: 'Description',\n name: 'Name',\n loremIpsumSmall: 'Lorem ipsum dolor sit amet.',\n loremIpsumMedium: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam nec purus ac libero vehicula ultricies.',\n loremIpsumLong: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam nec purus ac libero vehicula ultricies. Nulla facilisi. Sed nec nisl in turpis tincidunt tincidunt. Nulla facilisi. Sed nec nisl in turpis tincidunt tincidunt.',\n selectAgent: 'Select Agent',\n selectModel: 'Select Model',\n sendPrompt: 'Send Prompt',\n view: 'View',\n toggleColumns: 'Toggle columns',\n toggleOpen: 'Toggle open',\n reset: 'Reset',\n noResultsFound: 'No results found.',\n clearFilters: 'Clear filters',\n rowsPerPage: 'Rows per page',\n id: 'Id',\n noSortsTitle: 'No sorts apply to this view',\n noSortsDescription: 'Add a column below to sort the view',\n noFiltersTitle: 'No filters apply to this view',\n noFiltersDescription: 'Add a column below to filter the view',\n defaultValue: 'Default value',\n default: 'Default',\n stepDuration: 'Step duration (ms)',\n min: 'Min',\n max: 'Max',\n icon: 'Icon',\n step: 'Step',\n decimals: 'Decimals',\n units: 'Units',\n play: 'Play',\n pause: 'Pause',\n next: 'Next',\n previous: 'Previous',\n loop: 'Loop',\n rewind: 'Rewind',\n forward: 'Forward',\n start: 'Start',\n emptyCode: 'Select a file to view its content',\n generate: 'Generate',\n savePreset: 'Save Preset',\n image: 'Image',\n};\n","import { z } from 'zod';\n\nexport const filePayloadSchema = z.object({\n mediaType: z.string(),\n base64: z.string(),\n});\n\nexport type FilePayload = z.infer<typeof filePayloadSchema>;\n\nexport const imagePayloadSchema = z.object({\n mediaType: z.string(),\n base64: z.string(),\n});\n\nexport type ImagePayload = z.infer<typeof imagePayloadSchema>;\n\nexport const sizeFormattedSchema = z\n .string()\n .regex(/^\\d+x\\d+$/)\n .transform(s => s as `${number}x${number}`);\n\nexport type SizeFormatted = z.infer<typeof sizeFormattedSchema>;\n\nexport const aspectRatioSchema = z\n .string()\n .regex(/^\\d+:\\d+$/)\n .transform(s => s as `${number}:${number}`);\n\nexport type AspectRatio = z.infer<typeof aspectRatioSchema>;\n","import { z } from 'zod';\n\nimport { aspectRatioSchema } from './primitives';\n\nexport interface ModelMetadata {\n id: string;\n provider: string;\n name: string;\n version: string;\n description: string;\n}\n\nexport const imageGenerateBodySchema = z.object({\n prompt: z.string().min(1),\n aspectRatio: aspectRatioSchema.optional(),\n seed: z.number().int().optional(),\n});\n\nexport type ImageGenerateBody = z.infer<typeof imageGenerateBodySchema>;\n\nexport const imageEditBodySchema = z.object({\n prompt: z.string().min(1),\n image: z.string().url(),\n strength: z.number().min(0).max(1).optional(),\n});\n\nexport type ImageEditBody = z.infer<typeof imageEditBodySchema>;\n\nexport const imageUpscaleBodySchema = z.object({\n image: z.string().url(),\n factor: z.number().positive().optional(),\n});\n\nexport type ImageUpscaleBody = z.infer<typeof imageUpscaleBodySchema>;\n\nexport const imageRemoveBackgroundBodySchema = z.object({\n image: z.string().url(),\n});\n\nexport type ImageRemoveBackgroundBody = z.infer<typeof imageRemoveBackgroundBodySchema>;\n\nexport const generatedImageSchema = z.object({\n url: z.string().url(),\n contentType: z.string().optional(),\n width: z.number().optional(),\n height: z.number().optional(),\n seed: z.number().optional(),\n model: z.string().optional(),\n});\n\nexport type GeneratedImage = z.infer<typeof generatedImageSchema>;\n\nexport const videoGenerateBodySchema = z.object({\n prompt: z.string().min(1),\n aspectRatio: aspectRatioSchema.optional(),\n durationSeconds: z.number().positive().optional(),\n});\n\nexport type VideoGenerateBody = z.infer<typeof videoGenerateBodySchema>;\n\nexport const generatedVideoSchema = z.object({\n url: z.string().url(),\n contentType: z.string().optional(),\n durationSeconds: z.number().optional(),\n model: z.string().optional(),\n});\n\nexport type GeneratedVideo = z.infer<typeof generatedVideoSchema>;\n\nexport const audioSpeechBodySchema = z.object({\n text: z.string().min(1),\n voice: z.string().optional(),\n speed: z.number().positive().optional(),\n});\n\nexport type AudioSpeechBody = z.infer<typeof audioSpeechBodySchema>;\n\nexport const audioMusicBodySchema = z.object({\n prompt: z.string().min(1),\n durationSeconds: z.number().positive().optional(),\n});\n\nexport type AudioMusicBody = z.infer<typeof audioMusicBodySchema>;\n\nexport const audioTranscribeBodySchema = z.object({\n audio: z.string().url(),\n language: z.string().optional(),\n});\n\nexport type AudioTranscribeBody = z.infer<typeof audioTranscribeBodySchema>;\n\nexport const generatedAudioSchema = z.object({\n url: z.string().url(),\n contentType: z.string().optional(),\n durationSeconds: z.number().optional(),\n model: z.string().optional(),\n});\n\nexport type GeneratedAudio = z.infer<typeof generatedAudioSchema>;\n\nexport const transcriptionSegmentSchema = z.object({\n text: z.string(),\n startSecond: z.number(),\n endSecond: z.number(),\n});\n\nexport type TranscriptionSegment = z.infer<typeof transcriptionSegmentSchema>;\n\nexport const transcriptionSchema = z.object({\n text: z.string(),\n segments: z.array(transcriptionSegmentSchema).optional(),\n language: z.string().optional(),\n model: z.string().optional(),\n});\n\nexport type Transcription = z.infer<typeof transcriptionSchema>;\n\nconst textContentPartSchema = z.object({\n type: z.literal('text'),\n text: z.string(),\n});\n\nconst imageContentPartSchema = z.object({\n type: z.literal('image'),\n source: z.object({\n base64: z.string(),\n mediaType: z.string(),\n }),\n});\n\nconst messageContentSchema = z.union([\n z.string(),\n z.array(z.union([textContentPartSchema, imageContentPartSchema])),\n]);\n\nexport const textMessageSchema = z.object({\n role: z.enum(['user', 'assistant']),\n content: messageContentSchema,\n});\n\nexport type TextMessage = z.infer<typeof textMessageSchema>;\n\nexport const textBodySchema = z.object({\n model: z.string().optional(),\n messages: z.array(textMessageSchema).min(1),\n systemPrompt: z.string().optional(),\n temperature: z.number().min(0).max(2).optional(),\n maxTokens: z.number().int().positive().optional(),\n stopSequences: z.array(z.string()).optional(),\n providerOptions: z.record(z.string(), z.record(z.string(), z.any())).optional(),\n});\n\nexport type TextBody = z.infer<typeof textBodySchema>;\n\nexport const textGenerateBodySchema = textBodySchema.omit({\n model: true,\n stopSequences: true,\n providerOptions: true,\n});\n\nexport type TextGenerateBody = z.infer<typeof textGenerateBodySchema>;\n\nexport type TextStreamChunk = { text: string; };\n\nexport type TextStreamResult = { text: string; stopReason: string; };\n\nexport interface TextStream extends AsyncIterable<TextStreamChunk> {\n readonly text: string;\n readonly stopReason: string | null;\n collect(): Promise<TextStreamResult>;\n}\n","import { z } from 'zod';\n\nexport const dmxSendBodySchema = z.object({\n channel: z.number().int().min(1).max(512),\n value: z.number().int().min(0).max(255),\n});\n\nexport type DmxSendBody = z.infer<typeof dmxSendBodySchema>;\n\nexport const dmxSendResponseSchema = z.object({\n success: z.boolean(),\n});\n\nexport type DmxSendResponse = z.infer<typeof dmxSendResponseSchema>;\n","import { z } from 'zod';\n\nconst identifier = z.string().min(1);\nconst scalarValue = z.union([z.string(), z.number(), z.boolean(), z.null()]);\nconst recordValue = z.record(z.string(), z.unknown());\n\nexport const databaseGetAllBodySchema = z.object({\n table: identifier,\n limit: z.number().int().positive().max(1000).default(100),\n offset: z.number().int().nonnegative().optional(),\n});\n\nexport type DatabaseGetAllBody = z.infer<typeof databaseGetAllBodySchema>;\n\nexport const databaseGetAllResponseSchema = z.object({\n rows: z.array(recordValue),\n});\n\nexport type DatabaseGetAllResponse = z.infer<typeof databaseGetAllResponseSchema>;\n\nexport const databaseGetBodySchema = z.object({\n table: identifier,\n pk: identifier,\n value: scalarValue,\n});\n\nexport type DatabaseGetBody = z.infer<typeof databaseGetBodySchema>;\n\nexport const databaseGetResponseSchema = z.object({\n row: recordValue.nullable(),\n});\n\nexport type DatabaseGetResponse = z.infer<typeof databaseGetResponseSchema>;\n\nexport const databaseGetByBodySchema = z.object({\n table: identifier,\n column: identifier,\n value: scalarValue,\n limit: z.number().int().positive().max(1000).default(100),\n offset: z.number().int().nonnegative().optional(),\n});\n\nexport type DatabaseGetByBody = z.infer<typeof databaseGetByBodySchema>;\n\nexport const databaseGetByResponseSchema = z.object({\n rows: z.array(recordValue),\n});\n\nexport type DatabaseGetByResponse = z.infer<typeof databaseGetByResponseSchema>;\n\nexport const databaseCreateBodySchema = z.object({\n table: identifier,\n record: recordValue,\n});\n\nexport type DatabaseCreateBody = z.infer<typeof databaseCreateBodySchema>;\n\nexport const databaseCreateResponseSchema = z.object({\n row: recordValue,\n});\n\nexport type DatabaseCreateResponse = z.infer<typeof databaseCreateResponseSchema>;\n\nexport const databaseUpdateBodySchema = z.object({\n table: identifier,\n pk: identifier,\n value: scalarValue,\n changes: recordValue,\n});\n\nexport type DatabaseUpdateBody = z.infer<typeof databaseUpdateBodySchema>;\n\nexport const databaseUpdateResponseSchema = z.object({\n success: z.boolean(),\n});\n\nexport type DatabaseUpdateResponse = z.infer<typeof databaseUpdateResponseSchema>;\n\nexport const databaseDeleteBodySchema = z.object({\n table: identifier,\n pk: identifier,\n value: scalarValue,\n});\n\nexport type DatabaseDeleteBody = z.infer<typeof databaseDeleteBodySchema>;\n\nexport const databaseDeleteResponseSchema = z.object({\n success: z.boolean(),\n});\n\nexport type DatabaseDeleteResponse = z.infer<typeof databaseDeleteResponseSchema>;\n","import { z } from 'zod';\n\nexport const presignUploadBodySchema = z.object({\n bucket: z.string().min(1),\n path: z.string().min(1),\n contentType: z.string().min(1),\n expiresIn: z.number().int().positive().max(604800).optional(),\n});\n\nexport type PresignUploadBody = z.infer<typeof presignUploadBodySchema>;\n\nexport const presignUploadResponseSchema = z.object({\n url: z.string().url(),\n expiresAt: z.number(),\n});\n\nexport type PresignUploadResponse = z.infer<typeof presignUploadResponseSchema>;\n\nexport const presignDownloadBodySchema = z.object({\n bucket: z.string().min(1),\n path: z.string().min(1),\n expiresIn: z.number().int().positive().max(604800).optional(),\n});\n\nexport type PresignDownloadBody = z.infer<typeof presignDownloadBodySchema>;\n\nexport const presignDownloadResponseSchema = presignUploadResponseSchema;\n\nexport type PresignDownloadResponse = z.infer<typeof presignDownloadResponseSchema>;\n\nexport const listBodySchema = z.object({\n bucket: z.string().min(1),\n prefix: z.string().optional(),\n limit: z.number().int().positive().max(1000).optional(),\n});\n\nexport type ListBody = z.infer<typeof listBodySchema>;\n\nexport const storageObjectSchema = z.object({\n key: z.string(),\n size: z.number(),\n lastModified: z.string(),\n etag: z.string().optional(),\n});\n\nexport type StorageObject = z.infer<typeof storageObjectSchema>;\n\nexport const listResponseSchema = z.object({\n objects: z.array(storageObjectSchema),\n});\n\nexport type ListResponse = z.infer<typeof listResponseSchema>;\n\nexport const deleteBodySchema = z.object({\n bucket: z.string().min(1),\n paths: z.array(z.string().min(1)).min(1),\n});\n\nexport type DeleteBody = z.infer<typeof deleteBodySchema>;\n\nexport const deleteResponseSchema = z.object({\n success: z.boolean(),\n deleted: z.array(z.string()),\n});\n\nexport type DeleteResponse = z.infer<typeof deleteResponseSchema>;\n","export interface Time {\n hours: number;\n minutes: number;\n seconds: number;\n}\n\nexport type Vector3 = [number, number, number];\n\nexport type Side = 'top' | 'right' | 'bottom' | 'left';\n\nexport enum BedrockStyle {\n ANIMATED_FILM = '3D_ANIMATED_FAMILY_FILM',\n FLAT_VECTOR_ILLUSTRATION = 'FLAT_VECTOR_ILLUSTRATION',\n GRAPHIC_NOVEL_ILLUSTRATION = 'GRAPHIC_NOVEL_ILLUSTRATION',\n MAXIMALISM = 'MAXIMALISM',\n MIDCENTURY_RETRO = 'MIDCENTURY_RETRO',\n PHOTOREALISM = 'PHOTOREALISM',\n SOFT_DIGITAL_PAINTING = 'SOFT_DIGITAL_PAINTING',\n}\n\nexport interface Size {\n width: number;\n height: number;\n}\n\nexport interface GradientStop {\n color: string;\n percent: number;\n}\n\nexport interface ModelPayload {\n name: string;\n description: string;\n icon: string;\n}\n\nexport interface CommonMetadata {\n name: string;\n description?: string;\n image?: File;\n tags?: string[];\n icon?: string;\n}\n\ntype SuccessResult<T> = readonly[T, null];\n\ntype ErrorResult<E = Error> = readonly[null, E];\n\nexport type Result<T, E = Error> = SuccessResult<T> | ErrorResult<E>;\n\nexport interface CodeLanguageMetadata {\n icon: string;\n name: string;\n}\n\nexport type Orientation = 'horizontal' | 'vertical';\n\nexport type Alignment = 'left' | 'center' | 'right';\n\nexport type Breakpoint = 'sm' | 'md' | 'lg' | 'xl' | '2xl';\n\nexport type ClassGroups = Record<string, (string | Record<string, string[]>)[]>;\n","export type WebsocketChannelsTypes = Record<string, unknown>;\n\nexport type WebsocketListener<T = unknown> = (data: T) => void;\n\nexport enum WebsocketClientEvent {\n IDENTIFY = 'IDENTIFY',\n SUBSCRIBE = 'SUBSCRIBE',\n UNSUBSCRIBE = 'UNSUBSCRIBE',\n MESSAGE = 'MESSAGE',\n STATE = 'STATE',\n}\n\nexport type WebsocketClientMessage =\n | { type: WebsocketClientEvent.IDENTIFY; id: string; app: string; }\n | { type: WebsocketClientEvent.SUBSCRIBE; channels: string[]; }\n | { type: WebsocketClientEvent.UNSUBSCRIBE; channels: string[]; }\n | { type: WebsocketClientEvent.MESSAGE; channel: string; data?: unknown; }\n | { type: WebsocketClientEvent.STATE; channel: string; data?: unknown; };\n\nexport enum WebSocketHubEvent {\n MESSAGE = 'MESSAGE',\n STATE = 'STATE',\n}\n\nexport interface WebsocketHubMessage {\n type: WebSocketHubEvent;\n channel: string;\n data?: unknown;\n}\n\nexport interface WebsocketsHubConfig {\n port: number;\n}\n\nexport interface WebsocketConnectionConfig {\n app?: string;\n url?: string;\n id?: string;\n reconnect?: boolean;\n reconnectInterval?: number;\n maxReconnectInterval?: number;\n}\n\nexport const WEBSOCKET_HUB_CHANNEL = '_hub';\n\nexport interface WebsocketHubStatusClient {\n id: string;\n app: string;\n channels: string[];\n}\n\nexport enum WebsocketLogEvent {\n CONNECT = 'CONNECT',\n DISCONNECT = 'DISCONNECT',\n SUBSCRIBE = 'SUBSCRIBE',\n UNSUBSCRIBE = 'UNSUBSCRIBE',\n MESSAGE = 'MESSAGE',\n STATE = 'STATE',\n}\n\nexport interface WebsocketHubLogEntry {\n timestamp: number;\n sender: string;\n app: string;\n type: WebsocketLogEvent;\n channel: string;\n data?: unknown;\n}\n\nexport interface WebsocketHubStatus {\n clients: WebsocketHubStatusClient[];\n state: Record<string, unknown>;\n logs: WebsocketHubLogEntry[];\n}\n","export const VIDEOS = {\n pcLogo3D: 'https://cdn.digo-labs.com/videos/pc-logo-3d.mp4',\n};\n","import { TYPO_CLASS_GROUPS } from './constants';\nimport { Result } from './types/common-types';\n\nimport clsx, { ClassValue } from 'clsx';\nimport { extendTailwindMerge } from 'tailwind-merge';\n\nexport async function tryCatch<T, E = Error>(promise: Promise<T>): Promise<Result<T, E>> {\n try {\n const data = await promise;\n return [data, null] as const;\n } catch (error) {\n return [null, error as E] as const;\n }\n}\n\nconst twMerge = extendTailwindMerge({ extend: { classGroups: TYPO_CLASS_GROUPS } });\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","export const CITIES: string[] = [\n 'New York',\n 'Tokyo',\n 'Paris',\n 'London',\n 'Barcelona',\n 'Berlin',\n 'Amsterdam',\n 'Sydney',\n 'São Paulo',\n 'Mumbai',\n 'Dubai',\n 'Singapore',\n 'Hong Kong',\n 'Rome',\n 'Vienna',\n 'Prague',\n 'Lisbon',\n 'Stockholm',\n 'Seoul',\n 'Istanbul',\n 'Buenos Aires',\n 'Cairo',\n 'Mexico City',\n 'Oslo',\n 'Zürich',\n];\n\nexport const EXCERPTS: string[] = [\n 'The quick brown fox jumps over the lazy dog.',\n 'Pack my box with five dozen liquor jugs.',\n 'How vexingly quick daft zebras jump.',\n 'Sphinx of black quartz, judge my vow.',\n 'The five boxing wizards jump quickly.',\n 'Bright vixens jump dozing fowl quack.',\n 'Jackdaws love my big sphinx of quartz.',\n 'Sixty zippers were quickly picked from the woven jute bag.',\n 'We promptly judged antique ivory buckles for the next prize.',\n 'A mad boxer shot a quick, gloved jab to the jaw of his dizzy opponent.',\n];\n","export const AUTH_PROJECTS = {\n monorepo: {\n trustedOrigins: [\n 'http://localhost:*',\n 'http://127.0.0.1:*',\n 'https://*.digo-labs.com',\n ],\n },\n} as const;\n\nexport type AuthProject = keyof typeof AUTH_PROJECTS;\n\nexport type AuthTier = 'public' | 'user' | 'org' | 'admin';\n\nexport type SignInProvider = 'google';\n\nexport interface AccessTiers {\n read: AuthTier;\n write: AuthTier;\n}\n\nexport type AccessOperation = keyof AccessTiers;\n\nexport interface TableAccessRule extends AccessTiers {\n owner?: string;\n}\n\nexport const ORG_EMAIL_DOMAIN = 'productionclub.net';\n\nconst ADMIN_ROLE = 'admin';\n\nconst TIER_RANK: Record<AuthTier, number> = {\n public: 0,\n user: 1,\n org: 2,\n admin: 3,\n};\n\nexport interface AuthTierUser {\n email: string;\n emailVerified: boolean;\n role?: string | null;\n}\n\nexport class AuthTierHelpers {\n public static deriveTier(user: AuthTierUser | null | undefined): AuthTier {\n if (!user) return 'public';\n if (this.hasAdminRole(user.role)) return 'admin';\n if (this.isOrgUser(user)) return 'org';\n\n return 'user';\n }\n\n public static meetsTier(tier: AuthTier, required: AuthTier): boolean {\n if (!this.isTier(tier) || !this.isTier(required)) return false;\n\n return TIER_RANK[tier] >= TIER_RANK[required];\n }\n\n public static isTier(value: unknown): value is AuthTier {\n return typeof value === 'string' && Object.hasOwn(TIER_RANK, value);\n }\n\n private static hasAdminRole(role: string | null | undefined): boolean {\n if (!role) return false;\n\n return role.split(',').includes(ADMIN_ROLE);\n }\n\n private static isOrgUser(user: AuthTierUser): boolean {\n if (!user.emailVerified) return false;\n\n return user.email.toLowerCase().endsWith(`@${ORG_EMAIL_DOMAIN}`);\n }\n}\n"],"mappings":";;;;;;;;AIqBA,KJrBA,IAAa,IAAb,MAA8B;CAC5B,OAAe;CAEf,OAAc,kBAAkB,GAAoB;EAClD,IAAI,KAAK,YAAY,KAAA,KAAa,KAAK,YAAY,GACjD,MAAU,MACR,sCAAsC,KAAK,QAAQ,2BAA2B,EAAK,yEAErF;EAEF,KAAK,UAAU;CACjB;CAEA,OAAc,oBAA4B;EACxC,IAAI,KAAK,YAAY,KAAA,GACnB,MAAU,MACR,iJAEF;EAEF,OAAO,KAAK;CACd;CAEA,OAAc,eAAqB;EACjC,KAAK,UAAU,KAAA;CACjB;CAEA,OAAc,gBAAgB,GAAsB;EAClD,IAAM,IAAY,EAAK,YAAY,CAAC,CAAC,QAAQ,MAAM,GAAG;EAEtD,IAAI,CAAC,oBAAoB,KAAK,CAAS,GACrC,MAAU,MAAM,sCAAsC,EAAK,iBAAiB,EAAU,GAAG;EAG3F,OAAO;CACT;AACF,GC7Ba,IAAb,MAAa,EAAc;CACzB,OAAc,gBAAgB,GAAc;EAC1C,UAAU,UAAU,UAAU,CAAI,CAAC,CAChC,WAAW,CAEZ,CAAC,CAAC,CACD,YAAY;GACX,QAAQ,MAAM,gBAAgB;EAChC,CAAC;CACL;CAEA,aAAoB,iBAAiB,GAA4C;EAC/E,IAAM,IAAc,EAAO,EAAM,MAAM;EAQvC,OAAO;GACM,QAHa,EAAO,OADD,MAFP,EAAiB,IAFlB,KAAK,CAAC,CAAW,GAAG,EAAE,MAAM,EAAM,UAAU,CAE1B,CAAI,EAAA,CAEH,YAAY,CAI1C;GACX,WAAW;EACb;CACF;CAEA,OAAc,iBAAiB,GAAuB;EAMpD,OAAO;GAJL,OAAS,KAAK,MAAM,IAAU,IAAI;GAClC,SAAS,KAAK,MAAO,IAAU,OAAQ,EAAE;GACzC,SAAS,IAAU;EAEd;CACT;CAEA,aAAoB,uBAAwC;EAC1D,OAAO,MAAM,UAAU,UAAU,SAAS;CAC5C;CAEA,OAAc,aAAa,GAA6B;EAEtD,OADoB,EAAO,CACpB;CACT;CAEA,OAAc,iBAAiB,GAAa,GAAqB;EAE/D,OADsB,KAAK,MAAM,KAAK,OAAO,KAAK,IAAM,IAAM,EAAE,IAAI;CAEtE;CAEA,OAAc,0BAA0B,GAAkC;EAExE,OADe,EAAO,CACf;CACT;CAEA,OAAc,SAAS,GAAa;EAClC,IAAM,IAAI,EAAI,MAAM,2CAA2C;EAE/D,OADK,IACE;GACL,GAAG,SAAS,EAAE,IAAI,EAAE;GACpB,GAAG,SAAS,EAAE,IAAI,EAAE;GACpB,GAAG,SAAS,EAAE,IAAI,EAAE;EACtB,IALe;GAAE,GAAG;GAAG,GAAG;GAAG,GAAG;EAAE;CAMpC;CAEA,OAAc,cAAc,GAAuC;EAMjE,OAAO,IALK,EAAI,KAAK,MAAU;GAC7B,IAAM,IAAW,EAAM,SAAS,EAAE;GAClC,OAAO,EAAS,WAAW,IAAI,MAAM,IAAW;EAClD,CAAC,CAAC,CAAC,KAAK,EAEG;CACb;CAEA,OAAc,cAAc,GAAuC;EACjE,IAAM,IAAS,4CAA4C,KAAK,CAAG;EAInE,OAFK,IAEE;GACL,SAAS,EAAO,IAAI,EAAE,IAAI;GAC1B,SAAS,EAAO,IAAI,EAAE,IAAI;GAC1B,SAAS,EAAO,IAAI,EAAE,IAAI;EAC5B,IANoB;GAAC;GAAG;GAAG;EAAC;CAO9B;CAEA,OAAc,eAAe,GAAkB;EAC7C,OAAO,iBAAiB,SAAS,eAAe,CAAC,CAAC,iBAAiB,CAAQ;CAC7E;CAEA,OAAc,eAAe,GAAc,GAAsB;EAC/D,SAAS,gBAAgB,MAAM,YAAY,GAAM,GAAG,EAAQ,aAAa,GAAG;CAC9E;CAEA,OAAc,KAAK,GAAe,GAAa,GAAmB;EAChE,OAAO,KAAS,IAAM,KAAS;CACjC;CAEA,OAAc,UAAU,GAAiB,GAAe,GAAqB;EAC3E,OAAO,EAAM,KAAK,GAAW,MAAU,KAAa,EAAI,KAAS,KAAa,CAAC;CACjF;CAEA,OAAc,MAAM,GAAe,GAAa,GAAa;EAC3D,OAAO,KAAK,IAAI,KAAK,IAAI,GAAO,CAAG,GAAG,CAAG;CAC3C;CAEA,aAAoB,YAAY,GAAa,GAAe;EAE1D,IAAM,IAAW,OAAM,MADA,MAAM,CAAG,EAAA,CACA,KAAK,GAC/B,IAAW,IAAI,gBAAgB,CAAI,GACnC,IAAW,SAAS,cAAc,GAAG;EAI3C,AAHA,EAAK,OAAY,GACjB,EAAK,WAAY,KAAQ,YACzB,EAAK,MAAM,GACX,IAAI,gBAAgB,CAAG;CACzB;CAEA,aAAoB,eAAe,GAAa,GAAkC;EAEhF,IAAM,IAAY,OAAM,MADA,MAAM,CAAG,EAAA,CACA,KAAK;EAGtC,OAAO,IAFe,KAAK,CAAC,CAAI,GAAG,KAAsB,YAAY,EAAE,MAAM,EAAK,KAAK,CAEhF;CACT;CAEA,OAAc,eAAuB;EAOnC,OANI,OAAO,aACF,OAAO,WAAW,IAKpB,GAFa,KAAK,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,UAAU,GAAG,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,UAAU,GAAG,EAAE;CAG5H;CAEA,aAAoB,uBAAuB,GAAa,GAAkD;EACxG,IAAM,IAAY,MAAM,KAAK,eAAe,GAAK,CAAQ;EAEzD,OAAO,KAAK,wBAAwB,CAAS;CAC/C;CAEA,aAAoB,wBAAwB,GAA2C;EACrF,IAAM,CAAC,GAAa,KAAS,MAAM,EAAS,EAAK,YAAY,CAAC;EAQ9D,OANI,IAAc,CAAC,MAAM,CAAK,IAMvB,CAAC;GADkC,QAHxB,EAAc,0BAA0B,CAGhB;GAAmB,WAF3C,EAAK;EAGf,GAAW,IAAI;CACzB;CAEA,OAAc,wBAAwB,GAAkC;EACtE,IAAM,IAAc,EAAO,EAAa,MAAM,GACxC,IAAc,IAAI,KAAK,CAAC,CAAW,GAAG,EAAE,MAAM,EAAa,UAAU,CAAC,GACtE,IAAc,EAAa,UAAU,MAAM,GAAG,CAAC,CAAC,MAAM;EAG5D,OAAO,IAFiB,KAAK,CAAC,CAAI,GAAG,gBAAgB,KAAa,EAAE,MAAM,EAAa,UAAU,CAE1F;CACT;CAEA,OAAc,WAAW,GAAc;EACrC,SAAS,QAAQ,GAAG;CACtB;CAEA,OAAc,iBAAiB,GAAiB,GAAsC;EACpF,IAAM,IAAQ,SAAS,cAAc,OAAO;EAa5C,AAZA,EAAM,OAAQ,QAEd,EAAM,SAAS,GAEf,EAAM,YAAY,MAAiB;GACjC,IAAM,IAAS,EAAM;GACrB,IAAI,EAAO,SAAS,EAAO,MAAM,SAAS,GAAG;IAC3C,IAAM,IAAO,EAAO,MAAM;IAC1B,EAAS,CAAI;GACf;EACF,GAEA,EAAM,MAAM;CACd;CAEA,OAAc,sBAAsB,GAAwB;EAE1D,OADuB,EAAO,QAAQ,CAAC,CAAC,SAAS,GAAG,GAC7C;CACT;CAEA,gBAAuB,GAAqB,IAAmB,GAAW;EAExE,QADc,IAAc,IAAA,CAAM,QAAQ,CACnC;CACT;CAEA,aAAoB,aAAa,GAA4B;EAC3D,OAAO,IAAI,SAAe,GAAS,MAAW;GAC5C,IAAM,IAAU,IAAI,MAAM;GAG1B,AAFA,EAAM,eAAgB,EAAQ,GAC9B,EAAM,gBAAgB,EAAO,gBAAI,MAAM,mBAAmB,GAAK,CAAC,GAChE,EAAM,MAAU;EAClB,CAAC;CACH;CAEA,aAAoB,cAAc,GAA+B;EAC/D,IAAM,IAAW,EAAK,KAAI,MAAO,EAAc,aAAa,CAAG,CAAC;EAChE,MAAM,QAAQ,IAAI,CAAQ;CAC5B;CAEA,OAAc,iBAAiB,GAAwB;EAGrD,OAAO,CAFgB,GAAG,IAAI,IAAI,EAAK,MAAM,EAAE,CAAC,CAEzC;CACT;CAEA,aAAoB,cAAc,GAAgB,GAAmB,IAAmB,KAAK,IAAkB,IAA4B;EACzI,OAAO,IAAI,SAAS,MAAY;GAC9B,IAAM,IAAO,IAAI,MAAM;GAiBvB,AAhBA,EAAI,eAAe;IACjB,IAAM,IAAU,SAAS,cAAc,QAAQ,GACzC,IAAU,KAAK,IAAI,IAAW,EAAI,OAAO,IAAW,EAAI,QAAQ,CAAC;IAKvE,AAJA,EAAO,QAAS,EAAI,QAAQ,GAC5B,EAAO,SAAS,EAAI,SAAS,GAG7B,EADmB,WAAW,IAC9B,CAAA,CAAI,UAAU,GAAK,GAAG,GAAG,EAAO,OAAO,EAAO,MAAM;IAEpD,IAAM,IAAmB,EAAO,UAAU,cAAc,CAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAE5E,EAAQ;KACN,QAAW;KACX,WAAW;IACb,CAAC;GACH,GACA,EAAI,MAAM,QAAQ,EAAU,UAAU;EACxC,CAAC;CACH;CAEA,aAAoB,mBAAmB,GAAa;EAClD,IAAM,IAAW,MAAM,MAAM,CAAG;EAEhC,IAAI,CAAC,EAAS,IAAI,MAAU,MAAM,gCAAgC,EAAS,YAAY;EAIvF,OAAO,MAFe,EAAS,KAAK;CAGtC;CAEA,OAAc,eAAe,GAA6B;EAIxD,OAFsB,EADA,EAAS,CACW,GAAM,EAAE,WAAW,GAAK,CAE3D;CACT;CAEA,OAAc,kBAAkB,GAAgB,GAAuB;EACrE,IAAM,IAAQ,EAAO,MAAM,gBAAgB,GACvC,IAAU,GACV,IAAU;EAEd,AAAI,MACF,IAAO,EAAM,IACT,EAAM,OACR,IAAS,SAAS,EAAM,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI;EAI3C,IAAM,IAAY,EAAK,YAAY,GAC/B,IAAc,GAAG,EAAU,GAAG;EAElC,OAAO,EAAI,MAAK,MAAM,EAAG,YAAY,MAAM,CAAK,IAE9C,AADA,KACA,IAAQ,GAAG,EAAU,GAAG;EAG1B,OAAO,EAAM,YAAY;CAC3B;CAEA,OAAc,eAAe,GAAkC;EACxD,KAEL,EAAU,SAAS;GACjB,KAAU,EAAU;GACpB,UAAU;EACZ,CAAC;CACH;AACF,GChSa,IAAc,6BAEd,IAAe,cAEf,KAAoB,kBAEpB,KAA6B,sBAE7B,KAAc;CAAC;CAAW;CAAW;CAAW;AAAS,GAEzD,KAAS,0BAET,KAAkB;CAC7B,KAAc,GAAG,EAAY;CAC7B,cAAc;CACd,OAAc;AAChB,GAEa,KAAqB,aAErB,KAA0C;CACrD,IAAO;CACP,IAAO;CACP,IAAO;CACP,IAAO;CACP,OAAO;AACT,GAEa,IAAiC;CAC5C,aAAe,CAAC,EAAE,MAAM;EAAC;EAAK;EAAK;EAAK;EAAK;EAAK;EAAK;EAAK;EAAK;EAAK;EAAM;EAAM;EAAM;EAAM;EAAM;EAAM;EAAM;EAAM;CAAI,EAAE,CAAC;CAC7H,eAAe,CAAC,EAAE,eAAe;EAAC;EAAO;EAAO;EAAO;EAAO;EAAO;EAAO;EAAO;EAAO;CAAK,EAAE,CAAC;CAClG,eAAe;EAAC;EAAe;EAAc;EAAa;CAAW;AACvE,GAEa,KAA4B;CACvC;EACE,MAAa;EACb,aAAa;EACb,MAAa;CACf;CACA;EACE,MAAa;EACb,aAAa;EACb,MAAa;CACf;CACA;EACE,MAAa;EACb,aAAa;EACb,MAAa;CACf;AACF,GAEa,KAAqD;CAChE,YAAY;EAAE,MAAM;EAAc,MAAM;CAAa;CACrD,YAAY;EAAE,MAAM;EAAc,MAAM;CAAa;CACrD,KAAY;EAAE,MAAM;EAAc,MAAM;CAAM;CAC9C,KAAY;EAAE,MAAM;EAAc,MAAM;CAAM;CAC9C,QAAY;EAAE,MAAM;EAAU,MAAM;CAAS;CAC7C,MAAY;EAAE,MAAM;EAAQ,MAAM;CAAO;CACzC,IAAY;EAAE,MAAM;EAAQ,MAAM;CAAK;CACvC,KAAY;EAAE,MAAM;EAAQ,MAAM;CAAM;CACxC,MAAY;EAAE,MAAM;EAAY,MAAM;CAAO;CAC7C,IAAY;EAAE,MAAM;EAAY,MAAM;CAAQ;CAC9C,OAAY;EAAE,MAAM;EAAY,MAAM;CAAQ;CAC9C,MAAY;EAAE,MAAM;EAAQ,MAAM;CAAO;CACzC,KAAY;EAAE,MAAM;EAAQ,MAAM;CAAM;CACxC,MAAY;EAAE,MAAM;EAAQ,MAAM;CAAO;CACzC,UAAY;EAAE,MAAM;EAAQ,MAAM;CAAW;CAC7C,MAAY;EAAE,MAAM;EAAQ,MAAM;CAAO;CACzC,KAAY;EAAE,MAAM;EAAQ,MAAM;CAAM;CACxC,MAAY;EAAE,MAAM;EAAQ,MAAM;CAAO;AAC3C,GCzEK,IAAL,yBAAA,GAAA;QACE,EAAA,aAAA,cACA,EAAA,UAAA,WACA,EAAA,SAAA,UACA,EAAA,QAAA,SACA,EAAA,QAAA,SACA,EAAA,KAAA,MACA,EAAA,SAAA,UACA,EAAA,cAAA,eACA,EAAA,QAAA,SACA,EAAA,OAAA,QACA,EAAA,gBAAA,iBACA,EAAA,SAAA,UACA,EAAA,KAAA,MACA,EAAA,UAAA,WACA,EAAA,OAAA;AACF,EAhBK,KAAA,CAAA,CAgBL,GAaM,IAAgB;CACpB,SAAoB;EAAE,UAAA;EAAmC,MAAM;CAA0B;CACzF,WAAoB;EAAE,UAAA;EAAmC,MAAM;CAA4B;CAC3F,WAAoB;EAAE,UAAA;EAAmC,MAAM;CAA4B;CAC3F,YAAoB;EAAE,UAAA;EAAmC,MAAM;CAA6B;CAC5F,aAAoB;EAAE,UAAA;EAAmC,MAAM;CAA+B;CAC9F,cAAoB;EAAE,UAAA;EAAmC,MAAM;CAAgC;CAC/F,eAAoB;EAAE,UAAA;EAAmC,MAAM;CAAiC;CAChG,gBAAoB;EAAE,UAAA;EAAmC,MAAM;CAAkC;CACjG,gBAAoB;EAAE,UAAA;EAAmC,MAAM;CAAkC;CACjG,aAAoB;EAAE,UAAA;EAAmC,MAAM;CAA+B;CAC9F,eAAoB;EAAE,UAAA;EAAmC,MAAM;CAAiC;CAChG,iBAAoB;EAAE,UAAA;EAAmC,MAAM;CAAmC;CAClG,iBAAoB;EAAE,UAAA;EAAmC,MAAM;CAAmC;CAClG,kBAAoB;EAAE,UAAA;EAAmC,MAAM;CAAoC;CACnG,WAAoB;EAAE,UAAA;EAAmC,MAAM;CAA4B;CAC3F,aAAoB;EAAE,UAAA;EAAmC,MAAM;CAA8B;CAC7F,aAAoB;EAAE,UAAA;EAAmC,MAAM;CAA8B;CAC7F,cAAoB;EAAE,UAAA;EAAmC,MAAM;CAA+B;CAC9F,YAAoB;EAAE,UAAA;EAAmC,MAAM;CAA6B;CAC5F,cAAoB;EAAE,UAAA;EAAmC,MAAM;CAA+B;CAC9F,cAAoB;EAAE,UAAA;EAAmC,MAAM;CAA+B;CAC9F,eAAoB;EAAE,UAAA;EAAmC,MAAM;CAAgC;CAC/F,gBAAoB;EAAE,UAAA;EAAmC,MAAM;CAAkC;CACjG,gBAAoB;EAAE,UAAA;EAAmC,MAAM;CAAkC;CACjG,iBAAoB;EAAE,UAAA;EAAmC,MAAM;CAAmC;CAClG,gBAAoB;EAAE,UAAA;EAAmC,MAAM;CAAkC;CACjG,cAAoB;EAAE,UAAA;EAAmC,MAAM;CAAgC;CAC/F,iBAAoB;EAAE,UAAA;EAAmC,MAAM;CAAmC;CAClG,eAAoB;EAAE,UAAA;EAAmC,MAAM;CAAiC;CAChG,cAAoB;EAAE,UAAA;EAAmC,MAAM;CAAgC;CAC/F,eAAoB;EAAE,UAAA;EAAmC,MAAM;CAAiC;CAChG,MAAoB;EAAE,UAAA;EAAmC,MAAM;CAAuB;CACtF,SAAoB;EAAE,UAAA;EAAmC,MAAM;CAAyB;CACxF,MAAoB;EAAE,UAAA;EAAmC,MAAM;CAAsB;CACrF,QAAoB;EAAE,UAAA;EAAmC,MAAM;CAAwB;CACvF,OAAoB;EAAE,UAAA;EAAmC,MAAM;CAAuB;CACtF,QAAoB;EAAE,UAAA;EAAmC,MAAM;CAAwB;CACvF,cAAoB;EAAE,UAAA;EAAmC,MAAM;CAA+B;CAC9F,MAAoB;EAAE,UAAA;EAAmC,MAAM;CAAsB;CACrF,QAAoB;EAAE,UAAA;EAAmC,MAAM;CAA+C;CAC9G,UAAoB;EAAE,UAAA;EAAmC,MAAM;CAA+C;CAC9G,WAAoB;EAAE,UAAA;EAAmC,MAAM;CAA8C;CAC7G,UAAoB;EAAE,UAAA;EAAmC,MAAM;CAA6C;CAC5G,WAAoB;EAAE,UAAA;EAAmC,MAAM;CAA+C;CAC9G,QAAoB;EAAE,UAAA;EAAmC,MAAM;CAAoB;CACnF,QAAoB;EAAE,UAAA;EAAmC,MAAM;CAAwB;CACvF,OAAoB;EAAE,UAAA;EAAmC,MAAM;CAAwB;CACvF,QAAoB;EAAE,UAAA;EAAmC,MAAM;CAAyB;CACxF,YAAoB;EAAE,UAAA;EAAmC,MAAM;CAA6B;CAC5F,KAAoB;EAAE,UAAA;EAAgC,MAAM;CAAsB;CAClF,QAAoB;EAAE,UAAA;EAAgC,MAAM;CAAuB;CACnF,OAAoB;EAAE,UAAA;EAAgC,MAAM;CAAmB;CAC/E,OAAoB;EAAE,UAAA;EAAgC,MAAM;CAAuB;CACnF,YAAoB;EAAE,UAAA;EAAgC,MAAM;CAA6B;CACzF,oBAAoB;EAAE,UAAA;EAAgC,MAAM;CAA6D;CACzH,QAAoB;EAAE,UAAA;EAAgC,MAAM;CAAwB;CACpF,QAAoB;EAAE,UAAA;EAAgC,MAAM;CAAyB;CACrF,SAAoB;EAAE,UAAA;EAAgC,MAAM;CAA0B;CACtF,MAAoB;EAAE,UAAA;EAAgC,MAAM;CAAwB;CACpF,YAAoB;EAAE,UAAA;EAAgC,MAAM;CAA6B;CACzF,QAAoB;EAAE,UAAA;EAAgC,MAAM;CAAuB;CACnF,OAAoB;EAAE,UAAA;EAAgC,MAAM;CAAyB;CACrF,MAAoB;EAAE,UAAA;EAAgC,MAAM;CAAsB;CAClF,OAAoB;EAAE,UAAA;EAAgC,MAAM;CAAiC;CAC7F,KAAoB;EAAE,UAAA;EAAgC,MAAM;CAA0B;CACtF,MAAoB;EAAE,UAAA;EAAgC,MAAM;CAAsB;CAClF,UAAoB;EAAE,UAAA;EAAgC,MAAM;CAA0B;CACtF,QAAoB;EAAE,UAAA;EAAgC,MAAM;CAAwB;CACpF,SAAoB;EAAE,UAAA;EAAgC,MAAM;CAA4B;CACxF,YAAoB;EAAE,UAAA;EAAgC,MAAM;CAA6B;CACzF,UAAoB;EAAE,UAAA;EAAgC,MAAM;CAA2B;CACvF,WAAoB;EAAE,UAAA;EAAgC,MAAM;CAA4B;CACxF,MAAoB;EAAE,UAAA;EAAgC,MAAM;CAAwC;CACpG,MAAoB;EAAE,UAAA;EAAgC,MAAM;CAAwB;CACpF,MAAoB;EAAE,UAAA;EAAgC,MAAM;CAAwB;CACpF,MAAoB;EAAE,UAAA;EAAgC,MAAM;CAAsB;CAClF,OAAoB;EAAE,UAAA;EAAgC,MAAM;CAAuB;CACnF,QAAoB;EAAE,UAAA;EAAgC,MAAM;CAAyB;CACrF,QAAoB;EAAE,UAAA;EAAgC,MAAM;CAA2B;CACvF,MAAoB;EAAE,UAAA;EAAgC,MAAM;CAAsB;CAClF,OAAoB;EAAE,UAAA;EAAgC,MAAM;CAAwB;CACpF,QAAoB;EAAE,UAAA;EAAgC,MAAM;CAAwB;CACpF,QAAoB;EAAE,UAAA;EAAgC,MAAM;CAAwB;CACpF,YAAoB;EAAE,UAAA;EAAgC,MAAM;CAA6B;CACzF,MAAoB;EAAE,UAAA;EAAgC,MAAM;CAA+B;CAC3F,SAAoB;EAAE,UAAA;EAAgC,MAAM;CAAsC;CAClG,UAAoB;EAAE,UAAA;EAAgC,MAAM;CAAwC;CACpG,MAAoB;EAAE,UAAA;EAAgC,MAAM;CAAsB;CAClF,UAAoB;EAAE,UAAA;EAAgC,MAAM;CAA2B;CACvF,QAAoB;EAAE,UAAA;EAAgC,MAAM;CAA2B;CACvF,OAAoB;EAAE,UAAA;EAAgC,MAAM;CAAyB;CACrF,WAAoB;EAAE,UAAA;EAAgC,MAAM;CAAwB;CACpF,MAAoB;EAAE,UAAA;EAAgC,MAAM;CAAsB;CAClF,YAAoB;EAAE,UAAA;EAAgC,MAAM;CAA6B;CACzF,eAAoB;EAAE,UAAA;EAAgC,MAAM;CAAgC;CAC5F,SAAoB;EAAE,UAAA;EAAgC,MAAM;CAAyB;CACrF,aAAoB;EAAE,UAAA;EAAgC,MAAM;CAA8B;CAC1F,SAAoB;EAAE,UAAA;EAA+B,MAAM;CAA8B;CACzF,aAAoB;EAAE,UAAA;EAA+B,MAAM;CAAkC;CAC7F,MAAoB;EAAE,UAAA;EAA+B,MAAM;CAAsB;CACjF,SAAoB;EAAE,UAAA;EAA+B,MAAM;CAAgC;CAC3F,OAAoB;EAAE,UAAA;EAA+B,MAAM;CAA0B;CACrF,MAAoB;EAAE,UAAA;EAA+B,MAAM;CAA6B;CACxF,SAAoB;EAAE,UAAA;EAA+B,MAAM;CAAuC;CAClG,aAAoB;EAAE,UAAA;EAA+B,MAAM;CAAmC;CAC9F,SAAoB;EAAE,UAAA;EAA+B,MAAM;CAAuC;CAClG,cAAoB;EAAE,UAAA;EAA+B,MAAM;CAA+B;CAC1F,UAAoB;EAAE,UAAA;EAA+B,MAAM;CAA6B;CACxF,YAAoB;EAAE,UAAA;EAA+B,MAAM;CAAqB;CAChF,eAAoB;EAAE,UAAA;EAA+B,MAAM;CAAyB;CACpF,QAAoB;EAAE,UAAA;EAA+B,MAAM;CAA4B;CACvF,aAAoB;EAAE,UAAA;EAA+B,MAAM;CAA8B;CACzF,aAAoB;EAAE,UAAA;EAA+B,MAAM;CAA8B;CACzF,QAAoB;EAAE,UAAA;EAA+B,MAAM;CAAwB;CACnF,OAAoB;EAAE,UAAA;EAA+B,MAAM;CAAuB;CAClF,MAAoB;EAAE,UAAA;EAA8B,MAAM;CAAsB;CAChF,OAAoB;EAAE,UAAA;EAA8B,MAAM;CAAuB;CACjF,MAAoB;EAAE,UAAA;EAA8B,MAAM;CAAwB;CAClF,YAAoB;EAAE,UAAA;EAA8B,MAAM;CAA6B;CACvF,UAAoB;EAAE,UAAA;EAA8B,MAAM;CAA2B;CACrF,aAAoB;EAAE,UAAA;EAA8B,MAAM;CAA8B;CACxF,UAAoB;EAAE,UAAA;EAA8B,MAAM;CAA8B;CACxF,cAAoB;EAAE,UAAA;EAA8B,MAAM;CAA2B;CACrF,aAAoB;EAAE,UAAA;EAA8B,MAAM;CAA8B;CACxF,YAAoB;EAAE,UAAA;EAA8B,MAAM;CAAwB;CAClF,QAAoB;EAAE,UAAA;EAA8B,MAAM;CAAwB;CAClF,MAAoB;EAAE,UAAA;EAA8B,MAAM;CAAwB;CAClF,SAAoB;EAAE,UAAA;EAA8B,MAAM;CAAyB;CACnF,UAAoB;EAAE,UAAA;EAA8B,MAAM;CAA0B;CACpF,YAAoB;EAAE,UAAA;EAA8B,MAAM;CAA0B;CACpF,WAAoB;EAAE,UAAA;EAA8B,MAAM;CAA4B;CACtF,OAAoB;EAAE,UAAA;EAA8B,MAAM;CAAuB;CACjF,WAAoB;EAAE,UAAA;EAA8B,MAAM;CAA4B;CACtF,OAAoB;EAAE,UAAA;EAA8B,MAAM;CAAuB;CACjF,UAAoB;EAAE,UAAA;EAA8B,MAAM;CAA2B;CACrF,QAAoB;EAAE,UAAA;EAA8B,MAAM;CAAwB;CAClF,KAAoB;EAAE,UAAA;EAA8B,MAAM;CAAqB;CAC/E,QAAoB;EAAE,UAAA;EAA8B,MAAM;CAAyB;CACnF,QAAoB;EAAE,UAAA;EAA8B,MAAM;CAAwB;CAClF,OAAoB;EAAE,UAAA;EAA8B,MAAM;CAAuB;CACjF,QAAoB;EAAE,UAAA;EAA8B,MAAM;CAAyB;CACnF,SAAoB;EAAE,UAAA;EAA8B,MAAM;CAAyB;CACnF,UAAoB;EAAE,UAAA;EAA8B,MAAM;CAA0B;CACpF,YAAoB;EAAE,UAAA;EAA8B,MAAM;CAA6B;CACvF,aAAoB;EAAE,UAAA;EAA8B,MAAM;CAA8B;CACxF,SAAoB;EAAE,UAAA;EAA8B,MAAM;CAA0B;CACpF,QAAoB;EAAE,UAAA;EAA8B,MAAM;CAAwB;CAClF,MAAoB;EAAE,UAAA;EAA8B,MAAM;CAAsB;CAChF,UAAoB;EAAE,UAAA;EAA8B,MAAM;CAA2B;CACrF,SAAoB;EAAE,UAAA;EAA8B,MAAM;CAA2B;CACrF,SAAoB;EAAE,UAAA;EAA8B,MAAM;CAA8B;CACxF,aAAoB;EAAE,UAAA;EAA8B,MAAM;CAA8B;CACxF,YAAoB;EAAE,UAAA;EAA8B,MAAM;CAA6B;CACvF,QAAoB;EAAE,UAAA;EAA8B,MAAM;CAAwB;CAClF,YAAoB;EAAE,UAAA;EAA8B,MAAM;CAA6B;CACvF,cAAoB;EAAE,UAAA;EAA8B,MAAM;CAA+B;CACzF,YAAoB;EAAE,UAAA;EAA8B,MAAM;CAA6B;CACvF,aAAoB;EAAE,UAAA;EAA8B,MAAM;CAA8B;CACxF,WAAoB;EAAE,UAAA;EAA8B,MAAM;CAA8B;CACxF,eAAoB;EAAE,UAAA;EAA8B,MAAM;CAAgC;CAC1F,UAAoB;EAAE,UAAA;EAA8B,MAAM;CAA2B;CACrF,MAAoB;EAAE,UAAA;EAA8B,MAAM;CAAsB;CAChF,WAAoB;EAAE,UAAA;EAA8B,MAAM;CAA6B;CACvF,aAAoB;EAAE,UAAA;EAA8B,MAAM;CAAwB;CAClF,UAAoB;EAAE,UAAA;EAA8B,MAAM;CAA2B;CACrF,SAAoB;EAAE,UAAA;EAA8B,MAAM;CAAyB;CACnF,UAAoB;EAAE,UAAA;EAA8B,MAAM;CAA0B;CACpF,OAAoB;EAAE,UAAA;EAA8B,MAAM;CAA6B;CACvF,WAAoB;EAAE,UAAA;EAA8B,MAAM;CAA2B;CACrF,YAAoB;EAAE,UAAA;EAA8B,MAAM;CAAsB;CAChF,QAAoB;EAAE,UAAA;EAA8B,MAAM;CAAyB;CACnF,eAAoB;EAAE,UAAA;EAA8B,MAAM;CAAgC;CAC1F,OAAoB;EAAE,UAAA;EAA8B,MAAM;CAAuB;CACjF,SAAoB;EAAE,UAAA;EAA8B,MAAM;CAA0B;CACpF,WAAoB;EAAE,UAAA;EAA2B,MAAM;CAA4B;CACnF,YAAoB;EAAE,UAAA;EAA2B,MAAM;CAA6B;CACpF,UAAoB;EAAE,UAAA;EAA2B,MAAM;CAA2B;CAClF,aAAoB;EAAE,UAAA;EAA2B,MAAM;CAA8B;CACrF,SAAoB;EAAE,UAAA;EAA2B,MAAM;CAA4B;CACnF,gBAAoB;EAAE,UAAA;EAA2B,MAAM;CAA0B;CACjF,cAAoB;EAAE,UAAA;EAA2B,MAAM;CAAmC;CAC1F,YAAoB;EAAE,UAAA;EAA2B,MAAM;CAAiC;CACxF,eAAoB;EAAE,UAAA;EAA2B,MAAM;CAA+B;CACtF,UAAoB;EAAE,UAAA;EAA2B,MAAM;CAA0B;CACjF,YAAoB;EAAE,UAAA;EAA2B,MAAM;CAA0B;CACjF,aAAoB;EAAE,UAAA;EAA2B,MAAM;CAAuC;CAC9F,YAAoB;EAAE,UAAA;EAA2B,MAAM;CAA6B;CACpF,UAAoB;EAAE,UAAA;EAA2B,MAAM;CAAsB;CAC7E,aAAoB;EAAE,UAAA;EAA2B,MAAM;CAA8B;CACrF,UAAoB;EAAE,UAAA;EAA2B,MAAM;CAA0B;CACjF,MAAoB;EAAE,UAAA;EAA2B,MAAM;CAAoC;CAC3F,iBAAoB;EAAE,UAAA;EAA2B,MAAM;CAAkC;CACzF,eAAoB;EAAE,UAAA;EAA2B,MAAM;CAAsB;CAC7E,SAAoB;EAAE,UAAA;EAA2B,MAAM;CAA0B;CACjF,SAAoB;EAAE,UAAA;EAA2B,MAAM;CAA0B;CACjF,QAAoB;EAAE,UAAA;EAA2B,MAAM;CAAsB;CAC7E,OAAoB;EAAE,UAAA;EAA2B,MAAM;CAAuB;CAC9E,WAAoB;EAAE,UAAA;EAA2B,MAAM;CAA4B;CACnF,UAAoB;EAAE,UAAA;EAA2B,MAAM;CAA2B;CAClF,WAAoB;EAAE,UAAA;EAA2B,MAAM;CAA4B;CACnF,OAAoB;EAAE,UAAA;EAA2B,MAAM;CAAwB;CAC/E,SAAoB;EAAE,UAAA;EAA2B,MAAM;CAA0B;CACjF,UAAoB;EAAE,UAAA;EAA2B,MAAM;CAA0B;CACjF,gBAAoB;EAAE,UAAA;EAA2B,MAAM;CAAmD;CAC1G,iBAAoB;EAAE,UAAA;EAA2B,MAAM;CAAyB;CAChF,YAAoB;EAAE,UAAA;EAA2B,MAAM;CAA0B;CACjF,gBAAoB;EAAE,UAAA;EAA2B,MAAM;CAA0B;CACjF,WAAoB;EAAE,UAAA;EAA2B,MAAM;CAAkC;CACzF,SAAoB;EAAE,UAAA;EAA2B,MAAM;CAA2C;CAClG,MAAoB;EAAE,UAAA;EAA2B,MAAM;CAA0B;CACjF,kBAAoB;EAAE,UAAA;EAA2B,MAAM;CAAoC;CAC3F,UAAoB;EAAE,UAAA;EAA2B,MAAM;CAA8B;CACrF,WAAoB;EAAE,UAAA;EAA2B,MAAM;CAA6B;CACpF,WAAoB;EAAE,UAAA;EAA2B,MAAM;CAA4B;CACnF,gBAAoB;EAAE,UAAA;EAA2B,MAAM;CAAiC;CACxF,YAAoB;EAAE,UAAA;EAA2B,MAAM;CAAwB;CAC/E,eAAoB;EAAE,UAAA;EAA2B,MAAM;CAA6B;CACpF,QAAoB;EAAE,UAAA;EAA2B,MAAM;CAAwB;CAC/E,MAAoB;EAAE,UAAA;EAA2B,MAAM;CAAiC;CACxF,iBAAoB;EAAE,UAAA;EAA2B,MAAM;CAAmC;CAC1F,QAAoB;EAAE,UAAA;EAA2B,MAAM;CAAwB;CAC/E,UAAoB;EAAE,UAAA;EAA2B,MAAM;CAA2B;CAClF,mBAAoB;EAAE,UAAA;EAA2B,MAAM;CAAqC;CAC5F,YAAoB;EAAE,UAAA;EAA2B,MAAM;CAA6B;CACpF,oBAAoB;EAAE,UAAA;EAA2B,MAAM;CAAsC;CAC7F,UAAoB;EAAE,UAAA;EAA2B,MAAM;CAA2B;CAClF,cAAoB;EAAE,UAAA;EAA2B,MAAM;CAA+B;CACtF,cAAoB;EAAE,UAAA;EAA2B,MAAM;CAA+B;CACtF,OAAoB;EAAE,UAAA;EAA2B,MAAM;CAAuB;CAC9E,cAAoB;EAAE,UAAA;EAA2B,MAAM;CAA+B;CACtF,iBAAoB;EAAE,UAAA;EAA2B,MAAM;CAAmC;CAC1F,SAAoB;EAAE,UAAA;EAA2B,MAAM;CAA0B;CACjF,YAAoB;EAAE,UAAA;EAA2B,MAAM;CAAuB;CAC9E,mBAAoB;EAAE,UAAA;EAA2B,MAAM;CAAoC;CAC3F,YAAoB;EAAE,UAAA;EAA2B,MAAM;CAAwC;CAC/F,YAAoB;EAAE,UAAA;EAA2B,MAAM;CAAuB;CAC9E,WAAoB;EAAE,UAAA;EAA2B,MAAM;CAAsC;CAC7F,mBAAoB;EAAE,UAAA;EAA2B,MAAM;CAAoC;CAC3F,aAAoB;EAAE,UAAA;EAA2B,MAAM;CAA8B;CACrF,YAAoB;EAAE,UAAA;EAA2B,MAAM;CAA6B;CACpF,WAAoB;EAAE,UAAA;EAA2B,MAAM;CAA2B;CAClF,gBAAoB;EAAE,UAAA;EAA2B,MAAM;CAAiC;CACxF,QAAoB;EAAE,UAAA;EAA+B,MAAM;CAA4B;CACvF,YAAoB;EAAE,UAAA;EAA+B,MAAM;CAA8B;CACzF,QAAoB;EAAE,UAAA;EAA+B,MAAM;CAAqB;CAChF,OAAoB;EAAE,UAAA;EAA+B,MAAM;CAAoB;CAC/E,QAAoB;EAAE,UAAA;EAA+B,MAAM;CAA8B;CACzF,WAAoB;EAAE,UAAA;EAA+B,MAAM;CAAiC;CAC5F,QAAoB;EAAE,UAAA;EAA+B,MAAM;CAAoC;CAC/F,SAAoB;EAAE,UAAA;EAA+B,MAAM;CAA+B;CAC1F,OAAoB;EAAE,UAAA;EAA+B,MAAM;CAA6B;CACxF,OAAoB;EAAE,UAAA;EAA+B,MAAM;CAA6B;CACxF,UAAoB;EAAE,UAAA;EAA+B,MAAM;CAA0B;CACrF,SAAoB;EAAE,UAAA;EAA+B,MAAM;CAAyB;CACpF,KAAoB;EAAE,UAAA;EAA+B,MAAM;CAAqB;CAChF,YAAoB;EAAE,UAAA;EAAoC,MAAM;CAAkC;CAClG,YAAoB;EAAE,UAAA;EAAoC,MAAM;CAAkC;CAClG,QAAoB;EAAE,UAAA;EAAoC,MAAM;CAA8B;CAC9F,OAAoB;EAAE,UAAA;EAAoC,MAAM;CAA6B;CAC7F,aAAoB;EAAE,UAAA;EAAoC,MAAM;CAAmC;CACnG,MAAoB;EAAE,UAAA;EAAoC,MAAM;CAAwB;CACxF,MAAoB;EAAE,UAAA;EAAoC,MAAM;CAA6B;CAC7F,KAAoB;EAAE,UAAA;EAAoC,MAAM;CAA4B;CAC5F,UAAoB;EAAE,UAAA;EAAoC,MAAM;CAA0B;CAC1F,KAAoB;EAAE,UAAA;EAAoC,MAAM;CAAyB;CACzF,UAAoB;EAAE,UAAA;EAAoC,MAAM;CAA0B;CAC1F,SAAoB;EAAE,UAAA;EAAoC,MAAM;CAAyB;CACzF,cAAoB;EAAE,UAAA;EAAoC,MAAM;CAAiC;CACjG,QAAoB;EAAE,UAAA;EAA8B,MAAM;CAA+B;CACzF,aAAoB;EAAE,UAAA;EAA8B,MAAM;CAAqC;CAC/F,MAAoB;EAAE,UAAA;EAA8B,MAAM;CAAsB;CAChF,KAAoB;EAAE,UAAA;EAA8B,MAAM;CAAqB;CAC/E,OAAoB;EAAE,UAAA;EAA8B,MAAM;CAA4B;CACtF,QAAoB;EAAE,UAAA;EAA8B,MAAM;CAAwB;CAClF,UAAoB;EAAE,UAAA;EAA8B,MAAM;CAAyB;CACnF,YAAoB;EAAE,UAAA;EAA8B,MAAM;CAAuB;CACjF,QAAoB;EAAE,UAAA;EAA8B,MAAM;CAAwB;CAClF,MAAoB;EAAE,UAAA;EAA8B,MAAM;CAAsB;CAChF,MAAoB;EAAE,UAAA;EAA8B,MAAM;CAAsB;CAChF,UAAoB;EAAE,UAAA;EAA8B,MAAM;CAA0B;CACpF,aAAoB;EAAE,UAAA;EAA8B,MAAM;CAA8B;CACxF,eAAoB;EAAE,UAAA;EAA8B,MAAM;CAAiC;CAC3F,OAAoB;EAAE,UAAA;EAA6B,MAAM;CAAuB;CAChF,UAAoB;EAAE,UAAA;EAA6B,MAAM;CAA2B;CACpF,iBAAoB;EAAE,UAAA;EAA6B,MAAM;CAAmC;CAC5F,UAAoB;EAAE,UAAA;EAA6B,MAAM;CAA2B;CACpF,WAAoB;EAAE,UAAA;EAA6B,MAAM;CAA4B;CACrF,eAAoB;EAAE,UAAA;EAA6B,MAAM;CAA0B;CACnF,YAAoB;EAAE,UAAA;EAA6B,MAAM;CAA6B;CACtF,cAAoB;EAAE,UAAA;EAA6B,MAAM;CAA+B;CACxF,WAAoB;EAAE,UAAA;EAA6B,MAAM;CAAwC;CACjG,OAAoB;EAAE,UAAA;EAA6B,MAAM;CAA8C;CACvG,UAAoB;EAAE,UAAA;EAA6B,MAAM;CAA0B;CACnF,KAAoB;EAAE,UAAA;EAA6B,MAAM;CAAqB;CAC9E,OAAoB;EAAE,UAAA;EAA6B,MAAM;CAAyC;CAClG,MAAoB;EAAE,UAAA;EAA6B,MAAM;CAAsB;CAC/E,SAAoB;EAAE,UAAA;EAA6B,MAAM;CAAyB;CAClF,QAAoB;EAAE,UAAA;EAA6B,MAAM;CAAyB;CAClF,MAAoB;EAAE,UAAA;EAAsC,MAAM;CAAgC;CAClG,YAAoB;EAAE,UAAA;EAAsC,MAAM;CAAgC;CAClG,eAAoB;EAAE,UAAA;EAAsC,MAAM;CAAqC;CACvG,SAAoB;EAAE,UAAA;EAAsC,MAAM;CAAqC;CACvG,OAAoB;EAAE,UAAA;EAAsC,MAAM;CAAsB;CACxF,MAAoB;EAAE,UAAA;EAAsC,MAAM;CAAuB;CACzF,SAAoB;EAAE,UAAA;EAAsC,MAAM;CAA2B;CAC7F,WAAoB;EAAE,UAAA;EAAsC,MAAM;CAA6B;CAC/F,mBAAoB;EAAE,UAAA;EAAsC,MAAM;CAAqC;CACvG,eAAoB;EAAE,UAAA;EAAsC,MAAM;CAAgC;CAClG,gBAAoB;EAAE,UAAA;EAAsC,MAAM;CAAiC;CACnG,SAAoB;EAAE,UAAA;EAA+B,MAAM;CAAyB;CACpF,aAAoB;EAAE,UAAA;EAA+B,MAAM;CAA8B;CACzF,aAAoB;EAAE,UAAA;EAA+B,MAAM;CAA8B;CACzF,aAAoB;EAAE,UAAA;EAA+B,MAAM;CAAgD;CAC3G,OAAoB;EAAE,UAAA;EAA+B,MAAM;CAAiC;CAC5F,SAAoB;EAAE,UAAA;EAA+B,MAAM;CAA2C;CACtG,UAAoB;EAAE,UAAA;EAA+B,MAAM;CAAoC;CAC/F,UAAoB;EAAE,UAAA;EAA+B,MAAM;CAA0B;CACrF,YAAoB;EAAE,UAAA;EAA+B,MAAM;CAAqB;CAChF,QAAoB;EAAE,UAAA;EAA+B,MAAM;CAAwB;CACnF,WAAoB;EAAE,UAAA;EAA+B,MAAM;CAAuB;CAClF,QAAoB;EAAE,UAAA;EAA+B,MAAM;CAAqC;CAChG,eAAoB;EAAE,UAAA;EAA+B,MAAM;CAAkD;CAC7G,eAAoB;EAAE,UAAA;EAA+B,MAAM;CAAyD;CACpH,QAAoB;EAAE,UAAA;EAA+B,MAAM;CAAwB;CACnF,YAAoB;EAAE,UAAA;EAA+B,MAAM;CAA6B;CACxF,UAAoB;EAAE,UAAA;EAA+B,MAAM;CAA0B;CACrF,WAAoB;EAAE,UAAA;EAA+B,MAAM;CAA4B;CACvF,QAAoB;EAAE,UAAA;EAA+B,MAAM;CAAwB;CACnF,OAAoB;EAAE,UAAA;EAA2B,MAAM;CAAqB;CAC5E,UAAoB;EAAE,UAAA;EAA2B,MAAM;CAA0B;CACjF,SAAoB;EAAE,UAAA;EAA2B,MAAM;CAAyB;CAChF,OAAoB;EAAE,UAAA;EAA2B,MAAM;CAAuB;CAC9E,OAAoB;EAAE,UAAA;EAA2B,MAAM;CAA+B;CACtF,YAAoB;EAAE,UAAA;EAA2B,MAAM;CAA+B;CACtF,YAAoB;EAAE,UAAA;EAA2B,MAAM;CAA8C;CACrG,kBAAoB;EAAE,UAAA;EAA2B,MAAM;CAAoC;CAC3F,KAAoB;EAAE,UAAA;EAAgC,MAAM;CAA6C;CACzG,KAAoB;EAAE,UAAA;EAAgC,MAAM;CAA6C;CACzG,OAAoB;EAAE,UAAA;EAAgC,MAAM;CAA6C;CACzG,MAAoB;EAAE,UAAA;EAAgC,MAAM;CAA6C;CACzG,MAAoB;EAAE,UAAA;EAAgC,MAAM;CAA6C;CACzG,KAAoB;EAAE,UAAA;EAAgC,MAAM;CAA6C;CACzG,OAAoB;EAAE,UAAA;EAAgC,MAAM;CAA6C;CACzG,OAAoB;EAAE,UAAA;EAAgC,MAAM;CAAqC;CACjG,MAAoB;EAAE,UAAA;EAAgC,MAAM;CAA6C;CACzG,UAAoB;EAAE,UAAA;EAA6B,MAAM;CAAuB;CAChF,MAAoB;EAAE,UAAA;EAA6B,MAAM;CAAsB;CAC/E,UAAoB;EAAE,UAAA;EAA6B,MAAM;CAA0B;CACnF,MAAoB;EAAE,UAAA;EAA6B,MAAM;CAAsB;CAC/E,cAAoB;EAAE,UAAA;EAA6B,MAAM;CAAqC;CAC9F,YAAoB;EAAE,UAAA;EAA6B,MAAM;CAA6B;CACtF,cAAoB;EAAE,UAAA;EAA6B,MAAM;CAA+B;CACxF,OAAoB;EAAE,UAAA;EAA6B,MAAM;CAAuB;CAChF,OAAoB;EAAE,UAAA;EAA6B,MAAM;CAAuB;CAChF,YAAoB;EAAE,UAAA;EAA6B,MAAM;CAA6B;CACtF,SAAoB;EAAE,UAAA;EAA6B,MAAM;CAAyB;CAClF,UAAoB;EAAE,UAAA;EAA6B,MAAM;CAAyB;CAClF,UAAoB;EAAE,UAAA;EAA6B,MAAM;CAA0B;CACnF,OAAoB;EAAE,UAAA;EAA6B,MAAM;CAAuB;CAChF,aAAoB;EAAE,UAAA;EAA6B,MAAM;CAAyB;CAClF,UAAoB;EAAE,UAAA;EAA6B,MAAM;CAAuB;CAChF,OAAoB;EAAE,UAAA;EAA6B,MAAM;CAAuB;CAChF,WAAoB;EAAE,UAAA;EAA6B,MAAM;CAAuB;CAChF,YAAoB;EAAE,UAAA;EAA6B,MAAM;CAA6B;CACtF,WAAoB;EAAE,UAAA;EAA6B,MAAM;CAA2B;CACpF,MAAoB;EAAE,UAAA;EAA6B,MAAM;CAAqB;CAC9E,OAAoB;EAAE,UAAA;EAA6B,MAAM;CAAuB;CAChF,aAAoB;EAAE,UAAA;EAA6B,MAAM;CAA8B;CACvF,eAAoB;EAAE,UAAA;EAA6B,MAAM;CAAgC;CACzF,WAAoB;EAAE,UAAA;EAA6B,MAAM;CAAqB;CAC9E,UAAoB;EAAE,UAAA;EAA6B,MAAM;CAAsB;CAC/E,UAAoB;EAAE,UAAA;EAA6B,MAAM;CAA2B;CACpF,QAAoB;EAAE,UAAA;EAA6B,MAAM;CAAyB;CAClF,OAAoB;EAAE,UAAA;EAA6B,MAAM;CAAuB;CAChF,QAAoB;EAAE,UAAA;EAA6B,MAAM;CAAwB;CACjF,aAAoB;EAAE,UAAA;EAA6B,MAAM;CAA8B;CACvF,WAAoB;EAAE,UAAA;EAA6B,MAAM;CAA4B;CACrF,KAAoB;EAAE,UAAA;EAA6B,MAAM;CAAqB;CAC9E,UAAoB;EAAE,UAAA;EAA6B,MAAM;CAA2B;CACpF,aAAoB;EAAE,UAAA;EAA6B,MAAM;CAA6B;CACtF,KAAoB;EAAE,UAAA;EAA6B,MAAM;CAAqB;CAC9E,WAAoB;EAAE,UAAA;EAA6B,MAAM;CAA2B;CACpF,OAAoB;EAAE,UAAA;EAA6B,MAAM;CAAuB;CAChF,WAAoB;EAAE,UAAA;EAA6B,MAAM;CAA4B;CACrF,KAAoB;EAAE,UAAA;EAA6B,MAAM;CAAwB;CACjF,SAAoB;EAAE,UAAA;EAA6B,MAAM;CAAyB;CAClF,KAAoB;EAAE,UAAA;EAA6B,MAAM;CAAqB;CAC9E,SAAoB;EAAE,UAAA;EAA6B,MAAM;CAAyB;CAClF,YAAoB;EAAE,UAAA;EAA6B,MAAM;CAA4B;CACrF,QAAoB;EAAE,UAAA;EAA6B,MAAM;CAAwB;CACjF,mBAAoB;EAAE,UAAA;EAA6B,MAAM;CAAoC;CAC7F,QAAoB;EAAE,UAAA;EAA6B,MAAM;CAAwB;CACjF,WAAoB;EAAE,UAAA;EAA6B,MAAM;CAA4B;CACrF,KAAoB;EAAE,UAAA;EAA6B,MAAM;CAAqB;CAC9E,QAAoB;EAAE,UAAA;EAA6B,MAAM;CAAwB;CACjF,WAAoB;EAAE,UAAA;EAA6B,MAAM;CAA2B;CACpF,YAAoB;EAAE,UAAA;EAA6B,MAAM;CAA4B;CACrF,WAAoB;EAAE,UAAA;EAA6B,MAAM;CAA4B;CACrF,KAAoB;EAAE,UAAA;EAA6B,MAAM;CAAqB;CAC9E,SAAoB;EAAE,UAAA;EAA6B,MAAM;CAAyB;CAClF,UAAoB;EAAE,UAAA;EAA6B,MAAM;CAA2B;CACpF,YAAoB;EAAE,UAAA;EAA6B,MAAM;CAA6B;CACtF,UAAoB;EAAE,UAAA;EAA6B,MAAM;CAA2B;CACpF,eAAoB;EAAE,UAAA;EAA6B,MAAM;CAA+B;CACxF,UAAoB;EAAE,UAAA;EAA6B,MAAM;CAA0B;CACnF,WAAoB;EAAE,UAAA;EAA6B,MAAM;CAA4B;CACrF,eAAoB;EAAE,UAAA;EAA6B,MAAM;CAAiC;CAC1F,WAAoB;EAAE,UAAA;EAA6B,MAAM;CAAuC;CAChG,UAAoB;EAAE,UAAA;EAA6B,MAAM;CAA2B;CACpF,gBAAoB;EAAE,UAAA;EAA6B,MAAM;CAAkC;CAC3F,WAAoB;EAAE,UAAA;EAA6B,MAAM;CAA2B;CACpF,QAAoB;EAAE,UAAA;EAA6B,MAAM;CAAwB;CACjF,OAAoB;EAAE,UAAA;EAA6B,MAAM;CAAuB;CAChF,OAAoB;EAAE,UAAA;EAA6B,MAAM;CAAuB;CAChF,WAAoB;EAAE,UAAA;EAA6B,MAAM;CAA4B;CACrF,MAAoB;EAAE,UAAA;EAA6B,MAAM;CAAsB;CAC/E,QAAoB;EAAE,UAAA;EAA6B,MAAM;CAAwB;CACjF,eAAoB;EAAE,UAAA;EAA6B,MAAM;CAA+B;CACxF,WAAoB;EAAE,UAAA;EAA6B,MAAM;CAA2B;CACpF,SAAoB;EAAE,UAAA;EAA6B,MAAM;CAAyB;CAClF,MAAoB;EAAE,UAAA;EAA6B,MAAM;CAAsB;CAC/E,eAAoB;EAAE,UAAA;EAA6B,MAAM;CAAgC;CACzF,WAAoB;EAAE,UAAA;EAA6B,MAAM;CAA4B;CACrF,aAAoB;EAAE,UAAA;EAA6B,MAAM;CAA8B;CACvF,YAAoB;EAAE,UAAA;EAA6B,MAAM;CAA6B;CACtF,SAAoB;EAAE,UAAA;EAA6B,MAAM;CAA0B;CACnF,IAAoB;EAAE,UAAA;EAA6B,MAAM;CAAoB;CAC7E,WAAoB;EAAE,UAAA;EAA6B,MAAM;CAA4B;CACrF,OAAoB;EAAE,UAAA;EAA6B,MAAM;CAAuB;CAChF,SAAoB;EAAE,UAAA;EAA6B,MAAM;CAA0B;CACnF,cAAoB;EAAE,UAAA;EAA6B,MAAM;CAAgC;CACzF,WAAoB;EAAE,UAAA;EAA6B,MAAM;CAA4B;CACrF,aAAoB;EAAE,UAAA;EAA6B,MAAM;CAA8B;AAEzF,GAEa,KAAb,MAAyB;CACvB,OAAc,QAAQ,GAAsB;EAC1C,OAAO,KAAQ,IAAgB,EAAc,EAAqB,CAAC,OAAO;CAC5E;CAEA,OAAc,YAAY,GAAkC;EAC1D,OAAO,EAAc,EAAK,CAAC;CAC7B;CAEA,OAAc,gBAAgC;EAC5C,IAAM,oBAAiB,IAAI,IAAkB;EAE7C,KAAK,IAAM,KAAQ,OAAO,OAAO,CAAa,GAC5C,EAAe,IAAI,EAAK,QAAQ;EAGlC,OAAO,OAAO,OAAO,CAAY,CAAC,CAAC,QAAO,MAAO,EAAe,IAAI,CAAG,CAAC;CAC1E;CAEA,OAAc,gBAAmD;EAC/D,IAAM,IAAU,CAAC;EAEjB,KAAK,IAAM,KAAY,OAAO,OAAO,CAAY,GAC/C,EAAQ,KAAY,CAAC;EAGvB,KAAK,IAAM,CAAC,GAAI,MAAS,OAAO,QAAQ,CAAa,GACnD,EAAQ,EAAK,SAAS,CAAC,KAAK;GAChB;GACV,UAAU,EAAK;GACf,MAAU,EAAK;EACjB,CAAC;EAGH,OAAO;CACT;AACF,msgCCveM,KAAiB,iCAEjB,oBAAmB,IAAI,IAAoB,GAE7C,IAEI,IAAW,GAAe,KAAK,CAAQ,OAAO,OAAM;CAC1D,IAAM,IAAe,UAAU,EAAS,MAClC,IAAe,EAAS;CAC9B,EAAiB,IAAI,EAAW,YAAY,GAAG,CAAY;AAC7D;AAQA,KANA,IAAM,KAAkB,8BAElB,IAA8B,CAAC,GAEjC,IAEI,IAAY,GAAgB,KAAK,CAAQ,OAAO,OAAM;CAC5D,IAAM,IAAQ,EAAU,IAElB,IAAc,EAAM,MAAM,0BAA0B,GACpD,IAAc,EAAM,MAAM,0BAA0B,GACpD,IAAc,EAAM,MAAM,qBAAqB,GAC/C,IAAc,EAAM,MAAM,0DAA0D;CAE1F,IAAI,CAAC,KAAe,CAAC,KAAe,CAAC,KAAc,CAAC,GAAU;CAE9D,IAAM,IAAY,EAAY,IACxB,IAAY,EAAY,EAAE,CAAC,KAAK,GAChC,IAAY,EAAW,IACvB,IAAY,EAAS,IACrB,IAAY,EAAS,OAAO,aAAa,QAAQ,EAAS,OAAO,aAAa,QAAQ,SAEtF,IAAY,EAAU,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,GAC7C,IAAY,KAAK,IAAI,GAAG,CAAO,GAC/B,IAAY,KAAK,IAAI,GAAG,CAAO;CAErC,EAAY,KAAK;EACF;EACA;EACA;EACA;EACA;EACb,UAAa,UAAU;EACV;EACb,aAAa,EAAiB,IAAI,EAAO,YAAY,CAAC,KAAK;CAC7D,CAAC;AACH;AAEA,EAAY,MAAM,GAAG,MAAM,EAAE,OAAO,cAAc,EAAE,MAAM,CAAC;AAE3D,IAAa,KAA6B,GCnE7B,IAAS;CACpB,UAAiB;CACjB,aAAiB;CACjB,aAAiB;CACjB,UAAiB;CACjB,iBAAiB;CACjB,SAAiB;CACjB,UAAiB;CACjB,cAAiB;CACjB,WAAiB;CACjB,SAAiB;CACjB,SAAiB;CACjB,SAAiB;CACjB,QAAiB;CACjB,SAAiB;CACjB,QAAiB;CACjB,SAAiB;CAEjB,qBAAqB;CACrB,qBAAqB;CACrB,mBAAqB;AACvB,GCrBa,IAAS,EACpB,SAAS,+CACX,GCFa,IAAb,MAA0B;CACxB,OAAc,SAAY,GAAa,GAAgB;EACrD,aAAa,QAAQ,GAAK,KAAK,UAAU,CAAK,CAAC;CACjD;CAEA,OAAc,UAAa,GAAa,GAAoB;EAC1D,IAAM,IAAc,aAAa,QAAQ,CAAG;EAE5C,IAAI,CAAC,KAAe,MAAgB,aAClC,OAAO;EAGT,IAAI;GACF,OAAO,KAAK,MAAM,CAAW;EAC/B,QAAQ;GACN,OAAO;EACT;CACF;AACF,GClBa,IAAb,MAA4B;CAC1B,OAAc,SAAY,GAAa,GAAgB;EACrD,eAAe,QAAQ,GAAK,KAAK,UAAU,CAAK,CAAC;CACnD;CAEA,OAAc,UAAa,GAAa,GAAoB;EAC1D,IAAM,IAAc,eAAe,QAAQ,CAAG;EAE9C,IAAI,CAAC,KAAe,MAAgB,aAClC,OAAO;EAGT,IAAI;GACF,OAAO,KAAK,MAAM,CAAW;EAC/B,QAAQ;GACN,OAAO;EACT;CACF;AACF,GClBa,IAAS;CACpB,aAAwB;CACxB,SAAwB;CACxB,sBAAwB;CACxB,wBAAwB;CACxB,aAAwB;CACxB,eAAwB;CACxB,gBAAwB;CACxB,aAAwB;CACxB,eAAwB;CACxB,gBAAwB;CACxB,gBAAwB;CACxB,gBAAwB;CACxB,gBAAwB;AAC1B,GCPa,IAAb,MAA2B;CACzB,OAAc,SAAS,GAAc;EACnC,OAAO,CAAC,GAAG,CAAI,CAAC,CAAC,QACd,GAAM,MAAO,KAAK,KAAK,IAAI,CAAI,IAAI,EAAE,WAAW,CAAC,IAAK,GACvD,CACF;CACF;CAEA,OAAc,SAAS,GAAsB;EAC3C,OAAO,EAAS,SAAS,CAAI;CAC/B;CAEA,OAAc,iBAAiB,GAAsB;EACnD,OAAO,EAAS,iBAAiB,CAAI;CACvC;CAEA,OAAc,qBAAqB,GAA0B;EAC3D,OAAO,EAAS,qBAAqB,CAAI;CAC3C;CAEA,OAAc,WAAW,GAAsB;EAC7C,OAAO,EAAS,WAAW,CAAI;CACjC;CAEA,OAAc,qBAAqB,GAAsB;EACvD,OAAO,EAAS,qBAAqB,CAAI;CAC3C;CAEA,OAAc,yBAAyB,GAA0B;EAC/D,OAAO,EAAS,yBAAyB,CAAI;CAC/C;CAEA,OAAc,aAAa,GAA6B;EACtD,OAAO,EAAmB,CAAI;CAChC;CAEA,OAAc,aAAa,GAAsB;EAC/C,OAAO,EAAmB,CAAM;CAClC;CAEA,OAAc,eAAe,GAAoC;EAE/D,OADK,IACE,EAAO,OAAO,CAAC,CAAC,CAAC,YAAY,IADhB;CAEtB;AACF,GCnDa,IAAU;CACrB,MAAsB;CACtB,SAAsB;CACtB,MAAsB;CACtB,OAAsB;CACtB,SAAsB;CACtB,SAAsB;CACtB,UAAsB;CACtB,YAAsB;CACtB,OAAsB;CACtB,OAAsB;CACtB,SAAsB;CACtB,MAAsB;CACtB,UAAsB;CACtB,cAAsB;CACtB,YAAsB;CACtB,SAAsB;CACtB,OAAsB;CACtB,UAAsB;CACtB,SAAsB;CACtB,MAAsB;CACtB,QAAsB;CACtB,UAAsB;CACtB,SAAsB;CACtB,eAAsB;CACtB,mBAAsB;CACtB,OAAsB;CACtB,QAAsB;CACtB,QAAsB;CACtB,OAAsB;CACtB,aAAsB;CACtB,SAAsB;CACtB,OAAsB;CACtB,SAAsB;CACtB,QAAsB;CACtB,aAAsB;CACtB,SAAsB;CACtB,cAAsB;CACtB,WAAsB;CACtB,WAAsB;CACtB,SAAsB;CACtB,cAAsB;CACtB,cAAsB;CACtB,QAAsB;CACtB,MAAsB;CACtB,cAAsB;CACtB,cAAsB;CACtB,aAAsB;CACtB,MAAsB;CACtB,iBAAsB;CACtB,kBAAsB;CACtB,gBAAsB;CACtB,aAAsB;CACtB,aAAsB;CACtB,YAAsB;CACtB,MAAsB;CACtB,eAAsB;CACtB,YAAsB;CACtB,OAAsB;CACtB,gBAAsB;CACtB,cAAsB;CACtB,aAAsB;CACtB,IAAsB;CACtB,cAAsB;CACtB,oBAAsB;CACtB,gBAAsB;CACtB,sBAAsB;CACtB,cAAsB;CACtB,SAAsB;CACtB,cAAsB;CACtB,KAAsB;CACtB,KAAsB;CACtB,MAAsB;CACtB,MAAsB;CACtB,UAAsB;CACtB,OAAsB;CACtB,MAAsB;CACtB,OAAsB;CACtB,MAAsB;CACtB,UAAsB;CACtB,MAAsB;CACtB,QAAsB;CACtB,SAAsB;CACtB,OAAsB;CACtB,WAAsB;CACtB,UAAsB;CACtB,YAAsB;CACtB,OAAsB;AACxB,GCtFa,IAAoB,EAAE,OAAO;CACxC,WAAW,EAAE,OAAO;CACpB,QAAW,EAAE,OAAO;AACtB,CAAC,GAIY,IAAqB,EAAE,OAAO;CACzC,WAAW,EAAE,OAAO;CACpB,QAAW,EAAE,OAAO;AACtB,CAAC,GAIY,IAAsB,EAChC,OAAO,CAAC,CACR,MAAM,WAAW,CAAC,CAClB,WAAU,MAAK,CAA0B,GAI/B,IAAoB,EAC9B,OAAO,CAAC,CACR,MAAM,WAAW,CAAC,CAClB,WAAU,MAAK,CAA0B,GCd/B,IAA0B,EAAE,OAAO;CAC9C,QAAa,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;CAC7B,aAAa,EAAkB,SAAS;CACxC,MAAa,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS;AACzC,CAAC,GAIY,IAAsB,EAAE,OAAO;CAC1C,QAAU,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;CAC1B,OAAU,EAAE,OAAO,CAAC,CAAC,IAAI;CACzB,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;AAC9C,CAAC,GAIY,IAAyB,EAAE,OAAO;CAC7C,OAAQ,EAAE,OAAO,CAAC,CAAC,IAAI;CACvB,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;AACzC,CAAC,GAIY,IAAkC,EAAE,OAAO,EACtD,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,EACxB,CAAC,GAIY,IAAuB,EAAE,OAAO;CAC3C,KAAa,EAAE,OAAO,CAAC,CAAC,IAAI;CAC5B,aAAa,EAAE,OAAO,CAAC,CAAC,SAAS;CACjC,OAAa,EAAE,OAAO,CAAC,CAAC,SAAS;CACjC,QAAa,EAAE,OAAO,CAAC,CAAC,SAAS;CACjC,MAAa,EAAE,OAAO,CAAC,CAAC,SAAS;CACjC,OAAa,EAAE,OAAO,CAAC,CAAC,SAAS;AACnC,CAAC,GAIY,IAA0B,EAAE,OAAO;CAC9C,QAAiB,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;CACjC,aAAiB,EAAkB,SAAS;CAC5C,iBAAiB,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;AAClD,CAAC,GAIY,IAAuB,EAAE,OAAO;CAC3C,KAAiB,EAAE,OAAO,CAAC,CAAC,IAAI;CAChC,aAAiB,EAAE,OAAO,CAAC,CAAC,SAAS;CACrC,iBAAiB,EAAE,OAAO,CAAC,CAAC,SAAS;CACrC,OAAiB,EAAE,OAAO,CAAC,CAAC,SAAS;AACvC,CAAC,GAIY,IAAwB,EAAE,OAAO;CAC5C,MAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;CACvB,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS;CAC3B,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;AACxC,CAAC,GAIY,KAAuB,EAAE,OAAO;CAC3C,QAAiB,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;CACjC,iBAAiB,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;AAClD,CAAC,GAIY,KAA4B,EAAE,OAAO;CAChD,OAAU,EAAE,OAAO,CAAC,CAAC,IAAI;CACzB,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS;AAChC,CAAC,GAIY,KAAuB,EAAE,OAAO;CAC3C,KAAiB,EAAE,OAAO,CAAC,CAAC,IAAI;CAChC,aAAiB,EAAE,OAAO,CAAC,CAAC,SAAS;CACrC,iBAAiB,EAAE,OAAO,CAAC,CAAC,SAAS;CACrC,OAAiB,EAAE,OAAO,CAAC,CAAC,SAAS;AACvC,CAAC,GAIY,IAA6B,EAAE,OAAO;CACjD,MAAa,EAAE,OAAO;CACtB,aAAa,EAAE,OAAO;CACtB,WAAa,EAAE,OAAO;AACxB,CAAC,GAIY,KAAsB,EAAE,OAAO;CAC1C,MAAU,EAAE,OAAO;CACnB,UAAU,EAAE,MAAM,CAA0B,CAAC,CAAC,SAAS;CACvD,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS;CAC9B,OAAU,EAAE,OAAO,CAAC,CAAC,SAAS;AAChC,CAAC,GAIK,KAAwB,EAAE,OAAO;CACrC,MAAM,EAAE,QAAQ,MAAM;CACtB,MAAM,EAAE,OAAO;AACjB,CAAC,GAEK,KAAyB,EAAE,OAAO;CACtC,MAAQ,EAAE,QAAQ,OAAO;CACzB,QAAQ,EAAE,OAAO;EACf,QAAW,EAAE,OAAO;EACpB,WAAW,EAAE,OAAO;CACtB,CAAC;AACH,CAAC,GAEK,KAAuB,EAAE,MAAM,CACnC,EAAE,OAAO,GACT,EAAE,MAAM,EAAE,MAAM,CAAC,IAAuB,EAAsB,CAAC,CAAC,CAClE,CAAC,GAEY,IAAoB,EAAE,OAAO;CACxC,MAAS,EAAE,KAAK,CAAC,QAAQ,WAAW,CAAC;CACrC,SAAS;AACX,CAAC,GAIY,IAAiB,EAAE,OAAO;CACrC,OAAiB,EAAE,OAAO,CAAC,CAAC,SAAS;CACrC,UAAiB,EAAE,MAAM,CAAiB,CAAC,CAAC,IAAI,CAAC;CACjD,cAAiB,EAAE,OAAO,CAAC,CAAC,SAAS;CACrC,aAAiB,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;CACnD,WAAiB,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACtD,eAAiB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS;CAC9C,iBAAiB,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;AAChF,CAAC,GAIY,KAAyB,EAAe,KAAK;CACxD,OAAiB;CACjB,eAAiB;CACjB,iBAAiB;AACnB,CAAC,GC5JY,KAAoB,EAAE,OAAO;CACxC,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG;CACxC,OAAS,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG;AAC1C,CAAC,GAIY,KAAwB,EAAE,OAAO,EAC5C,SAAS,EAAE,QAAQ,EACrB,CAAC,GCTK,IAAc,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,GAC9B,IAAc,EAAE,MAAM;CAAC,EAAE,OAAO;CAAG,EAAE,OAAO;CAAG,EAAE,QAAQ;CAAG,EAAE,KAAK;AAAC,CAAC,GACrE,IAAc,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,GAEvC,KAA2B,EAAE,OAAO;CAC/C,OAAQ;CACR,OAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,GAAI,CAAC,CAAC,QAAQ,GAAG;CACzD,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS;AAClD,CAAC,GAIY,KAA+B,EAAE,OAAO,EACnD,MAAM,EAAE,MAAM,CAAW,EAC3B,CAAC,GAIY,KAAwB,EAAE,OAAO;CAC5C,OAAO;CACP,IAAO;CACP,OAAO;AACT,CAAC,GAIY,KAA4B,EAAE,OAAO,EAChD,KAAK,EAAY,SAAS,EAC5B,CAAC,GAIY,KAA0B,EAAE,OAAO;CAC9C,OAAQ;CACR,QAAQ;CACR,OAAQ;CACR,OAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,GAAI,CAAC,CAAC,QAAQ,GAAG;CACzD,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS;AAClD,CAAC,GAIY,KAA8B,EAAE,OAAO,EAClD,MAAM,EAAE,MAAM,CAAW,EAC3B,CAAC,GAIY,KAA2B,EAAE,OAAO;CAC/C,OAAQ;CACR,QAAQ;AACV,CAAC,GAIY,KAA+B,EAAE,OAAO,EACnD,KAAK,EACP,CAAC,GAIY,KAA2B,EAAE,OAAO;CAC/C,OAAS;CACT,IAAS;CACT,OAAS;CACT,SAAS;AACX,CAAC,GAIY,KAA+B,EAAE,OAAO,EACnD,SAAS,EAAE,QAAQ,EACrB,CAAC,GAIY,KAA2B,EAAE,OAAO;CAC/C,OAAO;CACP,IAAO;CACP,OAAO;AACT,CAAC,GAIY,KAA+B,EAAE,OAAO,EACnD,SAAS,EAAE,QAAQ,EACrB,CAAC,GCtFY,KAA0B,EAAE,OAAO;CAC9C,QAAa,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;CAC7B,MAAa,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;CAC7B,aAAa,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;CAC7B,WAAa,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,SAAS;AAChE,CAAC,GAIY,IAA8B,EAAE,OAAO;CAClD,KAAW,EAAE,OAAO,CAAC,CAAC,IAAI;CAC1B,WAAW,EAAE,OAAO;AACtB,CAAC,GAIY,KAA4B,EAAE,OAAO;CAChD,QAAW,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;CAC3B,MAAW,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;CAC3B,WAAW,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,SAAS;AAC9D,CAAC,GAIY,KAAgC,GAIhC,KAAiB,EAAE,OAAO;CACrC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;CACxB,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS;CAC5B,OAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,GAAI,CAAC,CAAC,SAAS;AACzD,CAAC,GAIY,IAAsB,EAAE,OAAO;CAC1C,KAAc,EAAE,OAAO;CACvB,MAAc,EAAE,OAAO;CACvB,cAAc,EAAE,OAAO;CACvB,MAAc,EAAE,OAAO,CAAC,CAAC,SAAS;AACpC,CAAC,GAIY,KAAqB,EAAE,OAAO,EACzC,SAAS,EAAE,MAAM,CAAmB,EACtC,CAAC,GAIY,KAAmB,EAAE,OAAO;CACvC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;CACxB,OAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1C,CAAC,GAIY,KAAuB,EAAE,OAAO;CAC3C,SAAS,EAAE,QAAQ;CACnB,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC;AAC7B,CAAC,GCrDW,KAAL,yBAAA,GAAA;QACL,EAAA,gBAAA,2BACA,EAAA,2BAAA,4BACA,EAAA,6BAAA,8BACA,EAAA,aAAA,cACA,EAAA,mBAAA,oBACA,EAAA,eAAA,gBACA,EAAA,wBAAA;AACF,EAAA,CAAA,CAAA,GCdY,KAAL,yBAAA,GAAA;QACL,EAAA,WAAA,YACA,EAAA,YAAA,aACA,EAAA,cAAA,eACA,EAAA,UAAA,WACA,EAAA,QAAA;AACF,EAAA,CAAA,CAAA,GASY,KAAL,yBAAA,GAAA;QACL,EAAA,UAAA,WACA,EAAA,QAAA;AACF,EAAA,CAAA,CAAA,GAqBa,IAAwB,QAQzB,KAAL,yBAAA,GAAA;QACL,EAAA,UAAA,WACA,EAAA,aAAA,cACA,EAAA,YAAA,aACA,EAAA,cAAA,eACA,EAAA,UAAA,WACA,EAAA,QAAA;AACF,EAAA,CAAA,CAAA,GC1Da,KAAS,EACpB,UAAU,kDACZ;;;ACIA,eAAsB,EAAuB,GAA4C;CACvF,IAAI;EAEF,OAAO,CAAC,MADW,GACL,IAAI;CACpB,SAAS,GAAO;EACd,OAAO,CAAC,MAAM,CAAU;CAC1B;AACF;AAEA,IAAM,KAAU,EAAoB,EAAE,QAAQ,EAAE,aAAa,EAAkB,EAAE,CAAC;AAElF,SAAgB,GAAG,GAAG,GAAsB;CAC1C,OAAO,GAAQ,EAAK,CAAM,CAAC;AAC7B;;;ACnBA,IAAa,KAAmB;CAC9B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,GAEa,KAAqB;CAChC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,GCvCa,KAAgB,EAC3B,UAAU,EACR,gBAAgB;CACd;CACA;CACA;AACF,EACF,EACF,GAmBa,IAAmB,sBAE1B,KAAa,SAEb,IAAsC;CAC1C,QAAQ;CACR,MAAQ;CACR,KAAQ;CACR,OAAQ;AACV,GAQa,KAAb,MAA6B;CAC3B,OAAc,WAAW,GAAiD;EAKxE,OAJK,IACD,KAAK,aAAa,EAAK,IAAI,IAAU,UACrC,KAAK,UAAU,CAAI,IAAkB,QAElC,SAJkC;CAK3C;CAEA,OAAc,UAAU,GAAgB,GAA6B;EAGnE,OAFI,CAAC,KAAK,OAAO,CAAI,KAAK,CAAC,KAAK,OAAO,CAAQ,IAAU,KAElD,EAAU,MAAS,EAAU;CACtC;CAEA,OAAc,OAAO,GAAmC;EACtD,OAAO,OAAO,KAAU,YAAY,OAAO,OAAO,GAAW,CAAK;CACpE;CAEA,OAAe,aAAa,GAA0C;EAGpE,OAFK,IAEE,EAAK,MAAM,GAAG,CAAC,CAAC,SAAS,EAAU,IAFxB;CAGpB;CAEA,OAAe,UAAU,GAA6B;EAGpD,OAFK,EAAK,gBAEH,EAAK,MAAM,YAAY,CAAC,CAAC,SAAS,IAAI,GAAkB,IAF/B;CAGlC;AACF"}
|