vividly 0.0.1__tar.gz

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 (87) hide show
  1. vividly-0.0.1/LICENSE +21 -0
  2. vividly-0.0.1/MANIFEST.in +2 -0
  3. vividly-0.0.1/PKG-INFO +153 -0
  4. vividly-0.0.1/README.md +132 -0
  5. vividly-0.0.1/pyproject.toml +58 -0
  6. vividly-0.0.1/setup.cfg +4 -0
  7. vividly-0.0.1/src/vividly/__init__.py +1 -0
  8. vividly-0.0.1/src/vividly/cli.py +344 -0
  9. vividly-0.0.1/src/vividly/constants.py +25 -0
  10. vividly-0.0.1/src/vividly/resources/__init__.py +1 -0
  11. vividly-0.0.1/src/vividly/resources/starter-project/.github/copilot-instructions.md +10 -0
  12. vividly-0.0.1/src/vividly/resources/starter-project/.github/instructions/vividly.instructions.md +15 -0
  13. vividly-0.0.1/src/vividly/resources/starter-project/.github/skills/vividly-presentations/SKILL.md +17 -0
  14. vividly-0.0.1/src/vividly/resources/starter-project/site/index.html +20 -0
  15. vividly-0.0.1/src/vividly/resources/starter-project/site/slides/annotated-markdown/document.md +50 -0
  16. vividly-0.0.1/src/vividly/resources/starter-project/site/slides/contact-sheet/slide.css +45 -0
  17. vividly-0.0.1/src/vividly/resources/starter-project/site/slides/contact-sheet/slide.js +44 -0
  18. vividly-0.0.1/src/vividly/resources/starter-project/site/slides/diagram-build/slide.css +58 -0
  19. vividly-0.0.1/src/vividly/resources/starter-project/site/slides/diagram-build/slide.html +24 -0
  20. vividly-0.0.1/src/vividly/resources/starter-project/site/slides/diagram-build/slide.js +6 -0
  21. vividly-0.0.1/src/vividly/resources/starter-project/site/slides/markdown-controls/document.md +16 -0
  22. vividly-0.0.1/src/vividly/resources/starter-project/site/slides/markdown-controls/slide.css +43 -0
  23. vividly-0.0.1/src/vividly/resources/starter-project/site/slides/markdown-controls/slide.js +36 -0
  24. vividly-0.0.1/src/vividly/resources/starter-project/site/slides/photo-tour/data/photos.yaml +18 -0
  25. vividly-0.0.1/src/vividly/resources/starter-project/site/slides/photo-tour/slide.css +61 -0
  26. vividly-0.0.1/src/vividly/resources/starter-project/site/slides/photo-tour/slide.js +48 -0
  27. vividly-0.0.1/src/vividly/resources/starter-project/site/slides/presentation.yaml +85 -0
  28. vividly-0.0.1/src/vividly/resources/starter-project/site/slides/title-card/assets/hero.svg +20 -0
  29. vividly-0.0.1/src/vividly/resources/starter-project/site/slides/title-card/slide.css +35 -0
  30. vividly-0.0.1/src/vividly/resources/starter-project/site/slides/title-card/slide.html +7 -0
  31. vividly-0.0.1/src/vividly/resources/starter-project/site/slides/title-card/slide.js +9 -0
  32. vividly-0.0.1/src/vividly/resources/starter-project/site/thumbnails/images/contact-sheet.png +0 -0
  33. vividly-0.0.1/src/vividly/resources/starter-project/site/thumbnails/images/full-bleed-image.png +0 -0
  34. vividly-0.0.1/src/vividly/resources/starter-project/site/thumbnails/images/image-fit-modes.png +0 -0
  35. vividly-0.0.1/src/vividly/resources/starter-project/site/thumbnails/images/photo-tour.png +0 -0
  36. vividly-0.0.1/src/vividly/resources/starter-project/site/thumbnails/index.json +37 -0
  37. vividly-0.0.1/src/vividly/resources/starter-project/site/thumbnails/mechanics/annotated-markdown.png +0 -0
  38. vividly-0.0.1/src/vividly/resources/starter-project/site/thumbnails/mechanics/diagram-build.png +0 -0
  39. vividly-0.0.1/src/vividly/resources/starter-project/site/thumbnails/mechanics/markdown-controls.png +0 -0
  40. vividly-0.0.1/src/vividly/resources/starter-project/site/thumbnails/opening/title-card.png +0 -0
  41. vividly-0.0.1/src/vividly/resources/starter-project/site/vividly/assets/demo/aurora.svg +17 -0
  42. vividly-0.0.1/src/vividly/resources/starter-project/site/vividly/assets/demo/canyon.svg +12 -0
  43. vividly-0.0.1/src/vividly/resources/starter-project/site/vividly/assets/demo/dunes.svg +11 -0
  44. vividly-0.0.1/src/vividly/resources/starter-project/site/vividly/assets/demo/glacier.svg +12 -0
  45. vividly-0.0.1/src/vividly/resources/starter-project/site/vividly/assets/demo/harbor.svg +16 -0
  46. vividly-0.0.1/src/vividly/resources/starter-project/site/vividly/assets/demo/orchard.svg +14 -0
  47. vividly-0.0.1/src/vividly/resources/starter-project/site/vividly/css/base.css +627 -0
  48. vividly-0.0.1/src/vividly/resources/starter-project/site/vividly/css/controls.css +377 -0
  49. vividly-0.0.1/src/vividly/resources/starter-project/site/vividly/css/kit.css +40 -0
  50. vividly-0.0.1/src/vividly/resources/starter-project/site/vividly/fonts/README.md +3 -0
  51. vividly-0.0.1/src/vividly/resources/starter-project/site/vividly/runtime/bus.js +33 -0
  52. vividly-0.0.1/src/vividly/resources/starter-project/site/vividly/runtime/context.js +49 -0
  53. vividly-0.0.1/src/vividly/resources/starter-project/site/vividly/runtime/controls/annotated-markdown.js +209 -0
  54. vividly-0.0.1/src/vividly/resources/starter-project/site/vividly/runtime/controls/code.js +145 -0
  55. vividly-0.0.1/src/vividly/resources/starter-project/site/vividly/runtime/controls/image.js +89 -0
  56. vividly-0.0.1/src/vividly/resources/starter-project/site/vividly/runtime/controls/index.js +9 -0
  57. vividly-0.0.1/src/vividly/resources/starter-project/site/vividly/runtime/controls/markdown.js +21 -0
  58. vividly-0.0.1/src/vividly/resources/starter-project/site/vividly/runtime/controls/render.js +34 -0
  59. vividly-0.0.1/src/vividly/resources/starter-project/site/vividly/runtime/controls/source-control.js +102 -0
  60. vividly-0.0.1/src/vividly/resources/starter-project/site/vividly/runtime/manifest.js +57 -0
  61. vividly-0.0.1/src/vividly/resources/starter-project/site/vividly/runtime/presentation.js +863 -0
  62. vividly-0.0.1/src/vividly/resources/starter-project/site/vividly/runtime/slide.js +35 -0
  63. vividly-0.0.1/src/vividly/resources/starter-project/site/vividly/runtime/state.js +37 -0
  64. vividly-0.0.1/src/vividly/resources/starter-project/site/vividly/runtime/styles.js +53 -0
  65. vividly-0.0.1/src/vividly/resources/starter-project/site/vividly/slides/annotated-markdown.js +49 -0
  66. vividly-0.0.1/src/vividly/resources/starter-project/site/vividly/slides/image.js +40 -0
  67. vividly-0.0.1/src/vividly/resources/starter-project/site/vividly/themes/dark.css +37 -0
  68. vividly-0.0.1/src/vividly/resources/starter-project/site/vividly/vendor/highlight-github-dark.css +10 -0
  69. vividly-0.0.1/src/vividly/resources/starter-project/site/vividly/vendor/highlight.min.js +1213 -0
  70. vividly-0.0.1/src/vividly/resources/starter-project/site/vividly/vendor/js-yaml.min.js +2 -0
  71. vividly-0.0.1/src/vividly/resources/starter-project/site/vividly/vendor/marked.min.js +2456 -0
  72. vividly-0.0.1/src/vividly/resources/starter-project/site/vividly/version.txt +1 -0
  73. vividly-0.0.1/src/vividly/resources/starter-project/vividly/docs/background/overview.md +31 -0
  74. vividly-0.0.1/src/vividly/resources/starter-project/vividly/docs/background/presentation-orchestration.md +20 -0
  75. vividly-0.0.1/src/vividly/resources/starter-project/vividly/docs/presentation-orchestration-spec.md +674 -0
  76. vividly-0.0.1/src/vividly/resources/starter-project/vividly/docs/user/cli.md +61 -0
  77. vividly-0.0.1/src/vividly/thumbnails.py +467 -0
  78. vividly-0.0.1/src/vividly.egg-info/PKG-INFO +153 -0
  79. vividly-0.0.1/src/vividly.egg-info/SOURCES.txt +85 -0
  80. vividly-0.0.1/src/vividly.egg-info/dependency_links.txt +1 -0
  81. vividly-0.0.1/src/vividly.egg-info/entry_points.txt +2 -0
  82. vividly-0.0.1/src/vividly.egg-info/requires.txt +2 -0
  83. vividly-0.0.1/src/vividly.egg-info/top_level.txt +1 -0
  84. vividly-0.0.1/tests/test_cli.py +351 -0
  85. vividly-0.0.1/tests/test_package.py +36 -0
  86. vividly-0.0.1/tests/test_runtime.py +420 -0
  87. vividly-0.0.1/tests/test_thumbnails.py +215 -0
vividly-0.0.1/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Michael Hopcroft
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,2 @@
1
+ graft src/vividly/resources
2
+ global-exclude *.py[cod]
vividly-0.0.1/PKG-INFO ADDED
@@ -0,0 +1,153 @@
1
+ Metadata-Version: 2.4
2
+ Name: vividly
3
+ Version: 0.0.1
4
+ Summary: Vividly presentation builder and runner
5
+ Author: Michael Hopcroft
6
+ License-Expression: MIT
7
+ Keywords: presentations,slides,web
8
+ Classifier: Development Status :: 2 - Pre-Alpha
9
+ Classifier: Environment :: Console
10
+ Classifier: Operating System :: OS Independent
11
+ Classifier: Programming Language :: Python :: 3
12
+ Classifier: Programming Language :: Python :: 3.12
13
+ Classifier: Programming Language :: Python :: 3.13
14
+ Classifier: Programming Language :: Python :: 3.14
15
+ Requires-Python: >=3.12
16
+ Description-Content-Type: text/markdown
17
+ License-File: LICENSE
18
+ Requires-Dist: pillow>=12.3.0
19
+ Requires-Dist: playwright>=1.62.0
20
+ Dynamic: license-file
21
+
22
+ # Vividly
23
+
24
+ Vividly is a toolkit for building, previewing, and publishing interactive web
25
+ presentations. A presentation is a self-contained [single-page web app (SPA)](https://en.wikipedia.org/wiki/Single-page_application) composed of
26
+ independently authored slides and a manifest that determines their order and
27
+ configuration.
28
+
29
+ Vividly is currently **pre-alpha**. The presentation runtime and local preview
30
+ server are under active development; the initialization, update, and publishing
31
+ commands are not yet implemented.
32
+
33
+ ## Requirements
34
+
35
+ - Python 3.12 or later
36
+ - A modern web browser
37
+
38
+ ## Installation
39
+
40
+ Once Vividly is published to PyPI, install it as a command-line tool with
41
+ [uv](https://docs.astral.sh/uv/):
42
+
43
+ ~~~console
44
+ uv tool install vividly
45
+ ~~~
46
+
47
+ Alternatively, install it into a Python environment with pip:
48
+
49
+ ~~~console
50
+ python -m pip install vividly
51
+ ~~~
52
+
53
+ ## Presentation layout
54
+
55
+ A Vividly presentation project consists of a deployable website root and a collection of resources to assist in coding agents when authoring slides.
56
+
57
+ ~~~text
58
+ my-presentation/
59
+ ├── .github/
60
+ │ ├── copilot-instructions.md
61
+ │ ├── instructions/
62
+ │ └── skills/
63
+ ├── vividly/
64
+ │ └── docs/
65
+ └── site/
66
+ ├── index.html
67
+ ├── vividly/
68
+ │ └── (runtime files and folders)
69
+ └── slides/
70
+ ├── presentation.yaml
71
+ └── (slide folders ...)
72
+ ~~~
73
+
74
+ The hosted site contains the default entry point, index.html, along with a local copy of the Vividly
75
+ runtime, and a collection of slides referenced by the manifest in presentation.yaml.
76
+
77
+ The project-level documentation, instructions, and skills help coding agents
78
+ understand the Vividly runtime and its presentation-authoring conventions.
79
+
80
+ ## Previewing a presentation
81
+
82
+ From a presentation's root directory, serve its `site/` folder locally:
83
+
84
+ ~~~console
85
+ vividly run
86
+ ~~~
87
+
88
+ The presentation root can also be supplied explicitly:
89
+
90
+ ~~~console
91
+ vividly run path/to/my-presentation
92
+ ~~~
93
+
94
+ The server listens on port 8080 by default. To use another port:
95
+
96
+ ~~~console
97
+ vividly run --port 9000
98
+ ~~~
99
+
100
+ Then open the displayed local URL in a browser. The preview server is intended
101
+ for local development, not production hosting.
102
+
103
+ ## Commands
104
+
105
+ | Command | Purpose | Status |
106
+ | --- | --- | --- |
107
+ | `vividly init` | Create a new presentation with sample slides | Planned |
108
+ | `vividly update` | Update the bundled Vividly runtime | Planned |
109
+ | `vividly run` | Preview the presentation locally | Available |
110
+ | `vividly publish` | Publish the presentation | Planned |
111
+
112
+ Run `vividly --help` or `vividly <command> --help` for command-line help.
113
+
114
+ ## Development
115
+
116
+ The project uses [uv](https://docs.astral.sh/uv/) for environment and dependency
117
+ management. Clone the repository and synchronize the development environment:
118
+
119
+ ~~~console
120
+ uv sync
121
+ ~~~
122
+
123
+ Run the CLI from within the repo:
124
+
125
+ ~~~console
126
+ uv run vividly --help
127
+ ~~~
128
+
129
+ To preview the starter presentation from within the Vividly repo:
130
+
131
+ ~~~console
132
+ uv run vividly run src/vividly/resources/starter-project
133
+ ~~~
134
+
135
+ Check the Python source with Ruff:
136
+
137
+ ~~~console
138
+ uv run ruff check .
139
+ ~~~
140
+
141
+ Run the automated tests:
142
+
143
+ ~~~console
144
+ uv run pytest
145
+ ~~~
146
+
147
+ ## Project links
148
+
149
+ Coming soon
150
+
151
+ ## License
152
+
153
+ Vividly is available under the [MIT License](LICENSE).
@@ -0,0 +1,132 @@
1
+ # Vividly
2
+
3
+ Vividly is a toolkit for building, previewing, and publishing interactive web
4
+ presentations. A presentation is a self-contained [single-page web app (SPA)](https://en.wikipedia.org/wiki/Single-page_application) composed of
5
+ independently authored slides and a manifest that determines their order and
6
+ configuration.
7
+
8
+ Vividly is currently **pre-alpha**. The presentation runtime and local preview
9
+ server are under active development; the initialization, update, and publishing
10
+ commands are not yet implemented.
11
+
12
+ ## Requirements
13
+
14
+ - Python 3.12 or later
15
+ - A modern web browser
16
+
17
+ ## Installation
18
+
19
+ Once Vividly is published to PyPI, install it as a command-line tool with
20
+ [uv](https://docs.astral.sh/uv/):
21
+
22
+ ~~~console
23
+ uv tool install vividly
24
+ ~~~
25
+
26
+ Alternatively, install it into a Python environment with pip:
27
+
28
+ ~~~console
29
+ python -m pip install vividly
30
+ ~~~
31
+
32
+ ## Presentation layout
33
+
34
+ A Vividly presentation project consists of a deployable website root and a collection of resources to assist in coding agents when authoring slides.
35
+
36
+ ~~~text
37
+ my-presentation/
38
+ ├── .github/
39
+ │ ├── copilot-instructions.md
40
+ │ ├── instructions/
41
+ │ └── skills/
42
+ ├── vividly/
43
+ │ └── docs/
44
+ └── site/
45
+ ├── index.html
46
+ ├── vividly/
47
+ │ └── (runtime files and folders)
48
+ └── slides/
49
+ ├── presentation.yaml
50
+ └── (slide folders ...)
51
+ ~~~
52
+
53
+ The hosted site contains the default entry point, index.html, along with a local copy of the Vividly
54
+ runtime, and a collection of slides referenced by the manifest in presentation.yaml.
55
+
56
+ The project-level documentation, instructions, and skills help coding agents
57
+ understand the Vividly runtime and its presentation-authoring conventions.
58
+
59
+ ## Previewing a presentation
60
+
61
+ From a presentation's root directory, serve its `site/` folder locally:
62
+
63
+ ~~~console
64
+ vividly run
65
+ ~~~
66
+
67
+ The presentation root can also be supplied explicitly:
68
+
69
+ ~~~console
70
+ vividly run path/to/my-presentation
71
+ ~~~
72
+
73
+ The server listens on port 8080 by default. To use another port:
74
+
75
+ ~~~console
76
+ vividly run --port 9000
77
+ ~~~
78
+
79
+ Then open the displayed local URL in a browser. The preview server is intended
80
+ for local development, not production hosting.
81
+
82
+ ## Commands
83
+
84
+ | Command | Purpose | Status |
85
+ | --- | --- | --- |
86
+ | `vividly init` | Create a new presentation with sample slides | Planned |
87
+ | `vividly update` | Update the bundled Vividly runtime | Planned |
88
+ | `vividly run` | Preview the presentation locally | Available |
89
+ | `vividly publish` | Publish the presentation | Planned |
90
+
91
+ Run `vividly --help` or `vividly <command> --help` for command-line help.
92
+
93
+ ## Development
94
+
95
+ The project uses [uv](https://docs.astral.sh/uv/) for environment and dependency
96
+ management. Clone the repository and synchronize the development environment:
97
+
98
+ ~~~console
99
+ uv sync
100
+ ~~~
101
+
102
+ Run the CLI from within the repo:
103
+
104
+ ~~~console
105
+ uv run vividly --help
106
+ ~~~
107
+
108
+ To preview the starter presentation from within the Vividly repo:
109
+
110
+ ~~~console
111
+ uv run vividly run src/vividly/resources/starter-project
112
+ ~~~
113
+
114
+ Check the Python source with Ruff:
115
+
116
+ ~~~console
117
+ uv run ruff check .
118
+ ~~~
119
+
120
+ Run the automated tests:
121
+
122
+ ~~~console
123
+ uv run pytest
124
+ ~~~
125
+
126
+ ## Project links
127
+
128
+ Coming soon
129
+
130
+ ## License
131
+
132
+ Vividly is available under the [MIT License](LICENSE).
@@ -0,0 +1,58 @@
1
+ [build-system]
2
+ requires = ["setuptools>=77"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "vividly"
7
+ version = "0.0.1"
8
+ description = "Vividly presentation builder and runner"
9
+ readme = "README.md"
10
+ requires-python = ">=3.12"
11
+ license = "MIT"
12
+ license-files = ["LICENSE"]
13
+ authors = [{ name = "Michael Hopcroft" }]
14
+ keywords = ["presentations", "slides", "web"]
15
+ classifiers = [
16
+ "Development Status :: 2 - Pre-Alpha",
17
+ "Environment :: Console",
18
+ "Operating System :: OS Independent",
19
+ "Programming Language :: Python :: 3",
20
+ "Programming Language :: Python :: 3.12",
21
+ "Programming Language :: Python :: 3.13",
22
+ "Programming Language :: Python :: 3.14",
23
+ ]
24
+ dependencies = [
25
+ "pillow>=12.3.0",
26
+ "playwright>=1.62.0",
27
+ ]
28
+
29
+ [project.scripts]
30
+ vividly = "vividly.cli:main"
31
+
32
+ [dependency-groups]
33
+ dev = [
34
+ "pytest>=8.4",
35
+ "ruff>=0.14",
36
+ ]
37
+
38
+ [tool.uv]
39
+ package = true
40
+
41
+ [tool.setuptools]
42
+ package-dir = { "" = "src" }
43
+ include-package-data = true
44
+
45
+ [tool.setuptools.packages.find]
46
+ where = ["src"]
47
+
48
+ [tool.ruff]
49
+ line-length = 100
50
+ target-version = "py312"
51
+
52
+ [tool.ruff.lint]
53
+ select = ["E", "F", "I", "UP", "B", "SIM"]
54
+
55
+ [tool.pyright]
56
+ typeCheckingMode = "strict"
57
+ pythonVersion = "3.12"
58
+ include = ["src", "tests"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1 @@
1
+ """Vividly presentation builder and runner."""