@design-edito/tools 0.4.4 → 0.4.5

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 (449) hide show
  1. package/agnostic/arrays/dedupe/index.js +0 -2
  2. package/agnostic/arrays/find-duplicates/index.js +0 -2
  3. package/agnostic/arrays/index.d.ts +2 -2
  4. package/agnostic/arrays/index.js +2 -2
  5. package/agnostic/arrays/is-array-of/index.js +4 -4
  6. package/agnostic/arrays/make/index.js +0 -2
  7. package/agnostic/arrays/random-pick/index.js +20 -5
  8. package/agnostic/arrays/shuffle/index.js +0 -2
  9. package/agnostic/booleans/is-falsy/index.js +12 -7
  10. package/agnostic/colors/channels/index.js +936 -13
  11. package/agnostic/colors/contrast/index.js +624 -12
  12. package/agnostic/colors/convert/index.js +845 -26
  13. package/agnostic/colors/distance/index.js +493 -9
  14. package/agnostic/colors/grayscale/index.js +751 -15
  15. package/agnostic/colors/index.d.ts +2 -2
  16. package/agnostic/colors/index.js +2 -2
  17. package/agnostic/colors/invert/index.js +687 -13
  18. package/agnostic/colors/lerp/index.js +735 -20
  19. package/agnostic/colors/luminance/index.js +624 -10
  20. package/agnostic/colors/palette/index.js +838 -11
  21. package/agnostic/colors/rotate/index.js +838 -11
  22. package/agnostic/colors/tidy/index.js +528 -9
  23. package/agnostic/colors/typechecks/index.js +247 -14
  24. package/agnostic/css/bem/index.js +23 -11
  25. package/agnostic/css/clss/index.js +28 -4
  26. package/agnostic/css/generate-nice-color/index.js +0 -2
  27. package/agnostic/css/index.d.ts +2 -2
  28. package/agnostic/css/index.js +2 -2
  29. package/agnostic/css/is-valid-css-class-name/index.js +5 -5
  30. package/agnostic/css/scale/index.js +20 -7
  31. package/agnostic/css/styles-set/index.js +15 -6
  32. package/agnostic/errors/index.d.ts +1 -1
  33. package/agnostic/errors/index.js +1 -1
  34. package/agnostic/errors/register/index.js +0 -2
  35. package/agnostic/errors/unknown-to-string/index.js +8 -4
  36. package/agnostic/html/get-node-ancestors/index.js +28 -5
  37. package/agnostic/html/get-position-inside-parent/index.js +0 -2
  38. package/agnostic/html/hyper-json/cast/index.js +2937 -21
  39. package/agnostic/html/hyper-json/index.js +2939 -35
  40. package/agnostic/html/hyper-json/method/index.js +11 -4
  41. package/agnostic/html/hyper-json/serialize/index.js +222 -8
  42. package/agnostic/html/hyper-json/smart-tags/coalesced/add/index.js +2937 -21
  43. package/agnostic/html/hyper-json/smart-tags/coalesced/addclass/index.js +2937 -21
  44. package/agnostic/html/hyper-json/smart-tags/coalesced/and/index.js +2937 -21
  45. package/agnostic/html/hyper-json/smart-tags/coalesced/append/index.js +2937 -21
  46. package/agnostic/html/hyper-json/smart-tags/coalesced/at/index.js +2937 -21
  47. package/agnostic/html/hyper-json/smart-tags/coalesced/call/index.js +2937 -21
  48. package/agnostic/html/hyper-json/smart-tags/coalesced/clone/index.js +2937 -21
  49. package/agnostic/html/hyper-json/smart-tags/coalesced/deleteproperties/index.js +2937 -21
  50. package/agnostic/html/hyper-json/smart-tags/coalesced/equals/index.js +2937 -21
  51. package/agnostic/html/hyper-json/smart-tags/coalesced/getattribute/index.js +2937 -21
  52. package/agnostic/html/hyper-json/smart-tags/coalesced/getproperties/index.js +2937 -21
  53. package/agnostic/html/hyper-json/smart-tags/coalesced/getproperty/index.js +2937 -22
  54. package/agnostic/html/hyper-json/smart-tags/coalesced/hjparse/index.js +2937 -21
  55. package/agnostic/html/hyper-json/smart-tags/coalesced/hjstringify/index.js +2937 -23
  56. package/agnostic/html/hyper-json/smart-tags/coalesced/if/index.js +2937 -21
  57. package/agnostic/html/hyper-json/smart-tags/coalesced/index.d.ts +12 -12
  58. package/agnostic/html/hyper-json/smart-tags/coalesced/index.js +12 -12
  59. package/agnostic/html/hyper-json/smart-tags/coalesced/initialize/index.js +2937 -21
  60. package/agnostic/html/hyper-json/smart-tags/coalesced/join/index.js +2937 -21
  61. package/agnostic/html/hyper-json/smart-tags/coalesced/length/index.js +2937 -21
  62. package/agnostic/html/hyper-json/smart-tags/coalesced/map/index.js +2937 -21
  63. package/agnostic/html/hyper-json/smart-tags/coalesced/negate/index.js +2937 -21
  64. package/agnostic/html/hyper-json/smart-tags/coalesced/notrailing/index.js +2937 -21
  65. package/agnostic/html/hyper-json/smart-tags/coalesced/or/index.js +2937 -21
  66. package/agnostic/html/hyper-json/smart-tags/coalesced/pickrandom/index.js +2937 -21
  67. package/agnostic/html/hyper-json/smart-tags/coalesced/populate/index.js +2937 -21
  68. package/agnostic/html/hyper-json/smart-tags/coalesced/print/index.js +2937 -21
  69. package/agnostic/html/hyper-json/smart-tags/coalesced/push/index.js +2937 -21
  70. package/agnostic/html/hyper-json/smart-tags/coalesced/pusheach/index.js +2937 -21
  71. package/agnostic/html/hyper-json/smart-tags/coalesced/recordtoarray/index.js +2937 -21
  72. package/agnostic/html/hyper-json/smart-tags/coalesced/removeattribute/index.js +2937 -21
  73. package/agnostic/html/hyper-json/smart-tags/coalesced/removeclass/index.js +2937 -21
  74. package/agnostic/html/hyper-json/smart-tags/coalesced/renameproperty/index.js +2937 -21
  75. package/agnostic/html/hyper-json/smart-tags/coalesced/replace/index.js +2937 -22
  76. package/agnostic/html/hyper-json/smart-tags/coalesced/select/index.js +2937 -21
  77. package/agnostic/html/hyper-json/smart-tags/coalesced/set/index.js +2937 -21
  78. package/agnostic/html/hyper-json/smart-tags/coalesced/setattribute/index.js +2937 -21
  79. package/agnostic/html/hyper-json/smart-tags/coalesced/setproperty/index.js +2937 -22
  80. package/agnostic/html/hyper-json/smart-tags/coalesced/sorton/index.js +2937 -21
  81. package/agnostic/html/hyper-json/smart-tags/coalesced/split/index.js +2937 -21
  82. package/agnostic/html/hyper-json/smart-tags/coalesced/spread/index.js +2937 -21
  83. package/agnostic/html/hyper-json/smart-tags/coalesced/toarray/index.js +2937 -21
  84. package/agnostic/html/hyper-json/smart-tags/coalesced/toboolean/index.js +2937 -21
  85. package/agnostic/html/hyper-json/smart-tags/coalesced/toelement/index.js +2937 -21
  86. package/agnostic/html/hyper-json/smart-tags/coalesced/toggleclass/index.js +2937 -21
  87. package/agnostic/html/hyper-json/smart-tags/coalesced/tonodelist/index.js +2937 -21
  88. package/agnostic/html/hyper-json/smart-tags/coalesced/tonull/index.js +2937 -21
  89. package/agnostic/html/hyper-json/smart-tags/coalesced/tonumber/index.js +2937 -21
  90. package/agnostic/html/hyper-json/smart-tags/coalesced/torecord/index.js +2937 -21
  91. package/agnostic/html/hyper-json/smart-tags/coalesced/toref/index.js +2937 -21
  92. package/agnostic/html/hyper-json/smart-tags/coalesced/tostring/index.js +2937 -21
  93. package/agnostic/html/hyper-json/smart-tags/coalesced/totext/index.js +2937 -21
  94. package/agnostic/html/hyper-json/smart-tags/coalesced/transformselected/index.js +2937 -21
  95. package/agnostic/html/hyper-json/smart-tags/coalesced/trim/index.js +2937 -21
  96. package/agnostic/html/hyper-json/smart-tags/index.js +181 -7
  97. package/agnostic/html/hyper-json/smart-tags/isolated/any/index.js +194 -8
  98. package/agnostic/html/hyper-json/smart-tags/isolated/array/index.js +194 -8
  99. package/agnostic/html/hyper-json/smart-tags/isolated/boolean/index.js +2937 -21
  100. package/agnostic/html/hyper-json/smart-tags/isolated/element/index.js +2937 -21
  101. package/agnostic/html/hyper-json/smart-tags/isolated/get/index.js +2938 -22
  102. package/agnostic/html/hyper-json/smart-tags/isolated/guess/index.js +2937 -21
  103. package/agnostic/html/hyper-json/smart-tags/isolated/nodelist/index.js +2937 -21
  104. package/agnostic/html/hyper-json/smart-tags/isolated/null/index.js +191 -8
  105. package/agnostic/html/hyper-json/smart-tags/isolated/number/index.js +2937 -21
  106. package/agnostic/html/hyper-json/smart-tags/isolated/record/index.js +2937 -21
  107. package/agnostic/html/hyper-json/smart-tags/isolated/ref/index.js +2937 -22
  108. package/agnostic/html/hyper-json/smart-tags/isolated/string/index.js +2937 -21
  109. package/agnostic/html/hyper-json/smart-tags/isolated/text/index.js +2937 -21
  110. package/agnostic/html/hyper-json/transformer/index.js +146 -6
  111. package/agnostic/html/hyper-json/tree/index.js +2937 -21
  112. package/agnostic/html/hyper-json/types/index.js +16 -4
  113. package/agnostic/html/hyper-json/utils/index.js +2937 -21
  114. package/agnostic/html/index.d.ts +2 -2
  115. package/agnostic/html/index.js +2 -2
  116. package/agnostic/html/insert-node/index.js +14 -4
  117. package/agnostic/html/placeholders/index.js +0 -2
  118. package/agnostic/html/replace-in-element/index.js +28 -5
  119. package/agnostic/html/selector-to-element/index.js +10 -4
  120. package/agnostic/html/string-to-nodes/index.js +10 -4
  121. package/agnostic/index.d.ts +5 -5
  122. package/agnostic/index.js +5 -5
  123. package/agnostic/misc/assert/index.js +16 -8
  124. package/agnostic/misc/cast/index.js +56 -13
  125. package/agnostic/misc/connection/index.js +10 -4
  126. package/agnostic/misc/crawler/index.js +6 -4
  127. package/agnostic/misc/crossenv/detect-runtime/index.js +0 -3
  128. package/agnostic/misc/crossenv/types.js +11 -4
  129. package/agnostic/misc/crossenv/window/index.js +22 -7
  130. package/agnostic/misc/data-size/index.js +0 -2
  131. package/agnostic/misc/index.d.ts +5 -5
  132. package/agnostic/misc/index.js +5 -5
  133. package/agnostic/misc/is-constructor-function/index.js +4 -4
  134. package/agnostic/misc/is-nullish/index.js +8 -6
  135. package/agnostic/misc/logs/logger/index.js +0 -2
  136. package/agnostic/misc/logs/make-text-block/index.js +11 -4
  137. package/agnostic/misc/logs/styles/index.js +47 -5
  138. package/agnostic/misc/lorem-ipsum/index.js +22 -7
  139. package/agnostic/misc/normalize-extension/index.js +0 -2
  140. package/agnostic/misc/outcome/index.js +10 -6
  141. package/agnostic/numbers/absolute-modulo/index.js +4 -4
  142. package/agnostic/numbers/approximate-rational/index.js +0 -2
  143. package/agnostic/numbers/clamp/index.js +6 -4
  144. package/agnostic/numbers/geometric-progressions/index.js +14 -4
  145. package/agnostic/numbers/index.d.ts +1 -1
  146. package/agnostic/numbers/index.js +1 -1
  147. package/agnostic/numbers/interpolate/index.js +0 -2
  148. package/agnostic/numbers/round/index.js +13 -6
  149. package/agnostic/objects/deep-get-property/index.js +5 -4
  150. package/agnostic/objects/enums/is-in-enum/index.js +9 -4
  151. package/agnostic/objects/flatten-getters/index.js +0 -2
  152. package/agnostic/objects/index.d.ts +3 -3
  153. package/agnostic/objects/index.js +3 -3
  154. package/agnostic/objects/is-object/index.js +7 -5
  155. package/agnostic/objects/is-record/index.js +5 -4
  156. package/agnostic/objects/record-format/index.js +0 -2
  157. package/agnostic/objects/record-map/index.js +10 -4
  158. package/agnostic/objects/sort-keys/index.js +0 -2
  159. package/agnostic/objects/validation/index.js +0 -2
  160. package/agnostic/optim/memoize/index.js +0 -2
  161. package/agnostic/optim/throttle-debounce/index.js +0 -2
  162. package/agnostic/random/hex-char/index.js +7 -5
  163. package/agnostic/random/index.d.ts +1 -1
  164. package/agnostic/random/index.js +1 -1
  165. package/agnostic/random/random/index.js +12 -5
  166. package/agnostic/random/uuid/index.js +18 -7
  167. package/agnostic/regexps/index.js +0 -2
  168. package/agnostic/sanitization/file-name/index.js +6 -4
  169. package/agnostic/sanitization/html/index.js +10 -4
  170. package/agnostic/sanitization/path/index.js +6 -4
  171. package/agnostic/sanitization/user-input/index.js +0 -2
  172. package/agnostic/strings/char-codes/index.js +0 -2
  173. package/agnostic/strings/matches/index.js +14 -6
  174. package/agnostic/strings/normalize-indent/index.js +0 -2
  175. package/agnostic/strings/parse-table/index.js +7 -5
  176. package/agnostic/strings/replace-all/index.js +0 -2
  177. package/agnostic/strings/to-alphanum/index.js +0 -2
  178. package/agnostic/strings/trim/index.js +7 -5
  179. package/agnostic/time/dates/format-date/index.js +0 -2
  180. package/agnostic/time/duration/index.js +0 -2
  181. package/agnostic/time/timeout/index.js +0 -2
  182. package/agnostic/time/transitions/index.js +6 -4
  183. package/agnostic/time/wait/index.js +6 -4
  184. package/components/BeforeAfter/index.js +51 -14
  185. package/components/Disclaimer/index.js +107 -6
  186. package/components/Drawer/index.js +133 -24
  187. package/components/EventListener/index.js +44 -11
  188. package/components/Gallery/index.js +42 -11
  189. package/components/Image/index.js +222 -34
  190. package/components/IntersectionObserver/index.js +107 -6
  191. package/components/Overlayer/index.js +51 -14
  192. package/components/Paginator/index.js +153 -6
  193. package/components/ResizeObserver/index.js +118 -6
  194. package/components/Scrllgngn/index.js +332 -42
  195. package/components/ScrollListener/index.js +135 -30
  196. package/components/Sequencer/index.js +139 -37
  197. package/components/ShadowRoot/index.js +44 -11
  198. package/components/Subtitles/index.js +241 -10
  199. package/components/Theatre/index.js +134 -6
  200. package/components/UIModule/index.js +74 -21
  201. package/components/Video/index.d.ts +10 -0
  202. package/components/Video/index.js +448 -94
  203. package/components/index.d.ts +4 -4
  204. package/components/index.js +4 -4
  205. package/components/utils/index.js +9 -4
  206. package/index.d.ts +0 -1
  207. package/index.js +0 -1
  208. package/node/@aws-s3/storage/directory/copy-dir/index.js +70 -5
  209. package/node/@aws-s3/storage/directory/index.d.ts +1 -1
  210. package/node/@aws-s3/storage/directory/index.js +1 -1
  211. package/node/@aws-s3/storage/directory/list/index.js +39 -5
  212. package/node/@aws-s3/storage/directory/move-dir/index.js +83 -5
  213. package/node/@aws-s3/storage/directory/remove-dir/index.js +66 -5
  214. package/node/@aws-s3/storage/file/copy/index.js +51 -5
  215. package/node/@aws-s3/storage/file/download/index.js +37 -5
  216. package/node/@aws-s3/storage/file/exists/index.js +41 -5
  217. package/node/@aws-s3/storage/file/index.d.ts +1 -1
  218. package/node/@aws-s3/storage/file/index.js +1 -1
  219. package/node/@aws-s3/storage/file/move/index.js +62 -5
  220. package/node/@aws-s3/storage/file/remove/index.js +42 -5
  221. package/node/@aws-s3/storage/file/stat/index.js +44 -5
  222. package/node/@aws-s3/storage/file/upload/index.js +62 -5
  223. package/node/@express/@multer/index.js +19 -9
  224. package/node/@google-cloud/storage/bucket/get-metadata/index.js +16 -8
  225. package/node/@google-cloud/storage/directory/copy-dir/index.js +41 -6
  226. package/node/@google-cloud/storage/directory/index.d.ts +1 -1
  227. package/node/@google-cloud/storage/directory/index.js +1 -1
  228. package/node/@google-cloud/storage/directory/list/index.js +33 -6
  229. package/node/@google-cloud/storage/directory/move-dir/index.js +41 -6
  230. package/node/@google-cloud/storage/directory/remove-dir/index.js +37 -6
  231. package/node/@google-cloud/storage/file/copy/index.js +39 -6
  232. package/node/@google-cloud/storage/file/download/index.js +32 -6
  233. package/node/@google-cloud/storage/file/exists/index.js +29 -6
  234. package/node/@google-cloud/storage/file/generate-signed-url/index.js +16 -8
  235. package/node/@google-cloud/storage/file/get-metadata/index.js +16 -8
  236. package/node/@google-cloud/storage/file/get-permissions/index.js +16 -8
  237. package/node/@google-cloud/storage/file/index.d.ts +3 -3
  238. package/node/@google-cloud/storage/file/index.js +3 -3
  239. package/node/@google-cloud/storage/file/move/index.js +41 -6
  240. package/node/@google-cloud/storage/file/remove/index.js +34 -6
  241. package/node/@google-cloud/storage/file/revoke-signed-urls/index.js +80 -14
  242. package/node/@google-cloud/storage/file/stat/index.js +36 -6
  243. package/node/@google-cloud/storage/file/update-metadata/index.js +16 -8
  244. package/node/@google-cloud/storage/file/upload/index.js +46 -6
  245. package/node/@google-cloud/storage/index.d.ts +1 -1
  246. package/node/@google-cloud/storage/index.js +1 -1
  247. package/node/cloud-storage/clients/index.js +9 -7
  248. package/node/cloud-storage/operations/copy-dir/index.js +191 -22
  249. package/node/cloud-storage/operations/copy-file/index.js +140 -22
  250. package/node/cloud-storage/operations/download-file/index.js +91 -22
  251. package/node/cloud-storage/operations/exists-file/index.js +91 -22
  252. package/node/cloud-storage/operations/index.d.ts +2 -2
  253. package/node/cloud-storage/operations/index.js +2 -2
  254. package/node/cloud-storage/operations/list-dir/index.js +86 -22
  255. package/node/cloud-storage/operations/move-dir/index.js +157 -22
  256. package/node/cloud-storage/operations/move-file/index.js +145 -22
  257. package/node/cloud-storage/operations/remove-dir/index.js +147 -22
  258. package/node/cloud-storage/operations/remove-file/index.js +109 -22
  259. package/node/cloud-storage/operations/stat-file/index.js +112 -22
  260. package/node/cloud-storage/operations/upload-file/index.js +150 -22
  261. package/node/encryption/@aes-256-gcm/buffer/index.js +58 -12
  262. package/node/encryption/@aes-256-gcm/index.d.ts +1 -1
  263. package/node/encryption/@aes-256-gcm/index.js +1 -1
  264. package/node/encryption/@aes-256-gcm/uint8-array/index.js +53 -7
  265. package/node/encryption/key/index.js +0 -2
  266. package/node/files/index.d.ts +1 -1
  267. package/node/files/index.js +1 -1
  268. package/node/files/is-in-directory/index.js +0 -2
  269. package/node/files/read-write/index.js +0 -2
  270. package/node/files/subpaths/index.js +13 -5
  271. package/node/ftps/directory/copy-dir/index.js +62 -6
  272. package/node/ftps/directory/index.d.ts +1 -1
  273. package/node/ftps/directory/index.js +1 -1
  274. package/node/ftps/directory/list/index.js +27 -6
  275. package/node/ftps/directory/move-dir/index.js +38 -6
  276. package/node/ftps/directory/remove-dir/index.js +42 -6
  277. package/node/ftps/file/copy/index.js +47 -6
  278. package/node/ftps/file/download/index.js +32 -6
  279. package/node/ftps/file/exists/index.js +34 -6
  280. package/node/ftps/file/index.d.ts +1 -1
  281. package/node/ftps/file/index.js +1 -1
  282. package/node/ftps/file/move/index.js +44 -6
  283. package/node/ftps/file/remove/index.js +40 -6
  284. package/node/ftps/file/stat/index.js +36 -6
  285. package/node/ftps/file/upload/index.js +45 -6
  286. package/node/images/create/index.js +556 -12
  287. package/node/images/format/index.js +583 -19
  288. package/node/images/index.d.ts +1 -1
  289. package/node/images/index.js +1 -1
  290. package/node/images/metadata/index.js +563 -10
  291. package/node/images/transform/index.js +895 -77
  292. package/node/images/transform/operations/blur/index.js +21 -6
  293. package/node/images/transform/operations/brighten/index.js +21 -6
  294. package/node/images/transform/operations/extend/index.js +586 -13
  295. package/node/images/transform/operations/extract/index.js +26 -6
  296. package/node/images/transform/operations/flatten/index.js +581 -13
  297. package/node/images/transform/operations/flip/index.js +4 -4
  298. package/node/images/transform/operations/flop/index.js +4 -4
  299. package/node/images/transform/operations/hue/index.js +23 -6
  300. package/node/images/transform/operations/index.d.ts +3 -3
  301. package/node/images/transform/operations/index.js +3 -3
  302. package/node/images/transform/operations/level/index.js +27 -6
  303. package/node/images/transform/operations/lighten/index.js +23 -6
  304. package/node/images/transform/operations/normalize/index.js +24 -6
  305. package/node/images/transform/operations/overlay/index.js +670 -13
  306. package/node/images/transform/operations/resize/index.js +607 -13
  307. package/node/images/transform/operations/rotate/index.js +581 -13
  308. package/node/images/transform/operations/saturate/index.js +25 -6
  309. package/node/images/types.js +27 -5
  310. package/node/images/utils/index.js +563 -13
  311. package/node/index.d.ts +2 -2
  312. package/node/index.js +2 -2
  313. package/node/process/on-exit/index.js +0 -2
  314. package/node/process/prompt-continue/index.js +0 -2
  315. package/node/process/spawner/index.js +67 -13
  316. package/node/sftp/directory/copy-dir/index.js +60 -6
  317. package/node/sftp/directory/index.d.ts +1 -1
  318. package/node/sftp/directory/index.js +1 -1
  319. package/node/sftp/directory/list/index.js +27 -6
  320. package/node/sftp/directory/move-dir/index.js +35 -6
  321. package/node/sftp/directory/remove-dir/index.js +42 -6
  322. package/node/sftp/file/copy/index.js +45 -6
  323. package/node/sftp/file/download/index.js +30 -6
  324. package/node/sftp/file/exists/index.js +27 -6
  325. package/node/sftp/file/index.d.ts +2 -2
  326. package/node/sftp/file/index.js +2 -2
  327. package/node/sftp/file/move/index.js +38 -6
  328. package/node/sftp/file/remove/index.js +33 -6
  329. package/node/sftp/file/stat/index.js +36 -6
  330. package/node/sftp/file/upload/index.js +37 -6
  331. package/package.json +1 -8
  332. package/chunks/chunk-2FNCUXAX.js +0 -27
  333. package/chunks/chunk-2GJSPEO4.js +0 -31
  334. package/chunks/chunk-2IGP6V77.js +0 -22
  335. package/chunks/chunk-3QI2MSDK.js +0 -34
  336. package/chunks/chunk-3RNLPW7B.js +0 -101
  337. package/chunks/chunk-3RZMW72G.js +0 -33
  338. package/chunks/chunk-4KLCJX2T.js +0 -36
  339. package/chunks/chunk-4LTN4SCD.js +0 -55
  340. package/chunks/chunk-4Q4T7QQO.js +0 -27
  341. package/chunks/chunk-4Q5TKOIG.js +0 -53
  342. package/chunks/chunk-57YKZBJR.js +0 -29
  343. package/chunks/chunk-5H3IRSOB.js +0 -8
  344. package/chunks/chunk-5NTPCRFH.js +0 -32
  345. package/chunks/chunk-5TM235Z3.js +0 -40
  346. package/chunks/chunk-5WVGUZL5.js +0 -35
  347. package/chunks/chunk-6XL25OZX.js +0 -12
  348. package/chunks/chunk-75BICI4L.js +0 -20
  349. package/chunks/chunk-77SWZUHV.js +0 -31
  350. package/chunks/chunk-AC4UMIWM.js +0 -124
  351. package/chunks/chunk-AG4VERYN.js +0 -25
  352. package/chunks/chunk-AP3VYSVF.js +0 -36
  353. package/chunks/chunk-ASXK7XCC.js +0 -18
  354. package/chunks/chunk-AVIMGMTP.js +0 -17
  355. package/chunks/chunk-B4HGXMP3.js +0 -20
  356. package/chunks/chunk-B5V7D2ZL.js +0 -77
  357. package/chunks/chunk-B6653QJD.js +0 -37
  358. package/chunks/chunk-BCX4HPD7.js +0 -33
  359. package/chunks/chunk-CVMYA5XK.js +0 -632
  360. package/chunks/chunk-DMWGHBIL.js +0 -25
  361. package/chunks/chunk-DNIOWD7K.js +0 -8
  362. package/chunks/chunk-E2ZY3SEW.js +0 -26
  363. package/chunks/chunk-E6MSDKON.js +0 -13
  364. package/chunks/chunk-E7BBN5JC.js +0 -22
  365. package/chunks/chunk-EX2QKFY5.js +0 -41
  366. package/chunks/chunk-EYYNCLVR.js +0 -33
  367. package/chunks/chunk-F2YJXIT7.js +0 -78
  368. package/chunks/chunk-FSNNEPY5.js +0 -37
  369. package/chunks/chunk-GG4EFNMU.js +0 -89
  370. package/chunks/chunk-GQBFMP6N.js +0 -32
  371. package/chunks/chunk-H3HRQ52T.js +0 -32
  372. package/chunks/chunk-H4PP6AHP.js +0 -15
  373. package/chunks/chunk-HC6ZOHCS.js +0 -14
  374. package/chunks/chunk-HMMPT3UM.js +0 -47
  375. package/chunks/chunk-HQLRJ7XW.js +0 -12
  376. package/chunks/chunk-HYGUIF2O.js +0 -23
  377. package/chunks/chunk-HYPEWMYZ.js +0 -10
  378. package/chunks/chunk-I5MRXMHR.js +0 -32
  379. package/chunks/chunk-I6ZP5T5V.js +0 -10
  380. package/chunks/chunk-IEZ3O5OF.js +0 -40
  381. package/chunks/chunk-IPRWXI27.js +0 -31
  382. package/chunks/chunk-IRKZUMWZ.js +0 -38
  383. package/chunks/chunk-ISJONMNA.js +0 -16
  384. package/chunks/chunk-JB27MAKY.js +0 -22
  385. package/chunks/chunk-JZ6GM444.js +0 -43
  386. package/chunks/chunk-K5UF634H.js +0 -25
  387. package/chunks/chunk-LEBGVBYD.js +0 -138
  388. package/chunks/chunk-LJ5MGLLU.js +0 -56
  389. package/chunks/chunk-LUAYN7VJ.js +0 -27
  390. package/chunks/chunk-MDVGDZU6.js +0 -25
  391. package/chunks/chunk-ML22TIBW.js +0 -37
  392. package/chunks/chunk-MO4TRYNI.js +0 -29
  393. package/chunks/chunk-MSU7JU63.js +0 -49
  394. package/chunks/chunk-NIBRPZJD.js +0 -58
  395. package/chunks/chunk-O32IRXDX.js +0 -78
  396. package/chunks/chunk-OAX7GS7C.js +0 -36
  397. package/chunks/chunk-OBSTP7YR.js +0 -257
  398. package/chunks/chunk-OFCSIK6J.js +0 -13
  399. package/chunks/chunk-OFYGPRWE.js +0 -21
  400. package/chunks/chunk-OGBUSUE6.js +0 -12
  401. package/chunks/chunk-OSAXBA7G.js +0 -10
  402. package/chunks/chunk-OT7QXCH6.js +0 -23
  403. package/chunks/chunk-P4J6S2WQ.js +0 -64
  404. package/chunks/chunk-PUQUSA6S.js +0 -12
  405. package/chunks/chunk-PYJKFOMV.js +0 -193
  406. package/chunks/chunk-QHEWBOQI.js +0 -19
  407. package/chunks/chunk-QXAJXTXV.js +0 -19
  408. package/chunks/chunk-R3AWQXMY.js +0 -20
  409. package/chunks/chunk-R66GH2MQ.js +0 -38
  410. package/chunks/chunk-RART44AF.js +0 -21
  411. package/chunks/chunk-REXSJULD.js +0 -28
  412. package/chunks/chunk-RJRNYRPM.js +0 -23
  413. package/chunks/chunk-RKX6KLPQ.js +0 -47
  414. package/chunks/chunk-RW7VAKJW.js +0 -15
  415. package/chunks/chunk-RZOR7ZC3.js +0 -35
  416. package/chunks/chunk-S2UZ3HZR.js +0 -31
  417. package/chunks/chunk-SYH5LYQC.js +0 -28
  418. package/chunks/chunk-TAXFCVFE.js +0 -30
  419. package/chunks/chunk-TNZGRXKJ.js +0 -24
  420. package/chunks/chunk-TRFZSKNB.js +0 -32
  421. package/chunks/chunk-U664BT44.js +0 -45
  422. package/chunks/chunk-U6SGKHHA.js +0 -32
  423. package/chunks/chunk-UTQNGKGQ.js +0 -60
  424. package/chunks/chunk-VPBZS3S4.js +0 -27
  425. package/chunks/chunk-W5A2TON3.js +0 -10
  426. package/chunks/chunk-W7PJ5NQQ.js +0 -23
  427. package/chunks/chunk-WGRQXVBK.js +0 -207
  428. package/chunks/chunk-WIFHP4X7.js +0 -56
  429. package/chunks/chunk-WL4WNJ2Y.js +0 -39
  430. package/chunks/chunk-WNDMYNDU.js +0 -8
  431. package/chunks/chunk-WSFCRVEQ.js +0 -9
  432. package/chunks/chunk-WZS4Q3G3.js +0 -36
  433. package/chunks/chunk-X4YSGOKG.js +0 -2673
  434. package/chunks/chunk-XA4HVHJ4.js +0 -18
  435. package/chunks/chunk-XEQ2PBT2.js +0 -20
  436. package/chunks/chunk-XFB4PUXO.js +0 -78
  437. package/chunks/chunk-XIIJYVJZ.js +0 -15
  438. package/chunks/chunk-XNF5MLCQ.js +0 -14
  439. package/chunks/chunk-XQUMWHCH.js +0 -25
  440. package/chunks/chunk-YA2YCZUF.js +0 -8
  441. package/chunks/chunk-YDIBNEGA.js +0 -9
  442. package/chunks/chunk-YHMR7IBA.js +0 -24
  443. package/chunks/chunk-YWSXCFYY.js +0 -61
  444. package/chunks/chunk-YY3TSU22.js +0 -48
  445. package/chunks/chunk-ZAP3ELDE.js +0 -40
  446. package/chunks/chunk-ZJNQRKEJ.js +0 -105
  447. package/chunks/chunk-ZJR5ASR3.js +0 -26
  448. package/chunks/index.d.ts +0 -1
  449. package/chunks/index.js +0 -1
@@ -1,36 +1,390 @@
1
+ // src/components/Video/index.tsx
1
2
  import {
2
- Subtitles
3
- } from "../../chunks/chunk-PYJKFOMV.js";
4
- import "../../chunks/chunk-YWSXCFYY.js";
5
- import "../../chunks/chunk-PUQUSA6S.js";
6
- import {
7
- IntersectionObserverComponent
8
- } from "../../chunks/chunk-F2YJXIT7.js";
9
- import {
10
- Disclaimer
11
- } from "../../chunks/chunk-XFB4PUXO.js";
12
- import "../../chunks/chunk-QXAJXTXV.js";
13
- import "../../chunks/chunk-HC6ZOHCS.js";
14
- import {
15
- video
16
- } from "../../chunks/chunk-IEZ3O5OF.js";
3
+ useCallback as useCallback3,
4
+ useEffect as useEffect4,
5
+ useMemo,
6
+ useRef as useRef4,
7
+ useState as useState4
8
+ } from "react";
9
+
10
+ // src/agnostic/css/clss/index.ts
11
+ function clss(blockNames, options) {
12
+ const blockNamesArr = Array.isArray(blockNames) ? blockNames : [blockNames];
13
+ return (eltNames = null, modNames = []) => {
14
+ const eltNamesArr = Array.isArray(eltNames) ? eltNames : [eltNames];
15
+ const modNamesArr = (Array.isArray(modNames) ? modNames : [modNames]).map((modName) => {
16
+ if (typeof modName === "string") return modName;
17
+ const trueModNames = Object.entries(modName).filter((entry) => entry[1] === true).map(([key]) => key);
18
+ return trueModNames;
19
+ }).flat();
20
+ const outputClassesArr = [];
21
+ blockNamesArr.forEach((compName) => {
22
+ eltNamesArr.forEach((eltName) => {
23
+ const targetPublicClss = eltName === null ? compName : `${compName}__${eltName}`;
24
+ const targetPrivateClss = eltName === null ? options?.cssModule[options.cssModuleRoot ?? "root"] : options?.cssModule[eltName];
25
+ outputClassesArr.push(targetPublicClss);
26
+ if (targetPrivateClss !== void 0) outputClassesArr.push(targetPrivateClss);
27
+ modNamesArr.forEach((modName) => {
28
+ const targetModifiedPublicClss = `${targetPublicClss}--${modName}`;
29
+ const targetModifiedPrivateClss = eltName === null ? options?.cssModule[`${options.cssModuleRoot ?? "root"}--${modName}`] : options?.cssModule[`${eltName}--${modName}`];
30
+ outputClassesArr.push(targetModifiedPublicClss);
31
+ if (targetModifiedPrivateClss !== void 0) outputClassesArr.push(targetModifiedPrivateClss);
32
+ });
33
+ });
34
+ });
35
+ return outputClassesArr.join(" ");
36
+ };
37
+ }
38
+
39
+ // src/components/Disclaimer/index.tsx
17
40
  import {
18
- clss
19
- } from "../../chunks/chunk-TRFZSKNB.js";
41
+ useState,
42
+ useEffect,
43
+ useRef
44
+ } from "react";
45
+
46
+ // src/components/utils/index.tsx
47
+ function mergeClassNames(...names) {
48
+ return names.map((name) => {
49
+ if (typeof name !== "string" && !Array.isArray(name)) return false;
50
+ if (Array.isArray(name)) return mergeClassNames(...name);
51
+ if (name.trim() === "") return false;
52
+ return name.trim();
53
+ }).filter((name) => typeof name === "string").join(" ");
54
+ }
55
+
56
+ // src/components/public-classnames.ts
57
+ var disclaimer = "dsed-disclaimer";
58
+ var intersectionObserver = "dsed-intersection-observer";
59
+ var subtitles = "dsed-subtitles";
60
+ var video = "dsed-video";
61
+
62
+ // src/components/Disclaimer/index.tsx
63
+ import cssModule from "./styles.module.css";
64
+ import { jsx, jsxs } from "react/jsx-runtime";
65
+ var Disclaimer = ({
66
+ content,
67
+ togglerContent,
68
+ isOn: isOnProp,
69
+ defaultIsOn: defaultIsOnProp,
70
+ stateHandlers,
71
+ actionHandlers,
72
+ children,
73
+ className
74
+ }) => {
75
+ const [internalIsOn, setInternalIsOn] = useState(isOnProp ?? defaultIsOnProp ?? true);
76
+ const isOn = isOnProp ?? internalIsOn;
77
+ const pIsOn = useRef(isOn);
78
+ useEffect(() => {
79
+ if (pIsOn.current === isOn) return;
80
+ stateHandlers?.toggled?.(isOn);
81
+ pIsOn.current = isOn;
82
+ }, [isOn]);
83
+ const handleDismissClick = () => {
84
+ actionHandlers?.dismissClick?.(isOn);
85
+ if (isOnProp !== void 0) return;
86
+ setInternalIsOn(false);
87
+ };
88
+ const c = clss(disclaimer, { cssModule });
89
+ const rootClss = mergeClassNames(
90
+ c(null, {
91
+ on: isOn,
92
+ off: !isOn
93
+ }),
94
+ className
95
+ );
96
+ const panelClss = c("panel");
97
+ const contentClss = c("content");
98
+ const btnClss = c("toggler");
99
+ const sensitiveClss = c("sensitive");
100
+ return /* @__PURE__ */ jsxs("div", { className: rootClss, children: [
101
+ /* @__PURE__ */ jsxs("div", { className: panelClss, children: [
102
+ content !== void 0 && /* @__PURE__ */ jsx(
103
+ "div",
104
+ {
105
+ className: contentClss,
106
+ children: content
107
+ }
108
+ ),
109
+ togglerContent !== void 0 && /* @__PURE__ */ jsx(
110
+ "div",
111
+ {
112
+ className: btnClss,
113
+ onClick: handleDismissClick,
114
+ children: togglerContent
115
+ }
116
+ )
117
+ ] }),
118
+ /* @__PURE__ */ jsx("div", { className: sensitiveClss, children })
119
+ ] });
120
+ };
121
+
122
+ // src/components/IntersectionObserver/index.tsx
20
123
  import {
21
- mergeClassNames
22
- } from "../../chunks/chunk-OFCSIK6J.js";
23
- import "../../chunks/chunk-WSFCRVEQ.js";
124
+ useState as useState2,
125
+ useRef as useRef2,
126
+ useEffect as useEffect2,
127
+ useCallback
128
+ } from "react";
129
+ import cssModule2 from "./styles.module.css";
130
+ import { jsx as jsx2 } from "react/jsx-runtime";
131
+ var IntersectionObserverComponent = ({
132
+ onIntersected,
133
+ root,
134
+ rootMargin,
135
+ threshold,
136
+ className,
137
+ children
138
+ }) => {
139
+ const [ioEntry, setIoEntry] = useState2(null);
140
+ const rootRef = useRef2(null);
141
+ const observerRef = useRef2(null);
142
+ const observation = useCallback((entries, observer) => {
143
+ const thisEntry = entries[0];
144
+ if (thisEntry === void 0) return setIoEntry(null);
145
+ onIntersected?.({ ioEntry: thisEntry, observer });
146
+ setIoEntry(thisEntry);
147
+ }, [onIntersected]);
148
+ const forceObservation = useCallback(() => {
149
+ const rootEl = rootRef.current;
150
+ const observer = observerRef.current;
151
+ if (rootEl === null || observer === null) return;
152
+ observer.unobserve(rootEl);
153
+ observer.observe(rootEl);
154
+ }, []);
155
+ useEffect2(() => {
156
+ const rootEl = rootRef.current;
157
+ if (rootEl === null) return console.warn("rootRef.current should not be null");
158
+ const observer = new IntersectionObserver(observation, { root, rootMargin, threshold });
159
+ observerRef.current = observer;
160
+ observer.observe(rootEl);
161
+ return () => observer.disconnect();
162
+ }, [root, rootMargin, threshold, observation]);
163
+ useEffect2(() => {
164
+ const timeout1 = window.setTimeout(forceObservation, 100);
165
+ const timeout2 = window.setTimeout(forceObservation, 500);
166
+ return () => {
167
+ window.clearTimeout(timeout1);
168
+ window.clearTimeout(timeout2);
169
+ };
170
+ }, [forceObservation]);
171
+ const c = clss(intersectionObserver, { cssModule: cssModule2 });
172
+ const isIntersecting = ioEntry?.isIntersecting ?? false;
173
+ const rootClss = mergeClassNames(
174
+ c(null, { "is-intersecting": isIntersecting }),
175
+ className
176
+ );
177
+ return /* @__PURE__ */ jsx2(
178
+ "div",
179
+ {
180
+ className: rootClss,
181
+ ref: rootRef,
182
+ children
183
+ }
184
+ );
185
+ };
24
186
 
25
- // src/components/Video/index.tsx
187
+ // src/components/Subtitles/index.tsx
26
188
  import {
27
- useCallback,
28
- useEffect,
29
- useMemo,
30
- useRef,
31
- useState
189
+ useCallback as useCallback2,
190
+ useEffect as useEffect3,
191
+ useRef as useRef3,
192
+ useState as useState3
32
193
  } from "react";
33
194
 
195
+ // src/agnostic/misc/is-nullish/index.ts
196
+ var nullishValues = [null, void 0];
197
+
198
+ // src/agnostic/booleans/is-falsy/index.ts
199
+ var falsyValues = [...nullishValues, false, "", 0, -0, NaN];
200
+ if (typeof BigInt === "function") falsyValues.push(BigInt(0));
201
+
202
+ // src/agnostic/misc/cast/index.ts
203
+ function toString(value) {
204
+ if (typeof value === "string") return value;
205
+ return String(value);
206
+ }
207
+ function toError(value) {
208
+ if (value instanceof Error) return value;
209
+ if (typeof value === "string") return new Error(value);
210
+ return new Error(toString(value));
211
+ }
212
+
213
+ // src/agnostic/errors/unknown-to-string/index.ts
214
+ function unknownToString(unk, encoding) {
215
+ if (unk instanceof Error) return unk.message;
216
+ if (unk instanceof Buffer) return unk.toString(encoding ?? "utf-8");
217
+ if (typeof unk === "string") return unk;
218
+ if (typeof unk === "object" && unk !== null) return JSON.stringify(unk);
219
+ return `${unk}`;
220
+ }
221
+
222
+ // src/components/Subtitles/utils.ts
223
+ var getTimecodeToMs = (timecode) => {
224
+ const [hours = "0", minutes = "0", secondsAndMs = "0,0"] = timecode.split(":");
225
+ const [seconds = "0", milliseconds = "0"] = secondsAndMs.split(",");
226
+ let result = parseInt(hours) * 60 * 60 * 1e3;
227
+ result += parseInt(minutes) * 60 * 1e3;
228
+ result += parseInt(seconds) * 1e3;
229
+ result += parseInt(milliseconds);
230
+ return result;
231
+ };
232
+ var parseSubs = (rawSubs) => {
233
+ const numberRegex = /^\d+$/;
234
+ const timecodeRegex = /^[0-9]+:[0-9]+:[0-9]+,[0-9]+\s*-->\s*[0-9]+:[0-9]+:[0-9]+,[0-9]+$/;
235
+ const parsedSubs = [];
236
+ rawSubs.split("\n").forEach((line) => {
237
+ if (line.trim() === "") return;
238
+ const lastParsedSub = parsedSubs[parsedSubs.length - 1];
239
+ const matchId = line.match(numberRegex);
240
+ const matchTimecode = line.match(timecodeRegex);
241
+ if (matchId !== null) {
242
+ if (lastParsedSub === void 0 || lastParsedSub.content !== void 0) {
243
+ const parsedSub = { id: parseInt(line) };
244
+ parsedSubs.push(parsedSub);
245
+ return;
246
+ }
247
+ }
248
+ if (matchTimecode !== null) {
249
+ if (lastParsedSub?.id !== void 0) {
250
+ const [rawStart = "", rawEnd = ""] = line.split("-->");
251
+ const startTime = rawStart.trim();
252
+ const endTime = rawEnd.trim();
253
+ lastParsedSub.start = getTimecodeToMs(startTime);
254
+ lastParsedSub.end = getTimecodeToMs(endTime);
255
+ return;
256
+ }
257
+ }
258
+ if (lastParsedSub?.id !== void 0 && lastParsedSub?.start !== void 0 && lastParsedSub?.end !== void 0) {
259
+ if (lastParsedSub?.content !== void 0) {
260
+ lastParsedSub.content += "\n" + line;
261
+ return;
262
+ }
263
+ lastParsedSub.content = line;
264
+ }
265
+ });
266
+ return parsedSubs;
267
+ };
268
+ var computeSubGroupsWithBoundaries = (subsGroups, highestSubId) => {
269
+ const fallback = [{ startId: 1, endId: highestSubId }];
270
+ if (subsGroups === void 0 || subsGroups.length === 0) return fallback;
271
+ const emptySubGroupBoundaries = [];
272
+ return subsGroups?.reduce(
273
+ (acc, curr, currIndex) => {
274
+ const lastInAcc = acc[acc.length - 1];
275
+ const startId = lastInAcc === void 0 ? 1 : lastInAcc.endId + 1;
276
+ const endId = curr;
277
+ if (currIndex === (subsGroups?.length ?? 0) - 1 && endId !== highestSubId) {
278
+ return [
279
+ ...acc,
280
+ { startId, endId },
281
+ { startId: endId + 1, endId: highestSubId }
282
+ ];
283
+ }
284
+ return [...acc, { startId, endId }];
285
+ },
286
+ emptySubGroupBoundaries
287
+ ) ?? fallback;
288
+ };
289
+ var getCurrentGroup = (subsGroupsWithBoundaries, lastPrevSubId, isEnded) => {
290
+ const previousGroups = subsGroupsWithBoundaries.filter((group) => group.startId <= (lastPrevSubId ?? 0));
291
+ if (previousGroups.length === 0) return isEnded === true ? subsGroupsWithBoundaries[subsGroupsWithBoundaries.length - 1] : subsGroupsWithBoundaries[0];
292
+ return previousGroups[previousGroups.length - 1];
293
+ };
294
+
295
+ // src/components/Subtitles/index.tsx
296
+ import cssModule3 from "./styles.module.css";
297
+ import { jsx as jsx3 } from "react/jsx-runtime";
298
+ var Subtitles = ({
299
+ src,
300
+ srtFileContent,
301
+ subsGroups,
302
+ timecodeMs,
303
+ isEnded,
304
+ className,
305
+ onLoaded,
306
+ onParsed,
307
+ onLoadFailed
308
+ }) => {
309
+ const [isLoading, setIsLoading] = useState3(false);
310
+ const [loadError, setLoadError] = useState3(null);
311
+ const [parsedSubs, setParsedSubs] = useState3([]);
312
+ const pParsedSubs = useRef3(parsedSubs);
313
+ useEffect3(() => {
314
+ if (pParsedSubs.current === parsedSubs) return;
315
+ onParsed?.(parsedSubs);
316
+ }, [parsedSubs]);
317
+ const fetchAndParseSubs = useCallback2(async (src2, srtFileContent2) => {
318
+ if (src2 === void 0) return;
319
+ if (srtFileContent2 !== void 0) return setParsedSubs(parseSubs(srtFileContent2));
320
+ setIsLoading(true);
321
+ setLoadError(null);
322
+ try {
323
+ const response = await fetch(src2);
324
+ const srtContent = await response.text();
325
+ onLoaded?.(srtContent);
326
+ const parsedSubs2 = parseSubs(srtContent);
327
+ setParsedSubs(parsedSubs2);
328
+ } catch (error) {
329
+ setLoadError(error instanceof Error ? error : new Error(unknownToString(error)));
330
+ console.error(error);
331
+ onLoadFailed?.(toError(error));
332
+ } finally {
333
+ setIsLoading(false);
334
+ }
335
+ }, [onLoadFailed, onLoaded]);
336
+ useEffect3(() => {
337
+ fetchAndParseSubs(src, srtFileContent).catch((error) => {
338
+ console.error(error);
339
+ });
340
+ }, [fetchAndParseSubs, src, srtFileContent]);
341
+ const c = clss(subtitles, { cssModule: cssModule3 });
342
+ const rootClss = mergeClassNames(
343
+ c(null, {
344
+ loading: isLoading,
345
+ error: loadError !== null
346
+ }),
347
+ className
348
+ );
349
+ const prevSubs = parsedSubs.filter(({ start }) => start != null && start < (timecodeMs ?? 0));
350
+ const lastPrevSub = prevSubs[prevSubs.length - 1];
351
+ const highestSubId = Math.max(...parsedSubs.map((sub) => sub.id));
352
+ const subsGroupsWithBoundaries = computeSubGroupsWithBoundaries(subsGroups, highestSubId);
353
+ const currentGroup = getCurrentGroup(subsGroupsWithBoundaries, lastPrevSub?.id, isEnded);
354
+ return /* @__PURE__ */ jsx3("div", { className: rootClss, children: timecodeMs !== void 0 && parsedSubs.length > 0 && subsGroupsWithBoundaries.map((group) => {
355
+ const groupSubs = parsedSubs.filter((sub) => sub.id >= group.startId && sub.id <= group.endId);
356
+ const totalSubs = groupSubs.length;
357
+ const groupClass = c("group", { curr: currentGroup?.startId === group.startId });
358
+ const subsNodes = groupSubs.map((sub, subIndex) => {
359
+ let subText = sub.content?.trim() ?? "";
360
+ if (subIndex !== totalSubs - 1) subText += " ";
361
+ const subClass = c("sub", {
362
+ prev: sub.start !== void 0 && lastPrevSub?.start !== void 0 && sub.start <= lastPrevSub.start,
363
+ curr: sub.start !== void 0 && timecodeMs >= sub.start && sub.end !== void 0 && timecodeMs <= sub.end
364
+ });
365
+ return /* @__PURE__ */ jsx3(
366
+ "span",
367
+ {
368
+ className: subClass,
369
+ "data-sub-pos": sub.id,
370
+ children: subText
371
+ },
372
+ sub.id
373
+ );
374
+ });
375
+ return /* @__PURE__ */ jsx3(
376
+ "div",
377
+ {
378
+ className: groupClass,
379
+ "data-start-sub-pos": group.startId,
380
+ "data-end-sub-pos": group.endId,
381
+ children: subsNodes
382
+ },
383
+ group.startId
384
+ );
385
+ }) });
386
+ };
387
+
34
388
  // src/components/Video/utils.ts
35
389
  var muteAttributeWorkaround = (video2, shouldMute, setIsSoundOn) => {
36
390
  if (video2 === null) return;
@@ -154,8 +508,8 @@ var getTimelineClickProgress = (event, timeline, video2) => {
154
508
  };
155
509
 
156
510
  // src/components/Video/index.tsx
157
- import cssModule from "./styles.module.css";
158
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
511
+ import cssModule4 from "./styles.module.css";
512
+ import { Fragment, jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
159
513
  var Video = ({
160
514
  sources,
161
515
  tracks,
@@ -164,8 +518,8 @@ var Video = ({
164
518
  loudBtnContent,
165
519
  muteBtnContent,
166
520
  fullScreenBtnContent,
167
- subtitles,
168
- disclaimer,
521
+ subtitles: subtitles2,
522
+ disclaimer: disclaimer2,
169
523
  autoPlayWhenVisible,
170
524
  autoPauseWhenHidden,
171
525
  autoLoudWhenVisible,
@@ -176,30 +530,30 @@ var Video = ({
176
530
  className,
177
531
  ...intrinsicVideoAttributes
178
532
  }) => {
179
- const [isPlaying, setIsPlaying] = useState(false);
180
- const [isFullScreen, setIsFullScreen] = useState(false);
181
- const [isLoud, setIsLoud] = useState(false);
182
- const [currentTime, setCurrentTime] = useState(0);
183
- const [totalTime, setTotalTime] = useState(0);
184
- const [volume, setVolume] = useState(0);
185
- const [playbackRate, setPlaybackRate] = useState(0);
186
- const [hasBeenAutoPlayed, setHasBeenAutoPlayed] = useState(false);
187
- const [isDisclaimerOn, setIsDisclaimerOn] = useState(
188
- disclaimer?.isOn === true || disclaimer?.defaultIsOn === true || disclaimer !== void 0 && disclaimer.defaultIsOn === void 0
533
+ const [isPlaying, setIsPlaying] = useState4(false);
534
+ const [isFullScreen, setIsFullScreen] = useState4(false);
535
+ const [isLoud, setIsLoud] = useState4(false);
536
+ const [currentTime, setCurrentTime] = useState4(0);
537
+ const [totalTime, setTotalTime] = useState4(0);
538
+ const [volume, setVolume] = useState4(0);
539
+ const [playbackRate, setPlaybackRate] = useState4(0);
540
+ const [hasBeenAutoPlayed, setHasBeenAutoPlayed] = useState4(false);
541
+ const [isDisclaimerOn, setIsDisclaimerOn] = useState4(
542
+ disclaimer2?.isOn === true || disclaimer2?.defaultIsOn === true || disclaimer2 !== void 0 && disclaimer2.defaultIsOn === void 0
189
543
  );
190
544
  let shouldDisclaimerBeOn = isDisclaimerOn;
191
- if (disclaimer?.isOn === true) {
545
+ if (disclaimer2?.isOn === true) {
192
546
  shouldDisclaimerBeOn = true;
193
547
  }
194
- if (disclaimer?.isOn === false) {
548
+ if (disclaimer2?.isOn === false) {
195
549
  shouldDisclaimerBeOn = false;
196
550
  }
197
551
  const currentTimeMs = secondsToMs(currentTime);
198
552
  const totalTimeMs = useMemo(() => secondsToMs(totalTime), [totalTime]);
199
553
  const volumePercent = useMemo(() => volume * 100, [volume]);
200
- const videoRef = useRef(null);
201
- const $root = useRef(null);
202
- const handleMetadataLoadEvent = useCallback((e) => {
554
+ const videoRef = useRef4(null);
555
+ const $root = useRef4(null);
556
+ const handleMetadataLoadEvent = useCallback3((e) => {
203
557
  if (videoRef.current === null) return;
204
558
  const video2 = videoRef.current;
205
559
  muteAttributeWorkaround(
@@ -213,72 +567,72 @@ var Video = ({
213
567
  setIsLoud(!video2.muted);
214
568
  intrinsicVideoAttributes.onLoadedMetadata?.(e);
215
569
  }, [intrinsicVideoAttributes.onLoadedMetadata, intrinsicVideoAttributes.muted]);
216
- const handleVolumeChangeEvent = useCallback((e) => {
570
+ const handleVolumeChangeEvent = useCallback3((e) => {
217
571
  const volume2 = e.currentTarget.volume;
218
572
  setVolume(volume2);
219
573
  intrinsicVideoAttributes.onVolumeChange?.(e);
220
574
  }, [intrinsicVideoAttributes.onVolumeChange]);
221
- const handlePlayEvent = useCallback((e) => {
575
+ const handlePlayEvent = useCallback3((e) => {
222
576
  setIsPlaying(true);
223
577
  setHasBeenAutoPlayed(true);
224
578
  intrinsicVideoAttributes.onPlay?.(e);
225
579
  }, [intrinsicVideoAttributes.onPlay]);
226
- const handlePauseEvent = useCallback((e) => {
580
+ const handlePauseEvent = useCallback3((e) => {
227
581
  setIsPlaying(false);
228
582
  intrinsicVideoAttributes.onPause?.(e);
229
583
  }, [intrinsicVideoAttributes.onPause]);
230
- const handleRateChangeEvent = useCallback((e) => {
584
+ const handleRateChangeEvent = useCallback3((e) => {
231
585
  const currentRate = e.currentTarget.playbackRate;
232
586
  setPlaybackRate(currentRate);
233
587
  intrinsicVideoAttributes.onRateChange?.(e);
234
588
  }, [intrinsicVideoAttributes.onRateChange]);
235
- const handleTimeUpdateEvent = useCallback((e) => {
589
+ const handleTimeUpdateEvent = useCallback3((e) => {
236
590
  const currentTime2 = e.currentTarget.currentTime;
237
591
  setCurrentTime(currentTime2);
238
592
  intrinsicVideoAttributes?.onTimeUpdate?.(e);
239
593
  }, [totalTime, intrinsicVideoAttributes.onTimeUpdate]);
240
- const handleVolumeRangeChange = useCallback((e) => {
594
+ const handleVolumeRangeChange = useCallback3((e) => {
241
595
  const targetVolume = Number(e.currentTarget.value);
242
596
  actionHandlers?.volumeRangeChange?.(e, targetVolume, volume, videoRef.current);
243
597
  forceVolume(videoRef.current, targetVolume, setVolume);
244
598
  }, [actionHandlers?.volumeRangeChange, volume]);
245
- const handleLoudButtonClick = useCallback((e) => {
599
+ const handleLoudButtonClick = useCallback3((e) => {
246
600
  actionHandlers?.loudButtonClick?.(e, isLoud, videoRef.current);
247
601
  forceLoud(videoRef.current, setIsLoud);
248
602
  }, [actionHandlers?.loudButtonClick, isLoud]);
249
- const handleMuteButtonClick = useCallback((e) => {
603
+ const handleMuteButtonClick = useCallback3((e) => {
250
604
  actionHandlers?.muteButtonClick?.(e, isLoud, videoRef.current);
251
605
  forceMute(videoRef.current, setIsLoud);
252
606
  }, [actionHandlers?.muteButtonClick, isLoud]);
253
- const handlePlayButtonClick = useCallback((e) => {
607
+ const handlePlayButtonClick = useCallback3((e) => {
254
608
  actionHandlers?.playButtonClick?.(e, isPlaying, videoRef.current);
255
609
  void forcePlay(videoRef.current, shouldDisclaimerBeOn, setIsPlaying);
256
610
  }, [actionHandlers?.playButtonClick, isPlaying, shouldDisclaimerBeOn]);
257
- const handlePauseButtonClick = useCallback((e) => {
611
+ const handlePauseButtonClick = useCallback3((e) => {
258
612
  actionHandlers?.pauseButtonClick?.(e, isPlaying, videoRef.current);
259
613
  forcePause(videoRef.current, setIsPlaying);
260
614
  }, [actionHandlers?.pauseButtonClick, isPlaying]);
261
- const handleFullScreenButtonClick = useCallback((e) => {
615
+ const handleFullScreenButtonClick = useCallback3((e) => {
262
616
  actionHandlers?.fullscreenButtonClick?.(e, isFullScreen, videoRef.current);
263
617
  if (isFullScreen) void forceExitFullScreen(videoRef.current, setIsFullScreen);
264
618
  else void forceFullScreen(videoRef.current, shouldDisclaimerBeOn, setIsFullScreen);
265
619
  }, [isFullScreen, shouldDisclaimerBeOn]);
266
- const handleRateRangeChange = useCallback((e) => {
620
+ const handleRateRangeChange = useCallback3((e) => {
267
621
  const rate = Number(e.currentTarget.value);
268
622
  actionHandlers?.rateRangeChange?.(e, rate, playbackRate, videoRef.current);
269
623
  forcePlaybackRate(videoRef.current, rate, setPlaybackRate);
270
624
  }, [actionHandlers?.rateRangeChange, playbackRate]);
271
- const handleTimelineClick = useCallback((e) => {
625
+ const handleTimelineClick = useCallback3((e) => {
272
626
  const progress = getTimelineClickProgress(e, e.currentTarget, videoRef.current);
273
627
  const time = progress * totalTime;
274
628
  actionHandlers?.timelineClick?.(e, time, currentTime, videoRef.current);
275
629
  forceCurrentTime(videoRef.current, time, setCurrentTime);
276
630
  }, [actionHandlers?.timelineClick, totalTime, currentTime]);
277
- const handleDisclaimerDismiss = useCallback(() => {
631
+ const handleDisclaimerDismiss = useCallback3(() => {
278
632
  setIsDisclaimerOn(false);
279
633
  if (intrinsicVideoAttributes.autoPlay === true && !hasBeenAutoPlayed) void forcePlay(videoRef.current, shouldDisclaimerBeOn, setIsPlaying);
280
- }, [disclaimer, intrinsicVideoAttributes.autoPlay, shouldDisclaimerBeOn]);
281
- useEffect(() => {
634
+ }, [disclaimer2, intrinsicVideoAttributes.autoPlay, shouldDisclaimerBeOn]);
635
+ useEffect4(() => {
282
636
  if (isDisclaimerOn !== shouldDisclaimerBeOn) setIsDisclaimerOn(shouldDisclaimerBeOn);
283
637
  if (shouldDisclaimerBeOn) {
284
638
  forceMute(videoRef.current, setIsLoud);
@@ -294,22 +648,22 @@ var Video = ({
294
648
  intrinsicVideoAttributes,
295
649
  hasBeenAutoPlayed
296
650
  ]);
297
- useEffect(() => {
651
+ useEffect4(() => {
298
652
  stateHandlers?.isPlaying?.(isPlaying);
299
653
  }, [isPlaying, stateHandlers?.isPlaying]);
300
- useEffect(() => {
654
+ useEffect4(() => {
301
655
  stateHandlers?.isFullScreen?.(isFullScreen);
302
656
  }, [isFullScreen, stateHandlers?.isFullScreen]);
303
- useEffect(() => {
657
+ useEffect4(() => {
304
658
  stateHandlers?.isLoud?.(isLoud);
305
659
  }, [isLoud, stateHandlers?.isLoud]);
306
- useEffect(() => {
660
+ useEffect4(() => {
307
661
  stateHandlers?.volume?.(volume);
308
662
  }, [volume, stateHandlers?.volume]);
309
- useEffect(() => {
663
+ useEffect4(() => {
310
664
  stateHandlers?.playbackRate?.(playbackRate);
311
665
  }, [playbackRate, stateHandlers?.playbackRate]);
312
- useEffect(() => {
666
+ useEffect4(() => {
313
667
  stateHandlers?.currentTime?.(currentTime);
314
668
  }, [currentTime, stateHandlers?.currentTime]);
315
669
  const parsedSources = useMemo(() => {
@@ -332,7 +686,7 @@ var Video = ({
332
686
  }
333
687
  return [];
334
688
  }, [tracks]);
335
- const c = clss(video, { cssModule });
689
+ const c = clss(video, { cssModule: cssModule4 });
336
690
  const rootClss = mergeClassNames(c(null, {
337
691
  "play-on": isPlaying,
338
692
  "play-off": !isPlaying,
@@ -373,8 +727,8 @@ var Video = ({
373
727
  const currentTimeClss = c("current-time");
374
728
  const totalTimeClss = c("total-time");
375
729
  const timelineClss = c("timeline");
376
- const sensitiveContent = /* @__PURE__ */ jsxs(Fragment, { children: [
377
- /* @__PURE__ */ jsxs(
730
+ const sensitiveContent = /* @__PURE__ */ jsxs2(Fragment, { children: [
731
+ /* @__PURE__ */ jsxs2(
378
732
  "video",
379
733
  {
380
734
  ref: videoRef,
@@ -390,13 +744,13 @@ var Video = ({
390
744
  muted: shouldDisclaimerBeOn ? true : intrinsicVideoAttributes.muted,
391
745
  children: [
392
746
  parsedSources.map(
393
- (source, index) => typeof source === "string" ? /* @__PURE__ */ jsx(
747
+ (source, index) => typeof source === "string" ? /* @__PURE__ */ jsx4(
394
748
  "source",
395
749
  {
396
750
  src: source
397
751
  },
398
752
  index
399
- ) : /* @__PURE__ */ jsx(
753
+ ) : /* @__PURE__ */ jsx4(
400
754
  "source",
401
755
  {
402
756
  src: source.src,
@@ -406,13 +760,13 @@ var Video = ({
406
760
  )
407
761
  ),
408
762
  parsedTracks.map(
409
- (track, index) => typeof track === "string" ? /* @__PURE__ */ jsx(
763
+ (track, index) => typeof track === "string" ? /* @__PURE__ */ jsx4(
410
764
  "track",
411
765
  {
412
766
  src: track
413
767
  },
414
768
  index
415
- ) : /* @__PURE__ */ jsx(
769
+ ) : /* @__PURE__ */ jsx4(
416
770
  "track",
417
771
  {
418
772
  src: track.src,
@@ -428,12 +782,12 @@ var Video = ({
428
782
  ]
429
783
  }
430
784
  ),
431
- /* @__PURE__ */ jsxs("div", { className: videoControlsClss, children: [
432
- /* @__PURE__ */ jsx("button", { className: playBtnClss, onClick: handlePlayButtonClick, children: playBtnContent }),
433
- /* @__PURE__ */ jsx("button", { className: pauseBtnClss, onClick: handlePauseButtonClick, children: pauseBtnContent }),
434
- /* @__PURE__ */ jsx("button", { className: loudBtnClss, onClick: handleLoudButtonClick, children: loudBtnContent }),
435
- /* @__PURE__ */ jsx("button", { className: muteBtnClss, onClick: handleMuteButtonClick, children: muteBtnContent }),
436
- /* @__PURE__ */ jsx(
785
+ /* @__PURE__ */ jsxs2("div", { className: videoControlsClss, children: [
786
+ /* @__PURE__ */ jsx4("button", { className: playBtnClss, onClick: handlePlayButtonClick, children: playBtnContent }),
787
+ /* @__PURE__ */ jsx4("button", { className: pauseBtnClss, onClick: handlePauseButtonClick, children: pauseBtnContent }),
788
+ /* @__PURE__ */ jsx4("button", { className: loudBtnClss, onClick: handleLoudButtonClick, children: loudBtnContent }),
789
+ /* @__PURE__ */ jsx4("button", { className: muteBtnClss, onClick: handleMuteButtonClick, children: muteBtnContent }),
790
+ /* @__PURE__ */ jsx4(
437
791
  "input",
438
792
  {
439
793
  type: "range",
@@ -445,9 +799,9 @@ var Video = ({
445
799
  step: 1
446
800
  }
447
801
  ),
448
- /* @__PURE__ */ jsx("span", { className: volumePcntClss, children: volumePercent }),
449
- /* @__PURE__ */ jsx("button", { className: fullScreenBtnClss, onClick: handleFullScreenButtonClick, children: fullScreenBtnContent }),
450
- /* @__PURE__ */ jsx(
802
+ /* @__PURE__ */ jsx4("span", { className: volumePcntClss, children: volumePercent }),
803
+ /* @__PURE__ */ jsx4("button", { className: fullScreenBtnClss, onClick: handleFullScreenButtonClick, children: fullScreenBtnContent }),
804
+ /* @__PURE__ */ jsx4(
451
805
  "input",
452
806
  {
453
807
  type: "range",
@@ -459,25 +813,25 @@ var Video = ({
459
813
  step: 0.25
460
814
  }
461
815
  ),
462
- /* @__PURE__ */ jsx("span", { className: playbackRateClss, children: playbackRate })
816
+ /* @__PURE__ */ jsx4("span", { className: playbackRateClss, children: playbackRate })
463
817
  ] }),
464
- /* @__PURE__ */ jsxs("div", { className: timeControlsClss, children: [
465
- /* @__PURE__ */ jsx("span", { className: currentTimeClss, children: formatTime(currentTimeMs, "mm:ss:ms") }),
466
- /* @__PURE__ */ jsx("span", { className: totalTimeClss, children: formatTime(totalTimeMs, "mm:ss:ms") }),
467
- /* @__PURE__ */ jsx("div", { className: timelineClss, onClick: handleTimelineClick })
818
+ /* @__PURE__ */ jsxs2("div", { className: timeControlsClss, children: [
819
+ /* @__PURE__ */ jsx4("span", { className: currentTimeClss, children: formatTime(currentTimeMs, "mm:ss:ms") }),
820
+ /* @__PURE__ */ jsx4("span", { className: totalTimeClss, children: formatTime(totalTimeMs, "mm:ss:ms") }),
821
+ /* @__PURE__ */ jsx4("div", { className: timelineClss, onClick: handleTimelineClick })
468
822
  ] }),
469
- subtitles !== void 0 && /* @__PURE__ */ jsx(
823
+ subtitles2 !== void 0 && /* @__PURE__ */ jsx4(
470
824
  Subtitles,
471
825
  {
472
- ...subtitles,
826
+ ...subtitles2,
473
827
  timecodeMs: currentTimeMs
474
828
  }
475
829
  )
476
830
  ] });
477
- const disclaimedContent = disclaimer !== void 0 ? /* @__PURE__ */ jsx(
831
+ const disclaimedContent = disclaimer2 !== void 0 ? /* @__PURE__ */ jsx4(
478
832
  Disclaimer,
479
833
  {
480
- ...disclaimer,
834
+ ...disclaimer2,
481
835
  isOn: shouldDisclaimerBeOn,
482
836
  actionHandlers: {
483
837
  dismissClick: handleDisclaimerDismiss
@@ -485,14 +839,14 @@ var Video = ({
485
839
  children: sensitiveContent
486
840
  }
487
841
  ) : sensitiveContent;
488
- const observedContent = autoLoudWhenVisible === true || autoMuteWhenHidden === true || autoPlayWhenVisible === true || autoPauseWhenHidden === true ? /* @__PURE__ */ jsx(IntersectionObserverComponent, { onIntersected: ({ ioEntry }) => {
842
+ const observedContent = autoLoudWhenVisible === true || autoMuteWhenHidden === true || autoPlayWhenVisible === true || autoPauseWhenHidden === true ? /* @__PURE__ */ jsx4(IntersectionObserverComponent, { onIntersected: ({ ioEntry }) => {
489
843
  const { isIntersecting = false } = ioEntry ?? {};
490
844
  if (autoMuteWhenHidden === true && !isIntersecting) forceMute(videoRef.current, setIsLoud);
491
845
  if (autoPauseWhenHidden === true && !isIntersecting) forcePause(videoRef.current, setIsPlaying);
492
846
  if (autoPlayWhenVisible === true && !hasBeenAutoPlayed && !shouldDisclaimerBeOn && isIntersecting) void forcePlay(videoRef.current, shouldDisclaimerBeOn, setIsPlaying);
493
847
  if (autoLoudWhenVisible === true && !hasBeenAutoPlayed && !shouldDisclaimerBeOn && isIntersecting) forceLoud(videoRef.current, setIsLoud);
494
848
  }, children: disclaimedContent }) : disclaimedContent;
495
- return /* @__PURE__ */ jsx(
849
+ return /* @__PURE__ */ jsx4(
496
850
  "figure",
497
851
  {
498
852
  className: rootClss,