@vanillaskyai/video 0.8.8 → 0.10.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 (173) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/PUBLIC-API.md +5 -8
  3. package/dist/{builtin-server-CUYPIDE7.js → builtin-server-W4PLJUZ5.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 +5 -14
  7. package/dist/{chunk-AITKH6QT.js → chunk-2HFO22K2.js} +15 -40
  8. package/dist/chunk-4YM2M62S.js +13 -0
  9. package/dist/chunk-4ZJLPHBV.js +684 -0
  10. package/dist/chunk-77VY4O7A.js +390 -0
  11. package/dist/{chunk-MMUXVA47.js → chunk-7M56IUUX.js} +9 -8
  12. package/dist/chunk-7NZOMTAL.js +63 -0
  13. package/dist/{chunk-2DOLF4QN.js → chunk-AUPC6MDK.js} +12 -14
  14. package/dist/{chunk-352ZZCET.js → chunk-EGVQODKU.js} +2 -2
  15. package/dist/{chunk-2USVB3CY.js → chunk-ELVOT2FQ.js} +284 -177
  16. package/dist/chunk-EWWCQFTI.js +18 -0
  17. package/dist/{chunk-KT3M7KDL.js → chunk-HKUI5BTB.js} +3 -3
  18. package/dist/chunk-IIN5M5HW.js +697 -0
  19. package/dist/{chunk-LMG3GHLL.js → chunk-IQMYK5DX.js} +29 -3
  20. package/dist/{chunk-OWBT45EN.js → chunk-IR44XKBI.js} +1 -1
  21. package/dist/{chunk-MXZSDGZQ.js → chunk-NMFDC2W2.js} +4 -6
  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-XX4GXKTX.js +35 -0
  28. package/dist/chunk-Z67Q5KUW.js +16 -0
  29. package/dist/{chunk-3VRMKFM7.js → chunk-ZDJNFA52.js} +11 -24
  30. package/dist/cinema-media-C7OUPNSH.js +12 -0
  31. package/dist/cli.js +18 -9
  32. package/dist/comparison-GNZOR7MF.js +37 -0
  33. package/dist/compose-video-TBFTONUC.js +12 -0
  34. package/dist/editorial-timeline-EMV5335S.js +43 -0
  35. package/dist/{events-BQ6z264n.d.ts → events-B4YCc4vc.d.ts} +1 -1
  36. package/dist/index.d.ts +4 -6
  37. package/dist/index.js +3 -7
  38. package/dist/key-figure-P37VK425.js +30 -0
  39. package/dist/{kit-tQnCPMOM.d.ts → kit-DrRpdn0p.d.ts} +2 -2
  40. package/dist/mobile-message-OF7T62B7.js +50 -0
  41. package/dist/quote-T6WYLN7A.js +33 -0
  42. package/dist/react.d.ts +21 -11
  43. package/dist/react.js +585 -826
  44. package/dist/scene-video-backdrop-PCTARAAJ.js +7 -0
  45. package/dist/server.d.ts +7 -8
  46. package/dist/server.js +179 -84
  47. package/dist/{system-prompt-RRXIWDDD.js → system-prompt-SYRT5DWM.js} +1 -1
  48. package/dist/template-catalog.d.ts +392 -16
  49. package/dist/template-catalog.js +1 -1
  50. package/dist/templates.d.ts +5 -5
  51. package/dist/test.d.ts +3 -3
  52. package/dist/test.js +18 -18
  53. package/dist/text-stream-LD364KBI.js +9 -0
  54. package/dist/{types-DWFO6qca.d.ts → types-CdBmNTGD.d.ts} +1 -1
  55. package/dist/{types-CEh9eUFu.d.ts → types-DdZw4GRQ.d.ts} +17 -48
  56. package/dist/validate-4OUD2CLX.js +10 -0
  57. package/docs/architecture.md +1 -1
  58. package/docs/concepts.md +1 -1
  59. package/docs/custom-templates.md +13 -28
  60. package/docs/customization.md +11 -59
  61. package/docs/getting-started.md +2 -2
  62. package/docs/immersive-interface.md +3 -4
  63. package/docs/maintainers/cinematic-migration.md +38 -0
  64. package/docs/media-and-audio.md +14 -14
  65. package/docs/motion-and-effects.md +6 -14
  66. package/docs/persistence.md +3 -3
  67. package/docs/production.md +11 -9
  68. package/docs/provider-integration.md +9 -16
  69. package/docs/reference/design-system.html +1 -1
  70. package/docs/reference/protocol.md +14 -4
  71. package/docs/testing.md +1 -1
  72. package/package.json +6 -3
  73. package/registry/items/backgrounds.json +1 -1
  74. package/registry/items/chapterTitle.json +80 -0
  75. package/registry/items/cinemaMedia.json +136 -0
  76. package/registry/items/comparison.json +168 -0
  77. package/registry/items/editorialTimeline.json +172 -0
  78. package/registry/items/keyFigure.json +162 -0
  79. package/registry/items/mobileMessage.json +153 -0
  80. package/registry/items/quote.json +161 -0
  81. package/registry/items/template-context.json +1 -1
  82. package/registry/items/theme.json +1 -1
  83. package/starters/video-chat/README.md +24 -26
  84. package/starters/video-chat/package.json +1 -1
  85. package/starters/video-chat/providers/video.ts +6 -5
  86. package/starters/video-chat/stock.ts +35 -151
  87. package/styles/fonts/OFL.txt +93 -0
  88. package/styles/fonts/manifest.json +66 -0
  89. package/styles/fonts/roboto-v51-cyrillic-ext.woff2 +0 -0
  90. package/styles/fonts/roboto-v51-cyrillic.woff2 +0 -0
  91. package/styles/fonts/roboto-v51-greek-ext.woff2 +0 -0
  92. package/styles/fonts/roboto-v51-greek.woff2 +0 -0
  93. package/styles/fonts/roboto-v51-latin-ext.woff2 +0 -0
  94. package/styles/fonts/roboto-v51-latin.woff2 +0 -0
  95. package/styles/fonts/roboto-v51-math.woff2 +0 -0
  96. package/styles/fonts/roboto-v51-symbols.woff2 +0 -0
  97. package/styles/fonts/roboto-v51-vietnamese.woff2 +0 -0
  98. package/styles/fonts/roboto.css +91 -0
  99. package/styles/video-chat.css +30 -22
  100. package/dist/bg-confetti-HITCGLGD.js +0 -89
  101. package/dist/bg-emoji-VU4UZYZN.js +0 -150
  102. package/dist/bg-media-L34PDQXJ.js +0 -106
  103. package/dist/brand-message-FUJ4STFO.js +0 -256
  104. package/dist/chart-bar-EGPHJATL.js +0 -310
  105. package/dist/chart-counter-5FFWQNZO.js +0 -306
  106. package/dist/chart-progress-ring-JMXQLMLC.js +0 -302
  107. package/dist/chunk-4UNKZEAT.js +0 -3575
  108. package/dist/chunk-5CDAM24P.js +0 -31
  109. package/dist/chunk-AOWSXU2K.js +0 -18
  110. package/dist/chunk-CJ7F2CE6.js +0 -104
  111. package/dist/chunk-FRN6WKHA.js +0 -185
  112. package/dist/chunk-G5JPHBX7.js +0 -336
  113. package/dist/chunk-L5BTTCZV.js +0 -97
  114. package/dist/chunk-P22HHFDK.js +0 -43
  115. package/dist/chunk-PP3MCPN4.js +0 -1998
  116. package/dist/chunk-QAAO7OAY.js +0 -19
  117. package/dist/chunk-S7HFLYNN.js +0 -35
  118. package/dist/chunk-W3VDIBGR.js +0 -217
  119. package/dist/chunk-XGRA2MUV.js +0 -242
  120. package/dist/chunk-XTOXFMLM.js +0 -105
  121. package/dist/chunk-YJJC4N4D.js +0 -761
  122. package/dist/compose-video-2NFH4DZY.js +0 -13
  123. package/dist/cta-logo-YR7LYUR5.js +0 -212
  124. package/dist/cta-media-DQJBKUO2.js +0 -221
  125. package/dist/incoming-call-54KQ7O5A.js +0 -323
  126. package/dist/infographic-before-after-ROS52GOW.js +0 -460
  127. package/dist/infographic-feature-list-E7MGUDAN.js +0 -272
  128. package/dist/infographic-problem-solution-3S6NGO5N.js +0 -343
  129. package/dist/infographic-stat-row-SYB7AB7H.js +0 -247
  130. package/dist/infographic-steps-KCE6JWE2.js +0 -406
  131. package/dist/prompt-input-MHX4O42G.js +0 -239
  132. package/dist/reaction-SLEGR3BE.js +0 -122
  133. package/dist/scene-video-backdrop-XFPX4O3I.js +0 -10
  134. package/dist/showcase-code-2HLAVKBM.js +0 -357
  135. package/dist/showcase-phone-Q4HEO4LH.js +0 -278
  136. package/dist/showcase-terminal-DL45LUFG.js +0 -312
  137. package/dist/showcase-web-2QZO73FZ.js +0 -396
  138. package/dist/social-conversation-75SD2637.js +0 -695
  139. package/dist/social-milestone-GEFUQSBF.js +0 -296
  140. package/dist/social-notification-FJ5VHVLK.js +0 -247
  141. package/dist/social-review-stack-KXQCKFRP.js +0 -242
  142. package/dist/social-testimonial-JZ7CHC7S.js +0 -287
  143. package/dist/social-tweet-UCDXM25F.js +0 -298
  144. package/dist/text-stream-54LXABJW.js +0 -10
  145. package/dist/validate-T7GBU2YF.js +0 -8
  146. package/registry/items/barChart.json +0 -245
  147. package/registry/items/beforeAfter.json +0 -180
  148. package/registry/items/bigNumber.json +0 -232
  149. package/registry/items/brandMessage.json +0 -164
  150. package/registry/items/cardList.json +0 -214
  151. package/registry/items/chatMessenger.json +0 -151
  152. package/registry/items/chatWhatsapp.json +0 -151
  153. package/registry/items/codeEditor.json +0 -191
  154. package/registry/items/confetti.json +0 -107
  155. package/registry/items/ctaLogo.json +0 -167
  156. package/registry/items/ctaMedia.json +0 -200
  157. package/registry/items/emojiBurst.json +0 -101
  158. package/registry/items/incomingCall.json +0 -177
  159. package/registry/items/media.json +0 -187
  160. package/registry/items/milestone.json +0 -212
  161. package/registry/items/notification.json +0 -189
  162. package/registry/items/phoneMockup.json +0 -261
  163. package/registry/items/problemSolution.json +0 -193
  164. package/registry/items/progressRing.json +0 -206
  165. package/registry/items/promptInput.json +0 -155
  166. package/registry/items/reaction.json +0 -176
  167. package/registry/items/reviewStack.json +0 -231
  168. package/registry/items/steps.json +0 -215
  169. package/registry/items/terminal.json +0 -219
  170. package/registry/items/testimonial.json +0 -171
  171. package/registry/items/tripleStats.json +0 -235
  172. package/registry/items/tweet.json +0 -210
  173. package/registry/items/webMockup.json +0 -280
@@ -0,0 +1,93 @@
1
+ Copyright 2011 The Roboto Project Authors (https://github.com/googlefonts/roboto-classic)
2
+
3
+ This Font Software is licensed under the SIL Open Font License, Version 1.1.
4
+ This license is copied below, and is also available with a FAQ at:
5
+ https://openfontlicense.org
6
+
7
+
8
+ -----------------------------------------------------------
9
+ SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
10
+ -----------------------------------------------------------
11
+
12
+ PREAMBLE
13
+ The goals of the Open Font License (OFL) are to stimulate worldwide
14
+ development of collaborative font projects, to support the font creation
15
+ efforts of academic and linguistic communities, and to provide a free and
16
+ open framework in which fonts may be shared and improved in partnership
17
+ with others.
18
+
19
+ The OFL allows the licensed fonts to be used, studied, modified and
20
+ redistributed freely as long as they are not sold by themselves. The
21
+ fonts, including any derivative works, can be bundled, embedded,
22
+ redistributed and/or sold with any software provided that any reserved
23
+ names are not used by derivative works. The fonts and derivatives,
24
+ however, cannot be released under any other type of license. The
25
+ requirement for fonts to remain under this license does not apply
26
+ to any document created using the fonts or their derivatives.
27
+
28
+ DEFINITIONS
29
+ "Font Software" refers to the set of files released by the Copyright
30
+ Holder(s) under this license and clearly marked as such. This may
31
+ include source files, build scripts and documentation.
32
+
33
+ "Reserved Font Name" refers to any names specified as such after the
34
+ copyright statement(s).
35
+
36
+ "Original Version" refers to the collection of Font Software components as
37
+ distributed by the Copyright Holder(s).
38
+
39
+ "Modified Version" refers to any derivative made by adding to, deleting,
40
+ or substituting -- in part or in whole -- any of the components of the
41
+ Original Version, by changing formats or by porting the Font Software to a
42
+ new environment.
43
+
44
+ "Author" refers to any designer, engineer, programmer, technical
45
+ writer or other person who contributed to the Font Software.
46
+
47
+ PERMISSION & CONDITIONS
48
+ Permission is hereby granted, free of charge, to any person obtaining
49
+ a copy of the Font Software, to use, study, copy, merge, embed, modify,
50
+ redistribute, and sell modified and unmodified copies of the Font
51
+ Software, subject to the following conditions:
52
+
53
+ 1) Neither the Font Software nor any of its individual components,
54
+ in Original or Modified Versions, may be sold by itself.
55
+
56
+ 2) Original or Modified Versions of the Font Software may be bundled,
57
+ redistributed and/or sold with any software, provided that each copy
58
+ contains the above copyright notice and this license. These can be
59
+ included either as stand-alone text files, human-readable headers or
60
+ in the appropriate machine-readable metadata fields within text or
61
+ binary files as long as those fields can be easily viewed by the user.
62
+
63
+ 3) No Modified Version of the Font Software may use the Reserved Font
64
+ Name(s) unless explicit written permission is granted by the corresponding
65
+ Copyright Holder. This restriction only applies to the primary font name as
66
+ presented to the users.
67
+
68
+ 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
69
+ Software shall not be used to promote, endorse or advertise any
70
+ Modified Version, except to acknowledge the contribution(s) of the
71
+ Copyright Holder(s) and the Author(s) or with their explicit written
72
+ permission.
73
+
74
+ 5) The Font Software, modified or unmodified, in part or in whole,
75
+ must be distributed entirely under this license, and must not be
76
+ distributed under any other license. The requirement for fonts to
77
+ remain under this license does not apply to any document created
78
+ using the Font Software.
79
+
80
+ TERMINATION
81
+ This license becomes null and void if any of the above conditions are
82
+ not met.
83
+
84
+ DISCLAIMER
85
+ THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
86
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
87
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
88
+ OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
89
+ COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
90
+ INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
91
+ DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
92
+ FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
93
+ OTHER DEALINGS IN THE FONT SOFTWARE.
@@ -0,0 +1,66 @@
1
+ {
2
+ "family": "Roboto",
3
+ "version": "v51",
4
+ "weights": [
5
+ 400,
6
+ 500
7
+ ],
8
+ "license": "OFL.txt",
9
+ "licenseSource": "https://raw.githubusercontent.com/google/fonts/main/ofl/roboto/OFL.txt",
10
+ "files": [
11
+ {
12
+ "file": "roboto-v51-cyrillic-ext.woff2",
13
+ "source": "https://fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBHMdazTgWw.woff2",
14
+ "sha256": "e44224eb71a96cb33bd046ded16a4e22bb441b170bdfbcba0268a754141b97c8",
15
+ "bytes": 31472
16
+ },
17
+ {
18
+ "file": "roboto-v51-cyrillic.woff2",
19
+ "source": "https://fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBHMdazTgWw.woff2",
20
+ "sha256": "32886c5ec61a0d06e5677a98c5ed78a5f1c788c18c5e8d7dcd931c4b6dc19830",
21
+ "bytes": 19624
22
+ },
23
+ {
24
+ "file": "roboto-v51-greek-ext.woff2",
25
+ "source": "https://fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBHMdazTgWw.woff2",
26
+ "sha256": "5fdfeaf926cac990770dfa66011bdb87d6b69f43c42aa759dcdcf0a7a197c19a",
27
+ "bytes": 1632
28
+ },
29
+ {
30
+ "file": "roboto-v51-greek.woff2",
31
+ "source": "https://fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBHMdazTgWw.woff2",
32
+ "sha256": "4813e3dfbbb23708c817ef7fd3fd9c82cd0d33c778def0897f0447f1c364ce64",
33
+ "bytes": 13984
34
+ },
35
+ {
36
+ "file": "roboto-v51-math.woff2",
37
+ "source": "https://fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBHMdazTgWw.woff2",
38
+ "sha256": "297193369eea600161f4b5219bd7b08850180fcfe0752f1a2eaa436575cd03b7",
39
+ "bytes": 36292
40
+ },
41
+ {
42
+ "file": "roboto-v51-symbols.woff2",
43
+ "source": "https://fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMaxKUBHMdazTgWw.woff2",
44
+ "sha256": "fab8a0056d92fdd8d64fed4b049744144e1d24d08762c513bff78265299ed7a3",
45
+ "bytes": 16692
46
+ },
47
+ {
48
+ "file": "roboto-v51-vietnamese.woff2",
49
+ "source": "https://fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBHMdazTgWw.woff2",
50
+ "sha256": "2071148c26bd0430cad316373c26db399e0cf8f6275b9e1a2c1b831f05ee7dc3",
51
+ "bytes": 10572
52
+ },
53
+ {
54
+ "file": "roboto-v51-latin-ext.woff2",
55
+ "source": "https://fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBHMdazTgWw.woff2",
56
+ "sha256": "cdd53dc5576a79f35cf280dfbd9c1cb2a5dd2f0ede30afba9b9ccdc7fe12e7d0",
57
+ "bytes": 24444
58
+ },
59
+ {
60
+ "file": "roboto-v51-latin.woff2",
61
+ "source": "https://fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBHMdazQ.woff2",
62
+ "sha256": "0a44e0bb6ba5c8537e8814c148ef7755f1bce12112361231f595ecc584a18d7a",
63
+ "bytes": 37520
64
+ }
65
+ ]
66
+ }
@@ -0,0 +1,91 @@
1
+ /* Roboto v51, SIL Open Font License 1.1. Self-hosted fallback; no external requests. */
2
+ /* cyrillic-ext */
3
+ @font-face {
4
+ font-family: 'Roboto';
5
+ font-style: normal;
6
+ font-weight: 400 500;
7
+ font-stretch: 100%;
8
+ font-display: optional;
9
+ src: url("./roboto-v51-cyrillic-ext.woff2") format('woff2');
10
+ unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
11
+ }
12
+ /* cyrillic */
13
+ @font-face {
14
+ font-family: 'Roboto';
15
+ font-style: normal;
16
+ font-weight: 400 500;
17
+ font-stretch: 100%;
18
+ font-display: optional;
19
+ src: url("./roboto-v51-cyrillic.woff2") format('woff2');
20
+ unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
21
+ }
22
+ /* greek-ext */
23
+ @font-face {
24
+ font-family: 'Roboto';
25
+ font-style: normal;
26
+ font-weight: 400 500;
27
+ font-stretch: 100%;
28
+ font-display: optional;
29
+ src: url("./roboto-v51-greek-ext.woff2") format('woff2');
30
+ unicode-range: U+1F00-1FFF;
31
+ }
32
+ /* greek */
33
+ @font-face {
34
+ font-family: 'Roboto';
35
+ font-style: normal;
36
+ font-weight: 400 500;
37
+ font-stretch: 100%;
38
+ font-display: optional;
39
+ src: url("./roboto-v51-greek.woff2") format('woff2');
40
+ unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
41
+ }
42
+ /* math */
43
+ @font-face {
44
+ font-family: 'Roboto';
45
+ font-style: normal;
46
+ font-weight: 400 500;
47
+ font-stretch: 100%;
48
+ font-display: optional;
49
+ src: url("./roboto-v51-math.woff2") format('woff2');
50
+ unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;
51
+ }
52
+ /* symbols */
53
+ @font-face {
54
+ font-family: 'Roboto';
55
+ font-style: normal;
56
+ font-weight: 400 500;
57
+ font-stretch: 100%;
58
+ font-display: optional;
59
+ src: url("./roboto-v51-symbols.woff2") format('woff2');
60
+ unicode-range: U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF;
61
+ }
62
+ /* vietnamese */
63
+ @font-face {
64
+ font-family: 'Roboto';
65
+ font-style: normal;
66
+ font-weight: 400 500;
67
+ font-stretch: 100%;
68
+ font-display: optional;
69
+ src: url("./roboto-v51-vietnamese.woff2") format('woff2');
70
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
71
+ }
72
+ /* latin-ext */
73
+ @font-face {
74
+ font-family: 'Roboto';
75
+ font-style: normal;
76
+ font-weight: 400 500;
77
+ font-stretch: 100%;
78
+ font-display: optional;
79
+ src: url("./roboto-v51-latin-ext.woff2") format('woff2');
80
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
81
+ }
82
+ /* latin */
83
+ @font-face {
84
+ font-family: 'Roboto';
85
+ font-style: normal;
86
+ font-weight: 400 500;
87
+ font-stretch: 100%;
88
+ font-display: optional;
89
+ src: url("./roboto-v51-latin.woff2") format('woff2');
90
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
91
+ }
@@ -1,3 +1,5 @@
1
+ @import "./fonts/roboto.css";
2
+
1
3
  /* Scoped immersive VideoChat interface. Import this stylesheet once.
2
4
  * All tokens, element rules and animation names belong to the component.
3
5
  * Override --vs-chat-height / --vs-chat-min-height to fit an embedded host. */
@@ -1038,6 +1040,10 @@
1038
1040
  opacity: 0;
1039
1041
  pointer-events: none;
1040
1042
  }
1043
+ /* Native hover must keep controls interactive even between pointer events
1044
+ and the idle timer's React update. Hidden pointer events otherwise expose
1045
+ the underlying scene to WebKit's hit testing. */
1046
+ .vanillasky-video-chat .line-row:hover .caption-actions,
1041
1047
  .vanillasky-video-chat .line-row:focus-within .caption-actions,
1042
1048
  .vanillasky-video-chat .caption-actions:focus-within {
1043
1049
  opacity: 1;
@@ -1047,27 +1053,6 @@
1047
1053
  @media (max-width: 700px) {
1048
1054
  .vanillasky-video-chat .sheet-popover { max-height: calc(100% - 102px); }
1049
1055
  }
1050
-
1051
- /* A still from the current response softly fills unused aspect-ratio space.
1052
- Frame is mounted paused by the component; only the main player animates. */
1053
- .vanillasky-video-chat .stage > .ambient-media {
1054
- inset: -40px;
1055
- width: calc(100% + 80px);
1056
- height: calc(100% + 80px);
1057
- display: block;
1058
- overflow: hidden;
1059
- z-index: 0;
1060
- background: var(--vs-media-ground);
1061
- opacity: 1;
1062
- pointer-events: none;
1063
- }
1064
- .vanillasky-video-chat .ambient-media .frame-media {
1065
- max-width: none;
1066
- max-height: none;
1067
- object-fit: cover;
1068
- filter: blur(32px) saturate(.85);
1069
- opacity: .62;
1070
- }
1071
1056
  .vanillasky-video-chat .opening-wash {
1072
1057
  position: absolute;
1073
1058
  inset: 0;
@@ -1092,7 +1077,6 @@
1092
1077
  backdrop-filter: none;
1093
1078
  -webkit-backdrop-filter: none;
1094
1079
  }
1095
- .vanillasky-video-chat .stage > .ambient-media { display: none; }
1096
1080
  }
1097
1081
 
1098
1082
  @media (pointer: coarse) {
@@ -1130,3 +1114,27 @@
1130
1114
  .vanillasky-video-chat .recovery-notice .round { flex: 0 0 44px; width: 44px; height: 44px; }
1131
1115
 
1132
1116
  .vanillasky-video-chat .session-new { margin-bottom: 20px; background: var(--vs-surface-hover); border-color: rgb(221 224 255 / 12%); }
1117
+
1118
+ /* The floating toolbar and subtitle row share one uninterrupted hover target. */
1119
+ .vanillasky-video-chat .caption-actions::after {
1120
+ content: "";
1121
+ position: absolute;
1122
+ left: 0;
1123
+ right: 0;
1124
+ top: 100%;
1125
+ height: 7px;
1126
+ }
1127
+
1128
+ .vanillasky-video-chat .opening-chapter {
1129
+ position: absolute;
1130
+ inset: 0;
1131
+ background: #000;
1132
+ }
1133
+ .vanillasky-video-chat .opening-chapter [data-title-composition="centered"] {
1134
+ animation: vanillasky-video-chat-fade-in 800ms ease both;
1135
+ }
1136
+ .vanillasky-video-chat .line-row[data-opening-copy="true"] {
1137
+ background: transparent;
1138
+ backdrop-filter: none;
1139
+ -webkit-backdrop-filter: none;
1140
+ }
@@ -1,89 +0,0 @@
1
- import {
2
- ConfettiLayer
3
- } from "./chunk-CJ7F2CE6.js";
4
- import "./chunk-QAAO7OAY.js";
5
- import {
6
- TemplateText
7
- } from "./chunk-YJJC4N4D.js";
8
- import "./chunk-L5BTTCZV.js";
9
- import {
10
- BrandGradientOverlay
11
- } from "./chunk-W3VDIBGR.js";
12
- import "./chunk-XTOXFMLM.js";
13
- import {
14
- resolveTokens
15
- } from "./chunk-XWWLKRNU.js";
16
-
17
- // src/visual-system/scene-templates/bg-confetti.tsx
18
- import { jsx, jsxs } from "react/jsx-runtime";
19
- var BgConfettiTemplate = ({
20
- variables,
21
- style,
22
- progress,
23
- motionProgress = progress,
24
- beatIntensity,
25
- width,
26
- height,
27
- textArchetype,
28
- safeZone,
29
- sceneDuration
30
- }) => {
31
- const { background, foreground, font } = resolveTokens(style);
32
- const textColor = foreground;
33
- return /* @__PURE__ */ jsxs(
34
- "div",
35
- {
36
- style: {
37
- width,
38
- height,
39
- backgroundColor: "var(--vanillasky-template-surface, #000)",
40
- position: "relative",
41
- overflow: "hidden",
42
- fontFamily: font
43
- },
44
- children: [
45
- /* @__PURE__ */ jsx(
46
- BrandGradientOverlay,
47
- {
48
- style,
49
- progress,
50
- sceneDuration,
51
- seed: String(variables.texts || "").split("").reduce((acc, c) => acc + c.charCodeAt(0), 0)
52
- }
53
- ),
54
- /* @__PURE__ */ jsx(
55
- ConfettiLayer,
56
- {
57
- progress: motionProgress,
58
- width,
59
- height,
60
- beatIntensity,
61
- bgColor: background.type === "solid" ? background.color : background.colors[1]
62
- }
63
- ),
64
- /* @__PURE__ */ jsx(
65
- TemplateText,
66
- {
67
- motionProgress,
68
- typeTreatment: resolveTokens(style).preset.type,
69
- archetype: textArchetype ?? "subtle",
70
- text: String(variables.texts ?? ""),
71
- progress,
72
- sceneDuration: sceneDuration ?? 3,
73
- width,
74
- height,
75
- position: "center",
76
- sizeRole: "headline",
77
- safeZone,
78
- font,
79
- color: textColor,
80
- beatIntensity
81
- }
82
- )
83
- ]
84
- }
85
- );
86
- };
87
- export {
88
- BgConfettiTemplate
89
- };
@@ -1,150 +0,0 @@
1
- import {
2
- getCelebrationParticleTiming
3
- } from "./chunk-QAAO7OAY.js";
4
- import {
5
- TemplateText
6
- } from "./chunk-YJJC4N4D.js";
7
- import {
8
- Emoji
9
- } from "./chunk-L5BTTCZV.js";
10
- import {
11
- BrandGradientOverlay
12
- } from "./chunk-W3VDIBGR.js";
13
- import "./chunk-XTOXFMLM.js";
14
- import {
15
- resolveTokens
16
- } from "./chunk-XWWLKRNU.js";
17
-
18
- // src/visual-system/scene-templates/bg-emoji.tsx
19
- import { jsx, jsxs } from "react/jsx-runtime";
20
- function seededRandom(seed) {
21
- const x = Math.sin(seed * 12.9898 + seed * 78.233) * 43758.5453;
22
- return x - Math.floor(x);
23
- }
24
- var EMOJI_LIST = [
25
- "\u2764\uFE0F",
26
- // red heart
27
- "\u2B50",
28
- // star
29
- "\u{1F389}",
30
- // party popper
31
- "\u{1F984}",
32
- // unicorn
33
- "\u{1F525}",
34
- // fire
35
- "\u2728",
36
- // sparkles
37
- "\u{1F680}",
38
- // rocket
39
- "\u{1F49C}"
40
- // purple heart
41
- ];
42
- var PARTICLE_COUNT = 100;
43
- function easeOutQuad(p) {
44
- return 1 - (1 - p) * (1 - p);
45
- }
46
- var BgEmojiTemplate = ({
47
- variables,
48
- style,
49
- progress,
50
- motionProgress = progress,
51
- beatIntensity,
52
- width,
53
- height,
54
- textArchetype,
55
- safeZone,
56
- sceneDuration
57
- }) => {
58
- const s = Math.min(width, height) / 1080;
59
- const BURST_RADIUS = Math.max(width, height) * 0.95;
60
- const { foreground, font } = resolveTokens(style);
61
- const textColor = foreground;
62
- return /* @__PURE__ */ jsxs(
63
- "div",
64
- {
65
- style: {
66
- width,
67
- height,
68
- backgroundColor: "var(--vanillasky-template-surface, #000)",
69
- position: "relative",
70
- overflow: "hidden",
71
- fontFamily: font
72
- },
73
- children: [
74
- /* @__PURE__ */ jsx(BrandGradientOverlay, { style, progress, sceneDuration, seed: String(variables.texts || "").split("").reduce((acc, c) => acc + c.charCodeAt(0), 0) }),
75
- Array.from({ length: PARTICLE_COUNT }, (_, i) => {
76
- const seed = i + 1;
77
- const angle = i / PARTICLE_COUNT * Math.PI * 2;
78
- const forceFactor = 0.75 + seededRandom(seed * 1) * 0.5;
79
- const durationFactor = 1.1 + seededRandom(seed * 3) * 0.6;
80
- const emoji = EMOJI_LIST[i % EMOJI_LIST.length];
81
- const startRot = seededRandom(seed * 5) * 60 - 30;
82
- const rotSpeed = (seededRandom(seed * 6) - 0.5) * 540;
83
- const sizeJitter = 0.7 + seededRandom(seed * 7) * 0.7;
84
- const timing = getCelebrationParticleTiming(motionProgress, i, durationFactor);
85
- if (!timing) return null;
86
- const p = timing.progress;
87
- const reach = BURST_RADIUS * forceFactor;
88
- const radialP = easeOutQuad(p);
89
- const gravity = height * 0.08 * p * p;
90
- const x = width * 0.5 + Math.cos(angle) * reach * radialP;
91
- const y = height * 0.5 + Math.sin(angle) * reach * radialP + gravity;
92
- const baseSize = (28 + seededRandom(seed * 11) * 24) * s;
93
- const size = baseSize * sizeJitter;
94
- const popScale = Math.min(1, p * 30);
95
- const particleOpacity = p < 0.85 ? 1 : Math.max(0, 1 - (p - 0.85) / 0.15);
96
- const opacity = particleOpacity * timing.opacity;
97
- const beatPulse = 1 + beatIntensity * 0.2;
98
- const rot = startRot + rotSpeed * p;
99
- if (opacity <= 0) return null;
100
- if (y > height + 100 || y < -100 || x < -100 || x > width + 100) return null;
101
- return /* @__PURE__ */ jsx(
102
- "div",
103
- {
104
- style: {
105
- position: "absolute",
106
- left: x - size / 2,
107
- top: y - size / 2,
108
- width: size,
109
- height: size,
110
- fontSize: size * 0.8,
111
- lineHeight: 1,
112
- textAlign: "center",
113
- opacity,
114
- transform: `rotate(${rot}deg) scale(${popScale * beatPulse})`,
115
- pointerEvents: "none",
116
- display: "flex",
117
- alignItems: "center",
118
- justifyContent: "center"
119
- },
120
- children: /* @__PURE__ */ jsx(Emoji, { char: emoji, size: size * 0.8, verticalAlign: "baseline" })
121
- },
122
- i
123
- );
124
- }),
125
- /* @__PURE__ */ jsx(
126
- TemplateText,
127
- {
128
- motionProgress,
129
- typeTreatment: resolveTokens(style).preset.type,
130
- archetype: textArchetype ?? "subtle",
131
- text: String(variables.texts ?? ""),
132
- progress,
133
- sceneDuration: sceneDuration ?? 3,
134
- width,
135
- height,
136
- position: "center",
137
- sizeRole: "headline",
138
- safeZone,
139
- font,
140
- color: textColor,
141
- beatIntensity
142
- }
143
- )
144
- ]
145
- }
146
- );
147
- };
148
- export {
149
- BgEmojiTemplate
150
- };