screenkit 0.0.1 → 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 (100) 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 +7 -0
  6. data/CONTRIBUTING.md +25 -0
  7. data/DOCUMENTATION.md +125 -41
  8. data/Dockerfile +107 -0
  9. data/lib/screen_kit.rb +15 -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/exporter/demotape.rb +8 -0
  20. data/lib/screenkit/exporter/episode.rb +37 -17
  21. data/lib/screenkit/exporter/segment.rb +262 -71
  22. data/lib/screenkit/generators/episode/callouts/001.yml +12 -0
  23. data/lib/screenkit/generators/episode/config.yml.erb +8 -8
  24. data/lib/screenkit/generators/project/screenkit.yml +46 -15
  25. data/lib/screenkit/schema_validator.rb +1 -1
  26. data/lib/screenkit/schemas/callout_styles/file_copy.json +8 -0
  27. data/lib/screenkit/schemas/callout_styles/inline_block.json +20 -0
  28. data/lib/screenkit/schemas/{callouts/default.json → callout_styles/shadow_block.json} +2 -2
  29. data/lib/screenkit/schemas/callouts/inline_block.json +20 -11
  30. data/lib/screenkit/schemas/callouts/shadow_block.json +39 -0
  31. data/lib/screenkit/schemas/episode.json +6 -43
  32. data/lib/screenkit/schemas/project.json +4 -5
  33. data/lib/screenkit/schemas/refs/anchor.json +1 -1
  34. data/lib/screenkit/schemas/refs/animation.json +1 -1
  35. data/lib/screenkit/schemas/refs/background.json +1 -1
  36. data/lib/screenkit/schemas/refs/{callout.json → callout_style.json} +6 -8
  37. data/lib/screenkit/schemas/refs/color.json +1 -1
  38. data/lib/screenkit/schemas/refs/demotape.json +1 -1
  39. data/lib/screenkit/schemas/refs/demotape_themes.json +1 -1
  40. data/lib/screenkit/schemas/refs/directory.json +1 -1
  41. data/lib/screenkit/schemas/refs/duration.json +1 -1
  42. data/lib/screenkit/schemas/refs/intro.json +1 -1
  43. data/lib/screenkit/schemas/refs/logo.json +1 -1
  44. data/lib/screenkit/schemas/refs/outro.json +1 -1
  45. data/lib/screenkit/schemas/refs/position.json +1 -1
  46. data/lib/screenkit/schemas/refs/scenes.json +1 -1
  47. data/lib/screenkit/schemas/refs/size.json +1 -1
  48. data/lib/screenkit/schemas/refs/sound.json +1 -1
  49. data/lib/screenkit/schemas/refs/spacing.json +1 -1
  50. data/lib/screenkit/schemas/refs/text_style.json +1 -1
  51. data/lib/screenkit/schemas/refs/transition.json +1 -1
  52. data/lib/screenkit/schemas/refs/tts.json +4 -41
  53. data/lib/screenkit/schemas/refs/tts_builtin.json +23 -0
  54. data/lib/screenkit/schemas/refs/watermark.json +1 -1
  55. data/lib/screenkit/schemas/tts/elevenlabs.json +11 -2
  56. data/lib/screenkit/schemas/tts/espeak.json +26 -0
  57. data/lib/screenkit/schemas/tts/say.json +11 -1
  58. data/lib/screenkit/shell.rb +6 -0
  59. data/lib/screenkit/time_formatter.rb +14 -0
  60. data/lib/screenkit/tts/base.rb +21 -0
  61. data/lib/screenkit/tts/eleven_labs.rb +8 -9
  62. data/lib/screenkit/tts/espeak.rb +30 -0
  63. data/lib/screenkit/tts/say.rb +5 -6
  64. data/lib/screenkit/utils.rb +6 -0
  65. data/lib/screenkit/version.rb +1 -1
  66. metadata +21 -42
  67. data/lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans-Bold.ttf +0 -0
  68. data/lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans-BoldItalic.ttf +0 -0
  69. data/lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans-ExtraBoldItalic.ttf +0 -0
  70. data/lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans-Italic.ttf +0 -0
  71. data/lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans-Light.ttf +0 -0
  72. data/lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans-LightItalic.ttf +0 -0
  73. data/lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans-Medium.ttf +0 -0
  74. data/lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans-MediumItalic.ttf +0 -0
  75. data/lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans-Regular.ttf +0 -0
  76. data/lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans-SemiBoldItalic.ttf +0 -0
  77. data/lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_Condensed-Bold.ttf +0 -0
  78. data/lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_Condensed-BoldItalic.ttf +0 -0
  79. data/lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_Condensed-ExtraBold.ttf +0 -0
  80. data/lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_Condensed-ExtraBoldItalic.ttf +0 -0
  81. data/lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_Condensed-Italic.ttf +0 -0
  82. data/lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_Condensed-Light.ttf +0 -0
  83. data/lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_Condensed-LightItalic.ttf +0 -0
  84. data/lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_Condensed-Medium.ttf +0 -0
  85. data/lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_Condensed-MediumItalic.ttf +0 -0
  86. data/lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_Condensed-Regular.ttf +0 -0
  87. data/lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_Condensed-SemiBold.ttf +0 -0
  88. data/lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_Condensed-SemiBoldItalic.ttf +0 -0
  89. data/lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_SemiCondensed-Bold.ttf +0 -0
  90. data/lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_SemiCondensed-BoldItalic.ttf +0 -0
  91. data/lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_SemiCondensed-ExtraBold.ttf +0 -0
  92. data/lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_SemiCondensed-ExtraBoldItalic.ttf +0 -0
  93. data/lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_SemiCondensed-Italic.ttf +0 -0
  94. data/lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_SemiCondensed-Light.ttf +0 -0
  95. data/lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_SemiCondensed-LightItalic.ttf +0 -0
  96. data/lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_SemiCondensed-Medium.ttf +0 -0
  97. data/lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_SemiCondensed-MediumItalic.ttf +0 -0
  98. data/lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_SemiCondensed-Regular.ttf +0 -0
  99. data/lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_SemiCondensed-SemiBold.ttf +0 -0
  100. data/lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_SemiCondensed-SemiBoldItalic.ttf +0 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "http://json-schema.org/draft-04/schema#",
3
- "$id": "https://github.com/fnando/screenkit/schemas/project.json",
3
+ "$id": "https://screenkit.dev/schemas/refs/project.json",
4
4
  "title": "Watermark",
5
5
  "oneOf": [
6
6
  { "type": "boolean", "enum": [false] },
@@ -1,10 +1,19 @@
1
1
  {
2
2
  "$schema": "http://json-schema.org/draft-04/schema#",
3
- "$id": "https://github.com/fnando/screenkit/schemas/tts/elevenlabs.json",
3
+ "$id": "https://screenkit.dev/schemas/tts/elevenlabs.json",
4
4
  "title": "The ElevenLabs voice engine options",
5
5
  "type": "object",
6
- "required": ["voice_id"],
6
+ "required": ["voice_id", "engine"],
7
+ "additionalProperties": false,
7
8
  "properties": {
9
+ "enabled": {
10
+ "type": "boolean"
11
+ },
12
+ "engine": {
13
+ "type": "string",
14
+ "enum": ["eleven_labs"],
15
+ "description": "The TTS engine to use"
16
+ },
8
17
  "voice_id": { "type": "string" },
9
18
  "output_format": {
10
19
  "type": "string",
@@ -0,0 +1,26 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-04/schema#",
3
+ "$id": "https://screenkit.dev/schemas/tts/espeak.json",
4
+ "title": "espeak synthesizer for English and other languages",
5
+ "type": "object",
6
+ "required": ["engine"],
7
+ "additionalProperties": false,
8
+ "properties": {
9
+ "enabled": {
10
+ "type": "boolean"
11
+ },
12
+ "engine": {
13
+ "type": "string",
14
+ "enum": ["espeak"],
15
+ "description": "The TTS engine to use"
16
+ },
17
+ "voice": {
18
+ "description": "The voice to use",
19
+ "oneOf": [{ "type": "null" }, { "type": "string" }]
20
+ },
21
+ "rate": {
22
+ "description": "The speaking rate (words per minute)",
23
+ "oneOf": [{ "type": "null" }, { "type": "integer" }]
24
+ }
25
+ }
26
+ }
@@ -1,9 +1,19 @@
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" }]
@@ -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.1"
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.1
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
@@ -305,6 +309,7 @@ files:
305
309
  - lib/screenkit/exporter/segment.rb
306
310
  - lib/screenkit/exporter/video.rb
307
311
  - lib/screenkit/generators/episode.rb
312
+ - lib/screenkit/generators/episode/callouts/001.yml
308
313
  - lib/screenkit/generators/episode/config.yml.erb
309
314
  - lib/screenkit/generators/episode/content/001.tape
310
315
  - lib/screenkit/generators/episode/scripts/001.txt
@@ -312,42 +317,8 @@ files:
312
317
  - lib/screenkit/generators/project/Gemfile.erb
313
318
  - lib/screenkit/generators/project/resources/backtracks/default.aac
314
319
  - lib/screenkit/generators/project/resources/fonts/open-sans/OFL.txt
315
- - lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans-Bold.ttf
316
- - lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans-BoldItalic.ttf
317
320
  - lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans-ExtraBold.ttf
318
- - lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans-ExtraBoldItalic.ttf
319
- - lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans-Italic.ttf
320
- - lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans-Light.ttf
321
- - lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans-LightItalic.ttf
322
- - lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans-Medium.ttf
323
- - lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans-MediumItalic.ttf
324
- - lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans-Regular.ttf
325
321
  - lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans-SemiBold.ttf
326
- - lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans-SemiBoldItalic.ttf
327
- - lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_Condensed-Bold.ttf
328
- - lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_Condensed-BoldItalic.ttf
329
- - lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_Condensed-ExtraBold.ttf
330
- - lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_Condensed-ExtraBoldItalic.ttf
331
- - lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_Condensed-Italic.ttf
332
- - lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_Condensed-Light.ttf
333
- - lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_Condensed-LightItalic.ttf
334
- - lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_Condensed-Medium.ttf
335
- - lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_Condensed-MediumItalic.ttf
336
- - lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_Condensed-Regular.ttf
337
- - lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_Condensed-SemiBold.ttf
338
- - lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_Condensed-SemiBoldItalic.ttf
339
- - lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_SemiCondensed-Bold.ttf
340
- - lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_SemiCondensed-BoldItalic.ttf
341
- - lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_SemiCondensed-ExtraBold.ttf
342
- - lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_SemiCondensed-ExtraBoldItalic.ttf
343
- - lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_SemiCondensed-Italic.ttf
344
- - lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_SemiCondensed-Light.ttf
345
- - lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_SemiCondensed-LightItalic.ttf
346
- - lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_SemiCondensed-Medium.ttf
347
- - lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_SemiCondensed-MediumItalic.ttf
348
- - lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_SemiCondensed-Regular.ttf
349
- - lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_SemiCondensed-SemiBold.ttf
350
- - lib/screenkit/generators/project/resources/fonts/open-sans/OpenSans_SemiCondensed-SemiBoldItalic.ttf
351
322
  - lib/screenkit/generators/project/resources/fonts/open-sans/README.txt
352
323
  - lib/screenkit/generators/project/resources/images/logo.png
353
324
  - lib/screenkit/generators/project/resources/images/watermark.png
@@ -361,14 +332,17 @@ files:
361
332
  - lib/screenkit/resources/mute.mp3
362
333
  - lib/screenkit/resources/transparent.png
363
334
  - lib/screenkit/schema_validator.rb
364
- - 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
365
338
  - lib/screenkit/schemas/callouts/inline_block.json
339
+ - lib/screenkit/schemas/callouts/shadow_block.json
366
340
  - lib/screenkit/schemas/episode.json
367
341
  - lib/screenkit/schemas/project.json
368
342
  - lib/screenkit/schemas/refs/anchor.json
369
343
  - lib/screenkit/schemas/refs/animation.json
370
344
  - lib/screenkit/schemas/refs/background.json
371
- - lib/screenkit/schemas/refs/callout.json
345
+ - lib/screenkit/schemas/refs/callout_style.json
372
346
  - lib/screenkit/schemas/refs/color.json
373
347
  - lib/screenkit/schemas/refs/demotape.json
374
348
  - lib/screenkit/schemas/refs/demotape_themes.json
@@ -385,15 +359,20 @@ files:
385
359
  - lib/screenkit/schemas/refs/text_style.json
386
360
  - lib/screenkit/schemas/refs/transition.json
387
361
  - lib/screenkit/schemas/refs/tts.json
362
+ - lib/screenkit/schemas/refs/tts_builtin.json
388
363
  - lib/screenkit/schemas/refs/watermark.json
389
364
  - lib/screenkit/schemas/tts/elevenlabs.json
365
+ - lib/screenkit/schemas/tts/espeak.json
390
366
  - lib/screenkit/schemas/tts/say.json
391
367
  - lib/screenkit/shell.rb
392
368
  - lib/screenkit/sound.rb
393
369
  - lib/screenkit/spacing.rb
394
370
  - lib/screenkit/spinner.rb
371
+ - lib/screenkit/time_formatter.rb
395
372
  - lib/screenkit/transition.rb
373
+ - lib/screenkit/tts/base.rb
396
374
  - lib/screenkit/tts/eleven_labs.rb
375
+ - lib/screenkit/tts/espeak.rb
397
376
  - lib/screenkit/tts/say.rb
398
377
  - lib/screenkit/utils.rb
399
378
  - lib/screenkit/version.rb
@@ -406,10 +385,10 @@ metadata:
406
385
  rubygems_mfa_required: 'true'
407
386
  homepage_uri: https://github.com/fnando/screenkit
408
387
  bug_tracker_uri: https://github.com/fnando/screenkit/issues
409
- source_code_uri: https://github.com/fnando/screenkit/tree/v0.0.1
410
- changelog_uri: https://github.com/fnando/screenkit/tree/v0.0.1/CHANGELOG.md
411
- documentation_uri: https://github.com/fnando/screenkit/tree/v0.0.1/README.md
412
- license_uri: https://github.com/fnando/screenkit/tree/v0.0.1/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
413
392
  rdoc_options: []
414
393
  require_paths:
415
394
  - lib