@ixo/ui 0.0.32 → 0.0.34

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 (52) hide show
  1. package/dist/.vite/manifest.json +43 -43
  2. package/dist/components/AppShellNavigation/components/AsideResizable.d.ts.map +1 -1
  3. package/dist/components/AppShellNavigation/components/SpaceItem.d.ts +1 -1
  4. package/dist/components/AppShellNavigation/components/SpaceItem.d.ts.map +1 -1
  5. package/dist/components/AppShellNavigation/index.d.ts.map +1 -1
  6. package/dist/{components-DPqvQksg.js → components-Bbc5HijA.js} +173 -94
  7. package/dist/{components-DPqvQksg.js.map → components-Bbc5HijA.js.map} +1 -1
  8. package/dist/{components-CauA8pj8.cjs → components-BpMWfEEt.cjs} +172 -93
  9. package/dist/{components-CauA8pj8.cjs.map → components-BpMWfEEt.cjs.map} +1 -1
  10. package/dist/export/components.cjs +1 -1
  11. package/dist/export/components.mjs +1 -1
  12. package/dist/{index-gyuoLLqZ.js → index-B91AEI-O.js} +2 -2
  13. package/dist/{index-gyuoLLqZ.js.map → index-B91AEI-O.js.map} +1 -1
  14. package/dist/{index-DUJPoVEz.js → index-BJ_C_QL7.js} +2 -2
  15. package/dist/{index-DUJPoVEz.js.map → index-BJ_C_QL7.js.map} +1 -1
  16. package/dist/{index-BPxg0Mo_.cjs → index-BYkENVo6.cjs} +2 -2
  17. package/dist/{index-BPxg0Mo_.cjs.map → index-BYkENVo6.cjs.map} +1 -1
  18. package/dist/{index-DoAqrgoe.cjs → index-C5RwHoR5.cjs} +2 -2
  19. package/dist/{index-DoAqrgoe.cjs.map → index-C5RwHoR5.cjs.map} +1 -1
  20. package/dist/{index-4-WAoT04.cjs → index-CJEzVPBB.cjs} +2 -2
  21. package/dist/{index-4-WAoT04.cjs.map → index-CJEzVPBB.cjs.map} +1 -1
  22. package/dist/{index-DLj4vuH1.js → index-CcdgltF2.js} +2 -2
  23. package/dist/{index-DLj4vuH1.js.map → index-CcdgltF2.js.map} +1 -1
  24. package/dist/{index-CGvP6mHR.js → index-Cd9_EsL3.js} +2 -2
  25. package/dist/{index-CGvP6mHR.js.map → index-Cd9_EsL3.js.map} +1 -1
  26. package/dist/{index-DkNehzf5.cjs → index-ChMy4OWq.cjs} +3 -3
  27. package/dist/{index-DkNehzf5.cjs.map → index-ChMy4OWq.cjs.map} +1 -1
  28. package/dist/{index-DqlwX9tL.js → index-Cps8sTdh.js} +3 -3
  29. package/dist/{index-DqlwX9tL.js.map → index-Cps8sTdh.js.map} +1 -1
  30. package/dist/{index-Dl77uT7x.cjs → index-CrKmiIcJ.cjs} +2 -2
  31. package/dist/{index-Dl77uT7x.cjs.map → index-CrKmiIcJ.cjs.map} +1 -1
  32. package/dist/{index-BWrX_4fe.cjs → index-DYyekNVE.cjs} +2 -2
  33. package/dist/{index-BWrX_4fe.cjs.map → index-DYyekNVE.cjs.map} +1 -1
  34. package/dist/{index-lAIEKxbm.js → index-DiC6w4Dz.js} +3 -3
  35. package/dist/{index-lAIEKxbm.js.map → index-DiC6w4Dz.js.map} +1 -1
  36. package/dist/{index-BLdnv_e1.cjs → index-DmZxf_3K.cjs} +2 -2
  37. package/dist/{index-BLdnv_e1.cjs.map → index-DmZxf_3K.cjs.map} +1 -1
  38. package/dist/{index-cR-aohFS.js → index-DthSPEUj.js} +2 -2
  39. package/dist/{index-cR-aohFS.js.map → index-DthSPEUj.js.map} +1 -1
  40. package/dist/{index-CQ2SLAnM.js → index-Dw-UB8QG.js} +2 -2
  41. package/dist/{index-CQ2SLAnM.js.map → index-Dw-UB8QG.js.map} +1 -1
  42. package/dist/{index-CnChWDoH.cjs → index-T_N7l0dY.cjs} +2 -2
  43. package/dist/{index-CnChWDoH.cjs.map → index-T_N7l0dY.cjs.map} +1 -1
  44. package/dist/{index-CQCBLVmi.js → index-Tr9N7wIo.js} +2 -2
  45. package/dist/{index-CQCBLVmi.js.map → index-Tr9N7wIo.js.map} +1 -1
  46. package/dist/{index-B8OQBdXX.js → index-WpYDX7r4.js} +2 -2
  47. package/dist/{index-B8OQBdXX.js.map → index-WpYDX7r4.js.map} +1 -1
  48. package/dist/{index-DO_9y-Xf.cjs → index-YrKDHLOm.cjs} +3 -3
  49. package/dist/{index-DO_9y-Xf.cjs.map → index-YrKDHLOm.cjs.map} +1 -1
  50. package/dist/{index-jl9ABKeh.cjs → index-dOpxVj7U.cjs} +2 -2
  51. package/dist/{index-jl9ABKeh.cjs.map → index-dOpxVj7U.cjs.map} +1 -1
  52. package/package.json +1 -1
@@ -797,8 +797,8 @@ function AccordionTable({
797
797
  }
798
798
  );
799
799
  }
800
- const Header$3 = react$1.lazy(() => Promise.resolve().then(() => require("./index-DoAqrgoe.cjs")));
801
- const Footer = react$1.lazy(() => Promise.resolve().then(() => require("./index-DkNehzf5.cjs")));
800
+ const Header$3 = react$1.lazy(() => Promise.resolve().then(() => require("./index-C5RwHoR5.cjs")));
801
+ const Footer = react$1.lazy(() => Promise.resolve().then(() => require("./index-ChMy4OWq.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-BPxg0Mo_.cjs")));
885
+ const Header$2 = react$1.lazy(() => Promise.resolve().then(() => require("./index-BYkENVo6.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-Dl77uT7x.cjs")));
1320
+ const Badge = react$1.lazy(() => Promise.resolve().then(() => require("./index-CrKmiIcJ.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);
@@ -2207,6 +2207,7 @@ function Avatar({ src, rounded = true, size = 62, did }) {
2207
2207
  return /* @__PURE__ */ jsxRuntime.jsx(UsersSolid.User, { css: ({ text }) => ({ ...css2, backgroundColor: text.secondary }) });
2208
2208
  }
2209
2209
  const MIN_WIDTH = 200;
2210
+ const MAX_WIDTH = 700;
2210
2211
  function AsideResizable({ children, asideCollapsed = false, onAsideToggle, width = 450, onWidthChange, onMaxExpand }) {
2211
2212
  const [isResizing, setIsResizing] = react$1.useState(false);
2212
2213
  const [ref] = hooks.useResizeObserver();
@@ -2242,7 +2243,7 @@ function AsideResizable({ children, asideCollapsed = false, onAsideToggle, width
2242
2243
  const handleMouseMove = (e) => {
2243
2244
  if (!isResizing) return;
2244
2245
  const newWidth = window.innerWidth - e.clientX;
2245
- const maxWidth = window.innerWidth - 600;
2246
+ const maxWidth = Math.min(window.innerWidth - 600, MAX_WIDTH);
2246
2247
  const constrainedWidth = Math.min(Math.max(newWidth, MIN_WIDTH), maxWidth);
2247
2248
  onWidthChange?.(constrainedWidth);
2248
2249
  };
@@ -2253,7 +2254,7 @@ function AsideResizable({ children, asideCollapsed = false, onAsideToggle, width
2253
2254
  }
2254
2255
  }, [width, asideCollapsed, onAsideToggle]);
2255
2256
  react$1.useEffect(() => {
2256
- const maxWidth = window.innerWidth - 600;
2257
+ const maxWidth = Math.min(window.innerWidth - 600, MAX_WIDTH);
2257
2258
  if (width >= maxWidth && onMaxExpand && !hasFiredMaxExpand.current) {
2258
2259
  hasFiredMaxExpand.current = true;
2259
2260
  clearListeners();
@@ -2264,7 +2265,7 @@ function AsideResizable({ children, asideCollapsed = false, onAsideToggle, width
2264
2265
  }, [width, onMaxExpand]);
2265
2266
  react$1.useEffect(() => {
2266
2267
  const handleWindowResize = () => {
2267
- const newMaxWidth = window.innerWidth - 600;
2268
+ const newMaxWidth = Math.min(window.innerWidth - 600, MAX_WIDTH);
2268
2269
  const newMinWidth = MIN_WIDTH;
2269
2270
  if (width > newMaxWidth) {
2270
2271
  onWidthChange?.(newMaxWidth);
@@ -2286,7 +2287,7 @@ function AsideResizable({ children, asideCollapsed = false, onAsideToggle, width
2286
2287
  {
2287
2288
  w: width,
2288
2289
  miw: 200,
2289
- maw: window.innerWidth - 340,
2290
+ maw: MAX_WIDTH,
2290
2291
  ref,
2291
2292
  sx: {
2292
2293
  overflowY: "auto",
@@ -2522,7 +2523,7 @@ function SelectedIndicator() {
2522
2523
  }
2523
2524
  );
2524
2525
  }
2525
- function SpaceItem({ icon, id, selectedSpace, onClick }) {
2526
+ function SpaceItem({ icon, id, name, selectedSpace, onClick }) {
2526
2527
  const { hovered, ref } = hooks.useHover();
2527
2528
  const theme = useUITheme.useUITheme();
2528
2529
  const isSelected = selectedSpace === id;
@@ -2540,7 +2541,7 @@ function SpaceItem({ icon, id, selectedSpace, onClick }) {
2540
2541
  w: 40,
2541
2542
  onClick: () => onClick(id),
2542
2543
  children: [
2543
- typeof icon === "string" ? /* @__PURE__ */ jsxRuntime.jsx(core.Image, { radius: 24, src: icon, w: 32, h: 32 }) : icon,
2544
+ /* @__PURE__ */ jsxRuntime.jsx(core.Tooltip, { label: name, ml: 5, fz: 12, position: "right", withArrow: true, children: typeof icon === "string" ? /* @__PURE__ */ jsxRuntime.jsx(core.Image, { radius: 24, src: icon, w: 32, h: 32 }) : icon }),
2544
2545
  isSelected && /* @__PURE__ */ jsxRuntime.jsx(SelectedIndicator, {})
2545
2546
  ]
2546
2547
  }
@@ -2576,6 +2577,65 @@ function AppShellNavigation({
2576
2577
  const [isNavbarNotCollapsed, { toggle: toggleNavbar }] = hooks.useDisclosure(true);
2577
2578
  const [asideWidth, setAsideWidth] = react$1.useState(450);
2578
2579
  const theme = useUITheme.useUITheme();
2580
+ const [navbarWidth, setNavbarWidth] = react$1.useState(isAiOpened ? 450 : 300);
2581
+ const [isNavbarResizing, setIsNavbarResizing] = react$1.useState(false);
2582
+ const isNavbarResizingRef = react$1.useRef(false);
2583
+ react$1.useEffect(() => {
2584
+ const minWidth = isAiOpened ? 450 : 300;
2585
+ if (navbarWidth < minWidth) {
2586
+ setNavbarWidth(minWidth);
2587
+ }
2588
+ }, [isAiOpened, navbarWidth]);
2589
+ function clearNavbarListeners() {
2590
+ document.removeEventListener("mousemove", handleNavbarMouseMove);
2591
+ document.removeEventListener("mouseup", handleNavbarMouseUp);
2592
+ document.body.style.cursor = "";
2593
+ document.body.style.userSelect = "";
2594
+ }
2595
+ const handleNavbarMouseMove = react$1.useCallback(
2596
+ (e) => {
2597
+ if (!isNavbarResizingRef.current) return;
2598
+ const minWidth = isAiOpened ? 450 : 300;
2599
+ const maxWidth = 700;
2600
+ const newWidth = Math.min(Math.max(e.clientX, minWidth), maxWidth);
2601
+ setNavbarWidth(newWidth);
2602
+ },
2603
+ [isAiOpened]
2604
+ );
2605
+ const handleNavbarMouseUp = react$1.useCallback(() => {
2606
+ setIsNavbarResizing(false);
2607
+ isNavbarResizingRef.current = false;
2608
+ }, []);
2609
+ const handleNavbarMouseDown = (e) => {
2610
+ e.preventDefault();
2611
+ setIsNavbarResizing(true);
2612
+ isNavbarResizingRef.current = true;
2613
+ };
2614
+ react$1.useEffect(() => {
2615
+ if (isNavbarResizing) {
2616
+ document.addEventListener("mousemove", handleNavbarMouseMove);
2617
+ document.addEventListener("mouseup", handleNavbarMouseUp);
2618
+ document.body.style.cursor = "col-resize";
2619
+ document.body.style.userSelect = "none";
2620
+ } else {
2621
+ console.count("2");
2622
+ clearNavbarListeners();
2623
+ }
2624
+ return () => clearNavbarListeners();
2625
+ }, [isNavbarResizing, handleNavbarMouseMove, handleNavbarMouseUp]);
2626
+ react$1.useEffect(() => {
2627
+ const handleWindowResize = () => {
2628
+ const maxWidth = 700;
2629
+ const minWidth = isAiOpened ? 450 : 300;
2630
+ if (navbarWidth > maxWidth) {
2631
+ setNavbarWidth(maxWidth);
2632
+ } else if (navbarWidth < minWidth) {
2633
+ setNavbarWidth(minWidth);
2634
+ }
2635
+ };
2636
+ window.addEventListener("resize", handleWindowResize);
2637
+ return () => window.removeEventListener("resize", handleWindowResize);
2638
+ }, [navbarWidth, isAiOpened]);
2579
2639
  return /* @__PURE__ */ jsxRuntime.jsxs(
2580
2640
  core.AppShell,
2581
2641
  {
@@ -2583,7 +2643,7 @@ function AppShellNavigation({
2583
2643
  styles: {
2584
2644
  navbar: {
2585
2645
  background: theme.bg.navIconsBg,
2586
- transition: "width 0.3s ease"
2646
+ transition: isNavbarResizing ? "none" : "width 0.3s ease"
2587
2647
  },
2588
2648
  aside: {
2589
2649
  background: theme.bg.navScaled
@@ -2591,7 +2651,7 @@ function AppShellNavigation({
2591
2651
  },
2592
2652
  bg: theme.bg.centralCanvasBg,
2593
2653
  navbar: {
2594
- width: isNavbarNotCollapsed ? isAiOpened ? 450 : 300 : 56,
2654
+ width: isNavbarNotCollapsed ? navbarWidth : 56,
2595
2655
  breakpoint: "sm"
2596
2656
  },
2597
2657
  aside: {
@@ -2599,90 +2659,109 @@ function AppShellNavigation({
2599
2659
  breakpoint: "sm"
2600
2660
  },
2601
2661
  children: [
2602
- /* @__PURE__ */ jsxRuntime.jsx(core.AppShell.Navbar, { children: /* @__PURE__ */ jsxRuntime.jsxs(Flex, { style: { height: "100%" }, children: [
2603
- /* @__PURE__ */ jsxRuntime.jsxs(core.Stack, { p: 8, w: 56, justify: "space-between", h: "100%", bg: theme.bg.navSpaces, children: [
2604
- /* @__PURE__ */ jsxRuntime.jsxs(core.Stack, { align: "center", style: { flex: 1 }, gap: 8, children: [
2605
- /* @__PURE__ */ jsxRuntime.jsxs(core.Center, { sx: { cursor: "pointer", borderRadius: 24 }, pos: "relative", h: 40, w: 40, onClick: companyIcon.onClick, children: [
2606
- typeof companyIcon.icon === "string" ? /* @__PURE__ */ jsxRuntime.jsx(core.Image, { radius: 24, src: companyIcon.icon, w: 32, h: 32 }) : companyIcon.icon,
2607
- companyIcon.isSelected && /* @__PURE__ */ jsxRuntime.jsx(SelectedIndicator, {})
2608
- ] }),
2609
- avatarIcon && /* @__PURE__ */ jsxRuntime.jsxs(core.Center, { sx: { cursor: "pointer", borderRadius: 24 }, pos: "relative", bg: theme.bg.navIconsBg, h: 40, w: 40, onClick: avatarIcon.onClick, children: [
2610
- typeof avatarIcon.icon === "string" ? /* @__PURE__ */ jsxRuntime.jsx(core.Image, { radius: 24, src: avatarIcon.icon, w: 32, h: 32 }) : avatarIcon.icon,
2611
- avatarIcon.isSelected && /* @__PURE__ */ jsxRuntime.jsx(SelectedIndicator, {})
2612
- ] }),
2613
- /* @__PURE__ */ jsxRuntime.jsx(core.Divider, { w: 40, mx: 10, color: theme.neutral.transparent10 }),
2614
- temporarySpace && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2615
- /* @__PURE__ */ jsxRuntime.jsx(
2616
- SpaceItem,
2617
- {
2618
- selectedSpace,
2619
- icon: temporarySpace.icon,
2620
- name: temporarySpace.name,
2621
- id: temporarySpace.id,
2622
- onClick: temporarySpace.onClick
2623
- },
2624
- temporarySpace.id
2625
- ),
2626
- /* @__PURE__ */ jsxRuntime.jsx(core.Divider, { w: 40, mx: 10, color: theme.neutral.transparent10 })
2627
- ] }),
2628
- /* @__PURE__ */ jsxRuntime.jsx(
2629
- core.Stack,
2630
- {
2631
- align: "center",
2632
- gap: 8,
2633
- style: {
2634
- flex: 1,
2635
- overflowY: "auto",
2636
- maxHeight: "calc(100vh - 300px)",
2637
- scrollbarWidth: "none",
2638
- msOverflowStyle: "none"
2639
- },
2640
- sx: {
2641
- "&::-webkit-scrollbar": {
2642
- display: "none"
2643
- }
2644
- },
2645
- children: spaces.map(({ icon, id, name, onClick }) => /* @__PURE__ */ jsxRuntime.jsx(SpaceItem, { selectedSpace, icon, name, id, onClick }, id))
2646
- }
2647
- )
2648
- ] }),
2649
- onAddSpaceClick && /* @__PURE__ */ jsxRuntime.jsx(core.Center, { sx: { cursor: "pointer", borderRadius: 24 }, bg: theme.bg.navIconsBg, h: 40, w: 40, onClick: onAddSpaceClick, children: /* @__PURE__ */ jsxRuntime.jsx(UsersSolid.PlusSolid, { color: "secondary" }) }),
2650
- onMinusSpaceClick && /* @__PURE__ */ jsxRuntime.jsx(core.Center, { sx: { cursor: "pointer", borderRadius: 24 }, bg: theme.bg.navIconsBg, h: 40, w: 40, onClick: onMinusSpaceClick, children: /* @__PURE__ */ jsxRuntime.jsx(UsersSolid.MinusCircleSolid, { color: "secondary" }) }),
2651
- /* @__PURE__ */ jsxRuntime.jsxs(core.Stack, { align: "center", gap: 8, children: [
2652
- /* @__PURE__ */ jsxRuntime.jsx(core.Divider, { w: 40, mx: 10, color: theme.neutral.transparent10 }),
2653
- /* @__PURE__ */ jsxRuntime.jsx(core.Center, { sx: { cursor: "pointer", borderRadius: 24 }, bg: theme.bg.navIconsBg, h: 40, w: 40, onClick: onSettingsIconClick, children: /* @__PURE__ */ jsxRuntime.jsx(UsersSolid.SettingsBarSolid, { size: 22, color: "secondary" }) })
2654
- ] })
2655
- ] }),
2656
- isAiOpened && isNavbarNotCollapsed && aiNavbarContent,
2657
- isNavbarNotCollapsed && !isAiOpened && /* @__PURE__ */ jsxRuntime.jsxs(core.Stack, { justify: "space-between", w: "100%", pt: 16, pb: 10, px: 12, children: [
2658
- /* @__PURE__ */ jsxRuntime.jsxs(core.Stack, { gap: 5, children: [
2659
- /* @__PURE__ */ jsxRuntime.jsxs(Flex, { mb: 24, style: { width: "100%" }, justify: "space-between", align: "center", children: [
2660
- /* @__PURE__ */ jsxRuntime.jsxs(Flex, { align: "center", gap: "10px", children: [
2661
- isBackButtonVisible ? /* @__PURE__ */ jsxRuntime.jsx(core.Center, { onClick: onBackClick, sx: { borderRadius: 4, cursor: "pointer", padding: 2, background: theme.bg.navIconsBg }, children: /* @__PURE__ */ jsxRuntime.jsx(UsersSolid.ArrowLeftSolid, { size: 18 }) }) : /* @__PURE__ */ jsxRuntime.jsx(core.Center, { sx: { borderRadius: 4, padding: 2, background: theme.bg.navIconsBg }, children: pageItem.pageIcon ? /* @__PURE__ */ jsxRuntime.jsx(pageItem.pageIcon, { size: 18 }) : /* @__PURE__ */ jsxRuntime.jsx(UsersSolid.Globe, { size: 18 }) }),
2662
- /* @__PURE__ */ jsxRuntime.jsx(core.Text, { lh: 1, c: theme.text.overPicture, children: pageItem.pageTitle || "Unknown" })
2662
+ /* @__PURE__ */ jsxRuntime.jsx(core.AppShell.Navbar, { children: /* @__PURE__ */ jsxRuntime.jsxs(core.Box, { sx: { position: "relative", height: "100%" }, children: [
2663
+ /* @__PURE__ */ jsxRuntime.jsx(
2664
+ core.Box,
2665
+ {
2666
+ w: 4,
2667
+ top: 0,
2668
+ right: 0,
2669
+ h: "100%",
2670
+ pos: "absolute",
2671
+ bg: isNavbarResizing ? theme.colors.focus : "transparent",
2672
+ sx: {
2673
+ zIndex: 2,
2674
+ cursor: "col-resize",
2675
+ transition: "background-color 0.2s ease"
2676
+ },
2677
+ onMouseDown: handleNavbarMouseDown
2678
+ }
2679
+ ),
2680
+ /* @__PURE__ */ jsxRuntime.jsxs(Flex, { style: { height: "100%" }, children: [
2681
+ /* @__PURE__ */ jsxRuntime.jsxs(core.Stack, { p: 8, w: 56, justify: "space-between", h: "100%", bg: theme.bg.navSpaces, children: [
2682
+ /* @__PURE__ */ jsxRuntime.jsxs(core.Stack, { align: "center", style: { flex: 1 }, gap: 8, children: [
2683
+ /* @__PURE__ */ jsxRuntime.jsxs(core.Center, { sx: { cursor: "pointer", borderRadius: 24 }, pos: "relative", h: 40, w: 40, onClick: companyIcon.onClick, children: [
2684
+ typeof companyIcon.icon === "string" ? /* @__PURE__ */ jsxRuntime.jsx(core.Image, { radius: 24, src: companyIcon.icon, w: 32, h: 32 }) : companyIcon.icon,
2685
+ companyIcon.isSelected && /* @__PURE__ */ jsxRuntime.jsx(SelectedIndicator, {})
2663
2686
  ] }),
2664
- isAiBtnVisible && !isAiOpened && /* @__PURE__ */ jsxRuntime.jsx(
2665
- core.Center,
2687
+ avatarIcon && /* @__PURE__ */ jsxRuntime.jsxs(core.Center, { sx: { cursor: "pointer", borderRadius: 24 }, pos: "relative", bg: theme.bg.navIconsBg, h: 40, w: 40, onClick: avatarIcon.onClick, children: [
2688
+ /* @__PURE__ */ jsxRuntime.jsx(core.Tooltip, { label: "Home", position: "right", withArrow: true, ml: 5, fz: 12, children: typeof avatarIcon.icon === "string" ? /* @__PURE__ */ jsxRuntime.jsx(core.Image, { radius: 24, src: avatarIcon.icon, w: 32, h: 32 }) : avatarIcon.icon }),
2689
+ avatarIcon.isSelected && /* @__PURE__ */ jsxRuntime.jsx(SelectedIndicator, {})
2690
+ ] }),
2691
+ /* @__PURE__ */ jsxRuntime.jsx(core.Divider, { w: 40, mx: 10, color: theme.neutral.transparent10 }),
2692
+ temporarySpace && !spaces?.some((space) => space.id === temporarySpace.id) && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2693
+ /* @__PURE__ */ jsxRuntime.jsx(
2694
+ SpaceItem,
2695
+ {
2696
+ selectedSpace,
2697
+ icon: temporarySpace.icon,
2698
+ name: temporarySpace.name,
2699
+ id: temporarySpace.id,
2700
+ onClick: temporarySpace.onClick
2701
+ },
2702
+ temporarySpace.id
2703
+ ),
2704
+ /* @__PURE__ */ jsxRuntime.jsx(core.Divider, { w: 40, mx: 10, color: theme.neutral.transparent10 })
2705
+ ] }),
2706
+ /* @__PURE__ */ jsxRuntime.jsx(
2707
+ core.Stack,
2666
2708
  {
2709
+ align: "center",
2710
+ gap: 8,
2711
+ style: {
2712
+ flex: 1,
2713
+ overflowY: "auto",
2714
+ maxHeight: "calc(100vh - 300px)",
2715
+ scrollbarWidth: "none",
2716
+ msOverflowStyle: "none"
2717
+ },
2667
2718
  sx: {
2668
- cursor: "pointer",
2669
- borderRadius: 8,
2670
- transition: "background 0.15s",
2671
- background: theme.neutral.transparent10,
2672
- "&:hover": {
2673
- background: theme.neutral.transparent30
2719
+ "&::-webkit-scrollbar": {
2720
+ display: "none"
2674
2721
  }
2675
2722
  },
2676
- p: 4,
2677
- onClick: onAiOpen,
2678
- children: /* @__PURE__ */ jsxRuntime.jsx(UsersSolid.Assistant, { size: 18, color: "primary" })
2723
+ children: spaces.map(({ icon, id, name, onClick }) => /* @__PURE__ */ jsxRuntime.jsx(SpaceItem, { selectedSpace, icon, name, id, onClick }, id))
2679
2724
  }
2680
2725
  )
2681
2726
  ] }),
2682
- 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)),
2683
- roomCategories && roomCategories.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(core.Stack, { gap: 8, mt: 16, children: roomCategories.map((category) => /* @__PURE__ */ jsxRuntime.jsx(RoomCategory, { category }, category.id)) })
2727
+ onAddSpaceClick && /* @__PURE__ */ jsxRuntime.jsx(core.Center, { sx: { cursor: "pointer", borderRadius: 24 }, bg: theme.bg.navIconsBg, h: 40, w: 40, onClick: onAddSpaceClick, children: /* @__PURE__ */ jsxRuntime.jsx(UsersSolid.PlusSolid, { color: "secondary" }) }),
2728
+ onMinusSpaceClick && /* @__PURE__ */ jsxRuntime.jsx(core.Center, { sx: { cursor: "pointer", borderRadius: 24 }, bg: theme.bg.navIconsBg, h: 40, w: 40, onClick: onMinusSpaceClick, children: /* @__PURE__ */ jsxRuntime.jsx(UsersSolid.MinusCircleSolid, { color: "secondary" }) }),
2729
+ /* @__PURE__ */ jsxRuntime.jsxs(core.Stack, { align: "center", gap: 8, children: [
2730
+ /* @__PURE__ */ jsxRuntime.jsx(core.Divider, { w: 40, mx: 10, color: theme.neutral.transparent10 }),
2731
+ /* @__PURE__ */ jsxRuntime.jsx(core.Center, { sx: { cursor: "pointer", borderRadius: 24 }, bg: theme.bg.navIconsBg, h: 40, w: 40, onClick: onSettingsIconClick, children: /* @__PURE__ */ jsxRuntime.jsx(UsersSolid.SettingsBarSolid, { size: 22, color: "secondary" }) })
2732
+ ] })
2684
2733
  ] }),
2685
- /* @__PURE__ */ jsxRuntime.jsx(core.Stack, { gap: 5, children: footerContent })
2734
+ isAiOpened && isNavbarNotCollapsed && aiNavbarContent,
2735
+ isNavbarNotCollapsed && !isAiOpened && /* @__PURE__ */ jsxRuntime.jsxs(core.Stack, { justify: "space-between", w: "100%", pt: 16, pb: 10, px: 12, children: [
2736
+ /* @__PURE__ */ jsxRuntime.jsxs(core.Stack, { gap: 5, children: [
2737
+ /* @__PURE__ */ jsxRuntime.jsxs(Flex, { mb: 24, style: { width: "100%" }, justify: "space-between", align: "center", children: [
2738
+ /* @__PURE__ */ jsxRuntime.jsxs(Flex, { align: "center", gap: "10px", children: [
2739
+ isBackButtonVisible ? /* @__PURE__ */ jsxRuntime.jsx(core.Center, { onClick: onBackClick, sx: { borderRadius: 4, cursor: "pointer", padding: 2, background: theme.bg.navIconsBg }, children: /* @__PURE__ */ jsxRuntime.jsx(UsersSolid.ArrowLeftSolid, { size: 18 }) }) : /* @__PURE__ */ jsxRuntime.jsx(core.Center, { sx: { borderRadius: 4, padding: 2, background: theme.bg.navIconsBg }, children: pageItem.pageIcon ? /* @__PURE__ */ jsxRuntime.jsx(pageItem.pageIcon, { size: 18 }) : /* @__PURE__ */ jsxRuntime.jsx(UsersSolid.Globe, { size: 18 }) }),
2740
+ /* @__PURE__ */ jsxRuntime.jsx(core.Text, { lh: 1, c: theme.text.overPicture, children: pageItem.pageTitle || "Unknown" })
2741
+ ] }),
2742
+ isAiBtnVisible && !isAiOpened && /* @__PURE__ */ jsxRuntime.jsx(
2743
+ core.Center,
2744
+ {
2745
+ sx: {
2746
+ cursor: "pointer",
2747
+ borderRadius: 8,
2748
+ transition: "background 0.15s",
2749
+ background: theme.neutral.transparent10,
2750
+ "&:hover": {
2751
+ background: theme.neutral.transparent30
2752
+ }
2753
+ },
2754
+ p: 4,
2755
+ onClick: onAiOpen,
2756
+ children: /* @__PURE__ */ jsxRuntime.jsx(UsersSolid.Assistant, { size: 18, color: "primary" })
2757
+ }
2758
+ )
2759
+ ] }),
2760
+ 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)),
2761
+ roomCategories && roomCategories.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(core.Stack, { gap: 8, mt: 16, children: roomCategories.map((category) => /* @__PURE__ */ jsxRuntime.jsx(RoomCategory, { category }, category.id)) })
2762
+ ] }),
2763
+ /* @__PURE__ */ jsxRuntime.jsx(core.Stack, { gap: 5, children: footerContent })
2764
+ ] })
2686
2765
  ] })
2687
2766
  ] }) }),
2688
2767
  /* @__PURE__ */ jsxRuntime.jsx(core.AppShell.Main, { children }),
@@ -5707,13 +5786,13 @@ function ActionButton({ onClick, left, right }) {
5707
5786
  }
5708
5787
  );
5709
5788
  }
5710
- const MainAction = react$1.lazy(() => Promise.resolve().then(() => require("./index-BLdnv_e1.cjs")));
5711
- const Header$1 = react$1.lazy(() => Promise.resolve().then(() => require("./index-CnChWDoH.cjs")));
5712
- const Content = react$1.lazy(() => Promise.resolve().then(() => require("./index-4-WAoT04.cjs")));
5789
+ const MainAction = react$1.lazy(() => Promise.resolve().then(() => require("./index-DmZxf_3K.cjs")));
5790
+ const Header$1 = react$1.lazy(() => Promise.resolve().then(() => require("./index-T_N7l0dY.cjs")));
5791
+ const Content = react$1.lazy(() => Promise.resolve().then(() => require("./index-CJEzVPBB.cjs")));
5713
5792
  const Map = react$1.lazy(() => Promise.resolve().then(() => require("./index-D4PsPquZ.cjs")));
5714
5793
  const CustomContent = react$1.lazy(() => Promise.resolve().then(() => require("./index-ByrCNpS2.cjs")));
5715
- const Assets = react$1.lazy(() => Promise.resolve().then(() => require("./index-BWrX_4fe.cjs")));
5716
- const Actions = react$1.lazy(() => Promise.resolve().then(() => require("./index-DO_9y-Xf.cjs")));
5794
+ const Assets = react$1.lazy(() => Promise.resolve().then(() => require("./index-DYyekNVE.cjs")));
5795
+ const Actions = react$1.lazy(() => Promise.resolve().then(() => require("./index-YrKDHLOm.cjs")));
5717
5796
  const HOVER_BORDER_WIDTH = 1;
5718
5797
  function SodaCardCmp({ numSelected = 0, expanded = true, mainAction, header, content, map, customContent, customFooter, actions, assets, onClick }, ref) {
5719
5798
  const wrapperRef = react$1.useRef(null);
@@ -11026,4 +11105,4 @@ exports.UserMessage = UserMessage;
11026
11105
  exports.WorkspaceModal = WorkspaceModal;
11027
11106
  exports.cutText = cutText;
11028
11107
  exports.isValidClick = isValidClick;
11029
- //# sourceMappingURL=components-CauA8pj8.cjs.map
11108
+ //# sourceMappingURL=components-BpMWfEEt.cjs.map