@marimo-team/islands 0.25.3-dev21 → 0.25.3-dev210

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 (717) hide show
  1. package/dist/{ConnectedDataExplorerComponent-DfG3PRaJ.js → ConnectedDataExplorerComponent-D6RHJV8D.js} +120 -116
  2. package/dist/{ErrorBoundary-ttSr7_91.js → ErrorBoundary-VruaQLnK.js} +16 -16
  3. package/dist/{abnfDiagram-VCTEODGH-B3w-XWX8.js → abnfDiagram-VCTEODGH-0q7Lbmii.js} +2 -2
  4. package/dist/any-language-editor-jGaR0EAo.js +75 -0
  5. package/dist/{architectureDiagram-5GKGNRK7-C18U9A6k.js → architectureDiagram-5GKGNRK7-1PydKPmE.js} +1 -1
  6. package/dist/{arrays-CN1djC4k.js → arrays-DoQ-AILx.js} +15 -27
  7. package/dist/assets/__vite-browser-external-CBRgnYY0.js +1 -0
  8. package/dist/assets/worker-DiPNP__U.js +113 -0
  9. package/dist/{button-CvjkwdSk.js → button-B6RjDKJx.js} +227 -217
  10. package/dist/{capabilities-CQ5IjhzL.js → capabilities-CkVzWJEX.js} +2 -2
  11. package/dist/{chat-ui-w8SVynkn.js → chat-ui-B5pH_aXk.js} +1277 -1275
  12. package/dist/{check-BMKBBrdc.js → check-Z_vtI3OL.js} +1 -1
  13. package/dist/{chunk-IMKFNOWR-CrS5bzqW.js → chunk-IMKFNOWR-DEzZZ1Zc.js} +1 -1
  14. package/dist/{chunk-SHT3W25Y-StpvPvUG.js → chunk-SHT3W25Y-CuHj-hnn.js} +1 -1
  15. package/dist/{chunk-SVP7TREG-CBXjbYZC.js → chunk-SVP7TREG-BPiZK2bA.js} +1 -1
  16. package/dist/{chunk-TICWLB2K-Dp6bIb-q.js → chunk-TICWLB2K-DF6XcIjM.js} +1 -1
  17. package/dist/{chunk-YOKDWASO-DPZk8vhS.js → chunk-YOKDWASO-DKplTrBY.js} +20 -20
  18. package/dist/{classDiagram-ZZMXUADV-BFYuxV5g.js → classDiagram-ZZMXUADV-CMdR-cP4.js} +2 -2
  19. package/dist/{classDiagram-v2-VYDZK3BY-D_tjXVMl.js → classDiagram-v2-VYDZK3BY-DRvc3_7Y.js} +2 -2
  20. package/dist/code-visibility-BdFhHfIC.js +134 -0
  21. package/dist/{common-CeebhhhO.js → common-Ce1SgsX1.js} +9837 -9658
  22. package/dist/config-DbjzjwxX.js +636 -0
  23. package/dist/{copy-icon-BgUO8jsi.js → copy-icon-CG57cxwb.js} +3 -3
  24. package/dist/createReducer-DePYJ0F3.js +63 -0
  25. package/dist/{cynefinDiagram-5FMLGOSQ-DSgYrHB2.js → cynefinDiagram-5FMLGOSQ-BkBjEY9l.js} +1 -1
  26. package/dist/{dagre-GXQ25YYZ-GYlruCBf.js → dagre-GXQ25YYZ-D-HEaW4I.js} +1 -1
  27. package/dist/{data-grid-overlay-editor-vxQ4E6k1.js → data-grid-overlay-editor-Bps1p6jQ.js} +5 -5
  28. package/dist/{data-grid-types-BH_r7g7l.js → data-grid-types-0PJ-9N5n.js} +1 -1
  29. package/dist/{diagram-S7CK7UJ4-DRu5LX5_.js → diagram-S7CK7UJ4-Bn-oF-rB.js} +1 -1
  30. package/dist/{diagram-UQ7AKVKN-DD7uiejP.js → diagram-UQ7AKVKN-BpzzXWBj.js} +1 -1
  31. package/dist/{diagram-VX7I27RA-ByH9KAJJ.js → diagram-VX7I27RA-COOtvfBP.js} +1 -1
  32. package/dist/{diagram-Z3DM3KII-BsQHPRke.js → diagram-Z3DM3KII-K5cXvbrl.js} +1 -1
  33. package/dist/{dialog-Cc479ZEH.js → dialog-DsZ49mmU.js} +26 -26
  34. package/dist/{dist-Bvs24R_E.js → dist-11T5wq3_.js} +31 -30
  35. package/dist/{dist-F8Ep36rk.js → dist-17ugwGZc.js} +59 -58
  36. package/dist/{dist-BMQf5zIS.js → dist-7cRjf--y.js} +123 -122
  37. package/dist/{dist-diIx5qJW.js → dist-B8pkfkzc.js} +31 -30
  38. package/dist/{dist-CN_BeG2I.js → dist-B9UoM_wq.js} +58 -57
  39. package/dist/{dist-CLdpGQVr.js → dist-BGuMTs1i.js} +118 -117
  40. package/dist/{dist-BK4Oj99o.js → dist-BHW11fni.js} +18 -17
  41. package/dist/dist-BLY4m1Wi.js +850 -0
  42. package/dist/{dist-PXYI_yuP.js → dist-BNlcVoxs.js} +24 -23
  43. package/dist/{dist-D6d86eNJ.js → dist-BQYe5Bju.js} +47 -46
  44. package/dist/{dist-CkTTIdBe.js → dist-BX1mn8na.js} +337 -337
  45. package/dist/{dist-DiDibOYr.js → dist-Bh0PTKUW.js} +151 -150
  46. package/dist/{dist-CSJ0MDRw.js → dist-CKaXK92p.js} +56 -55
  47. package/dist/{dist-C8fAKSH1.js → dist-CLhwfhpJ.js} +53 -52
  48. package/dist/{dist-DoE4XJBC.js → dist-CYeqK4Xw.js} +9801 -10649
  49. package/dist/{dist-BLfKmR-l.js → dist-Cxlp3WH6.js} +16 -15
  50. package/dist/{dist-D-wwqlzJ.js → dist-DSJPGj42.js} +158 -157
  51. package/dist/{dist-BorMD-uX.js → dist-DU9ICsWZ.js} +75 -74
  52. package/dist/{dist-DBtSl3sf.js → dist-DWv0ALBi.js} +47 -46
  53. package/dist/{dist-OR1OnN-y.js → dist-DiBpWEsB.js} +31 -30
  54. package/dist/{dist-CrSP_H1M.js → dist-DiLFTlnl.js} +242 -242
  55. package/dist/{dist-DpBpA_n1.js → dist-Lm-D-Vr6.js} +3 -3
  56. package/dist/{dist-CSbh1PNP.js → dist-cVDV5IuI.js} +23 -22
  57. package/dist/{dist-BuaRHxOc.js → dist-fRfaOoq8.js} +44 -43
  58. package/dist/{dist-Cg7gzw-a.js → dist-gTTI-9Px.js} +78 -77
  59. package/dist/dropdown-menu-CSNdPSnS.js +6083 -0
  60. package/dist/{ebnfDiagram-PWID7BFC-CQRK5_eT.js → ebnfDiagram-PWID7BFC-BI1ZmjVm.js} +2 -2
  61. package/dist/{erDiagram-RLTQ6QDP-BKtWrDVh.js → erDiagram-RLTQ6QDP-BtWjj9xy.js} +1 -1
  62. package/dist/{error-banner-CFPHFw4h.js → error-banner-IsonnvA0.js} +84 -83
  63. package/dist/error-entries-CRPfxMqm.js +2505 -0
  64. package/dist/{esm-D2gTsXEV.js → esm-BgKjMvWw.js} +530 -529
  65. package/dist/{esm-AMFssoNp.js → esm-CHjVSexr.js} +328 -329
  66. package/dist/feedback-button-2ycmR9GG.js +374 -0
  67. package/dist/{flowDiagram-HODETNUW-1IN-ih2E.js → flowDiagram-HODETNUW-DQvZh96A.js} +2 -2
  68. package/dist/{formats-X4mMQWzX.js → formats-BK4VefeF.js} +6 -6
  69. package/dist/{ganttDiagram-EL5Y4UJY-BQT16JSc.js → ganttDiagram-EL5Y4UJY-Dh_4cBJZ.js} +2 -2
  70. package/dist/{glide-data-editor-CSYHMRDu.js → glide-data-editor-Buj2OZjL.js} +417 -415
  71. package/dist/{glide-utils-DM9zBO4W.js → glide-utils-CQddGpa-.js} +16 -16
  72. package/dist/{globals-Fpiwkv4D.js → globals-B-14fUeb.js} +3 -3
  73. package/dist/{highlighted-body-KPVGNVTW-zwjq21tf.js → highlighted-body-KPVGNVTW-3Ziwfz-V.js} +2 -2
  74. package/dist/{error-entries-Damuuclv.js → html-to-image-CgAnxFi8.js} +26911 -26769
  75. package/dist/{infoDiagram-27XIBGKW-CkB-zr4p.js → infoDiagram-27XIBGKW-BdAObnc_.js} +1 -1
  76. package/dist/{ishikawaDiagram-5VMMS53U-wlyLjBmM.js → ishikawaDiagram-5VMMS53U-DP-jE8dw.js} +1 -1
  77. package/dist/{kanban-definition-UXKFOSKX-C2usY0i-.js → kanban-definition-UXKFOSKX-BkMgPjfm.js} +1 -1
  78. package/dist/{linear-Cnaq3Tfb.js → linear-DWERh7eI.js} +121 -73
  79. package/dist/{loader-BQOfjTIJ.js → loader-BisjOLiW.js} +12 -12
  80. package/dist/main.js +9981 -8001
  81. package/dist/{mermaid-BA-Z6wGL.js → mermaid-B-OFqheA.js} +52 -52
  82. package/dist/mermaid-HWGCJPDP-Du3-HPQA.js +2 -0
  83. package/dist/{mindmap-definition-YA3MSWOX-nKOWS8RR.js → mindmap-definition-YA3MSWOX-Du7toAZX.js} +1 -1
  84. package/dist/{number-overlay-editor-BOjqsq7D.js → number-overlay-editor-ZVFcJ7_u.js} +3 -3
  85. package/dist/{dist-CN8zI-XC.js → objectWithoutPropertiesLoose-ai5NUqGa.js} +262 -240
  86. package/dist/{objects-CzUgoMIF.js → objects-DCmMvZtn.js} +1 -3
  87. package/dist/{once-BtE-wKRL.js → once-NnpX_HnX.js} +1 -1
  88. package/dist/{pegDiagram-XKGWAZYB-Dac9EIKD.js → pegDiagram-XKGWAZYB-CX_729j0.js} +2 -2
  89. package/dist/{pieDiagram-E7YTZNPT-B7S-DsW_.js → pieDiagram-E7YTZNPT-dtTFJcVI.js} +1 -1
  90. package/dist/precisionRound-DhAzeRcm.js +49 -0
  91. package/dist/{process-output-CTPTtxXB.js → process-output-Bmev5azU.js} +4 -4
  92. package/dist/{quadrantDiagram-AXDQQJYC-Ccw0xMjN.js → quadrantDiagram-AXDQQJYC-Blrm7V7_.js} +1 -1
  93. package/dist/{railroadDiagram-O6MQD6OU-Cfa5Q-hr.js → railroadDiagram-O6MQD6OU-Dsc2Cf4c.js} +2 -2
  94. package/dist/{react-vega-BED0DjiB.js → react-vega-C4T9Rb_w.js} +12284 -12270
  95. package/dist/{requirementDiagram-BXWQKSXE-d8zXCJIk.js → requirementDiagram-BXWQKSXE-D3g0c60I.js} +1 -1
  96. package/dist/{reveal-component-Brpo7CP8.js → reveal-component-BWz1KjWe.js} +426 -403
  97. package/dist/schemas-CdscWNy_.js +4747 -0
  98. package/dist/select-BSxlITBo.js +1200 -0
  99. package/dist/{sequenceDiagram-WJ2MYXX4-b6pei3lJ.js → sequenceDiagram-WJ2MYXX4-w1pWbIpk.js} +1 -1
  100. package/dist/{spec-BJzgmvVa.js → spec-Dq8RNplp.js} +41 -11
  101. package/dist/{stateDiagram-D77RDMKH-Be-xSpaZ.js → stateDiagram-D77RDMKH-BCv7kP4H.js} +2 -2
  102. package/dist/{stateDiagram-v2-MP3YSRHH-5Y-FxesJ.js → stateDiagram-v2-MP3YSRHH-D1cTOt0x.js} +2 -2
  103. package/dist/static-state-BldGd99T.js +72 -0
  104. package/dist/strings-BGW-fXVJ.js +507 -0
  105. package/dist/style.css +1 -1
  106. package/dist/{swimlanes-42K2YHIH-nRRl4NU0.js → swimlanes-42K2YHIH-DNO6jDnd.js} +1 -1
  107. package/dist/{swimlanesDiagram-VR7AAH4N-BS79510V.js → swimlanesDiagram-VR7AAH4N-CkSWsxYJ.js} +2 -2
  108. package/dist/{swiper-component-DKntyn8p.js → swiper-component-Dir1o8ml.js} +2 -2
  109. package/dist/{time-BieKwdYS.js → time-BaMbJs4z.js} +18 -18
  110. package/dist/{timeline-definition-24CTP7MA-Cfzf8WPf.js → timeline-definition-24CTP7MA-DQvqGFM9.js} +1 -1
  111. package/dist/toast-BWIPi3aF.js +491 -0
  112. package/dist/{tooltip-CtBZ5q8p.js → tooltip-C3UnvsRe.js} +329 -305
  113. package/dist/use-restore-focus-BWO0z1lo.js +1672 -0
  114. package/dist/{useAsyncData-BD534XmW.js → useAsyncData-DsZMvNXn.js} +15 -14
  115. package/dist/{useDateFormatter-DkajGwwd.js → useDateFormatter-ChB4eyim.js} +2 -2
  116. package/dist/{useDeepCompareMemoize-C72_RNsu.js → useDeepCompareMemoize-KMBBux8C.js} +1 -1
  117. package/dist/{useIframeCapabilities-DBETvvPl.js → useIframeCapabilities-cMNQ80CK.js} +1 -1
  118. package/dist/useLifecycle-BquH9ET-.js +112 -0
  119. package/dist/useTheme-B9C1JIy9.js +307 -0
  120. package/dist/utils-DXkj82sK.js +813 -0
  121. package/dist/{vega-component-DfcYgj-Y.js → vega-component-9NOEITbg.js} +170 -169
  122. package/dist/{vega-embed-container-BNHE18G9.js → vega-embed-container--LYZqguO.js} +2 -2
  123. package/dist/{vega-loader.browser-DNST6uVf.js → vega-loader.browser-B9Pz0EGP.js} +298 -507
  124. package/dist/{vennDiagram-4TSXK5OY-CeY6Z1xZ.js → vennDiagram-4TSXK5OY-BfzXp4SH.js} +1 -1
  125. package/dist/{wardleyDiagram-VM6X3IG4-Cxs9NtVi.js → wardleyDiagram-VM6X3IG4-CiqEE8eq.js} +1 -1
  126. package/dist/{xychartDiagram-S5SC5T6Z-DNWbvPK7.js → xychartDiagram-S5SC5T6Z-BTIHCVOI.js} +2 -2
  127. package/package.json +16 -20
  128. package/src/__mocks__/document.tsx +63 -0
  129. package/src/__mocks__/notebook.ts +3 -4
  130. package/src/__mocks__/partial.ts +26 -0
  131. package/src/__mocks__/requests.ts +1 -4
  132. package/src/__tests__/main.test.tsx +24 -1
  133. package/src/__tests__/module-entry.test.ts +44 -0
  134. package/src/__tests__/mount.test.ts +1 -21
  135. package/src/__tests__/{host-imports.test.ts → replica-imports.test.ts} +12 -11
  136. package/src/components/ai/__tests__/ai-model-dropdown.test.tsx +63 -0
  137. package/src/components/ai/ai-model-dropdown.tsx +11 -6
  138. package/src/components/app-config/ai-config.tsx +7 -2
  139. package/src/components/app-config/app-config-form.tsx +5 -9
  140. package/src/components/app-config/user-config-form.tsx +35 -56
  141. package/src/components/chat/__tests__/message-queue.test.tsx +17 -0
  142. package/src/components/chat/__tests__/notebook-access-selector.test.tsx +64 -0
  143. package/src/components/chat/acp/__tests__/session-tabs.test.tsx +43 -0
  144. package/src/components/chat/acp/__tests__/state.test.ts +2 -2
  145. package/src/components/chat/acp/blocks.tsx +3 -2
  146. package/src/components/chat/acp/session-tabs.tsx +8 -3
  147. package/src/components/chat/chat-components.tsx +2 -0
  148. package/src/components/chat/chat-panel.tsx +20 -101
  149. package/src/components/chat/chat-utils.ts +4 -8
  150. package/src/components/chat/notebook-access-selector.stories.tsx +22 -0
  151. package/src/components/chat/notebook-access-selector.tsx +100 -0
  152. package/src/components/data-table/TableBottomBar.tsx +4 -1
  153. package/src/components/data-table/TableTopBar.tsx +2 -0
  154. package/src/components/data-table/__tests__/chart-spec-model.test.ts +195 -195
  155. package/src/components/data-table/__tests__/column-explorer.test.tsx +27 -1
  156. package/src/components/data-table/__tests__/columns.test.tsx +105 -0
  157. package/src/components/data-table/__tests__/context-menu-interaction.test.tsx +130 -0
  158. package/src/components/data-table/__tests__/data-table.test.tsx +1 -0
  159. package/src/components/data-table/__tests__/date-popover.test.tsx +72 -0
  160. package/src/components/data-table/__tests__/export-actions.test.tsx +105 -0
  161. package/src/components/data-table/__tests__/keyboard-selection.test.tsx +188 -0
  162. package/src/components/data-table/__tests__/pagination.test.tsx +28 -1
  163. package/src/components/data-table/__tests__/search-highlight.test.tsx +109 -0
  164. package/src/components/data-table/__tests__/url-detector.test.tsx +74 -0
  165. package/src/components/data-table/cell-selection/feature.ts +2 -2
  166. package/src/components/data-table/cell-selection/types.ts +2 -2
  167. package/src/components/data-table/charts/__tests__/chart-panel.test.tsx +74 -1
  168. package/src/components/data-table/charts/__tests__/spec-snapshot.test.ts +20 -20
  169. package/src/components/data-table/charts/__tests__/spec.test.ts +78 -52
  170. package/src/components/data-table/charts/__tests__/storage.test.ts +4 -1
  171. package/src/components/data-table/charts/chart-spec/spec.ts +68 -43
  172. package/src/components/data-table/charts/charts.tsx +40 -30
  173. package/src/components/data-table/charts/storage.ts +16 -5
  174. package/src/components/data-table/column-explorer-panel/column-explorer.tsx +1 -1
  175. package/src/components/data-table/column-summary/chart-spec-model.tsx +23 -16
  176. package/src/components/data-table/column-summary/column-summary.tsx +2 -4
  177. package/src/components/data-table/column-visibility-dropdown.tsx +8 -13
  178. package/src/components/data-table/columns.tsx +45 -46
  179. package/src/components/data-table/context-menu.tsx +36 -20
  180. package/src/components/data-table/data-table.tsx +17 -1
  181. package/src/components/data-table/date-popover.tsx +6 -4
  182. package/src/components/data-table/export-actions.tsx +76 -48
  183. package/src/components/data-table/pagination.tsx +44 -33
  184. package/src/components/data-table/range-focus/atoms.ts +4 -6
  185. package/src/components/data-table/range-focus/use-cell-range-selection.ts +65 -38
  186. package/src/components/data-table/range-focus/use-scroll-into-view.ts +21 -2
  187. package/src/components/data-table/renderers.tsx +16 -7
  188. package/src/components/data-table/row-viewer-panel/__tests__/row-viewer.test.tsx +24 -1
  189. package/src/components/data-table/row-viewer-panel/row-viewer.tsx +4 -4
  190. package/src/components/data-table/search-highlight.tsx +79 -0
  191. package/src/components/data-table/types.ts +1 -0
  192. package/src/components/data-table/url-detector.tsx +49 -9
  193. package/src/components/datasources/__tests__/column-actions.test.tsx +97 -0
  194. package/src/components/datasources/__tests__/column-preview.test.tsx +96 -5
  195. package/src/components/datasources/__tests__/datasources-interactions.test.tsx +181 -0
  196. package/src/components/datasources/__tests__/table-list.test.tsx +118 -0
  197. package/src/components/datasources/__tests__/utils.test.ts +57 -6
  198. package/src/components/datasources/column-preview.tsx +17 -12
  199. package/src/components/datasources/datasources.tsx +56 -43
  200. package/src/components/datasources/utils.ts +32 -23
  201. package/src/components/debugger/debugger-code.tsx +5 -0
  202. package/src/components/dependency-graph/custom-node.tsx +1 -1
  203. package/src/components/dependency-graph/dependency-graph-tree.tsx +8 -8
  204. package/src/components/dependency-graph/elements.ts +24 -21
  205. package/src/components/dependency-graph/minimap-content.tsx +13 -19
  206. package/src/components/dependency-graph/panels.tsx +4 -2
  207. package/src/components/dependency-graph/utils/__tests__/layout.test.ts +18 -11
  208. package/src/components/editor/SortableCell.tsx +1 -3
  209. package/src/components/editor/__tests__/Output.test.tsx +50 -32
  210. package/src/{core/attachments/__tests__/toast.test.tsx → components/editor/__tests__/agent-toast.test.tsx} +1 -1
  211. package/src/components/editor/__tests__/data-attributes.test.tsx +28 -14
  212. package/src/components/editor/__tests__/dynamic-favicon.test.tsx +111 -18
  213. package/src/components/editor/__tests__/output-persistence.test.tsx +6 -2
  214. package/src/components/editor/__tests__/package-alert.test.tsx +22 -1
  215. package/src/components/editor/actions/__tests__/name-cell-input.test.tsx +69 -0
  216. package/src/components/editor/actions/__tests__/pair-with-agent-modal.test.tsx +34 -8
  217. package/src/components/editor/actions/__tests__/pair-with-agent.test.tsx +2 -6
  218. package/src/components/editor/actions/__tests__/useCellActionButton.test.tsx +113 -0
  219. package/src/components/editor/actions/name-cell-input.tsx +4 -3
  220. package/src/components/editor/actions/pair-with-agent-commands.ts +2 -2
  221. package/src/components/editor/actions/pair-with-agent-modal.tsx +19 -16
  222. package/src/components/editor/actions/useCellActionButton.tsx +36 -31
  223. package/src/components/editor/actions/useConfigActions.tsx +3 -4
  224. package/src/components/editor/actions/useNotebookActions.tsx +19 -23
  225. package/src/components/editor/actions/useRestartKernel.tsx +1 -1
  226. package/src/components/editor/actions/useSetCodeVisibility.ts +11 -12
  227. package/src/components/editor/actions/useSetOutputsExpanded.ts +14 -19
  228. package/src/components/editor/ai/add-cell-with-ai.tsx +3 -3
  229. package/src/components/editor/ai/ai-completion-editor.tsx +1 -0
  230. package/src/components/editor/alerts/__tests__/connection-notice.test.tsx +1 -1
  231. package/src/components/editor/alerts/connection-notice.tsx +1 -1
  232. package/src/components/editor/alerts/startup-logs-alert.tsx +1 -0
  233. package/src/components/editor/alerts/stdin-blocking-alert.tsx +1 -1
  234. package/src/components/editor/app-container.tsx +1 -1
  235. package/src/components/editor/boundary/__tests__/ErrorBoundary.test.tsx +1 -1
  236. package/src/components/editor/cell/CreateCellButton.tsx +15 -21
  237. package/src/components/editor/cell/DeleteButton.tsx +3 -2
  238. package/src/components/editor/cell/RunButton.tsx +2 -2
  239. package/src/components/editor/cell/StagedAICell.tsx +10 -2
  240. package/src/components/editor/cell/StopButton.tsx +2 -2
  241. package/src/components/editor/cell/__tests__/StagedAICell.test.tsx +4 -2
  242. package/src/components/editor/cell/__tests__/useShouldShowInterrupt.test.ts +39 -0
  243. package/src/components/editor/cell/cell-actions.tsx +12 -1
  244. package/src/components/editor/cell/code/__tests__/language-toggle.test.tsx +54 -0
  245. package/src/components/editor/cell/code/cell-editor.tsx +46 -165
  246. package/src/components/editor/cell/code/language-toggle.tsx +8 -7
  247. package/src/components/editor/cell/collapse.tsx +11 -4
  248. package/src/components/editor/cell/useAddCell.ts +4 -8
  249. package/src/components/editor/cell/useDeleteCell.tsx +10 -36
  250. package/src/components/editor/cell/useRunCells.ts +2 -5
  251. package/src/components/editor/cell/useShouldShowInterrupt.ts +2 -12
  252. package/src/components/editor/cell/useSplitCell.tsx +10 -6
  253. package/src/components/editor/chrome/components/__tests__/feedback-button.test.tsx +1 -1
  254. package/src/components/editor/chrome/components/feedback-button.tsx +2 -8
  255. package/src/components/editor/chrome/panels/__tests__/packages-panel.test.tsx +31 -2
  256. package/src/components/editor/chrome/panels/__tests__/runtime-details.test.tsx +1 -1
  257. package/src/components/editor/chrome/panels/__tests__/sandbox-recovery.test.tsx +1 -1
  258. package/src/components/editor/chrome/panels/cache-panel.tsx +1 -0
  259. package/src/components/editor/chrome/panels/dependency-graph-panel.tsx +1 -1
  260. package/src/components/editor/chrome/panels/logs-panel.tsx +2 -1
  261. package/src/components/editor/chrome/panels/outline/__tests__/outline-keyboard.test.tsx +84 -0
  262. package/src/components/editor/chrome/panels/outline/floating-outline.tsx +39 -14
  263. package/src/components/editor/chrome/panels/outline/useActiveOutline.tsx +3 -2
  264. package/src/components/editor/chrome/panels/packages-panel.tsx +4 -7
  265. package/src/components/editor/chrome/panels/secrets-panel.tsx +1 -0
  266. package/src/components/editor/chrome/panels/session-panel.tsx +1 -1
  267. package/src/components/editor/chrome/panels/snippets-panel.tsx +10 -12
  268. package/src/components/editor/chrome/panels/variable-panel.tsx +1 -5
  269. package/src/components/editor/chrome/wrapper/__tests__/attachment-status.test.tsx +6 -9
  270. package/src/components/editor/chrome/wrapper/__tests__/document-sync-status.test.tsx +92 -0
  271. package/src/components/editor/chrome/wrapper/__tests__/pending-ai-cells.test.tsx +62 -3
  272. package/src/components/editor/chrome/wrapper/footer-items/attachment-status.tsx +4 -4
  273. package/src/components/editor/chrome/wrapper/footer-items/backend-status.tsx +1 -1
  274. package/src/components/editor/chrome/wrapper/footer-items/document-sync-status.tsx +54 -0
  275. package/src/components/editor/chrome/wrapper/footer-items/lsp-status.tsx +1 -1
  276. package/src/components/editor/chrome/wrapper/footer-items/machine-stats.tsx +1 -1
  277. package/src/components/editor/chrome/wrapper/footer-items/runtime-settings.tsx +1 -7
  278. package/src/components/editor/chrome/wrapper/footer.tsx +2 -2
  279. package/src/components/editor/chrome/wrapper/minimap-state.ts +1 -1
  280. package/src/components/editor/chrome/wrapper/pending-ai-cells.tsx +12 -2
  281. package/src/components/editor/chrome/wrapper/storage.ts +1 -1
  282. package/src/components/editor/columns/__tests__/cell-column.test.tsx +1 -1
  283. package/src/components/editor/columns/cell-column.tsx +1 -1
  284. package/src/components/editor/columns/sortable-column.tsx +2 -2
  285. package/src/components/editor/connections/components.tsx +5 -10
  286. package/src/components/editor/controls/Controls.tsx +4 -4
  287. package/src/components/editor/controls/__tests__/command-palette.test.tsx +53 -0
  288. package/src/components/editor/controls/__tests__/keyboard-shortcuts.test.tsx +61 -0
  289. package/src/components/editor/controls/__tests__/notebook-menu-dropdown.test.tsx +10 -4
  290. package/src/components/editor/controls/command-palette.tsx +22 -10
  291. package/src/components/editor/controls/keyboard-shortcuts.tsx +14 -5
  292. package/src/components/editor/documentation.css +34 -11
  293. package/src/components/editor/dynamic-favicon.tsx +21 -40
  294. package/src/components/editor/errors/__tests__/send-error-report-button.test.tsx +25 -20
  295. package/src/components/editor/errors/auto-fix.tsx +4 -8
  296. package/src/components/editor/errors/send-error-report-button.tsx +3 -6
  297. package/src/components/editor/file-tree/__tests__/file-explorer-interactions.test.tsx +6 -0
  298. package/src/components/editor/file-tree/__tests__/file-explorer-navigation.test.tsx +47 -0
  299. package/src/components/editor/file-tree/__tests__/use-file-search.test.tsx +91 -0
  300. package/src/components/editor/file-tree/file-explorer.tsx +48 -15
  301. package/src/components/editor/file-tree/file-name-input.tsx +1 -0
  302. package/src/components/editor/file-tree/file-viewer.tsx +4 -2
  303. package/src/components/editor/file-tree/use-file-search.ts +35 -21
  304. package/src/components/editor/header/__tests__/filename-form.test.tsx +1 -4
  305. package/src/components/editor/header/__tests__/status.test.tsx +5 -3
  306. package/src/components/editor/header/app-header.tsx +1 -1
  307. package/src/components/editor/header/filename-form.tsx +1 -1
  308. package/src/components/editor/header/status.tsx +40 -20
  309. package/src/components/editor/links/__tests__/cell-link.test.tsx +148 -0
  310. package/src/components/editor/links/cell-link-list.tsx +1 -1
  311. package/src/components/editor/links/cell-link.tsx +17 -7
  312. package/src/components/editor/navigation/__tests__/clipboard.test.ts +60 -38
  313. package/src/components/editor/navigation/__tests__/navigation.test.ts +108 -85
  314. package/src/components/editor/navigation/__tests__/selection.test.ts +43 -21
  315. package/src/components/editor/navigation/clipboard.ts +17 -14
  316. package/src/components/editor/navigation/focus-utils.ts +23 -4
  317. package/src/components/editor/navigation/multi-cell-action-toolbar.tsx +17 -33
  318. package/src/components/editor/navigation/navigation.ts +71 -70
  319. package/src/components/editor/navigation/selection.ts +30 -29
  320. package/src/components/editor/notebook-banner.tsx +1 -0
  321. package/src/components/editor/notebook-cell.tsx +29 -32
  322. package/src/components/editor/output/MarimoErrorOutput.tsx +2 -1
  323. package/src/components/editor/output/MarimoTracebackOutput.tsx +19 -17
  324. package/src/components/editor/output/Outputs.css +8 -0
  325. package/src/components/editor/output/__tests__/traceback.test.tsx +27 -1
  326. package/src/components/editor/output/ansi-reduce.ts +33 -20
  327. package/src/components/editor/output/console/ConsoleOutput.tsx +19 -25
  328. package/src/components/editor/output/console/__tests__/ConsoleOutput.test.tsx +125 -69
  329. package/src/components/editor/package-alert.tsx +14 -7
  330. package/src/components/editor/renderers/cell-array.tsx +22 -33
  331. package/src/components/editor/renderers/grid-layout/grid-layout.tsx +12 -6
  332. package/src/components/editor/renderers/slides-layout/__tests__/plugin.test.ts +0 -1
  333. package/src/components/editor/renderers/slides-layout/slides-layout.tsx +1 -1
  334. package/src/components/editor/renderers/vertical-layout/__tests__/useFocusFirstEditor.test.ts +4 -4
  335. package/src/components/editor/renderers/vertical-layout/sidebar/toggle.tsx +7 -1
  336. package/src/components/editor/renderers/vertical-layout/useFocusFirstEditor.ts +1 -1
  337. package/src/components/editor/renderers/vertical-layout/vertical-layout.tsx +1 -1
  338. package/src/components/editor/stdin-blocking-alert.tsx +1 -1
  339. package/src/components/home/components.tsx +17 -31
  340. package/src/components/icons/__tests__/large-spinner.test.tsx +39 -0
  341. package/src/components/icons/large-spinner.tsx +3 -14
  342. package/src/components/icons/spinner.tsx +1 -1
  343. package/src/components/markdown/markdown-renderer.tsx +4 -8
  344. package/src/components/mcp/mcp-status-indicator.tsx +1 -1
  345. package/src/components/pages/__tests__/home-page.test.tsx +116 -0
  346. package/src/components/pages/edit-page.tsx +19 -17
  347. package/src/components/pages/home-page.tsx +164 -91
  348. package/src/components/scratchpad/scratchpad.test.tsx +89 -0
  349. package/src/components/scratchpad/scratchpad.tsx +43 -32
  350. package/src/components/scratchpad/state.ts +7 -0
  351. package/src/components/slides/__tests__/minimap-actions.test.tsx +22 -29
  352. package/src/components/slides/__tests__/minimap.test.ts +38 -19
  353. package/src/components/slides/__tests__/slide-scroll-hint.test.tsx +37 -0
  354. package/src/components/slides/minimap.tsx +17 -12
  355. package/src/components/slides/reveal-component.tsx +58 -26
  356. package/src/components/slides/reveal-slides.css +5 -4
  357. package/src/components/slides/slide-cell-view.tsx +4 -5
  358. package/src/components/slides/slide-form.tsx +1 -0
  359. package/src/components/slides/slide-scroll-hint.tsx +3 -1
  360. package/src/components/sort/SortableCellsProvider.tsx +8 -25
  361. package/src/components/tracing/tracing-keyboard.test.tsx +85 -0
  362. package/src/components/tracing/tracing.tsx +46 -42
  363. package/src/components/ui/__tests__/draggable-popover.test.tsx +24 -0
  364. package/src/components/ui/__tests__/range-slider.test.tsx +165 -0
  365. package/src/components/ui/alert-dialog.tsx +1 -1
  366. package/src/components/ui/draggable-popover.tsx +24 -2
  367. package/src/components/ui/range-slider.tsx +22 -9
  368. package/src/core/MarimoApp.tsx +1 -1
  369. package/src/core/ai/__tests__/staged-cells.test.ts +32 -33
  370. package/src/core/ai/context/providers/__tests__/cell-output.test.ts +8 -12
  371. package/src/core/ai/context/providers/cell-output.ts +2 -2
  372. package/src/core/ai/context/providers/datasource.ts +6 -2
  373. package/src/core/ai/staged-cells.ts +18 -19
  374. package/src/core/ai/tools/__tests__/edit-notebook-tool.test.ts +40 -88
  375. package/src/core/ai/tools/__tests__/registry.test.ts +17 -0
  376. package/src/core/ai/tools/base.ts +18 -15
  377. package/src/core/ai/tools/edit-notebook-tool.ts +86 -80
  378. package/src/core/ai/tools/registry.ts +13 -10
  379. package/src/core/ai/tools/sample-tool.ts +6 -7
  380. package/src/core/cells/__tests__/__snapshots__/cells.test.ts.snap +4 -37
  381. package/src/core/cells/__tests__/actions.test.ts +624 -35
  382. package/src/core/cells/__tests__/add-missing-import.test.ts +7 -8
  383. package/src/core/cells/__tests__/arrange.test.ts +432 -0
  384. package/src/core/cells/__tests__/cell.test.ts +39 -0
  385. package/src/core/cells/__tests__/cells.test.ts +251 -2540
  386. package/src/core/cells/__tests__/collapseConsoleOutputs.test.ts +54 -0
  387. package/src/core/cells/__tests__/document.test.ts +164 -0
  388. package/src/core/cells/__tests__/editor.test.ts +57 -0
  389. package/src/core/cells/__tests__/flush-document.test.ts +40 -0
  390. package/src/core/cells/__tests__/harness.ts +106 -0
  391. package/src/core/cells/__tests__/layout.test.ts +177 -0
  392. package/src/core/cells/__tests__/notebook-outline.test.ts +122 -0
  393. package/src/core/cells/__tests__/outputs.test.tsx +71 -53
  394. package/src/core/cells/__tests__/session.test.ts +445 -211
  395. package/src/core/cells/__tests__/utils.test.ts +9 -108
  396. package/src/core/cells/actions.ts +675 -6
  397. package/src/core/cells/add-missing-import.ts +47 -43
  398. package/src/core/cells/arrange.ts +529 -0
  399. package/src/core/cells/cell.ts +14 -3
  400. package/src/core/cells/cells.ts +126 -1363
  401. package/src/core/cells/columns.ts +38 -0
  402. package/src/core/cells/document.ts +178 -0
  403. package/src/core/cells/edit.ts +30 -0
  404. package/src/core/cells/editor.ts +82 -0
  405. package/src/core/cells/layout.ts +221 -0
  406. package/src/core/cells/outputs.ts +12 -28
  407. package/src/core/cells/pending-delete-service.ts +3 -7
  408. package/src/core/cells/session.ts +76 -53
  409. package/src/core/cells/types.ts +22 -6
  410. package/src/core/cells/utils.ts +10 -8
  411. package/src/core/codemirror/__tests__/format.test.ts +0 -34
  412. package/src/core/codemirror/__tests__/setup.test.ts +29 -29
  413. package/src/core/codemirror/ai/__tests__/resources.test.ts +117 -0
  414. package/src/core/codemirror/ai/resources.ts +1 -1
  415. package/src/core/codemirror/cells/__tests__/extensions.test.ts +2 -6
  416. package/src/core/codemirror/cells/extensions.ts +30 -28
  417. package/src/core/codemirror/cells/state.ts +1 -6
  418. package/src/core/codemirror/copilot/__tests__/getCodes.test.ts +6 -7
  419. package/src/core/codemirror/copilot/getCodes.ts +2 -2
  420. package/src/core/codemirror/format.ts +6 -23
  421. package/src/core/codemirror/keymaps/vim.ts +4 -8
  422. package/src/core/codemirror/language/__tests__/sql.test.ts +22 -20
  423. package/src/core/codemirror/language/__tests__/utils.test.ts +187 -15
  424. package/src/core/codemirror/language/cell-code.ts +114 -0
  425. package/src/core/codemirror/language/extension.ts +52 -35
  426. package/src/core/codemirror/language/languages/markdown.ts +8 -6
  427. package/src/core/codemirror/language/languages/python.ts +16 -10
  428. package/src/core/codemirror/language/languages/sql/sql.ts +16 -24
  429. package/src/core/codemirror/language/panel/panel.tsx +1 -0
  430. package/src/core/codemirror/language/types.ts +7 -7
  431. package/src/core/codemirror/language/utils.ts +9 -39
  432. package/src/core/codemirror/lsp/__tests__/notebook-lsp.test.ts +1 -2
  433. package/src/core/codemirror/lsp/notebook-lsp.ts +6 -5
  434. package/src/core/codemirror/lsp/utils.ts +1 -1
  435. package/src/core/codemirror/misc/__tests__/paste.test.ts +3 -1
  436. package/src/core/codemirror/misc/paste.ts +1 -1
  437. package/src/core/codemirror/readonly/__tests__/extension.test.ts +1 -1
  438. package/src/core/codemirror/readonly/extension.ts +2 -2
  439. package/src/core/codemirror/utils.ts +1 -0
  440. package/src/core/config/__tests__/app-config.test.ts +64 -0
  441. package/src/core/config/__tests__/config-schema.test.ts +13 -6
  442. package/src/core/config/config-schema.ts +13 -4
  443. package/src/core/config/config.ts +26 -12
  444. package/src/core/config/feature-flag.tsx +0 -2
  445. package/src/core/datasets/__tests__/data-source-discovery.test.ts +5 -5
  446. package/src/core/datasets/data-source-discovery.ts +4 -6
  447. package/src/core/documentation/doc-lookup.ts +1 -1
  448. package/src/core/edit-app.tsx +21 -28
  449. package/src/core/errors/error-entries.ts +4 -1
  450. package/src/core/export/hooks.ts +1 -1
  451. package/src/core/export/layout.ts +2 -2
  452. package/src/core/hotkeys/actions.ts +2 -4
  453. package/src/core/islands/__tests__/bootstrap.test.ts +69 -17
  454. package/src/core/islands/__tests__/bridge.test.ts +72 -25
  455. package/src/core/islands/bootstrap.ts +46 -53
  456. package/src/core/islands/bridge.ts +75 -24
  457. package/src/core/islands/components/__tests__/IslandControls.test.tsx +7 -5
  458. package/src/core/islands/components/web-components.tsx +1 -1
  459. package/src/core/islands/worker/__tests__/controller.test.ts +62 -4
  460. package/src/core/islands/worker/controller.ts +4 -10
  461. package/src/core/islands/worker/worker.tsx +33 -33
  462. package/src/core/kernel/__tests__/RuntimeState.test.ts +1 -1
  463. package/src/core/kernel/__tests__/handlers.test.ts +7 -153
  464. package/src/core/kernel/handlers.ts +19 -72
  465. package/src/core/meta/__tests__/code-visibility.test.tsx +78 -70
  466. package/src/core/meta/code-visibility.ts +18 -9
  467. package/src/core/network/__tests__/connection.test.ts +1 -1
  468. package/src/core/network/__tests__/requests-lazy.test.ts +1 -3
  469. package/src/core/network/connection-notice.ts +1 -1
  470. package/src/core/network/connection.ts +1 -1
  471. package/src/core/network/requests-lazy.ts +2 -5
  472. package/src/core/network/requests-network.ts +5 -31
  473. package/src/core/network/requests-static.ts +1 -4
  474. package/src/core/network/requests-toasting.tsx +1 -4
  475. package/src/core/network/types.ts +6 -14
  476. package/src/core/network/useConnectionNotice.ts +8 -2
  477. package/src/core/notebook/__tests__/operations.test.ts +51 -0
  478. package/src/core/notebook/attachments.ts +38 -0
  479. package/src/core/notebook/document/__tests__/codemirror.test.ts +758 -0
  480. package/src/core/notebook/document/__tests__/draft.test.ts +363 -0
  481. package/src/core/notebook/document/__tests__/fixtures.ts +92 -0
  482. package/src/core/notebook/document/__tests__/hooks.test.tsx +391 -0
  483. package/src/core/notebook/document/__tests__/lifecycle-scenarios.test.ts +61 -0
  484. package/src/core/notebook/document/__tests__/model.test.ts +247 -0
  485. package/src/core/notebook/document/__tests__/protocol-fixtures.ts +38 -0
  486. package/src/core/notebook/document/__tests__/recovery-scenarios.test.ts +230 -0
  487. package/src/core/notebook/document/__tests__/scenario-fixture.ts +43 -0
  488. package/src/core/notebook/document/__tests__/scenarios.test.ts +205 -0
  489. package/src/core/notebook/document/__tests__/state.test.ts +459 -0
  490. package/src/core/notebook/document/__tests__/submission.test.ts +203 -0
  491. package/src/core/notebook/document/__tests__/test-host.test.ts +92 -0
  492. package/src/core/notebook/document/__tests__/test-host.ts +247 -0
  493. package/src/core/notebook/document/__tests__/test-notebook.ts +149 -0
  494. package/src/core/notebook/document/__tests__/user.ts +61 -0
  495. package/src/core/notebook/document/codemirror.ts +216 -0
  496. package/src/core/notebook/document/draft.ts +502 -0
  497. package/src/core/notebook/document/hooks.tsx +118 -0
  498. package/src/core/notebook/document/index.ts +24 -0
  499. package/src/core/notebook/document/model.ts +102 -0
  500. package/src/core/notebook/document/select.ts +41 -0
  501. package/src/core/notebook/document/state.ts +378 -0
  502. package/src/core/notebook/document/sync.ts +369 -0
  503. package/src/core/notebook/index.ts +19 -0
  504. package/src/core/notebook/operations.ts +30 -0
  505. package/src/core/notebook/replica/AGENTS.md +11 -0
  506. package/src/core/{host → notebook/replica}/__tests__/attachments.test.ts +9 -10
  507. package/src/core/{host → notebook/replica}/__tests__/document.test.ts +18 -16
  508. package/src/core/notebook/replica/__tests__/fixtures.ts +79 -0
  509. package/src/core/notebook/replica/__tests__/replica.test.ts +550 -0
  510. package/src/core/notebook/replica/backend.ts +19 -0
  511. package/src/core/notebook/replica/connection.ts +42 -0
  512. package/src/core/notebook/replica/index.ts +13 -0
  513. package/src/core/notebook/replica/replica.ts +286 -0
  514. package/src/core/{host → notebook/replica}/resources/attachments.ts +6 -3
  515. package/src/core/{host → notebook/replica}/resources/document.ts +4 -4
  516. package/src/core/packages/__tests__/useSandboxController.test.tsx +1 -1
  517. package/src/core/packages/useSandboxController.ts +1 -1
  518. package/src/core/run-app.tsx +48 -51
  519. package/src/core/runtime/__tests__/adapter.test.ts +1 -1
  520. package/src/core/runtime/__tests__/createWsUrl.test.ts +77 -7
  521. package/src/core/runtime/__tests__/runtime.test.ts +32 -74
  522. package/src/core/runtime/adapter.ts +1 -1
  523. package/src/core/runtime/config.ts +2 -2
  524. package/src/core/runtime/runtime.ts +33 -46
  525. package/src/core/runtime/types.ts +0 -2
  526. package/src/core/saving/__tests__/document.test.tsx +123 -0
  527. package/src/core/saving/__tests__/state.test.ts +111 -0
  528. package/src/core/saving/__tests__/useAutoSave.test.tsx +67 -0
  529. package/src/core/saving/document.ts +33 -0
  530. package/src/core/saving/filename.ts +1 -1
  531. package/src/core/saving/save-component.tsx +39 -60
  532. package/src/core/saving/state.ts +38 -39
  533. package/src/core/saving/useAutoSave.ts +17 -53
  534. package/src/core/session/__tests__/backend.test.ts +236 -0
  535. package/src/core/session/__tests__/useNotebookReplica.hook.test.tsx +184 -0
  536. package/src/core/{websocket → session}/__tests__/useNotebookSession.hook.test.tsx +213 -262
  537. package/src/core/session/active-notebook.ts +28 -0
  538. package/src/core/session/backend.ts +123 -0
  539. package/src/core/session/embedded.ts +7 -0
  540. package/src/core/{websocket → session}/types.ts +2 -2
  541. package/src/core/session/useNotebookReplica.ts +74 -0
  542. package/src/core/{websocket → session}/useNotebookSession.tsx +77 -64
  543. package/src/core/state/__tests__/jotai.test.tsx +108 -0
  544. package/src/core/state/jotai.ts +1 -1
  545. package/src/core/static/__tests__/files.test.ts +38 -10
  546. package/src/core/static/files.ts +2 -0
  547. package/src/core/{websocket → transports}/__tests__/connection-state.test.ts +1 -13
  548. package/src/core/transports/__tests__/server.test.ts +408 -0
  549. package/src/core/transports/__tests__/static.test.ts +306 -0
  550. package/src/core/transports/__tests__/wasm.test.ts +166 -0
  551. package/src/core/{websocket → transports}/connection-state.ts +9 -16
  552. package/src/core/transports/server.ts +152 -0
  553. package/src/core/transports/static.ts +166 -0
  554. package/src/core/transports/wasm.ts +97 -0
  555. package/src/core/wasm/__tests__/bridge.test.ts +105 -65
  556. package/src/core/wasm/__tests__/worker.test.ts +187 -0
  557. package/src/core/wasm/bridge.ts +60 -71
  558. package/src/core/wasm/rpc.ts +15 -3
  559. package/src/core/wasm/store.ts +3 -3
  560. package/src/core/wasm/worker/bootstrap.ts +55 -51
  561. package/src/core/wasm/worker/getMarimoWheel.ts +1 -1
  562. package/src/core/wasm/worker/save-worker.ts +9 -10
  563. package/src/core/wasm/worker/types.ts +29 -18
  564. package/src/core/wasm/worker/worker.ts +89 -45
  565. package/src/css/app/codemirror.css +1 -1
  566. package/src/css/globals.css +66 -22
  567. package/src/hooks/__tests__/useAsyncData.test.tsx +148 -0
  568. package/src/hooks/__tests__/useDebounce.test.tsx +51 -0
  569. package/src/hooks/__tests__/useDeepCompareMemoize.test.tsx +39 -0
  570. package/src/hooks/__tests__/useDelayElapsed.test.tsx +28 -0
  571. package/src/hooks/__tests__/useInternalStateWithSync.test.tsx +20 -0
  572. package/src/hooks/__tests__/useScript.test.tsx +77 -0
  573. package/src/hooks/__tests__/useStateForKey.test.tsx +257 -0
  574. package/src/hooks/useAsyncData.ts +3 -3
  575. package/src/hooks/useDataSourceDiscovery.ts +6 -4
  576. package/src/hooks/useDebounce.ts +6 -10
  577. package/src/hooks/useDeepCompareMemoize.ts +1 -1
  578. package/src/hooks/useDelayElapsed.ts +14 -10
  579. package/src/hooks/useElapsedTime.ts +3 -3
  580. package/src/hooks/useEventListener.ts +1 -2
  581. package/src/hooks/useInputHistory.ts +4 -7
  582. package/src/hooks/useInternalStateWithSync.ts +6 -6
  583. package/src/hooks/useResizeObserver.ts +4 -7
  584. package/src/hooks/useScript.ts +67 -70
  585. package/src/hooks/useStateForKey.ts +93 -0
  586. package/src/mount.tsx +20 -15
  587. package/src/plugins/__tests__/plugin-object-schemas.test.ts +104 -0
  588. package/src/plugins/core/registerReactComponent.tsx +1 -1
  589. package/src/plugins/impl/CodeEditorPlugin.tsx +1 -1
  590. package/src/plugins/impl/DataEditorPlugin.tsx +1 -1
  591. package/src/plugins/impl/DataTablePlugin.tsx +69 -37
  592. package/src/plugins/impl/DropdownPlugin.tsx +2 -6
  593. package/src/plugins/impl/FileBrowserPlugin.tsx +4 -16
  594. package/src/plugins/impl/FormPlugin.tsx +1 -1
  595. package/src/plugins/impl/RangeSliderPlugin.tsx +16 -2
  596. package/src/plugins/impl/RefreshPlugin.tsx +1 -0
  597. package/src/plugins/impl/SliderPlugin.tsx +6 -8
  598. package/src/plugins/impl/__tests__/DataTablePlugin.test.tsx +387 -1
  599. package/src/plugins/impl/__tests__/FileBrowserPlugin.test.tsx +45 -0
  600. package/src/plugins/impl/__tests__/RangeSliderPlugin.test.tsx +109 -0
  601. package/src/plugins/impl/__tests__/SliderPlugin.test.tsx +24 -3
  602. package/src/plugins/impl/anywidget/__tests__/registry.test.ts +153 -0
  603. package/src/plugins/impl/anywidget/__tests__/widget-binding.test.ts +241 -2
  604. package/src/plugins/impl/anywidget/model.ts +3 -1
  605. package/src/plugins/impl/anywidget/registry.ts +18 -14
  606. package/src/plugins/impl/anywidget/runtime.ts +21 -9
  607. package/src/plugins/impl/anywidget/widget-binding.ts +160 -82
  608. package/src/plugins/impl/chat/__tests__/chat-prompts.test.tsx +93 -0
  609. package/src/plugins/impl/chat/chat-ui.tsx +14 -11
  610. package/src/plugins/impl/code/any-language-editor.tsx +2 -2
  611. package/src/plugins/impl/data-editor/glide-data-editor.tsx +8 -5
  612. package/src/plugins/impl/data-editor/glide-utils.ts +3 -1
  613. package/src/plugins/impl/data-explorer/ConnectedDataExplorerComponent.tsx +1 -1
  614. package/src/plugins/impl/data-explorer/components/column-summary.tsx +4 -2
  615. package/src/plugins/impl/data-explorer/state/reducer.ts +1 -1
  616. package/src/plugins/impl/data-frames/DataFramePlugin.tsx +1 -2
  617. package/src/plugins/impl/data-frames/__tests__/sidebar.test.tsx +160 -0
  618. package/src/plugins/impl/data-frames/forms/__tests__/__snapshots__/form.test.tsx.snap +66 -66
  619. package/src/plugins/impl/data-frames/panel.tsx +43 -16
  620. package/src/plugins/impl/mpl-interactive/MplInteractivePlugin.tsx +5 -3
  621. package/src/plugins/impl/panel/PanelPlugin.tsx +16 -17
  622. package/src/plugins/impl/panel/__tests__/utils.test.ts +39 -1
  623. package/src/plugins/impl/panel/utils.ts +17 -0
  624. package/src/plugins/impl/plotly/PlotlyPlugin.tsx +2 -5
  625. package/src/plugins/impl/plotly/selection.ts +25 -19
  626. package/src/plugins/impl/vega/VegaPlugin.tsx +2 -3
  627. package/src/plugins/impl/vega/make-selectable.ts +4 -7
  628. package/src/plugins/layout/RoutesPlugin.tsx +1 -1
  629. package/src/stories/__tests__/editor-story.test.tsx +33 -0
  630. package/src/stories/button.stories.tsx +1 -0
  631. package/src/stories/cell.stories.tsx +2 -5
  632. package/src/stories/data-table.stories.tsx +31 -0
  633. package/src/stories/editor.stories.tsx +24 -17
  634. package/src/stories/form-wrapper.stories.tsx +2 -2
  635. package/src/stories/layout/vertical/one-column.stories.tsx +28 -23
  636. package/src/stories/runtime-story.tsx +23 -17
  637. package/src/stories/select.stories.tsx +2 -2
  638. package/src/stories/switchable-multi-select.stories.tsx +1 -1
  639. package/src/utils/__tests__/arrays.test.ts +35 -0
  640. package/src/utils/__tests__/batch-requests.test.ts +3 -3
  641. package/src/utils/__tests__/{createReducer.test.ts → createReducer.test.tsx} +29 -0
  642. package/src/utils/__tests__/numbers.test.ts +105 -1
  643. package/src/utils/__tests__/objects.test.ts +21 -0
  644. package/src/utils/arrays.ts +11 -2
  645. package/src/utils/blob.ts +1 -1
  646. package/src/utils/createReducer.ts +53 -26
  647. package/src/utils/maps.ts +0 -3
  648. package/src/utils/numbers.ts +79 -18
  649. package/src/utils/objects.ts +4 -9
  650. package/src/utils/once.ts +19 -19
  651. package/src/utils/tracer.ts +9 -5
  652. package/src/utils/zod-utils.ts +1 -3
  653. package/dist/any-language-editor-D4q-IFcM.js +0 -76
  654. package/dist/assets/__vite-browser-external-BXYkiFsk.js +0 -1
  655. package/dist/assets/worker-HPY9fbhz.js +0 -114
  656. package/dist/code-visibility-DPm4oWK1.js +0 -138
  657. package/dist/dropdown-menu-DHP9P4VE.js +0 -4678
  658. package/dist/feedback-button-DVgw4Y7F.js +0 -379
  659. package/dist/html-to-image-BdA59IUD.js +0 -3251
  660. package/dist/label-DoysmLMW.js +0 -281
  661. package/dist/mermaid-HWGCJPDP-ByCsZnYF.js +0 -2
  662. package/dist/objectWithoutPropertiesLoose-BRDcTsfB.js +0 -23
  663. package/dist/precisionRound-DMIVQrt2.js +0 -97
  664. package/dist/select-DemoKT4G.js +0 -1344
  665. package/dist/toDate-B5mIgxwZ.js +0 -1185
  666. package/dist/toast-PkdZraM8.js +0 -1830
  667. package/dist/use-restore-focus-CKjfFjLM.js +0 -6369
  668. package/dist/useLifecycle-BGWzTwHK.js +0 -169
  669. package/dist/useTheme-BhQvec43.js +0 -904
  670. package/src/components/editor/cell/code/__tests__/rtc-editor-config.test.ts +0 -50
  671. package/src/components/editor/chrome/wrapper/footer-items/rtc-status.tsx +0 -65
  672. package/src/components/editor/navigation/__tests__/state.test.ts +0 -81
  673. package/src/components/editor/navigation/state.ts +0 -65
  674. package/src/core/ai/tools/__tests__/run-cells-tool.test.ts +0 -656
  675. package/src/core/ai/tools/run-cells-tool.ts +0 -303
  676. package/src/core/attachments/state.ts +0 -18
  677. package/src/core/cells/__tests__/apply-transaction.test.ts +0 -991
  678. package/src/core/cells/__tests__/document-changes.test.ts +0 -1140
  679. package/src/core/cells/__tests__/document-roundtrip.test.ts +0 -392
  680. package/src/core/cells/document-changes.ts +0 -944
  681. package/src/core/codemirror/rtc/extension.ts +0 -453
  682. package/src/core/codemirror/rtc/loro/__tests__/sync.test.ts +0 -52
  683. package/src/core/codemirror/rtc/loro/awareness.ts +0 -531
  684. package/src/core/codemirror/rtc/loro/colors.ts +0 -38
  685. package/src/core/codemirror/rtc/loro/sync.ts +0 -168
  686. package/src/core/host/AGENTS.md +0 -11
  687. package/src/core/host/__tests__/events.test.ts +0 -46
  688. package/src/core/host/__tests__/fixtures.ts +0 -39
  689. package/src/core/host/__tests__/notebook-client.test.ts +0 -433
  690. package/src/core/host/__tests__/protocol.test.ts +0 -214
  691. package/src/core/host/__tests__/stream.test.ts +0 -211
  692. package/src/core/host/connection.ts +0 -81
  693. package/src/core/host/events.ts +0 -61
  694. package/src/core/host/notebook-client.ts +0 -290
  695. package/src/core/host/protocol.ts +0 -1943
  696. package/src/core/host/resources/resource.ts +0 -59
  697. package/src/core/host/stream.ts +0 -213
  698. package/src/core/rtc/state.ts +0 -34
  699. package/src/core/state/__tests__/jotai.test.ts +0 -25
  700. package/src/core/wasm/worker/message-buffer.ts +0 -33
  701. package/src/core/websocket/__tests__/createConnectionTransport.test.ts +0 -49
  702. package/src/core/websocket/__tests__/useNotebookClient.hook.test.tsx +0 -170
  703. package/src/core/websocket/state.ts +0 -7
  704. package/src/core/websocket/transports/__tests__/basic.test.ts +0 -275
  705. package/src/core/websocket/transports/__tests__/sse.test.ts +0 -335
  706. package/src/core/websocket/transports/__tests__/transport.test.ts +0 -308
  707. package/src/core/websocket/transports/__tests__/ws.test.ts +0 -125
  708. package/src/core/websocket/transports/basic.ts +0 -102
  709. package/src/core/websocket/transports/create.ts +0 -31
  710. package/src/core/websocket/transports/sse.ts +0 -308
  711. package/src/core/websocket/transports/transport.ts +0 -50
  712. package/src/core/websocket/transports/ws.ts +0 -98
  713. package/src/core/websocket/useNotebookClient.ts +0 -88
  714. package/src/utils/__tests__/id-tree.test.ts +0 -2145
  715. package/src/utils/id-tree.tsx +0 -1134
  716. /package/src/{core/attachments/toast.ts → components/editor/agent-toast.ts} +0 -0
  717. /package/src/core/{websocket → session}/connection-utils.ts +0 -0
@@ -1,17 +1,17 @@
1
1
  import { a as e } from "./rolldown-runtime-Cb76FRpK.js";
2
- import { c as t, g as n, h as r, m as i, t as a } from "./button-CvjkwdSk.js";
2
+ import { c as t, g as n, h as r, m as i, t as a } from "./button-B6RjDKJx.js";
3
3
  import { t as o } from "./react-sHtZdjeP.js";
4
4
  import { t as s } from "./compiler-runtime-CldRdSsv.js";
5
- import { h as c, t as l } from "./tooltip-CtBZ5q8p.js";
6
- import { O as u } from "./error-entries-Damuuclv.js";
7
- import { $ as d, Q as f, Z as p, an as m, i as h, l as g, ln as _, n as v, on as y, r as b, t as x, u as S } from "./common-CeebhhhO.js";
8
- import { M as C } from "./select-DemoKT4G.js";
9
- import { q as ee } from "./dropdown-menu-DHP9P4VE.js";
10
- import { _ as w } from "./toDate-B5mIgxwZ.js";
11
- import { t as T } from "./jsx-runtime-3BD1kT0s.js";
12
- import { X as E } from "./use-restore-focus-CKjfFjLM.js";
13
- import { A as D, C as O, b as k } from "./useTheme-BhQvec43.js";
14
- import { a as A, n as te, t as ne } from "./code-visibility-DPm4oWK1.js";
5
+ import { m as c, t as l } from "./tooltip-C3UnvsRe.js";
6
+ import { $ as u, Q as d, Z as f, an as p, i as m, l as h, ln as g, n as _, on as v, r as y, t as b, u as x } from "./common-Ce1SgsX1.js";
7
+ import { M as S } from "./select-BSxlITBo.js";
8
+ import { Y as ee } from "./dropdown-menu-CSNdPSnS.js";
9
+ import { Pt as C } from "./error-entries-CRPfxMqm.js";
10
+ import { t as w } from "./jsx-runtime-3BD1kT0s.js";
11
+ import { r as T } from "./use-restore-focus-BWO0z1lo.js";
12
+ import { D as E, t as D, x as O } from "./utils-DXkj82sK.js";
13
+ import { o as k } from "./static-state-BldGd99T.js";
14
+ import { a as A, n as te, t as ne } from "./code-visibility-BdFhHfIC.js";
15
15
  /* empty css */
16
16
  var j = c("sticky-note", [["path", {
17
17
  d: "M21 9a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 15 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2z",
@@ -32,23 +32,23 @@ var j = c("sticky-note", [["path", {
32
32
  if (e.match(/^-?[\d\.]+$/)) return parseFloat(e);
33
33
  }
34
34
  return e;
35
- }, oe = (e, t) => {
36
- e.style.transform = t;
37
35
  }, F = (e, t) => {
36
+ e.style.transform = t;
37
+ }, I = (e, t) => {
38
38
  let n = e.matches || e.matchesSelector || e.msMatchesSelector;
39
39
  return !!(n && n.call(e, t));
40
- }, I = (e, t) => {
40
+ }, L = (e, t) => {
41
41
  if (e && typeof e.closest == "function") return e.closest(t);
42
42
  for (; e;) {
43
- if (F(e, t)) return e;
43
+ if (I(e, t)) return e;
44
44
  e = e.parentElement;
45
45
  }
46
46
  return null;
47
- }, se = (e) => {
47
+ }, oe = (e) => {
48
48
  e ||= document.documentElement;
49
49
  let t = e.requestFullscreen || e.webkitRequestFullscreen || e.webkitRequestFullScreen || e.mozRequestFullScreen || e.msRequestFullscreen;
50
50
  t && t.apply(e);
51
- }, ce = (e, t, n, r = "") => {
51
+ }, se = (e, t, n, r = "") => {
52
52
  let i = e.querySelectorAll("." + n);
53
53
  for (let t = 0; t < i.length; t++) {
54
54
  let n = i[t];
@@ -56,10 +56,10 @@ var j = c("sticky-note", [["path", {
56
56
  }
57
57
  let a = document.createElement(t);
58
58
  return a.className = n, a.innerHTML = r, e.appendChild(a), a;
59
- }, L = (e) => {
59
+ }, R = (e) => {
60
60
  let t = document.createElement("style");
61
61
  return e && e.length > 0 && t.appendChild(document.createTextNode(e)), document.head.appendChild(t), t;
62
- }, le = () => {
62
+ }, ce = () => {
63
63
  let e = {};
64
64
  location.search.replace(/[A-Z0-9]+?=([\w\.%-]*)/gi, (t) => {
65
65
  let n = t.split("=").shift(), r = t.split("=").pop();
@@ -70,24 +70,24 @@ var j = c("sticky-note", [["path", {
70
70
  e[t] = ae(unescape(n));
71
71
  }
72
72
  return e.dependencies !== void 0 && delete e.dependencies, e;
73
- }, ue = (e, t = 0) => {
73
+ }, le = (e, t = 0) => {
74
74
  if (e) {
75
75
  let n, r = e.style.height;
76
76
  return e.style.height = "0px", e.parentElement && (e.parentElement.style.height = "auto"), n = t - (e.parentElement?.offsetHeight || 0), e.style.height = r + "px", e.parentElement && e.parentElement.style.removeProperty("height"), n;
77
77
  }
78
78
  return t;
79
- }, de = {
79
+ }, ue = {
80
80
  mp4: "video/mp4",
81
81
  m4a: "video/mp4",
82
82
  ogv: "video/ogg",
83
83
  mpeg: "video/mpeg",
84
84
  webm: "video/webm"
85
- }, fe = (e = "") => {
85
+ }, de = (e = "") => {
86
86
  let t = e.split(".").pop();
87
- return t ? de[t] : void 0;
88
- }, pe = (e = "") => encodeURI(e).replace(/%5B/g, "[").replace(/%5D/g, "]").replace(/[!'()*]/g, (e) => `%${e.charCodeAt(0).toString(16).toUpperCase()}`), me = navigator.userAgent, he = /(iphone|ipod|ipad|android)/gi.test(me) || navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1;
89
- /chrome/i.test(me) && /edge/i.test(me);
90
- var R = /android/gi.test(me), ge = function(e) {
87
+ return t ? ue[t] : void 0;
88
+ }, fe = (e = "") => encodeURI(e).replace(/%5B/g, "[").replace(/%5D/g, "]").replace(/[!'()*]/g, (e) => `%${e.charCodeAt(0).toString(16).toUpperCase()}`), pe = navigator.userAgent, me = /(iphone|ipod|ipad|android)/gi.test(pe) || navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1;
89
+ /chrome/i.test(pe) && /edge/i.test(pe);
90
+ var he = /android/gi.test(pe), ge = function(e) {
91
91
  if (e) {
92
92
  var t = function(e) {
93
93
  return [].slice.call(e);
@@ -157,7 +157,7 @@ var R = /android/gi.test(me), ge = function(e) {
157
157
  };
158
158
  }, S = function(e) {
159
159
  e.observeMutations && (e.observer = new MutationObserver(v(e, r)), e.observer.observe(e.element, e.observeMutations));
160
- }, C = {
160
+ }, ee = {
161
161
  minSize: 16,
162
162
  maxSize: 512,
163
163
  multiLine: !0,
@@ -166,8 +166,8 @@ var R = /android/gi.test(me), ge = function(e) {
166
166
  childList: !0,
167
167
  characterData: !0
168
168
  }
169
- }, ee = null, w = function() {
170
- e.clearTimeout(ee), ee = e.setTimeout(l(i), D.observeWindowDelay);
169
+ }, C = null, w = function() {
170
+ e.clearTimeout(C), C = e.setTimeout(l(i), D.observeWindowDelay);
171
171
  }, T = ["resize", "orientationchange"];
172
172
  return Object.defineProperty(D, "observeWindow", { set: function(t) {
173
173
  var n = `${t ? "add" : "remove"}EventListener`;
@@ -177,7 +177,7 @@ var R = /android/gi.test(me), ge = function(e) {
177
177
  } }), D.observeWindow = !0, D.observeWindowDelay = 100, D.fitAll = l(a), D;
178
178
  }
179
179
  function E(e, t) {
180
- var n = Object.assign({}, C, t), r = e.map((function(e) {
180
+ var n = Object.assign({}, ee, t), r = e.map((function(e) {
181
181
  var t = Object.assign({}, n, {
182
182
  element: e,
183
183
  active: !0
@@ -221,12 +221,12 @@ function ve(e, t) {
221
221
  }
222
222
  return (t === "string" ? String : Number)(e);
223
223
  }
224
- function ye(e) {
224
+ function z(e) {
225
225
  var t = ve(e, "string");
226
226
  return _e(t) == "symbol" ? t : t + "";
227
227
  }
228
- function z(e, t, n) {
229
- return (t = ye(t)) in e ? Object.defineProperty(e, t, {
228
+ function ye(e, t, n) {
229
+ return (t = z(t)) in e ? Object.defineProperty(e, t, {
230
230
  value: n,
231
231
  enumerable: !0,
232
232
  configurable: !0,
@@ -235,7 +235,7 @@ function z(e, t, n) {
235
235
  }
236
236
  var be = class {
237
237
  constructor(e) {
238
- z(this, "allowedToPlayAudio", null), this.Reveal = e, this.startEmbeddedMedia = this.startEmbeddedMedia.bind(this), this.startEmbeddedIframe = this.startEmbeddedIframe.bind(this), this.preventIframeAutoFocus = this.preventIframeAutoFocus.bind(this), this.ensureMobileMediaPlaying = this.ensureMobileMediaPlaying.bind(this), this.failedAudioPlaybackTargets = /* @__PURE__ */ new Set(), this.failedVideoPlaybackTargets = /* @__PURE__ */ new Set(), this.failedMutedVideoPlaybackTargets = /* @__PURE__ */ new Set(), this.renderMediaPlayButton();
238
+ ye(this, "allowedToPlayAudio", null), this.Reveal = e, this.startEmbeddedMedia = this.startEmbeddedMedia.bind(this), this.startEmbeddedIframe = this.startEmbeddedIframe.bind(this), this.preventIframeAutoFocus = this.preventIframeAutoFocus.bind(this), this.ensureMobileMediaPlaying = this.ensureMobileMediaPlaying.bind(this), this.failedAudioPlaybackTargets = /* @__PURE__ */ new Set(), this.failedVideoPlaybackTargets = /* @__PURE__ */ new Set(), this.failedMutedVideoPlaybackTargets = /* @__PURE__ */ new Set(), this.renderMediaPlayButton();
239
239
  }
240
240
  renderMediaPlayButton() {
241
241
  this.mediaPlayButton = document.createElement("button"), this.mediaPlayButton.className = "r-overlay-button r-media-play-button", this.mediaPlayButton.addEventListener("click", () => {
@@ -266,7 +266,7 @@ var be = class {
266
266
  let t = 0;
267
267
  P(e, "source[data-src]").forEach((e) => {
268
268
  e.setAttribute("src", e.getAttribute("data-src")), e.removeAttribute("data-src"), e.setAttribute("data-lazy-loaded", ""), t += 1;
269
- }), he && e.tagName === "VIDEO" && e.setAttribute("playsinline", ""), t > 0 && e.load();
269
+ }), me && e.tagName === "VIDEO" && e.setAttribute("playsinline", ""), t > 0 && e.load();
270
270
  });
271
271
  let r = e.slideBackgroundElement;
272
272
  if (r) {
@@ -275,13 +275,13 @@ var be = class {
275
275
  if (r.hasAttribute("data-loaded") === !1) {
276
276
  r.setAttribute("data-loaded", "true");
277
277
  let a = e.getAttribute("data-background-image"), o = e.getAttribute("data-background-video"), s = e.hasAttribute("data-background-video-loop"), c = e.hasAttribute("data-background-video-muted");
278
- if (a) /^data:/.test(a.trim()) ? n.style.backgroundImage = `url(${a.trim()})` : n.style.backgroundImage = a.split(",").map((e) => `url(${pe(decodeURI(e.trim()))})`).join(",");
278
+ if (a) /^data:/.test(a.trim()) ? n.style.backgroundImage = `url(${a.trim()})` : n.style.backgroundImage = a.split(",").map((e) => `url(${fe(decodeURI(e.trim()))})`).join(",");
279
279
  else if (o) {
280
280
  let e = document.createElement("video");
281
- s && e.setAttribute("loop", ""), (c || this.Reveal.isSpeakerNotes()) && (e.muted = !0), he && e.setAttribute("playsinline", ""), o.split(",").forEach((t) => {
281
+ s && e.setAttribute("loop", ""), (c || this.Reveal.isSpeakerNotes()) && (e.muted = !0), me && e.setAttribute("playsinline", ""), o.split(",").forEach((t) => {
282
282
  let n = document.createElement("source");
283
283
  n.setAttribute("src", t);
284
- let r = fe(t);
284
+ let r = de(t);
285
285
  r && n.setAttribute("type", r), e.appendChild(n);
286
286
  }), n.appendChild(e);
287
287
  } else if (i && t.excludeIframes !== !0) {
@@ -330,16 +330,16 @@ var be = class {
330
330
  P(e, "img[src$=\".gif\"]").forEach((e) => {
331
331
  e.setAttribute("src", e.getAttribute("src"));
332
332
  }), P(e, "video, audio").forEach((e) => {
333
- if (I(e, ".fragment") && !I(e, ".fragment.visible")) return;
333
+ if (L(e, ".fragment") && !L(e, ".fragment.visible")) return;
334
334
  let n = this.Reveal.getConfig().autoPlayMedia;
335
- if (typeof n != "boolean" && (n = e.hasAttribute("data-autoplay") || !!I(e, ".slide-background")), n && typeof e.play == "function") {
335
+ if (typeof n != "boolean" && (n = e.hasAttribute("data-autoplay") || !!L(e, ".slide-background")), n && typeof e.play == "function") {
336
336
  if (t && !e.muted) return;
337
- e.readyState > 1 ? this.startEmbeddedMedia({ target: e }) : he ? (e.addEventListener("canplay", this.ensureMobileMediaPlaying), this.playMediaElement(e)) : (e.removeEventListener("loadeddata", this.startEmbeddedMedia), e.addEventListener("loadeddata", this.startEmbeddedMedia));
337
+ e.readyState > 1 ? this.startEmbeddedMedia({ target: e }) : me ? (e.addEventListener("canplay", this.ensureMobileMediaPlaying), this.playMediaElement(e)) : (e.removeEventListener("loadeddata", this.startEmbeddedMedia), e.addEventListener("loadeddata", this.startEmbeddedMedia));
338
338
  }
339
339
  }), t || (P(e, "iframe[src]").forEach((e) => {
340
- I(e, ".fragment") && !I(e, ".fragment.visible") || this.startEmbeddedIframe({ target: e });
340
+ L(e, ".fragment") && !L(e, ".fragment.visible") || this.startEmbeddedIframe({ target: e });
341
341
  }), P(e, "iframe[data-src]").forEach((e) => {
342
- I(e, ".fragment") && !I(e, ".fragment.visible") || e.getAttribute("src") !== e.getAttribute("data-src") && (e.removeEventListener("load", this.startEmbeddedIframe), e.addEventListener("load", this.startEmbeddedIframe), e.setAttribute("src", e.getAttribute("data-src")));
342
+ L(e, ".fragment") && !L(e, ".fragment.visible") || e.getAttribute("src") !== e.getAttribute("data-src") && (e.removeEventListener("load", this.startEmbeddedIframe), e.addEventListener("load", this.startEmbeddedIframe), e.setAttribute("src", e.getAttribute("data-src")));
343
343
  }));
344
344
  }
345
345
  }
@@ -351,7 +351,7 @@ var be = class {
351
351
  }, 1e3);
352
352
  }
353
353
  startEmbeddedMedia(e) {
354
- let t = !!I(e.target, "html"), n = !!I(e.target, ".present");
354
+ let t = !!L(e.target, "html"), n = !!L(e.target, ".present");
355
355
  t && n && (e.target.paused || e.target.ended) && (e.target.currentTime = 0, this.playMediaElement(e.target)), e.target.removeEventListener("loadeddata", this.startEmbeddedMedia);
356
356
  }
357
357
  playMediaElement(e) {
@@ -362,7 +362,7 @@ var be = class {
362
362
  if (t.name === "NotAllowedError") {
363
363
  if (this.allowedToPlayAudio = !1, e.tagName === "VIDEO") {
364
364
  this.onVideoPlaybackNotAllowed(e);
365
- let t = !!I(e, "html"), n = !!I(e, ".present"), r = e.muted;
365
+ let t = !!L(e, "html"), n = !!L(e, ".present"), r = e.muted;
366
366
  t && n && !r && (e.setAttribute("data-muted-by-reveal", "true"), e.muted = !0, e.play().catch(() => {
367
367
  this.onMutedVideoPlaybackNotAllowed(e);
368
368
  }));
@@ -373,16 +373,16 @@ var be = class {
373
373
  startEmbeddedIframe(e) {
374
374
  let t = e.target;
375
375
  if (this.preventIframeAutoFocus(e), t && t.contentWindow) {
376
- let n = !!I(e.target, "html"), r = !!I(e.target, ".present");
376
+ let n = !!L(e.target, "html"), r = !!L(e.target, ".present");
377
377
  if (n && r) {
378
378
  let e = this.Reveal.getConfig().autoPlayMedia;
379
- typeof e != "boolean" && (e = t.hasAttribute("data-autoplay") || !!I(t, ".slide-background")), /youtube\.com\/embed\//.test(t.getAttribute("src")) && e ? t.contentWindow.postMessage("{\"event\":\"command\",\"func\":\"playVideo\",\"args\":\"\"}", "*") : /player\.vimeo\.com\//.test(t.getAttribute("src")) && e ? t.contentWindow.postMessage("{\"method\":\"play\"}", "*") : t.contentWindow.postMessage("slide:start", "*");
379
+ typeof e != "boolean" && (e = t.hasAttribute("data-autoplay") || !!L(t, ".slide-background")), /youtube\.com\/embed\//.test(t.getAttribute("src")) && e ? t.contentWindow.postMessage("{\"event\":\"command\",\"func\":\"playVideo\",\"args\":\"\"}", "*") : /player\.vimeo\.com\//.test(t.getAttribute("src")) && e ? t.contentWindow.postMessage("{\"method\":\"play\"}", "*") : t.contentWindow.postMessage("slide:start", "*");
380
380
  }
381
381
  }
382
382
  }
383
383
  stopEmbeddedContent(e, t = {}) {
384
384
  t = re({ unloadIframes: !0 }, t), e && e.parentNode && (P(e, "video, audio").forEach((e) => {
385
- !e.hasAttribute("data-ignore") && typeof e.pause == "function" && (e.setAttribute("data-paused-by-reveal", ""), e.pause(), he && e.removeEventListener("canplay", this.ensureMobileMediaPlaying));
385
+ !e.hasAttribute("data-ignore") && typeof e.pause == "function" && (e.setAttribute("data-paused-by-reveal", ""), e.pause(), me && e.removeEventListener("canplay", this.ensureMobileMediaPlaying));
386
386
  }), P(e, "iframe").forEach((e) => {
387
387
  e.contentWindow && e.contentWindow.postMessage("slide:stop", "*"), e.removeEventListener("load", this.preventIframeAutoFocus), e.removeEventListener("load", this.startEmbeddedIframe);
388
388
  }), P(e, "iframe[src*=\"youtube.com/embed/\"]").forEach((e) => {
@@ -433,7 +433,7 @@ var be = class {
433
433
  afterSlideChanged() {
434
434
  this.clearMediaPlaybackErrors();
435
435
  }
436
- }, B = ".slides section", xe = ".slides>section", Se = ".slides>section.present>section", Ce = ".backgrounds>.slide-background", we = /registerPlugin|registerKeyboardShortcut|addKeyBinding|addEventListener|showPreview|previewIframe/, Te = class {
436
+ }, xe = ".slides section", Se = ".slides>section", B = ".slides>section.present>section", Ce = ".backgrounds>.slide-background", we = /registerPlugin|registerKeyboardShortcut|addKeyBinding|addEventListener|showPreview|previewIframe/, Te = class {
437
437
  constructor(e) {
438
438
  this.Reveal = e;
439
439
  }
@@ -482,7 +482,7 @@ var be = class {
482
482
  destroy() {
483
483
  this.element.remove();
484
484
  }
485
- }, V = class {
485
+ }, Ee = class {
486
486
  constructor(e) {
487
487
  this.Reveal = e, this.onInput = this.onInput.bind(this), this.onBlur = this.onBlur.bind(this), this.onKeyDown = this.onKeyDown.bind(this);
488
488
  }
@@ -535,7 +535,7 @@ var be = class {
535
535
  onBlur() {
536
536
  setTimeout(() => this.hide(), 1);
537
537
  }
538
- }, Ee = (e) => {
538
+ }, De = (e) => {
539
539
  let t = e.match(/^#([0-9a-f]{3})$/i);
540
540
  if (t && t[1]) {
541
541
  let e = t[1];
@@ -567,7 +567,7 @@ var be = class {
567
567
  b: parseInt(i[3], 10),
568
568
  a: parseFloat(i[4])
569
569
  } : null;
570
- }, De = (e) => (typeof e == "string" && (e = Ee(e)), e ? (e.r * 299 + e.g * 587 + e.b * 114) / 1e3 : null), Oe = class {
570
+ }, Oe = (e) => (typeof e == "string" && (e = De(e)), e ? (e.r * 299 + e.g * 587 + e.b * 114) / 1e3 : null), ke = class {
571
571
  constructor(e) {
572
572
  this.Reveal = e;
573
573
  }
@@ -610,13 +610,13 @@ var be = class {
610
610
  }
611
611
  getContrastClass(e) {
612
612
  let t = e.slideBackgroundElement, n = e.getAttribute("data-background-color");
613
- if (!n || !Ee(n)) {
613
+ if (!n || !De(n)) {
614
614
  let e = window.getComputedStyle(t);
615
615
  e && e.backgroundColor && (n = e.backgroundColor);
616
616
  }
617
617
  if (n) {
618
- let e = Ee(n);
619
- if (e && e.a !== 0) return De(n) < 128 ? "has-dark-background" : "has-light-background";
618
+ let e = De(n);
619
+ if (e && e.a !== 0) return Oe(n) < 128 ? "has-dark-background" : "has-light-background";
620
620
  }
621
621
  return null;
622
622
  }
@@ -672,7 +672,7 @@ var be = class {
672
672
  destroy() {
673
673
  this.element.remove();
674
674
  }
675
- }, ke = 0, Ae = class {
675
+ }, V = 0, Ae = class {
676
676
  constructor(e) {
677
677
  this.Reveal = e;
678
678
  }
@@ -680,17 +680,17 @@ var be = class {
680
680
  this.reset();
681
681
  let n = this.Reveal.getSlides(), r = n.indexOf(t), i = n.indexOf(e);
682
682
  if (e && t && e.hasAttribute("data-auto-animate") && t.hasAttribute("data-auto-animate") && e.getAttribute("data-auto-animate-id") === t.getAttribute("data-auto-animate-id") && !(r > i ? t : e).hasAttribute("data-auto-animate-restart")) {
683
- this.autoAnimateStyleSheet = this.autoAnimateStyleSheet || L();
683
+ this.autoAnimateStyleSheet = this.autoAnimateStyleSheet || R();
684
684
  let n = this.getAutoAnimateOptions(t);
685
685
  e.dataset.autoAnimate = "pending", t.dataset.autoAnimate = "pending", n.slideDirection = r > i ? "forward" : "backward";
686
686
  let a = e.style.display === "none";
687
687
  a && (e.style.display = this.Reveal.getConfig().display);
688
- let o = this.getAutoAnimatableElements(e, t).map((e) => this.autoAnimateElements(e.from, e.to, e.options || {}, n, ke++));
688
+ let o = this.getAutoAnimatableElements(e, t).map((e) => this.autoAnimateElements(e.from, e.to, e.options || {}, n, V++));
689
689
  if (a && (e.style.display = "none"), t.dataset.autoAnimateUnmatched !== "false" && this.Reveal.getConfig().autoAnimateUnmatched === !0) {
690
690
  let e = n.duration * .8, r = n.duration * .2;
691
691
  this.getUnmatchedAutoAnimateElements(t).forEach((e) => {
692
692
  let t = this.getAutoAnimateOptions(e, n), r = "unmatched";
693
- (t.duration !== n.duration || t.delay !== n.delay) && (r = "unmatched-" + ke++, o.push(`[data-auto-animate="running"] [data-auto-animate-target="${r}"] { transition: opacity ${t.duration}s ease ${t.delay}s; }`)), e.dataset.autoAnimateTarget = r;
693
+ (t.duration !== n.duration || t.delay !== n.delay) && (r = "unmatched-" + V++, o.push(`[data-auto-animate="running"] [data-auto-animate-target="${r}"] { transition: opacity ${t.duration}s ease ${t.delay}s; }`)), e.dataset.autoAnimateTarget = r;
694
694
  }, this), o.push(`[data-auto-animate="running"] [data-auto-animate-target="unmatched"] { transition: opacity ${e}s ease ${r}s; }`);
695
695
  }
696
696
  this.autoAnimateStyleSheet.innerHTML = o.join(""), requestAnimationFrame(() => {
@@ -750,7 +750,7 @@ var be = class {
750
750
  delay: 0
751
751
  };
752
752
  if (n = re(n, t), e.parentNode) {
753
- let t = I(e.parentNode, "[data-auto-animate-target]");
753
+ let t = L(e.parentNode, "[data-auto-animate-target]");
754
754
  t && (n = this.getAutoAnimateOptions(t, n));
755
755
  }
756
756
  return e.dataset.autoAnimateEasing && (n.easing = e.dataset.autoAnimateEasing), e.dataset.autoAnimateDuration && (n.duration = parseFloat(e.dataset.autoAnimateDuration)), e.dataset.autoAnimateDelay && (n.delay = parseFloat(e.dataset.autoAnimateDelay)), n;
@@ -793,7 +793,7 @@ var be = class {
793
793
  getAutoAnimatePairs(e, t) {
794
794
  let n = [], r = "h1, h2, h3, h4, h5, h6, p, li";
795
795
  return this.findAutoAnimateMatches(n, e, t, "[data-id]", (e) => e.nodeName + ":::" + e.getAttribute("data-id")), this.findAutoAnimateMatches(n, e, t, r, (e) => e.nodeName + ":::" + e.textContent.trim()), this.findAutoAnimateMatches(n, e, t, "img, video, iframe", (e) => e.nodeName + ":::" + (e.getAttribute("src") || e.getAttribute("data-src"))), this.findAutoAnimateMatches(n, e, t, "pre", (e) => e.nodeName + ":::" + e.textContent.trim()), n.forEach((e) => {
796
- F(e.from, r) ? e.options = { scale: !1 } : F(e.from, "pre") && (e.options = {
796
+ I(e.from, r) ? e.options = { scale: !1 } : I(e.from, "pre") && (e.options = {
797
797
  scale: !1,
798
798
  styles: ["width", "height"]
799
799
  }, this.findAutoAnimateMatches(n, e.from, e.to, ".hljs .hljs-ln-code", (e) => e.textContent, {
@@ -850,7 +850,7 @@ var be = class {
850
850
  if (this.active) return;
851
851
  let e = this.Reveal.getState();
852
852
  this.active = !0, this.slideHTMLBeforeActivation = this.Reveal.getSlidesElement().innerHTML;
853
- let t = P(this.Reveal.getRevealElement(), xe), n = P(this.Reveal.getRevealElement(), Ce);
853
+ let t = P(this.Reveal.getRevealElement(), Se), n = P(this.Reveal.getRevealElement(), Ce);
854
854
  this.viewportElement.classList.add("loading-scroll-mode", "reveal-scroll");
855
855
  let r, i = window.getComputedStyle(this.viewportElement);
856
856
  i && i.background && (r = i.background);
@@ -1102,8 +1102,8 @@ var Re = class {
1102
1102
  activate() {
1103
1103
  var e = this;
1104
1104
  return Le(function* () {
1105
- let t = e.Reveal.getConfig(), n = P(e.Reveal.getRevealElement(), B), r = t.slideNumber && /all|print/i.test(t.showSlideNumber), i = e.Reveal.getComputedSlideSize(window.innerWidth, window.innerHeight), a = Math.floor(i.width * (1 + t.margin)), o = Math.floor(i.height * (1 + t.margin)), s = i.width, c = i.height;
1106
- yield new Promise(requestAnimationFrame), L("@page{size:" + a + "px " + o + "px; margin: 0px;}"), L(".reveal section>img, .reveal section>video, .reveal section>iframe{max-width: " + s + "px; max-height:" + c + "px}"), document.documentElement.classList.add("reveal-print", "print-pdf"), document.body.style.width = a + "px", document.body.style.height = o + "px";
1105
+ let t = e.Reveal.getConfig(), n = P(e.Reveal.getRevealElement(), xe), r = t.slideNumber && /all|print/i.test(t.showSlideNumber), i = e.Reveal.getComputedSlideSize(window.innerWidth, window.innerHeight), a = Math.floor(i.width * (1 + t.margin)), o = Math.floor(i.height * (1 + t.margin)), s = i.width, c = i.height;
1106
+ yield new Promise(requestAnimationFrame), R("@page{size:" + a + "px " + o + "px; margin: 0px;}"), R(".reveal section>img, .reveal section>video, .reveal section>iframe{max-width: " + s + "px; max-height:" + c + "px}"), document.documentElement.classList.add("reveal-print", "print-pdf"), document.body.style.width = a + "px", document.body.style.height = o + "px";
1107
1107
  let l = e.Reveal.getViewportElement(), u;
1108
1108
  if (l) {
1109
1109
  let e = window.getComputedStyle(l);
@@ -1285,7 +1285,7 @@ var Re = class {
1285
1285
  }
1286
1286
  activate() {
1287
1287
  if (this.Reveal.getConfig().overview && !this.Reveal.isScrollView() && !this.isActive()) {
1288
- this.active = !0, this.Reveal.getRevealElement().classList.add("overview"), this.Reveal.cancelAutoSlide(), this.Reveal.getSlidesElement().appendChild(this.Reveal.getBackgroundsElement()), P(this.Reveal.getRevealElement(), B).forEach((e) => {
1288
+ this.active = !0, this.Reveal.getRevealElement().classList.add("overview"), this.Reveal.cancelAutoSlide(), this.Reveal.getSlidesElement().appendChild(this.Reveal.getBackgroundsElement()), P(this.Reveal.getRevealElement(), xe).forEach((e) => {
1289
1289
  e.classList.contains("stack") || e.addEventListener("click", this.onSlideClicked, !0);
1290
1290
  });
1291
1291
  let e = this.Reveal.getComputedSlideSize();
@@ -1303,12 +1303,12 @@ var Re = class {
1303
1303
  }
1304
1304
  layout() {
1305
1305
  this.Reveal.getHorizontalSlides().forEach((e, t) => {
1306
- e.setAttribute("data-index-h", t), oe(e, "translate3d(" + t * this.overviewSlideWidth + "px, 0, 0)"), e.classList.contains("stack") && P(e, "section").forEach((e, n) => {
1307
- e.setAttribute("data-index-h", t), e.setAttribute("data-index-v", n), oe(e, "translate3d(0, " + n * this.overviewSlideHeight + "px, 0)");
1306
+ e.setAttribute("data-index-h", t), F(e, "translate3d(" + t * this.overviewSlideWidth + "px, 0, 0)"), e.classList.contains("stack") && P(e, "section").forEach((e, n) => {
1307
+ e.setAttribute("data-index-h", t), e.setAttribute("data-index-v", n), F(e, "translate3d(0, " + n * this.overviewSlideHeight + "px, 0)");
1308
1308
  });
1309
1309
  }), Array.from(this.Reveal.getBackgroundsElement().childNodes).forEach((e, t) => {
1310
- oe(e, "translate3d(" + t * this.overviewSlideWidth + "px, 0, 0)"), P(e, ".slide-background").forEach((e, t) => {
1311
- oe(e, "translate3d(0, " + t * this.overviewSlideHeight + "px, 0)");
1310
+ F(e, "translate3d(" + t * this.overviewSlideWidth + "px, 0, 0)"), P(e, ".slide-background").forEach((e, t) => {
1311
+ F(e, "translate3d(0, " + t * this.overviewSlideHeight + "px, 0)");
1312
1312
  });
1313
1313
  });
1314
1314
  }
@@ -1324,10 +1324,10 @@ var Re = class {
1324
1324
  if (this.Reveal.getConfig().overview) {
1325
1325
  this.active = !1, this.Reveal.getRevealElement().classList.remove("overview"), this.Reveal.getRevealElement().classList.add("overview-deactivating"), setTimeout(() => {
1326
1326
  this.Reveal.getRevealElement().classList.remove("overview-deactivating");
1327
- }, 1), this.Reveal.getRevealElement().appendChild(this.Reveal.getBackgroundsElement()), P(this.Reveal.getRevealElement(), B).forEach((e) => {
1328
- oe(e, ""), e.removeEventListener("click", this.onSlideClicked, !0);
1327
+ }, 1), this.Reveal.getRevealElement().appendChild(this.Reveal.getBackgroundsElement()), P(this.Reveal.getRevealElement(), xe).forEach((e) => {
1328
+ F(e, ""), e.removeEventListener("click", this.onSlideClicked, !0);
1329
1329
  }), P(this.Reveal.getBackgroundsElement(), ".slide-background").forEach((e) => {
1330
- oe(e, "");
1330
+ F(e, "");
1331
1331
  }), this.Reveal.transformSlides({ overview: "" });
1332
1332
  let e = this.Reveal.getIndices();
1333
1333
  this.Reveal.slide(e.h, e.v), this.Reveal.layout(), this.Reveal.cueAutoSlide(), this.Reveal.dispatchEvent({
@@ -1447,7 +1447,7 @@ var Re = class {
1447
1447
  66,
1448
1448
  86,
1449
1449
  190
1450
- ].includes(n) || n === 191 && !e.shiftKey ? this.Reveal.togglePause() : n === 70 ? se(t.embedded ? this.Reveal.getViewportElement() : document.documentElement) : n === 65 ? t.autoSlideStoppable && this.Reveal.toggleAutoSlide(r) : n === 71 ? t.jumpToSlide && this.Reveal.toggleJumpToSlide() : n === 67 && this.Reveal.isOverlayOpen() ? this.Reveal.closeOverlay() : (n === 63 || n === 191) && e.shiftKey || n === 112 ? this.Reveal.toggleHelp() : d = !1), d ? e.preventDefault && e.preventDefault() : n === 27 || n === 79 ? (this.Reveal.closeOverlay() === !1 && this.Reveal.overview.toggle(), e.preventDefault && e.preventDefault()) : n === 13 && this.Reveal.overview.isActive() && (this.Reveal.overview.deactivate(), e.preventDefault && e.preventDefault()), this.Reveal.cueAutoSlide();
1450
+ ].includes(n) || n === 191 && !e.shiftKey ? this.Reveal.togglePause() : n === 70 ? oe(t.embedded ? this.Reveal.getViewportElement() : document.documentElement) : n === 65 ? t.autoSlideStoppable && this.Reveal.toggleAutoSlide(r) : n === 71 ? t.jumpToSlide && this.Reveal.toggleJumpToSlide() : n === 67 && this.Reveal.isOverlayOpen() ? this.Reveal.closeOverlay() : (n === 63 || n === 191) && e.shiftKey || n === 112 ? this.Reveal.toggleHelp() : d = !1), d ? e.preventDefault && e.preventDefault() : n === 27 || n === 79 ? (this.Reveal.closeOverlay() === !1 && this.Reveal.overview.toggle(), e.preventDefault && e.preventDefault()) : n === 13 && this.Reveal.overview.isActive() && (this.Reveal.overview.deactivate(), e.preventDefault && e.preventDefault()), this.Reveal.cueAutoSlide();
1451
1451
  }
1452
1452
  };
1453
1453
  function H(e, t) {
@@ -1464,7 +1464,7 @@ function U(e) {
1464
1464
  for (var t = 1; t < arguments.length; t++) {
1465
1465
  var n = arguments[t] == null ? {} : arguments[t];
1466
1466
  t % 2 ? H(Object(n), !0).forEach(function(t) {
1467
- z(e, t, n[t]);
1467
+ ye(e, t, n[t]);
1468
1468
  }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : H(Object(n)).forEach(function(t) {
1469
1469
  Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t));
1470
1470
  });
@@ -1473,7 +1473,7 @@ function U(e) {
1473
1473
  }
1474
1474
  var He = class {
1475
1475
  constructor(e) {
1476
- z(this, "MAX_REPLACE_STATE_FREQUENCY", 1e3), this.Reveal = e, this.writeURLTimeout = 0, this.replaceStateTimestamp = 0, this.onWindowHashChange = this.onWindowHashChange.bind(this);
1476
+ ye(this, "MAX_REPLACE_STATE_FREQUENCY", 1e3), this.Reveal = e, this.writeURLTimeout = 0, this.replaceStateTimestamp = 0, this.onWindowHashChange = this.onWindowHashChange.bind(this);
1477
1477
  }
1478
1478
  bind() {
1479
1479
  window.addEventListener("hashchange", this.onWindowHashChange, !1);
@@ -1550,7 +1550,7 @@ var He = class {
1550
1550
  }
1551
1551
  bind() {
1552
1552
  let e = ["touchstart", "click"];
1553
- R && (e = ["touchend"]), e.forEach((e) => {
1553
+ he && (e = ["touchend"]), e.forEach((e) => {
1554
1554
  this.controlsLeft.forEach((t) => t.addEventListener(e, this.onNavigateLeftClicked, !1)), this.controlsRight.forEach((t) => t.addEventListener(e, this.onNavigateRightClicked, !1)), this.controlsUp.forEach((t) => t.addEventListener(e, this.onNavigateUpClicked, !1)), this.controlsDown.forEach((t) => t.addEventListener(e, this.onNavigateDownClicked, !1)), this.controlsPrev.forEach((t) => t.addEventListener(e, this.onNavigatePrevClicked, !1)), this.controlsNext.forEach((t) => t.addEventListener(e, this.onNavigateNextClicked, !1)), this.controlsFullscreen.forEach((t) => t.addEventListener(e, this.onEnterFullscreen, !1));
1555
1555
  });
1556
1556
  }
@@ -1634,7 +1634,7 @@ var He = class {
1634
1634
  }
1635
1635
  onEnterFullscreen(e) {
1636
1636
  let t = this.Reveal.getConfig(), n = this.Reveal.getViewportElement();
1637
- se(t.embedded ? n : n.parentElement);
1637
+ oe(t.embedded ? n : n.parentElement);
1638
1638
  }
1639
1639
  }, We = class {
1640
1640
  constructor(e) {
@@ -1929,7 +1929,7 @@ var He = class {
1929
1929
  e.removeEventListener("pointerdown", this.onPointerDown, !1), e.removeEventListener("pointermove", this.onPointerMove, !1), e.removeEventListener("pointerup", this.onPointerUp, !1), e.removeEventListener("pointercancel", this.onPointerCancel, !1), e.removeEventListener("touchstart", this.onTouchStart, !1), e.removeEventListener("touchmove", this.onTouchMove, !1), e.removeEventListener("touchend", this.onTouchEnd, !1);
1930
1930
  }
1931
1931
  isSwipePrevented(e) {
1932
- if (F(e, "video[controls], audio[controls]")) return !0;
1932
+ if (I(e, "video[controls], audio[controls]")) return !0;
1933
1933
  for (; e && typeof e.hasAttribute == "function";) {
1934
1934
  if (e.hasAttribute("data-prevent-swipe")) return !0;
1935
1935
  e = e.parentNode;
@@ -1948,7 +1948,7 @@ var He = class {
1948
1948
  onTouchMove(e) {
1949
1949
  if (this.isSwipePrevented(e.target)) return !0;
1950
1950
  let t = this.Reveal.getConfig();
1951
- if (this.touchCaptured) R && e.preventDefault();
1951
+ if (this.touchCaptured) he && e.preventDefault();
1952
1952
  else {
1953
1953
  this.Reveal.onUserInput(e);
1954
1954
  let n = e.touches[0].clientX, r = e.touches[0].clientY;
@@ -2008,7 +2008,7 @@ var He = class {
2008
2008
  this.focus();
2009
2009
  }
2010
2010
  onDocumentPointerDown(e) {
2011
- let t = I(e.target, ".reveal");
2011
+ let t = L(e.target, ".reveal");
2012
2012
  (!t || t !== this.Reveal.getRevealElement()) && this.blur();
2013
2013
  }
2014
2014
  }, tt = class {
@@ -2167,18 +2167,18 @@ function at(e, t) {
2167
2167
  }, d = [], f = 1, p = {
2168
2168
  layout: "",
2169
2169
  overview: ""
2170
- }, m = {}, h = "idle", g = 0, _, v = 0, y = -1, b = !1, x = new be(n), S = new Te(n), C = new V(n), ee = new Ae(n), w = new Oe(n), T = new Fe(n), E = new Re(n), D = new ze(n), O = new Be(n), k = new Ve(n), A = new He(n), te = new Ue(n), ne = new We(n), j = new Ge(n), M = new qe(n), N = new Je(n), F = new et(n), se = new Ze(n), L = new tt(n);
2171
- function de(a) {
2170
+ }, m = {}, h = "idle", g = 0, _, v = 0, y = -1, b = !1, x = new be(n), S = new Te(n), ee = new Ee(n), C = new Ae(n), w = new ke(n), T = new Fe(n), E = new Re(n), D = new ze(n), O = new Be(n), k = new Ve(n), A = new He(n), te = new Ue(n), ne = new We(n), j = new Ge(n), M = new qe(n), N = new Je(n), I = new et(n), oe = new Ze(n), R = new tt(n);
2171
+ function ue(a) {
2172
2172
  if (!e) throw "Unable to find presentation root (<div class=\"reveal\">).";
2173
2173
  if (i) throw "Reveal.js has already been initialized.";
2174
2174
  if (i = !0, m.wrapper = e, m.slides = e.querySelector(".slides"), !m.slides) throw "Unable to find slides container (<div class=\"slides\">).";
2175
- return r = U(U(U(U(U({}, rt), r), t), a), le()), /print-pdf/gi.test(window.location.search) && (r.view = "print"), fe(), window.addEventListener("load", Xe, !1), M.load(r.plugins, r.dependencies).then(pe), new Promise((e) => n.on("ready", e));
2175
+ return r = U(U(U(U(U({}, rt), r), t), a), ce()), /print-pdf/gi.test(window.location.search) && (r.view = "print"), de(), window.addEventListener("load", Xe, !1), M.load(r.plugins, r.dependencies).then(fe), new Promise((e) => n.on("ready", e));
2176
2176
  }
2177
- function fe() {
2178
- r.embedded === !0 ? m.viewport = I(e, ".reveal-viewport") || e : (m.viewport = document.body, document.documentElement.classList.add("reveal-full-page")), m.viewport.classList.add("reveal-viewport");
2177
+ function de() {
2178
+ r.embedded === !0 ? m.viewport = L(e, ".reveal-viewport") || e : (m.viewport = document.body, document.documentElement.classList.add("reveal-full-page")), m.viewport.classList.add("reveal-viewport");
2179
2179
  }
2180
- function pe() {
2181
- i !== !1 && (a = !0, R(), ge(), De(), Ce(), Ee(), xt(), ke(), w.update(!0), me(), A.readURL(), setTimeout(() => {
2180
+ function fe() {
2181
+ i !== !1 && (a = !0, he(), ge(), Oe(), Ce(), De(), xt(), V(), w.update(!0), pe(), A.readURL(), setTimeout(() => {
2182
2182
  m.slides.classList.remove("no-transition"), m.wrapper.classList.add("ready"), H({
2183
2183
  type: "ready",
2184
2184
  data: {
@@ -2189,18 +2189,18 @@ function at(e, t) {
2189
2189
  });
2190
2190
  }, 1));
2191
2191
  }
2192
- function me() {
2192
+ function pe() {
2193
2193
  let e = r.view === "print", t = r.view === "scroll" || r.view === "reader";
2194
- (e || t) && (e ? Me() : se.unbind(), m.viewport.classList.add("loading-scroll-mode"), e ? document.readyState === "complete" ? E.activate() : window.addEventListener("load", () => E.activate()) : T.activate());
2194
+ (e || t) && (e ? Me() : oe.unbind(), m.viewport.classList.add("loading-scroll-mode"), e ? document.readyState === "complete" ? E.activate() : window.addEventListener("load", () => E.activate()) : T.activate());
2195
2195
  }
2196
- function R() {
2196
+ function he() {
2197
2197
  r.showHiddenSlides || P(m.wrapper, "section[data-visibility=\"hidden\"]").forEach((e) => {
2198
2198
  let t = e.parentNode;
2199
2199
  t.childElementCount === 1 && /section/i.test(t.nodeName) ? t.remove() : e.remove();
2200
2200
  });
2201
2201
  }
2202
2202
  function ge() {
2203
- m.slides.classList.add("no-transition"), he ? m.wrapper.classList.add("no-hover") : m.wrapper.classList.remove("no-hover"), w.render(), S.render(), C.render(), te.render(), ne.render(), L.render(), m.pauseOverlay = ce(m.wrapper, "div", "pause-overlay", r.controls ? "<button class=\"resume-button\">Resume presentation</button>" : null), m.statusElement = _e(), m.wrapper.setAttribute("role", "application");
2203
+ m.slides.classList.add("no-transition"), me ? m.wrapper.classList.add("no-hover") : m.wrapper.classList.remove("no-hover"), w.render(), S.render(), ee.render(), te.render(), ne.render(), R.render(), m.pauseOverlay = se(m.wrapper, "div", "pause-overlay", r.controls ? "<button class=\"resume-button\">Resume presentation</button>" : null), m.statusElement = _e(), m.wrapper.setAttribute("role", "application");
2204
2204
  }
2205
2205
  function _e() {
2206
2206
  let e = m.wrapper.querySelector(".aria-status");
@@ -2209,7 +2209,7 @@ function at(e, t) {
2209
2209
  function ve(e) {
2210
2210
  m.statusElement.textContent = e;
2211
2211
  }
2212
- function ye(e) {
2212
+ function z(e) {
2213
2213
  let t = "";
2214
2214
  if (e.nodeType === 3) t += e.textContent.trim();
2215
2215
  else if (e.nodeType === 1) {
@@ -2217,10 +2217,10 @@ function at(e, t) {
2217
2217
  if (n !== "true" && !r) {
2218
2218
  if (e.tagName === "IMG" || e.tagName === "VIDEO") {
2219
2219
  let n = e.getAttribute("alt");
2220
- n && (t += z(n));
2220
+ n && (t += ye(n));
2221
2221
  }
2222
2222
  Array.from(e.childNodes).forEach((e) => {
2223
- t += ye(e);
2223
+ t += z(e);
2224
2224
  }), [
2225
2225
  "P",
2226
2226
  "DIV",
@@ -2234,12 +2234,12 @@ function at(e, t) {
2234
2234
  "H5",
2235
2235
  "H6",
2236
2236
  "BLOCKQUOTE"
2237
- ].includes(e.tagName) && t.trim() !== "" && (t = z(t));
2237
+ ].includes(e.tagName) && t.trim() !== "" && (t = ye(t));
2238
2238
  }
2239
2239
  }
2240
2240
  return t = t.trim(), t === "" ? "" : t + " ";
2241
2241
  }
2242
- function z(e) {
2242
+ function ye(e) {
2243
2243
  let t = e.trim();
2244
2244
  return t === "" ? e : /[.!?]$/.test(t) ? t : t + ".";
2245
2245
  }
@@ -2248,26 +2248,26 @@ function at(e, t) {
2248
2248
  (!T.isActive() && m.wrapper.scrollTop !== 0 || m.wrapper.scrollLeft !== 0) && (m.wrapper.scrollTop = 0, m.wrapper.scrollLeft = 0);
2249
2249
  }, 1e3);
2250
2250
  }
2251
- function Ee() {
2251
+ function De() {
2252
2252
  document.addEventListener("fullscreenchange", rn), document.addEventListener("webkitfullscreenchange", rn);
2253
2253
  }
2254
- function De() {
2254
+ function Oe() {
2255
2255
  r.postMessage && window.addEventListener("message", Qt, !1);
2256
2256
  }
2257
- function ke(e) {
2257
+ function V(e) {
2258
2258
  let t = U({}, r);
2259
2259
  if (typeof e == "object" && re(r, e), n.isReady() === !1) return;
2260
- let i = m.wrapper.querySelectorAll(B).length;
2261
- m.wrapper.classList.remove(t.transition), m.wrapper.classList.add(r.transition), m.wrapper.setAttribute("data-transition-speed", r.transitionSpeed), m.wrapper.setAttribute("data-background-transition", r.backgroundTransition), m.viewport.style.setProperty("--slide-width", typeof r.width == "string" ? r.width : r.width + "px"), m.viewport.style.setProperty("--slide-height", typeof r.height == "string" ? r.height : r.height + "px"), r.shuffle && J(), ie(m.wrapper, "embedded", r.embedded), ie(m.wrapper, "rtl", r.rtl), ie(m.wrapper, "center", r.center), r.pause === !1 && ft(), ee.reset(), _ &&= (_.destroy(), null), i > 1 && r.autoSlide && r.autoSlideStoppable && (_ = new nt(m.wrapper, () => Math.min(Math.max((Date.now() - y) / g, 0), 1)), _.on("click", an), b = !1), r.navigationMode === "default" ? m.wrapper.removeAttribute("data-navigation-mode") : m.wrapper.setAttribute("data-navigation-mode", r.navigationMode), L.configure(r, t), F.configure(r, t), j.configure(r, t), te.configure(r, t), ne.configure(r, t), k.configure(r, t), D.configure(r, t), S.configure(r, t), q();
2260
+ let i = m.wrapper.querySelectorAll(xe).length;
2261
+ m.wrapper.classList.remove(t.transition), m.wrapper.classList.add(r.transition), m.wrapper.setAttribute("data-transition-speed", r.transitionSpeed), m.wrapper.setAttribute("data-background-transition", r.backgroundTransition), m.viewport.style.setProperty("--slide-width", typeof r.width == "string" ? r.width : r.width + "px"), m.viewport.style.setProperty("--slide-height", typeof r.height == "string" ? r.height : r.height + "px"), r.shuffle && J(), ie(m.wrapper, "embedded", r.embedded), ie(m.wrapper, "rtl", r.rtl), ie(m.wrapper, "center", r.center), r.pause === !1 && ft(), C.reset(), _ &&= (_.destroy(), null), i > 1 && r.autoSlide && r.autoSlideStoppable && (_ = new nt(m.wrapper, () => Math.min(Math.max((Date.now() - y) / g, 0), 1)), _.on("click", an), b = !1), r.navigationMode === "default" ? m.wrapper.removeAttribute("data-navigation-mode") : m.wrapper.setAttribute("data-navigation-mode", r.navigationMode), R.configure(r, t), I.configure(r, t), j.configure(r, t), te.configure(r, t), ne.configure(r, t), k.configure(r, t), D.configure(r, t), S.configure(r, t), q();
2262
2262
  }
2263
2263
  function je() {
2264
- window.addEventListener("resize", tn, !1), r.touch && se.bind(), r.keyboard && k.bind(), r.progress && ne.bind(), r.respondToHashChanges && A.bind(), te.bind(), F.bind(), m.slides.addEventListener("click", en, !1), m.slides.addEventListener("transitionend", $t, !1), m.pauseOverlay.addEventListener("click", ft, !1), r.focusBodyOnPageVisibilityChange && document.addEventListener("visibilitychange", nn, !1);
2264
+ window.addEventListener("resize", tn, !1), r.touch && oe.bind(), r.keyboard && k.bind(), r.progress && ne.bind(), r.respondToHashChanges && A.bind(), te.bind(), I.bind(), m.slides.addEventListener("click", en, !1), m.slides.addEventListener("transitionend", $t, !1), m.pauseOverlay.addEventListener("click", ft, !1), r.focusBodyOnPageVisibilityChange && document.addEventListener("visibilitychange", nn, !1);
2265
2265
  }
2266
2266
  function Me() {
2267
- se.unbind(), F.unbind(), k.unbind(), te.unbind(), ne.unbind(), A.unbind(), window.removeEventListener("resize", tn, !1), m.slides.removeEventListener("click", en, !1), m.slides.removeEventListener("transitionend", $t, !1), m.pauseOverlay.removeEventListener("click", ft, !1);
2267
+ oe.unbind(), I.unbind(), k.unbind(), te.unbind(), ne.unbind(), A.unbind(), window.removeEventListener("resize", tn, !1), m.slides.removeEventListener("click", en, !1), m.slides.removeEventListener("transitionend", $t, !1), m.pauseOverlay.removeEventListener("click", ft, !1);
2268
2268
  }
2269
2269
  function Ne() {
2270
- i = !1, a !== !1 && (Me(), Ht(), L.destroy(), F.destroy(), N.destroy(), M.destroy(), j.destroy(), te.destroy(), ne.destroy(), w.destroy(), S.destroy(), C.destroy(), document.removeEventListener("fullscreenchange", rn), document.removeEventListener("webkitfullscreenchange", rn), document.removeEventListener("visibilitychange", nn, !1), window.removeEventListener("message", Qt, !1), window.removeEventListener("load", Xe, !1), m.pauseOverlay && m.pauseOverlay.remove(), m.statusElement && m.statusElement.remove(), document.documentElement.classList.remove("reveal-full-page"), m.wrapper.classList.remove("ready", "center", "has-horizontal-slides", "has-vertical-slides"), m.wrapper.removeAttribute("data-transition-speed"), m.wrapper.removeAttribute("data-background-transition"), m.viewport.classList.remove("reveal-viewport"), m.viewport.style.removeProperty("--slide-width"), m.viewport.style.removeProperty("--slide-height"), m.slides.style.removeProperty("width"), m.slides.style.removeProperty("height"), m.slides.style.removeProperty("zoom"), m.slides.style.removeProperty("left"), m.slides.style.removeProperty("top"), m.slides.style.removeProperty("bottom"), m.slides.style.removeProperty("right"), m.slides.style.removeProperty("transform"), Array.from(m.wrapper.querySelectorAll(B)).forEach((e) => {
2270
+ i = !1, a !== !1 && (Me(), Ht(), R.destroy(), I.destroy(), N.destroy(), M.destroy(), j.destroy(), te.destroy(), ne.destroy(), w.destroy(), S.destroy(), ee.destroy(), document.removeEventListener("fullscreenchange", rn), document.removeEventListener("webkitfullscreenchange", rn), document.removeEventListener("visibilitychange", nn, !1), window.removeEventListener("message", Qt, !1), window.removeEventListener("load", Xe, !1), m.pauseOverlay && m.pauseOverlay.remove(), m.statusElement && m.statusElement.remove(), document.documentElement.classList.remove("reveal-full-page"), m.wrapper.classList.remove("ready", "center", "has-horizontal-slides", "has-vertical-slides"), m.wrapper.removeAttribute("data-transition-speed"), m.wrapper.removeAttribute("data-background-transition"), m.viewport.classList.remove("reveal-viewport"), m.viewport.style.removeProperty("--slide-width"), m.viewport.style.removeProperty("--slide-height"), m.slides.style.removeProperty("width"), m.slides.style.removeProperty("height"), m.slides.style.removeProperty("zoom"), m.slides.style.removeProperty("left"), m.slides.style.removeProperty("top"), m.slides.style.removeProperty("bottom"), m.slides.style.removeProperty("right"), m.slides.style.removeProperty("transform"), Array.from(m.wrapper.querySelectorAll(xe)).forEach((e) => {
2271
2271
  e.style.removeProperty("display"), e.style.removeProperty("top"), e.removeAttribute("hidden"), e.removeAttribute("aria-hidden"), e.removeAttribute("inert");
2272
2272
  }));
2273
2273
  }
@@ -2278,7 +2278,7 @@ function at(e, t) {
2278
2278
  e.removeEventListener(t, n, r);
2279
2279
  }
2280
2280
  function Le(e) {
2281
- typeof e.layout == "string" && (p.layout = e.layout), typeof e.overview == "string" && (p.overview = e.overview), p.layout ? oe(m.slides, p.layout + " " + p.overview) : oe(m.slides, p.overview);
2281
+ typeof e.layout == "string" && (p.layout = e.layout), typeof e.overview == "string" && (p.overview = e.overview), p.layout ? F(m.slides, p.layout + " " + p.overview) : F(m.slides, p.overview);
2282
2282
  }
2283
2283
  function H({ target: e = m.wrapper, type: t, data: n, bubbles: r = !0 }) {
2284
2284
  let i = document.createEvent("HTMLEvents", 1, 2);
@@ -2310,10 +2310,10 @@ function at(e, t) {
2310
2310
  if (m.wrapper && !E.isActive()) {
2311
2311
  let e = m.viewport.offsetWidth, t = m.viewport.offsetHeight;
2312
2312
  if (!r.disableLayout) {
2313
- he && !r.embedded && document.documentElement.style.setProperty("--vh", window.innerHeight * .01 + "px");
2313
+ me && !r.embedded && document.documentElement.style.setProperty("--vh", window.innerHeight * .01 + "px");
2314
2314
  let n = T.isActive() ? at(e, t) : at(), i = f;
2315
2315
  Qe(r.width, r.height), m.slides.style.width = n.width + "px", m.slides.style.height = n.height + "px", f = Math.min(n.presentationWidth / n.width, n.presentationHeight / n.height), f = Math.max(f, r.minScale), f = Math.min(f, r.maxScale), f = Math.round(f * 100) / 100, f === 1 || T.isActive() ? (m.slides.style.zoom = "", m.slides.style.left = "", m.slides.style.top = "", m.slides.style.bottom = "", m.slides.style.right = "", Le({ layout: "" })) : (m.slides.style.zoom = "", m.slides.style.left = "50%", m.slides.style.top = "50%", m.slides.style.bottom = "auto", m.slides.style.right = "auto", Le({ layout: "translate(-50%, -50%) scale(" + f + ")" }));
2316
- let a = Array.from(m.wrapper.querySelectorAll(B)).filter((e) => e.style.display !== "none"), o = Array(a.length);
2316
+ let a = Array.from(m.wrapper.querySelectorAll(xe)).filter((e) => e.style.display !== "none"), o = Array(a.length);
2317
2317
  for (let e = 0, t = a.length; e < t; e++) {
2318
2318
  let t = a[e];
2319
2319
  r.center || t.classList.contains("center") ? t.classList.contains("stack") ? o[e] = 0 : o[e] = Math.max((n.height - t.scrollHeight) / 2, 0) + "px" : o[e] = "";
@@ -2333,7 +2333,7 @@ function at(e, t) {
2333
2333
  }
2334
2334
  function Qe(e, t) {
2335
2335
  P(m.slides, "section > .stretch, section > .r-stretch").forEach((n) => {
2336
- let r = ue(n, t);
2336
+ let r = le(n, t);
2337
2337
  if (/(img|video)/gi.test(n.nodeName)) {
2338
2338
  let t = n.naturalWidth || n.videoWidth, i = n.naturalHeight || n.videoHeight, a = Math.min(e / t, r / i);
2339
2339
  n.style.width = t * a + "px", n.style.height = i * a + "px";
@@ -2399,7 +2399,7 @@ function at(e, t) {
2399
2399
  return m.wrapper.classList.contains("paused");
2400
2400
  }
2401
2401
  function ht(e) {
2402
- typeof e == "boolean" ? e ? C.show() : C.hide() : C.isVisible() ? C.hide() : C.show();
2402
+ typeof e == "boolean" ? e ? ee.show() : ee.hide() : ee.isVisible() ? ee.hide() : ee.show();
2403
2403
  }
2404
2404
  function gt(e) {
2405
2405
  typeof e == "boolean" ? e ? Wt() : Ut() : b ? Wt() : Ut();
@@ -2417,7 +2417,7 @@ function at(e, t) {
2417
2417
  }
2418
2418
  }).defaultPrevented) return;
2419
2419
  c = l;
2420
- let u = m.wrapper.querySelectorAll(xe);
2420
+ let u = m.wrapper.querySelectorAll(Se);
2421
2421
  if (T.isActive()) {
2422
2422
  let e = T.getSlideByIndices(t, n);
2423
2423
  e && T.scrollToSlide(e);
@@ -2428,7 +2428,7 @@ function at(e, t) {
2428
2428
  let f = d.concat();
2429
2429
  d.length = 0;
2430
2430
  let p = o || 0, g = s || 0;
2431
- o = St(xe, t === void 0 ? o : t), s = St(Se, n === void 0 ? s : n);
2431
+ o = St(Se, t === void 0 ? o : t), s = St(B, n === void 0 ? s : n);
2432
2432
  let _ = o !== p || s !== g;
2433
2433
  _ || (c = null);
2434
2434
  let v = u[o], y = v.querySelectorAll("section");
@@ -2448,10 +2448,10 @@ function at(e, t) {
2448
2448
  }
2449
2449
  for (; f.length;) m.viewport.classList.remove(f.pop());
2450
2450
  _ && (x.afterSlideChanged(), Ke(a)), (_ || !c) && (x.stopEmbeddedContent(c), x.startEmbeddedContent(l)), requestAnimationFrame(() => {
2451
- ve(ye(l));
2452
- }), ne.update(), te.update(), L.update(), w.update(), w.updateParallax(), S.update(), D.update(), A.writeURL(), Vt(), b && (setTimeout(() => {
2451
+ ve(z(l));
2452
+ }), ne.update(), te.update(), R.update(), w.update(), w.updateParallax(), S.update(), D.update(), A.writeURL(), Vt(), b && (setTimeout(() => {
2453
2453
  m.slides.classList.remove("disable-slide-transitions");
2454
- }, 0), r.autoAnimate && ee.run(c, l));
2454
+ }, 0), r.autoAnimate && C.run(c, l));
2455
2455
  }
2456
2456
  function vt(e, t, n, r) {
2457
2457
  return e.hasAttribute("data-auto-animate") && t.hasAttribute("data-auto-animate") && e.getAttribute("data-auto-animate-id") === t.getAttribute("data-auto-animate-id") && !(o > n || s > r ? t : e).hasAttribute("data-auto-animate-restart");
@@ -2460,15 +2460,15 @@ function at(e, t) {
2460
2460
  let i = o || 0;
2461
2461
  o = t, s = n;
2462
2462
  let a = l !== e;
2463
- c = l, l = e, l && c && r.autoAnimate && vt(c, l, i, s) && ee.run(c, l), a && (x.afterSlideChanged(), c && (x.stopEmbeddedContent(c), x.stopEmbeddedContent(c.slideBackgroundElement)), x.startEmbeddedContent(l), x.startEmbeddedContent(l.slideBackgroundElement)), requestAnimationFrame(() => {
2464
- ve(ye(l));
2463
+ c = l, l = e, l && c && r.autoAnimate && vt(c, l, i, s) && C.run(c, l), a && (x.afterSlideChanged(), c && (x.stopEmbeddedContent(c), x.stopEmbeddedContent(c.slideBackgroundElement)), x.startEmbeddedContent(l), x.startEmbeddedContent(l.slideBackgroundElement)), requestAnimationFrame(() => {
2464
+ ve(z(l));
2465
2465
  }), Ke();
2466
2466
  }
2467
2467
  function q() {
2468
- Me(), je(), Xe(), g = r.autoSlide, Vt(), w.create(), A.writeURL(), r.sortFragmentsOnSync === !0 && D.sortAll(), o !== void 0 && (o = St(xe, o), s = St(Se, s)), te.update(), ne.update(), wt(), L.update(), L.updateVisibility(), N.update(), w.update(!0), S.update(), x.formatEmbeddedContent(), r.autoPlayMedia === !1 ? x.stopEmbeddedContent(l, { unloadIframes: !1 }) : x.startEmbeddedContent(l), O.isActive() && O.layout(), H({ type: "sync" });
2468
+ Me(), je(), Xe(), g = r.autoSlide, Vt(), w.create(), A.writeURL(), r.sortFragmentsOnSync === !0 && D.sortAll(), o !== void 0 && (o = St(Se, o), s = St(B, s)), te.update(), ne.update(), wt(), R.update(), R.updateVisibility(), N.update(), w.update(!0), S.update(), x.formatEmbeddedContent(), r.autoPlayMedia === !1 ? x.stopEmbeddedContent(l, { unloadIframes: !1 }) : x.startEmbeddedContent(l), O.isActive() && O.layout(), H({ type: "sync" });
2469
2469
  }
2470
2470
  function bt(e = l) {
2471
- w.sync(e), D.sync(e), x.load(e), w.update(), L.update(), H({
2471
+ w.sync(e), D.sync(e), x.load(e), w.update(), R.update(), H({
2472
2472
  type: "slidesync",
2473
2473
  data: { slide: e }
2474
2474
  });
@@ -2525,7 +2525,7 @@ function at(e, t) {
2525
2525
  let e = At(), t = e.length, n, i;
2526
2526
  if (t && o !== void 0) {
2527
2527
  let a = O.isActive(), c = a ? 10 : r.viewDistance;
2528
- he && (c = a ? 6 : r.mobileViewDistance), E.isActive() && (c = Number.MAX_VALUE);
2528
+ me && (c = a ? 6 : r.mobileViewDistance), E.isActive() && (c = Number.MAX_VALUE);
2529
2529
  for (let l = 0; l < t; l++) {
2530
2530
  let u = e[l], d = P(u, "section"), f = d.length;
2531
2531
  if (n = Math.abs((o || 0) - l) || 0, r.loop && (n = Math.abs(((o || 0) - l) % (t - c)) || 0), n < c ? x.load(u) : x.unload(u), f) {
@@ -2539,12 +2539,12 @@ function at(e, t) {
2539
2539
  Pt() ? m.wrapper.classList.add("has-vertical-slides") : m.wrapper.classList.remove("has-vertical-slides"), Nt() ? m.wrapper.classList.add("has-horizontal-slides") : m.wrapper.classList.remove("has-horizontal-slides");
2540
2540
  }
2541
2541
  let a = O.isActive() || T.isActive() || E.isActive();
2542
- P(m.wrapper, B).forEach((e) => {
2542
+ P(m.wrapper, xe).forEach((e) => {
2543
2543
  e.toggleAttribute("inert", !a && e !== l && !e.contains(l));
2544
2544
  });
2545
2545
  }
2546
2546
  function Tt({ includeFragments: e = !1 } = {}) {
2547
- let t = m.wrapper.querySelectorAll(xe), n = m.wrapper.querySelectorAll(Se), i = {
2547
+ let t = m.wrapper.querySelectorAll(Se), n = m.wrapper.querySelectorAll(B), i = {
2548
2548
  left: o > 0,
2549
2549
  right: o < t.length - 1,
2550
2550
  up: s > 0,
@@ -2604,16 +2604,16 @@ function at(e, t) {
2604
2604
  };
2605
2605
  }
2606
2606
  function kt() {
2607
- return P(m.wrapper, B + ":not(.stack):not([data-visibility=\"uncounted\"])");
2607
+ return P(m.wrapper, xe + ":not(.stack):not([data-visibility=\"uncounted\"])");
2608
2608
  }
2609
2609
  function At() {
2610
- return P(m.wrapper, xe);
2610
+ return P(m.wrapper, Se);
2611
2611
  }
2612
2612
  function jt() {
2613
2613
  return P(m.wrapper, ".slides>section>section");
2614
2614
  }
2615
2615
  function Mt() {
2616
- return P(m.wrapper, xe + ".stack");
2616
+ return P(m.wrapper, Se + ".stack");
2617
2617
  }
2618
2618
  function Nt() {
2619
2619
  return At().length > 1;
@@ -2700,7 +2700,7 @@ function at(e, t) {
2700
2700
  if (Tt().up) qt({ skipFragments: e });
2701
2701
  else {
2702
2702
  let t;
2703
- if (t = r.rtl ? P(m.wrapper, xe + ".future").pop() : P(m.wrapper, xe + ".past").pop(), t && t.classList.contains("stack")) {
2703
+ if (t = r.rtl ? P(m.wrapper, Se + ".future").pop() : P(m.wrapper, Se + ".past").pop(), t && t.classList.contains("stack")) {
2704
2704
  let e = t.querySelectorAll("section").length - 1 || void 0;
2705
2705
  K(o - 1, e);
2706
2706
  } else r.rtl ? Kt({ skipFragments: e }) : Gt({ skipFragments: e });
@@ -2741,7 +2741,7 @@ function at(e, t) {
2741
2741
  }));
2742
2742
  }
2743
2743
  function en(e) {
2744
- let t = I(e.target, "a[href^=\"#\"]");
2744
+ let t = L(e.target, "a[href^=\"#\"]");
2745
2745
  if (t) {
2746
2746
  let r = t.getAttribute("href"), i = A.getIndicesFromHash(r);
2747
2747
  i && (n.slide(i.h, i.v, i.f), e.preventDefault());
@@ -2763,8 +2763,8 @@ function at(e, t) {
2763
2763
  }
2764
2764
  let on = {
2765
2765
  VERSION: it,
2766
- initialize: de,
2767
- configure: ke,
2766
+ initialize: ue,
2767
+ configure: V,
2768
2768
  destroy: Ne,
2769
2769
  sync: q,
2770
2770
  syncSlide: bt,
@@ -2806,9 +2806,9 @@ function at(e, t) {
2806
2806
  isVerticalStack: st,
2807
2807
  isPaused: mt,
2808
2808
  isAutoSliding: _t,
2809
- isSpeakerNotes: L.isSpeakerNotesWindow.bind(L),
2809
+ isSpeakerNotes: R.isSpeakerNotesWindow.bind(R),
2810
2810
  isOverview: O.isActive.bind(O),
2811
- isFocused: F.isFocused.bind(F),
2811
+ isFocused: I.isFocused.bind(I),
2812
2812
  isOverlayOpen: N.isOpen.bind(N),
2813
2813
  isScrollView: T.isActive.bind(T),
2814
2814
  isPrintView: E.isActive.bind(E),
@@ -2836,7 +2836,7 @@ function at(e, t) {
2836
2836
  getPreviousSlide: () => c,
2837
2837
  getCurrentSlide: () => l,
2838
2838
  getSlideBackground: Rt,
2839
- getSlideNotes: L.getSlideNotes.bind(L),
2839
+ getSlideNotes: R.getSlideNotes.bind(R),
2840
2840
  getSlides: kt,
2841
2841
  getHorizontalSlides: At,
2842
2842
  getVerticalSlides: jt,
@@ -2851,10 +2851,10 @@ function at(e, t) {
2851
2851
  registerKeyboardShortcut: k.registerKeyboardShortcut.bind(k),
2852
2852
  getComputedSlideSize: at,
2853
2853
  setCurrentScrollPage: yt,
2854
- removeHiddenSlides: R,
2854
+ removeHiddenSlides: he,
2855
2855
  getScale: () => f,
2856
2856
  getConfig: () => r,
2857
- getQueryHash: le,
2857
+ getQueryHash: ce,
2858
2858
  getSlidePath: A.getHash.bind(A),
2859
2859
  getRevealElement: () => e,
2860
2860
  getSlidesElement: () => m.slides,
@@ -2867,8 +2867,8 @@ function at(e, t) {
2867
2867
  };
2868
2868
  return re(n, U(U({}, on), {}, {
2869
2869
  announceStatus: ve,
2870
- getStatusText: ye,
2871
- focus: F,
2870
+ getStatusText: z,
2871
+ focus: I,
2872
2872
  scroll: T,
2873
2873
  progress: ne,
2874
2874
  controls: te,
@@ -2907,7 +2907,7 @@ W.initialize = (e) => {
2907
2907
  }), W.isReady = () => !1, W.VERSION = it;
2908
2908
  //#endregion
2909
2909
  //#region ../node_modules/.pnpm/@revealjs+react@0.2.2_react-dom@19.3.0_react@19.3.0__react@19.3.0_reveal.js@6.0.2/node_modules/@revealjs/react/dist/index.mjs
2910
- var G = T(), st = (0, M.createContext)(null), ct = [];
2910
+ var G = w(), st = (0, M.createContext)(null), ct = [];
2911
2911
  function lt(e, t) {
2912
2912
  if (e === t) return !1;
2913
2913
  if (!e || !t) return e !== t;
@@ -2934,7 +2934,7 @@ function pt(e, t, n) {
2934
2934
  return e ? JSON.stringify(ft(e, t, n)) : "[]";
2935
2935
  }
2936
2936
  function mt({ config: e, plugins: t = ct, onReady: n, onSync: r, onSlideSync: i, onSlideChange: a, onSlideTransitionEnd: o, onFragmentShown: s, onFragmentHidden: c, onOverviewShown: l, onOverviewHidden: u, onPaused: d, onResumed: f, deckRef: p, className: m, style: h, children: g }) {
2937
- let _ = (0, M.useRef)(null), v = (0, M.useRef)(null), y = (0, M.useRef)(null), [b, x] = (0, M.useState)(null), S = (0, M.useRef)(t), C = (0, M.useRef)(!1), ee = (0, M.useRef)(e), w = (0, M.useRef)(null), T = (0, M.useRef)(/* @__PURE__ */ new WeakMap()), E = (0, M.useRef)(1), D = (0, M.useRef)(!1), O = (0, M.useRef)(0);
2937
+ let _ = (0, M.useRef)(null), v = (0, M.useRef)(null), y = (0, M.useRef)(null), [b, x] = (0, M.useState)(null), S = (0, M.useRef)(t), ee = (0, M.useRef)(!1), C = (0, M.useRef)(e), w = (0, M.useRef)(null), T = (0, M.useRef)(/* @__PURE__ */ new WeakMap()), E = (0, M.useRef)(1), D = (0, M.useRef)(!1), O = (0, M.useRef)(0);
2938
2938
  return (0, M.useEffect)(() => {
2939
2939
  if (D.current = !0, O.current += 1, y.current) y.current.isReady() && x(y.current);
2940
2940
  else {
@@ -2942,7 +2942,7 @@ function mt({ config: e, plugins: t = ct, onReady: n, onSync: r, onSlideSync: i,
2942
2942
  ...e,
2943
2943
  plugins: S.current
2944
2944
  });
2945
- ee.current = e, y.current = t, t.initialize().then(() => {
2945
+ C.current = e, y.current = t, t.initialize().then(() => {
2946
2946
  D.current && y.current === t && (x(t), n?.(t));
2947
2947
  });
2948
2948
  }
@@ -2991,10 +2991,10 @@ function mt({ config: e, plugins: t = ct, onReady: n, onSync: r, onSlideSync: i,
2991
2991
  d,
2992
2992
  f
2993
2993
  ]), (0, M.useLayoutEffect)(() => {
2994
- b && y.current?.isReady() && lt(ee.current, e) && (C.current = !0, y.current.configure(e ?? {}), ee.current = e);
2994
+ b && y.current?.isReady() && lt(C.current, e) && (ee.current = !0, y.current.configure(e ?? {}), C.current = e);
2995
2995
  }, [b, e]), (0, M.useLayoutEffect)(() => {
2996
- let e = C.current;
2997
- C.current = !1;
2996
+ let e = ee.current;
2997
+ ee.current = !1;
2998
2998
  let t = pt(v.current, T.current, E);
2999
2999
  if (e) {
3000
3000
  w.current = t;
@@ -3062,7 +3062,7 @@ function _t(e, t) {
3062
3062
  }
3063
3063
  return n;
3064
3064
  }
3065
- function K({ children: e, background: t, backgroundImage: n, backgroundVideo: r, backgroundVideoLoop: i, backgroundVideoMuted: a, backgroundIframe: o, backgroundColor: s, backgroundGradient: c, backgroundSize: l, backgroundPosition: u, backgroundRepeat: d, backgroundOpacity: f, backgroundTransition: p, visibility: m, autoAnimate: h, autoAnimateId: g, autoAnimateRestart: _, autoAnimateUnmatched: v, autoAnimateEasing: y, autoAnimateDuration: b, autoAnimateDelay: x, transition: S, transitionSpeed: C, autoSlide: ee, notes: w, backgroundInteractive: T, preload: E, ...D }) {
3065
+ function K({ children: e, background: t, backgroundImage: n, backgroundVideo: r, backgroundVideoLoop: i, backgroundVideoMuted: a, backgroundIframe: o, backgroundColor: s, backgroundGradient: c, backgroundSize: l, backgroundPosition: u, backgroundRepeat: d, backgroundOpacity: f, backgroundTransition: p, visibility: m, autoAnimate: h, autoAnimateId: g, autoAnimateRestart: _, autoAnimateUnmatched: v, autoAnimateEasing: y, autoAnimateDuration: b, autoAnimateDelay: x, transition: S, transitionSpeed: ee, autoSlide: C, notes: w, backgroundInteractive: T, preload: E, ...D }) {
3066
3066
  let O = (0, M.useContext)(st), k = (0, M.useRef)(null), A = (0, M.useRef)(null), te = (0, M.useRef)(null), ne = _t(D, {
3067
3067
  background: t,
3068
3068
  backgroundImage: n,
@@ -3086,8 +3086,8 @@ function K({ children: e, background: t, backgroundImage: n, backgroundVideo: r,
3086
3086
  autoAnimateDuration: b,
3087
3087
  autoAnimateDelay: x,
3088
3088
  transition: S,
3089
- transitionSpeed: C,
3090
- autoSlide: ee,
3089
+ transitionSpeed: ee,
3090
+ autoSlide: C,
3091
3091
  notes: w,
3092
3092
  backgroundInteractive: T,
3093
3093
  preload: E
@@ -4587,7 +4587,9 @@ function Zn(e) {
4587
4587
  }
4588
4588
  function Qn(e) {
4589
4589
  let t = e.querySelector(".fragment:not(.visible)");
4590
- return t ? t.getBoundingClientRect().top - e.getBoundingClientRect().top + e.scrollTop : e.scrollHeight;
4590
+ if (!t) return e.scrollHeight;
4591
+ let n = e.getBoundingClientRect(), r = e.offsetHeight > 0 ? n.height / e.offsetHeight : 1;
4592
+ return (t.getBoundingClientRect().top - n.top) / (r || 1) + e.scrollTop;
4591
4593
  }
4592
4594
  function $n(e, t) {
4593
4595
  let n = (0, N.c)(4), [r, i] = (0, M.useState)(!1), a, o;
@@ -4624,7 +4626,7 @@ var er = (e) => {
4624
4626
  let o;
4625
4627
  t[3] === Symbol.for("react.memo_cache_sentinel") ? (o = /* @__PURE__ */ (0, G.jsxs)("div", {
4626
4628
  className: "absolute bottom-3 flex items-center gap-1 rounded-full border border-border/60 bg-background/90 px-2.5 py-1 text-xs text-muted-foreground shadow-sm backdrop-blur-sm",
4627
- children: [/* @__PURE__ */ (0, G.jsx)(C, { className: "h-3.5 w-3.5" }), /* @__PURE__ */ (0, G.jsx)("span", { children: "Scroll for more" })]
4629
+ children: [/* @__PURE__ */ (0, G.jsx)(S, { className: "h-3.5 w-3.5" }), /* @__PURE__ */ (0, G.jsx)("span", { children: "Scroll for more" })]
4628
4630
  }), t[3] = o) : o = t[3];
4629
4631
  let s;
4630
4632
  return t[4] === i ? s = t[5] : (s = /* @__PURE__ */ (0, G.jsxs)("div", {
@@ -4780,7 +4782,7 @@ var cr = (e) => (n.warn("SlideCellView islands stub rendered; this should never
4780
4782
  cells: i
4781
4783
  });
4782
4784
  }, t[0] = n, t[1] = a, t[2] = f) : f = t[2];
4783
- let p = D(f), m = ee(p, ur), h = (0, M.useRef)(o), g, _;
4785
+ let p = E(f), m = ee(p, ur), h = (0, M.useRef)(o), g, _;
4784
4786
  t[3] !== o || t[4] !== l || t[5] !== c || t[6] !== m ? (g = () => {
4785
4787
  if (h.current !== o) {
4786
4788
  m.flush(), d.current = !1, u(c), h.current = o;
@@ -6367,37 +6369,37 @@ var Ui = () => {
6367
6369
  },
6368
6370
  open: r
6369
6371
  };
6370
- }, Wi = 16 / 9, Gi = 67;
6371
- function Ki({ deck: e, enabled: t, onToggle: n }) {
6372
- e.removeKeyBinding(Gi), t && e.addKeyBinding({
6373
- keyCode: Gi,
6372
+ }, Wi = 16 / 9, Gi = 1280, Ki = Gi / Wi, qi = 67;
6373
+ function Ji({ deck: e, enabled: t, onToggle: n }) {
6374
+ e.removeKeyBinding(qi), t && e.addKeyBinding({
6375
+ keyCode: qi,
6374
6376
  key: "C",
6375
6377
  description: "Toggle code editor"
6376
6378
  }, n);
6377
6379
  }
6378
- function qi(e) {
6380
+ function Yi(e) {
6379
6381
  let t = e.getSlidesElement();
6380
6382
  if (t) for (let e of t.querySelectorAll("section.stack[data-previous-indexv]")) e.removeAttribute("data-previous-indexv");
6381
6383
  }
6382
- var Ji = /* @__PURE__ */ new Set([
6384
+ var Xi = /* @__PURE__ */ new Set([
6383
6385
  " ",
6384
6386
  "Spacebar",
6385
6387
  "ArrowRight",
6386
6388
  "ArrowDown",
6387
6389
  "PageDown"
6388
- ]), Yi = /* @__PURE__ */ new Set([
6390
+ ]), Zi = /* @__PURE__ */ new Set([
6389
6391
  "ArrowLeft",
6390
6392
  "ArrowUp",
6391
6393
  "PageUp"
6392
6394
  ]);
6393
- function Xi(e) {
6394
- return Ji.has(e.key) ? 1 : Yi.has(e.key) ? -1 : 0;
6395
+ function Qi(e) {
6396
+ return Xi.has(e.key) ? 1 : Zi.has(e.key) ? -1 : 0;
6395
6397
  }
6396
- function Zi(e) {
6398
+ function $i(e) {
6397
6399
  let t = (0, N.c)(4), n;
6398
6400
  t[0] === Symbol.for("react.memo_cache_sentinel") ? (n = {
6399
- width: 960,
6400
- height: 540
6401
+ width: Gi,
6402
+ height: Ki
6401
6403
  }, t[0] = n) : n = t[0];
6402
6404
  let [r, i] = (0, M.useState)(n), a, o;
6403
6405
  return t[1] === e ? (a = t[2], o = t[3]) : (a = () => {
@@ -6415,7 +6417,7 @@ function Zi(e) {
6415
6417
  return n.observe(t), () => n.disconnect();
6416
6418
  }, o = [e], t[1] = e, t[2] = a, t[3] = o), (0, M.useEffect)(a, o), r;
6417
6419
  }
6418
- var Qi = (e) => {
6420
+ var ea = (e) => {
6419
6421
  let t = (0, N.c)(6), { text: n } = e, r, i;
6420
6422
  if (t[0] !== n) {
6421
6423
  let e = n.split("\n");
@@ -6430,15 +6432,15 @@ var Qi = (e) => {
6430
6432
  children: i
6431
6433
  }), t[3] = r, t[4] = i, t[5] = a) : a = t[5], a;
6432
6434
  };
6433
- function $i(e) {
6435
+ function ta(e) {
6434
6436
  let { cells: t, cellId: n, showCodeOverrides: r, codeAvailable: i } = e;
6435
6437
  return n == null || !i ? !1 : (t.get(n)?.showCode ?? !1) || r.has(n);
6436
6438
  }
6437
- function ea(e) {
6439
+ function na(e) {
6438
6440
  let { cell: t, noOutputIds: n, heldEditCellId: r, slideConfigs: i } = e;
6439
6441
  return n.has(t.id) || t.id === r ? "skip" : i.get(t.id)?.type ?? "slide";
6440
6442
  }
6441
- function ta(e) {
6443
+ function ra(e) {
6442
6444
  let t = (0, N.c)(15), { activeCell: n, slideConfigs: r, noOutputIds: i } = e, a = n?.id ?? null, o;
6443
6445
  t[0] !== n || t[1] !== i ? (o = n != null && i.has(n.id), t[0] = n, t[1] = i, t[2] = o) : o = t[2];
6444
6446
  let s = o, c = n != null && r.get(n.id)?.type === "skip" || s, l;
@@ -6465,8 +6467,8 @@ function ta(e) {
6465
6467
  show: !0
6466
6468
  }));
6467
6469
  let y;
6468
- t[7] === Symbol.for("react.memo_cache_sentinel") ? (y = () => _(na), t[7] = y) : y = t[7];
6469
- let b = D(y), x = c || p ? n ?? null : null, S;
6470
+ t[7] === Symbol.for("react.memo_cache_sentinel") ? (y = () => _(ia), t[7] = y) : y = t[7];
6471
+ let b = E(y), x = c || p ? n ?? null : null, S;
6470
6472
  return t[8] !== m || t[9] !== v || t[10] !== p || t[11] !== s || t[12] !== x || t[13] !== b ? (S = {
6471
6473
  parkedPreviewCell: x,
6472
6474
  isHeldEdit: p,
@@ -6476,26 +6478,26 @@ function ta(e) {
6476
6478
  toggleHeldShowsCode: b
6477
6479
  }, t[8] = m, t[9] = v, t[10] = p, t[11] = s, t[12] = x, t[13] = b, t[14] = S) : S = t[14], S;
6478
6480
  }
6479
- function na(e) {
6481
+ function ia(e) {
6480
6482
  return {
6481
6483
  ...e,
6482
6484
  show: !e.show
6483
6485
  };
6484
6486
  }
6485
- function ra(e) {
6487
+ function aa(e) {
6486
6488
  switch (e ?? "center") {
6487
6489
  case "top": return { margin: "0 20px auto" };
6488
6490
  case "bottom": return { margin: "auto 20px 0" };
6489
6491
  default: return { margin: "auto 20px" };
6490
6492
  }
6491
6493
  }
6492
- var ia = (e) => {
6494
+ var oa = (e) => {
6493
6495
  let t = (0, N.c)(13), { cell: n } = e, r;
6494
- t[0] !== n.id || t[1] !== n.name ? (r = x(n.id, n.name), t[0] = n.id, t[1] = n.name, t[2] = r) : r = t[2];
6496
+ t[0] !== n.id || t[1] !== n.name ? (r = b(n.id, n.name), t[0] = n.id, t[1] = n.name, t[2] = r) : r = t[2];
6495
6497
  let i = n.id, a = n.status, o = n.output, s;
6496
- t[3] === n ? s = t[4] : (s = u(n, !1), t[3] = n, t[4] = s);
6498
+ t[3] === n ? s = t[4] : (s = C(n, !1), t[3] = n, t[4] = s);
6497
6499
  let c;
6498
- t[5] !== n.id || t[6] !== n.output || t[7] !== n.status || t[8] !== s ? (c = /* @__PURE__ */ (0, G.jsx)(S, {
6500
+ t[5] !== n.id || t[6] !== n.output || t[7] !== n.status || t[8] !== s ? (c = /* @__PURE__ */ (0, G.jsx)(x, {
6499
6501
  cellId: i,
6500
6502
  status: a,
6501
6503
  output: o,
@@ -6507,22 +6509,22 @@ var ia = (e) => {
6507
6509
  ...r,
6508
6510
  children: c
6509
6511
  }), t[10] = r, t[11] = c, t[12] = l) : l = t[12], l;
6510
- }, aa = (e) => {
6512
+ }, sa = (e) => {
6511
6513
  let t = (0, N.c)(24), { subslide: n, resolveShowCode: r, isEditable: i, slideConfigs: a, contentStyle: o } = e, s, c, l, u, d, f;
6512
6514
  if (t[0] !== o || t[1] !== i || t[2] !== r || t[3] !== a || t[4] !== n) {
6513
6515
  let { slideLevel: e, cumulativeByBlock: p } = hr(n, a);
6514
6516
  l = e;
6515
6517
  let m = n.blocks.some((e) => e.cells.some((e) => r(e.id)));
6516
6518
  c = K, s = tr, u = m ? "mo-slide-content flex flex-col gap-3" : "mo-slide-content", d = o, f = n.blocks.map((e, t) => {
6517
- let n = e.cells.map((e) => r(e.id) ? i ? /* @__PURE__ */ (0, G.jsx)(cr, { cell: e }, e.id) : /* @__PURE__ */ (0, G.jsx)(lr, { cell: e }, e.id) : /* @__PURE__ */ (0, G.jsx)(ia, { cell: e }, e.id));
6519
+ let n = e.cells.map((e) => r(e.id) ? i ? /* @__PURE__ */ (0, G.jsx)(cr, { cell: e }, e.id) : /* @__PURE__ */ (0, G.jsx)(lr, { cell: e }, e.id) : /* @__PURE__ */ (0, G.jsx)(oa, { cell: e }, e.id));
6518
6520
  if (e.isFragment) {
6519
- let e = p.get(t);
6521
+ let r = p.get(t);
6520
6522
  return /* @__PURE__ */ (0, G.jsxs)(Jn, {
6521
6523
  as: "div",
6522
- children: [n, e && /* @__PURE__ */ (0, G.jsx)(Qi, { text: e })]
6523
- }, t);
6524
+ children: [n, r && /* @__PURE__ */ (0, G.jsx)(ea, { text: r })]
6525
+ }, e.cells[0].id);
6524
6526
  }
6525
- return /* @__PURE__ */ (0, G.jsx)(M.Fragment, { children: n }, t);
6527
+ return /* @__PURE__ */ (0, G.jsx)(M.Fragment, { children: n }, e.cells[0].id);
6526
6528
  }), t[0] = o, t[1] = i, t[2] = r, t[3] = a, t[4] = n, t[5] = s, t[6] = c, t[7] = l, t[8] = u, t[9] = d, t[10] = f;
6527
6529
  } else s = t[5], c = t[6], l = t[7], u = t[8], d = t[9], f = t[10];
6528
6530
  let p;
@@ -6534,17 +6536,17 @@ var ia = (e) => {
6534
6536
  let m;
6535
6537
  t[15] !== s || t[16] !== p ? (m = /* @__PURE__ */ (0, G.jsx)(s, { children: p }), t[15] = s, t[16] = p, t[17] = m) : m = t[17];
6536
6538
  let h;
6537
- t[18] === l ? h = t[19] : (h = l && /* @__PURE__ */ (0, G.jsx)(Qi, { text: l }), t[18] = l, t[19] = h);
6539
+ t[18] === l ? h = t[19] : (h = l && /* @__PURE__ */ (0, G.jsx)(ea, { text: l }), t[18] = l, t[19] = h);
6538
6540
  let g;
6539
6541
  return t[20] !== c || t[21] !== m || t[22] !== h ? (g = /* @__PURE__ */ (0, G.jsxs)(c, { children: [m, h] }), t[20] = c, t[21] = m, t[22] = h, t[23] = g) : g = t[23], g;
6540
6542
  };
6541
- function oa(e) {
6543
+ function ca(e) {
6542
6544
  let { isNoOutputPreview: t, isEditable: n, showCode: r } = e;
6543
6545
  return t && n || r;
6544
6546
  }
6545
- var sa = (e) => {
6547
+ var la = (e) => {
6546
6548
  let t = (0, N.c)(5), { cell: n, isNoOutputPreview: r, isEditable: i, showCode: a } = e;
6547
- if (oa({
6549
+ if (ca({
6548
6550
  isNoOutputPreview: r,
6549
6551
  isEditable: i,
6550
6552
  showCode: a
@@ -6553,236 +6555,257 @@ var sa = (e) => {
6553
6555
  return t[0] !== n || t[1] !== i ? (e = i ? /* @__PURE__ */ (0, G.jsx)(cr, { cell: n }) : /* @__PURE__ */ (0, G.jsx)(lr, { cell: n }), t[0] = n, t[1] = i, t[2] = e) : e = t[2], e;
6554
6556
  }
6555
6557
  let o;
6556
- return t[3] === n ? o = t[4] : (o = /* @__PURE__ */ (0, G.jsx)(ia, { cell: n }), t[3] = n, t[4] = o), o;
6557
- }, ca = (e) => {
6558
- let n = (0, N.c)(160), { slideCells: o, layout: s, setLayout: c, noOutputIds: u, activeIndex: x, onSlideChange: S, mode: C, configWidth: ee, isEditable: T } = e, j = T !== void 0 && T, re = (0, M.useRef)(null), P = (0, M.useRef)(null), { width: ie, height: ae } = Zi(re), oe = E() != null, F = O(w), I = O(te).kind, se = O(A), ce = I !== "wasm" || se, L;
6559
- n[0] !== F || n[1] !== I ? (L = F || !h(I) ? [] : [Ui], n[0] = F, n[1] = I, n[2] = L) : L = n[2];
6560
- let le = L, [ue, de] = (0, M.useState)(la), fe = ne(o), pe;
6561
- n[3] === fe ? pe = n[4] : (pe = !k() && fe, n[3] = fe, n[4] = pe);
6562
- let me = pe, he;
6563
- n[5] === F ? he = n[6] : (he = b(F, window.location.search), n[5] = F, n[6] = he);
6564
- let R = !he && me, ge = x == null ? void 0 : o[x], _e;
6565
- n[7] !== ge || n[8] !== o ? (_e = ge ?? o.at(0), n[7] = ge, n[8] = o, n[9] = _e) : _e = n[9];
6566
- let ve = _e, ye;
6567
- n[10] !== ge || n[11] !== s.cells || n[12] !== u ? (ye = {
6568
- activeCell: ge,
6558
+ return t[3] === n ? o = t[4] : (o = /* @__PURE__ */ (0, G.jsx)(oa, { cell: n }), t[3] = n, t[4] = o), o;
6559
+ }, ua = (e) => {
6560
+ let n = (0, N.c)(164), { slideCells: o, layout: s, setLayout: c, noOutputIds: b, activeIndex: x, onSlideChange: S, mode: ee, configWidth: C, isEditable: w } = e, j = w !== void 0 && w, re = (0, M.useRef)(null), P = (0, M.useRef)(null), { width: ie, height: ae } = $i(re), F = T() != null, [I, L] = (0, M.useState)(1), oe;
6561
+ n[0] === Symbol.for("react.memo_cache_sentinel") ? (oe = () => {
6562
+ let e = requestAnimationFrame(() => {
6563
+ let e = P.current;
6564
+ e && (e.layout(), L(e.getScale()));
6565
+ });
6566
+ return () => cancelAnimationFrame(e);
6567
+ }, n[0] = oe) : oe = n[0];
6568
+ let se;
6569
+ n[1] !== ae || n[2] !== F || n[3] !== ie ? (se = [
6570
+ ie,
6571
+ ae,
6572
+ F
6573
+ ], n[1] = ae, n[2] = F, n[3] = ie, n[4] = se) : se = n[4], (0, M.useEffect)(oe, se);
6574
+ let R = O(k), ce = O(te).kind, le = O(A), ue = ce !== "wasm" || le, de;
6575
+ n[5] !== R || n[6] !== ce ? (de = R || !m(ce) ? [] : [Ui], n[5] = R, n[6] = ce, n[7] = de) : de = n[7];
6576
+ let fe = de, [pe, me] = (0, M.useState)(da), he = ne(), ge;
6577
+ n[8] === he ? ge = n[9] : (ge = !D() && he, n[8] = he, n[9] = ge);
6578
+ let _e = ge, ve;
6579
+ n[10] === R ? ve = n[11] : (ve = y(R, window.location.search), n[10] = R, n[11] = ve);
6580
+ let z = !ve && _e, ye = x == null ? void 0 : o[x], be;
6581
+ n[12] !== ye || n[13] !== o ? (be = ye ?? o.at(0), n[12] = ye, n[13] = o, n[14] = be) : be = n[14];
6582
+ let xe = be, Se;
6583
+ n[15] !== ye || n[16] !== s.cells || n[17] !== b ? (Se = {
6584
+ activeCell: ye,
6569
6585
  slideConfigs: s.cells,
6570
- noOutputIds: u
6571
- }, n[10] = ge, n[11] = s.cells, n[12] = u, n[13] = ye) : ye = n[13];
6572
- let { parkedPreviewCell: z, isHeldEdit: be, isNoOutputPreview: B, heldEditCellId: xe, heldShowsCode: Se, toggleHeldShowsCode: Ce } = ta(ye), we;
6573
- n[14] !== me || n[15] !== s.cells || n[16] !== ue ? (we = (e) => $i({
6586
+ noOutputIds: b
6587
+ }, n[15] = ye, n[16] = s.cells, n[17] = b, n[18] = Se) : Se = n[18];
6588
+ let { parkedPreviewCell: B, isHeldEdit: Ce, isNoOutputPreview: we, heldEditCellId: Te, heldShowsCode: Ee, toggleHeldShowsCode: De } = ra(Se), Oe;
6589
+ n[19] !== _e || n[20] !== s.cells || n[21] !== pe ? (Oe = (e) => ta({
6574
6590
  cells: s.cells,
6575
6591
  cellId: e,
6576
- showCodeOverrides: ue,
6577
- codeAvailable: me
6578
- }), n[14] = me, n[15] = s.cells, n[16] = ue, n[17] = we) : we = n[17];
6579
- let Te = we, V = ge?.id ?? ve?.id, Ee;
6580
- n[18] !== V || n[19] !== Se || n[20] !== be || n[21] !== Te ? (Ee = be ? Se : Te(V), n[18] = V, n[19] = Se, n[20] = be, n[21] = Te, n[22] = Ee) : Ee = n[22];
6581
- let De = Ee, Oe;
6582
- n[23] !== V || n[24] !== me || n[25] !== s.cells ? (Oe = me && V != null && (s.cells.get(V)?.showCode ?? !1), n[23] = V, n[24] = me, n[25] = s.cells, n[26] = Oe) : Oe = n[26];
6583
- let ke = Oe, Ae;
6584
- n[27] !== xe || n[28] !== s.cells || n[29] !== u ? (Ae = (e) => ea({
6592
+ showCodeOverrides: pe,
6593
+ codeAvailable: _e
6594
+ }), n[19] = _e, n[20] = s.cells, n[21] = pe, n[22] = Oe) : Oe = n[22];
6595
+ let ke = Oe, V = ye?.id ?? xe?.id, Ae;
6596
+ n[23] !== V || n[24] !== Ee || n[25] !== Ce || n[26] !== ke ? (Ae = Ce ? Ee : ke(V), n[23] = V, n[24] = Ee, n[25] = Ce, n[26] = ke, n[27] = Ae) : Ae = n[27];
6597
+ let je = Ae, Me;
6598
+ n[28] !== V || n[29] !== _e || n[30] !== s.cells ? (Me = _e && V != null && (s.cells.get(V)?.showCode ?? !1), n[28] = V, n[29] = _e, n[30] = s.cells, n[31] = Me) : Me = n[31];
6599
+ let Ne = Me, Pe;
6600
+ n[32] !== Te || n[33] !== s.cells || n[34] !== b ? (Pe = (e) => na({
6585
6601
  cell: e,
6586
- noOutputIds: u,
6587
- heldEditCellId: xe,
6602
+ noOutputIds: b,
6603
+ heldEditCellId: Te,
6588
6604
  slideConfigs: s.cells
6589
- }), n[27] = xe, n[28] = s.cells, n[29] = u, n[30] = Ae) : Ae = n[30];
6590
- let je;
6591
- n[31] !== o || n[32] !== Ae ? (je = nr({
6605
+ }), n[32] = Te, n[33] = s.cells, n[34] = b, n[35] = Pe) : Pe = n[35];
6606
+ let Fe;
6607
+ n[36] !== o || n[37] !== Pe ? (Fe = nr({
6592
6608
  cells: o,
6593
- getType: Ae
6594
- }), n[31] = o, n[32] = Ae, n[33] = je) : je = n[33];
6595
- let Me = je, Ne;
6596
- n[34] !== Me || n[35] !== o ? (Ne = rr({
6597
- composition: Me,
6609
+ getType: Pe
6610
+ }), n[36] = o, n[37] = Pe, n[38] = Fe) : Fe = n[38];
6611
+ let Ie = Fe, Le;
6612
+ n[39] !== Ie || n[40] !== o ? (Le = rr({
6613
+ composition: Ie,
6598
6614
  cells: o,
6599
- getId: ua
6600
- }), n[34] = Me, n[35] = o, n[36] = Ne) : Ne = n[36];
6601
- let { cellToTarget: Pe, targetToCellIndex: Fe } = Ne, Ie = s.deck?.transition ?? "slide", Le = s.deck?.verticalAlign, Re;
6602
- n[37] === Le ? Re = n[38] : (Re = ra(Le), n[37] = Le, n[38] = Re);
6603
- let ze = Re, Be;
6604
- n[39] === Symbol.for("react.memo_cache_sentinel") ? (Be = v(window.location.href), n[39] = Be) : Be = n[39];
6605
- let Ve = Be, H;
6606
- n[40] !== Ie || n[41] !== ae || n[42] !== ie ? (H = {
6615
+ getId: fa
6616
+ }), n[39] = Ie, n[40] = o, n[41] = Le) : Le = n[41];
6617
+ let { cellToTarget: Re, targetToCellIndex: ze } = Le, Be = s.deck?.transition ?? "slide", Ve = s.deck?.verticalAlign, H;
6618
+ n[42] === Ve ? H = n[43] : (H = aa(Ve), n[42] = Ve, n[43] = H);
6619
+ let U = H, He;
6620
+ n[44] === Symbol.for("react.memo_cache_sentinel") ? (He = _(window.location.href), n[44] = He) : He = n[44];
6621
+ let Ue = He, We;
6622
+ n[45] === Be ? We = n[46] : (We = {
6607
6623
  embedded: !0,
6608
- width: ie,
6609
- height: ae,
6624
+ width: Gi,
6625
+ height: Ki,
6610
6626
  center: !1,
6611
- minScale: .2,
6627
+ minScale: 0,
6612
6628
  maxScale: 2,
6613
- transition: Ie,
6614
- keyboardCondition: da,
6615
- url: Ve,
6629
+ transition: Be,
6630
+ keyboardCondition: pa,
6631
+ url: Ue,
6616
6632
  scrollActivationWidth: 0
6617
- }, n[40] = Ie, n[41] = ae, n[42] = ie, n[43] = H) : H = n[43];
6618
- let U = H, He;
6619
- n[44] !== x || n[45] !== ce || n[46] !== Pe || n[47] !== o ? (He = (e) => {
6633
+ }, n[45] = Be, n[46] = We);
6634
+ let Ge = We, Ke;
6635
+ n[47] !== x || n[48] !== ue || n[49] !== Re || n[50] !== o ? (Ke = (e) => {
6620
6636
  if (x == null && window.location.hash.startsWith("#/")) {
6621
- if (!ce) return;
6622
- window.dispatchEvent(new HashChangeEvent("hashchange")), qi(e);
6637
+ if (!ue) return;
6638
+ window.dispatchEvent(new HashChangeEvent("hashchange")), Yi(e);
6623
6639
  return;
6624
6640
  }
6625
6641
  let t = or({
6626
6642
  activeIndex: x,
6627
6643
  cells: o,
6628
- cellToTarget: Pe,
6629
- getId: fa
6644
+ cellToTarget: Re,
6645
+ getId: ma
6630
6646
  }), n = t && sr(e.getIndices(), t);
6631
- n && (e.slide(n.h, n.v, n.f), qi(e));
6632
- }, n[44] = x, n[45] = ce, n[46] = Pe, n[47] = o, n[48] = He) : He = n[48];
6633
- let Ue = D(He), We;
6634
- n[49] === Ue ? We = n[50] : (We = () => {
6647
+ n && (e.slide(n.h, n.v, n.f), Yi(e));
6648
+ }, n[47] = x, n[48] = ue, n[49] = Re, n[50] = o, n[51] = Ke) : Ke = n[51];
6649
+ let qe = E(Ke), Je;
6650
+ n[52] === qe ? Je = n[53] : (Je = () => {
6635
6651
  let e = P.current;
6636
- e != null && Ue(e);
6637
- }, n[49] = Ue, n[50] = We);
6638
- let Ge;
6639
- n[51] !== x || n[52] !== ce || n[53] !== Pe || n[54] !== Ue || n[55] !== o ? (Ge = [
6652
+ e != null && qe(e);
6653
+ }, n[52] = qe, n[53] = Je);
6654
+ let Ye;
6655
+ n[54] !== x || n[55] !== ue || n[56] !== Re || n[57] !== qe || n[58] !== o ? (Ye = [
6640
6656
  x,
6641
- ce,
6642
- Pe,
6657
+ ue,
6658
+ Re,
6643
6659
  o,
6644
- Ue
6645
- ], n[51] = x, n[52] = ce, n[53] = Pe, n[54] = Ue, n[55] = o, n[56] = Ge) : Ge = n[56], (0, M.useEffect)(We, Ge);
6646
- let Ke;
6647
- n[57] !== V || n[58] !== ke || n[59] !== be || n[60] !== Ce ? (Ke = () => {
6648
- if (!(V == null || ke)) {
6649
- if (be) {
6650
- Ce();
6660
+ qe
6661
+ ], n[54] = x, n[55] = ue, n[56] = Re, n[57] = qe, n[58] = o, n[59] = Ye) : Ye = n[59], (0, M.useEffect)(Je, Ye);
6662
+ let Xe;
6663
+ n[60] !== V || n[61] !== Ne || n[62] !== Ce || n[63] !== De ? (Xe = () => {
6664
+ if (!(V == null || Ne)) {
6665
+ if (Ce) {
6666
+ De();
6651
6667
  return;
6652
6668
  }
6653
- (0, M.startTransition)(() => de((e) => {
6669
+ (0, M.startTransition)(() => me((e) => {
6654
6670
  let t = new Set(e);
6655
6671
  return t.has(V) ? t.delete(V) : t.add(V), t;
6656
6672
  }));
6657
6673
  }
6658
- }, n[57] = V, n[58] = ke, n[59] = be, n[60] = Ce, n[61] = Ke) : Ke = n[61];
6659
- let qe = D(Ke), Je, Ye;
6660
- n[62] !== R || n[63] !== qe ? (Je = () => {
6674
+ }, n[60] = V, n[61] = Ne, n[62] = Ce, n[63] = De, n[64] = Xe) : Xe = n[64];
6675
+ let Ze = E(Xe), Qe, $e;
6676
+ n[65] !== z || n[66] !== Ze ? (Qe = () => {
6661
6677
  let e = P.current;
6662
- return e && Ki({
6678
+ return e && Ji({
6663
6679
  deck: e,
6664
- enabled: R,
6665
- onToggle: qe
6680
+ enabled: z,
6681
+ onToggle: Ze
6666
6682
  }), () => {
6667
- P.current?.removeKeyBinding(Gi);
6683
+ P.current?.removeKeyBinding(qi);
6668
6684
  };
6669
- }, Ye = [R, qe], n[62] = R, n[63] = qe, n[64] = Je, n[65] = Ye) : (Je = n[64], Ye = n[65]), (0, M.useEffect)(Je, Ye);
6670
- let Xe;
6671
- n[66] !== S || n[67] !== z || n[68] !== Fe ? (Xe = (e) => {
6672
- if (z != null) return;
6673
- let t = ir(Fe, e.getIndices());
6685
+ }, $e = [z, Ze], n[65] = z, n[66] = Ze, n[67] = Qe, n[68] = $e) : (Qe = n[67], $e = n[68]), (0, M.useEffect)(Qe, $e);
6686
+ let et;
6687
+ n[69] !== S || n[70] !== B || n[71] !== ze ? (et = (e) => {
6688
+ if (B != null) return;
6689
+ let t = ir(ze, e.getIndices());
6674
6690
  t != null && S?.(t);
6675
- }, n[66] = S, n[67] = z, n[68] = Fe, n[69] = Xe) : Xe = n[69];
6676
- let Ze = D(Xe), Qe;
6677
- n[70] === Ze ? Qe = n[71] : (Qe = () => {
6691
+ }, n[69] = S, n[70] = B, n[71] = ze, n[72] = et) : et = n[72];
6692
+ let tt = E(et), nt;
6693
+ n[73] === tt ? nt = n[74] : (nt = () => {
6678
6694
  let e = P.current;
6679
- e && Ze(e);
6680
- }, n[70] = Ze, n[71] = Qe);
6681
- let $e = D(Qe), et;
6682
- n[72] !== ce || n[73] !== R || n[74] !== Ue || n[75] !== Ze || n[76] !== qe ? (et = (e) => {
6683
- Ue(e), ce && Ze(e), Ki({
6695
+ e && tt(e);
6696
+ }, n[73] = tt, n[74] = nt);
6697
+ let rt = E(nt), it;
6698
+ n[75] !== ue || n[76] !== z || n[77] !== qe || n[78] !== tt || n[79] !== Ze ? (it = (e) => {
6699
+ L(e.getScale()), qe(e), ue && tt(e), Ji({
6684
6700
  deck: e,
6685
- enabled: R,
6686
- onToggle: qe
6701
+ enabled: z,
6702
+ onToggle: Ze
6687
6703
  });
6688
6704
  let t = e.getSlidesElement()?.closest(".reveal");
6689
6705
  t instanceof HTMLElement && (t.tabIndex = -1, t.focus({ preventScroll: !0 }));
6690
- }, n[72] = ce, n[73] = R, n[74] = Ue, n[75] = Ze, n[76] = qe, n[77] = et) : et = n[77];
6691
- let tt = D(et), nt;
6692
- n[78] !== x || n[79] !== S || n[80] !== z || n[81] !== o ? (nt = (e) => {
6693
- if (!z || x == null || i.fromInput(e)) return;
6694
- let t = Xi(e);
6706
+ }, n[75] = ue, n[76] = z, n[77] = qe, n[78] = tt, n[79] = Ze, n[80] = it) : it = n[80];
6707
+ let at = E(it), W;
6708
+ n[81] !== x || n[82] !== S || n[83] !== B || n[84] !== o ? (W = (e) => {
6709
+ if (!B || x == null || i.fromInput(e)) return;
6710
+ let t = Qi(e);
6695
6711
  if (t === 0) return;
6696
6712
  e.preventDefault(), e.stopPropagation();
6697
6713
  let n = x + t;
6698
6714
  n < 0 || n >= o.length || S?.(n);
6699
- }, n[78] = x, n[79] = S, n[80] = z, n[81] = o, n[82] = nt) : nt = n[82];
6700
- let rt = D(nt), it;
6701
- n[83] === $e ? it = n[84] : (it = () => {
6702
- $e();
6703
- }, n[83] = $e, n[84] = it);
6704
- let at = D(it), W;
6705
- n[85] === Symbol.for("react.memo_cache_sentinel") ? (W = { capture: !0 }, n[85] = W) : W = n[85], t(document, "keydown", rt, W);
6706
- let ot = be ? null : B ? "Hidden as there is no output" : "Skipped in presentation", st;
6707
- n[86] !== Se || n[87] !== be || n[88] !== z?.id || n[89] !== Te ? (st = be ? Se : Te(z?.id), n[86] = Se, n[87] = be, n[88] = z?.id, n[89] = Te, n[90] = st) : st = n[90];
6708
- let ct = st, lt;
6709
- n[91] !== j || n[92] !== B || n[93] !== ct ? (lt = oa({
6710
- isNoOutputPreview: B,
6715
+ }, n[81] = x, n[82] = S, n[83] = B, n[84] = o, n[85] = W) : W = n[85];
6716
+ let ot = E(W), st;
6717
+ n[86] === rt ? st = n[87] : (st = () => {
6718
+ rt();
6719
+ }, n[86] = rt, n[87] = st);
6720
+ let ct = E(st), lt;
6721
+ n[88] === Symbol.for("react.memo_cache_sentinel") ? (lt = { capture: !0 }, n[88] = lt) : lt = n[88], t(document, "keydown", ot, lt);
6722
+ let ut = Ce ? null : we ? "Hidden as there is no output" : "Skipped in presentation", dt;
6723
+ n[89] !== Ee || n[90] !== Ce || n[91] !== B?.id || n[92] !== ke ? (dt = Ce ? Ee : ke(B?.id), n[89] = Ee, n[90] = Ce, n[91] = B?.id, n[92] = ke, n[93] = dt) : dt = n[93];
6724
+ let ft = dt, pt;
6725
+ n[94] !== j || n[95] !== we || n[96] !== ft ? (pt = ca({
6726
+ isNoOutputPreview: we,
6711
6727
  isEditable: j,
6712
- showCode: ct
6713
- }), n[91] = j, n[92] = B, n[93] = ct, n[94] = lt) : lt = n[94];
6714
- let ut = lt, dt;
6715
- n[95] !== ae || n[96] !== ie ? (dt = {
6728
+ showCode: ft
6729
+ }), n[94] = j, n[95] = we, n[96] = ft, n[97] = pt) : pt = n[97];
6730
+ let ht = pt, gt;
6731
+ n[98] !== ae || n[99] !== ie ? (gt = {
6716
6732
  width: ie,
6717
6733
  height: ae
6718
- }, n[95] = ae, n[96] = ie, n[97] = dt) : dt = n[97];
6719
- let ft;
6720
- if (n[98] !== Me.stacks || n[99] !== j || n[100] !== s.cells || n[101] !== Te || n[102] !== ze) {
6734
+ }, n[98] = ae, n[99] = ie, n[100] = gt) : gt = n[100];
6735
+ let _t;
6736
+ if (n[101] !== Ie.stacks || n[102] !== j || n[103] !== s.cells || n[104] !== ke || n[105] !== U) {
6721
6737
  let e;
6722
- n[104] !== j || n[105] !== s.cells || n[106] !== Te || n[107] !== ze ? (e = (e, t) => e.subslides.length === 1 ? /* @__PURE__ */ (0, G.jsx)(aa, {
6738
+ n[107] !== j || n[108] !== s.cells || n[109] !== ke || n[110] !== U ? (e = (e, t) => e.subslides.length === 1 ? /* @__PURE__ */ (0, G.jsx)(sa, {
6723
6739
  subslide: e.subslides[0],
6724
- resolveShowCode: Te,
6740
+ resolveShowCode: ke,
6725
6741
  isEditable: j,
6726
6742
  slideConfigs: s.cells,
6727
- contentStyle: ze
6728
- }, t) : /* @__PURE__ */ (0, G.jsx)(vt, { children: e.subslides.map((e, t) => /* @__PURE__ */ (0, G.jsx)(aa, {
6743
+ contentStyle: U
6744
+ }, t) : /* @__PURE__ */ (0, G.jsx)(vt, { children: e.subslides.map((e, t) => /* @__PURE__ */ (0, G.jsx)(sa, {
6729
6745
  subslide: e,
6730
- resolveShowCode: Te,
6746
+ resolveShowCode: ke,
6731
6747
  isEditable: j,
6732
6748
  slideConfigs: s.cells,
6733
- contentStyle: ze
6734
- }, t)) }, t), n[104] = j, n[105] = s.cells, n[106] = Te, n[107] = ze, n[108] = e) : e = n[108], ft = Me.stacks.map(e), n[98] = Me.stacks, n[99] = j, n[100] = s.cells, n[101] = Te, n[102] = ze, n[103] = ft;
6735
- } else ft = n[103];
6736
- let pt;
6737
- n[109] !== le || n[110] !== tt || n[111] !== at || n[112] !== $e || n[113] !== U || n[114] !== ft ? (pt = /* @__PURE__ */ (0, G.jsx)(mt, {
6749
+ contentStyle: U
6750
+ }, t)) }, t), n[107] = j, n[108] = s.cells, n[109] = ke, n[110] = U, n[111] = e) : e = n[111], _t = Ie.stacks.map(e), n[101] = Ie.stacks, n[102] = j, n[103] = s.cells, n[104] = ke, n[105] = U, n[106] = _t;
6751
+ } else _t = n[106];
6752
+ let K;
6753
+ n[112] !== fe || n[113] !== at || n[114] !== ct || n[115] !== rt || n[116] !== Ge || n[117] !== _t ? (K = /* @__PURE__ */ (0, G.jsx)(mt, {
6738
6754
  deckRef: P,
6739
6755
  className: "aspect-video w-full overflow-hidden border rounded bg-background mo-slides-theme prose-slides focus:outline-hidden focus-visible:outline-hidden",
6740
- config: U,
6741
- onReady: tt,
6742
- onSlideChange: at,
6743
- onFragmentShown: $e,
6744
- onFragmentHidden: $e,
6745
- plugins: le,
6746
- children: ft
6747
- }), n[109] = le, n[110] = tt, n[111] = at, n[112] = $e, n[113] = U, n[114] = ft, n[115] = pt) : pt = n[115];
6748
- let ht;
6749
- n[116] !== j || n[117] !== B || n[118] !== z || n[119] !== ot || n[120] !== ct || n[121] !== ut || n[122] !== ze ? (ht = z && /* @__PURE__ */ (0, G.jsxs)("div", {
6756
+ config: Ge,
6757
+ onReady: at,
6758
+ onSlideChange: ct,
6759
+ onFragmentShown: rt,
6760
+ onFragmentHidden: rt,
6761
+ plugins: fe,
6762
+ children: _t
6763
+ }), n[112] = fe, n[113] = at, n[114] = ct, n[115] = rt, n[116] = Ge, n[117] = _t, n[118] = K) : K = n[118];
6764
+ let yt;
6765
+ n[119] !== j || n[120] !== we || n[121] !== B || n[122] !== ut || n[123] !== ft || n[124] !== ht || n[125] !== U || n[126] !== I ? (yt = B && /* @__PURE__ */ (0, G.jsxs)("div", {
6750
6766
  className: "absolute inset-0 z-10 border rounded bg-background flex flex-col overflow-hidden",
6751
- "aria-label": ot ?? void 0,
6752
- children: [ot && /* @__PURE__ */ (0, G.jsxs)("div", {
6767
+ "aria-label": ut ?? void 0,
6768
+ children: [ut && /* @__PURE__ */ (0, G.jsxs)("div", {
6753
6769
  className: "flex items-center gap-1.5 px-3 py-1.5 text-xs text-muted-foreground border-b bg-muted/40",
6754
- children: [/* @__PURE__ */ (0, G.jsx)(m, { className: "h-3.5 w-3.5" }), /* @__PURE__ */ (0, G.jsx)("span", { children: ot })]
6770
+ children: [/* @__PURE__ */ (0, G.jsx)(p, { className: "h-3.5 w-3.5" }), /* @__PURE__ */ (0, G.jsx)("span", { children: ut })]
6755
6771
  }), /* @__PURE__ */ (0, G.jsx)("div", {
6756
- className: "flex-1 overflow-auto flex",
6757
- children: /* @__PURE__ */ (0, G.jsx)("div", {
6758
- className: ut ? "mo-slide-content flex flex-col gap-3" : "mo-slide-content",
6759
- style: ze,
6760
- children: /* @__PURE__ */ (0, G.jsx)(sa, {
6761
- cell: z,
6762
- isNoOutputPreview: B,
6772
+ className: "reveal mo-slides-theme prose-slides absolute left-1/2 top-1/2",
6773
+ "data-testid": "slide-preview-canvas",
6774
+ style: {
6775
+ position: "absolute",
6776
+ width: Gi,
6777
+ height: Ki,
6778
+ transform: `translate(-50%, -50%) scale(${I})`
6779
+ },
6780
+ children: /* @__PURE__ */ (0, G.jsx)(tr, { children: /* @__PURE__ */ (0, G.jsx)("div", {
6781
+ className: ht ? "mo-slide-content flex flex-col gap-3" : "mo-slide-content",
6782
+ style: U,
6783
+ children: /* @__PURE__ */ (0, G.jsx)(la, {
6784
+ cell: B,
6785
+ isNoOutputPreview: we,
6763
6786
  isEditable: j,
6764
- showCode: ct
6787
+ showCode: ft
6765
6788
  })
6766
- })
6789
+ }) })
6767
6790
  })]
6768
- }, z.id), n[116] = j, n[117] = B, n[118] = z, n[119] = ot, n[120] = ct, n[121] = ut, n[122] = ze, n[123] = ht) : ht = n[123];
6769
- let gt;
6770
- n[124] !== De || n[125] !== ke || n[126] !== R || n[127] !== qe ? (gt = R && /* @__PURE__ */ (0, G.jsx)(l, {
6771
- content: ke ? "Code is always shown for this slide" : De ? "Hide code (C)" : "Show code (C)",
6791
+ }, B.id), n[119] = j, n[120] = we, n[121] = B, n[122] = ut, n[123] = ft, n[124] = ht, n[125] = U, n[126] = I, n[127] = yt) : yt = n[127];
6792
+ let q;
6793
+ n[128] !== je || n[129] !== Ne || n[130] !== z || n[131] !== Ze ? (q = z && /* @__PURE__ */ (0, G.jsx)(l, {
6794
+ content: Ne ? "Code is always shown for this slide" : je ? "Hide code (C)" : "Show code (C)",
6772
6795
  children: /* @__PURE__ */ (0, G.jsx)(a, {
6773
6796
  "data-testid": "marimo-plugin-slides-toggle-code",
6774
6797
  variant: "ghost",
6775
6798
  size: "icon",
6776
- className: r("text-muted-foreground h-7 w-7", De && "text-foreground bg-muted", ke && "opacity-50 cursor-not-allowed"),
6777
- "aria-pressed": De,
6778
- "aria-disabled": ke,
6779
- "aria-label": ke ? "Code always shown" : De ? "Hide code" : "Show code",
6780
- onClick: qe,
6781
- children: /* @__PURE__ */ (0, G.jsx)(_, { className: "h-4 w-4" })
6799
+ className: r("text-muted-foreground h-7 w-7", je && "text-foreground bg-muted", Ne && "opacity-50 cursor-not-allowed"),
6800
+ "aria-pressed": je,
6801
+ "aria-disabled": Ne,
6802
+ "aria-label": Ne ? "Code always shown" : je ? "Hide code" : "Show code",
6803
+ onClick: Ze,
6804
+ children: /* @__PURE__ */ (0, G.jsx)(g, { className: "h-4 w-4" })
6782
6805
  })
6783
- }), n[124] = De, n[125] = ke, n[126] = R, n[127] = qe, n[128] = gt) : gt = n[128];
6784
- let _t;
6785
- n[129] === Symbol.for("react.memo_cache_sentinel") ? (_t = /* @__PURE__ */ (0, G.jsx)(l, {
6806
+ }), n[128] = je, n[129] = Ne, n[130] = z, n[131] = Ze, n[132] = q) : q = n[132];
6807
+ let bt;
6808
+ n[133] === Symbol.for("react.memo_cache_sentinel") ? (bt = /* @__PURE__ */ (0, G.jsx)(l, {
6786
6809
  content: "Fullscreen (F)",
6787
6810
  children: /* @__PURE__ */ (0, G.jsx)(a, {
6788
6811
  "data-testid": "marimo-plugin-slides-fullscreen",
@@ -6791,57 +6814,57 @@ var sa = (e) => {
6791
6814
  className: "text-muted-foreground h-7 w-7",
6792
6815
  "aria-label": "Enter fullscreen",
6793
6816
  onClick: () => {
6794
- P.current?.getViewportElement()?.requestFullscreen().catch(pa);
6817
+ P.current?.getViewportElement()?.requestFullscreen().catch(ha);
6795
6818
  },
6796
- children: /* @__PURE__ */ (0, G.jsx)(y, { className: "h-4 w-4" })
6819
+ children: /* @__PURE__ */ (0, G.jsx)(v, { className: "h-4 w-4" })
6797
6820
  })
6798
- }), n[129] = _t) : _t = n[129];
6799
- let K;
6800
- n[130] === gt ? K = n[131] : (K = /* @__PURE__ */ (0, G.jsxs)("div", {
6821
+ }), n[133] = bt) : bt = n[133];
6822
+ let xt;
6823
+ n[134] === q ? xt = n[135] : (xt = /* @__PURE__ */ (0, G.jsxs)("div", {
6801
6824
  className: "absolute top-2 right-2 z-20 opacity-0 group-hover:opacity-70 text-muted-foreground transition-opacity",
6802
- children: [gt, _t]
6803
- }), n[130] = gt, n[131] = K);
6804
- let yt;
6805
- n[132] !== dt || n[133] !== pt || n[134] !== ht || n[135] !== K ? (yt = /* @__PURE__ */ (0, G.jsx)("div", {
6825
+ children: [q, bt]
6826
+ }), n[134] = q, n[135] = xt);
6827
+ let J;
6828
+ n[136] !== gt || n[137] !== K || n[138] !== yt || n[139] !== xt ? (J = /* @__PURE__ */ (0, G.jsx)("div", {
6806
6829
  ref: re,
6807
6830
  className: "h-full w-full min-w-0 flex items-center justify-center overflow-hidden",
6808
6831
  children: /* @__PURE__ */ (0, G.jsxs)("div", {
6809
6832
  className: "group relative",
6810
- style: dt,
6833
+ style: gt,
6811
6834
  children: [
6812
- pt,
6813
- ht,
6814
- K
6835
+ K,
6836
+ yt,
6837
+ xt
6815
6838
  ]
6816
6839
  })
6817
- }), n[132] = dt, n[133] = pt, n[134] = ht, n[135] = K, n[136] = yt) : yt = n[136];
6818
- let q = yt;
6819
- if (C === "read") {
6840
+ }), n[136] = gt, n[137] = K, n[138] = yt, n[139] = xt, n[140] = J) : J = n[140];
6841
+ let St = J;
6842
+ if (ee === "read") {
6820
6843
  let e;
6821
- return n[137] === q ? e = n[138] : (e = /* @__PURE__ */ (0, G.jsx)("div", {
6844
+ return n[141] === St ? e = n[142] : (e = /* @__PURE__ */ (0, G.jsx)("div", {
6822
6845
  className: "flex-1 min-w-0 flex flex-row gap-3",
6823
- children: q
6824
- }), n[137] = q, n[138] = e), e;
6846
+ children: St
6847
+ }), n[141] = St, n[142] = e), e;
6825
6848
  }
6826
- let bt;
6827
- n[139] === q ? bt = n[140] : (bt = /* @__PURE__ */ (0, G.jsx)(p, {
6849
+ let Y;
6850
+ n[143] === St ? Y = n[144] : (Y = /* @__PURE__ */ (0, G.jsx)(f, {
6828
6851
  defaultSize: 92,
6829
6852
  minSize: 60,
6830
- children: q
6831
- }), n[139] = q, n[140] = bt);
6832
- let xt;
6833
- n[141] === Symbol.for("react.memo_cache_sentinel") ? (xt = {
6853
+ children: St
6854
+ }), n[143] = St, n[144] = Y);
6855
+ let Ct;
6856
+ n[145] === Symbol.for("react.memo_cache_sentinel") ? (Ct = {
6834
6857
  coarse: 12,
6835
6858
  fine: 4
6836
- }, n[141] = xt) : xt = n[141];
6837
- let J;
6838
- n[142] === oe ? J = n[143] : (J = /* @__PURE__ */ (0, G.jsx)(d, {
6859
+ }, n[145] = Ct) : Ct = n[145];
6860
+ let wt;
6861
+ n[146] === F ? wt = n[147] : (wt = /* @__PURE__ */ (0, G.jsx)(u, {
6839
6862
  className: "mo-slides-notes-resize",
6840
- hitAreaMargins: xt,
6841
- disabled: oe
6842
- }), n[142] = oe, n[143] = J);
6843
- let St = ve?.id, Y;
6844
- n[144] !== s || n[145] !== c || n[146] !== St ? (Y = /* @__PURE__ */ (0, G.jsx)(p, {
6863
+ hitAreaMargins: Ct,
6864
+ disabled: F
6865
+ }), n[146] = F, n[147] = wt);
6866
+ let Tt = xe?.id, Et;
6867
+ n[148] !== s || n[149] !== c || n[150] !== Tt ? (Et = /* @__PURE__ */ (0, G.jsx)(f, {
6845
6868
  defaultSize: 10,
6846
6869
  minSize: 4,
6847
6870
  collapsible: !0,
@@ -6849,47 +6872,47 @@ var sa = (e) => {
6849
6872
  children: /* @__PURE__ */ (0, G.jsx)(dr, {
6850
6873
  layout: s,
6851
6874
  setLayout: c,
6852
- cellId: St
6875
+ cellId: Tt
6853
6876
  })
6854
- }), n[144] = s, n[145] = c, n[146] = St, n[147] = Y) : Y = n[147];
6855
- let Ct;
6856
- n[148] !== bt || n[149] !== J || n[150] !== Y ? (Ct = /* @__PURE__ */ (0, G.jsxs)(f, {
6877
+ }), n[148] = s, n[149] = c, n[150] = Tt, n[151] = Et) : Et = n[151];
6878
+ let Dt;
6879
+ n[152] !== Y || n[153] !== wt || n[154] !== Et ? (Dt = /* @__PURE__ */ (0, G.jsxs)(d, {
6857
6880
  direction: "vertical",
6858
6881
  autoSaveId: "marimo:slides:notes-panel",
6859
6882
  className: "flex-1 min-w-0",
6860
6883
  children: [
6861
- bt,
6862
- J,
6863
- Y
6884
+ Y,
6885
+ wt,
6886
+ Et
6864
6887
  ]
6865
- }), n[148] = bt, n[149] = J, n[150] = Y, n[151] = Ct) : Ct = n[151];
6866
- let wt;
6867
- n[152] !== ve || n[153] !== ee || n[154] !== s || n[155] !== c ? (wt = /* @__PURE__ */ (0, G.jsx)(g, {
6868
- configWidth: ee,
6888
+ }), n[152] = Y, n[153] = wt, n[154] = Et, n[155] = Dt) : Dt = n[155];
6889
+ let Ot;
6890
+ n[156] !== xe || n[157] !== C || n[158] !== s || n[159] !== c ? (Ot = /* @__PURE__ */ (0, G.jsx)(h, {
6891
+ configWidth: C,
6869
6892
  layout: s,
6870
6893
  setLayout: c,
6871
- activeConfigCell: ve
6872
- }), n[152] = ve, n[153] = ee, n[154] = s, n[155] = c, n[156] = wt) : wt = n[156];
6873
- let Tt;
6874
- return n[157] !== Ct || n[158] !== wt ? (Tt = /* @__PURE__ */ (0, G.jsxs)("div", {
6894
+ activeConfigCell: xe
6895
+ }), n[156] = xe, n[157] = C, n[158] = s, n[159] = c, n[160] = Ot) : Ot = n[160];
6896
+ let kt;
6897
+ return n[161] !== Dt || n[162] !== Ot ? (kt = /* @__PURE__ */ (0, G.jsxs)("div", {
6875
6898
  className: "flex-1 min-w-0 flex flex-row gap-3",
6876
- children: [Ct, wt]
6877
- }), n[157] = Ct, n[158] = wt, n[159] = Tt) : Tt = n[159], Tt;
6899
+ children: [Dt, Ot]
6900
+ }), n[161] = Dt, n[162] = Ot, n[163] = kt) : kt = n[163], kt;
6878
6901
  };
6879
- function la() {
6902
+ function da() {
6880
6903
  return /* @__PURE__ */ new Set();
6881
6904
  }
6882
- function ua(e) {
6905
+ function fa(e) {
6883
6906
  return e.id;
6884
6907
  }
6885
- function da(e) {
6908
+ function pa(e) {
6886
6909
  return !i.fromInput(e);
6887
6910
  }
6888
- function fa(e) {
6911
+ function ma(e) {
6889
6912
  return e.id;
6890
6913
  }
6891
- function pa(e) {
6914
+ function ha(e) {
6892
6915
  n.error("Failed to request fullscreen", e);
6893
6916
  }
6894
6917
  //#endregion
6895
- export { ia as CellOutputBlock, ea as deckSlideType, ca as default, oa as parkedRendersSource, $i as shouldShowCode, Ki as syncCodeToggleKeyBinding, ta as useParkedPreview };
6918
+ export { oa as CellOutputBlock, na as deckSlideType, ua as default, ca as parkedRendersSource, ta as shouldShowCode, Ji as syncCodeToggleKeyBinding, ra as useParkedPreview };