screenkit 0.0.0 → 0.0.2

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 (107) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/docker.yml +44 -0
  3. data/.github/workflows/ruby-tests.yml +21 -1
  4. data/Brewfile +5 -0
  5. data/CHANGELOG.md +13 -1
  6. data/CONTRIBUTING.md +25 -0
  7. data/DOCUMENTATION.md +132 -48
  8. data/Dockerfile +107 -0
  9. data/lib/screen_kit.rb +17 -16
  10. data/lib/screenkit/animation_filters.rb +16 -0
  11. data/lib/screenkit/callout/styles/base.rb +12 -0
  12. data/lib/screenkit/callout/styles/file_copy.rb +26 -0
  13. data/lib/screenkit/callout/styles/inline_block.rb +6 -9
  14. data/lib/screenkit/callout/styles/{default.rb → shadow_block.rb} +9 -11
  15. data/lib/screenkit/callout.rb +1 -1
  16. data/lib/screenkit/cli/episode.rb +1 -1
  17. data/lib/screenkit/config/episode.rb +6 -0
  18. data/lib/screenkit/config/project.rb +5 -2
  19. data/lib/screenkit/duration.rb +5 -0
  20. data/lib/screenkit/exporter/demotape.rb +20 -2
  21. data/lib/screenkit/exporter/episode.rb +42 -16
  22. data/lib/screenkit/exporter/intro.rb +4 -4
  23. data/lib/screenkit/exporter/outro.rb +5 -5
  24. data/lib/screenkit/exporter/segment.rb +270 -74
  25. data/lib/screenkit/generators/episode/callouts/001.yml +12 -0
  26. data/lib/screenkit/generators/episode/config.yml.erb +8 -8
  27. data/lib/screenkit/generators/project/screenkit.yml +123 -27
  28. data/lib/screenkit/schema_validator.rb +1 -1
  29. data/lib/screenkit/schemas/callout_styles/file_copy.json +8 -0
  30. data/lib/screenkit/schemas/callout_styles/inline_block.json +20 -0
  31. data/lib/screenkit/schemas/{callouts/default.json → callout_styles/shadow_block.json} +2 -2
  32. data/lib/screenkit/schemas/callouts/inline_block.json +20 -11
  33. data/lib/screenkit/schemas/callouts/shadow_block.json +39 -0
  34. data/lib/screenkit/schemas/episode.json +7 -55
  35. data/lib/screenkit/schemas/project.json +6 -6
  36. data/lib/screenkit/schemas/refs/anchor.json +1 -1
  37. data/lib/screenkit/schemas/refs/animation.json +1 -1
  38. data/lib/screenkit/schemas/refs/background.json +1 -1
  39. data/lib/screenkit/schemas/refs/{callout.json → callout_style.json} +6 -8
  40. data/lib/screenkit/schemas/refs/color.json +1 -1
  41. data/lib/screenkit/schemas/refs/demotape.json +48 -0
  42. data/lib/screenkit/schemas/refs/demotape_themes.json +367 -0
  43. data/lib/screenkit/schemas/refs/directory.json +1 -1
  44. data/lib/screenkit/schemas/refs/duration.json +9 -0
  45. data/lib/screenkit/schemas/refs/intro.json +4 -16
  46. data/lib/screenkit/schemas/refs/logo.json +1 -1
  47. data/lib/screenkit/schemas/refs/outro.json +4 -16
  48. data/lib/screenkit/schemas/refs/position.json +1 -1
  49. data/lib/screenkit/schemas/refs/scenes.json +2 -6
  50. data/lib/screenkit/schemas/refs/size.json +1 -1
  51. data/lib/screenkit/schemas/refs/sound.json +1 -1
  52. data/lib/screenkit/schemas/refs/spacing.json +1 -1
  53. data/lib/screenkit/schemas/refs/text_style.json +1 -1
  54. data/lib/screenkit/schemas/refs/transition.json +2 -6
  55. data/lib/screenkit/schemas/refs/tts.json +4 -41
  56. data/lib/screenkit/schemas/refs/tts_builtin.json +23 -0
  57. data/lib/screenkit/schemas/refs/watermark.json +1 -1
  58. data/lib/screenkit/schemas/tts/elevenlabs.json +11 -2
  59. data/lib/screenkit/schemas/tts/espeak.json +26 -0
  60. data/lib/screenkit/schemas/tts/say.json +12 -2
  61. data/lib/screenkit/shell.rb +6 -0
  62. data/lib/screenkit/time_formatter.rb +14 -0
  63. data/lib/screenkit/tts/base.rb +21 -0
  64. data/lib/screenkit/tts/eleven_labs.rb +8 -9
  65. data/lib/screenkit/tts/espeak.rb +30 -0
  66. data/lib/screenkit/tts/say.rb +5 -6
  67. data/lib/screenkit/utils.rb +6 -0
  68. data/lib/screenkit/version.rb +1 -1
  69. metadata +29 -46
  70. data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans-Bold.ttf +0 -0
  71. data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans-BoldItalic.ttf +0 -0
  72. data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans-ExtraBoldItalic.ttf +0 -0
  73. data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans-Italic.ttf +0 -0
  74. data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans-Light.ttf +0 -0
  75. data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans-LightItalic.ttf +0 -0
  76. data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans-Medium.ttf +0 -0
  77. data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans-MediumItalic.ttf +0 -0
  78. data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans-Regular.ttf +0 -0
  79. data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans-SemiBoldItalic.ttf +0 -0
  80. data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_Condensed-Bold.ttf +0 -0
  81. data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_Condensed-BoldItalic.ttf +0 -0
  82. data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_Condensed-ExtraBold.ttf +0 -0
  83. data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_Condensed-ExtraBoldItalic.ttf +0 -0
  84. data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_Condensed-Italic.ttf +0 -0
  85. data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_Condensed-Light.ttf +0 -0
  86. data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_Condensed-LightItalic.ttf +0 -0
  87. data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_Condensed-Medium.ttf +0 -0
  88. data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_Condensed-MediumItalic.ttf +0 -0
  89. data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_Condensed-Regular.ttf +0 -0
  90. data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_Condensed-SemiBold.ttf +0 -0
  91. data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_Condensed-SemiBoldItalic.ttf +0 -0
  92. data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_SemiCondensed-Bold.ttf +0 -0
  93. data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_SemiCondensed-BoldItalic.ttf +0 -0
  94. data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_SemiCondensed-ExtraBold.ttf +0 -0
  95. data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_SemiCondensed-ExtraBoldItalic.ttf +0 -0
  96. data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_SemiCondensed-Italic.ttf +0 -0
  97. data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_SemiCondensed-Light.ttf +0 -0
  98. data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_SemiCondensed-LightItalic.ttf +0 -0
  99. data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_SemiCondensed-Medium.ttf +0 -0
  100. data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_SemiCondensed-MediumItalic.ttf +0 -0
  101. data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_SemiCondensed-Regular.ttf +0 -0
  102. data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_SemiCondensed-SemiBold.ttf +0 -0
  103. data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_SemiCondensed-SemiBoldItalic.ttf +0 -0
  104. /data/lib/screenkit/generators/project/resources/fonts/{opensans → open-sans}/OFL.txt +0 -0
  105. /data/lib/screenkit/generators/project/resources/fonts/{opensans → open-sans}/OpenSans-ExtraBold.ttf +0 -0
  106. /data/lib/screenkit/generators/project/resources/fonts/{opensans → open-sans}/OpenSans-SemiBold.ttf +0 -0
  107. /data/lib/screenkit/generators/project/resources/fonts/{opensans → open-sans}/README.txt +0 -0
@@ -1,16 +1,26 @@
1
1
  {
2
2
  "$schema": "http://json-schema.org/draft-04/schema#",
3
- "$id": "https://github.com/fnando/screenkit/schemas/tts/say.json",
3
+ "$id": "https://screenkit.dev/schemas/tts/say.json",
4
4
  "title": "The Apple `say` voice engine options",
5
5
  "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["engine"],
6
8
  "properties": {
9
+ "enabled": {
10
+ "type": "boolean"
11
+ },
12
+ "engine": {
13
+ "type": "string",
14
+ "enum": ["say"],
15
+ "description": "The TTS engine to use"
16
+ },
7
17
  "voice": {
8
18
  "description": "The voice to use",
9
19
  "oneOf": [{ "type": "null" }, { "type": "string" }]
10
20
  },
11
21
  "rate": {
12
22
  "description": "The speaking rate (words per minute)",
13
- "oneOf": [{ "type": "null" }, { "type": "number", "pattern": "/^\\d+$/" }]
23
+ "oneOf": [{ "type": "null" }, { "type": "integer" }]
14
24
  }
15
25
  }
16
26
  }
@@ -14,6 +14,12 @@ module ScreenKit
14
14
  end
15
15
  end
16
16
 
17
+ # Checks if a command exists in the system's PATH.
18
+ # Right now we're completely ignoring Windows (unless it's running on WSL).
19
+ def command_exist?(command)
20
+ !`which #{command}`.strip.empty?
21
+ end
22
+
17
23
  def run_command(command, *args, log_path: nil)
18
24
  args = args.flatten.compact.map(&:to_s)
19
25
  stdout, stderr, status = Open3.capture3(command, *args)
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ScreenKit
4
+ class TimeFormatter
5
+ def self.parse(input)
6
+ return input if input.is_a?(Numeric)
7
+
8
+ hour, minute, second = ([0, 0, 0] + input.to_s.split(":"))[-3..-1]
9
+ .map(&:to_i)
10
+
11
+ (hour * 3600) + (minute * 60) + second
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ScreenKit
4
+ module TTS
5
+ class Base
6
+ extend SchemaValidator
7
+
8
+ # Additional options for the tts engine.
9
+ attr_reader :options
10
+
11
+ def initialize(enabled: true, **options)
12
+ @enabled = enabled
13
+ @options = options
14
+ end
15
+
16
+ def enabled?
17
+ @enabled
18
+ end
19
+ end
20
+ end
21
+ end
@@ -1,10 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ScreenKit
4
- module VoiceEngines
5
- class TTS
6
- extend SchemaValidator
7
-
4
+ module TTS
5
+ class ElevenLabs < Base
8
6
  def self.schema_path
9
7
  ScreenKit.root_dir
10
8
  .join("screenkit/schemas/tts/elevenlabs.json")
@@ -13,12 +11,13 @@ module ScreenKit
13
11
  # The Eleven Labs API key.
14
12
  attr_reader :api_key
15
13
 
16
- # Additional options for the Eleven Labs voice engine.
17
- attr_reader :options
18
-
19
- def initialize(api_key:, **options)
14
+ def initialize(api_key:, **)
15
+ super(**)
20
16
  @api_key = api_key
21
- @options = options
17
+ end
18
+
19
+ def available?
20
+ enabled? && !api_key.to_s.empty?
22
21
  end
23
22
 
24
23
  def generate(output_path:, text:, log_path: nil)
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ScreenKit
4
+ module TTS
5
+ class Espeak < Base
6
+ include Shell
7
+
8
+ def self.schema_path
9
+ ScreenKit.root_dir.join("screenkit/schemas/tts/espeak.json")
10
+ end
11
+
12
+ def available?
13
+ enabled? && command_exist?("espeak")
14
+ end
15
+
16
+ def generate(text:, output_path:, log_path: nil)
17
+ self.class.validate!(options)
18
+
19
+ {voice: nil, rate: nil}.merge(options) => {voice:, rate:}
20
+
21
+ run_command "espeak",
22
+ (["-v", voice] if voice),
23
+ (["-s", rate] if rate),
24
+ "-w", output_path.sub_ext(".wav"),
25
+ text,
26
+ log_path:
27
+ end
28
+ end
29
+ end
30
+ end
@@ -2,22 +2,21 @@
2
2
 
3
3
  module ScreenKit
4
4
  module TTS
5
- class Say
5
+ class Say < Base
6
6
  include Shell
7
- extend SchemaValidator
8
7
 
9
8
  def self.schema_path
10
9
  ScreenKit.root_dir.join("screenkit/schemas/tts/say.json")
11
10
  end
12
11
 
13
- def initialize(**options)
14
- @options = options
12
+ def available?
13
+ enabled? && command_exist?("say")
15
14
  end
16
15
 
17
16
  def generate(text:, output_path:, log_path: nil)
18
- self.class.validate!(@options)
17
+ self.class.validate!(options)
19
18
 
20
- {voice: nil, rate: nil}.merge(@options) => {voice:, rate:}
19
+ {voice: nil, rate: nil}.merge(options) => {voice:, rate:}
21
20
 
22
21
  run_command "say",
23
22
  (["-v", voice] if voice),
@@ -2,6 +2,12 @@
2
2
 
3
3
  module ScreenKit
4
4
  module Utils
5
+ def has_audio?(path)
6
+ cmd = "ffprobe -v error -select_streams a:0 -show_entries " \
7
+ "stream=codec_type -of default=noprint_wrappers=1:nokey=1"
8
+ `#{cmd} #{path}`.strip == "audio"
9
+ end
10
+
5
11
  def fps(path)
6
12
  cmd = "ffprobe -v error -select_streams v:0 -show_entries " \
7
13
  "stream=r_frame_rate -of default=noprint_wrappers=1:nokey=1"
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ScreenKit
4
- VERSION = "0.0.0"
4
+ VERSION = "0.0.2"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: screenkit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nando Vieira
@@ -262,13 +262,16 @@ files:
262
262
  - ".github/ISSUE_TEMPLATE/feature_request.md"
263
263
  - ".github/PULL_REQUEST_TEMPLATE.md"
264
264
  - ".github/dependabot.yml"
265
+ - ".github/workflows/docker.yml"
265
266
  - ".github/workflows/ruby-tests.yml"
266
267
  - ".gitignore"
267
268
  - ".rubocop.yml"
269
+ - Brewfile
268
270
  - CHANGELOG.md
269
271
  - CODE_OF_CONDUCT.md
270
272
  - CONTRIBUTING.md
271
273
  - DOCUMENTATION.md
274
+ - Dockerfile
272
275
  - Gemfile
273
276
  - LICENSE.md
274
277
  - README.md
@@ -283,8 +286,9 @@ files:
283
286
  - lib/screenkit/banner.rb
284
287
  - lib/screenkit/callout.rb
285
288
  - lib/screenkit/callout/styles/base.rb
286
- - lib/screenkit/callout/styles/default.rb
289
+ - lib/screenkit/callout/styles/file_copy.rb
287
290
  - lib/screenkit/callout/styles/inline_block.rb
291
+ - lib/screenkit/callout/styles/shadow_block.rb
288
292
  - lib/screenkit/callout/text_style.rb
289
293
  - lib/screenkit/cli.rb
290
294
  - lib/screenkit/cli/base.rb
@@ -296,6 +300,7 @@ files:
296
300
  - lib/screenkit/content_type.rb
297
301
  - lib/screenkit/core_ext/json.rb
298
302
  - lib/screenkit/core_ext/string.rb
303
+ - lib/screenkit/duration.rb
299
304
  - lib/screenkit/exporter/demotape.rb
300
305
  - lib/screenkit/exporter/episode.rb
301
306
  - lib/screenkit/exporter/image.rb
@@ -304,50 +309,17 @@ files:
304
309
  - lib/screenkit/exporter/segment.rb
305
310
  - lib/screenkit/exporter/video.rb
306
311
  - lib/screenkit/generators/episode.rb
312
+ - lib/screenkit/generators/episode/callouts/001.yml
307
313
  - lib/screenkit/generators/episode/config.yml.erb
308
314
  - lib/screenkit/generators/episode/content/001.tape
309
315
  - lib/screenkit/generators/episode/scripts/001.txt
310
316
  - lib/screenkit/generators/project.rb
311
317
  - lib/screenkit/generators/project/Gemfile.erb
312
318
  - lib/screenkit/generators/project/resources/backtracks/default.aac
313
- - lib/screenkit/generators/project/resources/fonts/opensans/OFL.txt
314
- - lib/screenkit/generators/project/resources/fonts/opensans/OpenSans-Bold.ttf
315
- - lib/screenkit/generators/project/resources/fonts/opensans/OpenSans-BoldItalic.ttf
316
- - lib/screenkit/generators/project/resources/fonts/opensans/OpenSans-ExtraBold.ttf
317
- - lib/screenkit/generators/project/resources/fonts/opensans/OpenSans-ExtraBoldItalic.ttf
318
- - lib/screenkit/generators/project/resources/fonts/opensans/OpenSans-Italic.ttf
319
- - lib/screenkit/generators/project/resources/fonts/opensans/OpenSans-Light.ttf
320
- - lib/screenkit/generators/project/resources/fonts/opensans/OpenSans-LightItalic.ttf
321
- - lib/screenkit/generators/project/resources/fonts/opensans/OpenSans-Medium.ttf
322
- - lib/screenkit/generators/project/resources/fonts/opensans/OpenSans-MediumItalic.ttf
323
- - lib/screenkit/generators/project/resources/fonts/opensans/OpenSans-Regular.ttf
324
- - lib/screenkit/generators/project/resources/fonts/opensans/OpenSans-SemiBold.ttf
325
- - lib/screenkit/generators/project/resources/fonts/opensans/OpenSans-SemiBoldItalic.ttf
326
- - lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_Condensed-Bold.ttf
327
- - lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_Condensed-BoldItalic.ttf
328
- - lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_Condensed-ExtraBold.ttf
329
- - lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_Condensed-ExtraBoldItalic.ttf
330
- - lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_Condensed-Italic.ttf
331
- - lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_Condensed-Light.ttf
332
- - lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_Condensed-LightItalic.ttf
333
- - lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_Condensed-Medium.ttf
334
- - lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_Condensed-MediumItalic.ttf
335
- - lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_Condensed-Regular.ttf
336
- - lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_Condensed-SemiBold.ttf
337
- - lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_Condensed-SemiBoldItalic.ttf
338
- - lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_SemiCondensed-Bold.ttf
339
- - lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_SemiCondensed-BoldItalic.ttf
340
- - lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_SemiCondensed-ExtraBold.ttf
341
- - lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_SemiCondensed-ExtraBoldItalic.ttf
342
- - lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_SemiCondensed-Italic.ttf
343
- - lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_SemiCondensed-Light.ttf
344
- - lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_SemiCondensed-LightItalic.ttf
345
- - lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_SemiCondensed-Medium.ttf
346
- - lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_SemiCondensed-MediumItalic.ttf
347
- - lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_SemiCondensed-Regular.ttf
348
- - lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_SemiCondensed-SemiBold.ttf
349
- - lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_SemiCondensed-SemiBoldItalic.ttf
350
- - lib/screenkit/generators/project/resources/fonts/opensans/README.txt
319
+ - lib/screenkit/generators/project/resources/fonts/open-sans/OFL.txt
320
+ - lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans-ExtraBold.ttf
321
+ - lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans-SemiBold.ttf
322
+ - lib/screenkit/generators/project/resources/fonts/open-sans/README.txt
351
323
  - lib/screenkit/generators/project/resources/images/logo.png
352
324
  - lib/screenkit/generators/project/resources/images/watermark.png
353
325
  - lib/screenkit/generators/project/resources/sounds/chime.mp3
@@ -360,16 +332,22 @@ files:
360
332
  - lib/screenkit/resources/mute.mp3
361
333
  - lib/screenkit/resources/transparent.png
362
334
  - lib/screenkit/schema_validator.rb
363
- - lib/screenkit/schemas/callouts/default.json
335
+ - lib/screenkit/schemas/callout_styles/file_copy.json
336
+ - lib/screenkit/schemas/callout_styles/inline_block.json
337
+ - lib/screenkit/schemas/callout_styles/shadow_block.json
364
338
  - lib/screenkit/schemas/callouts/inline_block.json
339
+ - lib/screenkit/schemas/callouts/shadow_block.json
365
340
  - lib/screenkit/schemas/episode.json
366
341
  - lib/screenkit/schemas/project.json
367
342
  - lib/screenkit/schemas/refs/anchor.json
368
343
  - lib/screenkit/schemas/refs/animation.json
369
344
  - lib/screenkit/schemas/refs/background.json
370
- - lib/screenkit/schemas/refs/callout.json
345
+ - lib/screenkit/schemas/refs/callout_style.json
371
346
  - lib/screenkit/schemas/refs/color.json
347
+ - lib/screenkit/schemas/refs/demotape.json
348
+ - lib/screenkit/schemas/refs/demotape_themes.json
372
349
  - lib/screenkit/schemas/refs/directory.json
350
+ - lib/screenkit/schemas/refs/duration.json
373
351
  - lib/screenkit/schemas/refs/intro.json
374
352
  - lib/screenkit/schemas/refs/logo.json
375
353
  - lib/screenkit/schemas/refs/outro.json
@@ -381,15 +359,20 @@ files:
381
359
  - lib/screenkit/schemas/refs/text_style.json
382
360
  - lib/screenkit/schemas/refs/transition.json
383
361
  - lib/screenkit/schemas/refs/tts.json
362
+ - lib/screenkit/schemas/refs/tts_builtin.json
384
363
  - lib/screenkit/schemas/refs/watermark.json
385
364
  - lib/screenkit/schemas/tts/elevenlabs.json
365
+ - lib/screenkit/schemas/tts/espeak.json
386
366
  - lib/screenkit/schemas/tts/say.json
387
367
  - lib/screenkit/shell.rb
388
368
  - lib/screenkit/sound.rb
389
369
  - lib/screenkit/spacing.rb
390
370
  - lib/screenkit/spinner.rb
371
+ - lib/screenkit/time_formatter.rb
391
372
  - lib/screenkit/transition.rb
373
+ - lib/screenkit/tts/base.rb
392
374
  - lib/screenkit/tts/eleven_labs.rb
375
+ - lib/screenkit/tts/espeak.rb
393
376
  - lib/screenkit/tts/say.rb
394
377
  - lib/screenkit/utils.rb
395
378
  - lib/screenkit/version.rb
@@ -402,10 +385,10 @@ metadata:
402
385
  rubygems_mfa_required: 'true'
403
386
  homepage_uri: https://github.com/fnando/screenkit
404
387
  bug_tracker_uri: https://github.com/fnando/screenkit/issues
405
- source_code_uri: https://github.com/fnando/screenkit/tree/v0.0.0
406
- changelog_uri: https://github.com/fnando/screenkit/tree/v0.0.0/CHANGELOG.md
407
- documentation_uri: https://github.com/fnando/screenkit/tree/v0.0.0/README.md
408
- license_uri: https://github.com/fnando/screenkit/tree/v0.0.0/LICENSE.md
388
+ source_code_uri: https://github.com/fnando/screenkit/tree/v0.0.2
389
+ changelog_uri: https://github.com/fnando/screenkit/tree/v0.0.2/CHANGELOG.md
390
+ documentation_uri: https://github.com/fnando/screenkit/tree/v0.0.2/README.md
391
+ license_uri: https://github.com/fnando/screenkit/tree/v0.0.2/LICENSE.md
409
392
  rdoc_options: []
410
393
  require_paths:
411
394
  - lib