@ixo/ui 0.1.0 → 0.1.2

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 (58) hide show
  1. package/dist/.vite/manifest.json +43 -43
  2. package/dist/components/AIChatToolbar/index.d.ts.map +1 -1
  3. package/dist/components/AppShellNavigation/components/AsideResizable.d.ts +3 -1
  4. package/dist/components/AppShellNavigation/components/AsideResizable.d.ts.map +1 -1
  5. package/dist/components/AppShellNavigation/components/MobileBurger.d.ts +13 -0
  6. package/dist/components/AppShellNavigation/components/MobileBurger.d.ts.map +1 -0
  7. package/dist/components/AppShellNavigation/index.d.ts +2 -1
  8. package/dist/components/AppShellNavigation/index.d.ts.map +1 -1
  9. package/dist/{components-Dd5AcCq0.js → components-DU5waziW.js} +142 -90
  10. package/dist/components-DU5waziW.js.map +1 -0
  11. package/dist/{components-DH1wUH8v.cjs → components-DmNQnT1T.cjs} +140 -88
  12. package/dist/components-DmNQnT1T.cjs.map +1 -0
  13. package/dist/constants/mantineTheme.d.ts.map +1 -1
  14. package/dist/export/components.cjs +1 -1
  15. package/dist/export/components.mjs +1 -1
  16. package/dist/{index-8mrl_91C.cjs → index-1Tkzfew0.cjs} +2 -2
  17. package/dist/{index-8mrl_91C.cjs.map → index-1Tkzfew0.cjs.map} +1 -1
  18. package/dist/{index-CnUrZJ6d.cjs → index-BZeVHJgv.cjs} +2 -2
  19. package/dist/{index-CnUrZJ6d.cjs.map → index-BZeVHJgv.cjs.map} +1 -1
  20. package/dist/{index-CJf3kiYw.js → index-BgZLJbJW.js} +2 -2
  21. package/dist/{index-CJf3kiYw.js.map → index-BgZLJbJW.js.map} +1 -1
  22. package/dist/{index-DPdnPYOK.cjs → index-BmvOflos.cjs} +3 -3
  23. package/dist/{index-DPdnPYOK.cjs.map → index-BmvOflos.cjs.map} +1 -1
  24. package/dist/{index-CEnAOLa3.cjs → index-BrKy3nSz.cjs} +2 -2
  25. package/dist/{index-CEnAOLa3.cjs.map → index-BrKy3nSz.cjs.map} +1 -1
  26. package/dist/{index-CHxc81t7.js → index-By1i1uLU.js} +2 -2
  27. package/dist/{index-CHxc81t7.js.map → index-By1i1uLU.js.map} +1 -1
  28. package/dist/{index-C9TPn4gB.cjs → index-C7R4oqBT.cjs} +2 -2
  29. package/dist/{index-C9TPn4gB.cjs.map → index-C7R4oqBT.cjs.map} +1 -1
  30. package/dist/{index-BwFcOXoo.cjs → index-CxphVeLF.cjs} +2 -2
  31. package/dist/{index-BwFcOXoo.cjs.map → index-CxphVeLF.cjs.map} +1 -1
  32. package/dist/{index-DCeJ-EjR.js → index-D0yj6C11.js} +2 -2
  33. package/dist/{index-DCeJ-EjR.js.map → index-D0yj6C11.js.map} +1 -1
  34. package/dist/{index-DcOglj4H.js → index-D7heNqqK.js} +2 -2
  35. package/dist/{index-DcOglj4H.js.map → index-D7heNqqK.js.map} +1 -1
  36. package/dist/{index-DX1KrNFO.cjs → index-DCwo8wx3.cjs} +3 -3
  37. package/dist/{index-DX1KrNFO.cjs.map → index-DCwo8wx3.cjs.map} +1 -1
  38. package/dist/{index-CWtfpAdi.cjs → index-DVUI2LeU.cjs} +2 -2
  39. package/dist/{index-CWtfpAdi.cjs.map → index-DVUI2LeU.cjs.map} +1 -1
  40. package/dist/{index-CNVan44C.js → index-DWyqNmtm.js} +2 -2
  41. package/dist/{index-CNVan44C.js.map → index-DWyqNmtm.js.map} +1 -1
  42. package/dist/{index-F3Bif7Ud.cjs → index-DgnK5qdX.cjs} +2 -2
  43. package/dist/{index-F3Bif7Ud.cjs.map → index-DgnK5qdX.cjs.map} +1 -1
  44. package/dist/{index-znGVxTmK.js → index-EYDtd-NN.js} +2 -2
  45. package/dist/{index-znGVxTmK.js.map → index-EYDtd-NN.js.map} +1 -1
  46. package/dist/{index-BQ756FwG.js → index-IuTPQRsY.js} +3 -3
  47. package/dist/{index-BQ756FwG.js.map → index-IuTPQRsY.js.map} +1 -1
  48. package/dist/{index-JPCFjEIL.js → index-RGurwgcA.js} +2 -2
  49. package/dist/{index-JPCFjEIL.js.map → index-RGurwgcA.js.map} +1 -1
  50. package/dist/{index-LMTN501y.js → index-WlnEQMCk.js} +3 -3
  51. package/dist/{index-LMTN501y.js.map → index-WlnEQMCk.js.map} +1 -1
  52. package/dist/{index-B3UsRV_8.cjs → index-XY4B3I-N.cjs} +2 -2
  53. package/dist/{index-B3UsRV_8.cjs.map → index-XY4B3I-N.cjs.map} +1 -1
  54. package/dist/{index-wQ0-D7du.js → index-zJl481wB.js} +2 -2
  55. package/dist/{index-wQ0-D7du.js.map → index-zJl481wB.js.map} +1 -1
  56. package/package.json +1 -1
  57. package/dist/components-DH1wUH8v.cjs.map +0 -1
  58. package/dist/components-Dd5AcCq0.js.map +0 -1
@@ -4,11 +4,11 @@ import { useTheme, jsx as jsx$1, keyframes, ThemeProvider } from "@emotion/react
4
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-CU7U_J3x.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
- 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, Space } from "@mantine/core";
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, CloseButton, Group, Burger, Divider, ScrollArea, Space, Overlay } from "@mantine/core";
8
8
  import { cx, css } from "@emotion/css";
9
9
  import { createPortal } from "react-dom";
10
10
  import DOMPurify from "dompurify";
11
- import { useResizeObserver, useHover, useDisclosure } from "@mantine/hooks";
11
+ import { useMediaQuery, useResizeObserver, useHover, useDisclosure } from "@mantine/hooks";
12
12
  import { a as useLocalStorage, E as EventEmitter, u as useEventSubscribe } from "./useEventSubscribe-BuXZL79s.js";
13
13
  import { u as useUITheme } from "./useUITheme-7i8NJ2FG.js";
14
14
  import Markdown from "react-markdown";
@@ -775,8 +775,8 @@ function AccordionTable({
775
775
  }
776
776
  );
777
777
  }
778
- const Header$3 = lazy(() => import("./index-CHxc81t7.js"));
779
- const Footer = lazy(() => import("./index-BQ756FwG.js"));
778
+ const Header$3 = lazy(() => import("./index-By1i1uLU.js"));
779
+ const Footer = lazy(() => import("./index-IuTPQRsY.js"));
780
780
  function ActionCard({ header, content, footer, useHoverMode = false }) {
781
781
  const hasContent = !!content || !!footer;
782
782
  const initialVisibility = footer?.startHidden !== true;
@@ -860,7 +860,7 @@ function Loader({ size, color = "primary" }) {
860
860
  }
861
861
  const CARD_WIDTH$1 = 350;
862
862
  const CARD_HEADER_HEIGHT = 158;
863
- const Header$2 = lazy(() => import("./index-JPCFjEIL.js"));
863
+ const Header$2 = lazy(() => import("./index-RGurwgcA.js"));
864
864
  function Card({ children, className, contentClassName, roundedBottom, noPadding = false, fullWidth = false, header, wrapperSx, onClick }) {
865
865
  const wrapperRef = useRef(null);
866
866
  const handleOnClick = useCallback(
@@ -1295,7 +1295,7 @@ function ModalSheet({ isOpen, children, hideHandler, zIndex, onRequestHide, onRe
1295
1295
  document.body
1296
1296
  );
1297
1297
  }
1298
- const Badge = lazy(() => import("./index-znGVxTmK.js"));
1298
+ const Badge = lazy(() => import("./index-EYDtd-NN.js"));
1299
1299
  function ActionSheet({ children, isOpen, header, navMenu = void 0, onRequestHide, onRequestShow }) {
1300
1300
  const shadowScrollRef = useRef(null);
1301
1301
  const wrapperContentAreaRef = useRef(null);
@@ -2103,6 +2103,7 @@ function AIInputBar({ placeholder, icon, disabledInput, disabledButton, valueInp
2103
2103
  );
2104
2104
  }
2105
2105
  function AIChatToolbar({ onClose, onHistoryClick, onPlusClick, onHistoryClose, onCanvasCycle, isHistoryOpened, canvasMode = "hidden", oracleModel, sessionTitle }) {
2106
+ const isMobile = useMediaQuery("(max-width: 48em)");
2106
2107
  const canvasActive = canvasMode !== "hidden";
2107
2108
  return /* @__PURE__ */ jsxs(Flex, { bg: "neutralColor.4", py: 16, justify: "space-between", align: "center", children: [
2108
2109
  /* @__PURE__ */ jsxs(Flex, { gap: 6, align: "center", children: [
@@ -2139,7 +2140,7 @@ function AIChatToolbar({ onClose, onHistoryClick, onPlusClick, onHistoryClose, o
2139
2140
  }
2140
2141
  ),
2141
2142
  /* @__PURE__ */ jsx(Center, { sx: { cursor: "pointer", borderRadius: 24 }, onClick: onHistoryClick, children: /* @__PURE__ */ jsx(HistorySolid, { size: 18, color: "secondary" }) }),
2142
- /* @__PURE__ */ jsx(
2143
+ !isMobile && /* @__PURE__ */ jsx(
2143
2144
  Center,
2144
2145
  {
2145
2146
  sx: {
@@ -2196,7 +2197,7 @@ function Avatar({ src, rounded = true, size = 62, did }) {
2196
2197
  }
2197
2198
  const MIN_WIDTH = 200;
2198
2199
  const MAX_WIDTH = 700;
2199
- function AsideResizable({ children, asideCollapsed = false, onAsideToggle, width = 450, onWidthChange, onMaxExpand }) {
2200
+ function AsideResizable({ children, navbarWidth, asideMaximized, asideCollapsed = false, onAsideToggle, width = 450, onWidthChange, onMaxExpand }) {
2200
2201
  const [isResizing, setIsResizing] = useState(false);
2201
2202
  const [ref] = useResizeObserver();
2202
2203
  const isShowingRef = useRef(false);
@@ -2273,9 +2274,9 @@ function AsideResizable({ children, asideCollapsed = false, onAsideToggle, width
2273
2274
  return /* @__PURE__ */ jsxs(
2274
2275
  AppShell.Aside,
2275
2276
  {
2276
- w: width,
2277
+ w: asideMaximized ? "100%" : width,
2277
2278
  miw: 200,
2278
- maw: MAX_WIDTH,
2279
+ maw: asideMaximized ? `calc(100% - ${navbarWidth}px)` : MAX_WIDTH,
2279
2280
  ref,
2280
2281
  sx: {
2281
2282
  overflowY: "auto",
@@ -2287,7 +2288,7 @@ function AsideResizable({ children, asideCollapsed = false, onAsideToggle, width
2287
2288
  }
2288
2289
  },
2289
2290
  children: [
2290
- /* @__PURE__ */ jsx(
2291
+ !asideMaximized && /* @__PURE__ */ jsx(
2291
2292
  Box,
2292
2293
  {
2293
2294
  w: 4,
@@ -2583,6 +2584,15 @@ function carbonToUSD(carbon) {
2583
2584
  maximumFractionDigits: 6
2584
2585
  });
2585
2586
  }
2587
+ function MobileBurger({ avatarIcon, isOpened, onClick }) {
2588
+ if (isOpened) {
2589
+ return /* @__PURE__ */ jsx(CloseButton, { hiddenFrom: "sm", pos: "absolute", w: 28, sx: { borderRadius: 8, zIndex: 100 }, h: 28, onClick, right: 12, top: 12, bg: "neutralColor.4" });
2590
+ }
2591
+ return /* @__PURE__ */ jsxs(Group, { hiddenFrom: "sm", pos: "absolute", left: 12, top: 12, onClick, p: 8, py: 4, wrap: "nowrap", w: "fit-content", gap: 6, sx: { borderRadius: 8, zIndex: 100 }, bg: "neutralColor.4", children: [
2592
+ avatarIcon && (typeof avatarIcon.icon === "string" ? /* @__PURE__ */ jsx(Image, { radius: 18, src: avatarIcon.icon, w: 18, h: 18 }) : avatarIcon.icon),
2593
+ /* @__PURE__ */ jsx(Burger, { lineSize: 2, pr: 0, size: "xs" })
2594
+ ] });
2595
+ }
2586
2596
  const CANVAS_MIN_WIDTH = 350;
2587
2597
  const CONTENT_MIN_WIDTH = 350;
2588
2598
  function AppShellNavigation({
@@ -2601,6 +2611,7 @@ function AppShellNavigation({
2601
2611
  roomCategories,
2602
2612
  right,
2603
2613
  asideCollapsed = true,
2614
+ asideMaximized = false,
2604
2615
  onAsideToggle,
2605
2616
  onMaxExpand,
2606
2617
  onAiOpen,
@@ -2615,8 +2626,10 @@ function AppShellNavigation({
2615
2626
  splitRatio = 0.4,
2616
2627
  onSplitRatioChange
2617
2628
  }) {
2618
- const [isNavbarNotCollapsed, { toggle: toggleNavbar }] = useDisclosure(true);
2619
2629
  const [asideWidth, setAsideWidth] = useState(450);
2630
+ const isMobile = useMediaQuery("(max-width: 48em)");
2631
+ const [mobileOpened, { toggle: toggleMobile }] = useDisclosure();
2632
+ const [desktopOpened, { toggle: toggleDesktop }] = useDisclosure(true);
2620
2633
  const [isSplitResizing, setIsSplitResizing] = useState(false);
2621
2634
  const isSplitResizingRef = useRef(false);
2622
2635
  const mainContainerRef = useRef(null);
@@ -2746,13 +2759,15 @@ function AppShellNavigation({
2746
2759
  transition: isNavbarResizing ? "none" : "width 0.3s ease"
2747
2760
  },
2748
2761
  aside: {
2749
- background: "var(--mantine-color-neutralColor-4)"
2762
+ background: "var(--mantine-color-neutralColor-2)",
2763
+ borderLeft: "1px solid var(--mantine-color-neutralColor-6)"
2750
2764
  }
2751
2765
  },
2752
2766
  bg: "neutralColor.2",
2753
2767
  navbar: {
2754
- width: isNavbarNotCollapsed ? navbarWidth : 56,
2755
- breakpoint: "sm"
2768
+ width: navbarWidth,
2769
+ breakpoint: "sm",
2770
+ collapsed: { mobile: !mobileOpened, desktop: !desktopOpened }
2756
2771
  },
2757
2772
  aside: {
2758
2773
  width: asideCollapsed ? 0 : asideWidth,
@@ -2778,7 +2793,7 @@ function AppShellNavigation({
2778
2793
  }
2779
2794
  ),
2780
2795
  /* @__PURE__ */ jsxs(Flex, { style: { height: "100%" }, children: [
2781
- /* @__PURE__ */ jsxs(Stack$1, { p: 8, w: 56, justify: "space-between", h: "100%", bg: "neutralColor.2", children: [
2796
+ /* @__PURE__ */ jsxs(Stack$1, { p: 8, w: 56, visibleFrom: "sm", justify: "space-between", h: "100%", bg: "neutralColor.2", children: [
2782
2797
  /* @__PURE__ */ jsxs(Stack$1, { align: "center", style: { flex: 1 }, gap: 8, children: [
2783
2798
  /* @__PURE__ */ jsxs(Center, { sx: { cursor: "pointer", borderRadius: 24 }, pos: "relative", h: 40, w: 40, onClick: companyIcon.onClick, children: [
2784
2799
  typeof companyIcon.icon === "string" ? /* @__PURE__ */ jsx(Image, { radius: 24, src: companyIcon.icon, w: 32, h: 32 }) : companyIcon.icon,
@@ -2828,12 +2843,12 @@ function AppShellNavigation({
2828
2843
  /* @__PURE__ */ jsx(Center, { sx: { cursor: "pointer", borderRadius: 24 }, bg: "neutralColor.5", h: 40, w: 40, onClick: onSettingsIconClick, children: /* @__PURE__ */ jsx(SettingsBarSolid, { size: 22, color: "secondary" }) })
2829
2844
  ] })
2830
2845
  ] }),
2831
- isAiOpened && isNavbarNotCollapsed && aiNavbarContent,
2832
- isNavbarNotCollapsed && !isAiOpened && /* @__PURE__ */ jsxs(Stack$1, { justify: "space-between", w: "100%", pt: 16, pb: 10, px: 12, children: [
2846
+ isAiOpened && !isMobile && aiNavbarContent,
2847
+ !isAiOpened && /* @__PURE__ */ jsxs(Stack$1, { justify: "space-between", w: "100%", pt: 16, pb: 10, px: 12, children: [
2833
2848
  /* @__PURE__ */ jsxs(Stack$1, { gap: 5, children: [
2834
2849
  /* @__PURE__ */ jsxs(Flex, { mb: 24, style: { width: "100%" }, justify: "space-between", align: "center", children: [
2835
2850
  /* @__PURE__ */ jsx(Flex, { align: "center", gap: "10px", children: /* @__PURE__ */ jsx(Tooltip$4, { label: pageItem.pageTitle || "Unknown", disabled: !isTitleOverflowing, position: "bottom", withArrow: true, children: /* @__PURE__ */ jsx(Text$1, { lh: 1, c: "neutralColor.8", children: cutText(pageItem.pageTitle, 19) || "Unknown" }) }) }),
2836
- isAiBtnVisible && !isAiOpened && /* @__PURE__ */ jsx(
2851
+ isAiBtnVisible && !isAiOpened && !isMobile && /* @__PURE__ */ jsx(
2837
2852
  Center,
2838
2853
  {
2839
2854
  sx: {
@@ -2866,80 +2881,117 @@ function AppShellNavigation({
2866
2881
  ] })
2867
2882
  ] })
2868
2883
  ] }) }),
2869
- /* @__PURE__ */ jsx(
2884
+ /* @__PURE__ */ jsxs(
2870
2885
  AppShell.Main,
2871
2886
  {
2872
2887
  style: {
2873
2888
  display: "flex",
2874
2889
  flexDirection: "column",
2875
2890
  height: "100vh",
2876
- overflow: "hidden"
2891
+ overflow: "hidden",
2892
+ position: "relative"
2877
2893
  },
2878
- children: /* @__PURE__ */ jsxs(
2879
- Flex,
2880
- {
2881
- ref: mainContainerRef,
2882
- style: {
2883
- flex: 1,
2884
- height: "100%",
2885
- overflow: "hidden",
2886
- position: "relative"
2887
- },
2888
- children: [
2889
- /* @__PURE__ */ jsx(
2890
- Box,
2891
- {
2892
- bg: "neutralColor.5",
2893
- style: {
2894
- width: getCanvasWidth(),
2895
- minWidth: shouldShowCanvas && canvasMode === "split" ? CANVAS_MIN_WIDTH : void 0,
2896
- display: shouldShowCanvas ? "flex" : "none",
2897
- flexDirection: "column",
2898
- overflow: "hidden",
2899
- height: "100%",
2900
- transition: isSplitResizing ? "none" : "width 0.3s ease, opacity 0.2s ease",
2901
- opacity: shouldShowCanvas ? 1 : 0,
2902
- borderLeft: "1px solid var(--mantine-color-neutralColor-6)"
2903
- },
2904
- children: canvasContent
2905
- }
2906
- ),
2907
- canvasMode === "split" && !isRightPanelOpen && /* @__PURE__ */ jsx(
2908
- Box,
2909
- {
2910
- w: 4,
2911
- h: "100%",
2912
- bg: isSplitResizing ? "accent.5" : "transparent",
2913
- sx: {
2914
- cursor: "col-resize",
2915
- flexShrink: 0,
2916
- transition: "background-color 0.2s ease"
2917
- },
2918
- onMouseDown: handleSplitMouseDown
2919
- }
2920
- ),
2921
- /* @__PURE__ */ jsx(
2922
- Box,
2923
- {
2924
- style: {
2925
- width: getContentWidth(),
2926
- minWidth: shouldShowContent && canvasMode === "split" ? CONTENT_MIN_WIDTH : void 0,
2927
- display: shouldShowContent ? "flex" : "none",
2928
- flexDirection: "column",
2929
- overflow: "auto",
2930
- height: "100%",
2931
- transition: isSplitResizing ? "none" : "width 0.3s ease, opacity 0.2s ease",
2932
- opacity: shouldShowContent ? 1 : 0
2933
- },
2934
- children
2935
- }
2936
- )
2937
- ]
2938
- }
2939
- )
2894
+ children: [
2895
+ mobileOpened && /* @__PURE__ */ jsx(Overlay, { hiddenFrom: "sm", color: "var(--mantine-color-neutralColor-0)", backgroundOpacity: 0.6, blur: 2, onClick: toggleMobile, zIndex: 99 }),
2896
+ /* @__PURE__ */ jsxs(
2897
+ Flex,
2898
+ {
2899
+ ref: mainContainerRef,
2900
+ style: {
2901
+ flex: 1,
2902
+ height: isMobile ? "calc(100% - 60px)" : "100%",
2903
+ overflow: "hidden",
2904
+ position: "relative",
2905
+ minHeight: 0,
2906
+ marginTop: isMobile && isAiOpened ? "calc(-100vh + 60px)" : 0,
2907
+ transition: isMobile ? "margin-top 0.5s ease" : "none"
2908
+ },
2909
+ children: [
2910
+ /* @__PURE__ */ jsx(
2911
+ Box,
2912
+ {
2913
+ bg: "neutralColor.5",
2914
+ style: {
2915
+ width: getCanvasWidth(),
2916
+ minWidth: shouldShowCanvas && canvasMode === "split" ? CANVAS_MIN_WIDTH : void 0,
2917
+ display: shouldShowCanvas ? "flex" : "none",
2918
+ flexDirection: "column",
2919
+ overflow: "hidden",
2920
+ height: "100%",
2921
+ transition: isSplitResizing ? "none" : "width 0.3s ease, opacity 0.2s ease",
2922
+ opacity: shouldShowCanvas ? 1 : 0,
2923
+ borderLeft: "1px solid var(--mantine-color-neutralColor-6)"
2924
+ },
2925
+ children: canvasContent
2926
+ }
2927
+ ),
2928
+ canvasMode === "split" && !isRightPanelOpen && /* @__PURE__ */ jsx(
2929
+ Box,
2930
+ {
2931
+ w: 4,
2932
+ h: "100%",
2933
+ bg: isSplitResizing ? "accent.5" : "transparent",
2934
+ sx: {
2935
+ cursor: "col-resize",
2936
+ flexShrink: 0,
2937
+ transition: "background-color 0.2s ease"
2938
+ },
2939
+ onMouseDown: handleSplitMouseDown
2940
+ }
2941
+ ),
2942
+ /* @__PURE__ */ jsxs(
2943
+ Box,
2944
+ {
2945
+ style: {
2946
+ width: getContentWidth(),
2947
+ minWidth: shouldShowContent && canvasMode === "split" ? CONTENT_MIN_WIDTH : void 0,
2948
+ display: shouldShowContent ? "flex" : "none",
2949
+ flexDirection: "column",
2950
+ overflow: "auto",
2951
+ height: "100%",
2952
+ transition: isSplitResizing ? "none" : "width 0.3s ease, opacity 0.2s ease",
2953
+ opacity: shouldShowContent ? 1 : 0
2954
+ },
2955
+ children: [
2956
+ /* @__PURE__ */ jsx(MobileBurger, { isOpened: mobileOpened, onClick: toggleMobile, avatarIcon }),
2957
+ children
2958
+ ]
2959
+ }
2960
+ )
2961
+ ]
2962
+ }
2963
+ ),
2964
+ isMobile && isAiBtnVisible && /* @__PURE__ */ jsxs(
2965
+ Box,
2966
+ {
2967
+ bg: "neutralColor.3",
2968
+ pos: "relative",
2969
+ h: isAiOpened ? "100%" : 60,
2970
+ sx: {
2971
+ transition: "height 0.5s ease"
2972
+ },
2973
+ children: [
2974
+ /* @__PURE__ */ jsx(Box, { onClick: onAiOpen, pos: "absolute", left: "50%", top: 18, sx: { zIndex: 3, transform: "translateX(-50%)" }, children: /* @__PURE__ */ jsx(Assistant, {}) }),
2975
+ isAiOpened && aiNavbarContent
2976
+ ]
2977
+ }
2978
+ )
2979
+ ]
2940
2980
  }
2941
2981
  ),
2942
- /* @__PURE__ */ jsx(AsideResizable, { asideCollapsed, onAsideToggle, onMaxExpand, width: asideWidth, onWidthChange: setAsideWidth, children: right })
2982
+ /* @__PURE__ */ jsx(
2983
+ AsideResizable,
2984
+ {
2985
+ navbarWidth,
2986
+ asideCollapsed,
2987
+ asideMaximized,
2988
+ onAsideToggle,
2989
+ onMaxExpand,
2990
+ width: asideWidth,
2991
+ onWidthChange: setAsideWidth,
2992
+ children: right
2993
+ }
2994
+ )
2943
2995
  ]
2944
2996
  }
2945
2997
  );
@@ -5959,13 +6011,13 @@ function ActionButton({ onClick, left, right }) {
5959
6011
  }
5960
6012
  );
5961
6013
  }
5962
- const MainAction = lazy(() => import("./index-DCeJ-EjR.js"));
5963
- const Header$1 = lazy(() => import("./index-CNVan44C.js"));
5964
- const Content = lazy(() => import("./index-CJf3kiYw.js"));
6014
+ const MainAction = lazy(() => import("./index-D0yj6C11.js"));
6015
+ const Header$1 = lazy(() => import("./index-DWyqNmtm.js"));
6016
+ const Content = lazy(() => import("./index-BgZLJbJW.js"));
5965
6017
  const Map = lazy(() => import("./index-D5Ufmf-s.js"));
5966
6018
  const CustomContent = lazy(() => import("./index-DsYjW_4y.js"));
5967
- const Assets = lazy(() => import("./index-DcOglj4H.js"));
5968
- const Actions = lazy(() => import("./index-LMTN501y.js"));
6019
+ const Assets = lazy(() => import("./index-D7heNqqK.js"));
6020
+ const Actions = lazy(() => import("./index-WlnEQMCk.js"));
5969
6021
  const HOVER_BORDER_WIDTH = 1;
5970
6022
  function SodaCardCmp({ numSelected = 0, expanded = true, mainAction, header, content, map, customContent, customFooter, actions, assets, onClick }, ref) {
5971
6023
  const wrapperRef = useRef(null);
@@ -11258,4 +11310,4 @@ export {
11258
11310
  CardHero as y,
11259
11311
  CardSelector as z
11260
11312
  };
11261
- //# sourceMappingURL=components-Dd5AcCq0.js.map
11313
+ //# sourceMappingURL=components-DU5waziW.js.map