@digo-labs/common 0.1.5

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/common-helpers.ts","../src/constants.ts","../src/icons.ts","../src/index.css?raw","../src/font-parser.ts","../src/images.ts","../src/models.ts","../src/local-storage.ts","../src/routes.ts","../src/string-helpers.ts","../src/strings.ts","../src/schemas/ai.ts","../src/schemas/dmx.ts","../src/schemas/database.ts","../src/schemas/primitives.ts","../src/schemas/storage.ts","../src/types/common-types.ts","../src/types/websocket-types.ts","../src/videos.ts","../src/fonts.ts","../src/utils.ts","../src/samples.ts","../src/auth.ts"],"sourcesContent":["import { ImagePayload, Result, Time, tryCatch } from './';\n\nimport { removeBackground } from '@imgly/background-removal';\n\nimport { formatDistanceToNow, parseISO } from 'date-fns';\nimport { decode, encode } from 'base64-arraybuffer';\n\nexport class CommonHelpers {\n public static copyToClipboard(text: string) {\n navigator.clipboard.writeText(text)\n .then(() => {\n\n })\n .catch(() => {\n console.error('Failed to copy');\n });\n }\n\n public static async removeBackground(image: ImagePayload): Promise<ImagePayload> {\n const arrayBuffer = decode(image.base64);\n const blob = new Blob([arrayBuffer], { type: image.mediaType });\n\n const resultBlob = await removeBackground(blob);\n\n const resultArrayBuffer = await resultBlob.arrayBuffer();\n const base64 = encode(resultArrayBuffer);\n\n return {\n base64,\n mediaType: 'image/png',\n };\n }\n\n public static getTimeFormatted(seconds: number): Time {\n const time: Time = {\n hours: Math.floor(seconds / 3600),\n minutes: Math.floor((seconds % 3600) / 60),\n seconds: seconds % 60,\n };\n return time;\n }\n\n public static async getTextFromClipboard(): Promise<string> {\n return await navigator.clipboard.readText();\n }\n\n public static decodeBase64(base64: string): ArrayBuffer {\n const arraybuffer = decode(base64);\n return arraybuffer;\n }\n\n public static getRandomInteger(min: number, max: number): number {\n const randomInteger = Math.floor(Math.random() * (max - min + 1)) + min;\n return randomInteger;\n }\n\n public static encodeArrayBufferToBase64(arrayBuffer: ArrayBuffer): string {\n const base64 = encode(arrayBuffer);\n return base64;\n }\n\n public static hexToRgb(hex: string) {\n const m = hex.match(/^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i);\n if (!m) return { r: 0, g: 0, b: 0 };\n return {\n r: parseInt(m[1], 16),\n g: parseInt(m[2], 16),\n b: parseInt(m[3], 16),\n };\n }\n\n public static rgbArrayToHex(rgb: [number, number, number]): string {\n const hex = rgb.map((value) => {\n const hexValue = value.toString(16);\n return hexValue.length === 1 ? '0' + hexValue : hexValue;\n }).join('');\n\n return `#${hex}`;\n }\n\n public static hexToRgbArray(hex: string): [number, number, number] {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n\n if (!result) return [0, 0, 0];\n\n return [\n parseInt(result[1], 16) / 255,\n parseInt(result[2], 16) / 255,\n parseInt(result[3], 16) / 255,\n ];\n }\n\n public static getCssVariable(variable: string) {\n return getComputedStyle(document.documentElement).getPropertyValue(variable);\n }\n\n public static setCssVariable(name: string, element: HTMLElement) {\n document.documentElement.style.setProperty(name, `${element.offsetHeight}px`);\n }\n\n public static lerp(start: number, end: number, t: number): number {\n return start + (end - start) * t; ;\n }\n\n public static lerpArray(start: number[], end: number[], t: number): number[] {\n return start.map((startItem, index) => startItem + (end[index] - startItem) * t);\n }\n\n public static clamp(value: number, min: number, max: number) {\n return Math.min(Math.max(value, min), max);\n }\n\n public static async downloadURI(uri: string, name?: string) {\n const response = await fetch(uri);\n const blob = await response.blob();\n const url = URL.createObjectURL(blob);\n const link = document.createElement('a');\n link.href = url;\n link.download = name || 'download';\n link.click();\n URL.revokeObjectURL(url);\n }\n\n public static async getFileFromUrl(url: string, fileName?: string): Promise<File> {\n const response = await fetch(url);\n const blob = await response.blob();\n const imageFile = new File([blob], fileName ? fileName : 'untitled', { type: blob.type });\n\n return imageFile;\n }\n\n public static generateUUID(): string {\n if (crypto.randomUUID) {\n return crypto.randomUUID();\n }\n\n const fallback = `${Date.now()}-${Math.random().toString(36).substring(2, 15)}${Math.random().toString(36).substring(2, 15)}`;\n\n return fallback;\n }\n\n public static async getImagePayloadFromUrl(url: string, fileName?: string): Promise<Result<ImagePayload>> {\n const imageFile = await this.getFileFromUrl(url, fileName);\n\n return this.getImagePayloadFromFile(imageFile);\n }\n\n public static async getImagePayloadFromFile(file: File): Promise<Result<ImagePayload>> {\n const [arrayBuffer, error] = await tryCatch(file.arrayBuffer());\n\n if (error) return [null, error];\n\n const base64 = CommonHelpers.encodeArrayBufferToBase64(arrayBuffer);\n const mediaType = file.type;\n\n const imageData: ImagePayload = { base64, mediaType };\n return [imageData, null];\n }\n\n public static getFileFromImagePayload(ImagePayload: ImagePayload): File {\n const arrayBuffer = decode(ImagePayload.base64);\n const blob = new Blob([arrayBuffer], { type: ImagePayload.mediaType });\n const extension = ImagePayload.mediaType.split('/')[1] || 'png';\n const file = new File([blob], `created-file.${extension}`, { type: ImagePayload.mediaType });\n\n return file;\n }\n\n public static setTabName(name: string) {\n document.title = `${name}`;\n }\n\n public static openFileSelector(accepts: string, callback: (file: File) => void): void {\n const input = document.createElement('input');\n input.type = 'file';\n\n input.accept = accepts;\n\n input.onchange = (event: Event) => {\n const target = event.target as HTMLInputElement;\n if (target.files && target.files.length > 0) {\n const file = target.files[0];\n callback(file);\n }\n };\n\n input.click();\n }\n\n public static formatNumberTwoDigits(number: number): string {\n const formatedNumber = number.toFixed().padStart(2, '0');\n return formatedNumber;\n }\n\n public getFormatedTime(miliseconds: number, decimals: number = 2): string {\n const time = (miliseconds / 1000).toFixed(decimals);\n return time;\n }\n\n public static async preloadImage(url: string): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n const image = new Image();\n image.onload = () => resolve();\n image.onerror = () => reject(new Error(`Failed to load: ${url}`));\n image.src = url;\n });\n }\n\n public static async preloadImages(urls: string[]): Promise<void> {\n const promises = urls.map(url => CommonHelpers.preloadImage(url));\n await Promise.all(promises);\n }\n\n public static getUniqueLetters(word: string): string[] {\n const uniqueLetters = [...new Set(word.split(''))];\n\n return uniqueLetters;\n }\n\n public static async compressImage(base64: string, mediaType: string, maxWidth: number = 800, quality: number = 0.7): Promise<ImagePayload> {\n return new Promise((resolve) => {\n const img = new Image();\n img.onload = () => {\n const canvas = document.createElement('canvas');\n const ratio = Math.min(maxWidth / img.width, maxWidth / img.height, 1);\n canvas.width = img.width * ratio;\n canvas.height = img.height * ratio;\n\n const ctx = canvas.getContext('2d')!;\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n\n const compressedBase64 = canvas.toDataURL('image/jpeg', quality).split(',')[1];\n\n resolve({\n base64: compressedBase64,\n mediaType: 'image/jpeg',\n });\n };\n img.src = `data:${mediaType};base64,${base64}`;\n });\n }\n\n public static async downloadCsvFromUrl(url: string) {\n const response = await fetch(url);\n\n if (!response.ok) throw new Error(`Failed to download CSV file: ${response.statusText}`);\n\n const csvData = await response.text();\n\n return csvData;\n }\n\n public static getLastUpdated(timeStamptz: string): string {\n const date = parseISO(timeStamptz);\n const formattedDate = formatDistanceToNow(date, { addSuffix: true });\n\n return formattedDate;\n }\n\n public static getUniqueIdInList(baseId: string, ids: string[]): string {\n const match = baseId.match(/^(.*?)(-\\d+)?$/);\n let base = baseId;\n let suffix = 1;\n\n if (match) {\n base = match[1];\n if (match[2]) {\n suffix = parseInt(match[2].slice(1)) + 1;\n }\n }\n\n const baseLower = base.toLowerCase();\n let newId = `${baseLower}-${suffix}`;\n\n while (ids.some(id => id.toLowerCase() === newId)) {\n suffix++;\n newId = `${baseLower}-${suffix}`;\n }\n\n return newId.toLowerCase();\n }\n\n public static scrollToBottom(container: HTMLDivElement | null) {\n if (!container) return;\n\n container.scrollTo({\n top: container.scrollHeight,\n behavior: 'smooth',\n });\n }\n}\n","import { CodeLanguageMetadata, ModelPayload } from './types/common-types';\n\nexport const BACKEND_URL = 'https://api.digo-labs.com';\n\nexport const AWS_DEFAULT_REGION = 'us-east-1';\n\nexport const AI_MODELS: ModelPayload[] = [\n {\n name: 'Claude 3.7 Sonnet',\n description: 'Anthropic\\'s advanced model',\n icon: 'icon-[simple-icons--anthropic]',\n },\n {\n name: 'Gemini 2.5 Pro',\n description: 'Google\\'s latest model',\n icon: 'icon-[simple-icons--googlegemini]',\n },\n {\n name: 'GPT-4.1',\n description: 'OpenAi\\'s advanced model',\n icon: 'icon-[simple-icons--openai]',\n },\n];\n\nexport const LANGUAGE_MAP: Record<string, CodeLanguageMetadata> = {\n typescript: { icon: 'typescript', name: 'TypeScript' },\n javascript: { icon: 'javascript', name: 'JavaScript' },\n tsx: { icon: 'typescript', name: 'TSX' },\n jsx: { icon: 'javascript', name: 'JSX' },\n python: { icon: 'python', name: 'Python' },\n rust: { icon: 'code', name: 'Rust' },\n go: { icon: 'code', name: 'Go' },\n sql: { icon: 'code', name: 'SQL' },\n bash: { icon: 'terminal', name: 'Bash' },\n sh: { icon: 'terminal', name: 'Shell' },\n json: { icon: 'code', name: 'JSON' },\n css: { icon: 'code', name: 'CSS' },\n html: { icon: 'code', name: 'HTML' },\n markdown: { icon: 'code', name: 'Markdown' },\n yaml: { icon: 'code', name: 'YAML' },\n xml: { icon: 'code', name: 'XML' },\n text: { icon: 'code', name: 'Text' },\n};\n","enum IconCategory {\n Navigation = 'Navigation',\n Actions = 'Actions',\n Status = 'Status',\n Media = 'Media',\n Files = 'Files',\n UI = 'UI',\n Brands = 'Brands',\n Programming = 'Programming',\n Tools = 'Tools',\n Data = 'Data',\n Communication = 'Communication',\n Design = 'Design',\n AI = 'AI',\n Numbers = 'Numbers',\n Misc = 'Misc',\n}\n\ninterface IconProperties {\n icon: string;\n category: IconCategory;\n}\n\ninterface IconEntry extends IconProperties {\n id: string;\n}\n\nexport type CuratedIcons = keyof typeof CURATED_ICONS;\n\nconst CURATED_ICONS = {\n arrowUp: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-up]' },\n arrowDown: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-down]' },\n arrowLeft: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-left]' },\n arrowRight: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-right]' },\n arrowUpLeft: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-up-left]' },\n arrowUpRight: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-up-right]' },\n arrowDownLeft: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-down-left]' },\n arrowDownRight: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-down-right]' },\n arrowLeftRight: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-left-right]' },\n arrowUpDown: { category: IconCategory.Navigation, icon: 'icon-[lucide--arrow-up-down]' },\n circleArrowUp: { category: IconCategory.Navigation, icon: 'icon-[lucide--circle-arrow-up]' },\n circleArrowDown: { category: IconCategory.Navigation, icon: 'icon-[lucide--circle-arrow-down]' },\n circleArrowLeft: { category: IconCategory.Navigation, icon: 'icon-[lucide--circle-arrow-left]' },\n circleArrowRight: { category: IconCategory.Navigation, icon: 'icon-[lucide--circle-arrow-right]' },\n chevronUp: { category: IconCategory.Navigation, icon: 'icon-[lucide--chevron-up]' },\n chevronDown: { category: IconCategory.Navigation, icon: 'icon-[lucide--chevron-down]' },\n chevronLeft: { category: IconCategory.Navigation, icon: 'icon-[lucide--chevron-left]' },\n chevronRight: { category: IconCategory.Navigation, icon: 'icon-[lucide--chevron-right]' },\n chevronsUp: { category: IconCategory.Navigation, icon: 'icon-[lucide--chevrons-up]' },\n chevronsDown: { category: IconCategory.Navigation, icon: 'icon-[lucide--chevrons-down]' },\n chevronsLeft: { category: IconCategory.Navigation, icon: 'icon-[lucide--chevrons-left]' },\n chevronsRight: { category: IconCategory.Navigation, icon: 'icon-[lucide--chevrons-right]' },\n chevronsUpDown: { category: IconCategory.Navigation, icon: 'icon-[lucide--chevrons-up-down]' },\n cornerDownLeft: { category: IconCategory.Navigation, icon: 'icon-[lucide--corner-down-left]' },\n cornerDownRight: { category: IconCategory.Navigation, icon: 'icon-[lucide--corner-down-right]' },\n cornerLeftDown: { category: IconCategory.Navigation, icon: 'icon-[lucide--corner-left-down]' },\n cornerLeftUp: { category: IconCategory.Navigation, icon: 'icon-[lucide--corner-left-up]' },\n cornerRightDown: { category: IconCategory.Navigation, icon: 'icon-[lucide--corner-right-down]' },\n cornerRightUp: { category: IconCategory.Navigation, icon: 'icon-[lucide--corner-right-up]' },\n cornerUpLeft: { category: IconCategory.Navigation, icon: 'icon-[lucide--corner-up-left]' },\n cornerUpRight: { category: IconCategory.Navigation, icon: 'icon-[lucide--corner-up-right]' },\n home: { category: IconCategory.Navigation, icon: 'icon-[lucide--house]' },\n compass: { category: IconCategory.Navigation, icon: 'icon-[lucide--compass]' },\n menu: { category: IconCategory.Navigation, icon: 'icon-[lucide--menu]' },\n anchor: { category: IconCategory.Navigation, icon: 'icon-[lucide--anchor]' },\n route: { category: IconCategory.Navigation, icon: 'icon-[lucide--route]' },\n router: { category: IconCategory.Navigation, icon: 'icon-[lucide--router]' },\n externalLink: { category: IconCategory.Navigation, icon: 'icon-[lucide--external-link]' },\n move: { category: IconCategory.Navigation, icon: 'icon-[lucide--move]' },\n expand: { category: IconCategory.Navigation, icon: 'icon-[material-symbols--expand-more-rounded]' },\n collapse: { category: IconCategory.Navigation, icon: 'icon-[material-symbols--expand-less-rounded]' },\n firstPage: { category: IconCategory.Navigation, icon: 'icon-[material-symbols--first-page-rounded]' },\n lastPage: { category: IconCategory.Navigation, icon: 'icon-[material-symbols--last-page-rounded]' },\n openInNew: { category: IconCategory.Navigation, icon: 'icon-[material-symbols--open-in-new-rounded]' },\n select: { category: IconCategory.Navigation, icon: 'icon-[mi--select]' },\n signIn: { category: IconCategory.Navigation, icon: 'icon-[lucide--log-in]' },\n login: { category: IconCategory.Navigation, icon: 'icon-[lucide--log-in]' },\n logout: { category: IconCategory.Navigation, icon: 'icon-[lucide--log-out]' },\n add: { category: IconCategory.Actions, icon: 'icon-[lucide--plus]' },\n remove: { category: IconCategory.Actions, icon: 'icon-[lucide--minus]' },\n close: { category: IconCategory.Actions, icon: 'icon-[lucide--x]' },\n check: { category: IconCategory.Actions, icon: 'icon-[lucide--check]' },\n checkCheck: { category: IconCategory.Actions, icon: 'icon-[lucide--check-check]' },\n checkIndeterminate: { category: IconCategory.Actions, icon: 'icon-[material-symbols--check-indeterminate-small-rounded]' },\n search: { category: IconCategory.Actions, icon: 'icon-[lucide--search]' },\n zoomIn: { category: IconCategory.Actions, icon: 'icon-[lucide--zoom-in]' },\n zoomOut: { category: IconCategory.Actions, icon: 'icon-[lucide--zoom-out]' },\n edit: { category: IconCategory.Actions, icon: 'icon-[lucide--pencil]' },\n pencilLine: { category: IconCategory.Actions, icon: 'icon-[lucide--pencil-line]' },\n delete: { category: IconCategory.Actions, icon: 'icon-[lucide--trash]' },\n trash: { category: IconCategory.Actions, icon: 'icon-[lucide--trash-2]' },\n copy: { category: IconCategory.Actions, icon: 'icon-[lucide--copy]' },\n paste: { category: IconCategory.Actions, icon: 'icon-[lucide--clipboard-paste]' },\n cut: { category: IconCategory.Actions, icon: 'icon-[lucide--scissors]' },\n save: { category: IconCategory.Actions, icon: 'icon-[lucide--save]' },\n download: { category: IconCategory.Actions, icon: 'icon-[lucide--download]' },\n upload: { category: IconCategory.Actions, icon: 'icon-[lucide--upload]' },\n refresh: { category: IconCategory.Actions, icon: 'icon-[lucide--refresh-cw]' },\n refreshCcw: { category: IconCategory.Actions, icon: 'icon-[lucide--refresh-ccw]' },\n rotateCw: { category: IconCategory.Actions, icon: 'icon-[lucide--rotate-cw]' },\n rotateCcw: { category: IconCategory.Actions, icon: 'icon-[lucide--rotate-ccw]' },\n sync: { category: IconCategory.Actions, icon: 'icon-[material-symbols--sync-rounded]' },\n undo: { category: IconCategory.Actions, icon: 'icon-[lucide--undo-2]' },\n redo: { category: IconCategory.Actions, icon: 'icon-[lucide--redo-2]' },\n send: { category: IconCategory.Actions, icon: 'icon-[lucide--send]' },\n share: { category: IconCategory.Actions, icon: 'icon-[lucide--share]' },\n share2: { category: IconCategory.Actions, icon: 'icon-[lucide--share-2]' },\n attach: { category: IconCategory.Actions, icon: 'icon-[lucide--paperclip]' },\n link: { category: IconCategory.Actions, icon: 'icon-[lucide--link]' },\n link2: { category: IconCategory.Actions, icon: 'icon-[lucide--link-2]' },\n unlink: { category: IconCategory.Actions, icon: 'icon-[lucide--unlink]' },\n filter: { category: IconCategory.Actions, icon: 'icon-[lucide--filter]' },\n listFilter: { category: IconCategory.Actions, icon: 'icon-[lucide--list-filter]' },\n sort: { category: IconCategory.Actions, icon: 'icon-[lucide--arrow-up-down]' },\n sortAsc: { category: IconCategory.Actions, icon: 'icon-[lucide--arrow-up-narrow-wide]' },\n sortDesc: { category: IconCategory.Actions, icon: 'icon-[lucide--arrow-down-wide-narrow]' },\n lock: { category: IconCategory.Actions, icon: 'icon-[lucide--lock]' },\n lockOpen: { category: IconCategory.Actions, icon: 'icon-[lucide--lock-open]' },\n unlock: { category: IconCategory.Actions, icon: 'icon-[lucide--lock-open]' },\n print: { category: IconCategory.Actions, icon: 'icon-[lucide--printer]' },\n backspace: { category: IconCategory.Actions, icon: 'icon-[lucide--delete]' },\n crop: { category: IconCategory.Actions, icon: 'icon-[lucide--crop]' },\n success: { category: IconCategory.Status, icon: 'icon-[lucide--circle-check]' },\n checkCircle: { category: IconCategory.Status, icon: 'icon-[lucide--circle-check-big]' },\n info: { category: IconCategory.Status, icon: 'icon-[lucide--info]' },\n warning: { category: IconCategory.Status, icon: 'icon-[lucide--triangle-alert]' },\n error: { category: IconCategory.Status, icon: 'icon-[lucide--circle-x]' },\n help: { category: IconCategory.Status, icon: 'icon-[lucide--circle-help]' },\n spinner: { category: IconCategory.Status, icon: 'icon-[line-md--loading-twotone-loop]' },\n spinnerDots: { category: IconCategory.Status, icon: 'icon-[svg-spinners--3-dots-move]' },\n loading: { category: IconCategory.Status, icon: 'icon-[line-md--loading-twotone-loop]' },\n loaderCircle: { category: IconCategory.Status, icon: 'icon-[lucide--loader-circle]' },\n verified: { category: IconCategory.Status, icon: 'icon-[lucide--badge-check]' },\n visibility: { category: IconCategory.Status, icon: 'icon-[lucide--eye]' },\n visibilityOff: { category: IconCategory.Status, icon: 'icon-[lucide--eye-off]' },\n online: { category: IconCategory.Status, icon: 'icon-[lucide--circle-dot]' },\n circleCheck: { category: IconCategory.Status, icon: 'icon-[lucide--circle-check]' },\n squareCheck: { category: IconCategory.Status, icon: 'icon-[lucide--square-check]' },\n play: { category: IconCategory.Media, icon: 'icon-[lucide--play]' },\n pause: { category: IconCategory.Media, icon: 'icon-[lucide--pause]' },\n stop: { category: IconCategory.Media, icon: 'icon-[lucide--square]' },\n stopCircle: { category: IconCategory.Media, icon: 'icon-[lucide--circle-stop]' },\n skipBack: { category: IconCategory.Media, icon: 'icon-[lucide--skip-back]' },\n skipForward: { category: IconCategory.Media, icon: 'icon-[lucide--skip-forward]' },\n skipNext: { category: IconCategory.Media, icon: 'icon-[lucide--skip-forward]' },\n skipPrevious: { category: IconCategory.Media, icon: 'icon-[lucide--skip-back]' },\n fastForward: { category: IconCategory.Media, icon: 'icon-[lucide--fast-forward]' },\n fastRewind: { category: IconCategory.Media, icon: 'icon-[lucide--rewind]' },\n rewind: { category: IconCategory.Media, icon: 'icon-[lucide--rewind]' },\n loop: { category: IconCategory.Media, icon: 'icon-[lucide--repeat]' },\n shuffle: { category: IconCategory.Media, icon: 'icon-[lucide--shuffle]' },\n volumeUp: { category: IconCategory.Media, icon: 'icon-[lucide--volume-2]' },\n volumeDown: { category: IconCategory.Media, icon: 'icon-[lucide--volume-1]' },\n volumeOff: { category: IconCategory.Media, icon: 'icon-[lucide--volume-off]' },\n image: { category: IconCategory.Media, icon: 'icon-[lucide--image]' },\n imagePlus: { category: IconCategory.Media, icon: 'icon-[lucide--image-plus]' },\n video: { category: IconCategory.Media, icon: 'icon-[lucide--video]' },\n videoOff: { category: IconCategory.Media, icon: 'icon-[lucide--video-off]' },\n camera: { category: IconCategory.Media, icon: 'icon-[lucide--camera]' },\n mic: { category: IconCategory.Media, icon: 'icon-[lucide--mic]' },\n micOff: { category: IconCategory.Media, icon: 'icon-[lucide--mic-off]' },\n webcam: { category: IconCategory.Media, icon: 'icon-[lucide--webcam]' },\n music: { category: IconCategory.Media, icon: 'icon-[lucide--music]' },\n music2: { category: IconCategory.Media, icon: 'icon-[lucide--music-2]' },\n headset: { category: IconCategory.Media, icon: 'icon-[lucide--headset]' },\n captions: { category: IconCategory.Media, icon: 'icon-[lucide--captions]' },\n playCircle: { category: IconCategory.Media, icon: 'icon-[lucide--circle-play]' },\n pauseCircle: { category: IconCategory.Media, icon: 'icon-[lucide--circle-pause]' },\n file: { category: IconCategory.Files, icon: 'icon-[lucide--file]' },\n fileText: { category: IconCategory.Files, icon: 'icon-[lucide--file-text]' },\n fileAdd: { category: IconCategory.Files, icon: 'icon-[lucide--file-plus]' },\n fileZip: { category: IconCategory.Files, icon: 'icon-[lucide--file-archive]' },\n fileSymlink: { category: IconCategory.Files, icon: 'icon-[lucide--file-symlink]' },\n fileSearch: { category: IconCategory.Files, icon: 'icon-[lucide--file-search]' },\n folder: { category: IconCategory.Files, icon: 'icon-[lucide--folder]' },\n folderOpen: { category: IconCategory.Files, icon: 'icon-[lucide--folder-open]' },\n folderClosed: { category: IconCategory.Files, icon: 'icon-[lucide--folder-closed]' },\n folderPlus: { category: IconCategory.Files, icon: 'icon-[lucide--folder-plus]' },\n folderMinus: { category: IconCategory.Files, icon: 'icon-[lucide--folder-minus]' },\n folderGit: { category: IconCategory.Files, icon: 'icon-[lucide--folder-git-2]' },\n folderSymlink: { category: IconCategory.Files, icon: 'icon-[lucide--folder-symlink]' },\n document: { category: IconCategory.Files, icon: 'icon-[lucide--file-text]' },\n code: { category: IconCategory.Files, icon: 'icon-[lucide--code]' },\n codeBlock: { category: IconCategory.Files, icon: 'icon-[lucide--square-code]' },\n codeBracket: { category: IconCategory.Files, icon: 'icon-[lucide--braces]' },\n codeWrap: { category: IconCategory.Files, icon: 'icon-[lucide--wrap-text]' },\n archive: { category: IconCategory.Files, icon: 'icon-[lucide--archive]' },\n notebook: { category: IconCategory.Files, icon: 'icon-[lucide--notebook]' },\n notes: { category: IconCategory.Files, icon: 'icon-[lucide--sticky-note]' },\n clipboard: { category: IconCategory.Files, icon: 'icon-[lucide--clipboard]' },\n floppyDisk: { category: IconCategory.Files, icon: 'icon-[lucide--save]' },\n panelLeft: { category: IconCategory.UI, icon: 'icon-[lucide--panel-left]' },\n panelRight: { category: IconCategory.UI, icon: 'icon-[lucide--panel-right]' },\n panelTop: { category: IconCategory.UI, icon: 'icon-[lucide--panel-top]' },\n panelBottom: { category: IconCategory.UI, icon: 'icon-[lucide--panel-bottom]' },\n sidebar: { category: IconCategory.UI, icon: 'icon-[lucide--panel-left]' },\n moreHorizontal: { category: IconCategory.UI, icon: 'icon-[lucide--ellipsis]' },\n moreVertical: { category: IconCategory.UI, icon: 'icon-[lucide--ellipsis-vertical]' },\n dragHandle: { category: IconCategory.UI, icon: 'icon-[lucide--grip-horizontal]' },\n dragIndicator: { category: IconCategory.UI, icon: 'icon-[lucide--grip-vertical]' },\n gridView: { category: IconCategory.UI, icon: 'icon-[lucide--grid-2x2]' },\n gridSquare: { category: IconCategory.UI, icon: 'icon-[lucide--grid-2x2]' },\n colorSwatch: { category: IconCategory.UI, icon: 'icon-[heroicons-solid--color-swatch]' },\n layoutGrid: { category: IconCategory.UI, icon: 'icon-[lucide--layout-grid]' },\n listView: { category: IconCategory.UI, icon: 'icon-[lucide--list]' },\n listOrdered: { category: IconCategory.UI, icon: 'icon-[lucide--list-ordered]' },\n settings: { category: IconCategory.UI, icon: 'icon-[lucide--settings]' },\n tune: { category: IconCategory.UI, icon: 'icon-[lucide--sliders-horizontal]' },\n slidersVertical: { category: IconCategory.UI, icon: 'icon-[lucide--sliders-vertical]' },\n notifications: { category: IconCategory.UI, icon: 'icon-[lucide--bell]' },\n bellDot: { category: IconCategory.UI, icon: 'icon-[lucide--bell-dot]' },\n bellOff: { category: IconCategory.UI, icon: 'icon-[lucide--bell-off]' },\n person: { category: IconCategory.UI, icon: 'icon-[lucide--user]' },\n group: { category: IconCategory.UI, icon: 'icon-[lucide--users]' },\n userCheck: { category: IconCategory.UI, icon: 'icon-[lucide--user-check]' },\n userPlus: { category: IconCategory.UI, icon: 'icon-[lucide--user-plus]' },\n userMinus: { category: IconCategory.UI, icon: 'icon-[lucide--user-minus]' },\n userX: { category: IconCategory.UI, icon: 'icon-[lucide--user-x]' },\n userCog: { category: IconCategory.UI, icon: 'icon-[lucide--user-cog]' },\n keyboard: { category: IconCategory.UI, icon: 'icon-[lucide--keyboard]' },\n keyboardReturn: { category: IconCategory.UI, icon: 'icon-[material-symbols--keyboard-return-rounded]' },\n keyboardCommand: { category: IconCategory.UI, icon: 'icon-[lucide--command]' },\n fullscreen: { category: IconCategory.UI, icon: 'icon-[lucide--maximize]' },\n fullscreenExit: { category: IconCategory.UI, icon: 'icon-[lucide--minimize]' },\n dashboard: { category: IconCategory.UI, icon: 'icon-[lucide--layout-dashboard]' },\n widgets: { category: IconCategory.UI, icon: 'icon-[material-symbols--widgets-rounded]' },\n apps: { category: IconCategory.UI, icon: 'icon-[lucide--grid-3x3]' },\n pictureInPicture: { category: IconCategory.UI, icon: 'icon-[lucide--picture-in-picture]' },\n toggleOn: { category: IconCategory.UI, icon: 'icon-[lucide--toggle-right]' },\n toggleOff: { category: IconCategory.UI, icon: 'icon-[lucide--toggle-left]' },\n appWindow: { category: IconCategory.UI, icon: 'icon-[lucide--app-window]' },\n terminalWindow: { category: IconCategory.UI, icon: 'icon-[lucide--square-terminal]' },\n scrollArea: { category: IconCategory.UI, icon: 'icon-[lucide--scroll]' },\n inspectSearch: { category: IconCategory.UI, icon: 'icon-[lucide--scan-search]' },\n option: { category: IconCategory.UI, icon: 'icon-[lucide--option]' },\n cube: { category: IconCategory.UI, icon: 'icon-[iconoir--select-face-3d]' },\n google: { category: IconCategory.Brands, icon: 'icon-[logos--google-icon]' },\n github: { category: IconCategory.Brands, icon: 'icon-[mdi--github]' },\n apple: { category: IconCategory.Brands, icon: 'icon-[mdi--apple]' },\n openai: { category: IconCategory.Brands, icon: 'icon-[simple-icons--openai]' },\n anthropic: { category: IconCategory.Brands, icon: 'icon-[simple-icons--anthropic]' },\n gemini: { category: IconCategory.Brands, icon: 'icon-[simple-icons--googlegemini]' },\n discord: { category: IconCategory.Brands, icon: 'icon-[simple-icons--discord]' },\n slack: { category: IconCategory.Brands, icon: 'icon-[simple-icons--slack]' },\n figma: { category: IconCategory.Brands, icon: 'icon-[simple-icons--figma]' },\n linkedin: { category: IconCategory.Brands, icon: 'icon-[lucide--linkedin]' },\n codepen: { category: IconCategory.Brands, icon: 'icon-[lucide--codepen]' },\n rss: { category: IconCategory.Brands, icon: 'icon-[lucide--rss]' },\n typescript: { category: IconCategory.Programming, icon: 'icon-[simple-icons--typescript]' },\n javascript: { category: IconCategory.Programming, icon: 'icon-[simple-icons--javascript]' },\n python: { category: IconCategory.Programming, icon: 'icon-[simple-icons--python]' },\n react: { category: IconCategory.Programming, icon: 'icon-[simple-icons--react]' },\n tailwindcss: { category: IconCategory.Programming, icon: 'icon-[simple-icons--tailwindcss]' },\n json: { category: IconCategory.Programming, icon: 'icon-[lucide--braces]' },\n html: { category: IconCategory.Programming, icon: 'icon-[simple-icons--html5]' },\n css: { category: IconCategory.Programming, icon: 'icon-[simple-icons--css3]' },\n terminal: { category: IconCategory.Programming, icon: 'icon-[lucide--terminal]' },\n api: { category: IconCategory.Programming, icon: 'icon-[lucide--webhook]' },\n variable: { category: IconCategory.Programming, icon: 'icon-[lucide--variable]' },\n webhook: { category: IconCategory.Programming, icon: 'icon-[lucide--webhook]' },\n functionIcon: { category: IconCategory.Programming, icon: 'icon-[lucide--function-square]' },\n cursor: { category: IconCategory.Tools, icon: 'icon-[lucide--mouse-pointer]' },\n cursorClick: { category: IconCategory.Tools, icon: 'icon-[lucide--mouse-pointer-click]' },\n hand: { category: IconCategory.Tools, icon: 'icon-[lucide--hand]' },\n pen: { category: IconCategory.Tools, icon: 'icon-[lucide--pen]' },\n brush: { category: IconCategory.Tools, icon: 'icon-[lucide--paintbrush]' },\n eraser: { category: IconCategory.Tools, icon: 'icon-[lucide--eraser]' },\n colorize: { category: IconCategory.Tools, icon: 'icon-[lucide--pipette]' },\n straighten: { category: IconCategory.Tools, icon: 'icon-[lucide--ruler]' },\n wrench: { category: IconCategory.Tools, icon: 'icon-[lucide--wrench]' },\n plug: { category: IconCategory.Tools, icon: 'icon-[lucide--plug]' },\n table: { category: IconCategory.Data, icon: 'icon-[lucide--table]' },\n barChart: { category: IconCategory.Data, icon: 'icon-[lucide--chart-bar]' },\n chartBarStacked: { category: IconCategory.Data, icon: 'icon-[lucide--chart-bar-stacked]' },\n pieChart: { category: IconCategory.Data, icon: 'icon-[lucide--chart-pie]' },\n lineChart: { category: IconCategory.Data, icon: 'icon-[lucide--line-chart]' },\n chartActivity: { category: IconCategory.Data, icon: 'icon-[lucide--activity]' },\n trendingUp: { category: IconCategory.Data, icon: 'icon-[lucide--trending-up]' },\n trendingDown: { category: IconCategory.Data, icon: 'icon-[lucide--trending-down]' },\n analytics: { category: IconCategory.Data, icon: 'icon-[lucide--chart-no-axes-combined]' },\n array: { category: IconCategory.Data, icon: 'icon-[material-symbols--data-array-rounded]' },\n database: { category: IconCategory.Data, icon: 'icon-[lucide--database]' },\n tag: { category: IconCategory.Data, icon: 'icon-[lucide--tag]' },\n label: { category: IconCategory.Data, icon: 'icon-[material-symbols--label-rounded]' },\n hash: { category: IconCategory.Data, icon: 'icon-[lucide--hash]' },\n percent: { category: IconCategory.Data, icon: 'icon-[lucide--percent]' },\n chat: { category: IconCategory.Communication, icon: 'icon-[lucide--message-square]' },\n chatBubble: { category: IconCategory.Communication, icon: 'icon-[lucide--message-circle]' },\n messageTyping: { category: IconCategory.Communication, icon: 'icon-[lucide--message-square-more]' },\n comment: { category: IconCategory.Communication, icon: 'icon-[lucide--message-square-text]' },\n email: { category: IconCategory.Communication, icon: 'icon-[lucide--mail]' },\n call: { category: IconCategory.Communication, icon: 'icon-[lucide--phone]' },\n thumbUp: { category: IconCategory.Communication, icon: 'icon-[lucide--thumbs-up]' },\n thumbDown: { category: IconCategory.Communication, icon: 'icon-[lucide--thumbs-down]' },\n palette: { category: IconCategory.Design, icon: 'icon-[lucide--palette]' },\n paintBucket: { category: IconCategory.Design, icon: 'icon-[lucide--paint-bucket]' },\n formatPaint: { category: IconCategory.Design, icon: 'icon-[lucide--paint-roller]' },\n autoAwesome: { category: IconCategory.Design, icon: 'icon-[material-symbols--auto-awesome-rounded]' },\n style: { category: IconCategory.Design, icon: 'icon-[material-symbols--style]' },\n opacity: { category: IconCategory.Design, icon: 'icon-[material-symbols--opacity-rounded]' },\n gradient: { category: IconCategory.Design, icon: 'icon-[material-symbols--gradient]' },\n contrast: { category: IconCategory.Design, icon: 'icon-[carbon--contrast]' },\n brightness: { category: IconCategory.Design, icon: 'icon-[lucide--sun]' },\n layers: { category: IconCategory.Design, icon: 'icon-[lucide--layers]' },\n blendMode: { category: IconCategory.Design, icon: 'icon-[lucide--blend]' },\n shadow: { category: IconCategory.Design, icon: 'icon-[material-symbols--ev-shadow]' },\n roundedCorner: { category: IconCategory.Design, icon: 'icon-[material-symbols--rounded-corner-rounded]' },\n formatSpacing: { category: IconCategory.Design, icon: 'icon-[material-symbols--format-letter-spacing-rounded]' },\n shapes: { category: IconCategory.Design, icon: 'icon-[lucide--shapes]' },\n robot: { category: IconCategory.AI, icon: 'icon-[lucide--bot]' },\n sparkles: { category: IconCategory.AI, icon: 'icon-[lucide--sparkles]' },\n sparkle: { category: IconCategory.AI, icon: 'icon-[lucide--sparkle]' },\n brain: { category: IconCategory.AI, icon: 'icon-[lucide--brain]' },\n magic: { category: IconCategory.AI, icon: 'icon-[lucide--wand-sparkles]' },\n experiment: { category: IconCategory.AI, icon: 'icon-[lucide--flask-conical]' },\n psychology: { category: IconCategory.AI, icon: 'icon-[material-symbols--psychology-rounded]' },\n one: { category: IconCategory.Numbers, icon: 'icon-[material-symbols--counter-1-rounded]' },\n two: { category: IconCategory.Numbers, icon: 'icon-[material-symbols--counter-2-rounded]' },\n three: { category: IconCategory.Numbers, icon: 'icon-[material-symbols--counter-3-rounded]' },\n four: { category: IconCategory.Numbers, icon: 'icon-[material-symbols--counter-4-rounded]' },\n five: { category: IconCategory.Numbers, icon: 'icon-[material-symbols--counter-5-rounded]' },\n six: { category: IconCategory.Numbers, icon: 'icon-[material-symbols--counter-6-rounded]' },\n seven: { category: IconCategory.Numbers, icon: 'icon-[material-symbols--counter-7-rounded]' },\n eight: { category: IconCategory.Numbers, icon: 'icon-[material-symbols--counter-8]' },\n nine: { category: IconCategory.Numbers, icon: 'icon-[material-symbols--counter-9-rounded]' },\n favorite: { category: IconCategory.Misc, icon: 'icon-[lucide--heart]' },\n star: { category: IconCategory.Misc, icon: 'icon-[lucide--star]' },\n bookmark: { category: IconCategory.Misc, icon: 'icon-[lucide--bookmark]' },\n flag: { category: IconCategory.Misc, icon: 'icon-[lucide--flag]' },\n flagTriangle: { category: IconCategory.Misc, icon: 'icon-[lucide--flag-triangle-right]' },\n creditCard: { category: IconCategory.Misc, icon: 'icon-[lucide--credit-card]' },\n shoppingCart: { category: IconCategory.Misc, icon: 'icon-[lucide--shopping-cart]' },\n store: { category: IconCategory.Misc, icon: 'icon-[lucide--store]' },\n coins: { category: IconCategory.Misc, icon: 'icon-[lucide--coins]' },\n dollarSign: { category: IconCategory.Misc, icon: 'icon-[lucide--dollar-sign]' },\n receipt: { category: IconCategory.Misc, icon: 'icon-[lucide--receipt]' },\n location: { category: IconCategory.Misc, icon: 'icon-[lucide--map-pin]' },\n calendar: { category: IconCategory.Misc, icon: 'icon-[lucide--calendar]' },\n clock: { category: IconCategory.Misc, icon: 'icon-[lucide--clock]' },\n clockRewind: { category: IconCategory.Misc, icon: 'icon-[lucide--history]' },\n schedule: { category: IconCategory.Misc, icon: 'icon-[lucide--clock]' },\n timer: { category: IconCategory.Misc, icon: 'icon-[lucide--timer]' },\n stopwatch: { category: IconCategory.Misc, icon: 'icon-[lucide--timer]' },\n alarmClock: { category: IconCategory.Misc, icon: 'icon-[lucide--alarm-clock]' },\n lightbulb: { category: IconCategory.Misc, icon: 'icon-[lucide--lightbulb]' },\n bolt: { category: IconCategory.Misc, icon: 'icon-[lucide--zap]' },\n cloud: { category: IconCategory.Misc, icon: 'icon-[lucide--cloud]' },\n cloudUpload: { category: IconCategory.Misc, icon: 'icon-[lucide--cloud-upload]' },\n cloudDownload: { category: IconCategory.Misc, icon: 'icon-[lucide--cloud-download]' },\n lightMode: { category: IconCategory.Misc, icon: 'icon-[lucide--sun]' },\n darkMode: { category: IconCategory.Misc, icon: 'icon-[lucide--moon]' },\n moonStar: { category: IconCategory.Misc, icon: 'icon-[lucide--moon-star]' },\n sunDim: { category: IconCategory.Misc, icon: 'icon-[lucide--sun-dim]' },\n power: { category: IconCategory.Misc, icon: 'icon-[lucide--power]' },\n shield: { category: IconCategory.Misc, icon: 'icon-[lucide--shield]' },\n shieldCheck: { category: IconCategory.Misc, icon: 'icon-[lucide--shield-check]' },\n shieldOff: { category: IconCategory.Misc, icon: 'icon-[lucide--shield-off]' },\n key: { category: IconCategory.Misc, icon: 'icon-[lucide--key]' },\n keyRound: { category: IconCategory.Misc, icon: 'icon-[lucide--key-round]' },\n fingerprint: { category: IconCategory.Misc, icon: 'icon-[lucide--fingerprint]' },\n pin: { category: IconCategory.Misc, icon: 'icon-[lucide--pin]' },\n paperclip: { category: IconCategory.Misc, icon: 'icon-[lucide--paperclip]' },\n globe: { category: IconCategory.Misc, icon: 'icon-[lucide--globe]' },\n globeLock: { category: IconCategory.Misc, icon: 'icon-[lucide--globe-lock]' },\n gps: { category: IconCategory.Misc, icon: 'icon-[lucide--locate]' },\n network: { category: IconCategory.Misc, icon: 'icon-[lucide--network]' },\n cpu: { category: IconCategory.Misc, icon: 'icon-[lucide--cpu]' },\n monitor: { category: IconCategory.Misc, icon: 'icon-[lucide--monitor]' },\n smartphone: { category: IconCategory.Misc, icon: 'icon-[lucide--smartphone]' },\n tablet: { category: IconCategory.Misc, icon: 'icon-[lucide--tablet]' },\n monitorSmartphone: { category: IconCategory.Misc, icon: 'icon-[lucide--monitor-smartphone]' },\n server: { category: IconCategory.Misc, icon: 'icon-[lucide--server]' },\n hardDrive: { category: IconCategory.Misc, icon: 'icon-[lucide--hard-drive]' },\n box: { category: IconCategory.Misc, icon: 'icon-[lucide--box]' },\n puzzle: { category: IconCategory.Misc, icon: 'icon-[lucide--puzzle]' },\n briefcase: { category: IconCategory.Misc, icon: 'icon-[lucide--briefcase]' },\n calculator: { category: IconCategory.Misc, icon: 'icon-[lucide--calculator]' },\n buildings: { category: IconCategory.Misc, icon: 'icon-[lucide--building-2]' },\n bug: { category: IconCategory.Misc, icon: 'icon-[lucide--bug]' },\n droplet: { category: IconCategory.Misc, icon: 'icon-[lucide--droplet]' },\n bookOpen: { category: IconCategory.Misc, icon: 'icon-[lucide--book-open]' },\n bookClosed: { category: IconCategory.Misc, icon: 'icon-[lucide--book-marked]' },\n lifebuoy: { category: IconCategory.Misc, icon: 'icon-[lucide--life-buoy]' },\n accessibility: { category: IconCategory.Misc, icon: 'icon-[lucide--accessibility]' },\n workflow: { category: IconCategory.Misc, icon: 'icon-[lucide--workflow]' },\n gitBranch: { category: IconCategory.Misc, icon: 'icon-[lucide--git-branch]' },\n gitBranchPlus: { category: IconCategory.Misc, icon: 'icon-[lucide--git-branch-plus]' },\n gitCommit: { category: IconCategory.Misc, icon: 'icon-[lucide--git-commit-horizontal]' },\n gitMerge: { category: IconCategory.Misc, icon: 'icon-[lucide--git-merge]' },\n gitPullRequest: { category: IconCategory.Misc, icon: 'icon-[lucide--git-pull-request]' },\n crosshair: { category: IconCategory.Misc, icon: 'icon-[lucide--crosshair]' },\n target: { category: IconCategory.Misc, icon: 'icon-[lucide--target]' },\n smile: { category: IconCategory.Misc, icon: 'icon-[lucide--smile]' },\n frown: { category: IconCategory.Misc, icon: 'icon-[lucide--frown]' },\n smilePlus: { category: IconCategory.Misc, icon: 'icon-[lucide--smile-plus]' },\n bold: { category: IconCategory.Misc, icon: 'icon-[lucide--bold]' },\n italic: { category: IconCategory.Misc, icon: 'icon-[lucide--italic]' },\n strikethrough: { category: IconCategory.Misc, icon: 'icon-[lucide--strikethrough]' },\n underline: { category: IconCategory.Misc, icon: 'icon-[lucide--underline]' },\n heading: { category: IconCategory.Misc, icon: 'icon-[lucide--heading]' },\n type: { category: IconCategory.Misc, icon: 'icon-[lucide--type]' },\n caseSensitive: { category: IconCategory.Misc, icon: 'icon-[lucide--case-sensitive]' },\n alignLeft: { category: IconCategory.Misc, icon: 'icon-[lucide--align-left]' },\n alignCenter: { category: IconCategory.Misc, icon: 'icon-[lucide--align-center]' },\n alignRight: { category: IconCategory.Misc, icon: 'icon-[lucide--align-right]' },\n\n} satisfies Record<string, IconProperties>;\n\nexport class IconHelpers {\n public static getIcon(name: string): string {\n return name in CURATED_ICONS ? CURATED_ICONS[name as CuratedIcons].icon : name;\n }\n\n public static getCategory(name: CuratedIcons): IconCategory {\n return CURATED_ICONS[name].category;\n }\n\n public static getCategories(): IconCategory[] {\n const usedCategories = new Set<IconCategory>();\n\n for (const icon of Object.values(CURATED_ICONS)) {\n usedCategories.add(icon.category);\n }\n\n return Object.values(IconCategory).filter(cat => usedCategories.has(cat));\n }\n\n public static getByCategory(): Record<IconCategory, IconEntry[]> {\n const grouped = {} as Record<IconCategory, IconEntry[]>;\n\n for (const category of Object.values(IconCategory)) {\n grouped[category] = [];\n }\n\n for (const [id, data] of Object.entries(CURATED_ICONS)) {\n grouped[data.category].push({\n id: id,\n category: data.category,\n icon: data.icon,\n });\n }\n\n return grouped;\n }\n}\n","export default \"@plugin \\\"@iconify/tailwind4\\\";\\n\\n@plugin \\\"tailwindcss-animate\\\";\\n\\n@source inline(\\\"typo-1 typo-2 typo-3 typo-4 typo-5 typo-6 typo-7 typo-8 typo-9 typo-10 typo-11 typo-12 typo-13 typo-14 typo-15 typo-16 typo-17 typo-18 typo-weight-100 typo-weight-200 typo-weight-300 typo-weight-400 typo-weight-500 typo-weight-600 typo-weight-700 typo-weight-800 typo-weight-900\\\");\\n\\n@source \\\"./index.js\\\";\\n\\n@theme static {\\n --font-code: 'geist-mono', monospace;\\n --font-geist: 'geist', sans-serif;\\n --font-geist-mono: 'geist-mono', monospace;\\n --font-pixel-circle: 'geist-pixel-circle', monospace;\\n --font-pixel-grid: 'geist-pixel-grid', monospace;\\n --font-pixel-line: 'geist-pixel-line', monospace;\\n --font-pixel-square: 'geist-pixel-square', monospace;\\n --font-pixel-triangle: 'geist-pixel-triangle', monospace;\\n --font-clash-grotesk: 'clash-grotesk-variable', sans-serif;\\n --font-nippo: 'nippo', sans-serif;\\n --font-humane: 'humane-variable', sans-serif;\\n --font-general-sans: 'general-sans', sans-serif;\\n --font-kode-mono: 'kode-mono-vf', monospace;\\n --font-aalto: 'Aalto', display;\\n --font-being: 'being', display;\\n --font-benzol: 'benzol', display;\\n --font-half: 'half', display;\\n --font-miratrix: 'miratrix', display;\\n --font-triakis: 'triakis', display;\\n --font-yeager: 'yeager', display;\\n --font-karmatic-arcade: 'karmatic-arcade-regular', display;\\n --font-digital-7: 'digital-7-mono', monospace;\\n --font-pixelony: 'pixelony', display;\\n --font-unknown: 'unknown', display;\\n --font-disket: 'disket', display;\\n --font-heming: 'heming', display;\\n --font-obrazec: 'obrazec', display;\\n\\n --color-neutral-1: #111111;\\n --color-neutral-2: #191919;\\n --color-neutral-3: #222222;\\n --color-neutral-4: #2a2a2a;\\n --color-neutral-5: #313131;\\n --color-neutral-6: #3a3a3a;\\n --color-neutral-7: #484848;\\n --color-neutral-8: #606060;\\n --color-neutral-9: #6e6e6e;\\n --color-neutral-10: #7b7b7b;\\n --color-neutral-11: #b4b4b4;\\n --color-neutral-12: #eeeeee;\\n\\n --color-neutralA-1: #FFFFFF05;\\n --color-neutralA-2: #FFFFFF09;\\n --color-neutralA-3: #FFFFFF12;\\n --color-neutralA-4: #FFFFFF1B;\\n --color-neutralA-5: #FFFFFF22;\\n --color-neutralA-6: #FFFFFF2C;\\n --color-neutralA-7: #FFFFFF3B;\\n --color-neutralA-8: #FFFFFF55;\\n --color-neutralA-9: #FFFFFF64;\\n --color-neutralA-10: #FFFFFF72;\\n --color-neutralA-11: #FFFFFFAF;\\n --color-neutralA-12: #FFFFFFED;\\n\\n --color-shadows-1: #0000000D;\\n --color-shadows-2: #0000001A;\\n --color-shadows-3: #00000026;\\n --color-shadows-4: #00000033;\\n --color-shadows-5: #0000004D;\\n --color-shadows-6: #00000066;\\n --color-shadows-7: #00000080;\\n --color-shadows-8: #00000099;\\n --color-shadows-9: #000000B3;\\n --color-shadows-10: #000000CC;\\n --color-shadows-11: #000000E6;\\n --color-shadows-12: #000000F2;\\n\\n --color-accent-1: #0e1512;\\n --color-accent-2: #121b17;\\n --color-accent-3: #132d21;\\n --color-accent-4: #113b29;\\n --color-accent-5: #174933;\\n --color-accent-6: #20573e;\\n --color-accent-7: #28684a;\\n --color-accent-8: #2f7c57;\\n --color-accent-9: #30a46c;\\n --color-accent-10: #33b074;\\n --color-accent-11: #3dd68c;\\n --color-accent-12: #b1f1cb;\\n\\n --color-accentA-1: #00de4505;\\n --color-accentA-2: #29f99d0b;\\n --color-accentA-3: #22ff991e;\\n --color-accentA-4: #11ff992d;\\n --color-accentA-5: #2bffa23c;\\n --color-accentA-6: #44ffaa4b;\\n --color-accentA-7: #50fdac5e;\\n --color-accentA-8: #54ffad73;\\n --color-accentA-9: #44ffa49e;\\n --color-accentA-10: #43fea4ab;\\n --color-accentA-11: #46fea5d4;\\n --color-accentA-12: #bbffd7f0;\\n\\n --color-error-1: #191113;\\n --color-error-2: #1e1517;\\n --color-error-3: #3a141e;\\n --color-error-4: #4e1325;\\n --color-error-5: #5e1a2e;\\n --color-error-6: #6f2539;\\n --color-error-7: #883447;\\n --color-error-8: #b3445a;\\n --color-error-9: #e54666;\\n --color-error-10: #ec5a72;\\n --color-error-11: #ff949d;\\n --color-error-12: #fed2e1;\\n\\n --color-errorA-1: #f4126709;\\n --color-errorA-2: #f22f7a11;\\n --color-errorA-3: #fe2a8b2a;\\n --color-errorA-4: #fd158741;\\n --color-errorA-5: #fd278f51;\\n --color-errorA-6: #fe459763;\\n --color-errorA-7: #fd559b7f;\\n --color-errorA-8: #fe5b9bab;\\n --color-errorA-9: #fe418de8;\\n --color-errorA-10: #ff5693ed;\\n --color-errorA-11: #ff92ad;\\n --color-errorA-12: #ffd5eafd;\\n\\n --color-success-1: #0d1512;\\n --color-success-2: #121c18;\\n --color-success-3: #0f2e22;\\n --color-success-4: #0b3b2c;\\n --color-success-5: #114837;\\n --color-success-6: #1b5745;\\n --color-success-7: #246854;\\n --color-success-8: #2a7e68;\\n --color-success-9: #29a383;\\n --color-success-10: #27b08b;\\n --color-success-11: #1fd8a4;\\n --color-success-12: #adf0d4;\\n\\n --color-successA-1: #00de4505;\\n --color-successA-2: #29f99d0b;\\n --color-successA-3: #22ff991e;\\n --color-successA-4: #11ff992d;\\n --color-successA-5: #2bffa23c;\\n --color-successA-6: #44ffaa4b;\\n --color-successA-7: #50fdac5e;\\n --color-successA-8: #54ffad73;\\n --color-successA-9: #44ffa49e;\\n --color-successA-10: #43fea4ab;\\n --color-successA-11: #46fea5d4;\\n --color-successA-12: #bbffd7f0;\\n\\n --color-warning-1: #16120c;\\n --color-warning-2: #1d180f;\\n --color-warning-3: #302008;\\n --color-warning-4: #3f2700;\\n --color-warning-5: #4d3000;\\n --color-warning-6: #5c3d05;\\n --color-warning-7: #714f19;\\n --color-warning-8: #8f6424;\\n --color-warning-9: #f5d90a;\\n --color-warning-10: #ffef5c;\\n --color-warning-11: #f0c000;\\n --color-warning-12: #fffad1;\\n\\n --color-warningA-1: #d1510004;\\n --color-warningA-2: #f9b4000b;\\n --color-warningA-3: #ffaa001e;\\n --color-warningA-4: #fdb70028;\\n --color-warningA-5: #febb0036;\\n --color-warningA-6: #fec40046;\\n --color-warningA-7: #fdcb225c;\\n --color-warningA-8: #fdca327b;\\n --color-warningA-9: #ffe629;\\n --color-warningA-10: #ffff57;\\n --color-warningA-11: #fee949f5;\\n --color-warningA-12: #fef6baf6;\\n\\n --color-info-1: #0d1520;\\n --color-info-2: #111927;\\n --color-info-3: #0d2847;\\n --color-info-4: #003362;\\n --color-info-5: #004074;\\n --color-info-6: #104d87;\\n --color-info-7: #205d9e;\\n --color-info-8: #2870bd;\\n --color-info-9: #0090ff;\\n --color-info-10: #3b9eff;\\n --color-info-11: #70b8ff;\\n --color-info-12: #c2e6ff;\\n\\n --color-infoA-1: #004df211;\\n --color-infoA-2: #1166fb18;\\n --color-infoA-3: #0077ff3a;\\n --color-infoA-4: #0075ff57;\\n --color-infoA-5: #0081fd6b;\\n --color-infoA-6: #0f89fd7f;\\n --color-infoA-7: #2a91fe98;\\n --color-infoA-8: #3094feb9;\\n --color-infoA-9: #0090ff;\\n --color-infoA-10: #3b9eff;\\n --color-infoA-11: #70b8ff;\\n --color-infoA-12: #c2e6ff;\\n\\n --text-xxs: 0.625rem;\\n --text-10xl: 10rem;\\n --text-11xl: 12rem;\\n --text-12xl: 14rem;\\n --text-13xl: 16rem;\\n}\\n\\n@theme {\\n --radius: 0.5rem;\\n --radius-xxs: calc(var(--radius) * 0.25);\\n --radius-xs: calc(var(--radius) * 0.375);\\n --radius-sm: calc(var(--radius) * 0.625);\\n --radius-md: calc(var(--radius) * 0.875);\\n --radius-lg: calc(var(--radius) * 1.25);\\n --radius-xl: calc(var(--radius) * 1.75);\\n --radius-2xl: calc(var(--radius) * 2.5);\\n --radius-3xl: calc(var(--radius) * 3.5);\\n\\n --typo-header-font: 'geist', sans-serif;\\n --typo-header-weight: 600;\\n --typo-header-tracking: 0.025em;\\n --typo-header-leading: 1;\\n\\n --typo-label-font: 'geist', sans-serif;\\n --typo-label-weight: 500;\\n --typo-label-tracking: 0.025em;\\n --typo-label-leading: 1;\\n\\n --typo-body-font: 'geist', sans-serif;\\n --typo-body-weight: 400;\\n --typo-body-tracking: 0.025em;\\n --typo-body-leading: 1.375;\\n\\n --typo-code-font: 'geist-mono', monospace;\\n --typo-code-weight: 500;\\n --typo-code-tracking: 0;\\n --typo-code-leading: 1.5;\\n\\n --typo-scale-factor: 1;\\n\\n --shadow-xs-color: var(--color-neutral-9);\\n --shadow-xs-offsetX: 0px;\\n --shadow-xs-offsetY: 0px;\\n --shadow-xs-blur: 2px;\\n --shadow-xs-spread: 0px;\\n --shadow-xs-opacity: 5%;\\n --shadow-xs: var(--shadow-xs-offsetX) var(--shadow-xs-offsetY) var(--shadow-xs-blur) var(--shadow-xs-spread) color-mix(in srgb, var(--shadow-xs-color) var(--shadow-xs-opacity), transparent);\\n\\n --shadow-s-color: var(--color-neutral-9);\\n --shadow-s-offsetX: 0px;\\n --shadow-s-offsetY: 0px;\\n --shadow-s-blur: 4px;\\n --shadow-s-spread: 0px;\\n --shadow-s-opacity: 10%;\\n --shadow-s: var(--shadow-s-offsetX) var(--shadow-s-offsetY) var(--shadow-s-blur) var(--shadow-s-spread) color-mix(in srgb, var(--shadow-s-color) var(--shadow-s-opacity), transparent);\\n\\n --shadow-m-color: var(--color-neutral-9);\\n --shadow-m-offsetX: 0px;\\n --shadow-m-offsetY: 0px;\\n --shadow-m-blur: 8px;\\n --shadow-m-spread: -1px;\\n --shadow-m-opacity: 15%;\\n --shadow-m: var(--shadow-m-offsetX) var(--shadow-m-offsetY) var(--shadow-m-blur) var(--shadow-m-spread) color-mix(in srgb, var(--shadow-m-color) var(--shadow-m-opacity), transparent);\\n\\n --shadow-l-color: var(--color-neutral-9);\\n --shadow-l-offsetX: 0px;\\n --shadow-l-offsetY: 0px;\\n --shadow-l-blur: 16px;\\n --shadow-l-spread: -2px;\\n --shadow-l-opacity: 20%;\\n --shadow-l: var(--shadow-l-offsetX) var(--shadow-l-offsetY) var(--shadow-l-blur) var(--shadow-l-spread) color-mix(in srgb, var(--shadow-l-color) var(--shadow-l-opacity), transparent);\\n\\n --shadow-xl-color: var(--color-neutral-9);\\n --shadow-xl-offsetX: 0px;\\n --shadow-xl-offsetY: 0px;\\n --shadow-xl-blur: 40px;\\n --shadow-xl-spread: -8px;\\n --shadow-xl-opacity: 30%;\\n --shadow-xl: var(--shadow-xl-offsetX) var(--shadow-xl-offsetY) var(--shadow-xl-blur) var(--shadow-xl-spread) color-mix(in srgb, var(--shadow-xl-color) var(--shadow-xl-opacity), transparent);\\n}\\n\\n@utility typo-weight-100 {\\n @apply font-thin;\\n}\\n\\n@utility typo-weight-200 {\\n @apply font-extralight;\\n}\\n\\n@utility typo-weight-300 {\\n @apply font-light;\\n}\\n\\n@utility typo-weight-400 {\\n @apply font-normal;\\n}\\n\\n@utility typo-weight-500 {\\n @apply font-medium;\\n}\\n\\n@utility typo-weight-600 {\\n @apply font-semibold;\\n}\\n\\n@utility typo-weight-700 {\\n @apply font-bold;\\n}\\n\\n@utility typo-weight-800 {\\n @apply font-extrabold;\\n}\\n\\n@utility typo-weight-900 {\\n @apply font-black;\\n}\\n\\n@utility typo-header {\\n font-family: var(--typo-header-font);\\n font-weight: var(--typo-header-weight);\\n -webkit-font-smoothing: antialiased;\\n white-space: nowrap;\\n letter-spacing: var(--typo-header-tracking);\\n line-height: var(--typo-header-leading);\\n}\\n\\n@utility typo-label {\\n font-family: var(--typo-label-font);\\n font-weight: var(--typo-label-weight);\\n -webkit-font-smoothing: antialiased;\\n white-space: nowrap;\\n letter-spacing: var(--typo-label-tracking);\\n line-height: var(--typo-label-leading);\\n}\\n\\n@utility typo-body {\\n font-family: var(--typo-body-font);\\n font-weight: var(--typo-body-weight);\\n -webkit-font-smoothing: antialiased;\\n text-wrap: wrap;\\n letter-spacing: var(--typo-body-tracking);\\n line-height: var(--typo-body-leading);\\n}\\n\\n@utility typo-code {\\n font-family: var(--typo-code-font);\\n font-weight: var(--typo-code-weight);\\n -webkit-font-smoothing: antialiased;\\n white-space: nowrap;\\n letter-spacing: var(--typo-code-tracking);\\n line-height: var(--typo-code-leading);\\n font-variant-numeric: tabular-nums;\\n}\\n\\n@utility typo-1 {\\n @apply typo-body;\\n font-size: calc(var(--text-xxs) * var(--typo-scale-factor));\\n}\\n\\n@utility typo-2 {\\n @apply typo-body;\\n font-size: calc(var(--text-xs) * var(--typo-scale-factor));\\n}\\n\\n@utility typo-3 {\\n @apply typo-body;\\n font-size: calc(var(--text-sm) * var(--typo-scale-factor));\\n}\\n\\n@utility typo-4 {\\n @apply typo-body;\\n font-size: calc(var(--text-base) * var(--typo-scale-factor));\\n}\\n\\n@utility typo-5 {\\n @apply typo-body;\\n font-size: calc(var(--text-lg) * var(--typo-scale-factor));\\n}\\n\\n@utility typo-6 {\\n @apply typo-body;\\n font-size: calc(var(--text-xl) * var(--typo-scale-factor));\\n}\\n\\n@utility typo-7 {\\n @apply typo-body;\\n font-size: calc(var(--text-2xl) * var(--typo-scale-factor));\\n}\\n\\n@utility typo-8 {\\n @apply typo-body;\\n font-size: calc(var(--text-3xl) * var(--typo-scale-factor));\\n}\\n\\n@utility typo-9 {\\n @apply typo-body;\\n font-size: calc(var(--text-4xl) * var(--typo-scale-factor));\\n}\\n\\n@utility typo-10 {\\n @apply typo-body;\\n font-size: calc(var(--text-5xl) * var(--typo-scale-factor));\\n}\\n\\n@utility typo-11 {\\n @apply typo-body;\\n font-size: calc(var(--text-6xl) * var(--typo-scale-factor));\\n}\\n\\n@utility typo-12 {\\n @apply typo-body;\\n font-size: calc(var(--text-7xl) * var(--typo-scale-factor));\\n}\\n\\n@utility typo-13 {\\n @apply typo-body;\\n font-size: calc(var(--text-8xl) * var(--typo-scale-factor));\\n}\\n\\n@utility typo-14 {\\n @apply typo-body;\\n font-size: calc(var(--text-9xl) * var(--typo-scale-factor));\\n}\\n\\n@utility typo-15 {\\n @apply typo-body;\\n font-size: calc(var(--text-10xl) * var(--typo-scale-factor));\\n}\\n\\n@utility typo-16 {\\n @apply typo-body;\\n font-size: calc(var(--text-11xl) * var(--typo-scale-factor));\\n}\\n\\n@utility typo-17 {\\n @apply typo-body;\\n font-size: calc(var(--text-12xl) * var(--typo-scale-factor));\\n}\\n\\n@utility typo-18 {\\n @apply typo-body;\\n font-size: calc(var(--text-13xl) * var(--typo-scale-factor));\\n}\\n\\n@utility filter-none {\\n filter: none;\\n}\\n\\n@utility flex-col-center {\\n @apply flex flex-col justify-center items-center align-middle;\\n}\\n\\n@utility grid-hor-center {\\n @apply grid grid-flow-col items-center;\\n}\\n\\n@utility grid-ver-center {\\n @apply grid grid-flow-row items-center;\\n}\\n\\n@utility flex-row-center {\\n @apply flex flex-row justify-center items-center align-middle;\\n}\\n\\n@utility cs-border-dashed {\\n @apply border border-dashed border-neutralA-4;\\n}\\n\\n@utility cs-disabled {\\n @apply disabled:pointer-events-none disabled:opacity-50 data-disabled:pointer-events-none data-disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50;\\n }\\n\\n@utility cs-has-disabled {\\n @apply has-[[data-slot=control]:disabled]:pointer-events-none has-[[data-slot=control]:disabled]:opacity-50;\\n}\\n\\n@utility cs-transition {\\n @apply transition-all duration-200 ease-in-out;\\n}\\n\\n@utility cs-contrast {\\n @apply drop-shadow-[0_1px_1px_#0008] drop-shadow-[0_-1px_1px_#fff4];\\n}\\n\\n@utility cs-popup-animation {\\n @apply origin-(--transform-origin) transition-[scale,opacity] duration-[0.25s] ease-[cubic-bezier(0.34,1.56,0.64,1)] data-starting-style:scale-90 data-starting-style:opacity-0 data-ending-style:scale-90 data-ending-style:opacity-0 data-instant:transition-none;\\n}\\n\\n@utility cs-focus {\\n @apply outline-none focus-visible:duration-0 focus-visible:outline-solid focus-visible:z-1 focus-visible:ring-[3px] focus-visible:ring-accent-4 focus-visible:outline-1 focus-visible:-outline-offset-1 focus-visible:outline-accent-9; \\n}\\n\\n@utility cs-has-focus {\\n @apply has-[[data-slot=control]:focus-visible]:z-1 has-[[data-slot=control]:focus-visible]:ring-[3px] has-[[data-slot=control]:focus-visible]:ring-accent-4 has-[[data-slot=control]:focus-visible]:outline-1 has-[[data-slot=control]:focus-visible]:outline-solid has-[[data-slot=control]:focus-visible]:-outline-offset-1 has-[[data-slot=control]:focus-visible]:outline-accent-9;\\n}\\n\\n@utility cs-invalid {\\n @apply aria-invalid:ring-3 aria-invalid:ring-error-3 aria-invalid:ring-error-6 aria-invalid:border-error-9 focus-visible:aria-invalid:ring-error-4 focus-visible:aria-invalid:outline-error-9;\\n}\\n\\n@utility cs-has-invalid {\\n @apply has-[[data-slot=control][aria-invalid=true]]:ring-3 has-[[data-slot=control][aria-invalid=true]]:ring-error-3 has-[[data-slot=control][aria-invalid=true]]:ring-error-6 has-[[data-slot=control][aria-invalid=true]]:border-error-9 has-[[data-slot=control][aria-invalid=true]:focus-visible]:ring-error-4 has-[[data-slot=control][aria-invalid=true]:focus-visible]:outline-error-9;\\n}\\n\\n@utility cs-masonry {\\n columns: 3;\\n & > * {\\n break-inside: avoid-column;\\n }\\n}\\n\\n@utility cs-stroke {\\n -webkit-text-stroke-width: var(--stroke-w, 2px);\\n -webkit-text-stroke-color: var(--stroke-color, var(--color-neutral-12));\\n color: transparent;\\n paint-order: stroke fill;\\n}\\n\\n@utility cs-backdrop-panel {\\n @apply rounded-md border-neutralA-4 bg-neutral-1/60 text-neutral-11 backdrop-blur-lg border shadow-m;\\n }\\n\\n@utility animate-collapsible-down {\\n animation: collapsible-down 0.2s ease-out;\\n}\\n\\n@utility animate-collapsible-up {\\n animation: collapsible-up 0.2s ease-out;\\n}\\n\\n@utility no-scrollbar {\\n @apply [scrollbar-width:none] [&::-webkit-scrollbar]:hidden;\\n}\\n\\n@utility cs-gutter {\\n background: repeating-linear-gradient(315deg, var(--color-neutral-3) 0 1px, transparent 1px 50%);\\n background-size: 10px 10px;\\n background-attachment: fixed;\\n}\\n\\n@keyframes stripes {\\n from { background-position: 0 0; }\\n to { background-position: 16px 0; }\\n}\\n\\n@utility cs-stripes {\\n background-image: repeating-linear-gradient(315deg, var(--color-neutralA-4) 0 4px, transparent 2px 50%);\\n background-size: 16px 16px;\\n animation: stripes 0.6s linear infinite;\\n}\\n\\n@utility cs-guides {\\n overflow: clip;\\n isolation: isolate;\\n\\n & > * {\\n position: relative;\\n z-index: 0;\\n\\n &::after {\\n content: '';\\n position: absolute;\\n left: 0;\\n right: -1px;\\n top: -9999px;\\n bottom: -9999px;\\n border-left: 1px solid var(--color-neutral-4);\\n border-right: 1px solid var(--color-neutral-4);\\n pointer-events: none;\\n z-index: 1;\\n }\\n\\n &::before {\\n content: '';\\n position: absolute;\\n top: 0;\\n bottom: -1px;\\n left: -9999px;\\n right: -9999px;\\n border-top: 1px solid var(--color-neutral-4);\\n border-bottom: 1px solid var(--color-neutral-4);\\n pointer-events: none;\\n z-index: 1;\\n }\\n }\\n}\\n\\n@utility cs-page-container {\\n @apply grid grid-cols-[1fr_minmax(0,var(--page-max-w,64rem))_1fr];\\n}\\n\\n@utility cs-page-grid {\\n position: relative;\\n max-width: var(--page-max-w, 64rem);\\n width: 100%;\\n margin-inline: auto;\\n border-inline: 1px solid var(--color-neutral-4);\\n\\n & > :where(*) {\\n position: relative;\\n\\n &::after {\\n content: '';\\n position: absolute;\\n bottom: 0;\\n left: -100vw;\\n width: 200vw;\\n height: 1px;\\n background-color: var(--color-neutral-4);\\n pointer-events: none;\\n }\\n }\\n\\n & > :where(*:first-child)::before {\\n content: '';\\n position: absolute;\\n top: 0;\\n left: -100vw;\\n width: 200vw;\\n height: 1px;\\n background-color: var(--color-neutral-4);\\n pointer-events: none;\\n }\\n}\\n\\n@utility cs-page-gutter {\\n &::before, &::after {\\n content: '';\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n width: var(--page-gutter-w, 2.5rem);\\n pointer-events: none;\\n background: repeating-linear-gradient(315deg, var(--color-neutral-3) 0 1px, transparent 1px 50%);\\n background-size: 10px 10px;\\n background-attachment: fixed;\\n }\\n\\n &::before {\\n right: 100%;\\n border-left: 1px solid var(--color-neutral-4);\\n }\\n\\n &::after {\\n left: 100%;\\n border-right: 1px solid var(--color-neutral-4);\\n }\\n}\\n\\n@layer base {\\n\\n * {\\n @apply transition-colors duration-200;\\n }\\n\\n body {\\n color: var(--color-neutral-12);\\n background-color: var(--color-neutral-1);\\n }\\n\\n\\n @font-face {\\n font-family: 'geist';\\n font-weight: 100 900;\\n font-style: normal;\\n font-display: swap;\\n size-adjust: 100%;\\n src: url(https://cdn.digo-labs.com/fonts/geist.ttf) format('truetype');\\n }\\n\\n @font-face {\\n font-family: 'geist-mono';\\n font-weight: 100 900;\\n font-style: normal;\\n font-display: swap;\\n size-adjust: 100%;\\n src: url(https://cdn.digo-labs.com/fonts/geist-mono.ttf) format('truetype');\\n }\\n\\n @font-face {\\n font-family: 'geist-pixel-circle';\\n font-weight: 400;\\n font-style: normal;\\n font-display: swap;\\n size-adjust: 100%;\\n src: url(https://cdn.digo-labs.com/fonts/geist-pixel-circle.ttf) format('truetype');\\n }\\n\\n @font-face {\\n font-family: 'geist-pixel-grid';\\n font-weight: 400;\\n font-style: normal;\\n font-display: swap;\\n size-adjust: 100%;\\n src: url(https://cdn.digo-labs.com/fonts/geist-pixel-grid.ttf) format('truetype');\\n }\\n\\n @font-face {\\n font-family: 'geist-pixel-line';\\n font-weight: 400;\\n font-style: normal;\\n font-display: swap;\\n size-adjust: 100%;\\n src: url(https://cdn.digo-labs.com/fonts/geist-pixel-line.ttf) format('truetype');\\n }\\n\\n @font-face {\\n font-family: 'geist-pixel-square';\\n font-weight: 400;\\n font-style: normal;\\n font-display: swap;\\n size-adjust: 100%;\\n src: url(https://cdn.digo-labs.com/fonts/geist-pixel-square.ttf) format('truetype');\\n }\\n\\n @font-face {\\n font-family: 'geist-pixel-triangle';\\n font-weight: 400;\\n font-style: normal;\\n font-display: swap;\\n size-adjust: 100%;\\n src: url(https://cdn.digo-labs.com/fonts/geist-pixel-triangle.ttf) format('truetype');\\n }\\n\\n @font-face {\\n font-family: 'clash-grotesk-variable';\\n font-weight: 200 700;\\n font-style: normal;\\n font-display: swap;\\n size-adjust: 100%;\\n src: url(https://cdn.digo-labs.com/fonts/clash-grotesk-variable.ttf) format('truetype');\\n }\\n\\n @font-face {\\n font-family: 'nippo';\\n font-weight: 200 700;\\n font-style: normal;\\n font-display: swap;\\n size-adjust: 100%;\\n src: url(https://cdn.digo-labs.com/fonts/nippo.ttf) format('truetype');\\n }\\n\\n @font-face {\\n font-family: 'being';\\n font-weight: 400;\\n font-style: normal;\\n font-display: swap;\\n size-adjust: 100%;\\n src: url(https://cdn.digo-labs.com/fonts/being.otf) format('opentype');\\n }\\n\\n @font-face {\\n font-family: 'Aalto';\\n font-weight: 400;\\n font-style: normal;\\n font-display: swap;\\n size-adjust: 100%;\\n src: url(https://cdn.digo-labs.com/fonts/aalto.otf) format('opentype');\\n }\\n\\n @font-face {\\n font-family: 'humane-variable';\\n font-weight: 200 800;\\n font-style: normal;\\n font-display: swap;\\n size-adjust: 100%;\\n src: url(https://cdn.digo-labs.com/fonts/humane-variable.ttf) format('truetype');\\n }\\n\\n @font-face {\\n font-family: 'general-sans';\\n font-weight: 200 800;\\n font-style: normal;\\n font-display: swap;\\n size-adjust: 100%;\\n src: url(https://cdn.digo-labs.com/fonts/general-sans.ttf) format('truetype');\\n }\\n\\n @font-face {\\n font-family: 'karmatic-arcade-regular';\\n font-style: normal;\\n font-weight: 400;\\n font-display: swap;\\n size-adjust: 100%;\\n src: url(https://cdn.digo-labs.com/fonts/karmatic-arcade-regular.ttf) format('truetype');\\n }\\n\\n @font-face {\\n font-family: 'kode-mono-vf';\\n font-style: normal;\\n font-weight: 400 700;\\n font-display: swap;\\n size-adjust: 100%;\\n src: url(https://cdn.digo-labs.com/fonts/kode-mono-vf.ttf) format('truetype');\\n }\\n\\n @font-face {\\n font-family: 'digital-7-mono';\\n font-style: normal;\\n font-weight: 400;\\n font-display: swap;\\n size-adjust: 100%;\\n src: url(https://cdn.digo-labs.com/fonts/digital-7-mono.ttf) format('truetype');\\n }\\n\\n @font-face {\\n font-family: 'pixelony';\\n font-style: normal;\\n font-weight: 400;\\n font-display: swap;\\n size-adjust: 100%;\\n src: url(https://cdn.digo-labs.com/fonts/pixelony.ttf) format('truetype');\\n }\\n\\n @font-face {\\n font-family: 'unknown';\\n font-weight: 400;\\n font-style: normal;\\n font-display: swap;\\n size-adjust: 140%;\\n src: url(https://cdn.digo-labs.com/fonts/unknown.otf) format('opentype');\\n }\\n\\n @font-face {\\n font-family: 'benzol';\\n font-weight: 400;\\n font-style: normal;\\n font-display: swap;\\n size-adjust: 100%;\\n src: url(https://cdn.digo-labs.com/fonts/benzol.otf) format('opentype');\\n }\\n\\n @font-face {\\n font-family: 'half';\\n font-weight: 400;\\n font-style: normal;\\n font-display: swap;\\n size-adjust: 100%;\\n src: url(https://cdn.digo-labs.com/fonts/half.otf) format('opentype');\\n }\\n\\n @font-face {\\n font-family: 'miratrix';\\n font-weight: 400;\\n font-style: normal;\\n font-display: swap;\\n size-adjust: 100%;\\n src: url(https://cdn.digo-labs.com/fonts/miratrix.otf) format('opentype');\\n }\\n\\n @font-face {\\n font-family: 'triakis';\\n font-weight: 400;\\n font-style: normal;\\n font-display: swap;\\n size-adjust: 100%;\\n src: url(https://cdn.digo-labs.com/fonts/triakis.otf) format('opentype');\\n }\\n\\n @font-face {\\n font-family: 'yeager';\\n font-weight: 400;\\n font-style: normal;\\n font-display: swap;\\n size-adjust: 100%;\\n src: url(https://cdn.digo-labs.com/fonts/yeager.otf) format('opentype');\\n }\\n\\n @font-face {\\n font-family: 'disket';\\n font-style: normal;\\n font-weight: 400;\\n font-display: swap;\\n size-adjust: 100%;\\n src: url(https://cdn.digo-labs.com/fonts/disket.ttf) format('truetype');\\n }\\n\\n @font-face {\\n font-family: 'heming';\\n font-style: normal;\\n font-weight: 400;\\n font-display: swap;\\n size-adjust: 100%;\\n src: url(https://cdn.digo-labs.com/fonts/heming.ttf) format('truetype');\\n }\\n\\n @font-face {\\n font-family: 'obrazec';\\n font-style: normal;\\n font-weight: 400;\\n font-display: swap;\\n size-adjust: 100%;\\n src: url(https://cdn.digo-labs.com/fonts/obrazec.ttf) format('truetype');\\n }\\n \\n}\\n\\n@layer utilities {\\n * {\\n scrollbar-width: thin;\\n scrollbar-color: #ffffff50 transparent;\\n }\\n}\\n\\n@layer base {\\n ::selection {\\n background-color: var(--color-neutral-12);\\n color: var(--color-neutral-1);\\n }\\n\\n ::-moz-selection {\\n background-color: var(--color-neutral-12);\\n color: var(--color-neutral-1);\\n }\\n}\"","import indexCss from './index.css?raw';\n\nimport type { FontFaceData, FontFormat } from './font-types';\n\nconst FONT_VAR_REGEX = /--font-([\\w-]+):\\s*'([^']+)'/g;\n\nconst familyToVariable = new Map<string, string>();\n\nlet varMatch: RegExpExecArray | null;\n\nwhile ((varMatch = FONT_VAR_REGEX.exec(indexCss)) !== null) {\n const variableName = `--font-${varMatch[1]}`;\n const familyName = varMatch[2];\n familyToVariable.set(familyName.toLowerCase(), variableName);\n}\n\nconst FONT_FACE_REGEX = /@font-face\\s*\\{[^}]*?font-family:\\s*'([^']+)'[^}]*?font-weight:\\s*([\\d\\s]+)[^}]*?font-style:\\s*(\\w+)[^}]*?src:\\s*url\\([^)]*?\\/fonts\\/([^)]+)\\)\\s*format\\('(\\w+)'\\)[^}]*?\\}/gs;\n\nconst parsedFonts: FontFaceData[] = [];\n\nlet faceMatch: RegExpExecArray | null;\n\nwhile ((faceMatch = FONT_FACE_REGEX.exec(indexCss)) !== null) {\n const family = faceMatch[1];\n const weightRaw = faceMatch[2].trim();\n const style = faceMatch[3];\n const fileName = faceMatch[4];\n const format = faceMatch[5] === 'truetype' ? 'ttf' : 'otf';\n\n const weights = weightRaw.split(/\\s+/).map(Number);\n const weightMin = Math.min(...weights);\n const weightMax = Math.max(...weights);\n\n parsedFonts.push({\n family,\n weightMin,\n weightMax,\n style,\n format: format as FontFormat,\n filePath: `/fonts/${fileName}`,\n fileName,\n cssVariable: familyToVariable.get(family.toLowerCase()) ?? null,\n });\n}\n\nparsedFonts.sort((a, b) => a.family.localeCompare(b.family));\n\nexport const FONT_FACES: FontFaceData[] = parsedFonts;\n","export const IMAGES = {\n digoLogo: 'https://cdn.digo-labs.com/images/digo-logo.png',\n digoLogoSvg: 'https://cdn.digo-labs.com/images/digo-logo.svg',\n pcLogoV1Svg: 'https://cdn.digo-labs.com/images/pc-logo-v1.svg',\n pcLogo3d: 'https://cdn.digo-labs.com/images/pc-logo-3d.png',\n userPlaceholder: 'https://cdn.digo-labs.com/images/user-placeholder.png',\n};\n","export const MODELS = {\n\n};\n","export class LocalStorage {\n public static setValue<T>(key: string, value: T): void {\n sessionStorage.setItem(key, JSON.stringify(value));\n }\n\n public static loadValue<T>(key: string, defaultValue: T): T {\n const storedValue = sessionStorage.getItem(key);\n\n if (!storedValue || storedValue === 'undefined') {\n return defaultValue;\n }\n\n try {\n return JSON.parse(storedValue);\n } catch {\n return defaultValue;\n }\n }\n}\n","export const ROUTES = {\n aiText: 'text',\n dmxSend: 'dmx-send',\n storagePresignUpload: 'storage-presign-upload',\n storagePresignDownload: 'storage-presign-download',\n storageList: 'storage-list',\n storageDelete: 'storage-delete',\n databaseGetAll: 'database-get-all',\n databaseGet: 'database-get',\n databaseGetBy: 'database-get-by',\n databaseCreate: 'database-create',\n databaseUpdate: 'database-update',\n databaseDelete: 'database-delete',\n} as const;\n","import LZString from 'lz-string';\n\nimport {\n base64StringToBlob,\n blobToBase64String,\n} from 'blob-util';\n\nexport class StringHelpers {\n public static hashCode(data: string) {\n return [...data].reduce(\n (hash, c) => (Math.imul(31, hash) + c.charCodeAt(0)) | 0,\n 0,\n );\n }\n\n public static compress(data: string): string {\n return LZString.compress(data);\n }\n\n public static compressToBase64(data: string): string {\n return LZString.compressToBase64(data);\n }\n\n public static compressToUint8Array(data: string): Uint8Array {\n return LZString.compressToUint8Array(data);\n }\n\n public static decompress(data: string): string {\n return LZString.decompress(data);\n }\n\n public static decompressFromBase64(data: string): string {\n return LZString.decompressFromBase64(data);\n }\n\n public static decompressFromUint8Array(data: Uint8Array): string {\n return LZString.decompressFromUint8Array(data);\n }\n\n public static blobToBase64(blob: Blob): Promise<string> {\n return blobToBase64String(blob);\n }\n\n public static base64ToBlob(base64: string): Blob {\n return base64StringToBlob(base64);\n }\n\n public static getFirstLetter(string: string | undefined): string {\n if (!string) return 'X';\n return string.charAt(0).toUpperCase();\n }\n}\n","export const STRINGS = {\n digo: 'Digo',\n refresh: 'Refresh',\n code: 'Code',\n score: 'Score',\n preview: 'Preview',\n weights: 'Weights',\n examples: 'Examples',\n typography: 'Typography',\n sizes: 'Sizes',\n icons: 'Icons',\n neutral: 'Neutral',\n info: 'Info',\n selected: 'Selected',\n noneSelected: 'None selected',\n highlights: 'Highlights',\n shadows: 'Shadows',\n color: 'Color',\n untitled: 'Untitled',\n columns: 'Columns',\n save: 'Save',\n accent: 'Accent',\n applying: 'Applying',\n viewing: 'Viewing',\n clearMessages: 'Clear messages',\n clearNextMessages: 'Clear next messages',\n apply: 'Apply',\n import: 'Import',\n search: 'Search...',\n where: 'Where',\n noTimeArray: 'No time array',\n success: 'Success',\n error: 'Error',\n warning: 'Warning',\n attach: 'Attach',\n attachImage: 'Attach Image',\n actions: 'Actions',\n addNewColumn: 'Add new column',\n addNewRow: 'Add new row',\n addFilter: 'Add filter',\n addSort: 'Add sort',\n applySorting: 'Apply sorting',\n applyFilters: 'Apply filters',\n filter: 'Filter',\n sort: 'Sort',\n resetFilters: 'Reset filters',\n resetSorting: 'Reset sorting',\n description: 'Description',\n name: 'Name',\n loremIpsumSmall: 'Lorem ipsum dolor sit amet.',\n loremIpsumMedium: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam nec purus ac libero vehicula ultricies.',\n loremIpsumLong: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam nec purus ac libero vehicula ultricies. Nulla facilisi. Sed nec nisl in turpis tincidunt tincidunt. Nulla facilisi. Sed nec nisl in turpis tincidunt tincidunt.',\n selectAgent: 'Select Agent',\n selectModel: 'Select Model',\n sendPrompt: 'Send Prompt',\n view: 'View',\n toggleColumns: 'Toggle columns',\n toggleOpen: 'Toggle open',\n reset: 'Reset',\n noResultsFound: 'No results found.',\n clearFilters: 'Clear filters',\n rowsPerPage: 'Rows per page',\n id: 'Id',\n noSortsTitle: 'No sorts apply to this view',\n noSortsDescription: 'Add a column below to sort the view',\n noFiltersTitle: 'No filters apply to this view',\n noFiltersDescription: 'Add a column below to filter the view',\n defaultValue: 'Default value',\n default: 'Default',\n stepDuration: 'Step duration (ms)',\n min: 'Min',\n max: 'Max',\n icon: 'Icon',\n step: 'Step',\n decimals: 'Decimals',\n units: 'Units',\n play: 'Play',\n pause: 'Pause',\n next: 'Next',\n previous: 'Previous',\n loop: 'Loop',\n rewind: 'Rewind',\n forward: 'Forward',\n start: 'Start',\n emptyCode: 'Select a file to view its content',\n generate: 'Generate',\n savePreset: 'Save Preset',\n image: 'Image',\n};\n","import { z } from 'zod';\n\nexport interface ModelMetadata {\n id: string;\n provider: string;\n name: string;\n version: string;\n description: string;\n}\n\nexport const BEDROCK_MODELS = [\n {\n id: 'us.anthropic.claude-haiku-4-5-20251001-v1:0',\n provider: 'Anthropic',\n name: 'Claude Haiku',\n version: '4.5',\n description: 'Fastest and cheapest, good for short replies.',\n },\n {\n id: 'us.anthropic.claude-sonnet-4-6',\n provider: 'Anthropic',\n name: 'Claude Sonnet',\n version: '4.6',\n description: 'Balanced quality and speed for most tasks.',\n },\n {\n id: 'us.anthropic.claude-opus-4-7',\n provider: 'Anthropic',\n name: 'Claude Opus',\n version: '4.7',\n description: 'Highest quality, slower and more expensive.',\n },\n {\n id: 'us.amazon.nova-micro-v1:0',\n provider: 'Amazon',\n name: 'Nova Micro',\n version: '1',\n description: 'Text-only, extremely fast and cheap.',\n },\n {\n id: 'us.amazon.nova-lite-v1:0',\n provider: 'Amazon',\n name: 'Nova Lite',\n version: '1',\n description: 'Fast multimodal with image and video input.',\n },\n {\n id: 'us.amazon.nova-pro-v1:0',\n provider: 'Amazon',\n name: 'Nova Pro',\n version: '1',\n description: 'Higher-quality multimodal, slower than Lite.',\n },\n] as const satisfies readonly ModelMetadata[];\n\nexport type KnownTextModel = (typeof BEDROCK_MODELS)[number]['id'];\n\nexport type TextModel = KnownTextModel | (string & {});\n\nexport const DEFAULT_TEXT_MODEL: TextModel = BEDROCK_MODELS[0].id;\n\nconst textContentPartSchema = z.object({\n type: z.literal('text'),\n text: z.string(),\n});\n\nconst imageContentPartSchema = z.object({\n type: z.literal('image'),\n source: z.object({\n base64: z.string(),\n mediaType: z.string(),\n }),\n});\n\nconst messageContentSchema = z.union([\n z.string(),\n z.array(z.union([textContentPartSchema, imageContentPartSchema])),\n]);\n\nexport const textMessageSchema = z.object({\n role: z.enum(['user', 'assistant']),\n content: messageContentSchema,\n});\n\nexport type TextMessage = z.infer<typeof textMessageSchema>;\n\nexport const textBodySchema = z.object({\n model: z.string().optional(),\n messages: z.array(textMessageSchema).min(1),\n systemPrompt: z.string().optional(),\n temperature: z.number().min(0).max(2).optional(),\n maxTokens: z.number().int().positive().optional(),\n stopSequences: z.array(z.string()).optional(),\n providerOptions: z.record(z.string(), z.record(z.string(), z.any())).optional(),\n});\n\nexport type TextBody = z.infer<typeof textBodySchema>;\n\nexport type TextStreamChunk = { text: string; };\n\nexport type TextStreamResult = { text: string; stopReason: string; };\n\nexport interface TextStream extends AsyncIterable<TextStreamChunk> {\n readonly text: string;\n readonly stopReason: string | null;\n collect(): Promise<TextStreamResult>;\n}\n","import { z } from 'zod';\n\nexport const dmxSendBodySchema = z.object({\n channel: z.number().int().min(1).max(512),\n value: z.number().int().min(0).max(255),\n});\n\nexport type DmxSendBody = z.infer<typeof dmxSendBodySchema>;\n\nexport const dmxSendResponseSchema = z.object({\n success: z.boolean(),\n});\n\nexport type DmxSendResponse = z.infer<typeof dmxSendResponseSchema>;\n","import { z } from 'zod';\n\nconst identifier = z.string().min(1);\nconst scalarValue = z.union([z.string(), z.number(), z.boolean(), z.null()]);\nconst recordValue = z.record(z.string(), z.unknown());\n\nexport const databaseGetAllBodySchema = z.object({\n table: identifier,\n limit: z.number().int().positive().optional(),\n offset: z.number().int().nonnegative().optional(),\n});\n\nexport type DatabaseGetAllBody = z.infer<typeof databaseGetAllBodySchema>;\n\nexport const databaseGetAllResponseSchema = z.object({\n rows: z.array(recordValue),\n});\n\nexport type DatabaseGetAllResponse = z.infer<typeof databaseGetAllResponseSchema>;\n\nexport const databaseGetBodySchema = z.object({\n table: identifier,\n pk: identifier,\n value: scalarValue,\n});\n\nexport type DatabaseGetBody = z.infer<typeof databaseGetBodySchema>;\n\nexport const databaseGetResponseSchema = z.object({\n row: recordValue.nullable(),\n});\n\nexport type DatabaseGetResponse = z.infer<typeof databaseGetResponseSchema>;\n\nexport const databaseGetByBodySchema = z.object({\n table: identifier,\n column: identifier,\n value: scalarValue,\n});\n\nexport type DatabaseGetByBody = z.infer<typeof databaseGetByBodySchema>;\n\nexport const databaseGetByResponseSchema = z.object({\n rows: z.array(recordValue),\n});\n\nexport type DatabaseGetByResponse = z.infer<typeof databaseGetByResponseSchema>;\n\nexport const databaseCreateBodySchema = z.object({\n table: identifier,\n record: recordValue,\n});\n\nexport type DatabaseCreateBody = z.infer<typeof databaseCreateBodySchema>;\n\nexport const databaseCreateResponseSchema = z.object({\n row: recordValue,\n});\n\nexport type DatabaseCreateResponse = z.infer<typeof databaseCreateResponseSchema>;\n\nexport const databaseUpdateBodySchema = z.object({\n table: identifier,\n pk: identifier,\n value: scalarValue,\n changes: recordValue,\n});\n\nexport type DatabaseUpdateBody = z.infer<typeof databaseUpdateBodySchema>;\n\nexport const databaseUpdateResponseSchema = z.object({\n success: z.boolean(),\n});\n\nexport type DatabaseUpdateResponse = z.infer<typeof databaseUpdateResponseSchema>;\n\nexport const databaseDeleteBodySchema = z.object({\n table: identifier,\n pk: identifier,\n value: scalarValue,\n});\n\nexport type DatabaseDeleteBody = z.infer<typeof databaseDeleteBodySchema>;\n\nexport const databaseDeleteResponseSchema = z.object({\n success: z.boolean(),\n});\n\nexport type DatabaseDeleteResponse = z.infer<typeof databaseDeleteResponseSchema>;\n","import { z } from 'zod';\n\nexport const filePayloadSchema = z.object({\n mediaType: z.string(),\n base64: z.string(),\n});\n\nexport type FilePayload = z.infer<typeof filePayloadSchema>;\n\nexport const imagePayloadSchema = z.object({\n mediaType: z.string(),\n base64: z.string(),\n});\n\nexport type ImagePayload = z.infer<typeof imagePayloadSchema>;\n\nexport const sizeFormattedSchema = z\n .string()\n .regex(/^\\d+x\\d+$/)\n .transform(s => s as `${number}x${number}`);\n\nexport type SizeFormatted = z.infer<typeof sizeFormattedSchema>;\n\nexport const aspectRatioSchema = z\n .string()\n .regex(/^\\d+:\\d+$/)\n .transform(s => s as `${number}:${number}`);\n\nexport type AspectRatio = z.infer<typeof aspectRatioSchema>;\n","import { z } from 'zod';\n\nexport const presignUploadBodySchema = z.object({\n bucket: z.string().min(1),\n path: z.string().min(1),\n contentType: z.string().min(1),\n expiresIn: z.number().int().positive().max(604800).optional(),\n});\n\nexport type PresignUploadBody = z.infer<typeof presignUploadBodySchema>;\n\nexport const presignUploadResponseSchema = z.object({\n url: z.string().url(),\n expiresAt: z.number(),\n});\n\nexport type PresignUploadResponse = z.infer<typeof presignUploadResponseSchema>;\n\nexport const presignDownloadBodySchema = z.object({\n bucket: z.string().min(1),\n path: z.string().min(1),\n expiresIn: z.number().int().positive().max(604800).optional(),\n});\n\nexport type PresignDownloadBody = z.infer<typeof presignDownloadBodySchema>;\n\nexport const presignDownloadResponseSchema = presignUploadResponseSchema;\n\nexport type PresignDownloadResponse = z.infer<typeof presignDownloadResponseSchema>;\n\nexport const listBodySchema = z.object({\n bucket: z.string().min(1),\n prefix: z.string().optional(),\n limit: z.number().int().positive().max(1000).optional(),\n});\n\nexport type ListBody = z.infer<typeof listBodySchema>;\n\nexport const storageObjectSchema = z.object({\n key: z.string(),\n size: z.number(),\n lastModified: z.string(),\n etag: z.string().optional(),\n});\n\nexport type StorageObject = z.infer<typeof storageObjectSchema>;\n\nexport const listResponseSchema = z.object({\n objects: z.array(storageObjectSchema),\n});\n\nexport type ListResponse = z.infer<typeof listResponseSchema>;\n\nexport const deleteBodySchema = z.object({\n bucket: z.string().min(1),\n paths: z.array(z.string().min(1)).min(1),\n});\n\nexport type DeleteBody = z.infer<typeof deleteBodySchema>;\n\nexport const deleteResponseSchema = z.object({\n success: z.boolean(),\n deleted: z.array(z.string()),\n});\n\nexport type DeleteResponse = z.infer<typeof deleteResponseSchema>;\n","export interface Time {\n hours: number;\n minutes: number;\n seconds: number;\n}\n\nexport type Vector3 = [number, number, number];\n\nexport enum BedrockStyle {\n ANIMATED_FILM = '3D_ANIMATED_FAMILY_FILM',\n FLAT_VECTOR_ILLUSTRATION = 'FLAT_VECTOR_ILLUSTRATION',\n GRAPHIC_NOVEL_ILLUSTRATION = 'GRAPHIC_NOVEL_ILLUSTRATION',\n MAXIMALISM = 'MAXIMALISM',\n MIDCENTURY_RETRO = 'MIDCENTURY_RETRO',\n PHOTOREALISM = 'PHOTOREALISM',\n SOFT_DIGITAL_PAINTING = 'SOFT_DIGITAL_PAINTING',\n}\n\nexport interface Size {\n width: number;\n height: number;\n}\n\nexport interface GradientStop {\n color: string;\n percent: number;\n}\n\nexport interface ModelPayload {\n name: string;\n description: string;\n icon: string;\n}\n\nexport interface CommonMetadata {\n name: string;\n description?: string;\n image?: File;\n tags?: string[];\n icon?: string;\n}\n\ntype SuccessResult<T> = readonly[T, null];\n\ntype ErrorResult<E = Error> = readonly[null, E];\n\nexport type Result<T, E = Error> = SuccessResult<T> | ErrorResult<E>;\n\nexport interface CodeLanguageMetadata {\n icon: string;\n name: string;\n}\n\nexport type Orientation = 'horizontal' | 'vertical';\n\nexport type Alignment = 'left' | 'center' | 'right';\n","export type WebsocketChannelsTypes = Record<string, unknown>;\n\nexport type WebsocketListener<T = unknown> = (data: T) => void;\n\nexport enum WebsocketClientEvent {\n IDENTIFY = 'IDENTIFY',\n SUBSCRIBE = 'SUBSCRIBE',\n UNSUBSCRIBE = 'UNSUBSCRIBE',\n MESSAGE = 'MESSAGE',\n STATE = 'STATE',\n}\n\nexport type WebsocketClientMessage =\n | { type: WebsocketClientEvent.IDENTIFY; id: string; }\n | { type: WebsocketClientEvent.SUBSCRIBE; channels: string[]; }\n | { type: WebsocketClientEvent.UNSUBSCRIBE; channels: string[]; }\n | { type: WebsocketClientEvent.MESSAGE; channel: string; data?: unknown; }\n | { type: WebsocketClientEvent.STATE; channel: string; data?: unknown; };\n\nexport enum WebSocketHubEvent {\n MESSAGE = 'MESSAGE',\n STATE = 'STATE',\n}\n\nexport interface WebsocketHubMessage {\n type: WebSocketHubEvent;\n channel: string;\n data?: unknown;\n}\n\nexport interface WebsocketsHubConfig {\n port: number;\n}\n\nexport interface WebsocketConnectionConfig {\n id: string;\n host: string;\n port: number;\n reconnect?: boolean;\n reconnectInterval?: number;\n maxReconnectInterval?: number;\n}\n\nexport const WEBSOCKET_HUB_CHANNEL = '_hub';\n\nexport interface WebsocketHubStatusClient {\n id: string;\n channels: string[];\n}\n\nexport enum WebsocketLogEvent {\n CONNECT = 'CONNECT',\n DISCONNECT = 'DISCONNECT',\n SUBSCRIBE = 'SUBSCRIBE',\n UNSUBSCRIBE = 'UNSUBSCRIBE',\n MESSAGE = 'MESSAGE',\n STATE = 'STATE',\n}\n\nexport interface WebsocketHubLogEntry {\n timestamp: number;\n sender: string;\n type: WebsocketLogEvent;\n channel: string;\n data?: unknown;\n}\n\nexport interface WebsocketHubStatus {\n clients: WebsocketHubStatusClient[];\n state: Record<string, unknown>;\n logs: WebsocketHubLogEntry[];\n}\n","export const VIDEOS = {\n pcLogo3D: 'https://cdn.digo-labs.com/videos/pc-logo-3d.mp4',\n};\n","export const FONTS = {\n aalto: 'https://cdn.digo-labs.com/fonts/aalto.otf',\n being: 'https://cdn.digo-labs.com/fonts/being.otf',\n benzol: 'https://cdn.digo-labs.com/fonts/benzol.otf',\n clashGrotesk: 'https://cdn.digo-labs.com/fonts/clash-grotesk-variable.ttf',\n digital7Mono: 'https://cdn.digo-labs.com/fonts/digital-7-mono.ttf',\n disket: 'https://cdn.digo-labs.com/fonts/disket.ttf',\n generalSans: 'https://cdn.digo-labs.com/fonts/general-sans.ttf',\n half: 'https://cdn.digo-labs.com/fonts/half.otf',\n heming: 'https://cdn.digo-labs.com/fonts/heming.ttf',\n humane: 'https://cdn.digo-labs.com/fonts/humane-variable.ttf',\n jersey10: 'https://cdn.digo-labs.com/fonts/jersey-10-regular.ttf',\n karmaticArcade: 'https://cdn.digo-labs.com/fonts/karmatic-arcade-regular.ttf',\n kodeMono: 'https://cdn.digo-labs.com/fonts/kode-mono-vf.ttf',\n miratrix: 'https://cdn.digo-labs.com/fonts/miratrix.otf',\n nippo: 'https://cdn.digo-labs.com/fonts/nippo.ttf',\n obrazec: 'https://cdn.digo-labs.com/fonts/obrazec.otf',\n pixelony: 'https://cdn.digo-labs.com/fonts/pixelony.ttf',\n triakis: 'https://cdn.digo-labs.com/fonts/triakis.otf',\n unknown: 'https://cdn.digo-labs.com/fonts/unknown.otf',\n yeager: 'https://cdn.digo-labs.com/fonts/yeager.otf',\n geist: 'https://cdn.digo-labs.com/fonts/geist.ttf',\n geistMono: 'https://cdn.digo-labs.com/fonts/geist-mono.ttf',\n};\n","import { Result } from './types/common-types';\n\nimport clsx, { ClassValue } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport async function tryCatch<T, E = Error>(promise: Promise<T>): Promise<Result<T, E>> {\n try {\n const data = await promise;\n return [data, null] as const;\n } catch (error) {\n return [null, error as E] as const;\n }\n}\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","export const CITIES: string[] = [\n 'New York',\n 'Tokyo',\n 'Paris',\n 'London',\n 'Barcelona',\n 'Berlin',\n 'Amsterdam',\n 'Sydney',\n 'São Paulo',\n 'Mumbai',\n 'Dubai',\n 'Singapore',\n 'Hong Kong',\n 'Rome',\n 'Vienna',\n 'Prague',\n 'Lisbon',\n 'Stockholm',\n 'Seoul',\n 'Istanbul',\n 'Buenos Aires',\n 'Cairo',\n 'Mexico City',\n 'Oslo',\n 'Zürich',\n];\n\nexport const EXCERPTS: string[] = [\n 'The quick brown fox jumps over the lazy dog.',\n 'Pack my box with five dozen liquor jugs.',\n 'How vexingly quick daft zebras jump.',\n 'Sphinx of black quartz, judge my vow.',\n 'The five boxing wizards jump quickly.',\n 'Bright vixens jump dozing fowl quack.',\n 'Jackdaws love my big sphinx of quartz.',\n 'Sixty zippers were quickly picked from the woven jute bag.',\n 'We promptly judged antique ivory buckles for the next prize.',\n 'A mad boxer shot a quick, gloved jab to the jaw of his dizzy opponent.',\n];\n","export const AUTH_PROJECTS = {\n monorepo: {\n trustedOrigins: [\n 'http://localhost:2000',\n 'https://*.digo-labs.com',\n ],\n },\n} as const;\n\nexport type AuthProject = keyof typeof AUTH_PROJECTS;\n"],"names":["CommonHelpers","text","image","arrayBuffer","decode","blob","resultArrayBuffer","removeBackground","encode","seconds","base64","min","max","hex","m","rgb","value","hexValue","result","variable","name","element","start","end","startItem","index","uri","url","link","fileName","imageFile","file","error","tryCatch","mediaType","ImagePayload","extension","accepts","callback","input","event","target","number","miliseconds","decimals","resolve","reject","urls","promises","word","maxWidth","quality","img","canvas","ratio","compressedBase64","response","timeStamptz","date","parseISO","formatDistanceToNow","baseId","ids","match","base","suffix","baseLower","newId","id","container","BACKEND_URL","AWS_DEFAULT_REGION","AI_MODELS","LANGUAGE_MAP","IconCategory","CURATED_ICONS","IconHelpers","usedCategories","icon","cat","grouped","category","data","indexCss","FONT_VAR_REGEX","familyToVariable","varMatch","variableName","familyName","FONT_FACE_REGEX","parsedFonts","faceMatch","family","weightRaw","style","format","weights","weightMin","weightMax","a","b","FONT_FACES","IMAGES","MODELS","LocalStorage","key","defaultValue","storedValue","ROUTES","StringHelpers","hash","c","LZString","blobToBase64String","base64StringToBlob","string","STRINGS","BEDROCK_MODELS","DEFAULT_TEXT_MODEL","textContentPartSchema","z","imageContentPartSchema","messageContentSchema","textMessageSchema","textBodySchema","dmxSendBodySchema","dmxSendResponseSchema","identifier","scalarValue","recordValue","databaseGetAllBodySchema","databaseGetAllResponseSchema","databaseGetBodySchema","databaseGetResponseSchema","databaseGetByBodySchema","databaseGetByResponseSchema","databaseCreateBodySchema","databaseCreateResponseSchema","databaseUpdateBodySchema","databaseUpdateResponseSchema","databaseDeleteBodySchema","databaseDeleteResponseSchema","filePayloadSchema","imagePayloadSchema","sizeFormattedSchema","s","aspectRatioSchema","presignUploadBodySchema","presignUploadResponseSchema","presignDownloadBodySchema","presignDownloadResponseSchema","listBodySchema","storageObjectSchema","listResponseSchema","deleteBodySchema","deleteResponseSchema","BedrockStyle","WebsocketClientEvent","WebSocketHubEvent","WEBSOCKET_HUB_CHANNEL","WebsocketLogEvent","VIDEOS","FONTS","promise","cn","inputs","twMerge","clsx","CITIES","EXCERPTS","AUTH_PROJECTS"],"mappings":"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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,ICITC,IAAiB,iC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"}
@@ -0,0 +1,4 @@
1
+ export declare class LocalStorage {
2
+ static setValue<T>(key: string, value: T): void;
3
+ static loadValue<T>(key: string, defaultValue: T): T;
4
+ }
@@ -0,0 +1 @@
1
+ export declare const MODELS: {};
@@ -0,0 +1,14 @@
1
+ export declare const ROUTES: {
2
+ readonly aiText: "text";
3
+ readonly dmxSend: "dmx-send";
4
+ readonly storagePresignUpload: "storage-presign-upload";
5
+ readonly storagePresignDownload: "storage-presign-download";
6
+ readonly storageList: "storage-list";
7
+ readonly storageDelete: "storage-delete";
8
+ readonly databaseGetAll: "database-get-all";
9
+ readonly databaseGet: "database-get";
10
+ readonly databaseGetBy: "database-get-by";
11
+ readonly databaseCreate: "database-create";
12
+ readonly databaseUpdate: "database-update";
13
+ readonly databaseDelete: "database-delete";
14
+ };
@@ -0,0 +1,2 @@
1
+ export declare const CITIES: string[];
2
+ export declare const EXCERPTS: string[];
@@ -0,0 +1,102 @@
1
+ import { z } from 'zod';
2
+ export interface ModelMetadata {
3
+ id: string;
4
+ provider: string;
5
+ name: string;
6
+ version: string;
7
+ description: string;
8
+ }
9
+ export declare const BEDROCK_MODELS: readonly [{
10
+ readonly id: "us.anthropic.claude-haiku-4-5-20251001-v1:0";
11
+ readonly provider: "Anthropic";
12
+ readonly name: "Claude Haiku";
13
+ readonly version: "4.5";
14
+ readonly description: "Fastest and cheapest, good for short replies.";
15
+ }, {
16
+ readonly id: "us.anthropic.claude-sonnet-4-6";
17
+ readonly provider: "Anthropic";
18
+ readonly name: "Claude Sonnet";
19
+ readonly version: "4.6";
20
+ readonly description: "Balanced quality and speed for most tasks.";
21
+ }, {
22
+ readonly id: "us.anthropic.claude-opus-4-7";
23
+ readonly provider: "Anthropic";
24
+ readonly name: "Claude Opus";
25
+ readonly version: "4.7";
26
+ readonly description: "Highest quality, slower and more expensive.";
27
+ }, {
28
+ readonly id: "us.amazon.nova-micro-v1:0";
29
+ readonly provider: "Amazon";
30
+ readonly name: "Nova Micro";
31
+ readonly version: "1";
32
+ readonly description: "Text-only, extremely fast and cheap.";
33
+ }, {
34
+ readonly id: "us.amazon.nova-lite-v1:0";
35
+ readonly provider: "Amazon";
36
+ readonly name: "Nova Lite";
37
+ readonly version: "1";
38
+ readonly description: "Fast multimodal with image and video input.";
39
+ }, {
40
+ readonly id: "us.amazon.nova-pro-v1:0";
41
+ readonly provider: "Amazon";
42
+ readonly name: "Nova Pro";
43
+ readonly version: "1";
44
+ readonly description: "Higher-quality multimodal, slower than Lite.";
45
+ }];
46
+ export type KnownTextModel = (typeof BEDROCK_MODELS)[number]['id'];
47
+ export type TextModel = KnownTextModel | (string & {});
48
+ export declare const DEFAULT_TEXT_MODEL: TextModel;
49
+ export declare const textMessageSchema: z.ZodObject<{
50
+ role: z.ZodEnum<{
51
+ user: "user";
52
+ assistant: "assistant";
53
+ }>;
54
+ content: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
55
+ type: z.ZodLiteral<"text">;
56
+ text: z.ZodString;
57
+ }, z.core.$strip>, z.ZodObject<{
58
+ type: z.ZodLiteral<"image">;
59
+ source: z.ZodObject<{
60
+ base64: z.ZodString;
61
+ mediaType: z.ZodString;
62
+ }, z.core.$strip>;
63
+ }, z.core.$strip>]>>]>;
64
+ }, z.core.$strip>;
65
+ export type TextMessage = z.infer<typeof textMessageSchema>;
66
+ export declare const textBodySchema: z.ZodObject<{
67
+ model: z.ZodOptional<z.ZodString>;
68
+ messages: z.ZodArray<z.ZodObject<{
69
+ role: z.ZodEnum<{
70
+ user: "user";
71
+ assistant: "assistant";
72
+ }>;
73
+ content: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
74
+ type: z.ZodLiteral<"text">;
75
+ text: z.ZodString;
76
+ }, z.core.$strip>, z.ZodObject<{
77
+ type: z.ZodLiteral<"image">;
78
+ source: z.ZodObject<{
79
+ base64: z.ZodString;
80
+ mediaType: z.ZodString;
81
+ }, z.core.$strip>;
82
+ }, z.core.$strip>]>>]>;
83
+ }, z.core.$strip>>;
84
+ systemPrompt: z.ZodOptional<z.ZodString>;
85
+ temperature: z.ZodOptional<z.ZodNumber>;
86
+ maxTokens: z.ZodOptional<z.ZodNumber>;
87
+ stopSequences: z.ZodOptional<z.ZodArray<z.ZodString>>;
88
+ providerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodAny>>>;
89
+ }, z.core.$strip>;
90
+ export type TextBody = z.infer<typeof textBodySchema>;
91
+ export type TextStreamChunk = {
92
+ text: string;
93
+ };
94
+ export type TextStreamResult = {
95
+ text: string;
96
+ stopReason: string;
97
+ };
98
+ export interface TextStream extends AsyncIterable<TextStreamChunk> {
99
+ readonly text: string;
100
+ readonly stopReason: string | null;
101
+ collect(): Promise<TextStreamResult>;
102
+ }
@@ -0,0 +1,61 @@
1
+ import { z } from 'zod';
2
+ export declare const databaseGetAllBodySchema: z.ZodObject<{
3
+ table: z.ZodString;
4
+ limit: z.ZodOptional<z.ZodNumber>;
5
+ offset: z.ZodOptional<z.ZodNumber>;
6
+ }, z.core.$strip>;
7
+ export type DatabaseGetAllBody = z.infer<typeof databaseGetAllBodySchema>;
8
+ export declare const databaseGetAllResponseSchema: z.ZodObject<{
9
+ rows: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
10
+ }, z.core.$strip>;
11
+ export type DatabaseGetAllResponse = z.infer<typeof databaseGetAllResponseSchema>;
12
+ export declare const databaseGetBodySchema: z.ZodObject<{
13
+ table: z.ZodString;
14
+ pk: z.ZodString;
15
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>;
16
+ }, z.core.$strip>;
17
+ export type DatabaseGetBody = z.infer<typeof databaseGetBodySchema>;
18
+ export declare const databaseGetResponseSchema: z.ZodObject<{
19
+ row: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
20
+ }, z.core.$strip>;
21
+ export type DatabaseGetResponse = z.infer<typeof databaseGetResponseSchema>;
22
+ export declare const databaseGetByBodySchema: z.ZodObject<{
23
+ table: z.ZodString;
24
+ column: z.ZodString;
25
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>;
26
+ }, z.core.$strip>;
27
+ export type DatabaseGetByBody = z.infer<typeof databaseGetByBodySchema>;
28
+ export declare const databaseGetByResponseSchema: z.ZodObject<{
29
+ rows: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
30
+ }, z.core.$strip>;
31
+ export type DatabaseGetByResponse = z.infer<typeof databaseGetByResponseSchema>;
32
+ export declare const databaseCreateBodySchema: z.ZodObject<{
33
+ table: z.ZodString;
34
+ record: z.ZodRecord<z.ZodString, z.ZodUnknown>;
35
+ }, z.core.$strip>;
36
+ export type DatabaseCreateBody = z.infer<typeof databaseCreateBodySchema>;
37
+ export declare const databaseCreateResponseSchema: z.ZodObject<{
38
+ row: z.ZodRecord<z.ZodString, z.ZodUnknown>;
39
+ }, z.core.$strip>;
40
+ export type DatabaseCreateResponse = z.infer<typeof databaseCreateResponseSchema>;
41
+ export declare const databaseUpdateBodySchema: z.ZodObject<{
42
+ table: z.ZodString;
43
+ pk: z.ZodString;
44
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>;
45
+ changes: z.ZodRecord<z.ZodString, z.ZodUnknown>;
46
+ }, z.core.$strip>;
47
+ export type DatabaseUpdateBody = z.infer<typeof databaseUpdateBodySchema>;
48
+ export declare const databaseUpdateResponseSchema: z.ZodObject<{
49
+ success: z.ZodBoolean;
50
+ }, z.core.$strip>;
51
+ export type DatabaseUpdateResponse = z.infer<typeof databaseUpdateResponseSchema>;
52
+ export declare const databaseDeleteBodySchema: z.ZodObject<{
53
+ table: z.ZodString;
54
+ pk: z.ZodString;
55
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>;
56
+ }, z.core.$strip>;
57
+ export type DatabaseDeleteBody = z.infer<typeof databaseDeleteBodySchema>;
58
+ export declare const databaseDeleteResponseSchema: z.ZodObject<{
59
+ success: z.ZodBoolean;
60
+ }, z.core.$strip>;
61
+ export type DatabaseDeleteResponse = z.infer<typeof databaseDeleteResponseSchema>;
@@ -0,0 +1,10 @@
1
+ import { z } from 'zod';
2
+ export declare const dmxSendBodySchema: z.ZodObject<{
3
+ channel: z.ZodNumber;
4
+ value: z.ZodNumber;
5
+ }, z.core.$strip>;
6
+ export type DmxSendBody = z.infer<typeof dmxSendBodySchema>;
7
+ export declare const dmxSendResponseSchema: z.ZodObject<{
8
+ success: z.ZodBoolean;
9
+ }, z.core.$strip>;
10
+ export type DmxSendResponse = z.infer<typeof dmxSendResponseSchema>;
@@ -0,0 +1,5 @@
1
+ export * from './ai';
2
+ export * from './dmx';
3
+ export * from './database';
4
+ export * from './primitives';
5
+ export * from './storage';
@@ -0,0 +1,15 @@
1
+ import { z } from 'zod';
2
+ export declare const filePayloadSchema: z.ZodObject<{
3
+ mediaType: z.ZodString;
4
+ base64: z.ZodString;
5
+ }, z.core.$strip>;
6
+ export type FilePayload = z.infer<typeof filePayloadSchema>;
7
+ export declare const imagePayloadSchema: z.ZodObject<{
8
+ mediaType: z.ZodString;
9
+ base64: z.ZodString;
10
+ }, z.core.$strip>;
11
+ export type ImagePayload = z.infer<typeof imagePayloadSchema>;
12
+ export declare const sizeFormattedSchema: z.ZodPipe<z.ZodString, z.ZodTransform<`${number}x${number}`, string>>;
13
+ export type SizeFormatted = z.infer<typeof sizeFormattedSchema>;
14
+ export declare const aspectRatioSchema: z.ZodPipe<z.ZodString, z.ZodTransform<`${number}:${number}`, string>>;
15
+ export type AspectRatio = z.infer<typeof aspectRatioSchema>;