Source code for click_extra.spinner_presets

# Copyright Kevin Deldycke <kevin@deldycke.com> and contributors.
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
"""The bundled catalog of terminal spinner presets.

Ported from [cli-spinners](https://github.com/sindresorhus/cli-spinners),
with frame intervals converted from milliseconds to seconds.

```{note}
One upstream entry is deliberately absent. `timeTravel` is `clock` running
backwards, which upstream has to ship as a second preset because its renderers
only play frames forwards. {class}`~click_extra.spinner.Spinner` takes a
`reverse` argument, so the same animation is `SPINNERS["clock"]` with
`reverse=True` and a duplicate would only be a second name for it.
```

```{note}
The emoji frames are one cell narrower than upstream writes them. Upstream pads
each with a trailing space, so a terminal drawing the emoji one cell wide still
leaves a gap before whatever follows. Here that space is one cell too many:
{class}`~click_extra.spinner.Spinner` already writes one before its label, and
the pair reads as a double gap. A capture laid out on the frames alone also
reserves a column nothing is ever drawn in, which leaves the glyph off center.

Every frame of a preset is the same width, so a label never moves as the
animation turns. `weather` is the one upstream entry that was ragged, mixing
two- and three-cell frames.
```
"""

from __future__ import annotations

from typing import NamedTuple

TYPE_CHECKING = False
if TYPE_CHECKING:
    from typing import Final


ASCII_SPINNER_FRAMES: Final = ("-", "\\", "|", "/")
"""Plain ASCII animation frames, for terminals or fonts lacking Unicode glyphs."""

SPINNER_FRAMES: Final = ("โ ‹", "โ ™", "โ น", "โ ธ", "โ ผ", "โ ด", "โ ฆ", "โ ง", "โ ‡", "โ ")
"""Default animation frames: the ubiquitous Braille-dots spinner.

Ten frames give a smooth rotation in any UTF-8 terminal. Fall back to
{data}`ASCII_SPINNER_FRAMES` where Braille glyphs are unavailable.
"""


[docs] class SpinnerPreset(NamedTuple): """A named spinner animation: its frames and the interval they look best at. The {data}`~click_extra.spinner_presets.SPINNERS` catalog is ported from [cli-spinners](https://github.com/sindresorhus/cli-spinners), with intervals converted from milliseconds to seconds. Pass one to {class}`~click_extra.spinner.Spinner` via its `spinner` argument. """ frames: tuple[str, ...] """The animation frames, cycled in order.""" interval: float """Seconds between two frames, tuned per spinner upstream."""
# Single-code-point animations are packed as `tuple("frames")` to stay # one-liners; animations with multi-character frames keep an explicit tuple. SPINNERS: Final = { "dots": SpinnerPreset(SPINNER_FRAMES, 0.08), "dots2": SpinnerPreset(tuple("โฃพโฃฝโฃปโขฟโกฟโฃŸโฃฏโฃท"), 0.08), "dots3": SpinnerPreset(tuple("โ ‹โ ™โ šโ žโ –โ ฆโ ดโ ฒโ ณโ “"), 0.08), "dots4": SpinnerPreset(tuple("โ „โ †โ ‡โ ‹โ ™โ ธโ ฐโ  โ ฐโ ธโ ™โ ‹โ ‡โ †"), 0.08), "dots5": SpinnerPreset(tuple("โ ‹โ ™โ šโ ’โ ‚โ ‚โ ’โ ฒโ ดโ ฆโ –โ ’โ โ โ ’โ “โ ‹"), 0.08), "dots6": SpinnerPreset(tuple("โ โ ‰โ ™โ šโ ’โ ‚โ ‚โ ’โ ฒโ ดโ คโ „โ „โ คโ ดโ ฒโ ’โ ‚โ ‚โ ’โ šโ ™โ ‰โ "), 0.08), "dots7": SpinnerPreset(tuple("โ ˆโ ‰โ ‹โ “โ ’โ โ โ ’โ –โ ฆโ คโ  โ  โ คโ ฆโ –โ ’โ โ โ ’โ “โ ‹โ ‰โ ˆ"), 0.08), "dots8": SpinnerPreset(tuple("โ โ โ ‰โ ™โ šโ ’โ ‚โ ‚โ ’โ ฒโ ดโ คโ „โ „โ คโ  โ  โ คโ ฆโ –โ ’โ โ โ ’โ “โ ‹โ ‰โ ˆโ ˆ"), 0.08), "dots9": SpinnerPreset(tuple("โขนโขบโขผโฃธโฃ‡โกงโก—โก"), 0.08), "dots10": SpinnerPreset(tuple("โข„โข‚โขโกโกˆโกโก "), 0.08), "dots11": SpinnerPreset(tuple("โ โ ‚โ „โก€โข€โ  โ โ ˆ"), 0.1), "dots12": SpinnerPreset( ( "โข€โ €", "โก€โ €", "โ „โ €", "โข‚โ €", "โก‚โ €", "โ …โ €", "โขƒโ €", "โกƒโ €", "โ โ €", "โข‹โ €", "โก‹โ €", "โ โ ", "โข‹โ ", "โก‹โ ", "โ โ ‰", "โ ‹โ ‰", "โ ‹โ ‰", "โ ‰โ ™", "โ ‰โ ™", "โ ‰โ ฉ", "โ ˆโข™", "โ ˆโก™", "โขˆโ ฉ", "โก€โข™", "โ „โก™", "โข‚โ ฉ", "โก‚โข˜", "โ …โก˜", "โขƒโ จ", "โกƒโข", "โ โก", "โข‹โ  ", "โก‹โข€", "โ โก", "โข‹โ ", "โก‹โ ", "โ โ ‰", "โ ‹โ ‰", "โ ‹โ ‰", "โ ‰โ ™", "โ ‰โ ™", "โ ‰โ ฉ", "โ ˆโข™", "โ ˆโก™", "โ ˆโ ฉ", "โ €โข™", "โ €โก™", "โ €โ ฉ", "โ €โข˜", "โ €โก˜", "โ €โ จ", "โ €โข", "โ €โก", "โ €โ  ", "โ €โข€", "โ €โก€", ), 0.08, ), "dots13": SpinnerPreset(tuple("โฃผโฃนโขปโ ฟโกŸโฃโฃงโฃถ"), 0.08), "dots14": SpinnerPreset( ("โ ‰โ ‰", "โ ˆโ ™", "โ €โ น", "โ €โขธ", "โ €โฃฐ", "โข€โฃ ", "โฃ€โฃ€", "โฃ„โก€", "โฃ†โ €", "โก‡โ €", "โ โ €", "โ ‹โ "), 0.08 ), "dots-8bit": SpinnerPreset( tuple( "โ €โ โ ‚โ ƒโ „โ …โ †โ ‡โก€โกโก‚โกƒโก„โก…โก†โก‡โ ˆโ ‰โ Šโ ‹โ Œโ โ Žโ โกˆโก‰โกŠโก‹โกŒโกโกŽโกโ โ ‘โ ’โ “โ ”โ •โ –โ —โกโก‘โก’โก“โก”โก•โก–โก—โ ˜โ ™โ šโ ›โ œโ โ žโ Ÿโก˜โก™โกšโก›โกœโกโกžโกŸโ  โ กโ ขโ ฃโ คโ ฅโ ฆโ งโก โกกโกขโกฃโกคโกฅโกฆโกงโ จโ ฉโ ชโ ซโ ฌโ ญโ ฎโ ฏโกจโกฉโกชโกซโกฌโกญโกฎโกฏโ ฐโ ฑโ ฒโ ณโ ดโ ตโ ถโ ทโกฐโกฑโกฒโกณโกดโกตโกถโกทโ ธโ นโ บโ ปโ ผโ ฝโ พโ ฟโกธโกนโกบโกปโกผโกฝโกพโกฟโข€โขโข‚โขƒโข„โข…โข†โข‡โฃ€โฃโฃ‚โฃƒโฃ„โฃ…โฃ†โฃ‡โขˆโข‰โขŠโข‹โขŒโขโขŽโขโฃˆโฃ‰โฃŠโฃ‹โฃŒโฃโฃŽโฃโขโข‘โข’โข“โข”โข•โข–โข—โฃโฃ‘โฃ’โฃ“โฃ”โฃ•โฃ–โฃ—โข˜โข™โขšโข›โขœโขโขžโขŸโฃ˜โฃ™โฃšโฃ›โฃœโฃโฃžโฃŸโข โขกโขขโขฃโขคโขฅโขฆโขงโฃ โฃกโฃขโฃฃโฃคโฃฅโฃฆโฃงโขจโขฉโขชโขซโขฌโขญโขฎโขฏโฃจโฃฉโฃชโฃซโฃฌโฃญโฃฎโฃฏโขฐโขฑโขฒโขณโขดโขตโขถโขทโฃฐโฃฑโฃฒโฃณโฃดโฃตโฃถโฃทโขธโขนโขบโขปโขผโขฝโขพโขฟโฃธโฃนโฃบโฃปโฃผโฃฝโฃพโฃฟ" ), 0.08, ), "dots-circle": SpinnerPreset( ("โขŽ ", "โ Žโ ", "โ Šโ ‘", "โ ˆโ ฑ", " โกฑ", "โข€โกฐ", "โข„โก ", "โข†โก€"), 0.08 ), "sand": SpinnerPreset(tuple("โ โ ‚โ „โก€โกˆโกโก โฃ€โฃโฃ‚โฃ„โฃŒโฃ”โฃคโฃฅโฃฆโฃฎโฃถโฃทโฃฟโกฟโ ฟโขŸโ Ÿโก›โ ›โ ซโข‹โ ‹โ โก‰โ ‰โ ‘โ กโข"), 0.08), "line": SpinnerPreset(ASCII_SPINNER_FRAMES, 0.13), "line2": SpinnerPreset(tuple("โ ‚-โ€“โ€”โ€“-"), 0.1), "rolling-line": SpinnerPreset( ("/ ", " - ", " \\ ", " |", " |", " \\ ", " - ", "/ "), 0.08 ), "pipe": SpinnerPreset(tuple("โ”คโ”˜โ”ดโ””โ”œโ”Œโ”ฌโ”"), 0.1), "simple-dots": SpinnerPreset((". ", ".. ", "...", " "), 0.4), "simple-dots-scrolling": SpinnerPreset( (". ", ".. ", "...", " ..", " .", " "), 0.2 ), "star": SpinnerPreset(tuple("โœถโœธโœนโœบโœนโœท"), 0.07), "star2": SpinnerPreset(tuple("+x*"), 0.08), "flip": SpinnerPreset(tuple("___-``'ยด-___"), 0.07), "hamburger": SpinnerPreset(tuple("โ˜ฑโ˜ฒโ˜ด"), 0.1), "grow-vertical": SpinnerPreset(tuple("โ–โ–ƒโ–„โ–…โ–†โ–‡โ–†โ–…โ–„โ–ƒ"), 0.12), "grow-horizontal": SpinnerPreset(tuple("โ–โ–Žโ–โ–Œโ–‹โ–Šโ–‰โ–Šโ–‹โ–Œโ–โ–Ž"), 0.12), "balloon": SpinnerPreset(tuple(" .oO@* "), 0.14), "balloon2": SpinnerPreset(tuple(".oOยฐOo."), 0.12), "noise": SpinnerPreset(tuple("โ–“โ–’โ–‘"), 0.1), "bounce": SpinnerPreset(tuple("โ โ ‚โ „โ ‚"), 0.12), "box-bounce": SpinnerPreset(tuple("โ––โ–˜โ–โ–—"), 0.12), "box-bounce2": SpinnerPreset(tuple("โ–Œโ–€โ–โ–„"), 0.1), "triangle": SpinnerPreset(tuple("โ—ขโ—ฃโ—คโ—ฅ"), 0.05), "binary": SpinnerPreset( ( "010010", "001100", "100101", "111010", "111101", "010111", "101011", "111000", "110011", "110101", ), 0.08, ), "arc": SpinnerPreset(tuple("โ—œโ— โ—โ—žโ—กโ—Ÿ"), 0.1), "circle": SpinnerPreset(tuple("โ—กโŠ™โ— "), 0.12), "square-corners": SpinnerPreset(tuple("โ—ฐโ—ณโ—ฒโ—ฑ"), 0.18), "circle-quarters": SpinnerPreset(tuple("โ—ดโ—ทโ—ถโ—ต"), 0.12), "circle-halves": SpinnerPreset(tuple("โ—โ—“โ—‘โ—’"), 0.05), "squish": SpinnerPreset(tuple("โ•ซโ•ช"), 0.1), "toggle": SpinnerPreset(tuple("โŠถโŠท"), 0.25), "toggle2": SpinnerPreset(tuple("โ–ซโ–ช"), 0.08), "toggle3": SpinnerPreset(tuple("โ–กโ– "), 0.12), "toggle4": SpinnerPreset(tuple("โ– โ–กโ–ชโ–ซ"), 0.1), "toggle5": SpinnerPreset(tuple("โ–ฎโ–ฏ"), 0.1), "toggle6": SpinnerPreset(tuple("แ€แ€"), 0.3), "toggle7": SpinnerPreset(tuple("โฆพโฆฟ"), 0.08), "toggle8": SpinnerPreset(tuple("โ—โ—Œ"), 0.1), "toggle9": SpinnerPreset(tuple("โ—‰โ—Ž"), 0.1), "toggle10": SpinnerPreset(tuple("ใŠ‚ใŠ€ใЁ"), 0.1), "toggle11": SpinnerPreset(tuple("โง‡โง†"), 0.05), "toggle12": SpinnerPreset(tuple("โ˜—โ˜–"), 0.12), "toggle13": SpinnerPreset(tuple("=*-"), 0.08), "arrow": SpinnerPreset(tuple("โ†โ†–โ†‘โ†—โ†’โ†˜โ†“โ†™"), 0.1), "arrow2": SpinnerPreset(("โฌ†๏ธ", "โ†—๏ธ", "โžก๏ธ", "โ†˜๏ธ", "โฌ‡๏ธ", "โ†™๏ธ", "โฌ…๏ธ", "โ†–๏ธ"), 0.08), "arrow3": SpinnerPreset( ("โ–นโ–นโ–นโ–นโ–น", "โ–ธโ–นโ–นโ–นโ–น", "โ–นโ–ธโ–นโ–นโ–น", "โ–นโ–นโ–ธโ–นโ–น", "โ–นโ–นโ–นโ–ธโ–น", "โ–นโ–นโ–นโ–นโ–ธ"), 0.12 ), "bouncing-bar": SpinnerPreset( ( "[ ]", "[= ]", "[== ]", "[=== ]", "[====]", "[ ===]", "[ ==]", "[ =]", "[ ]", "[ =]", "[ ==]", "[ ===]", "[====]", "[=== ]", "[== ]", "[= ]", ), 0.08, ), "bouncing-ball": SpinnerPreset( ( "( โ— )", "( โ— )", "( โ— )", "( โ— )", "( โ—)", "( โ— )", "( โ— )", "( โ— )", "( โ— )", "(โ— )", ), 0.08, ), "smiley": SpinnerPreset(("๐Ÿ˜„", "๐Ÿ˜"), 0.2), "monkey": SpinnerPreset(("๐Ÿ™ˆ", "๐Ÿ™ˆ", "๐Ÿ™‰", "๐Ÿ™Š"), 0.3), "hearts": SpinnerPreset(("๐Ÿ’›", "๐Ÿ’™", "๐Ÿ’œ", "๐Ÿ’š", "๐Ÿ’—"), 0.1), "clock": SpinnerPreset( ( "๐Ÿ•›", "๐Ÿ•", "๐Ÿ•‘", "๐Ÿ•’", "๐Ÿ•“", "๐Ÿ•”", "๐Ÿ••", "๐Ÿ•–", "๐Ÿ•—", "๐Ÿ•˜", "๐Ÿ•™", "๐Ÿ•š", ), 0.1, ), "earth": SpinnerPreset(("๐ŸŒ", "๐ŸŒŽ", "๐ŸŒ"), 0.18), "material": SpinnerPreset( ( "โ–ˆโ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–", "โ–ˆโ–ˆโ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–", "โ–ˆโ–ˆโ–ˆโ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–", "โ–ˆโ–ˆโ–ˆโ–ˆโ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–", "โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–", "โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–", "โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–", "โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–", "โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–", "โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–", "โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–โ–โ–โ–โ–โ–โ–โ–โ–โ–", "โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–โ–โ–โ–โ–โ–โ–โ–โ–", "โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–โ–โ–โ–โ–โ–โ–", "โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–โ–โ–โ–โ–โ–", "โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–โ–โ–โ–โ–โ–", "โ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–โ–โ–โ–โ–", "โ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–โ–โ–โ–โ–", "โ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–โ–โ–โ–โ–", "โ–โ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–โ–โ–โ–", "โ–โ–โ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–โ–โ–", "โ–โ–โ–โ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–โ–โ–", "โ–โ–โ–โ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–โ–", "โ–โ–โ–โ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–โ–", "โ–โ–โ–โ–โ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–", "โ–โ–โ–โ–โ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–", "โ–โ–โ–โ–โ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–", "โ–โ–โ–โ–โ–โ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ", "โ–โ–โ–โ–โ–โ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ", "โ–โ–โ–โ–โ–โ–โ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ", "โ–โ–โ–โ–โ–โ–โ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ", "โ–โ–โ–โ–โ–โ–โ–โ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ", "โ–โ–โ–โ–โ–โ–โ–โ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ", "โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ", "โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ", "โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ", "โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ", "โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ", "โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ", "โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ", "โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ", "โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ", "โ–ˆโ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–ˆโ–ˆโ–ˆโ–ˆ", "โ–ˆโ–ˆโ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–ˆโ–ˆโ–ˆ", "โ–ˆโ–ˆโ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–ˆโ–ˆโ–ˆ", "โ–ˆโ–ˆโ–ˆโ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–ˆโ–ˆโ–ˆ", "โ–ˆโ–ˆโ–ˆโ–ˆโ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–ˆโ–ˆ", "โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–ˆ", "โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–ˆ", "โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–ˆ", "โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–", "โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–", "โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–", "โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–", "โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–", "โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–โ–โ–โ–โ–โ–โ–โ–โ–", "โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–โ–โ–โ–โ–โ–โ–โ–", "โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–โ–โ–โ–โ–โ–โ–โ–", "โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–โ–โ–โ–โ–โ–", "โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–โ–โ–โ–โ–โ–", "โ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–โ–โ–โ–โ–", "โ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–โ–โ–โ–โ–", "โ–โ–โ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–โ–โ–โ–", "โ–โ–โ–โ–โ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–โ–โ–", "โ–โ–โ–โ–โ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–โ–โ–", "โ–โ–โ–โ–โ–โ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–โ–โ–", "โ–โ–โ–โ–โ–โ–โ–โ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–โ–โ–", "โ–โ–โ–โ–โ–โ–โ–โ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–โ–โ–", "โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–โ–", "โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–โ–", "โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–", "โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–", "โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–", "โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–", "โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–", "โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ", "โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ", "โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ", "โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–ˆโ–ˆโ–ˆโ–ˆ", "โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–ˆโ–ˆโ–ˆโ–ˆ", "โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–ˆโ–ˆโ–ˆโ–ˆ", "โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–ˆโ–ˆโ–ˆ", "โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–ˆโ–ˆโ–ˆ", "โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–ˆโ–ˆ", "โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–ˆโ–ˆ", "โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–ˆโ–ˆ", "โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–ˆ", "โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–ˆ", "โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–ˆ", "โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–", "โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–", "โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–", "โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–โ–", ), 0.017, ), "moon": SpinnerPreset(("๐ŸŒ‘", "๐ŸŒ’", "๐ŸŒ“", "๐ŸŒ”", "๐ŸŒ•", "๐ŸŒ–", "๐ŸŒ—", "๐ŸŒ˜"), 0.08), "runner": SpinnerPreset(("๐Ÿšถ", "๐Ÿƒ"), 0.14), "pong": SpinnerPreset( ( "โ–โ ‚ โ–Œ", "โ–โ ˆ โ–Œ", "โ– โ ‚ โ–Œ", "โ– โ   โ–Œ", "โ– โก€ โ–Œ", "โ– โ   โ–Œ", "โ– โ ‚ โ–Œ", "โ– โ ˆ โ–Œ", "โ– โ ‚ โ–Œ", "โ– โ   โ–Œ", "โ– โก€ โ–Œ", "โ– โ   โ–Œ", "โ– โ ‚ โ–Œ", "โ– โ ˆ โ–Œ", "โ– โ ‚โ–Œ", "โ– โ  โ–Œ", "โ– โก€โ–Œ", "โ– โ   โ–Œ", "โ– โ ‚ โ–Œ", "โ– โ ˆ โ–Œ", "โ– โ ‚ โ–Œ", "โ– โ   โ–Œ", "โ– โก€ โ–Œ", "โ– โ   โ–Œ", "โ– โ ‚ โ–Œ", "โ– โ ˆ โ–Œ", "โ– โ ‚ โ–Œ", "โ– โ   โ–Œ", "โ– โก€ โ–Œ", "โ–โ   โ–Œ", ), 0.08, ), "shark": SpinnerPreset( ( "โ–|\\____________โ–Œ", "โ–_|\\___________โ–Œ", "โ–__|\\__________โ–Œ", "โ–___|\\_________โ–Œ", "โ–____|\\________โ–Œ", "โ–_____|\\_______โ–Œ", "โ–______|\\______โ–Œ", "โ–_______|\\_____โ–Œ", "โ–________|\\____โ–Œ", "โ–_________|\\___โ–Œ", "โ–__________|\\__โ–Œ", "โ–___________|\\_โ–Œ", "โ–____________|\\โ–Œ", "โ–____________/|โ–Œ", "โ–___________/|_โ–Œ", "โ–__________/|__โ–Œ", "โ–_________/|___โ–Œ", "โ–________/|____โ–Œ", "โ–_______/|_____โ–Œ", "โ–______/|______โ–Œ", "โ–_____/|_______โ–Œ", "โ–____/|________โ–Œ", "โ–___/|_________โ–Œ", "โ–__/|__________โ–Œ", "โ–_/|___________โ–Œ", "โ–/|____________โ–Œ", ), 0.12, ), "dqpb": SpinnerPreset(tuple("dqpb"), 0.1), "weather": SpinnerPreset( ( "โ˜€๏ธ", "โ˜€๏ธ", "โ˜€๏ธ", "๐ŸŒค ", "โ›…๏ธ", "๐ŸŒฅ ", "โ˜๏ธ", "๐ŸŒง ", "๐ŸŒจ ", "๐ŸŒง ", "๐ŸŒจ ", "๐ŸŒง ", "๐ŸŒจ ", "โ›ˆ ", "๐ŸŒจ ", "๐ŸŒง ", "๐ŸŒจ ", "โ˜๏ธ", "๐ŸŒฅ ", "โ›…๏ธ", "๐ŸŒค ", "โ˜€๏ธ", "โ˜€๏ธ", ), 0.1, ), "christmas": SpinnerPreset(tuple("๐ŸŒฒ๐ŸŽ„"), 0.4), "grenade": SpinnerPreset( ( "ุŒ ", "โ€ฒ ", " ยด ", " โ€พ ", " โธŒ", " โธŠ", " |", " โŽ", " โ•", " เทด ", " โ“", " ", " ", " ", ), 0.08, ), "point": SpinnerPreset(("โˆ™โˆ™โˆ™", "โ—โˆ™โˆ™", "โˆ™โ—โˆ™", "โˆ™โˆ™โ—", "โˆ™โˆ™โˆ™"), 0.125), "layer": SpinnerPreset(tuple("-=โ‰ก"), 0.15), "beta-wave": SpinnerPreset( ("ฯฮฒฮฒฮฒฮฒฮฒฮฒ", "ฮฒฯฮฒฮฒฮฒฮฒฮฒ", "ฮฒฮฒฯฮฒฮฒฮฒฮฒ", "ฮฒฮฒฮฒฯฮฒฮฒฮฒ", "ฮฒฮฒฮฒฮฒฯฮฒฮฒ", "ฮฒฮฒฮฒฮฒฮฒฯฮฒ", "ฮฒฮฒฮฒฮฒฮฒฮฒฯ"), 0.08, ), "finger-dance": SpinnerPreset(("๐Ÿค˜", "๐ŸคŸ", "๐Ÿ––", "โœ‹", "๐Ÿคš", "๐Ÿ‘†"), 0.16), "fist-bump": SpinnerPreset( ( "๐Ÿคœ\u3000\u3000\u3000\u3000๐Ÿค›", "๐Ÿคœ\u3000\u3000\u3000\u3000๐Ÿค›", "๐Ÿคœ\u3000\u3000\u3000\u3000๐Ÿค›", "\u3000๐Ÿคœ\u3000\u3000๐Ÿค›\u3000", "\u3000\u3000๐Ÿคœ๐Ÿค›\u3000\u3000", "\u3000๐Ÿคœโœจ๐Ÿค›\u3000\u3000", "๐Ÿคœ\u3000โœจ\u3000๐Ÿค›\u3000", ), 0.08, ), "soccer-header": SpinnerPreset( ( " ๐Ÿง‘โšฝ๏ธ ๐Ÿง‘", "๐Ÿง‘ โšฝ๏ธ ๐Ÿง‘", "๐Ÿง‘ โšฝ๏ธ ๐Ÿง‘", "๐Ÿง‘ โšฝ๏ธ ๐Ÿง‘", "๐Ÿง‘ โšฝ๏ธ ๐Ÿง‘", "๐Ÿง‘ โšฝ๏ธ ๐Ÿง‘", "๐Ÿง‘ โšฝ๏ธ๐Ÿง‘ ", "๐Ÿง‘ โšฝ๏ธ ๐Ÿง‘", "๐Ÿง‘ โšฝ๏ธ ๐Ÿง‘", "๐Ÿง‘ โšฝ๏ธ ๐Ÿง‘", "๐Ÿง‘ โšฝ๏ธ ๐Ÿง‘", "๐Ÿง‘ โšฝ๏ธ ๐Ÿง‘", ), 0.08, ), "mindblown": SpinnerPreset( ( "๐Ÿ˜", "๐Ÿ˜", "๐Ÿ˜ฎ", "๐Ÿ˜ฎ", "๐Ÿ˜ฆ", "๐Ÿ˜ฆ", "๐Ÿ˜ง", "๐Ÿ˜ง", "๐Ÿคฏ", "๐Ÿ’ฅ", "โœจ", "\u3000", "\u3000", "\u3000", ), 0.16, ), "speaker": SpinnerPreset(("๐Ÿ”ˆ", "๐Ÿ”‰", "๐Ÿ”Š", "๐Ÿ”‰"), 0.16), "orange-pulse": SpinnerPreset(("๐Ÿ”ธ", "๐Ÿ”ถ", "๐ŸŸ ", "๐ŸŸ ", "๐Ÿ”ถ"), 0.1), "blue-pulse": SpinnerPreset(("๐Ÿ”น", "๐Ÿ”ท", "๐Ÿ”ต", "๐Ÿ”ต", "๐Ÿ”ท"), 0.1), "orange-blue-pulse": SpinnerPreset( ("๐Ÿ”ธ", "๐Ÿ”ถ", "๐ŸŸ ", "๐ŸŸ ", "๐Ÿ”ถ", "๐Ÿ”น", "๐Ÿ”ท", "๐Ÿ”ต", "๐Ÿ”ต", "๐Ÿ”ท"), 0.1 ), "aesthetic": SpinnerPreset( ( "โ–ฐโ–ฑโ–ฑโ–ฑโ–ฑโ–ฑโ–ฑ", "โ–ฐโ–ฐโ–ฑโ–ฑโ–ฑโ–ฑโ–ฑ", "โ–ฐโ–ฐโ–ฐโ–ฑโ–ฑโ–ฑโ–ฑ", "โ–ฐโ–ฐโ–ฐโ–ฐโ–ฑโ–ฑโ–ฑ", "โ–ฐโ–ฐโ–ฐโ–ฐโ–ฐโ–ฑโ–ฑ", "โ–ฐโ–ฐโ–ฐโ–ฐโ–ฐโ–ฐโ–ฑ", "โ–ฐโ–ฐโ–ฐโ–ฐโ–ฐโ–ฐโ–ฐ", "โ–ฐโ–ฑโ–ฑโ–ฑโ–ฑโ–ฑโ–ฑ", ), 0.08, ), "dwarf-fortress": SpinnerPreset( ( " โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆยฃยฃยฃ ", "โ˜บโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆยฃยฃยฃ ", "โ˜บโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆยฃยฃยฃ ", "โ˜บโ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆยฃยฃยฃ ", "โ˜บโ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆยฃยฃยฃ ", "โ˜บโ–’โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆยฃยฃยฃ ", "โ˜บโ–’โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆยฃยฃยฃ ", "โ˜บโ–‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆยฃยฃยฃ ", "โ˜บโ–‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆยฃยฃยฃ ", "โ˜บ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆยฃยฃยฃ ", " โ˜บโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆยฃยฃยฃ ", " โ˜บโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆยฃยฃยฃ ", " โ˜บโ–“โ–ˆโ–ˆโ–ˆโ–ˆยฃยฃยฃ ", " โ˜บโ–“โ–ˆโ–ˆโ–ˆโ–ˆยฃยฃยฃ ", " โ˜บโ–’โ–ˆโ–ˆโ–ˆโ–ˆยฃยฃยฃ ", " โ˜บโ–’โ–ˆโ–ˆโ–ˆโ–ˆยฃยฃยฃ ", " โ˜บโ–‘โ–ˆโ–ˆโ–ˆโ–ˆยฃยฃยฃ ", " โ˜บโ–‘โ–ˆโ–ˆโ–ˆโ–ˆยฃยฃยฃ ", " โ˜บ โ–ˆโ–ˆโ–ˆโ–ˆยฃยฃยฃ ", " โ˜บโ–ˆโ–ˆโ–ˆโ–ˆยฃยฃยฃ ", " โ˜บโ–ˆโ–ˆโ–ˆโ–ˆยฃยฃยฃ ", " โ˜บโ–“โ–ˆโ–ˆโ–ˆยฃยฃยฃ ", " โ˜บโ–“โ–ˆโ–ˆโ–ˆยฃยฃยฃ ", " โ˜บโ–’โ–ˆโ–ˆโ–ˆยฃยฃยฃ ", " โ˜บโ–’โ–ˆโ–ˆโ–ˆยฃยฃยฃ ", " โ˜บโ–‘โ–ˆโ–ˆโ–ˆยฃยฃยฃ ", " โ˜บโ–‘โ–ˆโ–ˆโ–ˆยฃยฃยฃ ", " โ˜บ โ–ˆโ–ˆโ–ˆยฃยฃยฃ ", " โ˜บโ–ˆโ–ˆโ–ˆยฃยฃยฃ ", " โ˜บโ–ˆโ–ˆโ–ˆยฃยฃยฃ ", " โ˜บโ–“โ–ˆโ–ˆยฃยฃยฃ ", " โ˜บโ–“โ–ˆโ–ˆยฃยฃยฃ ", " โ˜บโ–’โ–ˆโ–ˆยฃยฃยฃ ", " โ˜บโ–’โ–ˆโ–ˆยฃยฃยฃ ", " โ˜บโ–‘โ–ˆโ–ˆยฃยฃยฃ ", " โ˜บโ–‘โ–ˆโ–ˆยฃยฃยฃ ", " โ˜บ โ–ˆโ–ˆยฃยฃยฃ ", " โ˜บโ–ˆโ–ˆยฃยฃยฃ ", " โ˜บโ–ˆโ–ˆยฃยฃยฃ ", " โ˜บโ–“โ–ˆยฃยฃยฃ ", " โ˜บโ–“โ–ˆยฃยฃยฃ ", " โ˜บโ–’โ–ˆยฃยฃยฃ ", " โ˜บโ–’โ–ˆยฃยฃยฃ ", " โ˜บโ–‘โ–ˆยฃยฃยฃ ", " โ˜บโ–‘โ–ˆยฃยฃยฃ ", " โ˜บ โ–ˆยฃยฃยฃ ", " โ˜บโ–ˆยฃยฃยฃ ", " โ˜บโ–ˆยฃยฃยฃ ", " โ˜บโ–“ยฃยฃยฃ ", " โ˜บโ–“ยฃยฃยฃ ", " โ˜บโ–’ยฃยฃยฃ ", " โ˜บโ–’ยฃยฃยฃ ", " โ˜บโ–‘ยฃยฃยฃ ", " โ˜บโ–‘ยฃยฃยฃ ", " โ˜บ ยฃยฃยฃ ", " โ˜บยฃยฃยฃ ", " โ˜บยฃยฃยฃ ", " โ˜บโ–“ยฃยฃ ", " โ˜บโ–“ยฃยฃ ", " โ˜บโ–’ยฃยฃ ", " โ˜บโ–’ยฃยฃ ", " โ˜บโ–‘ยฃยฃ ", " โ˜บโ–‘ยฃยฃ ", " โ˜บ ยฃยฃ ", " โ˜บยฃยฃ ", " โ˜บยฃยฃ ", " โ˜บโ–“ยฃ ", " โ˜บโ–“ยฃ ", " โ˜บโ–’ยฃ ", " โ˜บโ–’ยฃ ", " โ˜บโ–‘ยฃ ", " โ˜บโ–‘ยฃ ", " โ˜บ ยฃ ", " โ˜บยฃ ", " โ˜บยฃ ", " โ˜บโ–“ ", " โ˜บโ–“ ", " โ˜บโ–’ ", " โ˜บโ–’ ", " โ˜บโ–‘ ", " โ˜บโ–‘ ", " โ˜บ ", " โ˜บ &", " โ˜บ โ˜ผ&", " โ˜บ โ˜ผ &", " โ˜บโ˜ผ &", " โ˜บโ˜ผ & ", " โ€ผ & ", " โ˜บ & ", " โ€ผ & ", " โ˜บ & ", " โ€ผ & ", " โ˜บ & ", "โ€ผ & ", " & ", " & ", " & โ–‘ ", " & โ–’ ", " & โ–“ ", " & ยฃ ", " & โ–‘ยฃ ", " & โ–’ยฃ ", " & โ–“ยฃ ", " & ยฃยฃ ", " & โ–‘ยฃยฃ ", " & โ–’ยฃยฃ ", "& โ–“ยฃยฃ ", "& ยฃยฃยฃ ", " โ–‘ยฃยฃยฃ ", " โ–’ยฃยฃยฃ ", " โ–“ยฃยฃยฃ ", " โ–ˆยฃยฃยฃ ", " โ–‘โ–ˆยฃยฃยฃ ", " โ–’โ–ˆยฃยฃยฃ ", " โ–“โ–ˆยฃยฃยฃ ", " โ–ˆโ–ˆยฃยฃยฃ ", " โ–‘โ–ˆโ–ˆยฃยฃยฃ ", " โ–’โ–ˆโ–ˆยฃยฃยฃ ", " โ–“โ–ˆโ–ˆยฃยฃยฃ ", " โ–ˆโ–ˆโ–ˆยฃยฃยฃ ", " โ–‘โ–ˆโ–ˆโ–ˆยฃยฃยฃ ", " โ–’โ–ˆโ–ˆโ–ˆยฃยฃยฃ ", " โ–“โ–ˆโ–ˆโ–ˆยฃยฃยฃ ", " โ–ˆโ–ˆโ–ˆโ–ˆยฃยฃยฃ ", " โ–‘โ–ˆโ–ˆโ–ˆโ–ˆยฃยฃยฃ ", " โ–’โ–ˆโ–ˆโ–ˆโ–ˆยฃยฃยฃ ", " โ–“โ–ˆโ–ˆโ–ˆโ–ˆยฃยฃยฃ ", " โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆยฃยฃยฃ ", " โ–‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆยฃยฃยฃ ", " โ–’โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆยฃยฃยฃ ", " โ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆยฃยฃยฃ ", " โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆยฃยฃยฃ ", " โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆยฃยฃยฃ ", ), 0.08, ), "fish": SpinnerPreset( ( "~~~~~~~~~~~~~~~~~~~~", "> ~~~~~~~~~~~~~~~~~~", "ยบ> ~~~~~~~~~~~~~~~~~", "(ยบ> ~~~~~~~~~~~~~~~~", "((ยบ> ~~~~~~~~~~~~~~~", "<((ยบ> ~~~~~~~~~~~~~~", "><((ยบ> ~~~~~~~~~~~~~", " ><((ยบ> ~~~~~~~~~~~~", "~ ><((ยบ> ~~~~~~~~~~~", "~~ <>((ยบ> ~~~~~~~~~~", "~~~ ><((ยบ> ~~~~~~~~~", "~~~~ <>((ยบ> ~~~~~~~~", "~~~~~ ><((ยบ> ~~~~~~~", "~~~~~~ <>((ยบ> ~~~~~~", "~~~~~~~ ><((ยบ> ~~~~~", "~~~~~~~~ <>((ยบ> ~~~~", "~~~~~~~~~ ><((ยบ> ~~~", "~~~~~~~~~~ <>((ยบ> ~~", "~~~~~~~~~~~ ><((ยบ> ~", "~~~~~~~~~~~~ <>((ยบ> ", "~~~~~~~~~~~~~ ><((ยบ>", "~~~~~~~~~~~~~~ <>((ยบ", "~~~~~~~~~~~~~~~ ><((", "~~~~~~~~~~~~~~~~ <>(", "~~~~~~~~~~~~~~~~~ ><", "~~~~~~~~~~~~~~~~~~ <", "~~~~~~~~~~~~~~~~~~~~", ), 0.08, ), } """Named spinner animations ported from cli-spinners, keyed by name. Each value is a {class}`SpinnerPreset` bundling frames and a tuned interval. Select one with {class}`~click_extra.spinner.Spinner`'s `spinner` argument:: from click_extra import Spinner, SPINNERS with Spinner("Brewing tea", spinner=SPINNERS["moon"]): ... Unlike the upstream `\\b`-based renderers, {class}`~click_extra.spinner.Spinner` redraws the whole line, so the multi-character animations (`bouncingBar`, `pong`, `shark`, โ€ฆ) render correctly here. """