// Shared legacy-Feather-name -> Vuesax Linear icon id map. // // Originally Feather names mapped to @ant-design/icons-vue components. // Now they resolve to the same `vuesax-linear:*` pack used by the user-app // Icon component, so sidebar (navMenuItems.ts) and TooltipBtn share one // string map instead of Ant components. export const ICONS: Record = { // row-action icons (TooltipBtn.vue's original set) ListIcon: 'vuesax-linear:row-vertical', FileIcon: 'vuesax-linear:document', TrashIcon: 'vuesax-linear:trash', EditIcon: 'vuesax-linear:edit-2', CheckIcon: 'vuesax-linear:tick-circle', CameraIcon: 'vuesax-linear:camera', EyeIcon: 'vuesax-linear:eye', PlusIcon: 'vuesax-linear:add', XIcon: 'vuesax-linear:close-circle', FileTextIcon: 'vuesax-linear:document-text', // sidebar icons (navMenuItems.ts) HomeIcon: 'vuesax-linear:home-2', PackageIcon: 'vuesax-linear:box', UserIcon: 'vuesax-linear:user', UsersIcon: 'vuesax-linear:people', UserPlusIcon: 'vuesax-linear:user-add', ShoppingBagIcon: 'vuesax-linear:bag-2', BoxIcon: 'vuesax-linear:box-1', GridIcon: 'vuesax-linear:category-2', LayersIcon: 'vuesax-linear:layer', CreditCardIcon: 'vuesax-linear:card', DollarSignIcon: 'vuesax-linear:dollar-circle', PercentIcon: 'vuesax-linear:percentage-square', GiftIcon: 'vuesax-linear:gift', SlashIcon: 'vuesax-linear:slash', BookIcon: 'vuesax-linear:book', MessageSquareIcon: 'vuesax-linear:message-text', MailIcon: 'vuesax-linear:sms', BellIcon: 'vuesax-linear:notification', BarChartIcon: 'vuesax-linear:chart', SettingsIcon: 'vuesax-linear:setting-2', InboxIcon: 'vuesax-linear:box', }; /** Direct Ant Design icon component name → Vuesax id (for view migrations). */ export const ANT_TO_VUESAX: Record = { EditOutlined: 'vuesax-linear:edit-2', DeleteOutlined: 'vuesax-linear:trash', EyeOutlined: 'vuesax-linear:eye', PlusOutlined: 'vuesax-linear:add', CloseOutlined: 'vuesax-linear:close-circle', CheckOutlined: 'vuesax-linear:tick-circle', SearchOutlined: 'vuesax-linear:search-normal-1', SettingOutlined: 'vuesax-linear:setting-2', UserOutlined: 'vuesax-linear:user', TeamOutlined: 'vuesax-linear:people', UserAddOutlined: 'vuesax-linear:user-add', HomeOutlined: 'vuesax-linear:home-2', InboxOutlined: 'vuesax-linear:box', AppstoreOutlined: 'vuesax-linear:category-2', ShoppingOutlined: 'vuesax-linear:bag-2', CreditCardOutlined: 'vuesax-linear:card', DollarOutlined: 'vuesax-linear:dollar-circle', PercentageOutlined: 'vuesax-linear:percentage-square', GiftOutlined: 'vuesax-linear:gift', StopOutlined: 'vuesax-linear:slash', BookOutlined: 'vuesax-linear:book', MessageOutlined: 'vuesax-linear:message-text', MailOutlined: 'vuesax-linear:sms', BellOutlined: 'vuesax-linear:notification', BarChartOutlined: 'vuesax-linear:chart', FileOutlined: 'vuesax-linear:document', FileTextOutlined: 'vuesax-linear:document-text', UnorderedListOutlined: 'vuesax-linear:row-vertical', CameraOutlined: 'vuesax-linear:camera', BlockOutlined: 'vuesax-linear:layer', CloudUploadOutlined: 'vuesax-linear:document-upload', UploadOutlined: 'vuesax-linear:document-upload', LoadingOutlined: 'vuesax-linear:refresh-2', MenuFoldOutlined: 'vuesax-linear:menu', MenuUnfoldOutlined: 'vuesax-linear:menu', LogoutOutlined: 'vuesax-linear:logout', SafetyCertificateOutlined: 'vuesax-linear:security-safe', LockOutlined: 'vuesax-linear:lock', MobileOutlined: 'vuesax-linear:mobile', ExclamationCircleOutlined: 'vuesax-linear:info-circle', InfoCircleOutlined: 'vuesax-linear:info-circle', WarningOutlined: 'vuesax-linear:warning-2', ArrowLeftOutlined: 'vuesax-linear:arrow-left', ArrowRightOutlined: 'vuesax-linear:arrow-right', FilterOutlined: 'vuesax-linear:filter', DownloadOutlined: 'vuesax-linear:document-download', ExportOutlined: 'vuesax-linear:export', ImportOutlined: 'vuesax-linear:import', SyncOutlined: 'vuesax-linear:refresh-2', ReloadOutlined: 'vuesax-linear:refresh-2', EnvironmentOutlined: 'vuesax-linear:location', PhoneOutlined: 'vuesax-linear:call', CalendarOutlined: 'vuesax-linear:calendar', ClockCircleOutlined: 'vuesax-linear:clock', CopyOutlined: 'vuesax-linear:copy', SaveOutlined: 'vuesax-linear:save-2', PrinterOutlined: 'vuesax-linear:printer', LinkOutlined: 'vuesax-linear:link', MoreOutlined: 'vuesax-linear:more', EllipsisOutlined: 'vuesax-linear:more', DownOutlined: 'vuesax-linear:arrow-down', UpOutlined: 'vuesax-linear:arrow-up', LeftOutlined: 'vuesax-linear:arrow-left', RightOutlined: 'vuesax-linear:arrow-right', CaretDownOutlined: 'vuesax-linear:arrow-down', CaretUpOutlined: 'vuesax-linear:arrow-up', MinusOutlined: 'vuesax-linear:minus', MinusCircleOutlined: 'vuesax-linear:minus-cirlce', PlusCircleOutlined: 'vuesax-linear:add-circle', CheckCircleOutlined: 'vuesax-linear:tick-circle', CloseCircleOutlined: 'vuesax-linear:close-circle', QuestionCircleOutlined: 'vuesax-linear:message-question', StarOutlined: 'vuesax-linear:star', HeartOutlined: 'vuesax-linear:heart', PictureOutlined: 'vuesax-linear:gallery', PaperClipOutlined: 'vuesax-linear:paperclip-2', SendOutlined: 'vuesax-linear:send-2', WalletOutlined: 'vuesax-linear:wallet-2', ShopOutlined: 'vuesax-linear:shop', BankOutlined: 'vuesax-linear:bank', TagOutlined: 'vuesax-linear:tag', TagsOutlined: 'vuesax-linear:tag-2', DashboardOutlined: 'vuesax-linear:element-3', ProfileOutlined: 'vuesax-linear:profile', IdcardOutlined: 'vuesax-linear:personalcard', SolutionOutlined: 'vuesax-linear:briefcase', AuditOutlined: 'vuesax-linear:clipboard-text', FormOutlined: 'vuesax-linear:edit', TableOutlined: 'vuesax-linear:grid-6', DatabaseOutlined: 'vuesax-linear:data', ApiOutlined: 'vuesax-linear:code', ToolOutlined: 'vuesax-linear:setting', ClearOutlined: 'vuesax-linear:broom', RetweetOutlined: 'vuesax-linear:arrange-square-2', SwapOutlined: 'vuesax-linear:arrow-swap-horizontal', HistoryOutlined: 'vuesax-linear:clock', FieldTimeOutlined: 'vuesax-linear:timer', RiseOutlined: 'vuesax-linear:chart-2', FallOutlined: 'vuesax-linear:chart-1', PoweroffOutlined: 'vuesax-linear:logout', LoginOutlined: 'vuesax-linear:login', KeyOutlined: 'vuesax-linear:key', UnlockOutlined: 'vuesax-linear:unlock', }; export function resolveIcon(name: string | undefined): string | undefined { if (!name) return undefined; return ICONS[name]; } export function resolveAntIcon(name: string | undefined): string | undefined { if (!name) return undefined; return ANT_TO_VUESAX[name] ?? ICONS[name]; }