// Copyright 2025 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only

// WARNING: This file is automatically generated, do not edit directly

// Can be used in <AxoSymbol.Icon>
export type AxoSymbolIconName =
  | 'signal-logo'
  | 'album'
  | 'appearance'
  | 'appearance-fill'
  | 'archive'
  | 'archive-fill'
  | 'archive-down'
  | 'archive-down-fill'
  | 'archive-up'
  | 'archive-up-fill'
  | 'archive-alt-down'
  | 'archive-alt-down-fill'
  | 'archive-alt-up'
  | 'archive-alt-up-fill'
  | 'arrow-[start]'
  | 'arrow-[end]'
  | 'arrow-up'
  | 'arrow-down'
  | 'arrow-up[start]'
  | 'arrow-up[end]'
  | 'arrow-down[start]'
  | 'arrow-down[end]'
  | 'arrow-circle-[start]'
  | 'arrow-circle-[end]'
  | 'arrow-circle-up'
  | 'arrow-circle-down'
  | 'arrow-circle-up[start]'
  | 'arrow-circle-up[end]'
  | 'arrow-circle-down[start]'
  | 'arrow-circle-down[end]'
  | 'arrow-circle-[start]-fill'
  | 'arrow-circle-[end]-fill'
  | 'arrow-circle-up-fill'
  | 'arrow-circle-down-fill'
  | 'arrow-circle-up[start]-fill'
  | 'arrow-circle-up[end]-fill'
  | 'arrow-circle-down[start]-fill'
  | 'arrow-circle-down[end]-fill'
  | 'arrow-square-[start]'
  | 'arrow-square-[end]'
  | 'arrow-square-up'
  | 'arrow-square-down'
  | 'arrow-square-up[start]'
  | 'arrow-square-up[end]'
  | 'arrow-square-down[start]'
  | 'arrow-square-down[end]'
  | 'arrow-square-[start]-fill'
  | 'arrow-square-[end]-fill'
  | 'arrow-square-up-fill'
  | 'arrow-square-down-fill'
  | 'arrow-square-up[start]-fill'
  | 'arrow-square-up[end]-fill'
  | 'arrow-square-down[start]-fill'
  | 'arrow-square-down[end]-fill'
  | 'arrow-rectangle-up'
  | 'arrow-rectangle-up-fill'
  | 'arrow-circle-dash-down'
  | 'aspectratio'
  | 'aspectratio-fill'
  | 'at'
  | 'attach'
  | 'audio'
  | 'audio-rectangle'
  | 'audio-rectangle-fill'
  | 'backspace'
  | 'backspace-rtl'
  | 'backspace-fill'
  | 'backspace-fill-rtl'
  | 'backup'
  | 'backup-error'
  | 'badge'
  | 'badge-fill'
  | 'badge-set'
  | 'badge-set-fill'
  | 'bell'
  | 'bell-fill'
  | 'bell-slash'
  | 'bell-slash-fill'
  | 'bell-ring'
  | 'bell-ring-fill'
  | 'bell-sleep'
  | 'bell-sleep-fill'
  | 'block'
  | 'blur'
  | 'blur-light'
  | 'blur-medium'
  | 'blur-heavy'
  | 'bolt'
  | 'bolt-fill'
  | 'boost'
  | 'boost-fill'
  | 'brushsize-thin'
  | 'brushsize-regular'
  | 'brushsize-medium'
  | 'brushsize-heavy'
  | 'calendar'
  | 'calendar-week'
  | 'calendar-day'
  | 'calendar-blank'
  | 'calendar-search'
  | 'camera'
  | 'camera-fill'
  | 'camera-swap'
  | 'camera-swap-fill'
  | 'check'
  | 'check-circle'
  | 'check-circle-fill'
  | 'check-square'
  | 'check-square-fill'
  | 'chevron-[start]'
  | 'chevron-[end]'
  | 'chevron-up'
  | 'chevron-down'
  | 'chevron-circle-[start]'
  | 'chevron-circle-[end]'
  | 'chevron-circle-up'
  | 'chevron-circle-down'
  | 'chevron-circle-[start]-fill'
  | 'chevron-circle-[end]-fill'
  | 'chevron-circle-up-fill'
  | 'chevron-circle-down-fill'
  | 'chevron-square-[start]'
  | 'chevron-square-[end]'
  | 'chevron-square-up'
  | 'chevron-square-down'
  | 'chevron-square-[start]-fill'
  | 'chevron-square-[end]-fill'
  | 'chevron-square-up-fill'
  | 'chevron-square-down-fill'
  | 'chevron-shallow-[start]'
  | 'chevron-shallow-[end]'
  | 'chevron-shallow-up'
  | 'chevron-shallow-down'
  | 'chevron-double-left-right'
  | 'chevron-double-up-down'
  | 'circle'
  | 'circle-fill'
  | 'circle-dash'
  | 'clock'
  | 'clock-hour-1'
  | 'clock-hour-2'
  | 'clock-hour-3'
  | 'clock-hour-4'
  | 'clock-hour-5'
  | 'clock-hour-6'
  | 'clock-hour-7'
  | 'clock-hour-8'
  | 'clock-hour-9'
  | 'clock-hour-10'
  | 'clock-hour-11'
  | 'clock-hour-12'
  | 'compose'
  | 'connections'
  | 'connections-fill'
  | 'contrast'
  | 'copy'
  | 'copy-alt'
  | 'creditcard'
  | 'creditcard-fill'
  | 'crop'
  | 'crop-rotate'
  | 'device-phone'
  | 'device-phone-fill'
  | 'device-tablet'
  | 'device-tablet-fill'
  | 'device-laptop'
  | 'device-laptop-fill'
  | 'download'
  | 'draghandle'
  | 'draghandle-alt'
  | 'emoji'
  | 'emoji-fill'
  | 'emoji-plus'
  | 'emoji-excited'
  | 'emoji-sad'
  | 'emoji-angry'
  | 'emoji-surprised'
  | 'emoji-animal'
  | 'emoji-celebrate'
  | 'emoji-food'
  | 'emoji-activity'
  | 'emoji-travel'
  | 'emoji-object'
  | 'emoji-symbol'
  | 'emoji-flag'
  | 'emoticon'
  | 'error'
  | 'error-fill'
  | 'error-triangle'
  | 'error-triangle-fill'
  | 'error-octagon'
  | 'error-octagon-fill'
  | 'file'
  | 'file-fill'
  | 'file-slash'
  | 'file-slash-fill'
  | 'filter'
  | 'filter-circle'
  | 'filter-circle-fill'
  | 'flash'
  | 'flash-fill'
  | 'flash-slash'
  | 'flash-slash-fill'
  | 'flash-auto'
  | 'flash-auto-fill'
  | 'flip'
  | 'folder'
  | 'folder-plus'
  | 'folder-minus'
  | 'folder-settings'
  | 'forward'
  | 'forward-fill'
  | 'fullscreen'
  | 'gif'
  | 'gif-rectangle'
  | 'gif-rectangle-fill'
  | 'gift'
  | 'gift-fill'
  | 'globe'
  | 'globe-fill'
  | 'grid'
  | 'grid-fill'
  | 'grid-rectangle'
  | 'grid-rectangle-fill'
  | 'grid-sidebar'
  | 'grid-sidebar-fill'
  | 'group'
  | 'group-fill'
  | 'hd'
  | 'hd-slash'
  | 'headphones'
  | 'headphones-fill'
  | 'heart'
  | 'heart-fill'
  | 'heart-plus'
  | 'heart-plus-fill'
  | 'help'
  | 'help-fill'
  | 'info'
  | 'info-fill'
  | 'invite'
  | 'key'
  | 'key-fill'
  | 'key-slash'
  | 'key-slash-fill'
  | 'keyboard'
  | 'label'
  | 'label-fill'
  | 'leave'
  | 'leave-rtl'
  | 'link'
  | 'link-alt'
  | 'link-broken'
  | 'link-slash'
  | 'list-bullet'
  | 'list-bullet-rtl'
  | 'list-circle'
  | 'list-circle-rtl'
  | 'location'
  | 'location-fill'
  | 'location-circle'
  | 'location-circle-fill'
  | 'lock'
  | 'lock-fill'
  | 'lock-open'
  | 'lock-open-fill'
  | 'megaphone'
  | 'menu'
  | 'merge'
  | 'message'
  | 'message-fill'
  | 'message-badge'
  | 'message-badge-fill'
  | 'message-arrow'
  | 'message-arrow-fill'
  | 'message-check'
  | 'message-check-fill'
  | 'message-more'
  | 'message-more-fill'
  | 'message-x'
  | 'message-x-fill'
  | 'message-thread'
  | 'message-thread-fill'
  | 'mic'
  | 'mic-fill'
  | 'mic-slash'
  | 'mic-slash-fill'
  | 'minus'
  | 'minus-circle'
  | 'minus-circle-fill'
  | 'minus-square'
  | 'minus-square-fill'
  | 'missed-incoming'
  | 'missed-outgoing'
  | 'moon'
  | 'moon-fill'
  | 'moon-slash'
  | 'moon-slash-fill'
  | 'more'
  | 'more-circle'
  | 'more-circle-fill'
  | 'note'
  | 'note-rtl'
  | 'nothing'
  | 'number'
  | 'number-square'
  | 'number-square-fill'
  | 'numberpad'
  | 'officialbadge'
  | 'officialbadge-fill'
  | 'open'
  | 'palette'
  | 'palette-fill'
  | 'pause'
  | 'pause-fill'
  | 'pause-circle'
  | 'pause-circle-fill'
  | 'pause-square'
  | 'pause-square-fill'
  | 'pencil'
  | 'pencil-fill'
  | 'person'
  | 'person-fill'
  | 'person-circle'
  | 'person-circle-fill'
  | 'person-square'
  | 'person-square-fill'
  | 'person-rectangle'
  | 'person-rectangle-fill'
  | 'phone'
  | 'phone-fill'
  | 'phone-down'
  | 'phone-down-fill'
  | 'phone-plus'
  | 'phone-plus-fill'
  | 'phone-speaker'
  | 'phone-speaker-fill'
  | 'photo'
  | 'photo-slash'
  | 'piechart'
  | 'piechart-fill'
  | 'pin'
  | 'pin-fill'
  | 'pin-slash'
  | 'pin-slash-fill'
  | 'pip'
  | 'pip-fill'
  | 'play'
  | 'play-fill'
  | 'play-circle'
  | 'play-circle-fill'
  | 'play-square'
  | 'play-square-fill'
  | 'plus'
  | 'plus-circle'
  | 'plus-circle-fill'
  | 'plus-square'
  | 'plus-square-fill'
  | 'poll'
  | 'poll-rtl'
  | 'poll-fill'
  | 'poll-fill-rtl'
  | 'press'
  | 'press-fill'
  | 'qrcode'
  | 'raisehand'
  | 'raisehand-fill'
  | 'receipt'
  | 'receipt-rtl'
  | 'recent'
  | 'rectangle'
  | 'rectangle-fill'
  | 'rectangle-dash'
  | 'redo'
  | 'refresh'
  | 'reply'
  | 'reply-fill'
  | 'rotate'
  | 'scan'
  | 'scan-qrcode'
  | 'scribble'
  | 'search'
  | 'send'
  | 'send-fill'
  | 'settings'
  | 'settings-fill'
  | 'settings-alt'
  | 'share'
  | 'share-alt'
  | 'shield-check'
  | 'shield-check-fill'
  | 'sidebar'
  | 'sidebar-fill'
  | 'sort-vertical'
  | 'sort-horizontal'
  | 'speaker'
  | 'speaker-fill'
  | 'speaker-x'
  | 'speaker-x-fill'
  | 'speaker-bluetooth'
  | 'speaker-bluetooth-fill'
  | 'speaker-slash'
  | 'speaker-slash-fill'
  | 'square'
  | 'square-fill'
  | 'square-dash'
  | 'star'
  | 'star-fill'
  | 'star-slash'
  | 'star-slash-fill'
  | 'sticker'
  | 'sticker-smiley'
  | 'sticker-slash'
  | 'stickerpack'
  | 'stickerpack-plus'
  | 'stop'
  | 'stop-fill'
  | 'stop-circle'
  | 'stop-circle-fill'
  | 'stop-square'
  | 'stop-square-fill'
  | 'stories'
  | 'stories-fill'
  | 'sun'
  | 'sun-fill'
  | 'sun-horizon'
  | 'sun-horizon-fill'
  | 'swap'
  | 'text-square'
  | 'text-square-fill'
  | 'text-outline'
  | 'textalign-[start]'
  | 'textalign-center'
  | 'textalign-[end]'
  | 'textalign-justifed'
  | 'texteffects'
  | 'texteffects-fill'
  | 'textformat-bold'
  | 'textformat-italic'
  | 'textformat-strikethrough'
  | 'textformat-monospace'
  | 'textformat-spoiler'
  | 'thumbsdown'
  | 'thumbsdown-fill'
  | 'thumbsup'
  | 'thumbsup-fill'
  | 'ticks'
  | 'timer'
  | 'timer-fill'
  | 'timer-slash'
  | 'timer-slash-fill'
  | 'timer-countdown-0'
  | 'timer-countdown-1'
  | 'timer-countdown-2'
  | 'timer-countdown-3'
  | 'timer-countdown-4'
  | 'timer-countdown-5'
  | 'timer-countdown-6'
  | 'timer-countdown-7'
  | 'timer-countdown-8'
  | 'timer-countdown-9'
  | 'timer-countdown-10'
  | 'timer-countdown-11'
  | 'timer-countdown-12'
  | 'trash'
  | 'trash-fill'
  | 'trending'
  | 'tune'
  | 'undo'
  | 'upload'
  | 'video'
  | 'video-fill'
  | 'video-slash'
  | 'video-slash-fill'
  | 'videocamera'
  | 'videocamera-fill'
  | 'videocamera-slash'
  | 'videocamera-slash-fill'
  | 'viewonce'
  | 'viewonce-dash'
  | 'viewonce-slash'
  | 'visible'
  | 'visible-slash'
  | 'wifi'
  | 'wifi-error'
  | 'x'
  | 'x-circle'
  | 'x-circle-fill'
  | 'x-circle-dash'
  | 'x-square'
  | 'x-square-fill'
  | 'zoom-in'
  | 'zoom-out';

// Symbols that can only be used in <AxoSymbol.InlineGlyph>
type AxoSymbolInlineGlyphOnlyName =
  | 'check-circle-double'
  | 'check-circle-double-fill'
  | 'group-x'
  | 'group-x-fill'
  | 'person-check'
  | 'person-check-fill'
  | 'person-plus'
  | 'person-plus-fill'
  | 'person-minus'
  | 'person-minus-fill'
  | 'person-x'
  | 'person-x-fill'
  | 'person-question'
  | 'person-question-fill';

// Symbols with an inline-specific glyph that override the icon glyph
type AxoSymbolInlineGlyphOverrideName =
  | 'album'
  | 'arrow-rectangle-up'
  | 'arrow-rectangle-up-fill'
  | 'aspectratio'
  | 'aspectratio-fill'
  | 'audio-rectangle'
  | 'audio-rectangle-fill'
  | 'creditcard'
  | 'creditcard-fill'
  | 'emoji-plus'
  | 'gif-rectangle'
  | 'gif-rectangle-fill'
  | 'grid-rectangle'
  | 'grid-rectangle-fill'
  | 'grid-sidebar'
  | 'grid-sidebar-fill'
  | 'group'
  | 'group-fill'
  | 'invite'
  | 'keyboard'
  | 'leave'
  | 'leave-rtl'
  | 'person-rectangle'
  | 'person-rectangle-fill'
  | 'photo'
  | 'photo-slash'
  | 'rectangle'
  | 'rectangle-fill'
  | 'rectangle-dash'
  | 'sidebar'
  | 'sidebar-fill'
  | 'video'
  | 'video-fill'
  | 'video-slash'
  | 'video-slash-fill'
  | 'videocamera'
  | 'videocamera-fill'
  | 'videocamera-slash'
  | 'videocamera-slash-fill';

// Symbols that can be used in <AxoSymbol.InlineGlyph>
export type AxoSymbolInlineGlyphName =
  | AxoSymbolIconName
  | AxoSymbolInlineGlyphOnlyName;

type SymbolDef = string | { ltr: string; rtl: string };
type IconDefsName = AxoSymbolIconName;
type InlineDefsName =
  | AxoSymbolInlineGlyphOnlyName
  | AxoSymbolInlineGlyphOverrideName;

const IconDefs: Record<string, SymbolDef> = {
  'signal-logo': '\u{E000}',
  album: '\u{E163}',
  appearance: '\u{E031}',
  'appearance-fill': '\u{E164}',
  archive: '\u{E09B}',
  'archive-fill': '\u{E165}',
  'archive-down': '\u{E205}',
  'archive-down-fill': '\u{E206}',
  'archive-up': '\u{E09C}',
  'archive-up-fill': '\u{E166}',
  'archive-alt-down': '\u{E09D}',
  'archive-alt-down-fill': '\u{E167}',
  'archive-alt-up': '\u{E09E}',
  'archive-alt-up-fill': '\u{E168}',
  'arrow-[start]': { ltr: '\u{E169}', rtl: '\u{E16A}' },
  'arrow-[end]': { ltr: '\u{E16A}', rtl: '\u{E169}' },
  'arrow-up': '\u{E16B}',
  'arrow-down': '\u{E16C}',
  'arrow-up[start]': { ltr: '\u{E16D}', rtl: '\u{E16E}' },
  'arrow-up[end]': { ltr: '\u{E16E}', rtl: '\u{E16D}' },
  'arrow-down[start]': { ltr: '\u{E16F}', rtl: '\u{E170}' },
  'arrow-down[end]': { ltr: '\u{E170}', rtl: '\u{E16F}' },
  'arrow-circle-[start]': { ltr: '\u{E00B}', rtl: '\u{E00C}' },
  'arrow-circle-[end]': { ltr: '\u{E00C}', rtl: '\u{E00B}' },
  'arrow-circle-up': '\u{E00D}',
  'arrow-circle-down': '\u{E00E}',
  'arrow-circle-up[start]': { ltr: '\u{E00F}', rtl: '\u{E010}' },
  'arrow-circle-up[end]': { ltr: '\u{E010}', rtl: '\u{E00F}' },
  'arrow-circle-down[start]': { ltr: '\u{E011}', rtl: '\u{E012}' },
  'arrow-circle-down[end]': { ltr: '\u{E012}', rtl: '\u{E011}' },
  'arrow-circle-[start]-fill': { ltr: '\u{E003}', rtl: '\u{E004}' },
  'arrow-circle-[end]-fill': { ltr: '\u{E004}', rtl: '\u{E003}' },
  'arrow-circle-up-fill': '\u{E005}',
  'arrow-circle-down-fill': '\u{E006}',
  'arrow-circle-up[start]-fill': { ltr: '\u{E007}', rtl: '\u{E008}' },
  'arrow-circle-up[end]-fill': { ltr: '\u{E008}', rtl: '\u{E007}' },
  'arrow-circle-down[start]-fill': { ltr: '\u{E009}', rtl: '\u{E00A}' },
  'arrow-circle-down[end]-fill': { ltr: '\u{E00A}', rtl: '\u{E009}' },
  'arrow-square-[start]': { ltr: '\u{E013}', rtl: '\u{E014}' },
  'arrow-square-[end]': { ltr: '\u{E014}', rtl: '\u{E013}' },
  'arrow-square-up': '\u{E015}',
  'arrow-square-down': '\u{E016}',
  'arrow-square-up[start]': { ltr: '\u{E017}', rtl: '\u{E018}' },
  'arrow-square-up[end]': { ltr: '\u{E018}', rtl: '\u{E017}' },
  'arrow-square-down[start]': { ltr: '\u{E019}', rtl: '\u{E01A}' },
  'arrow-square-down[end]': { ltr: '\u{E01A}', rtl: '\u{E019}' },
  'arrow-square-[start]-fill': { ltr: '\u{E08A}', rtl: '\u{E08B}' },
  'arrow-square-[end]-fill': { ltr: '\u{E08B}', rtl: '\u{E08A}' },
  'arrow-square-up-fill': '\u{E08C}',
  'arrow-square-down-fill': '\u{E08D}',
  'arrow-square-up[start]-fill': { ltr: '\u{E08E}', rtl: '\u{E08F}' },
  'arrow-square-up[end]-fill': { ltr: '\u{E08F}', rtl: '\u{E08E}' },
  'arrow-square-down[start]-fill': { ltr: '\u{E090}', rtl: '\u{E091}' },
  'arrow-square-down[end]-fill': { ltr: '\u{E091}', rtl: '\u{E090}' },
  'arrow-rectangle-up': '\u{E0CD}',
  'arrow-rectangle-up-fill': '\u{E173}',
  'arrow-circle-dash-down': '\u{E172}',
  aspectratio: '\u{E134}',
  'aspectratio-fill': '\u{E176}',
  at: '\u{E01B}',
  attach: '\u{E058}',
  audio: '\u{E01C}',
  'audio-rectangle': '\u{E178}',
  'audio-rectangle-fill': '\u{E179}',
  backspace: '\u{E203}',
  'backspace-rtl': '\u{E17B}',
  'backspace-fill': '\u{E20F}',
  'backspace-fill-rtl': '\u{E210}',
  backup: '\u{E09F}',
  'backup-error': '\u{E0A0}',
  badge: '\u{E099}',
  'badge-fill': '\u{E09A}',
  'badge-set': '\u{E0DA}',
  'badge-set-fill': '\u{E17D}',
  bell: '\u{E01E}',
  'bell-fill': '\u{E248}',
  'bell-slash': '\u{E01F}',
  'bell-slash-fill': '\u{E249}',
  'bell-ring': '\u{E020}',
  'bell-ring-fill': '\u{E24A}',
  'bell-sleep': '\u{E0A1}',
  'bell-sleep-fill': '\u{E24B}',
  block: '\u{E002}',
  blur: '\u{E0DB}',
  'blur-light': '\u{E211}',
  'blur-medium': '\u{E212}',
  'blur-heavy': '\u{E247}',
  bolt: '\u{E0B8}',
  'bolt-fill': '\u{E218}',
  boost: '\u{E0E2}',
  'boost-fill': '\u{E219}',
  'brushsize-thin': '\u{E0E1}',
  'brushsize-regular': '\u{E0E0}',
  'brushsize-medium': '\u{E0DF}',
  'brushsize-heavy': '\u{E0DE}',
  calendar: '\u{E0A2}',
  'calendar-week': '\u{E0A4}',
  'calendar-day': '\u{E0A5}',
  'calendar-blank': '\u{E0A3}',
  'calendar-search': '\u{E0E3}',
  camera: '\u{E0E4}',
  'camera-fill': '\u{E17E}',
  'camera-swap': '\u{E0E5}',
  'camera-swap-fill': '\u{E17F}',
  check: '\u{E180}',
  'check-circle': '\u{E022}',
  'check-circle-fill': '\u{E182}',
  'check-square': '\u{E023}',
  'check-square-fill': '\u{E183}',
  'chevron-[start]': { ltr: '\u{E024}', rtl: '\u{E025}' },
  'chevron-[end]': { ltr: '\u{E025}', rtl: '\u{E024}' },
  'chevron-up': '\u{E026}',
  'chevron-down': '\u{E027}',
  'chevron-circle-[start]': { ltr: '\u{E028}', rtl: '\u{E029}' },
  'chevron-circle-[end]': { ltr: '\u{E029}', rtl: '\u{E028}' },
  'chevron-circle-up': '\u{E02A}',
  'chevron-circle-down': '\u{E02B}',
  'chevron-circle-[start]-fill': { ltr: '\u{E1F2}', rtl: '\u{E1F3}' },
  'chevron-circle-[end]-fill': { ltr: '\u{E1F3}', rtl: '\u{E1F2}' },
  'chevron-circle-up-fill': '\u{E1F4}',
  'chevron-circle-down-fill': '\u{E1F5}',
  'chevron-square-[start]': { ltr: '\u{E02C}', rtl: '\u{E02D}' },
  'chevron-square-[end]': { ltr: '\u{E02D}', rtl: '\u{E02C}' },
  'chevron-square-up': '\u{E02E}',
  'chevron-square-down': '\u{E02F}',
  'chevron-square-[start]-fill': { ltr: '\u{E1F6}', rtl: '\u{E1F7}' },
  'chevron-square-[end]-fill': { ltr: '\u{E1F7}', rtl: '\u{E1F6}' },
  'chevron-square-up-fill': '\u{E1F8}',
  'chevron-square-down-fill': '\u{E1F9}',
  'chevron-shallow-[start]': { ltr: '\u{E0E6}', rtl: '\u{E0E7}' },
  'chevron-shallow-[end]': { ltr: '\u{E0E7}', rtl: '\u{E0E6}' },
  'chevron-shallow-up': '\u{E0E8}',
  'chevron-shallow-down': '\u{E0E9}',
  'chevron-double-left-right': '\u{E207}',
  'chevron-double-up-down': '\u{E081}',
  circle: '\u{E160}',
  'circle-fill': '\u{E184}',
  'circle-dash': '\u{E07A}',
  clock: '\u{E265}',
  'clock-hour-1': '\u{E266}',
  'clock-hour-2': '\u{E267}',
  'clock-hour-3': '\u{E268}',
  'clock-hour-4': '\u{E269}',
  'clock-hour-5': '\u{E26A}',
  'clock-hour-6': '\u{E26B}',
  'clock-hour-7': '\u{E26C}',
  'clock-hour-8': '\u{E26D}',
  'clock-hour-9': '\u{E26E}',
  'clock-hour-10': '\u{E26F}',
  'clock-hour-11': '\u{E270}',
  'clock-hour-12': '\u{E271}',
  compose: '\u{E0EA}',
  connections: '\u{E0AD}',
  'connections-fill': '\u{E185}',
  contrast: '\u{E281}',
  copy: '\u{E0EB}',
  'copy-alt': '\u{E0EC}',
  creditcard: '\u{E127}',
  'creditcard-fill': '\u{E187}',
  crop: '\u{E0ED}',
  'crop-rotate': '\u{E0EE}',
  'device-phone': '\u{E0F2}',
  'device-phone-fill': '\u{E18A}',
  'device-tablet': '\u{E0F3}',
  'device-tablet-fill': '\u{E18B}',
  'device-laptop': '\u{E0F4}',
  'device-laptop-fill': '\u{E18C}',
  download: '\u{E0C8}',
  draghandle: '\u{E0F5}',
  'draghandle-alt': '\u{E0F6}',
  emoji: '\u{E18D}',
  'emoji-fill': '\u{E18E}',
  'emoji-plus': '\u{E0F8}',
  'emoji-excited': '\u{E0F9}',
  'emoji-sad': '\u{E0FA}',
  'emoji-angry': '\u{E0FB}',
  'emoji-surprised': '\u{E0FD}',
  'emoji-animal': '\u{E0FE}',
  'emoji-celebrate': '\u{E0FF}',
  'emoji-food': '\u{E100}',
  'emoji-activity': '\u{E101}',
  'emoji-travel': '\u{E102}',
  'emoji-object': '\u{E103}',
  'emoji-symbol': '\u{E104}',
  'emoji-flag': '\u{E105}',
  emoticon: '\u{E106}',
  error: '\u{E032}',
  'error-fill': '\u{E093}',
  'error-triangle': '\u{E092}',
  'error-triangle-fill': '\u{E094}',
  'error-octagon': '\u{E033}',
  'error-octagon-fill': '\u{E18F}',
  file: '\u{E034}',
  'file-fill': '\u{E190}',
  'file-slash': '\u{E0B1}',
  'file-slash-fill': '\u{E191}',
  filter: '\u{E107}',
  'filter-circle': '\u{E108}',
  'filter-circle-fill': '\u{E1FA}',
  flash: '\u{E109}',
  'flash-fill': '\u{E192}',
  'flash-slash': '\u{E10A}',
  'flash-slash-fill': '\u{E193}',
  'flash-auto': '\u{E10B}',
  'flash-auto-fill': '\u{E194}',
  flip: '\u{E10C}',
  folder: '\u{E0B2}',
  'folder-plus': '\u{E0B3}',
  'folder-minus': '\u{E274}',
  'folder-settings': '\u{E0B4}',
  forward: '\u{E035}',
  'forward-fill': '\u{E036}',
  fullscreen: '\u{E10D}',
  gif: '\u{E037}',
  'gif-rectangle': '\u{E195}',
  'gif-rectangle-fill': '\u{E196}',
  gift: '\u{E0B5}',
  'gift-fill': '\u{E253}',
  globe: '\u{E0B6}',
  'globe-fill': '\u{E254}',
  grid: '\u{E10E}',
  'grid-fill': '\u{E198}',
  'grid-rectangle': '\u{E10F}',
  'grid-rectangle-fill': '\u{E199}',
  'grid-sidebar': '\u{E13B}',
  'grid-sidebar-fill': '\u{E23C}',
  group: '\u{E19B}',
  'group-fill': '\u{E19D}',
  hd: '\u{E132}',
  'hd-slash': '\u{E133}',
  headphones: '\u{E110}',
  'headphones-fill': '\u{E1A3}',
  heart: '\u{E039}',
  'heart-fill': '\u{E1A4}',
  'heart-plus': '\u{E0B7}',
  'heart-plus-fill': '\u{E1A5}',
  help: '\u{E0D8}',
  'help-fill': '\u{E1A6}',
  info: '\u{E03B}',
  'info-fill': '\u{E1A7}',
  invite: '\u{E0B9}',
  key: '\u{E0BA}',
  'key-fill': '\u{E245}',
  'key-slash': '\u{E0BB}',
  'key-slash-fill': '\u{E246}',
  keyboard: '\u{E111}',
  label: '\u{E27F}',
  'label-fill': '\u{E280}',
  leave: '\u{E1AA}',
  'leave-rtl': '\u{E1AB}',
  link: '\u{E03E}',
  'link-alt': '\u{E03F}',
  'link-broken': '\u{E057}',
  'link-slash': '\u{E040}',
  'list-bullet': '\u{E113}',
  'list-bullet-rtl': '\u{E115}',
  'list-circle': '\u{E114}',
  'list-circle-rtl': '\u{E116}',
  location: '\u{E0BC}',
  'location-fill': '\u{E275}',
  'location-circle': '\u{E0BD}',
  'location-circle-fill': '\u{E1AC}',
  lock: '\u{E041}',
  'lock-fill': '\u{E1AD}',
  'lock-open': '\u{E07D}',
  'lock-open-fill': '\u{E1AE}',
  megaphone: '\u{E042}',
  menu: '\u{E11B}',
  merge: '\u{E043}',
  message: '\u{E0A6}',
  'message-fill': '\u{E1AF}',
  'message-badge': '\u{E0A7}',
  'message-badge-fill': '\u{E1B0}',
  'message-arrow': '\u{E0A8}',
  'message-arrow-fill': '\u{E1B1}',
  'message-check': '\u{E0A9}',
  'message-check-fill': '\u{E1B2}',
  'message-more': '\u{E0AA}',
  'message-more-fill': '\u{E1B3}',
  'message-x': '\u{E0AB}',
  'message-x-fill': '\u{E1B4}',
  'message-thread': '\u{E071}',
  'message-thread-fill': '\u{E072}',
  mic: '\u{E055}',
  'mic-fill': '\u{E1B5}',
  'mic-slash': '\u{E056}',
  'mic-slash-fill': '\u{E1B6}',
  minus: '\u{E1B7}',
  'minus-circle': '\u{E1B8}',
  'minus-circle-fill': '\u{E1B9}',
  'minus-square': '\u{E059}',
  'minus-square-fill': '\u{E1BA}',
  'missed-incoming': '\u{E05A}',
  'missed-outgoing': '\u{E05B}',
  moon: '\u{E0BE}',
  'moon-fill': '\u{E0D9}',
  'moon-slash': '\u{E209}',
  'moon-slash-fill': '\u{E20A}',
  more: '\u{E120}',
  'more-circle': '\u{E121}',
  'more-circle-fill': '\u{E208}',
  note: '\u{E095}',
  'note-rtl': '\u{E096}',
  nothing: '\u{E189}',
  number: '\u{E0BF}',
  'number-square': '\u{E0C0}',
  'number-square-fill': '\u{E1BC}',
  numberpad: '\u{E123}',
  officialbadge: '\u{E086}',
  'officialbadge-fill': '\u{E087}',
  open: '\u{E0C1}',
  palette: '\u{E0AC}',
  'palette-fill': '\u{E1BD}',
  pause: '\u{E124}',
  'pause-fill': '\u{E1BE}',
  'pause-circle': '\u{E125}',
  'pause-circle-fill': '\u{E1BF}',
  'pause-square': '\u{E126}',
  'pause-square-fill': '\u{E1C0}',
  pencil: '\u{E030}',
  'pencil-fill': '\u{E1C1}',
  person: '\u{E05D}',
  'person-fill': '\u{E1C3}',
  'person-circle': '\u{E05E}',
  'person-circle-fill': '\u{E1C4}',
  'person-square': '\u{E129}',
  'person-square-fill': '\u{E1C5}',
  'person-rectangle': '\u{E12A}',
  'person-rectangle-fill': '\u{E1C6}',
  phone: '\u{E063}',
  'phone-fill': '\u{E064}',
  'phone-down': '\u{E12B}',
  'phone-down-fill': '\u{E25F}',
  'phone-plus': '\u{E12C}',
  'phone-plus-fill': '\u{E260}',
  'phone-speaker': '\u{E12D}',
  'phone-speaker-fill': '\u{E261}',
  photo: '\u{E1C8}',
  'photo-slash': '\u{E1C9}',
  piechart: '\u{E0F1}',
  'piechart-fill': '\u{E1CA}',
  pin: '\u{E12E}',
  'pin-fill': '\u{E1CB}',
  'pin-slash': '\u{E12F}',
  'pin-slash-fill': '\u{E1CC}',
  pip: '\u{E130}',
  'pip-fill': '\u{E23E}',
  play: '\u{E067}',
  'play-fill': '\u{E1CD}',
  'play-circle': '\u{E068}',
  'play-circle-fill': '\u{E1CE}',
  'play-square': '\u{E069}',
  'play-square-fill': '\u{E1CF}',
  plus: '\u{E1D1}',
  'plus-circle': '\u{E1D2}',
  'plus-circle-fill': '\u{E1D3}',
  'plus-square': '\u{E06C}',
  'plus-square-fill': '\u{E1D4}',
  poll: '\u{E082}',
  'poll-rtl': '\u{E272}',
  'poll-fill': '\u{E083}',
  'poll-fill-rtl': '\u{E273}',
  press: '\u{E14A}',
  'press-fill': '\u{E14B}',
  qrcode: '\u{E0C2}',
  raisehand: '\u{E07E}',
  'raisehand-fill': '\u{E084}',
  receipt: '\u{E135}',
  'receipt-rtl': '\u{E136}',
  recent: '\u{E0C3}',
  rectangle: '\u{E162}',
  'rectangle-fill': '\u{E1D6}',
  'rectangle-dash': '\u{E214}',
  redo: '\u{E0C6}',
  refresh: '\u{E0C4}',
  reply: '\u{E06D}',
  'reply-fill': '\u{E06E}',
  rotate: '\u{E137}',
  scan: '\u{E138}',
  'scan-qrcode': '\u{E216}',
  scribble: '\u{E0F7}',
  search: '\u{E0C7}',
  send: '\u{E20B}',
  'send-fill': '\u{E0C9}',
  settings: '\u{E0CA}',
  'settings-fill': '\u{E0CB}',
  'settings-alt': '\u{E0CC}',
  share: '\u{E139}',
  'share-alt': '\u{E13A}',
  'shield-check': '\u{E06F}',
  'shield-check-fill': '\u{E1D8}',
  sidebar: '\u{E13C}',
  'sidebar-fill': '\u{E243}',
  'sort-vertical': '\u{E0CE}',
  'sort-horizontal': '\u{E0CF}',
  speaker: '\u{E13F}',
  'speaker-fill': '\u{E23F}',
  'speaker-x': '\u{E140}',
  'speaker-x-fill': '\u{E240}',
  'speaker-bluetooth': '\u{E141}',
  'speaker-bluetooth-fill': '\u{E241}',
  'speaker-slash': '\u{E142}',
  'speaker-slash-fill': '\u{E242}',
  square: '\u{E161}',
  'square-fill': '\u{E1FB}',
  'square-dash': '\u{E17C}',
  star: '\u{E0AF}',
  'star-fill': '\u{E0B0}',
  'star-slash': '\u{E276}',
  'star-slash-fill': '\u{E277}',
  sticker: '\u{E070}',
  'sticker-smiley': '\u{E143}',
  'sticker-slash': '\u{E144}',
  stickerpack: '\u{E145}',
  'stickerpack-plus': '\u{E146}',
  stop: '\u{E147}',
  'stop-fill': '\u{E1D9}',
  'stop-circle': '\u{E148}',
  'stop-circle-fill': '\u{E1DA}',
  'stop-square': '\u{E149}',
  'stop-square-fill': '\u{E1DB}',
  stories: '\u{E0D0}',
  'stories-fill': '\u{E0D1}',
  sun: '\u{E0D2}',
  'sun-fill': '\u{E1DC}',
  'sun-horizon': '\u{E0D3}',
  'sun-horizon-fill': '\u{E1DD}',
  swap: '\u{E0D4}',
  'text-square': '\u{E14D}',
  'text-square-fill': '\u{E1DE}',
  'text-outline': '\u{E14E}',
  'textalign-[start]': { ltr: '\u{E14F}', rtl: '\u{E151}' },
  'textalign-center': '\u{E150}',
  'textalign-[end]': { ltr: '\u{E151}', rtl: '\u{E14F}' },
  'textalign-justifed': '\u{E152}',
  texteffects: '\u{E153}',
  'texteffects-fill': '\u{E1DF}',
  'textformat-bold': '\u{E154}',
  'textformat-italic': '\u{E155}',
  'textformat-strikethrough': '\u{E156}',
  'textformat-monospace': '\u{E157}',
  'textformat-spoiler': '\u{E158}',
  thumbsdown: '\u{E262}',
  'thumbsdown-fill': '\u{E263}',
  thumbsup: '\u{E0FC}',
  'thumbsup-fill': '\u{E264}',
  ticks: '\u{E044}',
  timer: '\u{E073}',
  'timer-fill': '\u{E1E0}',
  'timer-slash': '\u{E074}',
  'timer-slash-fill': '\u{E1E1}',
  'timer-countdown-0': '\u{E048}',
  'timer-countdown-1': '\u{E049}',
  'timer-countdown-2': '\u{E04A}',
  'timer-countdown-3': '\u{E04B}',
  'timer-countdown-4': '\u{E04C}',
  'timer-countdown-5': '\u{E04D}',
  'timer-countdown-6': '\u{E04E}',
  'timer-countdown-7': '\u{E04F}',
  'timer-countdown-8': '\u{E050}',
  'timer-countdown-9': '\u{E051}',
  'timer-countdown-10': '\u{E052}',
  'timer-countdown-11': '\u{E053}',
  'timer-countdown-12': '\u{E054}',
  trash: '\u{E0D5}',
  'trash-fill': '\u{E0D6}',
  trending: '\u{E159}',
  tune: '\u{E15A}',
  undo: '\u{E0C5}',
  upload: '\u{E0D7}',
  video: '\u{E1E2}',
  'video-fill': '\u{E1E4}',
  'video-slash': '\u{E1E3}',
  'video-slash-fill': '\u{E1E6}',
  videocamera: '\u{E1E8}',
  'videocamera-fill': '\u{E1EA}',
  'videocamera-slash': '\u{E1E9}',
  'videocamera-slash-fill': '\u{E1EB}',
  viewonce: '\u{E078}',
  'viewonce-dash': '\u{E079}',
  'viewonce-slash': '\u{E204}',
  visible: '\u{E15B}',
  'visible-slash': '\u{E15C}',
  wifi: '\u{E15D}',
  'wifi-error': '\u{E15E}',
  x: '\u{E1ED}',
  'x-circle': '\u{E1EE}',
  'x-circle-fill': '\u{E1F0}',
  'x-circle-dash': '\u{E15F}',
  'x-square': '\u{E1EF}',
  'x-square-fill': '\u{E1F1}',
  'zoom-in': '\u{E282}',
  'zoom-out': '\u{E283}',
} satisfies Record<IconDefsName, SymbolDef>;

const InlineDefs: Record<string, SymbolDef> = {
  album: '\u{E001}',
  'arrow-rectangle-up': '\u{E171}',
  'arrow-rectangle-up-fill': '\u{E174}',
  aspectratio: '\u{E175}',
  'aspectratio-fill': '\u{E177}',
  'audio-rectangle': '\u{E01D}',
  'audio-rectangle-fill': '\u{E17A}',
  'check-circle-double': '\u{E046}',
  'check-circle-double-fill': '\u{E047}',
  creditcard: '\u{E186}',
  'creditcard-fill': '\u{E188}',
  'emoji-plus': '\u{E20C}',
  'gif-rectangle': '\u{E097}',
  'gif-rectangle-fill': '\u{E098}',
  'grid-rectangle': '\u{E197}',
  'grid-rectangle-fill': '\u{E19A}',
  'grid-sidebar': '\u{E213}',
  'grid-sidebar-fill': '\u{E23D}',
  group: '\u{E038}',
  'group-fill': '\u{E19E}',
  'group-x': '\u{E0AE}',
  'group-x-fill': '\u{E1A0}',
  invite: '\u{E1A8}',
  keyboard: '\u{E1A9}',
  leave: '\u{E03C}',
  'leave-rtl': '\u{E03D}',
  'person-check': '\u{E05F}',
  'person-check-fill': '\u{E256}',
  'person-plus': '\u{E061}',
  'person-plus-fill': '\u{E258}',
  'person-minus': '\u{E062}',
  'person-minus-fill': '\u{E25A}',
  'person-x': '\u{E060}',
  'person-x-fill': '\u{E25C}',
  'person-question': '\u{E06A}',
  'person-question-fill': '\u{E25E}',
  'person-rectangle': '\u{E1C2}',
  'person-rectangle-fill': '\u{E1C7}',
  photo: '\u{E065}',
  'photo-slash': '\u{E066}',
  rectangle: '\u{E1D5}',
  'rectangle-fill': '\u{E1D7}',
  'rectangle-dash': '\u{E215}',
  sidebar: '\u{E217}',
  'sidebar-fill': '\u{E244}',
  video: '\u{E088}',
  'video-fill': '\u{E1E5}',
  'video-slash': '\u{E089}',
  'video-slash-fill': '\u{E1E7}',
  videocamera: '\u{E075}',
  'videocamera-fill': '\u{E077}',
  'videocamera-slash': '\u{E076}',
  'videocamera-slash-fill': '\u{E1EC}',
} satisfies Record<InlineDefsName, SymbolDef>;

/** @testexport */
export function _getAllAxoSymbolIconNames(): ReadonlyArray<AxoSymbolIconName> {
  return Object.keys(IconDefs) as Array<AxoSymbolIconName>;
}

/** @testexport */
export function _getAllAxoSymbolInlineGlyphNames(): ReadonlyArray<AxoSymbolInlineGlyphName> {
  return Object.keys(IconDefs) as Array<AxoSymbolIconName>;
}

export function getAxoSymbolIcon(
  name: AxoSymbolIconName,
  dir: 'ltr' | 'rtl'
): string {
  const value = IconDefs[name];
  if (value == null) {
    throw new TypeError(`Invalid symbol name for icon: ${name}`);
  }
  return typeof value === 'string' ? value : value[dir];
}

export function getAxoSymbolInlineGlyph(
  name: AxoSymbolInlineGlyphName,
  dir: 'ltr' | 'rtl'
): string {
  const value = InlineDefs[name] ?? IconDefs[name];
  if (value == null) {
    throw new TypeError(`Invalid symbol name for inline glyph: ${name}`);
  }
  return typeof value === 'string' ? value : value[dir];
}
