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.
- checksums.yaml +4 -4
- data/.github/workflows/docker.yml +44 -0
- data/.github/workflows/ruby-tests.yml +21 -1
- data/Brewfile +5 -0
- data/CHANGELOG.md +13 -1
- data/CONTRIBUTING.md +25 -0
- data/DOCUMENTATION.md +132 -48
- data/Dockerfile +107 -0
- data/lib/screen_kit.rb +17 -16
- data/lib/screenkit/animation_filters.rb +16 -0
- data/lib/screenkit/callout/styles/base.rb +12 -0
- data/lib/screenkit/callout/styles/file_copy.rb +26 -0
- data/lib/screenkit/callout/styles/inline_block.rb +6 -9
- data/lib/screenkit/callout/styles/{default.rb → shadow_block.rb} +9 -11
- data/lib/screenkit/callout.rb +1 -1
- data/lib/screenkit/cli/episode.rb +1 -1
- data/lib/screenkit/config/episode.rb +6 -0
- data/lib/screenkit/config/project.rb +5 -2
- data/lib/screenkit/duration.rb +5 -0
- data/lib/screenkit/exporter/demotape.rb +20 -2
- data/lib/screenkit/exporter/episode.rb +42 -16
- data/lib/screenkit/exporter/intro.rb +4 -4
- data/lib/screenkit/exporter/outro.rb +5 -5
- data/lib/screenkit/exporter/segment.rb +270 -74
- data/lib/screenkit/generators/episode/callouts/001.yml +12 -0
- data/lib/screenkit/generators/episode/config.yml.erb +8 -8
- data/lib/screenkit/generators/project/screenkit.yml +123 -27
- data/lib/screenkit/schema_validator.rb +1 -1
- data/lib/screenkit/schemas/callout_styles/file_copy.json +8 -0
- data/lib/screenkit/schemas/callout_styles/inline_block.json +20 -0
- data/lib/screenkit/schemas/{callouts/default.json → callout_styles/shadow_block.json} +2 -2
- data/lib/screenkit/schemas/callouts/inline_block.json +20 -11
- data/lib/screenkit/schemas/callouts/shadow_block.json +39 -0
- data/lib/screenkit/schemas/episode.json +7 -55
- data/lib/screenkit/schemas/project.json +6 -6
- data/lib/screenkit/schemas/refs/anchor.json +1 -1
- data/lib/screenkit/schemas/refs/animation.json +1 -1
- data/lib/screenkit/schemas/refs/background.json +1 -1
- data/lib/screenkit/schemas/refs/{callout.json → callout_style.json} +6 -8
- data/lib/screenkit/schemas/refs/color.json +1 -1
- data/lib/screenkit/schemas/refs/demotape.json +48 -0
- data/lib/screenkit/schemas/refs/demotape_themes.json +367 -0
- data/lib/screenkit/schemas/refs/directory.json +1 -1
- data/lib/screenkit/schemas/refs/duration.json +9 -0
- data/lib/screenkit/schemas/refs/intro.json +4 -16
- data/lib/screenkit/schemas/refs/logo.json +1 -1
- data/lib/screenkit/schemas/refs/outro.json +4 -16
- data/lib/screenkit/schemas/refs/position.json +1 -1
- data/lib/screenkit/schemas/refs/scenes.json +2 -6
- data/lib/screenkit/schemas/refs/size.json +1 -1
- data/lib/screenkit/schemas/refs/sound.json +1 -1
- data/lib/screenkit/schemas/refs/spacing.json +1 -1
- data/lib/screenkit/schemas/refs/text_style.json +1 -1
- data/lib/screenkit/schemas/refs/transition.json +2 -6
- data/lib/screenkit/schemas/refs/tts.json +4 -41
- data/lib/screenkit/schemas/refs/tts_builtin.json +23 -0
- data/lib/screenkit/schemas/refs/watermark.json +1 -1
- data/lib/screenkit/schemas/tts/elevenlabs.json +11 -2
- data/lib/screenkit/schemas/tts/espeak.json +26 -0
- data/lib/screenkit/schemas/tts/say.json +12 -2
- data/lib/screenkit/shell.rb +6 -0
- data/lib/screenkit/time_formatter.rb +14 -0
- data/lib/screenkit/tts/base.rb +21 -0
- data/lib/screenkit/tts/eleven_labs.rb +8 -9
- data/lib/screenkit/tts/espeak.rb +30 -0
- data/lib/screenkit/tts/say.rb +5 -6
- data/lib/screenkit/utils.rb +6 -0
- data/lib/screenkit/version.rb +1 -1
- metadata +29 -46
- data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans-Bold.ttf +0 -0
- data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans-BoldItalic.ttf +0 -0
- data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans-ExtraBoldItalic.ttf +0 -0
- data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans-Italic.ttf +0 -0
- data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans-Light.ttf +0 -0
- data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans-LightItalic.ttf +0 -0
- data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans-Medium.ttf +0 -0
- data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans-MediumItalic.ttf +0 -0
- data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans-Regular.ttf +0 -0
- data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans-SemiBoldItalic.ttf +0 -0
- data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_Condensed-Bold.ttf +0 -0
- data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_Condensed-BoldItalic.ttf +0 -0
- data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_Condensed-ExtraBold.ttf +0 -0
- data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_Condensed-ExtraBoldItalic.ttf +0 -0
- data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_Condensed-Italic.ttf +0 -0
- data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_Condensed-Light.ttf +0 -0
- data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_Condensed-LightItalic.ttf +0 -0
- data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_Condensed-Medium.ttf +0 -0
- data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_Condensed-MediumItalic.ttf +0 -0
- data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_Condensed-Regular.ttf +0 -0
- data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_Condensed-SemiBold.ttf +0 -0
- data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_Condensed-SemiBoldItalic.ttf +0 -0
- data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_SemiCondensed-Bold.ttf +0 -0
- data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_SemiCondensed-BoldItalic.ttf +0 -0
- data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_SemiCondensed-ExtraBold.ttf +0 -0
- data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_SemiCondensed-ExtraBoldItalic.ttf +0 -0
- data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_SemiCondensed-Italic.ttf +0 -0
- data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_SemiCondensed-Light.ttf +0 -0
- data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_SemiCondensed-LightItalic.ttf +0 -0
- data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_SemiCondensed-Medium.ttf +0 -0
- data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_SemiCondensed-MediumItalic.ttf +0 -0
- data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_SemiCondensed-Regular.ttf +0 -0
- data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_SemiCondensed-SemiBold.ttf +0 -0
- data/lib/screenkit/generators/project/resources/fonts/opensans/OpenSans_SemiCondensed-SemiBoldItalic.ttf +0 -0
- /data/lib/screenkit/generators/project/resources/fonts/{opensans → open-sans}/OFL.txt +0 -0
- /data/lib/screenkit/generators/project/resources/fonts/{opensans → open-sans}/OpenSans-ExtraBold.ttf +0 -0
- /data/lib/screenkit/generators/project/resources/fonts/{opensans → open-sans}/OpenSans-SemiBold.ttf +0 -0
- /data/lib/screenkit/generators/project/resources/fonts/{opensans → open-sans}/README.txt +0 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
3
|
+
"$id": "https://screenkit.dev/schemas/callout_styles/inline_block.json",
|
|
4
|
+
"title": "Inline Block Callout",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": ["background_color", "text_style"],
|
|
7
|
+
"properties": {
|
|
8
|
+
"background_color": { "$ref": "../refs/color.json" },
|
|
9
|
+
"width": {
|
|
10
|
+
"type": "number",
|
|
11
|
+
"description": "The callout width"
|
|
12
|
+
},
|
|
13
|
+
"text_style": {
|
|
14
|
+
"$ref": "../refs/text_style.json"
|
|
15
|
+
},
|
|
16
|
+
"padding": {
|
|
17
|
+
"$ref": "../refs/spacing.json"
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
3
|
-
"$id": "https://
|
|
4
|
-
"title": "
|
|
3
|
+
"$id": "https://screenkit.dev/schemas/callout_styles/shadow_block.json",
|
|
4
|
+
"title": "Shadow Block Callout",
|
|
5
5
|
"type": "object",
|
|
6
6
|
"required": [
|
|
7
7
|
"background_color",
|
|
@@ -1,20 +1,29 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
3
|
-
"$id": "https://
|
|
4
|
-
"title": "Inline Block
|
|
3
|
+
"$id": "https://screenkit.dev/schemas/callouts/inline_block.json",
|
|
4
|
+
"title": "Callout — Inline Block",
|
|
5
5
|
"type": "object",
|
|
6
|
-
"required": ["
|
|
6
|
+
"required": ["type", "text", "duration", "starts_at"],
|
|
7
7
|
"properties": {
|
|
8
|
-
"
|
|
9
|
-
|
|
10
|
-
"
|
|
11
|
-
"description": "The callout
|
|
8
|
+
"type": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"enum": ["inline_block"],
|
|
11
|
+
"description": "The callout type"
|
|
12
12
|
},
|
|
13
|
-
"
|
|
14
|
-
"
|
|
13
|
+
"text": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"description": "The callout text"
|
|
15
16
|
},
|
|
16
|
-
"
|
|
17
|
-
|
|
17
|
+
"duration": { "$ref": "../refs/duration.json" },
|
|
18
|
+
"starts_at": {
|
|
19
|
+
"oneOf": [
|
|
20
|
+
{
|
|
21
|
+
"type": "string",
|
|
22
|
+
"pattern": "^(\\d{1,2}:)?(\\d{1,2}):(\\d{1,2})$",
|
|
23
|
+
"description": "A pattern like 00:00:00"
|
|
24
|
+
},
|
|
25
|
+
{ "type": "integer", "description": "The position in seconds" }
|
|
26
|
+
]
|
|
18
27
|
}
|
|
19
28
|
}
|
|
20
29
|
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
3
|
+
"$id": "https://screenkit.dev/schemas/callouts/shadow_block.json",
|
|
4
|
+
"title": "Callout — Shadow Block",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": ["type", "duration", "starts_at"],
|
|
7
|
+
"anyOf": [{ "required": ["title"] }, { "required": ["body"] }],
|
|
8
|
+
"properties": {
|
|
9
|
+
"type": {
|
|
10
|
+
"type": "string",
|
|
11
|
+
"enum": ["shadow_block"],
|
|
12
|
+
"description": "The callout type"
|
|
13
|
+
},
|
|
14
|
+
"title": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"description": "The callout text"
|
|
17
|
+
},
|
|
18
|
+
"body": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"description": "The callout body text"
|
|
21
|
+
},
|
|
22
|
+
"width": {
|
|
23
|
+
"type": "number",
|
|
24
|
+
"description": "The callout width",
|
|
25
|
+
"minimum": 0
|
|
26
|
+
},
|
|
27
|
+
"duration": { "$ref": "../refs/duration.json" },
|
|
28
|
+
"starts_at": {
|
|
29
|
+
"oneOf": [
|
|
30
|
+
{
|
|
31
|
+
"type": "string",
|
|
32
|
+
"pattern": "^\\d{2}:\\d{2}:\\d{2}$",
|
|
33
|
+
"description": "A pattern like 00:00:00"
|
|
34
|
+
},
|
|
35
|
+
{ "type": "integer", "description": "The position in seconds" }
|
|
36
|
+
]
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
3
|
-
"$id": "https://
|
|
4
|
-
"title": "ScreenKit Episode Configuration",
|
|
5
|
-
"description": "Schema for ScreenKit episode configuration file (config.yml)",
|
|
3
|
+
"$id": "https://screenkit.dev/schemas/episode.json",
|
|
4
|
+
"title": "ScreenKit Episode Configuration (config.yml)",
|
|
6
5
|
"type": "object",
|
|
7
6
|
"required": ["title"],
|
|
8
7
|
"properties": {
|
|
@@ -16,58 +15,11 @@
|
|
|
16
15
|
"minLength": 1,
|
|
17
16
|
"pattern": "\\S"
|
|
18
17
|
},
|
|
19
|
-
"
|
|
20
|
-
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"required": ["type", "starts_at", "duration"],
|
|
25
|
-
"additionalProperties": true,
|
|
26
|
-
"properties": {
|
|
27
|
-
"type": {
|
|
28
|
-
"type": "string",
|
|
29
|
-
"description": "Callout type identifier",
|
|
30
|
-
"minLength": 1,
|
|
31
|
-
"pattern": "\\S"
|
|
32
|
-
},
|
|
33
|
-
"starts_at": {
|
|
34
|
-
"oneOf": [
|
|
35
|
-
{
|
|
36
|
-
"type": "string",
|
|
37
|
-
"description": "Callout start time in HH:MM:SS format (e.g. 00:01:30)"
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
"type": "number",
|
|
41
|
-
"description": "Callout start time in seconds (e.g. 90)"
|
|
42
|
-
}
|
|
43
|
-
]
|
|
44
|
-
},
|
|
45
|
-
"duration": {
|
|
46
|
-
"oneOf": [
|
|
47
|
-
{
|
|
48
|
-
"type": "string",
|
|
49
|
-
"description": "Callout duration time (e.g. 5s)",
|
|
50
|
-
"pattern": "/^\\d+(s|m|h)$/"
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
"type": "number",
|
|
54
|
-
"description": "Callout duration time in seconds (e.g. 5)"
|
|
55
|
-
}
|
|
56
|
-
]
|
|
57
|
-
},
|
|
58
|
-
"width": {
|
|
59
|
-
"oneOf": [
|
|
60
|
-
{
|
|
61
|
-
"type": "string",
|
|
62
|
-
"description": "Callout width in percentage (e.g. 50%)"
|
|
63
|
-
},
|
|
64
|
-
{
|
|
65
|
-
"type": "number",
|
|
66
|
-
"description": "Callout width in pixels (e.g. 300)"
|
|
67
|
-
}
|
|
68
|
-
]
|
|
69
|
-
}
|
|
70
|
-
}
|
|
18
|
+
"demotape": { "$ref": "refs/demotape.json" },
|
|
19
|
+
"callout_styles": {
|
|
20
|
+
"type": "object",
|
|
21
|
+
"additionalProperties": {
|
|
22
|
+
"$ref": "refs/callout_style.json"
|
|
71
23
|
}
|
|
72
24
|
}
|
|
73
25
|
}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
3
|
-
"$id": "https://
|
|
4
|
-
"title": "ScreenKit Project Configuration",
|
|
5
|
-
"description": "Schema for ScreenKit project configuration file (screenkit.yml)",
|
|
3
|
+
"$id": "https://screenkit.dev/schemas/project.json",
|
|
4
|
+
"title": "ScreenKit Project Configuration (screenkit.yml)",
|
|
6
5
|
"type": "object",
|
|
7
6
|
"required": ["schema", "resources_dir", "episode_dir", "output_dir"],
|
|
8
7
|
"properties": {
|
|
@@ -26,12 +25,13 @@
|
|
|
26
25
|
"description": "Directory where generated video files will be saved. Supports placeholders like %{episode_number}, %{episode_slug} and %{date}.",
|
|
27
26
|
"format": "uri"
|
|
28
27
|
},
|
|
29
|
-
"
|
|
28
|
+
"callout_styles": {
|
|
30
29
|
"type": "object",
|
|
31
30
|
"additionalProperties": {
|
|
32
|
-
"$ref": "refs/
|
|
31
|
+
"$ref": "refs/callout_style.json"
|
|
33
32
|
}
|
|
34
|
-
}
|
|
33
|
+
},
|
|
34
|
+
"demotape": { "$ref": "refs/demotape.json" }
|
|
35
35
|
},
|
|
36
36
|
"additionalProperties": false
|
|
37
37
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
3
|
-
"$id": "https://
|
|
3
|
+
"$id": "https://screenkit.dev/schemas/refs/anchor.json",
|
|
4
4
|
"title": "Anchor",
|
|
5
5
|
"type": "array",
|
|
6
6
|
"description": "Anchor position [horizontal, vertical]",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
3
|
-
"$id": "https://
|
|
3
|
+
"$id": "https://screenkit.dev/schemas/refs/animation.json",
|
|
4
4
|
"title": "Animation Type",
|
|
5
5
|
"type": "string",
|
|
6
6
|
"enum": ["slide", "fade"]
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
3
|
-
"$id": "https://
|
|
4
|
-
"title": "Callout",
|
|
3
|
+
"$id": "https://screenkit.dev/schemas/refs/callout_style.json",
|
|
4
|
+
"title": "Callout Style",
|
|
5
5
|
"type": "object",
|
|
6
6
|
"required": [
|
|
7
7
|
"in_transition",
|
|
8
8
|
"out_transition",
|
|
9
9
|
"anchor",
|
|
10
10
|
"margin",
|
|
11
|
-
"animation"
|
|
11
|
+
"animation",
|
|
12
|
+
"style"
|
|
12
13
|
],
|
|
13
14
|
"properties": {
|
|
14
15
|
"in_transition": { "$ref": "transition.json" },
|
|
@@ -17,11 +18,8 @@
|
|
|
17
18
|
"margin": { "$ref": "spacing.json" },
|
|
18
19
|
"style": {
|
|
19
20
|
"type": "string",
|
|
20
|
-
"description": "Callout style name
|
|
21
|
-
"default": "default"
|
|
21
|
+
"description": "Callout style name"
|
|
22
22
|
},
|
|
23
|
-
"anchor": {
|
|
24
|
-
"$ref": "anchor.json"
|
|
25
|
-
}
|
|
23
|
+
"anchor": { "$ref": "anchor.json" }
|
|
26
24
|
}
|
|
27
25
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
3
|
-
"$id": "https://
|
|
3
|
+
"$id": "https://screenkit.dev/schemas/refs/color.json",
|
|
4
4
|
"title": "Color type with optional alpha channel",
|
|
5
5
|
"type": "string",
|
|
6
6
|
"pattern": "^#[0-9a-fA-F]{6}([0-9a-fA-F]{2})?$"
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
3
|
+
"$id": "https://screenkit.dev/schemas/refs/demotape.json",
|
|
4
|
+
"title": "Demo Tape settings (https://github.com/fnando/demotape)",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"typing_speed": { "$ref": "duration.json" },
|
|
8
|
+
"variable_typing": { "type": "number" },
|
|
9
|
+
"shell": {
|
|
10
|
+
"type": "string",
|
|
11
|
+
"enum": ["bash", "zsh", "fish"]
|
|
12
|
+
},
|
|
13
|
+
"no_rc": {
|
|
14
|
+
"type": "boolean"
|
|
15
|
+
},
|
|
16
|
+
"rc_file": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"format": "uri"
|
|
19
|
+
},
|
|
20
|
+
"theme": {
|
|
21
|
+
"oneOf": [
|
|
22
|
+
{ "$ref": "demotape_themes.json" },
|
|
23
|
+
{ "type": "string", "pattern": "^[./]|^[a-zA-Z]:" }
|
|
24
|
+
]
|
|
25
|
+
},
|
|
26
|
+
"font_size": { "type": "integer" },
|
|
27
|
+
"font_family": { "type": "string" },
|
|
28
|
+
"line_height": { "type": "number" },
|
|
29
|
+
"cursor_blink": { "type": "boolean" },
|
|
30
|
+
"cursor_width": { "type": "number" },
|
|
31
|
+
"cursor_style": { "type": "string", "enum": ["block", "underline", "bar"] },
|
|
32
|
+
"letter_spacing": { "type": "number" },
|
|
33
|
+
"padding": { "type": "number", "minLength": 1, "maxLength": 4 },
|
|
34
|
+
"margin": { "type": "number", "minLength": 1, "maxLength": 4 },
|
|
35
|
+
"margin_fill": {
|
|
36
|
+
"oneOf": [
|
|
37
|
+
{
|
|
38
|
+
"type": "string",
|
|
39
|
+
"pattern": "^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$"
|
|
40
|
+
},
|
|
41
|
+
{ "type": "string", "pattern": "^[./]|^[a-zA-Z]:" }
|
|
42
|
+
]
|
|
43
|
+
},
|
|
44
|
+
"border_radius": { "type": "integer" },
|
|
45
|
+
"run_enter_delay": { "$ref": "duration.json" },
|
|
46
|
+
"run_sleep": { "$ref": "duration.json" }
|
|
47
|
+
}
|
|
48
|
+
}
|