@digo-labs/common 0.1.13 → 0.1.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../src/app-config-helpers.ts","../src/common-helpers.ts","../src/constants.ts","../src/icons.ts","../src/fonts.ts","../src/images.ts","../src/models.ts","../src/local-storage.ts","../src/session-storage.ts","../src/routes.ts","../src/string-helpers.ts","../src/strings.ts","../src/schemas/primitives.ts","../src/schemas/ai.ts","../src/schemas/dmx.ts","../src/schemas/database.ts","../src/schemas/storage.ts","../src/types/common-types.ts","../src/types/websocket-types.ts","../src/videos.ts","../src/utils.ts","../src/samples.ts","../src/auth.ts"],"sourcesContent":["export class AppConfigHelpers {\n private static appName: string | undefined;\n\n public static setCurrentAppName(name: string): void {\n if (this.appName !== undefined && this.appName !== name) {\n throw new Error(\n `setCurrentAppName: already set to '${this.appName}', cannot override with '${name}'. ` +\n 'This usually means defineApp() was called twice with different names.',\n );\n }\n this.appName = name;\n }\n\n public static getCurrentAppName(): string {\n if (this.appName === undefined) {\n throw new Error(\n 'getCurrentAppName: no app name registered. ' +\n 'Call defineApp() before constructing services, or pass an explicit value to the service constructor.',\n );\n }\n return this.appName;\n }\n\n public static resetAppName(): void {\n this.appName = undefined;\n }\n\n public static sanitizeAppName(name: string): string {\n const sanitized = name.toLowerCase().replace(/-/g, '_');\n\n if (!/^[a-z][a-z0-9_]*$/.test(sanitized)) {\n throw new Error(`sanitizeAppName: invalid app name '${name}' (sanitized: '${sanitized}')`);\n }\n\n return sanitized;\n }\n}\n","import { ImagePayload, Result, Time, tryCatch } from './';\n\nimport { removeBackground } from '@imgly/background-removal';\n\nimport { formatDistanceToNow, parseISO } from 'date-fns';\nimport { decode, encode } from 'base64-arraybuffer';\n\nexport class CommonHelpers {\n public static copyToClipboard(text: string) {\n navigator.clipboard.writeText(text)\n .then(() => {\n\n })\n .catch(() => {\n console.error('Failed to copy');\n });\n }\n\n public static async removeBackground(image: ImagePayload): Promise<ImagePayload> {\n const arrayBuffer = decode(image.base64);\n const blob = new Blob([arrayBuffer], { type: image.mediaType });\n\n const resultBlob = await removeBackground(blob);\n\n const resultArrayBuffer = await resultBlob.arrayBuffer();\n const base64 = encode(resultArrayBuffer);\n\n return {\n base64: base64,\n mediaType: 'image/png',\n };\n }\n\n public static getTimeFormatted(seconds: number): Time {\n const time: Time = {\n hours: Math.floor(seconds / 3600),\n minutes: Math.floor((seconds % 3600) / 60),\n seconds: seconds % 60,\n };\n return time;\n }\n\n public static async getTextFromClipboard(): Promise<string> {\n return await navigator.clipboard.readText();\n }\n\n public static decodeBase64(base64: string): ArrayBuffer {\n const arraybuffer = decode(base64);\n return arraybuffer;\n }\n\n public static getRandomInteger(min: number, max: number): number {\n const randomInteger = Math.floor(Math.random() * (max - min + 1)) + min;\n return randomInteger;\n }\n\n public static encodeArrayBufferToBase64(arrayBuffer: ArrayBuffer): string {\n const base64 = encode(arrayBuffer);\n return base64;\n }\n\n public static hexToRgb(hex: string) {\n const m = hex.match(/^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i);\n if (!m) return { r: 0, g: 0, b: 0 };\n return {\n r: parseInt(m[1], 16),\n g: parseInt(m[2], 16),\n b: parseInt(m[3], 16),\n };\n }\n\n public static rgbArrayToHex(rgb: [number, number, number]): string {\n const hex = rgb.map((value) => {\n const hexValue = value.toString(16);\n return hexValue.length === 1 ? '0' + hexValue : hexValue;\n }).join('');\n\n return `#${hex}`;\n }\n\n public static hexToRgbArray(hex: string): [number, number, number] {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n\n if (!result) return [0, 0, 0];\n\n return [\n parseInt(result[1], 16) / 255,\n parseInt(result[2], 16) / 255,\n parseInt(result[3], 16) / 255,\n ];\n }\n\n public static getCssVariable(variable: string) {\n return getComputedStyle(document.documentElement).getPropertyValue(variable);\n }\n\n public static setCssVariable(name: string, element: HTMLElement) {\n document.documentElement.style.setProperty(name, `${element.offsetHeight}px`);\n }\n\n public static lerp(start: number, end: number, t: number): number {\n return start + (end - start) * t; ;\n }\n\n public static lerpArray(start: number[], end: number[], t: number): number[] {\n return start.map((startItem, index) => startItem + (end[index] - startItem) * t);\n }\n\n public static clamp(value: number, min: number, max: number) {\n return Math.min(Math.max(value, min), max);\n }\n\n public static async downloadURI(uri: string, name?: string) {\n const response = await fetch(uri);\n const blob = await response.blob();\n const url = URL.createObjectURL(blob);\n const link = document.createElement('a');\n link.href = url;\n link.download = name || 'download';\n link.click();\n URL.revokeObjectURL(url);\n }\n\n public static async getFileFromUrl(url: string, fileName?: string): Promise<File> {\n const response = await fetch(url);\n const blob = await response.blob();\n const imageFile = new File([blob], fileName ? fileName : 'untitled', { type: blob.type });\n\n return imageFile;\n }\n\n public static generateUUID(): string {\n if (crypto.randomUUID) {\n return crypto.randomUUID();\n }\n\n const fallback = `${Date.now()}-${Math.random().toString(36).substring(2, 15)}${Math.random().toString(36).substring(2, 15)}`;\n\n return fallback;\n }\n\n public static async getImagePayloadFromUrl(url: string, fileName?: string): Promise<Result<ImagePayload>> {\n const imageFile = await this.getFileFromUrl(url, fileName);\n\n return this.getImagePayloadFromFile(imageFile);\n }\n\n public static async getImagePayloadFromFile(file: File): Promise<Result<ImagePayload>> {\n const [arrayBuffer, error] = await tryCatch(file.arrayBuffer());\n\n if (error) return [null, error];\n\n const base64 = CommonHelpers.encodeArrayBufferToBase64(arrayBuffer);\n const mediaType = file.type;\n\n const imageData: ImagePayload = { base64: base64, mediaType: mediaType };\n return [imageData, null];\n }\n\n public static getFileFromImagePayload(ImagePayload: ImagePayload): File {\n const arrayBuffer = decode(ImagePayload.base64);\n const blob = new Blob([arrayBuffer], { type: ImagePayload.mediaType });\n const extension = ImagePayload.mediaType.split('/')[1] || 'png';\n const file = new File([blob], `created-file.${extension}`, { type: ImagePayload.mediaType });\n\n return file;\n }\n\n public static setTabName(name: string) {\n document.title = `${name}`;\n }\n\n public static openFileSelector(accepts: string, callback: (file: File) => void): void {\n const input = document.createElement('input');\n input.type = 'file';\n\n input.accept = accepts;\n\n input.onchange = (event: Event) => {\n const target = event.target as HTMLInputElement;\n if (target.files && target.files.length > 0) {\n const file = target.files[0];\n callback(file);\n }\n };\n\n input.click();\n }\n\n public static formatNumberTwoDigits(number: number): string {\n const formatedNumber = number.toFixed().padStart(2, '0');\n return formatedNumber;\n }\n\n public getFormatedTime(miliseconds: number, decimals: number = 2): string {\n const time = (miliseconds / 1000).toFixed(decimals);\n return time;\n }\n\n public static async preloadImage(url: string): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n const image = new Image();\n image.onload = () => resolve();\n image.onerror = () => reject(new Error(`Failed to load: ${url}`));\n image.src = url;\n });\n }\n\n public static async preloadImages(urls: string[]): Promise<void> {\n const promises = urls.map(url => CommonHelpers.preloadImage(url));\n await Promise.all(promises);\n }\n\n public static getUniqueLetters(word: string): string[] {\n const uniqueLetters = [...new Set(word.split(''))];\n\n return uniqueLetters;\n }\n\n public static async compressImage(base64: string, mediaType: string, maxWidth: number = 800, quality: number = 0.7): Promise<ImagePayload> {\n return new Promise((resolve) => {\n const img = new Image();\n img.onload = () => {\n const canvas = document.createElement('canvas');\n const ratio = Math.min(maxWidth / img.width, maxWidth / img.height, 1);\n canvas.width = img.width * ratio;\n canvas.height = img.height * ratio;\n\n const ctx = canvas.getContext('2d')!;\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n\n const compressedBase64 = canvas.toDataURL('image/jpeg', quality).split(',')[1];\n\n resolve({\n base64: compressedBase64,\n mediaType: 'image/jpeg',\n });\n };\n img.src = `data:${mediaType};base64,${base64}`;\n });\n }\n\n public static async downloadCsvFromUrl(url: string) {\n const response = await fetch(url);\n\n if (!response.ok) throw new Error(`Failed to download CSV file: ${response.statusText}`);\n\n const csvData = await response.text();\n\n return csvData;\n }\n\n public static getLastUpdated(timeStamptz: string): string {\n const date = parseISO(timeStamptz);\n const formattedDate = formatDistanceToNow(date, { addSuffix: true });\n\n return formattedDate;\n }\n\n public static getUniqueIdInList(baseId: string, ids: string[]): string {\n const match = baseId.match(/^(.*?)(-\\d+)?$/);\n let base = baseId;\n let suffix = 1;\n\n if (match) {\n base = match[1];\n if (match[2]) {\n suffix = parseInt(match[2].slice(1)) + 1;\n }\n }\n\n const baseLower = base.toLowerCase();\n let newId = `${baseLower}-${suffix}`;\n\n while (ids.some(id => id.toLowerCase() === newId)) {\n suffix++;\n newId = `${baseLower}-${suffix}`;\n }\n\n return newId.toLowerCase();\n }\n\n public static scrollToBottom(container: HTMLDivElement | null) {\n if (!container) return;\n\n container.scrollTo({\n top: container.scrollHeight,\n behavior: 'smooth',\n });\n }\n}\n","import { CodeLanguageMetadata, ModelPayload } from './types/common-types';\n\nexport const BACKEND_URL = 'https://api.digo-labs.com';\n\nexport const DIGO_HEADERS = 'X-Digo-App';\n\nexport const DIGO_ADMIN_SECRET = 'X-Admin-Secret';\n\nexport const DIGO_STORAGE_BUCKET_SUFFIX = '-digo-labs-storage';\n\nexport const DIGO_COLORS = ['#58C2E3', '#79F2A9', '#985EFF', '#BDF279'];\n\nexport const WS_URL = 'wss://ws.digo-labs.com';\n\nexport const AWS_DEFAULT_REGION = 'us-east-1';\n\nexport const AI_MODELS: ModelPayload[] = [\n {\n name: 'Claude 3.7 Sonnet',\n description: 'Anthropic\\'s advanced model',\n icon: 'icon-[simple-icons--anthropic]',\n },\n {\n name: 'Gemini 2.5 Pro',\n description: 'Google\\'s latest model',\n icon: 'icon-[simple-icons--googlegemini]',\n },\n {\n name: 'GPT-4.1',\n description: 'OpenAi\\'s advanced model',\n icon: 'icon-[simple-icons--openai]',\n },\n];\n\nexport const LANGUAGE_MAP: Record<string, CodeLanguageMetadata> = {\n typescript: { icon: 'typescript', name: 'TypeScript' },\n javascript: { icon: 'javascript', name: 'JavaScript' },\n tsx: { icon: 'typescript', name: 'TSX' },\n jsx: { icon: 'javascript', name: 'JSX' },\n python: { icon: 'python', name: 'Python' },\n rust: { icon: 'code', name: 'Rust' },\n go: { icon: 'code', name: 'Go' },\n sql: { icon: 'code', name: 'SQL' },\n bash: { icon: 'terminal', name: 'Bash' },\n sh: { icon: 'terminal', name: 'Shell' },\n shell: { icon: 'terminal', name: 'Shell' },\n json: { icon: 'code', name: 'JSON' },\n css: { icon: 'code', name: 'CSS' },\n html: { icon: 'code', name: 'HTML' },\n markdown: { icon: 'code', name: 'Markdown' },\n yaml: { icon: 'code', name: 'YAML' },\n xml: { icon: 'code', name: 'XML' },\n text: { icon: 'code', name: 'Text' },\n};\n","enum IconCategory {\n Navigation = 'Navigation',\n Actions = 'Actions',\n Status = 'Status',\n Media = 'Media',\n Files = 'Files',\n UI = 'UI',\n Brands = 'Brands',\n Programming = 'Programming',\n Tools = 'Tools',\n Data = 'Data',\n Communication = 'Communication',\n Design = 'Design',\n AI = 'AI',\n Numbers = 'Numbers',\n Misc = 'Misc',\n}\n\ninterface IconProperties {\n icon: string;\n category: IconCategory;\n}\n\ninterface IconEntry extends IconProperties {\n id: string;\n}\n\nexport type CuratedIcons = keyof typeof CURATED_ICONS;\n\nconst CURATED_ICONS = {\n arrowUp: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-up]' },\n arrowDown: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-down]' },\n arrowLeft: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-left]' },\n arrowRight: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-right]' },\n arrowUpLeft: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-up-left]' },\n arrowUpRight: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-up-right]' },\n arrowDownLeft: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-down-left]' },\n arrowDownRight: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-down-right]' },\n arrowLeftRight: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-left-right]' },\n arrowUpDown: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-up-down]' },\n circleArrowUp: { category: IconCategory.Navigation, icon: 'icon-[lucide--circle-arrow-up]' },\n circleArrowDown: { category: IconCategory.Navigation, icon: 'icon-[lucide--circle-arrow-down]' },\n circleArrowLeft: { category: IconCategory.Navigation, icon: 'icon-[lucide--circle-arrow-left]' },\n circleArrowRight: { category: IconCategory.Navigation, icon: 'icon-[lucide--circle-arrow-right]' },\n chevronUp: { category: IconCategory.Navigation, icon: 'icon-[lucide--chevron-up]' },\n chevronDown: { category: IconCategory.Navigation, icon: 'icon-[lucide--chevron-down]' },\n chevronLeft: { category: IconCategory.Navigation, icon: 'icon-[lucide--chevron-left]' },\n chevronRight: { category: IconCategory.Navigation, icon: 'icon-[lucide--chevron-right]' },\n chevronsUp: { category: IconCategory.Navigation, icon: 'icon-[lucide--chevrons-up]' },\n chevronsDown: { category: IconCategory.Navigation, icon: 'icon-[lucide--chevrons-down]' },\n chevronsLeft: { category: IconCategory.Navigation, icon: 'icon-[lucide--chevrons-left]' },\n chevronsRight: { category: IconCategory.Navigation, icon: 'icon-[lucide--chevrons-right]' },\n chevronsUpDown: { category: IconCategory.Navigation, icon: 'icon-[lucide--chevrons-up-down]' },\n cornerDownLeft: { category: IconCategory.Navigation, icon: 'icon-[lucide--corner-down-left]' },\n cornerDownRight: { category: IconCategory.Navigation, icon: 'icon-[lucide--corner-down-right]' },\n cornerLeftDown: { category: IconCategory.Navigation, icon: 'icon-[lucide--corner-left-down]' },\n cornerLeftUp: { category: IconCategory.Navigation, icon: 'icon-[lucide--corner-left-up]' },\n cornerRightDown: { category: IconCategory.Navigation, icon: 'icon-[lucide--corner-right-down]' },\n cornerRightUp: { category: IconCategory.Navigation, icon: 'icon-[lucide--corner-right-up]' },\n cornerUpLeft: { category: IconCategory.Navigation, icon: 'icon-[lucide--corner-up-left]' },\n cornerUpRight: { category: IconCategory.Navigation, icon: 'icon-[lucide--corner-up-right]' },\n home: { category: IconCategory.Navigation, icon: 'icon-[lucide--house]' },\n compass: { category: IconCategory.Navigation, icon: 'icon-[lucide--compass]' },\n menu: { category: IconCategory.Navigation, icon: 'icon-[lucide--menu]' },\n anchor: { category: IconCategory.Navigation, icon: 'icon-[lucide--anchor]' },\n route: { category: IconCategory.Navigation, icon: 'icon-[lucide--route]' },\n router: { category: IconCategory.Navigation, icon: 'icon-[lucide--router]' },\n externalLink: { category: IconCategory.Navigation, icon: 'icon-[lucide--external-link]' },\n move: { category: IconCategory.Navigation, icon: 'icon-[lucide--move]' },\n expand: { category: IconCategory.Navigation, icon: 'icon-[material-symbols--expand-more-rounded]' },\n collapse: { category: IconCategory.Navigation, icon: 'icon-[material-symbols--expand-less-rounded]' },\n firstPage: { category: IconCategory.Navigation, icon: 'icon-[material-symbols--first-page-rounded]' },\n lastPage: { category: IconCategory.Navigation, icon: 'icon-[material-symbols--last-page-rounded]' },\n openInNew: { category: IconCategory.Navigation, icon: 'icon-[material-symbols--open-in-new-rounded]' },\n select: { category: IconCategory.Navigation, icon: 'icon-[mi--select]' },\n signIn: { category: IconCategory.Navigation, icon: 'icon-[lucide--log-in]' },\n login: { category: IconCategory.Navigation, icon: 'icon-[lucide--log-in]' },\n logout: { category: IconCategory.Navigation, icon: 'icon-[lucide--log-out]' },\n squareMenu: { category: IconCategory.Navigation, icon: 'icon-[lucide--square-menu]' },\n add: { category: IconCategory.Actions, icon: 'icon-[lucide--plus]' },\n remove: { category: IconCategory.Actions, icon: 'icon-[lucide--minus]' },\n close: { category: IconCategory.Actions, icon: 'icon-[lucide--x]' },\n check: { category: IconCategory.Actions, icon: 'icon-[lucide--check]' },\n checkCheck: { category: IconCategory.Actions, icon: 'icon-[lucide--check-check]' },\n checkIndeterminate: { category: IconCategory.Actions, icon: 'icon-[material-symbols--check-indeterminate-small-rounded]' },\n search: { category: IconCategory.Actions, icon: 'icon-[lucide--search]' },\n zoomIn: { category: IconCategory.Actions, icon: 'icon-[lucide--zoom-in]' },\n zoomOut: { category: IconCategory.Actions, icon: 'icon-[lucide--zoom-out]' },\n edit: { category: IconCategory.Actions, icon: 'icon-[lucide--pencil]' },\n pencilLine: { category: IconCategory.Actions, icon: 'icon-[lucide--pencil-line]' },\n delete: { category: IconCategory.Actions, icon: 'icon-[lucide--trash]' },\n trash: { category: IconCategory.Actions, icon: 'icon-[lucide--trash-2]' },\n copy: { category: IconCategory.Actions, icon: 'icon-[lucide--copy]' },\n paste: { category: IconCategory.Actions, icon: 'icon-[lucide--clipboard-paste]' },\n cut: { category: IconCategory.Actions, icon: 'icon-[lucide--scissors]' },\n save: { category: IconCategory.Actions, icon: 'icon-[lucide--save]' },\n download: { category: IconCategory.Actions, icon: 'icon-[lucide--download]' },\n upload: { category: IconCategory.Actions, icon: 'icon-[lucide--upload]' },\n refresh: { category: IconCategory.Actions, icon: 'icon-[lucide--refresh-cw]' },\n refreshCcw: { category: IconCategory.Actions, icon: 'icon-[lucide--refresh-ccw]' },\n rotateCw: { category: IconCategory.Actions, icon: 'icon-[lucide--rotate-cw]' },\n rotateCcw: { category: IconCategory.Actions, icon: 'icon-[lucide--rotate-ccw]' },\n sync: { category: IconCategory.Actions, icon: 'icon-[material-symbols--sync-rounded]' },\n undo: { category: IconCategory.Actions, icon: 'icon-[lucide--undo-2]' },\n redo: { category: IconCategory.Actions, icon: 'icon-[lucide--redo-2]' },\n send: { category: IconCategory.Actions, icon: 'icon-[lucide--send]' },\n share: { category: IconCategory.Actions, icon: 'icon-[lucide--share]' },\n share2: { category: IconCategory.Actions, icon: 'icon-[lucide--share-2]' },\n attach: { category: IconCategory.Actions, icon: 'icon-[lucide--paperclip]' },\n link: { category: IconCategory.Actions, icon: 'icon-[lucide--link]' },\n link2: { category: IconCategory.Actions, icon: 'icon-[lucide--link-2]' },\n unlink: { category: IconCategory.Actions, icon: 'icon-[lucide--unlink]' },\n filter: { category: IconCategory.Actions, icon: 'icon-[lucide--filter]' },\n listFilter: { category: IconCategory.Actions, icon: 'icon-[lucide--list-filter]' },\n sort: { category: IconCategory.Actions, icon: 'icon-[lucide--arrow-up-down]' },\n sortAsc: { category: IconCategory.Actions, icon: 'icon-[lucide--arrow-up-narrow-wide]' },\n sortDesc: { category: IconCategory.Actions, icon: 'icon-[lucide--arrow-down-wide-narrow]' },\n lock: { category: IconCategory.Actions, icon: 'icon-[lucide--lock]' },\n lockOpen: { category: IconCategory.Actions, icon: 'icon-[lucide--lock-open]' },\n unlock: { category: IconCategory.Actions, icon: 'icon-[lucide--lock-open]' },\n print: { category: IconCategory.Actions, icon: 'icon-[lucide--printer]' },\n backspace: { category: IconCategory.Actions, icon: 'icon-[lucide--delete]' },\n crop: { category: IconCategory.Actions, icon: 'icon-[lucide--crop]' },\n textSearch: { category: IconCategory.Actions, icon: 'icon-[lucide--text-search]' },\n clipboardCopy: { category: IconCategory.Actions, icon: 'icon-[lucide--clipboard-copy]' },\n replace: { category: IconCategory.Actions, icon: 'icon-[lucide--replace]' },\n searchCheck: { category: IconCategory.Actions, icon: 'icon-[lucide--search-check]' },\n success: { category: IconCategory.Status, icon: 'icon-[lucide--circle-check]' },\n checkCircle: { category: IconCategory.Status, icon: 'icon-[lucide--circle-check-big]' },\n info: { category: IconCategory.Status, icon: 'icon-[lucide--info]' },\n warning: { category: IconCategory.Status, icon: 'icon-[lucide--triangle-alert]' },\n error: { category: IconCategory.Status, icon: 'icon-[lucide--circle-x]' },\n help: { category: IconCategory.Status, icon: 'icon-[lucide--circle-help]' },\n spinner: { category: IconCategory.Status, icon: 'icon-[line-md--loading-twotone-loop]' },\n spinnerDots: { category: IconCategory.Status, icon: 'icon-[svg-spinners--3-dots-move]' },\n loading: { category: IconCategory.Status, icon: 'icon-[line-md--loading-twotone-loop]' },\n loaderCircle: { category: IconCategory.Status, icon: 'icon-[lucide--loader-circle]' },\n verified: { category: IconCategory.Status, icon: 'icon-[lucide--badge-check]' },\n visibility: { category: IconCategory.Status, icon: 'icon-[lucide--eye]' },\n visibilityOff: { category: IconCategory.Status, icon: 'icon-[lucide--eye-off]' },\n online: { category: IconCategory.Status, icon: 'icon-[lucide--circle-dot]' },\n circleCheck: { category: IconCategory.Status, icon: 'icon-[lucide--circle-check]' },\n squareCheck: { category: IconCategory.Status, icon: 'icon-[lucide--square-check]' },\n loader: { category: IconCategory.Status, icon: 'icon-[lucide--loader]' },\n gauge: { category: IconCategory.Status, icon: 'icon-[lucide--gauge]' },\n play: { category: IconCategory.Media, icon: 'icon-[lucide--play]' },\n pause: { category: IconCategory.Media, icon: 'icon-[lucide--pause]' },\n stop: { category: IconCategory.Media, icon: 'icon-[lucide--square]' },\n stopCircle: { category: IconCategory.Media, icon: 'icon-[lucide--circle-stop]' },\n skipBack: { category: IconCategory.Media, icon: 'icon-[lucide--skip-back]' },\n skipForward: { category: IconCategory.Media, icon: 'icon-[lucide--skip-forward]' },\n skipNext: { category: IconCategory.Media, icon: 'icon-[lucide--skip-forward]' },\n skipPrevious: { category: IconCategory.Media, icon: 'icon-[lucide--skip-back]' },\n fastForward: { category: IconCategory.Media, icon: 'icon-[lucide--fast-forward]' },\n fastRewind: { category: IconCategory.Media, icon: 'icon-[lucide--rewind]' },\n rewind: { category: IconCategory.Media, icon: 'icon-[lucide--rewind]' },\n loop: { category: IconCategory.Media, icon: 'icon-[lucide--repeat]' },\n shuffle: { category: IconCategory.Media, icon: 'icon-[lucide--shuffle]' },\n volumeUp: { category: IconCategory.Media, icon: 'icon-[lucide--volume-2]' },\n volumeDown: { category: IconCategory.Media, icon: 'icon-[lucide--volume-1]' },\n volumeOff: { category: IconCategory.Media, icon: 'icon-[lucide--volume-off]' },\n image: { category: IconCategory.Media, icon: 'icon-[lucide--image]' },\n imagePlus: { category: IconCategory.Media, icon: 'icon-[lucide--image-plus]' },\n video: { category: IconCategory.Media, icon: 'icon-[lucide--video]' },\n videoOff: { category: IconCategory.Media, icon: 'icon-[lucide--video-off]' },\n camera: { category: IconCategory.Media, icon: 'icon-[lucide--camera]' },\n mic: { category: IconCategory.Media, icon: 'icon-[lucide--mic]' },\n micOff: { category: IconCategory.Media, icon: 'icon-[lucide--mic-off]' },\n webcam: { category: IconCategory.Media, icon: 'icon-[lucide--webcam]' },\n music: { category: IconCategory.Media, icon: 'icon-[lucide--music]' },\n music2: { category: IconCategory.Media, icon: 'icon-[lucide--music-2]' },\n headset: { category: IconCategory.Media, icon: 'icon-[lucide--headset]' },\n captions: { category: IconCategory.Media, icon: 'icon-[lucide--captions]' },\n playCircle: { category: IconCategory.Media, icon: 'icon-[lucide--circle-play]' },\n pauseCircle: { category: IconCategory.Media, icon: 'icon-[lucide--circle-pause]' },\n imageUp: { category: IconCategory.Media, icon: 'icon-[lucide--image-up]' },\n images: { category: IconCategory.Media, icon: 'icon-[lucide--images]' },\n file: { category: IconCategory.Files, icon: 'icon-[lucide--file]' },\n fileText: { category: IconCategory.Files, icon: 'icon-[lucide--file-text]' },\n fileAdd: { category: IconCategory.Files, icon: 'icon-[lucide--file-plus]' },\n fileZip: { category: IconCategory.Files, icon: 'icon-[lucide--file-archive]' },\n fileSymlink: { category: IconCategory.Files, icon: 'icon-[lucide--file-symlink]' },\n fileSearch: { category: IconCategory.Files, icon: 'icon-[lucide--file-search]' },\n folder: { category: IconCategory.Files, icon: 'icon-[lucide--folder]' },\n folderOpen: { category: IconCategory.Files, icon: 'icon-[lucide--folder-open]' },\n folderClosed: { category: IconCategory.Files, icon: 'icon-[lucide--folder-closed]' },\n folderPlus: { category: IconCategory.Files, icon: 'icon-[lucide--folder-plus]' },\n folderMinus: { category: IconCategory.Files, icon: 'icon-[lucide--folder-minus]' },\n folderGit: { category: IconCategory.Files, icon: 'icon-[lucide--folder-git-2]' },\n folderSymlink: { category: IconCategory.Files, icon: 'icon-[lucide--folder-symlink]' },\n document: { category: IconCategory.Files, icon: 'icon-[lucide--file-text]' },\n code: { category: IconCategory.Files, icon: 'icon-[lucide--code]' },\n codeBlock: { category: IconCategory.Files, icon: 'icon-[lucide--square-code]' },\n codeBracket: { category: IconCategory.Files, icon: 'icon-[lucide--braces]' },\n codeWrap: { category: IconCategory.Files, icon: 'icon-[lucide--wrap-text]' },\n archive: { category: IconCategory.Files, icon: 'icon-[lucide--archive]' },\n notebook: { category: IconCategory.Files, icon: 'icon-[lucide--notebook]' },\n notes: { category: IconCategory.Files, icon: 'icon-[lucide--sticky-note]' },\n clipboard: { category: IconCategory.Files, icon: 'icon-[lucide--clipboard]' },\n floppyDisk: { category: IconCategory.Files, icon: 'icon-[lucide--save]' },\n fileUp: { category: IconCategory.Files, icon: 'icon-[lucide--file-up]' },\n clipboardList: { category: IconCategory.Files, icon: 'icon-[lucide--clipboard-list]' },\n files: { category: IconCategory.Files, icon: 'icon-[lucide--files]' },\n filePen: { category: IconCategory.Files, icon: 'icon-[lucide--file-pen]' },\n panelLeft: { category: IconCategory.UI, icon: 'icon-[lucide--panel-left]' },\n panelRight: { category: IconCategory.UI, icon: 'icon-[lucide--panel-right]' },\n panelTop: { category: IconCategory.UI, icon: 'icon-[lucide--panel-top]' },\n panelBottom: { category: IconCategory.UI, icon: 'icon-[lucide--panel-bottom]' },\n sidebar: { category: IconCategory.UI, icon: 'icon-[lucide--panel-left]' },\n moreHorizontal: { category: IconCategory.UI, icon: 'icon-[lucide--ellipsis]' },\n moreVertical: { category: IconCategory.UI, icon: 'icon-[lucide--ellipsis-vertical]' },\n dragHandle: { category: IconCategory.UI, icon: 'icon-[lucide--grip-horizontal]' },\n dragIndicator: { category: IconCategory.UI, icon: 'icon-[lucide--grip-vertical]' },\n gridView: { category: IconCategory.UI, icon: 'icon-[lucide--grid-2x2]' },\n gridSquare: { category: IconCategory.UI, icon: 'icon-[lucide--grid-2x2]' },\n colorSwatch: { category: IconCategory.UI, icon: 'icon-[heroicons-solid--color-swatch]' },\n layoutGrid: { category: IconCategory.UI, icon: 'icon-[lucide--layout-grid]' },\n listView: { category: IconCategory.UI, icon: 'icon-[lucide--list]' },\n listOrdered: { category: IconCategory.UI, icon: 'icon-[lucide--list-ordered]' },\n settings: { category: IconCategory.UI, icon: 'icon-[lucide--settings]' },\n tune: { category: IconCategory.UI, icon: 'icon-[lucide--sliders-horizontal]' },\n slidersVertical: { category: IconCategory.UI, icon: 'icon-[lucide--sliders-vertical]' },\n notifications: { category: IconCategory.UI, icon: 'icon-[lucide--bell]' },\n bellDot: { category: IconCategory.UI, icon: 'icon-[lucide--bell-dot]' },\n bellOff: { category: IconCategory.UI, icon: 'icon-[lucide--bell-off]' },\n person: { category: IconCategory.UI, icon: 'icon-[lucide--user]' },\n group: { category: IconCategory.UI, icon: 'icon-[lucide--users]' },\n userCheck: { category: IconCategory.UI, icon: 'icon-[lucide--user-check]' },\n userPlus: { category: IconCategory.UI, icon: 'icon-[lucide--user-plus]' },\n userMinus: { category: IconCategory.UI, icon: 'icon-[lucide--user-minus]' },\n userX: { category: IconCategory.UI, icon: 'icon-[lucide--user-x]' },\n userCog: { category: IconCategory.UI, icon: 'icon-[lucide--user-cog]' },\n keyboard: { category: IconCategory.UI, icon: 'icon-[lucide--keyboard]' },\n keyboardReturn: { category: IconCategory.UI, icon: 'icon-[material-symbols--keyboard-return-rounded]' },\n keyboardCommand: { category: IconCategory.UI, icon: 'icon-[lucide--command]' },\n fullscreen: { category: IconCategory.UI, icon: 'icon-[lucide--maximize]' },\n fullscreenExit: { category: IconCategory.UI, icon: 'icon-[lucide--minimize]' },\n dashboard: { category: IconCategory.UI, icon: 'icon-[lucide--layout-dashboard]' },\n widgets: { category: IconCategory.UI, icon: 'icon-[material-symbols--widgets-rounded]' },\n apps: { category: IconCategory.UI, icon: 'icon-[lucide--grid-3x3]' },\n pictureInPicture: { category: IconCategory.UI, icon: 'icon-[lucide--picture-in-picture]' },\n toggleOn: { category: IconCategory.UI, icon: 'icon-[lucide--toggle-right]' },\n toggleOff: { category: IconCategory.UI, icon: 'icon-[lucide--toggle-left]' },\n appWindow: { category: IconCategory.UI, icon: 'icon-[lucide--app-window]' },\n terminalWindow: { category: IconCategory.UI, icon: 'icon-[lucide--square-terminal]' },\n scrollArea: { category: IconCategory.UI, icon: 'icon-[lucide--scroll]' },\n inspectSearch: { category: IconCategory.UI, icon: 'icon-[lucide--scan-search]' },\n option: { category: IconCategory.UI, icon: 'icon-[lucide--option]' },\n cube: { category: IconCategory.UI, icon: 'icon-[iconoir--select-face-3d]' },\n textCursorInput: { category: IconCategory.UI, icon: 'icon-[lucide--text-cursor-input]' },\n blocks: { category: IconCategory.UI, icon: 'icon-[lucide--blocks]' },\n listTree: { category: IconCategory.UI, icon: 'icon-[lucide--list-tree]' },\n squareChevronDown: { category: IconCategory.UI, icon: 'icon-[lucide--square-chevron-down]' },\n letterText: { category: IconCategory.UI, icon: 'icon-[lucide--letter-text]' },\n squareMousePointer: { category: IconCategory.UI, icon: 'icon-[lucide--square-mouse-pointer]' },\n columns3: { category: IconCategory.UI, icon: 'icon-[lucide--columns-3]' },\n listCollapse: { category: IconCategory.UI, icon: 'icon-[lucide--list-collapse]' },\n foldVertical: { category: IconCategory.UI, icon: 'icon-[lucide--fold-vertical]' },\n inbox: { category: IconCategory.UI, icon: 'icon-[lucide--inbox]' },\n squareDashed: { category: IconCategory.UI, icon: 'icon-[lucide--square-dashed]' },\n tableOfContents: { category: IconCategory.UI, icon: 'icon-[lucide--table-of-contents]' },\n grid3x3: { category: IconCategory.UI, icon: 'icon-[lucide--grid-3x3]' },\n fieldGroup: { category: IconCategory.UI, icon: 'icon-[lucide--group]' },\n rectangleEllipsis: { category: IconCategory.UI, icon: 'icon-[lucide--rectangle-ellipsis]' },\n inputGroup: { category: IconCategory.UI, icon: 'icon-[lucide--between-horizontal-end]' },\n groupItems: { category: IconCategory.UI, icon: 'icon-[lucide--group]' },\n separator: { category: IconCategory.UI, icon: 'icon-[lucide--separator-horizontal]' },\n stretchHorizontal: { category: IconCategory.UI, icon: 'icon-[lucide--stretch-horizontal]' },\n squareStack: { category: IconCategory.UI, icon: 'icon-[lucide--square-stack]' },\n textCursor: { category: IconCategory.UI, icon: 'icon-[lucide--text-cursor]' },\n component: { category: IconCategory.UI, icon: 'icon-[lucide--component]' },\n layoutTemplate: { category: IconCategory.UI, icon: 'icon-[lucide--layout-template]' },\n google: { category: IconCategory.Brands, icon: 'icon-[logos--google-icon]' },\n googleMono: { category: IconCategory.Brands, icon: 'icon-[simple-icons--google]' },\n github: { category: IconCategory.Brands, icon: 'icon-[mdi--github]' },\n apple: { category: IconCategory.Brands, icon: 'icon-[mdi--apple]' },\n openai: { category: IconCategory.Brands, icon: 'icon-[simple-icons--openai]' },\n anthropic: { category: IconCategory.Brands, icon: 'icon-[simple-icons--anthropic]' },\n gemini: { category: IconCategory.Brands, icon: 'icon-[simple-icons--googlegemini]' },\n discord: { category: IconCategory.Brands, icon: 'icon-[simple-icons--discord]' },\n slack: { category: IconCategory.Brands, icon: 'icon-[simple-icons--slack]' },\n figma: { category: IconCategory.Brands, icon: 'icon-[simple-icons--figma]' },\n linkedin: { category: IconCategory.Brands, icon: 'icon-[lucide--linkedin]' },\n codepen: { category: IconCategory.Brands, icon: 'icon-[lucide--codepen]' },\n rss: { category: IconCategory.Brands, icon: 'icon-[lucide--rss]' },\n typescript: { category: IconCategory.Programming, icon: 'icon-[simple-icons--typescript]' },\n javascript: { category: IconCategory.Programming, icon: 'icon-[simple-icons--javascript]' },\n python: { category: IconCategory.Programming, icon: 'icon-[simple-icons--python]' },\n react: { category: IconCategory.Programming, icon: 'icon-[simple-icons--react]' },\n tailwindcss: { category: IconCategory.Programming, icon: 'icon-[simple-icons--tailwindcss]' },\n json: { category: IconCategory.Programming, icon: 'icon-[lucide--braces]' },\n html: { category: IconCategory.Programming, icon: 'icon-[simple-icons--html5]' },\n css: { category: IconCategory.Programming, icon: 'icon-[simple-icons--css3]' },\n terminal: { category: IconCategory.Programming, icon: 'icon-[lucide--terminal]' },\n api: { category: IconCategory.Programming, icon: 'icon-[lucide--webhook]' },\n variable: { category: IconCategory.Programming, icon: 'icon-[lucide--variable]' },\n webhook: { category: IconCategory.Programming, icon: 'icon-[lucide--webhook]' },\n functionIcon: { category: IconCategory.Programming, icon: 'icon-[lucide--function-square]' },\n cursor: { category: IconCategory.Tools, icon: 'icon-[lucide--mouse-pointer]' },\n cursorClick: { category: IconCategory.Tools, icon: 'icon-[lucide--mouse-pointer-click]' },\n hand: { category: IconCategory.Tools, icon: 'icon-[lucide--hand]' },\n pen: { category: IconCategory.Tools, icon: 'icon-[lucide--pen]' },\n brush: { category: IconCategory.Tools, icon: 'icon-[lucide--paintbrush]' },\n eraser: { category: IconCategory.Tools, icon: 'icon-[lucide--eraser]' },\n colorize: { category: IconCategory.Tools, icon: 'icon-[lucide--pipette]' },\n straighten: { category: IconCategory.Tools, icon: 'icon-[lucide--ruler]' },\n wrench: { category: IconCategory.Tools, icon: 'icon-[lucide--wrench]' },\n plug: { category: IconCategory.Tools, icon: 'icon-[lucide--plug]' },\n scan: { category: IconCategory.Tools, icon: 'icon-[lucide--scan]' },\n aperture: { category: IconCategory.Tools, icon: 'icon-[lucide--aperture]' },\n pencilRuler: { category: IconCategory.Tools, icon: 'icon-[lucide--pencil-ruler]' },\n mousePointer2: { category: IconCategory.Tools, icon: 'icon-[lucide--mouse-pointer-2]' },\n table: { category: IconCategory.Data, icon: 'icon-[lucide--table]' },\n barChart: { category: IconCategory.Data, icon: 'icon-[lucide--chart-bar]' },\n chartBarStacked: { category: IconCategory.Data, icon: 'icon-[lucide--chart-bar-stacked]' },\n pieChart: { category: IconCategory.Data, icon: 'icon-[lucide--chart-pie]' },\n lineChart: { category: IconCategory.Data, icon: 'icon-[lucide--line-chart]' },\n chartActivity: { category: IconCategory.Data, icon: 'icon-[lucide--activity]' },\n trendingUp: { category: IconCategory.Data, icon: 'icon-[lucide--trending-up]' },\n trendingDown: { category: IconCategory.Data, icon: 'icon-[lucide--trending-down]' },\n analytics: { category: IconCategory.Data, icon: 'icon-[lucide--chart-no-axes-combined]' },\n array: { category: IconCategory.Data, icon: 'icon-[material-symbols--data-array-rounded]' },\n database: { category: IconCategory.Data, icon: 'icon-[lucide--database]' },\n tag: { category: IconCategory.Data, icon: 'icon-[lucide--tag]' },\n label: { category: IconCategory.Data, icon: 'icon-[material-symbols--label-rounded]' },\n hash: { category: IconCategory.Data, icon: 'icon-[lucide--hash]' },\n percent: { category: IconCategory.Data, icon: 'icon-[lucide--percent]' },\n tally5: { category: IconCategory.Data, icon: 'icon-[lucide--tally-5]' },\n chat: { category: IconCategory.Communication, icon: 'icon-[lucide--message-square]' },\n chatBubble: { category: IconCategory.Communication, icon: 'icon-[lucide--message-circle]' },\n messageTyping: { category: IconCategory.Communication, icon: 'icon-[lucide--message-square-more]' },\n comment: { category: IconCategory.Communication, icon: 'icon-[lucide--message-square-text]' },\n email: { category: IconCategory.Communication, icon: 'icon-[lucide--mail]' },\n call: { category: IconCategory.Communication, icon: 'icon-[lucide--phone]' },\n thumbUp: { category: IconCategory.Communication, icon: 'icon-[lucide--thumbs-up]' },\n thumbDown: { category: IconCategory.Communication, icon: 'icon-[lucide--thumbs-down]' },\n messageSquareMore: { category: IconCategory.Communication, icon: 'icon-[lucide--message-square-more]' },\n messageCircle: { category: IconCategory.Communication, icon: 'icon-[lucide--message-circle]' },\n messagesSquare: { category: IconCategory.Communication, icon: 'icon-[lucide--messages-square]' },\n palette: { category: IconCategory.Design, icon: 'icon-[lucide--palette]' },\n paintBucket: { category: IconCategory.Design, icon: 'icon-[lucide--paint-bucket]' },\n formatPaint: { category: IconCategory.Design, icon: 'icon-[lucide--paint-roller]' },\n autoAwesome: { category: IconCategory.Design, icon: 'icon-[material-symbols--auto-awesome-rounded]' },\n style: { category: IconCategory.Design, icon: 'icon-[material-symbols--style]' },\n opacity: { category: IconCategory.Design, icon: 'icon-[material-symbols--opacity-rounded]' },\n gradient: { category: IconCategory.Design, icon: 'icon-[material-symbols--gradient]' },\n contrast: { category: IconCategory.Design, icon: 'icon-[carbon--contrast]' },\n brightness: { category: IconCategory.Design, icon: 'icon-[lucide--sun]' },\n layers: { category: IconCategory.Design, icon: 'icon-[lucide--layers]' },\n blendMode: { category: IconCategory.Design, icon: 'icon-[lucide--blend]' },\n shadow: { category: IconCategory.Design, icon: 'icon-[material-symbols--ev-shadow]' },\n roundedCorner: { category: IconCategory.Design, icon: 'icon-[material-symbols--rounded-corner-rounded]' },\n formatSpacing: { category: IconCategory.Design, icon: 'icon-[material-symbols--format-letter-spacing-rounded]' },\n shapes: { category: IconCategory.Design, icon: 'icon-[lucide--shapes]' },\n swatchBook: { category: IconCategory.Design, icon: 'icon-[lucide--swatch-book]' },\n droplets: { category: IconCategory.Design, icon: 'icon-[lucide--droplets]' },\n sunMedium: { category: IconCategory.Design, icon: 'icon-[lucide--sun-medium]' },\n spline: { category: IconCategory.Design, icon: 'icon-[lucide--spline]' },\n robot: { category: IconCategory.AI, icon: 'icon-[lucide--bot]' },\n sparkles: { category: IconCategory.AI, icon: 'icon-[lucide--sparkles]' },\n sparkle: { category: IconCategory.AI, icon: 'icon-[lucide--sparkle]' },\n brain: { category: IconCategory.AI, icon: 'icon-[lucide--brain]' },\n magic: { category: IconCategory.AI, icon: 'icon-[lucide--wand-sparkles]' },\n experiment: { category: IconCategory.AI, icon: 'icon-[lucide--flask-conical]' },\n psychology: { category: IconCategory.AI, icon: 'icon-[material-symbols--psychology-rounded]' },\n botMessageSquare: { category: IconCategory.AI, icon: 'icon-[lucide--bot-message-square]' },\n one: { category: IconCategory.Numbers, icon: 'icon-[material-symbols--counter-1-rounded]' },\n two: { category: IconCategory.Numbers, icon: 'icon-[material-symbols--counter-2-rounded]' },\n three: { category: IconCategory.Numbers, icon: 'icon-[material-symbols--counter-3-rounded]' },\n four: { category: IconCategory.Numbers, icon: 'icon-[material-symbols--counter-4-rounded]' },\n five: { category: IconCategory.Numbers, icon: 'icon-[material-symbols--counter-5-rounded]' },\n six: { category: IconCategory.Numbers, icon: 'icon-[material-symbols--counter-6-rounded]' },\n seven: { category: IconCategory.Numbers, icon: 'icon-[material-symbols--counter-7-rounded]' },\n eight: { category: IconCategory.Numbers, icon: 'icon-[material-symbols--counter-8]' },\n nine: { category: IconCategory.Numbers, icon: 'icon-[material-symbols--counter-9-rounded]' },\n favorite: { category: IconCategory.Misc, icon: 'icon-[lucide--heart]' },\n star: { category: IconCategory.Misc, icon: 'icon-[lucide--star]' },\n bookmark: { category: IconCategory.Misc, icon: 'icon-[lucide--bookmark]' },\n flag: { category: IconCategory.Misc, icon: 'icon-[lucide--flag]' },\n flagTriangle: { category: IconCategory.Misc, icon: 'icon-[lucide--flag-triangle-right]' },\n creditCard: { category: IconCategory.Misc, icon: 'icon-[lucide--credit-card]' },\n shoppingCart: { category: IconCategory.Misc, icon: 'icon-[lucide--shopping-cart]' },\n store: { category: IconCategory.Misc, icon: 'icon-[lucide--store]' },\n coins: { category: IconCategory.Misc, icon: 'icon-[lucide--coins]' },\n dollarSign: { category: IconCategory.Misc, icon: 'icon-[lucide--dollar-sign]' },\n receipt: { category: IconCategory.Misc, icon: 'icon-[lucide--receipt]' },\n location: { category: IconCategory.Misc, icon: 'icon-[lucide--map-pin]' },\n calendar: { category: IconCategory.Misc, icon: 'icon-[lucide--calendar]' },\n clock: { category: IconCategory.Misc, icon: 'icon-[lucide--clock]' },\n clockRewind: { category: IconCategory.Misc, icon: 'icon-[lucide--history]' },\n schedule: { category: IconCategory.Misc, icon: 'icon-[lucide--clock]' },\n timer: { category: IconCategory.Misc, icon: 'icon-[lucide--timer]' },\n stopwatch: { category: IconCategory.Misc, icon: 'icon-[lucide--timer]' },\n alarmClock: { category: IconCategory.Misc, icon: 'icon-[lucide--alarm-clock]' },\n lightbulb: { category: IconCategory.Misc, icon: 'icon-[lucide--lightbulb]' },\n bolt: { category: IconCategory.Misc, icon: 'icon-[lucide--zap]' },\n cloud: { category: IconCategory.Misc, icon: 'icon-[lucide--cloud]' },\n cloudUpload: { category: IconCategory.Misc, icon: 'icon-[lucide--cloud-upload]' },\n cloudDownload: { category: IconCategory.Misc, icon: 'icon-[lucide--cloud-download]' },\n lightMode: { category: IconCategory.Misc, icon: 'icon-[lucide--sun]' },\n darkMode: { category: IconCategory.Misc, icon: 'icon-[lucide--moon]' },\n moonStar: { category: IconCategory.Misc, icon: 'icon-[lucide--moon-star]' },\n sunDim: { category: IconCategory.Misc, icon: 'icon-[lucide--sun-dim]' },\n power: { category: IconCategory.Misc, icon: 'icon-[lucide--power]' },\n shield: { category: IconCategory.Misc, icon: 'icon-[lucide--shield]' },\n shieldCheck: { category: IconCategory.Misc, icon: 'icon-[lucide--shield-check]' },\n shieldOff: { category: IconCategory.Misc, icon: 'icon-[lucide--shield-off]' },\n key: { category: IconCategory.Misc, icon: 'icon-[lucide--key]' },\n keyRound: { category: IconCategory.Misc, icon: 'icon-[lucide--key-round]' },\n fingerprint: { category: IconCategory.Misc, icon: 'icon-[lucide--fingerprint]' },\n pin: { category: IconCategory.Misc, icon: 'icon-[lucide--pin]' },\n paperclip: { category: IconCategory.Misc, icon: 'icon-[lucide--paperclip]' },\n globe: { category: IconCategory.Misc, icon: 'icon-[lucide--globe]' },\n globeLock: { category: IconCategory.Misc, icon: 'icon-[lucide--globe-lock]' },\n gps: { category: IconCategory.Misc, icon: 'icon-[lucide--locate]' },\n network: { category: IconCategory.Misc, icon: 'icon-[lucide--network]' },\n cpu: { category: IconCategory.Misc, icon: 'icon-[lucide--cpu]' },\n monitor: { category: IconCategory.Misc, icon: 'icon-[lucide--monitor]' },\n smartphone: { category: IconCategory.Misc, icon: 'icon-[lucide--smartphone]' },\n tablet: { category: IconCategory.Misc, icon: 'icon-[lucide--tablet]' },\n monitorSmartphone: { category: IconCategory.Misc, icon: 'icon-[lucide--monitor-smartphone]' },\n server: { category: IconCategory.Misc, icon: 'icon-[lucide--server]' },\n hardDrive: { category: IconCategory.Misc, icon: 'icon-[lucide--hard-drive]' },\n box: { category: IconCategory.Misc, icon: 'icon-[lucide--box]' },\n puzzle: { category: IconCategory.Misc, icon: 'icon-[lucide--puzzle]' },\n briefcase: { category: IconCategory.Misc, icon: 'icon-[lucide--briefcase]' },\n calculator: { category: IconCategory.Misc, icon: 'icon-[lucide--calculator]' },\n buildings: { category: IconCategory.Misc, icon: 'icon-[lucide--building-2]' },\n bug: { category: IconCategory.Misc, icon: 'icon-[lucide--bug]' },\n droplet: { category: IconCategory.Misc, icon: 'icon-[lucide--droplet]' },\n bookOpen: { category: IconCategory.Misc, icon: 'icon-[lucide--book-open]' },\n bookClosed: { category: IconCategory.Misc, icon: 'icon-[lucide--book-marked]' },\n lifebuoy: { category: IconCategory.Misc, icon: 'icon-[lucide--life-buoy]' },\n accessibility: { category: IconCategory.Misc, icon: 'icon-[lucide--accessibility]' },\n workflow: { category: IconCategory.Misc, icon: 'icon-[lucide--workflow]' },\n gitBranch: { category: IconCategory.Misc, icon: 'icon-[lucide--git-branch]' },\n gitBranchPlus: { category: IconCategory.Misc, icon: 'icon-[lucide--git-branch-plus]' },\n gitCommit: { category: IconCategory.Misc, icon: 'icon-[lucide--git-commit-horizontal]' },\n gitMerge: { category: IconCategory.Misc, icon: 'icon-[lucide--git-merge]' },\n gitPullRequest: { category: IconCategory.Misc, icon: 'icon-[lucide--git-pull-request]' },\n crosshair: { category: IconCategory.Misc, icon: 'icon-[lucide--crosshair]' },\n target: { category: IconCategory.Misc, icon: 'icon-[lucide--target]' },\n smile: { category: IconCategory.Misc, icon: 'icon-[lucide--smile]' },\n frown: { category: IconCategory.Misc, icon: 'icon-[lucide--frown]' },\n smilePlus: { category: IconCategory.Misc, icon: 'icon-[lucide--smile-plus]' },\n bold: { category: IconCategory.Misc, icon: 'icon-[lucide--bold]' },\n italic: { category: IconCategory.Misc, icon: 'icon-[lucide--italic]' },\n strikethrough: { category: IconCategory.Misc, icon: 'icon-[lucide--strikethrough]' },\n underline: { category: IconCategory.Misc, icon: 'icon-[lucide--underline]' },\n heading: { category: IconCategory.Misc, icon: 'icon-[lucide--heading]' },\n type: { category: IconCategory.Misc, icon: 'icon-[lucide--type]' },\n caseSensitive: { category: IconCategory.Misc, icon: 'icon-[lucide--case-sensitive]' },\n alignLeft: { category: IconCategory.Misc, icon: 'icon-[lucide--align-left]' },\n alignCenter: { category: IconCategory.Misc, icon: 'icon-[lucide--align-center]' },\n alignRight: { category: IconCategory.Misc, icon: 'icon-[lucide--align-right]' },\n sunMoon: { category: IconCategory.Misc, icon: 'icon-[lucide--sun-moon]' },\n tvMinimal: { category: IconCategory.Misc, icon: 'icon-[lucide--tv-minimal]' },\n orbit: { category: IconCategory.Misc, icon: 'icon-[lucide--orbit]' },\n gitFork: { category: IconCategory.Misc, icon: 'icon-[lucide--git-fork]' },\n bookOpenText: { category: IconCategory.Misc, icon: 'icon-[lucide--book-open-text]' },\n serverOff: { category: IconCategory.Misc, icon: 'icon-[lucide--server-off]' },\n packagePlus: { category: IconCategory.Misc, icon: 'icon-[lucide--package-plus]' },\n\n} satisfies Record<string, IconProperties>;\n\nexport class IconHelpers {\n public static getIcon(name: string): string {\n return name in CURATED_ICONS ? CURATED_ICONS[name as CuratedIcons].icon : name;\n }\n\n public static getCategory(name: CuratedIcons): IconCategory {\n return CURATED_ICONS[name].category;\n }\n\n public static getCategories(): IconCategory[] {\n const usedCategories = new Set<IconCategory>();\n\n for (const icon of Object.values(CURATED_ICONS)) {\n usedCategories.add(icon.category);\n }\n\n return Object.values(IconCategory).filter(cat => usedCategories.has(cat));\n }\n\n public static getByCategory(): Record<IconCategory, IconEntry[]> {\n const grouped = {} as Record<IconCategory, IconEntry[]>;\n\n for (const category of Object.values(IconCategory)) {\n grouped[category] = [];\n }\n\n for (const [id, data] of Object.entries(CURATED_ICONS)) {\n grouped[data.category].push({\n id: id,\n category: data.category,\n icon: data.icon,\n });\n }\n\n return grouped;\n }\n}\n","import indexCss from './index.css?raw';\n\nexport type FontFormat = 'ttf' | 'otf' | 'woff2';\n\nexport interface FontFaceData {\n family: string;\n weightMin: number;\n weightMax: number;\n style: string;\n format: FontFormat;\n filePath: string;\n fileName: string;\n cssVariable: string | null;\n}\n\nconst FONT_VAR_REGEX = /--font-([\\w-]+):\\s*'([^']+)'/g;\n\nconst familyToVariable = new Map<string, string>();\n\nlet varMatch: RegExpExecArray | null;\n\nwhile ((varMatch = FONT_VAR_REGEX.exec(indexCss)) !== null) {\n const variableName = `--font-${varMatch[1]}`;\n const familyName = varMatch[2];\n familyToVariable.set(familyName.toLowerCase(), variableName);\n}\n\nconst FONT_FACE_REGEX = /@font-face\\s*\\{([^}]*)\\}/gs;\n\nconst parsedFonts: FontFaceData[] = [];\n\nlet faceMatch: RegExpExecArray | null;\n\nwhile ((faceMatch = FONT_FACE_REGEX.exec(indexCss)) !== null) {\n const block = faceMatch[1];\n\n const familyMatch = block.match(/font-family:\\s*'([^']+)'/);\n const weightMatch = block.match(/font-weight:\\s*([\\d\\s]+)/);\n const styleMatch = block.match(/font-style:\\s*(\\w+)/);\n const srcMatch = block.match(/src:\\s*url\\([^)]*?\\/fonts\\/([^)]+)\\)\\s*format\\('(\\w+)'\\)/);\n\n if (!familyMatch || !weightMatch || !styleMatch || !srcMatch) continue;\n\n const family = familyMatch[1];\n const weightRaw = weightMatch[1].trim();\n const style = styleMatch[1];\n const fileName = srcMatch[1];\n const format = srcMatch[2] === 'truetype' ? 'ttf' : srcMatch[2] === 'opentype' ? 'otf' : 'woff2';\n\n const weights = weightRaw.split(/\\s+/).map(Number);\n const weightMin = Math.min(...weights);\n const weightMax = Math.max(...weights);\n\n parsedFonts.push({\n family: family,\n weightMin: weightMin,\n weightMax: weightMax,\n style: style,\n format: format as FontFormat,\n filePath: `/fonts/${fileName}`,\n fileName: fileName,\n cssVariable: familyToVariable.get(family.toLowerCase()) ?? null,\n });\n}\n\nparsedFonts.sort((a, b) => a.family.localeCompare(b.family));\n\nexport const FONT_FACES: FontFaceData[] = parsedFonts;\n","export const IMAGES = {\n digoLogo: 'https://cdn.digo-labs.com/images/digo-logo.png',\n digoLogoSvg: 'https://cdn.digo-labs.com/images/digo-logo.svg',\n pcLogoV1Svg: 'https://cdn.digo-labs.com/images/pc-logo-v1.svg',\n pcLogo3d: 'https://cdn.digo-labs.com/images/pc-logo-3d.png',\n userPlaceholder: 'https://cdn.digo-labs.com/images/user-placeholder.png',\n audio3d: 'https://cdn.digo-labs.com/images/audio-3d.jpg',\n blocks3d: 'https://cdn.digo-labs.com/images/blocks-3d.jpg',\n components3d: 'https://cdn.digo-labs.com/images/components-3d.jpg',\n image3d: 'https://cdn.digo-labs.com/images/image-3d.jpg',\n pages3d: 'https://cdn.digo-labs.com/images/pages-3d.jpg',\n text3d: 'https://cdn.digo-labs.com/images/text-3d.jpg',\n video3d: 'https://cdn.digo-labs.com/images/video-3d.jpg',\n};\n","export const MODELS = {\n brain: 'https://bbzocstzdddfuoferejj.supabase.co/storage/v1/object/public/models/brain_hologram.glb',\n};\n","export class LocalStorage {\n public static setValue<T>(key: string, value: T): void {\n localStorage.setItem(key, JSON.stringify(value));\n }\n\n public static loadValue<T>(key: string, defaultValue: T): T {\n const storedValue = localStorage.getItem(key);\n\n if (!storedValue || storedValue === 'undefined') {\n return defaultValue;\n }\n\n try {\n return JSON.parse(storedValue);\n } catch {\n return defaultValue;\n }\n }\n}\n","export class SessionStorage {\n public static setValue<T>(key: string, value: T): void {\n sessionStorage.setItem(key, JSON.stringify(value));\n }\n\n public static loadValue<T>(key: string, defaultValue: T): T {\n const storedValue = sessionStorage.getItem(key);\n\n if (!storedValue || storedValue === 'undefined') {\n return defaultValue;\n }\n\n try {\n return JSON.parse(storedValue);\n } catch {\n return defaultValue;\n }\n }\n}\n","export const ROUTES = {\n bedrockText: 'bedrock-text',\n dmxSend: 'dmx-send',\n storagePresignUpload: 'storage-presign-upload',\n storagePresignDownload: 'storage-presign-download',\n storageList: 'storage-list',\n storageDelete: 'storage-delete',\n databaseGetAll: 'database-get-all',\n databaseGet: 'database-get',\n databaseGetBy: 'database-get-by',\n databaseCreate: 'database-create',\n databaseUpdate: 'database-update',\n databaseDelete: 'database-delete',\n refreshSchemas: 'refresh-schemas',\n} as const;\n","import LZString from 'lz-string';\n\nimport {\n base64StringToBlob,\n blobToBase64String,\n} from 'blob-util';\n\nexport class StringHelpers {\n public static hashCode(data: string) {\n return [...data].reduce(\n (hash, c) => (Math.imul(31, hash) + c.charCodeAt(0)) | 0,\n 0,\n );\n }\n\n public static compress(data: string): string {\n return LZString.compress(data);\n }\n\n public static compressToBase64(data: string): string {\n return LZString.compressToBase64(data);\n }\n\n public static compressToUint8Array(data: string): Uint8Array {\n return LZString.compressToUint8Array(data);\n }\n\n public static decompress(data: string): string {\n return LZString.decompress(data);\n }\n\n public static decompressFromBase64(data: string): string {\n return LZString.decompressFromBase64(data);\n }\n\n public static decompressFromUint8Array(data: Uint8Array): string {\n return LZString.decompressFromUint8Array(data);\n }\n\n public static blobToBase64(blob: Blob): Promise<string> {\n return blobToBase64String(blob);\n }\n\n public static base64ToBlob(base64: string): Blob {\n return base64StringToBlob(base64);\n }\n\n public static getFirstLetter(string: string | undefined): string {\n if (!string) return 'X';\n return string.charAt(0).toUpperCase();\n }\n}\n","export const STRINGS = {\n digo: 'Digo',\n refresh: 'Refresh',\n code: 'Code',\n score: 'Score',\n preview: 'Preview',\n weights: 'Weights',\n examples: 'Examples',\n typography: 'Typography',\n sizes: 'Sizes',\n icons: 'Icons',\n neutral: 'Neutral',\n info: 'Info',\n selected: 'Selected',\n noneSelected: 'None selected',\n highlights: 'Highlights',\n shadows: 'Shadows',\n color: 'Color',\n untitled: 'Untitled',\n columns: 'Columns',\n save: 'Save',\n accent: 'Accent',\n applying: 'Applying',\n viewing: 'Viewing',\n clearMessages: 'Clear messages',\n clearNextMessages: 'Clear next messages',\n apply: 'Apply',\n import: 'Import',\n search: 'Search...',\n where: 'Where',\n noTimeArray: 'No time array',\n success: 'Success',\n error: 'Error',\n warning: 'Warning',\n attach: 'Attach',\n attachImage: 'Attach Image',\n actions: 'Actions',\n addNewColumn: 'Add new column',\n addNewRow: 'Add new row',\n addFilter: 'Add filter',\n addSort: 'Add sort',\n applySorting: 'Apply sorting',\n applyFilters: 'Apply filters',\n filter: 'Filter',\n sort: 'Sort',\n resetFilters: 'Reset filters',\n resetSorting: 'Reset sorting',\n description: 'Description',\n name: 'Name',\n loremIpsumSmall: 'Lorem ipsum dolor sit amet.',\n loremIpsumMedium: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam nec purus ac libero vehicula ultricies.',\n loremIpsumLong: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam nec purus ac libero vehicula ultricies. Nulla facilisi. Sed nec nisl in turpis tincidunt tincidunt. Nulla facilisi. Sed nec nisl in turpis tincidunt tincidunt.',\n selectAgent: 'Select Agent',\n selectModel: 'Select Model',\n sendPrompt: 'Send Prompt',\n view: 'View',\n toggleColumns: 'Toggle columns',\n toggleOpen: 'Toggle open',\n reset: 'Reset',\n noResultsFound: 'No results found.',\n clearFilters: 'Clear filters',\n rowsPerPage: 'Rows per page',\n id: 'Id',\n noSortsTitle: 'No sorts apply to this view',\n noSortsDescription: 'Add a column below to sort the view',\n noFiltersTitle: 'No filters apply to this view',\n noFiltersDescription: 'Add a column below to filter the view',\n defaultValue: 'Default value',\n default: 'Default',\n stepDuration: 'Step duration (ms)',\n min: 'Min',\n max: 'Max',\n icon: 'Icon',\n step: 'Step',\n decimals: 'Decimals',\n units: 'Units',\n play: 'Play',\n pause: 'Pause',\n next: 'Next',\n previous: 'Previous',\n loop: 'Loop',\n rewind: 'Rewind',\n forward: 'Forward',\n start: 'Start',\n emptyCode: 'Select a file to view its content',\n generate: 'Generate',\n savePreset: 'Save Preset',\n image: 'Image',\n};\n","import { z } from 'zod';\n\nexport const filePayloadSchema = z.object({\n mediaType: z.string(),\n base64: z.string(),\n});\n\nexport type FilePayload = z.infer<typeof filePayloadSchema>;\n\nexport const imagePayloadSchema = z.object({\n mediaType: z.string(),\n base64: z.string(),\n});\n\nexport type ImagePayload = z.infer<typeof imagePayloadSchema>;\n\nexport const sizeFormattedSchema = z\n .string()\n .regex(/^\\d+x\\d+$/)\n .transform(s => s as `${number}x${number}`);\n\nexport type SizeFormatted = z.infer<typeof sizeFormattedSchema>;\n\nexport const aspectRatioSchema = z\n .string()\n .regex(/^\\d+:\\d+$/)\n .transform(s => s as `${number}:${number}`);\n\nexport type AspectRatio = z.infer<typeof aspectRatioSchema>;\n","import { z } from 'zod';\n\nimport { aspectRatioSchema } from './primitives';\n\nexport interface ModelMetadata {\n id: string;\n provider: string;\n name: string;\n version: string;\n description: string;\n}\n\nexport const imageGenerateBodySchema = z.object({\n prompt: z.string().min(1),\n aspectRatio: aspectRatioSchema.optional(),\n seed: z.number().int().optional(),\n});\n\nexport type ImageGenerateBody = z.infer<typeof imageGenerateBodySchema>;\n\nexport const imageEditBodySchema = z.object({\n prompt: z.string().min(1),\n image: z.string().url(),\n strength: z.number().min(0).max(1).optional(),\n});\n\nexport type ImageEditBody = z.infer<typeof imageEditBodySchema>;\n\nexport const imageUpscaleBodySchema = z.object({\n image: z.string().url(),\n factor: z.number().positive().optional(),\n});\n\nexport type ImageUpscaleBody = z.infer<typeof imageUpscaleBodySchema>;\n\nexport const imageRemoveBackgroundBodySchema = z.object({\n image: z.string().url(),\n});\n\nexport type ImageRemoveBackgroundBody = z.infer<typeof imageRemoveBackgroundBodySchema>;\n\nexport const generatedImageSchema = z.object({\n url: z.string().url(),\n contentType: z.string().optional(),\n width: z.number().optional(),\n height: z.number().optional(),\n seed: z.number().optional(),\n model: z.string().optional(),\n});\n\nexport type GeneratedImage = z.infer<typeof generatedImageSchema>;\n\nexport const videoGenerateBodySchema = z.object({\n prompt: z.string().min(1),\n aspectRatio: aspectRatioSchema.optional(),\n durationSeconds: z.number().positive().optional(),\n});\n\nexport type VideoGenerateBody = z.infer<typeof videoGenerateBodySchema>;\n\nexport const generatedVideoSchema = z.object({\n url: z.string().url(),\n contentType: z.string().optional(),\n durationSeconds: z.number().optional(),\n model: z.string().optional(),\n});\n\nexport type GeneratedVideo = z.infer<typeof generatedVideoSchema>;\n\nexport const audioSpeechBodySchema = z.object({\n text: z.string().min(1),\n voice: z.string().optional(),\n speed: z.number().positive().optional(),\n});\n\nexport type AudioSpeechBody = z.infer<typeof audioSpeechBodySchema>;\n\nexport const audioMusicBodySchema = z.object({\n prompt: z.string().min(1),\n durationSeconds: z.number().positive().optional(),\n});\n\nexport type AudioMusicBody = z.infer<typeof audioMusicBodySchema>;\n\nexport const audioTranscribeBodySchema = z.object({\n audio: z.string().url(),\n language: z.string().optional(),\n});\n\nexport type AudioTranscribeBody = z.infer<typeof audioTranscribeBodySchema>;\n\nexport const generatedAudioSchema = z.object({\n url: z.string().url(),\n contentType: z.string().optional(),\n durationSeconds: z.number().optional(),\n model: z.string().optional(),\n});\n\nexport type GeneratedAudio = z.infer<typeof generatedAudioSchema>;\n\nexport const transcriptionSegmentSchema = z.object({\n text: z.string(),\n startSecond: z.number(),\n endSecond: z.number(),\n});\n\nexport type TranscriptionSegment = z.infer<typeof transcriptionSegmentSchema>;\n\nexport const transcriptionSchema = z.object({\n text: z.string(),\n segments: z.array(transcriptionSegmentSchema).optional(),\n language: z.string().optional(),\n model: z.string().optional(),\n});\n\nexport type Transcription = z.infer<typeof transcriptionSchema>;\n\nconst textContentPartSchema = z.object({\n type: z.literal('text'),\n text: z.string(),\n});\n\nconst imageContentPartSchema = z.object({\n type: z.literal('image'),\n source: z.object({\n base64: z.string(),\n mediaType: z.string(),\n }),\n});\n\nconst messageContentSchema = z.union([\n z.string(),\n z.array(z.union([textContentPartSchema, imageContentPartSchema])),\n]);\n\nexport const textMessageSchema = z.object({\n role: z.enum(['user', 'assistant']),\n content: messageContentSchema,\n});\n\nexport type TextMessage = z.infer<typeof textMessageSchema>;\n\nexport const textBodySchema = z.object({\n model: z.string().optional(),\n messages: z.array(textMessageSchema).min(1),\n systemPrompt: z.string().optional(),\n temperature: z.number().min(0).max(2).optional(),\n maxTokens: z.number().int().positive().optional(),\n stopSequences: z.array(z.string()).optional(),\n providerOptions: z.record(z.string(), z.record(z.string(), z.any())).optional(),\n});\n\nexport type TextBody = z.infer<typeof textBodySchema>;\n\nexport const textGenerateBodySchema = textBodySchema.omit({\n model: true,\n stopSequences: true,\n providerOptions: true,\n});\n\nexport type TextGenerateBody = z.infer<typeof textGenerateBodySchema>;\n\nexport type TextStreamChunk = { text: string; };\n\nexport type TextStreamResult = { text: string; stopReason: string; };\n\nexport interface TextStream extends AsyncIterable<TextStreamChunk> {\n readonly text: string;\n readonly stopReason: string | null;\n collect(): Promise<TextStreamResult>;\n}\n","import { z } from 'zod';\n\nexport const dmxSendBodySchema = z.object({\n channel: z.number().int().min(1).max(512),\n value: z.number().int().min(0).max(255),\n});\n\nexport type DmxSendBody = z.infer<typeof dmxSendBodySchema>;\n\nexport const dmxSendResponseSchema = z.object({\n success: z.boolean(),\n});\n\nexport type DmxSendResponse = z.infer<typeof dmxSendResponseSchema>;\n","import { z } from 'zod';\n\nconst identifier = z.string().min(1);\nconst scalarValue = z.union([z.string(), z.number(), z.boolean(), z.null()]);\nconst recordValue = z.record(z.string(), z.unknown());\n\nexport const databaseGetAllBodySchema = z.object({\n table: identifier,\n limit: z.number().int().positive().max(1000).default(100),\n offset: z.number().int().nonnegative().optional(),\n});\n\nexport type DatabaseGetAllBody = z.infer<typeof databaseGetAllBodySchema>;\n\nexport const databaseGetAllResponseSchema = z.object({\n rows: z.array(recordValue),\n});\n\nexport type DatabaseGetAllResponse = z.infer<typeof databaseGetAllResponseSchema>;\n\nexport const databaseGetBodySchema = z.object({\n table: identifier,\n pk: identifier,\n value: scalarValue,\n});\n\nexport type DatabaseGetBody = z.infer<typeof databaseGetBodySchema>;\n\nexport const databaseGetResponseSchema = z.object({\n row: recordValue.nullable(),\n});\n\nexport type DatabaseGetResponse = z.infer<typeof databaseGetResponseSchema>;\n\nexport const databaseGetByBodySchema = z.object({\n table: identifier,\n column: identifier,\n value: scalarValue,\n limit: z.number().int().positive().max(1000).default(100),\n offset: z.number().int().nonnegative().optional(),\n});\n\nexport type DatabaseGetByBody = z.infer<typeof databaseGetByBodySchema>;\n\nexport const databaseGetByResponseSchema = z.object({\n rows: z.array(recordValue),\n});\n\nexport type DatabaseGetByResponse = z.infer<typeof databaseGetByResponseSchema>;\n\nexport const databaseCreateBodySchema = z.object({\n table: identifier,\n record: recordValue,\n});\n\nexport type DatabaseCreateBody = z.infer<typeof databaseCreateBodySchema>;\n\nexport const databaseCreateResponseSchema = z.object({\n row: recordValue,\n});\n\nexport type DatabaseCreateResponse = z.infer<typeof databaseCreateResponseSchema>;\n\nexport const databaseUpdateBodySchema = z.object({\n table: identifier,\n pk: identifier,\n value: scalarValue,\n changes: recordValue,\n});\n\nexport type DatabaseUpdateBody = z.infer<typeof databaseUpdateBodySchema>;\n\nexport const databaseUpdateResponseSchema = z.object({\n success: z.boolean(),\n});\n\nexport type DatabaseUpdateResponse = z.infer<typeof databaseUpdateResponseSchema>;\n\nexport const databaseDeleteBodySchema = z.object({\n table: identifier,\n pk: identifier,\n value: scalarValue,\n});\n\nexport type DatabaseDeleteBody = z.infer<typeof databaseDeleteBodySchema>;\n\nexport const databaseDeleteResponseSchema = z.object({\n success: z.boolean(),\n});\n\nexport type DatabaseDeleteResponse = z.infer<typeof databaseDeleteResponseSchema>;\n","import { z } from 'zod';\n\nexport const presignUploadBodySchema = z.object({\n bucket: z.string().min(1),\n path: z.string().min(1),\n contentType: z.string().min(1),\n expiresIn: z.number().int().positive().max(604800).optional(),\n});\n\nexport type PresignUploadBody = z.infer<typeof presignUploadBodySchema>;\n\nexport const presignUploadResponseSchema = z.object({\n url: z.string().url(),\n expiresAt: z.number(),\n});\n\nexport type PresignUploadResponse = z.infer<typeof presignUploadResponseSchema>;\n\nexport const presignDownloadBodySchema = z.object({\n bucket: z.string().min(1),\n path: z.string().min(1),\n expiresIn: z.number().int().positive().max(604800).optional(),\n});\n\nexport type PresignDownloadBody = z.infer<typeof presignDownloadBodySchema>;\n\nexport const presignDownloadResponseSchema = presignUploadResponseSchema;\n\nexport type PresignDownloadResponse = z.infer<typeof presignDownloadResponseSchema>;\n\nexport const listBodySchema = z.object({\n bucket: z.string().min(1),\n prefix: z.string().optional(),\n limit: z.number().int().positive().max(1000).optional(),\n});\n\nexport type ListBody = z.infer<typeof listBodySchema>;\n\nexport const storageObjectSchema = z.object({\n key: z.string(),\n size: z.number(),\n lastModified: z.string(),\n etag: z.string().optional(),\n});\n\nexport type StorageObject = z.infer<typeof storageObjectSchema>;\n\nexport const listResponseSchema = z.object({\n objects: z.array(storageObjectSchema),\n});\n\nexport type ListResponse = z.infer<typeof listResponseSchema>;\n\nexport const deleteBodySchema = z.object({\n bucket: z.string().min(1),\n paths: z.array(z.string().min(1)).min(1),\n});\n\nexport type DeleteBody = z.infer<typeof deleteBodySchema>;\n\nexport const deleteResponseSchema = z.object({\n success: z.boolean(),\n deleted: z.array(z.string()),\n});\n\nexport type DeleteResponse = z.infer<typeof deleteResponseSchema>;\n","export interface Time {\n hours: number;\n minutes: number;\n seconds: number;\n}\n\nexport type Vector3 = [number, number, number];\n\nexport type Side = 'top' | 'right' | 'bottom' | 'left';\n\nexport enum BedrockStyle {\n ANIMATED_FILM = '3D_ANIMATED_FAMILY_FILM',\n FLAT_VECTOR_ILLUSTRATION = 'FLAT_VECTOR_ILLUSTRATION',\n GRAPHIC_NOVEL_ILLUSTRATION = 'GRAPHIC_NOVEL_ILLUSTRATION',\n MAXIMALISM = 'MAXIMALISM',\n MIDCENTURY_RETRO = 'MIDCENTURY_RETRO',\n PHOTOREALISM = 'PHOTOREALISM',\n SOFT_DIGITAL_PAINTING = 'SOFT_DIGITAL_PAINTING',\n}\n\nexport interface Size {\n width: number;\n height: number;\n}\n\nexport interface GradientStop {\n color: string;\n percent: number;\n}\n\nexport interface ModelPayload {\n name: string;\n description: string;\n icon: string;\n}\n\nexport interface CommonMetadata {\n name: string;\n description?: string;\n image?: File;\n tags?: string[];\n icon?: string;\n}\n\ntype SuccessResult<T> = readonly[T, null];\n\ntype ErrorResult<E = Error> = readonly[null, E];\n\nexport type Result<T, E = Error> = SuccessResult<T> | ErrorResult<E>;\n\nexport interface CodeLanguageMetadata {\n icon: string;\n name: string;\n}\n\nexport type Orientation = 'horizontal' | 'vertical';\n\nexport type Alignment = 'left' | 'center' | 'right';\n","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","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\nexport type AuthTier = 'public' | 'user' | 'org' | 'admin';\n\nexport type SignInProvider = 'google';\n\nexport interface AccessTiers {\n read: AuthTier;\n write: AuthTier;\n}\n\nexport type AccessOperation = keyof AccessTiers;\n\nexport interface TableAccessRule extends AccessTiers {\n owner?: string;\n}\n\nexport const ORG_EMAIL_DOMAIN = 'productionclub.net';\n\nconst ADMIN_ROLE = 'admin';\n\nconst TIER_RANK: Record<AuthTier, number> = {\n public: 0,\n user: 1,\n org: 2,\n admin: 3,\n};\n\nexport interface AuthTierUser {\n email: string;\n emailVerified: boolean;\n role?: string | null;\n}\n\nexport class AuthTierHelpers {\n public static deriveTier(user: AuthTierUser | null | undefined): AuthTier {\n if (!user) return 'public';\n if (this.hasAdminRole(user.role)) return 'admin';\n if (this.isOrgUser(user)) return 'org';\n\n return 'user';\n }\n\n public static meetsTier(tier: AuthTier, required: AuthTier): boolean {\n if (!this.isTier(tier) || !this.isTier(required)) return false;\n\n return TIER_RANK[tier] >= TIER_RANK[required];\n }\n\n public static isTier(value: unknown): value is AuthTier {\n return typeof value === 'string' && Object.hasOwn(TIER_RANK, value);\n }\n\n private static hasAdminRole(role: string | null | undefined): boolean {\n if (!role) return false;\n\n return role.split(',').includes(ADMIN_ROLE);\n }\n\n private static isOrgUser(user: AuthTierUser): boolean {\n if (!user.emailVerified) return false;\n\n return user.email.toLowerCase().endsWith(`@${ORG_EMAIL_DOMAIN}`);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../src/app-config-helpers.ts","../src/common-helpers.ts","../src/constants.ts","../src/icons.ts","../src/fonts.ts","../src/images.ts","../src/models.ts","../src/local-storage.ts","../src/session-storage.ts","../src/routes.ts","../src/string-helpers.ts","../src/strings.ts","../src/schemas/primitives.ts","../src/schemas/ai.ts","../src/schemas/dmx.ts","../src/schemas/database.ts","../src/schemas/storage.ts","../src/types/common-types.ts","../src/types/websocket-types.ts","../src/videos.ts","../src/utils.ts","../src/samples.ts","../src/auth.ts"],"sourcesContent":["export class AppConfigHelpers {\n private static appName: string | undefined;\n\n public static setCurrentAppName(name: string): void {\n if (this.appName !== undefined && this.appName !== name) {\n throw new Error(\n `setCurrentAppName: already set to '${this.appName}', cannot override with '${name}'. ` +\n 'This usually means defineApp() was called twice with different names.',\n );\n }\n this.appName = name;\n }\n\n public static getCurrentAppName(): string {\n if (this.appName === undefined) {\n throw new Error(\n 'getCurrentAppName: no app name registered. ' +\n 'Call defineApp() before constructing services, or pass an explicit value to the service constructor.',\n );\n }\n return this.appName;\n }\n\n public static resetAppName(): void {\n this.appName = undefined;\n }\n\n public static sanitizeAppName(name: string): string {\n const sanitized = name.toLowerCase().replace(/-/g, '_');\n\n if (!/^[a-z][a-z0-9_]*$/.test(sanitized)) {\n throw new Error(`sanitizeAppName: invalid app name '${name}' (sanitized: '${sanitized}')`);\n }\n\n return sanitized;\n }\n}\n","import { ImagePayload, Result, Time, tryCatch } from './';\n\nimport { removeBackground } from '@imgly/background-removal';\n\nimport { formatDistanceToNow, parseISO } from 'date-fns';\nimport { decode, encode } from 'base64-arraybuffer';\n\nexport class CommonHelpers {\n public static copyToClipboard(text: string) {\n navigator.clipboard.writeText(text)\n .then(() => {\n\n })\n .catch(() => {\n console.error('Failed to copy');\n });\n }\n\n public static async removeBackground(image: ImagePayload): Promise<ImagePayload> {\n const arrayBuffer = decode(image.base64);\n const blob = new Blob([arrayBuffer], { type: image.mediaType });\n\n const resultBlob = await removeBackground(blob);\n\n const resultArrayBuffer = await resultBlob.arrayBuffer();\n const base64 = encode(resultArrayBuffer);\n\n return {\n base64: base64,\n mediaType: 'image/png',\n };\n }\n\n public static getTimeFormatted(seconds: number): Time {\n const time: Time = {\n hours: Math.floor(seconds / 3600),\n minutes: Math.floor((seconds % 3600) / 60),\n seconds: seconds % 60,\n };\n return time;\n }\n\n public static async getTextFromClipboard(): Promise<string> {\n return await navigator.clipboard.readText();\n }\n\n public static decodeBase64(base64: string): ArrayBuffer {\n const arraybuffer = decode(base64);\n return arraybuffer;\n }\n\n public static getRandomInteger(min: number, max: number): number {\n const randomInteger = Math.floor(Math.random() * (max - min + 1)) + min;\n return randomInteger;\n }\n\n public static encodeArrayBufferToBase64(arrayBuffer: ArrayBuffer): string {\n const base64 = encode(arrayBuffer);\n return base64;\n }\n\n public static hexToRgb(hex: string) {\n const m = hex.match(/^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i);\n if (!m) return { r: 0, g: 0, b: 0 };\n return {\n r: parseInt(m[1], 16),\n g: parseInt(m[2], 16),\n b: parseInt(m[3], 16),\n };\n }\n\n public static rgbArrayToHex(rgb: [number, number, number]): string {\n const hex = rgb.map((value) => {\n const hexValue = value.toString(16);\n return hexValue.length === 1 ? '0' + hexValue : hexValue;\n }).join('');\n\n return `#${hex}`;\n }\n\n public static hexToRgbArray(hex: string): [number, number, number] {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n\n if (!result) return [0, 0, 0];\n\n return [\n parseInt(result[1], 16) / 255,\n parseInt(result[2], 16) / 255,\n parseInt(result[3], 16) / 255,\n ];\n }\n\n public static getCssVariable(variable: string) {\n return getComputedStyle(document.documentElement).getPropertyValue(variable);\n }\n\n public static setCssVariable(name: string, element: HTMLElement) {\n document.documentElement.style.setProperty(name, `${element.offsetHeight}px`);\n }\n\n public static lerp(start: number, end: number, t: number): number {\n return start + (end - start) * t; ;\n }\n\n public static lerpArray(start: number[], end: number[], t: number): number[] {\n return start.map((startItem, index) => startItem + (end[index] - startItem) * t);\n }\n\n public static clamp(value: number, min: number, max: number) {\n return Math.min(Math.max(value, min), max);\n }\n\n public static async downloadURI(uri: string, name?: string) {\n const response = await fetch(uri);\n const blob = await response.blob();\n const url = URL.createObjectURL(blob);\n const link = document.createElement('a');\n link.href = url;\n link.download = name || 'download';\n link.click();\n URL.revokeObjectURL(url);\n }\n\n public static async getFileFromUrl(url: string, fileName?: string): Promise<File> {\n const response = await fetch(url);\n const blob = await response.blob();\n const imageFile = new File([blob], fileName ? fileName : 'untitled', { type: blob.type });\n\n return imageFile;\n }\n\n public static generateUUID(): string {\n if (crypto.randomUUID) {\n return crypto.randomUUID();\n }\n\n const fallback = `${Date.now()}-${Math.random().toString(36).substring(2, 15)}${Math.random().toString(36).substring(2, 15)}`;\n\n return fallback;\n }\n\n public static async getImagePayloadFromUrl(url: string, fileName?: string): Promise<Result<ImagePayload>> {\n const imageFile = await this.getFileFromUrl(url, fileName);\n\n return this.getImagePayloadFromFile(imageFile);\n }\n\n public static async getImagePayloadFromFile(file: File): Promise<Result<ImagePayload>> {\n const [arrayBuffer, error] = await tryCatch(file.arrayBuffer());\n\n if (error) return [null, error];\n\n const base64 = CommonHelpers.encodeArrayBufferToBase64(arrayBuffer);\n const mediaType = file.type;\n\n const imageData: ImagePayload = { base64: base64, mediaType: mediaType };\n return [imageData, null];\n }\n\n public static getFileFromImagePayload(ImagePayload: ImagePayload): File {\n const arrayBuffer = decode(ImagePayload.base64);\n const blob = new Blob([arrayBuffer], { type: ImagePayload.mediaType });\n const extension = ImagePayload.mediaType.split('/')[1] || 'png';\n const file = new File([blob], `created-file.${extension}`, { type: ImagePayload.mediaType });\n\n return file;\n }\n\n public static setTabName(name: string) {\n document.title = `${name}`;\n }\n\n public static openFileSelector(accepts: string, callback: (file: File) => void): void {\n const input = document.createElement('input');\n input.type = 'file';\n\n input.accept = accepts;\n\n input.onchange = (event: Event) => {\n const target = event.target as HTMLInputElement;\n if (target.files && target.files.length > 0) {\n const file = target.files[0];\n callback(file);\n }\n };\n\n input.click();\n }\n\n public static formatNumberTwoDigits(number: number): string {\n const formatedNumber = number.toFixed().padStart(2, '0');\n return formatedNumber;\n }\n\n public getFormatedTime(miliseconds: number, decimals: number = 2): string {\n const time = (miliseconds / 1000).toFixed(decimals);\n return time;\n }\n\n public static async preloadImage(url: string): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n const image = new Image();\n image.onload = () => resolve();\n image.onerror = () => reject(new Error(`Failed to load: ${url}`));\n image.src = url;\n });\n }\n\n public static async preloadImages(urls: string[]): Promise<void> {\n const promises = urls.map(url => CommonHelpers.preloadImage(url));\n await Promise.all(promises);\n }\n\n public static getUniqueLetters(word: string): string[] {\n const uniqueLetters = [...new Set(word.split(''))];\n\n return uniqueLetters;\n }\n\n public static async compressImage(base64: string, mediaType: string, maxWidth: number = 800, quality: number = 0.7): Promise<ImagePayload> {\n return new Promise((resolve) => {\n const img = new Image();\n img.onload = () => {\n const canvas = document.createElement('canvas');\n const ratio = Math.min(maxWidth / img.width, maxWidth / img.height, 1);\n canvas.width = img.width * ratio;\n canvas.height = img.height * ratio;\n\n const ctx = canvas.getContext('2d')!;\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n\n const compressedBase64 = canvas.toDataURL('image/jpeg', quality).split(',')[1];\n\n resolve({\n base64: compressedBase64,\n mediaType: 'image/jpeg',\n });\n };\n img.src = `data:${mediaType};base64,${base64}`;\n });\n }\n\n public static async downloadCsvFromUrl(url: string) {\n const response = await fetch(url);\n\n if (!response.ok) throw new Error(`Failed to download CSV file: ${response.statusText}`);\n\n const csvData = await response.text();\n\n return csvData;\n }\n\n public static getLastUpdated(timeStamptz: string): string {\n const date = parseISO(timeStamptz);\n const formattedDate = formatDistanceToNow(date, { addSuffix: true });\n\n return formattedDate;\n }\n\n public static getUniqueIdInList(baseId: string, ids: string[]): string {\n const match = baseId.match(/^(.*?)(-\\d+)?$/);\n let base = baseId;\n let suffix = 1;\n\n if (match) {\n base = match[1];\n if (match[2]) {\n suffix = parseInt(match[2].slice(1)) + 1;\n }\n }\n\n const baseLower = base.toLowerCase();\n let newId = `${baseLower}-${suffix}`;\n\n while (ids.some(id => id.toLowerCase() === newId)) {\n suffix++;\n newId = `${baseLower}-${suffix}`;\n }\n\n return newId.toLowerCase();\n }\n\n public static scrollToBottom(container: HTMLDivElement | null) {\n if (!container) return;\n\n container.scrollTo({\n top: container.scrollHeight,\n behavior: 'smooth',\n });\n }\n}\n","import { Breakpoint, ClassGroups, CodeLanguageMetadata, ModelPayload } from './types/common-types';\n\nexport const BACKEND_URL = 'https://api.digo-labs.com';\n\nexport const DIGO_HEADERS = 'X-Digo-App';\n\nexport const DIGO_ADMIN_SECRET = 'X-Admin-Secret';\n\nexport const DIGO_STORAGE_BUCKET_SUFFIX = '-digo-labs-storage';\n\nexport const DIGO_COLORS = ['#58C2E3', '#79F2A9', '#985EFF', '#BDF279'];\n\nexport const WS_URL = 'wss://ws.digo-labs.com';\n\nexport const REPLICATE_PROXY = {\n url: `${BACKEND_URL}/api/proxy/replicate`,\n targetHeader: 'x-replicate-target-url',\n hosts: /(\\.|^)replicate\\.com$/,\n};\n\nexport const AWS_DEFAULT_REGION = 'us-east-1';\n\nexport const BREAKPOINTS: Record<Breakpoint, number> = {\n 'sm': 640,\n 'md': 768,\n 'lg': 1024,\n 'xl': 1280,\n '2xl': 1536,\n};\n\nexport const TYPO_CLASS_GROUPS: ClassGroups = {\n 'font-size': [{ typo: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18'] }],\n 'font-weight': [{ 'typo-weight': ['100', '200', '300', '400', '500', '600', '700', '800', '900'] }],\n 'typo-family': ['typo-header', 'typo-label', 'typo-body', 'typo-code'],\n};\n\nexport const AI_MODELS: ModelPayload[] = [\n {\n name: 'Claude 3.7 Sonnet',\n description: 'Anthropic\\'s advanced model',\n icon: 'icon-[simple-icons--anthropic]',\n },\n {\n name: 'Gemini 2.5 Pro',\n description: 'Google\\'s latest model',\n icon: 'icon-[simple-icons--googlegemini]',\n },\n {\n name: 'GPT-4.1',\n description: 'OpenAi\\'s advanced model',\n icon: 'icon-[simple-icons--openai]',\n },\n];\n\nexport const LANGUAGE_MAP: Record<string, CodeLanguageMetadata> = {\n typescript: { icon: 'typescript', name: 'TypeScript' },\n javascript: { icon: 'javascript', name: 'JavaScript' },\n tsx: { icon: 'typescript', name: 'TSX' },\n jsx: { icon: 'javascript', name: 'JSX' },\n python: { icon: 'python', name: 'Python' },\n rust: { icon: 'code', name: 'Rust' },\n go: { icon: 'code', name: 'Go' },\n sql: { icon: 'code', name: 'SQL' },\n bash: { icon: 'terminal', name: 'Bash' },\n sh: { icon: 'terminal', name: 'Shell' },\n shell: { icon: 'terminal', name: 'Shell' },\n json: { icon: 'code', name: 'JSON' },\n css: { icon: 'code', name: 'CSS' },\n html: { icon: 'code', name: 'HTML' },\n markdown: { icon: 'code', name: 'Markdown' },\n yaml: { icon: 'code', name: 'YAML' },\n xml: { icon: 'code', name: 'XML' },\n text: { icon: 'code', name: 'Text' },\n};\n","enum IconCategory {\n Navigation = 'Navigation',\n Actions = 'Actions',\n Status = 'Status',\n Media = 'Media',\n Files = 'Files',\n UI = 'UI',\n Brands = 'Brands',\n Programming = 'Programming',\n Tools = 'Tools',\n Data = 'Data',\n Communication = 'Communication',\n Design = 'Design',\n AI = 'AI',\n Numbers = 'Numbers',\n Misc = 'Misc',\n}\n\ninterface IconProperties {\n icon: string;\n category: IconCategory;\n}\n\ninterface IconEntry extends IconProperties {\n id: string;\n}\n\nexport type CuratedIcons = keyof typeof CURATED_ICONS;\n\nconst CURATED_ICONS = {\n arrowUp: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-up]' },\n arrowDown: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-down]' },\n arrowLeft: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-left]' },\n arrowRight: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-right]' },\n arrowUpLeft: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-up-left]' },\n arrowUpRight: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-up-right]' },\n arrowDownLeft: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-down-left]' },\n arrowDownRight: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-down-right]' },\n arrowLeftRight: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-left-right]' },\n arrowUpDown: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-up-down]' },\n circleArrowUp: { category: IconCategory.Navigation, icon: 'icon-[lucide--circle-arrow-up]' },\n circleArrowDown: { category: IconCategory.Navigation, icon: 'icon-[lucide--circle-arrow-down]' },\n circleArrowLeft: { category: IconCategory.Navigation, icon: 'icon-[lucide--circle-arrow-left]' },\n circleArrowRight: { category: IconCategory.Navigation, icon: 'icon-[lucide--circle-arrow-right]' },\n chevronUp: { category: IconCategory.Navigation, icon: 'icon-[lucide--chevron-up]' },\n chevronDown: { category: IconCategory.Navigation, icon: 'icon-[lucide--chevron-down]' },\n chevronLeft: { category: IconCategory.Navigation, icon: 'icon-[lucide--chevron-left]' },\n chevronRight: { category: IconCategory.Navigation, icon: 'icon-[lucide--chevron-right]' },\n chevronsUp: { category: IconCategory.Navigation, icon: 'icon-[lucide--chevrons-up]' },\n chevronsDown: { category: IconCategory.Navigation, icon: 'icon-[lucide--chevrons-down]' },\n chevronsLeft: { category: IconCategory.Navigation, icon: 'icon-[lucide--chevrons-left]' },\n chevronsRight: { category: IconCategory.Navigation, icon: 'icon-[lucide--chevrons-right]' },\n chevronsUpDown: { category: IconCategory.Navigation, icon: 'icon-[lucide--chevrons-up-down]' },\n cornerDownLeft: { category: IconCategory.Navigation, icon: 'icon-[lucide--corner-down-left]' },\n cornerDownRight: { category: IconCategory.Navigation, icon: 'icon-[lucide--corner-down-right]' },\n cornerLeftDown: { category: IconCategory.Navigation, icon: 'icon-[lucide--corner-left-down]' },\n cornerLeftUp: { category: IconCategory.Navigation, icon: 'icon-[lucide--corner-left-up]' },\n cornerRightDown: { category: IconCategory.Navigation, icon: 'icon-[lucide--corner-right-down]' },\n cornerRightUp: { category: IconCategory.Navigation, icon: 'icon-[lucide--corner-right-up]' },\n cornerUpLeft: { category: IconCategory.Navigation, icon: 'icon-[lucide--corner-up-left]' },\n cornerUpRight: { category: IconCategory.Navigation, icon: 'icon-[lucide--corner-up-right]' },\n home: { category: IconCategory.Navigation, icon: 'icon-[lucide--house]' },\n compass: { category: IconCategory.Navigation, icon: 'icon-[lucide--compass]' },\n menu: { category: IconCategory.Navigation, icon: 'icon-[lucide--menu]' },\n anchor: { category: IconCategory.Navigation, icon: 'icon-[lucide--anchor]' },\n route: { category: IconCategory.Navigation, icon: 'icon-[lucide--route]' },\n router: { category: IconCategory.Navigation, icon: 'icon-[lucide--router]' },\n externalLink: { category: IconCategory.Navigation, icon: 'icon-[lucide--external-link]' },\n move: { category: IconCategory.Navigation, icon: 'icon-[lucide--move]' },\n expand: { category: IconCategory.Navigation, icon: 'icon-[material-symbols--expand-more-rounded]' },\n collapse: { category: IconCategory.Navigation, icon: 'icon-[material-symbols--expand-less-rounded]' },\n firstPage: { category: IconCategory.Navigation, icon: 'icon-[material-symbols--first-page-rounded]' },\n lastPage: { category: IconCategory.Navigation, icon: 'icon-[material-symbols--last-page-rounded]' },\n openInNew: { category: IconCategory.Navigation, icon: 'icon-[material-symbols--open-in-new-rounded]' },\n select: { category: IconCategory.Navigation, icon: 'icon-[mi--select]' },\n signIn: { category: IconCategory.Navigation, icon: 'icon-[lucide--log-in]' },\n login: { category: IconCategory.Navigation, icon: 'icon-[lucide--log-in]' },\n logout: { category: IconCategory.Navigation, icon: 'icon-[lucide--log-out]' },\n squareMenu: { category: IconCategory.Navigation, icon: 'icon-[lucide--square-menu]' },\n add: { category: IconCategory.Actions, icon: 'icon-[lucide--plus]' },\n remove: { category: IconCategory.Actions, icon: 'icon-[lucide--minus]' },\n close: { category: IconCategory.Actions, icon: 'icon-[lucide--x]' },\n check: { category: IconCategory.Actions, icon: 'icon-[lucide--check]' },\n checkCheck: { category: IconCategory.Actions, icon: 'icon-[lucide--check-check]' },\n checkIndeterminate: { category: IconCategory.Actions, icon: 'icon-[material-symbols--check-indeterminate-small-rounded]' },\n search: { category: IconCategory.Actions, icon: 'icon-[lucide--search]' },\n zoomIn: { category: IconCategory.Actions, icon: 'icon-[lucide--zoom-in]' },\n zoomOut: { category: IconCategory.Actions, icon: 'icon-[lucide--zoom-out]' },\n edit: { category: IconCategory.Actions, icon: 'icon-[lucide--pencil]' },\n pencilLine: { category: IconCategory.Actions, icon: 'icon-[lucide--pencil-line]' },\n delete: { category: IconCategory.Actions, icon: 'icon-[lucide--trash]' },\n trash: { category: IconCategory.Actions, icon: 'icon-[lucide--trash-2]' },\n copy: { category: IconCategory.Actions, icon: 'icon-[lucide--copy]' },\n paste: { category: IconCategory.Actions, icon: 'icon-[lucide--clipboard-paste]' },\n cut: { category: IconCategory.Actions, icon: 'icon-[lucide--scissors]' },\n save: { category: IconCategory.Actions, icon: 'icon-[lucide--save]' },\n download: { category: IconCategory.Actions, icon: 'icon-[lucide--download]' },\n upload: { category: IconCategory.Actions, icon: 'icon-[lucide--upload]' },\n refresh: { category: IconCategory.Actions, icon: 'icon-[lucide--refresh-cw]' },\n refreshCcw: { category: IconCategory.Actions, icon: 'icon-[lucide--refresh-ccw]' },\n rotateCw: { category: IconCategory.Actions, icon: 'icon-[lucide--rotate-cw]' },\n rotateCcw: { category: IconCategory.Actions, icon: 'icon-[lucide--rotate-ccw]' },\n sync: { category: IconCategory.Actions, icon: 'icon-[material-symbols--sync-rounded]' },\n undo: { category: IconCategory.Actions, icon: 'icon-[lucide--undo-2]' },\n redo: { category: IconCategory.Actions, icon: 'icon-[lucide--redo-2]' },\n send: { category: IconCategory.Actions, icon: 'icon-[lucide--send]' },\n share: { category: IconCategory.Actions, icon: 'icon-[lucide--share]' },\n share2: { category: IconCategory.Actions, icon: 'icon-[lucide--share-2]' },\n attach: { category: IconCategory.Actions, icon: 'icon-[lucide--paperclip]' },\n link: { category: IconCategory.Actions, icon: 'icon-[lucide--link]' },\n link2: { category: IconCategory.Actions, icon: 'icon-[lucide--link-2]' },\n unlink: { category: IconCategory.Actions, icon: 'icon-[lucide--unlink]' },\n filter: { category: IconCategory.Actions, icon: 'icon-[lucide--filter]' },\n listFilter: { category: IconCategory.Actions, icon: 'icon-[lucide--list-filter]' },\n sort: { category: IconCategory.Actions, icon: 'icon-[lucide--arrow-up-down]' },\n sortAsc: { category: IconCategory.Actions, icon: 'icon-[lucide--arrow-up-narrow-wide]' },\n sortDesc: { category: IconCategory.Actions, icon: 'icon-[lucide--arrow-down-wide-narrow]' },\n lock: { category: IconCategory.Actions, icon: 'icon-[lucide--lock]' },\n lockOpen: { category: IconCategory.Actions, icon: 'icon-[lucide--lock-open]' },\n unlock: { category: IconCategory.Actions, icon: 'icon-[lucide--lock-open]' },\n print: { category: IconCategory.Actions, icon: 'icon-[lucide--printer]' },\n backspace: { category: IconCategory.Actions, icon: 'icon-[lucide--delete]' },\n crop: { category: IconCategory.Actions, icon: 'icon-[lucide--crop]' },\n textSearch: { category: IconCategory.Actions, icon: 'icon-[lucide--text-search]' },\n clipboardCopy: { category: IconCategory.Actions, icon: 'icon-[lucide--clipboard-copy]' },\n replace: { category: IconCategory.Actions, icon: 'icon-[lucide--replace]' },\n searchCheck: { category: IconCategory.Actions, icon: 'icon-[lucide--search-check]' },\n success: { category: IconCategory.Status, icon: 'icon-[lucide--circle-check]' },\n checkCircle: { category: IconCategory.Status, icon: 'icon-[lucide--circle-check-big]' },\n info: { category: IconCategory.Status, icon: 'icon-[lucide--info]' },\n warning: { category: IconCategory.Status, icon: 'icon-[lucide--triangle-alert]' },\n error: { category: IconCategory.Status, icon: 'icon-[lucide--circle-x]' },\n help: { category: IconCategory.Status, icon: 'icon-[lucide--circle-help]' },\n spinner: { category: IconCategory.Status, icon: 'icon-[line-md--loading-twotone-loop]' },\n spinnerDots: { category: IconCategory.Status, icon: 'icon-[svg-spinners--3-dots-move]' },\n loading: { category: IconCategory.Status, icon: 'icon-[line-md--loading-twotone-loop]' },\n loaderCircle: { category: IconCategory.Status, icon: 'icon-[lucide--loader-circle]' },\n verified: { category: IconCategory.Status, icon: 'icon-[lucide--badge-check]' },\n visibility: { category: IconCategory.Status, icon: 'icon-[lucide--eye]' },\n visibilityOff: { category: IconCategory.Status, icon: 'icon-[lucide--eye-off]' },\n online: { category: IconCategory.Status, icon: 'icon-[lucide--circle-dot]' },\n circleCheck: { category: IconCategory.Status, icon: 'icon-[lucide--circle-check]' },\n squareCheck: { category: IconCategory.Status, icon: 'icon-[lucide--square-check]' },\n loader: { category: IconCategory.Status, icon: 'icon-[lucide--loader]' },\n gauge: { category: IconCategory.Status, icon: 'icon-[lucide--gauge]' },\n play: { category: IconCategory.Media, icon: 'icon-[lucide--play]' },\n pause: { category: IconCategory.Media, icon: 'icon-[lucide--pause]' },\n stop: { category: IconCategory.Media, icon: 'icon-[lucide--square]' },\n stopCircle: { category: IconCategory.Media, icon: 'icon-[lucide--circle-stop]' },\n skipBack: { category: IconCategory.Media, icon: 'icon-[lucide--skip-back]' },\n skipForward: { category: IconCategory.Media, icon: 'icon-[lucide--skip-forward]' },\n skipNext: { category: IconCategory.Media, icon: 'icon-[lucide--skip-forward]' },\n skipPrevious: { category: IconCategory.Media, icon: 'icon-[lucide--skip-back]' },\n fastForward: { category: IconCategory.Media, icon: 'icon-[lucide--fast-forward]' },\n fastRewind: { category: IconCategory.Media, icon: 'icon-[lucide--rewind]' },\n rewind: { category: IconCategory.Media, icon: 'icon-[lucide--rewind]' },\n loop: { category: IconCategory.Media, icon: 'icon-[lucide--repeat]' },\n shuffle: { category: IconCategory.Media, icon: 'icon-[lucide--shuffle]' },\n volumeUp: { category: IconCategory.Media, icon: 'icon-[lucide--volume-2]' },\n volumeDown: { category: IconCategory.Media, icon: 'icon-[lucide--volume-1]' },\n volumeOff: { category: IconCategory.Media, icon: 'icon-[lucide--volume-off]' },\n image: { category: IconCategory.Media, icon: 'icon-[lucide--image]' },\n imagePlus: { category: IconCategory.Media, icon: 'icon-[lucide--image-plus]' },\n video: { category: IconCategory.Media, icon: 'icon-[lucide--video]' },\n videoOff: { category: IconCategory.Media, icon: 'icon-[lucide--video-off]' },\n camera: { category: IconCategory.Media, icon: 'icon-[lucide--camera]' },\n mic: { category: IconCategory.Media, icon: 'icon-[lucide--mic]' },\n micOff: { category: IconCategory.Media, icon: 'icon-[lucide--mic-off]' },\n webcam: { category: IconCategory.Media, icon: 'icon-[lucide--webcam]' },\n music: { category: IconCategory.Media, icon: 'icon-[lucide--music]' },\n music2: { category: IconCategory.Media, icon: 'icon-[lucide--music-2]' },\n headset: { category: IconCategory.Media, icon: 'icon-[lucide--headset]' },\n captions: { category: IconCategory.Media, icon: 'icon-[lucide--captions]' },\n playCircle: { category: IconCategory.Media, icon: 'icon-[lucide--circle-play]' },\n pauseCircle: { category: IconCategory.Media, icon: 'icon-[lucide--circle-pause]' },\n imageUp: { category: IconCategory.Media, icon: 'icon-[lucide--image-up]' },\n images: { category: IconCategory.Media, icon: 'icon-[lucide--images]' },\n file: { category: IconCategory.Files, icon: 'icon-[lucide--file]' },\n fileText: { category: IconCategory.Files, icon: 'icon-[lucide--file-text]' },\n fileAdd: { category: IconCategory.Files, icon: 'icon-[lucide--file-plus]' },\n fileZip: { category: IconCategory.Files, icon: 'icon-[lucide--file-archive]' },\n fileSymlink: { category: IconCategory.Files, icon: 'icon-[lucide--file-symlink]' },\n fileSearch: { category: IconCategory.Files, icon: 'icon-[lucide--file-search]' },\n folder: { category: IconCategory.Files, icon: 'icon-[lucide--folder]' },\n folderOpen: { category: IconCategory.Files, icon: 'icon-[lucide--folder-open]' },\n folderClosed: { category: IconCategory.Files, icon: 'icon-[lucide--folder-closed]' },\n folderPlus: { category: IconCategory.Files, icon: 'icon-[lucide--folder-plus]' },\n folderMinus: { category: IconCategory.Files, icon: 'icon-[lucide--folder-minus]' },\n folderGit: { category: IconCategory.Files, icon: 'icon-[lucide--folder-git-2]' },\n folderSymlink: { category: IconCategory.Files, icon: 'icon-[lucide--folder-symlink]' },\n document: { category: IconCategory.Files, icon: 'icon-[lucide--file-text]' },\n code: { category: IconCategory.Files, icon: 'icon-[lucide--code]' },\n codeBlock: { category: IconCategory.Files, icon: 'icon-[lucide--square-code]' },\n codeBracket: { category: IconCategory.Files, icon: 'icon-[lucide--braces]' },\n codeWrap: { category: IconCategory.Files, icon: 'icon-[lucide--wrap-text]' },\n archive: { category: IconCategory.Files, icon: 'icon-[lucide--archive]' },\n notebook: { category: IconCategory.Files, icon: 'icon-[lucide--notebook]' },\n notes: { category: IconCategory.Files, icon: 'icon-[lucide--sticky-note]' },\n clipboard: { category: IconCategory.Files, icon: 'icon-[lucide--clipboard]' },\n floppyDisk: { category: IconCategory.Files, icon: 'icon-[lucide--save]' },\n fileUp: { category: IconCategory.Files, icon: 'icon-[lucide--file-up]' },\n clipboardList: { category: IconCategory.Files, icon: 'icon-[lucide--clipboard-list]' },\n files: { category: IconCategory.Files, icon: 'icon-[lucide--files]' },\n filePen: { category: IconCategory.Files, icon: 'icon-[lucide--file-pen]' },\n panelLeft: { category: IconCategory.UI, icon: 'icon-[lucide--panel-left]' },\n panelRight: { category: IconCategory.UI, icon: 'icon-[lucide--panel-right]' },\n panelTop: { category: IconCategory.UI, icon: 'icon-[lucide--panel-top]' },\n panelBottom: { category: IconCategory.UI, icon: 'icon-[lucide--panel-bottom]' },\n sidebar: { category: IconCategory.UI, icon: 'icon-[lucide--panel-left]' },\n moreHorizontal: { category: IconCategory.UI, icon: 'icon-[lucide--ellipsis]' },\n moreVertical: { category: IconCategory.UI, icon: 'icon-[lucide--ellipsis-vertical]' },\n dragHandle: { category: IconCategory.UI, icon: 'icon-[lucide--grip-horizontal]' },\n dragIndicator: { category: IconCategory.UI, icon: 'icon-[lucide--grip-vertical]' },\n gridView: { category: IconCategory.UI, icon: 'icon-[lucide--grid-2x2]' },\n gridSquare: { category: IconCategory.UI, icon: 'icon-[lucide--grid-2x2]' },\n colorSwatch: { category: IconCategory.UI, icon: 'icon-[heroicons-solid--color-swatch]' },\n layoutGrid: { category: IconCategory.UI, icon: 'icon-[lucide--layout-grid]' },\n listView: { category: IconCategory.UI, icon: 'icon-[lucide--list]' },\n listOrdered: { category: IconCategory.UI, icon: 'icon-[lucide--list-ordered]' },\n settings: { category: IconCategory.UI, icon: 'icon-[lucide--settings]' },\n tune: { category: IconCategory.UI, icon: 'icon-[lucide--sliders-horizontal]' },\n slidersVertical: { category: IconCategory.UI, icon: 'icon-[lucide--sliders-vertical]' },\n notifications: { category: IconCategory.UI, icon: 'icon-[lucide--bell]' },\n bellDot: { category: IconCategory.UI, icon: 'icon-[lucide--bell-dot]' },\n bellOff: { category: IconCategory.UI, icon: 'icon-[lucide--bell-off]' },\n person: { category: IconCategory.UI, icon: 'icon-[lucide--user]' },\n group: { category: IconCategory.UI, icon: 'icon-[lucide--users]' },\n userCheck: { category: IconCategory.UI, icon: 'icon-[lucide--user-check]' },\n userPlus: { category: IconCategory.UI, icon: 'icon-[lucide--user-plus]' },\n userMinus: { category: IconCategory.UI, icon: 'icon-[lucide--user-minus]' },\n userX: { category: IconCategory.UI, icon: 'icon-[lucide--user-x]' },\n userCog: { category: IconCategory.UI, icon: 'icon-[lucide--user-cog]' },\n keyboard: { category: IconCategory.UI, icon: 'icon-[lucide--keyboard]' },\n keyboardReturn: { category: IconCategory.UI, icon: 'icon-[material-symbols--keyboard-return-rounded]' },\n keyboardCommand: { category: IconCategory.UI, icon: 'icon-[lucide--command]' },\n fullscreen: { category: IconCategory.UI, icon: 'icon-[lucide--maximize]' },\n fullscreenExit: { category: IconCategory.UI, icon: 'icon-[lucide--minimize]' },\n dashboard: { category: IconCategory.UI, icon: 'icon-[lucide--layout-dashboard]' },\n widgets: { category: IconCategory.UI, icon: 'icon-[material-symbols--widgets-rounded]' },\n apps: { category: IconCategory.UI, icon: 'icon-[lucide--grid-3x3]' },\n pictureInPicture: { category: IconCategory.UI, icon: 'icon-[lucide--picture-in-picture]' },\n toggleOn: { category: IconCategory.UI, icon: 'icon-[lucide--toggle-right]' },\n toggleOff: { category: IconCategory.UI, icon: 'icon-[lucide--toggle-left]' },\n appWindow: { category: IconCategory.UI, icon: 'icon-[lucide--app-window]' },\n terminalWindow: { category: IconCategory.UI, icon: 'icon-[lucide--square-terminal]' },\n scrollArea: { category: IconCategory.UI, icon: 'icon-[lucide--scroll]' },\n inspectSearch: { category: IconCategory.UI, icon: 'icon-[lucide--scan-search]' },\n option: { category: IconCategory.UI, icon: 'icon-[lucide--option]' },\n cube: { category: IconCategory.UI, icon: 'icon-[iconoir--select-face-3d]' },\n textCursorInput: { category: IconCategory.UI, icon: 'icon-[lucide--text-cursor-input]' },\n blocks: { category: IconCategory.UI, icon: 'icon-[lucide--blocks]' },\n listTree: { category: IconCategory.UI, icon: 'icon-[lucide--list-tree]' },\n squareChevronDown: { category: IconCategory.UI, icon: 'icon-[lucide--square-chevron-down]' },\n letterText: { category: IconCategory.UI, icon: 'icon-[lucide--letter-text]' },\n squareMousePointer: { category: IconCategory.UI, icon: 'icon-[lucide--square-mouse-pointer]' },\n columns3: { category: IconCategory.UI, icon: 'icon-[lucide--columns-3]' },\n listCollapse: { category: IconCategory.UI, icon: 'icon-[lucide--list-collapse]' },\n foldVertical: { category: IconCategory.UI, icon: 'icon-[lucide--fold-vertical]' },\n inbox: { category: IconCategory.UI, icon: 'icon-[lucide--inbox]' },\n squareDashed: { category: IconCategory.UI, icon: 'icon-[lucide--square-dashed]' },\n tableOfContents: { category: IconCategory.UI, icon: 'icon-[lucide--table-of-contents]' },\n grid3x3: { category: IconCategory.UI, icon: 'icon-[lucide--grid-3x3]' },\n fieldGroup: { category: IconCategory.UI, icon: 'icon-[lucide--group]' },\n rectangleEllipsis: { category: IconCategory.UI, icon: 'icon-[lucide--rectangle-ellipsis]' },\n inputGroup: { category: IconCategory.UI, icon: 'icon-[lucide--between-horizontal-end]' },\n groupItems: { category: IconCategory.UI, icon: 'icon-[lucide--group]' },\n separator: { category: IconCategory.UI, icon: 'icon-[lucide--separator-horizontal]' },\n stretchHorizontal: { category: IconCategory.UI, icon: 'icon-[lucide--stretch-horizontal]' },\n squareStack: { category: IconCategory.UI, icon: 'icon-[lucide--square-stack]' },\n textCursor: { category: IconCategory.UI, icon: 'icon-[lucide--text-cursor]' },\n component: { category: IconCategory.UI, icon: 'icon-[lucide--component]' },\n layoutTemplate: { category: IconCategory.UI, icon: 'icon-[lucide--layout-template]' },\n google: { category: IconCategory.Brands, icon: 'icon-[logos--google-icon]' },\n googleMono: { category: IconCategory.Brands, icon: 'icon-[simple-icons--google]' },\n github: { category: IconCategory.Brands, icon: 'icon-[mdi--github]' },\n apple: { category: IconCategory.Brands, icon: 'icon-[mdi--apple]' },\n openai: { category: IconCategory.Brands, icon: 'icon-[simple-icons--openai]' },\n anthropic: { category: IconCategory.Brands, icon: 'icon-[simple-icons--anthropic]' },\n gemini: { category: IconCategory.Brands, icon: 'icon-[simple-icons--googlegemini]' },\n discord: { category: IconCategory.Brands, icon: 'icon-[simple-icons--discord]' },\n slack: { category: IconCategory.Brands, icon: 'icon-[simple-icons--slack]' },\n figma: { category: IconCategory.Brands, icon: 'icon-[simple-icons--figma]' },\n linkedin: { category: IconCategory.Brands, icon: 'icon-[lucide--linkedin]' },\n codepen: { category: IconCategory.Brands, icon: 'icon-[lucide--codepen]' },\n rss: { category: IconCategory.Brands, icon: 'icon-[lucide--rss]' },\n typescript: { category: IconCategory.Programming, icon: 'icon-[simple-icons--typescript]' },\n javascript: { category: IconCategory.Programming, icon: 'icon-[simple-icons--javascript]' },\n python: { category: IconCategory.Programming, icon: 'icon-[simple-icons--python]' },\n react: { category: IconCategory.Programming, icon: 'icon-[simple-icons--react]' },\n tailwindcss: { category: IconCategory.Programming, icon: 'icon-[simple-icons--tailwindcss]' },\n json: { category: IconCategory.Programming, icon: 'icon-[lucide--braces]' },\n html: { category: IconCategory.Programming, icon: 'icon-[simple-icons--html5]' },\n css: { category: IconCategory.Programming, icon: 'icon-[simple-icons--css3]' },\n terminal: { category: IconCategory.Programming, icon: 'icon-[lucide--terminal]' },\n api: { category: IconCategory.Programming, icon: 'icon-[lucide--webhook]' },\n variable: { category: IconCategory.Programming, icon: 'icon-[lucide--variable]' },\n webhook: { category: IconCategory.Programming, icon: 'icon-[lucide--webhook]' },\n functionIcon: { category: IconCategory.Programming, icon: 'icon-[lucide--function-square]' },\n cursor: { category: IconCategory.Tools, icon: 'icon-[lucide--mouse-pointer]' },\n cursorClick: { category: IconCategory.Tools, icon: 'icon-[lucide--mouse-pointer-click]' },\n hand: { category: IconCategory.Tools, icon: 'icon-[lucide--hand]' },\n pen: { category: IconCategory.Tools, icon: 'icon-[lucide--pen]' },\n brush: { category: IconCategory.Tools, icon: 'icon-[lucide--paintbrush]' },\n eraser: { category: IconCategory.Tools, icon: 'icon-[lucide--eraser]' },\n colorize: { category: IconCategory.Tools, icon: 'icon-[lucide--pipette]' },\n straighten: { category: IconCategory.Tools, icon: 'icon-[lucide--ruler]' },\n wrench: { category: IconCategory.Tools, icon: 'icon-[lucide--wrench]' },\n plug: { category: IconCategory.Tools, icon: 'icon-[lucide--plug]' },\n scan: { category: IconCategory.Tools, icon: 'icon-[lucide--scan]' },\n aperture: { category: IconCategory.Tools, icon: 'icon-[lucide--aperture]' },\n pencilRuler: { category: IconCategory.Tools, icon: 'icon-[lucide--pencil-ruler]' },\n mousePointer2: { category: IconCategory.Tools, icon: 'icon-[lucide--mouse-pointer-2]' },\n table: { category: IconCategory.Data, icon: 'icon-[lucide--table]' },\n barChart: { category: IconCategory.Data, icon: 'icon-[lucide--chart-bar]' },\n chartBarStacked: { category: IconCategory.Data, icon: 'icon-[lucide--chart-bar-stacked]' },\n pieChart: { category: IconCategory.Data, icon: 'icon-[lucide--chart-pie]' },\n lineChart: { category: IconCategory.Data, icon: 'icon-[lucide--line-chart]' },\n chartActivity: { category: IconCategory.Data, icon: 'icon-[lucide--activity]' },\n trendingUp: { category: IconCategory.Data, icon: 'icon-[lucide--trending-up]' },\n trendingDown: { category: IconCategory.Data, icon: 'icon-[lucide--trending-down]' },\n analytics: { category: IconCategory.Data, icon: 'icon-[lucide--chart-no-axes-combined]' },\n array: { category: IconCategory.Data, icon: 'icon-[material-symbols--data-array-rounded]' },\n database: { category: IconCategory.Data, icon: 'icon-[lucide--database]' },\n tag: { category: IconCategory.Data, icon: 'icon-[lucide--tag]' },\n label: { category: IconCategory.Data, icon: 'icon-[material-symbols--label-rounded]' },\n hash: { category: IconCategory.Data, icon: 'icon-[lucide--hash]' },\n percent: { category: IconCategory.Data, icon: 'icon-[lucide--percent]' },\n tally5: { category: IconCategory.Data, icon: 'icon-[lucide--tally-5]' },\n chat: { category: IconCategory.Communication, icon: 'icon-[lucide--message-square]' },\n chatBubble: { category: IconCategory.Communication, icon: 'icon-[lucide--message-circle]' },\n messageTyping: { category: IconCategory.Communication, icon: 'icon-[lucide--message-square-more]' },\n comment: { category: IconCategory.Communication, icon: 'icon-[lucide--message-square-text]' },\n email: { category: IconCategory.Communication, icon: 'icon-[lucide--mail]' },\n call: { category: IconCategory.Communication, icon: 'icon-[lucide--phone]' },\n thumbUp: { category: IconCategory.Communication, icon: 'icon-[lucide--thumbs-up]' },\n thumbDown: { category: IconCategory.Communication, icon: 'icon-[lucide--thumbs-down]' },\n messageSquareMore: { category: IconCategory.Communication, icon: 'icon-[lucide--message-square-more]' },\n messageCircle: { category: IconCategory.Communication, icon: 'icon-[lucide--message-circle]' },\n messagesSquare: { category: IconCategory.Communication, icon: 'icon-[lucide--messages-square]' },\n palette: { category: IconCategory.Design, icon: 'icon-[lucide--palette]' },\n paintBucket: { category: IconCategory.Design, icon: 'icon-[lucide--paint-bucket]' },\n formatPaint: { category: IconCategory.Design, icon: 'icon-[lucide--paint-roller]' },\n autoAwesome: { category: IconCategory.Design, icon: 'icon-[material-symbols--auto-awesome-rounded]' },\n style: { category: IconCategory.Design, icon: 'icon-[material-symbols--style]' },\n opacity: { category: IconCategory.Design, icon: 'icon-[material-symbols--opacity-rounded]' },\n gradient: { category: IconCategory.Design, icon: 'icon-[material-symbols--gradient]' },\n contrast: { category: IconCategory.Design, icon: 'icon-[carbon--contrast]' },\n brightness: { category: IconCategory.Design, icon: 'icon-[lucide--sun]' },\n layers: { category: IconCategory.Design, icon: 'icon-[lucide--layers]' },\n blendMode: { category: IconCategory.Design, icon: 'icon-[lucide--blend]' },\n shadow: { category: IconCategory.Design, icon: 'icon-[material-symbols--ev-shadow]' },\n roundedCorner: { category: IconCategory.Design, icon: 'icon-[material-symbols--rounded-corner-rounded]' },\n formatSpacing: { category: IconCategory.Design, icon: 'icon-[material-symbols--format-letter-spacing-rounded]' },\n shapes: { category: IconCategory.Design, icon: 'icon-[lucide--shapes]' },\n swatchBook: { category: IconCategory.Design, icon: 'icon-[lucide--swatch-book]' },\n droplets: { category: IconCategory.Design, icon: 'icon-[lucide--droplets]' },\n sunMedium: { category: IconCategory.Design, icon: 'icon-[lucide--sun-medium]' },\n spline: { category: IconCategory.Design, icon: 'icon-[lucide--spline]' },\n robot: { category: IconCategory.AI, icon: 'icon-[lucide--bot]' },\n sparkles: { category: IconCategory.AI, icon: 'icon-[lucide--sparkles]' },\n sparkle: { category: IconCategory.AI, icon: 'icon-[lucide--sparkle]' },\n brain: { category: IconCategory.AI, icon: 'icon-[lucide--brain]' },\n magic: { category: IconCategory.AI, icon: 'icon-[lucide--wand-sparkles]' },\n experiment: { category: IconCategory.AI, icon: 'icon-[lucide--flask-conical]' },\n psychology: { category: IconCategory.AI, icon: 'icon-[material-symbols--psychology-rounded]' },\n botMessageSquare: { category: IconCategory.AI, icon: 'icon-[lucide--bot-message-square]' },\n one: { category: IconCategory.Numbers, icon: 'icon-[material-symbols--counter-1-rounded]' },\n two: { category: IconCategory.Numbers, icon: 'icon-[material-symbols--counter-2-rounded]' },\n three: { category: IconCategory.Numbers, icon: 'icon-[material-symbols--counter-3-rounded]' },\n four: { category: IconCategory.Numbers, icon: 'icon-[material-symbols--counter-4-rounded]' },\n five: { category: IconCategory.Numbers, icon: 'icon-[material-symbols--counter-5-rounded]' },\n six: { category: IconCategory.Numbers, icon: 'icon-[material-symbols--counter-6-rounded]' },\n seven: { category: IconCategory.Numbers, icon: 'icon-[material-symbols--counter-7-rounded]' },\n eight: { category: IconCategory.Numbers, icon: 'icon-[material-symbols--counter-8]' },\n nine: { category: IconCategory.Numbers, icon: 'icon-[material-symbols--counter-9-rounded]' },\n favorite: { category: IconCategory.Misc, icon: 'icon-[lucide--heart]' },\n star: { category: IconCategory.Misc, icon: 'icon-[lucide--star]' },\n bookmark: { category: IconCategory.Misc, icon: 'icon-[lucide--bookmark]' },\n flag: { category: IconCategory.Misc, icon: 'icon-[lucide--flag]' },\n flagTriangle: { category: IconCategory.Misc, icon: 'icon-[lucide--flag-triangle-right]' },\n creditCard: { category: IconCategory.Misc, icon: 'icon-[lucide--credit-card]' },\n shoppingCart: { category: IconCategory.Misc, icon: 'icon-[lucide--shopping-cart]' },\n store: { category: IconCategory.Misc, icon: 'icon-[lucide--store]' },\n coins: { category: IconCategory.Misc, icon: 'icon-[lucide--coins]' },\n dollarSign: { category: IconCategory.Misc, icon: 'icon-[lucide--dollar-sign]' },\n receipt: { category: IconCategory.Misc, icon: 'icon-[lucide--receipt]' },\n location: { category: IconCategory.Misc, icon: 'icon-[lucide--map-pin]' },\n calendar: { category: IconCategory.Misc, icon: 'icon-[lucide--calendar]' },\n clock: { category: IconCategory.Misc, icon: 'icon-[lucide--clock]' },\n clockRewind: { category: IconCategory.Misc, icon: 'icon-[lucide--history]' },\n schedule: { category: IconCategory.Misc, icon: 'icon-[lucide--clock]' },\n timer: { category: IconCategory.Misc, icon: 'icon-[lucide--timer]' },\n stopwatch: { category: IconCategory.Misc, icon: 'icon-[lucide--timer]' },\n alarmClock: { category: IconCategory.Misc, icon: 'icon-[lucide--alarm-clock]' },\n lightbulb: { category: IconCategory.Misc, icon: 'icon-[lucide--lightbulb]' },\n bolt: { category: IconCategory.Misc, icon: 'icon-[lucide--zap]' },\n cloud: { category: IconCategory.Misc, icon: 'icon-[lucide--cloud]' },\n cloudUpload: { category: IconCategory.Misc, icon: 'icon-[lucide--cloud-upload]' },\n cloudDownload: { category: IconCategory.Misc, icon: 'icon-[lucide--cloud-download]' },\n lightMode: { category: IconCategory.Misc, icon: 'icon-[lucide--sun]' },\n darkMode: { category: IconCategory.Misc, icon: 'icon-[lucide--moon]' },\n moonStar: { category: IconCategory.Misc, icon: 'icon-[lucide--moon-star]' },\n sunDim: { category: IconCategory.Misc, icon: 'icon-[lucide--sun-dim]' },\n power: { category: IconCategory.Misc, icon: 'icon-[lucide--power]' },\n shield: { category: IconCategory.Misc, icon: 'icon-[lucide--shield]' },\n shieldCheck: { category: IconCategory.Misc, icon: 'icon-[lucide--shield-check]' },\n shieldOff: { category: IconCategory.Misc, icon: 'icon-[lucide--shield-off]' },\n key: { category: IconCategory.Misc, icon: 'icon-[lucide--key]' },\n keyRound: { category: IconCategory.Misc, icon: 'icon-[lucide--key-round]' },\n fingerprint: { category: IconCategory.Misc, icon: 'icon-[lucide--fingerprint]' },\n pin: { category: IconCategory.Misc, icon: 'icon-[lucide--pin]' },\n paperclip: { category: IconCategory.Misc, icon: 'icon-[lucide--paperclip]' },\n globe: { category: IconCategory.Misc, icon: 'icon-[lucide--globe]' },\n globeLock: { category: IconCategory.Misc, icon: 'icon-[lucide--globe-lock]' },\n gps: { category: IconCategory.Misc, icon: 'icon-[lucide--locate]' },\n network: { category: IconCategory.Misc, icon: 'icon-[lucide--network]' },\n cpu: { category: IconCategory.Misc, icon: 'icon-[lucide--cpu]' },\n monitor: { category: IconCategory.Misc, icon: 'icon-[lucide--monitor]' },\n smartphone: { category: IconCategory.Misc, icon: 'icon-[lucide--smartphone]' },\n tablet: { category: IconCategory.Misc, icon: 'icon-[lucide--tablet]' },\n monitorSmartphone: { category: IconCategory.Misc, icon: 'icon-[lucide--monitor-smartphone]' },\n server: { category: IconCategory.Misc, icon: 'icon-[lucide--server]' },\n hardDrive: { category: IconCategory.Misc, icon: 'icon-[lucide--hard-drive]' },\n box: { category: IconCategory.Misc, icon: 'icon-[lucide--box]' },\n puzzle: { category: IconCategory.Misc, icon: 'icon-[lucide--puzzle]' },\n briefcase: { category: IconCategory.Misc, icon: 'icon-[lucide--briefcase]' },\n calculator: { category: IconCategory.Misc, icon: 'icon-[lucide--calculator]' },\n buildings: { category: IconCategory.Misc, icon: 'icon-[lucide--building-2]' },\n bug: { category: IconCategory.Misc, icon: 'icon-[lucide--bug]' },\n droplet: { category: IconCategory.Misc, icon: 'icon-[lucide--droplet]' },\n bookOpen: { category: IconCategory.Misc, icon: 'icon-[lucide--book-open]' },\n bookClosed: { category: IconCategory.Misc, icon: 'icon-[lucide--book-marked]' },\n lifebuoy: { category: IconCategory.Misc, icon: 'icon-[lucide--life-buoy]' },\n accessibility: { category: IconCategory.Misc, icon: 'icon-[lucide--accessibility]' },\n workflow: { category: IconCategory.Misc, icon: 'icon-[lucide--workflow]' },\n gitBranch: { category: IconCategory.Misc, icon: 'icon-[lucide--git-branch]' },\n gitBranchPlus: { category: IconCategory.Misc, icon: 'icon-[lucide--git-branch-plus]' },\n gitCommit: { category: IconCategory.Misc, icon: 'icon-[lucide--git-commit-horizontal]' },\n gitMerge: { category: IconCategory.Misc, icon: 'icon-[lucide--git-merge]' },\n gitPullRequest: { category: IconCategory.Misc, icon: 'icon-[lucide--git-pull-request]' },\n crosshair: { category: IconCategory.Misc, icon: 'icon-[lucide--crosshair]' },\n target: { category: IconCategory.Misc, icon: 'icon-[lucide--target]' },\n smile: { category: IconCategory.Misc, icon: 'icon-[lucide--smile]' },\n frown: { category: IconCategory.Misc, icon: 'icon-[lucide--frown]' },\n smilePlus: { category: IconCategory.Misc, icon: 'icon-[lucide--smile-plus]' },\n bold: { category: IconCategory.Misc, icon: 'icon-[lucide--bold]' },\n italic: { category: IconCategory.Misc, icon: 'icon-[lucide--italic]' },\n strikethrough: { category: IconCategory.Misc, icon: 'icon-[lucide--strikethrough]' },\n underline: { category: IconCategory.Misc, icon: 'icon-[lucide--underline]' },\n heading: { category: IconCategory.Misc, icon: 'icon-[lucide--heading]' },\n type: { category: IconCategory.Misc, icon: 'icon-[lucide--type]' },\n caseSensitive: { category: IconCategory.Misc, icon: 'icon-[lucide--case-sensitive]' },\n alignLeft: { category: IconCategory.Misc, icon: 'icon-[lucide--align-left]' },\n alignCenter: { category: IconCategory.Misc, icon: 'icon-[lucide--align-center]' },\n alignRight: { category: IconCategory.Misc, icon: 'icon-[lucide--align-right]' },\n sunMoon: { category: IconCategory.Misc, icon: 'icon-[lucide--sun-moon]' },\n tv: { category: IconCategory.Misc, icon: 'icon-[lucide--tv]' },\n tvMinimal: { category: IconCategory.Misc, icon: 'icon-[lucide--tv-minimal]' },\n orbit: { category: IconCategory.Misc, icon: 'icon-[lucide--orbit]' },\n gitFork: { category: IconCategory.Misc, icon: 'icon-[lucide--git-fork]' },\n bookOpenText: { category: IconCategory.Misc, icon: 'icon-[lucide--book-open-text]' },\n serverOff: { category: IconCategory.Misc, icon: 'icon-[lucide--server-off]' },\n packagePlus: { category: IconCategory.Misc, icon: 'icon-[lucide--package-plus]' },\n\n} satisfies Record<string, IconProperties>;\n\nexport class IconHelpers {\n public static getIcon(name: string): string {\n return name in CURATED_ICONS ? CURATED_ICONS[name as CuratedIcons].icon : name;\n }\n\n public static getCategory(name: CuratedIcons): IconCategory {\n return CURATED_ICONS[name].category;\n }\n\n public static getCategories(): IconCategory[] {\n const usedCategories = new Set<IconCategory>();\n\n for (const icon of Object.values(CURATED_ICONS)) {\n usedCategories.add(icon.category);\n }\n\n return Object.values(IconCategory).filter(cat => usedCategories.has(cat));\n }\n\n public static getByCategory(): Record<IconCategory, IconEntry[]> {\n const grouped = {} as Record<IconCategory, IconEntry[]>;\n\n for (const category of Object.values(IconCategory)) {\n grouped[category] = [];\n }\n\n for (const [id, data] of Object.entries(CURATED_ICONS)) {\n grouped[data.category].push({\n id: id,\n category: data.category,\n icon: data.icon,\n });\n }\n\n return grouped;\n }\n}\n","import indexCss from './index.css?raw';\n\nexport type FontFormat = 'ttf' | 'otf' | 'woff2';\n\nexport interface FontFaceData {\n family: string;\n weightMin: number;\n weightMax: number;\n style: string;\n format: FontFormat;\n filePath: string;\n fileName: string;\n cssVariable: string | null;\n}\n\nconst FONT_VAR_REGEX = /--font-([\\w-]+):\\s*'([^']+)'/g;\n\nconst familyToVariable = new Map<string, string>();\n\nlet varMatch: RegExpExecArray | null;\n\nwhile ((varMatch = FONT_VAR_REGEX.exec(indexCss)) !== null) {\n const variableName = `--font-${varMatch[1]}`;\n const familyName = varMatch[2];\n familyToVariable.set(familyName.toLowerCase(), variableName);\n}\n\nconst FONT_FACE_REGEX = /@font-face\\s*\\{([^}]*)\\}/gs;\n\nconst parsedFonts: FontFaceData[] = [];\n\nlet faceMatch: RegExpExecArray | null;\n\nwhile ((faceMatch = FONT_FACE_REGEX.exec(indexCss)) !== null) {\n const block = faceMatch[1];\n\n const familyMatch = block.match(/font-family:\\s*'([^']+)'/);\n const weightMatch = block.match(/font-weight:\\s*([\\d\\s]+)/);\n const styleMatch = block.match(/font-style:\\s*(\\w+)/);\n const srcMatch = block.match(/src:\\s*url\\([^)]*?\\/fonts\\/([^)]+)\\)\\s*format\\('(\\w+)'\\)/);\n\n if (!familyMatch || !weightMatch || !styleMatch || !srcMatch) continue;\n\n const family = familyMatch[1];\n const weightRaw = weightMatch[1].trim();\n const style = styleMatch[1];\n const fileName = srcMatch[1];\n const format = srcMatch[2] === 'truetype' ? 'ttf' : srcMatch[2] === 'opentype' ? 'otf' : 'woff2';\n\n const weights = weightRaw.split(/\\s+/).map(Number);\n const weightMin = Math.min(...weights);\n const weightMax = Math.max(...weights);\n\n parsedFonts.push({\n family: family,\n weightMin: weightMin,\n weightMax: weightMax,\n style: style,\n format: format as FontFormat,\n filePath: `/fonts/${fileName}`,\n fileName: fileName,\n cssVariable: familyToVariable.get(family.toLowerCase()) ?? null,\n });\n}\n\nparsedFonts.sort((a, b) => a.family.localeCompare(b.family));\n\nexport const FONT_FACES: FontFaceData[] = parsedFonts;\n","export const IMAGES = {\n digoLogo: 'https://cdn.digo-labs.com/images/digo-logo.png',\n digoLogoSvg: 'https://cdn.digo-labs.com/images/digo-logo.svg',\n pcLogoV1Svg: 'https://cdn.digo-labs.com/images/pc-logo-v1.svg',\n pcLogo3d: 'https://cdn.digo-labs.com/images/pc-logo-3d.png',\n userPlaceholder: 'https://cdn.digo-labs.com/images/user-placeholder.png',\n audio3d: 'https://cdn.digo-labs.com/images/audio-3d.jpg',\n blocks3d: 'https://cdn.digo-labs.com/images/blocks-3d.jpg',\n components3d: 'https://cdn.digo-labs.com/images/components-3d.jpg',\n effects3d: 'https://cdn.digo-labs.com/images/effects-3d.jpg',\n fonts3d: 'https://cdn.digo-labs.com/images/fonts-3d.jpg',\n icons3d: 'https://cdn.digo-labs.com/images/icons-3d.jpg',\n image3d: 'https://cdn.digo-labs.com/images/image-3d.jpg',\n llms3d: 'https://cdn.digo-labs.com/images/llms-3d.jpg',\n pages3d: 'https://cdn.digo-labs.com/images/pages-3d.jpg',\n text3d: 'https://cdn.digo-labs.com/images/text-3d.jpg',\n video3d: 'https://cdn.digo-labs.com/images/video-3d.jpg',\n\n terminalScreenFrame: 'https://cdn.digo-labs.com/images/terminal-screen-frame.png',\n terminalScreenGlass: 'https://cdn.digo-labs.com/images/terminal-screen-glass.png',\n terminalSideGlass: 'https://cdn.digo-labs.com/images/terminal-side-glass.png',\n};\n","export const MODELS = {\n porsche: 'https://cdn.digo-labs.com/models/porsche.glb',\n};\n","export class LocalStorage {\n public static setValue<T>(key: string, value: T): void {\n localStorage.setItem(key, JSON.stringify(value));\n }\n\n public static loadValue<T>(key: string, defaultValue: T): T {\n const storedValue = localStorage.getItem(key);\n\n if (!storedValue || storedValue === 'undefined') {\n return defaultValue;\n }\n\n try {\n return JSON.parse(storedValue);\n } catch {\n return defaultValue;\n }\n }\n}\n","export class SessionStorage {\n public static setValue<T>(key: string, value: T): void {\n sessionStorage.setItem(key, JSON.stringify(value));\n }\n\n public static loadValue<T>(key: string, defaultValue: T): T {\n const storedValue = sessionStorage.getItem(key);\n\n if (!storedValue || storedValue === 'undefined') {\n return defaultValue;\n }\n\n try {\n return JSON.parse(storedValue);\n } catch {\n return defaultValue;\n }\n }\n}\n","export const ROUTES = {\n bedrockText: 'bedrock-text',\n dmxSend: 'dmx-send',\n storagePresignUpload: 'storage-presign-upload',\n storagePresignDownload: 'storage-presign-download',\n storageList: 'storage-list',\n storageDelete: 'storage-delete',\n databaseGetAll: 'database-get-all',\n databaseGet: 'database-get',\n databaseGetBy: 'database-get-by',\n databaseCreate: 'database-create',\n databaseUpdate: 'database-update',\n databaseDelete: 'database-delete',\n refreshSchemas: 'refresh-schemas',\n} as const;\n","import LZString from 'lz-string';\n\nimport {\n base64StringToBlob,\n blobToBase64String,\n} from 'blob-util';\n\nexport class StringHelpers {\n public static hashCode(data: string) {\n return [...data].reduce(\n (hash, c) => (Math.imul(31, hash) + c.charCodeAt(0)) | 0,\n 0,\n );\n }\n\n public static compress(data: string): string {\n return LZString.compress(data);\n }\n\n public static compressToBase64(data: string): string {\n return LZString.compressToBase64(data);\n }\n\n public static compressToUint8Array(data: string): Uint8Array {\n return LZString.compressToUint8Array(data);\n }\n\n public static decompress(data: string): string {\n return LZString.decompress(data);\n }\n\n public static decompressFromBase64(data: string): string {\n return LZString.decompressFromBase64(data);\n }\n\n public static decompressFromUint8Array(data: Uint8Array): string {\n return LZString.decompressFromUint8Array(data);\n }\n\n public static blobToBase64(blob: Blob): Promise<string> {\n return blobToBase64String(blob);\n }\n\n public static base64ToBlob(base64: string): Blob {\n return base64StringToBlob(base64);\n }\n\n public static getFirstLetter(string: string | undefined): string {\n if (!string) return 'X';\n return string.charAt(0).toUpperCase();\n }\n}\n","export const STRINGS = {\n digo: 'Digo',\n refresh: 'Refresh',\n code: 'Code',\n score: 'Score',\n preview: 'Preview',\n weights: 'Weights',\n examples: 'Examples',\n typography: 'Typography',\n sizes: 'Sizes',\n icons: 'Icons',\n neutral: 'Neutral',\n info: 'Info',\n selected: 'Selected',\n noneSelected: 'None selected',\n highlights: 'Highlights',\n shadows: 'Shadows',\n color: 'Color',\n untitled: 'Untitled',\n columns: 'Columns',\n save: 'Save',\n accent: 'Accent',\n applying: 'Applying',\n viewing: 'Viewing',\n clearMessages: 'Clear messages',\n clearNextMessages: 'Clear next messages',\n apply: 'Apply',\n import: 'Import',\n search: 'Search...',\n where: 'Where',\n noTimeArray: 'No time array',\n success: 'Success',\n error: 'Error',\n warning: 'Warning',\n attach: 'Attach',\n attachImage: 'Attach Image',\n actions: 'Actions',\n addNewColumn: 'Add new column',\n addNewRow: 'Add new row',\n addFilter: 'Add filter',\n addSort: 'Add sort',\n applySorting: 'Apply sorting',\n applyFilters: 'Apply filters',\n filter: 'Filter',\n sort: 'Sort',\n resetFilters: 'Reset filters',\n resetSorting: 'Reset sorting',\n description: 'Description',\n name: 'Name',\n loremIpsumSmall: 'Lorem ipsum dolor sit amet.',\n loremIpsumMedium: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam nec purus ac libero vehicula ultricies.',\n loremIpsumLong: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam nec purus ac libero vehicula ultricies. Nulla facilisi. Sed nec nisl in turpis tincidunt tincidunt. Nulla facilisi. Sed nec nisl in turpis tincidunt tincidunt.',\n selectAgent: 'Select Agent',\n selectModel: 'Select Model',\n sendPrompt: 'Send Prompt',\n view: 'View',\n toggleColumns: 'Toggle columns',\n toggleOpen: 'Toggle open',\n reset: 'Reset',\n noResultsFound: 'No results found.',\n clearFilters: 'Clear filters',\n rowsPerPage: 'Rows per page',\n id: 'Id',\n noSortsTitle: 'No sorts apply to this view',\n noSortsDescription: 'Add a column below to sort the view',\n noFiltersTitle: 'No filters apply to this view',\n noFiltersDescription: 'Add a column below to filter the view',\n defaultValue: 'Default value',\n default: 'Default',\n stepDuration: 'Step duration (ms)',\n min: 'Min',\n max: 'Max',\n icon: 'Icon',\n step: 'Step',\n decimals: 'Decimals',\n units: 'Units',\n play: 'Play',\n pause: 'Pause',\n next: 'Next',\n previous: 'Previous',\n loop: 'Loop',\n rewind: 'Rewind',\n forward: 'Forward',\n start: 'Start',\n emptyCode: 'Select a file to view its content',\n generate: 'Generate',\n savePreset: 'Save Preset',\n image: 'Image',\n};\n","import { z } from 'zod';\n\nexport const filePayloadSchema = z.object({\n mediaType: z.string(),\n base64: z.string(),\n});\n\nexport type FilePayload = z.infer<typeof filePayloadSchema>;\n\nexport const imagePayloadSchema = z.object({\n mediaType: z.string(),\n base64: z.string(),\n});\n\nexport type ImagePayload = z.infer<typeof imagePayloadSchema>;\n\nexport const sizeFormattedSchema = z\n .string()\n .regex(/^\\d+x\\d+$/)\n .transform(s => s as `${number}x${number}`);\n\nexport type SizeFormatted = z.infer<typeof sizeFormattedSchema>;\n\nexport const aspectRatioSchema = z\n .string()\n .regex(/^\\d+:\\d+$/)\n .transform(s => s as `${number}:${number}`);\n\nexport type AspectRatio = z.infer<typeof aspectRatioSchema>;\n","import { z } from 'zod';\n\nimport { aspectRatioSchema } from './primitives';\n\nexport interface ModelMetadata {\n id: string;\n provider: string;\n name: string;\n version: string;\n description: string;\n}\n\nexport const imageGenerateBodySchema = z.object({\n prompt: z.string().min(1),\n aspectRatio: aspectRatioSchema.optional(),\n seed: z.number().int().optional(),\n});\n\nexport type ImageGenerateBody = z.infer<typeof imageGenerateBodySchema>;\n\nexport const imageEditBodySchema = z.object({\n prompt: z.string().min(1),\n image: z.string().url(),\n strength: z.number().min(0).max(1).optional(),\n});\n\nexport type ImageEditBody = z.infer<typeof imageEditBodySchema>;\n\nexport const imageUpscaleBodySchema = z.object({\n image: z.string().url(),\n factor: z.number().positive().optional(),\n});\n\nexport type ImageUpscaleBody = z.infer<typeof imageUpscaleBodySchema>;\n\nexport const imageRemoveBackgroundBodySchema = z.object({\n image: z.string().url(),\n});\n\nexport type ImageRemoveBackgroundBody = z.infer<typeof imageRemoveBackgroundBodySchema>;\n\nexport const generatedImageSchema = z.object({\n url: z.string().url(),\n contentType: z.string().optional(),\n width: z.number().optional(),\n height: z.number().optional(),\n seed: z.number().optional(),\n model: z.string().optional(),\n});\n\nexport type GeneratedImage = z.infer<typeof generatedImageSchema>;\n\nexport const videoGenerateBodySchema = z.object({\n prompt: z.string().min(1),\n aspectRatio: aspectRatioSchema.optional(),\n durationSeconds: z.number().positive().optional(),\n});\n\nexport type VideoGenerateBody = z.infer<typeof videoGenerateBodySchema>;\n\nexport const generatedVideoSchema = z.object({\n url: z.string().url(),\n contentType: z.string().optional(),\n durationSeconds: z.number().optional(),\n model: z.string().optional(),\n});\n\nexport type GeneratedVideo = z.infer<typeof generatedVideoSchema>;\n\nexport const audioSpeechBodySchema = z.object({\n text: z.string().min(1),\n voice: z.string().optional(),\n speed: z.number().positive().optional(),\n});\n\nexport type AudioSpeechBody = z.infer<typeof audioSpeechBodySchema>;\n\nexport const audioMusicBodySchema = z.object({\n prompt: z.string().min(1),\n durationSeconds: z.number().positive().optional(),\n});\n\nexport type AudioMusicBody = z.infer<typeof audioMusicBodySchema>;\n\nexport const audioTranscribeBodySchema = z.object({\n audio: z.string().url(),\n language: z.string().optional(),\n});\n\nexport type AudioTranscribeBody = z.infer<typeof audioTranscribeBodySchema>;\n\nexport const generatedAudioSchema = z.object({\n url: z.string().url(),\n contentType: z.string().optional(),\n durationSeconds: z.number().optional(),\n model: z.string().optional(),\n});\n\nexport type GeneratedAudio = z.infer<typeof generatedAudioSchema>;\n\nexport const transcriptionSegmentSchema = z.object({\n text: z.string(),\n startSecond: z.number(),\n endSecond: z.number(),\n});\n\nexport type TranscriptionSegment = z.infer<typeof transcriptionSegmentSchema>;\n\nexport const transcriptionSchema = z.object({\n text: z.string(),\n segments: z.array(transcriptionSegmentSchema).optional(),\n language: z.string().optional(),\n model: z.string().optional(),\n});\n\nexport type Transcription = z.infer<typeof transcriptionSchema>;\n\nconst textContentPartSchema = z.object({\n type: z.literal('text'),\n text: z.string(),\n});\n\nconst imageContentPartSchema = z.object({\n type: z.literal('image'),\n source: z.object({\n base64: z.string(),\n mediaType: z.string(),\n }),\n});\n\nconst messageContentSchema = z.union([\n z.string(),\n z.array(z.union([textContentPartSchema, imageContentPartSchema])),\n]);\n\nexport const textMessageSchema = z.object({\n role: z.enum(['user', 'assistant']),\n content: messageContentSchema,\n});\n\nexport type TextMessage = z.infer<typeof textMessageSchema>;\n\nexport const textBodySchema = z.object({\n model: z.string().optional(),\n messages: z.array(textMessageSchema).min(1),\n systemPrompt: z.string().optional(),\n temperature: z.number().min(0).max(2).optional(),\n maxTokens: z.number().int().positive().optional(),\n stopSequences: z.array(z.string()).optional(),\n providerOptions: z.record(z.string(), z.record(z.string(), z.any())).optional(),\n});\n\nexport type TextBody = z.infer<typeof textBodySchema>;\n\nexport const textGenerateBodySchema = textBodySchema.omit({\n model: true,\n stopSequences: true,\n providerOptions: true,\n});\n\nexport type TextGenerateBody = z.infer<typeof textGenerateBodySchema>;\n\nexport type TextStreamChunk = { text: string; };\n\nexport type TextStreamResult = { text: string; stopReason: string; };\n\nexport interface TextStream extends AsyncIterable<TextStreamChunk> {\n readonly text: string;\n readonly stopReason: string | null;\n collect(): Promise<TextStreamResult>;\n}\n","import { z } from 'zod';\n\nexport const dmxSendBodySchema = z.object({\n channel: z.number().int().min(1).max(512),\n value: z.number().int().min(0).max(255),\n});\n\nexport type DmxSendBody = z.infer<typeof dmxSendBodySchema>;\n\nexport const dmxSendResponseSchema = z.object({\n success: z.boolean(),\n});\n\nexport type DmxSendResponse = z.infer<typeof dmxSendResponseSchema>;\n","import { z } from 'zod';\n\nconst identifier = z.string().min(1);\nconst scalarValue = z.union([z.string(), z.number(), z.boolean(), z.null()]);\nconst recordValue = z.record(z.string(), z.unknown());\n\nexport const databaseGetAllBodySchema = z.object({\n table: identifier,\n limit: z.number().int().positive().max(1000).default(100),\n offset: z.number().int().nonnegative().optional(),\n});\n\nexport type DatabaseGetAllBody = z.infer<typeof databaseGetAllBodySchema>;\n\nexport const databaseGetAllResponseSchema = z.object({\n rows: z.array(recordValue),\n});\n\nexport type DatabaseGetAllResponse = z.infer<typeof databaseGetAllResponseSchema>;\n\nexport const databaseGetBodySchema = z.object({\n table: identifier,\n pk: identifier,\n value: scalarValue,\n});\n\nexport type DatabaseGetBody = z.infer<typeof databaseGetBodySchema>;\n\nexport const databaseGetResponseSchema = z.object({\n row: recordValue.nullable(),\n});\n\nexport type DatabaseGetResponse = z.infer<typeof databaseGetResponseSchema>;\n\nexport const databaseGetByBodySchema = z.object({\n table: identifier,\n column: identifier,\n value: scalarValue,\n limit: z.number().int().positive().max(1000).default(100),\n offset: z.number().int().nonnegative().optional(),\n});\n\nexport type DatabaseGetByBody = z.infer<typeof databaseGetByBodySchema>;\n\nexport const databaseGetByResponseSchema = z.object({\n rows: z.array(recordValue),\n});\n\nexport type DatabaseGetByResponse = z.infer<typeof databaseGetByResponseSchema>;\n\nexport const databaseCreateBodySchema = z.object({\n table: identifier,\n record: recordValue,\n});\n\nexport type DatabaseCreateBody = z.infer<typeof databaseCreateBodySchema>;\n\nexport const databaseCreateResponseSchema = z.object({\n row: recordValue,\n});\n\nexport type DatabaseCreateResponse = z.infer<typeof databaseCreateResponseSchema>;\n\nexport const databaseUpdateBodySchema = z.object({\n table: identifier,\n pk: identifier,\n value: scalarValue,\n changes: recordValue,\n});\n\nexport type DatabaseUpdateBody = z.infer<typeof databaseUpdateBodySchema>;\n\nexport const databaseUpdateResponseSchema = z.object({\n success: z.boolean(),\n});\n\nexport type DatabaseUpdateResponse = z.infer<typeof databaseUpdateResponseSchema>;\n\nexport const databaseDeleteBodySchema = z.object({\n table: identifier,\n pk: identifier,\n value: scalarValue,\n});\n\nexport type DatabaseDeleteBody = z.infer<typeof databaseDeleteBodySchema>;\n\nexport const databaseDeleteResponseSchema = z.object({\n success: z.boolean(),\n});\n\nexport type DatabaseDeleteResponse = z.infer<typeof databaseDeleteResponseSchema>;\n","import { z } from 'zod';\n\nexport const presignUploadBodySchema = z.object({\n bucket: z.string().min(1),\n path: z.string().min(1),\n contentType: z.string().min(1),\n expiresIn: z.number().int().positive().max(604800).optional(),\n});\n\nexport type PresignUploadBody = z.infer<typeof presignUploadBodySchema>;\n\nexport const presignUploadResponseSchema = z.object({\n url: z.string().url(),\n expiresAt: z.number(),\n});\n\nexport type PresignUploadResponse = z.infer<typeof presignUploadResponseSchema>;\n\nexport const presignDownloadBodySchema = z.object({\n bucket: z.string().min(1),\n path: z.string().min(1),\n expiresIn: z.number().int().positive().max(604800).optional(),\n});\n\nexport type PresignDownloadBody = z.infer<typeof presignDownloadBodySchema>;\n\nexport const presignDownloadResponseSchema = presignUploadResponseSchema;\n\nexport type PresignDownloadResponse = z.infer<typeof presignDownloadResponseSchema>;\n\nexport const listBodySchema = z.object({\n bucket: z.string().min(1),\n prefix: z.string().optional(),\n limit: z.number().int().positive().max(1000).optional(),\n});\n\nexport type ListBody = z.infer<typeof listBodySchema>;\n\nexport const storageObjectSchema = z.object({\n key: z.string(),\n size: z.number(),\n lastModified: z.string(),\n etag: z.string().optional(),\n});\n\nexport type StorageObject = z.infer<typeof storageObjectSchema>;\n\nexport const listResponseSchema = z.object({\n objects: z.array(storageObjectSchema),\n});\n\nexport type ListResponse = z.infer<typeof listResponseSchema>;\n\nexport const deleteBodySchema = z.object({\n bucket: z.string().min(1),\n paths: z.array(z.string().min(1)).min(1),\n});\n\nexport type DeleteBody = z.infer<typeof deleteBodySchema>;\n\nexport const deleteResponseSchema = z.object({\n success: z.boolean(),\n deleted: z.array(z.string()),\n});\n\nexport type DeleteResponse = z.infer<typeof deleteResponseSchema>;\n","export interface Time {\n hours: number;\n minutes: number;\n seconds: number;\n}\n\nexport type Vector3 = [number, number, number];\n\nexport type Side = 'top' | 'right' | 'bottom' | 'left';\n\nexport enum BedrockStyle {\n ANIMATED_FILM = '3D_ANIMATED_FAMILY_FILM',\n FLAT_VECTOR_ILLUSTRATION = 'FLAT_VECTOR_ILLUSTRATION',\n GRAPHIC_NOVEL_ILLUSTRATION = 'GRAPHIC_NOVEL_ILLUSTRATION',\n MAXIMALISM = 'MAXIMALISM',\n MIDCENTURY_RETRO = 'MIDCENTURY_RETRO',\n PHOTOREALISM = 'PHOTOREALISM',\n SOFT_DIGITAL_PAINTING = 'SOFT_DIGITAL_PAINTING',\n}\n\nexport interface Size {\n width: number;\n height: number;\n}\n\nexport interface GradientStop {\n color: string;\n percent: number;\n}\n\nexport interface ModelPayload {\n name: string;\n description: string;\n icon: string;\n}\n\nexport interface CommonMetadata {\n name: string;\n description?: string;\n image?: File;\n tags?: string[];\n icon?: string;\n}\n\ntype SuccessResult<T> = readonly[T, null];\n\ntype ErrorResult<E = Error> = readonly[null, E];\n\nexport type Result<T, E = Error> = SuccessResult<T> | ErrorResult<E>;\n\nexport interface CodeLanguageMetadata {\n icon: string;\n name: string;\n}\n\nexport type Orientation = 'horizontal' | 'vertical';\n\nexport type Alignment = 'left' | 'center' | 'right';\n\nexport type Breakpoint = 'sm' | 'md' | 'lg' | 'xl' | '2xl';\n\nexport type ClassGroups = Record<string, (string | Record<string, string[]>)[]>;\n","export type WebsocketChannelsTypes = Record<string, unknown>;\n\nexport type WebsocketListener<T = unknown> = (data: T) => void;\n\nexport enum WebsocketClientEvent {\n IDENTIFY = 'IDENTIFY',\n SUBSCRIBE = 'SUBSCRIBE',\n UNSUBSCRIBE = 'UNSUBSCRIBE',\n MESSAGE = 'MESSAGE',\n STATE = 'STATE',\n}\n\nexport type WebsocketClientMessage =\n | { type: WebsocketClientEvent.IDENTIFY; id: string; app: string; }\n | { type: WebsocketClientEvent.SUBSCRIBE; channels: string[]; }\n | { type: WebsocketClientEvent.UNSUBSCRIBE; channels: string[]; }\n | { type: WebsocketClientEvent.MESSAGE; channel: string; data?: unknown; }\n | { type: WebsocketClientEvent.STATE; channel: string; data?: unknown; };\n\nexport enum WebSocketHubEvent {\n MESSAGE = 'MESSAGE',\n STATE = 'STATE',\n}\n\nexport interface WebsocketHubMessage {\n type: WebSocketHubEvent;\n channel: string;\n data?: unknown;\n}\n\nexport interface WebsocketsHubConfig {\n port: number;\n}\n\nexport interface WebsocketConnectionConfig {\n app?: string;\n url?: string;\n id?: string;\n reconnect?: boolean;\n reconnectInterval?: number;\n maxReconnectInterval?: number;\n}\n\nexport const WEBSOCKET_HUB_CHANNEL = '_hub';\n\nexport interface WebsocketHubStatusClient {\n id: string;\n app: string;\n channels: string[];\n}\n\nexport enum WebsocketLogEvent {\n CONNECT = 'CONNECT',\n DISCONNECT = 'DISCONNECT',\n SUBSCRIBE = 'SUBSCRIBE',\n UNSUBSCRIBE = 'UNSUBSCRIBE',\n MESSAGE = 'MESSAGE',\n STATE = 'STATE',\n}\n\nexport interface WebsocketHubLogEntry {\n timestamp: number;\n sender: string;\n app: string;\n type: WebsocketLogEvent;\n channel: string;\n data?: unknown;\n}\n\nexport interface WebsocketHubStatus {\n clients: WebsocketHubStatusClient[];\n state: Record<string, unknown>;\n logs: WebsocketHubLogEntry[];\n}\n","export const VIDEOS = {\n pcLogo3D: 'https://cdn.digo-labs.com/videos/pc-logo-3d.mp4',\n};\n","import { TYPO_CLASS_GROUPS } from './constants';\nimport { Result } from './types/common-types';\n\nimport clsx, { ClassValue } from 'clsx';\nimport { extendTailwindMerge } from 'tailwind-merge';\n\nexport async function tryCatch<T, E = Error>(promise: Promise<T>): Promise<Result<T, E>> {\n try {\n const data = await promise;\n return [data, null] as const;\n } catch (error) {\n return [null, error as E] as const;\n }\n}\n\nconst twMerge = extendTailwindMerge({ extend: { classGroups: TYPO_CLASS_GROUPS } });\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","export const CITIES: string[] = [\n 'New York',\n 'Tokyo',\n 'Paris',\n 'London',\n 'Barcelona',\n 'Berlin',\n 'Amsterdam',\n 'Sydney',\n 'São Paulo',\n 'Mumbai',\n 'Dubai',\n 'Singapore',\n 'Hong Kong',\n 'Rome',\n 'Vienna',\n 'Prague',\n 'Lisbon',\n 'Stockholm',\n 'Seoul',\n 'Istanbul',\n 'Buenos Aires',\n 'Cairo',\n 'Mexico City',\n 'Oslo',\n 'Zürich',\n];\n\nexport const EXCERPTS: string[] = [\n 'The quick brown fox jumps over the lazy dog.',\n 'Pack my box with five dozen liquor jugs.',\n 'How vexingly quick daft zebras jump.',\n 'Sphinx of black quartz, judge my vow.',\n 'The five boxing wizards jump quickly.',\n 'Bright vixens jump dozing fowl quack.',\n 'Jackdaws love my big sphinx of quartz.',\n 'Sixty zippers were quickly picked from the woven jute bag.',\n 'We promptly judged antique ivory buckles for the next prize.',\n 'A mad boxer shot a quick, gloved jab to the jaw of his dizzy opponent.',\n];\n","export const AUTH_PROJECTS = {\n monorepo: {\n trustedOrigins: [\n 'http://localhost:*',\n 'http://127.0.0.1:*',\n 'https://*.digo-labs.com',\n ],\n },\n} as const;\n\nexport type AuthProject = keyof typeof AUTH_PROJECTS;\n\nexport type AuthTier = 'public' | 'user' | 'org' | 'admin';\n\nexport type SignInProvider = 'google';\n\nexport interface AccessTiers {\n read: AuthTier;\n write: AuthTier;\n}\n\nexport type AccessOperation = keyof AccessTiers;\n\nexport interface TableAccessRule extends AccessTiers {\n owner?: string;\n}\n\nexport const ORG_EMAIL_DOMAIN = 'productionclub.net';\n\nconst ADMIN_ROLE = 'admin';\n\nconst TIER_RANK: Record<AuthTier, number> = {\n public: 0,\n user: 1,\n org: 2,\n admin: 3,\n};\n\nexport interface AuthTierUser {\n email: string;\n emailVerified: boolean;\n role?: string | null;\n}\n\nexport class AuthTierHelpers {\n public static deriveTier(user: AuthTierUser | null | undefined): AuthTier {\n if (!user) return 'public';\n if (this.hasAdminRole(user.role)) return 'admin';\n if (this.isOrgUser(user)) return 'org';\n\n return 'user';\n }\n\n public static meetsTier(tier: AuthTier, required: AuthTier): boolean {\n if (!this.isTier(tier) || !this.isTier(required)) return false;\n\n return TIER_RANK[tier] >= TIER_RANK[required];\n }\n\n public static isTier(value: unknown): value is AuthTier {\n return typeof value === 'string' && Object.hasOwn(TIER_RANK, value);\n }\n\n private static hasAdminRole(role: string | null | undefined): boolean {\n if (!role) return false;\n\n return role.split(',').includes(ADMIN_ROLE);\n }\n\n private static isOrgUser(user: AuthTierUser): boolean {\n if (!user.emailVerified) return false;\n\n return user.email.toLowerCase().endsWith(`@${ORG_EMAIL_DOMAIN}`);\n }\n}\n"],"mappings":"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"}
package/dist/models.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  export declare const MODELS: {
2
- brain: string;
2
+ porsche: string;
3
3
  };