{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "icon-context", "title": "Icon Context", "description": "Named icon slots with a HugeIcons default set; swap any icon via IconProvider.", "dependencies": [ "@hugeicons/core-free-icons", "@hugeicons/react" ], "registryDependencies": [], "files": [ { "path": "src/system/icon-context.tsx", "content": "\"use client\";\n\nimport {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n type ReactNode,\n} from \"react\";\nimport ArrowDown01Icon from \"@hugeicons/core-free-icons/ArrowDown01Icon\";\nimport ArrowLeft01Icon from \"@hugeicons/core-free-icons/ArrowLeft01Icon\";\nimport ArrowLeftDoubleIcon from \"@hugeicons/core-free-icons/ArrowLeftDoubleIcon\";\nimport ArrowMoveDownRightIcon from \"@hugeicons/core-free-icons/ArrowMoveDownRightIcon\";\nimport ArrowReloadHorizontalIcon from \"@hugeicons/core-free-icons/ArrowReloadHorizontalIcon\";\nimport ArrowRight01Icon from \"@hugeicons/core-free-icons/ArrowRight01Icon\";\nimport ArrowRightDoubleIcon from \"@hugeicons/core-free-icons/ArrowRightDoubleIcon\";\nimport ArrowUp01Icon from \"@hugeicons/core-free-icons/ArrowUp01Icon\";\nimport ArrowUpDownIcon from \"@hugeicons/core-free-icons/ArrowUpDownIcon\";\nimport BrainIcon from \"@hugeicons/core-free-icons/BrainIcon\";\nimport BubbleChatIcon from \"@hugeicons/core-free-icons/BubbleChatIcon\";\nimport BulbIcon from \"@hugeicons/core-free-icons/BulbIcon\";\nimport Calendar03Icon from \"@hugeicons/core-free-icons/Calendar03Icon\";\nimport Cancel01Icon from \"@hugeicons/core-free-icons/Cancel01Icon\";\nimport CancelCircleIcon from \"@hugeicons/core-free-icons/CancelCircleIcon\";\nimport CircleIcon from \"@hugeicons/core-free-icons/CircleIcon\";\nimport Clock01Icon from \"@hugeicons/core-free-icons/Clock01Icon\";\nimport ComputerIcon from \"@hugeicons/core-free-icons/ComputerIcon\";\nimport Copy01Icon from \"@hugeicons/core-free-icons/Copy01Icon\";\nimport DashboardCircleIcon from \"@hugeicons/core-free-icons/DashboardCircleIcon\";\nimport Delete02Icon from \"@hugeicons/core-free-icons/Delete02Icon\";\nimport DropperIcon from \"@hugeicons/core-free-icons/DropperIcon\";\nimport Eraser01Icon from \"@hugeicons/core-free-icons/Eraser01Icon\";\nimport FavouriteIcon from \"@hugeicons/core-free-icons/FavouriteIcon\";\nimport File01Icon from \"@hugeicons/core-free-icons/File01Icon\";\nimport File02Icon from \"@hugeicons/core-free-icons/File02Icon\";\nimport FileAudioIcon from \"@hugeicons/core-free-icons/FileAudioIcon\";\nimport FileImageIcon from \"@hugeicons/core-free-icons/FileImageIcon\";\nimport FileSpreadsheetIcon from \"@hugeicons/core-free-icons/FileSpreadsheetIcon\";\nimport FileVideoIcon from \"@hugeicons/core-free-icons/FileVideoIcon\";\nimport FileZipIcon from \"@hugeicons/core-free-icons/FileZipIcon\";\nimport GlobeIcon from \"@hugeicons/core-free-icons/GlobeIcon\";\nimport HashtagIcon from \"@hugeicons/core-free-icons/HashtagIcon\";\nimport Home01Icon from \"@hugeicons/core-free-icons/Home01Icon\";\nimport Image01Icon from \"@hugeicons/core-free-icons/Image01Icon\";\nimport InboxIcon from \"@hugeicons/core-free-icons/InboxIcon\";\nimport LibraryIcon from \"@hugeicons/core-free-icons/LibraryIcon\";\nimport Link01Icon from \"@hugeicons/core-free-icons/Link01Icon\";\nimport Loading01Icon from \"@hugeicons/core-free-icons/Loading01Icon\";\nimport ListViewIcon from \"@hugeicons/core-free-icons/ListViewIcon\";\nimport LockIcon from \"@hugeicons/core-free-icons/LockIcon\";\nimport Mail01Icon from \"@hugeicons/core-free-icons/Mail01Icon\";\nimport Menu01Icon from \"@hugeicons/core-free-icons/Menu01Icon\";\nimport Moon02Icon from \"@hugeicons/core-free-icons/Moon02Icon\";\nimport MoreHorizontalIcon from \"@hugeicons/core-free-icons/MoreHorizontalIcon\";\nimport NextIcon from \"@hugeicons/core-free-icons/NextIcon\";\nimport Notification01Icon from \"@hugeicons/core-free-icons/Notification01Icon\";\nimport PaintBrush02Icon from \"@hugeicons/core-free-icons/PaintBrush02Icon\";\nimport PaintBrush01Icon from \"@hugeicons/core-free-icons/PaintBrush01Icon\";\nimport PauseIcon from \"@hugeicons/core-free-icons/PauseIcon\";\nimport PencilEdit01Icon from \"@hugeicons/core-free-icons/PencilEdit01Icon\";\nimport PinIcon from \"@hugeicons/core-free-icons/PinIcon\";\nimport PinOffIcon from \"@hugeicons/core-free-icons/PinOffIcon\";\nimport PlayIcon from \"@hugeicons/core-free-icons/PlayIcon\";\nimport PlusSignCircleIcon from \"@hugeicons/core-free-icons/PlusSignCircleIcon\";\nimport PlusSignIcon from \"@hugeicons/core-free-icons/PlusSignIcon\";\nimport Presentation01Icon from \"@hugeicons/core-free-icons/Presentation01Icon\";\nimport Rocket01Icon from \"@hugeicons/core-free-icons/Rocket01Icon\";\nimport Search01Icon from \"@hugeicons/core-free-icons/Search01Icon\";\nimport Scissor01Icon from \"@hugeicons/core-free-icons/Scissor01Icon\";\nimport Settings01Icon from \"@hugeicons/core-free-icons/Settings01Icon\";\nimport Shield01Icon from \"@hugeicons/core-free-icons/Shield01Icon\";\nimport StarIcon from \"@hugeicons/core-free-icons/StarIcon\";\nimport Sun01Icon from \"@hugeicons/core-free-icons/Sun01Icon\";\nimport Task01Icon from \"@hugeicons/core-free-icons/Task01Icon\";\nimport TextAlignLeftIcon from \"@hugeicons/core-free-icons/TextAlignLeftIcon\";\nimport Tick02Icon from \"@hugeicons/core-free-icons/Tick02Icon\";\nimport TickDouble01Icon from \"@hugeicons/core-free-icons/TickDouble01Icon\";\nimport TypeCursorIcon from \"@hugeicons/core-free-icons/TypeCursorIcon\";\nimport Upload01Icon from \"@hugeicons/core-free-icons/Upload01Icon\";\nimport UserGroupIcon from \"@hugeicons/core-free-icons/UserGroupIcon\";\nimport UserIcon from \"@hugeicons/core-free-icons/UserIcon\";\nimport ViewOffIcon from \"@hugeicons/core-free-icons/ViewOffIcon\";\nimport { type HugeIconComponent } from \"@/lib/huge-icon\";\nimport { createIconMap } from \"@/lib/icon-catalog\";\n\nexport interface IconComponentProps {\n size?: number;\n strokeWidth?: number;\n className?: string;\n primaryColor?: string;\n secondaryColor?: string;\n disableSecondaryOpacity?: boolean;\n}\n\nexport type IconComponent = HugeIconComponent;\n\nexport type IconName =\n | \"chevron-left\" | \"chevron-right\" | \"chevron-down\" | \"chevron-up\"\n | \"chevrons-left\" | \"chevrons-right\" | \"chevrons-up-down\"\n | \"circle-plus\" | \"circle-x\" | \"eye-off\" | \"ellipsis\"\n | \"x\" | \"copy\" | \"menu\" | \"dot\"\n | \"monitor\" | \"sun\" | \"moon\" | \"rectangle-horizontal\" | \"circle\"\n | \"square-library\" | \"clock\" | \"star\" | \"settings\"\n | \"plus\" | \"arrow-left\" | \"arrow-right\" | \"arrow-up\" | \"search\" | \"loader\"\n | \"users\" | \"lock\" | \"mail\" | \"bell\" | \"shield\" | \"palette\"\n | \"lightbulb\" | \"rocket\" | \"heart\" | \"paintbrush\" | \"brain\"\n | \"globe\" | \"user\" | \"image\" | \"link\" | \"check\" | \"rotate-ccw\"\n | \"play\" | \"pause\" | \"pipette\" | \"home\" | \"message-circle\" | \"inbox\"\n | \"pencil\" | \"skip-forward\" | \"corner-down-right\"\n | \"calendar\" | \"check-square\" | \"trash\" | \"eraser\" | \"scissors\" | \"upload\"\n | \"pin\" | \"pin-off\" | \"file\" | \"file-archive\" | \"file-audio\" | \"file-image\"\n | \"file-spreadsheet\" | \"file-text\" | \"file-video\" | \"hash\" | \"list-checks\" | \"list\"\n | \"presentation\" | \"type\" | \"baseline\";\n\nexport type IconVariant =\n | \"stroke-rounded\"\n | \"stroke-standard\"\n | \"bulk-rounded\"\n | \"duotone-rounded\";\n\nconst iconVariantStorageKey = \"zeron-design.icon-variant\";\nconst iconVariantOrder: IconVariant[] = [\n \"stroke-rounded\",\n \"stroke-standard\",\n \"bulk-rounded\",\n \"duotone-rounded\",\n];\nconst freeIconVariants: IconVariant[] = [\"stroke-rounded\"];\n\nexport const defaultIcons = createIconMap({\n ArrowDown01Icon,\n ArrowLeft01Icon,\n ArrowLeftDoubleIcon,\n ArrowMoveDownRightIcon,\n ArrowReloadHorizontalIcon,\n ArrowRight01Icon,\n ArrowRightDoubleIcon,\n ArrowUp01Icon,\n ArrowUpDownIcon,\n BrainIcon,\n BubbleChatIcon,\n BulbIcon,\n Calendar03Icon,\n Cancel01Icon,\n CancelCircleIcon,\n CircleIcon,\n Clock01Icon,\n ComputerIcon,\n Copy01Icon,\n DashboardCircleIcon,\n Delete02Icon,\n DropperIcon,\n Eraser01Icon,\n FavouriteIcon,\n File01Icon,\n File02Icon,\n FileAudioIcon,\n FileImageIcon,\n FileSpreadsheetIcon,\n FileVideoIcon,\n FileZipIcon,\n GlobeIcon,\n HashtagIcon,\n Home01Icon,\n Image01Icon,\n InboxIcon,\n LibraryIcon,\n Link01Icon,\n Loading01Icon,\n ListViewIcon,\n LockIcon,\n Mail01Icon,\n Menu01Icon,\n Moon02Icon,\n MoreHorizontalIcon,\n NextIcon,\n Notification01Icon,\n PaintBrush01Icon,\n PaintBrush02Icon,\n PauseIcon,\n PencilEdit01Icon,\n PinIcon,\n PinOffIcon,\n PlayIcon,\n PlusSignCircleIcon,\n PlusSignIcon,\n Presentation01Icon,\n Rocket01Icon,\n Search01Icon,\n Scissor01Icon,\n Settings01Icon,\n Shield01Icon,\n StarIcon,\n Sun01Icon,\n Task01Icon,\n TextAlignLeftIcon,\n Tick02Icon,\n TickDouble01Icon,\n TypeCursorIcon,\n Upload01Icon,\n UserGroupIcon,\n UserIcon,\n ViewOffIcon,\n});\n\nfunction isIconVariant(value: string | null): value is IconVariant {\n return iconVariantOrder.includes(value as IconVariant);\n}\n\nexport type IconVariantLoader = (\n variant: Exclude\n) => Promise>;\n\ninterface IconContextValue {\n icons: Record;\n variant: IconVariant;\n availableVariants: readonly IconVariant[];\n isVariantLoading: boolean;\n setVariant: (variant: IconVariant) => void;\n cycleVariant: () => void;\n}\n\nconst IconContext = createContext(null);\n\nfunction useIcon(name: IconName): IconComponent {\n return (useContext(IconContext)?.icons ?? defaultIcons)[name];\n}\n\nfunction useIcons(): Record {\n return useContext(IconContext)?.icons ?? defaultIcons;\n}\n\n/**\n * Creates a component backed by a named slot for code that needs to keep an\n * icon component at module scope (for example, DataGrid column definitions).\n */\nfunction createIconSlot(name: IconName): IconComponent {\n function IconSlot(props: IconComponentProps) {\n const Icon = useIcon(name);\n return ;\n }\n\n IconSlot.displayName = `IconSlot(${name})`;\n return IconSlot;\n}\n\nfunction useIconContext(): IconContextValue {\n const context = useContext(IconContext);\n if (!context) throw new Error(\"useIconContext must be used within an IconProvider\");\n return context;\n}\n\n/**\n * Supplies named HugeIcons and loads Pro variants only after the user selects\n * one. Explicit `icons` overrides remain stable across every icon style.\n */\nfunction IconProvider({\n children,\n icons: overrides,\n loadVariant,\n availableVariants = freeIconVariants,\n}: {\n children: ReactNode;\n icons?: Partial>;\n loadVariant?: IconVariantLoader;\n availableVariants?: readonly IconVariant[];\n}) {\n const [baseIcons, setBaseIcons] = useState(defaultIcons);\n const [variant, setVariantState] = useState(\"stroke-rounded\");\n const [isVariantLoading, setIsVariantLoading] = useState(false);\n const requestRef = useRef(0);\n const hasRestoredPreference = useRef(false);\n\n const setVariant = useCallback((nextVariant: IconVariant) => {\n const request = ++requestRef.current;\n\n if (nextVariant === variant) return;\n\n if (nextVariant === \"stroke-rounded\") {\n setBaseIcons(defaultIcons);\n setVariantState(nextVariant);\n setIsVariantLoading(false);\n try {\n window.localStorage.setItem(iconVariantStorageKey, nextVariant);\n } catch {\n // Storage is optional; the selected style remains available this session.\n }\n return;\n }\n\n if (!loadVariant || !availableVariants.includes(nextVariant)) {\n console.error(`HugeIcons ${nextVariant} is not configured for this IconProvider.`);\n return;\n }\n\n setIsVariantLoading(true);\n void loadVariant(nextVariant)\n .then((nextIcons) => {\n if (request !== requestRef.current) return;\n setBaseIcons(nextIcons);\n setVariantState(nextVariant);\n try {\n window.localStorage.setItem(iconVariantStorageKey, nextVariant);\n } catch {\n // Storage is optional; the selected style remains available this session.\n }\n })\n .catch((error: unknown) => {\n if (request !== requestRef.current) return;\n console.error(`Unable to load HugeIcons ${nextVariant} variant.`, error);\n })\n .finally(() => {\n if (request === requestRef.current) setIsVariantLoading(false);\n });\n }, [availableVariants, loadVariant, variant]);\n\n useEffect(() => {\n if (hasRestoredPreference.current) return;\n hasRestoredPreference.current = true;\n try {\n const savedVariant = window.localStorage.getItem(iconVariantStorageKey);\n if (isIconVariant(savedVariant)) setVariant(savedVariant);\n } catch {\n // A restricted browser can still use the default style and switch manually.\n }\n }, [setVariant]);\n\n const cycleVariant = useCallback(() => {\n const enabledVariants = iconVariantOrder.filter((candidate) => availableVariants.includes(candidate));\n const nextIndex = (enabledVariants.indexOf(variant) + 1) % enabledVariants.length;\n setVariant(enabledVariants[nextIndex]);\n }, [availableVariants, setVariant, variant]);\n\n useEffect(() => {\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key !== \"i\" && event.key !== \"I\") return;\n if (event.metaKey || event.ctrlKey || event.altKey) return;\n const target = event.target as HTMLElement;\n if (target.tagName === \"INPUT\" || target.tagName === \"TEXTAREA\" || target.isContentEditable) return;\n event.preventDefault();\n cycleVariant();\n };\n\n document.addEventListener(\"keydown\", onKeyDown);\n return () => document.removeEventListener(\"keydown\", onKeyDown);\n }, [cycleVariant]);\n\n const value = useMemo(() => ({\n icons: { ...baseIcons, ...overrides },\n variant,\n availableVariants,\n isVariantLoading,\n setVariant,\n cycleVariant,\n }), [availableVariants, baseIcons, cycleVariant, isVariantLoading, overrides, setVariant, variant]);\n\n return {children};\n}\n\nexport { createIconSlot, IconProvider, useIcon, useIconContext, useIcons };\n", "type": "registry:lib", "target": "lib/icon-context.tsx" }, { "path": "src/system/huge-icon.tsx", "content": "import { HugeiconsIcon, type IconSvgElement } from \"@hugeicons/react\";\nimport type { ComponentType, SVGProps } from \"react\";\n\nexport interface HugeIconProps extends Omit, \"ref\"> {\n size?: number;\n strokeWidth?: number;\n primaryColor?: string;\n secondaryColor?: string;\n disableSecondaryOpacity?: boolean;\n}\n\nexport type HugeIconComponent = ComponentType;\n\nexport interface CreateHugeIconOptions {\n /** Only stroke icon sets should accept a caller-supplied stroke width. */\n adjustableStrokeWidth?: boolean;\n}\n\n/** Adapts a HugeIcons definition to the component shape used throughout the UI. */\nexport function createHugeIcon(\n icon: unknown,\n { adjustableStrokeWidth = true }: CreateHugeIconOptions = {}\n): HugeIconComponent {\n function HugeIcon({ size = 24, strokeWidth, ...props }: HugeIconProps) {\n return (\n \n );\n }\n\n HugeIcon.displayName = \"HugeIcon\";\n return HugeIcon;\n}\n", "type": "registry:lib", "target": "lib/huge-icon.tsx" }, { "path": "src/system/icon-catalog.ts", "content": "import { createHugeIcon, type CreateHugeIconOptions } from \"@/lib/huge-icon\";\nimport type { IconComponent, IconName } from \"@/lib/icon-context\";\n\n/**\n * The underlying HugeIcons definitions shared by every supported style.\n * Keeping this list central guarantees that a style change never changes the\n * public `useIcon()` slot API.\n */\nexport interface IconDefinitions {\n ArrowDown01Icon: unknown;\n ArrowLeft01Icon: unknown;\n ArrowLeftDoubleIcon: unknown;\n ArrowMoveDownRightIcon: unknown;\n ArrowReloadHorizontalIcon: unknown;\n ArrowRight01Icon: unknown;\n ArrowRightDoubleIcon: unknown;\n ArrowUp01Icon: unknown;\n ArrowUpDownIcon: unknown;\n BrainIcon: unknown;\n BubbleChatIcon: unknown;\n BulbIcon: unknown;\n Calendar03Icon: unknown;\n Cancel01Icon: unknown;\n CancelCircleIcon: unknown;\n CircleIcon: unknown;\n Clock01Icon: unknown;\n ComputerIcon: unknown;\n Copy01Icon: unknown;\n DashboardCircleIcon: unknown;\n Delete02Icon: unknown;\n DropperIcon: unknown;\n Eraser01Icon: unknown;\n FavouriteIcon: unknown;\n File01Icon: unknown;\n File02Icon: unknown;\n FileAudioIcon: unknown;\n FileImageIcon: unknown;\n FileSpreadsheetIcon: unknown;\n FileVideoIcon: unknown;\n FileZipIcon: unknown;\n GlobeIcon: unknown;\n HashtagIcon: unknown;\n Home01Icon: unknown;\n Image01Icon: unknown;\n InboxIcon: unknown;\n LibraryIcon: unknown;\n Link01Icon: unknown;\n Loading01Icon: unknown;\n ListViewIcon: unknown;\n LockIcon: unknown;\n Mail01Icon: unknown;\n Menu01Icon: unknown;\n Moon02Icon: unknown;\n MoreHorizontalIcon: unknown;\n NextIcon: unknown;\n Notification01Icon: unknown;\n PaintBrush01Icon: unknown;\n PaintBrush02Icon: unknown;\n PauseIcon: unknown;\n PencilEdit01Icon: unknown;\n PinIcon: unknown;\n PinOffIcon: unknown;\n PlayIcon: unknown;\n PlusSignCircleIcon: unknown;\n PlusSignIcon: unknown;\n Presentation01Icon: unknown;\n Rocket01Icon: unknown;\n Search01Icon: unknown;\n Scissor01Icon: unknown;\n Settings01Icon: unknown;\n Shield01Icon: unknown;\n StarIcon: unknown;\n Sun01Icon: unknown;\n Task01Icon: unknown;\n TextAlignLeftIcon: unknown;\n Tick02Icon: unknown;\n TickDouble01Icon: unknown;\n TypeCursorIcon: unknown;\n Upload01Icon: unknown;\n UserGroupIcon: unknown;\n UserIcon: unknown;\n ViewOffIcon: unknown;\n}\n\n/** Build the stable UI slot map from one HugeIcons style package. */\nexport function createIconMap(\n icons: IconDefinitions,\n options?: CreateHugeIconOptions\n): Record {\n return {\n \"chevron-left\": createHugeIcon(icons.ArrowLeft01Icon, options),\n \"chevron-right\": createHugeIcon(icons.ArrowRight01Icon, options),\n \"chevron-down\": createHugeIcon(icons.ArrowDown01Icon, options),\n \"chevron-up\": createHugeIcon(icons.ArrowUp01Icon, options),\n \"chevrons-left\": createHugeIcon(icons.ArrowLeftDoubleIcon, options),\n \"chevrons-right\": createHugeIcon(icons.ArrowRightDoubleIcon, options),\n \"chevrons-up-down\": createHugeIcon(icons.ArrowUpDownIcon, options),\n \"circle-plus\": createHugeIcon(icons.PlusSignCircleIcon, options),\n \"circle-x\": createHugeIcon(icons.CancelCircleIcon, options),\n \"eye-off\": createHugeIcon(icons.ViewOffIcon, options),\n ellipsis: createHugeIcon(icons.MoreHorizontalIcon, options),\n pipette: createHugeIcon(icons.DropperIcon, options),\n x: createHugeIcon(icons.Cancel01Icon, options),\n copy: createHugeIcon(icons.Copy01Icon, options),\n menu: createHugeIcon(icons.Menu01Icon, options),\n dot: createHugeIcon(icons.CircleIcon, options),\n monitor: createHugeIcon(icons.ComputerIcon, options),\n sun: createHugeIcon(icons.Sun01Icon, options),\n moon: createHugeIcon(icons.Moon02Icon, options),\n \"rectangle-horizontal\": createHugeIcon(icons.DashboardCircleIcon, options),\n circle: createHugeIcon(icons.CircleIcon, options),\n \"square-library\": createHugeIcon(icons.LibraryIcon, options),\n clock: createHugeIcon(icons.Clock01Icon, options),\n star: createHugeIcon(icons.StarIcon, options),\n settings: createHugeIcon(icons.Settings01Icon, options),\n plus: createHugeIcon(icons.PlusSignIcon, options),\n \"arrow-left\": createHugeIcon(icons.ArrowLeft01Icon, options),\n \"arrow-right\": createHugeIcon(icons.ArrowRight01Icon, options),\n \"arrow-up\": createHugeIcon(icons.ArrowUp01Icon, options),\n search: createHugeIcon(icons.Search01Icon, options),\n loader: createHugeIcon(icons.Loading01Icon, options),\n users: createHugeIcon(icons.UserGroupIcon, options),\n lock: createHugeIcon(icons.LockIcon, options),\n mail: createHugeIcon(icons.Mail01Icon, options),\n bell: createHugeIcon(icons.Notification01Icon, options),\n shield: createHugeIcon(icons.Shield01Icon, options),\n palette: createHugeIcon(icons.PaintBrush01Icon, options),\n lightbulb: createHugeIcon(icons.BulbIcon, options),\n rocket: createHugeIcon(icons.Rocket01Icon, options),\n heart: createHugeIcon(icons.FavouriteIcon, options),\n paintbrush: createHugeIcon(icons.PaintBrush02Icon, options),\n brain: createHugeIcon(icons.BrainIcon, options),\n globe: createHugeIcon(icons.GlobeIcon, options),\n user: createHugeIcon(icons.UserIcon, options),\n image: createHugeIcon(icons.Image01Icon, options),\n link: createHugeIcon(icons.Link01Icon, options),\n check: createHugeIcon(icons.Tick02Icon, options),\n \"rotate-ccw\": createHugeIcon(icons.ArrowReloadHorizontalIcon, options),\n play: createHugeIcon(icons.PlayIcon, options),\n pause: createHugeIcon(icons.PauseIcon, options),\n home: createHugeIcon(icons.Home01Icon, options),\n \"message-circle\": createHugeIcon(icons.BubbleChatIcon, options),\n inbox: createHugeIcon(icons.InboxIcon, options),\n pencil: createHugeIcon(icons.PencilEdit01Icon, options),\n \"skip-forward\": createHugeIcon(icons.NextIcon, options),\n \"corner-down-right\": createHugeIcon(icons.ArrowMoveDownRightIcon, options),\n calendar: createHugeIcon(icons.Calendar03Icon, options),\n \"check-square\": createHugeIcon(icons.TickDouble01Icon, options),\n trash: createHugeIcon(icons.Delete02Icon, options),\n eraser: createHugeIcon(icons.Eraser01Icon, options),\n scissors: createHugeIcon(icons.Scissor01Icon, options),\n upload: createHugeIcon(icons.Upload01Icon, options),\n pin: createHugeIcon(icons.PinIcon, options),\n \"pin-off\": createHugeIcon(icons.PinOffIcon, options),\n file: createHugeIcon(icons.File01Icon, options),\n \"file-archive\": createHugeIcon(icons.FileZipIcon, options),\n \"file-audio\": createHugeIcon(icons.FileAudioIcon, options),\n \"file-image\": createHugeIcon(icons.FileImageIcon, options),\n \"file-spreadsheet\": createHugeIcon(icons.FileSpreadsheetIcon, options),\n \"file-text\": createHugeIcon(icons.File02Icon, options),\n \"file-video\": createHugeIcon(icons.FileVideoIcon, options),\n hash: createHugeIcon(icons.HashtagIcon, options),\n \"list-checks\": createHugeIcon(icons.Task01Icon, options),\n list: createHugeIcon(icons.ListViewIcon, options),\n presentation: createHugeIcon(icons.Presentation01Icon, options),\n type: createHugeIcon(icons.TypeCursorIcon, options),\n baseline: createHugeIcon(icons.TextAlignLeftIcon, options),\n };\n}\n", "type": "registry:lib", "target": "lib/icon-catalog.ts" } ], "type": "registry:lib" }