@digo-labs/common 0.1.6 → 0.1.8

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,7 @@
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 DIGO_HEADERS = "X-Digo-App";
4
+ export declare const DIGO_ADMIN_SECRET = "X-Admin-Secret";
3
5
  export declare const WS_URL = "wss://ws.digo-labs.com";
4
6
  export declare const AWS_DEFAULT_REGION = "us-east-1";
5
7
  export declare const AI_MODELS: ModelPayload[];
package/dist/index.js CHANGED
@@ -92,7 +92,7 @@ class b {
92
92
  return this.getImagePayloadFromFile(t);
93
93
  }
94
94
  static async getImagePayloadFromFile(o) {
95
- const [e, t] = await $(o.arrayBuffer());
95
+ const [e, t] = await X(o.arrayBuffer());
96
96
  if (t) return [null, t];
97
97
  const c = b.encodeArrayBufferToBase64(e), a = o.type;
98
98
  return [{ base64: c, mediaType: a }, null];
@@ -173,7 +173,7 @@ class b {
173
173
  });
174
174
  }
175
175
  }
176
- const no = "https://api.digo-labs.com", eo = "wss://ws.digo-labs.com", io = "us-east-1", to = [
176
+ const no = "https://api.digo-labs.com", eo = "X-Digo-App", io = "X-Admin-Secret", to = "wss://ws.digo-labs.com", co = "us-east-1", ao = [
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 = "wss://ws.digo-labs.com", io = "us-
189
189
  description: "OpenAi's advanced model",
190
190
  icon: "icon-[simple-icons--openai]"
191
191
  }
192
- ], co = {
192
+ ], ro = {
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 ao {
589
+ class so {
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 ro = v, so = {
1557
+ const lo = v, go = {
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
- }, lo = {};
1564
- class go {
1563
+ }, uo = {};
1564
+ class po {
1565
1565
  static setValue(o, e) {
1566
1566
  sessionStorage.setItem(o, JSON.stringify(e));
1567
1567
  }
@@ -1576,7 +1576,7 @@ class go {
1576
1576
  }
1577
1577
  }
1578
1578
  }
1579
- const uo = {
1579
+ const yo = {
1580
1580
  aiText: "text",
1581
1581
  dmxSend: "dmx-send",
1582
1582
  storagePresignUpload: "storage-presign-upload",
@@ -1588,9 +1588,10 @@ const uo = {
1588
1588
  databaseGetBy: "database-get-by",
1589
1589
  databaseCreate: "database-create",
1590
1590
  databaseUpdate: "database-update",
1591
- databaseDelete: "database-delete"
1591
+ databaseDelete: "database-delete",
1592
+ refreshSchemas: "refresh-schemas"
1592
1593
  };
1593
- class po {
1594
+ class fo {
1594
1595
  static hashCode(o) {
1595
1596
  return [...o].reduce(
1596
1597
  (e, t) => Math.imul(31, e) + t.charCodeAt(0) | 0,
@@ -1625,7 +1626,7 @@ class po {
1625
1626
  return o ? o.charAt(0).toUpperCase() : "X";
1626
1627
  }
1627
1628
  }
1628
- const yo = {
1629
+ const mo = {
1629
1630
  digo: "Digo",
1630
1631
  refresh: "Refresh",
1631
1632
  code: "Code",
@@ -1756,7 +1757,7 @@ const yo = {
1756
1757
  version: "1",
1757
1758
  description: "Higher-quality multimodal, slower than Lite."
1758
1759
  }
1759
- ], fo = j[0].id, B = n.object({
1760
+ ], ho = j[0].id, B = n.object({
1760
1761
  type: n.literal("text"),
1761
1762
  text: n.string()
1762
1763
  }), R = n.object({
@@ -1771,7 +1772,7 @@ const yo = {
1771
1772
  ]), E = n.object({
1772
1773
  role: n.enum(["user", "assistant"]),
1773
1774
  content: L
1774
- }), mo = n.object({
1775
+ }), bo = n.object({
1775
1776
  model: n.string().optional(),
1776
1777
  messages: n.array(E).min(1),
1777
1778
  systemPrompt: n.string().optional(),
@@ -1779,54 +1780,54 @@ const yo = {
1779
1780
  maxTokens: n.number().int().positive().optional(),
1780
1781
  stopSequences: n.array(n.string()).optional(),
1781
1782
  providerOptions: n.record(n.string(), n.record(n.string(), n.any())).optional()
1782
- }), ho = n.object({
1783
+ }), wo = n.object({
1783
1784
  channel: n.number().int().min(1).max(512),
1784
1785
  value: n.number().int().min(0).max(255)
1785
- }), bo = n.object({
1786
+ }), vo = n.object({
1786
1787
  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()), wo = n.object({
1788
+ }), l = n.string().min(1), f = n.union([n.string(), n.number(), n.boolean(), n.null()]), u = n.record(n.string(), n.unknown()), xo = n.object({
1788
1789
  table: l,
1789
1790
  limit: n.number().int().positive().optional(),
1790
1791
  offset: n.number().int().nonnegative().optional()
1791
- }), vo = n.object({
1792
+ }), Ao = n.object({
1792
1793
  rows: n.array(u)
1793
- }), xo = n.object({
1794
+ }), ko = n.object({
1794
1795
  table: l,
1795
1796
  pk: l,
1796
1797
  value: f
1797
- }), Ao = n.object({
1798
+ }), So = n.object({
1798
1799
  row: u.nullable()
1799
- }), ko = n.object({
1800
+ }), Mo = n.object({
1800
1801
  table: l,
1801
1802
  column: l,
1802
1803
  value: f
1803
- }), So = n.object({
1804
+ }), Fo = n.object({
1804
1805
  rows: n.array(u)
1805
- }), Mo = n.object({
1806
+ }), Io = n.object({
1806
1807
  table: l,
1807
1808
  record: u
1808
- }), Fo = n.object({
1809
+ }), No = n.object({
1809
1810
  row: u
1810
- }), Io = n.object({
1811
+ }), To = n.object({
1811
1812
  table: l,
1812
1813
  pk: l,
1813
1814
  value: f,
1814
1815
  changes: u
1815
- }), No = n.object({
1816
+ }), Uo = n.object({
1816
1817
  success: n.boolean()
1817
- }), To = n.object({
1818
+ }), Do = n.object({
1818
1819
  table: l,
1819
1820
  pk: l,
1820
1821
  value: f
1821
- }), Uo = n.object({
1822
+ }), zo = n.object({
1822
1823
  success: n.boolean()
1823
- }), Do = n.object({
1824
+ }), Co = n.object({
1824
1825
  mediaType: n.string(),
1825
1826
  base64: n.string()
1826
- }), zo = n.object({
1827
+ }), jo = n.object({
1827
1828
  mediaType: n.string(),
1828
1829
  base64: n.string()
1829
- }), Co = n.string().regex(/^\d+x\d+$/).transform((i) => i), jo = n.string().regex(/^\d+:\d+$/).transform((i) => i), Bo = n.object({
1830
+ }), Bo = n.string().regex(/^\d+x\d+$/).transform((i) => i), Ro = n.string().regex(/^\d+:\d+$/).transform((i) => i), Lo = n.object({
1830
1831
  bucket: n.string().min(1),
1831
1832
  path: n.string().min(1),
1832
1833
  contentType: n.string().min(1),
@@ -1834,11 +1835,11 @@ const yo = {
1834
1835
  }), P = n.object({
1835
1836
  url: n.string().url(),
1836
1837
  expiresAt: n.number()
1837
- }), Ro = n.object({
1838
+ }), Eo = n.object({
1838
1839
  bucket: n.string().min(1),
1839
1840
  path: n.string().min(1),
1840
1841
  expiresIn: n.number().int().positive().max(604800).optional()
1841
- }), Lo = P, Eo = n.object({
1842
+ }), Po = P, Oo = n.object({
1842
1843
  bucket: n.string().min(1),
1843
1844
  prefix: n.string().optional(),
1844
1845
  limit: n.number().int().positive().max(1e3).optional()
@@ -1847,21 +1848,21 @@ const yo = {
1847
1848
  size: n.number(),
1848
1849
  lastModified: n.string(),
1849
1850
  etag: n.string().optional()
1850
- }), Po = n.object({
1851
+ }), _o = n.object({
1851
1852
  objects: n.array(O)
1852
- }), Oo = n.object({
1853
+ }), Go = n.object({
1853
1854
  bucket: n.string().min(1),
1854
1855
  paths: n.array(n.string().min(1)).min(1)
1855
- }), _o = n.object({
1856
+ }), qo = n.object({
1856
1857
  success: n.boolean(),
1857
1858
  deleted: n.array(n.string())
1858
1859
  });
1859
1860
  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 Go = "_hub";
1861
+ const Vo = "_hub";
1861
1862
  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 qo = {
1863
+ const Xo = {
1863
1864
  pcLogo3D: "https://cdn.digo-labs.com/videos/pc-logo-3d.mp4"
1864
- }, Vo = {
1865
+ }, $o = {
1865
1866
  aalto: "https://cdn.digo-labs.com/fonts/aalto.otf",
1866
1867
  being: "https://cdn.digo-labs.com/fonts/being.otf",
1867
1868
  benzol: "https://cdn.digo-labs.com/fonts/benzol.otf",
@@ -1885,17 +1886,17 @@ const qo = {
1885
1886
  geist: "https://cdn.digo-labs.com/fonts/geist.ttf",
1886
1887
  geistMono: "https://cdn.digo-labs.com/fonts/geist-mono.ttf"
1887
1888
  };
1888
- async function $(i) {
1889
+ async function X(i) {
1889
1890
  try {
1890
1891
  return [await i, null];
1891
1892
  } catch (o) {
1892
1893
  return [null, o];
1893
1894
  }
1894
1895
  }
1895
- function $o(...i) {
1896
+ function Ho(...i) {
1896
1897
  return D(U(i));
1897
1898
  }
1898
- const Xo = [
1899
+ const Yo = [
1899
1900
  "New York",
1900
1901
  "Tokyo",
1901
1902
  "Paris",
@@ -1921,7 +1922,7 @@ const Xo = [
1921
1922
  "Mexico City",
1922
1923
  "Oslo",
1923
1924
  "Zürich"
1924
- ], Ho = [
1925
+ ], Jo = [
1925
1926
  "The quick brown fox jumps over the lazy dog.",
1926
1927
  "Pack my box with five dozen liquor jugs.",
1927
1928
  "How vexingly quick daft zebras jump.",
@@ -1932,7 +1933,7 @@ const Xo = [
1932
1933
  "Sixty zippers were quickly picked from the woven jute bag.",
1933
1934
  "We promptly judged antique ivory buckles for the next prize.",
1934
1935
  "A mad boxer shot a quick, gloved jab to the jaw of his dizzy opponent."
1935
- ], Yo = {
1936
+ ], Ko = {
1936
1937
  monorepo: {
1937
1938
  trustedOrigins: [
1938
1939
  "http://localhost:2000",
@@ -1941,62 +1942,64 @@ const Xo = [
1941
1942
  }
1942
1943
  };
1943
1944
  export {
1944
- to as AI_MODELS,
1945
- Yo as AUTH_PROJECTS,
1946
- io as AWS_DEFAULT_REGION,
1945
+ ao as AI_MODELS,
1946
+ Ko as AUTH_PROJECTS,
1947
+ co as AWS_DEFAULT_REGION,
1947
1948
  no as BACKEND_URL,
1948
1949
  j as BEDROCK_MODELS,
1949
1950
  _ as BedrockStyle,
1950
- Xo as CITIES,
1951
+ Yo as CITIES,
1951
1952
  b as CommonHelpers,
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,
1953
+ ho as DEFAULT_TEXT_MODEL,
1954
+ io as DIGO_ADMIN_SECRET,
1955
+ eo as DIGO_HEADERS,
1956
+ Jo as EXCERPTS,
1957
+ $o as FONTS,
1958
+ lo as FONT_FACES,
1959
+ go as IMAGES,
1960
+ so as IconHelpers,
1961
+ ro as LANGUAGE_MAP,
1962
+ po as LocalStorage,
1963
+ uo as MODELS,
1964
+ yo as ROUTES,
1965
+ mo as STRINGS,
1966
+ fo as StringHelpers,
1967
+ Xo as VIDEOS,
1968
+ Vo as WEBSOCKET_HUB_CHANNEL,
1969
+ to as WS_URL,
1967
1970
  q as WebSocketHubEvent,
1968
1971
  G as WebsocketClientEvent,
1969
1972
  V as WebsocketLogEvent,
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,
1973
+ Ro as aspectRatioSchema,
1974
+ Ho as cn,
1975
+ Io as databaseCreateBodySchema,
1976
+ No as databaseCreateResponseSchema,
1977
+ Do as databaseDeleteBodySchema,
1978
+ zo as databaseDeleteResponseSchema,
1979
+ xo as databaseGetAllBodySchema,
1980
+ Ao as databaseGetAllResponseSchema,
1981
+ ko as databaseGetBodySchema,
1982
+ Mo as databaseGetByBodySchema,
1983
+ Fo as databaseGetByResponseSchema,
1984
+ So as databaseGetResponseSchema,
1985
+ To as databaseUpdateBodySchema,
1986
+ Uo as databaseUpdateResponseSchema,
1987
+ Go as deleteBodySchema,
1988
+ qo as deleteResponseSchema,
1989
+ wo as dmxSendBodySchema,
1990
+ vo as dmxSendResponseSchema,
1991
+ Co as filePayloadSchema,
1992
+ jo as imagePayloadSchema,
1993
+ Oo as listBodySchema,
1994
+ _o as listResponseSchema,
1995
+ Eo as presignDownloadBodySchema,
1996
+ Po as presignDownloadResponseSchema,
1997
+ Lo as presignUploadBodySchema,
1995
1998
  P as presignUploadResponseSchema,
1996
- Co as sizeFormattedSchema,
1999
+ Bo as sizeFormattedSchema,
1997
2000
  O as storageObjectSchema,
1998
- mo as textBodySchema,
2001
+ bo as textBodySchema,
1999
2002
  E as textMessageSchema,
2000
- $ as tryCatch
2003
+ X as tryCatch
2001
2004
  };
2002
2005
  //# sourceMappingURL=index.js.map
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 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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"}
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 DIGO_HEADERS = 'X-Digo-App';\n\nexport const DIGO_ADMIN_SECRET = 'X-Admin-Secret';\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 refreshSchemas: 'refresh-schemas',\n} as const;\n","import LZString from 'lz-string';\n\nimport {\n base64StringToBlob,\n blobToBase64String,\n} from 'blob-util';\n\nexport class StringHelpers {\n public static hashCode(data: string) {\n return [...data].reduce(\n (hash, c) => (Math.imul(31, hash) + c.charCodeAt(0)) | 0,\n 0,\n );\n }\n\n public static compress(data: string): string {\n return LZString.compress(data);\n }\n\n public static compressToBase64(data: string): string {\n return LZString.compressToBase64(data);\n }\n\n public static compressToUint8Array(data: string): Uint8Array {\n return LZString.compressToUint8Array(data);\n }\n\n public static decompress(data: string): string {\n return LZString.decompress(data);\n }\n\n public static decompressFromBase64(data: string): string {\n return LZString.decompressFromBase64(data);\n }\n\n public static decompressFromUint8Array(data: Uint8Array): string {\n return LZString.decompressFromUint8Array(data);\n }\n\n public static blobToBase64(blob: Blob): Promise<string> {\n return blobToBase64String(blob);\n }\n\n public static base64ToBlob(base64: string): Blob {\n return base64StringToBlob(base64);\n }\n\n public static getFirstLetter(string: string | undefined): string {\n if (!string) return 'X';\n return string.charAt(0).toUpperCase();\n }\n}\n","export const STRINGS = {\n digo: 'Digo',\n refresh: 'Refresh',\n code: 'Code',\n score: 'Score',\n preview: 'Preview',\n weights: 'Weights',\n examples: 'Examples',\n typography: 'Typography',\n sizes: 'Sizes',\n icons: 'Icons',\n neutral: 'Neutral',\n info: 'Info',\n selected: 'Selected',\n noneSelected: 'None selected',\n highlights: 'Highlights',\n shadows: 'Shadows',\n color: 'Color',\n untitled: 'Untitled',\n columns: 'Columns',\n save: 'Save',\n accent: 'Accent',\n applying: 'Applying',\n viewing: 'Viewing',\n clearMessages: 'Clear messages',\n clearNextMessages: 'Clear next messages',\n apply: 'Apply',\n import: 'Import',\n search: 'Search...',\n where: 'Where',\n noTimeArray: 'No time array',\n success: 'Success',\n error: 'Error',\n warning: 'Warning',\n attach: 'Attach',\n attachImage: 'Attach Image',\n actions: 'Actions',\n addNewColumn: 'Add new column',\n addNewRow: 'Add new row',\n addFilter: 'Add filter',\n addSort: 'Add sort',\n applySorting: 'Apply sorting',\n applyFilters: 'Apply filters',\n filter: 'Filter',\n sort: 'Sort',\n resetFilters: 'Reset filters',\n resetSorting: 'Reset sorting',\n description: 'Description',\n name: 'Name',\n loremIpsumSmall: 'Lorem ipsum dolor sit amet.',\n loremIpsumMedium: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam nec purus ac libero vehicula ultricies.',\n loremIpsumLong: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam nec purus ac libero vehicula ultricies. Nulla facilisi. Sed nec nisl in turpis tincidunt tincidunt. Nulla facilisi. Sed nec nisl in turpis tincidunt tincidunt.',\n selectAgent: 'Select Agent',\n selectModel: 'Select Model',\n sendPrompt: 'Send Prompt',\n view: 'View',\n toggleColumns: 'Toggle columns',\n toggleOpen: 'Toggle open',\n reset: 'Reset',\n noResultsFound: 'No results found.',\n clearFilters: 'Clear filters',\n rowsPerPage: 'Rows per page',\n id: 'Id',\n noSortsTitle: 'No sorts apply to this view',\n noSortsDescription: 'Add a column below to sort the view',\n noFiltersTitle: 'No filters apply to this view',\n noFiltersDescription: 'Add a column below to filter the view',\n defaultValue: 'Default value',\n default: 'Default',\n stepDuration: 'Step duration (ms)',\n min: 'Min',\n max: 'Max',\n icon: 'Icon',\n step: 'Step',\n decimals: 'Decimals',\n units: 'Units',\n play: 'Play',\n pause: 'Pause',\n next: 'Next',\n previous: 'Previous',\n loop: 'Loop',\n rewind: 'Rewind',\n forward: 'Forward',\n start: 'Start',\n emptyCode: 'Select a file to view its content',\n generate: 'Generate',\n savePreset: 'Save Preset',\n image: 'Image',\n};\n","import { z } from 'zod';\n\nexport 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","DIGO_HEADERS","DIGO_ADMIN_SECRET","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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A;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA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"}
package/dist/routes.d.ts CHANGED
@@ -11,4 +11,5 @@ export declare const ROUTES: {
11
11
  readonly databaseCreate: "database-create";
12
12
  readonly databaseUpdate: "database-update";
13
13
  readonly databaseDelete: "database-delete";
14
+ readonly refreshSchemas: "refresh-schemas";
14
15
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@digo-labs/common",
3
- "version": "0.1.6",
3
+ "version": "0.1.8",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",