From 410f53ae574bacc8a8957fb256427e782406ffbe Mon Sep 17 00:00:00 2001 From: Jamie Kyle <113370520+jamiebuilds-signal@users.noreply.github.com> Date: Fri, 26 Sep 2025 11:10:52 -0700 Subject: [PATCH] Update symbols font --- .../SignalSymbolsVariable.woff2 | Bin 39572 -> 80520 bytes ts/axo/AxoButton.tsx | 4 +- ts/axo/AxoSymbol.stories.tsx | 43 +- ts/axo/AxoSymbol.tsx | 295 ++----- ts/axo/_internal/AxoBaseMenu.tsx | 8 +- ts/axo/_internal/AxoSymbolDefs.generated.ts | 820 ++++++++++++++++++ 6 files changed, 921 insertions(+), 249 deletions(-) create mode 100644 ts/axo/_internal/AxoSymbolDefs.generated.ts diff --git a/fonts/signal-symbols/SignalSymbolsVariable.woff2 b/fonts/signal-symbols/SignalSymbolsVariable.woff2 index 24f696573c64c41db0051c9a6c1cefd13e33a69d..a85ac3e1e5801384bad887c246bec45f98a2d403 100644 GIT binary patch literal 80520 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

RO5^Ey4V; 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 z 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 U7pF diff --git a/ts/axo/AxoButton.tsx b/ts/axo/AxoButton.tsx index 0ba04943e5..69ea32068b 100644 --- a/ts/axo/AxoButton.tsx +++ b/ts/axo/AxoButton.tsx @@ -4,7 +4,7 @@ import React, { memo, forwardRef } from 'react'; import type { ButtonHTMLAttributes, FC, ForwardedRef, ReactNode } from 'react'; import type { TailwindStyles } from './tw.js'; import { tw } from './tw.js'; -import { AxoSymbol, type AxoSymbolName } from './AxoSymbol.js'; +import { AxoSymbol } from './AxoSymbol.js'; import { assert } from './_internal/assert.js'; const Namespace = 'AxoButton'; @@ -143,7 +143,7 @@ type AxoButtonProps = BaseButtonAttrs & Readonly<{ variant: AxoButtonVariant; size: AxoButtonSize; - symbol?: AxoSymbolName; + symbol?: AxoSymbol.InlineGlyphName; arrow?: boolean; children: ReactNode; }>; diff --git a/ts/axo/AxoSymbol.stories.tsx b/ts/axo/AxoSymbol.stories.tsx index d1ab21aed0..135da7ead3 100644 --- a/ts/axo/AxoSymbol.stories.tsx +++ b/ts/axo/AxoSymbol.stories.tsx @@ -4,34 +4,40 @@ import React, { memo, useMemo, useState } from 'react'; import type { Meta } from '@storybook/react'; import { Direction } from 'radix-ui'; import Fuse from 'fuse.js'; -import type { AxoSymbolName } from './AxoSymbol.js'; -import { - AxoSymbol, - _getAllAxoSymbolNames, - _getAxoSymbol, -} from './AxoSymbol.js'; +import { AxoSymbol } from './AxoSymbol.js'; import { tw } from './tw.js'; +import { + _getAllAxoSymbolInlineGlyphNames, + getAxoSymbolInlineGlyph, +} from './_internal/AxoSymbolDefs.generated.js'; export default { title: 'Axo/AxoSymbol', } satisfies Meta; -const SymbolInfo = memo(function SymbolInfo(props: { - symbolName: AxoSymbolName; -}): JSX.Element { - const ltr = _getAxoSymbol(props.symbolName, 'ltr'); - const rtl = _getAxoSymbol(props.symbolName, 'rtl'); +const allAxoSymbolNames = _getAllAxoSymbolInlineGlyphNames() + .slice() + .sort((a, b) => a.localeCompare(b)); +const fuse = new Fuse(allAxoSymbolNames); - const variants = +const SymbolInfo = memo(function SymbolInfo(props: { + symbolName: AxoSymbol.InlineGlyphName; +}): JSX.Element { + const ltr = getAxoSymbolInlineGlyph(props.symbolName, 'ltr'); + const rtl = getAxoSymbolInlineGlyph(props.symbolName, 'rtl'); + + type Variant = { title: string; dir: 'ltr' | 'rtl'; text: string }; + + const variants: ReadonlyArray = ltr === rtl - ? ([ + ? [ // same { title: 'LTR/RTL', dir: 'ltr', text: ltr }, - ] as const) - : ([ + ] + : [ { title: 'LTR', dir: 'ltr', text: ltr }, { title: 'RTL', dir: 'rtl', text: rtl }, - ] as const); + ]; return (

a.localeCompare(b)); -const fuse = new Fuse(allAxoSymbolNames); - export function All(): JSX.Element { const [input, setInput] = useState(''); diff --git a/ts/axo/AxoSymbol.tsx b/ts/axo/AxoSymbol.tsx index 7abd04144d..b1969cb993 100644 --- a/ts/axo/AxoSymbol.tsx +++ b/ts/axo/AxoSymbol.tsx @@ -1,241 +1,61 @@ // Copyright 2025 Signal Messenger, LLC // SPDX-License-Identifier: AGPL-3.0-only import type { FC } from 'react'; -import React, { memo } from 'react'; +import React, { memo, useMemo } from 'react'; import { Direction } from 'radix-ui'; import { VisuallyHidden } from 'react-aria'; -import { assert } from './_internal/assert.js'; import { tw } from './tw.js'; +import { + getAxoSymbolIcon, + getAxoSymbolInlineGlyph, +} from './_internal/AxoSymbolDefs.generated.js'; +import type { + AxoSymbolIconName, + AxoSymbolInlineGlyphName, +} from './_internal/AxoSymbolDefs.generated.js'; const { useDirection } = Direction; const Namespace = 'AxoSymbol'; -type AxoSymbolDef = string | { ltr: string; rtl: string }; - -const AllAxoSymbolDefs = { - logo: '\u{E000}', - album: '\u{E001}', - appearance: '\u{E031}', - 'arrow-[start]': { ltr: '\u{2190}', rtl: '\u{2192}' }, - 'arrow-[end]': { ltr: '\u{2192}', rtl: '\u{2190}' }, - 'arrow-up': '\u{2191}', - 'arrow-down': '\u{2193}', - 'arrow-up_[start]': { ltr: '\u{2196}', rtl: '\u{2197}' }, - 'arrow-up_[end]': { ltr: '\u{2197}', rtl: '\u{2196}' }, - 'arrow-down_[start]': { ltr: '\u{2199}', rtl: '\u{2198}' }, - 'arrow-down_[end]': { ltr: '\u{2198}', rtl: '\u{2199}' }, - '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-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-dash-down': '\u{E021}', - '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]-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}' }, - at: '\u{E01B}', - attach: '\u{E058}', - audio: '\u{E01C}', - 'audio-rectangle': '\u{E01D}', - badge: '\u{E099}', - 'badge-fill': '\u{E09A}', - bell: '\u{E01E}', - 'bell-slash': '\u{E01F}', - 'bell-ring': '\u{E020}', - block: '\u{E002}', - calender: '\u{E0A2}', - 'calender-blank': '\u{E0A3}', - check: '\u{2713}', - 'check-circle': '\u{E022}', - 'check-square': '\u{E023}', - '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-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}', - 'dropdown-down': '\u{E07F}', - 'dropdown-up': '\u{E080}', - 'dropdown-triangle-down': '\u{E082}', - 'dropdown-triangle-up': '\u{E083}', - 'dropdown-double': '\u{E081}', - edit: '\u{E030}', - emoji: '\u{263A}', - error: '\u{E032}', - 'error-triangle': '\u{E092}', - 'error-fill': '\u{E093}', - 'error-triangle-fill': '\u{E094}', - file: '\u{E034}', - forward: '\u{E035}', - 'forward-fill': '\u{E036}', - gif: '\u{E037}', - 'gif-rectangle': '\u{E097}', - 'gif-rectangle-fill': '\u{E098}', - gift: '\u{E0B5}', - globe: '\u{E0B6}', - group: '\u{E038}', - 'group-x': '\u{E0AE}', - heart: '\u{E039}', - help: '\u{E0D8}', - incoming: '\u{E03A}', - info: '\u{E03B}', - leave: { ltr: '\u{E03C}', rtl: '\u{E03D}' }, - link: '\u{E03E}', - 'link-android': '\u{E03F}', - 'link-broken': '\u{E057}', - 'link-slash': '\u{E040}', - lock: '\u{E041}', - 'lock-open': '\u{E07D}', - megaphone: '\u{E042}', - merge: '\u{E043}', - message: '\u{E0A6}', - 'message_status-sending': '\u{E044}', - 'message_status-sent': '\u{E045}', - 'message_status-read': '\u{E047}', - 'message_status-delivered': '\u{E046}', - 'message_timer-00': '\u{E048}', - 'message_timer-05': '\u{E049}', - 'message_timer-10': '\u{E04A}', - 'message_timer-15': '\u{E04B}', - 'message_timer-20': '\u{E04C}', - 'message_timer-25': '\u{E04D}', - 'message_timer-30': '\u{E04E}', - 'message_timer-35': '\u{E04F}', - 'message_timer-40': '\u{E050}', - 'message_timer-45': '\u{E051}', - 'message_timer-50': '\u{E052}', - 'message_timer-55': '\u{E053}', - 'message_timer-60': '\u{E054}', - mic: '\u{E055}', - 'mic-slash': '\u{E056}', - minus: '\u{2212}', - 'minus-circle': '\u{2296}', - 'minus-square': '\u{E059}', - 'missed-incoming': '\u{E05A}', - 'missed-outgoing': '\u{E05B}', - note: { ltr: '\u{E095}', rtl: '\u{E096}' }, - official_badge: '\u{E086}', - 'official_badge-fill': '\u{E087}', - outgoing: '\u{E05C}', - person: '\u{E05D}', - 'person-circle': '\u{E05E}', - 'person-check': '\u{E05F}', - 'person-x': '\u{E060}', - 'person-plus': '\u{E061}', - 'person-minus': '\u{E062}', - 'person-question': '\u{E06A}', - phone: '\u{E063}', - 'phone-fill': '\u{E064}', - photo: '\u{E065}', - 'photo-slash': '\u{E066}', - play: '\u{E067}', - 'play-circle': '\u{E068}', - 'play-square': '\u{E069}', - plus: '\u{002B}', - 'plus-circle': '\u{2295}', - 'plus-square': '\u{E06C}', - raise_hand: '\u{E07E}', - 'raise_hand-fill': '\u{E084}', - refresh: '\u{E0C4}', - reply: '\u{E06D}', - 'reply-fill': '\u{E06E}', - safety_number: '\u{E06F}', - spam: '\u{E033}', - sticker: '\u{E070}', - thread: '\u{E071}', - 'thread-fill': '\u{E072}', - timer: '\u{E073}', - 'timer-slash': '\u{E074}', - video_camera: '\u{E075}', - 'video_camera-slash': '\u{E076}', - 'video_camera-fill': '\u{E077}', - video: '\u{E088}', - 'video-slash': '\u{E089}', - view_once: '\u{E078}', - 'view_once-dash': '\u{E079}', - 'view_once-viewed': '\u{E07A}', - x: '\u{00D7}', - 'x-circle': '\u{2297}', - 'x-square': '\u{2327}', - space: '\u{0020}', -} as const satisfies Record; - -export type AxoSymbolName = keyof typeof AllAxoSymbolDefs; - -export function _getAllAxoSymbolNames(): ReadonlyArray { - return Object.keys(AllAxoSymbolDefs) as Array; -} - -export function _getAxoSymbol( - symbolName: AxoSymbolName, - dir: 'ltr' | 'rtl' -): string { - const symbolDef = assert( - AllAxoSymbolDefs[symbolName], - `${Namespace}:Invalid name: ${symbolName}` - ); - const symbol = typeof symbolDef === 'string' ? symbolDef : symbolDef[dir]; - return symbol; -} - // eslint-disable-next-line @typescript-eslint/no-namespace export namespace AxoSymbol { + const symbolStyles = tw('font-symbols select-none'); + const labelStyles = tw('select-none'); + + // eslint-disable-next-line no-inner-declarations + function useRenderSymbol(glyph: string, label: string | null): JSX.Element { + return useMemo(() => { + return ( + <> + + {glyph} + + {label != null && ( + {label} + )} + + ); + }, [glyph, label]); + } + /** * Component: * -------------------------------------- */ + export type InlineGlyphName = AxoSymbolInlineGlyphName; + export type InlineGlyphProps = Readonly<{ - symbol: AxoSymbolName; + symbol: InlineGlyphName; label: string | null; }>; export const InlineGlyph: FC = memo(props => { const direction = useDirection(); - const symbol = _getAxoSymbol(props.symbol, direction); - return ( - <> - - {symbol} - - {props.label != null && ( - - {props.label} - - )} - - ); + const glyph = getAxoSymbolInlineGlyph(props.symbol, direction); + const content = useRenderSymbol(glyph, props.label); + return content; }); InlineGlyph.displayName = `${Namespace}.InlineGlyph`; @@ -245,21 +65,50 @@ export namespace AxoSymbol { * -------------------------------------- */ + export type IconName = AxoSymbolIconName; + export type IconSize = 14 | 16 | 20 | 24; + + type IconSizeConfig = { size: number; fontSize: number }; + + const IconSizes: Record = { + 14: { size: 14, fontSize: 12 }, + 16: { size: 16, fontSize: 14 }, + 20: { size: 20, fontSize: 18 }, + 24: { size: 24, fontSize: 22 }, + }; + + export function _getAllIconSizes(): ReadonlyArray { + return Object.keys(IconSizes).map(size => Number(size) as IconSize); + } + export type IconProps = Readonly<{ - size: 14 | 16 | 20 | 24; - symbol: AxoSymbolName; + size: IconSize; + symbol: AxoSymbolIconName; label: string | null; }>; + const iconStyles = tw( + 'inline-flex size-[1em] shrink-0 items-center justify-center' + ); + export const Icon: FC = memo(props => { + const config = IconSizes[props.size]; + + const direction = useDirection(); + const glyph = getAxoSymbolIcon(props.symbol, direction); + const content = useRenderSymbol(glyph, props.label); + + const style = useMemo(() => { + return { + width: config.size, + height: config.size, + fontSize: config.fontSize, + }; + }, [config]); + return ( - - + + {content} ); }); diff --git a/ts/axo/_internal/AxoBaseMenu.tsx b/ts/axo/_internal/AxoBaseMenu.tsx index 3aebe771fa..a005769937 100644 --- a/ts/axo/_internal/AxoBaseMenu.tsx +++ b/ts/axo/_internal/AxoBaseMenu.tsx @@ -3,7 +3,7 @@ import React from 'react'; import type { ReactNode } from 'react'; import { tw } from '../tw.js'; -import { AxoSymbol, type AxoSymbolName } from '../AxoSymbol.js'; +import { AxoSymbol } from '../AxoSymbol.js'; // eslint-disable-next-line @typescript-eslint/no-namespace export namespace AxoBaseMenu { @@ -62,7 +62,7 @@ export namespace AxoBaseMenu { /** * An icon that should be rendered before the text. */ - symbol?: AxoSymbolName; + symbol?: AxoSymbol.IconName; }>; // (not SubTrigger/Label/Separator) @@ -138,7 +138,9 @@ export namespace AxoBaseMenu { return ; } - export function ItemSymbol(props: { symbol: AxoSymbolName }): JSX.Element { + export function ItemSymbol(props: { + symbol: AxoSymbol.IconName; + }): JSX.Element { return ; } diff --git a/ts/axo/_internal/AxoSymbolDefs.generated.ts b/ts/axo/_internal/AxoSymbolDefs.generated.ts new file mode 100644 index 0000000000..bfed299738 --- /dev/null +++ b/ts/axo/_internal/AxoSymbolDefs.generated.ts @@ -0,0 +1,820 @@ +// 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 +export type AxoSymbolIconName = + | 'signal-logo' + | 'album' + | 'appearance' + | 'appearance-fill' + | 'archive' + | 'archive-fill' + | 'archive-down' + | 'archive-down-fill' + | 'archive-up' + | 'archive-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' + | 'backup' + | 'badge' + | 'badge-fill' + | 'badge-set' + | 'badge-set-fill' + | 'bell' + | 'bell-slash' + | 'bell-ring' + | 'block' + | 'bolt' + | 'boost' + | 'calendar' + | 'calendar-blank' + | 'calendar-week' + | 'calendar-one' + | 'calendar-search' + | 'camera' + | 'camera-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' + | 'compose' + | 'connections' + | 'connections-fill' + | 'copy' + | 'copy-alt' + | 'countdown-00' + | 'countdown-05' + | 'countdown-10' + | 'countdown-15' + | 'countdown-20' + | 'countdown-25' + | 'countdown-30' + | 'countdown-35' + | 'countdown-40' + | 'countdown-45' + | 'countdown-50' + | 'countdown-55' + | 'countdown-60' + | 'creditcard' + | 'creditcard-fill' + | 'crop' + | 'crop-rotate' + | 'download' + | 'draghandle' + | 'draghandle-alt' + | 'emoji' + | 'emoji-fill' + | 'emoji-excited' + | 'emoji-sad' + | 'emoji-angry' + | 'emoji-thumbsup' + | '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' + | 'folder' + | 'forward' + | 'forward-fill' + | 'fullscreen' + | 'gif' + | 'gif-rectangle' + | 'gif-rectangle-fill' + | 'gift' + | 'globe' + | 'grid' + | 'grid-fill' + | 'grid-rectangle' + | 'grid-rectangle-fill' + | 'group' + | 'group-fill' + | 'heart' + | 'heart-plus' + | 'heart-fill' + | 'heart-plus-fill' + | 'help' + | 'help-fill' + | 'info' + | 'info-fill' + | 'invite' + | 'key' + | 'key-slash' + | 'leave' + | 'leave-rtl' + | 'link' + | 'link-alt' + | 'link-broken' + | 'link-slash' + | 'list-bullet' + | 'list-bullet-rtl' + | 'list-circle' + | 'list-circle-rtl' + | 'lock' + | 'lock-open' + | 'lock-fill' + | 'lock-open-fill' + | 'megaphone' + | 'menu' + | 'merge' + | 'message' + | 'message-badge' + | 'message-arrow' + | 'message-check' + | 'message-more' + | 'message-x' + | 'message-fill' + | 'message-badge-fill' + | 'message-arrow-fill' + | 'message-check-fill' + | 'message-more-fill' + | 'message-x-fill' + | 'mic' + | 'mic-fill' + | 'mic-slash' + | 'mic-slash-fill' + | 'minus' + | 'minus-circle' + | 'minus-square' + | 'minus-circle-fill' + | 'minus-square-fill' + | 'missed-incoming' + | 'missed-outgoing' + | 'moon' + | 'moon-slash' + | 'moon-fill' + | 'moon-slash-fill' + | 'more' + | 'more-circle' + | 'more-circle-fill' + | 'note' + | 'note-rtl' + | 'number' + | 'number-square' + | 'number-square-fill' + | 'officialbadge' + | 'officialbadge-fill' + | 'open' + | 'palette' + | 'palette-fill' + | 'pencil' + | 'pencil-fill' + | 'person' + | 'person-fill' + | 'person-circle' + | 'person-square' + | 'person-rectangle' + | 'phone' + | 'phone-fill' + | 'photo' + | 'photo-slash' + | 'piechart' + | 'piechart-fill' + | 'pin' + | 'pin-fill' + | 'pin-slash' + | 'pin-slash-fill' + | 'play' + | 'play-circle' + | 'play-square' + | 'play-fill' + | 'play-circle-fill' + | 'play-square-fill' + | 'plus' + | 'plus-circle' + | 'plus-square' + | 'plus-circle-fill' + | 'plus-square-fill' + | 'poll' + | 'poll-fill' + | 'qrcode' + | 'raisehand' + | 'raisehand-fill' + | 'receipt' + | 'receipt-rtl' + | 'recent' + | 'rectangle' + | 'rectangle-fill' + | 'redo' + | 'refresh' + | 'reply' + | 'reply-fill' + | 'rotate' + | 'scan' + | 'scribble' + | 'search' + | 'send' + | 'send-fill' + | 'settings' + | 'settings-fill' + | 'shield-check' + | 'shield-check-fill' + | 'square' + | 'square-fill' + | 'star' + | 'star-fill' + | 'sticker' + | 'stories' + | 'stories-fill' + | 'sun' + | 'sun-fill' + | 'sun-horizon' + | 'sun-horizon-fill' + | 'swap' + | 'thread' + | 'thread-fill' + | 'ticks' + | 'timer' + | 'timer-fill' + | 'timer-slash' + | 'timer-slash-fill' + | 'trash' + | 'trash-fill' + | 'tune' + | 'undo' + | 'upload' + | 'video' + | 'video-slash' + | 'video-fill' + | 'video-slash-fill' + | 'videocamera' + | 'videocamera-fill' + | 'videocamera-slash' + | 'videocamera-slash-fill' + | 'viewonce' + | 'viewonce-dash' + | 'wifi' + | 'x' + | 'x-circle' + | 'x-circle-fill' + | 'x-circle-dash' + | 'x-square' + | 'x-square-fill'; + +// Symbols that can only be used in +type AxoSymbolInlineGlyphOnlyName = + | 'check-double-circle' + | 'check-double-circle-fill' + | 'group-x' + | 'group-x-fill' + | 'person-check' + | 'person-plus' + | 'person-minus' + | 'person-x' + | 'person-question'; + +// 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' + | 'gif-rectangle' + | 'gif-rectangle-fill' + | 'grid-rectangle' + | 'grid-rectangle-fill' + | 'group' + | 'group-fill' + | 'invite' + | 'leave' + | 'leave-rtl' + | 'person-rectangle' + | 'photo' + | 'photo-slash' + | 'rectangle' + | 'rectangle-fill' + | 'video' + | 'video-slash' + | 'video-fill' + | 'video-slash-fill' + | 'videocamera' + | 'videocamera-fill' + | 'videocamera-slash' + | 'videocamera-slash-fill'; + +// Symbols that can be used in +export type AxoSymbolInlineGlyphName = + | AxoSymbolIconName + | AxoSymbolInlineGlyphOnlyName; + +type SymbolDef = string | { ltr: string; rtl: string }; +type IconDefsName = AxoSymbolIconName; +type InlineDefsName = + | AxoSymbolInlineGlyphOnlyName + | AxoSymbolInlineGlyphOverrideName; + +const IconDefs: Record = { + '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}', + '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}', + backup: '\u{E09F}', + badge: '\u{E099}', + 'badge-fill': '\u{E09A}', + 'badge-set': '\u{E0DA}', + 'badge-set-fill': '\u{E17D}', + bell: '\u{E01E}', + 'bell-slash': '\u{E01F}', + 'bell-ring': '\u{E020}', + block: '\u{E002}', + bolt: '\u{E0B8}', + boost: '\u{E0E2}', + calendar: '\u{E0A2}', + 'calendar-blank': '\u{E0A3}', + 'calendar-week': '\u{E0A4}', + 'calendar-one': '\u{E0A5}', + 'calendar-search': '\u{E0E3}', + camera: '\u{E0E4}', + 'camera-fill': '\u{E17E}', + 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}', + compose: '\u{E0EA}', + connections: '\u{E0AD}', + 'connections-fill': '\u{E185}', + copy: '\u{E0EB}', + 'copy-alt': '\u{E0EC}', + 'countdown-00': '\u{E048}', + 'countdown-05': '\u{E049}', + 'countdown-10': '\u{E04A}', + 'countdown-15': '\u{E04B}', + 'countdown-20': '\u{E04C}', + 'countdown-25': '\u{E04D}', + 'countdown-30': '\u{E04E}', + 'countdown-35': '\u{E04F}', + 'countdown-40': '\u{E050}', + 'countdown-45': '\u{E051}', + 'countdown-50': '\u{E052}', + 'countdown-55': '\u{E053}', + 'countdown-60': '\u{E054}', + creditcard: '\u{E127}', + 'creditcard-fill': '\u{E187}', + crop: '\u{E0ED}', + 'crop-rotate': '\u{E0EE}', + download: '\u{E0C8}', + draghandle: '\u{E0F5}', + 'draghandle-alt': '\u{E0F6}', + emoji: '\u{E18D}', + 'emoji-fill': '\u{E18E}', + 'emoji-excited': '\u{E0F9}', + 'emoji-sad': '\u{E0FA}', + 'emoji-angry': '\u{E0FB}', + 'emoji-thumbsup': '\u{E0FC}', + '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}', + folder: '\u{E0B2}', + 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}', + globe: '\u{E0B6}', + grid: '\u{E10E}', + 'grid-fill': '\u{E198}', + 'grid-rectangle': '\u{E10F}', + 'grid-rectangle-fill': '\u{E199}', + group: '\u{E19B}', + 'group-fill': '\u{E19D}', + heart: '\u{E039}', + 'heart-plus': '\u{E0B7}', + 'heart-fill': '\u{E1A4}', + '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-slash': '\u{E0BB}', + 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}', + lock: '\u{E041}', + 'lock-open': '\u{E07D}', + 'lock-fill': '\u{E1AD}', + 'lock-open-fill': '\u{E1AE}', + megaphone: '\u{E042}', + menu: '\u{E11B}', + merge: '\u{E043}', + message: '\u{E0A6}', + 'message-badge': '\u{E0A7}', + 'message-arrow': '\u{E0A8}', + 'message-check': '\u{E0A9}', + 'message-more': '\u{E0AA}', + 'message-x': '\u{E0AB}', + 'message-fill': '\u{E1AF}', + 'message-badge-fill': '\u{E1B0}', + 'message-arrow-fill': '\u{E1B1}', + 'message-check-fill': '\u{E1B2}', + 'message-more-fill': '\u{E1B3}', + 'message-x-fill': '\u{E1B4}', + mic: '\u{E055}', + 'mic-fill': '\u{E1B5}', + 'mic-slash': '\u{E056}', + 'mic-slash-fill': '\u{E1B6}', + minus: '\u{E1B7}', + 'minus-circle': '\u{E1B8}', + 'minus-square': '\u{E059}', + 'minus-circle-fill': '\u{E1B9}', + 'minus-square-fill': '\u{E1BA}', + 'missed-incoming': '\u{E05A}', + 'missed-outgoing': '\u{E05B}', + moon: '\u{E0BE}', + 'moon-slash': '\u{E209}', + 'moon-fill': '\u{E0D9}', + 'moon-slash-fill': '\u{E20A}', + more: '\u{E120}', + 'more-circle': '\u{E121}', + 'more-circle-fill': '\u{E208}', + note: '\u{E095}', + 'note-rtl': '\u{E096}', + number: '\u{E0BF}', + 'number-square': '\u{E0C0}', + 'number-square-fill': '\u{E1BC}', + officialbadge: '\u{E086}', + 'officialbadge-fill': '\u{E087}', + open: '\u{E0C1}', + palette: '\u{E0AC}', + 'palette-fill': '\u{E1BD}', + pencil: '\u{E030}', + 'pencil-fill': '\u{E1C1}', + person: '\u{E05D}', + 'person-fill': '\u{E1C3}', + 'person-circle': '\u{E05E}', + 'person-square': '\u{E129}', + 'person-rectangle': '\u{E12A}', + phone: '\u{E063}', + 'phone-fill': '\u{E064}', + 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}', + play: '\u{E067}', + 'play-circle': '\u{E068}', + 'play-square': '\u{E069}', + 'play-fill': '\u{E1CD}', + 'play-circle-fill': '\u{E1CE}', + 'play-square-fill': '\u{E1CF}', + plus: '\u{E1D1}', + 'plus-circle': '\u{E1D2}', + 'plus-square': '\u{E06C}', + 'plus-circle-fill': '\u{E1D3}', + 'plus-square-fill': '\u{E1D4}', + poll: '\u{E082}', + 'poll-fill': '\u{E083}', + 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}', + redo: '\u{E0C6}', + refresh: '\u{E0C4}', + reply: '\u{E06D}', + 'reply-fill': '\u{E06E}', + rotate: '\u{E137}', + scan: '\u{E138}', + scribble: '\u{E0F7}', + search: '\u{E0C7}', + send: '\u{E20B}', + 'send-fill': '\u{E0C9}', + settings: '\u{E0CA}', + 'settings-fill': '\u{E0CB}', + 'shield-check': '\u{E06F}', + 'shield-check-fill': '\u{E1D8}', + square: '\u{E161}', + 'square-fill': '\u{E1FB}', + star: '\u{E0AF}', + 'star-fill': '\u{E0B0}', + sticker: '\u{E070}', + 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}', + thread: '\u{E071}', + 'thread-fill': '\u{E072}', + ticks: '\u{E044}', + timer: '\u{E073}', + 'timer-fill': '\u{E1E0}', + 'timer-slash': '\u{E074}', + 'timer-slash-fill': '\u{E1E1}', + trash: '\u{E0D5}', + 'trash-fill': '\u{E0D6}', + tune: '\u{E15A}', + undo: '\u{E0C5}', + upload: '\u{E0D7}', + video: '\u{E1E2}', + 'video-slash': '\u{E1E3}', + 'video-fill': '\u{E1E4}', + '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}', + wifi: '\u{E15D}', + 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}', +} satisfies Record; + +const InlineDefs: Record = { + 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-double-circle': '\u{E046}', + 'check-double-circle-fill': '\u{E047}', + 'gif-rectangle': '\u{E097}', + 'gif-rectangle-fill': '\u{E098}', + 'grid-rectangle': '\u{E197}', + 'grid-rectangle-fill': '\u{E19A}', + group: '\u{E038}', + 'group-fill': '\u{E19E}', + 'group-x': '\u{E0AE}', + 'group-x-fill': '\u{E1A0}', + invite: '\u{E1A8}', + leave: '\u{E03C}', + 'leave-rtl': '\u{E03D}', + 'person-check': '\u{E05F}', + 'person-plus': '\u{E061}', + 'person-minus': '\u{E062}', + 'person-x': '\u{E060}', + 'person-question': '\u{E06A}', + 'person-rectangle': '\u{E1C2}', + photo: '\u{E065}', + 'photo-slash': '\u{E066}', + rectangle: '\u{E1D5}', + 'rectangle-fill': '\u{E1D7}', + video: '\u{E088}', + 'video-slash': '\u{E089}', + 'video-fill': '\u{E1E5}', + 'video-slash-fill': '\u{E1E7}', + videocamera: '\u{E075}', + 'videocamera-fill': '\u{E077}', + 'videocamera-slash': '\u{E076}', + 'videocamera-slash-fill': '\u{E1EC}', +} satisfies Record; + +export function _getAllAxoSymbolIconNames(): ReadonlyArray { + return Object.keys(IconDefs) as Array; +} + +export function _getAllAxoSymbolInlineGlyphNames(): ReadonlyArray { + return Object.keys(IconDefs) as Array; +} + +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]; +}