markdown-flow-ui 0.2.13 → 0.2.15

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 (475) hide show
  1. package/README.md +7 -0
  2. package/dist/_virtual/index.es3.js +5 -4
  3. package/dist/_virtual/index.es3.js.map +1 -1
  4. package/dist/_virtual/index.es4.js +4 -5
  5. package/dist/_virtual/index.es4.js.map +1 -1
  6. package/dist/_virtual/index3.cjs +1 -1
  7. package/dist/_virtual/index4.cjs +1 -1
  8. package/dist/assets/markdown-flow-ui.css +10 -1
  9. package/dist/components/ContentRender/CodeBlock.cjs +1 -1
  10. package/dist/components/ContentRender/CodeBlock.cjs.map +1 -1
  11. package/dist/components/ContentRender/CodeBlock.d.ts +5 -0
  12. package/dist/components/ContentRender/CodeBlock.es.js +41 -38
  13. package/dist/components/ContentRender/CodeBlock.es.js.map +1 -1
  14. package/dist/components/ContentRender/ContentRender.cjs +2 -2
  15. package/dist/components/ContentRender/ContentRender.cjs.map +1 -1
  16. package/dist/components/ContentRender/ContentRender.d.ts +9 -4
  17. package/dist/components/ContentRender/ContentRender.es.js +389 -298
  18. package/dist/components/ContentRender/ContentRender.es.js.map +1 -1
  19. package/dist/components/ContentRender/IframeSandbox.cjs +7 -7
  20. package/dist/components/ContentRender/IframeSandbox.cjs.map +1 -1
  21. package/dist/components/ContentRender/IframeSandbox.d.ts +5 -1
  22. package/dist/components/ContentRender/IframeSandbox.es.js +311 -266
  23. package/dist/components/ContentRender/IframeSandbox.es.js.map +1 -1
  24. package/dist/components/ContentRender/MarkdownFlowInput.cjs +1 -1
  25. package/dist/components/ContentRender/MarkdownFlowInput.cjs.map +1 -1
  26. package/dist/components/ContentRender/MarkdownFlowInput.d.ts +5 -1
  27. package/dist/components/ContentRender/MarkdownFlowInput.es.js +37 -32
  28. package/dist/components/ContentRender/MarkdownFlowInput.es.js.map +1 -1
  29. package/dist/components/ContentRender/SandboxApp.cjs +2 -2
  30. package/dist/components/ContentRender/SandboxApp.cjs.map +1 -1
  31. package/dist/components/ContentRender/SandboxApp.d.ts +5 -1
  32. package/dist/components/ContentRender/SandboxApp.es.js +108 -103
  33. package/dist/components/ContentRender/SandboxApp.es.js.map +1 -1
  34. package/dist/components/ContentRender/blackboard-vendor.d.ts +1 -1
  35. package/dist/components/ContentRender/contentRenderI18n.cjs +1 -1
  36. package/dist/components/ContentRender/contentRenderI18n.cjs.map +1 -1
  37. package/dist/components/ContentRender/contentRenderI18n.d.ts +6 -1
  38. package/dist/components/ContentRender/contentRenderI18n.es.js +5 -56
  39. package/dist/components/ContentRender/contentRenderI18n.es.js.map +1 -1
  40. package/dist/components/ContentRender/contentRenderI18n.test.d.ts +1 -0
  41. package/dist/components/ContentRender/index.cjs +1 -1
  42. package/dist/components/ContentRender/index.d.ts +11 -11
  43. package/dist/components/ContentRender/index.es.js +1 -2
  44. package/dist/components/ContentRender/index.es.js.map +1 -1
  45. package/dist/components/ContentRender/locales/contentRender.json.cjs +2 -0
  46. package/dist/components/ContentRender/locales/contentRender.json.cjs.map +1 -0
  47. package/dist/components/ContentRender/locales/contentRender.json.d.ts +90 -0
  48. package/dist/components/ContentRender/locales/contentRender.json.es.js +11 -0
  49. package/dist/components/ContentRender/locales/contentRender.json.es.js.map +1 -0
  50. package/dist/components/ContentRender/plugins/CustomVariable.cjs +1 -1
  51. package/dist/components/ContentRender/plugins/CustomVariable.cjs.map +1 -1
  52. package/dist/components/ContentRender/plugins/CustomVariable.d.ts +7 -3
  53. package/dist/components/ContentRender/plugins/CustomVariable.es.js +165 -151
  54. package/dist/components/ContentRender/plugins/CustomVariable.es.js.map +1 -1
  55. package/dist/components/ContentRender/plugins/MermaidChart.cjs +1 -1
  56. package/dist/components/ContentRender/plugins/MermaidChart.cjs.map +1 -1
  57. package/dist/components/ContentRender/plugins/MermaidChart.d.ts +1 -0
  58. package/dist/components/ContentRender/plugins/MermaidChart.es.js +68 -44
  59. package/dist/components/ContentRender/plugins/MermaidChart.es.js.map +1 -1
  60. package/dist/components/MarkdownFlow/MarkdownFlow.cjs +1 -1
  61. package/dist/components/MarkdownFlow/MarkdownFlow.cjs.map +1 -1
  62. package/dist/components/MarkdownFlow/MarkdownFlow.d.ts +12 -4
  63. package/dist/components/MarkdownFlow/MarkdownFlow.es.js +51 -39
  64. package/dist/components/MarkdownFlow/MarkdownFlow.es.js.map +1 -1
  65. package/dist/components/MarkdownFlow/ScrollToBottomButton.cjs +1 -1
  66. package/dist/components/MarkdownFlow/ScrollToBottomButton.cjs.map +1 -1
  67. package/dist/components/MarkdownFlow/ScrollToBottomButton.d.ts +31 -1
  68. package/dist/components/MarkdownFlow/ScrollToBottomButton.es.js +46 -17
  69. package/dist/components/MarkdownFlow/ScrollToBottomButton.es.js.map +1 -1
  70. package/dist/components/MarkdownFlow/ScrollToBottomControl.cjs +2 -0
  71. package/dist/components/MarkdownFlow/ScrollToBottomControl.cjs.map +1 -0
  72. package/dist/components/MarkdownFlow/ScrollToBottomControl.d.ts +18 -0
  73. package/dist/components/MarkdownFlow/ScrollToBottomControl.es.js +47 -0
  74. package/dist/components/MarkdownFlow/ScrollToBottomControl.es.js.map +1 -0
  75. package/dist/components/MarkdownFlow/ScrollableMarkdownFlow.cjs +1 -1
  76. package/dist/components/MarkdownFlow/ScrollableMarkdownFlow.cjs.map +1 -1
  77. package/dist/components/MarkdownFlow/ScrollableMarkdownFlow.d.ts +1 -1
  78. package/dist/components/MarkdownFlow/ScrollableMarkdownFlow.es.js +33 -52
  79. package/dist/components/MarkdownFlow/ScrollableMarkdownFlow.es.js.map +1 -1
  80. package/dist/components/MarkdownFlow/index.cjs +1 -1
  81. package/dist/components/MarkdownFlow/index.d.ts +9 -6
  82. package/dist/components/MarkdownFlow/index.es.js +6 -6
  83. package/dist/components/MarkdownFlow/index.es.js.map +1 -1
  84. package/dist/components/MarkdownFlow/useScrollToBottom.cjs +1 -1
  85. package/dist/components/MarkdownFlow/useScrollToBottom.cjs.map +1 -1
  86. package/dist/components/MarkdownFlow/useScrollToBottom.d.ts +40 -8
  87. package/dist/components/MarkdownFlow/useScrollToBottom.es.js +352 -83
  88. package/dist/components/MarkdownFlow/useScrollToBottom.es.js.map +1 -1
  89. package/dist/components/MarkdownFlowEditor/MarkdownFlowEditor.cjs +1 -1
  90. package/dist/components/MarkdownFlowEditor/MarkdownFlowEditor.cjs.map +1 -1
  91. package/dist/components/MarkdownFlowEditor/MarkdownFlowEditor.d.ts +5 -3
  92. package/dist/components/MarkdownFlowEditor/MarkdownFlowEditor.es.js +371 -324
  93. package/dist/components/MarkdownFlowEditor/MarkdownFlowEditor.es.js.map +1 -1
  94. package/dist/components/MarkdownFlowEditor/components/CustomDialog.cjs +1 -1
  95. package/dist/components/MarkdownFlowEditor/components/CustomDialog.cjs.map +1 -1
  96. package/dist/components/MarkdownFlowEditor/components/CustomDialog.d.ts +10 -0
  97. package/dist/components/MarkdownFlowEditor/components/CustomDialog.es.js +22 -19
  98. package/dist/components/MarkdownFlowEditor/components/CustomDialog.es.js.map +1 -1
  99. package/dist/components/MarkdownFlowEditor/components/CustomPopover.cjs +1 -1
  100. package/dist/components/MarkdownFlowEditor/components/CustomPopover.cjs.map +1 -1
  101. package/dist/components/MarkdownFlowEditor/components/CustomPopover.d.ts +8 -0
  102. package/dist/components/MarkdownFlowEditor/components/CustomPopover.es.js +19 -15
  103. package/dist/components/MarkdownFlowEditor/components/CustomPopover.es.js.map +1 -1
  104. package/dist/components/MarkdownFlowEditor/components/EditorToolbar.cjs +1 -1
  105. package/dist/components/MarkdownFlowEditor/components/EditorToolbar.cjs.map +1 -1
  106. package/dist/components/MarkdownFlowEditor/components/EditorToolbar.d.ts +4 -1
  107. package/dist/components/MarkdownFlowEditor/components/EditorToolbar.es.js +99 -93
  108. package/dist/components/MarkdownFlowEditor/components/EditorToolbar.es.js.map +1 -1
  109. package/dist/components/MarkdownFlowEditor/components/ImageInject.cjs +1 -1
  110. package/dist/components/MarkdownFlowEditor/components/ImageInject.cjs.map +1 -1
  111. package/dist/components/MarkdownFlowEditor/components/ImageInject.d.ts +1 -1
  112. package/dist/components/MarkdownFlowEditor/components/ImageInject.es.js +183 -182
  113. package/dist/components/MarkdownFlowEditor/components/ImageInject.es.js.map +1 -1
  114. package/dist/components/MarkdownFlowEditor/components/VariableSearchDropdown.cjs +1 -1
  115. package/dist/components/MarkdownFlowEditor/components/VariableSearchDropdown.cjs.map +1 -1
  116. package/dist/components/MarkdownFlowEditor/components/VariableSearchDropdown.d.ts +1 -1
  117. package/dist/components/MarkdownFlowEditor/components/VariableSearchDropdown.es.js +107 -103
  118. package/dist/components/MarkdownFlowEditor/components/VariableSearchDropdown.es.js.map +1 -1
  119. package/dist/components/MarkdownFlowEditor/components/VariableSelect.cjs +1 -1
  120. package/dist/components/MarkdownFlowEditor/components/VariableSelect.cjs.map +1 -1
  121. package/dist/components/MarkdownFlowEditor/components/VariableSelect.d.ts +1 -1
  122. package/dist/components/MarkdownFlowEditor/components/VariableSelect.es.js +106 -106
  123. package/dist/components/MarkdownFlowEditor/components/VariableSelect.es.js.map +1 -1
  124. package/dist/components/MarkdownFlowEditor/components/VideoInject.cjs +1 -1
  125. package/dist/components/MarkdownFlowEditor/components/VideoInject.cjs.map +1 -1
  126. package/dist/components/MarkdownFlowEditor/components/VideoInject.es.js +64 -63
  127. package/dist/components/MarkdownFlowEditor/components/VideoInject.es.js.map +1 -1
  128. package/dist/components/MarkdownFlowEditor/components/icons/ButtonIcon.cjs +1 -1
  129. package/dist/components/MarkdownFlowEditor/components/icons/ButtonIcon.cjs.map +1 -1
  130. package/dist/components/MarkdownFlowEditor/components/icons/ButtonIcon.es.js +13 -13
  131. package/dist/components/MarkdownFlowEditor/components/icons/ButtonIcon.es.js.map +1 -1
  132. package/dist/components/MarkdownFlowEditor/components/icons/SearchBracesIcon.cjs +1 -1
  133. package/dist/components/MarkdownFlowEditor/components/icons/SearchBracesIcon.cjs.map +1 -1
  134. package/dist/components/MarkdownFlowEditor/components/icons/SearchBracesIcon.es.js +12 -12
  135. package/dist/components/MarkdownFlowEditor/components/icons/SearchBracesIcon.es.js.map +1 -1
  136. package/dist/components/MarkdownFlowEditor/editor-context.d.ts +1 -1
  137. package/dist/components/MarkdownFlowEditor/editorI18n.cjs +1 -1
  138. package/dist/components/MarkdownFlowEditor/editorI18n.cjs.map +1 -1
  139. package/dist/components/MarkdownFlowEditor/editorI18n.d.ts +290 -0
  140. package/dist/components/MarkdownFlowEditor/editorI18n.es.js +12 -8
  141. package/dist/components/MarkdownFlowEditor/editorI18n.es.js.map +1 -1
  142. package/dist/components/MarkdownFlowEditor/editorI18n.test.d.ts +1 -0
  143. package/dist/components/MarkdownFlowEditor/index.d.ts +6 -6
  144. package/dist/components/MarkdownFlowEditor/locales/ar-SA.json.cjs +2 -0
  145. package/dist/components/MarkdownFlowEditor/locales/ar-SA.json.cjs.map +1 -0
  146. package/dist/components/MarkdownFlowEditor/locales/ar-SA.json.d.ts +72 -0
  147. package/dist/components/MarkdownFlowEditor/locales/ar-SA.json.es.js +140 -0
  148. package/dist/components/MarkdownFlowEditor/locales/ar-SA.json.es.js.map +1 -0
  149. package/dist/components/MarkdownFlowEditor/locales/en-US.json.cjs +1 -1
  150. package/dist/components/MarkdownFlowEditor/locales/en-US.json.d.ts +2 -0
  151. package/dist/components/MarkdownFlowEditor/locales/en-US.json.es.js +118 -114
  152. package/dist/components/MarkdownFlowEditor/locales/en-US.json.es.js.map +1 -1
  153. package/dist/components/MarkdownFlowEditor/locales/fr-FR.json.cjs +1 -1
  154. package/dist/components/MarkdownFlowEditor/locales/fr-FR.json.d.ts +2 -0
  155. package/dist/components/MarkdownFlowEditor/locales/fr-FR.json.es.js +118 -114
  156. package/dist/components/MarkdownFlowEditor/locales/fr-FR.json.es.js.map +1 -1
  157. package/dist/components/MarkdownFlowEditor/locales/th-TH.json.cjs +2 -0
  158. package/dist/components/MarkdownFlowEditor/locales/th-TH.json.cjs.map +1 -0
  159. package/dist/components/MarkdownFlowEditor/locales/th-TH.json.d.ts +72 -0
  160. package/dist/components/MarkdownFlowEditor/locales/th-TH.json.es.js +140 -0
  161. package/dist/components/MarkdownFlowEditor/locales/th-TH.json.es.js.map +1 -0
  162. package/dist/components/MarkdownFlowEditor/locales/zh-CN.json.cjs +1 -1
  163. package/dist/components/MarkdownFlowEditor/locales/zh-CN.json.d.ts +2 -0
  164. package/dist/components/MarkdownFlowEditor/locales/zh-CN.json.es.js +70 -66
  165. package/dist/components/MarkdownFlowEditor/locales/zh-CN.json.es.js.map +1 -1
  166. package/dist/components/MarkdownFlowEditor/plugins/ImgPlaceholder.cjs +1 -1
  167. package/dist/components/MarkdownFlowEditor/plugins/ImgPlaceholder.cjs.map +1 -1
  168. package/dist/components/MarkdownFlowEditor/plugins/ImgPlaceholder.es.js +40 -35
  169. package/dist/components/MarkdownFlowEditor/plugins/ImgPlaceholder.es.js.map +1 -1
  170. package/dist/components/MarkdownFlowEditor/plugins/PlaceholderWidget.d.ts +1 -1
  171. package/dist/components/MarkdownFlowEditor/plugins/VideoPlaceholder.cjs +1 -1
  172. package/dist/components/MarkdownFlowEditor/plugins/VideoPlaceholder.cjs.map +1 -1
  173. package/dist/components/MarkdownFlowEditor/plugins/VideoPlaceholder.es.js +27 -23
  174. package/dist/components/MarkdownFlowEditor/plugins/VideoPlaceholder.es.js.map +1 -1
  175. package/dist/components/MarkdownFlowEditor/plugins/mediaPlaceholderLabels.cjs +2 -0
  176. package/dist/components/MarkdownFlowEditor/plugins/mediaPlaceholderLabels.cjs.map +1 -0
  177. package/dist/components/MarkdownFlowEditor/plugins/mediaPlaceholderLabels.d.ts +7 -0
  178. package/dist/components/MarkdownFlowEditor/plugins/mediaPlaceholderLabels.es.js +12 -0
  179. package/dist/components/MarkdownFlowEditor/plugins/mediaPlaceholderLabels.es.js.map +1 -0
  180. package/dist/components/MarkdownFlowEditor/utils.d.ts +1 -1
  181. package/dist/components/Slide/MarkdownSlideScaling.cjs +1 -1
  182. package/dist/components/Slide/MarkdownSlideScaling.cjs.map +1 -1
  183. package/dist/components/Slide/MarkdownSlideScaling.d.ts +1 -1
  184. package/dist/components/Slide/MarkdownSlideScaling.es.js +20 -20
  185. package/dist/components/Slide/MarkdownSlideScaling.es.js.map +1 -1
  186. package/dist/components/Slide/MobilePlayerSettingsSheet.cjs +1 -1
  187. package/dist/components/Slide/MobilePlayerSettingsSheet.cjs.map +1 -1
  188. package/dist/components/Slide/MobilePlayerSettingsSheet.d.ts +7 -2
  189. package/dist/components/Slide/MobilePlayerSettingsSheet.es.js +61 -57
  190. package/dist/components/Slide/MobilePlayerSettingsSheet.es.js.map +1 -1
  191. package/dist/components/Slide/Player.cjs +1 -1
  192. package/dist/components/Slide/Player.cjs.map +1 -1
  193. package/dist/components/Slide/Player.d.ts +6 -6
  194. package/dist/components/Slide/Player.es.js +547 -541
  195. package/dist/components/Slide/Player.es.js.map +1 -1
  196. package/dist/components/Slide/Slide.cjs +1 -1
  197. package/dist/components/Slide/Slide.cjs.map +1 -1
  198. package/dist/components/Slide/Slide.d.ts +14 -12
  199. package/dist/components/Slide/Slide.es.js +745 -726
  200. package/dist/components/Slide/Slide.es.js.map +1 -1
  201. package/dist/components/Slide/SubtitleOverlay.cjs +1 -1
  202. package/dist/components/Slide/SubtitleOverlay.cjs.map +1 -1
  203. package/dist/components/Slide/SubtitleOverlay.d.ts +2 -2
  204. package/dist/components/Slide/SubtitleOverlay.es.js +17 -17
  205. package/dist/components/Slide/SubtitleOverlay.es.js.map +1 -1
  206. package/dist/components/Slide/diff-utils.d.ts +1 -1
  207. package/dist/components/Slide/index.d.ts +12 -12
  208. package/dist/components/Slide/locales/slide.json.cjs +2 -0
  209. package/dist/components/Slide/locales/slide.json.cjs.map +1 -0
  210. package/dist/components/Slide/locales/slide.json.d.ts +205 -0
  211. package/dist/components/Slide/locales/slide.json.es.js +11 -0
  212. package/dist/components/Slide/locales/slide.json.es.js.map +1 -0
  213. package/dist/components/Slide/slideI18n.cjs +1 -1
  214. package/dist/components/Slide/slideI18n.cjs.map +1 -1
  215. package/dist/components/Slide/slideI18n.d.ts +6 -3
  216. package/dist/components/Slide/slideI18n.es.js +10 -155
  217. package/dist/components/Slide/slideI18n.es.js.map +1 -1
  218. package/dist/components/Slide/useSlide.d.ts +1 -1
  219. package/dist/components/Slide/utils/appendedMarkerAdvance.d.ts +1 -1
  220. package/dist/components/Slide/utils/audioSegments.d.ts +1 -1
  221. package/dist/components/Slide/utils/interactionResolution.d.ts +2 -2
  222. package/dist/components/Slide/utils/listenModeElementList.d.ts +2 -2
  223. package/dist/components/Slide/utils/markdownScaling.d.ts +1 -1
  224. package/dist/components/Slide/utils/playerCustomActions.d.ts +2 -2
  225. package/dist/components/Slide/utils/playerKeyboardShortcuts.cjs +1 -1
  226. package/dist/components/Slide/utils/playerKeyboardShortcuts.cjs.map +1 -1
  227. package/dist/components/Slide/utils/playerKeyboardShortcuts.d.ts +1 -1
  228. package/dist/components/Slide/utils/playerKeyboardShortcuts.es.js +20 -20
  229. package/dist/components/Slide/utils/playerKeyboardShortcuts.es.js.map +1 -1
  230. package/dist/components/Slide/utils/runStreamFixture.d.ts +1 -1
  231. package/dist/components/Slide/utils/segmentSeek.d.ts +1 -1
  232. package/dist/components/Slide/utils/silentStepAutoAdvance.d.ts +1 -1
  233. package/dist/components/Slide/utils/streamingNavigation.d.ts +1 -1
  234. package/dist/components/Slide/utils/subtitleCue.d.ts +1 -1
  235. package/dist/components/Slide/utils/subtitleJumpNavigation.d.ts +1 -1
  236. package/dist/components/index.d.ts +22 -18
  237. package/dist/components/ui/button.cjs +1 -1
  238. package/dist/components/ui/button.cjs.map +1 -1
  239. package/dist/components/ui/button.es.js +12 -13
  240. package/dist/components/ui/button.es.js.map +1 -1
  241. package/dist/components/ui/checkbox.cjs +1 -1
  242. package/dist/components/ui/checkbox.cjs.map +1 -1
  243. package/dist/components/ui/checkbox.es.js +35 -35
  244. package/dist/components/ui/checkbox.es.js.map +1 -1
  245. package/dist/components/ui/dialog.cjs +1 -1
  246. package/dist/components/ui/dialog.cjs.map +1 -1
  247. package/dist/components/ui/dialog.d.ts +5 -1
  248. package/dist/components/ui/dialog.es.js +37 -37
  249. package/dist/components/ui/dialog.es.js.map +1 -1
  250. package/dist/components/ui/input.cjs +1 -1
  251. package/dist/components/ui/input.cjs.map +1 -1
  252. package/dist/components/ui/input.es.js +4 -4
  253. package/dist/components/ui/input.es.js.map +1 -1
  254. package/dist/components/ui/inputGroup/button.cjs +1 -1
  255. package/dist/components/ui/inputGroup/button.cjs.map +1 -1
  256. package/dist/components/ui/inputGroup/button.es.js +9 -10
  257. package/dist/components/ui/inputGroup/button.es.js.map +1 -1
  258. package/dist/components/ui/inputGroup/input-group.cjs +1 -1
  259. package/dist/components/ui/inputGroup/input-group.cjs.map +1 -1
  260. package/dist/components/ui/inputGroup/input-group.d.ts +1 -1
  261. package/dist/components/ui/inputGroup/input-group.es.js +10 -10
  262. package/dist/components/ui/inputGroup/input-group.es.js.map +1 -1
  263. package/dist/components/ui/inputGroup/textarea.cjs +1 -1
  264. package/dist/components/ui/inputGroup/textarea.cjs.map +1 -1
  265. package/dist/components/ui/inputGroup/textarea.es.js +3 -3
  266. package/dist/components/ui/inputGroup/textarea.es.js.map +1 -1
  267. package/dist/components/ui/loading-overlay-card.cjs +2 -2
  268. package/dist/components/ui/loading-overlay-card.cjs.map +1 -1
  269. package/dist/components/ui/loading-overlay-card.es.js +11 -11
  270. package/dist/components/ui/loading-overlay-card.es.js.map +1 -1
  271. package/dist/components/ui/popover.cjs +1 -1
  272. package/dist/components/ui/popover.cjs.map +1 -1
  273. package/dist/components/ui/popover.es.js +6 -6
  274. package/dist/components/ui/popover.es.js.map +1 -1
  275. package/dist/components/ui/tooltip.cjs +1 -1
  276. package/dist/components/ui/tooltip.cjs.map +1 -1
  277. package/dist/components/ui/tooltip.es.js +16 -16
  278. package/dist/components/ui/tooltip.es.js.map +1 -1
  279. package/dist/editor.d.ts +2 -2
  280. package/dist/fonts/KaTeX_AMS-Regular.ttf +0 -0
  281. package/dist/fonts/KaTeX_AMS-Regular.woff +0 -0
  282. package/dist/fonts/KaTeX_AMS-Regular.woff2 +0 -0
  283. package/dist/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
  284. package/dist/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
  285. package/dist/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
  286. package/dist/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
  287. package/dist/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
  288. package/dist/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
  289. package/dist/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
  290. package/dist/fonts/KaTeX_Fraktur-Bold.woff +0 -0
  291. package/dist/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
  292. package/dist/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
  293. package/dist/fonts/KaTeX_Fraktur-Regular.woff +0 -0
  294. package/dist/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
  295. package/dist/fonts/KaTeX_Main-Bold.ttf +0 -0
  296. package/dist/fonts/KaTeX_Main-Bold.woff +0 -0
  297. package/dist/fonts/KaTeX_Main-Bold.woff2 +0 -0
  298. package/dist/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
  299. package/dist/fonts/KaTeX_Main-BoldItalic.woff +0 -0
  300. package/dist/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
  301. package/dist/fonts/KaTeX_Main-Italic.ttf +0 -0
  302. package/dist/fonts/KaTeX_Main-Italic.woff +0 -0
  303. package/dist/fonts/KaTeX_Main-Italic.woff2 +0 -0
  304. package/dist/fonts/KaTeX_Main-Regular.ttf +0 -0
  305. package/dist/fonts/KaTeX_Main-Regular.woff +0 -0
  306. package/dist/fonts/KaTeX_Main-Regular.woff2 +0 -0
  307. package/dist/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
  308. package/dist/fonts/KaTeX_Math-BoldItalic.woff +0 -0
  309. package/dist/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
  310. package/dist/fonts/KaTeX_Math-Italic.ttf +0 -0
  311. package/dist/fonts/KaTeX_Math-Italic.woff +0 -0
  312. package/dist/fonts/KaTeX_Math-Italic.woff2 +0 -0
  313. package/dist/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
  314. package/dist/fonts/KaTeX_SansSerif-Bold.woff +0 -0
  315. package/dist/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
  316. package/dist/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
  317. package/dist/fonts/KaTeX_SansSerif-Italic.woff +0 -0
  318. package/dist/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
  319. package/dist/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
  320. package/dist/fonts/KaTeX_SansSerif-Regular.woff +0 -0
  321. package/dist/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
  322. package/dist/fonts/KaTeX_Script-Regular.ttf +0 -0
  323. package/dist/fonts/KaTeX_Script-Regular.woff +0 -0
  324. package/dist/fonts/KaTeX_Script-Regular.woff2 +0 -0
  325. package/dist/fonts/KaTeX_Size1-Regular.ttf +0 -0
  326. package/dist/fonts/KaTeX_Size1-Regular.woff +0 -0
  327. package/dist/fonts/KaTeX_Size1-Regular.woff2 +0 -0
  328. package/dist/fonts/KaTeX_Size2-Regular.ttf +0 -0
  329. package/dist/fonts/KaTeX_Size2-Regular.woff +0 -0
  330. package/dist/fonts/KaTeX_Size2-Regular.woff2 +0 -0
  331. package/dist/fonts/KaTeX_Size3-Regular.ttf +0 -0
  332. package/dist/fonts/KaTeX_Size3-Regular.woff +0 -0
  333. package/dist/fonts/KaTeX_Size3-Regular.woff2 +0 -0
  334. package/dist/fonts/KaTeX_Size4-Regular.ttf +0 -0
  335. package/dist/fonts/KaTeX_Size4-Regular.woff +0 -0
  336. package/dist/fonts/KaTeX_Size4-Regular.woff2 +0 -0
  337. package/dist/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
  338. package/dist/fonts/KaTeX_Typewriter-Regular.woff +0 -0
  339. package/dist/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
  340. package/dist/index.cjs +1 -1
  341. package/dist/index.d.ts +2 -2
  342. package/dist/index.es.js +22 -19
  343. package/dist/index.es.js.map +1 -1
  344. package/dist/lib/locale.cjs +1 -1
  345. package/dist/lib/locale.cjs.map +1 -1
  346. package/dist/lib/locale.d.ts +5 -1
  347. package/dist/lib/locale.es.js +26 -13
  348. package/dist/lib/locale.es.js.map +1 -1
  349. package/dist/lib/locale.test.d.ts +1 -0
  350. package/dist/lib/useDetachedLanguage.cjs +2 -0
  351. package/dist/lib/useDetachedLanguage.cjs.map +1 -0
  352. package/dist/lib/useDetachedLanguage.d.ts +3 -0
  353. package/dist/lib/useDetachedLanguage.es.js +25 -0
  354. package/dist/lib/useDetachedLanguage.es.js.map +1 -0
  355. package/dist/lib/useResolvedDirection.cjs +2 -0
  356. package/dist/lib/useResolvedDirection.cjs.map +1 -0
  357. package/dist/lib/useResolvedDirection.d.ts +6 -0
  358. package/dist/lib/useResolvedDirection.es.js +37 -0
  359. package/dist/lib/useResolvedDirection.es.js.map +1 -0
  360. package/dist/markdown-flow-ui-lib.css +1 -1
  361. package/dist/node_modules/@radix-ui/react-arrow/dist/index.cjs +1 -1
  362. package/dist/node_modules/@radix-ui/react-arrow/dist/index.cjs.map +1 -1
  363. package/dist/node_modules/@radix-ui/react-arrow/dist/index.es.js +6 -6
  364. package/dist/node_modules/@radix-ui/react-arrow/dist/index.es.js.map +1 -1
  365. package/dist/node_modules/@radix-ui/react-context/dist/index.cjs +1 -1
  366. package/dist/node_modules/@radix-ui/react-context/dist/index.cjs.map +1 -1
  367. package/dist/node_modules/@radix-ui/react-context/dist/index.es.js +21 -21
  368. package/dist/node_modules/@radix-ui/react-context/dist/index.es.js.map +1 -1
  369. package/dist/node_modules/@radix-ui/react-dialog/dist/index.cjs +2 -2
  370. package/dist/node_modules/@radix-ui/react-dialog/dist/index.cjs.map +1 -1
  371. package/dist/node_modules/@radix-ui/react-dialog/dist/index.es.js +100 -100
  372. package/dist/node_modules/@radix-ui/react-dialog/dist/index.es.js.map +1 -1
  373. package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.cjs +1 -1
  374. package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.cjs.map +1 -1
  375. package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.es.js +38 -38
  376. package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.es.js.map +1 -1
  377. package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.cjs +1 -1
  378. package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.cjs.map +1 -1
  379. package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.es.js +9 -9
  380. package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.es.js.map +1 -1
  381. package/dist/node_modules/@radix-ui/react-popover/dist/index.cjs +1 -1
  382. package/dist/node_modules/@radix-ui/react-popover/dist/index.cjs.map +1 -1
  383. package/dist/node_modules/@radix-ui/react-popover/dist/index.es.js +95 -95
  384. package/dist/node_modules/@radix-ui/react-popover/dist/index.es.js.map +1 -1
  385. package/dist/node_modules/@radix-ui/react-popper/dist/index.cjs +1 -1
  386. package/dist/node_modules/@radix-ui/react-popper/dist/index.cjs.map +1 -1
  387. package/dist/node_modules/@radix-ui/react-popper/dist/index.es.js +48 -48
  388. package/dist/node_modules/@radix-ui/react-popper/dist/index.es.js.map +1 -1
  389. package/dist/node_modules/@radix-ui/react-portal/dist/index.cjs +1 -1
  390. package/dist/node_modules/@radix-ui/react-portal/dist/index.cjs.map +1 -1
  391. package/dist/node_modules/@radix-ui/react-portal/dist/index.es.js +6 -6
  392. package/dist/node_modules/@radix-ui/react-portal/dist/index.es.js.map +1 -1
  393. package/dist/node_modules/@radix-ui/react-primitive/dist/index.cjs +1 -1
  394. package/dist/node_modules/@radix-ui/react-primitive/dist/index.cjs.map +1 -1
  395. package/dist/node_modules/@radix-ui/react-primitive/dist/index.es.js +9 -9
  396. package/dist/node_modules/@radix-ui/react-primitive/dist/index.es.js.map +1 -1
  397. package/dist/node_modules/@radix-ui/react-slot/dist/index.cjs +1 -1
  398. package/dist/node_modules/@radix-ui/react-slot/dist/index.cjs.map +1 -1
  399. package/dist/node_modules/@radix-ui/react-slot/dist/index.es.js +17 -17
  400. package/dist/node_modules/@radix-ui/react-slot/dist/index.es.js.map +1 -1
  401. package/dist/node_modules/@radix-ui/react-tooltip/dist/index.cjs +1 -1
  402. package/dist/node_modules/@radix-ui/react-tooltip/dist/index.cjs.map +1 -1
  403. package/dist/node_modules/@radix-ui/react-tooltip/dist/index.es.js +100 -100
  404. package/dist/node_modules/@radix-ui/react-tooltip/dist/index.es.js.map +1 -1
  405. package/dist/node_modules/@radix-ui/react-visually-hidden/dist/index.cjs +1 -1
  406. package/dist/node_modules/@radix-ui/react-visually-hidden/dist/index.cjs.map +1 -1
  407. package/dist/node_modules/@radix-ui/react-visually-hidden/dist/index.es.js +6 -6
  408. package/dist/node_modules/@radix-ui/react-visually-hidden/dist/index.es.js.map +1 -1
  409. package/dist/node_modules/@uiw/react-codemirror/esm/index.cjs +1 -1
  410. package/dist/node_modules/@uiw/react-codemirror/esm/index.cjs.map +1 -1
  411. package/dist/node_modules/@uiw/react-codemirror/esm/index.es.js +27 -27
  412. package/dist/node_modules/@uiw/react-codemirror/esm/index.es.js.map +1 -1
  413. package/dist/node_modules/lucide-react/dist/esm/icons/{chevron-down.cjs → chevrons-down.cjs} +2 -2
  414. package/dist/node_modules/lucide-react/dist/esm/icons/chevrons-down.cjs.map +1 -0
  415. package/dist/node_modules/lucide-react/dist/esm/icons/{chevron-down.es.js → chevrons-down.es.js} +6 -3
  416. package/dist/node_modules/lucide-react/dist/esm/icons/chevrons-down.es.js.map +1 -0
  417. package/dist/node_modules/rc-input/es/BaseInput.cjs +1 -1
  418. package/dist/node_modules/rc-input/es/BaseInput.es.js +1 -1
  419. package/dist/node_modules/rc-textarea/es/ResizableTextArea.cjs +1 -1
  420. package/dist/node_modules/rc-textarea/es/ResizableTextArea.es.js +1 -1
  421. package/dist/node_modules/rc-textarea/es/TextArea.cjs +1 -1
  422. package/dist/node_modules/rc-textarea/es/TextArea.es.js +1 -1
  423. package/dist/node_modules/rc-textarea/es/index.cjs +1 -1
  424. package/dist/node_modules/rc-textarea/es/index.es.js +1 -1
  425. package/dist/node_modules/react-markdown/lib/index.cjs +1 -1
  426. package/dist/node_modules/react-markdown/lib/index.cjs.map +1 -1
  427. package/dist/node_modules/react-markdown/lib/index.es.js +39 -39
  428. package/dist/node_modules/react-markdown/lib/index.es.js.map +1 -1
  429. package/dist/node_modules/remark-flow/dist/interaction-plugin-core.cjs +1 -1
  430. package/dist/node_modules/remark-flow/dist/interaction-plugin-core.es.js +1 -1
  431. package/dist/renderer.cjs +1 -1
  432. package/dist/renderer.d.ts +18 -17
  433. package/dist/renderer.es.js +20 -17
  434. package/dist/renderer.es.js.map +1 -1
  435. package/dist/scroll.cjs +2 -0
  436. package/dist/scroll.cjs.map +1 -0
  437. package/dist/scroll.d.ts +6 -0
  438. package/dist/scroll.es.js +9 -0
  439. package/dist/scroll.es.js.map +1 -0
  440. package/dist/slide.d.ts +3 -3
  441. package/package.json +13 -2
  442. package/dist/_virtual/jsx-runtime.cjs +0 -2
  443. package/dist/_virtual/jsx-runtime.cjs.map +0 -1
  444. package/dist/_virtual/jsx-runtime.es.js +0 -6
  445. package/dist/_virtual/jsx-runtime.es.js.map +0 -1
  446. package/dist/_virtual/jsx-runtime.es2.js +0 -5
  447. package/dist/_virtual/jsx-runtime.es2.js.map +0 -1
  448. package/dist/_virtual/jsx-runtime2.cjs +0 -2
  449. package/dist/_virtual/jsx-runtime2.cjs.map +0 -1
  450. package/dist/_virtual/react-jsx-runtime.development.cjs +0 -2
  451. package/dist/_virtual/react-jsx-runtime.development.cjs.map +0 -1
  452. package/dist/_virtual/react-jsx-runtime.development.es.js +0 -5
  453. package/dist/_virtual/react-jsx-runtime.development.es.js.map +0 -1
  454. package/dist/_virtual/react-jsx-runtime.production.cjs +0 -2
  455. package/dist/_virtual/react-jsx-runtime.production.cjs.map +0 -1
  456. package/dist/_virtual/react-jsx-runtime.production.es.js +0 -5
  457. package/dist/_virtual/react-jsx-runtime.production.es.js.map +0 -1
  458. package/dist/lib/localeTextMap.cjs +0 -2
  459. package/dist/lib/localeTextMap.cjs.map +0 -1
  460. package/dist/lib/localeTextMap.es.js +0 -5
  461. package/dist/lib/localeTextMap.es.js.map +0 -1
  462. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-down.cjs.map +0 -1
  463. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-down.es.js.map +0 -1
  464. package/dist/node_modules/react/cjs/react-jsx-runtime.development.cjs +0 -24
  465. package/dist/node_modules/react/cjs/react-jsx-runtime.development.cjs.map +0 -1
  466. package/dist/node_modules/react/cjs/react-jsx-runtime.development.es.js +0 -409
  467. package/dist/node_modules/react/cjs/react-jsx-runtime.development.es.js.map +0 -1
  468. package/dist/node_modules/react/cjs/react-jsx-runtime.production.cjs +0 -10
  469. package/dist/node_modules/react/cjs/react-jsx-runtime.production.cjs.map +0 -1
  470. package/dist/node_modules/react/cjs/react-jsx-runtime.production.es.js +0 -36
  471. package/dist/node_modules/react/cjs/react-jsx-runtime.production.es.js.map +0 -1
  472. package/dist/node_modules/react/jsx-runtime.cjs +0 -2
  473. package/dist/node_modules/react/jsx-runtime.cjs.map +0 -1
  474. package/dist/node_modules/react/jsx-runtime.es.js +0 -11
  475. package/dist/node_modules/react/jsx-runtime.es.js.map +0 -1
@@ -1,158 +1,13 @@
1
- import { normalizeMarkdownFlowLocale as u } from "../../lib/locale.es.js";
2
- import { buildLocaleTexts as t } from "../../lib/localeTextMap.es.js";
3
- const c = [
4
- "closeSettingsLabel",
5
- "enterFullscreenLabel",
6
- "exitFullscreenLabel",
7
- "moreOptionsAriaLabel",
8
- "nextLabel",
9
- "nextSubtitleLabel",
10
- "notesLabel",
11
- "pauseAutoplayLabel",
12
- "pauseLabel",
13
- "playAutoplayLabel",
14
- "playLabel",
15
- "previousLabel",
16
- "previousSubtitleLabel",
17
- "screenModeLabel",
18
- "settingsTitle",
19
- "subtitleLabel",
20
- "subtitleToggleAriaLabel",
21
- "volumeAriaLabel",
22
- "screenLabel",
23
- "nonFullscreenLabel",
24
- "fullscreenLabel",
25
- "fullscreenHintText"
26
- ], L = [
27
- "title",
28
- "confirmButtonText",
29
- "copyButtonText",
30
- "copiedButtonText"
31
- ], T = [
32
- "waitingForAudio",
33
- "loadingAudio",
34
- "waitingForMoreAudio"
35
- ], n = (e) => t(c, e), a = (e) => t(
36
- L,
37
- e
38
- ), l = (e) => t(T, e), o = (e, r, s, i) => ({
39
- bufferingText: l(r),
40
- fullscreenBackAriaLabel: e,
41
- interactionTexts: a(s),
42
- playerTexts: n(i)
43
- }), p = n([
44
- "Close settings",
45
- "Enter fullscreen",
46
- "Exit fullscreen",
47
- "More options",
48
- "Next page",
49
- "Next sentence",
50
- "Notes",
51
- "Pause autoplay",
52
- "Pause",
53
- "Play autoplay",
54
- "Play",
55
- "Previous page",
56
- "Previous sentence",
57
- "Screen mode",
58
- "Settings",
59
- "Subtitles",
60
- "Toggle subtitles",
61
- "Volume",
62
- "Screen",
63
- "Non-fullscreen",
64
- "Fullscreen",
65
- "Please rotate your screen for the best experience"
66
- ]), d = a([
67
- "Submit the content below to continue.",
68
- "Submit",
69
- "Copy",
70
- "Copied"
71
- ]), b = l([
72
- "Waiting for current slide audio...",
73
- "Loading audio...",
74
- "Waiting for more audio..."
75
- ]), S = {
76
- "en-US": {
77
- bufferingText: b,
78
- fullscreenBackAriaLabel: "Back to non-full screen",
79
- interactionTexts: d,
80
- playerTexts: p
81
- },
82
- "fr-FR": o(
83
- "Retour au mode non plein écran",
84
- [
85
- "En attente de l'audio de la diapositive actuelle...",
86
- "Chargement audio...",
87
- "En attente de plus d'audio..."
88
- ],
89
- [
90
- "Soumettez le contenu ci-dessous pour continuer.",
91
- "Soumettre",
92
- "Copier",
93
- "Copié"
94
- ],
95
- [
96
- "Fermer les paramètres",
97
- "Passer en plein écran",
98
- "Quitter le plein écran",
99
- "Plus d'options",
100
- "Page suivante",
101
- "Phrase suivante",
102
- "Notes",
103
- "Suspendre la lecture automatique",
104
- "Pause",
105
- "Lancer la lecture automatique",
106
- "Lecture",
107
- "Page précédente",
108
- "Phrase précédente",
109
- "Mode d'affichage",
110
- "Paramètres",
111
- "Sous-titres",
112
- "Afficher ou masquer les sous-titres",
113
- "Volume",
114
- "Écran",
115
- "Hors plein écran",
116
- "Plein écran",
117
- "Veuillez tourner votre écran pour une meilleure expérience"
118
- ]
119
- ),
120
- "zh-CN": o(
121
- "返回非全屏",
122
- ["正在等待当前页音频...", "正在加载音频", "正在等待音频"],
123
- ["提交下面的内容以继续", "提交", "复制", "已复制"],
124
- [
125
- "关闭设置",
126
- "进入全屏",
127
- "退出全屏",
128
- "更多选项",
129
- "下一页",
130
- "下一句",
131
- "笔记",
132
- "暂停自动播放",
133
- "暂停",
134
- "开始自动播放",
135
- "播放",
136
- "上一页",
137
- "上一句",
138
- "屏幕模式",
139
- "设置",
140
- "字幕",
141
- "切换字幕",
142
- "音量",
143
- "屏幕",
144
- "非全屏",
145
- "全屏",
146
- "请旋转屏幕以获得最佳体验"
147
- ]
148
- )
149
- }, E = (e) => S[u(e)], m = (e) => E(e).playerTexts;
1
+ import { normalizeMarkdownFlowLocale as o } from "../../lib/locale.es.js";
2
+ import n from "./locales/slide.json.es.js";
3
+ const e = n;
4
+ e["en-US"].playerTexts;
5
+ e["en-US"].interactionTexts;
6
+ const s = e["en-US"].bufferingText, r = (t) => e[o(t)], a = (t) => r(t).playerTexts;
150
7
  export {
151
- b as DEFAULT_SLIDE_BUFFERING_TEXTS,
152
- d as DEFAULT_SLIDE_INTERACTION_TEXTS,
153
- p as DEFAULT_SLIDE_PLAYER_TEXTS,
154
- S as SLIDE_LOCALE_TEXTS,
155
- E as getSlideLocaleTexts,
156
- m as getSlidePlayerTexts
8
+ s as DEFAULT_SLIDE_BUFFERING_TEXTS,
9
+ e as SLIDE_LOCALE_TEXTS,
10
+ r as getSlideLocaleTexts,
11
+ a as getSlidePlayerTexts
157
12
  };
158
13
  //# sourceMappingURL=slideI18n.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"slideI18n.es.js","sources":["../../../src/components/Slide/slideI18n.ts"],"sourcesContent":["import {\n normalizeMarkdownFlowLocale,\n type MarkdownFlowLocale,\n} from \"../../lib/locale\";\nimport {\n buildLocaleTexts,\n type LocaleTextValues,\n} from \"../../lib/localeTextMap\";\n\nexport interface SlidePlayerLocaleTexts {\n closeSettingsLabel: string;\n enterFullscreenLabel: string;\n exitFullscreenLabel: string;\n moreOptionsAriaLabel: string;\n nextLabel: string;\n nextSubtitleLabel: string;\n notesLabel: string;\n pauseAutoplayLabel: string;\n pauseLabel: string;\n playAutoplayLabel: string;\n playLabel: string;\n previousLabel: string;\n previousSubtitleLabel: string;\n screenModeLabel: string;\n settingsTitle: string;\n subtitleLabel: string;\n subtitleToggleAriaLabel: string;\n volumeAriaLabel: string;\n screenLabel: string;\n nonFullscreenLabel: string;\n fullscreenLabel: string;\n fullscreenHintText: string;\n}\n\nexport interface SlideInteractionLocaleTexts {\n title: string;\n confirmButtonText: string;\n copyButtonText: string;\n copiedButtonText: string;\n}\n\nexport type SlideBufferingReason =\n | \"waitingForAudio\"\n | import(\"./Player\").SlidePlayerLoadingReason;\n\nexport interface SlideLocaleTexts {\n bufferingText: Record<SlideBufferingReason, string>;\n fullscreenBackAriaLabel: string;\n interactionTexts: SlideInteractionLocaleTexts;\n playerTexts: SlidePlayerLocaleTexts;\n}\n\nconst SLIDE_PLAYER_TEXT_KEYS = [\n \"closeSettingsLabel\",\n \"enterFullscreenLabel\",\n \"exitFullscreenLabel\",\n \"moreOptionsAriaLabel\",\n \"nextLabel\",\n \"nextSubtitleLabel\",\n \"notesLabel\",\n \"pauseAutoplayLabel\",\n \"pauseLabel\",\n \"playAutoplayLabel\",\n \"playLabel\",\n \"previousLabel\",\n \"previousSubtitleLabel\",\n \"screenModeLabel\",\n \"settingsTitle\",\n \"subtitleLabel\",\n \"subtitleToggleAriaLabel\",\n \"volumeAriaLabel\",\n \"screenLabel\",\n \"nonFullscreenLabel\",\n \"fullscreenLabel\",\n \"fullscreenHintText\",\n] as const satisfies readonly (keyof SlidePlayerLocaleTexts)[];\n\nconst SLIDE_INTERACTION_TEXT_KEYS = [\n \"title\",\n \"confirmButtonText\",\n \"copyButtonText\",\n \"copiedButtonText\",\n] as const satisfies readonly (keyof SlideInteractionLocaleTexts)[];\n\nconst SLIDE_BUFFERING_TEXT_KEYS = [\n \"waitingForAudio\",\n \"loadingAudio\",\n \"waitingForMoreAudio\",\n] as const satisfies readonly SlideBufferingReason[];\n\nconst createSlidePlayerTexts = (\n values: LocaleTextValues<typeof SLIDE_PLAYER_TEXT_KEYS>\n): SlidePlayerLocaleTexts =>\n buildLocaleTexts(SLIDE_PLAYER_TEXT_KEYS, values) as SlidePlayerLocaleTexts;\n\nconst createSlideInteractionTexts = (\n values: LocaleTextValues<typeof SLIDE_INTERACTION_TEXT_KEYS>\n): SlideInteractionLocaleTexts =>\n buildLocaleTexts(\n SLIDE_INTERACTION_TEXT_KEYS,\n values\n ) as SlideInteractionLocaleTexts;\n\nconst createSlideBufferingTexts = (\n values: LocaleTextValues<typeof SLIDE_BUFFERING_TEXT_KEYS>\n): Record<SlideBufferingReason, string> =>\n buildLocaleTexts(SLIDE_BUFFERING_TEXT_KEYS, values) as Record<\n SlideBufferingReason,\n string\n >;\n\nconst createSlideLocaleTexts = (\n fullscreenBackAriaLabel: string,\n bufferingValues: LocaleTextValues<typeof SLIDE_BUFFERING_TEXT_KEYS>,\n interactionValues: LocaleTextValues<typeof SLIDE_INTERACTION_TEXT_KEYS>,\n playerValues: LocaleTextValues<typeof SLIDE_PLAYER_TEXT_KEYS>\n): SlideLocaleTexts => ({\n bufferingText: createSlideBufferingTexts(bufferingValues),\n fullscreenBackAriaLabel,\n interactionTexts: createSlideInteractionTexts(interactionValues),\n playerTexts: createSlidePlayerTexts(playerValues),\n});\n\nexport const DEFAULT_SLIDE_PLAYER_TEXTS: SlidePlayerLocaleTexts =\n createSlidePlayerTexts([\n \"Close settings\",\n \"Enter fullscreen\",\n \"Exit fullscreen\",\n \"More options\",\n \"Next page\",\n \"Next sentence\",\n \"Notes\",\n \"Pause autoplay\",\n \"Pause\",\n \"Play autoplay\",\n \"Play\",\n \"Previous page\",\n \"Previous sentence\",\n \"Screen mode\",\n \"Settings\",\n \"Subtitles\",\n \"Toggle subtitles\",\n \"Volume\",\n \"Screen\",\n \"Non-fullscreen\",\n \"Fullscreen\",\n \"Please rotate your screen for the best experience\",\n ]);\n\nexport const DEFAULT_SLIDE_INTERACTION_TEXTS: SlideInteractionLocaleTexts =\n createSlideInteractionTexts([\n \"Submit the content below to continue.\",\n \"Submit\",\n \"Copy\",\n \"Copied\",\n ]);\n\nexport const DEFAULT_SLIDE_BUFFERING_TEXTS = createSlideBufferingTexts([\n \"Waiting for current slide audio...\",\n \"Loading audio...\",\n \"Waiting for more audio...\",\n]);\n\nexport const SLIDE_LOCALE_TEXTS: Record<MarkdownFlowLocale, SlideLocaleTexts> =\n {\n \"en-US\": {\n bufferingText: DEFAULT_SLIDE_BUFFERING_TEXTS,\n fullscreenBackAriaLabel: \"Back to non-full screen\",\n interactionTexts: DEFAULT_SLIDE_INTERACTION_TEXTS,\n playerTexts: DEFAULT_SLIDE_PLAYER_TEXTS,\n },\n \"fr-FR\": createSlideLocaleTexts(\n \"Retour au mode non plein écran\",\n [\n \"En attente de l'audio de la diapositive actuelle...\",\n \"Chargement audio...\",\n \"En attente de plus d'audio...\",\n ],\n [\n \"Soumettez le contenu ci-dessous pour continuer.\",\n \"Soumettre\",\n \"Copier\",\n \"Copié\",\n ],\n [\n \"Fermer les paramètres\",\n \"Passer en plein écran\",\n \"Quitter le plein écran\",\n \"Plus d'options\",\n \"Page suivante\",\n \"Phrase suivante\",\n \"Notes\",\n \"Suspendre la lecture automatique\",\n \"Pause\",\n \"Lancer la lecture automatique\",\n \"Lecture\",\n \"Page précédente\",\n \"Phrase précédente\",\n \"Mode d'affichage\",\n \"Paramètres\",\n \"Sous-titres\",\n \"Afficher ou masquer les sous-titres\",\n \"Volume\",\n \"Écran\",\n \"Hors plein écran\",\n \"Plein écran\",\n \"Veuillez tourner votre écran pour une meilleure expérience\",\n ]\n ),\n \"zh-CN\": createSlideLocaleTexts(\n \"返回非全屏\",\n [\"正在等待当前页音频...\", \"正在加载音频\", \"正在等待音频\"],\n [\"提交下面的内容以继续\", \"提交\", \"复制\", \"已复制\"],\n [\n \"关闭设置\",\n \"进入全屏\",\n \"退出全屏\",\n \"更多选项\",\n \"下一页\",\n \"下一句\",\n \"笔记\",\n \"暂停自动播放\",\n \"暂停\",\n \"开始自动播放\",\n \"播放\",\n \"上一页\",\n \"上一句\",\n \"屏幕模式\",\n \"设置\",\n \"字幕\",\n \"切换字幕\",\n \"音量\",\n \"屏幕\",\n \"非全屏\",\n \"全屏\",\n \"请旋转屏幕以获得最佳体验\",\n ]\n ),\n };\n\nexport const getSlideLocaleTexts = (locale?: string | null): SlideLocaleTexts =>\n SLIDE_LOCALE_TEXTS[normalizeMarkdownFlowLocale(locale)];\n\nexport const getSlidePlayerTexts = (\n locale?: string | null\n): SlidePlayerLocaleTexts => getSlideLocaleTexts(locale).playerTexts;\n"],"names":["SLIDE_PLAYER_TEXT_KEYS","SLIDE_INTERACTION_TEXT_KEYS","SLIDE_BUFFERING_TEXT_KEYS","createSlidePlayerTexts","values","buildLocaleTexts","createSlideInteractionTexts","createSlideBufferingTexts","createSlideLocaleTexts","fullscreenBackAriaLabel","bufferingValues","interactionValues","playerValues","DEFAULT_SLIDE_PLAYER_TEXTS","DEFAULT_SLIDE_INTERACTION_TEXTS","DEFAULT_SLIDE_BUFFERING_TEXTS","SLIDE_LOCALE_TEXTS","getSlideLocaleTexts","locale","normalizeMarkdownFlowLocale","getSlidePlayerTexts"],"mappings":";;AAoDA,MAAMA,IAAyB;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAEMC,IAA8B;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAEMC,IAA4B;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AACF,GAEMC,IAAyB,CAC7BC,MAEAC,EAAiBL,GAAwBI,CAAM,GAE3CE,IAA8B,CAClCF,MAEAC;AAAA,EACEJ;AAAA,EACAG;AACF,GAEIG,IAA4B,CAChCH,MAEAC,EAAiBH,GAA2BE,CAAM,GAK9CI,IAAyB,CAC7BC,GACAC,GACAC,GACAC,OACsB;AAAA,EACtB,eAAeL,EAA0BG,CAAe;AAAA,EACxD,yBAAAD;AAAA,EACA,kBAAkBH,EAA4BK,CAAiB;AAAA,EAC/D,aAAaR,EAAuBS,CAAY;AAClD,IAEaC,IACXV,EAAuB;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC,GAEUW,IACXR,EAA4B;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC,GAEUS,IAAgCR,EAA0B;AAAA,EACrE;AAAA,EACA;AAAA,EACA;AACF,CAAC,GAEYS,IACX;AAAA,EACE,SAAS;AAAA,IACP,eAAeD;AAAA,IACf,yBAAyB;AAAA,IACzB,kBAAkBD;AAAA,IAClB,aAAaD;AAAA,EAAA;AAAA,EAEf,SAASL;AAAA,IACP;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EACF;AAAA,EAEF,SAASA;AAAA,IACP;AAAA,IACA,CAAC,gBAAgB,UAAU,QAAQ;AAAA,IACnC,CAAC,cAAc,MAAM,MAAM,KAAK;AAAA,IAChC;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EACF;AAEJ,GAEWS,IAAsB,CAACC,MAClCF,EAAmBG,EAA4BD,CAAM,CAAC,GAE3CE,IAAsB,CACjCF,MAC2BD,EAAoBC,CAAM,EAAE;"}
1
+ {"version":3,"file":"slideI18n.es.js","sources":["../../../src/components/Slide/slideI18n.ts"],"sourcesContent":["import {\n normalizeMarkdownFlowLocale,\n type MarkdownFlowLocale,\n} from \"../../lib/locale\";\nimport localeTexts from \"./locales/slide.json\";\n\nexport interface SlidePlayerLocaleTexts {\n closeSettingsLabel: string;\n enterFullscreenLabel: string;\n exitFullscreenLabel: string;\n moreOptionsAriaLabel: string;\n nextLabel: string;\n nextSubtitleLabel: string;\n notesLabel: string;\n pauseAutoplayLabel: string;\n pauseLabel: string;\n playAutoplayLabel: string;\n playLabel: string;\n /** Display name of the spacebar in playback hints; does not change the key binding. */\n playbackShortcutLabel: string;\n previousLabel: string;\n previousSubtitleLabel: string;\n screenModeLabel: string;\n settingsTitle: string;\n subtitleLabel: string;\n subtitleToggleAriaLabel: string;\n volumeAriaLabel: string;\n screenLabel: string;\n nonFullscreenLabel: string;\n fullscreenLabel: string;\n fullscreenHintText: string;\n}\n\nexport interface SlideInteractionLocaleTexts {\n title: string;\n confirmButtonText: string;\n copyButtonText: string;\n copiedButtonText: string;\n dragHandleAriaLabel: string;\n}\n\nexport type SlideBufferingReason =\n | \"waitingForAudio\"\n | import(\"./Player\").SlidePlayerLoadingReason;\n\nexport interface SlideLocaleTexts {\n bufferingText: Record<SlideBufferingReason, string>;\n fullscreenBackAriaLabel: string;\n interactionTexts: SlideInteractionLocaleTexts;\n playerTexts: SlidePlayerLocaleTexts;\n}\n\nexport const SLIDE_LOCALE_TEXTS: Record<MarkdownFlowLocale, SlideLocaleTexts> =\n localeTexts;\n\nexport const DEFAULT_SLIDE_PLAYER_TEXTS: SlidePlayerLocaleTexts =\n SLIDE_LOCALE_TEXTS[\"en-US\"].playerTexts;\n\nexport const DEFAULT_SLIDE_INTERACTION_TEXTS: SlideInteractionLocaleTexts =\n SLIDE_LOCALE_TEXTS[\"en-US\"].interactionTexts;\n\nexport const DEFAULT_SLIDE_BUFFERING_TEXTS: Record<\n SlideBufferingReason,\n string\n> = SLIDE_LOCALE_TEXTS[\"en-US\"].bufferingText;\n\nexport const getSlideLocaleTexts = (locale?: string | null): SlideLocaleTexts =>\n SLIDE_LOCALE_TEXTS[normalizeMarkdownFlowLocale(locale)];\n\nexport const getSlidePlayerTexts = (\n locale?: string | null\n): SlidePlayerLocaleTexts => getSlideLocaleTexts(locale).playerTexts;\n"],"names":["SLIDE_LOCALE_TEXTS","localeTexts","DEFAULT_SLIDE_BUFFERING_TEXTS","getSlideLocaleTexts","locale","normalizeMarkdownFlowLocale","getSlidePlayerTexts"],"mappings":";;AAoDO,MAAMA,IACXC;AAGAD,EAAmB,OAAO,EAAE;AAG5BA,EAAmB,OAAO,EAAE;AAEvB,MAAME,IAGTF,EAAmB,OAAO,EAAE,eAEnBG,IAAsB,CAACC,MAClCJ,EAAmBK,EAA4BD,CAAM,CAAC,GAE3CE,IAAsB,CACjCF,MAC2BD,EAAoBC,CAAM,EAAE;"}
@@ -1,4 +1,4 @@
1
- import { Element, ElementAudioSegment } from './types';
1
+ import { Element, ElementAudioSegment } from './types.js';
2
2
  export interface SlideAudioItem {
3
3
  audioKey?: string;
4
4
  sequenceNumber?: number;
@@ -1,4 +1,4 @@
1
- import { Element } from '../types';
1
+ import { Element } from '../types.js';
2
2
  interface ShouldAutoAdvanceIntoAppendedMarkerParams {
3
3
  previousMarkerCount: number;
4
4
  nextMarkerCount: number;
@@ -1,2 +1,2 @@
1
- import { SlideAudioItem } from '../useSlide';
1
+ import { SlideAudioItem } from '../useSlide.js';
2
2
  export declare const getSortedAudioSegments: (audioItem?: SlideAudioItem) => import('..').ElementAudioSegment[];
@@ -1,5 +1,5 @@
1
- import { InteractionDefaultValueOptions } from '../../../lib/interaction-defaults';
2
- import { Element } from '../types';
1
+ import { InteractionDefaultValueOptions } from '../../../lib/interaction-defaults.js';
2
+ import { Element } from '../types.js';
3
3
  interface ResolveSlideInteractionStateOptions {
4
4
  interactionDefaultValueOptions?: InteractionDefaultValueOptions;
5
5
  }
@@ -1,4 +1,4 @@
1
- import { Element, ElementAudioSegment, ElementSubtitleCue } from '../types';
1
+ import { Element, ElementAudioSegment, ElementSubtitleCue } from '../types.js';
2
2
  export type RunStreamRawAudioSegment = ElementAudioSegment & {
3
3
  element_id?: string | null;
4
4
  };
@@ -69,7 +69,7 @@ export declare const upsertRunStreamElementList: ({ currentList, nextElement, se
69
69
  }) => {
70
70
  page: number;
71
71
  content: React.ReactNode;
72
- type: import('../types').ElementType;
72
+ type: import('../types.js').ElementType;
73
73
  is_renderable?: boolean;
74
74
  is_new?: boolean;
75
75
  is_marker?: boolean;
@@ -1,4 +1,4 @@
1
- import { Element } from '../types';
1
+ import { Element } from '../types.js';
2
2
  export type MarkdownScalingMode = "base" | "disabled" | "fit";
3
3
  /**
4
4
  * Fully fits Markdown-only pages. Mixed pages still receive the viewport base
@@ -1,6 +1,6 @@
1
1
  import { default as React } from 'react';
2
- import { Element, SlidePlayerCustomActionContext, SlidePlayerCustomActions } from '../types';
3
- import { SlideAudioItem } from '../useSlide';
2
+ import { Element, SlidePlayerCustomActionContext, SlidePlayerCustomActions } from '../types.js';
3
+ import { SlideAudioItem } from '../useSlide.js';
4
4
  type ResolvePlayerCustomActionElementParams = {
5
5
  currentAudioIndex: number;
6
6
  currentAudioSequenceIndexes: number[];
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i='input, textarea, select, [contenteditable]:not([contenteditable="false"]), [role="textbox"], [role="slider"], [role="listbox"], [role="combobox"], [role="tablist"], [role="menu"], [role="tree"], [role="grid"], [data-player-keyboard-shortcuts-ignore="true"]',s="button, [role='button']",a=new Set;let r=null;const l=e=>{if(!e||typeof e!="object")return null;const t=e;return t.nodeType===3?t.parentElement??null:t},d=e=>{if(e.altKey||e.ctrlKey||e.metaKey)return null;const t=e.key.toLowerCase();if(e.shiftKey)switch(t){case"arrowleft":return"previousSubtitle";case"arrowright":return"nextSubtitle";default:return null}if(e.code==="Space"||t===" "||t==="spacebar")return"togglePlayback";switch(t){case"arrowleft":return"previous";case"arrowright":return"next";case"f":return"fullscreen";case"c":return"subtitle";case"n":return"interaction";default:return null}},u=e=>{const t=l(e);if(!t)return!1;const o=t.tagName?.toLowerCase();if(o==="input"||o==="textarea"||o==="select"||t.isContentEditable)return!0;const n=t.getAttribute?.("contenteditable");return n!=null?n.toLowerCase()!=="false":!!t.closest?.(i)},c=e=>{const t=l(e);return t?t.tagName?.toLowerCase()==="button"?!0:!!t.closest?.(s):!1},y=(e,t)=>e.defaultPrevented||!t||u(e.target)?!0:t==="togglePlayback"&&c(e.target),b=e=>(a.add(e),(!r||!a.has(r))&&(r=e),()=>{a.delete(e),r===e&&(r=a.values().next().value??null)}),f=e=>{if(a.size===0){r=e;return}a.has(e)&&(r=e)},g=e=>r===e;exports.activatePlayerKeyboardShortcutOwner=f;exports.getPlayerKeyboardShortcutAction=d;exports.isActivePlayerKeyboardShortcutOwner=g;exports.isPlayerKeyboardShortcutEditableTarget=u;exports.isPlayerKeyboardShortcutNativeSpaceTarget=c;exports.registerPlayerKeyboardShortcutOwner=b;exports.shouldIgnorePlayerKeyboardShortcutEvent=y;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s='input, textarea, select, [contenteditable]:not([contenteditable="false"]), [role="textbox"], [role="slider"], [role="listbox"], [role="combobox"], [role="tablist"], [role="menu"], [role="tree"], [role="grid"], [data-player-keyboard-shortcuts-ignore="true"]',i="button, [role='button']",o=new Set;let a=null;const l=e=>{if(!e||typeof e!="object")return null;const t=e;return t.nodeType===3?t.parentElement??null:t},y=(e,t="ltr")=>{if(e.altKey||e.ctrlKey||e.metaKey)return null;const r=e.key.toLowerCase();if(e.shiftKey)switch(r){case"arrowleft":return"previousSubtitle";case"arrowright":return"nextSubtitle";default:return null}if(e.code==="Space"||r===" "||r==="spacebar")return"togglePlayback";switch(r){case"arrowleft":return t==="rtl"?"next":"previous";case"arrowright":return t==="rtl"?"previous":"next";case"f":return"fullscreen";case"c":return"subtitle";case"n":return"interaction";default:return null}},u=e=>{const t=l(e);if(!t)return!1;const r=t.tagName?.toLowerCase();if(r==="input"||r==="textarea"||r==="select"||t.isContentEditable)return!0;const n=t.getAttribute?.("contenteditable");return n!=null?n.toLowerCase()!=="false":!!t.closest?.(s)},c=e=>{const t=l(e);return t?t.tagName?.toLowerCase()==="button"?!0:!!t.closest?.(i):!1},d=(e,t)=>e.defaultPrevented||!t||u(e.target)?!0:t==="togglePlayback"&&c(e.target),b=e=>(o.add(e),(!a||!o.has(a))&&(a=e),()=>{o.delete(e),a===e&&(a=o.values().next().value??null)}),f=e=>{if(o.size===0){a=e;return}o.has(e)&&(a=e)},g=e=>a===e;exports.activatePlayerKeyboardShortcutOwner=f;exports.getPlayerKeyboardShortcutAction=y;exports.isActivePlayerKeyboardShortcutOwner=g;exports.isPlayerKeyboardShortcutEditableTarget=u;exports.isPlayerKeyboardShortcutNativeSpaceTarget=c;exports.registerPlayerKeyboardShortcutOwner=b;exports.shouldIgnorePlayerKeyboardShortcutEvent=d;
2
2
  //# sourceMappingURL=playerKeyboardShortcuts.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"playerKeyboardShortcuts.cjs","sources":["../../../../src/components/Slide/utils/playerKeyboardShortcuts.ts"],"sourcesContent":["export type PlayerKeyboardShortcutAction =\n | \"togglePlayback\"\n | \"previous\"\n | \"next\"\n | \"previousSubtitle\"\n | \"nextSubtitle\"\n | \"fullscreen\"\n | \"subtitle\"\n | \"interaction\";\n\nexport interface PlayerKeyboardShortcutEventLike {\n altKey?: boolean;\n code?: string;\n ctrlKey?: boolean;\n defaultPrevented?: boolean;\n key: string;\n metaKey?: boolean;\n shiftKey?: boolean;\n target?: EventTarget | null;\n}\n\ntype KeyboardShortcutTarget = EventTarget & {\n closest?: (selectors: string) => unknown;\n getAttribute?: (qualifiedName: string) => string | null;\n isContentEditable?: boolean;\n nodeType?: number;\n parentElement?: Element | null;\n tagName?: string;\n};\n\nconst EDITABLE_SELECTOR =\n 'input, textarea, select, [contenteditable]:not([contenteditable=\"false\"]), [role=\"textbox\"], [role=\"slider\"], [role=\"listbox\"], [role=\"combobox\"], [role=\"tablist\"], [role=\"menu\"], [role=\"tree\"], [role=\"grid\"], [data-player-keyboard-shortcuts-ignore=\"true\"]';\n\nconst NATIVE_SPACE_TARGET_SELECTOR = \"button, [role='button']\";\n\nconst playerKeyboardShortcutOwners = new Set<string>();\nlet activePlayerKeyboardShortcutOwnerId: string | null = null;\n\nconst getTargetCandidate = (\n target: EventTarget | null | undefined\n): KeyboardShortcutTarget | null => {\n if (!target || typeof target !== \"object\") {\n return null;\n }\n\n const candidate = target as KeyboardShortcutTarget;\n\n if (candidate.nodeType === 3) {\n return (candidate.parentElement as KeyboardShortcutTarget | null) ?? null;\n }\n\n return candidate;\n};\n\nexport const getPlayerKeyboardShortcutAction = (\n event: PlayerKeyboardShortcutEventLike\n): PlayerKeyboardShortcutAction | null => {\n if (event.altKey || event.ctrlKey || event.metaKey) {\n return null;\n }\n\n const normalizedKey = event.key.toLowerCase();\n\n if (event.shiftKey) {\n switch (normalizedKey) {\n case \"arrowleft\":\n return \"previousSubtitle\";\n case \"arrowright\":\n return \"nextSubtitle\";\n default:\n return null;\n }\n }\n\n if (\n event.code === \"Space\" ||\n normalizedKey === \" \" ||\n normalizedKey === \"spacebar\"\n ) {\n return \"togglePlayback\";\n }\n\n switch (normalizedKey) {\n case \"arrowleft\":\n return \"previous\";\n case \"arrowright\":\n return \"next\";\n case \"f\":\n return \"fullscreen\";\n case \"c\":\n return \"subtitle\";\n case \"n\":\n return \"interaction\";\n default:\n return null;\n }\n};\n\nexport const isPlayerKeyboardShortcutEditableTarget = (\n target: EventTarget | null | undefined\n) => {\n const candidate = getTargetCandidate(target);\n\n if (!candidate) {\n return false;\n }\n\n const tagName = candidate.tagName?.toLowerCase();\n\n if (tagName === \"input\" || tagName === \"textarea\" || tagName === \"select\") {\n return true;\n }\n\n if (candidate.isContentEditable) {\n return true;\n }\n\n const contentEditable = candidate.getAttribute?.(\"contenteditable\");\n\n if (contentEditable !== undefined && contentEditable !== null) {\n return contentEditable.toLowerCase() !== \"false\";\n }\n\n return Boolean(candidate.closest?.(EDITABLE_SELECTOR));\n};\n\nexport const isPlayerKeyboardShortcutNativeSpaceTarget = (\n target: EventTarget | null | undefined\n) => {\n const candidate = getTargetCandidate(target);\n\n if (!candidate) {\n return false;\n }\n\n const tagName = candidate.tagName?.toLowerCase();\n\n if (tagName === \"button\") {\n return true;\n }\n\n return Boolean(candidate.closest?.(NATIVE_SPACE_TARGET_SELECTOR));\n};\n\nexport const shouldIgnorePlayerKeyboardShortcutEvent = (\n event: PlayerKeyboardShortcutEventLike,\n action: PlayerKeyboardShortcutAction | null\n) => {\n if (event.defaultPrevented || !action) {\n return true;\n }\n\n if (isPlayerKeyboardShortcutEditableTarget(event.target)) {\n return true;\n }\n\n return (\n action === \"togglePlayback\" &&\n isPlayerKeyboardShortcutNativeSpaceTarget(event.target)\n );\n};\n\nexport const registerPlayerKeyboardShortcutOwner = (ownerId: string) => {\n playerKeyboardShortcutOwners.add(ownerId);\n\n if (\n !activePlayerKeyboardShortcutOwnerId ||\n !playerKeyboardShortcutOwners.has(activePlayerKeyboardShortcutOwnerId)\n ) {\n activePlayerKeyboardShortcutOwnerId = ownerId;\n }\n\n return () => {\n playerKeyboardShortcutOwners.delete(ownerId);\n\n if (activePlayerKeyboardShortcutOwnerId !== ownerId) {\n return;\n }\n\n activePlayerKeyboardShortcutOwnerId =\n playerKeyboardShortcutOwners.values().next().value ?? null;\n };\n};\n\nexport const activatePlayerKeyboardShortcutOwner = (ownerId: string) => {\n if (playerKeyboardShortcutOwners.size === 0) {\n activePlayerKeyboardShortcutOwnerId = ownerId;\n return;\n }\n\n if (playerKeyboardShortcutOwners.has(ownerId)) {\n activePlayerKeyboardShortcutOwnerId = ownerId;\n }\n};\n\nexport const isActivePlayerKeyboardShortcutOwner = (ownerId: string) =>\n activePlayerKeyboardShortcutOwnerId === ownerId;\n\nexport const resetPlayerKeyboardShortcutOwnersForTest = () => {\n playerKeyboardShortcutOwners.clear();\n activePlayerKeyboardShortcutOwnerId = null;\n};\n"],"names":["EDITABLE_SELECTOR","NATIVE_SPACE_TARGET_SELECTOR","playerKeyboardShortcutOwners","activePlayerKeyboardShortcutOwnerId","getTargetCandidate","target","candidate","getPlayerKeyboardShortcutAction","event","normalizedKey","isPlayerKeyboardShortcutEditableTarget","tagName","contentEditable","isPlayerKeyboardShortcutNativeSpaceTarget","shouldIgnorePlayerKeyboardShortcutEvent","action","registerPlayerKeyboardShortcutOwner","ownerId","activatePlayerKeyboardShortcutOwner","isActivePlayerKeyboardShortcutOwner"],"mappings":"gFA8BA,MAAMA,EACJ,mQAEIC,EAA+B,0BAE/BC,MAAmC,IACzC,IAAIC,EAAqD,KAEzD,MAAMC,EACJC,GACkC,CAClC,GAAI,CAACA,GAAU,OAAOA,GAAW,SAC/B,OAAO,KAGT,MAAMC,EAAYD,EAElB,OAAIC,EAAU,WAAa,EACjBA,EAAU,eAAmD,KAGhEA,CACT,EAEaC,EACXC,GACwC,CACxC,GAAIA,EAAM,QAAUA,EAAM,SAAWA,EAAM,QACzC,OAAO,KAGT,MAAMC,EAAgBD,EAAM,IAAI,YAAA,EAEhC,GAAIA,EAAM,SACR,OAAQC,EAAA,CACN,IAAK,YACH,MAAO,mBACT,IAAK,aACH,MAAO,eACT,QACE,OAAO,IAAA,CAIb,GACED,EAAM,OAAS,SACfC,IAAkB,KAClBA,IAAkB,WAElB,MAAO,iBAGT,OAAQA,EAAA,CACN,IAAK,YACH,MAAO,WACT,IAAK,aACH,MAAO,OACT,IAAK,IACH,MAAO,aACT,IAAK,IACH,MAAO,WACT,IAAK,IACH,MAAO,cACT,QACE,OAAO,IAAA,CAEb,EAEaC,EACXL,GACG,CACH,MAAMC,EAAYF,EAAmBC,CAAM,EAE3C,GAAI,CAACC,EACH,MAAO,GAGT,MAAMK,EAAUL,EAAU,SAAS,YAAA,EAMnC,GAJIK,IAAY,SAAWA,IAAY,YAAcA,IAAY,UAI7DL,EAAU,kBACZ,MAAO,GAGT,MAAMM,EAAkBN,EAAU,eAAe,iBAAiB,EAElE,OAAqCM,GAAoB,KAChDA,EAAgB,gBAAkB,QAGpC,EAAQN,EAAU,UAAUN,CAAiB,CACtD,EAEaa,EACXR,GACG,CACH,MAAMC,EAAYF,EAAmBC,CAAM,EAE3C,OAAKC,EAIWA,EAAU,SAAS,YAAA,IAEnB,SACP,GAGF,EAAQA,EAAU,UAAUL,CAA4B,EATtD,EAUX,EAEaa,EAA0C,CACrDN,EACAO,IAEIP,EAAM,kBAAoB,CAACO,GAI3BL,EAAuCF,EAAM,MAAM,EAC9C,GAIPO,IAAW,kBACXF,EAA0CL,EAAM,MAAM,EAI7CQ,EAAuCC,IAClDf,EAA6B,IAAIe,CAAO,GAGtC,CAACd,GACD,CAACD,EAA6B,IAAIC,CAAmC,KAErEA,EAAsCc,GAGjC,IAAM,CACXf,EAA6B,OAAOe,CAAO,EAEvCd,IAAwCc,IAI5Cd,EACED,EAA6B,OAAA,EAAS,KAAA,EAAO,OAAS,KAC1D,GAGWgB,EAAuCD,GAAoB,CACtE,GAAIf,EAA6B,OAAS,EAAG,CAC3CC,EAAsCc,EACtC,MACF,CAEIf,EAA6B,IAAIe,CAAO,IAC1Cd,EAAsCc,EAE1C,EAEaE,EAAuCF,GAClDd,IAAwCc"}
1
+ {"version":3,"file":"playerKeyboardShortcuts.cjs","sources":["../../../../src/components/Slide/utils/playerKeyboardShortcuts.ts"],"sourcesContent":["export type PlayerKeyboardShortcutAction =\n | \"togglePlayback\"\n | \"previous\"\n | \"next\"\n | \"previousSubtitle\"\n | \"nextSubtitle\"\n | \"fullscreen\"\n | \"subtitle\"\n | \"interaction\";\n\nexport interface PlayerKeyboardShortcutEventLike {\n altKey?: boolean;\n code?: string;\n ctrlKey?: boolean;\n defaultPrevented?: boolean;\n key: string;\n metaKey?: boolean;\n shiftKey?: boolean;\n target?: EventTarget | null;\n}\n\ntype KeyboardShortcutTarget = EventTarget & {\n closest?: (selectors: string) => unknown;\n getAttribute?: (qualifiedName: string) => string | null;\n isContentEditable?: boolean;\n nodeType?: number;\n parentElement?: Element | null;\n tagName?: string;\n};\n\nconst EDITABLE_SELECTOR =\n 'input, textarea, select, [contenteditable]:not([contenteditable=\"false\"]), [role=\"textbox\"], [role=\"slider\"], [role=\"listbox\"], [role=\"combobox\"], [role=\"tablist\"], [role=\"menu\"], [role=\"tree\"], [role=\"grid\"], [data-player-keyboard-shortcuts-ignore=\"true\"]';\n\nconst NATIVE_SPACE_TARGET_SELECTOR = \"button, [role='button']\";\n\nconst playerKeyboardShortcutOwners = new Set<string>();\nlet activePlayerKeyboardShortcutOwnerId: string | null = null;\n\nconst getTargetCandidate = (\n target: EventTarget | null | undefined\n): KeyboardShortcutTarget | null => {\n if (!target || typeof target !== \"object\") {\n return null;\n }\n\n const candidate = target as KeyboardShortcutTarget;\n\n if (candidate.nodeType === 3) {\n return (candidate.parentElement as KeyboardShortcutTarget | null) ?? null;\n }\n\n return candidate;\n};\n\nexport const getPlayerKeyboardShortcutAction = (\n event: PlayerKeyboardShortcutEventLike,\n direction: \"ltr\" | \"rtl\" = \"ltr\"\n): PlayerKeyboardShortcutAction | null => {\n if (event.altKey || event.ctrlKey || event.metaKey) {\n return null;\n }\n\n const normalizedKey = event.key.toLowerCase();\n\n if (event.shiftKey) {\n switch (normalizedKey) {\n case \"arrowleft\":\n return \"previousSubtitle\";\n case \"arrowright\":\n return \"nextSubtitle\";\n default:\n return null;\n }\n }\n\n if (\n event.code === \"Space\" ||\n normalizedKey === \" \" ||\n normalizedKey === \"spacebar\"\n ) {\n return \"togglePlayback\";\n }\n\n switch (normalizedKey) {\n case \"arrowleft\":\n return direction === \"rtl\" ? \"next\" : \"previous\";\n case \"arrowright\":\n return direction === \"rtl\" ? \"previous\" : \"next\";\n case \"f\":\n return \"fullscreen\";\n case \"c\":\n return \"subtitle\";\n case \"n\":\n return \"interaction\";\n default:\n return null;\n }\n};\n\nexport const isPlayerKeyboardShortcutEditableTarget = (\n target: EventTarget | null | undefined\n) => {\n const candidate = getTargetCandidate(target);\n\n if (!candidate) {\n return false;\n }\n\n const tagName = candidate.tagName?.toLowerCase();\n\n if (tagName === \"input\" || tagName === \"textarea\" || tagName === \"select\") {\n return true;\n }\n\n if (candidate.isContentEditable) {\n return true;\n }\n\n const contentEditable = candidate.getAttribute?.(\"contenteditable\");\n\n if (contentEditable !== undefined && contentEditable !== null) {\n return contentEditable.toLowerCase() !== \"false\";\n }\n\n return Boolean(candidate.closest?.(EDITABLE_SELECTOR));\n};\n\nexport const isPlayerKeyboardShortcutNativeSpaceTarget = (\n target: EventTarget | null | undefined\n) => {\n const candidate = getTargetCandidate(target);\n\n if (!candidate) {\n return false;\n }\n\n const tagName = candidate.tagName?.toLowerCase();\n\n if (tagName === \"button\") {\n return true;\n }\n\n return Boolean(candidate.closest?.(NATIVE_SPACE_TARGET_SELECTOR));\n};\n\nexport const shouldIgnorePlayerKeyboardShortcutEvent = (\n event: PlayerKeyboardShortcutEventLike,\n action: PlayerKeyboardShortcutAction | null\n) => {\n if (event.defaultPrevented || !action) {\n return true;\n }\n\n if (isPlayerKeyboardShortcutEditableTarget(event.target)) {\n return true;\n }\n\n return (\n action === \"togglePlayback\" &&\n isPlayerKeyboardShortcutNativeSpaceTarget(event.target)\n );\n};\n\nexport const registerPlayerKeyboardShortcutOwner = (ownerId: string) => {\n playerKeyboardShortcutOwners.add(ownerId);\n\n if (\n !activePlayerKeyboardShortcutOwnerId ||\n !playerKeyboardShortcutOwners.has(activePlayerKeyboardShortcutOwnerId)\n ) {\n activePlayerKeyboardShortcutOwnerId = ownerId;\n }\n\n return () => {\n playerKeyboardShortcutOwners.delete(ownerId);\n\n if (activePlayerKeyboardShortcutOwnerId !== ownerId) {\n return;\n }\n\n activePlayerKeyboardShortcutOwnerId =\n playerKeyboardShortcutOwners.values().next().value ?? null;\n };\n};\n\nexport const activatePlayerKeyboardShortcutOwner = (ownerId: string) => {\n if (playerKeyboardShortcutOwners.size === 0) {\n activePlayerKeyboardShortcutOwnerId = ownerId;\n return;\n }\n\n if (playerKeyboardShortcutOwners.has(ownerId)) {\n activePlayerKeyboardShortcutOwnerId = ownerId;\n }\n};\n\nexport const isActivePlayerKeyboardShortcutOwner = (ownerId: string) =>\n activePlayerKeyboardShortcutOwnerId === ownerId;\n\nexport const resetPlayerKeyboardShortcutOwnersForTest = () => {\n playerKeyboardShortcutOwners.clear();\n activePlayerKeyboardShortcutOwnerId = null;\n};\n"],"names":["EDITABLE_SELECTOR","NATIVE_SPACE_TARGET_SELECTOR","playerKeyboardShortcutOwners","activePlayerKeyboardShortcutOwnerId","getTargetCandidate","target","candidate","getPlayerKeyboardShortcutAction","event","direction","normalizedKey","isPlayerKeyboardShortcutEditableTarget","tagName","contentEditable","isPlayerKeyboardShortcutNativeSpaceTarget","shouldIgnorePlayerKeyboardShortcutEvent","action","registerPlayerKeyboardShortcutOwner","ownerId","activatePlayerKeyboardShortcutOwner","isActivePlayerKeyboardShortcutOwner"],"mappings":"gFA8BA,MAAMA,EACJ,mQAEIC,EAA+B,0BAE/BC,MAAmC,IACzC,IAAIC,EAAqD,KAEzD,MAAMC,EACJC,GACkC,CAClC,GAAI,CAACA,GAAU,OAAOA,GAAW,SAC/B,OAAO,KAGT,MAAMC,EAAYD,EAElB,OAAIC,EAAU,WAAa,EACjBA,EAAU,eAAmD,KAGhEA,CACT,EAEaC,EAAkC,CAC7CC,EACAC,EAA2B,QACa,CACxC,GAAID,EAAM,QAAUA,EAAM,SAAWA,EAAM,QACzC,OAAO,KAGT,MAAME,EAAgBF,EAAM,IAAI,YAAA,EAEhC,GAAIA,EAAM,SACR,OAAQE,EAAA,CACN,IAAK,YACH,MAAO,mBACT,IAAK,aACH,MAAO,eACT,QACE,OAAO,IAAA,CAIb,GACEF,EAAM,OAAS,SACfE,IAAkB,KAClBA,IAAkB,WAElB,MAAO,iBAGT,OAAQA,EAAA,CACN,IAAK,YACH,OAAOD,IAAc,MAAQ,OAAS,WACxC,IAAK,aACH,OAAOA,IAAc,MAAQ,WAAa,OAC5C,IAAK,IACH,MAAO,aACT,IAAK,IACH,MAAO,WACT,IAAK,IACH,MAAO,cACT,QACE,OAAO,IAAA,CAEb,EAEaE,EACXN,GACG,CACH,MAAMC,EAAYF,EAAmBC,CAAM,EAE3C,GAAI,CAACC,EACH,MAAO,GAGT,MAAMM,EAAUN,EAAU,SAAS,YAAA,EAMnC,GAJIM,IAAY,SAAWA,IAAY,YAAcA,IAAY,UAI7DN,EAAU,kBACZ,MAAO,GAGT,MAAMO,EAAkBP,EAAU,eAAe,iBAAiB,EAElE,OAAqCO,GAAoB,KAChDA,EAAgB,gBAAkB,QAGpC,EAAQP,EAAU,UAAUN,CAAiB,CACtD,EAEac,EACXT,GACG,CACH,MAAMC,EAAYF,EAAmBC,CAAM,EAE3C,OAAKC,EAIWA,EAAU,SAAS,YAAA,IAEnB,SACP,GAGF,EAAQA,EAAU,UAAUL,CAA4B,EATtD,EAUX,EAEac,EAA0C,CACrDP,EACAQ,IAEIR,EAAM,kBAAoB,CAACQ,GAI3BL,EAAuCH,EAAM,MAAM,EAC9C,GAIPQ,IAAW,kBACXF,EAA0CN,EAAM,MAAM,EAI7CS,EAAuCC,IAClDhB,EAA6B,IAAIgB,CAAO,GAGtC,CAACf,GACD,CAACD,EAA6B,IAAIC,CAAmC,KAErEA,EAAsCe,GAGjC,IAAM,CACXhB,EAA6B,OAAOgB,CAAO,EAEvCf,IAAwCe,IAI5Cf,EACED,EAA6B,OAAA,EAAS,KAAA,EAAO,OAAS,KAC1D,GAGWiB,EAAuCD,GAAoB,CACtE,GAAIhB,EAA6B,OAAS,EAAG,CAC3CC,EAAsCe,EACtC,MACF,CAEIhB,EAA6B,IAAIgB,CAAO,IAC1Cf,EAAsCe,EAE1C,EAEaE,EAAuCF,GAClDf,IAAwCe"}
@@ -9,7 +9,7 @@ export interface PlayerKeyboardShortcutEventLike {
9
9
  shiftKey?: boolean;
10
10
  target?: EventTarget | null;
11
11
  }
12
- export declare const getPlayerKeyboardShortcutAction: (event: PlayerKeyboardShortcutEventLike) => PlayerKeyboardShortcutAction | null;
12
+ export declare const getPlayerKeyboardShortcutAction: (event: PlayerKeyboardShortcutEventLike, direction?: "ltr" | "rtl") => PlayerKeyboardShortcutAction | null;
13
13
  export declare const isPlayerKeyboardShortcutEditableTarget: (target: EventTarget | null | undefined) => boolean;
14
14
  export declare const isPlayerKeyboardShortcutNativeSpaceTarget: (target: EventTarget | null | undefined) => boolean;
15
15
  export declare const shouldIgnorePlayerKeyboardShortcutEvent: (event: PlayerKeyboardShortcutEventLike, action: PlayerKeyboardShortcutAction | null) => boolean;
@@ -1,16 +1,16 @@
1
- const u = 'input, textarea, select, [contenteditable]:not([contenteditable="false"]), [role="textbox"], [role="slider"], [role="listbox"], [role="combobox"], [role="tablist"], [role="menu"], [role="tree"], [role="grid"], [data-player-keyboard-shortcuts-ignore="true"]', c = "button, [role='button']", a = /* @__PURE__ */ new Set();
2
- let r = null;
1
+ const u = 'input, textarea, select, [contenteditable]:not([contenteditable="false"]), [role="textbox"], [role="slider"], [role="listbox"], [role="combobox"], [role="tablist"], [role="menu"], [role="tree"], [role="grid"], [data-player-keyboard-shortcuts-ignore="true"]', s = "button, [role='button']", o = /* @__PURE__ */ new Set();
2
+ let a = null;
3
3
  const l = (e) => {
4
4
  if (!e || typeof e != "object")
5
5
  return null;
6
6
  const t = e;
7
7
  return t.nodeType === 3 ? t.parentElement ?? null : t;
8
- }, d = (e) => {
8
+ }, d = (e, t = "ltr") => {
9
9
  if (e.altKey || e.ctrlKey || e.metaKey)
10
10
  return null;
11
- const t = e.key.toLowerCase();
11
+ const r = e.key.toLowerCase();
12
12
  if (e.shiftKey)
13
- switch (t) {
13
+ switch (r) {
14
14
  case "arrowleft":
15
15
  return "previousSubtitle";
16
16
  case "arrowright":
@@ -18,13 +18,13 @@ const l = (e) => {
18
18
  default:
19
19
  return null;
20
20
  }
21
- if (e.code === "Space" || t === " " || t === "spacebar")
21
+ if (e.code === "Space" || r === " " || r === "spacebar")
22
22
  return "togglePlayback";
23
- switch (t) {
23
+ switch (r) {
24
24
  case "arrowleft":
25
- return "previous";
25
+ return t === "rtl" ? "next" : "previous";
26
26
  case "arrowright":
27
- return "next";
27
+ return t === "rtl" ? "previous" : "next";
28
28
  case "f":
29
29
  return "fullscreen";
30
30
  case "c":
@@ -34,32 +34,32 @@ const l = (e) => {
34
34
  default:
35
35
  return null;
36
36
  }
37
- }, s = (e) => {
37
+ }, c = (e) => {
38
38
  const t = l(e);
39
39
  if (!t)
40
40
  return !1;
41
- const o = t.tagName?.toLowerCase();
42
- if (o === "input" || o === "textarea" || o === "select" || t.isContentEditable)
41
+ const r = t.tagName?.toLowerCase();
42
+ if (r === "input" || r === "textarea" || r === "select" || t.isContentEditable)
43
43
  return !0;
44
44
  const n = t.getAttribute?.("contenteditable");
45
45
  return n != null ? n.toLowerCase() !== "false" : !!t.closest?.(u);
46
46
  }, i = (e) => {
47
47
  const t = l(e);
48
- return t ? t.tagName?.toLowerCase() === "button" ? !0 : !!t.closest?.(c) : !1;
49
- }, b = (e, t) => e.defaultPrevented || !t || s(e.target) ? !0 : t === "togglePlayback" && i(e.target), f = (e) => (a.add(e), (!r || !a.has(r)) && (r = e), () => {
50
- a.delete(e), r === e && (r = a.values().next().value ?? null);
48
+ return t ? t.tagName?.toLowerCase() === "button" ? !0 : !!t.closest?.(s) : !1;
49
+ }, b = (e, t) => e.defaultPrevented || !t || c(e.target) ? !0 : t === "togglePlayback" && i(e.target), f = (e) => (o.add(e), (!a || !o.has(a)) && (a = e), () => {
50
+ o.delete(e), a === e && (a = o.values().next().value ?? null);
51
51
  }), y = (e) => {
52
- if (a.size === 0) {
53
- r = e;
52
+ if (o.size === 0) {
53
+ a = e;
54
54
  return;
55
55
  }
56
- a.has(e) && (r = e);
57
- }, g = (e) => r === e;
56
+ o.has(e) && (a = e);
57
+ }, g = (e) => a === e;
58
58
  export {
59
59
  y as activatePlayerKeyboardShortcutOwner,
60
60
  d as getPlayerKeyboardShortcutAction,
61
61
  g as isActivePlayerKeyboardShortcutOwner,
62
- s as isPlayerKeyboardShortcutEditableTarget,
62
+ c as isPlayerKeyboardShortcutEditableTarget,
63
63
  i as isPlayerKeyboardShortcutNativeSpaceTarget,
64
64
  f as registerPlayerKeyboardShortcutOwner,
65
65
  b as shouldIgnorePlayerKeyboardShortcutEvent
@@ -1 +1 @@
1
- {"version":3,"file":"playerKeyboardShortcuts.es.js","sources":["../../../../src/components/Slide/utils/playerKeyboardShortcuts.ts"],"sourcesContent":["export type PlayerKeyboardShortcutAction =\n | \"togglePlayback\"\n | \"previous\"\n | \"next\"\n | \"previousSubtitle\"\n | \"nextSubtitle\"\n | \"fullscreen\"\n | \"subtitle\"\n | \"interaction\";\n\nexport interface PlayerKeyboardShortcutEventLike {\n altKey?: boolean;\n code?: string;\n ctrlKey?: boolean;\n defaultPrevented?: boolean;\n key: string;\n metaKey?: boolean;\n shiftKey?: boolean;\n target?: EventTarget | null;\n}\n\ntype KeyboardShortcutTarget = EventTarget & {\n closest?: (selectors: string) => unknown;\n getAttribute?: (qualifiedName: string) => string | null;\n isContentEditable?: boolean;\n nodeType?: number;\n parentElement?: Element | null;\n tagName?: string;\n};\n\nconst EDITABLE_SELECTOR =\n 'input, textarea, select, [contenteditable]:not([contenteditable=\"false\"]), [role=\"textbox\"], [role=\"slider\"], [role=\"listbox\"], [role=\"combobox\"], [role=\"tablist\"], [role=\"menu\"], [role=\"tree\"], [role=\"grid\"], [data-player-keyboard-shortcuts-ignore=\"true\"]';\n\nconst NATIVE_SPACE_TARGET_SELECTOR = \"button, [role='button']\";\n\nconst playerKeyboardShortcutOwners = new Set<string>();\nlet activePlayerKeyboardShortcutOwnerId: string | null = null;\n\nconst getTargetCandidate = (\n target: EventTarget | null | undefined\n): KeyboardShortcutTarget | null => {\n if (!target || typeof target !== \"object\") {\n return null;\n }\n\n const candidate = target as KeyboardShortcutTarget;\n\n if (candidate.nodeType === 3) {\n return (candidate.parentElement as KeyboardShortcutTarget | null) ?? null;\n }\n\n return candidate;\n};\n\nexport const getPlayerKeyboardShortcutAction = (\n event: PlayerKeyboardShortcutEventLike\n): PlayerKeyboardShortcutAction | null => {\n if (event.altKey || event.ctrlKey || event.metaKey) {\n return null;\n }\n\n const normalizedKey = event.key.toLowerCase();\n\n if (event.shiftKey) {\n switch (normalizedKey) {\n case \"arrowleft\":\n return \"previousSubtitle\";\n case \"arrowright\":\n return \"nextSubtitle\";\n default:\n return null;\n }\n }\n\n if (\n event.code === \"Space\" ||\n normalizedKey === \" \" ||\n normalizedKey === \"spacebar\"\n ) {\n return \"togglePlayback\";\n }\n\n switch (normalizedKey) {\n case \"arrowleft\":\n return \"previous\";\n case \"arrowright\":\n return \"next\";\n case \"f\":\n return \"fullscreen\";\n case \"c\":\n return \"subtitle\";\n case \"n\":\n return \"interaction\";\n default:\n return null;\n }\n};\n\nexport const isPlayerKeyboardShortcutEditableTarget = (\n target: EventTarget | null | undefined\n) => {\n const candidate = getTargetCandidate(target);\n\n if (!candidate) {\n return false;\n }\n\n const tagName = candidate.tagName?.toLowerCase();\n\n if (tagName === \"input\" || tagName === \"textarea\" || tagName === \"select\") {\n return true;\n }\n\n if (candidate.isContentEditable) {\n return true;\n }\n\n const contentEditable = candidate.getAttribute?.(\"contenteditable\");\n\n if (contentEditable !== undefined && contentEditable !== null) {\n return contentEditable.toLowerCase() !== \"false\";\n }\n\n return Boolean(candidate.closest?.(EDITABLE_SELECTOR));\n};\n\nexport const isPlayerKeyboardShortcutNativeSpaceTarget = (\n target: EventTarget | null | undefined\n) => {\n const candidate = getTargetCandidate(target);\n\n if (!candidate) {\n return false;\n }\n\n const tagName = candidate.tagName?.toLowerCase();\n\n if (tagName === \"button\") {\n return true;\n }\n\n return Boolean(candidate.closest?.(NATIVE_SPACE_TARGET_SELECTOR));\n};\n\nexport const shouldIgnorePlayerKeyboardShortcutEvent = (\n event: PlayerKeyboardShortcutEventLike,\n action: PlayerKeyboardShortcutAction | null\n) => {\n if (event.defaultPrevented || !action) {\n return true;\n }\n\n if (isPlayerKeyboardShortcutEditableTarget(event.target)) {\n return true;\n }\n\n return (\n action === \"togglePlayback\" &&\n isPlayerKeyboardShortcutNativeSpaceTarget(event.target)\n );\n};\n\nexport const registerPlayerKeyboardShortcutOwner = (ownerId: string) => {\n playerKeyboardShortcutOwners.add(ownerId);\n\n if (\n !activePlayerKeyboardShortcutOwnerId ||\n !playerKeyboardShortcutOwners.has(activePlayerKeyboardShortcutOwnerId)\n ) {\n activePlayerKeyboardShortcutOwnerId = ownerId;\n }\n\n return () => {\n playerKeyboardShortcutOwners.delete(ownerId);\n\n if (activePlayerKeyboardShortcutOwnerId !== ownerId) {\n return;\n }\n\n activePlayerKeyboardShortcutOwnerId =\n playerKeyboardShortcutOwners.values().next().value ?? null;\n };\n};\n\nexport const activatePlayerKeyboardShortcutOwner = (ownerId: string) => {\n if (playerKeyboardShortcutOwners.size === 0) {\n activePlayerKeyboardShortcutOwnerId = ownerId;\n return;\n }\n\n if (playerKeyboardShortcutOwners.has(ownerId)) {\n activePlayerKeyboardShortcutOwnerId = ownerId;\n }\n};\n\nexport const isActivePlayerKeyboardShortcutOwner = (ownerId: string) =>\n activePlayerKeyboardShortcutOwnerId === ownerId;\n\nexport const resetPlayerKeyboardShortcutOwnersForTest = () => {\n playerKeyboardShortcutOwners.clear();\n activePlayerKeyboardShortcutOwnerId = null;\n};\n"],"names":["EDITABLE_SELECTOR","NATIVE_SPACE_TARGET_SELECTOR","playerKeyboardShortcutOwners","activePlayerKeyboardShortcutOwnerId","getTargetCandidate","target","candidate","getPlayerKeyboardShortcutAction","event","normalizedKey","isPlayerKeyboardShortcutEditableTarget","tagName","contentEditable","isPlayerKeyboardShortcutNativeSpaceTarget","shouldIgnorePlayerKeyboardShortcutEvent","action","registerPlayerKeyboardShortcutOwner","ownerId","activatePlayerKeyboardShortcutOwner","isActivePlayerKeyboardShortcutOwner"],"mappings":"AA8BA,MAAMA,IACJ,oQAEIC,IAA+B,2BAE/BC,wBAAmC,IAAA;AACzC,IAAIC,IAAqD;AAEzD,MAAMC,IAAqB,CACzBC,MACkC;AAClC,MAAI,CAACA,KAAU,OAAOA,KAAW;AAC/B,WAAO;AAGT,QAAMC,IAAYD;AAElB,SAAIC,EAAU,aAAa,IACjBA,EAAU,iBAAmD,OAGhEA;AACT,GAEaC,IAAkC,CAC7CC,MACwC;AACxC,MAAIA,EAAM,UAAUA,EAAM,WAAWA,EAAM;AACzC,WAAO;AAGT,QAAMC,IAAgBD,EAAM,IAAI,YAAA;AAEhC,MAAIA,EAAM;AACR,YAAQC,GAAA;AAAA,MACN,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT;AACE,eAAO;AAAA,IAAA;AAIb,MACED,EAAM,SAAS,WACfC,MAAkB,OAClBA,MAAkB;AAElB,WAAO;AAGT,UAAQA,GAAA;AAAA,IACN,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EAAA;AAEb,GAEaC,IAAyC,CACpDL,MACG;AACH,QAAMC,IAAYF,EAAmBC,CAAM;AAE3C,MAAI,CAACC;AACH,WAAO;AAGT,QAAMK,IAAUL,EAAU,SAAS,YAAA;AAMnC,MAJIK,MAAY,WAAWA,MAAY,cAAcA,MAAY,YAI7DL,EAAU;AACZ,WAAO;AAGT,QAAMM,IAAkBN,EAAU,eAAe,iBAAiB;AAElE,SAAqCM,KAAoB,OAChDA,EAAgB,kBAAkB,UAGpC,EAAQN,EAAU,UAAUN,CAAiB;AACtD,GAEaa,IAA4C,CACvDR,MACG;AACH,QAAMC,IAAYF,EAAmBC,CAAM;AAE3C,SAAKC,IAIWA,EAAU,SAAS,YAAA,MAEnB,WACP,KAGF,EAAQA,EAAU,UAAUL,CAA4B,IATtD;AAUX,GAEaa,IAA0C,CACrDN,GACAO,MAEIP,EAAM,oBAAoB,CAACO,KAI3BL,EAAuCF,EAAM,MAAM,IAC9C,KAIPO,MAAW,oBACXF,EAA0CL,EAAM,MAAM,GAI7CQ,IAAsC,CAACC,OAClDf,EAA6B,IAAIe,CAAO,IAGtC,CAACd,KACD,CAACD,EAA6B,IAAIC,CAAmC,OAErEA,IAAsCc,IAGjC,MAAM;AAGX,EAFAf,EAA6B,OAAOe,CAAO,GAEvCd,MAAwCc,MAI5Cd,IACED,EAA6B,OAAA,EAAS,KAAA,EAAO,SAAS;AAC1D,IAGWgB,IAAsC,CAACD,MAAoB;AACtE,MAAIf,EAA6B,SAAS,GAAG;AAC3C,IAAAC,IAAsCc;AACtC;AAAA,EACF;AAEA,EAAIf,EAA6B,IAAIe,CAAO,MAC1Cd,IAAsCc;AAE1C,GAEaE,IAAsC,CAACF,MAClDd,MAAwCc;"}
1
+ {"version":3,"file":"playerKeyboardShortcuts.es.js","sources":["../../../../src/components/Slide/utils/playerKeyboardShortcuts.ts"],"sourcesContent":["export type PlayerKeyboardShortcutAction =\n | \"togglePlayback\"\n | \"previous\"\n | \"next\"\n | \"previousSubtitle\"\n | \"nextSubtitle\"\n | \"fullscreen\"\n | \"subtitle\"\n | \"interaction\";\n\nexport interface PlayerKeyboardShortcutEventLike {\n altKey?: boolean;\n code?: string;\n ctrlKey?: boolean;\n defaultPrevented?: boolean;\n key: string;\n metaKey?: boolean;\n shiftKey?: boolean;\n target?: EventTarget | null;\n}\n\ntype KeyboardShortcutTarget = EventTarget & {\n closest?: (selectors: string) => unknown;\n getAttribute?: (qualifiedName: string) => string | null;\n isContentEditable?: boolean;\n nodeType?: number;\n parentElement?: Element | null;\n tagName?: string;\n};\n\nconst EDITABLE_SELECTOR =\n 'input, textarea, select, [contenteditable]:not([contenteditable=\"false\"]), [role=\"textbox\"], [role=\"slider\"], [role=\"listbox\"], [role=\"combobox\"], [role=\"tablist\"], [role=\"menu\"], [role=\"tree\"], [role=\"grid\"], [data-player-keyboard-shortcuts-ignore=\"true\"]';\n\nconst NATIVE_SPACE_TARGET_SELECTOR = \"button, [role='button']\";\n\nconst playerKeyboardShortcutOwners = new Set<string>();\nlet activePlayerKeyboardShortcutOwnerId: string | null = null;\n\nconst getTargetCandidate = (\n target: EventTarget | null | undefined\n): KeyboardShortcutTarget | null => {\n if (!target || typeof target !== \"object\") {\n return null;\n }\n\n const candidate = target as KeyboardShortcutTarget;\n\n if (candidate.nodeType === 3) {\n return (candidate.parentElement as KeyboardShortcutTarget | null) ?? null;\n }\n\n return candidate;\n};\n\nexport const getPlayerKeyboardShortcutAction = (\n event: PlayerKeyboardShortcutEventLike,\n direction: \"ltr\" | \"rtl\" = \"ltr\"\n): PlayerKeyboardShortcutAction | null => {\n if (event.altKey || event.ctrlKey || event.metaKey) {\n return null;\n }\n\n const normalizedKey = event.key.toLowerCase();\n\n if (event.shiftKey) {\n switch (normalizedKey) {\n case \"arrowleft\":\n return \"previousSubtitle\";\n case \"arrowright\":\n return \"nextSubtitle\";\n default:\n return null;\n }\n }\n\n if (\n event.code === \"Space\" ||\n normalizedKey === \" \" ||\n normalizedKey === \"spacebar\"\n ) {\n return \"togglePlayback\";\n }\n\n switch (normalizedKey) {\n case \"arrowleft\":\n return direction === \"rtl\" ? \"next\" : \"previous\";\n case \"arrowright\":\n return direction === \"rtl\" ? \"previous\" : \"next\";\n case \"f\":\n return \"fullscreen\";\n case \"c\":\n return \"subtitle\";\n case \"n\":\n return \"interaction\";\n default:\n return null;\n }\n};\n\nexport const isPlayerKeyboardShortcutEditableTarget = (\n target: EventTarget | null | undefined\n) => {\n const candidate = getTargetCandidate(target);\n\n if (!candidate) {\n return false;\n }\n\n const tagName = candidate.tagName?.toLowerCase();\n\n if (tagName === \"input\" || tagName === \"textarea\" || tagName === \"select\") {\n return true;\n }\n\n if (candidate.isContentEditable) {\n return true;\n }\n\n const contentEditable = candidate.getAttribute?.(\"contenteditable\");\n\n if (contentEditable !== undefined && contentEditable !== null) {\n return contentEditable.toLowerCase() !== \"false\";\n }\n\n return Boolean(candidate.closest?.(EDITABLE_SELECTOR));\n};\n\nexport const isPlayerKeyboardShortcutNativeSpaceTarget = (\n target: EventTarget | null | undefined\n) => {\n const candidate = getTargetCandidate(target);\n\n if (!candidate) {\n return false;\n }\n\n const tagName = candidate.tagName?.toLowerCase();\n\n if (tagName === \"button\") {\n return true;\n }\n\n return Boolean(candidate.closest?.(NATIVE_SPACE_TARGET_SELECTOR));\n};\n\nexport const shouldIgnorePlayerKeyboardShortcutEvent = (\n event: PlayerKeyboardShortcutEventLike,\n action: PlayerKeyboardShortcutAction | null\n) => {\n if (event.defaultPrevented || !action) {\n return true;\n }\n\n if (isPlayerKeyboardShortcutEditableTarget(event.target)) {\n return true;\n }\n\n return (\n action === \"togglePlayback\" &&\n isPlayerKeyboardShortcutNativeSpaceTarget(event.target)\n );\n};\n\nexport const registerPlayerKeyboardShortcutOwner = (ownerId: string) => {\n playerKeyboardShortcutOwners.add(ownerId);\n\n if (\n !activePlayerKeyboardShortcutOwnerId ||\n !playerKeyboardShortcutOwners.has(activePlayerKeyboardShortcutOwnerId)\n ) {\n activePlayerKeyboardShortcutOwnerId = ownerId;\n }\n\n return () => {\n playerKeyboardShortcutOwners.delete(ownerId);\n\n if (activePlayerKeyboardShortcutOwnerId !== ownerId) {\n return;\n }\n\n activePlayerKeyboardShortcutOwnerId =\n playerKeyboardShortcutOwners.values().next().value ?? null;\n };\n};\n\nexport const activatePlayerKeyboardShortcutOwner = (ownerId: string) => {\n if (playerKeyboardShortcutOwners.size === 0) {\n activePlayerKeyboardShortcutOwnerId = ownerId;\n return;\n }\n\n if (playerKeyboardShortcutOwners.has(ownerId)) {\n activePlayerKeyboardShortcutOwnerId = ownerId;\n }\n};\n\nexport const isActivePlayerKeyboardShortcutOwner = (ownerId: string) =>\n activePlayerKeyboardShortcutOwnerId === ownerId;\n\nexport const resetPlayerKeyboardShortcutOwnersForTest = () => {\n playerKeyboardShortcutOwners.clear();\n activePlayerKeyboardShortcutOwnerId = null;\n};\n"],"names":["EDITABLE_SELECTOR","NATIVE_SPACE_TARGET_SELECTOR","playerKeyboardShortcutOwners","activePlayerKeyboardShortcutOwnerId","getTargetCandidate","target","candidate","getPlayerKeyboardShortcutAction","event","direction","normalizedKey","isPlayerKeyboardShortcutEditableTarget","tagName","contentEditable","isPlayerKeyboardShortcutNativeSpaceTarget","shouldIgnorePlayerKeyboardShortcutEvent","action","registerPlayerKeyboardShortcutOwner","ownerId","activatePlayerKeyboardShortcutOwner","isActivePlayerKeyboardShortcutOwner"],"mappings":"AA8BA,MAAMA,IACJ,oQAEIC,IAA+B,2BAE/BC,wBAAmC,IAAA;AACzC,IAAIC,IAAqD;AAEzD,MAAMC,IAAqB,CACzBC,MACkC;AAClC,MAAI,CAACA,KAAU,OAAOA,KAAW;AAC/B,WAAO;AAGT,QAAMC,IAAYD;AAElB,SAAIC,EAAU,aAAa,IACjBA,EAAU,iBAAmD,OAGhEA;AACT,GAEaC,IAAkC,CAC7CC,GACAC,IAA2B,UACa;AACxC,MAAID,EAAM,UAAUA,EAAM,WAAWA,EAAM;AACzC,WAAO;AAGT,QAAME,IAAgBF,EAAM,IAAI,YAAA;AAEhC,MAAIA,EAAM;AACR,YAAQE,GAAA;AAAA,MACN,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT;AACE,eAAO;AAAA,IAAA;AAIb,MACEF,EAAM,SAAS,WACfE,MAAkB,OAClBA,MAAkB;AAElB,WAAO;AAGT,UAAQA,GAAA;AAAA,IACN,KAAK;AACH,aAAOD,MAAc,QAAQ,SAAS;AAAA,IACxC,KAAK;AACH,aAAOA,MAAc,QAAQ,aAAa;AAAA,IAC5C,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EAAA;AAEb,GAEaE,IAAyC,CACpDN,MACG;AACH,QAAMC,IAAYF,EAAmBC,CAAM;AAE3C,MAAI,CAACC;AACH,WAAO;AAGT,QAAMM,IAAUN,EAAU,SAAS,YAAA;AAMnC,MAJIM,MAAY,WAAWA,MAAY,cAAcA,MAAY,YAI7DN,EAAU;AACZ,WAAO;AAGT,QAAMO,IAAkBP,EAAU,eAAe,iBAAiB;AAElE,SAAqCO,KAAoB,OAChDA,EAAgB,kBAAkB,UAGpC,EAAQP,EAAU,UAAUN,CAAiB;AACtD,GAEac,IAA4C,CACvDT,MACG;AACH,QAAMC,IAAYF,EAAmBC,CAAM;AAE3C,SAAKC,IAIWA,EAAU,SAAS,YAAA,MAEnB,WACP,KAGF,EAAQA,EAAU,UAAUL,CAA4B,IATtD;AAUX,GAEac,IAA0C,CACrDP,GACAQ,MAEIR,EAAM,oBAAoB,CAACQ,KAI3BL,EAAuCH,EAAM,MAAM,IAC9C,KAIPQ,MAAW,oBACXF,EAA0CN,EAAM,MAAM,GAI7CS,IAAsC,CAACC,OAClDhB,EAA6B,IAAIgB,CAAO,IAGtC,CAACf,KACD,CAACD,EAA6B,IAAIC,CAAmC,OAErEA,IAAsCe,IAGjC,MAAM;AAGX,EAFAhB,EAA6B,OAAOgB,CAAO,GAEvCf,MAAwCe,MAI5Cf,IACED,EAA6B,OAAA,EAAS,KAAA,EAAO,SAAS;AAC1D,IAGWiB,IAAsC,CAACD,MAAoB;AACtE,MAAIhB,EAA6B,SAAS,GAAG;AAC3C,IAAAC,IAAsCe;AACtC;AAAA,EACF;AAEA,EAAIhB,EAA6B,IAAIgB,CAAO,MAC1Cf,IAAsCe;AAE1C,GAEaE,IAAsC,CAACF,MAClDf,MAAwCe;"}
@@ -1,2 +1,2 @@
1
- import { RunStreamFixtureEvent } from './listenModeElementList';
1
+ import { RunStreamFixtureEvent } from './listenModeElementList.js';
2
2
  export declare const parseRunStreamFixture: (rawText: string) => RunStreamFixtureEvent[];
@@ -1,4 +1,4 @@
1
- import { SlideAudioItem } from '../useSlide';
1
+ import { SlideAudioItem } from '../useSlide.js';
2
2
  export interface SegmentSeekTarget {
3
3
  segmentIndex: number;
4
4
  segmentTimeSeconds: number;
@@ -1,4 +1,4 @@
1
- import { Element } from '../types';
1
+ import { Element } from '../types.js';
2
2
  export interface SilentStepAutoAdvanceDelayParams {
3
3
  currentElementList: Element[];
4
4
  currentStepHasSpeakableElement: boolean;
@@ -1,4 +1,4 @@
1
- import { Element } from '../types';
1
+ import { Element } from '../types.js';
2
2
  interface ResolveNextSlideIndexParams {
3
3
  previousIndex: number;
4
4
  previousSlideElementList: Element[];
@@ -1,4 +1,4 @@
1
- import { ElementSubtitleCue } from '../types';
1
+ import { ElementSubtitleCue } from '../types.js';
2
2
  /** Direction for subtitle cue jump navigation. */
3
3
  export type SubtitleCueJumpDirection = "previous" | "next";
4
4
  export interface SubtitleCueJumpTrack {
@@ -1,4 +1,4 @@
1
- import { Element } from '../types';
1
+ import { Element } from '../types.js';
2
2
  export declare const hasResolvedInteractionElement: (element?: Element) => boolean;
3
3
  export declare const isUnresolvedInteractionElement: (element?: Element) => boolean;
4
4
  export interface CanReachSubtitleJumpTargetOptions {
@@ -1,18 +1,22 @@
1
- export { default as ContentRender } from './ContentRender';
2
- export { default as MarkdownFlow } from './MarkdownFlow';
3
- export { default as ScrollableMarkdownFlow } from './MarkdownFlow/ScrollableMarkdownFlow';
4
- export { default as ScrollToBottomButton } from './MarkdownFlow/ScrollToBottomButton';
5
- export { default as useScrollToBottom } from './MarkdownFlow/useScrollToBottom';
6
- export type { ScrollTarget, ScrollTargetRef, UseScrollToBottomOptions, UseScrollToBottomReturn, } from './MarkdownFlow/useScrollToBottom';
7
- export { default as MarkdownFlowEditor } from './MarkdownFlowEditor';
8
- export { default as Slide } from './Slide';
9
- export { Player, useSlide } from './Slide';
10
- export { getInteractionDefaultValues, getInteractionDefaultSelectedValues, } from '../lib/interaction-defaults';
11
- export type { ContentRenderProps } from './ContentRender/ContentRender';
12
- export type { MarkdownFlowLocale } from '../lib/locale';
13
- export type { OnSendContentParams, CustomRenderBarProps } from './types';
14
- export type { EditMode, UploadProps, ImageResource, } from './MarkdownFlowEditor';
15
- export type { Element, ElementSubtitleCue, SlideInteractionTexts, SlidePlayerControlsVisibility, SlideProps, } from './Slide';
16
- export type { InteractionDefaultResolver, InteractionDefaultResolverParams, InteractionDefaultValueOptions, InteractionDefaultValues, InteractionParseResult, } from '../lib/interaction-defaults';
17
- export type { PlayerProps, SlidePlayerNavigationContext } from './Slide';
18
- export type { UseSlideResult } from './Slide';
1
+ export { default as ContentRender } from './ContentRender/index.js';
2
+ export { default as MarkdownFlow } from './MarkdownFlow/index.js';
3
+ export { default as ScrollableMarkdownFlow } from './MarkdownFlow/ScrollableMarkdownFlow.js';
4
+ export { default as ScrollableMarkdown } from './MarkdownFlow/ScrollableMarkdownFlow.js';
5
+ export { default as ScrollToBottomButton } from './MarkdownFlow/ScrollToBottomButton.js';
6
+ export { default as ScrollToBottomControl } from './MarkdownFlow/ScrollToBottomControl.js';
7
+ export { default as useScrollToBottom } from './MarkdownFlow/useScrollToBottom.js';
8
+ export type { ScrollToBottomButtonProps, ScrollToBottomPlacement, ScrollToBottomPosition, } from './MarkdownFlow/ScrollToBottomButton.js';
9
+ export type { ScrollToBottomControlProps } from './MarkdownFlow/ScrollToBottomControl.js';
10
+ export type { LegacyUseScrollToBottomOptions, PageScrollFallback, ScrollBehavior, ScrollMetrics, ScrollPresentation, ScrollTarget, ScrollTargetInput, ScrollTargetRef, ScrollTargetResolver, UseScrollToBottomOptions, UseScrollToBottomReturn, } from './MarkdownFlow/useScrollToBottom.js';
11
+ export { default as MarkdownFlowEditor } from './MarkdownFlowEditor/index.js';
12
+ export { default as Slide } from './Slide/index.js';
13
+ export { Player, useSlide } from './Slide/index.js';
14
+ export { getInteractionDefaultValues, getInteractionDefaultSelectedValues, } from '../lib/interaction-defaults.js';
15
+ export type { ContentRenderProps } from './ContentRender/ContentRender.js';
16
+ export type { MarkdownFlowLocale } from '../lib/locale.js';
17
+ export type { OnSendContentParams, CustomRenderBarProps } from './types.js';
18
+ export type { EditMode, UploadProps, ImageResource, } from './MarkdownFlowEditor/index.js';
19
+ export type { Element, ElementSubtitleCue, SlideInteractionTexts, SlidePlayerControlsVisibility, SlideProps, } from './Slide/index.js';
20
+ export type { InteractionDefaultResolver, InteractionDefaultResolverParams, InteractionDefaultValueOptions, InteractionDefaultValues, InteractionParseResult, } from '../lib/interaction-defaults.js';
21
+ export type { PlayerProps, SlidePlayerNavigationContext } from './Slide/index.js';
22
+ export type { UseSlideResult } from './Slide/index.js';
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("../../_virtual/jsx-runtime.cjs"),d=require("../../node_modules/@radix-ui/react-slot/dist/index.cjs"),u=require("../../node_modules/class-variance-authority/dist/index.cjs"),c=require("../../lib/utils.cjs"),e=u.cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",destructive:"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-8 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9"}},defaultVariants:{variant:"default",size:"default"}});function v({className:t,variant:r,size:n,asChild:i=!1,...s}){const a=i?d.Root:"button";return o.jsxRuntimeExports.jsx(a,{"data-slot":"button",className:c.cn(e({variant:r,size:n,className:t})),...s})}exports.Button=v;exports.buttonVariants=e;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),d=require("../../node_modules/@radix-ui/react-slot/dist/index.cjs"),u=require("../../node_modules/class-variance-authority/dist/index.cjs"),c=require("../../lib/utils.cjs"),e=u.cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",destructive:"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-8 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9"}},defaultVariants:{variant:"default",size:"default"}});function v({className:t,variant:r,size:n,asChild:i=!1,...s}){const a=i?d.Root:"button";return o.jsx(a,{"data-slot":"button",className:c.cn(e({variant:r,size:n,className:t})),...s})}exports.Button=v;exports.buttonVariants=e;
2
2
  //# sourceMappingURL=button.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"button.cjs","sources":["../../../src/components/ui/button.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n {\n variants: {\n variant: {\n default:\n \"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n outline:\n \"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50\",\n secondary:\n \"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80\",\n ghost:\n \"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-8 px-4 py-2 has-[>svg]:px-3\",\n sm: \"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5\",\n lg: \"h-10 rounded-md px-6 has-[>svg]:px-4\",\n icon: \"size-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n);\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean;\n }) {\n const Comp = asChild ? Slot : \"button\";\n\n return (\n <Comp\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n );\n}\n\nexport { Button, buttonVariants };\n"],"names":["buttonVariants","cva","Button","className","variant","size","asChild","props","Comp","Slot","jsx","cn"],"mappings":"+SAMMA,EAAiBC,EAAAA,IACrB,iXACA,CACE,SAAU,CACR,QAAS,CACP,QACE,mEACF,YACE,8JACF,QACE,wIACF,UACE,yEACF,MACE,uEACF,KAAM,iDAAA,EAER,KAAM,CACJ,QAAS,gCACT,GAAI,gDACJ,GAAI,uCACJ,KAAM,QAAA,CACR,EAEF,gBAAiB,CACf,QAAS,UACT,KAAM,SAAA,CACR,CAEJ,EAEA,SAASC,EAAO,CACd,UAAAC,EACA,QAAAC,EACA,KAAAC,EACA,QAAAC,EAAU,GACV,GAAGC,CACL,EAGK,CACH,MAAMC,EAAOF,EAAUG,EAAAA,KAAO,SAE9B,OACEC,EAAAA,kBAAAA,IAACF,EAAA,CACC,YAAU,SACV,UAAWG,EAAAA,GAAGX,EAAe,CAAE,QAAAI,EAAS,KAAAC,EAAM,UAAAF,CAAA,CAAW,CAAC,EACzD,GAAGI,CAAA,CAAA,CAGV"}
1
+ {"version":3,"file":"button.cjs","sources":["../../../src/components/ui/button.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n {\n variants: {\n variant: {\n default:\n \"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n outline:\n \"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50\",\n secondary:\n \"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80\",\n ghost:\n \"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-8 px-4 py-2 has-[>svg]:px-3\",\n sm: \"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5\",\n lg: \"h-10 rounded-md px-6 has-[>svg]:px-4\",\n icon: \"size-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n);\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean;\n }) {\n const Comp = asChild ? Slot : \"button\";\n\n return (\n <Comp\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n );\n}\n\nexport { Button, buttonVariants };\n"],"names":["buttonVariants","cva","Button","className","variant","size","asChild","props","Comp","Slot","jsx","cn"],"mappings":"kSAMMA,EAAiBC,EAAAA,IACrB,iXACA,CACE,SAAU,CACR,QAAS,CACP,QACE,mEACF,YACE,8JACF,QACE,wIACF,UACE,yEACF,MACE,uEACF,KAAM,iDAAA,EAER,KAAM,CACJ,QAAS,gCACT,GAAI,gDACJ,GAAI,uCACJ,KAAM,QAAA,CACR,EAEF,gBAAiB,CACf,QAAS,UACT,KAAM,SAAA,CACR,CAEJ,EAEA,SAASC,EAAO,CACd,UAAAC,EACA,QAAAC,EACA,KAAAC,EACA,QAAAC,EAAU,GACV,GAAGC,CACL,EAGK,CACH,MAAMC,EAAOF,EAAUG,EAAAA,KAAO,SAE9B,OACEC,EAAAA,IAACF,EAAA,CACC,YAAU,SACV,UAAWG,EAAAA,GAAGX,EAAe,CAAE,QAAAI,EAAS,KAAAC,EAAM,UAAAF,CAAA,CAAW,CAAC,EACzD,GAAGI,CAAA,CAAA,CAGV"}