@arbidocs/blocks 0.5.35 → 0.5.37

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 (165) hide show
  1. package/README.md +22 -0
  2. package/dist/{ConnectedCallDock-V7DPSE6X.cjs → ConnectedCallDock-2LMIR4ID.cjs} +17 -17
  3. package/dist/{ConnectedCallDock-V7DPSE6X.cjs.map → ConnectedCallDock-2LMIR4ID.cjs.map} +1 -1
  4. package/dist/{ConnectedCallDock-CT3D6LLI.js → ConnectedCallDock-2NYM46HU.js} +8 -8
  5. package/dist/{ConnectedCallDock-CT3D6LLI.js.map → ConnectedCallDock-2NYM46HU.js.map} +1 -1
  6. package/dist/{ConnectedCallRoom-TNOCSTX2.cjs → ConnectedCallRoom-26PBMTCC.cjs} +9 -9
  7. package/dist/{ConnectedCallRoom-TNOCSTX2.cjs.map → ConnectedCallRoom-26PBMTCC.cjs.map} +1 -1
  8. package/dist/{ConnectedCallRoom-A27AM7IQ.js → ConnectedCallRoom-QJ2UV6GV.js} +8 -8
  9. package/dist/{ConnectedCallRoom-A27AM7IQ.js.map → ConnectedCallRoom-QJ2UV6GV.js.map} +1 -1
  10. package/dist/{ConnectedNativeDocxComparison-H2OZMWHT.cjs → ConnectedNativeDocxComparison-5MN7PVRE.cjs} +13 -13
  11. package/dist/{ConnectedNativeDocxComparison-H2OZMWHT.cjs.map → ConnectedNativeDocxComparison-5MN7PVRE.cjs.map} +1 -1
  12. package/dist/{ConnectedNativeDocxComparison-RWKFPJPJ.js → ConnectedNativeDocxComparison-GHOEFJUN.js} +12 -12
  13. package/dist/{ConnectedNativeDocxComparison-RWKFPJPJ.js.map → ConnectedNativeDocxComparison-GHOEFJUN.js.map} +1 -1
  14. package/dist/{ConnectedNativeDocxEditor-43BI5LN6.js → ConnectedNativeDocxEditor-HWPSWU2A.js} +11 -11
  15. package/dist/{ConnectedNativeDocxEditor-43BI5LN6.js.map → ConnectedNativeDocxEditor-HWPSWU2A.js.map} +1 -1
  16. package/dist/{ConnectedNativeDocxEditor-6DQEM6SD.cjs → ConnectedNativeDocxEditor-VA7476NF.cjs} +13 -13
  17. package/dist/{ConnectedNativeDocxEditor-6DQEM6SD.cjs.map → ConnectedNativeDocxEditor-VA7476NF.cjs.map} +1 -1
  18. package/dist/{ConnectedStreamedWordArtifact-TEB332E3.js → ConnectedStreamedWordArtifact-KZUZB47X.js} +12 -12
  19. package/dist/ConnectedStreamedWordArtifact-KZUZB47X.js.map +1 -0
  20. package/dist/{ConnectedStreamedWordArtifact-3VKYIG6C.cjs → ConnectedStreamedWordArtifact-UMSTUZBY.cjs} +13 -13
  21. package/dist/ConnectedStreamedWordArtifact-UMSTUZBY.cjs.map +1 -0
  22. package/dist/{WorkspaceTableView-ATZHON74.cjs → WorkspaceTableView-DYXHUIRA.cjs} +9 -9
  23. package/dist/{WorkspaceTableView-ATZHON74.cjs.map → WorkspaceTableView-DYXHUIRA.cjs.map} +1 -1
  24. package/dist/{WorkspaceTableView-7APDRIPL.js → WorkspaceTableView-HXSBJY42.js} +7 -7
  25. package/dist/{WorkspaceTableView-7APDRIPL.js.map → WorkspaceTableView-HXSBJY42.js.map} +1 -1
  26. package/dist/agents/index.cjs +401 -401
  27. package/dist/agents/index.js +10 -10
  28. package/dist/calls/index.cjs +131 -131
  29. package/dist/calls/index.js +9 -9
  30. package/dist/chat/index.cjs +81 -81
  31. package/dist/chat/index.js +3 -3
  32. package/dist/{chunk-NUV5F6MM.js → chunk-2VEBUYEJ.js} +3 -3
  33. package/dist/{chunk-NUV5F6MM.js.map → chunk-2VEBUYEJ.js.map} +1 -1
  34. package/dist/{chunk-EGSSLWNZ.cjs → chunk-32ZIHUXE.cjs} +3 -3
  35. package/dist/{chunk-EGSSLWNZ.cjs.map → chunk-32ZIHUXE.cjs.map} +1 -1
  36. package/dist/{chunk-24H5WTGM.js → chunk-3ON5DJLR.js} +4 -4
  37. package/dist/{chunk-24H5WTGM.js.map → chunk-3ON5DJLR.js.map} +1 -1
  38. package/dist/{chunk-6EQSP77K.cjs → chunk-7P2IL7RX.cjs} +5 -5
  39. package/dist/{chunk-6EQSP77K.cjs.map → chunk-7P2IL7RX.cjs.map} +1 -1
  40. package/dist/{chunk-LNYEYR7W.cjs → chunk-7W7TPWSZ.cjs} +3 -3
  41. package/dist/{chunk-LNYEYR7W.cjs.map → chunk-7W7TPWSZ.cjs.map} +1 -1
  42. package/dist/{chunk-EFSL4O3B.cjs → chunk-ABKRLMWN.cjs} +5 -5
  43. package/dist/{chunk-EFSL4O3B.cjs.map → chunk-ABKRLMWN.cjs.map} +1 -1
  44. package/dist/{chunk-YPR4FSDJ.js → chunk-APPHGHMM.js} +3 -3
  45. package/dist/{chunk-YPR4FSDJ.js.map → chunk-APPHGHMM.js.map} +1 -1
  46. package/dist/{chunk-AL7EXOX5.js → chunk-CXY2ELL5.js} +3 -3
  47. package/dist/{chunk-AL7EXOX5.js.map → chunk-CXY2ELL5.js.map} +1 -1
  48. package/dist/{chunk-2C3I27VI.js → chunk-EHRT5M5F.js} +3 -3
  49. package/dist/{chunk-2C3I27VI.js.map → chunk-EHRT5M5F.js.map} +1 -1
  50. package/dist/{chunk-3ZLNI7ZA.cjs → chunk-EZJOJFY2.cjs} +3 -3
  51. package/dist/{chunk-3ZLNI7ZA.cjs.map → chunk-EZJOJFY2.cjs.map} +1 -1
  52. package/dist/{chunk-PRY52BW5.js → chunk-GI5ITZ53.js} +4 -4
  53. package/dist/{chunk-PRY52BW5.js.map → chunk-GI5ITZ53.js.map} +1 -1
  54. package/dist/{chunk-RBHVIVWP.js → chunk-GMECFWVT.js} +81 -81
  55. package/dist/chunk-GMECFWVT.js.map +1 -0
  56. package/dist/{chunk-S3YRRD54.js → chunk-GMZ2XFQQ.js} +3 -3
  57. package/dist/{chunk-S3YRRD54.js.map → chunk-GMZ2XFQQ.js.map} +1 -1
  58. package/dist/{chunk-VMLEISRZ.cjs → chunk-H3JKC55K.cjs} +9 -9
  59. package/dist/{chunk-VMLEISRZ.cjs.map → chunk-H3JKC55K.cjs.map} +1 -1
  60. package/dist/{chunk-FHB4G77H.js → chunk-IC2BXIUT.js} +3 -3
  61. package/dist/{chunk-FHB4G77H.js.map → chunk-IC2BXIUT.js.map} +1 -1
  62. package/dist/{chunk-PUX4M22Q.cjs → chunk-IYW6Q33D.cjs} +50 -50
  63. package/dist/{chunk-PUX4M22Q.cjs.map → chunk-IYW6Q33D.cjs.map} +1 -1
  64. package/dist/{chunk-4DKI37QQ.js → chunk-JYASRZUQ.js} +7 -7
  65. package/dist/{chunk-4DKI37QQ.js.map → chunk-JYASRZUQ.js.map} +1 -1
  66. package/dist/{chunk-G4VUVOHZ.cjs → chunk-K7OF4KGP.cjs} +82 -82
  67. package/dist/chunk-K7OF4KGP.cjs.map +1 -0
  68. package/dist/{chunk-Q7BS7EOU.cjs → chunk-KFQ6E6LE.cjs} +32 -28
  69. package/dist/chunk-KFQ6E6LE.cjs.map +1 -0
  70. package/dist/{chunk-N3HVTMQK.js → chunk-L7IBURSP.js} +3 -3
  71. package/dist/{chunk-N3HVTMQK.js.map → chunk-L7IBURSP.js.map} +1 -1
  72. package/dist/{chunk-FEVJA4BP.cjs → chunk-LPGFODB4.cjs} +3 -3
  73. package/dist/{chunk-FEVJA4BP.cjs.map → chunk-LPGFODB4.cjs.map} +1 -1
  74. package/dist/{chunk-VKY4SQMH.js → chunk-LXF22VRI.js} +4 -4
  75. package/dist/{chunk-VKY4SQMH.js.map → chunk-LXF22VRI.js.map} +1 -1
  76. package/dist/{chunk-XFSEPGF7.cjs → chunk-ME3R44JN.cjs} +4 -4
  77. package/dist/{chunk-XFSEPGF7.cjs.map → chunk-ME3R44JN.cjs.map} +1 -1
  78. package/dist/{chunk-P6MVDOCL.js → chunk-MJYGHJ4Y.js} +3 -3
  79. package/dist/{chunk-P6MVDOCL.js.map → chunk-MJYGHJ4Y.js.map} +1 -1
  80. package/dist/{chunk-WALADS2S.cjs → chunk-N2SUDWY2.cjs} +3 -3
  81. package/dist/{chunk-WALADS2S.cjs.map → chunk-N2SUDWY2.cjs.map} +1 -1
  82. package/dist/{chunk-ICCBNHPU.js → chunk-NNUNS47F.js} +3 -3
  83. package/dist/{chunk-ICCBNHPU.js.map → chunk-NNUNS47F.js.map} +1 -1
  84. package/dist/{chunk-NOKTUWTN.cjs → chunk-OJTXFIXU.cjs} +4 -4
  85. package/dist/{chunk-NOKTUWTN.cjs.map → chunk-OJTXFIXU.cjs.map} +1 -1
  86. package/dist/{chunk-LTEDORG3.js → chunk-ORBXJ4IT.js} +221 -6
  87. package/dist/chunk-ORBXJ4IT.js.map +1 -0
  88. package/dist/{chunk-FSEZEVWZ.cjs → chunk-OXIGJYMO.cjs} +220 -3
  89. package/dist/chunk-OXIGJYMO.cjs.map +1 -0
  90. package/dist/{chunk-XHW35TC7.js → chunk-PPHUOWCJ.js} +33 -29
  91. package/dist/chunk-PPHUOWCJ.js.map +1 -0
  92. package/dist/{chunk-H5BFOVVL.cjs → chunk-RVCQE66I.cjs} +5 -5
  93. package/dist/{chunk-H5BFOVVL.cjs.map → chunk-RVCQE66I.cjs.map} +1 -1
  94. package/dist/{chunk-7CHI36EP.js → chunk-T7O73MX2.js} +5 -5
  95. package/dist/{chunk-7CHI36EP.js.map → chunk-T7O73MX2.js.map} +1 -1
  96. package/dist/{chunk-JKMV4QNV.cjs → chunk-U7IEC2EM.cjs} +74 -74
  97. package/dist/{chunk-JKMV4QNV.cjs.map → chunk-U7IEC2EM.cjs.map} +1 -1
  98. package/dist/{chunk-FY4C7HU5.cjs → chunk-UCCYCT3R.cjs} +16 -16
  99. package/dist/{chunk-FY4C7HU5.cjs.map → chunk-UCCYCT3R.cjs.map} +1 -1
  100. package/dist/{chunk-RH4XIABH.js → chunk-UHYO2E25.js} +3 -3
  101. package/dist/{chunk-RH4XIABH.js.map → chunk-UHYO2E25.js.map} +1 -1
  102. package/dist/{chunk-2QDNQM63.cjs → chunk-UKG4DDLI.cjs} +10 -10
  103. package/dist/{chunk-2QDNQM63.cjs.map → chunk-UKG4DDLI.cjs.map} +1 -1
  104. package/dist/{chunk-VPWCARVO.js → chunk-VP5TGUBY.js} +5 -5
  105. package/dist/{chunk-VPWCARVO.js.map → chunk-VP5TGUBY.js.map} +1 -1
  106. package/dist/{chunk-MLHOG7YH.js → chunk-VWX5UECZ.js} +3 -3
  107. package/dist/{chunk-MLHOG7YH.js.map → chunk-VWX5UECZ.js.map} +1 -1
  108. package/dist/{chunk-H6K7EWL2.cjs → chunk-WDMWWBPB.cjs} +7 -7
  109. package/dist/{chunk-H6K7EWL2.cjs.map → chunk-WDMWWBPB.cjs.map} +1 -1
  110. package/dist/{chunk-BIWPXSGS.cjs → chunk-YRWMYVHU.cjs} +20 -20
  111. package/dist/{chunk-BIWPXSGS.cjs.map → chunk-YRWMYVHU.cjs.map} +1 -1
  112. package/dist/{chunk-EZSYYENN.js → chunk-ZXU2TKUV.js} +6 -6
  113. package/dist/{chunk-EZSYYENN.js.map → chunk-ZXU2TKUV.js.map} +1 -1
  114. package/dist/{chunk-BRYRZOS3.cjs → chunk-ZZ76AUGX.cjs} +4 -4
  115. package/dist/{chunk-BRYRZOS3.cjs.map → chunk-ZZ76AUGX.cjs.map} +1 -1
  116. package/dist/collaboration/index.cjs +1 -1
  117. package/dist/collaboration/index.js +1 -1
  118. package/dist/connect/docx.cjs +15 -15
  119. package/dist/connect/docx.js +11 -11
  120. package/dist/connect/index.cjs +2866 -2606
  121. package/dist/connect/index.cjs.map +1 -1
  122. package/dist/connect/index.d.ts +1 -0
  123. package/dist/connect/index.js +2090 -1832
  124. package/dist/connect/index.js.map +1 -1
  125. package/dist/connect/viewer.cjs +63 -63
  126. package/dist/connect/viewer.js +16 -16
  127. package/dist/connection/workspace-form/ConnectedProjectSelector.d.ts +15 -0
  128. package/dist/connection/workspace-form/ConnectedWorkspaceFormModal.d.ts +11 -0
  129. package/dist/connection/workspace-form/WorkspaceCreateForm.d.ts +15 -0
  130. package/dist/connection/workspace-form/index.d.ts +3 -0
  131. package/dist/connection/workspace-form/types.d.ts +28 -0
  132. package/dist/connection/workspace-list/ConnectedWorkspaceList.d.ts +4 -1
  133. package/dist/connection/workspace-list/useConnectedWorkspaceList.d.ts +12 -36
  134. package/dist/facts/index.cjs +2 -2
  135. package/dist/facts/index.js +2 -2
  136. package/dist/files/index.cjs +223 -223
  137. package/dist/files/index.js +3 -3
  138. package/dist/home/index.cjs +29 -29
  139. package/dist/home/index.js +4 -4
  140. package/dist/index.cjs +1660 -1652
  141. package/dist/index.js +22 -22
  142. package/dist/settings/index.cjs +156 -156
  143. package/dist/settings/index.js +3 -3
  144. package/dist/shell/DockZone.d.ts +27 -0
  145. package/dist/shell/PanelModeSwitcher.d.ts +30 -0
  146. package/dist/shell/index.cjs +78 -70
  147. package/dist/shell/index.d.ts +2 -0
  148. package/dist/shell/index.js +4 -4
  149. package/dist/studio/index.cjs +8 -8
  150. package/dist/studio/index.js +7 -7
  151. package/dist/workflow-canvas/index.cjs +23 -23
  152. package/dist/workflow-canvas/index.js +10 -10
  153. package/dist/workspaces/WorkspaceFormParts.d.ts +3 -2
  154. package/dist/workspaces/index.cjs +27 -27
  155. package/dist/workspaces/index.js +2 -2
  156. package/node_modules/@arbidocs/coedit/package.json +1 -1
  157. package/package.json +5 -5
  158. package/dist/ConnectedStreamedWordArtifact-3VKYIG6C.cjs.map +0 -1
  159. package/dist/ConnectedStreamedWordArtifact-TEB332E3.js.map +0 -1
  160. package/dist/chunk-FSEZEVWZ.cjs.map +0 -1
  161. package/dist/chunk-G4VUVOHZ.cjs.map +0 -1
  162. package/dist/chunk-LTEDORG3.js.map +0 -1
  163. package/dist/chunk-Q7BS7EOU.cjs.map +0 -1
  164. package/dist/chunk-RBHVIVWP.js.map +0 -1
  165. package/dist/chunk-XHW35TC7.js.map +0 -1
@@ -2,9 +2,9 @@
2
2
  'use strict';
3
3
 
4
4
  var chunkQWKT4DO6_cjs = require('./chunk-QWKT4DO6.cjs');
5
+ var chunkB6MVQCXW_cjs = require('./chunk-B6MVQCXW.cjs');
5
6
  var chunkAHDJXIUB_cjs = require('./chunk-AHDJXIUB.cjs');
6
7
  var chunkX6MGM3LH_cjs = require('./chunk-X6MGM3LH.cjs');
7
- var chunkB6MVQCXW_cjs = require('./chunk-B6MVQCXW.cjs');
8
8
  var chunkFX3K6LNZ_cjs = require('./chunk-FX3K6LNZ.cjs');
9
9
  var chunkMHVNT4J3_cjs = require('./chunk-MHVNT4J3.cjs');
10
10
  var react = require('react');
@@ -1685,6 +1685,221 @@ function SplitLayout({
1685
1685
  }
1686
1686
  );
1687
1687
  }
1688
+ var MIN_DOCK_PX = 200;
1689
+ var MIN_MAIN_PX = 300;
1690
+ var DEFAULT_DOCK_PX = 544;
1691
+ var MOBILE_BREAKPOINT_PX = 640;
1692
+ function DockZone({ children, ...props }) {
1693
+ const [hasDockedContent, setHasDockedContent] = react.useState(false);
1694
+ const [dockWidth, setDockWidth] = react.useState(null);
1695
+ const [isResizing, setIsResizing] = react.useState(false);
1696
+ const [dragPosition, setDragPosition] = react.useState(null);
1697
+ const [containerWidth, setContainerWidth] = react.useState(0);
1698
+ const containerRef = react.useRef(null);
1699
+ const dockZoneRef = react.useRef(null);
1700
+ react.useEffect(() => {
1701
+ const el = containerRef.current;
1702
+ if (!el) return;
1703
+ const observer = new ResizeObserver((entries) => {
1704
+ const width = entries[0]?.contentRect.width;
1705
+ if (width !== void 0) setContainerWidth(width);
1706
+ });
1707
+ observer.observe(el);
1708
+ return () => observer.disconnect();
1709
+ }, []);
1710
+ const isMobile = containerWidth > 0 && containerWidth < MOBILE_BREAKPOINT_PX;
1711
+ react.useEffect(() => {
1712
+ const el = dockZoneRef.current;
1713
+ if (!el) return;
1714
+ const update = () => {
1715
+ const hasChildren = el.children.length > 0;
1716
+ setHasDockedContent(hasChildren);
1717
+ if (hasChildren) {
1718
+ const requestedWidth = el.firstElementChild?.getAttribute("data-dock-width");
1719
+ if (requestedWidth) {
1720
+ setDockWidth(parseInt(requestedWidth, 10));
1721
+ }
1722
+ }
1723
+ };
1724
+ const observer = new MutationObserver(update);
1725
+ update();
1726
+ observer.observe(el, { childList: true });
1727
+ return () => observer.disconnect();
1728
+ }, []);
1729
+ const handleMouseDown = react.useCallback(() => {
1730
+ setIsResizing(true);
1731
+ setDragPosition(null);
1732
+ }, []);
1733
+ const handleMouseMove = react.useCallback(
1734
+ (e) => {
1735
+ if (!isResizing || !containerRef.current) return;
1736
+ const rect = containerRef.current.getBoundingClientRect();
1737
+ const x = e.clientX - rect.left;
1738
+ const clamped = Math.min(Math.max(x, MIN_MAIN_PX), rect.width - MIN_DOCK_PX);
1739
+ setDragPosition(clamped);
1740
+ },
1741
+ [isResizing]
1742
+ );
1743
+ const handleMouseUp = react.useCallback(() => {
1744
+ if (dragPosition !== null && containerRef.current) {
1745
+ const containerWidth2 = containerRef.current.getBoundingClientRect().width;
1746
+ setDockWidth(containerWidth2 - dragPosition);
1747
+ }
1748
+ setIsResizing(false);
1749
+ setDragPosition(null);
1750
+ }, [dragPosition]);
1751
+ react.useEffect(() => {
1752
+ if (!isResizing) return;
1753
+ document.addEventListener("mousemove", handleMouseMove);
1754
+ document.addEventListener("mouseup", handleMouseUp);
1755
+ document.body.style.cursor = "col-resize";
1756
+ document.body.style.userSelect = "none";
1757
+ return () => {
1758
+ document.removeEventListener("mousemove", handleMouseMove);
1759
+ document.removeEventListener("mouseup", handleMouseUp);
1760
+ document.body.style.cursor = "";
1761
+ document.body.style.userSelect = "";
1762
+ };
1763
+ }, [isResizing, handleMouseMove, handleMouseUp]);
1764
+ const effectiveDockWidth = hasDockedContent && containerWidth > 0 ? isMobile ? containerWidth : Math.min(
1765
+ Math.max(dockWidth ?? DEFAULT_DOCK_PX, MIN_DOCK_PX),
1766
+ containerWidth - MIN_MAIN_PX
1767
+ ) : 0;
1768
+ const mainHidden = isMobile && hasDockedContent;
1769
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref: containerRef, className: "h-full relative flex", "data-testid": props["data-testid"], children: [
1770
+ /* @__PURE__ */ jsxRuntime.jsx(
1771
+ "div",
1772
+ {
1773
+ style: {
1774
+ width: mainHidden ? 0 : `calc(100% - ${effectiveDockWidth}px)`,
1775
+ // Reserve gutter space so the vertical scrollbar doesn't appear and
1776
+ // disappear as streaming content crosses the viewport boundary —
1777
+ // that toggle reflows the layout and reads as a screen-wide flicker.
1778
+ scrollbarGutter: "stable"
1779
+ },
1780
+ className: ui.cn(
1781
+ // The CSS container for the page's @-variants (PageContainer must not be one; see there).
1782
+ "@container h-full overflow-auto",
1783
+ hasDockedContent && !isMobile && "border-r",
1784
+ mainHidden && "overflow-hidden",
1785
+ // Animate opening only. On close the portaled content has already
1786
+ // unmounted, so animating leaves an empty strip shrinking while the
1787
+ // page behind reflows — reads as flicker over heavy content like the
1788
+ // documents grid. Snap closed instead. Resizing is also instant so
1789
+ // the divider doesn't lag the cursor.
1790
+ hasDockedContent && !isResizing && "transition-[width] duration-300 ease-in-out"
1791
+ ),
1792
+ "aria-hidden": mainHidden,
1793
+ inert: mainHidden,
1794
+ "data-scroll-container": true,
1795
+ children
1796
+ }
1797
+ ),
1798
+ hasDockedContent && !isMobile && /* @__PURE__ */ jsxRuntime.jsx(
1799
+ "div",
1800
+ {
1801
+ className: "group flex w-2 flex-shrink-0 cursor-col-resize items-center justify-center",
1802
+ onMouseDown: handleMouseDown,
1803
+ "data-testid": "dock-resize-handle",
1804
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-12 w-1 rounded-full bg-muted-foreground/40 transition-colors group-hover:bg-primary" })
1805
+ }
1806
+ ),
1807
+ /* @__PURE__ */ jsxRuntime.jsx(
1808
+ "div",
1809
+ {
1810
+ ref: dockZoneRef,
1811
+ id: "dock-zone",
1812
+ style: { width: effectiveDockWidth },
1813
+ className: ui.cn(
1814
+ "h-full overflow-hidden flex-shrink-0",
1815
+ hasDockedContent && !isResizing && "transition-[width] duration-300 ease-in-out"
1816
+ )
1817
+ }
1818
+ ),
1819
+ isResizing && dragPosition !== null && /* @__PURE__ */ jsxRuntime.jsx(
1820
+ "div",
1821
+ {
1822
+ className: "absolute top-0 bottom-0 w-0.5 bg-primary z-50 pointer-events-none",
1823
+ style: { left: dragPosition }
1824
+ }
1825
+ ),
1826
+ isResizing && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0 z-40 cursor-col-resize" })
1827
+ ] });
1828
+ }
1829
+ var btnClass = "h-7 w-7 p-0 text-muted-foreground hover:text-foreground";
1830
+ function SwitcherButton({
1831
+ label,
1832
+ inPopout = false,
1833
+ onClick,
1834
+ testId,
1835
+ children
1836
+ }) {
1837
+ const button = /* @__PURE__ */ jsxRuntime.jsx(
1838
+ ui.Button,
1839
+ {
1840
+ variant: "ghost",
1841
+ size: "sm",
1842
+ className: btnClass,
1843
+ "aria-label": label,
1844
+ title: inPopout ? label : void 0,
1845
+ onClick,
1846
+ "data-testid": testId,
1847
+ children
1848
+ }
1849
+ );
1850
+ if (inPopout) return button;
1851
+ return /* @__PURE__ */ jsxRuntime.jsxs(ui.Tooltip, { children: [
1852
+ /* @__PURE__ */ jsxRuntime.jsx(ui.TooltipTrigger, { asChild: true, children: button }),
1853
+ /* @__PURE__ */ jsxRuntime.jsx(ui.TooltipContent, { children: label })
1854
+ ] });
1855
+ }
1856
+ var TABLET_AND_BELOW_QUERY = "(max-width: 1024px)";
1857
+ function PanelModeSwitcher({
1858
+ mode,
1859
+ onModeChange,
1860
+ onClose,
1861
+ disablePopout,
1862
+ closeTestId = "dialog-close-button"
1863
+ }) {
1864
+ const isPopout = mode === "popout";
1865
+ const isSmallScreen = chunkFX3K6LNZ_cjs.useIsPhone();
1866
+ const isTabletAndBelow = chunkFX3K6LNZ_cjs.useMediaQuery(TABLET_AND_BELOW_QUERY);
1867
+ const closeButton = onClose && /* @__PURE__ */ jsxRuntime.jsx(SwitcherButton, { label: "Close (Esc)", onClick: onClose, testId: closeTestId, children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "w-3.5 h-3.5" }) });
1868
+ if (isSmallScreen) {
1869
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-0.5 flex-shrink-0", children: closeButton });
1870
+ }
1871
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-0.5 flex-shrink-0", children: [
1872
+ !disablePopout && !isTabletAndBelow && /* @__PURE__ */ jsxRuntime.jsx(
1873
+ SwitcherButton,
1874
+ {
1875
+ label: isPopout ? "Pop back in" : "Open in new window",
1876
+ inPopout: isPopout,
1877
+ onClick: () => onModeChange(isPopout ? "docked" : "popout"),
1878
+ testId: isPopout ? "pop-into-main-window-button" : "open-in-new-window-button",
1879
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ExternalLink, { className: "w-3.5 h-3.5" })
1880
+ }
1881
+ ),
1882
+ !isPopout && mode !== "docked" && /* @__PURE__ */ jsxRuntime.jsx(
1883
+ SwitcherButton,
1884
+ {
1885
+ label: "Split screen",
1886
+ onClick: () => onModeChange("docked"),
1887
+ testId: "dock-panel-button",
1888
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.PanelRight, { className: "w-3.5 h-3.5" })
1889
+ }
1890
+ ),
1891
+ !isPopout && mode !== "overlay" && !isTabletAndBelow && /* @__PURE__ */ jsxRuntime.jsx(
1892
+ SwitcherButton,
1893
+ {
1894
+ label: "Float as overlay",
1895
+ onClick: () => onModeChange("overlay"),
1896
+ testId: "overlay-panel-button",
1897
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.PictureInPicture2, { className: "w-3.5 h-3.5" })
1898
+ }
1899
+ ),
1900
+ !isPopout && closeButton
1901
+ ] });
1902
+ }
1688
1903
 
1689
1904
  Object.defineProperty(exports, "UserMenu", {
1690
1905
  enumerable: true,
@@ -1703,12 +1918,14 @@ exports.DEFAULT_MOBILE_BARS_LABELS = DEFAULT_MOBILE_BARS_LABELS;
1703
1918
  exports.DEFAULT_OFFLINE_PILL_LABELS = DEFAULT_OFFLINE_PILL_LABELS;
1704
1919
  exports.DEFAULT_REMOTE_CONTROL_PILL_LABELS = DEFAULT_REMOTE_CONTROL_PILL_LABELS;
1705
1920
  exports.DEFAULT_TIP_CARD_LABELS = DEFAULT_TIP_CARD_LABELS;
1921
+ exports.DockZone = DockZone;
1706
1922
  exports.INSTALL_PROMPT_DISMISSED_KEY = INSTALL_PROMPT_DISMISSED_KEY;
1707
1923
  exports.InfoBar = InfoBar;
1708
1924
  exports.InstallPrompt = InstallPrompt;
1709
1925
  exports.MobileAppBar = MobileAppBar;
1710
1926
  exports.MobileTabBar = MobileTabBar;
1711
1927
  exports.OfflinePill = OfflinePill;
1928
+ exports.PanelModeSwitcher = PanelModeSwitcher;
1712
1929
  exports.RemoteControlPill = RemoteControlPill;
1713
1930
  exports.SHELL_START_INSET_VAR = SHELL_START_INSET_VAR;
1714
1931
  exports.STATUS_ROW_BASE_CLASS = STATUS_ROW_BASE_CLASS;
@@ -1730,5 +1947,5 @@ exports.useInstallPrompt = useInstallPrompt;
1730
1947
  exports.useShellStartInset = useShellStartInset;
1731
1948
  exports.useSidebarController = useSidebarController;
1732
1949
  exports.useSidebarSettle = useSidebarSettle;
1733
- //# sourceMappingURL=chunk-FSEZEVWZ.cjs.map
1734
- //# sourceMappingURL=chunk-FSEZEVWZ.cjs.map
1950
+ //# sourceMappingURL=chunk-OXIGJYMO.cjs.map
1951
+ //# sourceMappingURL=chunk-OXIGJYMO.cjs.map