diff --git a/resources/scripts/Generate-Spinners.ps1 b/resources/scripts/Generate-Spinners.ps1 index 1c605aa3..c9648449 100644 --- a/resources/scripts/Generate-Spinners.ps1 +++ b/resources/scripts/Generate-Spinners.ps1 @@ -19,4 +19,4 @@ if(!$?) { Pop-Location # Copy the files to the correct location -Copy-Item (Join-Path "$Output" "Spinner.Generated.cs") -Destination "$Source/Widgets/Progress/Spinner.Generated.cs" +Copy-Item (Join-Path "$Output" "Spinner.Generated.cs") -Destination "$Source/Live/Progress/Spinner.Generated.cs" diff --git a/resources/scripts/Generator/Data/spinners_sindresorhus.json b/resources/scripts/Generator/Data/spinners_sindresorhus.json index 2cbcc35d..93767b73 100644 --- a/resources/scripts/Generator/Data/spinners_sindresorhus.json +++ b/resources/scripts/Generator/Data/spinners_sindresorhus.json @@ -286,6 +286,38 @@ "⠀⡀" ] }, + "dots13": { + "interval": 80, + "unicode": true, + "frames": [ + "⣼", + "⣹", + "⢻", + "⠿", + "⡟", + "⣏", + "⣧", + "⣶" + ] + }, + "dots14": { + "interval": 80, + "unicode": true, + "frames": [ + "⠉⠉", + "⠈⠙", + "⠀⠹", + "⠀⢸", + "⠀⣰", + "⢀⣠", + "⣀⣀", + "⣄⡀", + "⣆⠀", + "⡇⠀", + "⠏⠀", + "⠋⠁" + ] + }, "dots8Bit": { "interval": 80, "unicode": true, @@ -548,6 +580,61 @@ "⣿" ] }, + "dotsCircle": { + "interval": 80, + "unicode": true, + "frames": [ + "⢎ ", + "⠎⠁", + "⠊⠑", + "⠈⠱", + " ⡱", + "⢀⡰", + "⢄⡠", + "⢆⡀" + ] + }, + "sand": { + "interval": 80, + "unicode": true, + "frames": [ + "⠁", + "⠂", + "⠄", + "⡀", + "⡈", + "⡐", + "⡠", + "⣀", + "⣁", + "⣂", + "⣄", + "⣌", + "⣔", + "⣤", + "⣥", + "⣦", + "⣮", + "⣶", + "⣷", + "⣿", + "⡿", + "⠿", + "⢟", + "⠟", + "⡛", + "⠛", + "⠫", + "⢋", + "⠋", + "⠍", + "⡉", + "⠉", + "⠑", + "⠡", + "⢁" + ] + }, "line": { "interval": 130, "unicode": false, @@ -763,6 +850,22 @@ "◥" ] }, + "binary": { + "interval": 80, + "unicode": false, + "frames": [ + "010010", + "001100", + "100101", + "111010", + "111101", + "010111", + "101011", + "111000", + "110011", + "110101" + ] + }, "arc": { "interval": 100, "unicode": true, @@ -978,6 +1081,7 @@ "[= ]", "[== ]", "[=== ]", + "[====]", "[ ===]", "[ ==]", "[ =]", @@ -1302,8 +1406,8 @@ "interval": 80, "unicode": true, "frames": [ - "، ", - "′ ", + "، ", + "′ ", " ´ ", " ‾ ", " ⸌", @@ -1351,6 +1455,135 @@ "ββββββρ" ] }, + "fingerDance": { + "interval": 160, + "unicode": true, + "frames": [ + "🤘 ", + "🤟 ", + "🖖 ", + "✋ ", + "🤚 ", + "👆 " + ] + }, + "fistBump": { + "interval": 80, + "unicode": true, + "frames": [ + "🤜\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 " + ] + }, + "soccerHeader": { + "interval": 80, + "unicode": true, + "frames": [ + " 🧑⚽️ 🧑 ", + "🧑 ⚽️ 🧑 ", + "🧑 ⚽️ 🧑 ", + "🧑 ⚽️ 🧑 ", + "🧑 ⚽️ 🧑 ", + "🧑 ⚽️ 🧑 ", + "🧑 ⚽️🧑 ", + "🧑 ⚽️ 🧑 ", + "🧑 ⚽️ 🧑 ", + "🧑 ⚽️ 🧑 ", + "🧑 ⚽️ 🧑 ", + "🧑 ⚽️ 🧑 " + ] + }, + "mindblown": { + "interval": 160, + "unicode": true, + "frames": [ + "😐 ", + "😐 ", + "😮 ", + "😮 ", + "😦 ", + "😦 ", + "😧 ", + "😧 ", + "🤯 ", + "💥 ", + "✨ ", + "\u3000 ", + "\u3000 ", + "\u3000 " + ] + }, + "speaker": { + "interval": 160, + "unicode": true, + "frames": [ + "🔈 ", + "🔉 ", + "🔊 ", + "🔉 " + ] + }, + "orangePulse": { + "interval": 100, + "unicode": true, + "frames": [ + "🔸 ", + "🔶 ", + "🟠 ", + "🟠 ", + "🔶 " + ] + }, + "bluePulse": { + "interval": 100, + "unicode": true, + "frames": [ + "🔹 ", + "🔷 ", + "🔵 ", + "🔵 ", + "🔷 " + ] + }, + "orangeBluePulse": { + "interval": 100, + "unicode": true, + "frames": [ + "🔸 ", + "🔶 ", + "🟠 ", + "🟠 ", + "🔶 ", + "🔹 ", + "🔷 ", + "🔵 ", + "🔵 ", + "🔷 " + ] + }, + "timeTravel": { + "interval": 100, + "unicode": true, + "frames": [ + "🕛 ", + "🕚 ", + "🕙 ", + "🕘 ", + "🕗 ", + "🕖 ", + "🕕 ", + "🕔 ", + "🕓 ", + "🕒 ", + "🕑 ", + "🕐 " + ] + }, "aesthetic": { "interval": 80, "unicode": true, @@ -1364,5 +1597,144 @@ "▰▰▰▰▰▰▰", "▰▱▱▱▱▱▱" ] + }, + "dwarfFortress": { + "interval": 80, + "unicode": true, + "frames": [ + " ██████£££ ", + "☺██████£££ ", + "☺██████£££ ", + "☺▓█████£££ ", + "☺▓█████£££ ", + "☺▒█████£££ ", + "☺▒█████£££ ", + "☺░█████£££ ", + "☺░█████£££ ", + "☺ █████£££ ", + " ☺█████£££ ", + " ☺█████£££ ", + " ☺▓████£££ ", + " ☺▓████£££ ", + " ☺▒████£££ ", + " ☺▒████£££ ", + " ☺░████£££ ", + " ☺░████£££ ", + " ☺ ████£££ ", + " ☺████£££ ", + " ☺████£££ ", + " ☺▓███£££ ", + " ☺▓███£££ ", + " ☺▒███£££ ", + " ☺▒███£££ ", + " ☺░███£££ ", + " ☺░███£££ ", + " ☺ ███£££ ", + " ☺███£££ ", + " ☺███£££ ", + " ☺▓██£££ ", + " ☺▓██£££ ", + " ☺▒██£££ ", + " ☺▒██£££ ", + " ☺░██£££ ", + " ☺░██£££ ", + " ☺ ██£££ ", + " ☺██£££ ", + " ☺██£££ ", + " ☺▓█£££ ", + " ☺▓█£££ ", + " ☺▒█£££ ", + " ☺▒█£££ ", + " ☺░█£££ ", + " ☺░█£££ ", + " ☺ █£££ ", + " ☺█£££ ", + " ☺█£££ ", + " ☺▓£££ ", + " ☺▓£££ ", + " ☺▒£££ ", + " ☺▒£££ ", + " ☺░£££ ", + " ☺░£££ ", + " ☺ £££ ", + " ☺£££ ", + " ☺£££ ", + " ☺▓££ ", + " ☺▓££ ", + " ☺▒££ ", + " ☺▒££ ", + " ☺░££ ", + " ☺░££ ", + " ☺ ££ ", + " ☺££ ", + " ☺££ ", + " ☺▓£ ", + " ☺▓£ ", + " ☺▒£ ", + " ☺▒£ ", + " ☺░£ ", + " ☺░£ ", + " ☺ £ ", + " ☺£ ", + " ☺£ ", + " ☺▓ ", + " ☺▓ ", + " ☺▒ ", + " ☺▒ ", + " ☺░ ", + " ☺░ ", + " ☺ ", + " ☺ &", + " ☺ ☼&", + " ☺ ☼ &", + " ☺☼ &", + " ☺☼ & ", + " ‼ & ", + " ☺ & ", + " ‼ & ", + " ☺ & ", + " ‼ & ", + " ☺ & ", + "‼ & ", + " & ", + " & ", + " & ░ ", + " & ▒ ", + " & ▓ ", + " & £ ", + " & ░£ ", + " & ▒£ ", + " & ▓£ ", + " & ££ ", + " & ░££ ", + " & ▒££ ", + "& ▓££ ", + "& £££ ", + " ░£££ ", + " ▒£££ ", + " ▓£££ ", + " █£££ ", + " ░█£££ ", + " ▒█£££ ", + " ▓█£££ ", + " ██£££ ", + " ░██£££ ", + " ▒██£££ ", + " ▓██£££ ", + " ███£££ ", + " ░███£££ ", + " ▒███£££ ", + " ▓███£££ ", + " ████£££ ", + " ░████£££ ", + " ▒████£££ ", + " ▓████£££ ", + " █████£££ ", + " ░█████£££ ", + " ▒█████£££ ", + " ▓█████£££ ", + " ██████£££ ", + " ██████£££ " + ] } } \ No newline at end of file diff --git a/src/Spectre.Console/Live/Progress/Spinner.Generated.cs b/src/Spectre.Console/Live/Progress/Spinner.Generated.cs index 26c61a17..e9fb013f 100644 --- a/src/Spectre.Console/Live/Progress/Spinner.Generated.cs +++ b/src/Spectre.Console/Live/Progress/Spinner.Generated.cs @@ -360,6 +360,42 @@ namespace Spectre.Console "⠀⡀", }; } + private sealed class Dots13Spinner : Spinner + { + public override TimeSpan Interval => TimeSpan.FromMilliseconds(80); + public override bool IsUnicode => true; + public override IReadOnlyList Frames => new List + { + "⣼", + "⣹", + "⢻", + "⠿", + "⡟", + "⣏", + "⣧", + "⣶", + }; + } + private sealed class Dots14Spinner : Spinner + { + public override TimeSpan Interval => TimeSpan.FromMilliseconds(80); + public override bool IsUnicode => true; + public override IReadOnlyList Frames => new List + { + "⠉⠉", + "⠈⠙", + "⠀⠹", + "⠀⢸", + "⠀⣰", + "⢀⣠", + "⣀⣀", + "⣄⡀", + "⣆⠀", + "⡇⠀", + "⠏⠀", + "⠋⠁", + }; + } private sealed class Dots8BitSpinner : Spinner { public override TimeSpan Interval => TimeSpan.FromMilliseconds(80); @@ -624,6 +660,65 @@ namespace Spectre.Console "⣿", }; } + private sealed class DotsCircleSpinner : Spinner + { + public override TimeSpan Interval => TimeSpan.FromMilliseconds(80); + public override bool IsUnicode => true; + public override IReadOnlyList Frames => new List + { + "⢎ ", + "⠎⠁", + "⠊⠑", + "⠈⠱", + " ⡱", + "⢀⡰", + "⢄⡠", + "⢆⡀", + }; + } + private sealed class SandSpinner : Spinner + { + public override TimeSpan Interval => TimeSpan.FromMilliseconds(80); + public override bool IsUnicode => true; + public override IReadOnlyList Frames => new List + { + "⠁", + "⠂", + "⠄", + "⡀", + "⡈", + "⡐", + "⡠", + "⣀", + "⣁", + "⣂", + "⣄", + "⣌", + "⣔", + "⣤", + "⣥", + "⣦", + "⣮", + "⣶", + "⣷", + "⣿", + "⡿", + "⠿", + "⢟", + "⠟", + "⡛", + "⠛", + "⠫", + "⢋", + "⠋", + "⠍", + "⡉", + "⠉", + "⠑", + "⠡", + "⢁", + }; + } private sealed class LineSpinner : Spinner { public override TimeSpan Interval => TimeSpan.FromMilliseconds(130); @@ -875,6 +970,24 @@ namespace Spectre.Console "◥", }; } + private sealed class BinarySpinner : Spinner + { + public override TimeSpan Interval => TimeSpan.FromMilliseconds(80); + public override bool IsUnicode => false; + public override IReadOnlyList Frames => new List + { + "010010", + "001100", + "100101", + "111010", + "111101", + "010111", + "101011", + "111000", + "110011", + "110101", + }; + } private sealed class ArcSpinner : Spinner { public override TimeSpan Interval => TimeSpan.FromMilliseconds(100); @@ -1136,6 +1249,7 @@ namespace Spectre.Console "[= ]", "[== ]", "[=== ]", + "[====]", "[ ===]", "[ ==]", "[ =]", @@ -1490,8 +1604,8 @@ namespace Spectre.Console public override bool IsUnicode => true; public override IReadOnlyList Frames => new List { - "، ", - "′ ", + "، ", + "′ ", " ´ ", " ‾ ", " ⸌", @@ -1545,6 +1659,153 @@ namespace Spectre.Console "ββββββρ", }; } + private sealed class FingerDanceSpinner : Spinner + { + public override TimeSpan Interval => TimeSpan.FromMilliseconds(160); + public override bool IsUnicode => true; + public override IReadOnlyList Frames => new List + { + "🤘 ", + "🤟 ", + "🖖 ", + "✋ ", + "🤚 ", + "👆 ", + }; + } + private sealed class FistBumpSpinner : Spinner + { + public override TimeSpan Interval => TimeSpan.FromMilliseconds(80); + public override bool IsUnicode => true; + public override IReadOnlyList Frames => new List + { + "🤜    🤛 ", + "🤜    🤛 ", + "🤜    🤛 ", + " 🤜  🤛  ", + "  🤜🤛   ", + " 🤜✨🤛   ", + "🤜 ✨ 🤛  ", + }; + } + private sealed class SoccerHeaderSpinner : Spinner + { + public override TimeSpan Interval => TimeSpan.FromMilliseconds(80); + public override bool IsUnicode => true; + public override IReadOnlyList Frames => new List + { + " 🧑⚽️ 🧑 ", + "🧑 ⚽️ 🧑 ", + "🧑 ⚽️ 🧑 ", + "🧑 ⚽️ 🧑 ", + "🧑 ⚽️ 🧑 ", + "🧑 ⚽️ 🧑 ", + "🧑 ⚽️🧑 ", + "🧑 ⚽️ 🧑 ", + "🧑 ⚽️ 🧑 ", + "🧑 ⚽️ 🧑 ", + "🧑 ⚽️ 🧑 ", + "🧑 ⚽️ 🧑 ", + }; + } + private sealed class MindblownSpinner : Spinner + { + public override TimeSpan Interval => TimeSpan.FromMilliseconds(160); + public override bool IsUnicode => true; + public override IReadOnlyList Frames => new List + { + "😐 ", + "😐 ", + "😮 ", + "😮 ", + "😦 ", + "😦 ", + "😧 ", + "😧 ", + "🤯 ", + "💥 ", + "✨ ", + "  ", + "  ", + "  ", + }; + } + private sealed class SpeakerSpinner : Spinner + { + public override TimeSpan Interval => TimeSpan.FromMilliseconds(160); + public override bool IsUnicode => true; + public override IReadOnlyList Frames => new List + { + "🔈 ", + "🔉 ", + "🔊 ", + "🔉 ", + }; + } + private sealed class OrangePulseSpinner : Spinner + { + public override TimeSpan Interval => TimeSpan.FromMilliseconds(100); + public override bool IsUnicode => true; + public override IReadOnlyList Frames => new List + { + "🔸 ", + "🔶 ", + "🟠 ", + "🟠 ", + "🔶 ", + }; + } + private sealed class BluePulseSpinner : Spinner + { + public override TimeSpan Interval => TimeSpan.FromMilliseconds(100); + public override bool IsUnicode => true; + public override IReadOnlyList Frames => new List + { + "🔹 ", + "🔷 ", + "🔵 ", + "🔵 ", + "🔷 ", + }; + } + private sealed class OrangeBluePulseSpinner : Spinner + { + public override TimeSpan Interval => TimeSpan.FromMilliseconds(100); + public override bool IsUnicode => true; + public override IReadOnlyList Frames => new List + { + "🔸 ", + "🔶 ", + "🟠 ", + "🟠 ", + "🔶 ", + "🔹 ", + "🔷 ", + "🔵 ", + "🔵 ", + "🔷 ", + }; + } + private sealed class TimeTravelSpinner : Spinner + { + public override TimeSpan Interval => TimeSpan.FromMilliseconds(100); + public override bool IsUnicode => true; + public override IReadOnlyList Frames => new List + { + "🕛 ", + "🕚 ", + "🕙 ", + "🕘 ", + "🕗 ", + "🕖 ", + "🕕 ", + "🕔 ", + "🕓 ", + "🕒 ", + "🕑 ", + "🕐 ", + }; + } private sealed class AestheticSpinner : Spinner { public override TimeSpan Interval => TimeSpan.FromMilliseconds(80); @@ -1561,6 +1822,147 @@ namespace Spectre.Console "▰▱▱▱▱▱▱", }; } + private sealed class DwarfFortressSpinner : Spinner + { + public override TimeSpan Interval => TimeSpan.FromMilliseconds(80); + public override bool IsUnicode => true; + public override IReadOnlyList Frames => new List + { + " ██████£££ ", + "☺██████£££ ", + "☺██████£££ ", + "☺▓█████£££ ", + "☺▓█████£££ ", + "☺▒█████£££ ", + "☺▒█████£££ ", + "☺░█████£££ ", + "☺░█████£££ ", + "☺ █████£££ ", + " ☺█████£££ ", + " ☺█████£££ ", + " ☺▓████£££ ", + " ☺▓████£££ ", + " ☺▒████£££ ", + " ☺▒████£££ ", + " ☺░████£££ ", + " ☺░████£££ ", + " ☺ ████£££ ", + " ☺████£££ ", + " ☺████£££ ", + " ☺▓███£££ ", + " ☺▓███£££ ", + " ☺▒███£££ ", + " ☺▒███£££ ", + " ☺░███£££ ", + " ☺░███£££ ", + " ☺ ███£££ ", + " ☺███£££ ", + " ☺███£££ ", + " ☺▓██£££ ", + " ☺▓██£££ ", + " ☺▒██£££ ", + " ☺▒██£££ ", + " ☺░██£££ ", + " ☺░██£££ ", + " ☺ ██£££ ", + " ☺██£££ ", + " ☺██£££ ", + " ☺▓█£££ ", + " ☺▓█£££ ", + " ☺▒█£££ ", + " ☺▒█£££ ", + " ☺░█£££ ", + " ☺░█£££ ", + " ☺ █£££ ", + " ☺█£££ ", + " ☺█£££ ", + " ☺▓£££ ", + " ☺▓£££ ", + " ☺▒£££ ", + " ☺▒£££ ", + " ☺░£££ ", + " ☺░£££ ", + " ☺ £££ ", + " ☺£££ ", + " ☺£££ ", + " ☺▓££ ", + " ☺▓££ ", + " ☺▒££ ", + " ☺▒££ ", + " ☺░££ ", + " ☺░££ ", + " ☺ ££ ", + " ☺££ ", + " ☺££ ", + " ☺▓£ ", + " ☺▓£ ", + " ☺▒£ ", + " ☺▒£ ", + " ☺░£ ", + " ☺░£ ", + " ☺ £ ", + " ☺£ ", + " ☺£ ", + " ☺▓ ", + " ☺▓ ", + " ☺▒ ", + " ☺▒ ", + " ☺░ ", + " ☺░ ", + " ☺ ", + " ☺ &", + " ☺ ☼&", + " ☺ ☼ &", + " ☺☼ &", + " ☺☼ & ", + " ‼ & ", + " ☺ & ", + " ‼ & ", + " ☺ & ", + " ‼ & ", + " ☺ & ", + "‼ & ", + " & ", + " & ", + " & ░ ", + " & ▒ ", + " & ▓ ", + " & £ ", + " & ░£ ", + " & ▒£ ", + " & ▓£ ", + " & ££ ", + " & ░££ ", + " & ▒££ ", + "& ▓££ ", + "& £££ ", + " ░£££ ", + " ▒£££ ", + " ▓£££ ", + " █£££ ", + " ░█£££ ", + " ▒█£££ ", + " ▓█£££ ", + " ██£££ ", + " ░██£££ ", + " ▒██£££ ", + " ▓██£££ ", + " ███£££ ", + " ░███£££ ", + " ▒███£££ ", + " ▓███£££ ", + " ████£££ ", + " ░████£££ ", + " ▒████£££ ", + " ▓████£££ ", + " █████£££ ", + " ░█████£££ ", + " ▒█████£££ ", + " ▓█████£££ ", + " ██████£££ ", + " ██████£££ ", + }; + } /// /// Contains all predefined spinners. @@ -1624,10 +2026,26 @@ namespace Spectre.Console /// public static Spinner Dots12 { get; } = new Dots12Spinner(); /// + /// Gets the "dots13" spinner. + /// + public static Spinner Dots13 { get; } = new Dots13Spinner(); + /// + /// Gets the "dots14" spinner. + /// + public static Spinner Dots14 { get; } = new Dots14Spinner(); + /// /// Gets the "dots8Bit" spinner. /// public static Spinner Dots8Bit { get; } = new Dots8BitSpinner(); /// + /// Gets the "dotsCircle" spinner. + /// + public static Spinner DotsCircle { get; } = new DotsCircleSpinner(); + /// + /// Gets the "sand" spinner. + /// + public static Spinner Sand { get; } = new SandSpinner(); + /// /// Gets the "line" spinner. /// public static Spinner Line { get; } = new LineSpinner(); @@ -1700,6 +2118,10 @@ namespace Spectre.Console /// public static Spinner Triangle { get; } = new TriangleSpinner(); /// + /// Gets the "binary" spinner. + /// + public static Spinner Binary { get; } = new BinarySpinner(); + /// /// Gets the "arc" spinner. /// public static Spinner Arc { get; } = new ArcSpinner(); @@ -1864,9 +2286,49 @@ namespace Spectre.Console /// public static Spinner BetaWave { get; } = new BetaWaveSpinner(); /// + /// Gets the "fingerDance" spinner. + /// + public static Spinner FingerDance { get; } = new FingerDanceSpinner(); + /// + /// Gets the "fistBump" spinner. + /// + public static Spinner FistBump { get; } = new FistBumpSpinner(); + /// + /// Gets the "soccerHeader" spinner. + /// + public static Spinner SoccerHeader { get; } = new SoccerHeaderSpinner(); + /// + /// Gets the "mindblown" spinner. + /// + public static Spinner Mindblown { get; } = new MindblownSpinner(); + /// + /// Gets the "speaker" spinner. + /// + public static Spinner Speaker { get; } = new SpeakerSpinner(); + /// + /// Gets the "orangePulse" spinner. + /// + public static Spinner OrangePulse { get; } = new OrangePulseSpinner(); + /// + /// Gets the "bluePulse" spinner. + /// + public static Spinner BluePulse { get; } = new BluePulseSpinner(); + /// + /// Gets the "orangeBluePulse" spinner. + /// + public static Spinner OrangeBluePulse { get; } = new OrangeBluePulseSpinner(); + /// + /// Gets the "timeTravel" spinner. + /// + public static Spinner TimeTravel { get; } = new TimeTravelSpinner(); + /// /// Gets the "aesthetic" spinner. /// public static Spinner Aesthetic { get; } = new AestheticSpinner(); + /// + /// Gets the "dwarfFortress" spinner. + /// + public static Spinner DwarfFortress { get; } = new DwarfFortressSpinner(); } } }