@ixo/ui 0.0.36 → 0.0.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 (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 +6 -1
  9. package/dist/components/AppShellNavigation/index.d.ts.map +1 -1
  10. package/dist/{components-B1a2iVqu.js → components-CzYIAVLV.js} +178 -28
  11. package/dist/{components-B1a2iVqu.js.map → components-CzYIAVLV.js.map} +1 -1
  12. package/dist/{components-DClyFU-M.cjs → components-DN1Oa-f6.cjs} +178 -28
  13. package/dist/{components-DClyFU-M.cjs.map → components-DN1Oa-f6.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-D2vpQrea.js → index-B3L8bASL.js} +2 -2
  33. package/dist/{index-D2vpQrea.js.map → index-B3L8bASL.js.map} +1 -1
  34. package/dist/{index-cb7wQOdp.cjs → index-BFLvKv53.cjs} +2 -2
  35. package/dist/{index-cb7wQOdp.cjs.map → index-BFLvKv53.cjs.map} +1 -1
  36. package/dist/{index-BBHzZvIm.js → index-BxdS7Log.js} +2 -2
  37. package/dist/{index-BBHzZvIm.js.map → index-BxdS7Log.js.map} +1 -1
  38. package/dist/{index-BPMwSQiu.cjs → index-C1jkvV-X.cjs} +2 -2
  39. package/dist/{index-BPMwSQiu.cjs.map → index-C1jkvV-X.cjs.map} +1 -1
  40. package/dist/{index-CkY33lka.js → index-CPagTbY2.js} +3 -3
  41. package/dist/{index-CkY33lka.js.map → index-CPagTbY2.js.map} +1 -1
  42. package/dist/{index-BCq1MsXT.cjs → index-CakMAOX7.cjs} +2 -2
  43. package/dist/{index-BCq1MsXT.cjs.map → index-CakMAOX7.cjs.map} +1 -1
  44. package/dist/{index-CgY82myI.js → index-CcmQ18nv.js} +2 -2
  45. package/dist/{index-CgY82myI.js.map → index-CcmQ18nv.js.map} +1 -1
  46. package/dist/{index-BSG0zFC9.cjs → index-CdKYqXBt.cjs} +2 -2
  47. package/dist/{index-BSG0zFC9.cjs.map → index-CdKYqXBt.cjs.map} +1 -1
  48. package/dist/{index-eldkvceu.cjs → index-Ch5hR4aV.cjs} +2 -2
  49. package/dist/{index-eldkvceu.cjs.map → index-Ch5hR4aV.cjs.map} +1 -1
  50. package/dist/{index-CrLkPKdH.js → index-Cjz-hgYn.js} +2 -2
  51. package/dist/{index-CrLkPKdH.js.map → index-Cjz-hgYn.js.map} +1 -1
  52. package/dist/{index-B9pVBHoG.cjs → index-Cp1GJZKj.cjs} +3 -3
  53. package/dist/{index-B9pVBHoG.cjs.map → index-Cp1GJZKj.cjs.map} +1 -1
  54. package/dist/{index-BnNEw5sb.cjs → index-CpWsRlKO.cjs} +3 -3
  55. package/dist/{index-BnNEw5sb.cjs.map → index-CpWsRlKO.cjs.map} +1 -1
  56. package/dist/{index-DIjbP65y.cjs → index-CwSS7HIf.cjs} +2 -2
  57. package/dist/{index-DIjbP65y.cjs.map → index-CwSS7HIf.cjs.map} +1 -1
  58. package/dist/{index-D0Hsuk8i.js → index-DQlyhNQS.js} +2 -2
  59. package/dist/{index-D0Hsuk8i.js.map → index-DQlyhNQS.js.map} +1 -1
  60. package/dist/{index-DAeeijml.cjs → index-DXySGWRo.cjs} +2 -2
  61. package/dist/{index-DAeeijml.cjs.map → index-DXySGWRo.cjs.map} +1 -1
  62. package/dist/{index-CHaUG4pj.js → index-F9Irhjcn.js} +3 -3
  63. package/dist/{index-CHaUG4pj.js.map → index-F9Irhjcn.js.map} +1 -1
  64. package/dist/{index-Dzht1xdr.js → index-FtJpq2EO.js} +2 -2
  65. package/dist/{index-Dzht1xdr.js.map → index-FtJpq2EO.js.map} +1 -1
  66. package/dist/{index-BUOaLr6a.js → index-kDLY4FBs.js} +3 -3
  67. package/dist/{index-BUOaLr6a.js.map → index-kDLY4FBs.js.map} +1 -1
  68. package/dist/{index-CfGbTIXG.cjs → index-tAWB4Iqa.cjs} +3 -3
  69. package/dist/{index-CfGbTIXG.cjs.map → index-tAWB4Iqa.cjs.map} +1 -1
  70. package/dist/{index-NInTEDOl.js → index-vNRsVBzW.js} +2 -2
  71. package/dist/{index-NInTEDOl.js.map → index-vNRsVBzW.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
@@ -1,7 +1,7 @@
1
1
  import { jsx, Fragment, jsxs } from "@emotion/react/jsx-runtime";
2
2
  import { isString, toggle, get, isFunction, assign } from "radash";
3
3
  import { useTheme, jsx as jsx$1, keyframes, ThemeProvider } from "@emotion/react";
4
- import { g as getElementColor, A as AngleDownSolid, a as CheckSolid, C as Close, L as Loading, P as PlusSolid, S as SearchSolid, b as Assistant, c as ArrowUpSolid, E as EllipsisVSolid, d as ArrowLeftSolid, H as HistorySolid, U as User, e as AngleLeftSolid, M as MinusCircleSolid, f as SettingsBarSolid, G as Globe, D as Dashboard, h as Groups, i as UserCircleSolid, j as Assets$1, k as Claims, l as Accounts, m as LinkedResources, n as Proposals, I as ImpactCredits, o as GoTo, p as Share, q as PiePiece, r as ImpactCertificates, s as CommentDotsSolid, t as CommentAltSolid, u as MicrophoneSolid, v as Command, w as ArrowCircleRightSolid, x as Protocols, y as Investments, O as Oracles, z as Projects, B as Daos, F as Star, J as AngleRightSolid, K as Expand, N as LeafSolid, Q as ArrowDownSolid, R as ArrowRightSolid, T as Play, V as CheckCircle, W as Events, X as ThumbsUpSolid, Y as CommentsSolid, Z as CopySolid, _ as Hourglass, $ as Act, a0 as Info$1, a1 as ClaimsW, a2 as TachometerAltSolid, a3 as UserCogSolid, a4 as UsersSolid, a5 as EllipsisHSolid } from "./UsersSolid-BAU7PbE4.js";
4
+ import { g as getElementColor, A as AngleDownSolid, a as CheckSolid, C as Close, L as Loading, P as PlusSolid, S as SearchSolid, b as Assistant, c as ArrowUpSolid, E as EllipsisVSolid, d as ArrowLeftSolid, e as Canvas, H as HistorySolid, U as User, f as AngleLeftSolid, M as MinusCircleSolid, h as SettingsBarSolid, G as Globe, D as Dashboard, i as Groups, j as UserCircleSolid, k as Assets$1, l as Claims, m as Accounts, n as LinkedResources, o as Proposals, I as ImpactCredits, p as GoTo, q as Share, r as PiePiece, s as ImpactCertificates, t as CommentDotsSolid, u as CommentAltSolid, v as MicrophoneSolid, w as Command, x as ArrowCircleRightSolid, y as Protocols, z as Investments, O as Oracles, B as Projects, F as Daos, J as Star, K as AngleRightSolid, N as Expand, Q as LeafSolid, R as ArrowDownSolid, T as ArrowRightSolid, V as Play, W as CheckCircle, X as Events, Y as ThumbsUpSolid, Z as CommentsSolid, _ as CopySolid, $ as Hourglass, a0 as Act, a1 as Info$1, a2 as ClaimsW, a3 as TachometerAltSolid, a4 as UserCogSolid, a5 as UsersSolid, a6 as EllipsisHSolid } from "./UsersSolid-C6NkfomI.js";
5
5
  import { useState, useCallback, useRef, useEffect, Suspense, lazy, forwardRef, useMemo, useId, Fragment as Fragment$1, useLayoutEffect, useImperativeHandle, memo } from "react";
6
6
  import { T as TAG_SMALL_HEIGHT, D as DEFAULT_ICON_SIZE } from "./constants-B7xlU8b8.js";
7
7
  import { Accordion as Accordion$1, Box, Image, Popover, Text as Text$1, Badge as Badge$1, Center, AppShell, Skeleton, Stack as Stack$1, Tooltip as Tooltip$4, Divider, ScrollArea } from "@mantine/core";
@@ -10,13 +10,13 @@ import { createPortal } from "react-dom";
10
10
  import DOMPurify from "dompurify";
11
11
  import { u as useUITheme } from "./useUITheme-7i8NJ2FG.js";
12
12
  import { useResizeObserver, useHover, useDisclosure } from "@mantine/hooks";
13
+ import { a as useLocalStorage, E as EventEmitter, u as useEventSubscribe } from "./useEventSubscribe-BuXZL79s.js";
13
14
  import Markdown from "react-markdown";
14
15
  import remarkGfm from "remark-gfm";
15
16
  import { useCombobox, useSelect } from "downshift";
16
17
  import { Popover as Popover$1 } from "react-tiny-popover";
17
18
  import dayjs from "dayjs";
18
19
  import { B as Blank } from "./Blank-CElsicB7.js";
19
- import { E as EventEmitter, u as useEventSubscribe } from "./useEventSubscribe-16wxaghO.js";
20
20
  import { d as dark, l as light } from "./themes-ZDjULHjG.js";
21
21
  function SlideUpArea({ children, isVisible }) {
22
22
  return /* @__PURE__ */ jsx(
@@ -774,8 +774,8 @@ function AccordionTable({
774
774
  }
775
775
  );
776
776
  }
777
- const Header$3 = lazy(() => import("./index-CHaUG4pj.js"));
778
- const Footer = lazy(() => import("./index-CkY33lka.js"));
777
+ const Header$3 = lazy(() => import("./index-F9Irhjcn.js"));
778
+ const Footer = lazy(() => import("./index-CPagTbY2.js"));
779
779
  function ActionCard({ header, content, footer, useHoverMode = false }) {
780
780
  const hasContent = !!content || !!footer;
781
781
  const initialVisibility = footer?.startHidden !== true;
@@ -859,7 +859,7 @@ function Loader({ size, color = "primary" }) {
859
859
  }
860
860
  const CARD_WIDTH$1 = 350;
861
861
  const CARD_HEADER_HEIGHT = 158;
862
- const Header$2 = lazy(() => import("./index-D0Hsuk8i.js"));
862
+ const Header$2 = lazy(() => import("./index-DQlyhNQS.js"));
863
863
  function Card({ children, className, contentClassName, roundedBottom, noPadding = false, fullWidth = false, header, wrapperSx, onClick }) {
864
864
  const wrapperRef = useRef(null);
865
865
  const handleOnClick = useCallback(
@@ -1294,7 +1294,7 @@ function ModalSheet({ isOpen, children, hideHandler, zIndex, onRequestHide, onRe
1294
1294
  document.body
1295
1295
  );
1296
1296
  }
1297
- const Badge = lazy(() => import("./index-NInTEDOl.js"));
1297
+ const Badge = lazy(() => import("./index-vNRsVBzW.js"));
1298
1298
  function ActionSheet({ children, isOpen, header, navMenu = void 0, onRequestHide, onRequestShow }) {
1299
1299
  const shadowScrollRef = useRef(null);
1300
1300
  const wrapperContentAreaRef = useRef(null);
@@ -2102,8 +2102,9 @@ function AIInputBar({ placeholder, icon, disabledInput, disabledButton, valueInp
2102
2102
  }
2103
2103
  );
2104
2104
  }
2105
- function AIChatToolbar({ onClose, onHistoryClick, onPlusClick, onHistoryClose, isHistoryOpened, oracleModel, sessionTitle }) {
2105
+ function AIChatToolbar({ onClose, onHistoryClick, onPlusClick, onHistoryClose, onCanvasCycle, isHistoryOpened, canvasMode = "hidden", oracleModel, sessionTitle }) {
2106
2106
  const theme = useUITheme();
2107
+ const canvasActive = canvasMode !== "hidden";
2107
2108
  return /* @__PURE__ */ jsxs(Flex, { bg: theme.bg.navIconsBg, py: 16, justify: "space-between", align: "center", children: [
2108
2109
  /* @__PURE__ */ jsxs(Flex, { gap: 6, align: "center", children: [
2109
2110
  sessionTitle && /* @__PURE__ */ jsx(Typography.Text, { color: "overPicture", size: "s", children: sessionTitle }),
@@ -2127,6 +2128,17 @@ function AIChatToolbar({ onClose, onHistoryClick, onPlusClick, onHistoryClose, i
2127
2128
  }
2128
2129
  ) : /* @__PURE__ */ jsxs(Fragment, { children: [
2129
2130
  /* @__PURE__ */ jsx(Center, { sx: { cursor: "pointer", borderRadius: 24 }, onClick: onPlusClick, children: /* @__PURE__ */ jsx(PlusSolid, { size: 18 }) }),
2131
+ /* @__PURE__ */ jsx(
2132
+ Center,
2133
+ {
2134
+ sx: {
2135
+ cursor: "pointer",
2136
+ borderRadius: 24
2137
+ },
2138
+ onClick: onCanvasCycle,
2139
+ children: /* @__PURE__ */ jsx(Canvas, { size: 18, color: canvasActive ? "primary" : void 0 })
2140
+ }
2141
+ ),
2130
2142
  /* @__PURE__ */ jsx(Center, { sx: { cursor: "pointer", borderRadius: 24 }, onClick: onHistoryClick, children: /* @__PURE__ */ jsx(HistorySolid, { size: 18 }) }),
2131
2143
  /* @__PURE__ */ jsx(
2132
2144
  Center,
@@ -2556,6 +2568,8 @@ function SpaceItem({ icon, id, name, selectedSpace, onClick }) {
2556
2568
  }
2557
2569
  );
2558
2570
  }
2571
+ const CANVAS_MIN_WIDTH = 350;
2572
+ const CONTENT_MIN_WIDTH = 350;
2559
2573
  function AppShellNavigation({
2560
2574
  spaces,
2561
2575
  pageItem,
@@ -2581,20 +2595,78 @@ function AppShellNavigation({
2581
2595
  isAiBtnVisible,
2582
2596
  loading,
2583
2597
  children,
2584
- aiNavbarContent
2598
+ aiNavbarContent,
2599
+ canvasContent,
2600
+ canvasMode = "hidden",
2601
+ splitRatio = 0.4,
2602
+ onSplitRatioChange
2585
2603
  }) {
2586
2604
  const [isNavbarNotCollapsed, { toggle: toggleNavbar }] = useDisclosure(true);
2587
2605
  const [asideWidth, setAsideWidth] = useState(450);
2588
2606
  const theme = useUITheme();
2589
- const [navbarWidth, setNavbarWidth] = useState(isAiOpened ? 450 : 300);
2590
- const [isNavbarResizing, setIsNavbarResizing] = useState(false);
2591
- const isNavbarResizingRef = useRef(false);
2607
+ const [isSplitResizing, setIsSplitResizing] = useState(false);
2608
+ const isSplitResizingRef = useRef(false);
2609
+ const mainContainerRef = useRef(null);
2610
+ const isRightPanelOpen = !asideCollapsed && !!right;
2611
+ const shouldShowCanvas = canvasMode !== "hidden" && !isRightPanelOpen;
2612
+ const shouldShowContent = (canvasMode === "hidden" || canvasMode === "split") && !isRightPanelOpen || isRightPanelOpen;
2613
+ const getCanvasWidth = () => {
2614
+ if (!shouldShowCanvas) return "0%";
2615
+ if (canvasMode === "full") return "100%";
2616
+ return `${splitRatio * 100}%`;
2617
+ };
2618
+ const getContentWidth = () => {
2619
+ if (!shouldShowContent) return "0%";
2620
+ if (canvasMode === "hidden" || isRightPanelOpen) return "100%";
2621
+ if (canvasMode === "full") return "0%";
2622
+ return `${(1 - splitRatio) * 100}%`;
2623
+ };
2624
+ const handleSplitMouseMove = useCallback(
2625
+ (e) => {
2626
+ if (!isSplitResizingRef.current || !mainContainerRef.current) return;
2627
+ const containerRect = mainContainerRef.current.getBoundingClientRect();
2628
+ const containerWidth = containerRect.width;
2629
+ const relativeX = e.clientX - containerRect.left;
2630
+ const minRatio = CANVAS_MIN_WIDTH / containerWidth;
2631
+ const maxRatio = 1 - CONTENT_MIN_WIDTH / containerWidth;
2632
+ const newRatio = Math.min(Math.max(relativeX / containerWidth, minRatio), maxRatio);
2633
+ onSplitRatioChange?.(newRatio);
2634
+ },
2635
+ [onSplitRatioChange]
2636
+ );
2637
+ const handleSplitMouseUp = useCallback(() => {
2638
+ setIsSplitResizing(false);
2639
+ isSplitResizingRef.current = false;
2640
+ }, []);
2641
+ const handleSplitMouseDown = (e) => {
2642
+ e.preventDefault();
2643
+ setIsSplitResizing(true);
2644
+ isSplitResizingRef.current = true;
2645
+ };
2592
2646
  useEffect(() => {
2593
- const minWidth = isAiOpened ? 450 : 300;
2594
- if (navbarWidth < minWidth) {
2595
- setNavbarWidth(minWidth);
2647
+ if (isSplitResizing) {
2648
+ document.addEventListener("mousemove", handleSplitMouseMove);
2649
+ document.addEventListener("mouseup", handleSplitMouseUp);
2650
+ document.body.style.cursor = "col-resize";
2651
+ document.body.style.userSelect = "none";
2652
+ } else {
2653
+ document.removeEventListener("mousemove", handleSplitMouseMove);
2654
+ document.removeEventListener("mouseup", handleSplitMouseUp);
2655
+ document.body.style.cursor = "";
2656
+ document.body.style.userSelect = "";
2596
2657
  }
2597
- }, [isAiOpened, navbarWidth]);
2658
+ return () => {
2659
+ document.removeEventListener("mousemove", handleSplitMouseMove);
2660
+ document.removeEventListener("mouseup", handleSplitMouseUp);
2661
+ document.body.style.cursor = "";
2662
+ document.body.style.userSelect = "";
2663
+ };
2664
+ }, [isSplitResizing, handleSplitMouseMove, handleSplitMouseUp]);
2665
+ const [navbarWidthAiOpen, setNavbarWidthAiOpen] = useLocalStorage("navbar-width-ai-open", 450);
2666
+ const [navbarWidthAiClosed, setNavbarWidthAiClosed] = useLocalStorage("navbar-width-ai-closed", 300);
2667
+ const navbarWidth = isAiOpened ? navbarWidthAiOpen : navbarWidthAiClosed;
2668
+ const [isNavbarResizing, setIsNavbarResizing] = useState(false);
2669
+ const isNavbarResizingRef = useRef(false);
2598
2670
  function clearNavbarListeners() {
2599
2671
  document.removeEventListener("mousemove", handleNavbarMouseMove);
2600
2672
  document.removeEventListener("mouseup", handleNavbarMouseUp);
@@ -2607,7 +2679,11 @@ function AppShellNavigation({
2607
2679
  const minWidth = isAiOpened ? 450 : 300;
2608
2680
  const maxWidth = 700;
2609
2681
  const newWidth = Math.min(Math.max(e.clientX, minWidth), maxWidth);
2610
- setNavbarWidth(newWidth);
2682
+ if (isAiOpened) {
2683
+ setNavbarWidthAiOpen(newWidth);
2684
+ } else {
2685
+ setNavbarWidthAiClosed(newWidth);
2686
+ }
2611
2687
  },
2612
2688
  [isAiOpened]
2613
2689
  );
@@ -2635,15 +2711,17 @@ function AppShellNavigation({
2635
2711
  const handleWindowResize = () => {
2636
2712
  const maxWidth = 700;
2637
2713
  const minWidth = isAiOpened ? 450 : 300;
2638
- if (navbarWidth > maxWidth) {
2639
- setNavbarWidth(maxWidth);
2640
- } else if (navbarWidth < minWidth) {
2641
- setNavbarWidth(minWidth);
2714
+ const currentWidth = isAiOpened ? navbarWidthAiOpen : navbarWidthAiClosed;
2715
+ const setter = isAiOpened ? setNavbarWidthAiOpen : setNavbarWidthAiClosed;
2716
+ if (currentWidth > maxWidth) {
2717
+ setter(maxWidth);
2718
+ } else if (currentWidth < minWidth) {
2719
+ setter(minWidth);
2642
2720
  }
2643
2721
  };
2644
2722
  window.addEventListener("resize", handleWindowResize);
2645
2723
  return () => window.removeEventListener("resize", handleWindowResize);
2646
- }, [navbarWidth, isAiOpened]);
2724
+ }, [navbarWidthAiOpen, navbarWidthAiClosed, isAiOpened]);
2647
2725
  return /* @__PURE__ */ jsxs(
2648
2726
  AppShell,
2649
2727
  {
@@ -2769,7 +2847,79 @@ function AppShellNavigation({
2769
2847
  ] })
2770
2848
  ] })
2771
2849
  ] }) }),
2772
- /* @__PURE__ */ jsx(AppShell.Main, { children }),
2850
+ /* @__PURE__ */ jsx(
2851
+ AppShell.Main,
2852
+ {
2853
+ style: {
2854
+ display: "flex",
2855
+ flexDirection: "column",
2856
+ height: "100vh",
2857
+ overflow: "hidden"
2858
+ },
2859
+ children: /* @__PURE__ */ jsxs(
2860
+ Flex,
2861
+ {
2862
+ ref: mainContainerRef,
2863
+ style: {
2864
+ flex: 1,
2865
+ height: "100%",
2866
+ overflow: "hidden",
2867
+ position: "relative"
2868
+ },
2869
+ children: [
2870
+ /* @__PURE__ */ jsx(
2871
+ Box,
2872
+ {
2873
+ bg: theme.bg.navIconsBg,
2874
+ style: {
2875
+ width: getCanvasWidth(),
2876
+ minWidth: shouldShowCanvas && canvasMode === "split" ? CANVAS_MIN_WIDTH : void 0,
2877
+ display: shouldShowCanvas ? "flex" : "none",
2878
+ flexDirection: "column",
2879
+ overflow: "hidden",
2880
+ height: "100%",
2881
+ transition: isSplitResizing ? "none" : "width 0.3s ease, opacity 0.2s ease",
2882
+ opacity: shouldShowCanvas ? 1 : 0,
2883
+ borderLeft: `1px solid ${theme.neutral.transparent10}`
2884
+ },
2885
+ children: canvasContent
2886
+ }
2887
+ ),
2888
+ canvasMode === "split" && !isRightPanelOpen && /* @__PURE__ */ jsx(
2889
+ Box,
2890
+ {
2891
+ w: 4,
2892
+ h: "100%",
2893
+ bg: isSplitResizing ? theme.colors.focus : "transparent",
2894
+ sx: {
2895
+ cursor: "col-resize",
2896
+ flexShrink: 0,
2897
+ transition: "background-color 0.2s ease"
2898
+ },
2899
+ onMouseDown: handleSplitMouseDown
2900
+ }
2901
+ ),
2902
+ /* @__PURE__ */ jsx(
2903
+ Box,
2904
+ {
2905
+ style: {
2906
+ width: getContentWidth(),
2907
+ minWidth: shouldShowContent && canvasMode === "split" ? CONTENT_MIN_WIDTH : void 0,
2908
+ display: shouldShowContent ? "flex" : "none",
2909
+ flexDirection: "column",
2910
+ overflow: "auto",
2911
+ height: "100%",
2912
+ transition: isSplitResizing ? "none" : "width 0.3s ease, opacity 0.2s ease",
2913
+ opacity: shouldShowContent ? 1 : 0
2914
+ },
2915
+ children
2916
+ }
2917
+ )
2918
+ ]
2919
+ }
2920
+ )
2921
+ }
2922
+ ),
2773
2923
  /* @__PURE__ */ jsx(AsideResizable, { asideCollapsed, onAsideToggle, onMaxExpand, width: asideWidth, onWidthChange: setAsideWidth, children: right })
2774
2924
  ]
2775
2925
  }
@@ -5791,13 +5941,13 @@ function ActionButton({ onClick, left, right }) {
5791
5941
  }
5792
5942
  );
5793
5943
  }
5794
- const MainAction = lazy(() => import("./index-D2vpQrea.js"));
5795
- const Header$1 = lazy(() => import("./index-CrLkPKdH.js"));
5796
- const Content = lazy(() => import("./index-CgY82myI.js"));
5944
+ const MainAction = lazy(() => import("./index-B3L8bASL.js"));
5945
+ const Header$1 = lazy(() => import("./index-Cjz-hgYn.js"));
5946
+ const Content = lazy(() => import("./index-CcmQ18nv.js"));
5797
5947
  const Map = lazy(() => import("./index-D5Ufmf-s.js"));
5798
5948
  const CustomContent = lazy(() => import("./index-DsYjW_4y.js"));
5799
- const Assets = lazy(() => import("./index-Dzht1xdr.js"));
5800
- const Actions = lazy(() => import("./index-BUOaLr6a.js"));
5949
+ const Assets = lazy(() => import("./index-FtJpq2EO.js"));
5950
+ const Actions = lazy(() => import("./index-kDLY4FBs.js"));
5801
5951
  const HOVER_BORDER_WIDTH = 1;
5802
5952
  function SodaCardCmp({ numSelected = 0, expanded = true, mainAction, header, content, map, customContent, customFooter, actions, assets, onClick }, ref) {
5803
5953
  const wrapperRef = useRef(null);
@@ -11112,4 +11262,4 @@ export {
11112
11262
  CardHero as y,
11113
11263
  CardSelector as z
11114
11264
  };
11115
- //# sourceMappingURL=components-B1a2iVqu.js.map
11265
+ //# sourceMappingURL=components-CzYIAVLV.js.map