@digo-labs/common 0.1.8 → 0.1.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app-config-helpers.d.ts +7 -0
- package/dist/auth.d.ts +1 -1
- package/dist/constants.d.ts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +168 -136
- package/dist/index.js.map +1 -1
- package/dist/types/websocket-types.d.ts +1 -1
- package/package.json +7 -3
- package/vite-plugin-raw-mdx.ts +63 -0
- package/vite.apps.ts +5 -1
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 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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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/app-config-helpers.ts","../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":["export class AppConfigHelpers {\n private static appName: string | undefined;\n\n public static setCurrentAppName(name: string): void {\n if (this.appName !== undefined && this.appName !== name) {\n throw new Error(\n `setCurrentAppName: already set to '${this.appName}', cannot override with '${name}'. ` +\n 'This usually means defineApp() was called twice with different names.',\n );\n }\n this.appName = name;\n }\n\n public static getCurrentAppName(): string {\n if (this.appName === undefined) {\n throw new Error(\n 'getCurrentAppName: no app name registered. ' +\n 'Call defineApp() before constructing services, or pass an explicit value to the service constructor.',\n );\n }\n return this.appName;\n }\n\n public static resetAppName(): void {\n this.appName = undefined;\n }\n\n public static sanitizeAppName(name: string): string {\n const sanitized = name.toLowerCase().replace(/-/g, '_');\n\n if (!/^[a-z][a-z0-9_]*$/.test(sanitized)) {\n throw new Error(`sanitizeAppName: invalid app name '${name}' (sanitized: '${sanitized}')`);\n }\n\n return sanitized;\n }\n}\n","import { ImagePayload, Result, Time, tryCatch } from './';\n\nimport { removeBackground } from '@imgly/background-removal';\n\nimport { formatDistanceToNow, parseISO } from 'date-fns';\nimport { decode, encode } from 'base64-arraybuffer';\n\nexport class CommonHelpers {\n public static copyToClipboard(text: string) {\n navigator.clipboard.writeText(text)\n .then(() => {\n\n })\n .catch(() => {\n console.error('Failed to copy');\n });\n }\n\n public static async removeBackground(image: ImagePayload): Promise<ImagePayload> {\n const arrayBuffer = decode(image.base64);\n const blob = new Blob([arrayBuffer], { type: image.mediaType });\n\n const resultBlob = await removeBackground(blob);\n\n const resultArrayBuffer = await resultBlob.arrayBuffer();\n const base64 = encode(resultArrayBuffer);\n\n return {\n base64,\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 DIGO_STORAGE_BUCKET_SUFFIX = '-digo-labs-storage';\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:*',\n 'http://127.0.0.1:*',\n 'https://*.digo-labs.com',\n ],\n },\n} as const;\n\nexport type AuthProject = keyof typeof AUTH_PROJECTS;\n"],"names":["AppConfigHelpers","name","sanitized","__publicField","CommonHelpers","text","image","arrayBuffer","decode","blob","resultArrayBuffer","removeBackground","encode","seconds","base64","min","max","hex","m","rgb","value","hexValue","result","variable","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","DIGO_STORAGE_BUCKET_SUFFIX","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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AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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"}
|