import 'package:flutter/material.dart';
import 'package:material_design_icons_flutter/material_design_icons_flutter.dart';

class AIcons {
  static const allCollection = Icons.collections_outlined;
  static const image = Icons.photo_outlined;
  static const video = Icons.movie_outlined;
  static const vector = Icons.code_outlined;

  static const accessibility = Icons.accessibility_new_outlined;
  static const android = Icons.android;
  static const app = Icons.apps_outlined;
  static const apply = Icons.done_outlined;
  static const aspectRatio = Icons.aspect_ratio_outlined;
  static const bin = Icons.delete_outlined;
  static const broken = Icons.broken_image_outlined;
  static const brightnessMin = Icons.brightness_low_outlined;
  static const brightnessMax = Icons.brightness_high_outlined;
  static const checked = Icons.done_outlined;
  static final count = MdiIcons.counter;
  static const counter = Icons.plus_one_outlined;
  static const date = Icons.calendar_today_outlined;
  static const dateByDay = Icons.today_outlined;
  static const dateByMonth = Icons.calendar_month_outlined;
  static const dateRecent = Icons.today_outlined;
  static const dateUndated = Icons.event_busy_outlined;
  static const description = Icons.description_outlined;
  static const descriptionUntitled = Icons.comments_disabled_outlined;
  static const disc = Icons.fiber_manual_record;
  static const display = Icons.light_mode_outlined;
  static const error = Icons.error_outline;
  static const explorer = Icons.account_tree_outlined;
  static const folder = Icons.folder_outlined;
  static const geoBounds = Icons.public_outlined;
  static final github = MdiIcons.github;
  static const home = Icons.home_outlined;

  // as of Flutter v3.16.3,
  // `label_important_outlined` matches text direction but is filled
  // `label_important_outline` is outlined but does not match text direction
  static const important = IconData(labelImportantOutlineCodePoint, fontFamily: materialIconsFontFamily, matchTextDirection: true);

  static const language = Icons.translate_outlined;
  static final legal = MdiIcons.scaleBalance;
  static const location = Icons.place_outlined;
  static const locationUnlocated = Icons.location_off_outlined;
  static const country = Icons.flag_outlined;
  static const state = Icons.flag_outlined;
  static const place = Icons.place_outlined;
  static const mimeType = Icons.code_outlined;
  static const name = Icons.abc_outlined;
  static const newTier = Icons.fiber_new_outlined;
  static const opacity = Icons.opacity;
  static const palette = Icons.palette_outlined;
  static final privacy = MdiIcons.shieldAccountOutline;
  static const rating = Icons.star_border_outlined;
  static const ratingFull = Icons.star;
  static final ratingRejected = MdiIcons.starMinusOutline;
  static final ratingUnrated = MdiIcons.starOffOutline;
  static const raw = Icons.raw_on_outlined;
  static const sensorControlEnabled = Icons.explore_outlined;
  static const sensorControlDisabled = Icons.explore_off_outlined;
  static const settings = Icons.settings_outlined;
  static const shooting = Icons.camera_outlined;
  static const size = Icons.data_usage_outlined;
  static const storageCard = Icons.sd_storage_outlined;
  static const storageMain = Icons.smartphone_outlined;
  static const streamVideo = Icons.movie_outlined;
  static const streamAudio = Icons.audiotrack_outlined;
  static const streamText = Icons.closed_caption_outlined;
  static const tag = Icons.local_offer_outlined;
  static final tagUntagged = MdiIcons.tagOffOutline;
  static const text = Icons.format_quote_outlined;
  static const thumbnails = Icons.grid_on_outlined;
  static const volumeMin = Icons.volume_mute_outlined;
  static const volumeMax = Icons.volume_up_outlined;

  // view
  static const group = Icons.group_work_outlined;
  static const layout = Icons.grid_view_outlined;
  static const layoutMosaic = Icons.view_comfy_outlined;
  static const layoutGrid = Icons.view_compact_outlined;
  static const layoutList = Icons.list_outlined;
  static const sort = Icons.sort_outlined;
  static const sortOrder = Icons.swap_vert_outlined;
  static const thumbnailLarge = Icons.photo_size_select_large_outlined;
  static const thumbnailSmall = Icons.photo_size_select_small_outlined;

  // actions
  static const add = Icons.add_circle_outline;
  static const addShortcut = Icons.add_to_home_screen_outlined;
  static const cancel = Icons.cancel_outlined;
  static const captureFrame = Icons.screenshot_outlined;
  static const cast = Icons.cast_outlined;
  static const clear = Icons.clear_outlined;
  static const clipboard = Icons.content_copy_outlined;
  static const convert = Icons.transform_outlined;
  static final convertToStillImage = MdiIcons.movieRemoveOutline;
  static const copy = Icons.file_copy_outlined;
  static const debug = Icons.whatshot_outlined;
  static const delete = Icons.delete_outlined;
  static const edit = Icons.edit_outlined;
  static const emptyBin = Icons.delete_sweep_outlined;
  static const export = Icons.open_with_outlined;
  static final fileExport = MdiIcons.fileExportOutline;
  static final fileImport = MdiIcons.fileImportOutline;
  static const flip = Icons.flip_outlined;
  static const favourite = Icons.favorite_border;
  static const favouriteActive = Icons.favorite;
  static final filter = MdiIcons.filterOutline;
  static final filterOff = MdiIcons.filterOffOutline;
  static const goUp = Icons.arrow_upward_outlined;
  static const hide = Icons.visibility_off_outlined;
  static const info = Icons.info_outlined;
  static const layers = Icons.layers_outlined;
  static const map = Icons.map_outlined;
  static const more = Icons.more_horiz_outlined;
  static final move = MdiIcons.fileMoveOutline;
  static const mute = Icons.volume_off_outlined;
  static const unmute = Icons.volume_up_outlined;
  static const rename = Icons.abc_outlined;
  static const openOutside = Icons.open_in_new_outlined;
  static final openVideo = MdiIcons.moviePlayOutline;
  static const pin = Icons.push_pin_outlined;
  static final unpin = MdiIcons.pinOffOutline;
  static const play = Icons.play_arrow;
  static const pause = Icons.pause;
  static const print = Icons.print_outlined;
  static const refresh = Icons.refresh_outlined;
  static const repeat = Icons.repeat_outlined;
  static final repeatOff = MdiIcons.repeatOff;
  static const replay10 = Icons.replay_10_outlined;
  static final resetBounds = MdiIcons.rayStartEnd;
  static const reverse = Icons.invert_colors_outlined;
  static const skip10 = Icons.forward_10_outlined;
  static const reset = Icons.restart_alt_outlined;
  static const restore = Icons.restore_outlined;
  static const rotateLeft = Icons.rotate_left_outlined;
  static const rotateRight = Icons.rotate_right_outlined;
  static const rotateScreen = Icons.screen_rotation_outlined;
  static const search = Icons.search_outlined;
  static const select = Icons.select_all_outlined;
  static const selectStreams = Icons.translate_outlined;
  static const setAs = Icons.wallpaper_outlined;
  static final setBoundEnd = MdiIcons.rayEnd;
  static final setBoundStart = MdiIcons.rayStart;
  static final setCover = MdiIcons.imageEditOutline;
  static const share = Icons.share_outlined;
  static const show = Icons.visibility_outlined;
  static final showFullscreen = MdiIcons.arrowExpand;
  static const slideshow = Icons.slideshow_outlined;
  static const speed = Icons.speed_outlined;
  static const stats = Icons.donut_small_outlined;
  static const vaultLock = Icons.lock_outline;
  static const vaultAdd = Icons.enhanced_encryption_outlined;
  static final vaultConfigure = MdiIcons.shieldLockOutline;
  static const videoSettings = Icons.video_settings_outlined;
  static const view = Icons.grid_view_outlined;
  static const viewerLock = Icons.lock_outline;
  static const viewerUnlock = Icons.lock_open_outlined;
  static const zoomIn = Icons.add_outlined;
  static const zoomOut = Icons.remove_outlined;
  static const collapse = Icons.expand_less_outlined;
  static const expand = Icons.expand_more_outlined;
  static const up = Icons.keyboard_arrow_up_outlined;
  static const down = Icons.keyboard_arrow_down_outlined;
  static const previous = Icons.chevron_left_outlined;
  static const next = Icons.chevron_right_outlined;

  // editor
  static const transform = Icons.crop_rotate_outlined;
  static const aspectRatioFree = Icons.crop_free_outlined;
  static const aspectRatioOriginal = Icons.crop_original_outlined;
  static const aspectRatioSquare = Icons.crop_square_outlined;
  static const aspectRatio_16_9 = Icons.crop_16_9_outlined;
  static const aspectRatio_4_3 = Icons.crop_landscape_outlined;

  // albums
  static const album = Icons.photo_album_outlined;
  static const cameraAlbum = Icons.photo_camera_outlined;
  static const downloadAlbum = Icons.file_download;
  static const screenshotAlbum = Icons.screenshot_outlined;
  static const recordingAlbum = Icons.smartphone_outlined;
  static const locked = Icons.lock_outline;
  static const unlocked = Icons.lock_open_outlined;

  // thumbnail overlay
  static const animated = Icons.slideshow;
  static const geo = Icons.language_outlined;
  static const hdr = Icons.hdr_on_outlined;
  static const motionPhoto = Icons.motion_photos_on_outlined;
  static const multiPage = Icons.burst_mode_outlined;
  static const panorama = Icons.vrpano_outlined;
  static const sphericalVideo = Icons.threesixty_outlined;
  static const videoThumb = Icons.play_circle_outline;
  static const selected = Icons.check_circle_outline;
  static const unselected = Icons.radio_button_unchecked;

  // Material Icons references to make constant instances of `IconData`
  // as non-constant instances of `IconData` prevent icon font tree shaking
  static const labelImportantOutlineCodePoint = 0xe362;
  static const materialIconsFontFamily = 'MaterialIcons';
}
