import {
  IconStatusSuccess,
  IconStatusWarning,
  IconStatusError,
  IconStatusInfo,
  IconStatusSuccessOutline,
  IconStatusInfoOutline,
  IconStatusWarningOutline,
  IconStatusErrorOutline,
  IconStatusDisabled,
  IconStatusEdited,
  IconStatusErrorFilledTriangle,
  IconStatusErrorOutlineTriangle,
  IconStatusHelp,
  IconStatusHelpOutline,
  IconStatusMultiSelect,
  IconStatusNotification,
  IconStatusNotificationOutline,
  IconStatusTimeWarning,
  IconStatusUpdate,
  IconStatusUpdateOutline,
  IconStatusWait,
} from '../raw'
import type { IconDefinition } from '../types'

export {
  IconStatusSuccess,
  IconStatusWarning,
  IconStatusError,
  IconStatusInfo,
  IconStatusSuccessOutline,
  IconStatusInfoOutline,
  IconStatusWarningOutline,
  IconStatusErrorOutline,
  IconStatusDisabled,
  IconStatusEdited,
  IconStatusErrorFilledTriangle,
  IconStatusErrorOutlineTriangle,
  IconStatusHelp,
  IconStatusHelpOutline,
  IconStatusMultiSelect,
  IconStatusNotification,
  IconStatusNotificationOutline,
  IconStatusTimeWarning,
  IconStatusUpdate,
  IconStatusUpdateOutline,
  IconStatusWait,
}

export const statusIcons = {
  'status/success': IconStatusSuccess,
  'status/warning': IconStatusWarning,
  'status/error': IconStatusError,
  'status/info': IconStatusInfo,
  'status/success-outline': IconStatusSuccessOutline,
  'status/info-outline': IconStatusInfoOutline,
  'status/warning-outline': IconStatusWarningOutline,
  'status/error-outline': IconStatusErrorOutline,
  'status/disabled': IconStatusDisabled,
  'status/edited': IconStatusEdited,
  'status/error-filled-triangle': IconStatusErrorFilledTriangle,
  'status/error-outline-triangle': IconStatusErrorOutlineTriangle,
  'status/help': IconStatusHelp,
  'status/help-outline': IconStatusHelpOutline,
  'status/multi-select': IconStatusMultiSelect,
  'status/notification': IconStatusNotification,
  'status/notification-outline': IconStatusNotificationOutline,
  'status/time-warning': IconStatusTimeWarning,
  'status/update': IconStatusUpdate,
  'status/update-outline': IconStatusUpdateOutline,
  'status/wait': IconStatusWait,
} as const

export const statusIconManifest: IconDefinition[] = [
  {
    name: 'status/success',
    category: 'status',
    exportName: 'IconStatusSuccess',
    aliases: ['status-success'],
    tags: ['feedback', 'positive'],
  },
  {
    name: 'status/warning',
    category: 'status',
    exportName: 'IconStatusWarning',
    aliases: ['status-warning'],
    tags: ['feedback', 'caution'],
  },
  {
    name: 'status/error',
    category: 'status',
    exportName: 'IconStatusError',
    aliases: ['status-error'],
    tags: ['feedback', 'negative'],
  },
  {
    name: 'status/info',
    category: 'status',
    exportName: 'IconStatusInfo',
    aliases: ['status-info'],
    tags: ['feedback', 'neutral'],
  },
  {
    name: 'status/success-outline',
    category: 'status',
    exportName: 'IconStatusSuccessOutline',
    aliases: ['status-success-outline'],
    tags: ['feedback', 'positive', 'outlined'],
  },
  {
    name: 'status/info-outline',
    category: 'status',
    exportName: 'IconStatusInfoOutline',
    aliases: ['status-info-outline'],
    tags: ['feedback', 'neutral', 'outlined'],
  },
  {
    name: 'status/warning-outline',
    category: 'status',
    exportName: 'IconStatusWarningOutline',
    aliases: ['status-warning-outline'],
    tags: ['feedback', 'caution', 'outlined'],
  },
  {
    name: 'status/error-outline',
    category: 'status',
    exportName: 'IconStatusErrorOutline',
    aliases: ['status-error-outline'],
    tags: ['feedback', 'negative', 'outlined'],
  },
  {
    name: 'status/disabled',
    category: 'status',
    exportName: 'IconStatusDisabled',
    aliases: ['status-disabled'],
    tags: ["disabled","unavailable","prohibited"],
    figmaNodeId: '2107:240',
  },
  {
    name: 'status/edited',
    category: 'status',
    exportName: 'IconStatusEdited',
    aliases: ['status-edited'],
    tags: ["Edited","edited document","saved changes"],
    figmaNodeId: '1351:26648',
  },
  {
    name: 'status/error-filled-triangle',
    category: 'status',
    exportName: 'IconStatusErrorFilledTriangle',
    aliases: ['status-error-filled-triangle'],
    tags: ["error","alert","filled warning triangle"],
    figmaNodeId: '1168:23924',
  },
  {
    name: 'status/error-outline-triangle',
    category: 'status',
    exportName: 'IconStatusErrorOutlineTriangle',
    aliases: ['status-error-outline-triangle'],
    tags: ["error","alert","warning triangle"],
    figmaNodeId: '1168:23871',
  },
  {
    name: 'status/help',
    category: 'status',
    exportName: 'IconStatusHelp',
    aliases: ['status-help'],
    tags: ["help","question","support"],
    figmaNodeId: '1283:40376',
  },
  {
    name: 'status/help-outline',
    category: 'status',
    exportName: 'IconStatusHelpOutline',
    aliases: ['status-help-outline'],
    tags: ["help","question","support"],
    figmaNodeId: '1283:40375',
  },
  {
    name: 'status/multi-select',
    category: 'status',
    exportName: 'IconStatusMultiSelect',
    aliases: ['status-multi-select'],
    tags: ["Multi select","multiple selection","checked boxes"],
    figmaNodeId: '1131:23285',
  },
  {
    name: 'status/notification',
    category: 'status',
    exportName: 'IconStatusNotification',
    aliases: ['status-notification'],
    tags: ["notification","bell","alert"],
    figmaNodeId: '1169:24090',
  },
  {
    name: 'status/notification-outline',
    category: 'status',
    exportName: 'IconStatusNotificationOutline',
    aliases: ['status-notification-outline'],
    tags: ["notification","bell","alert"],
    figmaNodeId: '1169:24021',
  },
  {
    name: 'status/time-warning',
    category: 'status',
    exportName: 'IconStatusTimeWarning',
    aliases: ['status-time-warning'],
    tags: ["warning","time warning","schedule warning"],
    figmaNodeId: '1170:24589',
  },
  {
    name: 'status/update',
    category: 'status',
    exportName: 'IconStatusUpdate',
    aliases: ['status-update'],
    tags: ["update","upload","upgrade"],
    figmaNodeId: '3608:38574',
  },
  {
    name: 'status/update-outline',
    category: 'status',
    exportName: 'IconStatusUpdateOutline',
    aliases: ['status-update-outline'],
    tags: ["update","upload","upgrade"],
    figmaNodeId: '3608:38586',
  },
  {
    name: 'status/wait',
    category: 'status',
    exportName: 'IconStatusWait',
    aliases: ['status-wait'],
    tags: ["wait","waiting","pending"],
    figmaNodeId: '1202:4239',
  },
]
