Drop @ant-design/icons-vue and wire list pages, nav, and forms through the shared icons map. Co-authored-by: Cursor <cursoragent@cursor.com>
160 lines
6.5 KiB
TypeScript
160 lines
6.5 KiB
TypeScript
// 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<string, string> = {
|
|
// 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<string, string> = {
|
|
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];
|
|
}
|