@ixo/ui 0.0.36 → 0.0.38

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 (84) hide show
  1. package/dist/.vite/manifest.json +46 -46
  2. package/dist/{UsersSolid-BAU7PbE4.js → UsersSolid-C6NkfomI.js} +62 -43
  3. package/dist/UsersSolid-C6NkfomI.js.map +1 -0
  4. package/dist/{UsersSolid-D60imcQv.cjs → UsersSolid-DjJvkV7c.cjs} +20 -1
  5. package/dist/UsersSolid-DjJvkV7c.cjs.map +1 -0
  6. package/dist/components/AIChatToolbar/index.d.ts +4 -1
  7. package/dist/components/AIChatToolbar/index.d.ts.map +1 -1
  8. package/dist/components/AppShellNavigation/index.d.ts +7 -1
  9. package/dist/components/AppShellNavigation/index.d.ts.map +1 -1
  10. package/dist/{components-B1a2iVqu.js → components-BCUQC5jC.js} +189 -30
  11. package/dist/{components-B1a2iVqu.js.map → components-BCUQC5jC.js.map} +1 -1
  12. package/dist/{components-DClyFU-M.cjs → components-BrO36-8M.cjs} +188 -29
  13. package/dist/{components-DClyFU-M.cjs.map → components-BrO36-8M.cjs.map} +1 -1
  14. package/dist/export/components.cjs +1 -1
  15. package/dist/export/components.mjs +1 -1
  16. package/dist/export/hooks.cjs +5 -1
  17. package/dist/export/hooks.cjs.map +1 -1
  18. package/dist/export/hooks.d.ts +1 -0
  19. package/dist/export/hooks.d.ts.map +1 -1
  20. package/dist/export/hooks.mjs +5 -1
  21. package/dist/export/icons/index.cjs +2 -1
  22. package/dist/export/icons/index.cjs.map +1 -1
  23. package/dist/export/icons/index.mjs +45 -44
  24. package/dist/export/types.d.ts +1 -0
  25. package/dist/export/types.d.ts.map +1 -1
  26. package/dist/hooks/useLocalStorage.d.ts +20 -0
  27. package/dist/hooks/useLocalStorage.d.ts.map +1 -0
  28. package/dist/icons/Canvas.d.ts +4 -0
  29. package/dist/icons/Canvas.d.ts.map +1 -0
  30. package/dist/icons/index.d.ts +1 -0
  31. package/dist/icons/index.d.ts.map +1 -1
  32. package/dist/{index-CHaUG4pj.js → index-9bgxOn0r.js} +3 -3
  33. package/dist/{index-CHaUG4pj.js.map → index-9bgxOn0r.js.map} +1 -1
  34. package/dist/{index-BSG0zFC9.cjs → index-Al96GH1N.cjs} +2 -2
  35. package/dist/{index-BSG0zFC9.cjs.map → index-Al96GH1N.cjs.map} +1 -1
  36. package/dist/{index-CgY82myI.js → index-B5f_G827.js} +2 -2
  37. package/dist/{index-CgY82myI.js.map → index-B5f_G827.js.map} +1 -1
  38. package/dist/{index-BCq1MsXT.cjs → index-BIogUZHA.cjs} +2 -2
  39. package/dist/{index-BCq1MsXT.cjs.map → index-BIogUZHA.cjs.map} +1 -1
  40. package/dist/{index-cb7wQOdp.cjs → index-BJWkWwf4.cjs} +2 -2
  41. package/dist/{index-cb7wQOdp.cjs.map → index-BJWkWwf4.cjs.map} +1 -1
  42. package/dist/{index-BPMwSQiu.cjs → index-BMqjLaFq.cjs} +2 -2
  43. package/dist/{index-BPMwSQiu.cjs.map → index-BMqjLaFq.cjs.map} +1 -1
  44. package/dist/{index-D0Hsuk8i.js → index-BY1AiOdr.js} +2 -2
  45. package/dist/{index-D0Hsuk8i.js.map → index-BY1AiOdr.js.map} +1 -1
  46. package/dist/{index-CrLkPKdH.js → index-BveTsSM4.js} +2 -2
  47. package/dist/{index-CrLkPKdH.js.map → index-BveTsSM4.js.map} +1 -1
  48. package/dist/{index-BBHzZvIm.js → index-CSflwNp9.js} +2 -2
  49. package/dist/{index-BBHzZvIm.js.map → index-CSflwNp9.js.map} +1 -1
  50. package/dist/{index-B9pVBHoG.cjs → index-CY_rB8AB.cjs} +3 -3
  51. package/dist/{index-B9pVBHoG.cjs.map → index-CY_rB8AB.cjs.map} +1 -1
  52. package/dist/{index-CfGbTIXG.cjs → index-Cp-qZhjG.cjs} +3 -3
  53. package/dist/{index-CfGbTIXG.cjs.map → index-Cp-qZhjG.cjs.map} +1 -1
  54. package/dist/{index-D2vpQrea.js → index-D2yQxkIj.js} +2 -2
  55. package/dist/{index-D2vpQrea.js.map → index-D2yQxkIj.js.map} +1 -1
  56. package/dist/{index-NInTEDOl.js → index-D2yc0dXn.js} +2 -2
  57. package/dist/{index-NInTEDOl.js.map → index-D2yc0dXn.js.map} +1 -1
  58. package/dist/{index-eldkvceu.cjs → index-DE5ijph0.cjs} +2 -2
  59. package/dist/{index-eldkvceu.cjs.map → index-DE5ijph0.cjs.map} +1 -1
  60. package/dist/{index-BnNEw5sb.cjs → index-DKd-qpnW.cjs} +3 -3
  61. package/dist/{index-BnNEw5sb.cjs.map → index-DKd-qpnW.cjs.map} +1 -1
  62. package/dist/{index-DAeeijml.cjs → index-DUJe5Ai1.cjs} +2 -2
  63. package/dist/{index-DAeeijml.cjs.map → index-DUJe5Ai1.cjs.map} +1 -1
  64. package/dist/{index-DIjbP65y.cjs → index-DYeDZpgO.cjs} +2 -2
  65. package/dist/{index-DIjbP65y.cjs.map → index-DYeDZpgO.cjs.map} +1 -1
  66. package/dist/{index-Dzht1xdr.js → index-DnbJxS8B.js} +2 -2
  67. package/dist/{index-Dzht1xdr.js.map → index-DnbJxS8B.js.map} +1 -1
  68. package/dist/{index-BUOaLr6a.js → index-IuW_YBAi.js} +3 -3
  69. package/dist/{index-BUOaLr6a.js.map → index-IuW_YBAi.js.map} +1 -1
  70. package/dist/{index-CkY33lka.js → index-RJQrCYn7.js} +3 -3
  71. package/dist/{index-CkY33lka.js.map → index-RJQrCYn7.js.map} +1 -1
  72. package/dist/types/canvas.d.ts +22 -0
  73. package/dist/types/canvas.d.ts.map +1 -0
  74. package/dist/useEventSubscribe-B019T27n.cjs +95 -0
  75. package/dist/useEventSubscribe-B019T27n.cjs.map +1 -0
  76. package/dist/useEventSubscribe-BuXZL79s.js +96 -0
  77. package/dist/useEventSubscribe-BuXZL79s.js.map +1 -0
  78. package/package.json +5 -2
  79. package/dist/UsersSolid-BAU7PbE4.js.map +0 -1
  80. package/dist/UsersSolid-D60imcQv.cjs.map +0 -1
  81. package/dist/useEventSubscribe-16wxaghO.js +0 -43
  82. package/dist/useEventSubscribe-16wxaghO.js.map +0 -1
  83. package/dist/useEventSubscribe-BTFTMdWH.cjs +0 -42
  84. package/dist/useEventSubscribe-BTFTMdWH.cjs.map +0 -1
@@ -24,7 +24,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
24
24
  const jsxRuntime = require("@emotion/react/jsx-runtime");
25
25
  const radash = require("radash");
26
26
  const react = require("@emotion/react");
27
- const UsersSolid = require("./UsersSolid-D60imcQv.cjs");
27
+ const UsersSolid = require("./UsersSolid-DjJvkV7c.cjs");
28
28
  const react$1 = require("react");
29
29
  const constants = require("./constants-DFJRYpE2.cjs");
30
30
  const core = require("@mantine/core");
@@ -33,13 +33,13 @@ const reactDom = require("react-dom");
33
33
  const DOMPurify = require("dompurify");
34
34
  const useUITheme = require("./useUITheme-DqgAb7n1.cjs");
35
35
  const hooks = require("@mantine/hooks");
36
+ const useEventSubscribe = require("./useEventSubscribe-B019T27n.cjs");
36
37
  const Markdown = require("react-markdown");
37
38
  const remarkGfm = require("remark-gfm");
38
39
  const downshift = require("downshift");
39
40
  const reactTinyPopover = require("react-tiny-popover");
40
41
  const dayjs = require("dayjs");
41
42
  const Blank = require("./Blank-DapEucFF.cjs");
42
- const useEventSubscribe = require("./useEventSubscribe-BTFTMdWH.cjs");
43
43
  const themes = require("./themes-BwGjuKnC.cjs");
44
44
  function SlideUpArea({ children, isVisible }) {
45
45
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -797,8 +797,8 @@ function AccordionTable({
797
797
  }
798
798
  );
799
799
  }
800
- const Header$3 = react$1.lazy(() => Promise.resolve().then(() => require("./index-BnNEw5sb.cjs")));
801
- const Footer = react$1.lazy(() => Promise.resolve().then(() => require("./index-CfGbTIXG.cjs")));
800
+ const Header$3 = react$1.lazy(() => Promise.resolve().then(() => require("./index-DKd-qpnW.cjs")));
801
+ const Footer = react$1.lazy(() => Promise.resolve().then(() => require("./index-Cp-qZhjG.cjs")));
802
802
  function ActionCard({ header, content, footer, useHoverMode = false }) {
803
803
  const hasContent = !!content || !!footer;
804
804
  const initialVisibility = footer?.startHidden !== true;
@@ -882,7 +882,7 @@ function Loader({ size, color = "primary" }) {
882
882
  }
883
883
  const CARD_WIDTH$1 = 350;
884
884
  const CARD_HEADER_HEIGHT = 158;
885
- const Header$2 = react$1.lazy(() => Promise.resolve().then(() => require("./index-BSG0zFC9.cjs")));
885
+ const Header$2 = react$1.lazy(() => Promise.resolve().then(() => require("./index-Al96GH1N.cjs")));
886
886
  function Card({ children, className, contentClassName, roundedBottom, noPadding = false, fullWidth = false, header, wrapperSx, onClick }) {
887
887
  const wrapperRef = react$1.useRef(null);
888
888
  const handleOnClick = react$1.useCallback(
@@ -1317,7 +1317,7 @@ function ModalSheet({ isOpen, children, hideHandler, zIndex, onRequestHide, onRe
1317
1317
  document.body
1318
1318
  );
1319
1319
  }
1320
- const Badge = react$1.lazy(() => Promise.resolve().then(() => require("./index-eldkvceu.cjs")));
1320
+ const Badge = react$1.lazy(() => Promise.resolve().then(() => require("./index-DE5ijph0.cjs")));
1321
1321
  function ActionSheet({ children, isOpen, header, navMenu = void 0, onRequestHide, onRequestShow }) {
1322
1322
  const shadowScrollRef = react$1.useRef(null);
1323
1323
  const wrapperContentAreaRef = react$1.useRef(null);
@@ -2125,8 +2125,9 @@ function AIInputBar({ placeholder, icon, disabledInput, disabledButton, valueInp
2125
2125
  }
2126
2126
  );
2127
2127
  }
2128
- function AIChatToolbar({ onClose, onHistoryClick, onPlusClick, onHistoryClose, isHistoryOpened, oracleModel, sessionTitle }) {
2128
+ function AIChatToolbar({ onClose, onHistoryClick, onPlusClick, onHistoryClose, onCanvasCycle, isHistoryOpened, canvasMode = "hidden", oracleModel, sessionTitle }) {
2129
2129
  const theme = useUITheme.useUITheme();
2130
+ const canvasActive = canvasMode !== "hidden";
2130
2131
  return /* @__PURE__ */ jsxRuntime.jsxs(Flex, { bg: theme.bg.navIconsBg, py: 16, justify: "space-between", align: "center", children: [
2131
2132
  /* @__PURE__ */ jsxRuntime.jsxs(Flex, { gap: 6, align: "center", children: [
2132
2133
  sessionTitle && /* @__PURE__ */ jsxRuntime.jsx(Typography.Text, { color: "overPicture", size: "s", children: sessionTitle }),
@@ -2150,6 +2151,17 @@ function AIChatToolbar({ onClose, onHistoryClick, onPlusClick, onHistoryClose, i
2150
2151
  }
2151
2152
  ) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2152
2153
  /* @__PURE__ */ jsxRuntime.jsx(core.Center, { sx: { cursor: "pointer", borderRadius: 24 }, onClick: onPlusClick, children: /* @__PURE__ */ jsxRuntime.jsx(UsersSolid.PlusSolid, { size: 18 }) }),
2154
+ /* @__PURE__ */ jsxRuntime.jsx(
2155
+ core.Center,
2156
+ {
2157
+ sx: {
2158
+ cursor: "pointer",
2159
+ borderRadius: 24
2160
+ },
2161
+ onClick: onCanvasCycle,
2162
+ children: /* @__PURE__ */ jsxRuntime.jsx(UsersSolid.Canvas, { size: 18, color: canvasActive ? "primary" : void 0 })
2163
+ }
2164
+ ),
2153
2165
  /* @__PURE__ */ jsxRuntime.jsx(core.Center, { sx: { cursor: "pointer", borderRadius: 24 }, onClick: onHistoryClick, children: /* @__PURE__ */ jsxRuntime.jsx(UsersSolid.HistorySolid, { size: 18 }) }),
2154
2166
  /* @__PURE__ */ jsxRuntime.jsx(
2155
2167
  core.Center,
@@ -2579,6 +2591,8 @@ function SpaceItem({ icon, id, name, selectedSpace, onClick }) {
2579
2591
  }
2580
2592
  );
2581
2593
  }
2594
+ const CANVAS_MIN_WIDTH = 350;
2595
+ const CONTENT_MIN_WIDTH = 350;
2582
2596
  function AppShellNavigation({
2583
2597
  spaces,
2584
2598
  pageItem,
@@ -2604,20 +2618,79 @@ function AppShellNavigation({
2604
2618
  isAiBtnVisible,
2605
2619
  loading,
2606
2620
  children,
2607
- aiNavbarContent
2621
+ separator,
2622
+ aiNavbarContent,
2623
+ canvasContent,
2624
+ canvasMode = "hidden",
2625
+ splitRatio = 0.4,
2626
+ onSplitRatioChange
2608
2627
  }) {
2609
2628
  const [isNavbarNotCollapsed, { toggle: toggleNavbar }] = hooks.useDisclosure(true);
2610
2629
  const [asideWidth, setAsideWidth] = react$1.useState(450);
2611
2630
  const theme = useUITheme.useUITheme();
2612
- const [navbarWidth, setNavbarWidth] = react$1.useState(isAiOpened ? 450 : 300);
2613
- const [isNavbarResizing, setIsNavbarResizing] = react$1.useState(false);
2614
- const isNavbarResizingRef = react$1.useRef(false);
2631
+ const [isSplitResizing, setIsSplitResizing] = react$1.useState(false);
2632
+ const isSplitResizingRef = react$1.useRef(false);
2633
+ const mainContainerRef = react$1.useRef(null);
2634
+ const isRightPanelOpen = !asideCollapsed && !!right;
2635
+ const shouldShowCanvas = canvasMode !== "hidden" && !isRightPanelOpen;
2636
+ const shouldShowContent = (canvasMode === "hidden" || canvasMode === "split") && !isRightPanelOpen || isRightPanelOpen;
2637
+ const getCanvasWidth = () => {
2638
+ if (!shouldShowCanvas) return "0%";
2639
+ if (canvasMode === "full") return "100%";
2640
+ return `${splitRatio * 100}%`;
2641
+ };
2642
+ const getContentWidth = () => {
2643
+ if (!shouldShowContent) return "0%";
2644
+ if (canvasMode === "hidden" || isRightPanelOpen) return "100%";
2645
+ if (canvasMode === "full") return "0%";
2646
+ return `${(1 - splitRatio) * 100}%`;
2647
+ };
2648
+ const handleSplitMouseMove = react$1.useCallback(
2649
+ (e) => {
2650
+ if (!isSplitResizingRef.current || !mainContainerRef.current) return;
2651
+ const containerRect = mainContainerRef.current.getBoundingClientRect();
2652
+ const containerWidth = containerRect.width;
2653
+ const relativeX = e.clientX - containerRect.left;
2654
+ const minRatio = CANVAS_MIN_WIDTH / containerWidth;
2655
+ const maxRatio = 1 - CONTENT_MIN_WIDTH / containerWidth;
2656
+ const newRatio = Math.min(Math.max(relativeX / containerWidth, minRatio), maxRatio);
2657
+ onSplitRatioChange?.(newRatio);
2658
+ },
2659
+ [onSplitRatioChange]
2660
+ );
2661
+ const handleSplitMouseUp = react$1.useCallback(() => {
2662
+ setIsSplitResizing(false);
2663
+ isSplitResizingRef.current = false;
2664
+ }, []);
2665
+ const handleSplitMouseDown = (e) => {
2666
+ e.preventDefault();
2667
+ setIsSplitResizing(true);
2668
+ isSplitResizingRef.current = true;
2669
+ };
2615
2670
  react$1.useEffect(() => {
2616
- const minWidth = isAiOpened ? 450 : 300;
2617
- if (navbarWidth < minWidth) {
2618
- setNavbarWidth(minWidth);
2671
+ if (isSplitResizing) {
2672
+ document.addEventListener("mousemove", handleSplitMouseMove);
2673
+ document.addEventListener("mouseup", handleSplitMouseUp);
2674
+ document.body.style.cursor = "col-resize";
2675
+ document.body.style.userSelect = "none";
2676
+ } else {
2677
+ document.removeEventListener("mousemove", handleSplitMouseMove);
2678
+ document.removeEventListener("mouseup", handleSplitMouseUp);
2679
+ document.body.style.cursor = "";
2680
+ document.body.style.userSelect = "";
2619
2681
  }
2620
- }, [isAiOpened, navbarWidth]);
2682
+ return () => {
2683
+ document.removeEventListener("mousemove", handleSplitMouseMove);
2684
+ document.removeEventListener("mouseup", handleSplitMouseUp);
2685
+ document.body.style.cursor = "";
2686
+ document.body.style.userSelect = "";
2687
+ };
2688
+ }, [isSplitResizing, handleSplitMouseMove, handleSplitMouseUp]);
2689
+ const [navbarWidthAiOpen, setNavbarWidthAiOpen] = useEventSubscribe.useLocalStorage("navbar-width-ai-open", 450);
2690
+ const [navbarWidthAiClosed, setNavbarWidthAiClosed] = useEventSubscribe.useLocalStorage("navbar-width-ai-closed", 300);
2691
+ const navbarWidth = isAiOpened ? navbarWidthAiOpen : navbarWidthAiClosed;
2692
+ const [isNavbarResizing, setIsNavbarResizing] = react$1.useState(false);
2693
+ const isNavbarResizingRef = react$1.useRef(false);
2621
2694
  function clearNavbarListeners() {
2622
2695
  document.removeEventListener("mousemove", handleNavbarMouseMove);
2623
2696
  document.removeEventListener("mouseup", handleNavbarMouseUp);
@@ -2630,7 +2703,11 @@ function AppShellNavigation({
2630
2703
  const minWidth = isAiOpened ? 450 : 300;
2631
2704
  const maxWidth = 700;
2632
2705
  const newWidth = Math.min(Math.max(e.clientX, minWidth), maxWidth);
2633
- setNavbarWidth(newWidth);
2706
+ if (isAiOpened) {
2707
+ setNavbarWidthAiOpen(newWidth);
2708
+ } else {
2709
+ setNavbarWidthAiClosed(newWidth);
2710
+ }
2634
2711
  },
2635
2712
  [isAiOpened]
2636
2713
  );
@@ -2658,15 +2735,17 @@ function AppShellNavigation({
2658
2735
  const handleWindowResize = () => {
2659
2736
  const maxWidth = 700;
2660
2737
  const minWidth = isAiOpened ? 450 : 300;
2661
- if (navbarWidth > maxWidth) {
2662
- setNavbarWidth(maxWidth);
2663
- } else if (navbarWidth < minWidth) {
2664
- setNavbarWidth(minWidth);
2738
+ const currentWidth = isAiOpened ? navbarWidthAiOpen : navbarWidthAiClosed;
2739
+ const setter = isAiOpened ? setNavbarWidthAiOpen : setNavbarWidthAiClosed;
2740
+ if (currentWidth > maxWidth) {
2741
+ setter(maxWidth);
2742
+ } else if (currentWidth < minWidth) {
2743
+ setter(minWidth);
2665
2744
  }
2666
2745
  };
2667
2746
  window.addEventListener("resize", handleWindowResize);
2668
2747
  return () => window.removeEventListener("resize", handleWindowResize);
2669
- }, [navbarWidth, isAiOpened]);
2748
+ }, [navbarWidthAiOpen, navbarWidthAiClosed, isAiOpened]);
2670
2749
  return /* @__PURE__ */ jsxRuntime.jsxs(
2671
2750
  core.AppShell,
2672
2751
  {
@@ -2785,14 +2864,94 @@ function AppShellNavigation({
2785
2864
  }
2786
2865
  )
2787
2866
  ] }),
2788
- loading ? /* @__PURE__ */ jsxRuntime.jsx(core.Stack, { gap: 5, children: Array.from({ length: 6 }).map((_, idx) => /* @__PURE__ */ jsxRuntime.jsx(NavigationItemSkeleton, {}, idx)) }) : menuItems?.map((item) => /* @__PURE__ */ jsxRuntime.jsx(MenuItem, { onMenuItemClick, item }, item.id)),
2867
+ loading ? /* @__PURE__ */ jsxRuntime.jsx(core.Stack, { gap: 5, children: Array.from({ length: 6 }).map((_, idx) => /* @__PURE__ */ jsxRuntime.jsx(NavigationItemSkeleton, {}, idx)) }) : menuItems?.map((item, index) => {
2868
+ if (index === separator) {
2869
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2870
+ /* @__PURE__ */ jsxRuntime.jsx(core.Space, { h: 16 }),
2871
+ /* @__PURE__ */ jsxRuntime.jsx(MenuItem, { onMenuItemClick, item }, item.id)
2872
+ ] });
2873
+ }
2874
+ return /* @__PURE__ */ jsxRuntime.jsx(MenuItem, { onMenuItemClick, item }, item.id);
2875
+ }),
2789
2876
  roomCategories && roomCategories.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(core.Stack, { gap: 8, mt: 16, children: roomCategories.map((category) => /* @__PURE__ */ jsxRuntime.jsx(RoomCategory, { category }, category.id)) })
2790
2877
  ] }),
2791
2878
  /* @__PURE__ */ jsxRuntime.jsx(core.Stack, { gap: 5, children: footerContent })
2792
2879
  ] })
2793
2880
  ] })
2794
2881
  ] }) }),
2795
- /* @__PURE__ */ jsxRuntime.jsx(core.AppShell.Main, { children }),
2882
+ /* @__PURE__ */ jsxRuntime.jsx(
2883
+ core.AppShell.Main,
2884
+ {
2885
+ style: {
2886
+ display: "flex",
2887
+ flexDirection: "column",
2888
+ height: "100vh",
2889
+ overflow: "hidden"
2890
+ },
2891
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
2892
+ Flex,
2893
+ {
2894
+ ref: mainContainerRef,
2895
+ style: {
2896
+ flex: 1,
2897
+ height: "100%",
2898
+ overflow: "hidden",
2899
+ position: "relative"
2900
+ },
2901
+ children: [
2902
+ /* @__PURE__ */ jsxRuntime.jsx(
2903
+ core.Box,
2904
+ {
2905
+ bg: theme.bg.navIconsBg,
2906
+ style: {
2907
+ width: getCanvasWidth(),
2908
+ minWidth: shouldShowCanvas && canvasMode === "split" ? CANVAS_MIN_WIDTH : void 0,
2909
+ display: shouldShowCanvas ? "flex" : "none",
2910
+ flexDirection: "column",
2911
+ overflow: "hidden",
2912
+ height: "100%",
2913
+ transition: isSplitResizing ? "none" : "width 0.3s ease, opacity 0.2s ease",
2914
+ opacity: shouldShowCanvas ? 1 : 0,
2915
+ borderLeft: `1px solid ${theme.neutral.transparent10}`
2916
+ },
2917
+ children: canvasContent
2918
+ }
2919
+ ),
2920
+ canvasMode === "split" && !isRightPanelOpen && /* @__PURE__ */ jsxRuntime.jsx(
2921
+ core.Box,
2922
+ {
2923
+ w: 4,
2924
+ h: "100%",
2925
+ bg: isSplitResizing ? theme.colors.focus : "transparent",
2926
+ sx: {
2927
+ cursor: "col-resize",
2928
+ flexShrink: 0,
2929
+ transition: "background-color 0.2s ease"
2930
+ },
2931
+ onMouseDown: handleSplitMouseDown
2932
+ }
2933
+ ),
2934
+ /* @__PURE__ */ jsxRuntime.jsx(
2935
+ core.Box,
2936
+ {
2937
+ style: {
2938
+ width: getContentWidth(),
2939
+ minWidth: shouldShowContent && canvasMode === "split" ? CONTENT_MIN_WIDTH : void 0,
2940
+ display: shouldShowContent ? "flex" : "none",
2941
+ flexDirection: "column",
2942
+ overflow: "auto",
2943
+ height: "100%",
2944
+ transition: isSplitResizing ? "none" : "width 0.3s ease, opacity 0.2s ease",
2945
+ opacity: shouldShowContent ? 1 : 0
2946
+ },
2947
+ children
2948
+ }
2949
+ )
2950
+ ]
2951
+ }
2952
+ )
2953
+ }
2954
+ ),
2796
2955
  /* @__PURE__ */ jsxRuntime.jsx(AsideResizable, { asideCollapsed, onAsideToggle, onMaxExpand, width: asideWidth, onWidthChange: setAsideWidth, children: right })
2797
2956
  ]
2798
2957
  }
@@ -5814,13 +5973,13 @@ function ActionButton({ onClick, left, right }) {
5814
5973
  }
5815
5974
  );
5816
5975
  }
5817
- const MainAction = react$1.lazy(() => Promise.resolve().then(() => require("./index-DIjbP65y.cjs")));
5818
- const Header$1 = react$1.lazy(() => Promise.resolve().then(() => require("./index-DAeeijml.cjs")));
5819
- const Content = react$1.lazy(() => Promise.resolve().then(() => require("./index-BPMwSQiu.cjs")));
5976
+ const MainAction = react$1.lazy(() => Promise.resolve().then(() => require("./index-DYeDZpgO.cjs")));
5977
+ const Header$1 = react$1.lazy(() => Promise.resolve().then(() => require("./index-DUJe5Ai1.cjs")));
5978
+ const Content = react$1.lazy(() => Promise.resolve().then(() => require("./index-BMqjLaFq.cjs")));
5820
5979
  const Map = react$1.lazy(() => Promise.resolve().then(() => require("./index-D4PsPquZ.cjs")));
5821
5980
  const CustomContent = react$1.lazy(() => Promise.resolve().then(() => require("./index-ByrCNpS2.cjs")));
5822
- const Assets = react$1.lazy(() => Promise.resolve().then(() => require("./index-BCq1MsXT.cjs")));
5823
- const Actions = react$1.lazy(() => Promise.resolve().then(() => require("./index-B9pVBHoG.cjs")));
5981
+ const Assets = react$1.lazy(() => Promise.resolve().then(() => require("./index-BIogUZHA.cjs")));
5982
+ const Actions = react$1.lazy(() => Promise.resolve().then(() => require("./index-CY_rB8AB.cjs")));
5824
5983
  const HOVER_BORDER_WIDTH = 1;
5825
5984
  function SodaCardCmp({ numSelected = 0, expanded = true, mainAction, header, content, map, customContent, customFooter, actions, assets, onClick }, ref) {
5826
5985
  const wrapperRef = react$1.useRef(null);
@@ -11133,4 +11292,4 @@ exports.UserMessage = UserMessage;
11133
11292
  exports.WorkspaceModal = WorkspaceModal;
11134
11293
  exports.cutText = cutText;
11135
11294
  exports.isValidClick = isValidClick;
11136
- //# sourceMappingURL=components-DClyFU-M.cjs.map
11295
+ //# sourceMappingURL=components-BrO36-8M.cjs.map