sai 0.2.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +1 -1
  3. data/CHANGELOG.md +38 -1
  4. data/README.md +39 -241
  5. data/docs/USAGE.md +351 -0
  6. data/lib/sai/ansi/color_parser.rb +109 -0
  7. data/lib/sai/ansi/sequence_processor.rb +269 -0
  8. data/lib/sai/ansi/sequenced_string.rb +475 -0
  9. data/lib/sai/ansi/style_parser.rb +66 -0
  10. data/lib/sai/ansi.rb +0 -27
  11. data/lib/sai/conversion/color_sequence.rb +4 -4
  12. data/lib/sai/conversion/rgb/color_classifier.rb +209 -0
  13. data/lib/sai/conversion/rgb/color_indexer.rb +48 -0
  14. data/lib/sai/conversion/rgb/color_space.rb +192 -0
  15. data/lib/sai/conversion/rgb/color_transformer.rb +140 -0
  16. data/lib/sai/conversion/rgb.rb +23 -269
  17. data/lib/sai/decorator/color_manipulations.rb +157 -0
  18. data/lib/sai/decorator/delegation.rb +84 -0
  19. data/lib/sai/decorator/gradients.rb +363 -0
  20. data/lib/sai/decorator/hex_colors.rb +56 -0
  21. data/lib/sai/decorator/named_colors.rb +780 -0
  22. data/lib/sai/decorator/named_styles.rb +276 -0
  23. data/lib/sai/decorator/rgb_colors.rb +64 -0
  24. data/lib/sai/decorator.rb +35 -795
  25. data/lib/sai/mode_selector.rb +19 -19
  26. data/lib/sai/named_colors.rb +437 -0
  27. data/lib/sai.rb +753 -23
  28. data/sig/manifest.yaml +3 -0
  29. data/sig/sai/ansi/color_parser.rbs +77 -0
  30. data/sig/sai/ansi/sequence_processor.rbs +178 -0
  31. data/sig/sai/ansi/sequenced_string.rbs +380 -0
  32. data/sig/sai/ansi/style_parser.rbs +59 -0
  33. data/sig/sai/ansi.rbs +0 -10
  34. data/sig/sai/conversion/rgb/color_classifier.rbs +165 -0
  35. data/sig/sai/conversion/rgb/color_indexer.rbs +41 -0
  36. data/sig/sai/conversion/rgb/color_space.rbs +129 -0
  37. data/sig/sai/conversion/rgb/color_transformer.rbs +99 -0
  38. data/sig/sai/conversion/rgb.rbs +15 -198
  39. data/sig/sai/decorator/color_manipulations.rbs +125 -0
  40. data/sig/sai/decorator/delegation.rbs +47 -0
  41. data/sig/sai/decorator/gradients.rbs +267 -0
  42. data/sig/sai/decorator/hex_colors.rbs +48 -0
  43. data/sig/sai/decorator/named_colors.rbs +1491 -0
  44. data/sig/sai/decorator/named_styles.rbs +72 -0
  45. data/sig/sai/decorator/rgb_colors.rbs +52 -0
  46. data/sig/sai/decorator.rbs +25 -202
  47. data/sig/sai/mode_selector.rbs +19 -19
  48. data/sig/sai/named_colors.rbs +65 -0
  49. data/sig/sai.rbs +1485 -44
  50. metadata +38 -4
data/lib/sai.rb CHANGED
@@ -1,9 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'sai/ansi'
4
+ require 'sai/ansi/sequence_processor'
5
+ require 'sai/ansi/sequenced_string'
3
6
  require 'sai/conversion/color_sequence'
4
7
  require 'sai/conversion/rgb'
5
8
  require 'sai/decorator'
9
+ require 'sai/decorator/delegation'
6
10
  require 'sai/mode_selector'
11
+ require 'sai/named_colors'
7
12
  require 'sai/support'
8
13
  require 'sai/terminal/capabilities'
9
14
  require 'sai/terminal/color_mode'
@@ -19,6 +24,7 @@ require 'sai/terminal/color_mode'
19
24
  # adaptive color to your terminal interfaces
20
25
  #
21
26
  # When included in a class or module, Sai provides the following instance methods:
27
+ # * {#color_mode} - Returns an interface to select Sai color modes
22
28
  # * {#decorator} - Returns a new instance of {Decorator} for method chaining
23
29
  # * {#terminal_color_support} - Returns the color support capabilities of the current terminal
24
30
  #
@@ -48,33 +54,28 @@ require 'sai/terminal/color_mode'
48
54
  # Sai.support.true_color? # => true
49
55
  module Sai
50
56
  class << self
51
- ignored_decorator_methods = %i[apply call decorate encode]
52
- Decorator.instance_methods(false).reject { |m| ignored_decorator_methods.include?(m) }.each do |method|
53
- define_method(method) do |*arguments, **keyword_arguments|
54
- Decorator.new(mode: Sai.mode.auto).public_send(method, *arguments, **keyword_arguments)
55
- end
56
- end
57
-
58
- # The Sai {ModeSelector mode selector}
59
- #
60
- # @author {https://aaronmallen.me Aaron Allen}
61
- # @since 0.2.0
62
- #
63
- # @api public
64
- #
65
- # @example
66
- # Sai.mode.auto #=> 4
67
- #
68
- # @return [ModeSelector] the mode selector
69
- # @rbs () -> singleton(ModeSelector)
70
- def mode
71
- ModeSelector
72
- end
73
-
74
57
  # @rbs!
58
+ # def alice_blue: () -> Decorator
59
+ # def antique_white: () -> Decorator
60
+ # def aqua: () -> Decorator
61
+ # def aqua_system: () -> Decorator
62
+ # def aquamarine: () -> Decorator
63
+ # def aquamarine1: () -> Decorator
64
+ # def aquamarine1_122: () -> Decorator
65
+ # def aquamarine3: () -> Decorator
66
+ # def azure: () -> Decorator
67
+ # def beige: () -> Decorator
68
+ # def bisque: () -> Decorator
75
69
  # def black: () -> Decorator
70
+ # def black_system: () -> Decorator
71
+ # def blanched_almond: () -> Decorator
76
72
  # def blink: () -> Decorator
77
73
  # def blue: () -> Decorator
74
+ # def blue1: () -> Decorator
75
+ # def blue3: () -> Decorator
76
+ # def blue3_20: () -> Decorator
77
+ # def blue_system: () -> Decorator
78
+ # def blue_violet: () -> Decorator
78
79
  # def bold: () -> Decorator
79
80
  # def bright_black: () -> Decorator
80
81
  # def bright_blue: () -> Decorator
@@ -84,12 +85,249 @@ module Sai
84
85
  # def bright_red: () -> Decorator
85
86
  # def bright_white: () -> Decorator
86
87
  # def bright_yellow: () -> Decorator
88
+ # def brown: () -> Decorator
89
+ # def burly_wood: () -> Decorator
90
+ # def cadet_blue: () -> Decorator
91
+ # def cadet_blue_73: () -> Decorator
92
+ # def chartreuse: () -> Decorator
93
+ # def chartreuse1: () -> Decorator
94
+ # def chartreuse2: () -> Decorator
95
+ # def chartreuse2_112: () -> Decorator
96
+ # def chartreuse3: () -> Decorator
97
+ # def chartreuse3_76: () -> Decorator
98
+ # def chartreuse4: () -> Decorator
99
+ # def chocolate: () -> Decorator
87
100
  # def conceal: () -> Decorator
101
+ # def coral: () -> Decorator
102
+ # def cornflower_blue: () -> Decorator
103
+ # def cornsilk: () -> Decorator
104
+ # def cornsilk1: () -> Decorator
105
+ # def crimson: () -> Decorator
88
106
  # def cyan: () -> Decorator
107
+ # def cyan1: () -> Decorator
108
+ # def cyan2: () -> Decorator
109
+ # def cyan3: () -> Decorator
110
+ # def dark_blue: () -> Decorator
111
+ # def dark_cyan: () -> Decorator
112
+ # def dark_goldenrod: () -> Decorator
113
+ # def dark_gray: () -> Decorator
114
+ # def dark_green: () -> Decorator
115
+ # def dark_khaki: () -> Decorator
116
+ # def dark_magenta: () -> Decorator
117
+ # def dark_magenta_91: () -> Decorator
118
+ # def dark_olive_green: () -> Decorator
119
+ # def dark_olive_green1: () -> Decorator
120
+ # def dark_olive_green1_192: () -> Decorator
121
+ # def dark_olive_green2: () -> Decorator
122
+ # def dark_olive_green3: () -> Decorator
123
+ # def dark_olive_green3_113: () -> Decorator
124
+ # def dark_olive_green3_149: () -> Decorator
125
+ # def dark_orange: () -> Decorator
126
+ # def dark_orange3: () -> Decorator
127
+ # def dark_orange3_166: () -> Decorator
128
+ # def dark_orchid: () -> Decorator
129
+ # def dark_red: () -> Decorator
130
+ # def dark_red_88: () -> Decorator
131
+ # def dark_salmon: () -> Decorator
132
+ # def dark_sea_green: () -> Decorator
133
+ # def dark_sea_green1: () -> Decorator
134
+ # def dark_sea_green1_193: () -> Decorator
135
+ # def dark_sea_green2: () -> Decorator
136
+ # def dark_sea_green2_157: () -> Decorator
137
+ # def dark_sea_green3: () -> Decorator
138
+ # def dark_sea_green3_150: () -> Decorator
139
+ # def dark_sea_green4: () -> Decorator
140
+ # def dark_sea_green4_71: () -> Decorator
141
+ # def dark_slate_blue: () -> Decorator
142
+ # def dark_slate_gray: () -> Decorator
143
+ # def dark_slate_gray1: () -> Decorator
144
+ # def dark_slate_gray2: () -> Decorator
145
+ # def dark_slate_gray3: () -> Decorator
146
+ # def dark_turquoise: () -> Decorator
147
+ # def dark_violet: () -> Decorator
148
+ # def dark_violet_128: () -> Decorator
149
+ # def darken_background: () -> Decorator
150
+ # def darken_bg: () -> Decorator
151
+ # def darken_fg: () -> Decorator
152
+ # def darken_foreground: () -> Decorator
153
+ # def darken_text: () -> Decorator
154
+ # def deep_pink: () -> Decorator
155
+ # def deep_pink1: () -> Decorator
156
+ # def deep_pink1_199: () -> Decorator
157
+ # def deep_pink2: () -> Decorator
158
+ # def deep_pink3: () -> Decorator
159
+ # def deep_pink3_162: () -> Decorator
160
+ # def deep_pink4: () -> Decorator
161
+ # def deep_pink4_125: () -> Decorator
162
+ # def deep_pink4_89: () -> Decorator
163
+ # def deep_sky_blue: () -> Decorator
164
+ # def deep_sky_blue1: () -> Decorator
165
+ # def deep_sky_blue2: () -> Decorator
166
+ # def deep_sky_blue3: () -> Decorator
167
+ # def deep_sky_blue3_32: () -> Decorator
168
+ # def deep_sky_blue4: () -> Decorator
169
+ # def deep_sky_blue4_24: () -> Decorator
170
+ # def deep_sky_blue4_25: () -> Decorator
89
171
  # def dim: () -> Decorator
172
+ # def dim_gray: () -> Decorator
173
+ # def dodger_blue: () -> Decorator
174
+ # def dodger_blue1: () -> Decorator
175
+ # def dodger_blue2: () -> Decorator
176
+ # def dodger_blue3: () -> Decorator
177
+ # def firebrick: () -> Decorator
178
+ # def floral_white: () -> Decorator
179
+ # def forest_green: () -> Decorator
180
+ # def fuchsia: () -> Decorator
181
+ # def fuchsia_system: () -> Decorator
182
+ # def gainsboro: () -> Decorator
183
+ # def ghost_white: () -> Decorator
184
+ # def gold: () -> Decorator
185
+ # def gold1: () -> Decorator
186
+ # def gold3: () -> Decorator
187
+ # def gold3_178: () -> Decorator
188
+ # def goldenrod: () -> Decorator
189
+ # def gradient: () -> Decorator
190
+ # def gray: () -> Decorator
90
191
  # def green: () -> Decorator
192
+ # def green1: () -> Decorator
193
+ # def green3: () -> Decorator
194
+ # def green3_40: () -> Decorator
195
+ # def green4: () -> Decorator
196
+ # def green_system: () -> Decorator
197
+ # def green_yellow: () -> Decorator
198
+ # def grey0: () -> Decorator
199
+ # def grey100: () -> Decorator
200
+ # def grey11: () -> Decorator
201
+ # def grey15: () -> Decorator
202
+ # def grey19: () -> Decorator
203
+ # def grey23: () -> Decorator
204
+ # def grey27: () -> Decorator
205
+ # def grey3: () -> Decorator
206
+ # def grey30: () -> Decorator
207
+ # def grey35: () -> Decorator
208
+ # def grey37: () -> Decorator
209
+ # def grey39: () -> Decorator
210
+ # def grey42: () -> Decorator
211
+ # def grey46: () -> Decorator
212
+ # def grey50: () -> Decorator
213
+ # def grey53: () -> Decorator
214
+ # def grey54: () -> Decorator
215
+ # def grey58: () -> Decorator
216
+ # def grey62: () -> Decorator
217
+ # def grey66: () -> Decorator
218
+ # def grey7: () -> Decorator
219
+ # def grey70: () -> Decorator
220
+ # def grey74: () -> Decorator
221
+ # def grey78: () -> Decorator
222
+ # def grey82: () -> Decorator
223
+ # def grey84: () -> Decorator
224
+ # def grey85: () -> Decorator
225
+ # def grey89: () -> Decorator
226
+ # def grey93: () -> Decorator
227
+ # def grey_system: () -> Decorator
228
+ # def hex: () -> Decorator
229
+ # def honeydew: () -> Decorator
230
+ # def honeydew2: () -> Decorator
231
+ # def hot_pink: () -> Decorator
232
+ # def hot_pink2: () -> Decorator
233
+ # def hot_pink3: () -> Decorator
234
+ # def hot_pink3_168: () -> Decorator
235
+ # def hot_pink_206: () -> Decorator
236
+ # def indian_red: () -> Decorator
237
+ # def indian_red1: () -> Decorator
238
+ # def indian_red1_204: () -> Decorator
239
+ # def indian_red_167: () -> Decorator
240
+ # def indigo: () -> Decorator
91
241
  # def italic: () -> Decorator
242
+ # def ivory: () -> Decorator
243
+ # def khaki: () -> Decorator
244
+ # def khaki1: () -> Decorator
245
+ # def khaki3: () -> Decorator
246
+ # def lavender: () -> Decorator
247
+ # def lavender_blush: () -> Decorator
248
+ # def lawn_green: () -> Decorator
249
+ # def lemon_chiffon: () -> Decorator
250
+ # def light_blue: () -> Decorator
251
+ # def light_coral: () -> Decorator
252
+ # def light_cyan: () -> Decorator
253
+ # def light_cyan1: () -> Decorator
254
+ # def light_cyan3: () -> Decorator
255
+ # def light_goldenrod1: () -> Decorator
256
+ # def light_goldenrod2: () -> Decorator
257
+ # def light_goldenrod2_221: () -> Decorator
258
+ # def light_goldenrod3: () -> Decorator
259
+ # def light_goldenrod_yellow: () -> Decorator
260
+ # def light_gray: () -> Decorator
261
+ # def light_green: () -> Decorator
262
+ # def light_green_120: () -> Decorator
263
+ # def light_pink: () -> Decorator
264
+ # def light_pink1: () -> Decorator
265
+ # def light_pink3: () -> Decorator
266
+ # def light_pink4: () -> Decorator
267
+ # def light_salmon: () -> Decorator
268
+ # def light_salmon1: () -> Decorator
269
+ # def light_salmon3: () -> Decorator
270
+ # def light_salmon3_173: () -> Decorator
271
+ # def light_sea_green: () -> Decorator
272
+ # def light_sky_blue: () -> Decorator
273
+ # def light_sky_blue1: () -> Decorator
274
+ # def light_sky_blue3: () -> Decorator
275
+ # def light_sky_blue3_110: () -> Decorator
276
+ # def light_slate_blue: () -> Decorator
277
+ # def light_slate_gray: () -> Decorator
278
+ # def light_slate_grey: () -> Decorator
279
+ # def light_steel_blue: () -> Decorator
280
+ # def light_steel_blue1: () -> Decorator
281
+ # def light_steel_blue3: () -> Decorator
282
+ # def light_yellow: () -> Decorator
283
+ # def lighten_background: () -> Decorator
284
+ # def lighten_bg: () -> Decorator
285
+ # def lighten_fg: () -> Decorator
286
+ # def lighten_foreground: () -> Decorator
287
+ # def lighten_text: () -> Decorator
288
+ # def lime: () -> Decorator
289
+ # def lime_green: () -> Decorator
290
+ # def lime_system: () -> Decorator
291
+ # def linen: () -> Decorator
92
292
  # def magenta: () -> Decorator
293
+ # def magenta1: () -> Decorator
294
+ # def magenta2: () -> Decorator
295
+ # def magenta2_200: () -> Decorator
296
+ # def magenta3: () -> Decorator
297
+ # def magenta3_163: () -> Decorator
298
+ # def magenta3_164: () -> Decorator
299
+ # def maroon: () -> Decorator
300
+ # def maroon_system: () -> Decorator
301
+ # def medium_aquamarine: () -> Decorator
302
+ # def medium_blue: () -> Decorator
303
+ # def medium_orchid: () -> Decorator
304
+ # def medium_orchid1: () -> Decorator
305
+ # def medium_orchid1_207: () -> Decorator
306
+ # def medium_orchid3: () -> Decorator
307
+ # def medium_purple: () -> Decorator
308
+ # def medium_purple1: () -> Decorator
309
+ # def medium_purple2: () -> Decorator
310
+ # def medium_purple2_140: () -> Decorator
311
+ # def medium_purple3: () -> Decorator
312
+ # def medium_purple3_98: () -> Decorator
313
+ # def medium_purple4: () -> Decorator
314
+ # def medium_sea_green: () -> Decorator
315
+ # def medium_slate_blue: () -> Decorator
316
+ # def medium_spring_green: () -> Decorator
317
+ # def medium_turquoise: () -> Decorator
318
+ # def medium_violet_red: () -> Decorator
319
+ # def midnight_blue: () -> Decorator
320
+ # def mint_cream: () -> Decorator
321
+ # def misty_rose: () -> Decorator
322
+ # def misty_rose1: () -> Decorator
323
+ # def misty_rose3: () -> Decorator
324
+ # def moccasin: () -> Decorator
325
+ # def navajo_white: () -> Decorator
326
+ # def navajo_white1: () -> Decorator
327
+ # def navajo_white3: () -> Decorator
328
+ # def navy: () -> Decorator
329
+ # def navy_blue: () -> Decorator
330
+ # def navy_system: () -> Decorator
93
331
  # def no_blink: () -> Decorator
94
332
  # def no_conceal: () -> Decorator
95
333
  # def no_italic: () -> Decorator
@@ -97,8 +335,30 @@ module Sai
97
335
  # def no_strike: () -> Decorator
98
336
  # def no_underline: () -> Decorator
99
337
  # def normal_intensity: () -> Decorator
338
+ # def old_lace: () -> Decorator
339
+ # def olive: () -> Decorator
340
+ # def olive_drab: () -> Decorator
341
+ # def olive_system: () -> Decorator
342
+ # def on_alice_blue: () -> Decorator
343
+ # def on_antique_white: () -> Decorator
344
+ # def on_aqua: () -> Decorator
345
+ # def on_aqua_system: () -> Decorator
346
+ # def on_aquamarine: () -> Decorator
347
+ # def on_aquamarine1: () -> Decorator
348
+ # def on_aquamarine1_122: () -> Decorator
349
+ # def on_aquamarine3: () -> Decorator
350
+ # def on_azure: () -> Decorator
351
+ # def on_beige: () -> Decorator
352
+ # def on_bisque: () -> Decorator
100
353
  # def on_black: () -> Decorator
354
+ # def on_black_system: () -> Decorator
355
+ # def on_blanched_almond: () -> Decorator
101
356
  # def on_blue: () -> Decorator
357
+ # def on_blue1: () -> Decorator
358
+ # def on_blue3: () -> Decorator
359
+ # def on_blue3_20: () -> Decorator
360
+ # def on_blue_system: () -> Decorator
361
+ # def on_blue_violet: () -> Decorator
102
362
  # def on_bright_black: () -> Decorator
103
363
  # def on_bright_blue: () -> Decorator
104
364
  # def on_bright_cyan: () -> Decorator
@@ -107,19 +367,489 @@ module Sai
107
367
  # def on_bright_red: () -> Decorator
108
368
  # def on_bright_white: () -> Decorator
109
369
  # def on_bright_yellow: () -> Decorator
370
+ # def on_brown: () -> Decorator
371
+ # def on_burly_wood: () -> Decorator
372
+ # def on_cadet_blue: () -> Decorator
373
+ # def on_cadet_blue_73: () -> Decorator
374
+ # def on_chartreuse: () -> Decorator
375
+ # def on_chartreuse1: () -> Decorator
376
+ # def on_chartreuse2: () -> Decorator
377
+ # def on_chartreuse2_112: () -> Decorator
378
+ # def on_chartreuse3: () -> Decorator
379
+ # def on_chartreuse3_76: () -> Decorator
380
+ # def on_chartreuse4: () -> Decorator
381
+ # def on_chocolate: () -> Decorator
382
+ # def on_coral: () -> Decorator
383
+ # def on_cornflower_blue: () -> Decorator
384
+ # def on_cornsilk: () -> Decorator
385
+ # def on_cornsilk1: () -> Decorator
386
+ # def on_crimson: () -> Decorator
110
387
  # def on_cyan: () -> Decorator
388
+ # def on_cyan1: () -> Decorator
389
+ # def on_cyan2: () -> Decorator
390
+ # def on_cyan3: () -> Decorator
391
+ # def on_dark_blue: () -> Decorator
392
+ # def on_dark_cyan: () -> Decorator
393
+ # def on_dark_goldenrod: () -> Decorator
394
+ # def on_dark_gray: () -> Decorator
395
+ # def on_dark_green: () -> Decorator
396
+ # def on_dark_khaki: () -> Decorator
397
+ # def on_dark_magenta: () -> Decorator
398
+ # def on_dark_magenta_91: () -> Decorator
399
+ # def on_dark_olive_green: () -> Decorator
400
+ # def on_dark_olive_green1: () -> Decorator
401
+ # def on_dark_olive_green1_192: () -> Decorator
402
+ # def on_dark_olive_green2: () -> Decorator
403
+ # def on_dark_olive_green3: () -> Decorator
404
+ # def on_dark_olive_green3_113: () -> Decorator
405
+ # def on_dark_olive_green3_149: () -> Decorator
406
+ # def on_dark_orange: () -> Decorator
407
+ # def on_dark_orange3: () -> Decorator
408
+ # def on_dark_orange3_166: () -> Decorator
409
+ # def on_dark_orchid: () -> Decorator
410
+ # def on_dark_red: () -> Decorator
411
+ # def on_dark_red_88: () -> Decorator
412
+ # def on_dark_salmon: () -> Decorator
413
+ # def on_dark_sea_green: () -> Decorator
414
+ # def on_dark_sea_green1: () -> Decorator
415
+ # def on_dark_sea_green1_193: () -> Decorator
416
+ # def on_dark_sea_green2: () -> Decorator
417
+ # def on_dark_sea_green2_157: () -> Decorator
418
+ # def on_dark_sea_green3: () -> Decorator
419
+ # def on_dark_sea_green3_150: () -> Decorator
420
+ # def on_dark_sea_green4: () -> Decorator
421
+ # def on_dark_sea_green4_71: () -> Decorator
422
+ # def on_dark_slate_blue: () -> Decorator
423
+ # def on_dark_slate_gray: () -> Decorator
424
+ # def on_dark_slate_gray1: () -> Decorator
425
+ # def on_dark_slate_gray2: () -> Decorator
426
+ # def on_dark_slate_gray3: () -> Decorator
427
+ # def on_dark_turquoise: () -> Decorator
428
+ # def on_dark_violet: () -> Decorator
429
+ # def on_dark_violet_128: () -> Decorator
430
+ # def on_deep_pink: () -> Decorator
431
+ # def on_deep_pink1: () -> Decorator
432
+ # def on_deep_pink1_199: () -> Decorator
433
+ # def on_deep_pink2: () -> Decorator
434
+ # def on_deep_pink3: () -> Decorator
435
+ # def on_deep_pink3_162: () -> Decorator
436
+ # def on_deep_pink4: () -> Decorator
437
+ # def on_deep_pink4_125: () -> Decorator
438
+ # def on_deep_pink4_89: () -> Decorator
439
+ # def on_deep_sky_blue: () -> Decorator
440
+ # def on_deep_sky_blue1: () -> Decorator
441
+ # def on_deep_sky_blue2: () -> Decorator
442
+ # def on_deep_sky_blue3: () -> Decorator
443
+ # def on_deep_sky_blue3_32: () -> Decorator
444
+ # def on_deep_sky_blue4: () -> Decorator
445
+ # def on_deep_sky_blue4_24: () -> Decorator
446
+ # def on_deep_sky_blue4_25: () -> Decorator
447
+ # def on_dim_gray: () -> Decorator
448
+ # def on_dodger_blue: () -> Decorator
449
+ # def on_dodger_blue1: () -> Decorator
450
+ # def on_dodger_blue2: () -> Decorator
451
+ # def on_dodger_blue3: () -> Decorator
452
+ # def on_firebrick: () -> Decorator
453
+ # def on_floral_white: () -> Decorator
454
+ # def on_forest_green: () -> Decorator
455
+ # def on_fuchsia: () -> Decorator
456
+ # def on_fuchsia_system: () -> Decorator
457
+ # def on_gainsboro: () -> Decorator
458
+ # def on_ghost_white: () -> Decorator
459
+ # def on_gold: () -> Decorator
460
+ # def on_gold1: () -> Decorator
461
+ # def on_gold3: () -> Decorator
462
+ # def on_gold3_178: () -> Decorator
463
+ # def on_goldenrod: () -> Decorator
464
+ # def on_gradient: () -> Decorator
465
+ # def on_gray: () -> Decorator
111
466
  # def on_green: () -> Decorator
467
+ # def on_green1: () -> Decorator
468
+ # def on_green3: () -> Decorator
469
+ # def on_green3_40: () -> Decorator
470
+ # def on_green4: () -> Decorator
471
+ # def on_green_system: () -> Decorator
472
+ # def on_green_yellow: () -> Decorator
473
+ # def on_grey0: () -> Decorator
474
+ # def on_grey100: () -> Decorator
475
+ # def on_grey11: () -> Decorator
476
+ # def on_grey15: () -> Decorator
477
+ # def on_grey19: () -> Decorator
478
+ # def on_grey23: () -> Decorator
479
+ # def on_grey27: () -> Decorator
480
+ # def on_grey3: () -> Decorator
481
+ # def on_grey30: () -> Decorator
482
+ # def on_grey35: () -> Decorator
483
+ # def on_grey37: () -> Decorator
484
+ # def on_grey39: () -> Decorator
485
+ # def on_grey42: () -> Decorator
486
+ # def on_grey46: () -> Decorator
487
+ # def on_grey50: () -> Decorator
488
+ # def on_grey53: () -> Decorator
489
+ # def on_grey54: () -> Decorator
490
+ # def on_grey58: () -> Decorator
491
+ # def on_grey62: () -> Decorator
492
+ # def on_grey66: () -> Decorator
493
+ # def on_grey7: () -> Decorator
494
+ # def on_grey70: () -> Decorator
495
+ # def on_grey74: () -> Decorator
496
+ # def on_grey78: () -> Decorator
497
+ # def on_grey82: () -> Decorator
498
+ # def on_grey84: () -> Decorator
499
+ # def on_grey85: () -> Decorator
500
+ # def on_grey89: () -> Decorator
501
+ # def on_grey93: () -> Decorator
502
+ # def on_grey_system: () -> Decorator
503
+ # def on_hex: () -> Decorator
504
+ # def on_honeydew: () -> Decorator
505
+ # def on_honeydew2: () -> Decorator
506
+ # def on_hot_pink: () -> Decorator
507
+ # def on_hot_pink2: () -> Decorator
508
+ # def on_hot_pink3: () -> Decorator
509
+ # def on_hot_pink3_168: () -> Decorator
510
+ # def on_hot_pink_206: () -> Decorator
511
+ # def on_indian_red: () -> Decorator
512
+ # def on_indian_red1: () -> Decorator
513
+ # def on_indian_red1_204: () -> Decorator
514
+ # def on_indian_red_167: () -> Decorator
515
+ # def on_indigo: () -> Decorator
516
+ # def on_ivory: () -> Decorator
517
+ # def on_khaki: () -> Decorator
518
+ # def on_khaki1: () -> Decorator
519
+ # def on_khaki3: () -> Decorator
520
+ # def on_lavender: () -> Decorator
521
+ # def on_lavender_blush: () -> Decorator
522
+ # def on_lawn_green: () -> Decorator
523
+ # def on_lemon_chiffon: () -> Decorator
524
+ # def on_light_blue: () -> Decorator
525
+ # def on_light_coral: () -> Decorator
526
+ # def on_light_cyan: () -> Decorator
527
+ # def on_light_cyan1: () -> Decorator
528
+ # def on_light_cyan3: () -> Decorator
529
+ # def on_light_goldenrod1: () -> Decorator
530
+ # def on_light_goldenrod2: () -> Decorator
531
+ # def on_light_goldenrod2_221: () -> Decorator
532
+ # def on_light_goldenrod3: () -> Decorator
533
+ # def on_light_goldenrod_yellow: () -> Decorator
534
+ # def on_light_gray: () -> Decorator
535
+ # def on_light_green: () -> Decorator
536
+ # def on_light_green_120: () -> Decorator
537
+ # def on_light_pink: () -> Decorator
538
+ # def on_light_pink1: () -> Decorator
539
+ # def on_light_pink3: () -> Decorator
540
+ # def on_light_pink4: () -> Decorator
541
+ # def on_light_salmon: () -> Decorator
542
+ # def on_light_salmon1: () -> Decorator
543
+ # def on_light_salmon3: () -> Decorator
544
+ # def on_light_salmon3_173: () -> Decorator
545
+ # def on_light_sea_green: () -> Decorator
546
+ # def on_light_sky_blue: () -> Decorator
547
+ # def on_light_sky_blue1: () -> Decorator
548
+ # def on_light_sky_blue3: () -> Decorator
549
+ # def on_light_sky_blue3_110: () -> Decorator
550
+ # def on_light_slate_blue: () -> Decorator
551
+ # def on_light_slate_gray: () -> Decorator
552
+ # def on_light_slate_grey: () -> Decorator
553
+ # def on_light_steel_blue: () -> Decorator
554
+ # def on_light_steel_blue1: () -> Decorator
555
+ # def on_light_steel_blue3: () -> Decorator
556
+ # def on_light_yellow: () -> Decorator
557
+ # def on_lime: () -> Decorator
558
+ # def on_lime_green: () -> Decorator
559
+ # def on_lime_system: () -> Decorator
560
+ # def on_linen: () -> Decorator
112
561
  # def on_magenta: () -> Decorator
562
+ # def on_magenta1: () -> Decorator
563
+ # def on_magenta2: () -> Decorator
564
+ # def on_magenta2_200: () -> Decorator
565
+ # def on_magenta3: () -> Decorator
566
+ # def on_magenta3_163: () -> Decorator
567
+ # def on_magenta3_164: () -> Decorator
568
+ # def on_maroon: () -> Decorator
569
+ # def on_maroon_system: () -> Decorator
570
+ # def on_medium_aquamarine: () -> Decorator
571
+ # def on_medium_blue: () -> Decorator
572
+ # def on_medium_orchid: () -> Decorator
573
+ # def on_medium_orchid1: () -> Decorator
574
+ # def on_medium_orchid1_207: () -> Decorator
575
+ # def on_medium_orchid3: () -> Decorator
576
+ # def on_medium_purple: () -> Decorator
577
+ # def on_medium_purple1: () -> Decorator
578
+ # def on_medium_purple2: () -> Decorator
579
+ # def on_medium_purple2_140: () -> Decorator
580
+ # def on_medium_purple3: () -> Decorator
581
+ # def on_medium_purple3_98: () -> Decorator
582
+ # def on_medium_purple4: () -> Decorator
583
+ # def on_medium_sea_green: () -> Decorator
584
+ # def on_medium_slate_blue: () -> Decorator
585
+ # def on_medium_spring_green: () -> Decorator
586
+ # def on_medium_turquoise: () -> Decorator
587
+ # def on_medium_violet_red: () -> Decorator
588
+ # def on_midnight_blue: () -> Decorator
589
+ # def on_mint_cream: () -> Decorator
590
+ # def on_misty_rose: () -> Decorator
591
+ # def on_misty_rose1: () -> Decorator
592
+ # def on_misty_rose3: () -> Decorator
593
+ # def on_moccasin: () -> Decorator
594
+ # def on_navajo_white: () -> Decorator
595
+ # def on_navajo_white1: () -> Decorator
596
+ # def on_navajo_white3: () -> Decorator
597
+ # def on_navy: () -> Decorator
598
+ # def on_navy_blue: () -> Decorator
599
+ # def on_navy_system: () -> Decorator
600
+ # def on_old_lace: () -> Decorator
601
+ # def on_olive: () -> Decorator
602
+ # def on_olive_drab: () -> Decorator
603
+ # def on_olive_system: () -> Decorator
604
+ # def on_orange: () -> Decorator
605
+ # def on_orange1: () -> Decorator
606
+ # def on_orange3: () -> Decorator
607
+ # def on_orange4: () -> Decorator
608
+ # def on_orange4_94: () -> Decorator
609
+ # def on_orange_red: () -> Decorator
610
+ # def on_orange_red1: () -> Decorator
611
+ # def on_orchid: () -> Decorator
612
+ # def on_orchid1: () -> Decorator
613
+ # def on_orchid2: () -> Decorator
614
+ # def on_pale_goldenrod: () -> Decorator
615
+ # def on_pale_green: () -> Decorator
616
+ # def on_pale_green1: () -> Decorator
617
+ # def on_pale_green1_156: () -> Decorator
618
+ # def on_pale_green3: () -> Decorator
619
+ # def on_pale_green3_114: () -> Decorator
620
+ # def on_pale_turquoise: () -> Decorator
621
+ # def on_pale_turquoise1: () -> Decorator
622
+ # def on_pale_turquoise4: () -> Decorator
623
+ # def on_pale_violet_red: () -> Decorator
624
+ # def on_pale_violet_red1: () -> Decorator
625
+ # def on_papaya_whip: () -> Decorator
626
+ # def on_peach_puff: () -> Decorator
627
+ # def on_peru: () -> Decorator
628
+ # def on_pink: () -> Decorator
629
+ # def on_pink1: () -> Decorator
630
+ # def on_pink3: () -> Decorator
631
+ # def on_plum: () -> Decorator
632
+ # def on_plum1: () -> Decorator
633
+ # def on_plum2: () -> Decorator
634
+ # def on_plum3: () -> Decorator
635
+ # def on_plum4: () -> Decorator
636
+ # def on_powder_blue: () -> Decorator
637
+ # def on_purple: () -> Decorator
638
+ # def on_purple3: () -> Decorator
639
+ # def on_purple4: () -> Decorator
640
+ # def on_purple4_55: () -> Decorator
641
+ # def on_purple_129: () -> Decorator
642
+ # def on_purple_system: () -> Decorator
643
+ # def on_rainbow: () -> Decorator
113
644
  # def on_red: () -> Decorator
645
+ # def on_red1: () -> Decorator
646
+ # def on_red3: () -> Decorator
647
+ # def on_red3_160: () -> Decorator
648
+ # def on_red_system: () -> Decorator
649
+ # def on_rgb: () -> Decorator
650
+ # def on_rosy_brown: () -> Decorator
651
+ # def on_royal_blue: () -> Decorator
652
+ # def on_royal_blue1: () -> Decorator
653
+ # def on_saddle_brown: () -> Decorator
654
+ # def on_salmon: () -> Decorator
655
+ # def on_salmon1: () -> Decorator
656
+ # def on_sandy_brown: () -> Decorator
657
+ # def on_sea_green: () -> Decorator
658
+ # def on_sea_shell: () -> Decorator
659
+ # def on_sienna: () -> Decorator
660
+ # def on_silver: () -> Decorator
661
+ # def on_silver_system: () -> Decorator
662
+ # def on_sky_blue: () -> Decorator
663
+ # def on_sky_blue1: () -> Decorator
664
+ # def on_sky_blue2: () -> Decorator
665
+ # def on_sky_blue3: () -> Decorator
666
+ # def on_slate_blue: () -> Decorator
667
+ # def on_slate_blue1: () -> Decorator
668
+ # def on_slate_blue3: () -> Decorator
669
+ # def on_slate_blue3_62: () -> Decorator
670
+ # def on_slate_gray: () -> Decorator
671
+ # def on_snow: () -> Decorator
672
+ # def on_spring_green: () -> Decorator
673
+ # def on_spring_green1: () -> Decorator
674
+ # def on_spring_green2: () -> Decorator
675
+ # def on_spring_green2_47: () -> Decorator
676
+ # def on_spring_green3: () -> Decorator
677
+ # def on_spring_green3_41: () -> Decorator
678
+ # def on_spring_green4: () -> Decorator
679
+ # def on_steel_blue: () -> Decorator
680
+ # def on_steel_blue1: () -> Decorator
681
+ # def on_steel_blue1_81: () -> Decorator
682
+ # def on_steel_blue3: () -> Decorator
683
+ # def on_tan: () -> Decorator
684
+ # def on_teal: () -> Decorator
685
+ # def on_teal_system: () -> Decorator
686
+ # def on_thistle: () -> Decorator
687
+ # def on_thistle1: () -> Decorator
688
+ # def on_thistle3: () -> Decorator
689
+ # def on_tomato: () -> Decorator
690
+ # def on_turquoise: () -> Decorator
691
+ # def on_turquoise2: () -> Decorator
692
+ # def on_turquoise4: () -> Decorator
693
+ # def on_violet: () -> Decorator
694
+ # def on_wheat: () -> Decorator
695
+ # def on_wheat1: () -> Decorator
696
+ # def on_wheat4: () -> Decorator
114
697
  # def on_white: () -> Decorator
698
+ # def on_white_smoke: () -> Decorator
699
+ # def on_white_system: () -> Decorator
115
700
  # def on_yellow: () -> Decorator
701
+ # def on_yellow1: () -> Decorator
702
+ # def on_yellow2: () -> Decorator
703
+ # def on_yellow3: () -> Decorator
704
+ # def on_yellow3_184: () -> Decorator
705
+ # def on_yellow4: () -> Decorator
706
+ # def on_yellow4_106: () -> Decorator
707
+ # def on_yellow_green: () -> Decorator
708
+ # def on_yellow_system: () -> Decorator
709
+ # def orange: () -> Decorator
710
+ # def orange1: () -> Decorator
711
+ # def orange3: () -> Decorator
712
+ # def orange4: () -> Decorator
713
+ # def orange4_94: () -> Decorator
714
+ # def orange_red: () -> Decorator
715
+ # def orange_red1: () -> Decorator
716
+ # def orchid: () -> Decorator
717
+ # def orchid1: () -> Decorator
718
+ # def orchid2: () -> Decorator
719
+ # def pale_goldenrod: () -> Decorator
720
+ # def pale_green: () -> Decorator
721
+ # def pale_green1: () -> Decorator
722
+ # def pale_green1_156: () -> Decorator
723
+ # def pale_green3: () -> Decorator
724
+ # def pale_green3_114: () -> Decorator
725
+ # def pale_turquoise: () -> Decorator
726
+ # def pale_turquoise1: () -> Decorator
727
+ # def pale_turquoise4: () -> Decorator
728
+ # def pale_violet_red: () -> Decorator
729
+ # def pale_violet_red1: () -> Decorator
730
+ # def papaya_whip: () -> Decorator
731
+ # def peach_puff: () -> Decorator
732
+ # def peru: () -> Decorator
733
+ # def pink: () -> Decorator
734
+ # def pink1: () -> Decorator
735
+ # def pink3: () -> Decorator
736
+ # def plum: () -> Decorator
737
+ # def plum1: () -> Decorator
738
+ # def plum2: () -> Decorator
739
+ # def plum3: () -> Decorator
740
+ # def plum4: () -> Decorator
741
+ # def powder_blue: () -> Decorator
742
+ # def purple: () -> Decorator
743
+ # def purple3: () -> Decorator
744
+ # def purple4: () -> Decorator
745
+ # def purple4_55: () -> Decorator
746
+ # def purple_129: () -> Decorator
747
+ # def purple_system: () -> Decorator
748
+ # def rainbow: () -> Decorator
116
749
  # def rapid_blink: () -> Decorator
117
750
  # def red: () -> Decorator
751
+ # def red1: () -> Decorator
752
+ # def red3: () -> Decorator
753
+ # def red3_160: () -> Decorator
754
+ # def red_system: () -> Decorator
118
755
  # def reverse: () -> Decorator
756
+ # def rgb: () -> Decorator
757
+ # def rosy_brown: () -> Decorator
758
+ # def royal_blue: () -> Decorator
759
+ # def royal_blue1: () -> Decorator
760
+ # def saddle_brown: () -> Decorator
761
+ # def salmon: () -> Decorator
762
+ # def salmon1: () -> Decorator
763
+ # def sandy_brown: () -> Decorator
764
+ # def sea_green: () -> Decorator
765
+ # def sea_shell: () -> Decorator
766
+ # def sienna: () -> Decorator
767
+ # def silver: () -> Decorator
768
+ # def silver_system: () -> Decorator
769
+ # def sky_blue: () -> Decorator
770
+ # def sky_blue1: () -> Decorator
771
+ # def sky_blue2: () -> Decorator
772
+ # def sky_blue3: () -> Decorator
773
+ # def slate_blue: () -> Decorator
774
+ # def slate_blue1: () -> Decorator
775
+ # def slate_blue3: () -> Decorator
776
+ # def slate_blue3_62: () -> Decorator
777
+ # def slate_gray: () -> Decorator
778
+ # def snow: () -> Decorator
779
+ # def spring_green: () -> Decorator
780
+ # def spring_green1: () -> Decorator
781
+ # def spring_green2: () -> Decorator
782
+ # def spring_green2_47: () -> Decorator
783
+ # def spring_green3: () -> Decorator
784
+ # def spring_green3_41: () -> Decorator
785
+ # def spring_green4: () -> Decorator
786
+ # def steel_blue: () -> Decorator
787
+ # def steel_blue1: () -> Decorator
788
+ # def steel_blue1_81: () -> Decorator
789
+ # def steel_blue3: () -> Decorator
119
790
  # def strike: () -> Decorator
791
+ # def tan: () -> Decorator
792
+ # def teal: () -> Decorator
793
+ # def teal_system: () -> Decorator
794
+ # def thistle: () -> Decorator
795
+ # def thistle1: () -> Decorator
796
+ # def thistle3: () -> Decorator
797
+ # def tomato: () -> Decorator
798
+ # def turquoise: () -> Decorator
799
+ # def turquoise2: () -> Decorator
800
+ # def turquoise4: () -> Decorator
120
801
  # def underline: () -> Decorator
802
+ # def violet: () -> Decorator
803
+ # def wheat: () -> Decorator
804
+ # def wheat1: () -> Decorator
805
+ # def wheat4: () -> Decorator
121
806
  # def white: () -> Decorator
807
+ # def white_smoke: () -> Decorator
808
+ # def white_system: () -> Decorator
122
809
  # def yellow: () -> Decorator
810
+ # def yellow1: () -> Decorator
811
+ # def yellow2: () -> Decorator
812
+ # def yellow3: () -> Decorator
813
+ # def yellow3_184: () -> Decorator
814
+ # def yellow4: () -> Decorator
815
+ # def yellow4_106: () -> Decorator
816
+ # def yellow_green: () -> Decorator
817
+ # def yellow_system: () -> Decorator
818
+ Decorator::Delegation.install(self)
819
+
820
+ # The Sai {ModeSelector mode selector}
821
+ #
822
+ # @author {https://aaronmallen.me Aaron Allen}
823
+ # @since 0.2.0
824
+ #
825
+ # @api public
826
+ #
827
+ # @example
828
+ # Sai.mode.auto #=> 4
829
+ #
830
+ # @return [ModeSelector] the mode selector
831
+ # @rbs () -> singleton(ModeSelector)
832
+ def mode
833
+ ModeSelector
834
+ end
835
+
836
+ # Sequence a string with ANSI escape codes
837
+ #
838
+ # @author {https://aaronmallen.me Aaron Allen}
839
+ # @since 0.3.0
840
+ #
841
+ # @api public
842
+ #
843
+ # @example Sequence a string with ANSI escape codes
844
+ # Sai.sequence("\e[38;2;205;0;0mHello, World!\e[0m") #=> #<Sai::ANSI::SequencedString:0x123>
845
+ #
846
+ # @param text [String] the text to sequence
847
+ #
848
+ # @return [ANSI::SequencedString] the sequenced string
849
+ # @rbs (String text) -> ANSI::SequencedString
850
+ def sequence(text)
851
+ ANSI::SequencedString.new(text)
852
+ end
123
853
 
124
854
  # The supported color modes for the terminal
125
855
  #