@digo-labs/common 0.1.12 → 0.1.15

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/index.js CHANGED
@@ -4,9 +4,9 @@ import { decode as r, encode as i } from "base64-arraybuffer";
4
4
  import a from "lz-string";
5
5
  import { base64StringToBlob as o, blobToBase64String as s } from "blob-util";
6
6
  import { z as c } from "zod";
7
- import ee from "clsx";
8
- import { twMerge as te } from "tailwind-merge";
9
- for (var ne = class {
7
+ import l from "clsx";
8
+ import { extendTailwindMerge as u } from "tailwind-merge";
9
+ for (var d = class {
10
10
  static appName;
11
11
  static setCurrentAppName(e) {
12
12
  if (this.appName !== void 0 && this.appName !== e) throw Error(`setCurrentAppName: already set to '${this.appName}', cannot override with '${e}'. This usually means defineApp() was called twice with different names.`);
@@ -24,7 +24,7 @@ for (var ne = class {
24
24
  if (!/^[a-z][a-z0-9_]*$/.test(t)) throw Error(`sanitizeAppName: invalid app name '${e}' (sanitized: '${t}')`);
25
25
  return t;
26
26
  }
27
- }, re = class a {
27
+ }, f = class a {
28
28
  static copyToClipboard(e) {
29
29
  navigator.clipboard.writeText(e).then(() => {}).catch(() => {
30
30
  console.error("Failed to copy");
@@ -117,7 +117,7 @@ for (var ne = class {
117
117
  return this.getImagePayloadFromFile(n);
118
118
  }
119
119
  static async getImagePayloadFromFile(e) {
120
- let [t, n] = await $(e.arrayBuffer());
120
+ let [t, n] = await Z(e.arrayBuffer());
121
121
  return n ? [null, n] : [{
122
122
  base64: a.encodeArrayBufferToBase64(t),
123
123
  mediaType: e.type
@@ -194,7 +194,56 @@ for (var ne = class {
194
194
  behavior: "smooth"
195
195
  });
196
196
  }
197
- }, ie = "https://api.digo-labs.com", l = "X-Digo-App", u = "X-Admin-Secret", d = "-digo-labs-storage", f = "wss://ws.digo-labs.com", ae = "us-east-1", oe = [
197
+ }, p = "https://api.digo-labs.com", ee = "X-Digo-App", te = "X-Admin-Secret", ne = "-digo-labs-storage", re = [
198
+ "#58C2E3",
199
+ "#79F2A9",
200
+ "#985EFF",
201
+ "#BDF279"
202
+ ], ie = "wss://ws.digo-labs.com", ae = "us-east-1", oe = {
203
+ sm: 640,
204
+ md: 768,
205
+ lg: 1024,
206
+ xl: 1280,
207
+ "2xl": 1536
208
+ }, m = {
209
+ "font-size": [{ typo: [
210
+ "1",
211
+ "2",
212
+ "3",
213
+ "4",
214
+ "5",
215
+ "6",
216
+ "7",
217
+ "8",
218
+ "9",
219
+ "10",
220
+ "11",
221
+ "12",
222
+ "13",
223
+ "14",
224
+ "15",
225
+ "16",
226
+ "17",
227
+ "18"
228
+ ] }],
229
+ "font-weight": [{ "typo-weight": [
230
+ "100",
231
+ "200",
232
+ "300",
233
+ "400",
234
+ "500",
235
+ "600",
236
+ "700",
237
+ "800",
238
+ "900"
239
+ ] }],
240
+ "typo-family": [
241
+ "typo-header",
242
+ "typo-label",
243
+ "typo-body",
244
+ "typo-code"
245
+ ]
246
+ }, se = [
198
247
  {
199
248
  name: "Claude 3.7 Sonnet",
200
249
  description: "Anthropic's advanced model",
@@ -210,7 +259,7 @@ for (var ne = class {
210
259
  description: "OpenAi's advanced model",
211
260
  icon: "icon-[simple-icons--openai]"
212
261
  }
213
- ], se = {
262
+ ], ce = {
214
263
  typescript: {
215
264
  icon: "typescript",
216
265
  name: "TypeScript"
@@ -283,9 +332,9 @@ for (var ne = class {
283
332
  icon: "code",
284
333
  name: "Text"
285
334
  }
286
- }, p = /* @__PURE__ */ function(e) {
335
+ }, h = /* @__PURE__ */ function(e) {
287
336
  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;
288
- }(p || {}), m = {
337
+ }(h || {}), g = {
289
338
  arrowUp: {
290
339
  category: "Navigation",
291
340
  icon: "icon-[lucide--arrow-up]"
@@ -1258,6 +1307,10 @@ for (var ne = class {
1258
1307
  category: "Brands",
1259
1308
  icon: "icon-[logos--google-icon]"
1260
1309
  },
1310
+ googleMono: {
1311
+ category: "Brands",
1312
+ icon: "icon-[simple-icons--google]"
1313
+ },
1261
1314
  github: {
1262
1315
  category: "Brands",
1263
1316
  icon: "icon-[mdi--github]"
@@ -1986,6 +2039,10 @@ for (var ne = class {
1986
2039
  category: "Misc",
1987
2040
  icon: "icon-[lucide--sun-moon]"
1988
2041
  },
2042
+ tv: {
2043
+ category: "Misc",
2044
+ icon: "icon-[lucide--tv]"
2045
+ },
1989
2046
  tvMinimal: {
1990
2047
  category: "Misc",
1991
2048
  icon: "icon-[lucide--tv-minimal]"
@@ -2010,53 +2067,82 @@ for (var ne = class {
2010
2067
  category: "Misc",
2011
2068
  icon: "icon-[lucide--package-plus]"
2012
2069
  }
2013
- }, ce = class {
2070
+ }, le = class {
2014
2071
  static getIcon(e) {
2015
- return e in m ? m[e].icon : e;
2072
+ return e in g ? g[e].icon : e;
2016
2073
  }
2017
2074
  static getCategory(e) {
2018
- return m[e].category;
2075
+ return g[e].category;
2019
2076
  }
2020
2077
  static getCategories() {
2021
2078
  let e = /* @__PURE__ */ new Set();
2022
- for (let t of Object.values(m)) e.add(t.category);
2023
- return Object.values(p).filter((t) => e.has(t));
2079
+ for (let t of Object.values(g)) e.add(t.category);
2080
+ return Object.values(h).filter((t) => e.has(t));
2024
2081
  }
2025
2082
  static getByCategory() {
2026
2083
  let e = {};
2027
- for (let t of Object.values(p)) e[t] = [];
2028
- for (let [t, n] of Object.entries(m)) e[n.category].push({
2084
+ for (let t of Object.values(h)) e[t] = [];
2085
+ for (let [t, n] of Object.entries(g)) e[n.category].push({
2029
2086
  id: t,
2030
2087
  category: n.category,
2031
2088
  icon: n.icon
2032
2089
  });
2033
2090
  return e;
2034
2091
  }
2035
- }, h = "@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@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@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}\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}", le = /--font-([\w-]+):\s*'([^']+)'/g, g = /* @__PURE__ */ new Map(), _; (_ = le.exec(h)) !== null;) {
2036
- let e = `--font-${_[1]}`, t = _[2];
2037
- g.set(t.toLowerCase(), e);
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-${y[1]}`, t = y[2];
2094
+ v.set(t.toLowerCase(), e);
2038
2095
  }
2039
- for (var v = /@font-face\s*\{[^}]*?font-family:\s*'([^']+)'[^}]*?font-weight:\s*([\d\s]+)[^}]*?font-style:\s*(\w+)[^}]*?src:\s*url\([^)]*?\/fonts\/([^)]+)\)\s*format\('(\w+)'\)[^}]*?\}/gs, y = [], b; (b = v.exec(h)) !== null;) {
2040
- let e = b[1], t = b[2].trim(), n = b[3], r = b[4], i = b[5] === "truetype" ? "ttf" : "otf", a = t.split(/\s+/).map(Number), o = Math.min(...a), s = Math.max(...a);
2041
- y.push({
2042
- family: e,
2043
- weightMin: o,
2044
- weightMax: s,
2045
- style: n,
2046
- format: i,
2047
- filePath: `/fonts/${r}`,
2048
- fileName: r,
2049
- cssVariable: g.get(e.toLowerCase()) ?? null
2096
+ for (var de = /@font-face\s*\{([^}]*)\}/gs, b = [], x; (x = de.exec(_)) !== null;) {
2097
+ let e = x[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
+ if (!t || !n || !r || !i) continue;
2099
+ 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
+ b.push({
2101
+ family: a,
2102
+ weightMin: d,
2103
+ weightMax: f,
2104
+ style: s,
2105
+ format: l,
2106
+ filePath: `/fonts/${c}`,
2107
+ fileName: c,
2108
+ cssVariable: v.get(a.toLowerCase()) ?? null
2050
2109
  });
2051
2110
  }
2052
- y.sort((e, t) => e.family.localeCompare(t.family));
2053
- var x = y, S = {
2111
+ b.sort((e, t) => e.family.localeCompare(t.family));
2112
+ var fe = b, S = {
2054
2113
  digoLogo: "https://cdn.digo-labs.com/images/digo-logo.png",
2055
2114
  digoLogoSvg: "https://cdn.digo-labs.com/images/digo-logo.svg",
2056
2115
  pcLogoV1Svg: "https://cdn.digo-labs.com/images/pc-logo-v1.svg",
2057
2116
  pcLogo3d: "https://cdn.digo-labs.com/images/pc-logo-3d.png",
2058
- userPlaceholder: "https://cdn.digo-labs.com/images/user-placeholder.png"
2059
- }, C = {}, w = class {
2117
+ userPlaceholder: "https://cdn.digo-labs.com/images/user-placeholder.png",
2118
+ audio3d: "https://cdn.digo-labs.com/images/audio-3d.jpg",
2119
+ blocks3d: "https://cdn.digo-labs.com/images/blocks-3d.jpg",
2120
+ components3d: "https://cdn.digo-labs.com/images/components-3d.jpg",
2121
+ effects3d: "https://cdn.digo-labs.com/images/effects-3d.jpg",
2122
+ fonts3d: "https://cdn.digo-labs.com/images/fonts-3d.jpg",
2123
+ icons3d: "https://cdn.digo-labs.com/images/icons-3d.jpg",
2124
+ image3d: "https://cdn.digo-labs.com/images/image-3d.jpg",
2125
+ llms3d: "https://cdn.digo-labs.com/images/llms-3d.jpg",
2126
+ pages3d: "https://cdn.digo-labs.com/images/pages-3d.jpg",
2127
+ text3d: "https://cdn.digo-labs.com/images/text-3d.jpg",
2128
+ video3d: "https://cdn.digo-labs.com/images/video-3d.jpg",
2129
+ terminalScreenFrame: "https://cdn.digo-labs.com/images/terminal-screen-frame.png",
2130
+ terminalScreenGlass: "https://cdn.digo-labs.com/images/terminal-screen-glass.png",
2131
+ terminalSideGlass: "https://cdn.digo-labs.com/images/terminal-side-glass.png"
2132
+ }, C = { porsche: "https://cdn.digo-labs.com/models/porsche.glb" }, w = class {
2133
+ static setValue(e, t) {
2134
+ localStorage.setItem(e, JSON.stringify(t));
2135
+ }
2136
+ static loadValue(e, t) {
2137
+ let n = localStorage.getItem(e);
2138
+ if (!n || n === "undefined") return t;
2139
+ try {
2140
+ return JSON.parse(n);
2141
+ } catch {
2142
+ return t;
2143
+ }
2144
+ }
2145
+ }, T = class {
2060
2146
  static setValue(e, t) {
2061
2147
  sessionStorage.setItem(e, JSON.stringify(t));
2062
2148
  }
@@ -2069,7 +2155,7 @@ var x = y, S = {
2069
2155
  return t;
2070
2156
  }
2071
2157
  }
2072
- }, T = {
2158
+ }, E = {
2073
2159
  bedrockText: "bedrock-text",
2074
2160
  dmxSend: "dmx-send",
2075
2161
  storagePresignUpload: "storage-presign-upload",
@@ -2083,7 +2169,7 @@ var x = y, S = {
2083
2169
  databaseUpdate: "database-update",
2084
2170
  databaseDelete: "database-delete",
2085
2171
  refreshSchemas: "refresh-schemas"
2086
- }, E = class {
2172
+ }, D = class {
2087
2173
  static hashCode(e) {
2088
2174
  return [...e].reduce((e, t) => Math.imul(31, e) + t.charCodeAt(0) | 0, 0);
2089
2175
  }
@@ -2114,7 +2200,7 @@ var x = y, S = {
2114
2200
  static getFirstLetter(e) {
2115
2201
  return e ? e.charAt(0).toUpperCase() : "X";
2116
2202
  }
2117
- }, D = {
2203
+ }, O = {
2118
2204
  digo: "Digo",
2119
2205
  refresh: "Refresh",
2120
2206
  code: "Code",
@@ -2202,193 +2288,173 @@ var x = y, S = {
2202
2288
  generate: "Generate",
2203
2289
  savePreset: "Save Preset",
2204
2290
  image: "Image"
2205
- }, O = c.object({
2291
+ }, k = c.object({
2206
2292
  mediaType: c.string(),
2207
2293
  base64: c.string()
2208
- }), k = c.object({
2294
+ }), A = c.object({
2209
2295
  mediaType: c.string(),
2210
2296
  base64: c.string()
2211
- }), A = c.string().regex(/^\d+x\d+$/).transform((e) => e), j = c.string().regex(/^\d+:\d+$/).transform((e) => e), M = c.object({
2297
+ }), j = c.string().regex(/^\d+x\d+$/).transform((e) => e), M = c.string().regex(/^\d+:\d+$/).transform((e) => e), N = c.object({
2212
2298
  prompt: c.string().min(1),
2213
- aspectRatio: j.optional(),
2299
+ aspectRatio: M.optional(),
2214
2300
  seed: c.number().int().optional()
2215
- }), N = c.object({
2301
+ }), P = c.object({
2216
2302
  prompt: c.string().min(1),
2217
2303
  image: c.string().url(),
2218
2304
  strength: c.number().min(0).max(1).optional()
2219
- }), P = c.object({
2305
+ }), F = c.object({
2220
2306
  image: c.string().url(),
2221
2307
  factor: c.number().positive().optional()
2222
- }), F = c.object({ image: c.string().url() }), I = c.object({
2308
+ }), I = c.object({ image: c.string().url() }), L = c.object({
2223
2309
  url: c.string().url(),
2224
2310
  contentType: c.string().optional(),
2225
2311
  width: c.number().optional(),
2226
2312
  height: c.number().optional(),
2227
2313
  seed: c.number().optional(),
2228
2314
  model: c.string().optional()
2229
- }), L = c.object({
2315
+ }), R = c.object({
2230
2316
  prompt: c.string().min(1),
2231
- aspectRatio: j.optional(),
2317
+ aspectRatio: M.optional(),
2232
2318
  durationSeconds: c.number().positive().optional()
2233
- }), R = c.object({
2319
+ }), z = c.object({
2234
2320
  url: c.string().url(),
2235
2321
  contentType: c.string().optional(),
2236
2322
  durationSeconds: c.number().optional(),
2237
2323
  model: c.string().optional()
2238
- }), z = c.object({
2324
+ }), B = c.object({
2239
2325
  text: c.string().min(1),
2240
2326
  voice: c.string().optional(),
2241
2327
  speed: c.number().positive().optional()
2242
- }), B = c.object({
2328
+ }), V = c.object({
2243
2329
  prompt: c.string().min(1),
2244
2330
  durationSeconds: c.number().positive().optional()
2245
- }), V = c.object({
2331
+ }), pe = c.object({
2246
2332
  audio: c.string().url(),
2247
2333
  language: c.string().optional()
2248
- }), H = c.object({
2334
+ }), me = c.object({
2249
2335
  url: c.string().url(),
2250
2336
  contentType: c.string().optional(),
2251
2337
  durationSeconds: c.number().optional(),
2252
2338
  model: c.string().optional()
2253
- }), U = c.object({
2339
+ }), H = c.object({
2254
2340
  text: c.string(),
2255
2341
  startSecond: c.number(),
2256
2342
  endSecond: c.number()
2257
- }), W = c.object({
2343
+ }), he = c.object({
2258
2344
  text: c.string(),
2259
- segments: c.array(U).optional(),
2345
+ segments: c.array(H).optional(),
2260
2346
  language: c.string().optional(),
2261
2347
  model: c.string().optional()
2262
- }), ue = c.object({
2348
+ }), ge = c.object({
2263
2349
  type: c.literal("text"),
2264
2350
  text: c.string()
2265
- }), de = c.object({
2351
+ }), _e = c.object({
2266
2352
  type: c.literal("image"),
2267
2353
  source: c.object({
2268
2354
  base64: c.string(),
2269
2355
  mediaType: c.string()
2270
2356
  })
2271
- }), fe = c.union([c.string(), c.array(c.union([ue, de]))]), G = c.object({
2357
+ }), ve = c.union([c.string(), c.array(c.union([ge, _e]))]), U = c.object({
2272
2358
  role: c.enum(["user", "assistant"]),
2273
- content: fe
2274
- }), K = c.object({
2359
+ content: ve
2360
+ }), W = c.object({
2275
2361
  model: c.string().optional(),
2276
- messages: c.array(G).min(1),
2362
+ messages: c.array(U).min(1),
2277
2363
  systemPrompt: c.string().optional(),
2278
2364
  temperature: c.number().min(0).max(2).optional(),
2279
2365
  maxTokens: c.number().int().positive().optional(),
2280
2366
  stopSequences: c.array(c.string()).optional(),
2281
2367
  providerOptions: c.record(c.string(), c.record(c.string(), c.any())).optional()
2282
- }), pe = K.omit({
2368
+ }), ye = W.omit({
2283
2369
  model: !0,
2284
2370
  stopSequences: !0,
2285
2371
  providerOptions: !0
2286
- }), me = c.object({
2372
+ }), be = c.object({
2287
2373
  channel: c.number().int().min(1).max(512),
2288
2374
  value: c.number().int().min(0).max(255)
2289
- }), he = c.object({ success: c.boolean() }), q = c.string().min(1), J = c.union([
2375
+ }), xe = c.object({ success: c.boolean() }), G = c.string().min(1), K = c.union([
2290
2376
  c.string(),
2291
2377
  c.number(),
2292
2378
  c.boolean(),
2293
2379
  c.null()
2294
- ]), Y = c.record(c.string(), c.unknown()), ge = c.object({
2295
- table: q,
2296
- limit: c.number().int().positive().optional(),
2380
+ ]), q = c.record(c.string(), c.unknown()), Se = c.object({
2381
+ table: G,
2382
+ limit: c.number().int().positive().max(1e3).default(100),
2383
+ offset: c.number().int().nonnegative().optional()
2384
+ }), Ce = c.object({ rows: c.array(q) }), we = c.object({
2385
+ table: G,
2386
+ pk: G,
2387
+ value: K
2388
+ }), Te = c.object({ row: q.nullable() }), Ee = c.object({
2389
+ table: G,
2390
+ column: G,
2391
+ value: K,
2392
+ limit: c.number().int().positive().max(1e3).default(100),
2297
2393
  offset: c.number().int().nonnegative().optional()
2298
- }), _e = c.object({ rows: c.array(Y) }), ve = c.object({
2299
- table: q,
2300
- pk: q,
2301
- value: J
2302
- }), ye = c.object({ row: Y.nullable() }), be = c.object({
2303
- table: q,
2304
- column: q,
2305
- value: J
2306
- }), xe = c.object({ rows: c.array(Y) }), Se = c.object({
2307
- table: q,
2308
- record: Y
2309
- }), Ce = c.object({ row: Y }), we = c.object({
2310
- table: q,
2311
- pk: q,
2312
- value: J,
2313
- changes: Y
2314
- }), Te = c.object({ success: c.boolean() }), Ee = c.object({
2315
- table: q,
2316
- pk: q,
2317
- value: J
2318
- }), De = c.object({ success: c.boolean() }), Oe = c.object({
2394
+ }), De = c.object({ rows: c.array(q) }), Oe = c.object({
2395
+ table: G,
2396
+ record: q
2397
+ }), ke = c.object({ row: q }), Ae = c.object({
2398
+ table: G,
2399
+ pk: G,
2400
+ value: K,
2401
+ changes: q
2402
+ }), je = c.object({ success: c.boolean() }), Me = c.object({
2403
+ table: G,
2404
+ pk: G,
2405
+ value: K
2406
+ }), Ne = c.object({ success: c.boolean() }), Pe = c.object({
2319
2407
  bucket: c.string().min(1),
2320
2408
  path: c.string().min(1),
2321
2409
  contentType: c.string().min(1),
2322
2410
  expiresIn: c.number().int().positive().max(604800).optional()
2323
- }), X = c.object({
2411
+ }), J = c.object({
2324
2412
  url: c.string().url(),
2325
2413
  expiresAt: c.number()
2326
- }), ke = c.object({
2414
+ }), Fe = c.object({
2327
2415
  bucket: c.string().min(1),
2328
2416
  path: c.string().min(1),
2329
2417
  expiresIn: c.number().int().positive().max(604800).optional()
2330
- }), Ae = X, je = c.object({
2418
+ }), Ie = J, Le = c.object({
2331
2419
  bucket: c.string().min(1),
2332
2420
  prefix: c.string().optional(),
2333
2421
  limit: c.number().int().positive().max(1e3).optional()
2334
- }), Z = c.object({
2422
+ }), Y = c.object({
2335
2423
  key: c.string(),
2336
2424
  size: c.number(),
2337
2425
  lastModified: c.string(),
2338
2426
  etag: c.string().optional()
2339
- }), Me = c.object({ objects: c.array(Z) }), Ne = c.object({
2427
+ }), Re = c.object({ objects: c.array(Y) }), ze = c.object({
2340
2428
  bucket: c.string().min(1),
2341
2429
  paths: c.array(c.string().min(1)).min(1)
2342
- }), Pe = c.object({
2430
+ }), Be = c.object({
2343
2431
  success: c.boolean(),
2344
2432
  deleted: c.array(c.string())
2345
- }), Fe = /* @__PURE__ */ function(e) {
2433
+ }), Ve = /* @__PURE__ */ function(e) {
2346
2434
  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;
2347
- }({}), Q = /* @__PURE__ */ function(e) {
2435
+ }({}), He = /* @__PURE__ */ function(e) {
2348
2436
  return e.IDENTIFY = "IDENTIFY", e.SUBSCRIBE = "SUBSCRIBE", e.UNSUBSCRIBE = "UNSUBSCRIBE", e.MESSAGE = "MESSAGE", e.STATE = "STATE", e;
2349
- }({}), Ie = /* @__PURE__ */ function(e) {
2437
+ }({}), Ue = /* @__PURE__ */ function(e) {
2350
2438
  return e.MESSAGE = "MESSAGE", e.STATE = "STATE", e;
2351
- }({}), Le = "_hub", Re = /* @__PURE__ */ function(e) {
2439
+ }({}), We = "_hub", X = /* @__PURE__ */ function(e) {
2352
2440
  return e.CONNECT = "CONNECT", e.DISCONNECT = "DISCONNECT", e.SUBSCRIBE = "SUBSCRIBE", e.UNSUBSCRIBE = "UNSUBSCRIBE", e.MESSAGE = "MESSAGE", e.STATE = "STATE", e;
2353
- }({}), ze = { pcLogo3D: "https://cdn.digo-labs.com/videos/pc-logo-3d.mp4" }, Be = {
2354
- aalto: "https://cdn.digo-labs.com/fonts/aalto.otf",
2355
- being: "https://cdn.digo-labs.com/fonts/being.otf",
2356
- benzol: "https://cdn.digo-labs.com/fonts/benzol.otf",
2357
- clashGrotesk: "https://cdn.digo-labs.com/fonts/clash-grotesk-variable.ttf",
2358
- digital7Mono: "https://cdn.digo-labs.com/fonts/digital-7-mono.ttf",
2359
- disket: "https://cdn.digo-labs.com/fonts/disket.ttf",
2360
- generalSans: "https://cdn.digo-labs.com/fonts/general-sans.ttf",
2361
- half: "https://cdn.digo-labs.com/fonts/half.otf",
2362
- heming: "https://cdn.digo-labs.com/fonts/heming.ttf",
2363
- humane: "https://cdn.digo-labs.com/fonts/humane-variable.ttf",
2364
- jersey10: "https://cdn.digo-labs.com/fonts/jersey-10-regular.ttf",
2365
- karmaticArcade: "https://cdn.digo-labs.com/fonts/karmatic-arcade-regular.ttf",
2366
- kodeMono: "https://cdn.digo-labs.com/fonts/kode-mono-vf.ttf",
2367
- miratrix: "https://cdn.digo-labs.com/fonts/miratrix.otf",
2368
- nippo: "https://cdn.digo-labs.com/fonts/nippo.ttf",
2369
- obrazec: "https://cdn.digo-labs.com/fonts/obrazec.otf",
2370
- pixelony: "https://cdn.digo-labs.com/fonts/pixelony.ttf",
2371
- triakis: "https://cdn.digo-labs.com/fonts/triakis.otf",
2372
- unknown: "https://cdn.digo-labs.com/fonts/unknown.otf",
2373
- yeager: "https://cdn.digo-labs.com/fonts/yeager.otf",
2374
- geist: "https://cdn.digo-labs.com/fonts/geist.ttf",
2375
- geistMono: "https://cdn.digo-labs.com/fonts/geist-mono.ttf"
2376
- };
2441
+ }({}), Ge = { pcLogo3D: "https://cdn.digo-labs.com/videos/pc-logo-3d.mp4" };
2377
2442
  //#endregion
2378
2443
  //#region src/utils.ts
2379
- async function $(e) {
2444
+ async function Z(e) {
2380
2445
  try {
2381
2446
  return [await e, null];
2382
2447
  } catch (e) {
2383
2448
  return [null, e];
2384
2449
  }
2385
2450
  }
2386
- function Ve(...e) {
2387
- return te(ee(e));
2451
+ var Ke = u({ extend: { classGroups: m } });
2452
+ function qe(...e) {
2453
+ return Ke(l(e));
2388
2454
  }
2389
2455
  //#endregion
2390
2456
  //#region src/samples.ts
2391
- var He = [
2457
+ var Je = [
2392
2458
  "New York",
2393
2459
  "Tokyo",
2394
2460
  "Paris",
@@ -2414,7 +2480,7 @@ var He = [
2414
2480
  "Mexico City",
2415
2481
  "Oslo",
2416
2482
  "Zürich"
2417
- ], Ue = [
2483
+ ], Ye = [
2418
2484
  "The quick brown fox jumps over the lazy dog.",
2419
2485
  "Pack my box with five dozen liquor jugs.",
2420
2486
  "How vexingly quick daft zebras jump.",
@@ -2425,12 +2491,33 @@ var He = [
2425
2491
  "Sixty zippers were quickly picked from the woven jute bag.",
2426
2492
  "We promptly judged antique ivory buckles for the next prize.",
2427
2493
  "A mad boxer shot a quick, gloved jab to the jaw of his dizzy opponent."
2428
- ], We = { monorepo: { trustedOrigins: [
2494
+ ], Xe = { monorepo: { trustedOrigins: [
2429
2495
  "http://localhost:*",
2430
2496
  "http://127.0.0.1:*",
2431
2497
  "https://*.digo-labs.com"
2432
- ] } };
2498
+ ] } }, Q = "productionclub.net", Ze = "admin", $ = {
2499
+ public: 0,
2500
+ user: 1,
2501
+ org: 2,
2502
+ admin: 3
2503
+ }, Qe = class {
2504
+ static deriveTier(e) {
2505
+ return e ? this.hasAdminRole(e.role) ? "admin" : this.isOrgUser(e) ? "org" : "user" : "public";
2506
+ }
2507
+ static meetsTier(e, t) {
2508
+ return !this.isTier(e) || !this.isTier(t) ? !1 : $[e] >= $[t];
2509
+ }
2510
+ static isTier(e) {
2511
+ return typeof e == "string" && Object.hasOwn($, e);
2512
+ }
2513
+ static hasAdminRole(e) {
2514
+ return e ? e.split(",").includes(Ze) : !1;
2515
+ }
2516
+ static isOrgUser(e) {
2517
+ return e.emailVerified ? e.email.toLowerCase().endsWith(`@${Q}`) : !1;
2518
+ }
2519
+ };
2433
2520
  //#endregion
2434
- export { oe as AI_MODELS, We as AUTH_PROJECTS, ae as AWS_DEFAULT_REGION, ne as AppConfigHelpers, ie as BACKEND_URL, Fe as BedrockStyle, He as CITIES, re as CommonHelpers, u as DIGO_ADMIN_SECRET, l as DIGO_HEADERS, d as DIGO_STORAGE_BUCKET_SUFFIX, Ue as EXCERPTS, Be as FONTS, x as FONT_FACES, S as IMAGES, ce as IconHelpers, se as LANGUAGE_MAP, w as LocalStorage, C as MODELS, T as ROUTES, D as STRINGS, E as StringHelpers, ze as VIDEOS, Le as WEBSOCKET_HUB_CHANNEL, f as WS_URL, Ie as WebSocketHubEvent, Q as WebsocketClientEvent, Re as WebsocketLogEvent, j as aspectRatioSchema, B as audioMusicBodySchema, z as audioSpeechBodySchema, V as audioTranscribeBodySchema, Ve as cn, Se as databaseCreateBodySchema, Ce as databaseCreateResponseSchema, Ee as databaseDeleteBodySchema, De as databaseDeleteResponseSchema, ge as databaseGetAllBodySchema, _e as databaseGetAllResponseSchema, ve as databaseGetBodySchema, be as databaseGetByBodySchema, xe as databaseGetByResponseSchema, ye as databaseGetResponseSchema, we as databaseUpdateBodySchema, Te as databaseUpdateResponseSchema, Ne as deleteBodySchema, Pe as deleteResponseSchema, me as dmxSendBodySchema, he as dmxSendResponseSchema, O as filePayloadSchema, H as generatedAudioSchema, I as generatedImageSchema, R as generatedVideoSchema, N as imageEditBodySchema, M as imageGenerateBodySchema, k as imagePayloadSchema, F as imageRemoveBackgroundBodySchema, P as imageUpscaleBodySchema, je as listBodySchema, Me as listResponseSchema, ke as presignDownloadBodySchema, Ae as presignDownloadResponseSchema, Oe as presignUploadBodySchema, X as presignUploadResponseSchema, A as sizeFormattedSchema, Z as storageObjectSchema, K as textBodySchema, pe as textGenerateBodySchema, G as textMessageSchema, W as transcriptionSchema, U as transcriptionSegmentSchema, $ as tryCatch, L as videoGenerateBodySchema };
2521
+ export { se as AI_MODELS, Xe as AUTH_PROJECTS, ae as AWS_DEFAULT_REGION, d as AppConfigHelpers, Qe as AuthTierHelpers, p as BACKEND_URL, oe as BREAKPOINTS, Ve as BedrockStyle, Je as CITIES, f as CommonHelpers, te as DIGO_ADMIN_SECRET, re as DIGO_COLORS, ee as DIGO_HEADERS, ne as DIGO_STORAGE_BUCKET_SUFFIX, Ye as EXCERPTS, fe as FONT_FACES, S as IMAGES, le as IconHelpers, ce as LANGUAGE_MAP, w as LocalStorage, C as MODELS, Q as ORG_EMAIL_DOMAIN, E as ROUTES, O as STRINGS, T as SessionStorage, D as StringHelpers, m as TYPO_CLASS_GROUPS, Ge as VIDEOS, We as WEBSOCKET_HUB_CHANNEL, ie as WS_URL, Ue as WebSocketHubEvent, He as WebsocketClientEvent, X as WebsocketLogEvent, M as aspectRatioSchema, V as audioMusicBodySchema, B as audioSpeechBodySchema, pe as audioTranscribeBodySchema, qe as cn, Oe as databaseCreateBodySchema, ke as databaseCreateResponseSchema, Me as databaseDeleteBodySchema, Ne as databaseDeleteResponseSchema, Se as databaseGetAllBodySchema, Ce as databaseGetAllResponseSchema, we as databaseGetBodySchema, Ee as databaseGetByBodySchema, De as databaseGetByResponseSchema, Te as databaseGetResponseSchema, Ae as databaseUpdateBodySchema, je as databaseUpdateResponseSchema, ze as deleteBodySchema, Be as deleteResponseSchema, be as dmxSendBodySchema, xe as dmxSendResponseSchema, k as filePayloadSchema, me as generatedAudioSchema, L as generatedImageSchema, z as generatedVideoSchema, P as imageEditBodySchema, N as imageGenerateBodySchema, A as imagePayloadSchema, I as imageRemoveBackgroundBodySchema, F as imageUpscaleBodySchema, Le as listBodySchema, Re as listResponseSchema, Fe as presignDownloadBodySchema, Ie as presignDownloadResponseSchema, Pe as presignUploadBodySchema, J as presignUploadResponseSchema, j as sizeFormattedSchema, Y as storageObjectSchema, W as textBodySchema, ye as textGenerateBodySchema, U as textMessageSchema, he as transcriptionSchema, H as transcriptionSegmentSchema, Z as tryCatch, R as videoGenerateBodySchema };
2435
2522
 
2436
2523
  //# sourceMappingURL=index.js.map