{"version":3,"file":"spinners.d.ts","sourceRoot":"","sources":["../src/spinners.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC1B;AA+GD,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;CAgBX,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,QAAQ,CAAC;AAEhD,eAAO,MAAM,iBAAiB,EAAE,SAAS,WAAW,EAQnD,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,SAAS,WAAW,EAQ/C,CAAC;AAEF,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,WAAW,GAAG,cAAc,CAK1F","sourcesContent":["export interface SpinnerVariant {\n\treadonly frames: readonly string[];\n\treadonly interval: number;\n}\n\nconst dots: SpinnerVariant = {\n\tframes: [\"⠋\", \"⠙\", \"⠹\", \"⠸\", \"⠼\", \"⠴\", \"⠦\", \"⠧\", \"⠇\", \"⠏\"],\n\tinterval: 80,\n};\n\nconst helix: SpinnerVariant = {\n\tframes: [\"⠁\", \"⠂\", \"⠄\", \"⡀\", \"⢀\", \"⠠\", \"⠐\", \"⠈\"],\n\tinterval: 90,\n};\n\nconst breathe: SpinnerVariant = {\n\tframes: [\"·\", \"•\", \"●\", \"•\"],\n\tinterval: 220,\n};\n\nconst orbit: SpinnerVariant = {\n\tframes: [\"◜\", \"◠\", \"◝\", \"◞\", \"◡\", \"◟\"],\n\tinterval: 110,\n};\n\nconst dna: SpinnerVariant = {\n\tframes: [\"⡀⠀\", \"⠄⠀\", \"⠂⠀\", \"⠁⠀\", \"⠈⠀\", \"⠐⠀\", \"⠠⠀\", \"⢀⠀\"],\n\tinterval: 100,\n};\n\nconst waverows: SpinnerVariant = {\n\tframes: [\"▁\", \"▂\", \"▃\", \"▄\", \"▅\", \"▆\", \"▇\", \"█\", \"▇\", \"▆\", \"▅\", \"▄\", \"▃\", \"▂\"],\n\tinterval: 90,\n};\n\nconst snake: SpinnerVariant = {\n\tframes: [\n\t\t\"▰▱▱▱▱▱▱\",\n\t\t\"▰▰▱▱▱▱▱\",\n\t\t\"▰▰▰▱▱▱▱\",\n\t\t\"▰▰▰▰▱▱▱\",\n\t\t\"▰▰▰▰▰▱▱\",\n\t\t\"▰▰▰▰▰▰▱\",\n\t\t\"▰▰▰▰▰▰▰\",\n\t\t\"▱▰▰▰▰▰▰\",\n\t\t\"▱▱▰▰▰▰▰\",\n\t\t\"▱▱▱▰▰▰▰\",\n\t\t\"▱▱▱▱▰▰▰\",\n\t\t\"▱▱▱▱▱▰▰\",\n\t\t\"▱▱▱▱▱▱▰\",\n\t\t\"▱▱▱▱▱▱▱\",\n\t],\n\tinterval: 100,\n};\n\nconst pulse: SpinnerVariant = {\n\tframes: [\"○\", \"◔\", \"◑\", \"◕\", \"●\", \"◕\", \"◑\", \"◔\"],\n\tinterval: 130,\n};\n\nconst cascade: SpinnerVariant = {\n\tframes: [\"▏\", \"▎\", \"▍\", \"▌\", \"▋\", \"▊\", \"▉\", \"█\", \"▉\", \"▊\", \"▋\", \"▌\", \"▍\", \"▎\"],\n\tinterval: 90,\n};\n\nconst scan: SpinnerVariant = {\n\tframes: [\n\t\t\"[●         ]\",\n\t\t\"[ ●        ]\",\n\t\t\"[  ●       ]\",\n\t\t\"[   ●      ]\",\n\t\t\"[    ●     ]\",\n\t\t\"[     ●    ]\",\n\t\t\"[      ●   ]\",\n\t\t\"[       ●  ]\",\n\t\t\"[        ● ]\",\n\t\t\"[         ●]\",\n\t\t\"[        ● ]\",\n\t\t\"[       ●  ]\",\n\t\t\"[      ●   ]\",\n\t\t\"[     ●    ]\",\n\t\t\"[    ●     ]\",\n\t\t\"[   ●      ]\",\n\t\t\"[  ●       ]\",\n\t\t\"[ ●        ]\",\n\t],\n\tinterval: 90,\n};\n\nconst diagswipe: SpinnerVariant = {\n\tframes: [\"⠁⠀⠀\", \"⠂⠁⠀\", \"⠄⠂⠁\", \"⡀⠄⠂\", \"⠀⡀⠄\", \"⠀⠀⡀\", \"⠀⠀⠀\"],\n\tinterval: 110,\n};\n\nconst fillsweep: SpinnerVariant = {\n\tframes: [\"▱▱▱▱▱\", \"▰▱▱▱▱\", \"▰▰▱▱▱\", \"▰▰▰▱▱\", \"▰▰▰▰▱\", \"▰▰▰▰▰\", \"▱▰▰▰▰\", \"▱▱▰▰▰\", \"▱▱▱▰▰\", \"▱▱▱▱▰\"],\n\tinterval: 110,\n};\n\nconst rain: SpinnerVariant = {\n\tframes: [\"⡀\", \"⡄\", \"⡆\", \"⡇\", \"⠇\", \"⠃\", \"⠁\", \" \"],\n\tinterval: 90,\n};\n\nconst columns: SpinnerVariant = {\n\tframes: [\"▁ ▁ ▁\", \"▃ ▁ ▁\", \"▅ ▃ ▁\", \"▇ ▅ ▃\", \"█ ▇ ▅\", \"▇ █ ▇\", \"▅ ▇ █\", \"▃ ▅ ▇\", \"▁ ▃ ▅\", \"▁ ▁ ▃\"],\n\tinterval: 110,\n};\n\nconst sparkle: SpinnerVariant = {\n\tframes: [\"·\", \"✦\", \"✧\", \"✦\", \"·\", \" \"],\n\tinterval: 160,\n};\n\nexport const SPINNERS = {\n\tdots,\n\thelix,\n\tbreathe,\n\torbit,\n\tdna,\n\twaverows,\n\tsnake,\n\tpulse,\n\tcascade,\n\tscan,\n\tdiagswipe,\n\tfillsweep,\n\train,\n\tcolumns,\n\tsparkle,\n} as const;\n\nexport type SpinnerName = keyof typeof SPINNERS;\n\nexport const THINKING_SPINNERS: readonly SpinnerName[] = [\n\t\"helix\",\n\t\"breathe\",\n\t\"orbit\",\n\t\"dna\",\n\t\"waverows\",\n\t\"snake\",\n\t\"pulse\",\n];\n\nexport const TOOL_SPINNERS: readonly SpinnerName[] = [\n\t\"cascade\",\n\t\"scan\",\n\t\"diagswipe\",\n\t\"fillsweep\",\n\t\"rain\",\n\t\"columns\",\n\t\"sparkle\",\n];\n\nexport function getSpinner(name: string | undefined, fallback: SpinnerName): SpinnerVariant {\n\tif (name && name in SPINNERS) {\n\t\treturn SPINNERS[name as SpinnerName];\n\t}\n\treturn SPINNERS[fallback];\n}\n"]}