@vanillaskyai/video 0.8.8 → 0.9.0

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 (175) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/PUBLIC-API.md +5 -8
  3. package/dist/{builtin-server-CUYPIDE7.js → builtin-server-HW6HGXCZ.js} +2 -2
  4. package/dist/{catalog-types-BIhSpOWK.d.ts → catalog-types-WTbLP6Jh.d.ts} +5 -1
  5. package/dist/chapter-title-YRLIQY3V.js +7 -0
  6. package/dist/check-runtime.js +6 -15
  7. package/dist/{chunk-2USVB3CY.js → chunk-3ZTEFJIR.js} +285 -178
  8. package/dist/chunk-4YM2M62S.js +13 -0
  9. package/dist/chunk-77VY4O7A.js +390 -0
  10. package/dist/{chunk-MMUXVA47.js → chunk-7M56IUUX.js} +9 -8
  11. package/dist/chunk-7NZOMTAL.js +63 -0
  12. package/dist/{chunk-2DOLF4QN.js → chunk-AUPC6MDK.js} +12 -14
  13. package/dist/{chunk-352ZZCET.js → chunk-EGVQODKU.js} +2 -2
  14. package/dist/chunk-EWWCQFTI.js +18 -0
  15. package/dist/{chunk-MXZSDGZQ.js → chunk-G7IZBBWF.js} +14 -9
  16. package/dist/{chunk-KT3M7KDL.js → chunk-HKUI5BTB.js} +3 -3
  17. package/dist/{chunk-LMG3GHLL.js → chunk-IQMYK5DX.js} +29 -3
  18. package/dist/chunk-LH4BPALA.js +564 -0
  19. package/dist/{chunk-OWBT45EN.js → chunk-MQILEEXC.js} +1 -1
  20. package/dist/chunk-MXEYPK7M.js +552 -0
  21. package/dist/{chunk-AITKH6QT.js → chunk-OR52UMSF.js} +13 -39
  22. package/dist/{chunk-5SLENAJW.js → chunk-PAJ44TFW.js} +1 -2
  23. package/dist/{chunk-L7QGGKJ2.js → chunk-PDQFQIQW.js} +1 -1
  24. package/dist/{chunk-WJ6FLKNC.js → chunk-R3XAOMKP.js} +14 -0
  25. package/dist/{chunk-2OKB27TG.js → chunk-RXTN2CW6.js} +2 -2
  26. package/dist/{chunk-XWWLKRNU.js → chunk-TVIU23OM.js} +38 -49
  27. package/dist/{chunk-224QNWRA.js → chunk-UDIODEDK.js} +1 -5
  28. package/dist/{chunk-3VRMKFM7.js → chunk-ZDJNFA52.js} +11 -24
  29. package/dist/cinema-media-YQHSIFDA.js +11 -0
  30. package/dist/cli.js +18 -9
  31. package/dist/comparison-RZMMHZR2.js +27 -0
  32. package/dist/compose-video-TBFTONUC.js +12 -0
  33. package/dist/editorial-timeline-OZX7OS6G.js +36 -0
  34. package/dist/{events-BQ6z264n.d.ts → events-B4YCc4vc.d.ts} +1 -1
  35. package/dist/focus-cards-TJ72BT7U.js +20 -0
  36. package/dist/index.d.ts +4 -6
  37. package/dist/index.js +3 -7
  38. package/dist/key-figure-GYENXKH3.js +20 -0
  39. package/dist/{kit-tQnCPMOM.d.ts → kit-DrRpdn0p.d.ts} +2 -2
  40. package/dist/mobile-message-UZUPIKHD.js +49 -0
  41. package/dist/{preload-media-LJXWKTWG.js → preload-media-CFTZIMZL.js} +1 -1
  42. package/dist/quote-EW5HQA6H.js +23 -0
  43. package/dist/react.d.ts +21 -11
  44. package/dist/react.js +590 -833
  45. package/dist/scene-video-backdrop-PCTARAAJ.js +7 -0
  46. package/dist/server.d.ts +7 -8
  47. package/dist/server.js +91 -74
  48. package/dist/{system-prompt-RRXIWDDD.js → system-prompt-SYRT5DWM.js} +1 -1
  49. package/dist/template-catalog.d.ts +257 -16
  50. package/dist/template-catalog.js +1 -1
  51. package/dist/templates.d.ts +5 -5
  52. package/dist/test.d.ts +3 -3
  53. package/dist/test.js +18 -18
  54. package/dist/text-stream-LD364KBI.js +9 -0
  55. package/dist/{types-DWFO6qca.d.ts → types-CdBmNTGD.d.ts} +1 -1
  56. package/dist/{types-CEh9eUFu.d.ts → types-DdZw4GRQ.d.ts} +17 -48
  57. package/dist/validate-4OUD2CLX.js +10 -0
  58. package/docs/architecture.md +1 -1
  59. package/docs/concepts.md +1 -1
  60. package/docs/custom-templates.md +13 -28
  61. package/docs/customization.md +11 -59
  62. package/docs/getting-started.md +2 -2
  63. package/docs/immersive-interface.md +3 -4
  64. package/docs/maintainers/cinematic-migration.md +34 -0
  65. package/docs/media-and-audio.md +14 -14
  66. package/docs/motion-and-effects.md +6 -14
  67. package/docs/persistence.md +3 -3
  68. package/docs/production.md +11 -9
  69. package/docs/provider-integration.md +9 -16
  70. package/docs/reference/design-system.html +1 -1
  71. package/docs/reference/protocol.md +14 -4
  72. package/docs/testing.md +1 -1
  73. package/package.json +6 -3
  74. package/registry/items/backgrounds.json +1 -1
  75. package/registry/items/chapterTitle.json +80 -0
  76. package/registry/items/cinemaMedia.json +136 -0
  77. package/registry/items/comparison.json +101 -0
  78. package/registry/items/editorialTimeline.json +105 -0
  79. package/registry/items/focusCards.json +90 -0
  80. package/registry/items/keyFigure.json +97 -0
  81. package/registry/items/mobileMessage.json +153 -0
  82. package/registry/items/quote.json +94 -0
  83. package/registry/items/template-context.json +1 -1
  84. package/registry/items/theme.json +1 -1
  85. package/starters/video-chat/README.md +24 -26
  86. package/starters/video-chat/package.json +1 -1
  87. package/starters/video-chat/providers/video.ts +6 -5
  88. package/starters/video-chat/stock.ts +35 -151
  89. package/styles/fonts/OFL.txt +93 -0
  90. package/styles/fonts/manifest.json +66 -0
  91. package/styles/fonts/roboto-v51-cyrillic-ext.woff2 +0 -0
  92. package/styles/fonts/roboto-v51-cyrillic.woff2 +0 -0
  93. package/styles/fonts/roboto-v51-greek-ext.woff2 +0 -0
  94. package/styles/fonts/roboto-v51-greek.woff2 +0 -0
  95. package/styles/fonts/roboto-v51-latin-ext.woff2 +0 -0
  96. package/styles/fonts/roboto-v51-latin.woff2 +0 -0
  97. package/styles/fonts/roboto-v51-math.woff2 +0 -0
  98. package/styles/fonts/roboto-v51-symbols.woff2 +0 -0
  99. package/styles/fonts/roboto-v51-vietnamese.woff2 +0 -0
  100. package/styles/fonts/roboto.css +91 -0
  101. package/styles/video-chat.css +30 -22
  102. package/dist/bg-confetti-HITCGLGD.js +0 -89
  103. package/dist/bg-emoji-VU4UZYZN.js +0 -150
  104. package/dist/bg-media-L34PDQXJ.js +0 -106
  105. package/dist/brand-message-FUJ4STFO.js +0 -256
  106. package/dist/chart-bar-EGPHJATL.js +0 -310
  107. package/dist/chart-counter-5FFWQNZO.js +0 -306
  108. package/dist/chart-progress-ring-JMXQLMLC.js +0 -302
  109. package/dist/chunk-4UNKZEAT.js +0 -3575
  110. package/dist/chunk-5CDAM24P.js +0 -31
  111. package/dist/chunk-AOWSXU2K.js +0 -18
  112. package/dist/chunk-CJ7F2CE6.js +0 -104
  113. package/dist/chunk-FRN6WKHA.js +0 -185
  114. package/dist/chunk-G5JPHBX7.js +0 -336
  115. package/dist/chunk-L5BTTCZV.js +0 -97
  116. package/dist/chunk-P22HHFDK.js +0 -43
  117. package/dist/chunk-PP3MCPN4.js +0 -1998
  118. package/dist/chunk-QAAO7OAY.js +0 -19
  119. package/dist/chunk-S7HFLYNN.js +0 -35
  120. package/dist/chunk-W3VDIBGR.js +0 -217
  121. package/dist/chunk-XGRA2MUV.js +0 -242
  122. package/dist/chunk-XTOXFMLM.js +0 -105
  123. package/dist/chunk-YJJC4N4D.js +0 -761
  124. package/dist/compose-video-2NFH4DZY.js +0 -13
  125. package/dist/cta-logo-YR7LYUR5.js +0 -212
  126. package/dist/cta-media-DQJBKUO2.js +0 -221
  127. package/dist/incoming-call-54KQ7O5A.js +0 -323
  128. package/dist/infographic-before-after-ROS52GOW.js +0 -460
  129. package/dist/infographic-feature-list-E7MGUDAN.js +0 -272
  130. package/dist/infographic-problem-solution-3S6NGO5N.js +0 -343
  131. package/dist/infographic-stat-row-SYB7AB7H.js +0 -247
  132. package/dist/infographic-steps-KCE6JWE2.js +0 -406
  133. package/dist/prompt-input-MHX4O42G.js +0 -239
  134. package/dist/reaction-SLEGR3BE.js +0 -122
  135. package/dist/scene-video-backdrop-XFPX4O3I.js +0 -10
  136. package/dist/showcase-code-2HLAVKBM.js +0 -357
  137. package/dist/showcase-phone-Q4HEO4LH.js +0 -278
  138. package/dist/showcase-terminal-DL45LUFG.js +0 -312
  139. package/dist/showcase-web-2QZO73FZ.js +0 -396
  140. package/dist/social-conversation-75SD2637.js +0 -695
  141. package/dist/social-milestone-GEFUQSBF.js +0 -296
  142. package/dist/social-notification-FJ5VHVLK.js +0 -247
  143. package/dist/social-review-stack-KXQCKFRP.js +0 -242
  144. package/dist/social-testimonial-JZ7CHC7S.js +0 -287
  145. package/dist/social-tweet-UCDXM25F.js +0 -298
  146. package/dist/text-stream-54LXABJW.js +0 -10
  147. package/dist/validate-T7GBU2YF.js +0 -8
  148. package/registry/items/barChart.json +0 -245
  149. package/registry/items/beforeAfter.json +0 -180
  150. package/registry/items/bigNumber.json +0 -232
  151. package/registry/items/brandMessage.json +0 -164
  152. package/registry/items/cardList.json +0 -214
  153. package/registry/items/chatMessenger.json +0 -151
  154. package/registry/items/chatWhatsapp.json +0 -151
  155. package/registry/items/codeEditor.json +0 -191
  156. package/registry/items/confetti.json +0 -107
  157. package/registry/items/ctaLogo.json +0 -167
  158. package/registry/items/ctaMedia.json +0 -200
  159. package/registry/items/emojiBurst.json +0 -101
  160. package/registry/items/incomingCall.json +0 -177
  161. package/registry/items/media.json +0 -187
  162. package/registry/items/milestone.json +0 -212
  163. package/registry/items/notification.json +0 -189
  164. package/registry/items/phoneMockup.json +0 -261
  165. package/registry/items/problemSolution.json +0 -193
  166. package/registry/items/progressRing.json +0 -206
  167. package/registry/items/promptInput.json +0 -155
  168. package/registry/items/reaction.json +0 -176
  169. package/registry/items/reviewStack.json +0 -231
  170. package/registry/items/steps.json +0 -215
  171. package/registry/items/terminal.json +0 -219
  172. package/registry/items/testimonial.json +0 -171
  173. package/registry/items/tripleStats.json +0 -235
  174. package/registry/items/tweet.json +0 -210
  175. package/registry/items/webMockup.json +0 -280
package/CHANGELOG.md CHANGED
@@ -4,6 +4,36 @@ VanillaSky follows semantic versioning. This changelog begins with the 0.1 beta.
4
4
 
5
5
  ## Unreleased
6
6
 
7
+ ## 0.9.0
8
+
9
+ - Continue video playback with subtitles when native browser speech cannot start, without weakening generated-audio readiness or counting paused time toward the fallback.
10
+
11
+ - Show the spoken opening as a quiet chapter on black when opening media is absent or cannot load. Keep it readable until media or the film is ready, without another generation call.
12
+
13
+ - Package licensed, self-hosted Roboto fallback fonts for the fixed cinematic typography; remove unused promotional template primitives.
14
+
15
+
16
+ ### Breaking changes
17
+
18
+ - Replace the 28 promotional templates with eight cinematic templates: Full-bleed, Chapter, Focus cards, Timeline, Reach out, Comparison, Quote, and Key figure. Graphics use fixed black backgrounds and white/neutral system typography; only Full-bleed and Reach out accept media.
19
+ - Remove configurable `brand` input and persisted `style.brand`, and remove the public `VideoBrand`, `VideoBrandInput`, `VideoBackground`, and `resolveVideoBrand` exports. Persisted schema is now `0.2` and streaming protocol is `0.6`; older payloads are explicitly rejected.
20
+ - Source-owned templates declare authored reveal, hold and exit minimums. Quote and figure examples remain authoring fixtures and never become factual runtime defaults.
21
+
22
+ Before:
23
+
24
+ ```tsx
25
+ <VideoChat options={{ endpoint: "/api/video-chat", brand: { background: "twilight" } }} />
26
+ ```
27
+
28
+ ### Adoption
29
+
30
+ Remove brand options and regenerate source-owned templates from the new catalog. Re-author or regenerate saved videos from retained source material; do not rename old IDs or change their version field blindly. See [cinematic migration](docs/maintainers/cinematic-migration.md).
31
+
32
+ ```tsx
33
+ <VideoChat options={{ endpoint: "/api/video-chat" }} />
34
+ ```
35
+
36
+
7
37
  ## 0.8.8
8
38
 
9
39
  - Use equal spacing between Sessions, Settings, and Voice controls on mobile and desktop.
package/PUBLIC-API.md CHANGED
@@ -131,9 +131,9 @@ playable scenes on an interrupted plan, emitting non-fatal warnings. Explicit
131
131
  `invalidPartBehavior: "fail"` retains strict generation semantics.
132
132
 
133
133
  - A response accepts `prompt`, `mode`, `orientation`, optional bounded
134
- `conversation`, `opening`, `brand`, and `style`. `opening` is an optional
134
+ `conversation`, `opening`, and `style`. `opening` is an optional
135
135
  prewritten hook from a selected suggestion. The response returns protocol
136
- `0.5` SSE and negotiates `data.video-chat-opening`, which carries the bounded
136
+ `0.6` SSE and negotiates `data.video-chat-opening`, which carries the bounded
137
137
  6-9 word hook and optional stock-search `keyword` and `fallbackKeyword` before the first scene.
138
138
  - The planner produces that opening as the first line of the same model stream
139
139
  that produces the scenes. The separate opening-media action resolves its
@@ -216,7 +216,7 @@ export function App() {
216
216
  ```
217
217
 
218
218
  Pass the same session configuration through `options`, for example
219
- `<VideoChat options={{ endpoint, headers, templates, brand }} />`. `className`
219
+ `<VideoChat options={{ endpoint, headers, templates }} />`. `className`
220
220
  and `welcomeTitle` are the only shell-level customizations. The stylesheet is
221
221
  scoped under `.vanillasky-video-chat` and does not style the host document.
222
222
 
@@ -294,10 +294,7 @@ playback is unaffected by either. `onComplete(video)` reports that a streamed
294
294
  response finished composing; `onPlaybackEnd(video)` reports that the visible
295
295
  playhead actually reached the end for either a stream or saved replay.
296
296
 
297
- `resolveVideoBrand` fills a partial brand with the documented defaults and
298
- preset backgrounds, producing the fully resolved `VideoBrand` that `parseVideo`
299
- requires. Use it when authoring a `Video` by hand rather than copying default
300
- values into application code.
297
+ Graphic scenes use fixed black backgrounds, white/neutral typography, and the system font stack. `VideoInput.brand`, `VideoStyle.brand`, `VideoBrand`, `VideoBrandInput`, `VideoBackground`, and `resolveVideoBrand` are removed. Media retains natural color. Persisted schema `0.2` and event protocol `0.6` reject earlier versions; changing a version field alone is not a migration.
301
298
 
302
299
  ## Template authoring
303
300
 
@@ -394,7 +391,7 @@ from `/server` without crossing a React type boundary.
394
391
 
395
392
  - A completed `Video` is JSON-serializable and may be stored by the host.
396
393
  - Every completed value carries the required storage field
397
- `schemaVersion: "0.1"`; it is independent from streaming protocol `0.5`.
394
+ `schemaVersion: "0.2"`; it is independent from streaming protocol `0.6`.
398
395
  - `parseVideo(value: unknown)` is the strict universal storage boundary. It
399
396
  validates the full document and returns a detached, deeply frozen `Video`.
400
397
  - JSON serialization remains platform-native; the SDK has no redundant public
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  BUILTIN_SERVER_TEMPLATE_KIT
3
- } from "./chunk-OWBT45EN.js";
4
- import "./chunk-4UNKZEAT.js";
3
+ } from "./chunk-MQILEEXC.js";
4
+ import "./chunk-LH4BPALA.js";
5
5
  import "./chunk-2E6T633S.js";
6
6
  export {
7
7
  BUILTIN_SERVER_TEMPLATE_KIT
@@ -36,6 +36,10 @@ type TemplateFamily = "Media & motion" | "Data & metrics" | "Product showcase" |
36
36
  interface TemplateTimingMetadata {
37
37
  /** Schema fields whose rendered content may inform a future adaptive duration. */
38
38
  readonly contentFields: readonly string[];
39
+ /** Authored motion and uninterrupted reading minimums in seconds. */
40
+ readonly revealSeconds?: number;
41
+ readonly holdSeconds?: number;
42
+ readonly exitSeconds?: number;
39
43
  /** How content in contentFields should be measured; no runtime behavior is implied. */
40
44
  readonly contentUnit: "words" | "characters" | "items";
41
45
  }
@@ -71,4 +75,4 @@ interface SceneTemplateMetadata {
71
75
  timing?: TemplateTimingMetadata;
72
76
  }
73
77
 
74
- export type { SceneTemplateMetadata as S, TemplateFamily as T, TemplateJob as a, TemplateRegister as b, TemplateTimingMetadata as c, TemplateJsonSchema as d, TemplateTransitionTiming as e, TemplateJsonSchemaProperty as f };
78
+ export type { SceneTemplateMetadata as S, TemplateJsonSchema as T, TemplateFamily as a, TemplateTimingMetadata as b, TemplateTransitionTiming as c, TemplateJsonSchemaProperty as d };
@@ -0,0 +1,7 @@
1
+ import {
2
+ TitleSceneTemplate
3
+ } from "./chunk-EWWCQFTI.js";
4
+ import "./chunk-4YM2M62S.js";
5
+ export {
6
+ TitleSceneTemplate
7
+ };
@@ -1,14 +1,10 @@
1
1
  import {
2
2
  VideoFrame
3
- } from "./chunk-2USVB3CY.js";
4
- import "./chunk-224QNWRA.js";
5
- import "./chunk-5CDAM24P.js";
6
- import "./chunk-XWWLKRNU.js";
3
+ } from "./chunk-3ZTEFJIR.js";
4
+ import "./chunk-UDIODEDK.js";
5
+ import "./chunk-TVIU23OM.js";
7
6
  import "./chunk-SPVTJH3F.js";
8
- import {
9
- resolveVideoBrand
10
- } from "./chunk-XGRA2MUV.js";
11
- import "./chunk-WJ6FLKNC.js";
7
+ import "./chunk-R3XAOMKP.js";
12
8
  import "./chunk-73NTSFFI.js";
13
9
 
14
10
  // src/cli/check-runtime.ts
@@ -48,7 +44,7 @@ async function renderTemplateChecks(input) {
48
44
  for (const orientation of ["portrait", "landscape"]) {
49
45
  const [width, height] = orientation === "portrait" ? [1080, 1920] : [1920, 1080];
50
46
  const config = {
51
- schemaVersion: "0.1",
47
+ schemaVersion: "0.2",
52
48
  orientation,
53
49
  scenes: [{
54
50
  id: "authoring-check",
@@ -56,12 +52,7 @@ async function renderTemplateChecks(input) {
56
52
  variables: input.variables,
57
53
  timing: { startTime: 0, endTime: input.duration, fixedDuration: input.duration }
58
54
  }],
59
- style: {
60
- brand: resolveVideoBrand({
61
- font: "Inter, sans-serif",
62
- colors: { primary: "#6D5EF5", secondary: "#17122F", foreground: "#FFFFFF" }
63
- })
64
- }
55
+ style: {}
65
56
  };
66
57
  for (const progress of progressPoints) {
67
58
  let first;