@arbidocs/blocks 0.5.119 → 0.5.121

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 (463) hide show
  1. package/dist/ClippingMediaViewer-B6WG7Q64.cjs +156 -0
  2. package/dist/ClippingMediaViewer-B6WG7Q64.cjs.map +1 -0
  3. package/dist/ClippingPdfViewer-6GCVTV3V.cjs +79 -0
  4. package/dist/ClippingPdfViewer-6GCVTV3V.cjs.map +1 -0
  5. package/dist/{ConnectedCallDock-WER7R222.cjs → ConnectedCallDock-DC5V5OUJ.cjs} +25 -23
  6. package/dist/ConnectedCallDock-DC5V5OUJ.cjs.map +1 -0
  7. package/dist/{ConnectedCallRoom-T7OBQTYP.cjs → ConnectedCallRoom-FQLXWTFB.cjs} +18 -16
  8. package/dist/{ConnectedCallRoom-T7OBQTYP.cjs.map → ConnectedCallRoom-FQLXWTFB.cjs.map} +1 -1
  9. package/dist/{ConnectedNativeDocxComparison-546ILGLW.cjs → ConnectedNativeDocxComparison-4Q5S7VLD.cjs} +17 -17
  10. package/dist/{ConnectedNativeDocxComparison-546ILGLW.cjs.map → ConnectedNativeDocxComparison-4Q5S7VLD.cjs.map} +1 -1
  11. package/dist/ConnectedPresentation-4HLDZDWV.cjs +183 -0
  12. package/dist/ConnectedPresentation-4HLDZDWV.cjs.map +1 -0
  13. package/dist/{ConnectedProductionSetDialog-LHB4VQWC.cjs → ConnectedProductionSetDialog-4EAY6KAZ.cjs} +3 -3
  14. package/dist/{ConnectedProductionSetDialog-LHB4VQWC.cjs.map → ConnectedProductionSetDialog-4EAY6KAZ.cjs.map} +1 -1
  15. package/dist/ConnectedSlidesTab-7QDE2CZD.cjs +234 -0
  16. package/dist/ConnectedSlidesTab-7QDE2CZD.cjs.map +1 -0
  17. package/dist/{ConnectedStreamedWordArtifact-S2ZFZLZQ.cjs → ConnectedStreamedWordArtifact-FFOQJBOI.cjs} +17 -17
  18. package/dist/{ConnectedStreamedWordArtifact-S2ZFZLZQ.cjs.map → ConnectedStreamedWordArtifact-FFOQJBOI.cjs.map} +1 -1
  19. package/dist/{DocumentReviewCard-ZSBZBGFK.cjs → DocumentReviewCard-SNWVEZ7S.cjs} +19 -18
  20. package/dist/DocumentReviewCard-SNWVEZ7S.cjs.map +1 -0
  21. package/dist/{FilesViewerDialog-6UKR5WEF.cjs → FilesViewerDialog-IZI63FOV.cjs} +54 -47
  22. package/dist/FilesViewerDialog-IZI63FOV.cjs.map +1 -0
  23. package/dist/{GridViewImpl-ZMJJWTOM.cjs → GridViewImpl-LTYET77Q.cjs} +3 -3
  24. package/dist/GridViewImpl-LTYET77Q.cjs.map +1 -0
  25. package/dist/{WorkspaceTableView-J3C6VH4T.cjs → WorkspaceTableView-TEIRB6VJ.cjs} +11 -10
  26. package/dist/WorkspaceTableView-TEIRB6VJ.cjs.map +1 -0
  27. package/dist/agents/index.cjs +297 -297
  28. package/dist/agents/tasks/ConversationListView.js +10 -2
  29. package/dist/agents/tasks/ConversationListView.js.map +2 -2
  30. package/dist/agents/tasks/TaskTable.js +5 -4
  31. package/dist/agents/tasks/TaskTable.js.map +2 -2
  32. package/dist/agents/tasks/WorkflowsTable.js +4 -5
  33. package/dist/agents/tasks/WorkflowsTable.js.map +2 -2
  34. package/dist/agents/tasks/taskColumns.js +1 -1
  35. package/dist/agents/tasks/taskColumns.js.map +1 -1
  36. package/dist/agents/tasks/taskTableLabels.js +1 -1
  37. package/dist/agents/tasks/taskTableLabels.js.map +1 -1
  38. package/dist/agents/tasks/workflowTableLabels.js +1 -1
  39. package/dist/agents/tasks/workflowTableLabels.js.map +1 -1
  40. package/dist/{ai-IM4A23YT.cjs → ai-KBYNRNZ6.cjs} +28 -26
  41. package/dist/ai-KBYNRNZ6.cjs.map +1 -0
  42. package/dist/calls/connected/CallControls.d.ts +2 -0
  43. package/dist/calls/connected/CallControls.js +71 -9
  44. package/dist/calls/connected/CallControls.js.map +2 -2
  45. package/dist/calls/connected/ShareDocumentDialog.d.ts +14 -0
  46. package/dist/calls/connected/ShareDocumentDialog.js +77 -0
  47. package/dist/calls/connected/ShareDocumentDialog.js.map +7 -0
  48. package/dist/calls/index.cjs +121 -121
  49. package/dist/chat/index.cjs +9 -8
  50. package/dist/{chunk-T23UTIRI.cjs → chunk-2PZT3J34.cjs} +6 -6
  51. package/dist/{chunk-T23UTIRI.cjs.map → chunk-2PZT3J34.cjs.map} +1 -1
  52. package/dist/{chunk-SGYSDABK.cjs → chunk-2W5E62EY.cjs} +6 -6
  53. package/dist/{chunk-SGYSDABK.cjs.map → chunk-2W5E62EY.cjs.map} +1 -1
  54. package/dist/{chunk-TDO5UWXF.cjs → chunk-3SCNXNHI.cjs} +5 -5
  55. package/dist/{chunk-TDO5UWXF.cjs.map → chunk-3SCNXNHI.cjs.map} +1 -1
  56. package/dist/{chunk-KTQOGT2L.cjs → chunk-474GPLCM.cjs} +7 -7
  57. package/dist/{chunk-KTQOGT2L.cjs.map → chunk-474GPLCM.cjs.map} +1 -1
  58. package/dist/{chunk-TP5PGWIO.cjs → chunk-4IOYQLKG.cjs} +3 -3
  59. package/dist/{chunk-TP5PGWIO.cjs.map → chunk-4IOYQLKG.cjs.map} +1 -1
  60. package/dist/{chunk-NY3YUCOW.cjs → chunk-4NPCDS2X.cjs} +3 -3
  61. package/dist/{chunk-NY3YUCOW.cjs.map → chunk-4NPCDS2X.cjs.map} +1 -1
  62. package/dist/{chunk-CPG7II4E.cjs → chunk-4RBQ44RY.cjs} +28 -28
  63. package/dist/chunk-4RBQ44RY.cjs.map +1 -0
  64. package/dist/{chunk-BQ5RIWWT.cjs → chunk-4VZZWYEC.cjs} +3 -3
  65. package/dist/{chunk-BQ5RIWWT.cjs.map → chunk-4VZZWYEC.cjs.map} +1 -1
  66. package/dist/{chunk-Y24V6HPR.cjs → chunk-52KGMAO5.cjs} +15 -15
  67. package/dist/{chunk-Y24V6HPR.cjs.map → chunk-52KGMAO5.cjs.map} +1 -1
  68. package/dist/{chunk-HB2O4THB.cjs → chunk-5534FYXP.cjs} +4 -4
  69. package/dist/{chunk-HB2O4THB.cjs.map → chunk-5534FYXP.cjs.map} +1 -1
  70. package/dist/chunk-5GCCUXMT.cjs +63 -0
  71. package/dist/chunk-5GCCUXMT.cjs.map +1 -0
  72. package/dist/chunk-5LTIZ44D.cjs +95 -0
  73. package/dist/chunk-5LTIZ44D.cjs.map +1 -0
  74. package/dist/{chunk-YGXOKB5Z.cjs → chunk-734NPQNR.cjs} +4 -4
  75. package/dist/{chunk-YGXOKB5Z.cjs.map → chunk-734NPQNR.cjs.map} +1 -1
  76. package/dist/{chunk-SB4M3ITT.cjs → chunk-7VUJGHMY.cjs} +444 -100
  77. package/dist/chunk-7VUJGHMY.cjs.map +1 -0
  78. package/dist/chunk-AFQTQC7A.cjs +35 -0
  79. package/dist/chunk-AFQTQC7A.cjs.map +1 -0
  80. package/dist/{chunk-XKVPSOKP.cjs → chunk-AY6EZSZB.cjs} +4 -4
  81. package/dist/{chunk-XKVPSOKP.cjs.map → chunk-AY6EZSZB.cjs.map} +1 -1
  82. package/dist/{chunk-TT4IF52H.cjs → chunk-BVAT4EVC.cjs} +40 -41
  83. package/dist/chunk-BVAT4EVC.cjs.map +1 -0
  84. package/dist/{chunk-VGCTYTEW.cjs → chunk-C2OICDMI.cjs} +10 -10
  85. package/dist/{chunk-VGCTYTEW.cjs.map → chunk-C2OICDMI.cjs.map} +1 -1
  86. package/dist/{chunk-CPR6EHG7.cjs → chunk-DR2AH7JL.cjs} +179 -55
  87. package/dist/chunk-DR2AH7JL.cjs.map +1 -0
  88. package/dist/{chunk-NJCK6V6U.cjs → chunk-EATIFPKP.cjs} +4 -60
  89. package/dist/chunk-EATIFPKP.cjs.map +1 -0
  90. package/dist/{chunk-B3LZITVF.cjs → chunk-EHP6OH5D.cjs} +11 -451
  91. package/dist/chunk-EHP6OH5D.cjs.map +1 -0
  92. package/dist/{chunk-DDIW4HLU.cjs → chunk-ENGL7P3I.cjs} +46 -37
  93. package/dist/chunk-ENGL7P3I.cjs.map +1 -0
  94. package/dist/{chunk-QHOHDNBU.cjs → chunk-FKFQCK3C.cjs} +4 -4
  95. package/dist/{chunk-QHOHDNBU.cjs.map → chunk-FKFQCK3C.cjs.map} +1 -1
  96. package/dist/{chunk-6UTKM5AB.cjs → chunk-GKVE5JGB.cjs} +76 -76
  97. package/dist/chunk-GKVE5JGB.cjs.map +1 -0
  98. package/dist/{chunk-B2HNNG25.cjs → chunk-GPX5VC57.cjs} +50 -50
  99. package/dist/{chunk-B2HNNG25.cjs.map → chunk-GPX5VC57.cjs.map} +1 -1
  100. package/dist/{chunk-WAV762GP.cjs → chunk-GQXPNIRE.cjs} +6 -6
  101. package/dist/{chunk-WAV762GP.cjs.map → chunk-GQXPNIRE.cjs.map} +1 -1
  102. package/dist/chunk-GX2EBMJW.cjs +133 -0
  103. package/dist/chunk-GX2EBMJW.cjs.map +1 -0
  104. package/dist/{chunk-7OPOPYV6.cjs → chunk-H5OLHP2U.cjs} +3 -3
  105. package/dist/{chunk-7OPOPYV6.cjs.map → chunk-H5OLHP2U.cjs.map} +1 -1
  106. package/dist/chunk-HYUKPHCT.cjs +66 -0
  107. package/dist/chunk-HYUKPHCT.cjs.map +1 -0
  108. package/dist/{chunk-NNUK5ZM7.cjs → chunk-JQLWKNJO.cjs} +29 -27
  109. package/dist/chunk-JQLWKNJO.cjs.map +1 -0
  110. package/dist/{chunk-OEREKAAP.cjs → chunk-JZEYHDWJ.cjs} +75 -75
  111. package/dist/{chunk-OEREKAAP.cjs.map → chunk-JZEYHDWJ.cjs.map} +1 -1
  112. package/dist/{chunk-PGJYD67F.cjs → chunk-KNGZZC4O.cjs} +7 -6
  113. package/dist/chunk-KNGZZC4O.cjs.map +1 -0
  114. package/dist/{chunk-NIE3N6OM.cjs → chunk-KP5AITQ4.cjs} +10 -10
  115. package/dist/{chunk-NIE3N6OM.cjs.map → chunk-KP5AITQ4.cjs.map} +1 -1
  116. package/dist/{chunk-YYPZOEED.cjs → chunk-LHWOKOMP.cjs} +23 -2
  117. package/dist/chunk-LHWOKOMP.cjs.map +1 -0
  118. package/dist/{chunk-57NHXEU2.cjs → chunk-MXBXZXXQ.cjs} +5 -5
  119. package/dist/{chunk-57NHXEU2.cjs.map → chunk-MXBXZXXQ.cjs.map} +1 -1
  120. package/dist/{chunk-WXUU3COI.cjs → chunk-MZ2KZXNU.cjs} +3 -3
  121. package/dist/{chunk-WXUU3COI.cjs.map → chunk-MZ2KZXNU.cjs.map} +1 -1
  122. package/dist/chunk-NAJN32MF.cjs +154 -0
  123. package/dist/chunk-NAJN32MF.cjs.map +1 -0
  124. package/dist/{chunk-557MJ4IH.cjs → chunk-NLOETJCB.cjs} +17 -154
  125. package/dist/chunk-NLOETJCB.cjs.map +1 -0
  126. package/dist/{chunk-4XJEHKVZ.cjs → chunk-PIYYBPHH.cjs} +4 -4
  127. package/dist/{chunk-4XJEHKVZ.cjs.map → chunk-PIYYBPHH.cjs.map} +1 -1
  128. package/dist/chunk-Q3XJUXID.cjs +4774 -0
  129. package/dist/chunk-Q3XJUXID.cjs.map +1 -0
  130. package/dist/{chunk-325GVZE6.cjs → chunk-Q6DQGGP4.cjs} +3 -3
  131. package/dist/{chunk-325GVZE6.cjs.map → chunk-Q6DQGGP4.cjs.map} +1 -1
  132. package/dist/chunk-QFXILJMJ.cjs +458 -0
  133. package/dist/chunk-QFXILJMJ.cjs.map +1 -0
  134. package/dist/{chunk-R7CJEIA5.cjs → chunk-RYVZDFVO.cjs} +8 -9
  135. package/dist/chunk-RYVZDFVO.cjs.map +1 -0
  136. package/dist/{chunk-VLCY46K6.cjs → chunk-TG2GM7WJ.cjs} +4 -3
  137. package/dist/chunk-TG2GM7WJ.cjs.map +1 -0
  138. package/dist/{chunk-EOG6OT5I.cjs → chunk-TXP2N3DC.cjs} +4 -4
  139. package/dist/{chunk-EOG6OT5I.cjs.map → chunk-TXP2N3DC.cjs.map} +1 -1
  140. package/dist/{chunk-KXIRVKCJ.cjs → chunk-UUENH4BJ.cjs} +3 -3
  141. package/dist/{chunk-KXIRVKCJ.cjs.map → chunk-UUENH4BJ.cjs.map} +1 -1
  142. package/dist/chunk-VJ5ZLRBD.cjs +27 -0
  143. package/dist/chunk-VJ5ZLRBD.cjs.map +1 -0
  144. package/dist/{chunk-P77YTTJ3.cjs → chunk-W6B3RYTX.cjs} +4 -4
  145. package/dist/{chunk-P77YTTJ3.cjs.map → chunk-W6B3RYTX.cjs.map} +1 -1
  146. package/dist/chunk-WOOOMTTA.cjs +19 -0
  147. package/dist/chunk-WOOOMTTA.cjs.map +1 -0
  148. package/dist/{chunk-ZPPMAL5P.cjs → chunk-WQMR3O2D.cjs} +6 -10
  149. package/dist/chunk-WQMR3O2D.cjs.map +1 -0
  150. package/dist/{chunk-CJYWHUZR.cjs → chunk-XCKHOXRP.cjs} +4 -4
  151. package/dist/{chunk-CJYWHUZR.cjs.map → chunk-XCKHOXRP.cjs.map} +1 -1
  152. package/dist/{chunk-6WMMZLEV.cjs → chunk-XJEXFEWG.cjs} +2 -27
  153. package/dist/chunk-XJEXFEWG.cjs.map +1 -0
  154. package/dist/chunk-XK4TVJKD.cjs +73 -0
  155. package/dist/chunk-XK4TVJKD.cjs.map +1 -0
  156. package/dist/chunk-XTR26TNE.cjs +1358 -0
  157. package/dist/chunk-XTR26TNE.cjs.map +1 -0
  158. package/dist/{chunk-E7TE2WVT.cjs → chunk-ZVEW3JBT.cjs} +3 -3
  159. package/dist/{chunk-E7TE2WVT.cjs.map → chunk-ZVEW3JBT.cjs.map} +1 -1
  160. package/dist/collaboration/index.cjs +73 -73
  161. package/dist/collaboration/sharing/ShareControl.js +10 -2
  162. package/dist/collaboration/sharing/ShareControl.js.map +2 -2
  163. package/dist/components/SharedCell.d.ts +2 -4
  164. package/dist/components/SharedCell.js +4 -8
  165. package/dist/components/SharedCell.js.map +2 -2
  166. package/dist/components/ZoomSlider.d.ts +25 -0
  167. package/dist/components/ZoomSlider.js +59 -0
  168. package/dist/components/ZoomSlider.js.map +7 -0
  169. package/dist/connect/docx.cjs +20 -20
  170. package/dist/connect/index.cjs +1210 -1264
  171. package/dist/connect/index.cjs.map +1 -1
  172. package/dist/connect/viewer.cjs +42 -36
  173. package/dist/connection/ai.d.ts +1 -1
  174. package/dist/connection/facts/factPageColumns.js +3 -9
  175. package/dist/connection/facts/factPageColumns.js.map +2 -2
  176. package/dist/connection/files/ConnectedNewFileMenu.d.ts +2 -1
  177. package/dist/connection/files/ConnectedNewFileMenu.js +9 -3
  178. package/dist/connection/files/ConnectedNewFileMenu.js.map +2 -2
  179. package/dist/connection/files/explorer/ConnectedFilesExplorer.js +1 -1
  180. package/dist/connection/files/explorer/ConnectedFilesExplorer.js.map +2 -2
  181. package/dist/connection/files/explorer/FileTiles.js +1 -1
  182. package/dist/connection/files/explorer/FileTiles.js.map +2 -2
  183. package/dist/connection/files/fields/documentField.js +1 -1
  184. package/dist/connection/files/fields/documentField.js.map +2 -2
  185. package/dist/connection/files/grid/cells.js +1 -3
  186. package/dist/connection/files/grid/cells.js.map +2 -2
  187. package/dist/connection/files/grid/documentColumns.js +4 -3
  188. package/dist/connection/files/grid/documentColumns.js.map +2 -2
  189. package/dist/connection/files/page/DocumentsFilterBarActions.js +17 -28
  190. package/dist/connection/files/page/DocumentsFilterBarActions.js.map +2 -2
  191. package/dist/connection/mail/useMailboxDefaults.js +1 -1
  192. package/dist/connection/mail/useMailboxDefaults.js.map +2 -2
  193. package/dist/connection/panels/useSessionPanelMode.js +3 -2
  194. package/dist/connection/panels/useSessionPanelMode.js.map +2 -2
  195. package/dist/connection/presentation/ClippingMediaViewer.d.ts +12 -0
  196. package/dist/connection/presentation/ClippingMediaViewer.js +153 -0
  197. package/dist/connection/presentation/ClippingMediaViewer.js.map +7 -0
  198. package/dist/connection/presentation/ClippingPdfViewer.d.ts +22 -0
  199. package/dist/connection/presentation/ClippingPdfViewer.js +75 -0
  200. package/dist/connection/presentation/ClippingPdfViewer.js.map +7 -0
  201. package/dist/connection/presentation/ConnectedPresentation.d.ts +12 -0
  202. package/dist/connection/presentation/ConnectedPresentation.js +100 -0
  203. package/dist/connection/presentation/ConnectedPresentation.js.map +7 -0
  204. package/dist/connection/presentation/ConnectedSlidesTab.d.ts +20 -0
  205. package/dist/connection/presentation/ConnectedSlidesTab.js +220 -0
  206. package/dist/connection/presentation/ConnectedSlidesTab.js.map +7 -0
  207. package/dist/connection/presentation/CropClipDialog.d.ts +11 -0
  208. package/dist/connection/presentation/CropClipDialog.js +86 -0
  209. package/dist/connection/presentation/CropClipDialog.js.map +7 -0
  210. package/dist/connection/presentation/GenerateTile.d.ts +4 -0
  211. package/dist/connection/presentation/GenerateTile.js +24 -0
  212. package/dist/connection/presentation/GenerateTile.js.map +7 -0
  213. package/dist/connection/presentation/LabelColumnMenu.d.ts +8 -0
  214. package/dist/connection/presentation/LabelColumnMenu.js +38 -0
  215. package/dist/connection/presentation/LabelColumnMenu.js.map +7 -0
  216. package/dist/connection/presentation/PresentationDialogs.d.ts +39 -0
  217. package/dist/connection/presentation/PresentationDialogs.js +295 -0
  218. package/dist/connection/presentation/PresentationDialogs.js.map +7 -0
  219. package/dist/connection/presentation/PresentationFileCard.d.ts +10 -0
  220. package/dist/connection/presentation/PresentationFileCard.js +35 -0
  221. package/dist/connection/presentation/PresentationFileCard.js.map +7 -0
  222. package/dist/connection/presentation/PresentationPill.d.ts +8 -0
  223. package/dist/connection/presentation/PresentationPill.js +44 -0
  224. package/dist/connection/presentation/PresentationPill.js.map +7 -0
  225. package/dist/connection/presentation/PresentationSlot.d.ts +7 -0
  226. package/dist/connection/presentation/PresentationSlot.js +35 -0
  227. package/dist/connection/presentation/PresentationSlot.js.map +7 -0
  228. package/dist/connection/presentation/requests.d.ts +16 -0
  229. package/dist/connection/presentation/requests.js +20 -0
  230. package/dist/connection/presentation/requests.js.map +7 -0
  231. package/dist/connection/presentation/useImageGeneration.d.ts +11 -0
  232. package/dist/connection/presentation/useImageGeneration.js +66 -0
  233. package/dist/connection/presentation/useImageGeneration.js.map +7 -0
  234. package/dist/connection/presentation/useLabelColumns.d.ts +15 -0
  235. package/dist/connection/presentation/useLabelColumns.js +33 -0
  236. package/dist/connection/presentation/useLabelColumns.js.map +7 -0
  237. package/dist/connection/presentation/usePresentationController.d.ts +15 -0
  238. package/dist/connection/presentation/usePresentationController.js +118 -0
  239. package/dist/connection/presentation/usePresentationController.js.map +7 -0
  240. package/dist/connection/presentation/usePresentationFiles.d.ts +44 -0
  241. package/dist/connection/presentation/usePresentationFiles.js +307 -0
  242. package/dist/connection/presentation/usePresentationFiles.js.map +7 -0
  243. package/dist/connection/presentation/useViewerClipping.d.ts +14 -0
  244. package/dist/connection/presentation/useViewerClipping.js +18 -0
  245. package/dist/connection/presentation/useViewerClipping.js.map +7 -0
  246. package/dist/connection/sharing/WorkspaceMembersList.d.ts +4 -0
  247. package/dist/connection/sharing/WorkspaceMembersList.js +34 -0
  248. package/dist/connection/sharing/WorkspaceMembersList.js.map +7 -0
  249. package/dist/connection/shell/ConnectedAppShell.js +9 -1
  250. package/dist/connection/shell/ConnectedAppShell.js.map +2 -2
  251. package/dist/connection/viewer/CleanViewControl.d.ts +8 -0
  252. package/dist/connection/viewer/CleanViewControl.js +76 -0
  253. package/dist/connection/viewer/CleanViewControl.js.map +7 -0
  254. package/dist/connection/viewer/ConnectedDocumentViewer.js +31 -31
  255. package/dist/connection/viewer/ConnectedDocumentViewer.js.map +2 -2
  256. package/dist/connection/viewer/ViewerCropModal.d.ts +5 -0
  257. package/dist/connection/viewer/ViewerCropModal.js +22 -0
  258. package/dist/connection/viewer/ViewerCropModal.js.map +7 -0
  259. package/dist/connection/viewer/ViewerPdfPane.d.ts +3 -1
  260. package/dist/connection/viewer/ViewerPdfPane.js +57 -2
  261. package/dist/connection/viewer/ViewerPdfPane.js.map +2 -2
  262. package/dist/connection/viewer/drafts.js +6 -4
  263. package/dist/connection/viewer/drafts.js.map +2 -2
  264. package/dist/connection/viewer/pdf/PdfPassageHighlights.d.ts +12 -0
  265. package/dist/connection/viewer/pdf/PdfPassageHighlights.js +36 -0
  266. package/dist/connection/viewer/pdf/PdfPassageHighlights.js.map +7 -0
  267. package/dist/connection/viewer/pdf/passageHighlights.d.ts +26 -0
  268. package/dist/connection/viewer/pdf/passageHighlights.js +40 -0
  269. package/dist/connection/viewer/pdf/passageHighlights.js.map +7 -0
  270. package/dist/connection/viewer/pdf/usePdfPassageHighlights.d.ts +9 -0
  271. package/dist/connection/viewer/pdf/usePdfPassageHighlights.js +47 -0
  272. package/dist/connection/viewer/pdf/usePdfPassageHighlights.js.map +7 -0
  273. package/dist/connection/viewer/shareDocument.d.ts +11 -0
  274. package/dist/connection/viewer/shareDocument.js +11 -0
  275. package/dist/connection/viewer/shareDocument.js.map +7 -0
  276. package/dist/connection/viewer/slidesTabChunk.d.ts +2 -0
  277. package/dist/connection/viewer/slidesTabChunk.js +9 -0
  278. package/dist/connection/viewer/slidesTabChunk.js.map +7 -0
  279. package/dist/connection/viewer/useCleanView.d.ts +14 -0
  280. package/dist/connection/viewer/useCleanView.js +29 -0
  281. package/dist/connection/viewer/useCleanView.js.map +7 -0
  282. package/dist/connection/viewer/useViewedDocument.d.ts +1 -0
  283. package/dist/connection/viewer/useViewedDocument.js +9 -1
  284. package/dist/connection/viewer/useViewedDocument.js.map +2 -2
  285. package/dist/connection/viewer/useViewerTabs.js +18 -4
  286. package/dist/connection/viewer/useViewerTabs.js.map +2 -2
  287. package/dist/connection/workflows/ConnectedWorkflowStart.d.ts +14 -2
  288. package/dist/connection/workflows/ConnectedWorkflowStart.js +5 -2
  289. package/dist/connection/workflows/ConnectedWorkflowStart.js.map +2 -2
  290. package/dist/connection/workflows/workflowsPageLabels.js +1 -1
  291. package/dist/connection/workflows/workflowsPageLabels.js.map +1 -1
  292. package/dist/dashboards/index.cjs +1 -1
  293. package/dist/databases/index.cjs +49 -49
  294. package/dist/document-tools/DocumentToolButtons.d.ts +2 -0
  295. package/dist/document-tools/DocumentToolButtons.js +22 -1
  296. package/dist/document-tools/DocumentToolButtons.js.map +2 -2
  297. package/dist/document-tools/index.cjs +16 -12
  298. package/dist/document-tools/index.d.ts +1 -1
  299. package/dist/document-tools/index.js +2 -0
  300. package/dist/document-tools/index.js.map +2 -2
  301. package/dist/embed/index.cjs +43 -41
  302. package/dist/facts/factColumns.js +3 -3
  303. package/dist/facts/factColumns.js.map +1 -1
  304. package/dist/facts/index.cjs +42 -42
  305. package/dist/files/GridViewImpl.js +1 -1
  306. package/dist/files/GridViewImpl.js.map +2 -2
  307. package/dist/files/HtmlViewerParts.js +7 -15
  308. package/dist/files/HtmlViewerParts.js.map +2 -2
  309. package/dist/files/ViewerChrome.d.ts +5 -1
  310. package/dist/files/ViewerChrome.js +16 -6
  311. package/dist/files/ViewerChrome.js.map +2 -2
  312. package/dist/files/index.cjs +226 -226
  313. package/dist/files/navigator/DocumentSearchList.js +1 -1
  314. package/dist/files/navigator/DocumentSearchList.js.map +2 -2
  315. package/dist/index.cjs +1668 -1666
  316. package/dist/index.cjs.map +1 -1
  317. package/dist/presentation/BoxActionBar.d.ts +11 -0
  318. package/dist/presentation/BoxActionBar.js +182 -0
  319. package/dist/presentation/BoxActionBar.js.map +7 -0
  320. package/dist/presentation/ClipActionBar.d.ts +26 -0
  321. package/dist/presentation/ClipActionBar.js +103 -0
  322. package/dist/presentation/ClipActionBar.js.map +7 -0
  323. package/dist/presentation/ClipCaptureOverlay.d.ts +14 -0
  324. package/dist/presentation/ClipCaptureOverlay.js +69 -0
  325. package/dist/presentation/ClipCaptureOverlay.js.map +7 -0
  326. package/dist/presentation/ClipImage.d.ts +21 -0
  327. package/dist/presentation/ClipImage.js +119 -0
  328. package/dist/presentation/ClipImage.js.map +7 -0
  329. package/dist/presentation/ClipTray.d.ts +11 -0
  330. package/dist/presentation/ClipTray.js +152 -0
  331. package/dist/presentation/ClipTray.js.map +7 -0
  332. package/dist/presentation/ClipViewControls.d.ts +11 -0
  333. package/dist/presentation/ClipViewControls.js +142 -0
  334. package/dist/presentation/ClipViewControls.js.map +7 -0
  335. package/dist/presentation/DesignMenu.d.ts +8 -0
  336. package/dist/presentation/DesignMenu.js +199 -0
  337. package/dist/presentation/DesignMenu.js.map +7 -0
  338. package/dist/presentation/LayoutMenu.d.ts +17 -0
  339. package/dist/presentation/LayoutMenu.js +122 -0
  340. package/dist/presentation/LayoutMenu.js.map +7 -0
  341. package/dist/presentation/MediaClip.d.ts +15 -0
  342. package/dist/presentation/MediaClip.js +67 -0
  343. package/dist/presentation/MediaClip.js.map +7 -0
  344. package/dist/presentation/Notice.d.ts +6 -0
  345. package/dist/presentation/Notice.js +43 -0
  346. package/dist/presentation/Notice.js.map +7 -0
  347. package/dist/presentation/PresentationStage.d.ts +32 -0
  348. package/dist/presentation/PresentationStage.js +232 -0
  349. package/dist/presentation/PresentationStage.js.map +7 -0
  350. package/dist/presentation/PresenterView.d.ts +16 -0
  351. package/dist/presentation/PresenterView.js +69 -0
  352. package/dist/presentation/PresenterView.js.map +7 -0
  353. package/dist/presentation/SlideDecor.d.ts +25 -0
  354. package/dist/presentation/SlideDecor.js +189 -0
  355. package/dist/presentation/SlideDecor.js.map +7 -0
  356. package/dist/presentation/SlidesEditor.d.ts +25 -0
  357. package/dist/presentation/SlidesEditor.js +359 -0
  358. package/dist/presentation/SlidesEditor.js.map +7 -0
  359. package/dist/presentation/StageBox.d.ts +30 -0
  360. package/dist/presentation/StageBox.js +281 -0
  361. package/dist/presentation/StageBox.js.map +7 -0
  362. package/dist/presentation/StageItem.d.ts +37 -0
  363. package/dist/presentation/StageItem.js +211 -0
  364. package/dist/presentation/StageItem.js.map +7 -0
  365. package/dist/presentation/box-style.d.ts +6 -0
  366. package/dist/presentation/box-style.js +19 -0
  367. package/dist/presentation/box-style.js.map +7 -0
  368. package/dist/presentation/boxes.d.ts +105 -0
  369. package/dist/presentation/boxes.js +103 -0
  370. package/dist/presentation/boxes.js.map +7 -0
  371. package/dist/presentation/draw-boxes.d.ts +8 -0
  372. package/dist/presentation/draw-boxes.js +130 -0
  373. package/dist/presentation/draw-boxes.js.map +7 -0
  374. package/dist/presentation/export-boxes.d.ts +10 -0
  375. package/dist/presentation/export-boxes.js +74 -0
  376. package/dist/presentation/export-boxes.js.map +7 -0
  377. package/dist/presentation/export-pptx.d.ts +16 -0
  378. package/dist/presentation/export-pptx.js +194 -0
  379. package/dist/presentation/export-pptx.js.map +7 -0
  380. package/dist/presentation/import-pptx.d.ts +35 -0
  381. package/dist/presentation/import-pptx.js +659 -0
  382. package/dist/presentation/import-pptx.js.map +7 -0
  383. package/dist/presentation/merge-outside-edits.d.ts +12 -0
  384. package/dist/presentation/merge-outside-edits.js +35 -0
  385. package/dist/presentation/merge-outside-edits.js.map +7 -0
  386. package/dist/presentation/model.d.ts +201 -0
  387. package/dist/presentation/model.js +271 -0
  388. package/dist/presentation/model.js.map +7 -0
  389. package/dist/presentation/panel-id.d.ts +34 -0
  390. package/dist/presentation/panel-id.js +24 -0
  391. package/dist/presentation/panel-id.js.map +7 -0
  392. package/dist/presentation/persistence.d.ts +121 -0
  393. package/dist/presentation/persistence.js +141 -0
  394. package/dist/presentation/persistence.js.map +7 -0
  395. package/dist/presentation/pptx-data.d.ts +22 -0
  396. package/dist/presentation/pptx-data.js +83 -0
  397. package/dist/presentation/pptx-data.js.map +7 -0
  398. package/dist/presentation/pptx-xml.d.ts +90 -0
  399. package/dist/presentation/pptx-xml.js +333 -0
  400. package/dist/presentation/pptx-xml.js.map +7 -0
  401. package/dist/presentation/render-slides.d.ts +58 -0
  402. package/dist/presentation/render-slides.js +309 -0
  403. package/dist/presentation/render-slides.js.map +7 -0
  404. package/dist/presentation/saved-boxes.d.ts +11 -0
  405. package/dist/presentation/saved-boxes.js +80 -0
  406. package/dist/presentation/saved-boxes.js.map +7 -0
  407. package/dist/presentation/slide-layout.d.ts +54 -0
  408. package/dist/presentation/slide-layout.js +117 -0
  409. package/dist/presentation/slide-layout.js.map +7 -0
  410. package/dist/presentation/stage-videos.d.ts +5 -0
  411. package/dist/presentation/stage-videos.js +19 -0
  412. package/dist/presentation/stage-videos.js.map +7 -0
  413. package/dist/presentation/store.d.ts +203 -0
  414. package/dist/presentation/store.js +429 -0
  415. package/dist/presentation/store.js.map +7 -0
  416. package/dist/presentation/theme.d.ts +102 -0
  417. package/dist/presentation/theme.js +276 -0
  418. package/dist/presentation/theme.js.map +7 -0
  419. package/dist/presentation/useClipDrag.d.ts +26 -0
  420. package/dist/presentation/useClipDrag.js +65 -0
  421. package/dist/presentation/useClipDrag.js.map +7 -0
  422. package/dist/presentation/useObjectUrl.d.ts +6 -0
  423. package/dist/presentation/useObjectUrl.js +15 -0
  424. package/dist/presentation/useObjectUrl.js.map +7 -0
  425. package/dist/presentation/usePresenterKeys.d.ts +13 -0
  426. package/dist/presentation/usePresenterKeys.js +62 -0
  427. package/dist/presentation/usePresenterKeys.js.map +7 -0
  428. package/dist/settings/index.cjs +151 -150
  429. package/dist/shell/PanelPortal.js +1 -0
  430. package/dist/shell/PanelPortal.js.map +2 -2
  431. package/dist/shell/index.cjs +112 -110
  432. package/dist/shell/panel-windows.d.ts +2 -0
  433. package/dist/shell/panel-windows.js +7 -2
  434. package/dist/shell/panel-windows.js.map +2 -2
  435. package/dist/studio/index.cjs +28 -26
  436. package/dist/studio/index.cjs.map +1 -1
  437. package/dist/styles.css +1 -1
  438. package/dist/workflow-canvas/index.cjs +58 -57
  439. package/dist/workflow-canvas/index.cjs.map +1 -1
  440. package/node_modules/@arbidocs/coedit/package.json +1 -1
  441. package/package.json +6 -5
  442. package/dist/ConnectedCallDock-WER7R222.cjs.map +0 -1
  443. package/dist/DocumentReviewCard-ZSBZBGFK.cjs.map +0 -1
  444. package/dist/FilesViewerDialog-6UKR5WEF.cjs.map +0 -1
  445. package/dist/GridViewImpl-ZMJJWTOM.cjs.map +0 -1
  446. package/dist/WorkspaceTableView-J3C6VH4T.cjs.map +0 -1
  447. package/dist/ai-IM4A23YT.cjs.map +0 -1
  448. package/dist/chunk-557MJ4IH.cjs.map +0 -1
  449. package/dist/chunk-6UTKM5AB.cjs.map +0 -1
  450. package/dist/chunk-6WMMZLEV.cjs.map +0 -1
  451. package/dist/chunk-B3LZITVF.cjs.map +0 -1
  452. package/dist/chunk-CPG7II4E.cjs.map +0 -1
  453. package/dist/chunk-CPR6EHG7.cjs.map +0 -1
  454. package/dist/chunk-DDIW4HLU.cjs.map +0 -1
  455. package/dist/chunk-NJCK6V6U.cjs.map +0 -1
  456. package/dist/chunk-NNUK5ZM7.cjs.map +0 -1
  457. package/dist/chunk-PGJYD67F.cjs.map +0 -1
  458. package/dist/chunk-R7CJEIA5.cjs.map +0 -1
  459. package/dist/chunk-SB4M3ITT.cjs.map +0 -1
  460. package/dist/chunk-TT4IF52H.cjs.map +0 -1
  461. package/dist/chunk-VLCY46K6.cjs.map +0 -1
  462. package/dist/chunk-YYPZOEED.cjs.map +0 -1
  463. package/dist/chunk-ZPPMAL5P.cjs.map +0 -1
@@ -155,6 +155,7 @@ function PanelPortal({
155
155
  return () => {
156
156
  if (popupWindowIdRef.current) {
157
157
  windowManager.closeWindow(popupWindowIdRef.current);
158
+ popupWindowIdRef.current = null;
158
159
  }
159
160
  };
160
161
  }, [windowManager]);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/shell/PanelPortal.tsx"],
4
- "sourcesContent": ["/**\n * PanelPortal Component\n *\n * Thin portal layer that renders children into the right target based on panel mode:\n * - docked: portal to #dock-zone element\n * - overlay: portal to <body> as a slide-out sheet over a backdrop\n * - popout: portal to a separate browser window\n * - main: portal to #main-zone element\n *\n * Manages popup window lifecycle for popout mode.\n * Content-agnostic \u2014 just handles where things render.\n */\n\nimport { useCallback, useEffect, useRef, useState } from 'react'\nimport { createPortal } from 'react-dom'\nimport { DEFAULT_OVERLAY_ZONE_ID } from './Shell'\nimport { usePanelHostSupport } from './panel-host'\nimport { PortalContainerProvider } from '@arbidocs/react/ui'\nimport type { FloatingPanelMode as PanelMode } from '../settings/FloatingPanel'\n\n// Overlay sheet sizing \u2014 defaults match the docked width (DEFAULT_DOCK_PX) so a\n// panel is the same size whether pinned or floating, and stays draggable here.\nconst OVERLAY_DEFAULT_PX = 544\nconst OVERLAY_MIN_PX = 360\n\nexport interface PanelPortalProps {\n panelId: string\n mode: PanelMode\n isOpen: boolean\n /** True while the overlay is animating out before unmounting. */\n isExiting?: boolean\n /** Called when popup window is closed externally (user closes the window) */\n onPopupClosed?: () => void\n /** Dismisses the panel \u2014 used by the overlay backdrop. */\n onClose?: () => void\n /** Window title for popout mode */\n popoutTitle?: string\n /** Initial overlay width in px (defaults to OVERLAY_DEFAULT_PX). */\n defaultWidth?: number\n children: React.ReactNode\n}\n\n/**\n * Overlay sheet \u2014 a slide-out panel over the still-visible page, resizable by\n * dragging its left edge. Slides in on mount and out (via isExiting) before\n * unmounting, mirroring the left sidebar's animation.\n */\nfunction OverlaySheet({\n panelId,\n isExiting,\n onClose,\n defaultWidth,\n scoped,\n children,\n}: {\n panelId: string\n isExiting?: boolean\n onClose?: () => void\n defaultWidth?: number\n /** Rendered inside the layout's overlay zone (below the topbar) rather than\n * over the whole viewport. */\n scoped?: boolean\n children: React.ReactNode\n}) {\n const [width, setWidth] = useState(defaultWidth ?? OVERLAY_DEFAULT_PX)\n const [isResizing, setIsResizing] = useState(false)\n // Live cursor position while dragging. The panel keeps its committed `width`\n // during the drag \u2014 only this thin preview line moves \u2014 so the heavy panel\n // content never reflows mid-drag (matching DockZone's split-screen handle).\n // The width is committed once on mouse-up.\n const [dragWidth, setDragWidth] = useState<number | null>(null)\n const dragWidthRef = useRef<number | null>(null)\n // Once the slide-in has played we drop the entry class, so later re-renders\n // don't restart the animation.\n const [hasEntered, setHasEntered] = useState(false)\n\n const handleResizeStart = useCallback((e: React.MouseEvent) => {\n e.preventDefault()\n setHasEntered(true)\n setIsResizing(true)\n setDragWidth(null)\n dragWidthRef.current = null\n }, [])\n\n useEffect(() => {\n if (!isResizing) return\n const handleMouseMove = (e: MouseEvent) => {\n // Anchored to the right edge \u2014 width grows as the cursor moves left.\n const max = window.innerWidth * 0.92\n const next = Math.min(Math.max(window.innerWidth - e.clientX, OVERLAY_MIN_PX), max)\n dragWidthRef.current = next\n setDragWidth(next)\n }\n const handleMouseUp = () => {\n if (dragWidthRef.current !== null) setWidth(dragWidthRef.current)\n setIsResizing(false)\n setDragWidth(null)\n dragWidthRef.current = null\n }\n document.addEventListener('mousemove', handleMouseMove)\n document.addEventListener('mouseup', handleMouseUp)\n document.body.style.cursor = 'col-resize'\n document.body.style.userSelect = 'none'\n return () => {\n document.removeEventListener('mousemove', handleMouseMove)\n document.removeEventListener('mouseup', handleMouseUp)\n document.body.style.cursor = ''\n document.body.style.userSelect = ''\n }\n }, [isResizing])\n\n return (\n // Scoped: absolute within the layout's overlay zone (below the topbar).\n // Unscoped fallback: fixed over the whole viewport, as before.\n <div\n className={scoped ? 'absolute inset-0 z-40' : 'fixed inset-0 z-50'}\n data-testid={`${panelId}-overlay`}\n >\n {/* In dark mode a 40% black veil crushes the light page text behind the sheet to\n mid-grey, so the veil is lighter there and the page stays readable underneath. */}\n <div\n className={`absolute inset-0 bg-black/40 dark:bg-black/20 duration-200 ${\n // fill-mode-forwards holds the exit end-state \u2014 without it the\n // element snaps back fully visible for the frames between the\n // animation finishing and React unmounting it (a flicker).\n isExiting ? 'animate-out fade-out fill-mode-forwards' : 'animate-in fade-in'\n }`}\n onClick={onClose}\n aria-hidden=\"true\"\n data-testid={`${panelId}-overlay-backdrop`}\n />\n <div\n style={{ width }}\n onAnimationEnd={() => !isExiting && setHasEntered(true)}\n className={`absolute right-0 top-0 bottom-0 flex max-w-[92vw] flex-col border-l max-sm:!w-full max-sm:!max-w-full max-sm:border-l-0 border-border bg-muted shadow-2xl duration-200 ${\n isExiting\n ? 'animate-out slide-out-to-right fill-mode-forwards'\n : // Suppress the slide transform once entered so it doesn't replay.\n hasEntered\n ? ''\n : 'animate-in slide-in-from-right'\n }`}\n >\n {/* Drag handle on the left edge to resize the sheet. */}\n <div\n className=\"absolute left-0 top-0 bottom-0 z-10 w-1.5 -translate-x-1/2 cursor-col-resize hover:bg-primary/40\"\n onMouseDown={handleResizeStart}\n data-testid={`${panelId}-overlay-resize-handle`}\n />\n {children}\n </div>\n\n {/* Preview line \u2014 tracks the cursor during the drag; the panel resizes\n to this position only on release. */}\n {isResizing && dragWidth !== null && (\n <div\n className=\"absolute top-0 bottom-0 z-[60] w-0.5 bg-primary pointer-events-none\"\n style={{ right: dragWidth }}\n />\n )}\n {/* Transparent capture layer so the drag isn't interrupted by elements\n (iframes, the grid) swallowing pointer events. */}\n {isResizing && <div className=\"absolute inset-0 z-[55] cursor-col-resize\" />}\n </div>\n )\n}\n\nexport function PanelPortal({\n panelId,\n mode,\n isOpen,\n isExiting,\n onPopupClosed,\n onClose,\n popoutTitle,\n defaultWidth,\n children,\n}: PanelPortalProps) {\n const { windows: windowManager } = usePanelHostSupport()\n const [popupRoot, setPopupRoot] = useState<HTMLElement | null>(null)\n const popupWindowIdRef = useRef<string | null>(null)\n\n // Open popup window when switching to popout mode\n useEffect(() => {\n if (!isOpen || mode !== 'popout') {\n // Close popup if we're leaving popout mode (intentional mode switch, not user closing)\n if (popupWindowIdRef.current) {\n // Clear the onClose callback before closing so it doesn't trigger onPopupClosed\n windowManager.clearOnClose(popupWindowIdRef.current)\n windowManager.closeWindow(popupWindowIdRef.current)\n popupWindowIdRef.current = null\n setPopupRoot(null)\n }\n return\n }\n\n // Already have a popup open\n if (popupWindowIdRef.current) return\n\n const windowId = windowManager.createPopupWindow(\n `panel-${panelId}`,\n () => {\n popupWindowIdRef.current = null\n setPopupRoot(null)\n onPopupClosed?.()\n },\n popoutTitle || panelId\n )\n\n if (windowId) {\n const rootElement = windowManager.getRootElement(windowId)\n if (rootElement) {\n popupWindowIdRef.current = windowId\n setPopupRoot(rootElement)\n windowManager.getWindow(windowId)?.focus()\n }\n }\n }, [isOpen, mode, panelId, popoutTitle, onPopupClosed, windowManager])\n\n // Clean up on unmount\n useEffect(() => {\n return () => {\n if (popupWindowIdRef.current) {\n windowManager.closeWindow(popupWindowIdRef.current)\n }\n }\n }, [windowManager])\n\n if (!isOpen && !isExiting) return null\n\n // Popout: render into popup window. Its dialogs and menus open there too, not in the window\n // behind it (where the Sign dialog used to open, out of sight).\n if (mode === 'popout' && popupRoot) {\n return createPortal(\n <PortalContainerProvider container={popupRoot}>{children}</PortalContainerProvider>,\n popupRoot\n )\n }\n\n // Overlay: a slide-out sheet over the still-visible page. Rendered into the\n // layout's #app-overlay-zone \u2014 the content region BELOW the app topbar \u2014 so\n // the bar stays visible and interactive above every overlay. Falls back to\n // <body> (viewport-covering) when no zone is mounted (e.g. embedded shells).\n if (mode === 'overlay') {\n const overlayZone = document.getElementById(DEFAULT_OVERLAY_ZONE_ID)\n return createPortal(\n <OverlaySheet\n panelId={panelId}\n isExiting={isExiting}\n onClose={onClose}\n defaultWidth={defaultWidth}\n scoped={overlayZone !== null}\n >\n {children}\n </OverlaySheet>,\n overlayZone ?? document.body\n )\n }\n\n // Main: render into main content zone\n if (mode === 'main') {\n const mainZone = document.getElementById('main-zone')\n if (mainZone) {\n return createPortal(children, mainZone)\n }\n }\n\n // Docked: render into dock zone\n const dockZone = document.getElementById('dock-zone')\n if (dockZone) {\n return createPortal(children, dockZone)\n }\n\n // No target zone mounted yet \u2014 render nothing\n return null\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * PanelPortal Component\n *\n * Thin portal layer that renders children into the right target based on panel mode:\n * - docked: portal to #dock-zone element\n * - overlay: portal to <body> as a slide-out sheet over a backdrop\n * - popout: portal to a separate browser window\n * - main: portal to #main-zone element\n *\n * Manages popup window lifecycle for popout mode.\n * Content-agnostic \u2014 just handles where things render.\n */\n\nimport { useCallback, useEffect, useRef, useState } from 'react'\nimport { createPortal } from 'react-dom'\nimport { DEFAULT_OVERLAY_ZONE_ID } from './Shell'\nimport { usePanelHostSupport } from './panel-host'\nimport { PortalContainerProvider } from '@arbidocs/react/ui'\nimport type { FloatingPanelMode as PanelMode } from '../settings/FloatingPanel'\n\n// Overlay sheet sizing \u2014 defaults match the docked width (DEFAULT_DOCK_PX) so a\n// panel is the same size whether pinned or floating, and stays draggable here.\nconst OVERLAY_DEFAULT_PX = 544\nconst OVERLAY_MIN_PX = 360\n\nexport interface PanelPortalProps {\n panelId: string\n mode: PanelMode\n isOpen: boolean\n /** True while the overlay is animating out before unmounting. */\n isExiting?: boolean\n /** Called when popup window is closed externally (user closes the window) */\n onPopupClosed?: () => void\n /** Dismisses the panel \u2014 used by the overlay backdrop. */\n onClose?: () => void\n /** Window title for popout mode */\n popoutTitle?: string\n /** Initial overlay width in px (defaults to OVERLAY_DEFAULT_PX). */\n defaultWidth?: number\n children: React.ReactNode\n}\n\n/**\n * Overlay sheet \u2014 a slide-out panel over the still-visible page, resizable by\n * dragging its left edge. Slides in on mount and out (via isExiting) before\n * unmounting, mirroring the left sidebar's animation.\n */\nfunction OverlaySheet({\n panelId,\n isExiting,\n onClose,\n defaultWidth,\n scoped,\n children,\n}: {\n panelId: string\n isExiting?: boolean\n onClose?: () => void\n defaultWidth?: number\n /** Rendered inside the layout's overlay zone (below the topbar) rather than\n * over the whole viewport. */\n scoped?: boolean\n children: React.ReactNode\n}) {\n const [width, setWidth] = useState(defaultWidth ?? OVERLAY_DEFAULT_PX)\n const [isResizing, setIsResizing] = useState(false)\n // Live cursor position while dragging. The panel keeps its committed `width`\n // during the drag \u2014 only this thin preview line moves \u2014 so the heavy panel\n // content never reflows mid-drag (matching DockZone's split-screen handle).\n // The width is committed once on mouse-up.\n const [dragWidth, setDragWidth] = useState<number | null>(null)\n const dragWidthRef = useRef<number | null>(null)\n // Once the slide-in has played we drop the entry class, so later re-renders\n // don't restart the animation.\n const [hasEntered, setHasEntered] = useState(false)\n\n const handleResizeStart = useCallback((e: React.MouseEvent) => {\n e.preventDefault()\n setHasEntered(true)\n setIsResizing(true)\n setDragWidth(null)\n dragWidthRef.current = null\n }, [])\n\n useEffect(() => {\n if (!isResizing) return\n const handleMouseMove = (e: MouseEvent) => {\n // Anchored to the right edge \u2014 width grows as the cursor moves left.\n const max = window.innerWidth * 0.92\n const next = Math.min(Math.max(window.innerWidth - e.clientX, OVERLAY_MIN_PX), max)\n dragWidthRef.current = next\n setDragWidth(next)\n }\n const handleMouseUp = () => {\n if (dragWidthRef.current !== null) setWidth(dragWidthRef.current)\n setIsResizing(false)\n setDragWidth(null)\n dragWidthRef.current = null\n }\n document.addEventListener('mousemove', handleMouseMove)\n document.addEventListener('mouseup', handleMouseUp)\n document.body.style.cursor = 'col-resize'\n document.body.style.userSelect = 'none'\n return () => {\n document.removeEventListener('mousemove', handleMouseMove)\n document.removeEventListener('mouseup', handleMouseUp)\n document.body.style.cursor = ''\n document.body.style.userSelect = ''\n }\n }, [isResizing])\n\n return (\n // Scoped: absolute within the layout's overlay zone (below the topbar).\n // Unscoped fallback: fixed over the whole viewport, as before.\n <div\n className={scoped ? 'absolute inset-0 z-40' : 'fixed inset-0 z-50'}\n data-testid={`${panelId}-overlay`}\n >\n {/* In dark mode a 40% black veil crushes the light page text behind the sheet to\n mid-grey, so the veil is lighter there and the page stays readable underneath. */}\n <div\n className={`absolute inset-0 bg-black/40 dark:bg-black/20 duration-200 ${\n // fill-mode-forwards holds the exit end-state \u2014 without it the\n // element snaps back fully visible for the frames between the\n // animation finishing and React unmounting it (a flicker).\n isExiting ? 'animate-out fade-out fill-mode-forwards' : 'animate-in fade-in'\n }`}\n onClick={onClose}\n aria-hidden=\"true\"\n data-testid={`${panelId}-overlay-backdrop`}\n />\n <div\n style={{ width }}\n onAnimationEnd={() => !isExiting && setHasEntered(true)}\n className={`absolute right-0 top-0 bottom-0 flex max-w-[92vw] flex-col border-l max-sm:!w-full max-sm:!max-w-full max-sm:border-l-0 border-border bg-muted shadow-2xl duration-200 ${\n isExiting\n ? 'animate-out slide-out-to-right fill-mode-forwards'\n : // Suppress the slide transform once entered so it doesn't replay.\n hasEntered\n ? ''\n : 'animate-in slide-in-from-right'\n }`}\n >\n {/* Drag handle on the left edge to resize the sheet. */}\n <div\n className=\"absolute left-0 top-0 bottom-0 z-10 w-1.5 -translate-x-1/2 cursor-col-resize hover:bg-primary/40\"\n onMouseDown={handleResizeStart}\n data-testid={`${panelId}-overlay-resize-handle`}\n />\n {children}\n </div>\n\n {/* Preview line \u2014 tracks the cursor during the drag; the panel resizes\n to this position only on release. */}\n {isResizing && dragWidth !== null && (\n <div\n className=\"absolute top-0 bottom-0 z-[60] w-0.5 bg-primary pointer-events-none\"\n style={{ right: dragWidth }}\n />\n )}\n {/* Transparent capture layer so the drag isn't interrupted by elements\n (iframes, the grid) swallowing pointer events. */}\n {isResizing && <div className=\"absolute inset-0 z-[55] cursor-col-resize\" />}\n </div>\n )\n}\n\nexport function PanelPortal({\n panelId,\n mode,\n isOpen,\n isExiting,\n onPopupClosed,\n onClose,\n popoutTitle,\n defaultWidth,\n children,\n}: PanelPortalProps) {\n const { windows: windowManager } = usePanelHostSupport()\n const [popupRoot, setPopupRoot] = useState<HTMLElement | null>(null)\n const popupWindowIdRef = useRef<string | null>(null)\n\n // Open popup window when switching to popout mode\n useEffect(() => {\n if (!isOpen || mode !== 'popout') {\n // Close popup if we're leaving popout mode (intentional mode switch, not user closing)\n if (popupWindowIdRef.current) {\n // Clear the onClose callback before closing so it doesn't trigger onPopupClosed\n windowManager.clearOnClose(popupWindowIdRef.current)\n windowManager.closeWindow(popupWindowIdRef.current)\n popupWindowIdRef.current = null\n setPopupRoot(null)\n }\n return\n }\n\n // Already have a popup open\n if (popupWindowIdRef.current) return\n\n const windowId = windowManager.createPopupWindow(\n `panel-${panelId}`,\n () => {\n popupWindowIdRef.current = null\n setPopupRoot(null)\n onPopupClosed?.()\n },\n popoutTitle || panelId\n )\n\n if (windowId) {\n const rootElement = windowManager.getRootElement(windowId)\n if (rootElement) {\n popupWindowIdRef.current = windowId\n setPopupRoot(rootElement)\n windowManager.getWindow(windowId)?.focus()\n }\n }\n }, [isOpen, mode, panelId, popoutTitle, onPopupClosed, windowManager])\n\n // Clean up on unmount. The ref is cleared too: a remount (React's StrictMode replays mount\n // effects) of a panel that mounts already popped out must open a new window, not keep\n // pointing at the closed one.\n useEffect(() => {\n return () => {\n if (popupWindowIdRef.current) {\n windowManager.closeWindow(popupWindowIdRef.current)\n popupWindowIdRef.current = null\n }\n }\n }, [windowManager])\n\n if (!isOpen && !isExiting) return null\n\n // Popout: render into popup window. Its dialogs and menus open there too, not in the window\n // behind it (where the Sign dialog used to open, out of sight).\n if (mode === 'popout' && popupRoot) {\n return createPortal(\n <PortalContainerProvider container={popupRoot}>{children}</PortalContainerProvider>,\n popupRoot\n )\n }\n\n // Overlay: a slide-out sheet over the still-visible page. Rendered into the\n // layout's #app-overlay-zone \u2014 the content region BELOW the app topbar \u2014 so\n // the bar stays visible and interactive above every overlay. Falls back to\n // <body> (viewport-covering) when no zone is mounted (e.g. embedded shells).\n if (mode === 'overlay') {\n const overlayZone = document.getElementById(DEFAULT_OVERLAY_ZONE_ID)\n return createPortal(\n <OverlaySheet\n panelId={panelId}\n isExiting={isExiting}\n onClose={onClose}\n defaultWidth={defaultWidth}\n scoped={overlayZone !== null}\n >\n {children}\n </OverlaySheet>,\n overlayZone ?? document.body\n )\n }\n\n // Main: render into main content zone\n if (mode === 'main') {\n const mainZone = document.getElementById('main-zone')\n if (mainZone) {\n return createPortal(children, mainZone)\n }\n }\n\n // Docked: render into dock zone\n const dockZone = document.getElementById('dock-zone')\n if (dockZone) {\n return createPortal(children, dockZone)\n }\n\n // No target zone mounted yet \u2014 render nothing\n return null\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -3,21 +3,23 @@
3
3
 
4
4
  var chunkVCEX7COE_cjs = require('../chunk-VCEX7COE.cjs');
5
5
  require('../chunk-34HQO4ZQ.cjs');
6
- var chunkB3LZITVF_cjs = require('../chunk-B3LZITVF.cjs');
7
- var chunkNY3YUCOW_cjs = require('../chunk-NY3YUCOW.cjs');
8
- var chunk325GVZE6_cjs = require('../chunk-325GVZE6.cjs');
6
+ var chunkCT3SLXB7_cjs = require('../chunk-CT3SLXB7.cjs');
7
+ var chunkEHP6OH5D_cjs = require('../chunk-EHP6OH5D.cjs');
8
+ var chunkQFXILJMJ_cjs = require('../chunk-QFXILJMJ.cjs');
9
+ var chunk4NPCDS2X_cjs = require('../chunk-4NPCDS2X.cjs');
10
+ var chunkQ6DQGGP4_cjs = require('../chunk-Q6DQGGP4.cjs');
11
+ var chunkDEXUL3T6_cjs = require('../chunk-DEXUL3T6.cjs');
12
+ var chunkAFQTQC7A_cjs = require('../chunk-AFQTQC7A.cjs');
13
+ var chunkXJEXFEWG_cjs = require('../chunk-XJEXFEWG.cjs');
14
+ var chunkYZSQ7F5K_cjs = require('../chunk-YZSQ7F5K.cjs');
15
+ var chunkKQF7POTG_cjs = require('../chunk-KQF7POTG.cjs');
16
+ var chunkFX3K6LNZ_cjs = require('../chunk-FX3K6LNZ.cjs');
9
17
  require('../chunk-AHDJXIUB.cjs');
10
18
  var chunk6UZC4XVV_cjs = require('../chunk-6UZC4XVV.cjs');
11
19
  require('../chunk-JV5TVUOU.cjs');
12
20
  var chunkKKYNTWDU_cjs = require('../chunk-KKYNTWDU.cjs');
13
21
  require('../chunk-3YZKDCWY.cjs');
14
22
  var chunkSJSGSHIT_cjs = require('../chunk-SJSGSHIT.cjs');
15
- var chunkCT3SLXB7_cjs = require('../chunk-CT3SLXB7.cjs');
16
- var chunkDEXUL3T6_cjs = require('../chunk-DEXUL3T6.cjs');
17
- var chunk6WMMZLEV_cjs = require('../chunk-6WMMZLEV.cjs');
18
- var chunkYZSQ7F5K_cjs = require('../chunk-YZSQ7F5K.cjs');
19
- var chunkKQF7POTG_cjs = require('../chunk-KQF7POTG.cjs');
20
- var chunkFX3K6LNZ_cjs = require('../chunk-FX3K6LNZ.cjs');
21
23
  require('../chunk-PPCATBOY.cjs');
22
24
  require('../chunk-TKHCIHE2.cjs');
23
25
  require('../chunk-JDFBEGQO.cjs');
@@ -78,221 +80,193 @@ Object.defineProperty(exports, "useInstallPrompt", {
78
80
  enumerable: true,
79
81
  get: function () { return chunkVCEX7COE_cjs.useInstallPrompt; }
80
82
  });
83
+ Object.defineProperty(exports, "DEFAULT_DOCK_WIDTH", {
84
+ enumerable: true,
85
+ get: function () { return chunkCT3SLXB7_cjs.DEFAULT_DOCK_WIDTH; }
86
+ });
87
+ Object.defineProperty(exports, "Toaster", {
88
+ enumerable: true,
89
+ get: function () { return chunkCT3SLXB7_cjs.Toaster; }
90
+ });
81
91
  Object.defineProperty(exports, "ActionCluster", {
82
92
  enumerable: true,
83
- get: function () { return chunkB3LZITVF_cjs.ActionCluster; }
93
+ get: function () { return chunkEHP6OH5D_cjs.ActionCluster; }
84
94
  });
85
95
  Object.defineProperty(exports, "AskField", {
86
96
  enumerable: true,
87
- get: function () { return chunkB3LZITVF_cjs.AskField; }
97
+ get: function () { return chunkEHP6OH5D_cjs.AskField; }
88
98
  });
89
99
  Object.defineProperty(exports, "AskRow", {
90
100
  enumerable: true,
91
- get: function () { return chunkB3LZITVF_cjs.AskRow; }
101
+ get: function () { return chunkEHP6OH5D_cjs.AskRow; }
92
102
  });
93
103
  Object.defineProperty(exports, "AskTrigger", {
94
104
  enumerable: true,
95
- get: function () { return chunkB3LZITVF_cjs.AskTrigger; }
105
+ get: function () { return chunkEHP6OH5D_cjs.AskTrigger; }
96
106
  });
97
107
  Object.defineProperty(exports, "DEFAULT_ASK_FIELD_LABELS", {
98
108
  enumerable: true,
99
- get: function () { return chunkB3LZITVF_cjs.DEFAULT_ASK_FIELD_LABELS; }
109
+ get: function () { return chunkEHP6OH5D_cjs.DEFAULT_ASK_FIELD_LABELS; }
100
110
  });
101
111
  Object.defineProperty(exports, "DEFAULT_OFFLINE_PILL_LABELS", {
102
112
  enumerable: true,
103
- get: function () { return chunkB3LZITVF_cjs.DEFAULT_OFFLINE_PILL_LABELS; }
113
+ get: function () { return chunkEHP6OH5D_cjs.DEFAULT_OFFLINE_PILL_LABELS; }
104
114
  });
105
115
  Object.defineProperty(exports, "DEFAULT_REMOTE_CONTROL_PILL_LABELS", {
106
116
  enumerable: true,
107
- get: function () { return chunkB3LZITVF_cjs.DEFAULT_REMOTE_CONTROL_PILL_LABELS; }
117
+ get: function () { return chunkEHP6OH5D_cjs.DEFAULT_REMOTE_CONTROL_PILL_LABELS; }
108
118
  });
109
119
  Object.defineProperty(exports, "DEFAULT_TIP_CARD_LABELS", {
110
120
  enumerable: true,
111
- get: function () { return chunkB3LZITVF_cjs.DEFAULT_TIP_CARD_LABELS; }
121
+ get: function () { return chunkEHP6OH5D_cjs.DEFAULT_TIP_CARD_LABELS; }
112
122
  });
113
123
  Object.defineProperty(exports, "DockZone", {
114
124
  enumerable: true,
115
- get: function () { return chunkB3LZITVF_cjs.DockZone; }
125
+ get: function () { return chunkEHP6OH5D_cjs.DockZone; }
116
126
  });
117
127
  Object.defineProperty(exports, "OfflinePill", {
118
128
  enumerable: true,
119
- get: function () { return chunkB3LZITVF_cjs.OfflinePill; }
120
- });
121
- Object.defineProperty(exports, "PanelModeSwitcher", {
122
- enumerable: true,
123
- get: function () { return chunkB3LZITVF_cjs.PanelModeSwitcher; }
124
- });
125
- Object.defineProperty(exports, "PanelPortal", {
126
- enumerable: true,
127
- get: function () { return chunkB3LZITVF_cjs.PanelPortal; }
129
+ get: function () { return chunkEHP6OH5D_cjs.OfflinePill; }
128
130
  });
129
131
  Object.defineProperty(exports, "RemoteControlPill", {
130
132
  enumerable: true,
131
- get: function () { return chunkB3LZITVF_cjs.RemoteControlPill; }
133
+ get: function () { return chunkEHP6OH5D_cjs.RemoteControlPill; }
132
134
  });
133
135
  Object.defineProperty(exports, "ShellSidebar", {
134
136
  enumerable: true,
135
- get: function () { return chunkB3LZITVF_cjs.ShellSidebar; }
137
+ get: function () { return chunkEHP6OH5D_cjs.ShellSidebar; }
136
138
  });
137
139
  Object.defineProperty(exports, "SidebarRowAction", {
138
140
  enumerable: true,
139
- get: function () { return chunkB3LZITVF_cjs.SidebarRowAction; }
141
+ get: function () { return chunkEHP6OH5D_cjs.SidebarRowAction; }
140
142
  });
141
143
  Object.defineProperty(exports, "StatusBadge", {
142
144
  enumerable: true,
143
- get: function () { return chunkB3LZITVF_cjs.StatusBadge; }
145
+ get: function () { return chunkEHP6OH5D_cjs.StatusBadge; }
144
146
  });
145
147
  Object.defineProperty(exports, "StatusRow", {
146
148
  enumerable: true,
147
- get: function () { return chunkB3LZITVF_cjs.StatusRow; }
149
+ get: function () { return chunkEHP6OH5D_cjs.StatusRow; }
148
150
  });
149
151
  Object.defineProperty(exports, "TipCard", {
150
152
  enumerable: true,
151
- get: function () { return chunkB3LZITVF_cjs.TipCard; }
152
- });
153
- Object.defineProperty(exports, "createPanelWindowManager", {
154
- enumerable: true,
155
- get: function () { return chunkB3LZITVF_cjs.createPanelWindowManager; }
153
+ get: function () { return chunkEHP6OH5D_cjs.TipCard; }
156
154
  });
157
155
  Object.defineProperty(exports, "resolveSidebarLayout", {
158
156
  enumerable: true,
159
- get: function () { return chunkB3LZITVF_cjs.resolveSidebarLayout; }
157
+ get: function () { return chunkEHP6OH5D_cjs.resolveSidebarLayout; }
160
158
  });
161
159
  Object.defineProperty(exports, "useCloseOnEscape", {
162
160
  enumerable: true,
163
- get: function () { return chunkB3LZITVF_cjs.useCloseOnEscape; }
164
- });
165
- Object.defineProperty(exports, "usePanelHostSupport", {
166
- enumerable: true,
167
- get: function () { return chunkB3LZITVF_cjs.usePanelHostSupport; }
161
+ get: function () { return chunkEHP6OH5D_cjs.useCloseOnEscape; }
168
162
  });
169
163
  Object.defineProperty(exports, "useSidebarController", {
170
164
  enumerable: true,
171
- get: function () { return chunkB3LZITVF_cjs.useSidebarController; }
165
+ get: function () { return chunkEHP6OH5D_cjs.useSidebarController; }
172
166
  });
173
167
  Object.defineProperty(exports, "useSidebarSettle", {
174
168
  enumerable: true,
175
- get: function () { return chunkB3LZITVF_cjs.useSidebarSettle; }
169
+ get: function () { return chunkEHP6OH5D_cjs.useSidebarSettle; }
170
+ });
171
+ Object.defineProperty(exports, "PanelModeSwitcher", {
172
+ enumerable: true,
173
+ get: function () { return chunkQFXILJMJ_cjs.PanelModeSwitcher; }
174
+ });
175
+ Object.defineProperty(exports, "PanelPortal", {
176
+ enumerable: true,
177
+ get: function () { return chunkQFXILJMJ_cjs.PanelPortal; }
178
+ });
179
+ Object.defineProperty(exports, "createPanelWindowManager", {
180
+ enumerable: true,
181
+ get: function () { return chunkQFXILJMJ_cjs.createPanelWindowManager; }
182
+ });
183
+ Object.defineProperty(exports, "usePanelHostSupport", {
184
+ enumerable: true,
185
+ get: function () { return chunkQFXILJMJ_cjs.usePanelHostSupport; }
176
186
  });
177
187
  Object.defineProperty(exports, "DEFAULT_MOBILE_BARS_LABELS", {
178
188
  enumerable: true,
179
- get: function () { return chunkNY3YUCOW_cjs.DEFAULT_MOBILE_BARS_LABELS; }
189
+ get: function () { return chunk4NPCDS2X_cjs.DEFAULT_MOBILE_BARS_LABELS; }
180
190
  });
181
191
  Object.defineProperty(exports, "DEFAULT_WORKSPACE_KIND_LABELS", {
182
192
  enumerable: true,
183
- get: function () { return chunkNY3YUCOW_cjs.DEFAULT_WORKSPACE_KIND_LABELS; }
193
+ get: function () { return chunk4NPCDS2X_cjs.DEFAULT_WORKSPACE_KIND_LABELS; }
184
194
  });
185
195
  Object.defineProperty(exports, "DEFAULT_WORKSPACE_SWITCHER_LABELS", {
186
196
  enumerable: true,
187
- get: function () { return chunkNY3YUCOW_cjs.DEFAULT_WORKSPACE_SWITCHER_LABELS; }
197
+ get: function () { return chunk4NPCDS2X_cjs.DEFAULT_WORKSPACE_SWITCHER_LABELS; }
188
198
  });
189
199
  Object.defineProperty(exports, "MobileAppBar", {
190
200
  enumerable: true,
191
- get: function () { return chunkNY3YUCOW_cjs.MobileAppBar; }
201
+ get: function () { return chunk4NPCDS2X_cjs.MobileAppBar; }
192
202
  });
193
203
  Object.defineProperty(exports, "MobileTabBar", {
194
204
  enumerable: true,
195
- get: function () { return chunkNY3YUCOW_cjs.MobileTabBar; }
205
+ get: function () { return chunk4NPCDS2X_cjs.MobileTabBar; }
196
206
  });
197
207
  Object.defineProperty(exports, "WorkspaceIdentity", {
198
208
  enumerable: true,
199
- get: function () { return chunkNY3YUCOW_cjs.WorkspaceIdentity; }
209
+ get: function () { return chunk4NPCDS2X_cjs.WorkspaceIdentity; }
200
210
  });
201
211
  Object.defineProperty(exports, "WorkspaceSwitcher", {
202
212
  enumerable: true,
203
- get: function () { return chunkNY3YUCOW_cjs.WorkspaceSwitcher; }
213
+ get: function () { return chunk4NPCDS2X_cjs.WorkspaceSwitcher; }
204
214
  });
205
215
  Object.defineProperty(exports, "hasUnsavedInput", {
206
216
  enumerable: true,
207
- get: function () { return chunkNY3YUCOW_cjs.hasUnsavedInput; }
217
+ get: function () { return chunk4NPCDS2X_cjs.hasUnsavedInput; }
208
218
  });
209
219
  Object.defineProperty(exports, "installReloadPolicy", {
210
220
  enumerable: true,
211
- get: function () { return chunkNY3YUCOW_cjs.installReloadPolicy; }
221
+ get: function () { return chunk4NPCDS2X_cjs.installReloadPolicy; }
212
222
  });
213
223
  Object.defineProperty(exports, "markBuildStale", {
214
224
  enumerable: true,
215
- get: function () { return chunkNY3YUCOW_cjs.markBuildStale; }
225
+ get: function () { return chunk4NPCDS2X_cjs.markBuildStale; }
216
226
  });
217
227
  Object.defineProperty(exports, "prefetchChunk", {
218
228
  enumerable: true,
219
- get: function () { return chunkNY3YUCOW_cjs.prefetchChunk; }
229
+ get: function () { return chunk4NPCDS2X_cjs.prefetchChunk; }
220
230
  });
221
231
  Object.defineProperty(exports, "requestReload", {
222
232
  enumerable: true,
223
- get: function () { return chunkNY3YUCOW_cjs.requestReload; }
233
+ get: function () { return chunk4NPCDS2X_cjs.requestReload; }
224
234
  });
225
235
  Object.defineProperty(exports, "workspaceKindColor", {
226
236
  enumerable: true,
227
- get: function () { return chunkNY3YUCOW_cjs.workspaceKindColor; }
237
+ get: function () { return chunk4NPCDS2X_cjs.workspaceKindColor; }
228
238
  });
229
239
  Object.defineProperty(exports, "workspaceKindMeta", {
230
240
  enumerable: true,
231
- get: function () { return chunkNY3YUCOW_cjs.workspaceKindMeta; }
241
+ get: function () { return chunk4NPCDS2X_cjs.workspaceKindMeta; }
232
242
  });
233
243
  Object.defineProperty(exports, "DEFAULT_SIDEBAR_LABELS", {
234
244
  enumerable: true,
235
- get: function () { return chunk325GVZE6_cjs.DEFAULT_SIDEBAR_LABELS; }
245
+ get: function () { return chunkQ6DQGGP4_cjs.DEFAULT_SIDEBAR_LABELS; }
236
246
  });
237
247
  Object.defineProperty(exports, "SHELL_START_INSET_VAR", {
238
248
  enumerable: true,
239
- get: function () { return chunk325GVZE6_cjs.SHELL_START_INSET_VAR; }
249
+ get: function () { return chunkQ6DQGGP4_cjs.SHELL_START_INSET_VAR; }
240
250
  });
241
251
  Object.defineProperty(exports, "Sidebar", {
242
252
  enumerable: true,
243
- get: function () { return chunk325GVZE6_cjs.Sidebar; }
253
+ get: function () { return chunkQ6DQGGP4_cjs.Sidebar; }
244
254
  });
245
255
  Object.defineProperty(exports, "SidebarBadgeRow", {
246
256
  enumerable: true,
247
- get: function () { return chunk325GVZE6_cjs.SidebarBadgeRow; }
257
+ get: function () { return chunkQ6DQGGP4_cjs.SidebarBadgeRow; }
248
258
  });
249
259
  Object.defineProperty(exports, "SidebarRowHoverContext", {
250
260
  enumerable: true,
251
- get: function () { return chunk325GVZE6_cjs.SidebarRowHoverContext; }
261
+ get: function () { return chunkQ6DQGGP4_cjs.SidebarRowHoverContext; }
252
262
  });
253
263
  Object.defineProperty(exports, "useShellStartInset", {
254
264
  enumerable: true,
255
- get: function () { return chunk325GVZE6_cjs.useShellStartInset; }
265
+ get: function () { return chunkQ6DQGGP4_cjs.useShellStartInset; }
256
266
  });
257
267
  Object.defineProperty(exports, "useSidebarContext", {
258
268
  enumerable: true,
259
- get: function () { return chunk325GVZE6_cjs.useSidebarContext; }
260
- });
261
- Object.defineProperty(exports, "DEFAULT_FILTER_FIELDS", {
262
- enumerable: true,
263
- get: function () { return chunk6UZC4XVV_cjs.DEFAULT_FILTER_FIELDS; }
264
- });
265
- Object.defineProperty(exports, "DEFAULT_FILTER_INPUT_LABELS", {
266
- enumerable: true,
267
- get: function () { return chunk6UZC4XVV_cjs.DEFAULT_FILTER_INPUT_LABELS; }
268
- });
269
- Object.defineProperty(exports, "FilterInput", {
270
- enumerable: true,
271
- get: function () { return chunk6UZC4XVV_cjs.FilterInput; }
272
- });
273
- Object.defineProperty(exports, "getInstallInstructions", {
274
- enumerable: true,
275
- get: function () { return chunkKKYNTWDU_cjs.getInstallInstructions; }
276
- });
277
- Object.defineProperty(exports, "isIosDevice", {
278
- enumerable: true,
279
- get: function () { return chunkKKYNTWDU_cjs.isIosDevice; }
280
- });
281
- Object.defineProperty(exports, "DEFAULT_TAB_HEADER_LABELS", {
282
- enumerable: true,
283
- get: function () { return chunkSJSGSHIT_cjs.DEFAULT_TAB_HEADER_LABELS; }
284
- });
285
- Object.defineProperty(exports, "TabHeader", {
286
- enumerable: true,
287
- get: function () { return chunkSJSGSHIT_cjs.TabHeader; }
288
- });
289
- Object.defineProperty(exports, "DEFAULT_DOCK_WIDTH", {
290
- enumerable: true,
291
- get: function () { return chunkCT3SLXB7_cjs.DEFAULT_DOCK_WIDTH; }
292
- });
293
- Object.defineProperty(exports, "Toaster", {
294
- enumerable: true,
295
- get: function () { return chunkCT3SLXB7_cjs.Toaster; }
269
+ get: function () { return chunkQ6DQGGP4_cjs.useSidebarContext; }
296
270
  });
297
271
  Object.defineProperty(exports, "STATUS_ROW_BASE_CLASS", {
298
272
  enumerable: true,
@@ -302,25 +276,25 @@ Object.defineProperty(exports, "STATUS_ROW_TONES", {
302
276
  enumerable: true,
303
277
  get: function () { return chunkDEXUL3T6_cjs.STATUS_ROW_TONES; }
304
278
  });
279
+ Object.defineProperty(exports, "ToolButton", {
280
+ enumerable: true,
281
+ get: function () { return chunkAFQTQC7A_cjs.ToolButton; }
282
+ });
305
283
  Object.defineProperty(exports, "DEFAULT_OVERLAY_ZONE_ID", {
306
284
  enumerable: true,
307
- get: function () { return chunk6WMMZLEV_cjs.DEFAULT_OVERLAY_ZONE_ID; }
285
+ get: function () { return chunkXJEXFEWG_cjs.DEFAULT_OVERLAY_ZONE_ID; }
308
286
  });
309
287
  Object.defineProperty(exports, "DEFAULT_PAGE_CONTAINER_PADDING", {
310
288
  enumerable: true,
311
- get: function () { return chunk6WMMZLEV_cjs.DEFAULT_PAGE_CONTAINER_PADDING; }
289
+ get: function () { return chunkXJEXFEWG_cjs.DEFAULT_PAGE_CONTAINER_PADDING; }
312
290
  });
313
291
  Object.defineProperty(exports, "PageContainer", {
314
292
  enumerable: true,
315
- get: function () { return chunk6WMMZLEV_cjs.PageContainer; }
293
+ get: function () { return chunkXJEXFEWG_cjs.PageContainer; }
316
294
  });
317
295
  Object.defineProperty(exports, "Shell", {
318
296
  enumerable: true,
319
- get: function () { return chunk6WMMZLEV_cjs.Shell; }
320
- });
321
- Object.defineProperty(exports, "ToolButton", {
322
- enumerable: true,
323
- get: function () { return chunk6WMMZLEV_cjs.ToolButton; }
297
+ get: function () { return chunkXJEXFEWG_cjs.Shell; }
324
298
  });
325
299
  Object.defineProperty(exports, "useDrawerBehavior", {
326
300
  enumerable: true,
@@ -354,5 +328,33 @@ Object.defineProperty(exports, "useMediaQuery", {
354
328
  enumerable: true,
355
329
  get: function () { return chunkFX3K6LNZ_cjs.useMediaQuery; }
356
330
  });
331
+ Object.defineProperty(exports, "DEFAULT_FILTER_FIELDS", {
332
+ enumerable: true,
333
+ get: function () { return chunk6UZC4XVV_cjs.DEFAULT_FILTER_FIELDS; }
334
+ });
335
+ Object.defineProperty(exports, "DEFAULT_FILTER_INPUT_LABELS", {
336
+ enumerable: true,
337
+ get: function () { return chunk6UZC4XVV_cjs.DEFAULT_FILTER_INPUT_LABELS; }
338
+ });
339
+ Object.defineProperty(exports, "FilterInput", {
340
+ enumerable: true,
341
+ get: function () { return chunk6UZC4XVV_cjs.FilterInput; }
342
+ });
343
+ Object.defineProperty(exports, "getInstallInstructions", {
344
+ enumerable: true,
345
+ get: function () { return chunkKKYNTWDU_cjs.getInstallInstructions; }
346
+ });
347
+ Object.defineProperty(exports, "isIosDevice", {
348
+ enumerable: true,
349
+ get: function () { return chunkKKYNTWDU_cjs.isIosDevice; }
350
+ });
351
+ Object.defineProperty(exports, "DEFAULT_TAB_HEADER_LABELS", {
352
+ enumerable: true,
353
+ get: function () { return chunkSJSGSHIT_cjs.DEFAULT_TAB_HEADER_LABELS; }
354
+ });
355
+ Object.defineProperty(exports, "TabHeader", {
356
+ enumerable: true,
357
+ get: function () { return chunkSJSGSHIT_cjs.TabHeader; }
358
+ });
357
359
  //# sourceMappingURL=index.cjs.map
358
360
  //# sourceMappingURL=index.cjs.map
@@ -17,6 +17,8 @@ declare class PanelWindowManager implements PanelWindows {
17
17
  private readonly defaultTitle;
18
18
  constructor(defaultTitle?: string);
19
19
  private windows;
20
+ /** Counts the windows opened, for their browser names. */
21
+ private opened;
20
22
  createPopupWindow(panelId: string, onClose?: () => void, title?: string): string | null;
21
23
  getWindow(windowId: string): Window | null;
22
24
  getRootElement(windowId: string): HTMLElement | null;
@@ -5,6 +5,8 @@ class PanelWindowManager {
5
5
  }
6
6
  defaultTitle;
7
7
  windows = /* @__PURE__ */ new Map();
8
+ /** Counts the windows opened, for their browser names. */
9
+ opened = 0;
8
10
  createPopupWindow(panelId, onClose, title) {
9
11
  const windowId = `panel-window-${panelId}`;
10
12
  if (this.windows.has(windowId)) {
@@ -27,7 +29,9 @@ class PanelWindowManager {
27
29
  const top = currentTop;
28
30
  const popup = window.open(
29
31
  "",
30
- windowId,
32
+ // A browser window name of its own: one closed a moment ago (a panel remounted, as React's
33
+ // StrictMode does) may still be closing, and reusing its name would hand back that window.
34
+ `${windowId}-${++this.opened}`,
31
35
  `width=${popupWidth},height=${popupHeight},left=${left},top=${top},scrollbars=yes,resizable=yes,menubar=no,toolbar=no,location=no,status=no`
32
36
  );
33
37
  if (!popup) {
@@ -95,8 +99,9 @@ class PanelWindowManager {
95
99
  if (popup.closed) {
96
100
  clearInterval(closeCheckInterval);
97
101
  const entry = this.windows.get(windowId);
102
+ if (entry?.window !== popup) return;
98
103
  this.windows.delete(windowId);
99
- entry?.onClose?.();
104
+ entry.onClose?.();
100
105
  }
101
106
  }, 200);
102
107
  return windowId;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/shell/panel-windows.ts"],
4
- "sourcesContent": ["/**\n * Window Manager for Pop-out Panels\n *\n * Handles creating, managing, and communicating with popup windows\n */\n\ninterface PopupWindow {\n id: string\n window: Window\n panelId: string\n rootElement: HTMLElement | null\n onClose?: () => void\n}\n\n/** Window lifecycle port; hosts may share or replace the browser implementation. */\nexport interface PanelWindows {\n createPopupWindow(panelId: string, onClose?: () => void, title?: string): string | null\n getWindow(windowId: string): Window | null\n getRootElement(windowId: string): HTMLElement | null\n focusPanelWindow(panelId: string): boolean\n clearOnClose(windowId: string): void\n closeWindow(windowId: string): void\n closeAllWindows(): void\n}\n\nclass PanelWindowManager implements PanelWindows {\n constructor(private readonly defaultTitle = 'Panel') {}\n private windows = new Map<string, PopupWindow>()\n\n createPopupWindow(panelId: string, onClose?: () => void, title?: string): string | null {\n const windowId = `panel-window-${panelId}`\n\n // Check if window already exists\n if (this.windows.has(windowId)) {\n const existing = this.windows.get(windowId)\n if (existing && !existing.window.closed) {\n existing.window.focus()\n return windowId\n } else {\n // Clean up closed window\n this.windows.delete(windowId)\n }\n }\n\n // Position popup in the right half of the screen\n const currentWidth = window.outerWidth\n const currentHeight = window.outerHeight\n const currentLeft = window.screenX ?? window.screenLeft ?? 0\n const currentTop = window.screenY ?? window.screenTop ?? 0\n\n // Calculate popup position (right half)\n const halfWidth = Math.floor(currentWidth / 2)\n const popupWidth = halfWidth\n const popupHeight = currentHeight\n const left = currentLeft + halfWidth\n const top = currentTop\n\n const popup = window.open(\n '',\n windowId,\n `width=${popupWidth},height=${popupHeight},left=${left},top=${top},scrollbars=yes,resizable=yes,menubar=no,toolbar=no,location=no,status=no`\n )\n\n if (!popup) {\n console.error('Failed to create popup window - popup blocked?')\n return null\n }\n\n // Set up the popup window HTML with proper CSS links\n const mainDocument = document\n const stylesheets = Array.from(\n mainDocument.head.querySelectorAll('link[rel=\"stylesheet\"], style')\n )\n .map((el) => el.outerHTML)\n .join('\\n')\n\n popup.document.write(`\n <!DOCTYPE html>\n <html lang=\"en\">\n <head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title></title>\n <!-- about:blank has no base, so copied @font-face / asset URLs (e.g.\n /assets/font.woff2) would resolve against nothing and render as\n tofu squares. Anchor relative URLs to the app origin. -->\n <base href=\"${window.location.origin}/\">\n ${stylesheets}\n <style>\n body {\n margin: 0;\n padding: 0;\n font-family: system-ui, -apple-system, sans-serif;\n }\n #panel-root {\n width: 100%;\n height: 100vh;\n overflow: hidden;\n }\n * {\n box-sizing: border-box;\n }\n </style>\n </head>\n <body>\n <div id=\"panel-root\"></div>\n </body>\n </html>\n `)\n popup.document.close()\n // A host title is text, even when it contains HTML delimiters.\n popup.document.title = title || this.defaultTitle\n\n // Belt-and-suspenders: re-register the parent's already-loaded web fonts in\n // the popup's FontFaceSet, so glyphs render even if a copied @font-face\n // doesn't re-fetch. Best-effort \u2014 engines that reject a cross-document add\n // just fall back to the <base>-anchored @font-face rules above.\n try {\n mainDocument.fonts.forEach((font) => {\n try {\n popup.document.fonts.add(font)\n } catch {\n /* ignore per-font failures */\n }\n })\n } catch {\n /* FontFaceSet unavailable \u2014 ignore */\n }\n\n // Get root element after DOM is ready\n const rootElement = popup.document.getElementById('panel-root')\n\n // Store window reference\n const popupWindow: PopupWindow = {\n id: windowId,\n window: popup,\n panelId,\n rootElement,\n onClose,\n }\n this.windows.set(windowId, popupWindow)\n\n // Handle window close \u2014 read onClose from the map entry so clearOnClose() works\n const closeCheckInterval = setInterval(() => {\n if (popup.closed) {\n clearInterval(closeCheckInterval)\n const entry = this.windows.get(windowId)\n this.windows.delete(windowId)\n entry?.onClose?.()\n }\n }, 200)\n\n return windowId\n }\n\n getWindow(windowId: string): Window | null {\n const popup = this.windows.get(windowId)\n return popup && !popup.window.closed ? popup.window : null\n }\n\n getRootElement(windowId: string): HTMLElement | null {\n const popup = this.windows.get(windowId)\n return popup && !popup.window.closed ? popup.rootElement : null\n }\n\n /** Focus the popup window for a given panel ID. Returns true if focused. */\n focusPanelWindow(panelId: string): boolean {\n const windowId = `panel-window-panel-${panelId}`\n const popup = this.windows.get(windowId)\n if (popup && !popup.window.closed) {\n popup.window.focus()\n return true\n }\n return false\n }\n\n /** Remove the onClose callback so it won't fire when the window is closed programmatically. */\n clearOnClose(windowId: string): void {\n const popup = this.windows.get(windowId)\n if (popup) {\n popup.onClose = undefined\n }\n }\n\n closeWindow(windowId: string): void {\n const popup = this.windows.get(windowId)\n if (popup && !popup.window.closed) {\n popup.window.close()\n }\n this.windows.delete(windowId)\n }\n\n closeAllWindows(): void {\n for (const [, popup] of this.windows) {\n if (!popup.window.closed) {\n popup.window.close()\n }\n }\n this.windows.clear()\n }\n}\n\n/** A window registry shared by the host's panel controls and portal layer. */\nexport function createPanelWindowManager(options: { defaultTitle?: string } = {}) {\n return new PanelWindowManager(options.defaultTitle)\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * Window Manager for Pop-out Panels\n *\n * Handles creating, managing, and communicating with popup windows\n */\n\ninterface PopupWindow {\n id: string\n window: Window\n panelId: string\n rootElement: HTMLElement | null\n onClose?: () => void\n}\n\n/** Window lifecycle port; hosts may share or replace the browser implementation. */\nexport interface PanelWindows {\n createPopupWindow(panelId: string, onClose?: () => void, title?: string): string | null\n getWindow(windowId: string): Window | null\n getRootElement(windowId: string): HTMLElement | null\n focusPanelWindow(panelId: string): boolean\n clearOnClose(windowId: string): void\n closeWindow(windowId: string): void\n closeAllWindows(): void\n}\n\nclass PanelWindowManager implements PanelWindows {\n constructor(private readonly defaultTitle = 'Panel') {}\n private windows = new Map<string, PopupWindow>()\n /** Counts the windows opened, for their browser names. */\n private opened = 0\n\n createPopupWindow(panelId: string, onClose?: () => void, title?: string): string | null {\n const windowId = `panel-window-${panelId}`\n\n // Check if window already exists\n if (this.windows.has(windowId)) {\n const existing = this.windows.get(windowId)\n if (existing && !existing.window.closed) {\n existing.window.focus()\n return windowId\n } else {\n // Clean up closed window\n this.windows.delete(windowId)\n }\n }\n\n // Position popup in the right half of the screen\n const currentWidth = window.outerWidth\n const currentHeight = window.outerHeight\n const currentLeft = window.screenX ?? window.screenLeft ?? 0\n const currentTop = window.screenY ?? window.screenTop ?? 0\n\n // Calculate popup position (right half)\n const halfWidth = Math.floor(currentWidth / 2)\n const popupWidth = halfWidth\n const popupHeight = currentHeight\n const left = currentLeft + halfWidth\n const top = currentTop\n\n const popup = window.open(\n '',\n // A browser window name of its own: one closed a moment ago (a panel remounted, as React's\n // StrictMode does) may still be closing, and reusing its name would hand back that window.\n `${windowId}-${++this.opened}`,\n `width=${popupWidth},height=${popupHeight},left=${left},top=${top},scrollbars=yes,resizable=yes,menubar=no,toolbar=no,location=no,status=no`\n )\n\n if (!popup) {\n console.error('Failed to create popup window - popup blocked?')\n return null\n }\n\n // Set up the popup window HTML with proper CSS links\n const mainDocument = document\n const stylesheets = Array.from(\n mainDocument.head.querySelectorAll('link[rel=\"stylesheet\"], style')\n )\n .map((el) => el.outerHTML)\n .join('\\n')\n\n popup.document.write(`\n <!DOCTYPE html>\n <html lang=\"en\">\n <head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title></title>\n <!-- about:blank has no base, so copied @font-face / asset URLs (e.g.\n /assets/font.woff2) would resolve against nothing and render as\n tofu squares. Anchor relative URLs to the app origin. -->\n <base href=\"${window.location.origin}/\">\n ${stylesheets}\n <style>\n body {\n margin: 0;\n padding: 0;\n font-family: system-ui, -apple-system, sans-serif;\n }\n #panel-root {\n width: 100%;\n height: 100vh;\n overflow: hidden;\n }\n * {\n box-sizing: border-box;\n }\n </style>\n </head>\n <body>\n <div id=\"panel-root\"></div>\n </body>\n </html>\n `)\n popup.document.close()\n // A host title is text, even when it contains HTML delimiters.\n popup.document.title = title || this.defaultTitle\n\n // Belt-and-suspenders: re-register the parent's already-loaded web fonts in\n // the popup's FontFaceSet, so glyphs render even if a copied @font-face\n // doesn't re-fetch. Best-effort \u2014 engines that reject a cross-document add\n // just fall back to the <base>-anchored @font-face rules above.\n try {\n mainDocument.fonts.forEach((font) => {\n try {\n popup.document.fonts.add(font)\n } catch {\n /* ignore per-font failures */\n }\n })\n } catch {\n /* FontFaceSet unavailable \u2014 ignore */\n }\n\n // Get root element after DOM is ready\n const rootElement = popup.document.getElementById('panel-root')\n\n // Store window reference\n const popupWindow: PopupWindow = {\n id: windowId,\n window: popup,\n panelId,\n rootElement,\n onClose,\n }\n this.windows.set(windowId, popupWindow)\n\n // Handle window close \u2014 read onClose from the map entry so clearOnClose() works\n const closeCheckInterval = setInterval(() => {\n if (popup.closed) {\n clearInterval(closeCheckInterval)\n const entry = this.windows.get(windowId)\n // The panel may have a newer window by now (closed and reopened): leave that one be.\n if (entry?.window !== popup) return\n this.windows.delete(windowId)\n entry.onClose?.()\n }\n }, 200)\n\n return windowId\n }\n\n getWindow(windowId: string): Window | null {\n const popup = this.windows.get(windowId)\n return popup && !popup.window.closed ? popup.window : null\n }\n\n getRootElement(windowId: string): HTMLElement | null {\n const popup = this.windows.get(windowId)\n return popup && !popup.window.closed ? popup.rootElement : null\n }\n\n /** Focus the popup window for a given panel ID. Returns true if focused. */\n focusPanelWindow(panelId: string): boolean {\n const windowId = `panel-window-panel-${panelId}`\n const popup = this.windows.get(windowId)\n if (popup && !popup.window.closed) {\n popup.window.focus()\n return true\n }\n return false\n }\n\n /** Remove the onClose callback so it won't fire when the window is closed programmatically. */\n clearOnClose(windowId: string): void {\n const popup = this.windows.get(windowId)\n if (popup) {\n popup.onClose = undefined\n }\n }\n\n closeWindow(windowId: string): void {\n const popup = this.windows.get(windowId)\n if (popup && !popup.window.closed) {\n popup.window.close()\n }\n this.windows.delete(windowId)\n }\n\n closeAllWindows(): void {\n for (const [, popup] of this.windows) {\n if (!popup.window.closed) {\n popup.window.close()\n }\n }\n this.windows.clear()\n }\n}\n\n/** A window registry shared by the host's panel controls and portal layer. */\nexport function createPanelWindowManager(options: { defaultTitle?: string } = {}) {\n return new PanelWindowManager(options.defaultTitle)\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }