@digo-labs/common 0.1.5 → 0.1.6

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.
@@ -1,5 +1,6 @@
1
1
  import { CodeLanguageMetadata, ModelPayload } from './types/common-types';
2
2
  export declare const BACKEND_URL = "https://api.digo-labs.com";
3
+ export declare const WS_URL = "wss://ws.digo-labs.com";
3
4
  export declare const AWS_DEFAULT_REGION = "us-east-1";
4
5
  export declare const AI_MODELS: ModelPayload[];
5
6
  export declare const LANGUAGE_MAP: Record<string, CodeLanguageMetadata>;
package/dist/index.js CHANGED
@@ -173,7 +173,7 @@ class b {
173
173
  });
174
174
  }
175
175
  }
176
- const no = "https://api.digo-labs.com", eo = "us-east-1", io = [
176
+ const no = "https://api.digo-labs.com", eo = "wss://ws.digo-labs.com", io = "us-east-1", to = [
177
177
  {
178
178
  name: "Claude 3.7 Sonnet",
179
179
  description: "Anthropic's advanced model",
@@ -189,7 +189,7 @@ const no = "https://api.digo-labs.com", eo = "us-east-1", io = [
189
189
  description: "OpenAi's advanced model",
190
190
  icon: "icon-[simple-icons--openai]"
191
191
  }
192
- ], to = {
192
+ ], co = {
193
193
  typescript: { icon: "typescript", name: "TypeScript" },
194
194
  javascript: { icon: "javascript", name: "JavaScript" },
195
195
  tsx: { icon: "typescript", name: "TSX" },
@@ -586,7 +586,7 @@ const p = {
586
586
  alignCenter: { category: "Misc", icon: "icon-[lucide--align-center]" },
587
587
  alignRight: { category: "Misc", icon: "icon-[lucide--align-right]" }
588
588
  };
589
- class co {
589
+ class ao {
590
590
  static getIcon(o) {
591
591
  return o in p ? p[o].icon : o;
592
592
  }
@@ -1554,14 +1554,14 @@ for (; (g = C.exec(A)) !== null; ) {
1554
1554
  });
1555
1555
  }
1556
1556
  v.sort((i, o) => i.family.localeCompare(o.family));
1557
- const ao = v, ro = {
1557
+ const ro = v, so = {
1558
1558
  digoLogo: "https://cdn.digo-labs.com/images/digo-logo.png",
1559
1559
  digoLogoSvg: "https://cdn.digo-labs.com/images/digo-logo.svg",
1560
1560
  pcLogoV1Svg: "https://cdn.digo-labs.com/images/pc-logo-v1.svg",
1561
1561
  pcLogo3d: "https://cdn.digo-labs.com/images/pc-logo-3d.png",
1562
1562
  userPlaceholder: "https://cdn.digo-labs.com/images/user-placeholder.png"
1563
- }, so = {};
1564
- class lo {
1563
+ }, lo = {};
1564
+ class go {
1565
1565
  static setValue(o, e) {
1566
1566
  sessionStorage.setItem(o, JSON.stringify(e));
1567
1567
  }
@@ -1576,7 +1576,7 @@ class lo {
1576
1576
  }
1577
1577
  }
1578
1578
  }
1579
- const go = {
1579
+ const uo = {
1580
1580
  aiText: "text",
1581
1581
  dmxSend: "dmx-send",
1582
1582
  storagePresignUpload: "storage-presign-upload",
@@ -1590,7 +1590,7 @@ const go = {
1590
1590
  databaseUpdate: "database-update",
1591
1591
  databaseDelete: "database-delete"
1592
1592
  };
1593
- class uo {
1593
+ class po {
1594
1594
  static hashCode(o) {
1595
1595
  return [...o].reduce(
1596
1596
  (e, t) => Math.imul(31, e) + t.charCodeAt(0) | 0,
@@ -1625,7 +1625,7 @@ class uo {
1625
1625
  return o ? o.charAt(0).toUpperCase() : "X";
1626
1626
  }
1627
1627
  }
1628
- const po = {
1628
+ const yo = {
1629
1629
  digo: "Digo",
1630
1630
  refresh: "Refresh",
1631
1631
  code: "Code",
@@ -1756,7 +1756,7 @@ const po = {
1756
1756
  version: "1",
1757
1757
  description: "Higher-quality multimodal, slower than Lite."
1758
1758
  }
1759
- ], yo = j[0].id, B = n.object({
1759
+ ], fo = j[0].id, B = n.object({
1760
1760
  type: n.literal("text"),
1761
1761
  text: n.string()
1762
1762
  }), R = n.object({
@@ -1771,7 +1771,7 @@ const po = {
1771
1771
  ]), E = n.object({
1772
1772
  role: n.enum(["user", "assistant"]),
1773
1773
  content: L
1774
- }), fo = n.object({
1774
+ }), mo = n.object({
1775
1775
  model: n.string().optional(),
1776
1776
  messages: n.array(E).min(1),
1777
1777
  systemPrompt: n.string().optional(),
@@ -1779,54 +1779,54 @@ const po = {
1779
1779
  maxTokens: n.number().int().positive().optional(),
1780
1780
  stopSequences: n.array(n.string()).optional(),
1781
1781
  providerOptions: n.record(n.string(), n.record(n.string(), n.any())).optional()
1782
- }), mo = n.object({
1782
+ }), ho = n.object({
1783
1783
  channel: n.number().int().min(1).max(512),
1784
1784
  value: n.number().int().min(0).max(255)
1785
- }), ho = n.object({
1785
+ }), bo = n.object({
1786
1786
  success: n.boolean()
1787
- }), l = n.string().min(1), f = n.union([n.string(), n.number(), n.boolean(), n.null()]), u = n.record(n.string(), n.unknown()), bo = n.object({
1787
+ }), l = n.string().min(1), f = n.union([n.string(), n.number(), n.boolean(), n.null()]), u = n.record(n.string(), n.unknown()), wo = n.object({
1788
1788
  table: l,
1789
1789
  limit: n.number().int().positive().optional(),
1790
1790
  offset: n.number().int().nonnegative().optional()
1791
- }), wo = n.object({
1792
- rows: n.array(u)
1793
1791
  }), vo = n.object({
1792
+ rows: n.array(u)
1793
+ }), xo = n.object({
1794
1794
  table: l,
1795
1795
  pk: l,
1796
1796
  value: f
1797
- }), xo = n.object({
1798
- row: u.nullable()
1799
1797
  }), Ao = n.object({
1798
+ row: u.nullable()
1799
+ }), ko = n.object({
1800
1800
  table: l,
1801
1801
  column: l,
1802
1802
  value: f
1803
- }), ko = n.object({
1804
- rows: n.array(u)
1805
1803
  }), So = n.object({
1804
+ rows: n.array(u)
1805
+ }), Mo = n.object({
1806
1806
  table: l,
1807
1807
  record: u
1808
- }), Mo = n.object({
1809
- row: u
1810
1808
  }), Fo = n.object({
1809
+ row: u
1810
+ }), Io = n.object({
1811
1811
  table: l,
1812
1812
  pk: l,
1813
1813
  value: f,
1814
1814
  changes: u
1815
- }), Io = n.object({
1816
- success: n.boolean()
1817
1815
  }), No = n.object({
1816
+ success: n.boolean()
1817
+ }), To = n.object({
1818
1818
  table: l,
1819
1819
  pk: l,
1820
1820
  value: f
1821
- }), To = n.object({
1822
- success: n.boolean()
1823
1821
  }), Uo = n.object({
1822
+ success: n.boolean()
1823
+ }), Do = n.object({
1824
1824
  mediaType: n.string(),
1825
1825
  base64: n.string()
1826
- }), Do = n.object({
1826
+ }), zo = n.object({
1827
1827
  mediaType: n.string(),
1828
1828
  base64: n.string()
1829
- }), zo = n.string().regex(/^\d+x\d+$/).transform((i) => i), Co = n.string().regex(/^\d+:\d+$/).transform((i) => i), jo = n.object({
1829
+ }), Co = n.string().regex(/^\d+x\d+$/).transform((i) => i), jo = n.string().regex(/^\d+:\d+$/).transform((i) => i), Bo = n.object({
1830
1830
  bucket: n.string().min(1),
1831
1831
  path: n.string().min(1),
1832
1832
  contentType: n.string().min(1),
@@ -1834,11 +1834,11 @@ const po = {
1834
1834
  }), P = n.object({
1835
1835
  url: n.string().url(),
1836
1836
  expiresAt: n.number()
1837
- }), Bo = n.object({
1837
+ }), Ro = n.object({
1838
1838
  bucket: n.string().min(1),
1839
1839
  path: n.string().min(1),
1840
1840
  expiresIn: n.number().int().positive().max(604800).optional()
1841
- }), Ro = P, Lo = n.object({
1841
+ }), Lo = P, Eo = n.object({
1842
1842
  bucket: n.string().min(1),
1843
1843
  prefix: n.string().optional(),
1844
1844
  limit: n.number().int().positive().max(1e3).optional()
@@ -1847,21 +1847,21 @@ const po = {
1847
1847
  size: n.number(),
1848
1848
  lastModified: n.string(),
1849
1849
  etag: n.string().optional()
1850
- }), Eo = n.object({
1851
- objects: n.array(O)
1852
1850
  }), Po = n.object({
1851
+ objects: n.array(O)
1852
+ }), Oo = n.object({
1853
1853
  bucket: n.string().min(1),
1854
1854
  paths: n.array(n.string().min(1)).min(1)
1855
- }), Oo = n.object({
1855
+ }), _o = n.object({
1856
1856
  success: n.boolean(),
1857
1857
  deleted: n.array(n.string())
1858
1858
  });
1859
1859
  var _ = /* @__PURE__ */ ((i) => (i.ANIMATED_FILM = "3D_ANIMATED_FAMILY_FILM", i.FLAT_VECTOR_ILLUSTRATION = "FLAT_VECTOR_ILLUSTRATION", i.GRAPHIC_NOVEL_ILLUSTRATION = "GRAPHIC_NOVEL_ILLUSTRATION", i.MAXIMALISM = "MAXIMALISM", i.MIDCENTURY_RETRO = "MIDCENTURY_RETRO", i.PHOTOREALISM = "PHOTOREALISM", i.SOFT_DIGITAL_PAINTING = "SOFT_DIGITAL_PAINTING", i))(_ || {}), G = /* @__PURE__ */ ((i) => (i.IDENTIFY = "IDENTIFY", i.SUBSCRIBE = "SUBSCRIBE", i.UNSUBSCRIBE = "UNSUBSCRIBE", i.MESSAGE = "MESSAGE", i.STATE = "STATE", i))(G || {}), q = /* @__PURE__ */ ((i) => (i.MESSAGE = "MESSAGE", i.STATE = "STATE", i))(q || {});
1860
- const _o = "_hub";
1860
+ const Go = "_hub";
1861
1861
  var V = /* @__PURE__ */ ((i) => (i.CONNECT = "CONNECT", i.DISCONNECT = "DISCONNECT", i.SUBSCRIBE = "SUBSCRIBE", i.UNSUBSCRIBE = "UNSUBSCRIBE", i.MESSAGE = "MESSAGE", i.STATE = "STATE", i))(V || {});
1862
- const Go = {
1862
+ const qo = {
1863
1863
  pcLogo3D: "https://cdn.digo-labs.com/videos/pc-logo-3d.mp4"
1864
- }, qo = {
1864
+ }, Vo = {
1865
1865
  aalto: "https://cdn.digo-labs.com/fonts/aalto.otf",
1866
1866
  being: "https://cdn.digo-labs.com/fonts/being.otf",
1867
1867
  benzol: "https://cdn.digo-labs.com/fonts/benzol.otf",
@@ -1892,10 +1892,10 @@ async function $(i) {
1892
1892
  return [null, o];
1893
1893
  }
1894
1894
  }
1895
- function Vo(...i) {
1895
+ function $o(...i) {
1896
1896
  return D(U(i));
1897
1897
  }
1898
- const $o = [
1898
+ const Xo = [
1899
1899
  "New York",
1900
1900
  "Tokyo",
1901
1901
  "Paris",
@@ -1921,7 +1921,7 @@ const $o = [
1921
1921
  "Mexico City",
1922
1922
  "Oslo",
1923
1923
  "Zürich"
1924
- ], Xo = [
1924
+ ], Ho = [
1925
1925
  "The quick brown fox jumps over the lazy dog.",
1926
1926
  "Pack my box with five dozen liquor jugs.",
1927
1927
  "How vexingly quick daft zebras jump.",
@@ -1932,7 +1932,7 @@ const $o = [
1932
1932
  "Sixty zippers were quickly picked from the woven jute bag.",
1933
1933
  "We promptly judged antique ivory buckles for the next prize.",
1934
1934
  "A mad boxer shot a quick, gloved jab to the jaw of his dizzy opponent."
1935
- ], Ho = {
1935
+ ], Yo = {
1936
1936
  monorepo: {
1937
1937
  trustedOrigins: [
1938
1938
  "http://localhost:2000",
@@ -1941,60 +1941,61 @@ const $o = [
1941
1941
  }
1942
1942
  };
1943
1943
  export {
1944
- io as AI_MODELS,
1945
- Ho as AUTH_PROJECTS,
1946
- eo as AWS_DEFAULT_REGION,
1944
+ to as AI_MODELS,
1945
+ Yo as AUTH_PROJECTS,
1946
+ io as AWS_DEFAULT_REGION,
1947
1947
  no as BACKEND_URL,
1948
1948
  j as BEDROCK_MODELS,
1949
1949
  _ as BedrockStyle,
1950
- $o as CITIES,
1950
+ Xo as CITIES,
1951
1951
  b as CommonHelpers,
1952
- yo as DEFAULT_TEXT_MODEL,
1953
- Xo as EXCERPTS,
1954
- qo as FONTS,
1955
- ao as FONT_FACES,
1956
- ro as IMAGES,
1957
- co as IconHelpers,
1958
- to as LANGUAGE_MAP,
1959
- lo as LocalStorage,
1960
- so as MODELS,
1961
- go as ROUTES,
1962
- po as STRINGS,
1963
- uo as StringHelpers,
1964
- Go as VIDEOS,
1965
- _o as WEBSOCKET_HUB_CHANNEL,
1952
+ fo as DEFAULT_TEXT_MODEL,
1953
+ Ho as EXCERPTS,
1954
+ Vo as FONTS,
1955
+ ro as FONT_FACES,
1956
+ so as IMAGES,
1957
+ ao as IconHelpers,
1958
+ co as LANGUAGE_MAP,
1959
+ go as LocalStorage,
1960
+ lo as MODELS,
1961
+ uo as ROUTES,
1962
+ yo as STRINGS,
1963
+ po as StringHelpers,
1964
+ qo as VIDEOS,
1965
+ Go as WEBSOCKET_HUB_CHANNEL,
1966
+ eo as WS_URL,
1966
1967
  q as WebSocketHubEvent,
1967
1968
  G as WebsocketClientEvent,
1968
1969
  V as WebsocketLogEvent,
1969
- Co as aspectRatioSchema,
1970
- Vo as cn,
1971
- So as databaseCreateBodySchema,
1972
- Mo as databaseCreateResponseSchema,
1973
- No as databaseDeleteBodySchema,
1974
- To as databaseDeleteResponseSchema,
1975
- bo as databaseGetAllBodySchema,
1976
- wo as databaseGetAllResponseSchema,
1977
- vo as databaseGetBodySchema,
1978
- Ao as databaseGetByBodySchema,
1979
- ko as databaseGetByResponseSchema,
1980
- xo as databaseGetResponseSchema,
1981
- Fo as databaseUpdateBodySchema,
1982
- Io as databaseUpdateResponseSchema,
1983
- Po as deleteBodySchema,
1984
- Oo as deleteResponseSchema,
1985
- mo as dmxSendBodySchema,
1986
- ho as dmxSendResponseSchema,
1987
- Uo as filePayloadSchema,
1988
- Do as imagePayloadSchema,
1989
- Lo as listBodySchema,
1990
- Eo as listResponseSchema,
1991
- Bo as presignDownloadBodySchema,
1992
- Ro as presignDownloadResponseSchema,
1993
- jo as presignUploadBodySchema,
1970
+ jo as aspectRatioSchema,
1971
+ $o as cn,
1972
+ Mo as databaseCreateBodySchema,
1973
+ Fo as databaseCreateResponseSchema,
1974
+ To as databaseDeleteBodySchema,
1975
+ Uo as databaseDeleteResponseSchema,
1976
+ wo as databaseGetAllBodySchema,
1977
+ vo as databaseGetAllResponseSchema,
1978
+ xo as databaseGetBodySchema,
1979
+ ko as databaseGetByBodySchema,
1980
+ So as databaseGetByResponseSchema,
1981
+ Ao as databaseGetResponseSchema,
1982
+ Io as databaseUpdateBodySchema,
1983
+ No as databaseUpdateResponseSchema,
1984
+ Oo as deleteBodySchema,
1985
+ _o as deleteResponseSchema,
1986
+ ho as dmxSendBodySchema,
1987
+ bo as dmxSendResponseSchema,
1988
+ Do as filePayloadSchema,
1989
+ zo as imagePayloadSchema,
1990
+ Eo as listBodySchema,
1991
+ Po as listResponseSchema,
1992
+ Ro as presignDownloadBodySchema,
1993
+ Lo as presignDownloadResponseSchema,
1994
+ Bo as presignUploadBodySchema,
1994
1995
  P as presignUploadResponseSchema,
1995
- zo as sizeFormattedSchema,
1996
+ Co as sizeFormattedSchema,
1996
1997
  O as storageObjectSchema,
1997
- fo as textBodySchema,
1998
+ mo as textBodySchema,
1998
1999
  E as textMessageSchema,
1999
2000
  $ as tryCatch
2000
2001
  };
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/common-helpers.ts","../src/constants.ts","../src/icons.ts","../src/index.css?raw","../src/font-parser.ts","../src/images.ts","../src/models.ts","../src/local-storage.ts","../src/routes.ts","../src/string-helpers.ts","../src/strings.ts","../src/schemas/ai.ts","../src/schemas/dmx.ts","../src/schemas/database.ts","../src/schemas/primitives.ts","../src/schemas/storage.ts","../src/types/common-types.ts","../src/types/websocket-types.ts","../src/videos.ts","../src/fonts.ts","../src/utils.ts","../src/samples.ts","../src/auth.ts"],"sourcesContent":["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,\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, 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 { CodeLanguageMetadata, ModelPayload } from './types/common-types';\n\nexport const BACKEND_URL = 'https://api.digo-labs.com';\n\nexport const AWS_DEFAULT_REGION = 'us-east-1';\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 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 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 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 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 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 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 google: { category: IconCategory.Brands, icon: 'icon-[logos--google-icon]' },\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 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 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 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 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 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\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","export default \"@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\\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_#0008] 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-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-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-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}\"","import indexCss from './index.css?raw';\n\nimport type { FontFaceData, FontFormat } from './font-types';\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*\\{[^}]*?font-family:\\s*'([^']+)'[^}]*?font-weight:\\s*([\\d\\s]+)[^}]*?font-style:\\s*(\\w+)[^}]*?src:\\s*url\\([^)]*?\\/fonts\\/([^)]+)\\)\\s*format\\('(\\w+)'\\)[^}]*?\\}/gs;\n\nconst parsedFonts: FontFaceData[] = [];\n\nlet faceMatch: RegExpExecArray | null;\n\nwhile ((faceMatch = FONT_FACE_REGEX.exec(indexCss)) !== null) {\n const family = faceMatch[1];\n const weightRaw = faceMatch[2].trim();\n const style = faceMatch[3];\n const fileName = faceMatch[4];\n const format = faceMatch[5] === 'truetype' ? 'ttf' : 'otf';\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,\n weightMin,\n weightMax,\n style,\n format: format as FontFormat,\n filePath: `/fonts/${fileName}`,\n 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};\n","export const MODELS = {\n\n};\n","export class LocalStorage {\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 aiText: '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} 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 interface ModelMetadata {\n id: string;\n provider: string;\n name: string;\n version: string;\n description: string;\n}\n\nexport const BEDROCK_MODELS = [\n {\n id: 'us.anthropic.claude-haiku-4-5-20251001-v1:0',\n provider: 'Anthropic',\n name: 'Claude Haiku',\n version: '4.5',\n description: 'Fastest and cheapest, good for short replies.',\n },\n {\n id: 'us.anthropic.claude-sonnet-4-6',\n provider: 'Anthropic',\n name: 'Claude Sonnet',\n version: '4.6',\n description: 'Balanced quality and speed for most tasks.',\n },\n {\n id: 'us.anthropic.claude-opus-4-7',\n provider: 'Anthropic',\n name: 'Claude Opus',\n version: '4.7',\n description: 'Highest quality, slower and more expensive.',\n },\n {\n id: 'us.amazon.nova-micro-v1:0',\n provider: 'Amazon',\n name: 'Nova Micro',\n version: '1',\n description: 'Text-only, extremely fast and cheap.',\n },\n {\n id: 'us.amazon.nova-lite-v1:0',\n provider: 'Amazon',\n name: 'Nova Lite',\n version: '1',\n description: 'Fast multimodal with image and video input.',\n },\n {\n id: 'us.amazon.nova-pro-v1:0',\n provider: 'Amazon',\n name: 'Nova Pro',\n version: '1',\n description: 'Higher-quality multimodal, slower than Lite.',\n },\n] as const satisfies readonly ModelMetadata[];\n\nexport type KnownTextModel = (typeof BEDROCK_MODELS)[number]['id'];\n\nexport type TextModel = KnownTextModel | (string & {});\n\nexport const DEFAULT_TEXT_MODEL: TextModel = BEDROCK_MODELS[0].id;\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 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().optional(),\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});\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 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\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 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","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; }\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 id: string;\n host: string;\n port: number;\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 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 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","export const FONTS = {\n aalto: 'https://cdn.digo-labs.com/fonts/aalto.otf',\n being: 'https://cdn.digo-labs.com/fonts/being.otf',\n benzol: 'https://cdn.digo-labs.com/fonts/benzol.otf',\n clashGrotesk: 'https://cdn.digo-labs.com/fonts/clash-grotesk-variable.ttf',\n digital7Mono: 'https://cdn.digo-labs.com/fonts/digital-7-mono.ttf',\n disket: 'https://cdn.digo-labs.com/fonts/disket.ttf',\n generalSans: 'https://cdn.digo-labs.com/fonts/general-sans.ttf',\n half: 'https://cdn.digo-labs.com/fonts/half.otf',\n heming: 'https://cdn.digo-labs.com/fonts/heming.ttf',\n humane: 'https://cdn.digo-labs.com/fonts/humane-variable.ttf',\n jersey10: 'https://cdn.digo-labs.com/fonts/jersey-10-regular.ttf',\n karmaticArcade: 'https://cdn.digo-labs.com/fonts/karmatic-arcade-regular.ttf',\n kodeMono: 'https://cdn.digo-labs.com/fonts/kode-mono-vf.ttf',\n miratrix: 'https://cdn.digo-labs.com/fonts/miratrix.otf',\n nippo: 'https://cdn.digo-labs.com/fonts/nippo.ttf',\n obrazec: 'https://cdn.digo-labs.com/fonts/obrazec.otf',\n pixelony: 'https://cdn.digo-labs.com/fonts/pixelony.ttf',\n triakis: 'https://cdn.digo-labs.com/fonts/triakis.otf',\n unknown: 'https://cdn.digo-labs.com/fonts/unknown.otf',\n yeager: 'https://cdn.digo-labs.com/fonts/yeager.otf',\n geist: 'https://cdn.digo-labs.com/fonts/geist.ttf',\n geistMono: 'https://cdn.digo-labs.com/fonts/geist-mono.ttf',\n};\n","import { Result } from './types/common-types';\n\nimport clsx, { ClassValue } from 'clsx';\nimport { twMerge } 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\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:2000',\n 'https://*.digo-labs.com',\n ],\n },\n} as const;\n\nexport type AuthProject = keyof typeof AUTH_PROJECTS;\n"],"names":["CommonHelpers","text","image","arrayBuffer","decode","blob","resultArrayBuffer","removeBackground","encode","seconds","base64","min","max","hex","m","rgb","value","hexValue","result","variable","name","element","start","end","startItem","index","uri","url","link","fileName","imageFile","file","error","tryCatch","mediaType","ImagePayload","extension","accepts","callback","input","event","target","number","miliseconds","decimals","resolve","reject","urls","promises","word","maxWidth","quality","img","canvas","ratio","compressedBase64","response","timeStamptz","date","parseISO","formatDistanceToNow","baseId","ids","match","base","suffix","baseLower","newId","id","container","BACKEND_URL","AWS_DEFAULT_REGION","AI_MODELS","LANGUAGE_MAP","IconCategory","CURATED_ICONS","IconHelpers","usedCategories","icon","cat","grouped","category","data","indexCss","FONT_VAR_REGEX","familyToVariable","varMatch","variableName","familyName","FONT_FACE_REGEX","parsedFonts","faceMatch","family","weightRaw","style","format","weights","weightMin","weightMax","a","b","FONT_FACES","IMAGES","MODELS","LocalStorage","key","defaultValue","storedValue","ROUTES","StringHelpers","hash","c","LZString","blobToBase64String","base64StringToBlob","string","STRINGS","BEDROCK_MODELS","DEFAULT_TEXT_MODEL","textContentPartSchema","z","imageContentPartSchema","messageContentSchema","textMessageSchema","textBodySchema","dmxSendBodySchema","dmxSendResponseSchema","identifier","scalarValue","recordValue","databaseGetAllBodySchema","databaseGetAllResponseSchema","databaseGetBodySchema","databaseGetResponseSchema","databaseGetByBodySchema","databaseGetByResponseSchema","databaseCreateBodySchema","databaseCreateResponseSchema","databaseUpdateBodySchema","databaseUpdateResponseSchema","databaseDeleteBodySchema","databaseDeleteResponseSchema","filePayloadSchema","imagePayloadSchema","sizeFormattedSchema","s","aspectRatioSchema","presignUploadBodySchema","presignUploadResponseSchema","presignDownloadBodySchema","presignDownloadResponseSchema","listBodySchema","storageObjectSchema","listResponseSchema","deleteBodySchema","deleteResponseSchema","BedrockStyle","WebsocketClientEvent","WebSocketHubEvent","WEBSOCKET_HUB_CHANNEL","WebsocketLogEvent","VIDEOS","FONTS","promise","cn","inputs","twMerge","clsx","CITIES","EXCERPTS","AUTH_PROJECTS"],"mappings":"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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,ICITC,IAAiB,iC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"}
1
+ {"version":3,"file":"index.js","sources":["../src/common-helpers.ts","../src/constants.ts","../src/icons.ts","../src/index.css?raw","../src/font-parser.ts","../src/images.ts","../src/models.ts","../src/local-storage.ts","../src/routes.ts","../src/string-helpers.ts","../src/strings.ts","../src/schemas/ai.ts","../src/schemas/dmx.ts","../src/schemas/database.ts","../src/schemas/primitives.ts","../src/schemas/storage.ts","../src/types/common-types.ts","../src/types/websocket-types.ts","../src/videos.ts","../src/fonts.ts","../src/utils.ts","../src/samples.ts","../src/auth.ts"],"sourcesContent":["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,\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, 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 { CodeLanguageMetadata, ModelPayload } from './types/common-types';\n\nexport const BACKEND_URL = 'https://api.digo-labs.com';\n\nexport const WS_URL = 'wss://ws.digo-labs.com';\n\nexport const AWS_DEFAULT_REGION = 'us-east-1';\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 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 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 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 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 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 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 google: { category: IconCategory.Brands, icon: 'icon-[logos--google-icon]' },\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 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 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 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 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 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\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","export default \"@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\\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_#0008] 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-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-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-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}\"","import indexCss from './index.css?raw';\n\nimport type { FontFaceData, FontFormat } from './font-types';\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*\\{[^}]*?font-family:\\s*'([^']+)'[^}]*?font-weight:\\s*([\\d\\s]+)[^}]*?font-style:\\s*(\\w+)[^}]*?src:\\s*url\\([^)]*?\\/fonts\\/([^)]+)\\)\\s*format\\('(\\w+)'\\)[^}]*?\\}/gs;\n\nconst parsedFonts: FontFaceData[] = [];\n\nlet faceMatch: RegExpExecArray | null;\n\nwhile ((faceMatch = FONT_FACE_REGEX.exec(indexCss)) !== null) {\n const family = faceMatch[1];\n const weightRaw = faceMatch[2].trim();\n const style = faceMatch[3];\n const fileName = faceMatch[4];\n const format = faceMatch[5] === 'truetype' ? 'ttf' : 'otf';\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,\n weightMin,\n weightMax,\n style,\n format: format as FontFormat,\n filePath: `/fonts/${fileName}`,\n 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};\n","export const MODELS = {\n\n};\n","export class LocalStorage {\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 aiText: '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} 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 interface ModelMetadata {\n id: string;\n provider: string;\n name: string;\n version: string;\n description: string;\n}\n\nexport const BEDROCK_MODELS = [\n {\n id: 'us.anthropic.claude-haiku-4-5-20251001-v1:0',\n provider: 'Anthropic',\n name: 'Claude Haiku',\n version: '4.5',\n description: 'Fastest and cheapest, good for short replies.',\n },\n {\n id: 'us.anthropic.claude-sonnet-4-6',\n provider: 'Anthropic',\n name: 'Claude Sonnet',\n version: '4.6',\n description: 'Balanced quality and speed for most tasks.',\n },\n {\n id: 'us.anthropic.claude-opus-4-7',\n provider: 'Anthropic',\n name: 'Claude Opus',\n version: '4.7',\n description: 'Highest quality, slower and more expensive.',\n },\n {\n id: 'us.amazon.nova-micro-v1:0',\n provider: 'Amazon',\n name: 'Nova Micro',\n version: '1',\n description: 'Text-only, extremely fast and cheap.',\n },\n {\n id: 'us.amazon.nova-lite-v1:0',\n provider: 'Amazon',\n name: 'Nova Lite',\n version: '1',\n description: 'Fast multimodal with image and video input.',\n },\n {\n id: 'us.amazon.nova-pro-v1:0',\n provider: 'Amazon',\n name: 'Nova Pro',\n version: '1',\n description: 'Higher-quality multimodal, slower than Lite.',\n },\n] as const satisfies readonly ModelMetadata[];\n\nexport type KnownTextModel = (typeof BEDROCK_MODELS)[number]['id'];\n\nexport type TextModel = KnownTextModel | (string & {});\n\nexport const DEFAULT_TEXT_MODEL: TextModel = BEDROCK_MODELS[0].id;\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 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().optional(),\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});\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 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\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 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","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 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","export const FONTS = {\n aalto: 'https://cdn.digo-labs.com/fonts/aalto.otf',\n being: 'https://cdn.digo-labs.com/fonts/being.otf',\n benzol: 'https://cdn.digo-labs.com/fonts/benzol.otf',\n clashGrotesk: 'https://cdn.digo-labs.com/fonts/clash-grotesk-variable.ttf',\n digital7Mono: 'https://cdn.digo-labs.com/fonts/digital-7-mono.ttf',\n disket: 'https://cdn.digo-labs.com/fonts/disket.ttf',\n generalSans: 'https://cdn.digo-labs.com/fonts/general-sans.ttf',\n half: 'https://cdn.digo-labs.com/fonts/half.otf',\n heming: 'https://cdn.digo-labs.com/fonts/heming.ttf',\n humane: 'https://cdn.digo-labs.com/fonts/humane-variable.ttf',\n jersey10: 'https://cdn.digo-labs.com/fonts/jersey-10-regular.ttf',\n karmaticArcade: 'https://cdn.digo-labs.com/fonts/karmatic-arcade-regular.ttf',\n kodeMono: 'https://cdn.digo-labs.com/fonts/kode-mono-vf.ttf',\n miratrix: 'https://cdn.digo-labs.com/fonts/miratrix.otf',\n nippo: 'https://cdn.digo-labs.com/fonts/nippo.ttf',\n obrazec: 'https://cdn.digo-labs.com/fonts/obrazec.otf',\n pixelony: 'https://cdn.digo-labs.com/fonts/pixelony.ttf',\n triakis: 'https://cdn.digo-labs.com/fonts/triakis.otf',\n unknown: 'https://cdn.digo-labs.com/fonts/unknown.otf',\n yeager: 'https://cdn.digo-labs.com/fonts/yeager.otf',\n geist: 'https://cdn.digo-labs.com/fonts/geist.ttf',\n geistMono: 'https://cdn.digo-labs.com/fonts/geist-mono.ttf',\n};\n","import { Result } from './types/common-types';\n\nimport clsx, { ClassValue } from 'clsx';\nimport { twMerge } 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\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:2000',\n 'https://*.digo-labs.com',\n ],\n },\n} as const;\n\nexport type AuthProject = keyof typeof AUTH_PROJECTS;\n"],"names":["CommonHelpers","text","image","arrayBuffer","decode","blob","resultArrayBuffer","removeBackground","encode","seconds","base64","min","max","hex","m","rgb","value","hexValue","result","variable","name","element","start","end","startItem","index","uri","url","link","fileName","imageFile","file","error","tryCatch","mediaType","ImagePayload","extension","accepts","callback","input","event","target","number","miliseconds","decimals","resolve","reject","urls","promises","word","maxWidth","quality","img","canvas","ratio","compressedBase64","response","timeStamptz","date","parseISO","formatDistanceToNow","baseId","ids","match","base","suffix","baseLower","newId","id","container","BACKEND_URL","WS_URL","AWS_DEFAULT_REGION","AI_MODELS","LANGUAGE_MAP","IconCategory","CURATED_ICONS","IconHelpers","usedCategories","icon","cat","grouped","category","data","indexCss","FONT_VAR_REGEX","familyToVariable","varMatch","variableName","familyName","FONT_FACE_REGEX","parsedFonts","faceMatch","family","weightRaw","style","format","weights","weightMin","weightMax","a","b","FONT_FACES","IMAGES","MODELS","LocalStorage","key","defaultValue","storedValue","ROUTES","StringHelpers","hash","c","LZString","blobToBase64String","base64StringToBlob","string","STRINGS","BEDROCK_MODELS","DEFAULT_TEXT_MODEL","textContentPartSchema","z","imageContentPartSchema","messageContentSchema","textMessageSchema","textBodySchema","dmxSendBodySchema","dmxSendResponseSchema","identifier","scalarValue","recordValue","databaseGetAllBodySchema","databaseGetAllResponseSchema","databaseGetBodySchema","databaseGetResponseSchema","databaseGetByBodySchema","databaseGetByResponseSchema","databaseCreateBodySchema","databaseCreateResponseSchema","databaseUpdateBodySchema","databaseUpdateResponseSchema","databaseDeleteBodySchema","databaseDeleteResponseSchema","filePayloadSchema","imagePayloadSchema","sizeFormattedSchema","s","aspectRatioSchema","presignUploadBodySchema","presignUploadResponseSchema","presignDownloadBodySchema","presignDownloadResponseSchema","listBodySchema","storageObjectSchema","listResponseSchema","deleteBodySchema","deleteResponseSchema","BedrockStyle","WebsocketClientEvent","WebSocketHubEvent","WEBSOCKET_HUB_CHANNEL","WebsocketLogEvent","VIDEOS","FONTS","promise","cn","inputs","twMerge","clsx","CITIES","EXCERPTS","AUTH_PROJECTS"],"mappings":"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AA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IC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"}
@@ -10,6 +10,7 @@ export declare enum WebsocketClientEvent {
10
10
  export type WebsocketClientMessage = {
11
11
  type: WebsocketClientEvent.IDENTIFY;
12
12
  id: string;
13
+ app: string;
13
14
  } | {
14
15
  type: WebsocketClientEvent.SUBSCRIBE;
15
16
  channels: string[];
@@ -38,9 +39,9 @@ export interface WebsocketsHubConfig {
38
39
  port: number;
39
40
  }
40
41
  export interface WebsocketConnectionConfig {
41
- id: string;
42
- host: string;
43
- port: number;
42
+ app: string;
43
+ url?: string;
44
+ id?: string;
44
45
  reconnect?: boolean;
45
46
  reconnectInterval?: number;
46
47
  maxReconnectInterval?: number;
@@ -48,6 +49,7 @@ export interface WebsocketConnectionConfig {
48
49
  export declare const WEBSOCKET_HUB_CHANNEL = "_hub";
49
50
  export interface WebsocketHubStatusClient {
50
51
  id: string;
52
+ app: string;
51
53
  channels: string[];
52
54
  }
53
55
  export declare enum WebsocketLogEvent {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@digo-labs/common",
3
- "version": "0.1.5",
3
+ "version": "0.1.6",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",